// static void LLMultiSliderCtrl::onSliderCommit(LLUICtrl* ctrl, const LLSD& userdata) { LLMultiSliderCtrl* self = dynamic_cast<LLMultiSliderCtrl*>(ctrl->getParent()); if (!self) return; BOOL success = FALSE; F32 saved_val = self->mCurValue; F32 new_val = self->mMultiSlider->getCurSliderValue(); self->mCurValue = new_val; // set the value temporarily so that the callback can retrieve it. if( !self->mValidateSignal || (*(self->mValidateSignal))( self, new_val ) ) { success = TRUE; } if( success ) { self->onCommit(); } else { if( self->mCurValue != saved_val ) { self->setCurSliderValue( saved_val ); } self->reportInvalidData(); } self->updateText(); }
void LLFloaterDayCycle::onKeyTimeChanged(LLUICtrl* ctrl, void* userData) { // if no keys, skipped if(sSliderToKey.size() == 0) { return; } LLMultiSliderCtrl* sldr = sDayCycle->getChild<LLMultiSliderCtrl>( "WLDayCycleKeys"); LLSpinCtrl* hourSpin = sDayCycle->getChild<LLSpinCtrl>( "WLCurKeyHour"); LLSpinCtrl* minSpin = sDayCycle->getChild<LLSpinCtrl>( "WLCurKeyMin"); F32 hour = hourSpin->get(); F32 min = minSpin->get(); F32 val = hour + min / 60.0f; const std::string& curSldr = sldr->getCurSlider(); sldr->setCurSliderValue(val, TRUE); F32 time = sldr->getCurSliderValue() / sHoursPerDay; // now set the key's time in the sliderToKey map std::string presetName = sSliderToKey[curSldr].presetName; sSliderToKey[curSldr].time = time; syncTrack(); }
// static void LLMultiSliderCtrl::onEditorCommit( LLUICtrl* caller, void *userdata ) { LLMultiSliderCtrl* self = (LLMultiSliderCtrl*) userdata; llassert( caller == self->mEditor ); BOOL success = FALSE; F32 val = self->mCurValue; F32 saved_val = self->mCurValue; std::string text = self->mEditor->getText(); if( LLLineEditor::postvalidateFloat( text ) ) { LLLocale locale(LLLocale::USER_LOCALE); val = (F32) atof( text.c_str() ); if( self->mMultiSlider->getMinValue() <= val && val <= self->mMultiSlider->getMaxValue() ) { if( self->mValidateCallback ) { self->setCurSliderValue( val ); // set the value temporarily so that the callback can retrieve it. if( self->mValidateCallback( self, self->mCallbackUserData ) ) { success = TRUE; } } else { self->setCurSliderValue( val ); success = TRUE; } } } if( success ) { self->onCommit(); } else { if( self->getCurSliderValue() != saved_val ) { self->setCurSliderValue( saved_val ); } self->reportInvalidData(); } self->updateText(); }
// static void LLMultiSliderCtrl::onEditorCommit( LLUICtrl* ctrl, const LLSD& userdata) { llassert(ctrl); if (!ctrl) return; LLMultiSliderCtrl* self = dynamic_cast<LLMultiSliderCtrl*>(ctrl->getParent()); llassert(self); if (!self) // cast failed - wrong type! :O return; BOOL success = FALSE; F32 val = self->mCurValue; F32 saved_val = self->mCurValue; std::string text = self->mEditor->getText(); if( LLLineEditor::postvalidateFloat( text ) ) { LLLocale locale(LLLocale::USER_LOCALE); val = (F32) atof( text.c_str() ); if( self->mMultiSlider->getMinValue() <= val && val <= self->mMultiSlider->getMaxValue() ) { self->setCurSliderValue( val ); // set the value temporarily so that the callback can retrieve it. if( !self->mValidateSignal || (*(self->mValidateSignal))( self, val ) ) { success = TRUE; } } } if( success ) { self->onCommit(); } else { if( self->getCurSliderValue() != saved_val ) { self->setCurSliderValue( saved_val ); } self->reportInvalidData(); } self->updateText(); }
void LLFloaterDayCycle::syncMenu() { // std::map<std::string, LLVector4> & currentParams = LLWLParamManager::getInstance()->mCurParams.mParamValues; // set time LLMultiSliderCtrl* sldr = LLFloaterDayCycle::sDayCycle->getChild<LLMultiSliderCtrl>("WLTimeSlider"); sldr->setCurSliderValue((F32)LLWLParamManager::getInstance()->mAnimator.getDayTime() * sHoursPerDay); LLSpinCtrl* secSpin = sDayCycle->getChild<LLSpinCtrl>("WLLengthOfDaySec"); LLSpinCtrl* minSpin = sDayCycle->getChild<LLSpinCtrl>("WLLengthOfDayMin"); LLSpinCtrl* hourSpin = sDayCycle->getChild<LLSpinCtrl>("WLLengthOfDayHour"); F32 curRate; F32 hours, min, sec; // get the current rate curRate = LLWLParamManager::getInstance()->mDay.mDayRate; hours = (F32)((int)(curRate / 60 / 60)); curRate -= (hours * 60 * 60); min = (F32)((int)(curRate / 60)); curRate -= (min * 60); sec = curRate; hourSpin->setValue(hours); minSpin->setValue(min); secSpin->setValue(sec); // turn off Use Estate Time button if it's already being used if( LLWLParamManager::getInstance()->mAnimator.getUseLindenTime()) { LLFloaterDayCycle::sDayCycle->childDisable("WLUseLindenTime"); } else { LLFloaterDayCycle::sDayCycle->childEnable("WLUseLindenTime"); } }
// static void LLMultiSliderCtrl::onSliderCommit( LLUICtrl* caller, void *userdata ) { LLMultiSliderCtrl* self = (LLMultiSliderCtrl*) userdata; //llassert( caller == self->mSlider ); BOOL success = FALSE; F32 saved_val = self->mCurValue; F32 new_val = self->mMultiSlider->getCurSliderValue(); if( self->mValidateCallback ) { self->mCurValue = new_val; // set the value temporarily so that the callback can retrieve it. if( self->mValidateCallback( self, self->mCallbackUserData ) ) { success = TRUE; } } else { self->mCurValue = new_val; success = TRUE; } if( success ) { self->onCommit(); } else { if( self->mCurValue != saved_val ) { self->setCurSliderValue( saved_val ); } self->reportInvalidData(); } self->updateText(); }