summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-10-20 04:02:56 +0300
committerAndrei Karas <akaras@inbox.ru>2012-10-20 13:55:43 +0300
commitd65f51b41a9d84c501bb25bc3849ffd8446fb2e6 (patch)
tree650a8cbdb4b33643e6465e74d85eb3fca6b428d2 /src/gui
parent35efb9eba3a198b1dd2959434e82c8da45af689e (diff)
downloadmanaplus-d65f51b41a9d84c501bb25bc3849ffd8446fb2e6.tar.gz
manaplus-d65f51b41a9d84c501bb25bc3849ffd8446fb2e6.tar.bz2
manaplus-d65f51b41a9d84c501bb25bc3849ffd8446fb2e6.tar.xz
manaplus-d65f51b41a9d84c501bb25bc3849ffd8446fb2e6.zip
Fix palettes loading and using.
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/theme.cpp8
-rw-r--r--src/gui/theme.h2
-rw-r--r--src/gui/widgets/browserbox.cpp2
-rw-r--r--src/gui/widgets/widget2.h23
-rw-r--r--src/gui/widgets/window.cpp4
5 files changed, 20 insertions, 19 deletions
diff --git a/src/gui/theme.cpp b/src/gui/theme.cpp
index 2178228fc..54946984c 100644
--- a/src/gui/theme.cpp
+++ b/src/gui/theme.cpp
@@ -924,8 +924,8 @@ void Theme::loadColors(std::string file)
continue;
}
- int paletteId = XML::getProperty(paletteNode, "id", 1);
- if (paletteId < 1 || paletteId > THEME_PALETTES)
+ const int paletteId = XML::getProperty(paletteNode, "id", 1);
+ if (paletteId < 0 || paletteId >= THEME_PALETTES)
continue;
for_each_xml_child_node(node, paletteNode)
@@ -942,8 +942,8 @@ void Theme::loadColors(std::string file)
color = readColor(temp);
grad = readColorGradient(XML::getProperty(node, "effect", ""));
-
- mColors[type * paletteId].set(type, color, grad, 10);
+ mColors[paletteId * THEME_COLORS_END + type].set(
+ type, color, grad, 10);
}
}
}
diff --git a/src/gui/theme.h b/src/gui/theme.h
index 1e91b46ce..e26fee332 100644
--- a/src/gui/theme.h
+++ b/src/gui/theme.h
@@ -296,7 +296,7 @@ class Theme final : public Palette, public ConfigListener
bool &valid)
{ return mInstance->getCharColor(c, valid); }
- static int getIdByChar(const signed char c, bool &valid)
+ static int getThemeIdByChar(const signed char c, bool &valid)
{ return mInstance->getIdByChar(c, valid); }
static gcn::Color getProgressColor(const int type,
diff --git a/src/gui/widgets/browserbox.cpp b/src/gui/widgets/browserbox.cpp
index 578ddd4a9..23fe456ed 100644
--- a/src/gui/widgets/browserbox.cpp
+++ b/src/gui/widgets/browserbox.cpp
@@ -500,7 +500,7 @@ int BrowserBox::calcHeight()
const signed char c = row.at(start + 2);
bool valid;
- const gcn::Color col = Theme::getThemeCharColor(c, valid);
+ const gcn::Color col = getThemeCharColor(c, valid);
if (c == '>')
{
diff --git a/src/gui/widgets/widget2.h b/src/gui/widgets/widget2.h
index dd0f0f6fe..ed2533287 100644
--- a/src/gui/widgets/widget2.h
+++ b/src/gui/widgets/widget2.h
@@ -27,12 +27,12 @@ class Widget2
{
public:
Widget2() :
- mPalette(1)
+ mPaletteOffset(0)
{
}
Widget2(const Widget2 *const widget) :
- mPalette(widget ? widget->mPalette : 1)
+ mPaletteOffset(widget ? widget->mPaletteOffset : 0)
{
checkPalette();
}
@@ -44,39 +44,42 @@ class Widget2
inline const gcn::Color &getThemeColor(const int type,
const int alpha = 255) const
{
- return Theme::getThemeColor(type * mPalette, alpha);
+ return Theme::getThemeColor(mPaletteOffset + type, alpha);
}
inline const gcn::Color &getThemeCharColor(const signed char c,
bool &valid) const
{
- const int colorId = Theme::getIdByChar(c, valid);
+ const int colorId = Theme::getThemeIdByChar(c, valid);
if (valid)
- return Theme::getThemeColor(colorId * mPalette);
+ return Theme::getThemeColor(mPaletteOffset + colorId);
else
return Palette::BLACK;
}
virtual void setWidget2(const Widget2 *const widget)
{
- mPalette = widget ? widget->mPalette : 1;
+ mPaletteOffset = widget ? widget->mPaletteOffset : 0;
}
void setPalette(int palette)
{
- mPalette = palette;
+ mPaletteOffset = palette * Theme::THEME_COLORS_END;
checkPalette();
setWidget2(this);
}
void checkPalette()
{
- if (mPalette < 1 || mPalette > THEME_PALETTES)
- mPalette = 1;
+ if (mPaletteOffset < 0 || mPaletteOffset
+ >= THEME_PALETTES * Theme::THEME_COLORS_END)
+ {
+ mPaletteOffset = 0;
+ }
}
protected:
- int mPalette;
+ int mPaletteOffset;
};
#endif
diff --git a/src/gui/widgets/window.cpp b/src/gui/widgets/window.cpp
index ae47cb001..5495cd310 100644
--- a/src/gui/widgets/window.cpp
+++ b/src/gui/widgets/window.cpp
@@ -143,9 +143,7 @@ Window::Window(const std::string &caption, const bool modal,
addWidgetListener(this);
mForegroundColor = getThemeColor(Theme::WINDOW);
- logger->log("window palettes: %d, %d", mPalette, childPalette);
- if (childPalette != mPalette)
- setPalette(childPalette);
+ setPalette(childPalette);
}
Window::~Window()