From efb541eeef2ad839c885c494c3a065f1f7d5dc03 Mon Sep 17 00:00:00 2001 From: Bertram Date: Wed, 2 Sep 2009 23:40:45 +0200 Subject: Added a minimum alpha opacity value handle in SkinLoader and made use of it. Part 1 of 3 for Mantis #847 Only a few controls follow minimum opacity value at login stage. Part 2 will make all other controls do the same. Part 3 will try to set default gui opacity value as a constant. --- src/gui/widgets/checkbox.cpp | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'src/gui/widgets/checkbox.cpp') diff --git a/src/gui/widgets/checkbox.cpp b/src/gui/widgets/checkbox.cpp index dd57f674..9b4ab2f4 100644 --- a/src/gui/widgets/checkbox.cpp +++ b/src/gui/widgets/checkbox.cpp @@ -28,6 +28,7 @@ #include "resources/image.h" #include "resources/resourcemanager.h" +#include "gui/skin.h" int CheckBox::instances = 0; float CheckBox::mAlpha = 1.0; @@ -91,6 +92,23 @@ void CheckBox::draw(gcn::Graphics* graphics) graphics->drawText(getCaption(), h - 2, 0); } +void CheckBox::updateAlpha() +{ + float alpha = std::max(config.getValue("guialpha", 0.8f), + (double)SkinLoader::instance()->getMinimumOpacity()); + + if (mAlpha != alpha) + { + mAlpha = alpha; + checkBoxNormal->setAlpha(mAlpha); + checkBoxChecked->setAlpha(mAlpha); + checkBoxDisabled->setAlpha(mAlpha); + checkBoxDisabledChecked->setAlpha(mAlpha); + checkBoxNormal->setAlpha(mAlpha); + checkBoxCheckedHi->setAlpha(mAlpha); + } +} + void CheckBox::drawBox(gcn::Graphics* graphics) { Image *box; @@ -112,16 +130,7 @@ void CheckBox::drawBox(gcn::Graphics* graphics) else box = checkBoxDisabled; - if (config.getValue("guialpha", 0.8) != mAlpha) - { - mAlpha = config.getValue("guialpha", 0.8); - checkBoxNormal->setAlpha(mAlpha); - checkBoxChecked->setAlpha(mAlpha); - checkBoxDisabled->setAlpha(mAlpha); - checkBoxDisabledChecked->setAlpha(mAlpha); - checkBoxNormal->setAlpha(mAlpha); - checkBoxCheckedHi->setAlpha(mAlpha); - } + updateAlpha(); static_cast(graphics)->drawImage(box, 2, 2); } -- cgit v1.2.3-70-g09d2