CEGUIWindow.h

00001 /***********************************************************************
00002     filename:   CEGUIWindow.h
00003     created:    21/2/2004
00004     author:     Paul D Turner
00005 
00006     purpose:    Defines abstract base class for Window objects
00007 *************************************************************************/
00008 /***************************************************************************
00009  *   Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
00010  *
00011  *   Permission is hereby granted, free of charge, to any person obtaining
00012  *   a copy of this software and associated documentation files (the
00013  *   "Software"), to deal in the Software without restriction, including
00014  *   without limitation the rights to use, copy, modify, merge, publish,
00015  *   distribute, sublicense, and/or sell copies of the Software, and to
00016  *   permit persons to whom the Software is furnished to do so, subject to
00017  *   the following conditions:
00018  *
00019  *   The above copyright notice and this permission notice shall be
00020  *   included in all copies or substantial portions of the Software.
00021  *
00022  *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
00023  *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
00024  *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
00025  *   IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
00026  *   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
00027  *   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
00028  *   OTHER DEALINGS IN THE SOFTWARE.
00029  ***************************************************************************/
00030 #ifndef _CEGUIWindow_h_
00031 #define _CEGUIWindow_h_
00032 
00033 #include "CEGUIBase.h"
00034 #include "CEGUIString.h"
00035 #include "CEGUIVector.h"
00036 #include "CEGUIRect.h"
00037 #include "CEGUISize.h"
00038 #include "CEGUIEventSet.h"
00039 #include "CEGUIPropertySet.h"
00040 #include "CEGUISystem.h"
00041 #include "CEGUIInputEvent.h"
00042 #include "CEGUIWindowProperties.h"
00043 #include "CEGUIUDim.h"
00044 #include "CEGUIRenderCache.h"
00045 #include "CEGUIWindowRenderer.h"
00046 #include <vector>
00047 #include <set>
00048 
00049 
00050 #if defined(_MSC_VER)
00051 #   pragma warning(push)
00052 #   pragma warning(disable : 4251)
00053 #endif
00054 
00055 
00056 // Start of CEGUI namespace section
00057 namespace CEGUI
00058 {
00063 enum VerticalAlignment
00064 {
00069     VA_TOP,
00074     VA_CENTRE,
00079     VA_BOTTOM
00080 };
00081 
00086 enum HorizontalAlignment
00087 {
00092     HA_LEFT,
00097     HA_CENTRE,
00102     HA_RIGHT
00103 };
00104 
00118 class CEGUIEXPORT Window : public PropertySet, public EventSet
00119 {
00120 public:
00121     /*************************************************************************
00122         Event name constants
00123     *************************************************************************/
00125     static const String EventNamespace;
00126 
00127     // generated internally by Window
00129     static const String EventParentSized;
00131     static const String EventSized;
00133     static const String EventMoved;
00135     static const String EventTextChanged;
00137     static const String EventFontChanged;
00139     static const String EventAlphaChanged;
00141     static const String EventIDChanged;
00143     static const String EventActivated;
00145     static const String EventDeactivated;
00147     static const String EventShown;
00149     static const String EventHidden;
00151     static const String EventEnabled;
00153     static const String EventDisabled;
00155     static const String EventClippedByParentChanged;
00157     static const String EventDestroyedByParentChanged;
00159     static const String EventInheritsAlphaChanged;
00161     static const String EventAlwaysOnTopChanged;
00163     static const String EventInputCaptureGained;
00165     static const String EventInputCaptureLost;
00167     static const String EventRenderingStarted;
00169     static const String EventRenderingEnded;
00171     static const String EventChildAdded;
00173     static const String EventChildRemoved;
00175     static const String EventDestructionStarted;
00177     static const String EventZOrderChanged;
00179     static const String EventDragDropItemEnters;
00181     static const String EventDragDropItemLeaves;
00183     static const String EventDragDropItemDropped;
00185     static const String EventVerticalAlignmentChanged;
00187     static const String EventHorizontalAlignmentChanged;
00189     static const String EventWindowRendererAttached;
00191     static const String EventWindowRendererDetached;
00192 
00193     // generated externally (inputs)
00195     static const String EventMouseEnters;
00197     static const String EventMouseLeaves;
00199     static const String EventMouseMove;
00201     static const String EventMouseWheel;
00203     static const String EventMouseButtonDown;
00205     static const String EventMouseButtonUp;
00207     static const String EventMouseClick;
00209     static const String EventMouseDoubleClick;
00211     static const String EventMouseTripleClick;
00213     static const String EventKeyDown;
00215     static const String EventKeyUp;
00217     static const String EventCharacterKey;
00218 
00219     /*************************************************************************
00220         Child Widget name suffix constants
00221     *************************************************************************/
00223     static const String TooltipNameSuffix;
00225     static const String AutoWidgetNameSuffix;
00226 
00227 
00228     /*************************************************************************
00229         Construction and Destruction
00230     *************************************************************************/
00241     Window(const String& type, const String& name);
00242 
00247     virtual ~Window(void);
00248 
00249     /*************************************************************************
00250         Accessor functions
00251     *************************************************************************/
00259     const String& getType(void) const;
00260 
00268     const String& getName(void) const  {return d_name;}
00269 
00279     bool    isDestroyedByParent(void) const    {return d_destroyedByParent;}
00280 
00290     bool isAlwaysOnTop(void) const  {return d_alwaysOnTop;}
00291 
00304     bool isDisabled(bool localOnly = false) const;
00305 
00322     bool isVisible(bool localOnly = false) const;
00323 
00338     bool isActive(void) const;
00339 
00349     bool isClippedByParent(void) const {return d_clippedByParent;}
00350 
00358     uint getID(void) const {return d_ID;}
00359 
00369     size_t getChildCount(void) const  {return d_children.size();}
00370 
00383     bool isChild(const String& name) const;
00384 
00401     bool isChild(uint ID) const;
00402 
00423     bool isChildRecursive(uint ID) const;
00424 
00436     bool isChild(const Window* window) const;
00437 
00459     Window* getChild(const String& name) const;
00460 
00482     Window* getChild(uint ID) const;
00483 
00505     Window* getChildRecursive(uint ID) const;
00506 
00520     Window* getChildAtIdx(size_t idx) const {return d_children[idx];}
00521 
00534     Window* getActiveChild(void);
00535     const Window* getActiveChild(void) const;
00536 
00550     bool isAncestor(const String& name) const;
00551 
00565     bool isAncestor(uint ID) const;
00566 
00579     bool isAncestor(const Window* window) const;
00580 
00594     Font* getFont(bool useDefault = true) const;
00595 
00603     const String& getText(void) const   {return d_text;}
00604 
00613     bool inheritsAlpha(void) const  {return d_inheritsAlpha;}
00614 
00632     float getAlpha(void) const  {return d_alpha;}
00633 
00643     float getEffectiveAlpha(void) const;
00644 
00658     Rect getPixelRect(void) const;
00659 
00673     virtual Rect getPixelRect_impl(void) const;
00674 
00683     Rect getInnerRect(void) const;
00684 
00695     Rect getUnclippedPixelRect(void) const;
00696 
00708     Rect getUnclippedInnerRect(void) const;
00709 
00721     virtual Rect getUnclippedInnerRect_impl(void) const;
00722 
00731     static Window* getCaptureWindow(void)   {return d_captureWindow;}
00732 
00741     bool isCapturedByThis(void) const   {return getCaptureWindow() == this;}
00742 
00752     bool isCapturedByAncestor(void) const
00753          {return isAncestor(getCaptureWindow());}
00754 
00763     bool isCapturedByChild(void) const  {return isChild(getCaptureWindow());}
00764 
00777     virtual bool isHit(const Vector2& position) const;
00778 
00791     Window* getChildAtPosition(const Vector2& position) const;
00792 
00806     Window* getTargetChildAtPosition(const Vector2& position) const;
00807 
00816     Window* getParent(void) const   {return d_parent;}
00817 
00832     const Image* getMouseCursor(bool useDefault = true) const;
00833 
00841     Size getPixelSize(void) const    { return d_pixelSize; }
00842 
00854     void* getUserData(void) const   {return d_userData;}
00855 
00870     bool restoresOldCapture(void) const     {return d_restoreOldCapture;}
00871 
00882     bool isZOrderingEnabled(void) const;
00883 
00894     bool wantsMultiClickEvents(void) const;
00895 
00907     bool isMouseAutoRepeatEnabled(void) const;
00908 
00917     float getAutoRepeatDelay(void) const;
00918 
00928     float getAutoRepeatRate(void) const;
00929 
00939     bool distributesCapturedInputs(void) const;
00940 
00950     bool isUsingDefaultTooltip(void) const;
00951 
00961     Tooltip* getTooltip(void) const;
00962 
00971     String getTooltipType(void) const;
00972 
00980     const String& getTooltipText(void) const;
00981 
00993     bool inheritsTooltipText(void) const;
00994 
01006     bool isRiseOnClickEnabled(void) const   { return d_riseOnClick; }
01007 
01019     bool testClassName(const String& class_name) const
01020          {return testClassName_impl(class_name);}
01021 
01032     VerticalAlignment getVerticalAlignment() const  {return d_vertAlign;}
01033 
01044     HorizontalAlignment getHorizontalAlignment() const  {return d_horzAlign;}
01045 
01053     RenderCache& getRenderCache()   { return d_renderCache; }
01054 
01063     const String& getLookNFeel() const;
01064 
01072     bool getModalState(void) const
01073          {return (System::getSingleton().getModalTarget() == this);}
01074 
01088     const String& getUserString(const String& name) const;
01089 
01101     bool isUserStringDefined(const String& name) const;
01102 
01118     Window* getActiveSibling();
01119 
01129     Size getParentPixelSize(void) const;
01130 
01140     float getParentPixelWidth(void) const;
01141 
01151     float getParentPixelHeight(void) const;
01152 
01163     bool isMousePassThroughEnabled(void) const  {return d_mousePassThroughEnabled;}
01164 
01170     bool isAutoWindow(void) const   {return d_autoWindow;}
01171 
01176     bool isWritingXMLAllowed(void) const    {return d_allowWriteXML;}
01177 
01202     EventSet::Iterator getEventIterator() const;
01203 
01224     PropertySet::Iterator getPropertyIterator() const;
01225 
01226     /*************************************************************************
01227         Manipulator functions
01228     *************************************************************************/
01239     void rename(const String& new_name);
01240 
01252     virtual void initialiseComponents(void) {}
01253 
01267     void setDestroyedByParent(bool setting);
01268 
01281     void setAlwaysOnTop(bool setting);
01282 
01295     void setEnabled(bool setting);
01296 
01304     void enable(void)   {setEnabled(true);}
01305 
01313     void disable(void)  {setEnabled(false);}
01314 
01326     void setVisible(bool setting);
01327 
01335     void show(void)     {setVisible(true);}
01336 
01344     void hide(void)     {setVisible(false);}
01345 
01354     void activate(void);
01355 
01365     void deactivate(void);
01366 
01379     void setClippedByParent(bool setting);
01380 
01392     void setID(uint ID);
01393 
01404     void setText(const String& text);
01405 
01417     void setFont(Font* font);
01418 
01433     void setFont(const String& name);
01434 
01453     void addChildWindow(const String& name);
01454 
01471     void addChildWindow(Window* window);
01472 
01484     void removeChildWindow(const String& name);
01485 
01497     void removeChildWindow(Window* window);
01498 
01512     void removeChildWindow(uint ID);
01513 
01527     void moveToFront();
01528 
01543     void moveToBack();
01544 
01554     bool captureInput(void);
01555 
01564     void releaseInput(void);
01565 
01584     void setRestoreCapture(bool setting);
01585 
01606     void setAlpha(float alpha);
01607 
01619     void setInheritsAlpha(bool setting);
01620 
01629     void requestRedraw(void) const;
01630 
01642     void setMouseCursor(const Image* image)     {d_mouseCursor = image;}
01643 
01654     void setMouseCursor(MouseCursorImage image)
01655          {d_mouseCursor = (const Image*)image;}
01656 
01676     void setMouseCursor(const String& imageset, const String& image_name);
01677 
01692     void setUserData(void* user_data)   {d_userData = user_data;}
01693 
01707     void    setZOrderingEnabled(bool setting);
01708 
01722     void setWantsMultiClickEvents(bool setting);
01723 
01736     void setMouseAutoRepeatEnabled(bool setting);
01737 
01749     void setAutoRepeatDelay(float delay);
01750 
01763     void setAutoRepeatRate(float rate);
01764 
01774     void setDistributesCapturedInputs(bool setting);
01775 
01781     void notifyDragDropItemEnters(DragContainer* item);
01782 
01788     void notifyDragDropItemLeaves(DragContainer* item);
01789 
01795     void notifyDragDropItemDropped(DragContainer* item);
01796 
01810     virtual void destroy(void);
01811 
01827     void setTooltip(Tooltip* tooltip);
01828 
01847     void setTooltipType(const String& tooltipType);
01848 
01860     void setTooltipText(const String& tip);
01861 
01876     void setInheritsTooltipText(bool setting);
01877 
01892     void setRiseOnClickEnabled(bool setting)    { d_riseOnClick = setting; }
01893 
01907     void setVerticalAlignment(const VerticalAlignment alignment);
01908 
01922     void setHorizontalAlignment(const HorizontalAlignment alignment);
01923 
01940     void setLookNFeel(const String& look);
01941 
01955     void setModalState(bool state);
01956 
01967     virtual void performChildWindowLayout();
01968 
01982     void setUserString(const String& name, const String& value);
01983 
02010     void setArea(const UDim& xpos, const UDim& ypos, const UDim& width, const UDim& height);
02011 
02033     void setArea(const UVector2& pos, const UVector2& size);
02034 
02052     void setArea(const URect& area);
02053 
02072     void setPosition(const UVector2& pos);
02073 
02091     void setXPosition(const UDim& x);
02092 
02110     void setYPosition(const UDim& y);
02111 
02126     void setSize(const UVector2& size);
02127 
02142     void setWidth(const UDim& width);
02143 
02158     void setHeight(const UDim& height);
02159 
02176     void setMaxSize(const UVector2& size);
02177 
02194     void setMinSize(const UVector2& size);
02195 
02213     const URect& getArea() const;
02214 
02232     const UVector2& getPosition() const;
02233 
02251     const UDim& getXPosition() const;
02252 
02270     const UDim& getYPosition() const;
02271 
02286     UVector2 getSize() const;
02287 
02302     UDim getWidth() const;
02303 
02318     UDim getHeight() const;
02319 
02336     const UVector2& getMaxSize() const;
02337 
02354     const UVector2& getMinSize() const;
02355 
02364     void render(void);
02365 
02384     void update(float elapsed);
02385 
02396     virtual void writeXMLToStream(XMLSerializer& xml_stream) const;
02397 
02406     virtual void beginInitialisation(void)     {d_initialising=true;}
02407 
02415     virtual void endInitialisation(void)       {d_initialising=false;}
02416 
02427     void setMousePassThroughEnabled(bool setting)   {d_mousePassThroughEnabled = setting;}
02428 
02440     void setWindowRenderer(const String& name);
02441 
02450     WindowRenderer* getWindowRenderer(void) const;
02451 
02461     String getWindowRendererName(void) const;
02462 
02467     void setWritingXMLAllowed(bool allow)   {d_allowWriteXML = allow;}
02468 
02473     void notifyScreenAreaChanged(void);
02474 
02475 protected:
02476     /*************************************************************************
02477         System object can trigger events directly
02478     *************************************************************************/
02479     friend class System;
02480 
02481     /*************************************************************************
02482         Event trigger methods
02483     *************************************************************************/
02493     virtual void onSized(WindowEventArgs& e);
02494 
02504     virtual void onMoved(WindowEventArgs& e);
02505 
02515     virtual void onTextChanged(WindowEventArgs& e);
02516 
02526     virtual void onFontChanged(WindowEventArgs& e);
02527 
02537     virtual void onAlphaChanged(WindowEventArgs& e);
02538 
02548     virtual void onIDChanged(WindowEventArgs& e);
02549 
02559     virtual void onShown(WindowEventArgs& e);
02560 
02570     virtual void onHidden(WindowEventArgs& e);
02571 
02581     virtual void onEnabled(WindowEventArgs& e);
02582 
02592     virtual void onDisabled(WindowEventArgs& e);
02593 
02604     virtual void onClippingChanged(WindowEventArgs& e);
02605 
02616     virtual void onParentDestroyChanged(WindowEventArgs& e);
02617 
02628     virtual void onInheritsAlphaChanged(WindowEventArgs& e);
02629 
02639     virtual void onAlwaysOnTopChanged(WindowEventArgs& e);
02640 
02650     virtual void onCaptureGained(WindowEventArgs& e);
02651 
02661     virtual void onCaptureLost(WindowEventArgs& e);
02662 
02672     virtual void onRenderingStarted(WindowEventArgs& e);
02673 
02683     virtual void onRenderingEnded(WindowEventArgs& e);
02684 
02694     virtual void onZChanged(WindowEventArgs& e);
02695 
02705     virtual void onDestructionStarted(WindowEventArgs& e);
02706 
02715     virtual void onActivated(ActivationEventArgs& e);
02716 
02726     virtual void onDeactivated(ActivationEventArgs& e);
02727 
02739     virtual void onParentSized(WindowEventArgs& e);
02740 
02749     virtual void onChildAdded(WindowEventArgs& e);
02750 
02759     virtual void onChildRemoved(WindowEventArgs& e);
02760 
02768     virtual void onMouseEnters(MouseEventArgs& e);
02769 
02777     virtual void onMouseLeaves(MouseEventArgs& e);
02778 
02787     virtual void onMouseMove(MouseEventArgs& e);
02788 
02797     virtual void onMouseWheel(MouseEventArgs& e);
02798 
02807     virtual void onMouseButtonDown(MouseEventArgs& e);
02808 
02817     virtual void onMouseButtonUp(MouseEventArgs& e);
02818 
02827     virtual void onMouseClicked(MouseEventArgs& e);
02828 
02837     virtual void onMouseDoubleClicked(MouseEventArgs& e);
02838 
02847     virtual void onMouseTripleClicked(MouseEventArgs& e);
02848 
02860     virtual void onKeyDown(KeyEventArgs& e);
02861 
02873     virtual void onKeyUp(KeyEventArgs& e);
02874 
02886     virtual void onCharacter(KeyEventArgs& e);
02887 
02898     virtual void onDragDropItemEnters(DragDropEventArgs& e);
02899 
02910     virtual void onDragDropItemLeaves(DragDropEventArgs& e);
02911 
02922     virtual void onDragDropItemDropped(DragDropEventArgs& e);
02923 
02934     virtual void onVerticalAlignmentChanged(WindowEventArgs& e);
02935 
02946     virtual void onHorizontalAlignmentChanged(WindowEventArgs& e);
02947 
02957     virtual void onWindowRendererAttached(WindowEventArgs& e);
02958 
02968     virtual void onWindowRendererDetached(WindowEventArgs& e);
02969 
02970     /*************************************************************************
02971         Implementation Functions
02972     *************************************************************************/
02984     virtual void updateSelf(float elapsed);
02985 
02997     virtual void drawSelf(float z);
02998 
03006     virtual void populateRenderCache()  {}
03007 
03019     virtual bool testClassName_impl(const String& class_name) const
03020     {
03021         if (class_name=="Window")   return true;
03022         return false;
03023     }
03024 
03036     void setParent(Window* parent);
03037 
03038     Size getSize_impl(const Window* window) const;
03039 
03044     void generateAutoRepeatEvent(MouseButton button);
03045 
03054     virtual bool validateWindowRenderer(const String& name) const;
03055 
03060     void banPropertyFromXML(const Property* property);
03061 
03066     bool isPropertyBannedFromXML(const Property* property) const;
03067 
03074     bool isPropertyAtDefault(const Property* property) const;
03075 
03081     void notifyClippingChanged(void);
03082 
03083     /*************************************************************************
03084         Implementation Data
03085     *************************************************************************/
03086     // child stuff
03087     typedef std::vector<Window*> ChildList;
03089     ChildList d_children;
03090 
03092     ChildList d_drawList;
03093 
03094     // general data
03096     static Window* d_captureWindow;
03097 
03099     Window* d_oldCapture;
03100 
03102     Window* d_parent;
03103 
03105     Font* d_font;
03106 
03108     String d_text;
03109 
03111     uint d_ID;
03112 
03114     float d_alpha;
03115 
03117     URect d_area;
03118 
03120     Size d_pixelSize;
03121 
03123     const Image* d_mouseCursor;
03124 
03125     // user data
03126     typedef std::map<String, String, String::FastLessCompare>   UserStringMap;
03127 
03129     UserStringMap d_userStrings;
03130 
03132     void* d_userData;
03133 
03134     // positional alignments
03136     HorizontalAlignment d_horzAlign;
03137 
03139     VerticalAlignment d_vertAlign;
03140 
03141     // maximum and minimum sizes
03143     UVector2 d_minSize;
03144 
03146     UVector2 d_maxSize;
03147 
03148     // settings
03150     bool d_enabled;
03151 
03157     bool d_visible;
03158 
03160     bool d_active;
03161 
03163     bool d_clippedByParent;
03164 
03166     bool d_destroyedByParent;
03167 
03169     bool d_alwaysOnTop;
03170 
03172     bool d_inheritsAlpha;
03173 
03179     bool d_restoreOldCapture;
03180 
03182     bool d_zOrderingEnabled;
03183 
03185     bool d_wantsMultiClicks;
03186 
03192     bool d_distCapturedInputs;
03193 
03199     bool d_riseOnClick;
03200 
03201     // mouse button autorepeat data
03207     bool d_autoRepeat;
03208 
03210     float d_repeatDelay;
03211 
03213     float d_repeatRate;
03214 
03216     bool d_repeating;
03217 
03219     float d_repeatElapsed;
03220 
03226     MouseButton d_repeatButton; 
03227 
03228     // Tooltip stuff
03230     String d_tooltipText;
03232     Tooltip* d_customTip;
03234     bool d_weOwnTip;
03240     bool d_inheritsTipText;
03241 
03242     // rendering
03244     RenderCache d_renderCache;
03246     mutable bool d_needsRedraw;
03247 
03248     // Look'N'Feel stuff
03250     String d_lookName;
03252     WindowRenderer* d_windowRenderer;
03253 
03255     bool d_initialising;
03257     bool d_destructionStarted;
03258 
03259     // Event pass through
03265     bool d_mousePassThroughEnabled;  
03266 
03268     bool d_autoWindow;
03269 
03275     typedef std::set<String, String::FastLessCompare> BannedXMLPropertySet;
03276     BannedXMLPropertySet d_bannedXMLProperties;
03277 
03279     bool d_allowWriteXML;
03280 
03282     mutable Rect d_screenUnclippedRect;
03283     mutable bool d_screenUnclippedRectValid;
03285     mutable Rect d_screenUnclippedInnerRect;
03286     mutable bool d_screenUnclippedInnerRectValid;
03288     mutable Rect d_screenRect;
03289     mutable bool d_screenRectValid;
03291     mutable Rect d_screenInnerRect;
03292     mutable bool d_screenInnerRectValid;
03293 
03294 protected:
03295     /*************************************************************************
03296         Properties for Window base class
03297     *************************************************************************/
03298     static  WindowProperties::Alpha             d_alphaProperty;
03299     static  WindowProperties::AlwaysOnTop       d_alwaysOnTopProperty;
03300     static  WindowProperties::ClippedByParent   d_clippedByParentProperty;
03301     static  WindowProperties::DestroyedByParent d_destroyedByParentProperty;
03302     static  WindowProperties::Disabled          d_disabledProperty;
03303     static  WindowProperties::Font              d_fontProperty;
03304     static  WindowProperties::ID                d_IDProperty;
03305     static  WindowProperties::InheritsAlpha     d_inheritsAlphaProperty;
03306     static  WindowProperties::MouseCursorImage  d_mouseCursorProperty;
03307     static  WindowProperties::RestoreOldCapture d_restoreOldCaptureProperty;
03308     static  WindowProperties::Text              d_textProperty;
03309     static  WindowProperties::Visible           d_visibleProperty;
03310     static  WindowProperties::ZOrderChangeEnabled   d_zOrderChangeProperty;
03311     static  WindowProperties::WantsMultiClickEvents d_wantsMultiClicksProperty;
03312     static  WindowProperties::MouseButtonDownAutoRepeat d_autoRepeatProperty;
03313     static  WindowProperties::AutoRepeatDelay   d_autoRepeatDelayProperty;
03314     static  WindowProperties::AutoRepeatRate    d_autoRepeatRateProperty;
03315     static  WindowProperties::DistributeCapturedInputs d_distInputsProperty;
03316     static  WindowProperties::CustomTooltipType d_tooltipTypeProperty;
03317     static  WindowProperties::Tooltip           d_tooltipProperty;
03318     static  WindowProperties::InheritsTooltipText d_inheritsTooltipProperty;
03319     static  WindowProperties::RiseOnClick       d_riseOnClickProperty;
03320     static  WindowProperties::VerticalAlignment   d_vertAlignProperty;
03321     static  WindowProperties::HorizontalAlignment d_horzAlignProperty;
03322     static  WindowProperties::UnifiedAreaRect   d_unifiedAreaRectProperty;
03323     static  WindowProperties::UnifiedPosition   d_unifiedPositionProperty;
03324     static  WindowProperties::UnifiedXPosition  d_unifiedXPositionProperty;
03325     static  WindowProperties::UnifiedYPosition  d_unifiedYPositionProperty;
03326     static  WindowProperties::UnifiedSize       d_unifiedSizeProperty;
03327     static  WindowProperties::UnifiedWidth      d_unifiedWidthProperty;
03328     static  WindowProperties::UnifiedHeight     d_unifiedHeightProperty;
03329     static  WindowProperties::UnifiedMinSize    d_unifiedMinSizeProperty;
03330     static  WindowProperties::UnifiedMaxSize    d_unifiedMaxSizeProperty;
03331     static  WindowProperties::MousePassThroughEnabled   d_mousePassThroughEnabledProperty;
03332     static  WindowProperties::WindowRenderer    d_windowRendererProperty;
03333     static  WindowProperties::LookNFeel         d_lookNFeelProperty;
03334 
03335     /*************************************************************************
03336         implementation functions
03337     *************************************************************************/
03342     virtual void cleanupChildren(void);
03343 
03348     virtual void addChild_impl(Window* wnd);
03349 
03354     virtual void removeChild_impl(Window* wnd);
03355 
03360     virtual void onZChange_impl(void);
03361 
03366     void    addStandardProperties(void);
03367 
03372     virtual void moveToFront_impl(bool wasClicked);
03373 
03378     void doRiseOnClick(void);
03379 
03410     void setArea_impl(const UVector2& pos, const UVector2& size, bool topLeftSizing = false, bool fireEvents = true);
03411 
03431     void addWindowToDrawList(Window& wnd, bool at_back = false);
03432 
03444     void removeWindowFromDrawList(const Window& wnd);
03445 
03446     virtual int writePropertiesXML(XMLSerializer& xml_stream) const;
03447     virtual int writeChildWindowsXML(XMLSerializer& xml_stream) const;
03448     virtual bool writeAutoChildWindowXML(XMLSerializer& xml_stream) const;
03449 
03450     /*************************************************************************
03451         May not copy or assign Window objects
03452     *************************************************************************/
03453     Window(const Window& wnd) : PropertySet(), EventSet() {}
03454     Window& operator=(const Window& wnd) {return *this;}
03455 
03456     /*************************************************************************
03457         Private implementation Data
03458     *************************************************************************/
03464     const String    d_type;
03465 
03467     String    d_name;
03468 
03470     String    d_falagardType;
03471 
03472     friend class WindowManager;
03473 };
03474 
03475 } // End of  CEGUI namespace section
03476 
03477 
03478 #if defined(_MSC_VER)
03479 #   pragma warning(pop)
03480 #endif
03481 
03482 #endif  // end of guard _CEGUIWindow_h_

Generated on Sun Nov 5 14:35:28 2006 for Crazy Eddies GUI System by  doxygen 1.4.7