Crazy Eddies GUI System  0.7.1
CEGUIWindow.h
1 /***********************************************************************
2  filename: CEGUIWindow.h
3  created: 21/2/2004
4  author: Paul D Turner
5 
6  purpose: Defines abstract base class for Window objects
7 *************************************************************************/
8 /***************************************************************************
9  * Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining
12  * a copy of this software and associated documentation files (the
13  * "Software"), to deal in the Software without restriction, including
14  * without limitation the rights to use, copy, modify, merge, publish,
15  * distribute, sublicense, and/or sell copies of the Software, and to
16  * permit persons to whom the Software is furnished to do so, subject to
17  * the following conditions:
18  *
19  * The above copyright notice and this permission notice shall be
20  * included in all copies or substantial portions of the Software.
21  *
22  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25  * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
26  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
27  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28  * OTHER DEALINGS IN THE SOFTWARE.
29  ***************************************************************************/
30 #ifndef _CEGUIWindow_h_
31 #define _CEGUIWindow_h_
32 
33 #include "CEGUIBase.h"
34 #include "CEGUIString.h"
35 #include "CEGUIVector.h"
36 #include "CEGUIRect.h"
37 #include "CEGUISize.h"
38 #include "CEGUIEventSet.h"
39 #include "CEGUIPropertySet.h"
40 #include "CEGUISystem.h"
41 #include "CEGUIInputEvent.h"
42 #include "CEGUIWindowProperties.h"
43 #include "CEGUIUDim.h"
44 #include "CEGUIWindowRenderer.h"
45 #include "CEGUITextUtils.h"
46 #include "CEGUIBasicRenderedStringParser.h"
47 #include "CEGUIDefaultRenderedStringParser.h"
48 #include <vector>
49 #include <set>
50 
51 
52 #if defined(_MSC_VER)
53 # pragma warning(push)
54 # pragma warning(disable : 4251)
55 #endif
56 
57 
58 // Start of CEGUI namespace section
59 namespace CEGUI
60 {
66 {
82 };
83 
89 {
105 };
106 
120 class CEGUIEXPORT Window : public PropertySet, public EventSet
121 {
122 public:
123  /*************************************************************************
124  Event name constants
125  *************************************************************************/
127  static const String EventNamespace;
128 
129  // generated internally by Window
133  static const String EventParentSized;
135  static const String EventSized;
137  static const String EventMoved;
139  static const String EventTextChanged;
141  static const String EventFontChanged;
143  static const String EventAlphaChanged;
145  static const String EventIDChanged;
147  static const String EventActivated;
149  static const String EventDeactivated;
151  static const String EventShown;
153  static const String EventHidden;
155  static const String EventEnabled;
157  static const String EventDisabled;
175  static const String EventChildAdded;
177  static const String EventChildRemoved;
197  static const String EventRotated;
202 
203  // generated externally (inputs)
205  static const String EventMouseEnters;
207  static const String EventMouseLeaves;
209  static const String EventMouseMove;
211  static const String EventMouseWheel;
217  static const String EventMouseClick;
223  static const String EventKeyDown;
225  static const String EventKeyUp;
227  static const String EventCharacterKey;
228 
229  /*************************************************************************
230  Child Widget name suffix constants
231  *************************************************************************/
233  static const String TooltipNameSuffix;
236 
237 
248  Window(const String& type, const String& name);
249 
254  virtual ~Window(void);
255 
263  const String& getType(void) const;
264 
272  const String& getName(void) const {return d_name;}
273 
283  bool isDestroyedByParent(void) const {return d_destroyedByParent;}
284 
294  bool isAlwaysOnTop(void) const {return d_alwaysOnTop;}
295 
308  bool isDisabled(bool localOnly = false) const;
309 
326  bool isVisible(bool localOnly = false) const;
327 
342  bool isActive(void) const;
343 
353  bool isClippedByParent(void) const {return d_clippedByParent;}
354 
362  uint getID(void) const {return d_ID;}
363 
373  size_t getChildCount(void) const {return d_children.size();}
374 
387  bool isChild(const String& name) const;
388 
405  bool isChild(uint ID) const;
406 
427  bool isChildRecursive(uint ID) const;
428 
440  bool isChild(const Window* window) const;
441 
463  Window* getChild(const String& name) const;
464 
486  Window* getChild(uint ID) const;
487 
511  Window* getChildRecursive(const String& name) const;
512 
534  Window* getChildRecursive(uint ID) const;
535 
549  Window* getChildAtIdx(size_t idx) const {return d_children[idx];}
550 
563  Window* getActiveChild(void);
564  const Window* getActiveChild(void) const;
565 
579  bool isAncestor(const String& name) const;
580 
594  bool isAncestor(uint ID) const;
595 
608  bool isAncestor(const Window* window) const;
609 
623  Font* getFont(bool useDefault = true) const;
624 
632  const String& getText(void) const {return d_textLogical;}
633 
635  const String& getTextVisual() const;
636 
645  bool inheritsAlpha(void) const {return d_inheritsAlpha;}
646 
664  float getAlpha(void) const {return d_alpha;}
665 
675  float getEffectiveAlpha(void) const;
676 
682  Rect getUnclippedOuterRect() const;
683 
689  Rect getUnclippedInnerRect() const;
690 
702  Rect getUnclippedRect(const bool inner) const;
703 
716  Rect getOuterRectClipper() const;
717 
730  Rect getInnerRectClipper() const;
731 
750  Rect getClipRect(const bool non_client = false) const;
751 
762  Rect getHitTestRect() const;
763 
780  virtual Rect getUnclippedInnerRect_impl(void) const;
781 
790  static Window* getCaptureWindow(void) {return d_captureWindow;}
791 
800  bool isCapturedByThis(void) const {return getCaptureWindow() == this;}
801 
811  bool isCapturedByAncestor(void) const
812  {return isAncestor(getCaptureWindow());}
813 
822  bool isCapturedByChild(void) const {return isChild(getCaptureWindow());}
823 
840  virtual bool isHit(const Vector2& position,
841  const bool allow_disabled = false) const;
842 
855  Window* getChildAtPosition(const Vector2& position) const;
856 
874  Window* getTargetChildAtPosition(const Vector2& position,
875  const bool allow_disabled = false) const;
876 
885  Window* getParent(void) const {return d_parent;}
886 
901  const Image* getMouseCursor(bool useDefault = true) const;
902 
910  Size getPixelSize(void) const { return d_pixelSize; }
911 
923  void* getUserData(void) const {return d_userData;}
924 
939  bool restoresOldCapture(void) const {return d_restoreOldCapture;}
940 
960  bool isZOrderingEnabled(void) const;
961 
972  bool wantsMultiClickEvents(void) const;
973 
985  bool isMouseAutoRepeatEnabled(void) const;
986 
995  float getAutoRepeatDelay(void) const;
996 
1006  float getAutoRepeatRate(void) const;
1007 
1017  bool distributesCapturedInputs(void) const;
1018 
1028  bool isUsingDefaultTooltip(void) const;
1029 
1039  Tooltip* getTooltip(void) const;
1040 
1049  String getTooltipType(void) const;
1050 
1058  const String& getTooltipText(void) const;
1059 
1071  bool inheritsTooltipText(void) const;
1072 
1093  bool isRiseOnClickEnabled(void) const { return d_riseOnClick; }
1094 
1106  bool testClassName(const String& class_name) const
1107  {return testClassName_impl(class_name);}
1108 
1119  VerticalAlignment getVerticalAlignment() const {return d_vertAlign;}
1120 
1131  HorizontalAlignment getHorizontalAlignment() const {return d_horzAlign;}
1132 
1140  GeometryBuffer& getGeometryBuffer();
1141 
1150  const String& getLookNFeel() const;
1151 
1159  bool getModalState(void) const
1160  {return(System::getSingleton().getModalTarget() == this);}
1161 
1175  const String& getUserString(const String& name) const;
1176 
1188  bool isUserStringDefined(const String& name) const;
1189 
1205  Window* getActiveSibling();
1206 
1216  Size getParentPixelSize(void) const;
1217 
1227  float getParentPixelWidth(void) const;
1228 
1238  float getParentPixelHeight(void) const;
1239 
1250  bool isMousePassThroughEnabled(void) const {return d_mousePassThroughEnabled;}
1251 
1257  bool isAutoWindow(void) const {return d_autoWindow;}
1258 
1263  bool isWritingXMLAllowed(void) const {return d_allowWriteXML;}
1264 
1289  EventSet::Iterator getEventIterator() const;
1290 
1311  PropertySet::Iterator getPropertyIterator() const;
1312 
1322  bool isDragDropTarget() const;
1323 
1329  void getRenderingContext(RenderingContext& ctx) const;
1330 
1332  virtual void getRenderingContext_impl(RenderingContext& ctx) const;
1333 
1339  RenderingSurface* getRenderingSurface() const;
1340 
1346  RenderingSurface& getTargetRenderingSurface() const;
1347 
1359  bool isUsingAutoRenderingSurface() const;
1360 
1371  const Window* getRootWindow() const;
1372  Window* getRootWindow();
1373 
1375  const Vector3& getRotation() const;
1376 
1391  bool isNonClientWindow() const;
1392 
1403  void rename(const String& new_name);
1404 
1416  virtual void initialiseComponents(void) {}
1417 
1431  void setDestroyedByParent(bool setting);
1432 
1445  void setAlwaysOnTop(bool setting);
1446 
1459  void setEnabled(bool setting);
1460 
1468  void enable(void) {setEnabled(true);}
1469 
1477  void disable(void) {setEnabled(false);}
1478 
1496  void setVisible(bool setting);
1497 
1510  void show(void) {setVisible(true);}
1511 
1522  void hide(void) {setVisible(false);}
1523 
1532  void activate(void);
1533 
1543  void deactivate(void);
1544 
1557  void setClippedByParent(bool setting);
1558 
1570  void setID(uint ID);
1571 
1582  void setText(const String& text);
1583 
1597  void insertText(const String& text, const String::size_type position);
1598 
1608  void appendText(const String& text);
1609 
1621  void setFont(Font* font);
1622 
1637  void setFont(const String& name);
1638 
1657  void addChildWindow(const String& name);
1658 
1675  void addChildWindow(Window* window);
1676 
1688  void removeChildWindow(const String& name);
1689 
1701  void removeChildWindow(Window* window);
1702 
1716  void removeChildWindow(uint ID);
1717 
1731  void moveToFront();
1732 
1747  void moveToBack();
1748 
1758  bool captureInput(void);
1759 
1768  void releaseInput(void);
1769 
1788  void setRestoreCapture(bool setting);
1789 
1810  void setAlpha(float alpha);
1811 
1823  void setInheritsAlpha(bool setting);
1824 
1836  void invalidate(void);
1837 
1853  void invalidate(const bool recursive);
1854 
1866  void setMouseCursor(const Image* image) {d_mouseCursor = image;}
1867 
1878  void setMouseCursor(MouseCursorImage image)
1879  {d_mouseCursor = (const Image*)image;}
1880 
1900  void setMouseCursor(const String& imageset, const String& image_name);
1901 
1916  void setUserData(void* user_data) {d_userData = user_data;}
1917 
1940  void setZOrderingEnabled(bool setting);
1941 
1955  void setWantsMultiClickEvents(bool setting);
1956 
1969  void setMouseAutoRepeatEnabled(bool setting);
1970 
1982  void setAutoRepeatDelay(float delay);
1983 
1996  void setAutoRepeatRate(float rate);
1997 
2007  void setDistributesCapturedInputs(bool setting);
2008 
2014  void notifyDragDropItemEnters(DragContainer* item);
2015 
2021  void notifyDragDropItemLeaves(DragContainer* item);
2022 
2028  void notifyDragDropItemDropped(DragContainer* item);
2029 
2043  virtual void destroy(void);
2044 
2060  void setTooltip(Tooltip* tooltip);
2061 
2080  void setTooltipType(const String& tooltipType);
2081 
2093  void setTooltipText(const String& tip);
2094 
2109  void setInheritsTooltipText(bool setting);
2110 
2134  void setRiseOnClickEnabled(bool setting) { d_riseOnClick = setting; }
2135 
2149  void setVerticalAlignment(const VerticalAlignment alignment);
2150 
2164  void setHorizontalAlignment(const HorizontalAlignment alignment);
2165 
2182  virtual void setLookNFeel(const String& look);
2183 
2197  void setModalState(bool state);
2198 
2209  virtual void performChildWindowLayout();
2210 
2224  void setUserString(const String& name, const String& value);
2225 
2252  void setArea(const UDim& xpos, const UDim& ypos, const UDim& width, const UDim& height);
2253 
2275  void setArea(const UVector2& pos, const UVector2& size);
2276 
2294  void setArea(const URect& area);
2295 
2314  void setPosition(const UVector2& pos);
2315 
2333  void setXPosition(const UDim& x);
2334 
2352  void setYPosition(const UDim& y);
2353 
2368  void setSize(const UVector2& size);
2369 
2384  void setWidth(const UDim& width);
2385 
2400  void setHeight(const UDim& height);
2401 
2418  void setMaxSize(const UVector2& size);
2419 
2436  void setMinSize(const UVector2& size);
2437 
2455  const URect& getArea() const;
2456 
2474  const UVector2& getPosition() const;
2475 
2493  const UDim& getXPosition() const;
2494 
2512  const UDim& getYPosition() const;
2513 
2528  UVector2 getSize() const;
2529 
2544  UDim getWidth() const;
2545 
2560  UDim getHeight() const;
2561 
2578  const UVector2& getMaxSize() const;
2579 
2596  const UVector2& getMinSize() const;
2597 
2606  void render();
2607 
2626  void update(float elapsed);
2627 
2638  virtual void writeXMLToStream(XMLSerializer& xml_stream) const;
2639 
2648  virtual void beginInitialisation(void) {d_initialising = true;}
2649 
2657  virtual void endInitialisation(void) {d_initialising = false;}
2658 
2669  void setMousePassThroughEnabled(bool setting) {d_mousePassThroughEnabled = setting;}
2670 
2682  void setWindowRenderer(const String& name);
2683 
2692  WindowRenderer* getWindowRenderer(void) const;
2693 
2703  String getWindowRendererName(void) const;
2704 
2709  void setWritingXMLAllowed(bool allow) {d_allowWriteXML = allow;}
2710 
2721  void notifyScreenAreaChanged(bool recursive = true);
2722 
2734  void setFalagardType(const String& type, const String& rendererType = "");
2735 
2745  void setDragDropTarget(bool setting);
2746 
2767  void setRenderingSurface(RenderingSurface* surface);
2768 
2775  void invalidateRenderingSurface();
2776 
2818  void setUsingAutoRenderingSurface(bool setting);
2819 
2821  void setRotation(const Vector3& rotation);
2822 
2837  void setNonClientWindow(const bool setting);
2838 
2840  const RenderedString& getRenderedString() const;
2842  RenderedStringParser* getCustomRenderedStringParser() const;
2844  void setCustomRenderedStringParser(RenderedStringParser* parser);
2846  virtual RenderedStringParser& getRenderedStringParser() const;
2848  bool isTextParsingEnabled() const;
2850  void setTextParsingEnabled(const bool setting);
2851 
2853  Vector2 getUnprojectedPosition(const Vector2& pos) const;
2854 
2856  const BiDiVisualMapping* getBiDiVisualMapping() const
2857  {return d_bidiVisualMapping;}
2858 
2859 protected:
2860  // friend classes for construction / initialisation purposes (for now)
2861  friend class System;
2862  friend class WindowManager;
2863 
2864  /*************************************************************************
2865  Event trigger methods
2866  *************************************************************************/
2876  virtual void onSized(WindowEventArgs& e);
2877 
2887  virtual void onMoved(WindowEventArgs& e);
2888 
2898  virtual void onTextChanged(WindowEventArgs& e);
2899 
2909  virtual void onFontChanged(WindowEventArgs& e);
2910 
2920  virtual void onAlphaChanged(WindowEventArgs& e);
2921 
2931  virtual void onIDChanged(WindowEventArgs& e);
2932 
2942  virtual void onShown(WindowEventArgs& e);
2943 
2953  virtual void onHidden(WindowEventArgs& e);
2954 
2964  virtual void onEnabled(WindowEventArgs& e);
2965 
2975  virtual void onDisabled(WindowEventArgs& e);
2976 
2987  virtual void onClippingChanged(WindowEventArgs& e);
2988 
2999  virtual void onParentDestroyChanged(WindowEventArgs& e);
3000 
3011  virtual void onInheritsAlphaChanged(WindowEventArgs& e);
3012 
3022  virtual void onAlwaysOnTopChanged(WindowEventArgs& e);
3023 
3033  virtual void onCaptureGained(WindowEventArgs& e);
3034 
3044  virtual void onCaptureLost(WindowEventArgs& e);
3045 
3055  virtual void onRenderingStarted(WindowEventArgs& e);
3056 
3066  virtual void onRenderingEnded(WindowEventArgs& e);
3067 
3077  virtual void onZChanged(WindowEventArgs& e);
3078 
3088  virtual void onDestructionStarted(WindowEventArgs& e);
3089 
3098  virtual void onActivated(ActivationEventArgs& e);
3099 
3109  virtual void onDeactivated(ActivationEventArgs& e);
3110 
3122  virtual void onParentSized(WindowEventArgs& e);
3123 
3132  virtual void onChildAdded(WindowEventArgs& e);
3133 
3142  virtual void onChildRemoved(WindowEventArgs& e);
3143 
3151  virtual void onMouseEnters(MouseEventArgs& e);
3152 
3160  virtual void onMouseLeaves(MouseEventArgs& e);
3161 
3170  virtual void onMouseMove(MouseEventArgs& e);
3171 
3180  virtual void onMouseWheel(MouseEventArgs& e);
3181 
3190  virtual void onMouseButtonDown(MouseEventArgs& e);
3191 
3200  virtual void onMouseButtonUp(MouseEventArgs& e);
3201 
3210  virtual void onMouseClicked(MouseEventArgs& e);
3211 
3220  virtual void onMouseDoubleClicked(MouseEventArgs& e);
3221 
3230  virtual void onMouseTripleClicked(MouseEventArgs& e);
3231 
3243  virtual void onKeyDown(KeyEventArgs& e);
3244 
3256  virtual void onKeyUp(KeyEventArgs& e);
3257 
3269  virtual void onCharacter(KeyEventArgs& e);
3270 
3281  virtual void onDragDropItemEnters(DragDropEventArgs& e);
3282 
3293  virtual void onDragDropItemLeaves(DragDropEventArgs& e);
3294 
3305  virtual void onDragDropItemDropped(DragDropEventArgs& e);
3306 
3317  virtual void onVerticalAlignmentChanged(WindowEventArgs& e);
3318 
3329  virtual void onHorizontalAlignmentChanged(WindowEventArgs& e);
3330 
3340  virtual void onWindowRendererAttached(WindowEventArgs& e);
3341 
3351  virtual void onWindowRendererDetached(WindowEventArgs& e);
3352 
3362  virtual void onRotated(WindowEventArgs& e);
3363 
3374  virtual void onNonClientChanged(WindowEventArgs& e);
3375 
3386  virtual void onTextParsingChanged(WindowEventArgs& e);
3387 
3388  /*************************************************************************
3389  Implementation Functions
3390  *************************************************************************/
3402  virtual void updateSelf(float elapsed);
3403 
3415  virtual void drawSelf(const RenderingContext& ctx);
3416 
3427  void bufferGeometry(const RenderingContext& ctx);
3428 
3439  void queueGeometry(const RenderingContext& ctx);
3440 
3447  virtual void populateGeometryBuffer() {}
3448 
3460  virtual bool testClassName_impl(const String& class_name) const
3461  {
3462  if (class_name == "Window") return true;
3463  return false;
3464  }
3465 
3477  void setParent(Window* parent);
3478 
3479  Size getSize_impl(const Window* window) const;
3480 
3485  void generateAutoRepeatEvent(MouseButton button);
3486 
3495  virtual bool validateWindowRenderer(const String& name) const;
3496 
3501  void banPropertyFromXML(const Property* property);
3502 
3507  bool isPropertyBannedFromXML(const Property* property) const;
3508 
3515  bool isPropertyAtDefault(const Property* property) const;
3516 
3522  void notifyClippingChanged(void);
3523 
3525  void allocateRenderingWindow();
3526 
3528  void releaseRenderingWindow();
3529 
3531  void initialiseClippers(const RenderingContext& ctx);
3532 
3537  virtual void cleanupChildren(void);
3538 
3543  virtual void addChild_impl(Window* wnd);
3544 
3549  virtual void removeChild_impl(Window* wnd);
3550 
3555  virtual void onZChange_impl(void);
3556 
3561  void addStandardProperties(void);
3562 
3571  virtual bool moveToFront_impl(bool wasClicked);
3572 
3603  void setArea_impl(const UVector2& pos, const UVector2& size,
3604  bool topLeftSizing = false, bool fireEvents = true);
3605 
3625  void addWindowToDrawList(Window& wnd, bool at_back = false);
3626 
3638  void removeWindowFromDrawList(const Window& wnd);
3639 
3651  bool isTopOfZOrder() const;
3652 
3658  void updateGeometryRenderSettings();
3659 
3661  void transferChildSurfaces();
3662 
3664  Rect getParentElementClipIntersection(const Rect& unclipped_area) const;
3665 
3667  void invalidate_impl(const bool recursive);
3668 
3670  bool isInnerRectSizeChanged() const;
3671 
3673  virtual Rect getUnclippedOuterRect_impl() const;
3675  virtual Rect getOuterRectClipper_impl() const;
3677  virtual Rect getInnerRectClipper_impl() const;
3679  virtual Rect getHitTestRect_impl() const;
3680 
3681  virtual int writePropertiesXML(XMLSerializer& xml_stream) const;
3682  virtual int writeChildWindowsXML(XMLSerializer& xml_stream) const;
3683  virtual bool writeAutoChildWindowXML(XMLSerializer& xml_stream) const;
3684 
3685  /*************************************************************************
3686  Properties for Window base class
3687  *************************************************************************/
3688  static WindowProperties::Alpha d_alphaProperty;
3689  static WindowProperties::AlwaysOnTop d_alwaysOnTopProperty;
3690  static WindowProperties::ClippedByParent d_clippedByParentProperty;
3691  static WindowProperties::DestroyedByParent d_destroyedByParentProperty;
3692  static WindowProperties::Disabled d_disabledProperty;
3693  static WindowProperties::Font d_fontProperty;
3694  static WindowProperties::ID d_IDProperty;
3695  static WindowProperties::InheritsAlpha d_inheritsAlphaProperty;
3696  static WindowProperties::MouseCursorImage d_mouseCursorProperty;
3697  static WindowProperties::RestoreOldCapture d_restoreOldCaptureProperty;
3698  static WindowProperties::Text d_textProperty;
3699  static WindowProperties::Visible d_visibleProperty;
3700  static WindowProperties::ZOrderChangeEnabled d_zOrderChangeProperty;
3701  static WindowProperties::WantsMultiClickEvents d_wantsMultiClicksProperty;
3702  static WindowProperties::MouseButtonDownAutoRepeat d_autoRepeatProperty;
3703  static WindowProperties::AutoRepeatDelay d_autoRepeatDelayProperty;
3704  static WindowProperties::AutoRepeatRate d_autoRepeatRateProperty;
3705  static WindowProperties::DistributeCapturedInputs d_distInputsProperty;
3706  static WindowProperties::CustomTooltipType d_tooltipTypeProperty;
3707  static WindowProperties::Tooltip d_tooltipProperty;
3708  static WindowProperties::InheritsTooltipText d_inheritsTooltipProperty;
3709  static WindowProperties::RiseOnClick d_riseOnClickProperty;
3710  static WindowProperties::VerticalAlignment d_vertAlignProperty;
3711  static WindowProperties::HorizontalAlignment d_horzAlignProperty;
3712  static WindowProperties::UnifiedAreaRect d_unifiedAreaRectProperty;
3713  static WindowProperties::UnifiedPosition d_unifiedPositionProperty;
3714  static WindowProperties::UnifiedXPosition d_unifiedXPositionProperty;
3715  static WindowProperties::UnifiedYPosition d_unifiedYPositionProperty;
3716  static WindowProperties::UnifiedSize d_unifiedSizeProperty;
3717  static WindowProperties::UnifiedWidth d_unifiedWidthProperty;
3718  static WindowProperties::UnifiedHeight d_unifiedHeightProperty;
3719  static WindowProperties::UnifiedMinSize d_unifiedMinSizeProperty;
3720  static WindowProperties::UnifiedMaxSize d_unifiedMaxSizeProperty;
3721  static WindowProperties::MousePassThroughEnabled d_mousePassThroughEnabledProperty;
3722  static WindowProperties::WindowRenderer d_windowRendererProperty;
3723  static WindowProperties::LookNFeel d_lookNFeelProperty;
3724  static WindowProperties::DragDropTarget d_dragDropTargetProperty;
3725  static WindowProperties::AutoRenderingSurface d_autoRenderingSurfaceProperty;
3726  static WindowProperties::Rotation d_rotationProperty;
3727  static WindowProperties::XRotation d_xRotationProperty;
3728  static WindowProperties::YRotation d_yRotationProperty;
3729  static WindowProperties::ZRotation d_zRotationProperty;
3730  static WindowProperties::NonClient d_nonClientProperty;
3731  static WindowProperties::TextParsingEnabled d_textParsingEnabledProperty;
3732 
3733  /*************************************************************************
3734  Implementation Data
3735  *************************************************************************/
3737  typedef std::vector<Window*> ChildList;
3739  typedef std::map<String, String, String::FastLessCompare> UserStringMap;
3741  typedef std::set<String, String::FastLessCompare> BannedXMLPropertySet;
3742 
3751 
3761  bool d_active;
3762 
3771 
3776 
3786  mutable bool d_needsRedraw;
3789 
3792 
3794  float d_alpha;
3797 
3806 
3814  mutable bool d_bidiDataValid;
3827 
3829  uint d_ID;
3831  void* d_userData;
3834 
3841 
3858 
3861 
3870 
3875 
3890 
3901 
3902  mutable bool d_outerUnclippedRectValid;
3903  mutable bool d_innerUnclippedRectValid;
3904  mutable bool d_outerRectClipperValid;
3905  mutable bool d_innerRectClipperValid;
3906  mutable bool d_hitTestRectValid;
3907 
3908 private:
3909  /*************************************************************************
3910  May not copy or assign Window objects
3911  *************************************************************************/
3912  Window(const Window&) : PropertySet(), EventSet() {}
3913  Window& operator=(const Window&) {return *this;}
3914 };
3915 
3916 } // End of CEGUI namespace section
3917 
3918 
3919 #if defined(_MSC_VER)
3920 # pragma warning(pop)
3921 #endif
3922 
3923 #endif // end of guard _CEGUIWindow_h_