aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llui
diff options
context:
space:
mode:
authorJacek Antonelli2010-02-04 19:55:07 -0600
committerJacek Antonelli2010-02-04 20:54:34 -0600
commitd414063e6c590728348fb1127da4c90a9896d691 (patch)
tree4e25233de2c3c50d3dba27892b43b80df97c6094 /linden/indra/llui
parentSlider widgets can now be controlled with mouse wheel. (diff)
downloadmeta-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.cpp21
-rw-r--r--linden/indra/llui/llslider.h5
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");
46static LLRegisterWidget<LLSlider> r2("volume_slider"); 46static LLRegisterWidget<LLSlider> r2("volume_slider");
47 47
48 48
49// This is overridden based on user's settings.
50S32 LLSlider::sScrollWheelMultiplier = 1;
51
52
49LLSlider::LLSlider( 53LLSlider::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
231void LLSlider::setScrollWheelMultiplier( S32 mult )
232{
233 sScrollWheelMultiplier = mult;
234}
235
236// static
237S32 LLSlider::getScrollWheelMultiplier()
238{
239 return sScrollWheelMultiplier;
240}
241
225BOOL LLSlider::handleScrollWheel(S32 x, S32 y, S32 clicks) 242BOOL 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
231BOOL LLSlider::handleKeyHere(KEY key, MASK mask) 250BOOL 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