summaryrefslogtreecommitdiff
path: root/config.c
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2014-10-18 10:05:32 +0200
committerlouis <louis.braun@gmx.de>2014-10-18 10:05:32 +0200
commit3d1a2f1090e5e2a1a2f69ec7fe518245078b6527 (patch)
tree6a8620bb61f2d883ad16c6ee7db262b266f9b199 /config.c
parenta9f7a65578ea5ea1017d377d623c1171a33d67d3 (diff)
downloadvdr-plugin-skindesigner-3d1a2f1090e5e2a1a2f69ec7fe518245078b6527.tar.gz
vdr-plugin-skindesigner-3d1a2f1090e5e2a1a2f69ec7fe518245078b6527.tar.bz2
fixed bug that new skin was not properly loaded sometimes when skin was changed in OSD Setup menu
Diffstat (limited to 'config.c')
-rw-r--r--config.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/config.c b/config.c
index 2f88ac5..45d8d3a 100644
--- a/config.c
+++ b/config.c
@@ -23,6 +23,10 @@ cDesignerConfig::cDesignerConfig() {
//menu display style, display menu items
//one after each other or in one step
blockFlush = 1;
+ //remember current skin and theme
+ SetSkin();
+ //remember osd size
+ SetOSDSize();
}
cDesignerConfig::~cDesignerConfig() {
@@ -101,6 +105,47 @@ void cDesignerConfig::CheckDecimalPoint(void) {
}
}
+void cDesignerConfig::SetSkin(void) {
+ osdSkin = Setup.OSDSkin;
+ osdTheme = Setup.OSDTheme;
+}
+
+bool cDesignerConfig::SkinChanged(void) {
+ bool changed = false;
+ if (osdSkin.compare(Setup.OSDSkin) != 0) {
+ dsyslog("skindesigner: skin changed from %s to %s", osdSkin.c_str(), Setup.OSDSkin);
+ changed = true;
+ }
+ if (osdTheme.compare(Setup.OSDTheme) != 0) {
+ dsyslog("skindesigner: theme changed from %s to %s", osdTheme.c_str(), Setup.OSDTheme);
+ changed = true;
+ }
+ if (changed)
+ SetSkin();
+ return changed;
+}
+
+void cDesignerConfig::SetOSDSize(void) {
+ osdSize.SetWidth(cOsd::OsdWidth());
+ osdSize.SetHeight(cOsd::OsdHeight());
+ osdSize.SetX(cOsd::OsdLeft());
+ osdSize.SetY(cOsd::OsdTop());
+}
+
+bool cDesignerConfig::OsdSizeChanged(void) {
+ if ((osdSize.Width() != cOsd::OsdWidth()) ||
+ (osdSize.Height() != cOsd::OsdHeight()) ||
+ (osdSize.X() != cOsd::OsdLeft()) ||
+ (osdSize.Y() != cOsd::OsdTop())) {
+ dsyslog("skindesigner: osd size changed");
+ dsyslog("skindesigner: old osd size: top %d left %d size %d * %d", osdSize.X(), osdSize.Y(), osdSize.Width(), osdSize.Height());
+ SetOSDSize();
+ dsyslog("skindesigner: new osd size: top %d left %d size %d * %d", osdSize.X(), osdSize.Y(), osdSize.Width(), osdSize.Height());
+ return true;
+ }
+ return false;
+}
+
cString cDesignerConfig::CheckSlashAtEnd(std::string path) {
try {
if (!(path.at(path.size()-1) == '/'))