MyGUI 3.4.3
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
13namespace MyGUI
14{
15
16 class ControllerItem;
17
19
23 class MYGUI_EXPORT ScrollBar : public Widget, public MemberObsolete<ScrollBar>
24 {
26
27 public:
29 void setVerticalAlignment(bool _value);
31 bool getVerticalAlignment() const;
32
34 void setScrollRange(size_t _range);
36 size_t getScrollRange() const;
37
39 void setScrollPosition(size_t _position);
41 size_t getScrollPosition() const;
42
46 void setScrollPage(size_t _value);
48 size_t getScrollPage() const;
49
53 void setScrollViewPage(size_t _value);
55 size_t getScrollViewPage() const;
56
60 void setScrollWheelPage(size_t _value);
62 size_t getScrollWheelPage() const;
63
65 int getLineSize() const;
66
70 void setTrackSize(int _size);
72 int getTrackSize() const;
73
75 void setMinTrackSize(int _value);
77 int getMinTrackSize() const;
78
83 void setMoveToClick(bool _value);
85 bool getMoveToClick() const;
86
90 void setRepeatEnabled(bool enabled);
94 bool getRepeatEnabled() const;
95
97 void setRepeatTriggerTime(float time);
99 float getRepeatTriggerTime(float time) const;
100
102 void setRepeatStepTime(float time);
104 float getRepeatStepTime(float time) const;
105
107 void setPosition(const IntPoint& _point) override;
109 void setSize(const IntSize& _size) override;
111 void setCoord(const IntCoord& _coord) override;
112
113 using Widget::setPosition;
114 using Widget::setSize;
115 using Widget::setCoord;
116
117 /*events:*/
124
125 protected:
126 void initialiseOverride() override;
127 void shutdownOverride() override;
128
129 void updateTrack();
130 void TrackMove(int _left, int _top);
131
132 void onMouseWheel(int _rel) override;
133
134 void notifyMousePressed(Widget* _sender, int _left, int _top, MouseButton _id);
135 void notifyMouseReleased(Widget* _sender, int _left, int _top, MouseButton _id);
136 void notifyMouseDrag(Widget* _sender, int _left, int _top, MouseButton _id);
137 void notifyMouseWheel(Widget* _sender, int _rel);
138
139 void setPropertyOverride(std::string_view _key, std::string_view _value) override;
140
141 int getTrackPlaceLength() const;
142
143 private:
144 void repeatClick(MyGUI::Widget* _widget, MyGUI::ControllerItem* _controller);
145 void widgetStartPressed();
146 void widgetEndPressed();
147 void widgetFirstPartPressed();
148 void widgetSecondPartPressed();
149
150 protected:
151 // наши кнопки
152 Button* mWidgetStart{nullptr};
153 Button* mWidgetEnd{nullptr};
154 Button* mWidgetTrack{nullptr};
155 // куски между кнопками
156 Widget* mWidgetFirstPart{nullptr};
157 Widget* mWidgetSecondPart{nullptr};
158
159 // смещение внутри окна
161
162 // диапазон на который трек может двигаться
163 size_t mSkinRangeStart{0};
164 size_t mSkinRangeEnd{0};
165
166 size_t mScrollRange{0};
167 size_t mScrollPosition{0};
168 size_t mScrollPage{0}; // track step, when clicking buttons
169 size_t mScrollViewPage{0}; // track step, when clicking scroll line
170 size_t mScrollWheelPage{0}; // track step, when scrolling with mouse wheel
171
172 bool mEnableRepeat{true}; // Repeat clicks on the scrollbar buttons when the mouse button remains pressed down
173 float mRepeatTriggerTime{0.f}; // Time the mouse button needs to be held for repeating to start
174 float mRepeatStepTime{0.f}; // Time between repeats
175
176 int mMinTrackSize{0};
177 bool mMoveToClick{false};
178
179 bool mVerticalAlignment{true};
180 };
181
182} // namespace MyGUI
183
184#endif // MYGUI_SCROLL_BAR_H_
#define MYGUI_EXPORT
#define MYGUI_RTTI_DERIVED(DerivedType)
Definition MyGUI_RTTI.h:69
widget description should be here.
widget description should be here.
EventHandle_ScrollBarPtrSizeT eventScrollChangePosition
widget description should be here.