aboutsummaryrefslogtreecommitdiff
path: root/lib/gui/eskin_register.cpp
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2003-10-17 15:35:43 +0000
committerFelix Domke <tmbinc@elitedvb.net>2003-10-17 15:35:43 +0000
commitfc2f5b2cd655f1391f2abda1b39e37cdec98a951 (patch)
tree312efcea86a319de407a7c314fb981fb1c71019a /lib/gui/eskin_register.cpp
downloadenigma2-fc2f5b2cd655f1391f2abda1b39e37cdec98a951.tar.gz
enigma2-fc2f5b2cd655f1391f2abda1b39e37cdec98a951.zip
Initial revision
Diffstat (limited to 'lib/gui/eskin_register.cpp')
-rw-r--r--lib/gui/eskin_register.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/gui/eskin_register.cpp b/lib/gui/eskin_register.cpp
new file mode 100644
index 00000000..a212449b
--- /dev/null
+++ b/lib/gui/eskin_register.cpp
@@ -0,0 +1,44 @@
+#include <lib/gui/eskin_register.h>
+#include <lib/gui/eskin.h>
+#include <lib/gdi/gfbdc.h>
+#include <lib/base/init.h>
+#include <lib/base/init_num.h>
+#include <lib/base/econfig.h>
+
+#define DEFAULTSKIN "stone.esml"
+
+class eSkinInit
+{
+ eSkin default_skin;
+public:
+ eSkinInit()
+ {
+ if (default_skin.load( CONFIGDIR "/enigma/skins/default.esml"))
+ if (default_skin.load( DATADIR "/enigma/skins/default.esml"))
+ eFatal("skin load failed (" DATADIR "/enigma/skins/default.esml)");
+
+ eString skinfile=DEFAULTSKIN;
+
+ char *temp=0;
+ if (!eConfig::getInstance()->getKey("/ezap/ui/skin", temp))
+ {
+ skinfile=temp;
+ free(temp);
+ }
+
+ if (default_skin.load(skinfile.c_str()))
+ {
+ eWarning("failed to load user defined skin %s, falling back to " DEFAULTSKIN, skinfile.c_str());
+ if (default_skin.load(CONFIGDIR "/enigma/skins/" DEFAULTSKIN))
+ if (default_skin.load(DATADIR "/enigma/skins/" DEFAULTSKIN))
+ eFatal("couldn't load fallback skin " DATADIR "/enigma/skins/" DEFAULTSKIN);
+ }
+
+ default_skin.parseSkins();
+
+ default_skin.setPalette(gFBDC::getInstance());
+ default_skin.makeActive();
+ }
+};
+
+eAutoInitP0<eSkinInit> init_skin(eAutoInitNumbers::skin, "skin subsystem");