22 #ifndef __MYGUI_WIDGET_H__
23 #define __MYGUI_WIDGET_H__
65 Widget* createWidgetT(const std::
string& _type, const std::
string& _skin, const
IntCoord& _coord,
Align _align, const std::
string& _name = "");
68 Widget* createWidgetT(const std::
string& _type, const std::
string& _skin,
int _left,
int _top,
int _width,
int _height,
Align _align, const std::
string& _name = "");
71 Widget* createWidgetRealT(const std::
string& _type, const std::
string& _skin, const
FloatCoord& _coord,
Align _align, const std::
string& _name = "");
74 Widget* createWidgetRealT(const std::
string& _type, const std::
string& _skin,
float _left,
float _top,
float _width,
float _height,
Align _align, const std::
string& _name = "");
79 T* createWidget(const std::
string& _skin, const
IntCoord& _coord,
Align _align, const std::
string& _name = "")
81 return static_cast<T*
>(createWidgetT(T::getClassTypeName(), _skin, _coord, _align, _name));
86 T*
createWidget(
const std::string& _skin,
int _left,
int _top,
int _width,
int _height,
Align _align,
const std::string& _name =
"")
88 return static_cast<T*
>(createWidgetT(T::getClassTypeName(), _skin,
IntCoord(_left, _top, _width, _height), _align, _name));
95 return static_cast<T*
>(createWidgetRealT(T::getClassTypeName(), _skin, _coord, _align, _name));
100 T*
createWidgetReal(
const std::string& _skin,
float _left,
float _top,
float _width,
float _height,
Align _align,
const std::string& _name =
"")
102 return static_cast<T*
>(createWidgetRealT(T::getClassTypeName(), _skin, _left, _top, _width, _height, _align, _name));
114 Widget* createWidgetT(
WidgetStyle _style,
const std::string& _type,
const std::string& _skin,
const IntCoord& _coord,
Align _align,
const std::string& _layer =
"",
const std::string& _name =
"");
117 template <
typename T>
120 return static_cast<T*
>(createWidgetT(_style, T::getClassTypeName(), _skin, _coord, _align, _layer, _name));
124 virtual void setPosition(
const IntPoint& _value);
126 virtual void setSize(
const IntSize& _value);
128 virtual void setCoord(
const IntCoord& _value);
131 void setPosition(
int _left,
int _top);
133 void setSize(
int _width,
int _height);
135 void setCoord(
int _left,
int _top,
int _width,
int _height);
138 void setRealPosition(
const FloatPoint& _value);
140 void setRealSize(
const FloatSize& _value);
145 void setRealPosition(
float _left,
float _top);
147 void setRealSize(
float _width,
float _height);
149 void setRealCoord(
float _left,
float _top,
float _width,
float _height);
152 const std::string& getName()
const;
155 virtual void setVisible(
bool _value);
157 bool getVisible()
const;
160 bool getInheritedVisible()
const;
163 virtual void setAlign(
Align _value);
165 Align getAlign()
const;
168 void setAlpha(
float _value);
170 float getAlpha()
const;
182 void setInheritsAlpha(
bool _value);
184 bool getInheritsAlpha()
const;
186 void setColour(
const Colour& _value);
190 bool isRootWidget()
const;
193 Widget* getParent()
const;
201 size_t getChildCount();
204 Widget* getChildAt(
size_t _index);
210 Widget* findWidget(
const std::string& _name);
218 virtual void setEnabled(
bool _value);
220 void setEnabledSilent(
bool _value);
222 bool getEnabled()
const;
225 bool getInheritedEnabled()
const;
231 Widget* getClientWidget();
236 void detachFromWidget(
const std::string& _layer =
"");
246 void changeWidgetSkin(
const std::string& _skinName);
253 void setWidgetStyle(
WidgetStyle _style,
const std::string& _layer =
"");
261 void setProperty(
const std::string& _key,
const std::string& _value);
275 virtual size_t _getItemIndex(
Widget* _item);
278 void _forcePick(
Widget* _widget);
284 void _destroyChildWidget(
Widget* _widget);
286 void _setContainer(
Widget* _value);
290 bool _checkPoint(
int _left,
int _top)
const;
292 Widget* _createSkinWidget(
WidgetStyle _style,
const std::string& _type,
const std::string& _skin,
const IntCoord& _coord,
Align _align,
const std::string& _layer =
"",
const std::string& _name =
"");
295 virtual void _resetContainer(
bool _update);
297 bool _setWidgetState(
const std::string& _value);
303 virtual void shutdownOverride();
304 virtual void initialiseOverride();
309 Widget* baseCreateWidget(
WidgetStyle _style,
const std::string& _type,
const std::string& _skin,
const IntCoord& _coord,
Align _align,
const std::string& _layer,
const std::string& _name,
bool _template);
312 void _destroyAllChildWidget();
315 virtual size_t _getContainerIndex(
const IntPoint& _point);
317 virtual void baseUpdateEnable();
320 virtual ILayerItem* getLayerItemByPoint(
int _left,
int _top)
const;
321 virtual const IntCoord& getLayerItemCoord()
const;
323 template <
typename T>
327 for (VectorWidgetPtr::iterator iter = mWidgetChildSkin.begin(); iter != mWidgetChildSkin.end(); ++iter)
340 void destroySkinWidget(
Widget* _widget);
342 virtual void onWidgetCreated(
Widget* _widget);
343 virtual void onWidgetDestroy(
Widget* _widget);
345 void setWidgetClient(
Widget* _widget);
347 virtual void setPropertyOverride(
const std::string& _key,
const std::string& _value);
350 void frameEntered(
float _frame);
353 void shutdownWidgetSkinBase();
356 void _updateAbsolutePoint();
359 void _updateVisible();
361 void _updateEnabled();
363 float _getRealAlpha()
const;
366 void _destroyChildSkinWidget();
369 void _checkInheristProperties();
371 void _linkChildWidget(
Widget* _widget);
372 void _unlinkChildWidget(
Widget* _widget);
376 virtual void resizeLayerItemView(
const IntSize& _oldView,
const IntSize& _newView);
392 bool mInheritsEnabled;
394 bool mInheritsVisible;
416 #endif // __MYGUI_WIDGET_H__
delegates::CMultiDelegate3< Widget *, const std::string &, const std::string & > EventHandle_WidgetStringString
types::TCoord< int > IntCoord
#define MYGUI_RTTI_DERIVED(DerivedType)
std::vector< Widget * > VectorWidgetPtr
Type * castType(bool _throw=true)