diff options
author | Jared Adams <jaxad0127@gmail.com> | 2010-03-04 22:41:19 -0700 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2010-03-12 14:49:27 -0700 |
commit | 781b3c9f17708cc5fe08eb3c9ee38d596364d97c (patch) | |
tree | 833797c9b9168ab58864ffe4cf8ed028060e44a2 /src/gui/widgets/progressbar.cpp | |
parent | 96b64757954f07d196599b3c1131a6603982c930 (diff) | |
download | mana-781b3c9f17708cc5fe08eb3c9ee38d596364d97c.tar.gz mana-781b3c9f17708cc5fe08eb3c9ee38d596364d97c.tar.bz2 mana-781b3c9f17708cc5fe08eb3c9ee38d596364d97c.tar.xz mana-781b3c9f17708cc5fe08eb3c9ee38d596364d97c.zip |
Split Palette into Theme and UserPalette
Themes can now control the colors they use. Colors in the Viewport (being
names, particles, etc) can still be changed by the user. Also make
ProgressBars more easily colored. DyePalette was made more flexible in the
process.
Also fixes comparing strings of different lengths insensitively.
Reviewed-by: Thorbjørn Lindeijer
Diffstat (limited to 'src/gui/widgets/progressbar.cpp')
-rw-r--r-- | src/gui/widgets/progressbar.cpp | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/gui/widgets/progressbar.cpp b/src/gui/widgets/progressbar.cpp index 99a8c36a..028658ab 100644 --- a/src/gui/widgets/progressbar.cpp +++ b/src/gui/widgets/progressbar.cpp @@ -41,11 +41,10 @@ float ProgressBar::mAlpha = 1.0; ProgressBar::ProgressBar(float progress, int width, int height, - const gcn::Color &color): + int color): gcn::Widget(), mSmoothProgress(true), - mColor(color), - mColorToGo(color), + mProgressPalette(color), mSmoothColorChange(true) { // The progress value is directly set at load time: @@ -54,6 +53,9 @@ ProgressBar::ProgressBar(float progress, mProgress = mProgressToGo = progress; + mColor = mColorToGo = Theme::getProgressColor(color >= 0 ? color : 0, + mProgress); + setSize(width, height); if (mInstances == 0) @@ -156,6 +158,22 @@ void ProgressBar::setProgress(float progress) if (!mSmoothProgress) mProgress = p; + + if (mProgressPalette >= 0) + { + mColorToGo = Theme::getProgressColor(mProgressPalette, progress); + } +} + +void ProgressBar::setProgressPalette(int progressPalette) +{ + int oldPalette = mProgressPalette; + mProgressPalette = progressPalette; + + if (mProgressPalette != oldPalette && mProgressPalette >= 0) + { + mColorToGo = Theme::getProgressColor(mProgressPalette, mProgressToGo); + } } void ProgressBar::setColor(const gcn::Color &color) @@ -192,7 +210,7 @@ void ProgressBar::render(Graphics *graphics, const gcn::Rectangle &area, TextRenderer::renderText(graphics, text, textX, textY, gcn::Graphics::CENTER, - guiPalette->getColor(Palette::PROGRESS_BAR), + Theme::getThemeColor(Theme::PROGRESS_BAR), gui->getFont(), true, false); } |