diff --git a/indra/newview/llpanelinput.cpp b/indra/newview/llpanelinput.cpp index 685f9a7fb..41287c4d7 100644 --- a/indra/newview/llpanelinput.cpp +++ b/indra/newview/llpanelinput.cpp @@ -45,10 +45,9 @@ LLPanelInput::LLPanelInput() LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_input.xml"); } -static void onFOVAdjust(LLUICtrl* source, void* data) +static void onFOVAdjust(const LLSD& value) { - LLSliderCtrl* slider = dynamic_cast(source); - LLViewerCamera::getInstance()->setDefaultFOV(slider->getValueF32()); + LLViewerCamera::getInstance()->setDefaultFOV(value.asFloat()); } BOOL LLPanelInput::postBuild() @@ -68,7 +67,7 @@ BOOL LLPanelInput::postBuild() childSetValue("first_person_avatar_visible", gSavedSettings.getBOOL("FirstPersonAvatarVisible")); LLSliderCtrl* fov_slider = getChild("camera_fov"); - fov_slider->setCommitCallback(&onFOVAdjust); + fov_slider->setCommitCallback(boost::bind(onFOVAdjust, _2)); fov_slider->setMinValue(LLViewerCamera::getInstance()->getMinView()); fov_slider->setMaxValue(LLViewerCamera::getInstance()->getMaxView()); fov_slider->setValue(LLViewerCamera::getInstance()->getView()); diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index f2523b505..c18a52362 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -202,9 +202,9 @@ namespace { boost::intrusive_ptr< LLIamHereLogin > gResponsePtr = 0; }; -void set_start_location(LLUICtrl* ctrl, void* data) +void set_start_location(const LLSD& value) { - LLURLSimString::setString(ctrl->getValue().asString()); + LLURLSimString::setString(value.asString()); } //--------------------------------------------------------------------------- @@ -252,7 +252,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, #if !USE_VIEWER_AUTH LLComboBox* name_combo = sInstance->getChild("name_combo"); - name_combo->setCommitCallback(onSelectLoginEntry); + name_combo->setCommitCallback(boost::bind(LLPanelLogin::onSelectLoginEntry, _1, this)); name_combo->setFocusLostCallback(boost::bind(&LLPanelLogin::onLoginComboLostFocus, this, name_combo)); name_combo->setPrevalidate(LLLineEditor::prevalidatePrintableNotPipe); name_combo->setSuppressTentative(true); @@ -327,7 +327,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, combo->setCurrentByIndex( 0 ); } - combo->setCommitCallback( &set_start_location ); + combo->setCommitCallback(boost::bind(set_start_location, _2)); childSetAction("connect_btn", onClickConnect, this); diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index eb5e430b8..7983b445a 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -209,7 +209,7 @@ BOOL LLInventoryView::postBuild() if (mQuickFilterCombo) { - mQuickFilterCombo->setCommitCallback(onQuickFilterCommit); + mQuickFilterCombo->setCommitCallback(boost::bind(LLInventoryView::onQuickFilterCommit, _1, this)); } diff --git a/indra/newview/llpanelskins.cpp b/indra/newview/llpanelskins.cpp index 3d5958a5f..610c8249d 100644 --- a/indra/newview/llpanelskins.cpp +++ b/indra/newview/llpanelskins.cpp @@ -48,24 +48,20 @@ #include "llsdserialize.h" -LLPanelSkins* LLPanelSkins::sInstance; LLPanelSkins::LLPanelSkins() { LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_skins.xml"); - if(sInstance)delete sInstance; - sInstance = this; } LLPanelSkins::~LLPanelSkins() { - sInstance = NULL; } BOOL LLPanelSkins::postBuild() { mSkin = gSavedSettings.getString("SkinCurrent"); oldSkin=mSkin; - getChild("custom_skin_combo")->setCommitCallback(onComboBoxCommit); + getChild("custom_skin_combo")->setCommitCallback(boost::bind(&LLPanelSkins::onComboBoxCommit, this, _2)); refresh(); return TRUE; } @@ -159,27 +155,21 @@ void LLPanelSkins::cancel() gSavedSettings.setString("SkinCurrent", oldSkin); } -//static -void LLPanelSkins::onComboBoxCommit(LLUICtrl* ctrl, void* userdata) +void LLPanelSkins::onComboBoxCommit(const LLSD& value) { - LLComboBox* box = (LLComboBox*)ctrl; - if(box) + const std::string skinName = value.asString(); + for(int i = 0; i < (int)datas.size(); ++i) { - std::string skinName = box->getValue().asString(); - for(int i =0;i<(int)sInstance->datas.size();i++) + const LLSD tdata = datas[i]; + if (tdata["skin_name"].asString() == skinName) { - LLSD tdata=sInstance->datas[i]; - std::string tempName = tdata["skin_name"].asString(); - if(tempName==skinName) - { - std::string newFolder(tdata["folder_name"].asString()); - gSavedSettings.setString("SkinCurrent",newFolder); - sInstance->mSkin=newFolder; + std::string newFolder(tdata["folder_name"].asString()); + gSavedSettings.setString("SkinCurrent", newFolder); + mSkin = newFolder; - if(sInstance)sInstance->refresh(); - return; - } + refresh(); + return; } - } + } } diff --git a/indra/newview/llpanelskins.h b/indra/newview/llpanelskins.h index 0208309e1..030668834 100644 --- a/indra/newview/llpanelskins.h +++ b/indra/newview/llpanelskins.h @@ -48,11 +48,10 @@ public: void refresh(); void apply(); void cancel(); - static void onComboBoxCommit(LLUICtrl* ctrl, void* userdata); + void onComboBoxCommit(const LLSD& value); std::string mSkin; private: - static LLPanelSkins* sInstance; std::string oldSkin; }; diff --git a/indra/newview/wlfPanel_AdvSettings.cpp b/indra/newview/wlfPanel_AdvSettings.cpp index 230cae1b8..7e238cd9e 100644 --- a/indra/newview/wlfPanel_AdvSettings.cpp +++ b/indra/newview/wlfPanel_AdvSettings.cpp @@ -147,16 +147,16 @@ BOOL wlfPanel_AdvSettings::postBuild() if (!gSavedSettings.getBOOL("wlfAdvSettingsPopup")) { - getChild("use_estate_wl")->setCommitCallback(onUseRegionSettings); + getChild("use_estate_wl")->setCommitCallback(boost::bind(&wlfPanel_AdvSettings::onUseRegionSettings, this, _2)); mWaterPresetCombo = getChild("WLWaterPresetsCombo"); - mWaterPresetCombo->setCommitCallback(onChangeWWPresetName); + mWaterPresetCombo->setCommitCallback(boost::bind(&wlfPanel_AdvSettings::onChangeWWPresetName, this, _2)); mSkyPresetCombo = getChild("WLSkyPresetsCombo"); - mSkyPresetCombo->setCommitCallback(onChangeWLPresetName); + mSkyPresetCombo->setCommitCallback(boost::bind(&wlfPanel_AdvSettings::onChangeWLPresetName, this, _2)); // mDayCyclePresetCombo = getChild("DCPresetsCombo"); - // mDayCyclePresetCombo->setCommitCallback(onChangeDCPresetName); + // mDayCyclePresetCombo->setCommitCallback(boost::bind(&wlfPanel_AdvSettings::onChangeDCPresetName, this, _2)); LLEnvManagerNew::instance().setPreferencesChangeCallback(boost::bind(&wlfPanel_AdvSettings::refreshLists, this)); LLWaterParamManager::getInstance()->setPresetListChangeCallback(boost::bind(&wlfPanel_AdvSettings::populateWaterPresetsList, this)); @@ -168,16 +168,16 @@ BOOL wlfPanel_AdvSettings::postBuild() //populateDayCyclePresetsList(); // next/prev buttons - childSetAction("WWnext", onClickWWNext, this); - childSetAction("WWprev", onClickWWPrev, this); - childSetAction("WLnext", onClickWLNext, this); - childSetAction("WLprev", onClickWLPrev, this); + getChild("WWnext")->setCommitCallback(boost::bind(&wlfPanel_AdvSettings::onClickWWNext, this)); + getChild("WWprev")->setCommitCallback(boost::bind(&wlfPanel_AdvSettings::onClickWWPrev, this)); + getChild("WLnext")->setCommitCallback(boost::bind(&wlfPanel_AdvSettings::onClickWLNext, this)); + getChild("WLprev")->setCommitCallback(boost::bind(&wlfPanel_AdvSettings::onClickWLPrev, this)); - childSetAction("EnvAdvancedSkyButton", onOpenAdvancedSky, NULL); - childSetAction("EnvAdvancedWaterButton", onOpenAdvancedWater, NULL); + getChild("EnvAdvancedSkyButton")->setCommitCallback(boost::bind(LLFloaterWindLight::show)); + getChild("EnvAdvancedWaterButton")->setCommitCallback(boost::bind(LLFloaterWater::show)); mTimeSlider = getChild("EnvTimeSlider"); - mTimeSlider->setCommitCallback(onChangeDayTime); + mTimeSlider->setCommitCallback(boost::bind(&wlfPanel_AdvSettings::onChangeDayTime, this, _2)); updateTimeSlider(); } @@ -203,21 +203,15 @@ void wlfPanel_AdvSettings::onClickExpandBtn(void* user_data) gOverlayBar->layoutButtons(); } -void wlfPanel_AdvSettings::onUseRegionSettings(LLUICtrl* ctrl, void* userdata) +void wlfPanel_AdvSettings::onUseRegionSettings(const LLSD& value) { - LLEnvManagerNew::instance().setUseRegionSettings(gSavedSettings.getBOOL("UseEnvironmentFromRegion"), gSavedSettings.getBOOL("PhoenixInterpolateSky")); + LLEnvManagerNew::instance().setUseRegionSettings(value.asBoolean(), gSavedSettings.getBOOL("PhoenixInterpolateSky")); } -void wlfPanel_AdvSettings::onChangeWWPresetName(LLUICtrl* ctrl, void * userData) +void wlfPanel_AdvSettings::onChangeWWPresetName(const LLSD& value) { - LLComboBox * combo_box = static_cast(ctrl); - - if(combo_box->getSimple() == "") - { - return; - } - - const std::string& wwset = combo_box->getSelectedValue().asString(); + const std::string& wwset = value.asString(); + if (wwset.empty()) return; if (LLWaterParamManager::getInstance()->hasParamSet(wwset)) { LLEnvManagerNew::instance().setUseWaterPreset(wwset, gSavedSettings.getBOOL("PhoenixInterpolateWater")); @@ -230,19 +224,14 @@ void wlfPanel_AdvSettings::onChangeWWPresetName(LLUICtrl* ctrl, void * userData) } } -void wlfPanel_AdvSettings::onChangeWLPresetName(LLUICtrl* ctrl, void * userData) +void wlfPanel_AdvSettings::onChangeWLPresetName(const LLSD& value) { - LLComboBox * combo_box = static_cast(ctrl); - - if(combo_box->getSimple() == "") - { - return; - } - - const LLWLParamKey key(combo_box->getSelectedValue().asString(), LLEnvKey::SCOPE_LOCAL); + const std::string& wlset = value.asString(); + if (wlset.empty()) return; + const LLWLParamKey key(wlset, LLEnvKey::SCOPE_LOCAL); if (LLWLParamManager::getInstance()->hasParamSet(key)) { - LLEnvManagerNew::instance().setUseSkyPreset(key.name, gSavedSettings.getBOOL("PhoenixInterpolateSky")); + LLEnvManagerNew::instance().setUseSkyPreset(wlset, gSavedSettings.getBOOL("PhoenixInterpolateSky")); } else { @@ -252,86 +241,63 @@ void wlfPanel_AdvSettings::onChangeWLPresetName(LLUICtrl* ctrl, void * userData) } } -void wlfPanel_AdvSettings::onClickWWNext(void* user_data) +void wlfPanel_AdvSettings::onClickWWNext() { - wlfPanel_AdvSettings* self = (wlfPanel_AdvSettings*) user_data; - - S32 index = self->mWaterPresetCombo->getCurrentIndex(); - index++; - if (index == self->mWaterPresetCombo->getItemCount()) + S32 index = mWaterPresetCombo->getCurrentIndex(); + ++index; + if (index == mWaterPresetCombo->getItemCount()) index = 0; - self->mWaterPresetCombo->setCurrentByIndex(index); + mWaterPresetCombo->setCurrentByIndex(index); - wlfPanel_AdvSettings::onChangeWWPresetName(self->mWaterPresetCombo, self); + wlfPanel_AdvSettings::onChangeWWPresetName(mWaterPresetCombo->getSelectedValue()); } -void wlfPanel_AdvSettings::onClickWWPrev(void* user_data) +void wlfPanel_AdvSettings::onClickWWPrev() { - wlfPanel_AdvSettings* self = (wlfPanel_AdvSettings*) user_data; - - S32 index = self->mWaterPresetCombo->getCurrentIndex(); + S32 index = mWaterPresetCombo->getCurrentIndex(); if (index == 0) - index = self->mWaterPresetCombo->getItemCount(); - index--; - self->mWaterPresetCombo->setCurrentByIndex(index); + index = mWaterPresetCombo->getItemCount(); + --index; + mWaterPresetCombo->setCurrentByIndex(index); - wlfPanel_AdvSettings::onChangeWWPresetName(self->mWaterPresetCombo, self); + wlfPanel_AdvSettings::onChangeWWPresetName(mWaterPresetCombo->getSelectedValue()); } -void wlfPanel_AdvSettings::onClickWLNext(void* user_data) +void wlfPanel_AdvSettings::onClickWLNext() { - wlfPanel_AdvSettings* self = (wlfPanel_AdvSettings*) user_data; - - S32 index = self->mSkyPresetCombo->getCurrentIndex(); - index++; - if (index == self->mSkyPresetCombo->getItemCount()) + S32 index = mSkyPresetCombo->getCurrentIndex(); + ++index; + if (index == mSkyPresetCombo->getItemCount()) index = 0; - self->mSkyPresetCombo->setCurrentByIndex(index); + mSkyPresetCombo->setCurrentByIndex(index); - wlfPanel_AdvSettings::onChangeWLPresetName(self->mSkyPresetCombo, self); + wlfPanel_AdvSettings::onChangeWLPresetName(mSkyPresetCombo->getSelectedValue()); } -void wlfPanel_AdvSettings::onClickWLPrev(void* user_data) +void wlfPanel_AdvSettings::onClickWLPrev() { - wlfPanel_AdvSettings* self = (wlfPanel_AdvSettings*) user_data; - - S32 index = self->mSkyPresetCombo->getCurrentIndex(); + S32 index = mSkyPresetCombo->getCurrentIndex(); if (index == 0) - index = self->mSkyPresetCombo->getItemCount(); - index--; - self->mSkyPresetCombo->setCurrentByIndex(index); + index = mSkyPresetCombo->getItemCount(); + --index; + mSkyPresetCombo->setCurrentByIndex(index); - wlfPanel_AdvSettings::onChangeWLPresetName(self->mSkyPresetCombo, self); + wlfPanel_AdvSettings::onChangeWLPresetName(mSkyPresetCombo->getSelectedValue()); } -void wlfPanel_AdvSettings::onOpenAdvancedSky(void* userData) +void wlfPanel_AdvSettings::onChangeDayTime(const LLSD& value) { - LLFloaterWindLight::show(); -} + // deactivate animator + LLWLParamManager::getInstance()->mAnimator.deactivate(); -void wlfPanel_AdvSettings::onOpenAdvancedWater(void* userData) -{ - LLFloaterWater::show(); -} - -void wlfPanel_AdvSettings::onChangeDayTime(LLUICtrl* ctrl, void* userData) -{ - LLSliderCtrl* sldr = static_cast(ctrl); - - if (sldr) { - // deactivate animator - LLWLParamManager::getInstance()->mAnimator.deactivate(); - - F32 val = sldr->getValueF32() + 0.25f; - if(val > 1.0) - { - val--; - } - - LLWLParamManager::getInstance()->mAnimator.setDayTime((F64)val); - LLWLParamManager::getInstance()->mAnimator.update( - LLWLParamManager::getInstance()->mCurParams); + F32 val = value.asFloat() + 0.25f; + if(val > 1.0) + { + val--; } + + LLWLParamManager::getInstance()->mAnimator.setDayTime((F64)val); + LLWLParamManager::getInstance()->mAnimator.update(LLWLParamManager::getInstance()->mCurParams); } void wlfPanel_AdvSettings::populateWaterPresetsList() diff --git a/indra/newview/wlfPanel_AdvSettings.h b/indra/newview/wlfPanel_AdvSettings.h index b2f48431d..4574b0fd0 100644 --- a/indra/newview/wlfPanel_AdvSettings.h +++ b/indra/newview/wlfPanel_AdvSettings.h @@ -49,20 +49,18 @@ public: static void fixPanel(); static void onClickExpandBtn(void* user_data); - static void onChangeWWPresetName(LLUICtrl* ctrl, void* userData); - static void onChangeWLPresetName(LLUICtrl* ctrl, void* userData); + void onChangeWWPresetName(const LLSD& value); + void onChangeWLPresetName(const LLSD& value); protected: void build(); - static void onUseRegionSettings(LLUICtrl* ctrl, void* userdata); - static void onClickWWNext(void* user_data); - static void onClickWWPrev(void* user_data); - static void onClickWLNext(void* user_data); - static void onClickWLPrev(void* user_data); - static void onOpenAdvancedSky(void* userData); - static void onOpenAdvancedWater(void* userData); - static void onChangeDayTime(LLUICtrl* ctrl, void* userData); + void onUseRegionSettings(const LLSD& value); + void onClickWWNext(); + void onClickWWPrev(); + void onClickWLNext(); + void onClickWLPrev(); + void onChangeDayTime(const LLSD& value); void refreshLists(); /// update controls with user prefs