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 void set_title(const std::string &);
54 unsigned get_width() const { return options.width; }
55 unsigned get_height() const { return options.height; }
61 void set_window(Handle wnd);
63 void process_event(const XEvent &event);
64 virtual void on_event(const XEvent &event) { (void)event; }
66 static int x_error_handler(Display *, XErrorEvent *);