]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/window.h
Add decorations for things which should be exported from the library
[libs/gui.git] / source / graphics / window.h
index 443cac79210afe3904b5cbc2008daceabc907197..a6fb92b4e8e1eb4db2f0cf46004a3a93cf92d1f6 100644 (file)
@@ -3,26 +3,28 @@
 
 #include <string>
 #include <sigc++/signal.h>
+#include "mspgui_api.h"
 
 namespace Msp {
 namespace Graphics {
 
 class Display;
+struct Monitor;
 
 struct WindowOptions
 {
-       int x;
-       int y;
-       bool user_position;
-       unsigned width;
-       unsigned height;
-       bool fullscreen;
-       bool resizable;
-
-       WindowOptions();
+       int x = 0;
+       int y = 0;
+       bool user_position = false;
+       unsigned width = 640;
+       unsigned height = 480;
+       bool fullscreen = false;
+       const Monitor *fullscreen_monitor = nullptr;
+       bool fullscreen_exclusive = true;
+       bool resizable = false;
 };
 
-class Window
+class MSPGUI_API Window
 {
 public:
        struct Private;
@@ -44,12 +46,12 @@ public:
 protected:
        Display &display;
        WindowOptions options;
-       bool visible;
-       bool kbd_autorepeat;
-       bool touch_input;
-       bool resizing;
-       bool moving;
-       Private *priv;
+       bool visible = false;
+       bool kbd_autorepeat = true;
+       bool touch_input = false;
+       bool resizing = false;
+       bool moving = false;
+       Private *priv = nullptr;
 
 public:
        Window(Display &, unsigned w, unsigned h, bool fs = false);
@@ -59,7 +61,7 @@ private:
        void platform_init();
        void platform_cleanup();
 public:
-       virtual ~Window();
+       ~Window();
 
        void set_title(const std::string &);
        void reconfigure(const WindowOptions &);
@@ -79,8 +81,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();