diff options
author | Jacek Antonelli | 2010-02-04 19:55:07 -0600 |
---|---|---|
committer | Jacek Antonelli | 2010-02-04 20:54:34 -0600 |
commit | d414063e6c590728348fb1127da4c90a9896d691 (patch) | |
tree | 4e25233de2c3c50d3dba27892b43b80df97c6094 /linden/indra/llui | |
parent | Slider widgets can now be controlled with mouse wheel. (diff) | |
download | meta-impy-d414063e6c590728348fb1127da4c90a9896d691.zip meta-impy-d414063e6c590728348fb1127da4c90a9896d691.tar.gz meta-impy-d414063e6c590728348fb1127da4c90a9896d691.tar.bz2 meta-impy-d414063e6c590728348fb1127da4c90a9896d691.tar.xz |
Added SliderScrollWheelMultiplier setting.
Affects the direction sliders move from mouse scroll wheel.
Also added LLSlider::getScrollWheelMultiplier() and
LLSlider::setScrollWheelMultiplier().
Diffstat (limited to 'linden/indra/llui')
-rw-r--r-- | linden/indra/llui/llslider.cpp | 21 | ||||
-rw-r--r-- | linden/indra/llui/llslider.h | 5 |
2 files changed, 25 insertions, 1 deletions
diff --git a/linden/indra/llui/llslider.cpp b/linden/indra/llui/llslider.cpp index 83b4d65..5c17baa 100644 --- a/linden/indra/llui/llslider.cpp +++ b/linden/indra/llui/llslider.cpp | |||
@@ -46,6 +46,10 @@ static LLRegisterWidget<LLSlider> r1("slider_bar"); | |||
46 | static LLRegisterWidget<LLSlider> r2("volume_slider"); | 46 | static LLRegisterWidget<LLSlider> r2("volume_slider"); |
47 | 47 | ||
48 | 48 | ||
49 | // This is overridden based on user's settings. | ||
50 | S32 LLSlider::sScrollWheelMultiplier = 1; | ||
51 | |||
52 | |||
49 | LLSlider::LLSlider( | 53 | LLSlider::LLSlider( |
50 | const std::string& name, | 54 | const std::string& name, |
51 | const LLRect& rect, | 55 | const LLRect& rect, |
@@ -222,12 +226,27 @@ BOOL LLSlider::handleMouseDown(S32 x, S32 y, MASK mask) | |||
222 | return TRUE; | 226 | return TRUE; |
223 | } | 227 | } |
224 | 228 | ||
229 | |||
230 | // static | ||
231 | void LLSlider::setScrollWheelMultiplier( S32 mult ) | ||
232 | { | ||
233 | sScrollWheelMultiplier = mult; | ||
234 | } | ||
235 | |||
236 | // static | ||
237 | S32 LLSlider::getScrollWheelMultiplier() | ||
238 | { | ||
239 | return sScrollWheelMultiplier; | ||
240 | } | ||
241 | |||
225 | BOOL LLSlider::handleScrollWheel(S32 x, S32 y, S32 clicks) | 242 | BOOL LLSlider::handleScrollWheel(S32 x, S32 y, S32 clicks) |
226 | { | 243 | { |
227 | setValueAndCommit(getValueF32() - ( getIncrement()* (F32)clicks )); | 244 | S32 mult = LLSlider::getScrollWheelMultiplier(); |
245 | setValueAndCommit(getValueF32() - (getIncrement() * (F32)clicks * mult)); | ||
228 | return TRUE; | 246 | return TRUE; |
229 | } | 247 | } |
230 | 248 | ||
249 | |||
231 | BOOL LLSlider::handleKeyHere(KEY key, MASK mask) | 250 | BOOL LLSlider::handleKeyHere(KEY key, MASK mask) |
232 | { | 251 | { |
233 | BOOL handled = FALSE; | 252 | BOOL handled = FALSE; |
diff --git a/linden/indra/llui/llslider.h b/linden/indra/llui/llslider.h index 9fc85f2..d558ce2 100644 --- a/linden/indra/llui/llslider.h +++ b/linden/indra/llui/llslider.h | |||
@@ -56,6 +56,9 @@ public: | |||
56 | virtual LLXMLNodePtr getXML(bool save_children = true) const; | 56 | virtual LLXMLNodePtr getXML(bool save_children = true) const; |
57 | static LLView* fromXML(LLXMLNodePtr node, LLView *parent, class LLUICtrlFactory *factory); | 57 | static LLView* fromXML(LLXMLNodePtr node, LLView *parent, class LLUICtrlFactory *factory); |
58 | 58 | ||
59 | static void setScrollWheelMultiplier( S32 mult ); | ||
60 | static S32 getScrollWheelMultiplier(); | ||
61 | |||
59 | void setValue( F32 value, BOOL from_event = FALSE ); | 62 | void setValue( F32 value, BOOL from_event = FALSE ); |
60 | F32 getValueF32() const { return mValue; } | 63 | F32 getValueF32() const { return mValue; } |
61 | 64 | ||
@@ -107,6 +110,8 @@ private: | |||
107 | 110 | ||
108 | void (*mMouseDownCallback)(LLUICtrl* ctrl, void* userdata); | 111 | void (*mMouseDownCallback)(LLUICtrl* ctrl, void* userdata); |
109 | void (*mMouseUpCallback)(LLUICtrl* ctrl, void* userdata); | 112 | void (*mMouseUpCallback)(LLUICtrl* ctrl, void* userdata); |
113 | |||
114 | static S32 sScrollWheelMultiplier; | ||
110 | }; | 115 | }; |
111 | 116 | ||
112 | #endif // LL_LLSLIDER_H | 117 | #endif // LL_LLSLIDER_H |