From dcc8013028bae2e0533d0d2209ef7f691eeae60a Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Wed, 16 Jan 2019 18:27:31 -0500 Subject: [PATCH] Allow scrolling and up and down arrows for slider manipulation. --- indra/llui/llslider.cpp | 16 ++++++++++------ indra/llui/llslider.h | 12 ++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/indra/llui/llslider.cpp b/indra/llui/llslider.cpp index 8e7e886ef..12d32d2ed 100644 --- a/indra/llui/llslider.cpp +++ b/indra/llui/llslider.cpp @@ -172,7 +172,7 @@ BOOL LLSlider::handleMouseUp(S32 x, S32 y, MASK mask) if( hasMouseCapture() ) { - gFocusMgr.setMouseCapture( NULL ); + gFocusMgr.setMouseCapture(nullptr ); if (mMouseUpSignal) (*mMouseUpSignal)( this, getValueF32() ); @@ -229,15 +229,12 @@ BOOL LLSlider::handleKeyHere(KEY key, MASK mask) BOOL handled = FALSE; switch(key) { - case KEY_UP: case KEY_DOWN: - // eat up and down keys to be consistent - handled = TRUE; - break; case KEY_LEFT: setValueAndCommit(getValueF32() - getIncrement()); handled = TRUE; break; + case KEY_UP: case KEY_RIGHT: setValueAndCommit(getValueF32() + getIncrement()); handled = TRUE; @@ -248,6 +245,13 @@ BOOL LLSlider::handleKeyHere(KEY key, MASK mask) return handled; } +BOOL LLSlider::handleScrollWheel(S32 x, S32 y, S32 clicks) +{ + F32 new_val = getValueF32() - clicks * getIncrement(); + setValueAndCommit(new_val); + return TRUE; +} + void LLSlider::draw() { F32 alpha = getDrawContext().mAlpha; @@ -276,7 +280,7 @@ void LLSlider::draw() mThumbImage->drawBorder(mThumbRect, gFocusMgr.getFocusColor() % alpha, gFocusMgr.getFocusFlashWidth()); } - if( hasMouseCapture() ) + if( hasMouseCapture() ) // currently clicking on slider { // Show ghost where thumb was before dragging began. if (mThumbImage.notNull()) diff --git a/indra/llui/llslider.h b/indra/llui/llslider.h index 59bda673f..c1bf19e34 100644 --- a/indra/llui/llslider.h +++ b/indra/llui/llslider.h @@ -75,12 +75,12 @@ public: boost::signals2::connection setMouseDownCallback( const commit_signal_t::slot_type& cb ); boost::signals2::connection setMouseUpCallback( const commit_signal_t::slot_type& cb ); - - virtual BOOL handleHover(S32 x, S32 y, MASK mask); - virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); - virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); - virtual BOOL handleKeyHere(KEY key, MASK mask); - virtual void draw(); + BOOL handleHover(S32 x, S32 y, MASK mask) override; + BOOL handleMouseUp(S32 x, S32 y, MASK mask) override; + BOOL handleMouseDown(S32 x, S32 y, MASK mask) override; + BOOL handleKeyHere(KEY key, MASK mask) override; + BOOL handleScrollWheel(S32 x, S32 y, S32 clicks) override; + void draw() override; private: void setValueAndCommit(F32 value);