diff --git a/apps/openmw/mwgui/postprocessorhud.cpp b/apps/openmw/mwgui/postprocessorhud.cpp index 5e46f1e735..777468e8b0 100644 --- a/apps/openmw/mwgui/postprocessorhud.cpp +++ b/apps/openmw/mwgui/postprocessorhud.cpp @@ -59,7 +59,6 @@ namespace MWGui getWidget(mTabConfiguration, "TabConfiguration"); getWidget(mActiveList, "ActiveList"); getWidget(mInactiveList, "InactiveList"); - getWidget(mModeToggle, "ModeToggle"); getWidget(mConfigLayout, "ConfigLayout"); getWidget(mFilter, "Filter"); getWidget(mButtonActivate, "ButtonActivate"); @@ -78,8 +77,6 @@ namespace MWGui mActiveList->eventListChangePosition += MyGUI::newDelegate(this, &PostProcessorHud::notifyListChangePosition); mInactiveList->eventListChangePosition += MyGUI::newDelegate(this, &PostProcessorHud::notifyListChangePosition); - mModeToggle->eventMouseButtonClick += MyGUI::newDelegate(this, &PostProcessorHud::notifyModeToggle); - mFilter->eventEditTextChange += MyGUI::newDelegate(this, &PostProcessorHud::notifyFilterChanged); mMainWidget->castType()->eventWindowChangeCoord += MyGUI::newDelegate(this, &PostProcessorHud::notifyWindowResize); @@ -91,10 +88,14 @@ namespace MWGui mShaderInfo->setEditReadOnly(true); mShaderInfo->setEditWordWrap(true); mShaderInfo->setEditMultiLine(true); + mShaderInfo->setNeedMouseFocus(false); mConfigLayout->setVisibleVScroll(true); mConfigArea = mConfigLayout->createWidget("", {}, MyGUI::Align::Default); + + mConfigLayout->eventMouseWheel += MyGUI::newDelegate(this, &PostProcessorHud::notifyMouseWheel); + mConfigArea->eventMouseWheel += MyGUI::newDelegate(this, &PostProcessorHud::notifyMouseWheel); } void PostProcessorHud::notifyFilterChanged(MyGUI::EditBox* sender) @@ -225,12 +226,6 @@ namespace MWGui } } - void PostProcessorHud::notifyModeToggle(MyGUI::Widget* sender) - { - Settings::ShaderManager::Mode prev = Settings::ShaderManager::get().getMode(); - toggleMode(prev == Settings::ShaderManager::Mode::Debug ? Settings::ShaderManager::Mode::Normal : Settings::ShaderManager::Mode::Debug); - } - void PostProcessorHud::onOpen() { toggleMode(Settings::ShaderManager::Mode::Debug); @@ -267,6 +262,15 @@ namespace MWGui mConfigLayout->setSize(mConfigLayout->getWidth(), mConfigLayout->getParentSize().height - padding2); } + void PostProcessorHud::notifyMouseWheel(MyGUI::Widget *sender, int rel) + { + int offset = mConfigLayout->getViewOffset().top + rel * 0.3; + if (offset > 0) + mConfigLayout->setViewOffset(MyGUI::IntPoint(0, 0)); + else + mConfigLayout->setViewOffset(MyGUI::IntPoint(0, static_cast(offset))); + } + void PostProcessorHud::select(ListWrapper* list, size_t index) { list->setIndexSelected(index); @@ -277,8 +281,6 @@ namespace MWGui { Settings::ShaderManager::get().setMode(mode); - mModeToggle->setCaptionWithReplacing(mode == Settings::ShaderManager::Mode::Debug ? "#{sOn}" :"#{sOff}"); - MWBase::Environment::get().getWorld()->getPostProcessor()->toggleMode(); if (!isVisible()) @@ -353,6 +355,7 @@ namespace MWGui MyGUI::Button* resetButton = mConfigArea->createWidget("MW_Button", {0,0,0,24}, MyGUI::Align::Default); resetButton->setCaption("Reset all to default"); resetButton->setTextAlign(MyGUI::Align::Center); + resetButton->eventMouseWheel += MyGUI::newDelegate(this, &PostProcessorHud::notifyMouseWheel); resetButton->eventMouseButtonClick += MyGUI::newDelegate(this, &PostProcessorHud::notifyResetButtonClicked); } @@ -366,6 +369,7 @@ namespace MWGui fx::Widgets::UniformBase* uwidget = mConfigArea->createWidget("MW_UniformEdit", {0,0,0,22}, MyGUI::Align::Default); uwidget->init(uniform); + uwidget->getLabel()->eventMouseWheel += MyGUI::newDelegate(this, &PostProcessorHud::notifyMouseWheel); } } diff --git a/apps/openmw/mwgui/postprocessorhud.hpp b/apps/openmw/mwgui/postprocessorhud.hpp index 44baf79b63..116d53c2e0 100644 --- a/apps/openmw/mwgui/postprocessorhud.hpp +++ b/apps/openmw/mwgui/postprocessorhud.hpp @@ -52,8 +52,6 @@ namespace MWGui void updateConfigView(const std::string& name); - void notifyModeToggle(MyGUI::Widget* sender); - void notifyResetButtonClicked(MyGUI::Widget* sender); void notifyListChangePosition(MyGUI::ListBox* sender, size_t index); @@ -68,6 +66,8 @@ namespace MWGui void notifyShaderDownPressed(MyGUI::Widget* sender); + void notifyMouseWheel(MyGUI::Widget *sender, int rel); + enum class Direction { Up, @@ -97,7 +97,6 @@ namespace MWGui MyGUI::Widget* mConfigArea; MyGUI::EditBox* mFilter; - Gui::AutoSizedButton* mModeToggle; Gui::AutoSizedEditBox* mShaderInfo; std::string mOverrideHint; diff --git a/components/fx/widgets.hpp b/components/fx/widgets.hpp index f15e676fb6..ed50e6d4d4 100644 --- a/components/fx/widgets.hpp +++ b/components/fx/widgets.hpp @@ -249,6 +249,8 @@ namespace fx void addItem(EditBase* item); + Gui::AutoSizedTextBox* getLabel() { return mLabel; } + private: void notifyResetClicked(MyGUI::Widget* sender); diff --git a/files/mygui/openmw_postprocessor_hud.layout b/files/mygui/openmw_postprocessor_hud.layout index 1030c83d2c..7a04a2f8b0 100644 --- a/files/mygui/openmw_postprocessor_hud.layout +++ b/files/mygui/openmw_postprocessor_hud.layout @@ -28,7 +28,7 @@ - + @@ -103,31 +103,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/files/mygui/openmw_postprocessor_hud.skin.xml b/files/mygui/openmw_postprocessor_hud.skin.xml index bf3a470b94..ad9a5667be 100644 --- a/files/mygui/openmw_postprocessor_hud.skin.xml +++ b/files/mygui/openmw_postprocessor_hud.skin.xml @@ -59,7 +59,7 @@ - +