From b0d7de87642451002957bf058ea17ab6c232d0b9 Mon Sep 17 00:00:00 2001 From: Rye Mutt <rye@alchemyviewer.org> Date: Thu, 19 Mar 2020 14:55:16 -0400 Subject: [PATCH] Add hotkeys for different value increments in LLSpinCtrl --- indra/llui/llspinctrl.cpp | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/indra/llui/llspinctrl.cpp b/indra/llui/llspinctrl.cpp index ce3fc29d327..21d742448f8 100644 --- a/indra/llui/llspinctrl.cpp +++ b/indra/llui/llspinctrl.cpp @@ -175,7 +175,17 @@ void LLSpinCtrl::onUpBtn( const LLSD& data ) F32 cur_val = (F32) atof(text.c_str()); // use getValue()/setValue() to force reload from/to control - F32 val = cur_val + mIncrement; + F32 val = cur_val; + if (gKeyboard->getKeyDown(KEY_SHIFT)) { + val = cur_val + (mIncrement * 0.01f); + } else if (gKeyboard->getKeyDown(KEY_CONTROL)) { + val = cur_val + (mIncrement * 0.1f); + } else if (gKeyboard->getKeyDown(KEY_ALT)) { + val = cur_val + (mIncrement * 10.f); + } else { + val = cur_val + mIncrement; + } + val = clamp_precision(val, mPrecision); val = llmin( val, mMaxValue ); if (val < mMinValue) val = mMinValue; @@ -208,7 +218,17 @@ void LLSpinCtrl::onDownBtn( const LLSD& data ) LLLocale locale(LLLocale::USER_LOCALE); F32 cur_val = (F32) atof(text.c_str()); - F32 val = cur_val - mIncrement; + F32 val = cur_val; + if (gKeyboard->getKeyDown(KEY_SHIFT)) { + val = cur_val - (mIncrement * 0.01f); + } else if (gKeyboard->getKeyDown(KEY_CONTROL)) { + val = cur_val - (mIncrement * 0.1f); + } else if (gKeyboard->getKeyDown(KEY_ALT)) { + val = cur_val - (mIncrement * 10.f); + } else { + val = cur_val - mIncrement; + } + val = clamp_precision(val, mPrecision); val = llmax( val, mMinValue ); -- GitLab