aboutsummaryrefslogtreecommitdiff
path: root/lib/gui/ewindow.cpp
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-01-09 16:29:34 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-01-09 16:29:34 +0000
commitba02fb4aced5868d047a5bffbd2ed87583daee4d (patch)
treebcfea66b1f7fd2212539a99abc074de1424ac9a0 /lib/gui/ewindow.cpp
parent2494509cd031727d92c6556089c99711d16d8af9 (diff)
downloadenigma2-ba02fb4aced5868d047a5bffbd2ed87583daee4d.tar.gz
enigma2-ba02fb4aced5868d047a5bffbd2ed87583daee4d.zip
- add more python stuff
- fix some gui/gdi - add eslider - improve windowstyle
Diffstat (limited to 'lib/gui/ewindow.cpp')
-rw-r--r--lib/gui/ewindow.cpp35
1 files changed, 25 insertions, 10 deletions
diff --git a/lib/gui/ewindow.cpp b/lib/gui/ewindow.cpp
index 1afee2ee..630a8aa3 100644
--- a/lib/gui/ewindow.cpp
+++ b/lib/gui/ewindow.cpp
@@ -5,10 +5,18 @@
eWindow::eWindow(eWidgetDesktop *desktop): eWidget(0)
{
+ setStyle(new eWindowStyleSimple());
+
+ /* we are the parent for the child window. */
+ /* as we are in the constructor, this is thread safe. */
+ m_child = this;
m_child = new eWidget(this);
desktop->addRootWidget(this, 0);
-
- m_style = new eWindowStyleSimple();
+}
+
+eWindow::~eWindow()
+{
+ getDesktop()->removeRootWidget(this);
}
void eWindow::setTitle(const std::string &string)
@@ -25,18 +33,25 @@ int eWindow::event(int event, void *data, void *data2)
{
case evtWillChangeSize:
{
- const eSize &new_size = *static_cast<eSize*>(data);
- eDebug("eWindow::evtWillChangeSize to %d %d", new_size.width(), new_size.height());
- if (m_style)
- m_style->handleNewSize(this, new_size);
+ ePtr<eWindowStyle> style;
+ if (!getStyle(style))
+ {
+ const eSize &new_size = *static_cast<eSize*>(data);
+ eDebug("eWindow::evtWillChangeSize to %d %d", new_size.width(), new_size.height());
+ style->handleNewSize(this, new_size);
+ }
break;
}
case evtPaint:
{
- gPainter &painter = *static_cast<gPainter*>(data2);
- painter.setBackgroundColor(gColor(0x18));
- painter.clear();
- break;
+ ePtr<eWindowStyle> style;
+ if (!getStyle(style))
+ {
+ gPainter &painter = *static_cast<gPainter*>(data2);
+ style->paintWindowDecoration(this, painter, m_title);
+ } else
+ eDebug("no style :(");
+ return 0;
}
default:
break;