aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-08-09 00:24:38 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-08-09 00:24:38 +0000
commitab2ae6bd08a0ef13fc7462d51fc3a9ab15509b17 (patch)
treeb94d5d3a239ea2da3c22d021126eb9ee21e3ddd7 /lib
parent3ca2b78837beec96423c733abafaf6ef2a720066 (diff)
downloadenigma2-ab2ae6bd08a0ef13fc7462d51fc3a9ab15509b17.tar.gz
enigma2-ab2ae6bd08a0ef13fc7462d51fc3a9ab15509b17.zip
add possibility to have multiple windowstyles. LCD can have different colors now.
Diffstat (limited to 'lib')
-rw-r--r--lib/gui/ewidgetdesktop.cpp1
-rw-r--r--lib/gui/ewidgetdesktop.h5
-rw-r--r--lib/gui/ewindow.cpp2
-rw-r--r--lib/gui/ewindowstyle.cpp8
-rw-r--r--lib/gui/ewindowstyle.h6
5 files changed, 14 insertions, 8 deletions
diff --git a/lib/gui/ewidgetdesktop.cpp b/lib/gui/ewidgetdesktop.cpp
index eaaa81c8..4d0c0a9b 100644
--- a/lib/gui/ewidgetdesktop.cpp
+++ b/lib/gui/ewidgetdesktop.cpp
@@ -330,6 +330,7 @@ eWidgetDesktop::eWidgetDesktop(eSize size): m_mainloop(0), m_timer(0)
m_screen.m_dirty_region = gRegion(eRect(ePoint(0, 0), size));
m_screen.m_screen_size = size;
m_require_redraw = 0;
+ m_style_id = 0;
CONNECT(gRC::getInstance()->notify, eWidgetDesktop::notify);
setCompositionMode(cmImmediate);
diff --git a/lib/gui/ewidgetdesktop.h b/lib/gui/ewidgetdesktop.h
index f88efa88..fb4b3b82 100644
--- a/lib/gui/ewidgetdesktop.h
+++ b/lib/gui/ewidgetdesktop.h
@@ -63,6 +63,9 @@ public:
};
void setCompositionMode(int mode);
+
+ int getStyleID() { return m_style_id; }
+ void setStyleID(int id) { m_style_id = id; }
private:
ePtrList<eWidget> m_root;
void calcWidgetClipRegion(eWidget *widget, gRegion &parent_visible);
@@ -83,6 +86,8 @@ private:
void notify();
void clearVisibility(eWidget *widget);
+
+ int m_style_id;
};
#endif
diff --git a/lib/gui/ewindow.cpp b/lib/gui/ewindow.cpp
index 4cb2e76f..83e65ec3 100644
--- a/lib/gui/ewindow.cpp
+++ b/lib/gui/ewindow.cpp
@@ -16,7 +16,7 @@ eWindow::eWindow(eWidgetDesktop *desktop, int z): eWidget(0)
ePtr<eWindowStyle> style;
if (mgr)
- mgr->getStyle(style);
+ mgr->getStyle(desktop->getStyleID(), style);
/* when there is either no style manager or no style, revert to simple style. */
if (!style)
diff --git a/lib/gui/ewindowstyle.cpp b/lib/gui/ewindowstyle.cpp
index 4cfaa8d4..2558669a 100644
--- a/lib/gui/ewindowstyle.cpp
+++ b/lib/gui/ewindowstyle.cpp
@@ -19,14 +19,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;
diff --git a/lib/gui/ewindowstyle.h b/lib/gui/ewindowstyle.h
index 3c9c805b..4824aad6 100644
--- a/lib/gui/ewindowstyle.h
+++ b/lib/gui/ewindowstyle.h
@@ -51,12 +51,12 @@ public:
eWindowStyleManager();
~eWindowStyleManager();
#endif
- void getStyle(ePtr<eWindowStyle> &style);
- void setStyle(eWindowStyle *style);
+ void getStyle(int style_id, ePtr<eWindowStyle> &style);
+ void setStyle(int style_id, eWindowStyle *style);
static int getInstance(ePtr<eWindowStyleManager> &mgr) { mgr = m_instance; if (!mgr) return -1; return 0; }
private:
static eWindowStyleManager *m_instance;
- ePtr<eWindowStyle> m_current_style;
+ std::map<int, ePtr<eWindowStyle> > m_current_style;
};
TEMPLATE_TYPEDEF(ePtr<eWindowStyleManager>, eWindowStyleManagerPtr);