aboutsummaryrefslogtreecommitdiff
path: root/lib/gui/ewindow.cpp
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-04-15 18:00:24 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-04-15 18:00:24 +0000
commit44433f650cd3e5f9f66253b74d194fcb01578595 (patch)
treec67ea0df64ff9bfdd500abd4a641a7aae7450a84 /lib/gui/ewindow.cpp
parent77c45c9d2cabd3c1dc028c41d26573ac62147a34 (diff)
downloadenigma2-44433f650cd3e5f9f66253b74d194fcb01578595.tar.gz
enigma2-44433f650cd3e5f9f66253b74d194fcb01578595.zip
- sdl is now default output
- added skinned window style - added background colors - some RGB color support (but still not how i like it) - some minor bugfixes
Diffstat (limited to 'lib/gui/ewindow.cpp')
-rw-r--r--lib/gui/ewindow.cpp57
1 files changed, 46 insertions, 11 deletions
diff --git a/lib/gui/ewindow.cpp b/lib/gui/ewindow.cpp
index 1114d258..01f889ff 100644
--- a/lib/gui/ewindow.cpp
+++ b/lib/gui/ewindow.cpp
@@ -2,10 +2,26 @@
#include <lib/gui/ewidgetdesktop.h>
#include <lib/gui/ewindowstyle.h>
+#include <lib/gui/ewindowstyleskinned.h>
+
+#include <lib/gdi/epng.h>
eWindow::eWindow(eWidgetDesktop *desktop): eWidget(0)
{
- setStyle(new eWindowStyleSimple());
+ m_flags = 0;
+ /* ask style manager for current style */
+ ePtr<eWindowStyleManager> mgr;
+ eWindowStyleManager::getInstance(mgr);
+
+ ePtr<eWindowStyle> style;
+ if (mgr)
+ mgr->getStyle(style);
+
+ /* when there is either no style manager or no style, revert to simple style. */
+ if (!style)
+ style = new eWindowStyleSimple();
+
+ setStyle(style);
/* we are the parent for the child window. */
/* as we are in the constructor, this is thread safe. */
@@ -27,30 +43,49 @@ void eWindow::setTitle(const std::string &string)
event(evtTitleChanged);
}
+void eWindow::setFlag(int flags)
+{
+ m_flags |= flags;
+}
+
+void eWindow::clearFlag(int flags)
+{
+ m_flags &= ~flags;
+}
+
int eWindow::event(int event, void *data, void *data2)
{
switch (event)
{
case evtWillChangeSize:
{
- ePtr<eWindowStyle> style;
- if (!getStyle(style))
+ eSize &new_size = *static_cast<eSize*>(data);
+ eSize &offset = *static_cast<eSize*>(data2);
+ if (!(m_flags & wfNoBorder))
{
- const eSize &new_size = *static_cast<eSize*>(data);
+ ePtr<eWindowStyle> style;
+ if (!getStyle(style))
+ {
// eDebug("eWindow::evtWillChangeSize to %d %d", new_size.width(), new_size.height());
- style->handleNewSize(this, new_size);
+ style->handleNewSize(this, new_size, offset);
+ }
+ } else
+ {
+ m_child->resize(new_size);
}
break;
}
case evtPaint:
{
- ePtr<eWindowStyle> style;
- if (!getStyle(style))
+ if (!(m_flags & wfNoBorder))
{
- gPainter &painter = *static_cast<gPainter*>(data2);
- style->paintWindowDecoration(this, painter, m_title);
- } else
- eDebug("no style :(");
+ ePtr<eWindowStyle> style;
+ if (!getStyle(style))
+ {
+ gPainter &painter = *static_cast<gPainter*>(data2);
+ style->paintWindowDecoration(this, painter, m_title);
+ }
+ }
return 0;
}
default: