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
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 // наши кнопки
155 // куски между кнопками
158
159 // смещение внутри окна
161
162 // диапазон на который трек может двигаться
164 size_t mSkinRangeEnd{0};
165
166 size_t mScrollRange{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
177 bool mMoveToClick{false};
178
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.
int getMinTrackSize() const
void setVerticalAlignment(bool _value)
void setRepeatEnabled(bool enabled)
EventHandle_ScrollBarPtrSizeT eventScrollChangePosition
void setMoveToClick(bool _value)
void shutdownOverride() override
void setScrollWheelPage(size_t _value)
void initialiseOverride() override
void setMinTrackSize(int _value)
size_t getScrollPage() const
void setTrackSize(int _size)
void notifyMousePressed(Widget *_sender, int _left, int _top, MouseButton _id)
void setRepeatTriggerTime(float time)
void setRepeatStepTime(float time)
bool getVerticalAlignment() const
bool getRepeatEnabled() const
size_t getScrollPosition() const
void TrackMove(int _left, int _top)
void notifyMouseReleased(Widget *_sender, int _left, int _top, MouseButton _id)
size_t getScrollViewPage() const
void setScrollPosition(size_t _position)
size_t getScrollRange() const
int getTrackPlaceLength() const
void setScrollViewPage(size_t _value)
bool getMoveToClick() const
void setCoord(const IntCoord &_coord) override
void notifyMouseDrag(Widget *_sender, int _left, int _top, MouseButton _id)
void setSize(const IntSize &_size) override
void setPosition(const IntPoint &_point) override
void onMouseWheel(int _rel) override
void setScrollRange(size_t _range)
float getRepeatTriggerTime(float time) const
void setScrollPage(size_t _value)
size_t getScrollWheelPage() const
void notifyMouseWheel(Widget *_sender, int _rel)
float getRepeatStepTime(float time) const
void setPropertyOverride(std::string_view _key, std::string_view _value) override
widget description should be here.
void setSize(const IntSize &_size) override
void setPosition(const IntPoint &_point) override
void setCoord(const IntCoord &_coord) override
delegates::MultiDelegate< ScrollBar *, size_t > EventHandle_ScrollBarPtrSizeT
types::TPoint< int > IntPoint
Definition MyGUI_Types.h:27
types::TCoord< int > IntCoord
Definition MyGUI_Types.h:36
types::TSize< int > IntSize
Definition MyGUI_Types.h:30