]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/display.h
Use nullptr in place of 0 or NULL
[libs/gui.git] / source / graphics / display.h
index 8d2f61873495bb4056dd276c25f4f6e65e5fa37c..f78aaff48448a67cd5532945a187e181ca72cc17 100644 (file)
@@ -4,6 +4,8 @@
 #include <list>
 #include <stdexcept>
 #include <string>
+#include <sigc++/signal.h>
+#include "errordialog.h"
 #include "monitor.h"
 #include "videomode.h"
 
@@ -17,11 +19,16 @@ class Display
 public:
        struct Private;
 
+       sigc::signal<void> signal_got_focus;
+       sigc::signal<void> signal_lost_focus;
+
 private:
        std::list<Monitor> monitors;
-       Monitor *primary_monitor;
+       Monitor *primary_monitor = nullptr;
        std::list<VideoMode> modes;
-       Private *priv;
+       Private *priv = nullptr;
+       ErrorDialog *err_dialog = nullptr;
+       Window *focus_window = nullptr;
 
 public:
        Display(const std::string &disp_name = std::string());
@@ -37,8 +44,14 @@ public:
        const VideoMode &get_desktop_mode() const;
        void set_mode(const VideoMode &, bool = false);
        void restore_mode();
+       const VideoMode *find_mode(const VideoMode &, float = 0.5f) const;
+       const VideoMode *find_mode(unsigned, unsigned) const;
+
 private:
-       const VideoMode *find_matching_mode(const VideoMode &) const;
+       void window_got_focus(Window &);
+       void window_lost_focus();
+public:
+       Window *get_focus_window() const { return focus_window; }
 
 public:
        void tick();