1 #ifndef MSP_GRAPHICS_WINDOW_H_
2 #define MSP_GRAPHICS_WINDOW_H_
5 #include <sigc++/signal.h>
6 #include "mspgui_api.h"
18 bool user_position = false;
20 unsigned height = 480;
21 bool fullscreen = false;
22 const Monitor *fullscreen_monitor = nullptr;
23 bool fullscreen_exclusive = true;
24 bool resizable = false;
27 class MSPGUI_API Window
33 /** Provides input events. The event structure contents are platform-
34 specific. Applications will want to use the enclosed Keyboard and Mouse
36 sigc::signal<void, const Event &> signal_input_event;
38 sigc::signal<void> signal_got_focus;
39 sigc::signal<void> signal_lost_focus;
41 sigc::signal<void, int, int> signal_move;
42 sigc::signal<void, unsigned, unsigned> signal_resize;
43 sigc::signal<void, unsigned, unsigned, unsigned, unsigned, const Event &> signal_expose;
44 sigc::signal<void> signal_close;
48 WindowOptions options;
50 bool kbd_autorepeat = true;
51 bool touch_input = false;
52 bool resizing = false;
54 Private *priv = nullptr;
57 Window(Display &, unsigned w, unsigned h, bool fs = false);
58 Window(Display &, const WindowOptions &);
62 void platform_cleanup();
66 void set_title(const std::string &);
67 void reconfigure(const WindowOptions &);
69 void set_fullscreen_mode();
70 void platform_reconfigure(bool);
72 void set_keyboard_autorepeat(bool);
73 bool get_keyboard_autorepeat() const { return kbd_autorepeat; }
74 void show_cursor(bool);
75 void warp_pointer(int, int);
76 void set_touch_input(bool);
78 void platform_set_touch_input();
80 bool get_touch_input() const { return touch_input; }
82 Display &get_display() const { return display; }
83 const WindowOptions &get_options() const { return options; }
84 unsigned get_width() const { return options.width; }
85 unsigned get_height() const { return options.height; }
86 const Private &get_private() const { return *priv; }
95 bool event(const Event &evnt);
98 } // namespace Graphics