summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-10-20 03:22:32 +0300
committerAndrei Karas <akaras@inbox.ru>2012-10-20 13:55:43 +0300
commit35efb9eba3a198b1dd2959434e82c8da45af689e (patch)
tree9eeec546069c24972ba606acb8c8bd9aeab55f47
parent4356b56d927afc83685897f0e6482f576a0ae09a (diff)
downloadplus-35efb9eba3a198b1dd2959434e82c8da45af689e.tar.gz
plus-35efb9eba3a198b1dd2959434e82c8da45af689e.tar.bz2
plus-35efb9eba3a198b1dd2959434e82c8da45af689e.tar.xz
plus-35efb9eba3a198b1dd2959434e82c8da45af689e.zip
Add load theme id for windows and popups.
New theme options: palette - palette number for window or popup. childPalette - palette number for window child controls. palette and childPalette should be from 0 to 4.
-rw-r--r--src/gui/widgets/popup.cpp2
-rw-r--r--src/gui/widgets/widget2.h16
-rw-r--r--src/gui/widgets/window.cpp6
3 files changed, 22 insertions, 2 deletions
diff --git a/src/gui/widgets/popup.cpp b/src/gui/widgets/popup.cpp
index cd50bfe1b..9763541a5 100644
--- a/src/gui/widgets/popup.cpp
+++ b/src/gui/widgets/popup.cpp
@@ -68,7 +68,7 @@ Popup::Popup(const std::string &name,
if (mSkin)
{
setPadding(mSkin->getPadding());
- // init Widget2 fields
+ setPalette(mSkin->getOption("palette"));
}
}
else
diff --git a/src/gui/widgets/widget2.h b/src/gui/widgets/widget2.h
index 9911d48f6..dd0f0f6fe 100644
--- a/src/gui/widgets/widget2.h
+++ b/src/gui/widgets/widget2.h
@@ -34,6 +34,7 @@ class Widget2
Widget2(const Widget2 *const widget) :
mPalette(widget ? widget->mPalette : 1)
{
+ checkPalette();
}
virtual ~Widget2()
@@ -61,7 +62,20 @@ class Widget2
mPalette = widget ? widget->mPalette : 1;
}
- private:
+ void setPalette(int palette)
+ {
+ mPalette = palette;
+ checkPalette();
+ setWidget2(this);
+ }
+
+ void checkPalette()
+ {
+ if (mPalette < 1 || mPalette > THEME_PALETTES)
+ mPalette = 1;
+ }
+
+ protected:
int mPalette;
};
diff --git a/src/gui/widgets/window.cpp b/src/gui/widgets/window.cpp
index fa673e420..ae47cb001 100644
--- a/src/gui/widgets/window.cpp
+++ b/src/gui/widgets/window.cpp
@@ -98,6 +98,7 @@ Window::Window(const std::string &caption, const bool modal,
if (skin == "")
skin = "window.xml";
+ int childPalette = 1;
// Loads the skin
if (Theme::instance())
{
@@ -122,6 +123,8 @@ Window::Window(const std::string &caption, const bool modal,
{
mCaptionAlign = gcn::Graphics::LEFT;
}
+ setPalette(getOption("palette"));
+ childPalette = getOption("childPalette");
}
}
@@ -140,6 +143,9 @@ 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);
}
Window::~Window()