+// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
+
+#include "config.h"
+
#include "appwidget.hh"
#include "application.hh"
+#include "property.hh"
+#include "renderstyle.hh"
+#include "display.hh"
extern "C" {
#include <X11/Xlib.h>
namespace otk {
-OtkAppWidget::OtkAppWidget(OtkApplication *app, Direction direction,
- Cursor cursor, int bevel_width)
- : OtkWidget(app, app->getStyle(), direction, cursor, bevel_width),
+AppWidget::AppWidget(Application *app, Direction direction, int bevel)
+ : Widget(app->screen(), app, direction, bevel),
_application(app)
{
assert(app);
- _wm_protocols = XInternAtom(OBDisplay::display, "WM_PROTOCOLS", false);
- _wm_delete = XInternAtom(OBDisplay::display, "WM_DELETE_WINDOW", false);
-
// set WM Protocols on the window
Atom protocols[2];
- protocols[0] = _wm_protocols;
- protocols[1] = _wm_delete;
- XSetWMProtocols(OBDisplay::display, getWindow(), protocols, 2);
+ protocols[0] = Property::atoms.wm_protocols;
+ protocols[1] = Property::atoms.wm_delete_window;
+ XSetWMProtocols(**display, window(), protocols, 2);
}
-OtkAppWidget::~OtkAppWidget()
+AppWidget::~AppWidget()
{
}
-void OtkAppWidget::show(void)
+void AppWidget::show()
{
- OtkWidget::show();
-
+ if (!visible())
_application->_appwidget_count++;
+ Widget::show(true);
}
-void OtkAppWidget::hide(void)
+void AppWidget::hide()
{
- OtkWidget::hide();
-
- _application->_appwidget_count--;
+ if (visible())
+ _application->_appwidget_count--;
+ Widget::hide();
}
-void OtkAppWidget::clientMessageHandler(const XClientMessageEvent &e)
+void AppWidget::clientMessageHandler(const XClientMessageEvent &e)
{
- OtkEventHandler::clientMessageHandler(e);
- if (e.message_type == _wm_protocols &&
- static_cast<Atom>(e.data.l[0]) == _wm_delete)
+ EventHandler::clientMessageHandler(e);
+ if (e.message_type == Property::atoms.wm_protocols &&
+ static_cast<Atom>(e.data.l[0]) == Property::atoms.wm_delete_window)
hide();
}