3 This file is part of libmspgbase
4 Copyright © 2007 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
8 #ifndef MSP_GBASE_WINDOW_H_
9 #define MSP_GBASE_WINDOW_H_
13 #include <sigc++/signal.h>
30 sigc::signal<void, int, int, unsigned, unsigned> signal_button_press;
31 sigc::signal<void, int, int, unsigned, unsigned> signal_button_release;
32 sigc::signal<void, int, int> signal_pointer_motion;
33 sigc::signal<void, unsigned, unsigned, unsigned> signal_key_press;
34 sigc::signal<void, unsigned, unsigned> signal_key_release;
35 sigc::signal<void, unsigned, unsigned> signal_resize;
36 sigc::signal<void> signal_close;
39 typedef ::Window Handle;
42 DisplayOptions options;
44 Atom wm_delete_window;
48 Window(unsigned w, unsigned h);
49 Window(const DisplayOptions &dopt);
52 unsigned get_width() const { return options.width; }
53 unsigned get_height() const { return options.height; }
59 void set_window(Handle wnd);
61 void process_event(const XEvent &event);
62 virtual void on_event(const XEvent &event) { (void)event; }
64 static int x_error_handler(Display *, XErrorEvent *);