fix frequently segfault on clean shutdown
[enigma2.git] / lib / gui / ewindowstyle.cpp
index 79024a35d1ee80d7d573baf5906ee26b86682fcb..68a74e0c836bf551d5380e9a49a9262bc6436610 100644 (file)
@@ -9,6 +9,13 @@ eWindowStyle::~eWindowStyle() {}
 
 DEFINE_REF(eWindowStyleManager);
 
+ePtr<eWindowStyleManager> NewWindowStylePtr(void)
+{
+       ePtr<eWindowStyleManager> ptr;
+       eWindowStyleManager::getInstance(ptr);
+       return ptr;
+}
+
 eWindowStyleManager::eWindowStyleManager()
 {
        m_instance = this;
@@ -19,14 +26,14 @@ eWindowStyleManager::~eWindowStyleManager()
        m_instance = 0;
 }
 
-void eWindowStyleManager::getStyle(ePtr<eWindowStyle> &style)
+void eWindowStyleManager::getStyle(int style_id, ePtr<eWindowStyle> &style)
 {
-       style = m_current_style;
+       style = m_current_style[style_id];
 }
 
-void eWindowStyleManager::setStyle(eWindowStyle *style)
+void eWindowStyleManager::setStyle(int style_id, eWindowStyle *style)
 {
-       m_current_style = style;
+       m_current_style[style_id] = style;
 }
 
 eWindowStyleManager *eWindowStyleManager::m_instance;
@@ -38,7 +45,7 @@ eWindowStyleSimple::eWindowStyleSimple()
        m_border_left = m_border_right = m_border_bottom = 2;
        m_border_top = 30;
 
-       m_fnt = new gFont("Arial", 25);
+       m_fnt = new gFont("Regular", 25);
        
        m_border_color_tl = gColor(0x1f);
        m_border_color_br = gColor(0x14);
@@ -109,6 +116,10 @@ void eWindowStyleSimple::setStyle(gPainter &painter, int what)
                painter.setForegroundColor(gColor(0x2F));
                painter.setBackgroundColor(gColor(0x2A));
                break;
+       case styleListboxMarkedAndSelected:
+               painter.setForegroundColor(gColor(0x3F));
+               painter.setBackgroundColor(gColor(0x3A));
+               break;
        }
 }
 
@@ -141,13 +152,13 @@ RESULT eWindowStyleSimple::getFont(int what, ePtr<gFont> &fnt)
        switch (what)
        {
        case fontStatic:
-               fnt = new gFont("Arial", 12);
+               fnt = new gFont("Regular", 12);
                break;
        case fontButton:
-               fnt = new gFont("Arial", 20);
+               fnt = new gFont("Regular", 20);
                break;
        case fontTitlebar:
-               fnt = new gFont("Arial", 25);
+               fnt = new gFont("Regular", 25);
                break;
        default:
                return -1;