Crazy Eddies GUI System  0.7.0
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 <vector>
48 #include <set>
49 
50 
51 #if defined(_MSC_VER)
52 # pragma warning(push)
53 # pragma warning(disable : 4251)
54 #endif
55 
56 
57 // Start of CEGUI namespace section
58 namespace CEGUI
59 {
65 {
81 };
82 
88 {
104 };
105 
119 class CEGUIEXPORT Window : public PropertySet, public EventSet
120 {
121 public:
122  /*************************************************************************
123  Event name constants
124  *************************************************************************/
126  static const String EventNamespace;
127 
128  // generated internally by Window
132  static const String EventParentSized;
134  static const String EventSized;
136  static const String EventMoved;
138  static const String EventTextChanged;
140  static const String EventFontChanged;
142  static const String EventAlphaChanged;
144  static const String EventIDChanged;
146  static const String EventActivated;
148  static const String EventDeactivated;
150  static const String EventShown;
152  static const String EventHidden;
154  static const String EventEnabled;
156  static const String EventDisabled;
174  static const String EventChildAdded;
176  static const String EventChildRemoved;
196  static const String EventRotated;
199 
200  // generated externally (inputs)
202  static const String EventMouseEnters;
204  static const String EventMouseLeaves;
206  static const String EventMouseMove;
208  static const String EventMouseWheel;
214  static const String EventMouseClick;
220  static const String EventKeyDown;
222  static const String EventKeyUp;
224  static const String EventCharacterKey;
225 
226  /*************************************************************************
227  Child Widget name suffix constants
228  *************************************************************************/
230  static const String TooltipNameSuffix;
233 
234 
245  Window(const String& type, const String& name);
246 
251  virtual ~Window(void);
252 
260  const String& getType(void) const;
261 
269  const String& getName(void) const {return d_name;}
270 
280  bool isDestroyedByParent(void) const {return d_destroyedByParent;}
281 
291  bool isAlwaysOnTop(void) const {return d_alwaysOnTop;}
292 
305  bool isDisabled(bool localOnly = false) const;
306 
323  bool isVisible(bool localOnly = false) const;
324 
339  bool isActive(void) const;
340 
350  bool isClippedByParent(void) const {return d_clippedByParent;}
351 
359  uint getID(void) const {return d_ID;}
360 
370  size_t getChildCount(void) const {return d_children.size();}
371 
384  bool isChild(const String& name) const;
385 
402  bool isChild(uint ID) const;
403 
424  bool isChildRecursive(uint ID) const;
425 
437  bool isChild(const Window* window) const;
438 
460  Window* getChild(const String& name) const;
461 
483  Window* getChild(uint ID) const;
484 
508  Window* getChildRecursive(const String& name) const;
509 
531  Window* getChildRecursive(uint ID) const;
532 
546  Window* getChildAtIdx(size_t idx) const {return d_children[idx];}
547 
560  Window* getActiveChild(void);
561  const Window* getActiveChild(void) const;
562 
576  bool isAncestor(const String& name) const;
577 
591  bool isAncestor(uint ID) const;
592 
605  bool isAncestor(const Window* window) const;
606 
620  Font* getFont(bool useDefault = true) const;
621 
629  const String& getText(void) const {return d_textLogical;}
630 
632  const String& getTextVisual() const;
633 
642  bool inheritsAlpha(void) const {return d_inheritsAlpha;}
643 
661  float getAlpha(void) const {return d_alpha;}
662 
672  float getEffectiveAlpha(void) const;
673 
679  Rect getUnclippedOuterRect() const;
680 
686  Rect getUnclippedInnerRect() const;
687 
699  Rect getUnclippedRect(const bool inner) const;
700 
713  Rect getOuterRectClipper() const;
714 
727  Rect getInnerRectClipper() const;
728 
747  Rect getClipRect(const bool non_client = false) const;
748 
759  Rect getHitTestRect() const;
760 
772  virtual Rect getUnclippedInnerRect_impl(void) const;
773 
782  static Window* getCaptureWindow(void) {return d_captureWindow;}
783 
792  bool isCapturedByThis(void) const {return getCaptureWindow() == this;}
793 
803  bool isCapturedByAncestor(void) const
804  {return isAncestor(getCaptureWindow());}
805 
814  bool isCapturedByChild(void) const {return isChild(getCaptureWindow());}
815 
832  virtual bool isHit(const Vector2& position,
833  const bool allow_disabled = false) const;
834 
847  Window* getChildAtPosition(const Vector2& position) const;
848 
866  Window* getTargetChildAtPosition(const Vector2& position,
867  const bool allow_disabled = false) const;
868 
877  Window* getParent(void) const {return d_parent;}
878 
893  const Image* getMouseCursor(bool useDefault = true) const;
894 
902  Size getPixelSize(void) const { return d_pixelSize; }
903 
915  void* getUserData(void) const {return d_userData;}
916 
931  bool restoresOldCapture(void) const {return d_restoreOldCapture;}
932 
952  bool isZOrderingEnabled(void) const;
953 
964  bool wantsMultiClickEvents(void) const;
965 
977  bool isMouseAutoRepeatEnabled(void) const;
978 
987  float getAutoRepeatDelay(void) const;
988 
998  float getAutoRepeatRate(void) const;
999 
1009  bool distributesCapturedInputs(void) const;
1010 
1020  bool isUsingDefaultTooltip(void) const;
1021 
1031  Tooltip* getTooltip(void) const;
1032 
1041  String getTooltipType(void) const;
1042 
1050  const String& getTooltipText(void) const;
1051 
1063  bool inheritsTooltipText(void) const;
1064 
1085  bool isRiseOnClickEnabled(void) const { return d_riseOnClick; }
1086 
1098  bool testClassName(const String& class_name) const
1099  {return testClassName_impl(class_name);}
1100 
1111  VerticalAlignment getVerticalAlignment() const {return d_vertAlign;}
1112 
1123  HorizontalAlignment getHorizontalAlignment() const {return d_horzAlign;}
1124 
1132  GeometryBuffer& getGeometryBuffer();
1133 
1142  const String& getLookNFeel() const;
1143 
1151  bool getModalState(void) const
1152  {return(System::getSingleton().getModalTarget() == this);}
1153 
1167  const String& getUserString(const String& name) const;
1168 
1180  bool isUserStringDefined(const String& name) const;
1181 
1197  Window* getActiveSibling();
1198 
1208  Size getParentPixelSize(void) const;
1209 
1219  float getParentPixelWidth(void) const;
1220 
1230  float getParentPixelHeight(void) const;
1231 
1242  bool isMousePassThroughEnabled(void) const {return d_mousePassThroughEnabled;}
1243 
1249  bool isAutoWindow(void) const {return d_autoWindow;}
1250 
1255  bool isWritingXMLAllowed(void) const {return d_allowWriteXML;}
1256 
1281  EventSet::Iterator getEventIterator() const;
1282 
1303  PropertySet::Iterator getPropertyIterator() const;
1304 
1314  bool isDragDropTarget() const;
1315 
1321  void getRenderingContext(RenderingContext& ctx) const;
1322 
1324  virtual void getRenderingContext_impl(RenderingContext& ctx) const;
1325 
1331  RenderingSurface* getRenderingSurface() const;
1332 
1338  RenderingSurface& getTargetRenderingSurface() const;
1339 
1351  bool isUsingAutoRenderingSurface() const;
1352 
1363  const Window* getRootWindow() const;
1364  Window* getRootWindow();
1365 
1367  const Vector3& getRotation() const;
1368 
1383  bool isNonClientWindow() const;
1384 
1395  void rename(const String& new_name);
1396 
1408  virtual void initialiseComponents(void) {}
1409 
1423  void setDestroyedByParent(bool setting);
1424 
1437  void setAlwaysOnTop(bool setting);
1438 
1451  void setEnabled(bool setting);
1452 
1460  void enable(void) {setEnabled(true);}
1461 
1469  void disable(void) {setEnabled(false);}
1470 
1488  void setVisible(bool setting);
1489 
1502  void show(void) {setVisible(true);}
1503 
1514  void hide(void) {setVisible(false);}
1515 
1524  void activate(void);
1525 
1535  void deactivate(void);
1536 
1549  void setClippedByParent(bool setting);
1550 
1562  void setID(uint ID);
1563 
1574  void setText(const String& text);
1575 
1589  void insertText(const String& text, const String::size_type position);
1590 
1600  void appendText(const String& text);
1601 
1613  void setFont(Font* font);
1614 
1629  void setFont(const String& name);
1630 
1649  void addChildWindow(const String& name);
1650 
1667  void addChildWindow(Window* window);
1668 
1680  void removeChildWindow(const String& name);
1681 
1693  void removeChildWindow(Window* window);
1694 
1708  void removeChildWindow(uint ID);
1709 
1723  void moveToFront();
1724 
1739  void moveToBack();
1740 
1750  bool captureInput(void);
1751 
1760  void releaseInput(void);
1761 
1780  void setRestoreCapture(bool setting);
1781 
1802  void setAlpha(float alpha);
1803 
1815  void setInheritsAlpha(bool setting);
1816 
1825  void invalidate(void);
1826 
1838  void setMouseCursor(const Image* image) {d_mouseCursor = image;}
1839 
1850  void setMouseCursor(MouseCursorImage image)
1851  {d_mouseCursor = (const Image*)image;}
1852 
1872  void setMouseCursor(const String& imageset, const String& image_name);
1873 
1888  void setUserData(void* user_data) {d_userData = user_data;}
1889 
1912  void setZOrderingEnabled(bool setting);
1913 
1927  void setWantsMultiClickEvents(bool setting);
1928 
1941  void setMouseAutoRepeatEnabled(bool setting);
1942 
1954  void setAutoRepeatDelay(float delay);
1955 
1968  void setAutoRepeatRate(float rate);
1969 
1979  void setDistributesCapturedInputs(bool setting);
1980 
1986  void notifyDragDropItemEnters(DragContainer* item);
1987 
1993  void notifyDragDropItemLeaves(DragContainer* item);
1994 
2000  void notifyDragDropItemDropped(DragContainer* item);
2001 
2015  virtual void destroy(void);
2016 
2032  void setTooltip(Tooltip* tooltip);
2033 
2052  void setTooltipType(const String& tooltipType);
2053 
2065  void setTooltipText(const String& tip);
2066 
2081  void setInheritsTooltipText(bool setting);
2082 
2106  void setRiseOnClickEnabled(bool setting) { d_riseOnClick = setting; }
2107 
2121  void setVerticalAlignment(const VerticalAlignment alignment);
2122 
2136  void setHorizontalAlignment(const HorizontalAlignment alignment);
2137 
2154  virtual void setLookNFeel(const String& look);
2155 
2169  void setModalState(bool state);
2170 
2181  virtual void performChildWindowLayout();
2182 
2196  void setUserString(const String& name, const String& value);
2197 
2224  void setArea(const UDim& xpos, const UDim& ypos, const UDim& width, const UDim& height);
2225 
2247  void setArea(const UVector2& pos, const UVector2& size);
2248 
2266  void setArea(const URect& area);
2267 
2286  void setPosition(const UVector2& pos);
2287 
2305  void setXPosition(const UDim& x);
2306 
2324  void setYPosition(const UDim& y);
2325 
2340  void setSize(const UVector2& size);
2341 
2356  void setWidth(const UDim& width);
2357 
2372  void setHeight(const UDim& height);
2373 
2390  void setMaxSize(const UVector2& size);
2391 
2408  void setMinSize(const UVector2& size);
2409 
2427  const URect& getArea() const;
2428 
2446  const UVector2& getPosition() const;
2447 
2465  const UDim& getXPosition() const;
2466 
2484  const UDim& getYPosition() const;
2485 
2500  UVector2 getSize() const;
2501 
2516  UDim getWidth() const;
2517 
2532  UDim getHeight() const;
2533 
2550  const UVector2& getMaxSize() const;
2551 
2568  const UVector2& getMinSize() const;
2569 
2578  void render();
2579 
2598  void update(float elapsed);
2599 
2610  virtual void writeXMLToStream(XMLSerializer& xml_stream) const;
2611 
2620  virtual void beginInitialisation(void) {d_initialising = true;}
2621 
2629  virtual void endInitialisation(void) {d_initialising = false;}
2630 
2641  void setMousePassThroughEnabled(bool setting) {d_mousePassThroughEnabled = setting;}
2642 
2654  void setWindowRenderer(const String& name);
2655 
2664  WindowRenderer* getWindowRenderer(void) const;
2665 
2675  String getWindowRendererName(void) const;
2676 
2681  void setWritingXMLAllowed(bool allow) {d_allowWriteXML = allow;}
2682 
2693  void notifyScreenAreaChanged(bool recursive = true);
2694 
2706  void setFalagardType(const String& type, const String& rendererType = "");
2707 
2717  void setDragDropTarget(bool setting);
2718 
2739  void setRenderingSurface(RenderingSurface* surface);
2740 
2747  void invalidateRenderingSurface();
2748 
2790  void setUsingAutoRenderingSurface(bool setting);
2791 
2793  void setRotation(const Vector3& rotation);
2794 
2809  void setNonClientWindow(const bool setting);
2810 
2812  const RenderedString& getRenderedString() const;
2814  RenderedStringParser* getCustomRenderedStringParser() const;
2816  void setCustomRenderedStringParser(RenderedStringParser* parser);
2818  virtual RenderedStringParser& getRenderedStringParser() const;
2819 
2821  Vector2 getUnprojectedPosition(const Vector2& pos) const;
2822 
2824  const BiDiVisualMapping* getBiDiVisualMapping() const
2825  {return d_bidiVisualMapping;}
2826 
2827 protected:
2828  // friend classes for construction / initialisation purposes (for now)
2829  friend class System;
2830  friend class WindowManager;
2831 
2832  /*************************************************************************
2833  Event trigger methods
2834  *************************************************************************/
2844  virtual void onSized(WindowEventArgs& e);
2845 
2855  virtual void onMoved(WindowEventArgs& e);
2856 
2866  virtual void onTextChanged(WindowEventArgs& e);
2867 
2877  virtual void onFontChanged(WindowEventArgs& e);
2878 
2888  virtual void onAlphaChanged(WindowEventArgs& e);
2889 
2899  virtual void onIDChanged(WindowEventArgs& e);
2900 
2910  virtual void onShown(WindowEventArgs& e);
2911 
2921  virtual void onHidden(WindowEventArgs& e);
2922 
2932  virtual void onEnabled(WindowEventArgs& e);
2933 
2943  virtual void onDisabled(WindowEventArgs& e);
2944 
2955  virtual void onClippingChanged(WindowEventArgs& e);
2956 
2967  virtual void onParentDestroyChanged(WindowEventArgs& e);
2968 
2979  virtual void onInheritsAlphaChanged(WindowEventArgs& e);
2980 
2990  virtual void onAlwaysOnTopChanged(WindowEventArgs& e);
2991 
3001  virtual void onCaptureGained(WindowEventArgs& e);
3002 
3012  virtual void onCaptureLost(WindowEventArgs& e);
3013 
3023  virtual void onRenderingStarted(WindowEventArgs& e);
3024 
3034  virtual void onRenderingEnded(WindowEventArgs& e);
3035 
3045  virtual void onZChanged(WindowEventArgs& e);
3046 
3056  virtual void onDestructionStarted(WindowEventArgs& e);
3057 
3066  virtual void onActivated(ActivationEventArgs& e);
3067 
3077  virtual void onDeactivated(ActivationEventArgs& e);
3078 
3090  virtual void onParentSized(WindowEventArgs& e);
3091 
3100  virtual void onChildAdded(WindowEventArgs& e);
3101 
3110  virtual void onChildRemoved(WindowEventArgs& e);
3111 
3119  virtual void onMouseEnters(MouseEventArgs& e);
3120 
3128  virtual void onMouseLeaves(MouseEventArgs& e);
3129 
3138  virtual void onMouseMove(MouseEventArgs& e);
3139 
3148  virtual void onMouseWheel(MouseEventArgs& e);
3149 
3158  virtual void onMouseButtonDown(MouseEventArgs& e);
3159 
3168  virtual void onMouseButtonUp(MouseEventArgs& e);
3169 
3178  virtual void onMouseClicked(MouseEventArgs& e);
3179 
3188  virtual void onMouseDoubleClicked(MouseEventArgs& e);
3189 
3198  virtual void onMouseTripleClicked(MouseEventArgs& e);
3199 
3211  virtual void onKeyDown(KeyEventArgs& e);
3212 
3224  virtual void onKeyUp(KeyEventArgs& e);
3225 
3237  virtual void onCharacter(KeyEventArgs& e);
3238 
3249  virtual void onDragDropItemEnters(DragDropEventArgs& e);
3250 
3261  virtual void onDragDropItemLeaves(DragDropEventArgs& e);
3262 
3273  virtual void onDragDropItemDropped(DragDropEventArgs& e);
3274 
3285  virtual void onVerticalAlignmentChanged(WindowEventArgs& e);
3286 
3297  virtual void onHorizontalAlignmentChanged(WindowEventArgs& e);
3298 
3308  virtual void onWindowRendererAttached(WindowEventArgs& e);
3309 
3319  virtual void onWindowRendererDetached(WindowEventArgs& e);
3320 
3330  virtual void onRotated(WindowEventArgs& e);
3331 
3342  virtual void onNonClientChanged(WindowEventArgs& e);
3343 
3344  /*************************************************************************
3345  Implementation Functions
3346  *************************************************************************/
3358  virtual void updateSelf(float elapsed);
3359 
3371  virtual void drawSelf(const RenderingContext& ctx);
3372 
3383  void bufferGeometry(const RenderingContext& ctx);
3384 
3395  void queueGeometry(const RenderingContext& ctx);
3396 
3403  virtual void populateGeometryBuffer() {}
3404 
3416  virtual bool testClassName_impl(const String& class_name) const
3417  {
3418  if (class_name == "Window") return true;
3419  return false;
3420  }
3421 
3433  void setParent(Window* parent);
3434 
3435  Size getSize_impl(const Window* window) const;
3436 
3441  void generateAutoRepeatEvent(MouseButton button);
3442 
3451  virtual bool validateWindowRenderer(const String& name) const;
3452 
3457  void banPropertyFromXML(const Property* property);
3458 
3463  bool isPropertyBannedFromXML(const Property* property) const;
3464 
3471  bool isPropertyAtDefault(const Property* property) const;
3472 
3478  void notifyClippingChanged(void);
3479 
3481  void allocateRenderingWindow();
3482 
3484  void releaseRenderingWindow();
3485 
3487  void initialiseClippers(const RenderingContext& ctx);
3488 
3493  virtual void cleanupChildren(void);
3494 
3499  virtual void addChild_impl(Window* wnd);
3500 
3505  virtual void removeChild_impl(Window* wnd);
3506 
3511  virtual void onZChange_impl(void);
3512 
3517  void addStandardProperties(void);
3518 
3527  virtual bool moveToFront_impl(bool wasClicked);
3528 
3559  void setArea_impl(const UVector2& pos, const UVector2& size,
3560  bool topLeftSizing = false, bool fireEvents = true);
3561 
3581  void addWindowToDrawList(Window& wnd, bool at_back = false);
3582 
3594  void removeWindowFromDrawList(const Window& wnd);
3595 
3607  bool isTopOfZOrder() const;
3608 
3614  void updateGeometryRenderSettings();
3615 
3617  void transferChildSurfaces();
3618 
3620  Rect getParentElementClipIntersection(const Rect& unclipped_area) const;
3621 
3622  virtual int writePropertiesXML(XMLSerializer& xml_stream) const;
3623  virtual int writeChildWindowsXML(XMLSerializer& xml_stream) const;
3624  virtual bool writeAutoChildWindowXML(XMLSerializer& xml_stream) const;
3625 
3626  /*************************************************************************
3627  Properties for Window base class
3628  *************************************************************************/
3629  static WindowProperties::Alpha d_alphaProperty;
3630  static WindowProperties::AlwaysOnTop d_alwaysOnTopProperty;
3631  static WindowProperties::ClippedByParent d_clippedByParentProperty;
3632  static WindowProperties::DestroyedByParent d_destroyedByParentProperty;
3633  static WindowProperties::Disabled d_disabledProperty;
3634  static WindowProperties::Font d_fontProperty;
3635  static WindowProperties::ID d_IDProperty;
3636  static WindowProperties::InheritsAlpha d_inheritsAlphaProperty;
3637  static WindowProperties::MouseCursorImage d_mouseCursorProperty;
3638  static WindowProperties::RestoreOldCapture d_restoreOldCaptureProperty;
3639  static WindowProperties::Text d_textProperty;
3640  static WindowProperties::Visible d_visibleProperty;
3641  static WindowProperties::ZOrderChangeEnabled d_zOrderChangeProperty;
3642  static WindowProperties::WantsMultiClickEvents d_wantsMultiClicksProperty;
3643  static WindowProperties::MouseButtonDownAutoRepeat d_autoRepeatProperty;
3644  static WindowProperties::AutoRepeatDelay d_autoRepeatDelayProperty;
3645  static WindowProperties::AutoRepeatRate d_autoRepeatRateProperty;
3646  static WindowProperties::DistributeCapturedInputs d_distInputsProperty;
3647  static WindowProperties::CustomTooltipType d_tooltipTypeProperty;
3648  static WindowProperties::Tooltip d_tooltipProperty;
3649  static WindowProperties::InheritsTooltipText d_inheritsTooltipProperty;
3650  static WindowProperties::RiseOnClick d_riseOnClickProperty;
3651  static WindowProperties::VerticalAlignment d_vertAlignProperty;
3652  static WindowProperties::HorizontalAlignment d_horzAlignProperty;
3653  static WindowProperties::UnifiedAreaRect d_unifiedAreaRectProperty;
3654  static WindowProperties::UnifiedPosition d_unifiedPositionProperty;
3655  static WindowProperties::UnifiedXPosition d_unifiedXPositionProperty;
3656  static WindowProperties::UnifiedYPosition d_unifiedYPositionProperty;
3657  static WindowProperties::UnifiedSize d_unifiedSizeProperty;
3658  static WindowProperties::UnifiedWidth d_unifiedWidthProperty;
3659  static WindowProperties::UnifiedHeight d_unifiedHeightProperty;
3660  static WindowProperties::UnifiedMinSize d_unifiedMinSizeProperty;
3661  static WindowProperties::UnifiedMaxSize d_unifiedMaxSizeProperty;
3662  static WindowProperties::MousePassThroughEnabled d_mousePassThroughEnabledProperty;
3663  static WindowProperties::WindowRenderer d_windowRendererProperty;
3664  static WindowProperties::LookNFeel d_lookNFeelProperty;
3665  static WindowProperties::DragDropTarget d_dragDropTargetProperty;
3666  static WindowProperties::AutoRenderingSurface d_autoRenderingSurfaceProperty;
3667  static WindowProperties::Rotation d_rotationProperty;
3668  static WindowProperties::XRotation d_xRotationProperty;
3669  static WindowProperties::YRotation d_yRotationProperty;
3670  static WindowProperties::ZRotation d_zRotationProperty;
3671  static WindowProperties::NonClient d_nonClientProperty;
3672 
3673  /*************************************************************************
3674  Implementation Data
3675  *************************************************************************/
3677  typedef std::vector<Window*> ChildList;
3679  typedef std::map<String, String, String::FastLessCompare> UserStringMap;
3681  typedef std::set<String, String::FastLessCompare> BannedXMLPropertySet;
3682 
3691 
3701  bool d_active;
3702 
3711 
3716 
3726  mutable bool d_needsRedraw;
3729 
3732 
3734  float d_alpha;
3737 
3746 
3754  mutable bool d_bidiDataValid;
3763 
3765  uint d_ID;
3767  void* d_userData;
3770 
3777 
3794 
3797 
3806 
3811 
3826 
3837 
3838  mutable bool d_outerUnclippedRectValid;
3839  mutable bool d_innerUnclippedRectValid;
3840  mutable bool d_outerRectClipperValid;
3841  mutable bool d_innerRectClipperValid;
3842  mutable bool d_hitTestRectValid;
3843 
3844 private:
3845  /*************************************************************************
3846  May not copy or assign Window objects
3847  *************************************************************************/
3848  Window(const Window&) : PropertySet(), EventSet() {}
3849  Window& operator=(const Window&) {return *this;}
3850 };
3851 
3852 } // End of CEGUI namespace section
3853 
3854 
3855 #if defined(_MSC_VER)
3856 # pragma warning(pop)
3857 #endif
3858 
3859 #endif // end of guard _CEGUIWindow_h_