]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/window.h
Track window positions
[libs/gui.git] / source / graphics / window.h
index 942fc8c984074f72572828e5ed5efee6f43675ab..8065762a4b2cc57d826db9f904f594de17365b96 100644 (file)
@@ -11,6 +11,8 @@ class Display;
 
 struct WindowOptions
 {
+       int x;
+       int y;
        unsigned width;
        unsigned height;
        bool fullscreen;
@@ -30,7 +32,9 @@ public:
        objects instead. */
        sigc::signal<void, const Event &> signal_input_event;
 
+       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:
@@ -38,6 +42,7 @@ protected:
        WindowOptions options;
        bool visible;
        bool kbd_autorepeat;
+       bool touch_input;
        bool resizing;
        Private *priv;
 
@@ -46,15 +51,25 @@ public:
        Window(Display &, const WindowOptions &);
 private:
        void init();
+       void platform_init();
+       void platform_cleanup();
 public:
        virtual ~Window();
 
        void set_title(const std::string &);
        void reconfigure(const WindowOptions &);
+private:
+       void platform_reconfigure(bool);
+public:
        void set_keyboard_autorepeat(bool);
        bool get_keyboard_autorepeat() const { return kbd_autorepeat; }
        void show_cursor(bool);
        void warp_pointer(int, int);
+       void set_touch_input(bool);
+private:
+       void platform_set_touch_input();
+public:
+       bool get_touch_input() const { return touch_input; }
 
        Display &get_display() const { return display; }
        const WindowOptions &get_options() const { return options; }
@@ -64,7 +79,11 @@ public:
 
        void show();
        void hide();
+private:
+       void platform_show();
+       void platform_hide();
 
+public:
        bool event(const Event &evnt);
 };