From d414063e6c590728348fb1127da4c90a9896d691 Mon Sep 17 00:00:00 2001 From: Jacek Antonelli Date: Thu, 4 Feb 2010 19:55:07 -0600 Subject: Added SliderScrollWheelMultiplier setting. Affects the direction sliders move from mouse scroll wheel. Also added LLSlider::getScrollWheelMultiplier() and LLSlider::setScrollWheelMultiplier(). --- linden/indra/llui/llslider.cpp | 21 ++++++++++++++++++++- linden/indra/llui/llslider.h | 5 +++++ 2 files changed, 25 insertions(+), 1 deletion(-) (limited to 'linden/indra/llui') 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 r1("slider_bar"); static LLRegisterWidget r2("volume_slider"); +// This is overridden based on user's settings. +S32 LLSlider::sScrollWheelMultiplier = 1; + + LLSlider::LLSlider( const std::string& name, const LLRect& rect, @@ -222,12 +226,27 @@ BOOL LLSlider::handleMouseDown(S32 x, S32 y, MASK mask) return TRUE; } + +// static +void LLSlider::setScrollWheelMultiplier( S32 mult ) +{ + sScrollWheelMultiplier = mult; +} + +// static +S32 LLSlider::getScrollWheelMultiplier() +{ + return sScrollWheelMultiplier; +} + BOOL LLSlider::handleScrollWheel(S32 x, S32 y, S32 clicks) { - setValueAndCommit(getValueF32() - ( getIncrement()* (F32)clicks )); + S32 mult = LLSlider::getScrollWheelMultiplier(); + setValueAndCommit(getValueF32() - (getIncrement() * (F32)clicks * mult)); return TRUE; } + BOOL LLSlider::handleKeyHere(KEY key, MASK mask) { 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: virtual LLXMLNodePtr getXML(bool save_children = true) const; static LLView* fromXML(LLXMLNodePtr node, LLView *parent, class LLUICtrlFactory *factory); + static void setScrollWheelMultiplier( S32 mult ); + static S32 getScrollWheelMultiplier(); + void setValue( F32 value, BOOL from_event = FALSE ); F32 getValueF32() const { return mValue; } @@ -107,6 +110,8 @@ private: void (*mMouseDownCallback)(LLUICtrl* ctrl, void* userdata); void (*mMouseUpCallback)(LLUICtrl* ctrl, void* userdata); + + static S32 sScrollWheelMultiplier; }; #endif // LL_LLSLIDER_H -- cgit v1.1