X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgraphics%2Fdisplay.h;h=bff17c3ffe69e8a819bf6b9872c77dc8ddab06bc;hb=ecd773e95ac440b123df5625fe71130982465097;hp=370bf0dea81013c03d2212ae77e2cfabd9cb7981;hpb=e09c2211539f417474b1d3226f56f021938329bf;p=libs%2Fgui.git diff --git a/source/graphics/display.h b/source/graphics/display.h index 370bf0d..bff17c3 100644 --- a/source/graphics/display.h +++ b/source/graphics/display.h @@ -4,6 +4,8 @@ #include #include #include +#include "errordialog.h" +#include "monitor.h" #include "videomode.h" namespace Msp { @@ -17,9 +19,11 @@ public: struct Private; private: + std::list monitors; + Monitor *primary_monitor; std::list modes; - VideoMode orig_mode; Private *priv; + ErrorDialog *err_dialog; public: Display(const std::string &disp_name = std::string()); @@ -30,11 +34,15 @@ public: void add_window(Window &); void remove_window(Window &); + const std::list &get_monitors() const { return monitors; } const std::list &get_modes() const { return modes; } - const VideoMode &get_desktop_mode() const { return orig_mode; } - void set_mode(const VideoMode &); - void restore_mode() { set_mode(orig_mode); } + const VideoMode &get_desktop_mode() const; + void set_mode(const VideoMode &, bool = false); + void restore_mode(); +private: + const VideoMode *find_matching_mode(const VideoMode &) const; +public: void tick(); private: bool process_events();