50 class SKYLICHT_API CGUIElement
55 CGUIElement* m_parent;
56 std::vector<CGUIElement*> m_childs;
64 bool m_enableMaterial;
68 ArrayMaterial m_materials;
79 std::string m_materialFile;
82 std::string m_tagString;
86 std::function<void(CGUIElement*)> OnRender;
89 CGUIElement(CCanvas* canvas, CGUIElement* parent);
90 CGUIElement(CCanvas* canvas, CGUIElement* parent,
const core::rectf& rect);
92 inline void applyCurrentMask(
CGUIMask* mask)
94 m_applyCurrentMask = mask;
99 return m_applyCurrentMask;
103 virtual ~CGUIElement();
107 void removeAllChilds();
111 inline CCanvas* getCanvas()
116 inline CGUIElement* getParent()
121 inline void setName(
const char* name)
123 m_transform->Name = name;
126 inline const char* getName()
128 return m_transform->Name.c_str();
131 inline const char* getID()
133 return m_entity->getID().c_str();
136 inline void setTagInt(
int i)
141 inline void setTagString(
const char* s)
146 inline int getTagInt()
151 inline const std::string& getTagString()
156 void setName(
const wchar_t* name);
158 std::wstring getNameW();
160 void setParent(CGUIElement* parent);
162 inline std::vector<CGUIElement*>& getChilds()
167 void getAllChilds(std::vector<CGUIElement*>& childs);
169 inline void setColor(
const SColor& c)
171 m_renderData->Color = c;
176 return m_renderData->getColor();
179 inline float getHeight()
181 return m_guiTransform->getHeight();
184 inline float getWidth()
186 return m_guiTransform->getWidth();
189 inline void setHeight(
float h)
191 m_guiTransform->setHeight(h);
194 inline void setWidth(
float w)
196 m_guiTransform->setWidth(w);
201 return m_guiTransform->getRect();
206 inline int getDepth()
208 return m_transform->Depth;
211 inline int getRenderOrder()
213 return m_renderOrder;
216 inline void setDock(EGUIDock dock)
218 m_guiAlign->Dock = dock;
221 inline EGUIDock getDock()
223 return m_guiAlign->Dock;
226 inline const SMargin& getMargin()
228 return m_guiAlign->Margin;
231 inline void setMargin(
const SMargin& m)
233 m_guiAlign->Margin = m;
236 inline void setMargin(
float l,
float t,
float r,
float b)
238 m_guiAlign->Margin.Left = l;
239 m_guiAlign->Margin.Top = t;
240 m_guiAlign->Margin.Right = r;
241 m_guiAlign->Margin.Bottom = b;
246 m_guiTransform->setRect(r);
255 return m_guiTransform->getAlignPosition();
260 return m_guiTransform->getPosition();
263 inline void invalidate()
265 m_transform->HasChanged =
true;
266 m_guiTransform->HasChanged =
true;
271 m_guiTransform->setPosition(v);
276 return m_guiTransform->getScale();
281 m_guiTransform->setScale(v);
286 return m_guiTransform->getRotation();
291 m_guiTransform->setRotation(v);
299 inline EGUIVerticalAlign getVerticalAlign()
301 return m_guiAlign->Vertical;
304 inline EGUIHorizontalAlign getHorizontalAlign()
306 return m_guiAlign->Horizontal;
309 inline void setVerticalAlign(EGUIVerticalAlign a)
311 m_guiAlign->Vertical = a;
314 inline void setHorizontalAlign(EGUIHorizontalAlign a)
316 m_guiAlign->Horizontal = a;
319 inline void setAlign(EGUIHorizontalAlign h, EGUIVerticalAlign v)
321 m_guiAlign->Vertical = v;
322 m_guiAlign->Horizontal = h;
325 inline void setShaderID(
int id)
327 m_renderData->ShaderID = id;
330 inline int getShaderID()
332 return m_renderData->ShaderID;
335 inline int getMaterialId()
340 void setMaterialId(
int id);
342 inline void setMaterial(
CMaterial* material)
344 m_renderData->Material = material;
347 void setMaterialSource(
const char* materialFile);
351 return m_renderData->Material;
366 inline void setDrawBorder(
bool b)
371 inline bool isEnableMaterial()
373 return m_enableMaterial;
376 virtual void update(
CCamera* camera);
378 virtual void render(
CCamera* camera);
382 return m_transform->Relative;
387 return m_transform->World;
389 inline void setVisible(
bool b)
391 m_entity->setVisible(b);
394 inline bool isVisible()
396 return m_entity->isVisible();
399 bool isVisibleInHierarchy();
406 void notifyChanged();
408 CGUIElement* getChildBefore(CGUIElement*
object);
410 void bringToNext(CGUIElement*
object, CGUIElement* target,
bool behind);
412 void bringToChild(CGUIElement*
object);
414 bool isChild(CGUIElement* e);
416 CGUIElement* getGUIByPath(
const char* path);
422 void generateNewId();
424 DECLARE_GETTYPENAME(CGUIElement)
428 bool removeChild(CGUIElement* child);