00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
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 "CEGUIWindowRenderer.h"
00045 #include "CEGUITextUtils.h"
00046 #include "CEGUIBasicRenderedStringParser.h"
00047 #include "CEGUIDefaultRenderedStringParser.h"
00048 #include <vector>
00049 #include <set>
00050
00051
00052 #if defined(_MSC_VER)
00053 # pragma warning(push)
00054 # pragma warning(disable : 4251)
00055 #endif
00056
00057
00058
00059 namespace CEGUI
00060 {
00065 enum VerticalAlignment
00066 {
00071 VA_TOP,
00076 VA_CENTRE,
00081 VA_BOTTOM
00082 };
00083
00088 enum HorizontalAlignment
00089 {
00094 HA_LEFT,
00099 HA_CENTRE,
00104 HA_RIGHT
00105 };
00106
00115 enum WindowUpdateMode
00116 {
00118 WUM_ALWAYS,
00120 WUM_NEVER,
00122 WUM_VISIBLE
00123 };
00124
00138 class CEGUIEXPORT Window : public PropertySet, public EventSet
00139 {
00140 public:
00141
00142
00143
00145 static const String EventNamespace;
00146
00147
00151 static const String EventWindowUpdated;
00157 static const String EventParentSized;
00162 static const String EventSized;
00167 static const String EventMoved;
00172 static const String EventTextChanged;
00177 static const String EventFontChanged;
00182 static const String EventAlphaChanged;
00187 static const String EventIDChanged;
00194 static const String EventActivated;
00201 static const String EventDeactivated;
00206 static const String EventShown;
00211 static const String EventHidden;
00216 static const String EventEnabled;
00222 static const String EventDisabled;
00228 static const String EventClippedByParentChanged;
00234 static const String EventDestroyedByParentChanged;
00240 static const String EventInheritsAlphaChanged;
00246 static const String EventAlwaysOnTopChanged;
00251 static const String EventInputCaptureGained;
00260 static const String EventInputCaptureLost;
00268 static const String EventRenderingStarted;
00276 static const String EventRenderingEnded;
00281 static const String EventChildAdded;
00286 static const String EventChildRemoved;
00291 static const String EventDestructionStarted;
00297 static const String EventZOrderChanged;
00305 static const String EventDragDropItemEnters;
00313 static const String EventDragDropItemLeaves;
00320 static const String EventDragDropItemDropped;
00326 static const String EventVerticalAlignmentChanged;
00332 static const String EventHorizontalAlignmentChanged;
00338 static const String EventWindowRendererAttached;
00344 static const String EventWindowRendererDetached;
00349 static const String EventRotated;
00355 static const String EventNonClientChanged;
00362 static const String EventTextParsingChanged;
00368 static const String EventMarginChanged;
00369
00370
00375 static const String EventMouseEntersArea;
00380 static const String EventMouseLeavesArea;
00391 static const String EventMouseEnters;
00402 static const String EventMouseLeaves;
00407 static const String EventMouseMove;
00413 static const String EventMouseWheel;
00418 static const String EventMouseButtonDown;
00423 static const String EventMouseButtonUp;
00430 static const String EventMouseClick;
00436 static const String EventMouseDoubleClick;
00442 static const String EventMouseTripleClick;
00451 static const String EventKeyDown;
00460 static const String EventKeyUp;
00468 static const String EventCharacterKey;
00469
00470
00471
00472
00474 static const String TooltipNameSuffix;
00476 static const String AutoWidgetNameSuffix;
00477
00478
00489 Window(const String& type, const String& name);
00490
00495 virtual ~Window(void);
00496
00504 const String& getType(void) const;
00505
00513 const String& getName(void) const {return d_name;}
00514
00524 bool isDestroyedByParent(void) const {return d_destroyedByParent;}
00525
00535 bool isAlwaysOnTop(void) const {return d_alwaysOnTop;}
00536
00549 bool isDisabled(bool localOnly = false) const;
00550
00567 bool isVisible(bool localOnly = false) const;
00568
00583 bool isActive(void) const;
00584
00594 bool isClippedByParent(void) const {return d_clippedByParent;}
00595
00603 uint getID(void) const {return d_ID;}
00604
00614 size_t getChildCount(void) const {return d_children.size();}
00615
00628 bool isChild(const String& name) const;
00629
00646 bool isChild(uint ID) const;
00647
00668 bool isChildRecursive(uint ID) const;
00669
00681 bool isChild(const Window* window) const;
00682
00704 Window* getChild(const String& name) const;
00705
00727 Window* getChild(uint ID) const;
00728
00752 Window* getChildRecursive(const String& name) const;
00753
00775 Window* getChildRecursive(uint ID) const;
00776
00790 Window* getChildAtIdx(size_t idx) const {return d_children[idx];}
00791
00804 Window* getActiveChild(void);
00805 const Window* getActiveChild(void) const;
00806
00820 bool isAncestor(const String& name) const;
00821
00835 bool isAncestor(uint ID) const;
00836
00849 bool isAncestor(const Window* window) const;
00850
00864 Font* getFont(bool useDefault = true) const;
00865
00873 const String& getText(void) const {return d_textLogical;}
00874
00876 const String& getTextVisual() const;
00877
00886 bool inheritsAlpha(void) const {return d_inheritsAlpha;}
00887
00905 float getAlpha(void) const {return d_alpha;}
00906
00916 float getEffectiveAlpha(void) const;
00917
00923 Rect getUnclippedOuterRect() const;
00924
00930 Rect getUnclippedInnerRect() const;
00931
00943 Rect getUnclippedRect(const bool inner) const;
00944
00957 Rect getOuterRectClipper() const;
00958
00971 Rect getInnerRectClipper() const;
00972
00991 Rect getClipRect(const bool non_client = false) const;
00992
01003 Rect getHitTestRect() const;
01004
01024 Rect getChildWindowContentArea(const bool non_client = false) const;
01025
01042 virtual Rect getUnclippedInnerRect_impl(void) const;
01043
01052 static Window* getCaptureWindow(void) {return d_captureWindow;}
01053
01062 bool isCapturedByThis(void) const {return getCaptureWindow() == this;}
01063
01073 bool isCapturedByAncestor(void) const
01074 {return isAncestor(getCaptureWindow());}
01075
01084 bool isCapturedByChild(void) const {return isChild(getCaptureWindow());}
01085
01102 virtual bool isHit(const Vector2& position,
01103 const bool allow_disabled = false) const;
01104
01117 Window* getChildAtPosition(const Vector2& position) const;
01118
01136 Window* getTargetChildAtPosition(const Vector2& position,
01137 const bool allow_disabled = false) const;
01138
01147 Window* getParent(void) const {return d_parent;}
01148
01163 const Image* getMouseCursor(bool useDefault = true) const;
01164
01172 Size getPixelSize(void) const { return d_pixelSize; }
01173
01185 void* getUserData(void) const {return d_userData;}
01186
01201 bool restoresOldCapture(void) const {return d_restoreOldCapture;}
01202
01222 bool isZOrderingEnabled(void) const;
01223
01234 bool wantsMultiClickEvents(void) const;
01235
01247 bool isMouseAutoRepeatEnabled(void) const;
01248
01257 float getAutoRepeatDelay(void) const;
01258
01268 float getAutoRepeatRate(void) const;
01269
01279 bool distributesCapturedInputs(void) const;
01280
01290 bool isUsingDefaultTooltip(void) const;
01291
01301 Tooltip* getTooltip(void) const;
01302
01311 String getTooltipType(void) const;
01312
01320 const String& getTooltipText(void) const;
01321
01333 bool inheritsTooltipText(void) const;
01334
01355 bool isRiseOnClickEnabled(void) const { return d_riseOnClick; }
01356
01368 bool testClassName(const String& class_name) const
01369 {return testClassName_impl(class_name);}
01370
01381 VerticalAlignment getVerticalAlignment() const {return d_vertAlign;}
01382
01393 HorizontalAlignment getHorizontalAlignment() const {return d_horzAlign;}
01394
01402 GeometryBuffer& getGeometryBuffer();
01403
01412 const String& getLookNFeel() const;
01413
01421 bool getModalState(void) const
01422 {return(System::getSingleton().getModalTarget() == this);}
01423
01437 const String& getUserString(const String& name) const;
01438
01450 bool isUserStringDefined(const String& name) const;
01451
01467 Window* getActiveSibling();
01468
01478 Size getParentPixelSize(void) const;
01479
01489 float getParentPixelWidth(void) const;
01490
01500 float getParentPixelHeight(void) const;
01501
01512 bool isMousePassThroughEnabled(void) const {return d_mousePassThroughEnabled;}
01513
01519 bool isAutoWindow(void) const {return d_autoWindow;}
01520
01525 bool isWritingXMLAllowed(void) const {return d_allowWriteXML;}
01526
01551 EventSet::Iterator getEventIterator() const;
01552
01573 PropertySet::Iterator getPropertyIterator() const;
01574
01584 bool isDragDropTarget() const;
01585
01591 void getRenderingContext(RenderingContext& ctx) const;
01592
01594 virtual void getRenderingContext_impl(RenderingContext& ctx) const;
01595
01601 RenderingSurface* getRenderingSurface() const;
01602
01608 RenderingSurface& getTargetRenderingSurface() const;
01609
01621 bool isUsingAutoRenderingSurface() const;
01622
01633 const Window* getRootWindow() const;
01634 Window* getRootWindow();
01635
01637 const Vector3& getRotation() const;
01638
01653 bool isNonClientWindow() const;
01654
01665 void rename(const String& new_name);
01666
01678 virtual void initialiseComponents(void) {}
01679
01693 void setDestroyedByParent(bool setting);
01694
01707 void setAlwaysOnTop(bool setting);
01708
01721 void setEnabled(bool setting);
01722
01730 void enable(void) {setEnabled(true);}
01731
01739 void disable(void) {setEnabled(false);}
01740
01758 void setVisible(bool setting);
01759
01772 void show(void) {setVisible(true);}
01773
01784 void hide(void) {setVisible(false);}
01785
01794 void activate(void);
01795
01805 void deactivate(void);
01806
01819 void setClippedByParent(bool setting);
01820
01832 void setID(uint ID);
01833
01844 void setText(const String& text);
01845
01859 void insertText(const String& text, const String::size_type position);
01860
01870 void appendText(const String& text);
01871
01883 void setFont(Font* font);
01884
01899 void setFont(const String& name);
01900
01919 void addChildWindow(const String& name);
01920
01937 void addChildWindow(Window* window);
01938
01950 void removeChildWindow(const String& name);
01951
01963 void removeChildWindow(Window* window);
01964
01978 void removeChildWindow(uint ID);
01979
01993 void moveToFront();
01994
02009 void moveToBack();
02010
02024 void moveInFront(const Window* const window);
02025
02040 void moveBehind(const Window* const window);
02041
02051 bool captureInput(void);
02052
02061 void releaseInput(void);
02062
02081 void setRestoreCapture(bool setting);
02082
02103 void setAlpha(float alpha);
02104
02116 void setInheritsAlpha(bool setting);
02117
02129 void invalidate(void);
02130
02146 void invalidate(const bool recursive);
02147
02159 void setMouseCursor(const Image* image) {d_mouseCursor = image;}
02160
02171 void setMouseCursor(MouseCursorImage image)
02172 {d_mouseCursor = (const Image*)image;}
02173
02193 void setMouseCursor(const String& imageset, const String& image_name);
02194
02209 void setUserData(void* user_data) {d_userData = user_data;}
02210
02233 void setZOrderingEnabled(bool setting);
02234
02248 void setWantsMultiClickEvents(bool setting);
02249
02262 void setMouseAutoRepeatEnabled(bool setting);
02263
02275 void setAutoRepeatDelay(float delay);
02276
02289 void setAutoRepeatRate(float rate);
02290
02300 void setDistributesCapturedInputs(bool setting);
02301
02307 void notifyDragDropItemEnters(DragContainer* item);
02308
02314 void notifyDragDropItemLeaves(DragContainer* item);
02315
02321 void notifyDragDropItemDropped(DragContainer* item);
02322
02336 virtual void destroy(void);
02337
02353 void setTooltip(Tooltip* tooltip);
02354
02373 void setTooltipType(const String& tooltipType);
02374
02386 void setTooltipText(const String& tip);
02387
02402 void setInheritsTooltipText(bool setting);
02403
02427 void setRiseOnClickEnabled(bool setting) { d_riseOnClick = setting; }
02428
02442 void setVerticalAlignment(const VerticalAlignment alignment);
02443
02457 void setHorizontalAlignment(const HorizontalAlignment alignment);
02458
02475 virtual void setLookNFeel(const String& look);
02476
02490 void setModalState(bool state);
02491
02502 virtual void performChildWindowLayout();
02503
02517 void setUserString(const String& name, const String& value);
02518
02545 void setArea(const UDim& xpos, const UDim& ypos, const UDim& width, const UDim& height);
02546
02568 void setArea(const UVector2& pos, const UVector2& size);
02569
02587 void setArea(const URect& area);
02588
02607 void setPosition(const UVector2& pos);
02608
02626 void setXPosition(const UDim& x);
02627
02645 void setYPosition(const UDim& y);
02646
02661 void setSize(const UVector2& size);
02662
02677 void setWidth(const UDim& width);
02678
02693 void setHeight(const UDim& height);
02694
02711 void setMaxSize(const UVector2& size);
02712
02729 void setMinSize(const UVector2& size);
02730
02748 const URect& getArea() const;
02749
02767 const UVector2& getPosition() const;
02768
02786 const UDim& getXPosition() const;
02787
02805 const UDim& getYPosition() const;
02806
02821 UVector2 getSize() const;
02822
02837 UDim getWidth() const;
02838
02853 UDim getHeight() const;
02854
02871 const UVector2& getMaxSize() const;
02872
02889 const UVector2& getMinSize() const;
02890
02899 void render();
02900
02919 virtual void update(float elapsed);
02920
02931 virtual void writeXMLToStream(XMLSerializer& xml_stream) const;
02932
02941 virtual void beginInitialisation(void) {d_initialising = true;}
02942
02950 virtual void endInitialisation(void) {d_initialising = false;}
02951
02962 void setMousePassThroughEnabled(bool setting) {d_mousePassThroughEnabled = setting;}
02963
02975 void setWindowRenderer(const String& name);
02976
02985 WindowRenderer* getWindowRenderer(void) const;
02986
02996 String getWindowRendererName(void) const;
02997
03002 void setWritingXMLAllowed(bool allow) {d_allowWriteXML = allow;}
03003
03014 void notifyScreenAreaChanged(bool recursive = true);
03015
03027 void setFalagardType(const String& type, const String& rendererType = "");
03028
03038 void setDragDropTarget(bool setting);
03039
03060 void setRenderingSurface(RenderingSurface* surface);
03061
03068 void invalidateRenderingSurface();
03069
03111 void setUsingAutoRenderingSurface(bool setting);
03112
03114 void setRotation(const Vector3& rotation);
03115
03130 void setNonClientWindow(const bool setting);
03131
03133 const RenderedString& getRenderedString() const;
03135 RenderedStringParser* getCustomRenderedStringParser() const;
03137 void setCustomRenderedStringParser(RenderedStringParser* parser);
03139 virtual RenderedStringParser& getRenderedStringParser() const;
03141 bool isTextParsingEnabled() const;
03143 void setTextParsingEnabled(const bool setting);
03144
03146 virtual void setMargin(const UBox& margin);
03148 const UBox& getMargin() const;
03149
03151 Vector2 getUnprojectedPosition(const Vector2& pos) const;
03152
03154 const BiDiVisualMapping* getBiDiVisualMapping() const
03155 {return d_bidiVisualMapping;}
03156
03158 void banPropertyFromXML(const String& property_name);
03159
03161 void unbanPropertyFromXML(const String& property_name);
03162
03164 bool isPropertyBannedFromXML(const String& property_name) const;
03165
03167 void banPropertyFromXML(const Property* property);
03168
03170 void unbanPropertyFromXML(const Property* property);
03171
03173 bool isPropertyBannedFromXML(const Property* property) const;
03174
03192 void setUpdateMode(const WindowUpdateMode mode);
03193
03211 WindowUpdateMode getUpdateMode() const;
03212
03223 void setMouseInputPropagationEnabled(const bool enabled);
03224
03235 bool isMouseInputPropagationEnabled() const;
03236
03251 Window* clone(const String& newName, const bool deepCopy = true) const;
03252
03254 virtual void clonePropertiesTo(Window& target) const;
03256 virtual void cloneChildWidgetsTo(Window& target) const;
03257
03258 protected:
03259
03260 friend class System;
03261 friend class WindowManager;
03262
03263
03264
03265
03275 virtual void onSized(WindowEventArgs& e);
03276
03286 virtual void onMoved(WindowEventArgs& e);
03287
03297 virtual void onTextChanged(WindowEventArgs& e);
03298
03308 virtual void onFontChanged(WindowEventArgs& e);
03309
03319 virtual void onAlphaChanged(WindowEventArgs& e);
03320
03330 virtual void onIDChanged(WindowEventArgs& e);
03331
03341 virtual void onShown(WindowEventArgs& e);
03342
03352 virtual void onHidden(WindowEventArgs& e);
03353
03363 virtual void onEnabled(WindowEventArgs& e);
03364
03374 virtual void onDisabled(WindowEventArgs& e);
03375
03386 virtual void onClippingChanged(WindowEventArgs& e);
03387
03398 virtual void onParentDestroyChanged(WindowEventArgs& e);
03399
03410 virtual void onInheritsAlphaChanged(WindowEventArgs& e);
03411
03421 virtual void onAlwaysOnTopChanged(WindowEventArgs& e);
03422
03432 virtual void onCaptureGained(WindowEventArgs& e);
03433
03443 virtual void onCaptureLost(WindowEventArgs& e);
03444
03454 virtual void onRenderingStarted(WindowEventArgs& e);
03455
03465 virtual void onRenderingEnded(WindowEventArgs& e);
03466
03476 virtual void onZChanged(WindowEventArgs& e);
03477
03487 virtual void onDestructionStarted(WindowEventArgs& e);
03488
03497 virtual void onActivated(ActivationEventArgs& e);
03498
03508 virtual void onDeactivated(ActivationEventArgs& e);
03509
03521 virtual void onParentSized(WindowEventArgs& e);
03522
03531 virtual void onChildAdded(WindowEventArgs& e);
03532
03541 virtual void onChildRemoved(WindowEventArgs& e);
03542
03550 virtual void onMouseEntersArea(MouseEventArgs& e);
03551
03559 virtual void onMouseLeavesArea(MouseEventArgs& e);
03560
03575 virtual void onMouseEnters(MouseEventArgs& e);
03576
03591 virtual void onMouseLeaves(MouseEventArgs& e);
03592
03601 virtual void onMouseMove(MouseEventArgs& e);
03602
03611 virtual void onMouseWheel(MouseEventArgs& e);
03612
03621 virtual void onMouseButtonDown(MouseEventArgs& e);
03622
03631 virtual void onMouseButtonUp(MouseEventArgs& e);
03632
03641 virtual void onMouseClicked(MouseEventArgs& e);
03642
03651 virtual void onMouseDoubleClicked(MouseEventArgs& e);
03652
03661 virtual void onMouseTripleClicked(MouseEventArgs& e);
03662
03674 virtual void onKeyDown(KeyEventArgs& e);
03675
03687 virtual void onKeyUp(KeyEventArgs& e);
03688
03700 virtual void onCharacter(KeyEventArgs& e);
03701
03712 virtual void onDragDropItemEnters(DragDropEventArgs& e);
03713
03724 virtual void onDragDropItemLeaves(DragDropEventArgs& e);
03725
03736 virtual void onDragDropItemDropped(DragDropEventArgs& e);
03737
03748 virtual void onVerticalAlignmentChanged(WindowEventArgs& e);
03749
03760 virtual void onHorizontalAlignmentChanged(WindowEventArgs& e);
03761
03771 virtual void onWindowRendererAttached(WindowEventArgs& e);
03772
03782 virtual void onWindowRendererDetached(WindowEventArgs& e);
03783
03793 virtual void onRotated(WindowEventArgs& e);
03794
03805 virtual void onNonClientChanged(WindowEventArgs& e);
03806
03817 virtual void onTextParsingChanged(WindowEventArgs& e);
03818
03819 virtual void onMarginChanged(WindowEventArgs& e);
03820
03821
03822
03823
03835 virtual void updateSelf(float elapsed);
03836
03848 virtual void drawSelf(const RenderingContext& ctx);
03849
03860 void bufferGeometry(const RenderingContext& ctx);
03861
03872 void queueGeometry(const RenderingContext& ctx);
03873
03880 virtual void populateGeometryBuffer() {}
03881
03893 virtual bool testClassName_impl(const String& class_name) const
03894 {
03895 if (class_name == "Window") return true;
03896 return false;
03897 }
03898
03910 void setParent(Window* parent);
03911
03912 Size getSize_impl(const Window* window) const;
03913
03918 void generateAutoRepeatEvent(MouseButton button);
03919
03928 virtual bool validateWindowRenderer(const String& name) const;
03929
03936 bool isPropertyAtDefault(const Property* property) const;
03937
03943 void notifyClippingChanged(void);
03944
03946 void allocateRenderingWindow();
03947
03949 void releaseRenderingWindow();
03950
03952 void initialiseClippers(const RenderingContext& ctx);
03953
03958 virtual void cleanupChildren(void);
03959
03964 virtual void addChild_impl(Window* wnd);
03965
03970 virtual void removeChild_impl(Window* wnd);
03971
03976 virtual void onZChange_impl(void);
03977
03982 void addStandardProperties(void);
03983
03992 virtual bool moveToFront_impl(bool wasClicked);
03993
04024 void setArea_impl(const UVector2& pos, const UVector2& size,
04025 bool topLeftSizing = false, bool fireEvents = true);
04026
04046 void addWindowToDrawList(Window& wnd, bool at_back = false);
04047
04059 void removeWindowFromDrawList(const Window& wnd);
04060
04072 bool isTopOfZOrder() const;
04073
04079 void updateGeometryRenderSettings();
04080
04082 void transferChildSurfaces();
04083
04085 Rect getParentElementClipIntersection(const Rect& unclipped_area) const;
04086
04088 void invalidate_impl(const bool recursive);
04089
04091 bool isInnerRectSizeChanged() const;
04092
04094 virtual Rect getUnclippedOuterRect_impl() const;
04096 virtual Rect getOuterRectClipper_impl() const;
04098 virtual Rect getInnerRectClipper_impl() const;
04100 virtual Rect getHitTestRect_impl() const;
04102 virtual Rect getNonClientChildWindowContentArea_impl() const;
04104 virtual Rect getClientChildWindowContentArea_impl() const;
04105
04106 virtual int writePropertiesXML(XMLSerializer& xml_stream) const;
04107 virtual int writeChildWindowsXML(XMLSerializer& xml_stream) const;
04108 virtual bool writeAutoChildWindowXML(XMLSerializer& xml_stream) const;
04109
04110
04111 bool constrainUVector2ToMinSize(const Size& base_sz, UVector2& sz);
04112
04113 bool constrainUVector2ToMaxSize(const Size& base_sz, UVector2& sz);
04114
04115
04116
04117
04118 static WindowProperties::Alpha d_alphaProperty;
04119 static WindowProperties::AlwaysOnTop d_alwaysOnTopProperty;
04120 static WindowProperties::ClippedByParent d_clippedByParentProperty;
04121 static WindowProperties::DestroyedByParent d_destroyedByParentProperty;
04122 static WindowProperties::Disabled d_disabledProperty;
04123 static WindowProperties::Font d_fontProperty;
04124 static WindowProperties::ID d_IDProperty;
04125 static WindowProperties::InheritsAlpha d_inheritsAlphaProperty;
04126 static WindowProperties::MouseCursorImage d_mouseCursorProperty;
04127 static WindowProperties::RestoreOldCapture d_restoreOldCaptureProperty;
04128 static WindowProperties::Text d_textProperty;
04129 static WindowProperties::Visible d_visibleProperty;
04130 static WindowProperties::ZOrderChangeEnabled d_zOrderChangeProperty;
04131 static WindowProperties::WantsMultiClickEvents d_wantsMultiClicksProperty;
04132 static WindowProperties::MouseButtonDownAutoRepeat d_autoRepeatProperty;
04133 static WindowProperties::AutoRepeatDelay d_autoRepeatDelayProperty;
04134 static WindowProperties::AutoRepeatRate d_autoRepeatRateProperty;
04135 static WindowProperties::DistributeCapturedInputs d_distInputsProperty;
04136 static WindowProperties::CustomTooltipType d_tooltipTypeProperty;
04137 static WindowProperties::Tooltip d_tooltipProperty;
04138 static WindowProperties::InheritsTooltipText d_inheritsTooltipProperty;
04139 static WindowProperties::RiseOnClick d_riseOnClickProperty;
04140 static WindowProperties::VerticalAlignment d_vertAlignProperty;
04141 static WindowProperties::HorizontalAlignment d_horzAlignProperty;
04142 static WindowProperties::UnifiedAreaRect d_unifiedAreaRectProperty;
04143 static WindowProperties::UnifiedPosition d_unifiedPositionProperty;
04144 static WindowProperties::UnifiedXPosition d_unifiedXPositionProperty;
04145 static WindowProperties::UnifiedYPosition d_unifiedYPositionProperty;
04146 static WindowProperties::UnifiedSize d_unifiedSizeProperty;
04147 static WindowProperties::UnifiedWidth d_unifiedWidthProperty;
04148 static WindowProperties::UnifiedHeight d_unifiedHeightProperty;
04149 static WindowProperties::UnifiedMinSize d_unifiedMinSizeProperty;
04150 static WindowProperties::UnifiedMaxSize d_unifiedMaxSizeProperty;
04151 static WindowProperties::MousePassThroughEnabled d_mousePassThroughEnabledProperty;
04152 static WindowProperties::WindowRenderer d_windowRendererProperty;
04153 static WindowProperties::LookNFeel d_lookNFeelProperty;
04154 static WindowProperties::DragDropTarget d_dragDropTargetProperty;
04155 static WindowProperties::AutoRenderingSurface d_autoRenderingSurfaceProperty;
04156 static WindowProperties::Rotation d_rotationProperty;
04157 static WindowProperties::XRotation d_xRotationProperty;
04158 static WindowProperties::YRotation d_yRotationProperty;
04159 static WindowProperties::ZRotation d_zRotationProperty;
04160 static WindowProperties::NonClient d_nonClientProperty;
04161 static WindowProperties::TextParsingEnabled d_textParsingEnabledProperty;
04162 static WindowProperties::Margin d_marginProperty;
04163 static WindowProperties::UpdateMode d_updateModeProperty;
04164 static WindowProperties::MouseInputPropagationEnabled d_mouseInputPropagationProperty;
04165
04166
04167
04168
04170 typedef std::vector<Window*> ChildList;
04172 typedef std::map<String, String, String::FastLessCompare> UserStringMap;
04174 typedef std::set<String, String::FastLessCompare> BannedXMLPropertySet;
04175
04177 const String d_type;
04179 String d_name;
04181 String d_falagardType;
04183 bool d_autoWindow;
04184
04186 bool d_initialising;
04188 bool d_destructionStarted;
04190 bool d_enabled;
04192 bool d_visible;
04194 bool d_active;
04195
04197 ChildList d_children;
04199 ChildList d_drawList;
04201 Window* d_parent;
04203 bool d_destroyedByParent;
04204
04206 bool d_clippedByParent;
04208 bool d_nonClientContent;
04209
04211 String d_lookName;
04213 WindowRenderer* d_windowRenderer;
04215 GeometryBuffer* d_geometry;
04217 RenderingSurface* d_surface;
04219 mutable bool d_needsRedraw;
04221 bool d_autoRenderingWindow;
04222
04224 const Image* d_mouseCursor;
04225
04227 float d_alpha;
04229 bool d_inheritsAlpha;
04230
04232 static Window* d_captureWindow;
04234 Window* d_oldCapture;
04236 bool d_restoreOldCapture;
04238 bool d_distCapturedInputs;
04239
04241 Font* d_font;
04243 String d_textLogical;
04245 BiDiVisualMapping* d_bidiVisualMapping;
04247 mutable bool d_bidiDataValid;
04249 mutable RenderedString d_renderedString;
04251 mutable bool d_renderedStringValid;
04253 static BasicRenderedStringParser d_basicStringParser;
04255 static DefaultRenderedStringParser d_defaultStringParser;
04257 RenderedStringParser* d_customStringParser;
04259 bool d_textParsingEnabled;
04260
04262 UBox d_margin;
04263
04265 uint d_ID;
04267 void* d_userData;
04269 UserStringMap d_userStrings;
04270
04272 bool d_alwaysOnTop;
04274 bool d_riseOnClick;
04276 bool d_zOrderingEnabled;
04277
04279 bool d_wantsMultiClicks;
04281 bool d_mousePassThroughEnabled;
04283 bool d_autoRepeat;
04285 float d_repeatDelay;
04287 float d_repeatRate;
04289 MouseButton d_repeatButton;
04291 bool d_repeating;
04293 float d_repeatElapsed;
04294
04296 bool d_dragDropTarget;
04297
04299 String d_tooltipText;
04301 Tooltip* d_customTip;
04303 bool d_weOwnTip;
04305 bool d_inheritsTipText;
04306
04308 bool d_allowWriteXML;
04310 BannedXMLPropertySet d_bannedXMLProperties;
04311
04313 URect d_area;
04315 Size d_pixelSize;
04317 UVector2 d_minSize;
04319 UVector2 d_maxSize;
04321 HorizontalAlignment d_horzAlign;
04323 VerticalAlignment d_vertAlign;
04325 Vector3 d_rotation;
04326
04328 mutable Rect d_outerUnclippedRect;
04330 mutable Rect d_innerUnclippedRect;
04332 mutable Rect d_outerRectClipper;
04334 mutable Rect d_innerRectClipper;
04336 mutable Rect d_hitTestRect;
04337
04338 mutable bool d_outerUnclippedRectValid;
04339 mutable bool d_innerUnclippedRectValid;
04340 mutable bool d_outerRectClipperValid;
04341 mutable bool d_innerRectClipperValid;
04342 mutable bool d_hitTestRectValid;
04343
04345 WindowUpdateMode d_updateMode;
04347 bool d_propagateMouseInputs;
04348
04349
04350 private:
04351
04352
04353
04354 Window(const Window&) : PropertySet(), EventSet() {}
04355 Window& operator=(const Window&) {return *this;}
04356 };
04357
04358 }
04359
04360
04361 #if defined(_MSC_VER)
04362 # pragma warning(pop)
04363 #endif
04364
04365 #endif // end of guard _CEGUIWindow_h_
04366