diff -r cffb35b0a173 lib/irrlicht/source/Irrlicht/CGUIButton.cpp --- a/lib/irrlicht/source/Irrlicht/CGUIButton.cpp Thu Sep 04 02:52:55 2008 +0200 +++ b/lib/irrlicht/source/Irrlicht/CGUIButton.cpp Fri Sep 05 17:22:37 2008 +0200 @@ -440,6 +440,7 @@ out->addBool ("Border", Border); out->addBool ("UseAlphaChannel", UseAlphaChannel); + out->addString("OverrideFont", OverrideFont ? OverrideFont->getName().c_str() : "" ); // out->addString ("OverrideFont", OverrideFont); } @@ -466,7 +467,8 @@ setDrawBorder(in->getAttributeAsBool("Border")); UseAlphaChannel = in->getAttributeAsBool("UseAlphaChannel"); - + + setOverrideFont(Environment->getFont( in->getAttributeAsString("OverrideFont").c_str() )); // setOverrideFont(in->getAttributeAsString("OverrideFont")); updateAbsolutePosition(); diff -r cffb35b0a173 lib/irrlicht/source/Irrlicht/CGUIEditBox.cpp --- a/lib/irrlicht/source/Irrlicht/CGUIEditBox.cpp Thu Sep 04 02:52:55 2008 +0200 +++ b/lib/irrlicht/source/Irrlicht/CGUIEditBox.cpp Fri Sep 05 17:22:37 2008 +0200 @@ -1326,7 +1326,8 @@ // IGUIEditBox::serializeAttributes(out,options); out->addBool ("OverrideColorEnabled",OverrideColorEnabled ); - out->addColor ("OverrideColor", OverrideColor); + out->addColor ("OverrideColor", OverrideColor); + out->addString("OverrideFont", OverrideFont ? OverrideFont->getName().c_str() : "" ); // out->addFont("OverrideFont",OverrideFont); out->addInt ("MaxChars", Max); out->addBool ("WordWrap", WordWrap); @@ -1349,7 +1350,8 @@ IGUIEditBox::deserializeAttributes(in,options); setOverrideColor(in->getAttributeAsColor("OverrideColor")); - enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled")); + enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled")); + setOverrideFont(Environment->getFont( in->getAttributeAsString("OverrideFont").c_str() )); setMax(in->getAttributeAsInt("MaxChars")); setWordWrap(in->getAttributeAsBool("WordWrap")); setMultiLine(in->getAttributeAsBool("MultiLine")); diff -r cffb35b0a173 lib/irrlicht/source/Irrlicht/CGUIStaticText.cpp --- a/lib/irrlicht/source/Irrlicht/CGUIStaticText.cpp Thu Sep 04 02:52:55 2008 +0200 +++ b/lib/irrlicht/source/Irrlicht/CGUIStaticText.cpp Fri Sep 05 17:22:37 2008 +0200 @@ -143,7 +143,10 @@ //! Sets another skin independent font. void CGUIStaticText::setOverrideFont(IGUIFont* font) -{ +{ + if (OverrideFont == font) + return; + if (OverrideFont) OverrideFont->drop(); @@ -426,7 +429,8 @@ out->addColor ("OverrideColor", OverrideColor); out->addEnum ("HTextAlign", HAlign, GUIAlignmentNames); out->addEnum ("VTextAlign", VAlign, GUIAlignmentNames); - + + out->addString("OverrideFont", OverrideFont ? OverrideFont->getName().c_str() : "" ); // out->addFont ("OverrideFont", OverrideFont); } @@ -445,7 +449,8 @@ setTextAlignment( (EGUI_ALIGNMENT) in->getAttributeAsEnumeration("HTextAlign", GUIAlignmentNames), (EGUI_ALIGNMENT) in->getAttributeAsEnumeration("VTextAlign", GUIAlignmentNames)); - + + setOverrideFont(Environment->getFont( in->getAttributeAsString("OverrideFont").c_str() )); // OverrideFont = in->getAttributeAsFont("OverrideFont"); }