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 #ifndef _CEGUIWindow_h_
00027 #define _CEGUIWindow_h_
00028
00029 #include "CEGUIBase.h"
00030 #include "CEGUIString.h"
00031 #include "CEGUIVector.h"
00032 #include "CEGUIRect.h"
00033 #include "CEGUISize.h"
00034 #include "CEGUIEventSet.h"
00035 #include "CEGUIPropertySet.h"
00036 #include "CEGUISystem.h"
00037 #include "CEGUIInputEvent.h"
00038 #include "CEGUIWindowProperties.h"
00039 #include "CEGUIUDim.h"
00040 #include "CEGUIRenderCache.h"
00041 #include <vector>
00042
00043
00044 #if defined(_MSC_VER)
00045 # pragma warning(push)
00046 # pragma warning(disable : 4251)
00047 #endif
00048
00049
00050
00051 namespace CEGUI
00052 {
00053
00062 enum MetricsMode
00063 {
00064 Relative,
00065 Absolute,
00066 Inherited
00067 };
00068
00073 enum VerticalAlignment
00074 {
00075 VA_TOP,
00076 VA_CENTRE,
00077 VA_BOTTOM
00078 };
00079
00084 enum HorizontalAlignment
00085 {
00086 HA_LEFT,
00087 HA_CENTRE,
00088 HA_RIGHT
00089 };
00090
00100 class CEGUIEXPORT Window : public PropertySet, public EventSet
00101 {
00102 public:
00103 static const String EventNamespace;
00104
00105
00106
00107
00108
00109 static const String EventParentSized;
00110 static const String EventSized;
00111 static const String EventMoved;
00112 static const String EventTextChanged;
00113 static const String EventFontChanged;
00114 static const String EventAlphaChanged;
00115 static const String EventIDChanged;
00116 static const String EventActivated;
00117 static const String EventDeactivated;
00118 static const String EventShown;
00119 static const String EventHidden;
00120 static const String EventEnabled;
00121 static const String EventDisabled;
00122 static const String EventMetricsModeChanged;
00123 static const String EventClippedByParentChanged;
00124 static const String EventDestroyedByParentChanged;
00125 static const String EventInheritsAlphaChanged;
00126 static const String EventAlwaysOnTopChanged;
00127 static const String EventInputCaptureGained;
00128 static const String EventInputCaptureLost;
00129 static const String EventRenderingStarted;
00130 static const String EventRenderingEnded;
00131 static const String EventChildAdded;
00132 static const String EventChildRemoved;
00133 static const String EventDestructionStarted;
00134 static const String EventZOrderChanged;
00135 static const String EventDragDropItemEnters;
00136 static const String EventDragDropItemLeaves;
00137 static const String EventDragDropItemDropped;
00138 static const String EventVerticalAlignmentChanged;
00139 static const String EventHorizontalAlignmentChanged;
00140
00141
00142 static const String EventMouseEnters;
00143 static const String EventMouseLeaves;
00144 static const String EventMouseMove;
00145 static const String EventMouseWheel;
00146 static const String EventMouseButtonDown;
00147 static const String EventMouseButtonUp;
00148 static const String EventMouseClick;
00149 static const String EventMouseDoubleClick;
00150 static const String EventMouseTripleClick;
00151 static const String EventKeyDown;
00152 static const String EventKeyUp;
00153 static const String EventCharacterKey;
00154
00155
00156
00157
00158
00169 Window(const String& type, const String& name);
00170
00171
00176 virtual ~Window(void);
00177
00178
00179
00180
00181
00189 const String& getType(void) const;
00190
00191
00199 const String& getName(void) const {return d_name;}
00200
00201
00209 bool isDestroyedByParent(void) const {return d_destroyedByParent;}
00210
00211
00219 bool isAlwaysOnTop(void) const {return d_alwaysOnTop;}
00220
00221
00233 bool isDisabled(bool localOnly = false) const;
00234
00235
00250 bool isVisible(bool localOnly = false) const;
00251
00252
00263 bool isActive(void) const;
00264
00265
00273 bool isClippedByParent(void) const {return d_clippedByParent;}
00274
00275
00283 uint getID(void) const {return d_ID;}
00284
00285
00293 uint getChildCount(void) const {return (uint)d_children.size();}
00294
00295
00306 bool isChild(const String& name) const;
00307
00308
00323 bool isChild(uint ID) const;
00324
00325
00336 bool isChild(const Window* window) const;
00337
00338
00356 Window* getChild(const String& name) const;
00357
00358
00376 Window* getChild(uint ID) const;
00377
00378
00390 Window* getChildAtIdx(uint idx) const {return d_children[idx];}
00391
00392
00402 Window* getActiveChild(void);
00403 const Window* getActiveChild(void) const;
00404
00405
00416 bool isAncestor(const String& name) const;
00417
00418
00429 bool isAncestor(uint ID) const;
00430
00431
00442 bool isAncestor(const Window* window) const;
00443
00444
00455 const Font* getFont(bool useDefault = true) const;
00456
00457
00465 const String& getText(void) const {return d_text;}
00466
00467
00475 bool inheritsAlpha(void) const {return d_inheritsAlpha;}
00476
00477
00491 float getAlpha(void) const {return d_alpha;}
00492
00493
00502 float getEffectiveAlpha(void) const;
00503
00504
00513 Rect getRect(void) const;
00514
00515
00527 virtual Rect getPixelRect(void) const;
00528
00529
00537 Rect getInnerRect(void) const;
00538
00539
00548 Rect getUnclippedPixelRect(void) const;
00549
00550
00559 virtual Rect getUnclippedInnerRect(void) const;
00560
00561
00569 static Window* getCaptureWindow(void) {return d_captureWindow;}
00570
00571
00579 bool isCapturedByThis(void) const {return getCaptureWindow() == this;}
00580
00581
00589 bool isCapturedByAncestor(void) const {return isAncestor(getCaptureWindow());}
00590
00591
00599 bool isCapturedByChild(void) const {return isChild(getCaptureWindow());}
00600
00601
00612 virtual bool isHit(const Point& position) const;
00613
00614
00625 Window* getChildAtPosition(const Point& position) const;
00626
00627
00635 MetricsMode getMetricsMode(void) const;
00636
00637
00646 float getXPosition(void) const;
00647
00648
00657 float getYPosition(void) const;
00658
00659
00668 Point getPosition(void) const;
00669
00670
00679 float getWidth(void) const;
00680
00689 float getHeight(void) const;
00690
00691
00700 Size getSize(void) const;
00701
00702
00711 Window* getParent(void) const {return d_parent;}
00712
00713
00722 Size getMaximumSize(void) const;
00723
00724
00733 Size getMinimumSize(void) const;
00734
00735
00746 const Image* getMouseCursor(bool useDefault = true) const;
00747
00748
00756 Rect getRelativeRect(void) const { return d_area.asRelative(getParentSize()); }
00757
00758
00766 Point getRelativePosition(void) const { return d_area.getPosition().asRelative(getParentSize()); }
00767
00768
00776 float getRelativeXPosition(void) const { return d_area.d_min.d_x.asRelative(getParentWidth()); }
00777
00778
00786 float getRelativeYPosition(void) const { return d_area.d_min.d_y.asRelative(getParentHeight()); }
00787
00788
00796 Size getRelativeSize(void) const { return d_area.getSize().asRelative(getParentSize()).asSize(); }
00797
00798
00806 float getRelativeWidth(void) const { return d_area.getWidth().asRelative(getParentWidth()); }
00807
00808
00816 float getRelativeHeight(void) const { return d_area.getHeight().asRelative(getParentHeight()); }
00817
00818
00826 Rect getAbsoluteRect(void) const { return Rect(d_area.getPosition().asAbsolute(getParentSize()), d_pixelSize); }
00827
00828
00836 Point getAbsolutePosition(void) const { return d_area.getPosition().asAbsolute(getParentSize()); }
00837
00838
00846 float getAbsoluteXPosition(void) const { return d_area.d_min.d_x.asAbsolute(getParentWidth()); }
00847
00848
00856 float getAbsoluteYPosition(void) const { return d_area.d_min.d_y.asAbsolute(getParentHeight()); }
00857
00858
00866 Size getAbsoluteSize(void) const { return d_pixelSize; }
00867
00868
00876 float getAbsoluteWidth(void) const { return d_pixelSize.d_width; }
00877
00878
00886 float getAbsoluteHeight(void) const { return d_pixelSize.d_height; }
00887
00888
00899 void* getUserData(void) const {return d_userData;}
00900
00901
00912 float getXPosition(MetricsMode mode) const;
00913
00914
00925 float getYPosition(MetricsMode mode) const;
00926
00927
00938 Point getPosition(MetricsMode mode) const;
00939
00940
00951 float getWidth(MetricsMode mode) const;
00952
00953
00964 float getHeight(MetricsMode mode) const;
00965
00966
00977 Size getSize(MetricsMode mode) const;
00978
00979
00990 Rect getRect(MetricsMode mode) const;
00991
00992
01003 bool restoresOldCapture(void) const {return d_restoreOldCapture;}
01004
01005
01014 bool isZOrderingEnabled(void) const;
01015
01016
01025 bool wantsMultiClickEvents(void) const;
01026
01027
01036 bool isMouseAutoRepeatEnabled(void) const;
01037
01038
01046 float getAutoRepeatDelay(void) const;
01047
01048
01056 float getAutoRepeatRate(void) const;
01057
01058
01068 bool distributesCapturedInputs(void) const;
01069
01070
01079 bool isUsingDefaultTooltip(void) const;
01080
01089 Tooltip* getTooltip(void) const;
01090
01098 String getTooltipType(void) const;
01099
01107 const String& getTooltipText(void) const;
01108
01117 bool inheritsTooltipText(void) const;
01118
01127 bool isRiseOnClickEnabled(void) const { return d_riseOnClick; }
01128
01139 bool testClassName(const String& class_name) const {return testClassName_impl(class_name);}
01140
01151 VerticalAlignment getVerticalAlignment() const {return d_vertAlign;}
01152
01163 HorizontalAlignment getHorizontalAlignment() const {return d_horzAlign;}
01164
01172 RenderCache& getRenderCache() { return d_renderCache; }
01173
01182 const String& getLookNFeel();
01183
01191 bool getModalState(void) const {return (System::getSingleton().getModalTarget() == this);}
01192
01193
01206 const String& getUserString(const String& name) const;
01207
01219 bool isUserStringDefined(const String& name) const;
01220
01235 Window* getActiveSibling();
01236
01237
01238
01239
01250 void rename(const String& new_name);
01251
01262 virtual void initialise(void) {}
01263
01264
01276 void setDestroyedByParent(bool setting);
01277
01278
01289 void setAlwaysOnTop(bool setting);
01290
01291
01302 void setEnabled(bool setting);
01303
01304
01312 void enable(void) {setEnabled(true);}
01313
01314
01322 void disable(void) {setEnabled(false);}
01323
01324
01335 void setVisible(bool setting);
01336
01337
01345 void show(void) {setVisible(true);}
01346
01347
01355 void hide(void) {setVisible(false);}
01356
01357
01365 void activate(void);
01366
01367
01376 void deactivate(void);
01377
01378
01390 void setClippedByParent(bool setting);
01391
01392
01403 void setID(uint ID);
01404
01405
01416 void setText(const String& text);
01417
01418
01429 void setWidth(float width);
01430
01431
01442 void setHeight(float height);
01443
01444
01455 void setSize(const Size& size);
01456
01457
01468 void setXPosition(float x);
01469
01470
01481 void setYPosition(float y);
01482
01483
01494 void setPosition(const Point& position);
01495
01496
01508 void setAreaRect(const Rect& area);
01509
01510
01521 void setFont(const Font* font);
01522
01523
01536 void setFont(const String& name);
01537
01538
01553 void addChildWindow(const String& name);
01554
01555
01569 void addChildWindow(Window* window);
01570
01571
01582 void removeChildWindow(const String& name);
01583
01584
01595 void removeChildWindow(Window* window);
01596
01597
01609 void removeChildWindow(uint ID);
01610
01611
01623 void moveToFront();
01624
01625
01636 void moveToBack();
01637
01638
01647 bool captureInput(void);
01648
01649
01657 void releaseInput(void);
01658
01659
01675 void setRestoreCapture(bool setting);
01676
01677
01694 void setAlpha(float alpha);
01695
01696
01707 void setInheritsAlpha(bool setting);
01708
01709
01717 void requestRedraw(void) const;
01718
01719
01730 void setMetricsMode(MetricsMode mode);
01731
01732
01741 void setMinimumSize(const Size& sz);
01742
01743
01752 void setMaximumSize(const Size& sz);
01753
01754
01765 void setMouseCursor(const Image* image) {d_mouseCursor = image;}
01766
01767
01778 void setMouseCursor(MouseCursorImage image) {d_mouseCursor = (const Image*)image;}
01779
01780
01796 void setMouseCursor(const String& imageset, const String& image_name);
01797
01798
01812 void setUserData(void* user_data) {d_userData = user_data;}
01813
01814
01828 void setXPosition(MetricsMode mode, float x);
01829
01830
01844 void setYPosition(MetricsMode mode, float y);
01845
01846
01860 void setPosition(MetricsMode mode, const Point& position);
01861
01862
01876 void setWidth(MetricsMode mode, float width);
01877
01878
01892 void setHeight(MetricsMode mode, float height);
01893
01894
01908 void setSize(MetricsMode mode, const Size& size);
01909
01910
01924 void setRect(MetricsMode mode, const Rect& area);
01925
01926
01938 void setZOrderingEnabled(bool setting);
01939
01940
01952 void setWantsMultiClickEvents(bool setting);
01953
01954
01966 void setMouseAutoRepeatEnabled(bool setting);
01967
01968
01979 void setAutoRepeatDelay(float delay);
01980
01981
01992 void setAutoRepeatRate(float rate);
01993
01994
02004 void setDistributesCapturedInputs(bool setting);
02005
02011 void notifyDragDropItemEnters(DragContainer* item);
02012
02018 void notifyDragDropItemLeaves(DragContainer* item);
02019
02025 void notifyDragDropItemDropped(DragContainer* item);
02026
02040 virtual void destroy(void);
02041
02055 void setTooltip(Tooltip* tooltip);
02056
02072 void setTooltipType(const String& tooltipType);
02073
02084 void setTooltipText(const String& tip);
02085
02097 void setInheritsTooltipText(bool setting);
02098
02110 void setRiseOnClickEnabled(bool setting) { d_riseOnClick = setting; }
02111
02125 void setVerticalAlignment(const VerticalAlignment alignment);
02126
02140 void setHorizontalAlignment(const HorizontalAlignment alignment);
02141
02158 void setLookNFeel(const String& falagardType, const String& look);
02159
02172 void setModalState(bool state);
02173
02184 virtual void performChildWindowLayout();
02185
02199 void setUserString(const String& name, const String& value);
02200
02201
02202
02203
02214 float absoluteToRelativeX(float val) const;
02215
02216
02227 float absoluteToRelativeY(float val) const;
02228
02229
02240 Point absoluteToRelative(const Point& pt) const;
02241
02242
02253 Size absoluteToRelative(const Size& sze) const;
02254
02255
02266 Rect absoluteToRelative(const Rect& rect) const;
02267
02268
02279 float relativeToAbsoluteX(float val) const;
02280
02281
02292 float relativeToAbsoluteY(float val) const;
02293
02294
02305 Point relativeToAbsolute(const Point& pt) const;
02306
02307
02318 Size relativeToAbsolute(const Size& sze) const;
02319
02320
02331 Rect relativeToAbsolute(const Rect& rect) const;
02332
02333
02344 float windowToScreenX(float x) const;
02345
02346
02357 float windowToScreenY(float y) const;
02358
02359
02370 Point windowToScreen(const Point& pt) const;
02371
02372
02383 Size windowToScreen(const Size& sze) const;
02384
02385
02396 Rect windowToScreen(const Rect& rect) const;
02397
02398
02409 float screenToWindowX(float x) const;
02410
02411
02422 float screenToWindowY(float y) const;
02423
02424
02435 Point screenToWindow(const Point& pt) const;
02436
02437
02448 Size screenToWindow(const Size& sze) const;
02449
02450
02461 Rect screenToWindow(const Rect& rect) const;
02462
02463
02474 float unifiedToRelativeX(const UDim& val) const;
02475
02476
02487 float unifiedToRelativeY(const UDim& val) const;
02488
02489
02500 Vector2 unifiedToRelative(const UVector2& val) const;
02501
02502
02513 Rect unifiedToRelative(const URect& val) const;
02514
02515
02526 float unifiedToAbsoluteX(const UDim& val) const;
02527
02528
02539 float unifiedToAbsoluteY(const UDim& val) const;
02540
02541
02552 Vector2 unifiedToAbsolute(const UVector2& val) const;
02553
02554
02565 Rect unifiedToAbsolute(const URect& val) const;
02566
02567
02578 float windowToScreenX(const UDim& x) const;
02579
02580
02591 float windowToScreenY(const UDim& y) const;
02592
02593
02604 Vector2 windowToScreen(const UVector2& vec) const;
02605
02606
02617 Rect windowToScreen(const URect& rect) const;
02618
02619
02630 float screenToWindowX(const UDim& x) const;
02631
02632
02643 float screenToWindowY(const UDim& y) const;
02644
02645
02656 Vector2 screenToWindow(const UVector2& vec) const;
02657
02658
02669 Rect screenToWindow(const URect& rect) const;
02670
02671
02672
02673
02674
02699 void setWindowArea(const UDim& xpos, const UDim& ypos, const UDim& width, const UDim& height);
02700
02719 void setWindowArea(const UVector2& pos, const UVector2& size);
02720
02736 void setWindowArea(const URect& area);
02737
02753 void setWindowPosition(const UVector2& pos);
02754
02770 void setWindowXPosition(const UDim& x);
02771
02787 void setWindowYPosition(const UDim& y);
02788
02802 void setWindowSize(const UVector2& size);
02803
02817 void setWindowWidth(const UDim& width);
02818
02832 void setWindowHeight(const UDim& height);
02833
02848 void setWindowMaxSize(const UVector2& size);
02849
02864 void setWindowMinSize(const UVector2& size);
02865
02881 const URect& getWindowArea() const;
02882
02898 const UVector2& getWindowPosition() const;
02899
02915 const UDim& getWindowXPosition() const;
02916
02932 const UDim& getWindowYPosition() const;
02933
02947 UVector2 getWindowSize() const;
02948
02962 UDim getWindowWidth() const;
02963
02977 UDim getWindowHeight() const;
02978
02993 const UVector2& getWindowMaxSize() const;
02994
03009 const UVector2& getWindowMinSize() const;
03010
03011
03012
03013
03014
03022 void render(void);
03023
03024
03040 void update(float elapsed);
03041
03042
03053 virtual void writeXMLToStream(OutStream& out_stream) const;
03054
03055 protected:
03056
03057
03058
03059 friend class System;
03060
03061
03062
03063
03064
03073 virtual void onSized(WindowEventArgs& e);
03074
03075
03084 virtual void onMoved(WindowEventArgs& e);
03085
03086
03095 virtual void onTextChanged(WindowEventArgs& e);
03096
03097
03106 virtual void onFontChanged(WindowEventArgs& e);
03107
03108
03117 virtual void onAlphaChanged(WindowEventArgs& e);
03118
03119
03128 virtual void onIDChanged(WindowEventArgs& e);
03129
03130
03139 virtual void onShown(WindowEventArgs& e);
03140
03141
03150 virtual void onHidden(WindowEventArgs& e);
03151
03152
03161 virtual void onEnabled(WindowEventArgs& e);
03162
03163
03172 virtual void onDisabled(WindowEventArgs& e);
03173
03174
03183 virtual void onMetricsChanged(WindowEventArgs& e);
03184
03185
03194 virtual void onClippingChanged(WindowEventArgs& e);
03195
03196
03205 virtual void onParentDestroyChanged(WindowEventArgs& e);
03206
03207
03216 virtual void onInheritsAlphaChanged(WindowEventArgs& e);
03217
03218
03227 virtual void onAlwaysOnTopChanged(WindowEventArgs& e);
03228
03229
03238 virtual void onCaptureGained(WindowEventArgs& e);
03239
03240
03249 virtual void onCaptureLost(WindowEventArgs& e);
03250
03251
03260 virtual void onRenderingStarted(WindowEventArgs& e);
03261
03262
03271 virtual void onRenderingEnded(WindowEventArgs& e);
03272
03273
03282 virtual void onZChanged(WindowEventArgs& e);
03283
03284
03293 virtual void onDestructionStarted(WindowEventArgs& e);
03294
03295
03303 virtual void onActivated(ActivationEventArgs& e);
03304
03305
03313 virtual void onDeactivated(ActivationEventArgs& e);
03314
03315
03325 virtual void onParentSized(WindowEventArgs& e);
03326
03327
03335 virtual void onChildAdded(WindowEventArgs& e);
03336
03337
03345 virtual void onChildRemoved(WindowEventArgs& e);
03346
03347
03355 virtual void onMouseEnters(MouseEventArgs& e);
03356
03357
03365 virtual void onMouseLeaves(MouseEventArgs& e);
03366
03367
03375 virtual void onMouseMove(MouseEventArgs& e);
03376
03377
03385 virtual void onMouseWheel(MouseEventArgs& e);
03386
03387
03395 virtual void onMouseButtonDown(MouseEventArgs& e);
03396
03397
03405 virtual void onMouseButtonUp(MouseEventArgs& e);
03406
03407
03416 virtual void onMouseClicked(MouseEventArgs& e);
03417
03418
03426 virtual void onMouseDoubleClicked(MouseEventArgs& e);
03427
03428
03436 virtual void onMouseTripleClicked(MouseEventArgs& e);
03437
03438
03447 virtual void onKeyDown(KeyEventArgs& e);
03448
03449
03459 virtual void onKeyUp(KeyEventArgs& e);
03460
03461
03471 virtual void onCharacter(KeyEventArgs& e);
03472
03482 virtual void onDragDropItemEnters(DragDropEventArgs& e);
03483
03484
03494 virtual void onDragDropItemLeaves(DragDropEventArgs& e);
03495
03496
03506 virtual void onDragDropItemDropped(DragDropEventArgs& e);
03507
03508
03517 virtual void onVerticalAlignmentChanged(WindowEventArgs& e);
03518
03519
03528 virtual void onHorizontalAlignmentChanged(WindowEventArgs& e);
03529
03530
03531
03532
03533
03544 virtual void updateSelf(float elapsed);
03545
03546
03557 virtual void drawSelf(float z);
03558
03559
03566 virtual void populateRenderCache() {}
03567
03568
03579 virtual bool testClassName_impl(const String& class_name) const
03580 {
03581 if (class_name==(const utf8*)"Window") return true;
03582 return false;
03583 }
03584
03585
03596 void setParent(Window* parent);
03597
03598
03606 float getParentWidth(void) const;
03607
03608
03616 float getParentHeight(void) const;
03617
03618
03626 Size getParentSize(void) const;
03627
03628
03643 Rect absoluteToRelative_impl(const Window* window, const Rect& rect) const;
03644 Size absoluteToRelative_impl(const Window* window, const Size& sz) const;
03645 Point absoluteToRelative_impl(const Window* window, const Point& pt) const;
03646 float absoluteToRelativeX_impl(const Window* window, float x) const;
03647 float absoluteToRelativeY_impl(const Window* window, float y) const;
03648
03649
03664 Rect relativeToAbsolute_impl(const Window* window, const Rect& rect) const;
03665 Size relativeToAbsolute_impl(const Window* window, const Size& sz) const;
03666 Point relativeToAbsolute_impl(const Window* window, const Point& pt) const;
03667 float relativeToAbsoluteX_impl(const Window* window, float x) const;
03668 float relativeToAbsoluteY_impl(const Window* window, float y) const;
03669
03670 Size getWindowSize_impl(const Window* window) const;
03671
03672
03678 MetricsMode getInheritedMetricsMode(void) const;
03679
03680
03685 void generateAutoRepeatEvent(MouseButton button);
03686
03687
03688
03689
03690
03691
03692 typedef std::vector<Window*> ChildList;
03693 ChildList d_children;
03694 ChildList d_drawList;
03695
03696
03697 MetricsMode d_metricsMode;
03698 static Window* d_captureWindow;
03699 Window* d_oldCapture;
03700 Window* d_parent;
03701 const Font* d_font;
03702 String d_text;
03703 uint d_ID;
03704 float d_alpha;
03705 URect d_area;
03706 Size d_pixelSize;
03707 const Image* d_mouseCursor;
03708 void* d_userData;
03709
03710 typedef std::map<String, String> UserStringMap;
03711 UserStringMap d_userStrings;
03712
03713
03714 HorizontalAlignment d_horzAlign;
03715 VerticalAlignment d_vertAlign;
03716
03717
03718 UVector2 d_minSize;
03719 UVector2 d_maxSize;
03720
03721
03722 bool d_enabled;
03723 bool d_visible;
03724 bool d_active;
03725 bool d_clippedByParent;
03726 bool d_destroyedByParent;
03727 bool d_alwaysOnTop;
03728 bool d_inheritsAlpha;
03729 bool d_restoreOldCapture;
03730 bool d_zOrderingEnabled;
03731 bool d_wantsMultiClicks;
03732 bool d_distCapturedInputs;
03733 bool d_riseOnClick;
03734
03735
03736 bool d_autoRepeat;
03737 float d_repeatDelay;
03738 float d_repeatRate;
03739 bool d_repeating;
03740 float d_repeatElapsed;
03741 MouseButton d_repeatButton;
03742
03743
03744 String d_tooltipText;
03745 Tooltip* d_customTip;
03746 bool d_weOwnTip;
03747 bool d_inheritsTipText;
03748
03749
03750 RenderCache d_renderCache;
03751 mutable bool d_needsRedraw;
03752
03753
03754 String d_lookName;
03755
03756 protected:
03757
03758
03759
03760 static WindowProperties::AbsoluteHeight d_absHeightProperty;
03761 static WindowProperties::AbsoluteMaxSize d_absMaxSizeProperty;
03762 static WindowProperties::AbsoluteMinSize d_absMinSizeProperty;
03763 static WindowProperties::AbsolutePosition d_absPositionProperty;
03764 static WindowProperties::AbsoluteRect d_absRectProperty;
03765 static WindowProperties::AbsoluteSize d_absSizeProperty;
03766 static WindowProperties::AbsoluteWidth d_absWidthProperty;
03767 static WindowProperties::AbsoluteXPosition d_absXPosProperty;
03768 static WindowProperties::AbsoluteYPosition d_absYPosProperty;
03769 static WindowProperties::Alpha d_alphaProperty;
03770 static WindowProperties::AlwaysOnTop d_alwaysOnTopProperty;
03771 static WindowProperties::ClippedByParent d_clippedByParentProperty;
03772 static WindowProperties::DestroyedByParent d_destroyedByParentProperty;
03773 static WindowProperties::Disabled d_disabledProperty;
03774 static WindowProperties::Font d_fontProperty;
03775 static WindowProperties::Height d_heightProperty;
03776 static WindowProperties::ID d_IDProperty;
03777 static WindowProperties::InheritsAlpha d_inheritsAlphaProperty;
03778 static WindowProperties::MetricsMode d_metricsModeProperty;
03779 static WindowProperties::MouseCursorImage d_mouseCursorProperty;
03780 static WindowProperties::Position d_positionProperty;
03781 static WindowProperties::Rect d_rectProperty;
03782 static WindowProperties::RelativeHeight d_relHeightProperty;
03783 static WindowProperties::RelativeMaxSize d_relMaxSizeProperty;
03784 static WindowProperties::RelativeMinSize d_relMinSizeProperty;
03785 static WindowProperties::RelativePosition d_relPositionProperty;
03786 static WindowProperties::RelativeRect d_relRectProperty;
03787 static WindowProperties::RelativeSize d_relSizeProperty;
03788 static WindowProperties::RelativeWidth d_relWidthProperty;
03789 static WindowProperties::RelativeXPosition d_relXPosProperty;
03790 static WindowProperties::RelativeYPosition d_relYPosProperty;
03791 static WindowProperties::RestoreOldCapture d_restoreOldCaptureProperty;
03792 static WindowProperties::Size d_sizeProperty;
03793 static WindowProperties::Text d_textProperty;
03794 static WindowProperties::Visible d_visibleProperty;
03795 static WindowProperties::Width d_widthProperty;
03796 static WindowProperties::XPosition d_xPosProperty;
03797 static WindowProperties::YPosition d_yPosProperty;
03798 static WindowProperties::ZOrderChangeEnabled d_zOrderChangeProperty;
03799 static WindowProperties::WantsMultiClickEvents d_wantsMultiClicksProperty;
03800 static WindowProperties::MouseButtonDownAutoRepeat d_autoRepeatProperty;
03801 static WindowProperties::AutoRepeatDelay d_autoRepeatDelayProperty;
03802 static WindowProperties::AutoRepeatRate d_autoRepeatRateProperty;
03803 static WindowProperties::DistributeCapturedInputs d_distInputsProperty;
03804 static WindowProperties::CustomTooltipType d_tooltipTypeProperty;
03805 static WindowProperties::Tooltip d_tooltipProperty;
03806 static WindowProperties::InheritsTooltipText d_inheritsTooltipProperty;
03807 static WindowProperties::RiseOnClick d_riseOnClickProperty;
03808 static WindowProperties::VerticalAlignment d_vertAlignProperty;
03809 static WindowProperties::HorizontalAlignment d_horzAlignProperty;
03810 static WindowProperties::UnifiedAreaRect d_unifiedAreaRectProperty;
03811 static WindowProperties::UnifiedPosition d_unifiedPositionProperty;
03812 static WindowProperties::UnifiedXPosition d_unifiedXPositionProperty;
03813 static WindowProperties::UnifiedYPosition d_unifiedYPositionProperty;
03814 static WindowProperties::UnifiedSize d_unifiedSizeProperty;
03815 static WindowProperties::UnifiedWidth d_unifiedWidthProperty;
03816 static WindowProperties::UnifiedHeight d_unifiedHeightProperty;
03817 static WindowProperties::UnifiedMinSize d_unifiedMinSizeProperty;
03818 static WindowProperties::UnifiedMaxSize d_unifiedMaxSizeProperty;
03819
03820
03821
03822
03823
03828 void addStandardEvents(void);
03829
03834 virtual void cleanupChildren(void);
03835
03840 virtual void addChild_impl(Window* wnd);
03841
03846 virtual void removeChild_impl(Window* wnd);
03847
03852 virtual void onZChange_impl(void);
03853
03854
03859 void addStandardProperties(void);
03860
03861
03866 virtual void moveToFront_impl(bool wasClicked);
03867
03868
03873 void doRiseOnClick(void);
03874
03875
03903 void setWindowArea_impl(const UVector2& pos, const UVector2& size, bool topLeftSizing = false, bool fireEvents = true);
03904
03922 void addWindowToDrawList(Window& wnd, bool at_back = false);
03923
03935 void removeWindowFromDrawList(const Window& wnd);
03936
03937 virtual int writePropertiesXML(OutStream& out_stream) const;
03938 virtual int writeChildWindowsXML(OutStream& out_stream) const;
03939
03940
03941
03942
03943 Window(const Window& wnd) {}
03944 Window& operator=(const Window& wnd) {return *this;}
03945
03946
03947
03948
03949 const String d_type;
03950 String d_name;
03951 String d_falagardType;
03952 };
03953
03954 }
03955
03956
03957 #if defined(_MSC_VER)
03958 # pragma warning(pop)
03959 #endif
03960
03961 #endif // end of guard _CEGUIWindow_h_