]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/window.h
Make Window's functions non-virtual
[libs/gui.git] / source / graphics / window.h
index 70b40443d3d84575f93f4fefc51ffa99119da2c1..325f8c97d6bbcb2b2bb1bdf7b3767fbb8255ef32 100644 (file)
@@ -8,12 +8,18 @@ namespace Msp {
 namespace Graphics {
 
 class Display;
+struct Monitor;
 
 struct WindowOptions
 {
+       int x;
+       int y;
+       bool user_position;
        unsigned width;
        unsigned height;
        bool fullscreen;
+       const Monitor *fullscreen_monitor;
+       bool fullscreen_exclusive;
        bool resizable;
 
        WindowOptions();
@@ -30,7 +36,12 @@ public:
        objects instead. */
        sigc::signal<void, const Event &> signal_input_event;
 
+       sigc::signal<void> signal_got_focus;
+       sigc::signal<void> signal_lost_focus;
+
+       sigc::signal<void, int, int> signal_move;
        sigc::signal<void, unsigned, unsigned> signal_resize;
+       sigc::signal<void, unsigned, unsigned, unsigned, unsigned, const Event &> signal_expose;
        sigc::signal<void> signal_close;
 
 protected:
@@ -40,6 +51,7 @@ protected:
        bool kbd_autorepeat;
        bool touch_input;
        bool resizing;
+       bool moving;
        Private *priv;
 
 public:
@@ -50,11 +62,12 @@ private:
        void platform_init();
        void platform_cleanup();
 public:
-       virtual ~Window();
+       ~Window();
 
        void set_title(const std::string &);
        void reconfigure(const WindowOptions &);
 private:
+       void set_fullscreen_mode();
        void platform_reconfigure(bool);
 public:
        void set_keyboard_autorepeat(bool);
@@ -69,8 +82,8 @@ public:
 
        Display &get_display() const { return display; }
        const WindowOptions &get_options() const { return options; }
-       virtual unsigned get_width() const { return options.width; }
-       virtual unsigned get_height() const { return options.height; }
+       unsigned get_width() const { return options.width; }
+       unsigned get_height() const { return options.height; }
        const Private &get_private() const { return *priv; }
 
        void show();