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
00128         static const String EventWindowUpdated; 
00129 
00130     static const String EventParentSized;
00132     static const String EventSized;
00134     static const String EventMoved;
00136     static const String EventTextChanged;
00138     static const String EventFontChanged;
00140     static const String EventAlphaChanged;
00142     static const String EventIDChanged;
00144     static const String EventActivated;
00146     static const String EventDeactivated;
00148     static const String EventShown;
00150     static const String EventHidden;
00152     static const String EventEnabled;
00154     static const String EventDisabled;
00156     static const String EventClippedByParentChanged;
00158     static const String EventDestroyedByParentChanged;
00160     static const String EventInheritsAlphaChanged;
00162     static const String EventAlwaysOnTopChanged;
00164     static const String EventInputCaptureGained;
00166     static const String EventInputCaptureLost;
00168     static const String EventRenderingStarted;
00170     static const String EventRenderingEnded;
00172     static const String EventChildAdded;
00174     static const String EventChildRemoved;
00176     static const String EventDestructionStarted;
00178     static const String EventZOrderChanged;
00180     static const String EventDragDropItemEnters;
00182     static const String EventDragDropItemLeaves;
00184     static const String EventDragDropItemDropped;
00186     static const String EventVerticalAlignmentChanged;
00188     static const String EventHorizontalAlignmentChanged;
00190     static const String EventWindowRendererAttached;
00192     static const String EventWindowRendererDetached;
00193 
00194     // generated externally (inputs)
00196     static const String EventMouseEnters;
00198     static const String EventMouseLeaves;
00200     static const String EventMouseMove;
00202     static const String EventMouseWheel;
00204     static const String EventMouseButtonDown;
00206     static const String EventMouseButtonUp;
00208     static const String EventMouseClick;
00210     static const String EventMouseDoubleClick;
00212     static const String EventMouseTripleClick;
00214     static const String EventKeyDown;
00216     static const String EventKeyUp;
00218     static const String EventCharacterKey;
00219 
00220     /*************************************************************************
00221         Child Widget name suffix constants
00222     *************************************************************************/
00224     static const String TooltipNameSuffix;
00226     static const String AutoWidgetNameSuffix;
00227 
00228 
00229     /*************************************************************************
00230         Construction and Destruction
00231     *************************************************************************/
00242     Window(const String& type, const String& name);
00243 
00248     virtual ~Window(void);
00249 
00250     /*************************************************************************
00251         Accessor functions
00252     *************************************************************************/
00260     const String& getType(void) const;
00261 
00269     const String& getName(void) const  {return d_name;}
00270 
00275         const String& getPrefix(void) const {return d_windowPrefix;}
00276 
00286     bool    isDestroyedByParent(void) const    {return d_destroyedByParent;}
00287 
00297     bool isAlwaysOnTop(void) const  {return d_alwaysOnTop;}
00298 
00311     bool isDisabled(bool localOnly = false) const;
00312 
00329     bool isVisible(bool localOnly = false) const;
00330 
00345     bool isActive(void) const;
00346 
00356     bool isClippedByParent(void) const {return d_clippedByParent;}
00357 
00365     uint getID(void) const {return d_ID;}
00366 
00376     size_t getChildCount(void) const  {return d_children.size();}
00377 
00390     bool isChild(const String& name) const;
00391 
00408     bool isChild(uint ID) const;
00409 
00430     bool isChildRecursive(uint ID) const;
00431 
00443     bool isChild(const Window* window) const;
00444 
00466     Window* getChild(const String& name) const;
00467 
00468         Window* recursiveChildSearch(const String& name) const;
00469 
00491     Window* getChild(uint ID) const;
00492 
00514     Window* getChildRecursive(uint ID) const;
00515 
00529     Window* getChildAtIdx(size_t idx) const {return d_children[idx];}
00530 
00543     Window* getActiveChild(void);
00544     const Window* getActiveChild(void) const;
00545 
00559     bool isAncestor(const String& name) const;
00560 
00574     bool isAncestor(uint ID) const;
00575 
00588     bool isAncestor(const Window* window) const;
00589 
00603     Font* getFont(bool useDefault = true) const;
00604 
00612     const String& getText(void) const   {return d_text;}
00613 
00622     bool inheritsAlpha(void) const  {return d_inheritsAlpha;}
00623 
00641     float getAlpha(void) const  {return d_alpha;}
00642 
00652     float getEffectiveAlpha(void) const;
00653 
00667     Rect getPixelRect(void) const;
00668 
00682     virtual Rect getPixelRect_impl(void) const;
00683 
00692     Rect getInnerRect(void) const;
00693 
00704     Rect getUnclippedPixelRect(void) const;
00705 
00717     Rect getUnclippedInnerRect(void) const;
00718 
00730     virtual Rect getUnclippedInnerRect_impl(void) const;
00731 
00740     static Window* getCaptureWindow(void)   {return d_captureWindow;}
00741 
00750     bool isCapturedByThis(void) const   {return getCaptureWindow() == this;}
00751 
00761     bool isCapturedByAncestor(void) const
00762          {return isAncestor(getCaptureWindow());}
00763 
00772     bool isCapturedByChild(void) const  {return isChild(getCaptureWindow());}
00773 
00786     virtual bool isHit(const Vector2& position) const;
00787 
00800     Window* getChildAtPosition(const Vector2& position) const;
00801 
00815     Window* getTargetChildAtPosition(const Vector2& position) const;
00816 
00825     Window* getParent(void) const   {return d_parent;}
00826 
00841     const Image* getMouseCursor(bool useDefault = true) const;
00842 
00850     Size getPixelSize(void) const    { return d_pixelSize; }
00851 
00863     void* getUserData(void) const   {return d_userData;}
00864 
00879     bool restoresOldCapture(void) const     {return d_restoreOldCapture;}
00880 
00891     bool isZOrderingEnabled(void) const;
00892 
00903     bool wantsMultiClickEvents(void) const;
00904 
00916     bool isMouseAutoRepeatEnabled(void) const;
00917 
00926     float getAutoRepeatDelay(void) const;
00927 
00937     float getAutoRepeatRate(void) const;
00938 
00948     bool distributesCapturedInputs(void) const;
00949 
00959     bool isUsingDefaultTooltip(void) const;
00960 
00970     Tooltip* getTooltip(void) const;
00971 
00980     String getTooltipType(void) const;
00981 
00989     const String& getTooltipText(void) const;
00990 
01002     bool inheritsTooltipText(void) const;
01003 
01015     bool isRiseOnClickEnabled(void) const   { return d_riseOnClick; }
01016 
01028     bool testClassName(const String& class_name) const
01029          {return testClassName_impl(class_name);}
01030 
01041     VerticalAlignment getVerticalAlignment() const  {return d_vertAlign;}
01042 
01053     HorizontalAlignment getHorizontalAlignment() const  {return d_horzAlign;}
01054 
01062     RenderCache& getRenderCache()   { return d_renderCache; }
01063 
01072     const String& getLookNFeel() const;
01073 
01081     bool getModalState(void) const
01082          {return (System::getSingleton().getModalTarget() == this);}
01083 
01097     const String& getUserString(const String& name) const;
01098 
01110     bool isUserStringDefined(const String& name) const;
01111 
01127     Window* getActiveSibling();
01128 
01138     Size getParentPixelSize(void) const;
01139 
01149     float getParentPixelWidth(void) const;
01150 
01160     float getParentPixelHeight(void) const;
01161 
01172     bool isMousePassThroughEnabled(void) const  {return d_mousePassThroughEnabled;}
01173 
01179     bool isAutoWindow(void) const   {return d_autoWindow;}
01180 
01185     bool isWritingXMLAllowed(void) const    {return d_allowWriteXML;}
01186 
01211     EventSet::Iterator getEventIterator() const;
01212 
01233     PropertySet::Iterator getPropertyIterator() const;
01234 
01244     bool isDragDropTarget() const;
01245 
01246     /*************************************************************************
01247         Manipulator functions
01248     *************************************************************************/
01259     void rename(const String& new_name);
01260 
01272     virtual void initialiseComponents(void) {}
01273 
01287     void setDestroyedByParent(bool setting);
01288 
01301     void setAlwaysOnTop(bool setting);
01302 
01315     void setEnabled(bool setting);
01316 
01324     void enable(void)   {setEnabled(true);}
01325 
01333     void disable(void)  {setEnabled(false);}
01334 
01352     void setVisible(bool setting);
01353 
01366     void show(void)     {setVisible(true);}
01367 
01378     void hide(void)     {setVisible(false);}
01379 
01388     void activate(void);
01389 
01399     void deactivate(void);
01400 
01413     void setClippedByParent(bool setting);
01414 
01426     void setID(uint ID);
01427 
01432         void setPrefix(String prefix) { d_windowPrefix = prefix;}
01433 
01444     void setText(const String& text);
01445 
01459     void insertText(const String& text, const String::size_type position);
01460     
01470     void appendText(const String& text);
01471     
01483     void setFont(Font* font);
01484 
01499     void setFont(const String& name);
01500 
01519     void addChildWindow(const String& name);
01520 
01537     void addChildWindow(Window* window);
01538 
01550     void removeChildWindow(const String& name);
01551 
01563     void removeChildWindow(Window* window);
01564 
01578     void removeChildWindow(uint ID);
01579 
01593     void moveToFront();
01594 
01609     void moveToBack();
01610 
01620     bool captureInput(void);
01621 
01630     void releaseInput(void);
01631 
01650     void setRestoreCapture(bool setting);
01651 
01672     void setAlpha(float alpha);
01673 
01685     void setInheritsAlpha(bool setting);
01686 
01695     void requestRedraw(void) const;
01696 
01708     void setMouseCursor(const Image* image)     {d_mouseCursor = image;}
01709 
01720     void setMouseCursor(MouseCursorImage image)
01721          {d_mouseCursor = (const Image*)image;}
01722 
01742     void setMouseCursor(const String& imageset, const String& image_name);
01743 
01758     void setUserData(void* user_data)   {d_userData = user_data;}
01759 
01773     void    setZOrderingEnabled(bool setting);
01774 
01788     void setWantsMultiClickEvents(bool setting);
01789 
01802     void setMouseAutoRepeatEnabled(bool setting);
01803 
01815     void setAutoRepeatDelay(float delay);
01816 
01829     void setAutoRepeatRate(float rate);
01830 
01840     void setDistributesCapturedInputs(bool setting);
01841 
01847     void notifyDragDropItemEnters(DragContainer* item);
01848 
01854     void notifyDragDropItemLeaves(DragContainer* item);
01855 
01861     void notifyDragDropItemDropped(DragContainer* item);
01862 
01876     virtual void destroy(void);
01877 
01893     void setTooltip(Tooltip* tooltip);
01894 
01913     void setTooltipType(const String& tooltipType);
01914 
01926     void setTooltipText(const String& tip);
01927 
01942     void setInheritsTooltipText(bool setting);
01943 
01958     void setRiseOnClickEnabled(bool setting)    { d_riseOnClick = setting; }
01959 
01973     void setVerticalAlignment(const VerticalAlignment alignment);
01974 
01988     void setHorizontalAlignment(const HorizontalAlignment alignment);
01989 
02006     virtual void setLookNFeel(const String& look);
02007 
02021     void setModalState(bool state);
02022 
02033     virtual void performChildWindowLayout();
02034 
02048     void setUserString(const String& name, const String& value);
02049 
02076     void setArea(const UDim& xpos, const UDim& ypos, const UDim& width, const UDim& height);
02077 
02099     void setArea(const UVector2& pos, const UVector2& size);
02100 
02118     void setArea(const URect& area);
02119 
02138     void setPosition(const UVector2& pos);
02139 
02157     void setXPosition(const UDim& x);
02158 
02176     void setYPosition(const UDim& y);
02177 
02192     void setSize(const UVector2& size);
02193 
02208     void setWidth(const UDim& width);
02209 
02224     void setHeight(const UDim& height);
02225 
02242     void setMaxSize(const UVector2& size);
02243 
02260     void setMinSize(const UVector2& size);
02261 
02279     const URect& getArea() const;
02280 
02298     const UVector2& getPosition() const;
02299 
02317     const UDim& getXPosition() const;
02318 
02336     const UDim& getYPosition() const;
02337 
02352     UVector2 getSize() const;
02353 
02368     UDim getWidth() const;
02369 
02384     UDim getHeight() const;
02385 
02402     const UVector2& getMaxSize() const;
02403 
02420     const UVector2& getMinSize() const;
02421 
02430     void render(void);
02431 
02450     void update(float elapsed);
02451 
02462     virtual void writeXMLToStream(XMLSerializer& xml_stream) const;
02463 
02472     virtual void beginInitialisation(void)     {d_initialising=true;}
02473 
02481     virtual void endInitialisation(void)       {d_initialising=false;}
02482 
02493     void setMousePassThroughEnabled(bool setting)   {d_mousePassThroughEnabled = setting;}
02494 
02506     void setWindowRenderer(const String& name);
02507 
02516     WindowRenderer* getWindowRenderer(void) const;
02517 
02527     String getWindowRendererName(void) const;
02528 
02533     void setWritingXMLAllowed(bool allow)   {d_allowWriteXML = allow;}
02534 
02539     void notifyScreenAreaChanged(void);
02540 
02552     void setFalagardType(const String& type, const String& rendererType = "");
02553 
02563     void setDragDropTarget(bool setting);
02564 
02565 protected:
02566     /*************************************************************************
02567         System object can trigger events directly
02568     *************************************************************************/
02569     friend class System;
02570 
02571     /*************************************************************************
02572         Event trigger methods
02573     *************************************************************************/
02583     virtual void onSized(WindowEventArgs& e);
02584 
02594     virtual void onMoved(WindowEventArgs& e);
02595 
02605     virtual void onTextChanged(WindowEventArgs& e);
02606 
02616     virtual void onFontChanged(WindowEventArgs& e);
02617 
02627     virtual void onAlphaChanged(WindowEventArgs& e);
02628 
02638     virtual void onIDChanged(WindowEventArgs& e);
02639 
02649     virtual void onShown(WindowEventArgs& e);
02650 
02660     virtual void onHidden(WindowEventArgs& e);
02661 
02671     virtual void onEnabled(WindowEventArgs& e);
02672 
02682     virtual void onDisabled(WindowEventArgs& e);
02683 
02694     virtual void onClippingChanged(WindowEventArgs& e);
02695 
02706     virtual void onParentDestroyChanged(WindowEventArgs& e);
02707 
02718     virtual void onInheritsAlphaChanged(WindowEventArgs& e);
02719 
02729     virtual void onAlwaysOnTopChanged(WindowEventArgs& e);
02730 
02740     virtual void onCaptureGained(WindowEventArgs& e);
02741 
02751     virtual void onCaptureLost(WindowEventArgs& e);
02752 
02762     virtual void onRenderingStarted(WindowEventArgs& e);
02763 
02773     virtual void onRenderingEnded(WindowEventArgs& e);
02774 
02784     virtual void onZChanged(WindowEventArgs& e);
02785 
02795     virtual void onDestructionStarted(WindowEventArgs& e);
02796 
02805     virtual void onActivated(ActivationEventArgs& e);
02806 
02816     virtual void onDeactivated(ActivationEventArgs& e);
02817 
02829     virtual void onParentSized(WindowEventArgs& e);
02830 
02839     virtual void onChildAdded(WindowEventArgs& e);
02840 
02849     virtual void onChildRemoved(WindowEventArgs& e);
02850 
02858     virtual void onMouseEnters(MouseEventArgs& e);
02859 
02867     virtual void onMouseLeaves(MouseEventArgs& e);
02868 
02877     virtual void onMouseMove(MouseEventArgs& e);
02878 
02887     virtual void onMouseWheel(MouseEventArgs& e);
02888 
02897     virtual void onMouseButtonDown(MouseEventArgs& e);
02898 
02907     virtual void onMouseButtonUp(MouseEventArgs& e);
02908 
02917     virtual void onMouseClicked(MouseEventArgs& e);
02918 
02927     virtual void onMouseDoubleClicked(MouseEventArgs& e);
02928 
02937     virtual void onMouseTripleClicked(MouseEventArgs& e);
02938 
02950     virtual void onKeyDown(KeyEventArgs& e);
02951 
02963     virtual void onKeyUp(KeyEventArgs& e);
02964 
02976     virtual void onCharacter(KeyEventArgs& e);
02977 
02988     virtual void onDragDropItemEnters(DragDropEventArgs& e);
02989 
03000     virtual void onDragDropItemLeaves(DragDropEventArgs& e);
03001 
03012     virtual void onDragDropItemDropped(DragDropEventArgs& e);
03013 
03024     virtual void onVerticalAlignmentChanged(WindowEventArgs& e);
03025 
03036     virtual void onHorizontalAlignmentChanged(WindowEventArgs& e);
03037 
03047     virtual void onWindowRendererAttached(WindowEventArgs& e);
03048 
03058     virtual void onWindowRendererDetached(WindowEventArgs& e);
03059 
03060     /*************************************************************************
03061         Implementation Functions
03062     *************************************************************************/
03074     virtual void updateSelf(float elapsed);
03075 
03087     virtual void drawSelf(float z);
03088 
03096     virtual void populateRenderCache()  {}
03097 
03109     virtual bool testClassName_impl(const String& class_name) const
03110     {
03111         if (class_name=="Window")   return true;
03112         return false;
03113     }
03114 
03126     void setParent(Window* parent);
03127 
03128     Size getSize_impl(const Window* window) const;
03129 
03134     void generateAutoRepeatEvent(MouseButton button);
03135 
03144     virtual bool validateWindowRenderer(const String& name) const;
03145 
03150     void banPropertyFromXML(const Property* property);
03151 
03156     bool isPropertyBannedFromXML(const Property* property) const;
03157 
03164     bool isPropertyAtDefault(const Property* property) const;
03165 
03171     void notifyClippingChanged(void);
03172 
03173     /*************************************************************************
03174         Implementation Data
03175     *************************************************************************/
03176     // child stuff
03177     typedef std::vector<Window*> ChildList;
03179     ChildList d_children;
03180 
03182     ChildList d_drawList;
03183 
03184     // general data
03186     static Window* d_captureWindow;
03187 
03189     Window* d_oldCapture;
03190 
03192     Window* d_parent;
03193 
03195     Font* d_font;
03196 
03198     String d_text;
03199 
03201     uint d_ID;
03202 
03204     float d_alpha;
03205 
03207     URect d_area;
03208 
03210     Size d_pixelSize;
03211 
03213     const Image* d_mouseCursor;
03214 
03215     // user data
03216     typedef std::map<String, String, String::FastLessCompare>   UserStringMap;
03217 
03219     UserStringMap d_userStrings;
03220 
03222     void* d_userData;
03223 
03224     // positional alignments
03226     HorizontalAlignment d_horzAlign;
03227 
03229     VerticalAlignment d_vertAlign;
03230 
03231     // maximum and minimum sizes
03233     UVector2 d_minSize;
03234 
03236     UVector2 d_maxSize;
03237 
03238     // settings
03240     bool d_enabled;
03241 
03247     bool d_visible;
03248 
03250     bool d_active;
03251 
03253     bool d_clippedByParent;
03254 
03256     bool d_destroyedByParent;
03257 
03259     bool d_alwaysOnTop;
03260 
03262     bool d_inheritsAlpha;
03263 
03269     bool d_restoreOldCapture;
03270 
03272     bool d_zOrderingEnabled;
03273 
03275     bool d_wantsMultiClicks;
03276 
03282     bool d_distCapturedInputs;
03283 
03289     bool d_riseOnClick;
03290 
03291     // mouse button autorepeat data
03297     bool d_autoRepeat;
03298 
03300     float d_repeatDelay;
03301 
03303     float d_repeatRate;
03304 
03306     bool d_repeating;
03307 
03309     float d_repeatElapsed;
03310 
03316     MouseButton d_repeatButton;
03317 
03319     bool d_dragDropTarget;
03320 
03321     // Tooltip stuff
03323     String d_tooltipText;
03325     Tooltip* d_customTip;
03327     bool d_weOwnTip;
03333     bool d_inheritsTipText;
03334 
03335     // rendering
03337     RenderCache d_renderCache;
03339     mutable bool d_needsRedraw;
03340 
03341     // Look'N'Feel stuff
03343     String d_lookName;
03345     WindowRenderer* d_windowRenderer;
03346 
03348     bool d_initialising;
03350     bool d_destructionStarted;
03351 
03352     // Event pass through
03358     bool d_mousePassThroughEnabled;
03359 
03361     bool d_autoWindow;
03362 
03368     typedef std::set<String, String::FastLessCompare> BannedXMLPropertySet;
03369     BannedXMLPropertySet d_bannedXMLProperties;
03370 
03372     bool d_allowWriteXML;
03373 
03375     mutable Rect d_screenUnclippedRect;
03376     mutable bool d_screenUnclippedRectValid;
03378     mutable Rect d_screenUnclippedInnerRect;
03379     mutable bool d_screenUnclippedInnerRectValid;
03381     mutable Rect d_screenRect;
03382     mutable bool d_screenRectValid;
03384     mutable Rect d_screenInnerRect;
03385     mutable bool d_screenInnerRectValid;
03386 
03387 protected:
03388     /*************************************************************************
03389         Properties for Window base class
03390     *************************************************************************/
03391     static  WindowProperties::Alpha             d_alphaProperty;
03392     static  WindowProperties::AlwaysOnTop       d_alwaysOnTopProperty;
03393     static  WindowProperties::ClippedByParent   d_clippedByParentProperty;
03394     static  WindowProperties::DestroyedByParent d_destroyedByParentProperty;
03395     static  WindowProperties::Disabled          d_disabledProperty;
03396     static  WindowProperties::Font              d_fontProperty;
03397     static  WindowProperties::ID                d_IDProperty;
03398     static  WindowProperties::InheritsAlpha     d_inheritsAlphaProperty;
03399     static  WindowProperties::MouseCursorImage  d_mouseCursorProperty;
03400     static  WindowProperties::RestoreOldCapture d_restoreOldCaptureProperty;
03401     static  WindowProperties::Text              d_textProperty;
03402     static  WindowProperties::Visible           d_visibleProperty;
03403     static  WindowProperties::ZOrderChangeEnabled   d_zOrderChangeProperty;
03404     static  WindowProperties::WantsMultiClickEvents d_wantsMultiClicksProperty;
03405     static  WindowProperties::MouseButtonDownAutoRepeat d_autoRepeatProperty;
03406     static  WindowProperties::AutoRepeatDelay   d_autoRepeatDelayProperty;
03407     static  WindowProperties::AutoRepeatRate    d_autoRepeatRateProperty;
03408     static  WindowProperties::DistributeCapturedInputs d_distInputsProperty;
03409     static  WindowProperties::CustomTooltipType d_tooltipTypeProperty;
03410     static  WindowProperties::Tooltip           d_tooltipProperty;
03411     static  WindowProperties::InheritsTooltipText d_inheritsTooltipProperty;
03412     static  WindowProperties::RiseOnClick       d_riseOnClickProperty;
03413     static  WindowProperties::VerticalAlignment   d_vertAlignProperty;
03414     static  WindowProperties::HorizontalAlignment d_horzAlignProperty;
03415     static  WindowProperties::UnifiedAreaRect   d_unifiedAreaRectProperty;
03416     static  WindowProperties::UnifiedPosition   d_unifiedPositionProperty;
03417     static  WindowProperties::UnifiedXPosition  d_unifiedXPositionProperty;
03418     static  WindowProperties::UnifiedYPosition  d_unifiedYPositionProperty;
03419     static  WindowProperties::UnifiedSize       d_unifiedSizeProperty;
03420     static  WindowProperties::UnifiedWidth      d_unifiedWidthProperty;
03421     static  WindowProperties::UnifiedHeight     d_unifiedHeightProperty;
03422     static  WindowProperties::UnifiedMinSize    d_unifiedMinSizeProperty;
03423     static  WindowProperties::UnifiedMaxSize    d_unifiedMaxSizeProperty;
03424     static  WindowProperties::MousePassThroughEnabled   d_mousePassThroughEnabledProperty;
03425     static  WindowProperties::WindowRenderer    d_windowRendererProperty;
03426     static  WindowProperties::LookNFeel         d_lookNFeelProperty;
03427     static  WindowProperties::DragDropTarget    d_dragDropTargetProperty;
03428 
03429     /*************************************************************************
03430         implementation functions
03431     *************************************************************************/
03436     virtual void cleanupChildren(void);
03437 
03442     virtual void addChild_impl(Window* wnd);
03443 
03448     virtual void removeChild_impl(Window* wnd);
03449 
03454     virtual void onZChange_impl(void);
03455 
03460     void    addStandardProperties(void);
03461 
03470     virtual bool moveToFront_impl(bool wasClicked);
03471 
03479     bool doRiseOnClick(void);
03480 
03511     void setArea_impl(const UVector2& pos, const UVector2& size, bool topLeftSizing = false, bool fireEvents = true);
03512 
03532     void addWindowToDrawList(Window& wnd, bool at_back = false);
03533 
03545     void removeWindowFromDrawList(const Window& wnd);
03546 
03558     bool isTopOfZOrder() const;
03559 
03560     virtual int writePropertiesXML(XMLSerializer& xml_stream) const;
03561     virtual int writeChildWindowsXML(XMLSerializer& xml_stream) const;
03562     virtual bool writeAutoChildWindowXML(XMLSerializer& xml_stream) const;
03563 
03564     /*************************************************************************
03565         May not copy or assign Window objects
03566     *************************************************************************/
03567     Window(const Window& wnd) : PropertySet(), EventSet() {}
03568     Window& operator=(const Window& wnd) {return *this;}
03569 
03570     /*************************************************************************
03571         Private implementation Data
03572     *************************************************************************/
03578     const String    d_type;
03579 
03581     String    d_name;
03582 
03584     String    d_falagardType;
03585 
03587         String    d_windowPrefix;
03588 
03589     friend class WindowManager;
03590 };
03591 
03592 } // End of  CEGUI namespace section
03593 
03594 
03595 #if defined(_MSC_VER)
03596 #   pragma warning(pop)
03597 #endif
03598 
03599 #endif  // end of guard _CEGUIWindow_h_

Generated on Sat Jun 28 14:35:44 2008 for Crazy Eddies GUI System by  doxygen 1.5.4