From 4dee9acd1ea0a58ad3dce7ecf24c85225c06936e Mon Sep 17 00:00:00 2001 From: "glassmancody.info" <glassmancody.info@gmail.com> Date: Tue, 31 May 2022 16:26:51 -0700 Subject: [PATCH] fill bars to postprocess hud --- components/fx/widgets.cpp | 2 ++ components/fx/widgets.hpp | 12 ++++++++++++ files/mygui/openmw_postprocessor_hud.skin.xml | 14 ++++++++++++-- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/components/fx/widgets.cpp b/components/fx/widgets.cpp index 4316e8d7fe..749f0a1c6a 100644 --- a/components/fx/widgets.cpp +++ b/components/fx/widgets.cpp @@ -32,6 +32,7 @@ namespace fx return; mCheckbutton->setCaptionWithReplacing(value ? "#{sOn}" : "#{sOff}"); + mFill->setVisible(value); uniform->setValue<bool>(value); } @@ -61,6 +62,7 @@ namespace fx Base::initialiseOverride(); assignWidget(mCheckbutton, "Checkbutton"); + assignWidget(mFill, "Fill"); mCheckbutton->eventMouseButtonClick += MyGUI::newDelegate(this, &EditBool::notifyMouseButtonClick); } diff --git a/components/fx/widgets.hpp b/components/fx/widgets.hpp index ed50e6d4d4..0019bd349c 100644 --- a/components/fx/widgets.hpp +++ b/components/fx/widgets.hpp @@ -68,6 +68,7 @@ namespace fx void notifyMouseButtonClick(MyGUI::Widget* sender); MyGUI::Button* mCheckbutton; + MyGUI::Widget* mFill; }; template <class T, class UType> @@ -86,17 +87,26 @@ namespace fx else mValueLabel->setCaption(std::to_string(mValue)); + float range = 0.f; + if (auto uniform = mUniform.lock()) { if constexpr (std::is_fundamental_v<UType>) + { uniform->template setValue<UType>(mValue); + range = uniform->template getMax<UType>() - uniform->template getMin<UType>(); + } else { UType uvalue = uniform->template getValue<UType>(); uvalue[mIndex] = mValue; uniform->template setValue<UType>(uvalue); + range = uniform->template getMax<UType>()[mIndex] - uniform->template getMin<UType>()[mIndex]; } } + + float fill = (range == 0.f) ? 1.f : mValue / range; + mFill->setRealSize(fill, 1.0); } void setValueFromUniform() override @@ -135,6 +145,7 @@ namespace fx assignWidget(mValueLabel, "Value"); assignWidget(mButtonIncrease, "ButtonIncrease"); assignWidget(mButtonDecrease, "ButtonDecrease"); + assignWidget(mFill, "Fill"); mButtonIncrease->eventMouseButtonClick += MyGUI::newDelegate(this, &EditNumber::notifyButtonClicked); mButtonDecrease->eventMouseButtonClick += MyGUI::newDelegate(this, &EditNumber::notifyButtonClicked); @@ -226,6 +237,7 @@ namespace fx MyGUI::Button* mButtonDecrease; MyGUI::Button* mButtonIncrease; MyGUI::Widget* mDragger; + MyGUI::Widget* mFill; MyGUI::TextBox* mValueLabel; T mValue; diff --git a/files/mygui/openmw_postprocessor_hud.skin.xml b/files/mygui/openmw_postprocessor_hud.skin.xml index ad9a5667be..094330620c 100644 --- a/files/mygui/openmw_postprocessor_hud.skin.xml +++ b/files/mygui/openmw_postprocessor_hud.skin.xml @@ -3,6 +3,11 @@ <Resource type="ResourceLayout" name="MW_ValueEditNumber" version="3.2.0"> <Widget type="Widget" skin="" position="0 0 100 50" align="Stretch" name="Root"> + <Widget type="Widget" skin="BlackBG" position="0 0 100 50" name="Fill" align="Stretch"> + <Property key="NeedMouse" value="false"/> + <Property key="NeedKey" value="false"/> + <Property key="Colour" value="#25436b"/> + </Widget> <Widget type="HBox" skin="MW_Box" position_real="0 0 1 1" align="Stretch" name="Layout"> <UserString key="HStretch" value="true"/> <UserString key="VStretch" value="true"/> @@ -26,6 +31,12 @@ <Resource type="ResourceLayout" name="MW_ValueEditBool" version="3.2.0"> <Widget type="Widget" skin="" position="0 0 100 50" align="Stretch" name="Root"> + <Widget type="Widget" skin="BlackBG" position_real="0 0 1 1" name="Fill" align="Stretch"> + <Property key="NeedMouse" value="false"/> + <Property key="NeedKey" value="false"/> + <Property key="Colour" value="#25436b"/> + <Property key="Visible" value="false"/> + </Widget> <Widget type="HBox" skin="MW_Box" position_real="0 0 1 1" align="Stretch" name="Layout"> <UserString key="HStretch" value="true"/> <UserString key="VStretch" value="true"/> @@ -35,7 +46,6 @@ <UserString key="VStretch" value="true"/> <Property key="TextAlign" value="Center"/> <Property key="Caption" value="On"/> - <Property key="Colour" value="1 0 0 1"/> </Widget> </Widget> </Widget> @@ -71,7 +81,7 @@ <Property key="FontName" value="Default"/> <Property key="TextAlign" value="Left VCenter"/> <Property key="TextColour" value="#{fontcolour=header}"/> - + <Child type="Widget" skin="IB_B" offset="0 14 16 2" align="Bottom HStretch"/> <BasisSkin type="SimpleText" offset="0 0 16 14" align="Stretch"/> </Resource>