}\r
\r
\r
-//! Writes attributes of the element.\r
-void GUIButton::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const\r
-{\r
- IGUIButton::serializeAttributes(out,options);\r
-\r
- out->addBool ("PushButton", IsPushButton );\r
- if (IsPushButton)\r
- out->addBool("Pressed", Pressed);\r
-\r
- for ( u32 i=0; i<(u32)EGBIS_COUNT; ++i )\r
- {\r
- if ( ButtonImages[i].Texture )\r
- {\r
- core::stringc name( GUIButtonImageStateNames[i] );\r
- out->addTexture(name.c_str(), ButtonImages[i].Texture);\r
- name += "Rect";\r
- out->addRect(name.c_str(), ButtonImages[i].SourceRect);\r
- }\r
- }\r
-\r
- out->addBool ("UseAlphaChannel", UseAlphaChannel);\r
- out->addBool ("Border", DrawBorder);\r
- out->addBool ("ScaleImage", ScaleImage);\r
-\r
- for ( u32 i=0; i<(u32)EGBS_COUNT; ++i )\r
- {\r
- if ( ButtonSprites[i].Index >= 0 )\r
- {\r
- core::stringc nameIndex( GUIButtonStateNames[i] );\r
- nameIndex += "Index";\r
- out->addInt(nameIndex.c_str(), ButtonSprites[i].Index );\r
-\r
- core::stringc nameColor( GUIButtonStateNames[i] );\r
- nameColor += "Color";\r
- out->addColor(nameColor.c_str(), ButtonSprites[i].Color );\r
-\r
- core::stringc nameLoop( GUIButtonStateNames[i] );\r
- nameLoop += "Loop";\r
- out->addBool(nameLoop.c_str(), ButtonSprites[i].Loop );\r
-\r
- core::stringc nameScale( GUIButtonStateNames[i] );\r
- nameScale += "Scale";\r
- out->addBool(nameScale.c_str(), ButtonSprites[i].Scale );\r
- }\r
- }\r
-\r
- // out->addString ("OverrideFont", OverrideFont);\r
-}\r
-\r
-\r
-//! Reads attributes of the element\r
-void GUIButton::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0)\r
-{\r
- IGUIButton::deserializeAttributes(in,options);\r
-\r
- IsPushButton = in->getAttributeAsBool("PushButton");\r
- Pressed = IsPushButton ? in->getAttributeAsBool("Pressed") : false;\r
-\r
- core::rect<s32> rec = in->getAttributeAsRect("ImageRect");\r
- if (rec.isValid())\r
- setImage( in->getAttributeAsTexture("Image"), rec);\r
- else\r
- setImage( in->getAttributeAsTexture("Image") );\r
-\r
- rec = in->getAttributeAsRect("PressedImageRect");\r
- if (rec.isValid())\r
- setPressedImage( in->getAttributeAsTexture("PressedImage"), rec);\r
- else\r
- setPressedImage( in->getAttributeAsTexture("PressedImage") );\r
-\r
- setDrawBorder(in->getAttributeAsBool("Border"));\r
- setUseAlphaChannel(in->getAttributeAsBool("UseAlphaChannel"));\r
- setScaleImage(in->getAttributeAsBool("ScaleImage"));\r
-\r
- // setOverrideFont(in->getAttributeAsString("OverrideFont"));\r
-\r
- updateAbsolutePosition();\r
-}\r
-\r
// PATCH\r
GUIButton* GUIButton::addButton(IGUIEnvironment *environment,\r
const core::rect<s32>& rectangle, ISimpleTextureSource *tsrc,\r