#include <string>
#include <sigc++/signal.h>
+#include "mspgui_api.h"
namespace Msp {
namespace Graphics {
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();
+ 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;
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);
void platform_init();
void platform_cleanup();
public:
- virtual ~Window();
+ ~Window();
void set_title(const std::string &);
void reconfigure(const WindowOptions &);
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();