trunk 20080912
[gitenigma.git] / lib / gui / eskin_register.cpp
blob7638b0475c538c77db77c149a5d5caba00842212
1 #include <lib/gui/eskin_register.h>
2 #include <lib/gui/eskin.h>
3 #include <lib/gdi/gfbdc.h>
4 #include <lib/system/info.h>
5 #include <lib/system/init.h>
6 #include <lib/system/init_num.h>
7 #include <lib/system/econfig.h>
9 class eSkinInit
11 eSkin default_skin;
12 public:
13 eSkinInit()
15 if (default_skin.load( CONFIGDIR "/enigma/skins/default.esml"))
16 if (default_skin.load( TUXBOXDATADIR "/enigma/skins/default.esml"))
17 eFatal("skin load failed (" TUXBOXDATADIR "/enigma/skins/default.esml)");
19 eString defaultSkin =
20 eSystemInfo::getInstance()->getHwType()
21 == eSystemInfo::TR_DVB272S
23 TUXBOXDATADIR "/enigma/skins/small_red.esml"
25 TUXBOXDATADIR "/enigma/skins/stone.esml";
27 eString skinfile=defaultSkin;
29 char *temp=0;
30 if (!eConfig::getInstance()->getKey("/ezap/ui/skin", temp))
32 skinfile=temp;
33 free(temp);
36 if (default_skin.load(skinfile.c_str()))
38 eWarning("failed to load user defined skin %s, falling back to %s", skinfile.c_str(), defaultSkin.c_str() );
39 if (default_skin.load(defaultSkin.c_str()))
40 eFatal("couldn't load fallback skin %s", defaultSkin.c_str() );
43 default_skin.parseSkins();
45 default_skin.setPalette(gFBDC::getInstance());
46 default_skin.makeActive();
50 eAutoInitP0<eSkinInit> init_skin(eAutoInitNumbers::skin, "skin subsystem");