diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2009-03-23 21:59:21 +0100 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2009-03-23 22:00:09 +0100 |
commit | 99e8a3fd77b63a029fe02dcf771b6af1aad252ed (patch) | |
tree | 03c296d1f89859aae35336dfe2f58df09d256fd3 /src/gui/widgets/textpreview.cpp | |
parent | fa8a4bf49100c0a1d5b96e00803f43bbbb861100 (diff) | |
parent | 347452b9b69ef3af29c577b7751082822e900c01 (diff) | |
download | mana-99e8a3fd77b63a029fe02dcf771b6af1aad252ed.tar.gz mana-99e8a3fd77b63a029fe02dcf771b6af1aad252ed.tar.bz2 mana-99e8a3fd77b63a029fe02dcf771b6af1aad252ed.tar.xz mana-99e8a3fd77b63a029fe02dcf771b6af1aad252ed.zip |
Merge branch 'aethyra/master'
Conflicts:
Many files.
Diffstat (limited to 'src/gui/widgets/textpreview.cpp')
-rw-r--r-- | src/gui/widgets/textpreview.cpp | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/src/gui/widgets/textpreview.cpp b/src/gui/widgets/textpreview.cpp index 4fcaa4a7..01790a67 100644 --- a/src/gui/widgets/textpreview.cpp +++ b/src/gui/widgets/textpreview.cpp @@ -28,28 +28,54 @@ #include "../textrenderer.h" #include "../truetypefont.h" +#include "../../configuration.h" + +float TextPreview::mAlpha = config.getValue("guialpha", 0.8); + TextPreview::TextPreview(const std::string* text) { mText = text; + mTextAlpha = false; mFont = gui->getFont(); mTextColor = &guiPalette->getColor(Palette::TEXT); mTextBGColor = NULL; mBGColor = &guiPalette->getColor(Palette::BACKGROUND); + mOpaque = false; } void TextPreview::draw(gcn::Graphics* graphics) { - graphics->setColor(*mBGColor); - graphics->fillRectangle(gcn::Rectangle(0, 0, getWidth(), getHeight())); + if (config.getValue("guialpha", 0.8) != mAlpha) + mAlpha = config.getValue("guialpha", 0.8); + + int alpha = (int) (mAlpha * 255.0f); + + if (!mTextAlpha) + alpha = 255; + + if (mOpaque) + { + graphics->setColor(gcn::Color((int) mBGColor->r, + (int) mBGColor->g, + (int) mBGColor->b, + (int)(mAlpha * 255.0f))); + graphics->fillRectangle(gcn::Rectangle(0, 0, getWidth(), getHeight())); + } - if (mTextBGColor && typeid(*mFont) == typeid(TrueTypeFont)) { + if (mTextBGColor && typeid(*mFont) == typeid(TrueTypeFont)) + { TrueTypeFont *font = static_cast<TrueTypeFont*>(mFont); - graphics->setColor(*mTextBGColor); int x = font->getWidth(*mText) + 1 + 2 * ((mOutline || mShadow) ? 1 :0); int y = font->getHeight() + 1 + 2 * ((mOutline || mShadow) ? 1 : 0); + graphics->setColor(gcn::Color((int) mTextBGColor->r, + (int) mTextBGColor->g, + (int) mTextBGColor->b, + (int)(mAlpha * 255.0f))); graphics->fillRectangle(gcn::Rectangle(1, 1, x, y)); } TextRenderer::renderText(graphics, *mText, 2, 2, gcn::Graphics::LEFT, - mTextColor, mFont, mOutline, mShadow); + gcn::Color(mTextColor->r, mTextColor->g, + mTextColor->b, alpha), + mFont, mOutline, mShadow, alpha); } |