Crazy Eddies GUI System  0.6.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 "CEGUIRenderCache.h"
45 #include "CEGUIWindowRenderer.h"
46 #include <vector>
47 #include <set>
48 
49 
50 #if defined(_MSC_VER)
51 # pragma warning(push)
52 # pragma warning(disable : 4251)
53 #endif
54 
55 
56 // Start of CEGUI namespace section
57 namespace CEGUI
58 {
64 {
80 };
81 
87 {
103 };
104 
118 class CEGUIEXPORT Window : public PropertySet, public EventSet
119 {
120 public:
121  /*************************************************************************
122  Event name constants
123  *************************************************************************/
125  static const String EventNamespace;
126 
127  // generated internally by Window
128  static const String EventWindowUpdated;
129 
130  static const String EventParentSized;
132  static const String EventSized;
134  static const String EventMoved;
136  static const String EventTextChanged;
138  static const String EventFontChanged;
140  static const String EventAlphaChanged;
142  static const String EventIDChanged;
144  static const String EventActivated;
146  static const String EventDeactivated;
148  static const String EventShown;
150  static const String EventHidden;
152  static const String EventEnabled;
154  static const String EventDisabled;
172  static const String EventChildAdded;
174  static const String EventChildRemoved;
193 
194  // generated externally (inputs)
196  static const String EventMouseEnters;
198  static const String EventMouseLeaves;
200  static const String EventMouseMove;
202  static const String EventMouseWheel;
208  static const String EventMouseClick;
214  static const String EventKeyDown;
216  static const String EventKeyUp;
218  static const String EventCharacterKey;
219 
220  /*************************************************************************
221  Child Widget name suffix constants
222  *************************************************************************/
224  static const String TooltipNameSuffix;
227 
228 
229  /*************************************************************************
230  Construction and Destruction
231  *************************************************************************/
242  Window(const String& type, const String& name);
243 
248  virtual ~Window(void);
249 
250  /*************************************************************************
251  Accessor functions
252  *************************************************************************/
260  const String& getType(void) const;
261 
269  const String& getName(void) const {return d_name;}
270 
275  const String& getPrefix(void) const {return d_windowPrefix;}
276 
286  bool isDestroyedByParent(void) const {return d_destroyedByParent;}
287 
297  bool isAlwaysOnTop(void) const {return d_alwaysOnTop;}
298 
311  bool isDisabled(bool localOnly = false) const;
312 
329  bool isVisible(bool localOnly = false) const;
330 
345  bool isActive(void) const;
346 
356  bool isClippedByParent(void) const {return d_clippedByParent;}
357 
365  uint getID(void) const {return d_ID;}
366 
376  size_t getChildCount(void) const {return d_children.size();}
377 
390  bool isChild(const String& name) const;
391 
408  bool isChild(uint ID) const;
409 
430  bool isChildRecursive(uint ID) const;
431 
443  bool isChild(const Window* window) const;
444 
466  Window* getChild(const String& name) const;
467 
468  Window* recursiveChildSearch(const String& name) const;
469 
491  Window* getChild(uint ID) const;
492 
514  Window* getChildRecursive(uint ID) const;
515 
529  Window* getChildAtIdx(size_t idx) const {return d_children[idx];}
530 
543  Window* getActiveChild(void);
544  const Window* getActiveChild(void) const;
545 
559  bool isAncestor(const String& name) const;
560 
574  bool isAncestor(uint ID) const;
575 
588  bool isAncestor(const Window* window) const;
589 
603  Font* getFont(bool useDefault = true) const;
604 
612  const String& getText(void) const {return d_text;}
613 
622  bool inheritsAlpha(void) const {return d_inheritsAlpha;}
623 
641  float getAlpha(void) const {return d_alpha;}
642 
652  float getEffectiveAlpha(void) const;
653 
667  Rect getPixelRect(void) const;
668 
682  virtual Rect getPixelRect_impl(void) const;
683 
692  Rect getInnerRect(void) const;
693 
704  Rect getUnclippedPixelRect(void) const;
705 
717  Rect getUnclippedInnerRect(void) const;
718 
730  virtual Rect getUnclippedInnerRect_impl(void) const;
731 
740  static Window* getCaptureWindow(void) {return d_captureWindow;}
741 
750  bool isCapturedByThis(void) const {return getCaptureWindow() == this;}
751 
761  bool isCapturedByAncestor(void) const
762  {return isAncestor(getCaptureWindow());}
763 
772  bool isCapturedByChild(void) const {return isChild(getCaptureWindow());}
773 
786  virtual bool isHit(const Vector2& position) const;
787 
800  Window* getChildAtPosition(const Vector2& position) const;
801 
815  Window* getTargetChildAtPosition(const Vector2& position) const;
816 
825  Window* getParent(void) const {return d_parent;}
826 
841  const Image* getMouseCursor(bool useDefault = true) const;
842 
850  Size getPixelSize(void) const { return d_pixelSize; }
851 
863  void* getUserData(void) const {return d_userData;}
864 
879  bool restoresOldCapture(void) const {return d_restoreOldCapture;}
880 
891  bool isZOrderingEnabled(void) const;
892 
903  bool wantsMultiClickEvents(void) const;
904 
916  bool isMouseAutoRepeatEnabled(void) const;
917 
926  float getAutoRepeatDelay(void) const;
927 
937  float getAutoRepeatRate(void) const;
938 
948  bool distributesCapturedInputs(void) const;
949 
959  bool isUsingDefaultTooltip(void) const;
960 
970  Tooltip* getTooltip(void) const;
971 
980  String getTooltipType(void) const;
981 
989  const String& getTooltipText(void) const;
990 
1002  bool inheritsTooltipText(void) const;
1003 
1015  bool isRiseOnClickEnabled(void) const { return d_riseOnClick; }
1016 
1028  bool testClassName(const String& class_name) const
1029  {return testClassName_impl(class_name);}
1030 
1041  VerticalAlignment getVerticalAlignment() const {return d_vertAlign;}
1042 
1053  HorizontalAlignment getHorizontalAlignment() const {return d_horzAlign;}
1054 
1062  RenderCache& getRenderCache() { return d_renderCache; }
1063 
1072  const String& getLookNFeel() const;
1073 
1081  bool getModalState(void) const
1082  {return (System::getSingleton().getModalTarget() == this);}
1083 
1097  const String& getUserString(const String& name) const;
1098 
1110  bool isUserStringDefined(const String& name) const;
1111 
1127  Window* getActiveSibling();
1128 
1138  Size getParentPixelSize(void) const;
1139 
1149  float getParentPixelWidth(void) const;
1150 
1160  float getParentPixelHeight(void) const;
1161 
1172  bool isMousePassThroughEnabled(void) const {return d_mousePassThroughEnabled;}
1173 
1179  bool isAutoWindow(void) const {return d_autoWindow;}
1180 
1185  bool isWritingXMLAllowed(void) const {return d_allowWriteXML;}
1186 
1211  EventSet::Iterator getEventIterator() const;
1212 
1233  PropertySet::Iterator getPropertyIterator() const;
1234 
1244  bool isDragDropTarget() const;
1245 
1246  /*************************************************************************
1247  Manipulator functions
1248  *************************************************************************/
1259  void rename(const String& new_name);
1260 
1272  virtual void initialiseComponents(void) {}
1273 
1287  void setDestroyedByParent(bool setting);
1288 
1301  void setAlwaysOnTop(bool setting);
1302 
1315  void setEnabled(bool setting);
1316 
1324  void enable(void) {setEnabled(true);}
1325 
1333  void disable(void) {setEnabled(false);}
1334 
1346  void setVisible(bool setting);
1347 
1355  void show(void) {setVisible(true);}
1356 
1364  void hide(void) {setVisible(false);}
1365 
1374  void activate(void);
1375 
1385  void deactivate(void);
1386 
1399  void setClippedByParent(bool setting);
1400 
1412  void setID(uint ID);
1413 
1418  void setPrefix(String prefix) { d_windowPrefix = prefix;}
1419 
1430  void setText(const String& text);
1431 
1443  void setFont(Font* font);
1444 
1459  void setFont(const String& name);
1460 
1479  void addChildWindow(const String& name);
1480 
1497  void addChildWindow(Window* window);
1498 
1510  void removeChildWindow(const String& name);
1511 
1523  void removeChildWindow(Window* window);
1524 
1538  void removeChildWindow(uint ID);
1539 
1553  void moveToFront();
1554 
1569  void moveToBack();
1570 
1580  bool captureInput(void);
1581 
1590  void releaseInput(void);
1591 
1610  void setRestoreCapture(bool setting);
1611 
1632  void setAlpha(float alpha);
1633 
1645  void setInheritsAlpha(bool setting);
1646 
1655  void requestRedraw(void) const;
1656 
1668  void setMouseCursor(const Image* image) {d_mouseCursor = image;}
1669 
1680  void setMouseCursor(MouseCursorImage image)
1681  {d_mouseCursor = (const Image*)image;}
1682 
1702  void setMouseCursor(const String& imageset, const String& image_name);
1703 
1718  void setUserData(void* user_data) {d_userData = user_data;}
1719 
1733  void setZOrderingEnabled(bool setting);
1734 
1748  void setWantsMultiClickEvents(bool setting);
1749 
1762  void setMouseAutoRepeatEnabled(bool setting);
1763 
1775  void setAutoRepeatDelay(float delay);
1776 
1789  void setAutoRepeatRate(float rate);
1790 
1800  void setDistributesCapturedInputs(bool setting);
1801 
1807  void notifyDragDropItemEnters(DragContainer* item);
1808 
1814  void notifyDragDropItemLeaves(DragContainer* item);
1815 
1821  void notifyDragDropItemDropped(DragContainer* item);
1822 
1836  virtual void destroy(void);
1837 
1853  void setTooltip(Tooltip* tooltip);
1854 
1873  void setTooltipType(const String& tooltipType);
1874 
1886  void setTooltipText(const String& tip);
1887 
1902  void setInheritsTooltipText(bool setting);
1903 
1918  void setRiseOnClickEnabled(bool setting) { d_riseOnClick = setting; }
1919 
1933  void setVerticalAlignment(const VerticalAlignment alignment);
1934 
1948  void setHorizontalAlignment(const HorizontalAlignment alignment);
1949 
1966  virtual void setLookNFeel(const String& look);
1967 
1981  void setModalState(bool state);
1982 
1993  virtual void performChildWindowLayout();
1994 
2008  void setUserString(const String& name, const String& value);
2009 
2036  void setArea(const UDim& xpos, const UDim& ypos, const UDim& width, const UDim& height);
2037 
2059  void setArea(const UVector2& pos, const UVector2& size);
2060 
2078  void setArea(const URect& area);
2079 
2098  void setPosition(const UVector2& pos);
2099 
2117  void setXPosition(const UDim& x);
2118 
2136  void setYPosition(const UDim& y);
2137 
2152  void setSize(const UVector2& size);
2153 
2168  void setWidth(const UDim& width);
2169 
2184  void setHeight(const UDim& height);
2185 
2202  void setMaxSize(const UVector2& size);
2203 
2220  void setMinSize(const UVector2& size);
2221 
2239  const URect& getArea() const;
2240 
2258  const UVector2& getPosition() const;
2259 
2277  const UDim& getXPosition() const;
2278 
2296  const UDim& getYPosition() const;
2297 
2312  UVector2 getSize() const;
2313 
2328  UDim getWidth() const;
2329 
2344  UDim getHeight() const;
2345 
2362  const UVector2& getMaxSize() const;
2363 
2380  const UVector2& getMinSize() const;
2381 
2390  void render(void);
2391 
2410  void update(float elapsed);
2411 
2422  virtual void writeXMLToStream(XMLSerializer& xml_stream) const;
2423 
2432  virtual void beginInitialisation(void) {d_initialising=true;}
2433 
2441  virtual void endInitialisation(void) {d_initialising=false;}
2442 
2453  void setMousePassThroughEnabled(bool setting) {d_mousePassThroughEnabled = setting;}
2454 
2466  void setWindowRenderer(const String& name);
2467 
2476  WindowRenderer* getWindowRenderer(void) const;
2477 
2487  String getWindowRendererName(void) const;
2488 
2493  void setWritingXMLAllowed(bool allow) {d_allowWriteXML = allow;}
2494 
2499  void notifyScreenAreaChanged(void);
2500 
2512  void setFalagardType(const String& type, const String& rendererType = "");
2513 
2523  void setDragDropTarget(bool setting);
2524 
2525 protected:
2526  /*************************************************************************
2527  System object can trigger events directly
2528  *************************************************************************/
2529  friend class System;
2530 
2531  /*************************************************************************
2532  Event trigger methods
2533  *************************************************************************/
2543  virtual void onSized(WindowEventArgs& e);
2544 
2554  virtual void onMoved(WindowEventArgs& e);
2555 
2565  virtual void onTextChanged(WindowEventArgs& e);
2566 
2576  virtual void onFontChanged(WindowEventArgs& e);
2577 
2587  virtual void onAlphaChanged(WindowEventArgs& e);
2588 
2598  virtual void onIDChanged(WindowEventArgs& e);
2599 
2609  virtual void onShown(WindowEventArgs& e);
2610 
2620  virtual void onHidden(WindowEventArgs& e);
2621 
2631  virtual void onEnabled(WindowEventArgs& e);
2632 
2642  virtual void onDisabled(WindowEventArgs& e);
2643 
2654  virtual void onClippingChanged(WindowEventArgs& e);
2655 
2666  virtual void onParentDestroyChanged(WindowEventArgs& e);
2667 
2678  virtual void onInheritsAlphaChanged(WindowEventArgs& e);
2679 
2689  virtual void onAlwaysOnTopChanged(WindowEventArgs& e);
2690 
2700  virtual void onCaptureGained(WindowEventArgs& e);
2701 
2711  virtual void onCaptureLost(WindowEventArgs& e);
2712 
2722  virtual void onRenderingStarted(WindowEventArgs& e);
2723 
2733  virtual void onRenderingEnded(WindowEventArgs& e);
2734 
2744  virtual void onZChanged(WindowEventArgs& e);
2745 
2755  virtual void onDestructionStarted(WindowEventArgs& e);
2756 
2765  virtual void onActivated(ActivationEventArgs& e);
2766 
2776  virtual void onDeactivated(ActivationEventArgs& e);
2777 
2789  virtual void onParentSized(WindowEventArgs& e);
2790 
2799  virtual void onChildAdded(WindowEventArgs& e);
2800 
2809  virtual void onChildRemoved(WindowEventArgs& e);
2810 
2818  virtual void onMouseEnters(MouseEventArgs& e);
2819 
2827  virtual void onMouseLeaves(MouseEventArgs& e);
2828 
2837  virtual void onMouseMove(MouseEventArgs& e);
2838 
2847  virtual void onMouseWheel(MouseEventArgs& e);
2848 
2857  virtual void onMouseButtonDown(MouseEventArgs& e);
2858 
2867  virtual void onMouseButtonUp(MouseEventArgs& e);
2868 
2877  virtual void onMouseClicked(MouseEventArgs& e);
2878 
2887  virtual void onMouseDoubleClicked(MouseEventArgs& e);
2888 
2897  virtual void onMouseTripleClicked(MouseEventArgs& e);
2898 
2910  virtual void onKeyDown(KeyEventArgs& e);
2911 
2923  virtual void onKeyUp(KeyEventArgs& e);
2924 
2936  virtual void onCharacter(KeyEventArgs& e);
2937 
2948  virtual void onDragDropItemEnters(DragDropEventArgs& e);
2949 
2960  virtual void onDragDropItemLeaves(DragDropEventArgs& e);
2961 
2972  virtual void onDragDropItemDropped(DragDropEventArgs& e);
2973 
2984  virtual void onVerticalAlignmentChanged(WindowEventArgs& e);
2985 
2996  virtual void onHorizontalAlignmentChanged(WindowEventArgs& e);
2997 
3007  virtual void onWindowRendererAttached(WindowEventArgs& e);
3008 
3018  virtual void onWindowRendererDetached(WindowEventArgs& e);
3019 
3020  /*************************************************************************
3021  Implementation Functions
3022  *************************************************************************/
3034  virtual void updateSelf(float elapsed);
3035 
3047  virtual void drawSelf(float z);
3048 
3056  virtual void populateRenderCache() {}
3057 
3069  virtual bool testClassName_impl(const String& class_name) const
3070  {
3071  if (class_name=="Window") return true;
3072  return false;
3073  }
3074 
3086  void setParent(Window* parent);
3087 
3088  Size getSize_impl(const Window* window) const;
3089 
3094  void generateAutoRepeatEvent(MouseButton button);
3095 
3104  virtual bool validateWindowRenderer(const String& name) const;
3105 
3110  void banPropertyFromXML(const Property* property);
3111 
3116  bool isPropertyBannedFromXML(const Property* property) const;
3117 
3124  bool isPropertyAtDefault(const Property* property) const;
3125 
3131  void notifyClippingChanged(void);
3132 
3133  /*************************************************************************
3134  Implementation Data
3135  *************************************************************************/
3136  // child stuff
3137  typedef std::vector<Window*> ChildList;
3139  ChildList d_children;
3140 
3142  ChildList d_drawList;
3143 
3144  // general data
3147 
3150 
3153 
3156 
3159 
3161  uint d_ID;
3162 
3164  float d_alpha;
3165 
3168 
3171 
3174 
3175  // user data
3176  typedef std::map<String, String, String::FastLessCompare> UserStringMap;
3177 
3179  UserStringMap d_userStrings;
3180 
3182  void* d_userData;
3183 
3184  // positional alignments
3187 
3190 
3191  // maximum and minimum sizes
3194 
3197 
3198  // settings
3201 
3208 
3210  bool d_active;
3211 
3214 
3217 
3220 
3223 
3230 
3233 
3236 
3243 
3250 
3251  // mouse button autorepeat data
3258 
3261 
3264 
3267 
3270 
3277 
3280 
3281  // Tooltip stuff
3294 
3295  // rendering
3299  mutable bool d_needsRedraw;
3300 
3301  // Look'N'Feel stuff
3306 
3311 
3312  // Event pass through
3319 
3322 
3328  typedef std::set<String, String::FastLessCompare> BannedXMLPropertySet;
3329  BannedXMLPropertySet d_bannedXMLProperties;
3330 
3333 
3336  mutable bool d_screenUnclippedRectValid;
3339  mutable bool d_screenUnclippedInnerRectValid;
3342  mutable bool d_screenRectValid;
3345  mutable bool d_screenInnerRectValid;
3346 
3347 protected:
3348  /*************************************************************************
3349  Properties for Window base class
3350  *************************************************************************/
3351  static WindowProperties::Alpha d_alphaProperty;
3352  static WindowProperties::AlwaysOnTop d_alwaysOnTopProperty;
3353  static WindowProperties::ClippedByParent d_clippedByParentProperty;
3354  static WindowProperties::DestroyedByParent d_destroyedByParentProperty;
3355  static WindowProperties::Disabled d_disabledProperty;
3356  static WindowProperties::Font d_fontProperty;
3357  static WindowProperties::ID d_IDProperty;
3358  static WindowProperties::InheritsAlpha d_inheritsAlphaProperty;
3359  static WindowProperties::MouseCursorImage d_mouseCursorProperty;
3360  static WindowProperties::RestoreOldCapture d_restoreOldCaptureProperty;
3361  static WindowProperties::Text d_textProperty;
3362  static WindowProperties::Visible d_visibleProperty;
3363  static WindowProperties::ZOrderChangeEnabled d_zOrderChangeProperty;
3364  static WindowProperties::WantsMultiClickEvents d_wantsMultiClicksProperty;
3365  static WindowProperties::MouseButtonDownAutoRepeat d_autoRepeatProperty;
3366  static WindowProperties::AutoRepeatDelay d_autoRepeatDelayProperty;
3367  static WindowProperties::AutoRepeatRate d_autoRepeatRateProperty;
3368  static WindowProperties::DistributeCapturedInputs d_distInputsProperty;
3369  static WindowProperties::CustomTooltipType d_tooltipTypeProperty;
3370  static WindowProperties::Tooltip d_tooltipProperty;
3371  static WindowProperties::InheritsTooltipText d_inheritsTooltipProperty;
3372  static WindowProperties::RiseOnClick d_riseOnClickProperty;
3373  static WindowProperties::VerticalAlignment d_vertAlignProperty;
3374  static WindowProperties::HorizontalAlignment d_horzAlignProperty;
3375  static WindowProperties::UnifiedAreaRect d_unifiedAreaRectProperty;
3376  static WindowProperties::UnifiedPosition d_unifiedPositionProperty;
3377  static WindowProperties::UnifiedXPosition d_unifiedXPositionProperty;
3378  static WindowProperties::UnifiedYPosition d_unifiedYPositionProperty;
3379  static WindowProperties::UnifiedSize d_unifiedSizeProperty;
3380  static WindowProperties::UnifiedWidth d_unifiedWidthProperty;
3381  static WindowProperties::UnifiedHeight d_unifiedHeightProperty;
3382  static WindowProperties::UnifiedMinSize d_unifiedMinSizeProperty;
3383  static WindowProperties::UnifiedMaxSize d_unifiedMaxSizeProperty;
3384  static WindowProperties::MousePassThroughEnabled d_mousePassThroughEnabledProperty;
3385  static WindowProperties::WindowRenderer d_windowRendererProperty;
3386  static WindowProperties::LookNFeel d_lookNFeelProperty;
3387  static WindowProperties::DragDropTarget d_dragDropTargetProperty;
3388 
3389  /*************************************************************************
3390  implementation functions
3391  *************************************************************************/
3396  virtual void cleanupChildren(void);
3397 
3402  virtual void addChild_impl(Window* wnd);
3403 
3408  virtual void removeChild_impl(Window* wnd);
3409 
3414  virtual void onZChange_impl(void);
3415 
3420  void addStandardProperties(void);
3421 
3430  virtual bool moveToFront_impl(bool wasClicked);
3431 
3439  bool doRiseOnClick(void);
3440 
3471  void setArea_impl(const UVector2& pos, const UVector2& size, bool topLeftSizing = false, bool fireEvents = true);
3472 
3492  void addWindowToDrawList(Window& wnd, bool at_back = false);
3493 
3505  void removeWindowFromDrawList(const Window& wnd);
3506 
3518  bool isTopOfZOrder() const;
3519 
3520  virtual int writePropertiesXML(XMLSerializer& xml_stream) const;
3521  virtual int writeChildWindowsXML(XMLSerializer& xml_stream) const;
3522  virtual bool writeAutoChildWindowXML(XMLSerializer& xml_stream) const;
3523 
3524  /*************************************************************************
3525  May not copy or assign Window objects
3526  *************************************************************************/
3527  Window(const Window& wnd) : PropertySet(), EventSet() {}
3528  Window& operator=(const Window& wnd) {return *this;}
3529 
3530  /*************************************************************************
3531  Private implementation Data
3532  *************************************************************************/
3539 
3542 
3545 
3548 
3549  friend class WindowManager;
3550 };
3551 
3552 } // End of CEGUI namespace section
3553 
3554 
3555 #if defined(_MSC_VER)
3556 # pragma warning(pop)
3557 #endif
3558 
3559 #endif // end of guard _CEGUIWindow_h_