31 #ifndef _CEGUIElement_h_ 32 #define _CEGUIElement_h_ 34 #include "CEGUI/Base.h" 35 #include "CEGUI/PropertySet.h" 36 #include "CEGUI/EventSet.h" 37 #include "CEGUI/EventArgs.h" 40 # pragma warning(push) 41 # pragma warning(disable : 4251) 75 typedef HorizontalAlignment return_type;
76 typedef return_type safe_method_return_type;
77 typedef HorizontalAlignment pass_type;
78 typedef String string_return_type;
80 static const String& getDataTypeName()
82 static String type(
"HorizontalAlignment");
87 static return_type fromString(
const String& str)
93 else if (str ==
"Right")
103 static string_return_type toString(pass_type val)
109 else if (val == HA_RIGHT)
119 assert(
false &&
"Invalid horizontal alignment");
154 typedef return_type safe_method_return_type;
156 typedef String string_return_type;
158 static const String& getDataTypeName()
160 static String type(
"VerticalAlignment");
165 static return_type fromString(
const String& str)
171 else if (str ==
"Bottom")
181 static string_return_type toString(pass_type val)
187 else if (val == VA_BOTTOM)
197 assert(
false &&
"Invalid vertical alignment");
210 class CEGUIEXPORT ElementEventArgs :
public EventArgs 213 ElementEventArgs(
Element* element):
242 class CEGUIEXPORT Element :
249 static const String EventNamespace;
255 static const String EventSized;
261 static const String EventParentSized;
266 static const String EventMoved;
272 static const String EventHorizontalAlignmentChanged;
278 static const String EventVerticalAlignmentChanged;
283 static const String EventRotated;
288 static const String EventChildAdded;
293 static const String EventChildRemoved;
299 static const String EventZOrderChanged;
305 static const String EventNonClientChanged;
323 typedef Rectf (Element::*DataGenerator)(bool)
const;
325 CachedRectf(Element
const* element, DataGenerator generator):
327 d_generator(generator),
356 if (!d_cacheValid && !skipAllPixelAlignment)
361 return CEGUI_CALL_MEMBER_FN(*d_element, d_generator)(skipAllPixelAlignment);
372 d_cacheValid =
false;
375 inline bool isCacheValid()
const 380 inline void regenerateCache()
const 384 d_cachedData = CEGUI_CALL_MEMBER_FN(*d_element, d_generator)(
false);
390 Element
const* d_element;
391 const DataGenerator d_generator;
393 mutable Rectf d_cachedData;
394 mutable bool d_cacheValid;
438 virtual void setArea(
const UVector2& pos,
const USize& size);
442 const UDim& width,
const UDim& height)
450 setArea(area.d_min, area.
getSize());
489 setArea_impl(pos, d_area.getSize());
495 setPosition(
UVector2(pos, getYPosition()));
501 setPosition(
UVector2(getXPosition(), pos));
520 return d_area.getPosition();
526 return getPosition().d_x;
532 return getPosition().d_y;
545 virtual void setHorizontalAlignment(
const HorizontalAlignment alignment);
559 return d_horizontalAlignment;
586 return d_verticalAlignment;
602 setArea(d_area.getPosition(), size);
608 setSize(
USize(width, getSize().d_height));
614 setSize(
USize(getSize().d_width, height));
630 return d_area.getSize();
636 return getSize().d_width;
642 return getSize().d_height;
662 void setMinSize(
const USize& size);
701 void setMaxSize(
const USize& size);
755 void setAspectRatio(
const float ratio);
765 return d_aspectRatio;
789 void setPixelAligned(
const bool setting);
800 return d_pixelAligned;
812 return getUnclippedOuterRect().get().d_min;
837 Sizef calculatePixelSize(
bool skipAllPixelAlignment =
false)
const;
848 Sizef getParentPixelSize(
bool skipAllPixelAlignment =
false)
const;
894 void addChild(Element* element);
906 void removeChild(Element* element);
923 return d_children[idx];
931 return d_children.size();
937 bool isChild(
const Element* element)
const;
952 bool isAncestor(
const Element* element)
const;
967 void setNonClient(
const bool setting);
994 return d_unclippedOuterRect;
1012 return d_unclippedInnerRect;
1030 return inner ? getUnclippedInnerRect() : getUnclippedOuterRect();
1041 virtual const CachedRectf& getClientChildContentArea()
const;
1051 virtual const CachedRectf& getNonClientChildContentArea()
const;
1076 return non_client ? getNonClientChildContentArea() : getClientChildContentArea();
1092 virtual void notifyScreenAreaChanged(
bool recursive =
true);
1103 virtual const Sizef& getRootContainerSize()
const;
1110 void addElementProperties();
1142 virtual void setArea_impl(
const UVector2& pos,
const USize& size,
1143 bool topLeftSizing =
false,
bool fireEvents =
true);
1148 const Sizef old_sz(d_unclippedInnerRect.get().getSize());
1149 d_unclippedInnerRect.invalidateCache();
1150 return old_sz != d_unclippedInnerRect.get().getSize();
1164 virtual void setParent(Element* parent);
1170 virtual void addChild_impl(Element* element);
1176 virtual void removeChild_impl(Element* element);
1179 virtual Rectf getUnclippedOuterRect_impl(
bool skipAllPixelAlignment)
const;
1181 virtual Rectf getUnclippedInnerRect_impl(
bool skipAllPixelAlignment)
const;
1184 void fireAreaChangeEvents(
const bool moved,
const bool sized);
1185 void notifyChildrenOfSizeChange(
const bool non_client,
1199 virtual void onSized(ElementEventArgs& e);
1212 virtual void onParentSized(ElementEventArgs& e);
1222 virtual void onMoved(ElementEventArgs& e);
1234 virtual void onHorizontalAlignmentChanged(ElementEventArgs& e);
1246 virtual void onVerticalAlignmentChanged(ElementEventArgs& e);
1256 virtual void onRotated(ElementEventArgs& e);
1266 virtual void onChildAdded(ElementEventArgs& e);
1276 virtual void onChildRemoved(ElementEventArgs& e);
1288 virtual void onNonClientChanged(ElementEventArgs& e);
1294 typedef std::vector<Element*
1308 HorizontalAlignment d_horizontalAlignment;
1318 float d_aspectRatio;
1320 bool d_pixelAligned;
1335 Element(
const Element&);
1337 Element& operator=(
const Element&) {
return *
this;}
1343 #if defined(_MSC_VER) 1344 # pragma warning(pop) 1347 #endif // end of guard _CEGUIElement_h_ void setSize(const USize &size)
Set the element's size.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:600
const URect & getArea() const
Return the element's area.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:467
AspectMode
How aspect ratio should be maintained.
Definition: cegui/include/CEGUI/Size.h:45
Definition: cegui/include/CEGUI/Element.h:68
HorizontalAlignment getHorizontalAlignment() const
Get the horizontal alignment.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:557
const Quaternion & getRotation() const
retrieves rotation of this widget
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:869
Definition: cegui/include/CEGUI/MemoryAllocatedObject.h:109
Main namespace for Crazy Eddie's GUI Library.
Definition: cegui/include/CEGUI/Affector.h:42
bool isPixelAligned() const
Checks whether this Element is pixel aligned.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:798
USize getSize() const
Get the element's size.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:628
A positioned and sized rectangular node in a tree graph.
Definition: cegui/include/CEGUI/Element.h:242
void setWidth(const UDim &width)
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:606
Base class used as the argument to all subscribers Event object.
Definition: cegui/include/CEGUI/EventArgs.h:49
Definition: cegui/include/CEGUI/Element.h:141
void setXPosition(const UDim &pos)
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:493
const CachedRectf & getUnclippedRect(const bool inner) const
Return a Rect that describes the unclipped area covered by the Element.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:1028
const CachedRectf & getChildContentArea(const bool non_client=false) const
Return a Rect that is used to position and size child elements.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:1074
Size< T > getSize() const
return the size of the Rect area
Definition: cegui/include/CEGUI/Rect.h:149
Definition: cegui/include/CEGUI/Element.h:146
Interface providing introspection capabilities.
Definition: cegui/include/CEGUI/PropertySet.h:107
const Sizef & getPixelSize() const
Return the element's size in pixels.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:822
Rectf getFresh(bool skipAllPixelAlignment=false) const
Skips all caching and calls the generator.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:352
const CachedRectf & getUnclippedOuterRect() const
Return a Rect that describes the unclipped outer rect area of the Element.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:992
void setPosition(const UVector2 &pos)
Set the element's position.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:487
const USize & getMinSize() const
Get the element's minimum size.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:677
Definition: cegui/include/CEGUI/Element.h:63
UDim getWidth() const
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:634
AspectMode getAspectMode() const
Retrieves currently used aspect mode.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:737
Definition: cegui/include/CEGUI/Element.h:58
const UVector2 & getPosition() const
Get the element's position.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:518
bool isNonClient() const
Checks whether this element was set to be non client.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:974
const UDim & getXPosition() const
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:524
const UDim & getYPosition() const
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:530
Helper class used to convert various data types to and from the format expected in Property strings...
Definition: cegui/include/CEGUI/ForwardRefs.h:84
std::vector< Element *CEGUI_VECTOR_ALLOC(Element *)> ChildList
definition of type used for the list of attached child elements.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:1295
size_t getChildCount() const
Returns number of child elements attached to this Element.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:929
Interface providing event signaling and handling.
Definition: cegui/include/CEGUI/EventSet.h:166
VerticalAlignment getVerticalAlignment() const
Get the vertical alignment.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:584
const USize & getMaxSize() const
Get the element's maximum size.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:716
const Vector2f & getPixelPosition() const
Return the element's absolute (or screen, depending on the type of the element) position in pixels...
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:810
UDim getHeight() const
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:640
void setArea(const UDim &xpos, const UDim &ypos, const UDim &width, const UDim &height)
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:441
A tiny wrapper to hide some of the dirty work of rect caching.
Definition: cegui/include/CEGUI/Element.h:314
bool isInnerRectSizeChanged() const
helper to return whether the inner rect size has changed
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:1146
Dimension that has both a relative 'scale' portion and and absolute 'offset' portion.
Definition: cegui/include/CEGUI/UDim.h:92
Definition: cegui/include/CEGUI/Element.h:136
Class to represent rotation, avoids Gimbal lock.
Definition: cegui/include/CEGUI/Quaternion.h:67
void invalidateCache() const
Invalidates the cached Rectf causing it to be regenerated.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:370
float getAspectRatio() const
Retrieves target aspect ratio.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:763
void setArea(const URect &area)
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:448
void setHeight(const UDim &height)
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:612
VerticalAlignment
Enumerated type used when specifying vertical alignments for Element.
Definition: cegui/include/CEGUI/Element.h:130
void setYPosition(const UDim &pos)
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:499
const CachedRectf & getUnclippedInnerRect() const
Return a Rect that describes the unclipped inner rect area of the Element.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:1010
Element * getParentElement() const
Retrieves parent of this element.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:414
Element * getChildElementAtIdx(size_t idx) const
return a pointer to the child element that is attached to 'this' at the given index.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/Element.h:921
HorizontalAlignment
Enumerated type used when specifying horizontal alignments for Element.
Definition: cegui/include/CEGUI/Element.h:52
String class used within the GUI system.
Definition: cegui/include/CEGUI/String.h:62