summaryrefslogtreecommitdiff
path: root/src/gui/widgets/progressbar.cpp
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2010-03-04 22:41:19 -0700
committerJared Adams <jaxad0127@gmail.com>2010-03-12 14:49:27 -0700
commit781b3c9f17708cc5fe08eb3c9ee38d596364d97c (patch)
tree833797c9b9168ab58864ffe4cf8ed028060e44a2 /src/gui/widgets/progressbar.cpp
parent96b64757954f07d196599b3c1131a6603982c930 (diff)
downloadmana-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.cpp26
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);
}