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
00120 class CEGUIEXPORT Window : public PropertySet, public EventSet
00121 {
00122 public:
00123
00124
00125
00127 static const String EventNamespace;
00128
00129
00131 static const String EventWindowUpdated;
00133 static const String EventParentSized;
00135 static const String EventSized;
00137 static const String EventMoved;
00139 static const String EventTextChanged;
00141 static const String EventFontChanged;
00143 static const String EventAlphaChanged;
00145 static const String EventIDChanged;
00147 static const String EventActivated;
00149 static const String EventDeactivated;
00151 static const String EventShown;
00153 static const String EventHidden;
00155 static const String EventEnabled;
00157 static const String EventDisabled;
00159 static const String EventClippedByParentChanged;
00161 static const String EventDestroyedByParentChanged;
00163 static const String EventInheritsAlphaChanged;
00165 static const String EventAlwaysOnTopChanged;
00167 static const String EventInputCaptureGained;
00169 static const String EventInputCaptureLost;
00171 static const String EventRenderingStarted;
00173 static const String EventRenderingEnded;
00175 static const String EventChildAdded;
00177 static const String EventChildRemoved;
00179 static const String EventDestructionStarted;
00181 static const String EventZOrderChanged;
00183 static const String EventDragDropItemEnters;
00185 static const String EventDragDropItemLeaves;
00187 static const String EventDragDropItemDropped;
00189 static const String EventVerticalAlignmentChanged;
00191 static const String EventHorizontalAlignmentChanged;
00193 static const String EventWindowRendererAttached;
00195 static const String EventWindowRendererDetached;
00197 static const String EventRotated;
00199 static const String EventNonClientChanged;
00201 static const String EventTextParsingChanged;
00202
00203
00205 static const String EventMouseEnters;
00207 static const String EventMouseLeaves;
00209 static const String EventMouseMove;
00211 static const String EventMouseWheel;
00213 static const String EventMouseButtonDown;
00215 static const String EventMouseButtonUp;
00217 static const String EventMouseClick;
00219 static const String EventMouseDoubleClick;
00221 static const String EventMouseTripleClick;
00223 static const String EventKeyDown;
00225 static const String EventKeyUp;
00227 static const String EventCharacterKey;
00228
00229
00230
00231
00233 static const String TooltipNameSuffix;
00235 static const String AutoWidgetNameSuffix;
00236
00237
00248 Window(const String& type, const String& name);
00249
00254 virtual ~Window(void);
00255
00263 const String& getType(void) const;
00264
00272 const String& getName(void) const {return d_name;}
00273
00283 bool isDestroyedByParent(void) const {return d_destroyedByParent;}
00284
00294 bool isAlwaysOnTop(void) const {return d_alwaysOnTop;}
00295
00308 bool isDisabled(bool localOnly = false) const;
00309
00326 bool isVisible(bool localOnly = false) const;
00327
00342 bool isActive(void) const;
00343
00353 bool isClippedByParent(void) const {return d_clippedByParent;}
00354
00362 uint getID(void) const {return d_ID;}
00363
00373 size_t getChildCount(void) const {return d_children.size();}
00374
00387 bool isChild(const String& name) const;
00388
00405 bool isChild(uint ID) const;
00406
00427 bool isChildRecursive(uint ID) const;
00428
00440 bool isChild(const Window* window) const;
00441
00463 Window* getChild(const String& name) const;
00464
00486 Window* getChild(uint ID) const;
00487
00511 Window* getChildRecursive(const String& name) const;
00512
00534 Window* getChildRecursive(uint ID) const;
00535
00549 Window* getChildAtIdx(size_t idx) const {return d_children[idx];}
00550
00563 Window* getActiveChild(void);
00564 const Window* getActiveChild(void) const;
00565
00579 bool isAncestor(const String& name) const;
00580
00594 bool isAncestor(uint ID) const;
00595
00608 bool isAncestor(const Window* window) const;
00609
00623 Font* getFont(bool useDefault = true) const;
00624
00632 const String& getText(void) const {return d_textLogical;}
00633
00635 const String& getTextVisual() const;
00636
00645 bool inheritsAlpha(void) const {return d_inheritsAlpha;}
00646
00664 float getAlpha(void) const {return d_alpha;}
00665
00675 float getEffectiveAlpha(void) const;
00676
00682 Rect getUnclippedOuterRect() const;
00683
00689 Rect getUnclippedInnerRect() const;
00690
00702 Rect getUnclippedRect(const bool inner) const;
00703
00716 Rect getOuterRectClipper() const;
00717
00730 Rect getInnerRectClipper() const;
00731
00750 Rect getClipRect(const bool non_client = false) const;
00751
00762 Rect getHitTestRect() const;
00763
00780 virtual Rect getUnclippedInnerRect_impl(void) const;
00781
00790 static Window* getCaptureWindow(void) {return d_captureWindow;}
00791
00800 bool isCapturedByThis(void) const {return getCaptureWindow() == this;}
00801
00811 bool isCapturedByAncestor(void) const
00812 {return isAncestor(getCaptureWindow());}
00813
00822 bool isCapturedByChild(void) const {return isChild(getCaptureWindow());}
00823
00840 virtual bool isHit(const Vector2& position,
00841 const bool allow_disabled = false) const;
00842
00855 Window* getChildAtPosition(const Vector2& position) const;
00856
00874 Window* getTargetChildAtPosition(const Vector2& position,
00875 const bool allow_disabled = false) const;
00876
00885 Window* getParent(void) const {return d_parent;}
00886
00901 const Image* getMouseCursor(bool useDefault = true) const;
00902
00910 Size getPixelSize(void) const { return d_pixelSize; }
00911
00923 void* getUserData(void) const {return d_userData;}
00924
00939 bool restoresOldCapture(void) const {return d_restoreOldCapture;}
00940
00960 bool isZOrderingEnabled(void) const;
00961
00972 bool wantsMultiClickEvents(void) const;
00973
00985 bool isMouseAutoRepeatEnabled(void) const;
00986
00995 float getAutoRepeatDelay(void) const;
00996
01006 float getAutoRepeatRate(void) const;
01007
01017 bool distributesCapturedInputs(void) const;
01018
01028 bool isUsingDefaultTooltip(void) const;
01029
01039 Tooltip* getTooltip(void) const;
01040
01049 String getTooltipType(void) const;
01050
01058 const String& getTooltipText(void) const;
01059
01071 bool inheritsTooltipText(void) const;
01072
01093 bool isRiseOnClickEnabled(void) const { return d_riseOnClick; }
01094
01106 bool testClassName(const String& class_name) const
01107 {return testClassName_impl(class_name);}
01108
01119 VerticalAlignment getVerticalAlignment() const {return d_vertAlign;}
01120
01131 HorizontalAlignment getHorizontalAlignment() const {return d_horzAlign;}
01132
01140 GeometryBuffer& getGeometryBuffer();
01141
01150 const String& getLookNFeel() const;
01151
01159 bool getModalState(void) const
01160 {return(System::getSingleton().getModalTarget() == this);}
01161
01175 const String& getUserString(const String& name) const;
01176
01188 bool isUserStringDefined(const String& name) const;
01189
01205 Window* getActiveSibling();
01206
01216 Size getParentPixelSize(void) const;
01217
01227 float getParentPixelWidth(void) const;
01228
01238 float getParentPixelHeight(void) const;
01239
01250 bool isMousePassThroughEnabled(void) const {return d_mousePassThroughEnabled;}
01251
01257 bool isAutoWindow(void) const {return d_autoWindow;}
01258
01263 bool isWritingXMLAllowed(void) const {return d_allowWriteXML;}
01264
01289 EventSet::Iterator getEventIterator() const;
01290
01311 PropertySet::Iterator getPropertyIterator() const;
01312
01322 bool isDragDropTarget() const;
01323
01329 void getRenderingContext(RenderingContext& ctx) const;
01330
01332 virtual void getRenderingContext_impl(RenderingContext& ctx) const;
01333
01339 RenderingSurface* getRenderingSurface() const;
01340
01346 RenderingSurface& getTargetRenderingSurface() const;
01347
01359 bool isUsingAutoRenderingSurface() const;
01360
01371 const Window* getRootWindow() const;
01372 Window* getRootWindow();
01373
01375 const Vector3& getRotation() const;
01376
01391 bool isNonClientWindow() const;
01392
01403 void rename(const String& new_name);
01404
01416 virtual void initialiseComponents(void) {}
01417
01431 void setDestroyedByParent(bool setting);
01432
01445 void setAlwaysOnTop(bool setting);
01446
01459 void setEnabled(bool setting);
01460
01468 void enable(void) {setEnabled(true);}
01469
01477 void disable(void) {setEnabled(false);}
01478
01496 void setVisible(bool setting);
01497
01510 void show(void) {setVisible(true);}
01511
01522 void hide(void) {setVisible(false);}
01523
01532 void activate(void);
01533
01543 void deactivate(void);
01544
01557 void setClippedByParent(bool setting);
01558
01570 void setID(uint ID);
01571
01582 void setText(const String& text);
01583
01597 void insertText(const String& text, const String::size_type position);
01598
01608 void appendText(const String& text);
01609
01621 void setFont(Font* font);
01622
01637 void setFont(const String& name);
01638
01657 void addChildWindow(const String& name);
01658
01675 void addChildWindow(Window* window);
01676
01688 void removeChildWindow(const String& name);
01689
01701 void removeChildWindow(Window* window);
01702
01716 void removeChildWindow(uint ID);
01717
01731 void moveToFront();
01732
01747 void moveToBack();
01748
01758 bool captureInput(void);
01759
01768 void releaseInput(void);
01769
01788 void setRestoreCapture(bool setting);
01789
01810 void setAlpha(float alpha);
01811
01823 void setInheritsAlpha(bool setting);
01824
01836 void invalidate(void);
01837
01853 void invalidate(const bool recursive);
01854
01866 void setMouseCursor(const Image* image) {d_mouseCursor = image;}
01867
01878 void setMouseCursor(MouseCursorImage image)
01879 {d_mouseCursor = (const Image*)image;}
01880
01900 void setMouseCursor(const String& imageset, const String& image_name);
01901
01916 void setUserData(void* user_data) {d_userData = user_data;}
01917
01940 void setZOrderingEnabled(bool setting);
01941
01955 void setWantsMultiClickEvents(bool setting);
01956
01969 void setMouseAutoRepeatEnabled(bool setting);
01970
01982 void setAutoRepeatDelay(float delay);
01983
01996 void setAutoRepeatRate(float rate);
01997
02007 void setDistributesCapturedInputs(bool setting);
02008
02014 void notifyDragDropItemEnters(DragContainer* item);
02015
02021 void notifyDragDropItemLeaves(DragContainer* item);
02022
02028 void notifyDragDropItemDropped(DragContainer* item);
02029
02043 virtual void destroy(void);
02044
02060 void setTooltip(Tooltip* tooltip);
02061
02080 void setTooltipType(const String& tooltipType);
02081
02093 void setTooltipText(const String& tip);
02094
02109 void setInheritsTooltipText(bool setting);
02110
02134 void setRiseOnClickEnabled(bool setting) { d_riseOnClick = setting; }
02135
02149 void setVerticalAlignment(const VerticalAlignment alignment);
02150
02164 void setHorizontalAlignment(const HorizontalAlignment alignment);
02165
02182 virtual void setLookNFeel(const String& look);
02183
02197 void setModalState(bool state);
02198
02209 virtual void performChildWindowLayout();
02210
02224 void setUserString(const String& name, const String& value);
02225
02252 void setArea(const UDim& xpos, const UDim& ypos, const UDim& width, const UDim& height);
02253
02275 void setArea(const UVector2& pos, const UVector2& size);
02276
02294 void setArea(const URect& area);
02295
02314 void setPosition(const UVector2& pos);
02315
02333 void setXPosition(const UDim& x);
02334
02352 void setYPosition(const UDim& y);
02353
02368 void setSize(const UVector2& size);
02369
02384 void setWidth(const UDim& width);
02385
02400 void setHeight(const UDim& height);
02401
02418 void setMaxSize(const UVector2& size);
02419
02436 void setMinSize(const UVector2& size);
02437
02455 const URect& getArea() const;
02456
02474 const UVector2& getPosition() const;
02475
02493 const UDim& getXPosition() const;
02494
02512 const UDim& getYPosition() const;
02513
02528 UVector2 getSize() const;
02529
02544 UDim getWidth() const;
02545
02560 UDim getHeight() const;
02561
02578 const UVector2& getMaxSize() const;
02579
02596 const UVector2& getMinSize() const;
02597
02606 void render();
02607
02626 void update(float elapsed);
02627
02638 virtual void writeXMLToStream(XMLSerializer& xml_stream) const;
02639
02648 virtual void beginInitialisation(void) {d_initialising = true;}
02649
02657 virtual void endInitialisation(void) {d_initialising = false;}
02658
02669 void setMousePassThroughEnabled(bool setting) {d_mousePassThroughEnabled = setting;}
02670
02682 void setWindowRenderer(const String& name);
02683
02692 WindowRenderer* getWindowRenderer(void) const;
02693
02703 String getWindowRendererName(void) const;
02704
02709 void setWritingXMLAllowed(bool allow) {d_allowWriteXML = allow;}
02710
02721 void notifyScreenAreaChanged(bool recursive = true);
02722
02734 void setFalagardType(const String& type, const String& rendererType = "");
02735
02745 void setDragDropTarget(bool setting);
02746
02767 void setRenderingSurface(RenderingSurface* surface);
02768
02775 void invalidateRenderingSurface();
02776
02818 void setUsingAutoRenderingSurface(bool setting);
02819
02821 void setRotation(const Vector3& rotation);
02822
02837 void setNonClientWindow(const bool setting);
02838
02840 const RenderedString& getRenderedString() const;
02842 RenderedStringParser* getCustomRenderedStringParser() const;
02844 void setCustomRenderedStringParser(RenderedStringParser* parser);
02846 virtual RenderedStringParser& getRenderedStringParser() const;
02848 bool isTextParsingEnabled() const;
02850 void setTextParsingEnabled(const bool setting);
02851
02853 Vector2 getUnprojectedPosition(const Vector2& pos) const;
02854
02856 const BiDiVisualMapping* getBiDiVisualMapping() const
02857 {return d_bidiVisualMapping;}
02858
02859 protected:
02860
02861 friend class System;
02862 friend class WindowManager;
02863
02864
02865
02866
02876 virtual void onSized(WindowEventArgs& e);
02877
02887 virtual void onMoved(WindowEventArgs& e);
02888
02898 virtual void onTextChanged(WindowEventArgs& e);
02899
02909 virtual void onFontChanged(WindowEventArgs& e);
02910
02920 virtual void onAlphaChanged(WindowEventArgs& e);
02921
02931 virtual void onIDChanged(WindowEventArgs& e);
02932
02942 virtual void onShown(WindowEventArgs& e);
02943
02953 virtual void onHidden(WindowEventArgs& e);
02954
02964 virtual void onEnabled(WindowEventArgs& e);
02965
02975 virtual void onDisabled(WindowEventArgs& e);
02976
02987 virtual void onClippingChanged(WindowEventArgs& e);
02988
02999 virtual void onParentDestroyChanged(WindowEventArgs& e);
03000
03011 virtual void onInheritsAlphaChanged(WindowEventArgs& e);
03012
03022 virtual void onAlwaysOnTopChanged(WindowEventArgs& e);
03023
03033 virtual void onCaptureGained(WindowEventArgs& e);
03034
03044 virtual void onCaptureLost(WindowEventArgs& e);
03045
03055 virtual void onRenderingStarted(WindowEventArgs& e);
03056
03066 virtual void onRenderingEnded(WindowEventArgs& e);
03067
03077 virtual void onZChanged(WindowEventArgs& e);
03078
03088 virtual void onDestructionStarted(WindowEventArgs& e);
03089
03098 virtual void onActivated(ActivationEventArgs& e);
03099
03109 virtual void onDeactivated(ActivationEventArgs& e);
03110
03122 virtual void onParentSized(WindowEventArgs& e);
03123
03132 virtual void onChildAdded(WindowEventArgs& e);
03133
03142 virtual void onChildRemoved(WindowEventArgs& e);
03143
03151 virtual void onMouseEnters(MouseEventArgs& e);
03152
03160 virtual void onMouseLeaves(MouseEventArgs& e);
03161
03170 virtual void onMouseMove(MouseEventArgs& e);
03171
03180 virtual void onMouseWheel(MouseEventArgs& e);
03181
03190 virtual void onMouseButtonDown(MouseEventArgs& e);
03191
03200 virtual void onMouseButtonUp(MouseEventArgs& e);
03201
03210 virtual void onMouseClicked(MouseEventArgs& e);
03211
03220 virtual void onMouseDoubleClicked(MouseEventArgs& e);
03221
03230 virtual void onMouseTripleClicked(MouseEventArgs& e);
03231
03243 virtual void onKeyDown(KeyEventArgs& e);
03244
03256 virtual void onKeyUp(KeyEventArgs& e);
03257
03269 virtual void onCharacter(KeyEventArgs& e);
03270
03281 virtual void onDragDropItemEnters(DragDropEventArgs& e);
03282
03293 virtual void onDragDropItemLeaves(DragDropEventArgs& e);
03294
03305 virtual void onDragDropItemDropped(DragDropEventArgs& e);
03306
03317 virtual void onVerticalAlignmentChanged(WindowEventArgs& e);
03318
03329 virtual void onHorizontalAlignmentChanged(WindowEventArgs& e);
03330
03340 virtual void onWindowRendererAttached(WindowEventArgs& e);
03341
03351 virtual void onWindowRendererDetached(WindowEventArgs& e);
03352
03362 virtual void onRotated(WindowEventArgs& e);
03363
03374 virtual void onNonClientChanged(WindowEventArgs& e);
03375
03386 virtual void onTextParsingChanged(WindowEventArgs& e);
03387
03388
03389
03390
03402 virtual void updateSelf(float elapsed);
03403
03415 virtual void drawSelf(const RenderingContext& ctx);
03416
03427 void bufferGeometry(const RenderingContext& ctx);
03428
03439 void queueGeometry(const RenderingContext& ctx);
03440
03447 virtual void populateGeometryBuffer() {}
03448
03460 virtual bool testClassName_impl(const String& class_name) const
03461 {
03462 if (class_name == "Window") return true;
03463 return false;
03464 }
03465
03477 void setParent(Window* parent);
03478
03479 Size getSize_impl(const Window* window) const;
03480
03485 void generateAutoRepeatEvent(MouseButton button);
03486
03495 virtual bool validateWindowRenderer(const String& name) const;
03496
03501 void banPropertyFromXML(const Property* property);
03502
03507 bool isPropertyBannedFromXML(const Property* property) const;
03508
03515 bool isPropertyAtDefault(const Property* property) const;
03516
03522 void notifyClippingChanged(void);
03523
03525 void allocateRenderingWindow();
03526
03528 void releaseRenderingWindow();
03529
03531 void initialiseClippers(const RenderingContext& ctx);
03532
03537 virtual void cleanupChildren(void);
03538
03543 virtual void addChild_impl(Window* wnd);
03544
03549 virtual void removeChild_impl(Window* wnd);
03550
03555 virtual void onZChange_impl(void);
03556
03561 void addStandardProperties(void);
03562
03571 virtual bool moveToFront_impl(bool wasClicked);
03572
03603 void setArea_impl(const UVector2& pos, const UVector2& size,
03604 bool topLeftSizing = false, bool fireEvents = true);
03605
03625 void addWindowToDrawList(Window& wnd, bool at_back = false);
03626
03638 void removeWindowFromDrawList(const Window& wnd);
03639
03651 bool isTopOfZOrder() const;
03652
03658 void updateGeometryRenderSettings();
03659
03661 void transferChildSurfaces();
03662
03664 Rect getParentElementClipIntersection(const Rect& unclipped_area) const;
03665
03667 void invalidate_impl(const bool recursive);
03668
03670 bool isInnerRectSizeChanged() const;
03671
03673 virtual Rect getUnclippedOuterRect_impl() const;
03675 virtual Rect getOuterRectClipper_impl() const;
03677 virtual Rect getInnerRectClipper_impl() const;
03679 virtual Rect getHitTestRect_impl() const;
03680
03681 virtual int writePropertiesXML(XMLSerializer& xml_stream) const;
03682 virtual int writeChildWindowsXML(XMLSerializer& xml_stream) const;
03683 virtual bool writeAutoChildWindowXML(XMLSerializer& xml_stream) const;
03684
03685
03686
03687
03688 static WindowProperties::Alpha d_alphaProperty;
03689 static WindowProperties::AlwaysOnTop d_alwaysOnTopProperty;
03690 static WindowProperties::ClippedByParent d_clippedByParentProperty;
03691 static WindowProperties::DestroyedByParent d_destroyedByParentProperty;
03692 static WindowProperties::Disabled d_disabledProperty;
03693 static WindowProperties::Font d_fontProperty;
03694 static WindowProperties::ID d_IDProperty;
03695 static WindowProperties::InheritsAlpha d_inheritsAlphaProperty;
03696 static WindowProperties::MouseCursorImage d_mouseCursorProperty;
03697 static WindowProperties::RestoreOldCapture d_restoreOldCaptureProperty;
03698 static WindowProperties::Text d_textProperty;
03699 static WindowProperties::Visible d_visibleProperty;
03700 static WindowProperties::ZOrderChangeEnabled d_zOrderChangeProperty;
03701 static WindowProperties::WantsMultiClickEvents d_wantsMultiClicksProperty;
03702 static WindowProperties::MouseButtonDownAutoRepeat d_autoRepeatProperty;
03703 static WindowProperties::AutoRepeatDelay d_autoRepeatDelayProperty;
03704 static WindowProperties::AutoRepeatRate d_autoRepeatRateProperty;
03705 static WindowProperties::DistributeCapturedInputs d_distInputsProperty;
03706 static WindowProperties::CustomTooltipType d_tooltipTypeProperty;
03707 static WindowProperties::Tooltip d_tooltipProperty;
03708 static WindowProperties::InheritsTooltipText d_inheritsTooltipProperty;
03709 static WindowProperties::RiseOnClick d_riseOnClickProperty;
03710 static WindowProperties::VerticalAlignment d_vertAlignProperty;
03711 static WindowProperties::HorizontalAlignment d_horzAlignProperty;
03712 static WindowProperties::UnifiedAreaRect d_unifiedAreaRectProperty;
03713 static WindowProperties::UnifiedPosition d_unifiedPositionProperty;
03714 static WindowProperties::UnifiedXPosition d_unifiedXPositionProperty;
03715 static WindowProperties::UnifiedYPosition d_unifiedYPositionProperty;
03716 static WindowProperties::UnifiedSize d_unifiedSizeProperty;
03717 static WindowProperties::UnifiedWidth d_unifiedWidthProperty;
03718 static WindowProperties::UnifiedHeight d_unifiedHeightProperty;
03719 static WindowProperties::UnifiedMinSize d_unifiedMinSizeProperty;
03720 static WindowProperties::UnifiedMaxSize d_unifiedMaxSizeProperty;
03721 static WindowProperties::MousePassThroughEnabled d_mousePassThroughEnabledProperty;
03722 static WindowProperties::WindowRenderer d_windowRendererProperty;
03723 static WindowProperties::LookNFeel d_lookNFeelProperty;
03724 static WindowProperties::DragDropTarget d_dragDropTargetProperty;
03725 static WindowProperties::AutoRenderingSurface d_autoRenderingSurfaceProperty;
03726 static WindowProperties::Rotation d_rotationProperty;
03727 static WindowProperties::XRotation d_xRotationProperty;
03728 static WindowProperties::YRotation d_yRotationProperty;
03729 static WindowProperties::ZRotation d_zRotationProperty;
03730 static WindowProperties::NonClient d_nonClientProperty;
03731 static WindowProperties::TextParsingEnabled d_textParsingEnabledProperty;
03732
03733
03734
03735
03737 typedef std::vector<Window*> ChildList;
03739 typedef std::map<String, String, String::FastLessCompare> UserStringMap;
03741 typedef std::set<String, String::FastLessCompare> BannedXMLPropertySet;
03742
03744 const String d_type;
03746 String d_name;
03748 String d_falagardType;
03750 bool d_autoWindow;
03751
03753 bool d_initialising;
03755 bool d_destructionStarted;
03757 bool d_enabled;
03759 bool d_visible;
03761 bool d_active;
03762
03764 ChildList d_children;
03766 ChildList d_drawList;
03768 Window* d_parent;
03770 bool d_destroyedByParent;
03771
03773 bool d_clippedByParent;
03775 bool d_nonClientContent;
03776
03778 String d_lookName;
03780 WindowRenderer* d_windowRenderer;
03782 GeometryBuffer* d_geometry;
03784 RenderingSurface* d_surface;
03786 mutable bool d_needsRedraw;
03788 bool d_autoRenderingWindow;
03789
03791 const Image* d_mouseCursor;
03792
03794 float d_alpha;
03796 bool d_inheritsAlpha;
03797
03799 static Window* d_captureWindow;
03801 Window* d_oldCapture;
03803 bool d_restoreOldCapture;
03805 bool d_distCapturedInputs;
03806
03808 Font* d_font;
03810 String d_textLogical;
03812 BiDiVisualMapping* d_bidiVisualMapping;
03814 mutable bool d_bidiDataValid;
03816 mutable RenderedString d_renderedString;
03818 mutable bool d_renderedStringValid;
03820 static BasicRenderedStringParser d_basicStringParser;
03822 static DefaultRenderedStringParser d_defaultStringParser;
03824 RenderedStringParser* d_customStringParser;
03826 bool d_textParsingEnabled;
03827
03829 uint d_ID;
03831 void* d_userData;
03833 UserStringMap d_userStrings;
03834
03836 bool d_alwaysOnTop;
03838 bool d_riseOnClick;
03840 bool d_zOrderingEnabled;
03841
03843 bool d_wantsMultiClicks;
03845 bool d_mousePassThroughEnabled;
03847 bool d_autoRepeat;
03849 float d_repeatDelay;
03851 float d_repeatRate;
03853 MouseButton d_repeatButton;
03855 bool d_repeating;
03857 float d_repeatElapsed;
03858
03860 bool d_dragDropTarget;
03861
03863 String d_tooltipText;
03865 Tooltip* d_customTip;
03867 bool d_weOwnTip;
03869 bool d_inheritsTipText;
03870
03872 bool d_allowWriteXML;
03874 BannedXMLPropertySet d_bannedXMLProperties;
03875
03877 URect d_area;
03879 Size d_pixelSize;
03881 UVector2 d_minSize;
03883 UVector2 d_maxSize;
03885 HorizontalAlignment d_horzAlign;
03887 VerticalAlignment d_vertAlign;
03889 Vector3 d_rotation;
03890
03892 mutable Rect d_outerUnclippedRect;
03894 mutable Rect d_innerUnclippedRect;
03896 mutable Rect d_outerRectClipper;
03898 mutable Rect d_innerRectClipper;
03900 mutable Rect d_hitTestRect;
03901
03902 mutable bool d_outerUnclippedRectValid;
03903 mutable bool d_innerUnclippedRectValid;
03904 mutable bool d_outerRectClipperValid;
03905 mutable bool d_innerRectClipperValid;
03906 mutable bool d_hitTestRectValid;
03907
03908 private:
03909
03910
03911
03912 Window(const Window&) : PropertySet(), EventSet() {}
03913 Window& operator=(const Window&) {return *this;}
03914 };
03915
03916 }
03917
03918
03919 #if defined(_MSC_VER)
03920 # pragma warning(pop)
03921 #endif
03922
03923 #endif // end of guard _CEGUIWindow_h_