Crazy Eddies GUI System  0.6.2
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 
476  Window* recursiveChildSearch(const String& name) const;
477 
499  Window* getChild(uint ID) const;
500 
524  Window* getChildRecursive(const String& name) const;
525 
547  Window* getChildRecursive(uint ID) const;
548 
562  Window* getChildAtIdx(size_t idx) const {return d_children[idx];}
563 
576  Window* getActiveChild(void);
577  const Window* getActiveChild(void) const;
578 
592  bool isAncestor(const String& name) const;
593 
607  bool isAncestor(uint ID) const;
608 
621  bool isAncestor(const Window* window) const;
622 
636  Font* getFont(bool useDefault = true) const;
637 
645  const String& getText(void) const {return d_text;}
646 
655  bool inheritsAlpha(void) const {return d_inheritsAlpha;}
656 
674  float getAlpha(void) const {return d_alpha;}
675 
685  float getEffectiveAlpha(void) const;
686 
700  Rect getPixelRect(void) const;
701 
715  virtual Rect getPixelRect_impl(void) const;
716 
725  Rect getInnerRect(void) const;
726 
737  Rect getUnclippedPixelRect(void) const;
738 
750  Rect getUnclippedInnerRect(void) const;
751 
763  virtual Rect getUnclippedInnerRect_impl(void) const;
764 
773  static Window* getCaptureWindow(void) {return d_captureWindow;}
774 
783  bool isCapturedByThis(void) const {return getCaptureWindow() == this;}
784 
794  bool isCapturedByAncestor(void) const
795  {return isAncestor(getCaptureWindow());}
796 
805  bool isCapturedByChild(void) const {return isChild(getCaptureWindow());}
806 
819  virtual bool isHit(const Vector2& position) const;
820 
833  Window* getChildAtPosition(const Vector2& position) const;
834 
848  Window* getTargetChildAtPosition(const Vector2& position) const;
849 
858  Window* getParent(void) const {return d_parent;}
859 
874  const Image* getMouseCursor(bool useDefault = true) const;
875 
883  Size getPixelSize(void) const { return d_pixelSize; }
884 
896  void* getUserData(void) const {return d_userData;}
897 
912  bool restoresOldCapture(void) const {return d_restoreOldCapture;}
913 
933  bool isZOrderingEnabled(void) const;
934 
945  bool wantsMultiClickEvents(void) const;
946 
958  bool isMouseAutoRepeatEnabled(void) const;
959 
968  float getAutoRepeatDelay(void) const;
969 
979  float getAutoRepeatRate(void) const;
980 
990  bool distributesCapturedInputs(void) const;
991 
1001  bool isUsingDefaultTooltip(void) const;
1002 
1012  Tooltip* getTooltip(void) const;
1013 
1022  String getTooltipType(void) const;
1023 
1031  const String& getTooltipText(void) const;
1032 
1044  bool inheritsTooltipText(void) const;
1045 
1066  bool isRiseOnClickEnabled(void) const { return d_riseOnClick; }
1067 
1079  bool testClassName(const String& class_name) const
1080  {return testClassName_impl(class_name);}
1081 
1092  VerticalAlignment getVerticalAlignment() const {return d_vertAlign;}
1093 
1104  HorizontalAlignment getHorizontalAlignment() const {return d_horzAlign;}
1105 
1113  RenderCache& getRenderCache() { return d_renderCache; }
1114 
1123  const String& getLookNFeel() const;
1124 
1132  bool getModalState(void) const
1133  {return (System::getSingleton().getModalTarget() == this);}
1134 
1148  const String& getUserString(const String& name) const;
1149 
1161  bool isUserStringDefined(const String& name) const;
1162 
1178  Window* getActiveSibling();
1179 
1189  Size getParentPixelSize(void) const;
1190 
1200  float getParentPixelWidth(void) const;
1201 
1211  float getParentPixelHeight(void) const;
1212 
1223  bool isMousePassThroughEnabled(void) const {return d_mousePassThroughEnabled;}
1224 
1230  bool isAutoWindow(void) const {return d_autoWindow;}
1231 
1236  bool isWritingXMLAllowed(void) const {return d_allowWriteXML;}
1237 
1262  EventSet::Iterator getEventIterator() const;
1263 
1284  PropertySet::Iterator getPropertyIterator() const;
1285 
1295  bool isDragDropTarget() const;
1296 
1297  /*************************************************************************
1298  Manipulator functions
1299  *************************************************************************/
1310  void rename(const String& new_name);
1311 
1323  virtual void initialiseComponents(void) {}
1324 
1338  void setDestroyedByParent(bool setting);
1339 
1352  void setAlwaysOnTop(bool setting);
1353 
1366  void setEnabled(bool setting);
1367 
1375  void enable(void) {setEnabled(true);}
1376 
1384  void disable(void) {setEnabled(false);}
1385 
1403  void setVisible(bool setting);
1404 
1417  void show(void) {setVisible(true);}
1418 
1429  void hide(void) {setVisible(false);}
1430 
1439  void activate(void);
1440 
1450  void deactivate(void);
1451 
1464  void setClippedByParent(bool setting);
1465 
1477  void setID(uint ID);
1478 
1483  void setPrefix(String prefix) { d_windowPrefix = prefix;}
1484 
1495  void setText(const String& text);
1496 
1510  void insertText(const String& text, const String::size_type position);
1511 
1521  void appendText(const String& text);
1522 
1534  void setFont(Font* font);
1535 
1550  void setFont(const String& name);
1551 
1570  void addChildWindow(const String& name);
1571 
1588  void addChildWindow(Window* window);
1589 
1601  void removeChildWindow(const String& name);
1602 
1614  void removeChildWindow(Window* window);
1615 
1629  void removeChildWindow(uint ID);
1630 
1644  void moveToFront();
1645 
1660  void moveToBack();
1661 
1671  bool captureInput(void);
1672 
1681  void releaseInput(void);
1682 
1701  void setRestoreCapture(bool setting);
1702 
1723  void setAlpha(float alpha);
1724 
1736  void setInheritsAlpha(bool setting);
1737 
1746  void requestRedraw(void) const;
1747 
1759  void setMouseCursor(const Image* image) {d_mouseCursor = image;}
1760 
1771  void setMouseCursor(MouseCursorImage image)
1772  {d_mouseCursor = (const Image*)image;}
1773 
1793  void setMouseCursor(const String& imageset, const String& image_name);
1794 
1809  void setUserData(void* user_data) {d_userData = user_data;}
1810 
1833  void setZOrderingEnabled(bool setting);
1834 
1848  void setWantsMultiClickEvents(bool setting);
1849 
1862  void setMouseAutoRepeatEnabled(bool setting);
1863 
1875  void setAutoRepeatDelay(float delay);
1876 
1889  void setAutoRepeatRate(float rate);
1890 
1900  void setDistributesCapturedInputs(bool setting);
1901 
1907  void notifyDragDropItemEnters(DragContainer* item);
1908 
1914  void notifyDragDropItemLeaves(DragContainer* item);
1915 
1921  void notifyDragDropItemDropped(DragContainer* item);
1922 
1936  virtual void destroy(void);
1937 
1953  void setTooltip(Tooltip* tooltip);
1954 
1973  void setTooltipType(const String& tooltipType);
1974 
1986  void setTooltipText(const String& tip);
1987 
2002  void setInheritsTooltipText(bool setting);
2003 
2027  void setRiseOnClickEnabled(bool setting) { d_riseOnClick = setting; }
2028 
2042  void setVerticalAlignment(const VerticalAlignment alignment);
2043 
2057  void setHorizontalAlignment(const HorizontalAlignment alignment);
2058 
2075  virtual void setLookNFeel(const String& look);
2076 
2090  void setModalState(bool state);
2091 
2102  virtual void performChildWindowLayout();
2103 
2117  void setUserString(const String& name, const String& value);
2118 
2145  void setArea(const UDim& xpos, const UDim& ypos, const UDim& width, const UDim& height);
2146 
2168  void setArea(const UVector2& pos, const UVector2& size);
2169 
2187  void setArea(const URect& area);
2188 
2207  void setPosition(const UVector2& pos);
2208 
2226  void setXPosition(const UDim& x);
2227 
2245  void setYPosition(const UDim& y);
2246 
2261  void setSize(const UVector2& size);
2262 
2277  void setWidth(const UDim& width);
2278 
2293  void setHeight(const UDim& height);
2294 
2311  void setMaxSize(const UVector2& size);
2312 
2329  void setMinSize(const UVector2& size);
2330 
2348  const URect& getArea() const;
2349 
2367  const UVector2& getPosition() const;
2368 
2386  const UDim& getXPosition() const;
2387 
2405  const UDim& getYPosition() const;
2406 
2421  UVector2 getSize() const;
2422 
2437  UDim getWidth() const;
2438 
2453  UDim getHeight() const;
2454 
2471  const UVector2& getMaxSize() const;
2472 
2489  const UVector2& getMinSize() const;
2490 
2499  void render(void);
2500 
2519  void update(float elapsed);
2520 
2531  virtual void writeXMLToStream(XMLSerializer& xml_stream) const;
2532 
2541  virtual void beginInitialisation(void) {d_initialising=true;}
2542 
2550  virtual void endInitialisation(void) {d_initialising=false;}
2551 
2562  void setMousePassThroughEnabled(bool setting) {d_mousePassThroughEnabled = setting;}
2563 
2575  void setWindowRenderer(const String& name);
2576 
2585  WindowRenderer* getWindowRenderer(void) const;
2586 
2596  String getWindowRendererName(void) const;
2597 
2602  void setWritingXMLAllowed(bool allow) {d_allowWriteXML = allow;}
2603 
2608  void notifyScreenAreaChanged(void);
2609 
2621  void setFalagardType(const String& type, const String& rendererType = "");
2622 
2632  void setDragDropTarget(bool setting);
2633 
2634 protected:
2635  /*************************************************************************
2636  System object can trigger events directly
2637  *************************************************************************/
2638  friend class System;
2639 
2640  /*************************************************************************
2641  Event trigger methods
2642  *************************************************************************/
2652  virtual void onSized(WindowEventArgs& e);
2653 
2663  virtual void onMoved(WindowEventArgs& e);
2664 
2674  virtual void onTextChanged(WindowEventArgs& e);
2675 
2685  virtual void onFontChanged(WindowEventArgs& e);
2686 
2696  virtual void onAlphaChanged(WindowEventArgs& e);
2697 
2707  virtual void onIDChanged(WindowEventArgs& e);
2708 
2718  virtual void onShown(WindowEventArgs& e);
2719 
2729  virtual void onHidden(WindowEventArgs& e);
2730 
2740  virtual void onEnabled(WindowEventArgs& e);
2741 
2751  virtual void onDisabled(WindowEventArgs& e);
2752 
2763  virtual void onClippingChanged(WindowEventArgs& e);
2764 
2775  virtual void onParentDestroyChanged(WindowEventArgs& e);
2776 
2787  virtual void onInheritsAlphaChanged(WindowEventArgs& e);
2788 
2798  virtual void onAlwaysOnTopChanged(WindowEventArgs& e);
2799 
2809  virtual void onCaptureGained(WindowEventArgs& e);
2810 
2820  virtual void onCaptureLost(WindowEventArgs& e);
2821 
2831  virtual void onRenderingStarted(WindowEventArgs& e);
2832 
2842  virtual void onRenderingEnded(WindowEventArgs& e);
2843 
2853  virtual void onZChanged(WindowEventArgs& e);
2854 
2864  virtual void onDestructionStarted(WindowEventArgs& e);
2865 
2874  virtual void onActivated(ActivationEventArgs& e);
2875 
2885  virtual void onDeactivated(ActivationEventArgs& e);
2886 
2898  virtual void onParentSized(WindowEventArgs& e);
2899 
2908  virtual void onChildAdded(WindowEventArgs& e);
2909 
2918  virtual void onChildRemoved(WindowEventArgs& e);
2919 
2927  virtual void onMouseEnters(MouseEventArgs& e);
2928 
2936  virtual void onMouseLeaves(MouseEventArgs& e);
2937 
2946  virtual void onMouseMove(MouseEventArgs& e);
2947 
2956  virtual void onMouseWheel(MouseEventArgs& e);
2957 
2966  virtual void onMouseButtonDown(MouseEventArgs& e);
2967 
2976  virtual void onMouseButtonUp(MouseEventArgs& e);
2977 
2986  virtual void onMouseClicked(MouseEventArgs& e);
2987 
2996  virtual void onMouseDoubleClicked(MouseEventArgs& e);
2997 
3006  virtual void onMouseTripleClicked(MouseEventArgs& e);
3007 
3019  virtual void onKeyDown(KeyEventArgs& e);
3020 
3032  virtual void onKeyUp(KeyEventArgs& e);
3033 
3045  virtual void onCharacter(KeyEventArgs& e);
3046 
3057  virtual void onDragDropItemEnters(DragDropEventArgs& e);
3058 
3069  virtual void onDragDropItemLeaves(DragDropEventArgs& e);
3070 
3081  virtual void onDragDropItemDropped(DragDropEventArgs& e);
3082 
3093  virtual void onVerticalAlignmentChanged(WindowEventArgs& e);
3094 
3105  virtual void onHorizontalAlignmentChanged(WindowEventArgs& e);
3106 
3116  virtual void onWindowRendererAttached(WindowEventArgs& e);
3117 
3127  virtual void onWindowRendererDetached(WindowEventArgs& e);
3128 
3129  /*************************************************************************
3130  Implementation Functions
3131  *************************************************************************/
3143  virtual void updateSelf(float elapsed);
3144 
3156  virtual void drawSelf(float z);
3157 
3165  virtual void populateRenderCache() {}
3166 
3178  virtual bool testClassName_impl(const String& class_name) const
3179  {
3180  if (class_name=="Window") return true;
3181  return false;
3182  }
3183 
3195  void setParent(Window* parent);
3196 
3197  Size getSize_impl(const Window* window) const;
3198 
3203  void generateAutoRepeatEvent(MouseButton button);
3204 
3213  virtual bool validateWindowRenderer(const String& name) const;
3214 
3219  void banPropertyFromXML(const Property* property);
3220 
3225  bool isPropertyBannedFromXML(const Property* property) const;
3226 
3233  bool isPropertyAtDefault(const Property* property) const;
3234 
3240  void notifyClippingChanged(void);
3241 
3242  /*************************************************************************
3243  Implementation Data
3244  *************************************************************************/
3245  // child stuff
3246  typedef std::vector<Window*> ChildList;
3248  ChildList d_children;
3249 
3251  ChildList d_drawList;
3252 
3253  // general data
3256 
3259 
3262 
3265 
3268 
3270  uint d_ID;
3271 
3273  float d_alpha;
3274 
3277 
3280 
3283 
3284  // user data
3285  typedef std::map<String, String, String::FastLessCompare> UserStringMap;
3286 
3288  UserStringMap d_userStrings;
3289 
3291  void* d_userData;
3292 
3293  // positional alignments
3296 
3299 
3300  // maximum and minimum sizes
3303 
3306 
3307  // settings
3310 
3317 
3319  bool d_active;
3320 
3323 
3326 
3329 
3332 
3339 
3342 
3345 
3352 
3359 
3360  // mouse button autorepeat data
3367 
3370 
3373 
3376 
3379 
3386 
3389 
3390  // Tooltip stuff
3403 
3404  // rendering
3408  mutable bool d_needsRedraw;
3409 
3410  // Look'N'Feel stuff
3415 
3420 
3421  // Event pass through
3428 
3431 
3437  typedef std::set<String, String::FastLessCompare> BannedXMLPropertySet;
3438  BannedXMLPropertySet d_bannedXMLProperties;
3439 
3442 
3445  mutable bool d_screenUnclippedRectValid;
3448  mutable bool d_screenUnclippedInnerRectValid;
3451  mutable bool d_screenRectValid;
3454  mutable bool d_screenInnerRectValid;
3455 
3456 protected:
3457  /*************************************************************************
3458  Properties for Window base class
3459  *************************************************************************/
3460  static WindowProperties::Alpha d_alphaProperty;
3461  static WindowProperties::AlwaysOnTop d_alwaysOnTopProperty;
3462  static WindowProperties::ClippedByParent d_clippedByParentProperty;
3463  static WindowProperties::DestroyedByParent d_destroyedByParentProperty;
3464  static WindowProperties::Disabled d_disabledProperty;
3465  static WindowProperties::Font d_fontProperty;
3466  static WindowProperties::ID d_IDProperty;
3467  static WindowProperties::InheritsAlpha d_inheritsAlphaProperty;
3468  static WindowProperties::MouseCursorImage d_mouseCursorProperty;
3469  static WindowProperties::RestoreOldCapture d_restoreOldCaptureProperty;
3470  static WindowProperties::Text d_textProperty;
3471  static WindowProperties::Visible d_visibleProperty;
3472  static WindowProperties::ZOrderChangeEnabled d_zOrderChangeProperty;
3473  static WindowProperties::WantsMultiClickEvents d_wantsMultiClicksProperty;
3474  static WindowProperties::MouseButtonDownAutoRepeat d_autoRepeatProperty;
3475  static WindowProperties::AutoRepeatDelay d_autoRepeatDelayProperty;
3476  static WindowProperties::AutoRepeatRate d_autoRepeatRateProperty;
3477  static WindowProperties::DistributeCapturedInputs d_distInputsProperty;
3478  static WindowProperties::CustomTooltipType d_tooltipTypeProperty;
3479  static WindowProperties::Tooltip d_tooltipProperty;
3480  static WindowProperties::InheritsTooltipText d_inheritsTooltipProperty;
3481  static WindowProperties::RiseOnClick d_riseOnClickProperty;
3482  static WindowProperties::VerticalAlignment d_vertAlignProperty;
3483  static WindowProperties::HorizontalAlignment d_horzAlignProperty;
3484  static WindowProperties::UnifiedAreaRect d_unifiedAreaRectProperty;
3485  static WindowProperties::UnifiedPosition d_unifiedPositionProperty;
3486  static WindowProperties::UnifiedXPosition d_unifiedXPositionProperty;
3487  static WindowProperties::UnifiedYPosition d_unifiedYPositionProperty;
3488  static WindowProperties::UnifiedSize d_unifiedSizeProperty;
3489  static WindowProperties::UnifiedWidth d_unifiedWidthProperty;
3490  static WindowProperties::UnifiedHeight d_unifiedHeightProperty;
3491  static WindowProperties::UnifiedMinSize d_unifiedMinSizeProperty;
3492  static WindowProperties::UnifiedMaxSize d_unifiedMaxSizeProperty;
3493  static WindowProperties::MousePassThroughEnabled d_mousePassThroughEnabledProperty;
3494  static WindowProperties::WindowRenderer d_windowRendererProperty;
3495  static WindowProperties::LookNFeel d_lookNFeelProperty;
3496  static WindowProperties::DragDropTarget d_dragDropTargetProperty;
3497 
3498  /*************************************************************************
3499  implementation functions
3500  *************************************************************************/
3505  virtual void cleanupChildren(void);
3506 
3511  virtual void addChild_impl(Window* wnd);
3512 
3517  virtual void removeChild_impl(Window* wnd);
3518 
3523  virtual void onZChange_impl(void);
3524 
3529  void addStandardProperties(void);
3530 
3539  virtual bool moveToFront_impl(bool wasClicked);
3540 
3553  bool doRiseOnClick(void);
3554 
3585  void setArea_impl(const UVector2& pos, const UVector2& size, bool topLeftSizing = false, bool fireEvents = true);
3586 
3606  void addWindowToDrawList(Window& wnd, bool at_back = false);
3607 
3619  void removeWindowFromDrawList(const Window& wnd);
3620 
3632  bool isTopOfZOrder() const;
3633 
3634  virtual int writePropertiesXML(XMLSerializer& xml_stream) const;
3635  virtual int writeChildWindowsXML(XMLSerializer& xml_stream) const;
3636  virtual bool writeAutoChildWindowXML(XMLSerializer& xml_stream) const;
3637 
3638  /*************************************************************************
3639  May not copy or assign Window objects
3640  *************************************************************************/
3641  Window(const Window& wnd) : PropertySet(), EventSet() {}
3642  Window& operator=(const Window& wnd) {return *this;}
3643 
3644  /*************************************************************************
3645  Private implementation Data
3646  *************************************************************************/
3653 
3656 
3659 
3662 
3663  friend class WindowManager;
3664 };
3665 
3666 } // End of CEGUI namespace section
3667 
3668 
3669 #if defined(_MSC_VER)
3670 # pragma warning(pop)
3671 #endif
3672 
3673 #endif // end of guard _CEGUIWindow_h_