summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIra Rice <irarice@gmail.com>2009-02-03 17:33:47 -0700
committerIra Rice <irarice@gmail.com>2009-02-03 17:33:47 -0700
commitc6cf9a6a9c03f17362171aeed1a22244d99b7530 (patch)
tree66c6d358a461e119fac31dc9eac8b2b607595a13 /src
parent7d45452187b1c2911b688bbed5fb8981a67b1934 (diff)
downloadmana-c6cf9a6a9c03f17362171aeed1a22244d99b7530.tar.gz
mana-c6cf9a6a9c03f17362171aeed1a22244d99b7530.tar.bz2
mana-c6cf9a6a9c03f17362171aeed1a22244d99b7530.tar.xz
mana-c6cf9a6a9c03f17362171aeed1a22244d99b7530.zip
Disable alpha values affecting two widgets which would otherwise take
alpha values under SDL. Signed-off-by: Ira Rice <irarice@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/checkbox.cpp14
-rw-r--r--src/gui/progressbar.cpp5
-rw-r--r--src/resources/image.h14
3 files changed, 26 insertions, 7 deletions
diff --git a/src/gui/checkbox.cpp b/src/gui/checkbox.cpp
index 7fa4fa81..511ed34c 100644
--- a/src/gui/checkbox.cpp
+++ b/src/gui/checkbox.cpp
@@ -45,10 +45,13 @@ CheckBox::CheckBox(const std::string& caption, bool selected):
checkBoxChecked = checkBox->getSubImage(9, 0, 9, 10);
checkBoxDisabled = checkBox->getSubImage(18, 0, 9, 10);
checkBoxDisabledChecked = checkBox->getSubImage(27, 0, 9, 10);
- checkBoxNormal->setAlpha(mAlpha);
- checkBoxChecked->setAlpha(mAlpha);
- checkBoxDisabled->setAlpha(mAlpha);
- checkBoxDisabledChecked->setAlpha(mAlpha);
+ if (config.getValue("opengl", 0))
+ {
+ checkBoxNormal->setAlpha(mAlpha);
+ checkBoxChecked->setAlpha(mAlpha);
+ checkBoxDisabled->setAlpha(mAlpha);
+ checkBoxDisabledChecked->setAlpha(mAlpha);
+ }
checkBox->decRef();
}
@@ -84,7 +87,8 @@ void CheckBox::drawBox(gcn::Graphics* graphics)
else
box = checkBoxDisabled;
- if (config.getValue("guialpha", 0.8) != mAlpha)
+ if (config.getValue("guialpha", 0.8) != mAlpha &&
+ config.getValue("opengl", 0))
{
mAlpha = config.getValue("guialpha", 0.8);
checkBoxNormal->setAlpha(mAlpha);
diff --git a/src/gui/progressbar.cpp b/src/gui/progressbar.cpp
index 5e8e6655..a1b847c8 100644
--- a/src/gui/progressbar.cpp
+++ b/src/gui/progressbar.cpp
@@ -103,7 +103,10 @@ void ProgressBar::draw(gcn::Graphics *graphics)
{
if (config.getValue("guialpha", 0.8) != mAlpha)
{
- mAlpha = config.getValue("guialpha", 0.8);
+ if (config.getValue("opengl", 0))
+ mAlpha = config.getValue("guialpha", 0.8);
+ else
+ mAlpha = 1.0f;
for (int i = 0; i < 9; i++)
{
mBorder.grid[i]->setAlpha(mAlpha);
diff --git a/src/resources/image.h b/src/resources/image.h
index a4048803..5b376053 100644
--- a/src/resources/image.h
+++ b/src/resources/image.h
@@ -92,6 +92,12 @@ class Image : public Resource
virtual void unload();
/**
+ * Returns the image.
+ */
+ virtual const Image* getImage() const
+ { return this; }
+
+ /**
* Returns the width of the image.
*/
virtual int getWidth() const
@@ -114,7 +120,7 @@ class Image : public Resource
/**
* Sets the alpha value of this image.
*/
- void setAlpha(float alpha);
+ virtual void setAlpha(float alpha);
/**
* Returns the alpha value of this image.
@@ -181,6 +187,12 @@ class SubImage : public Image
~SubImage();
/**
+ * Returns the image.
+ */
+ virtual const Image* getImage() const
+ { return mParent; }
+
+ /**
* Creates a new image with the desired clipping rectangle.
*
* @return <code>NULL</code> if creation failed and a valid