MyGUI  3.2.1
MyGUI_ScrollBar.h
Go to the documentation of this file.
1 /*
2  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3  * Distributed under the MIT License
4  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5  */
6 
7 #ifndef __MYGUI_SCROLL_BAR_H__
8 #define __MYGUI_SCROLL_BAR_H__
9 
10 #include "MyGUI_Prerequest.h"
11 #include "MyGUI_Widget.h"
12 
13 namespace MyGUI
14 {
15 
17 
22  public Widget,
23  public MemberObsolete<ScrollBar>
24  {
26 
27  public:
28  ScrollBar();
29 
31  void setVerticalAlignment(bool _value);
33  bool getVerticalAlignment() const;
34 
36  void setScrollRange(size_t _value);
38  size_t getScrollRange() const;
39 
41  void setScrollPosition(size_t _value);
43  size_t getScrollPosition() const;
44 
48  void setScrollPage(size_t _value);
50  size_t getScrollPage() const;
51 
55  void setScrollViewPage(size_t _value);
57  size_t getScrollViewPage() const;
58 
62  void setScrollWheelPage(size_t _value);
64  size_t getScrollWheelPage() const;
65 
67  int getLineSize() const;
68 
72  void setTrackSize(int _value);
74  int getTrackSize() const;
75 
77  void setMinTrackSize(int _value);
79  int getMinTrackSize() const;
80 
85  void setMoveToClick(bool _value);
87  bool getMoveToClick() const;
88 
90  virtual void setPosition(const IntPoint& _value);
92  virtual void setSize(const IntSize& _value);
94  virtual void setCoord(const IntCoord& _value);
95 
97  void setPosition(int _left, int _top);
99  void setSize(int _width, int _height);
101  void setCoord(int _left, int _top, int _width, int _height);
102 
103  /*events:*/
109  EventHandle_ScrollBarPtrSizeT eventScrollChangePosition;
110 
111  protected:
112  virtual void initialiseOverride();
113  virtual void shutdownOverride();
114 
115  void updateTrack();
116  void TrackMove(int _left, int _top);
117 
118  virtual void onMouseWheel(int _rel);
119 
120  void notifyMousePressed(Widget* _sender, int _left, int _top, MouseButton _id);
121  void notifyMouseReleased(Widget* _sender, int _left, int _top, MouseButton _id);
122  void notifyMouseDrag(Widget* _sender, int _left, int _top, MouseButton _id);
123  void notifyMouseWheel(Widget* _sender, int _rel);
124 
125  virtual void setPropertyOverride(const std::string& _key, const std::string& _value);
126 
127  int getTrackPlaceLength() const;
128 
129  protected:
130  // наши кнопки
131  Button* mWidgetStart;
132  Button* mWidgetEnd;
133  Button* mWidgetTrack;
134  // куски между кнопками
135  Widget* mWidgetFirstPart;
136  Widget* mWidgetSecondPart;
137 
138  // смещение внутри окна
139  IntPoint mPreActionOffset;
140 
141  // диапазон на который трек может двигаться
142  size_t mSkinRangeStart;
143  size_t mSkinRangeEnd;
144 
145  size_t mScrollRange;
146  size_t mScrollPosition;
147  size_t mScrollPage; // track step, when clicking buttons
148  size_t mScrollViewPage; // track step, when clicking scroll line
149  size_t mScrollWheelPage; // track step, when scrolling with mouse wheel
150 
151  int mMinTrackSize;
152  bool mMoveToClick;
153 
154  bool mVerticalAlignment;
155  };
156 
157 } // namespace MyGUI
158 
159 #endif // __MYGUI_SCROLL_BAR_H__