#ifndef MSP_GRAPHICS_DISPLAY_H_
#define MSP_GRAPHICS_DISPLAY_H_
-#include <list>
#include <stdexcept>
#include <string>
+#include <vector>
#include <sigc++/signal.h>
#include "errordialog.h"
#include "monitor.h"
+#include "mspgui_api.h"
#include "videomode.h"
namespace Msp {
class Window;
-class Display
+class MSPGUI_API Display
{
public:
struct Private;
sigc::signal<void> signal_lost_focus;
private:
- std::list<Monitor> monitors;
- Monitor *primary_monitor;
- std::list<VideoMode> modes;
- Private *priv;
- ErrorDialog *err_dialog;
- Window *focus_window;
+ std::vector<Monitor> monitors;
+ Monitor *primary_monitor = nullptr;
+ std::vector<VideoMode> modes;
+ Private *priv = nullptr;
+ ErrorDialog *err_dialog = nullptr;
+ Window *focus_window = nullptr;
public:
Display(const std::string &disp_name = std::string());
void add_window(Window &);
void remove_window(Window &);
- const std::list<Monitor> &get_monitors() const { return monitors; }
- const std::list<VideoMode> &get_modes() const { return modes; }
+ const std::vector<Monitor> &get_monitors() const { return monitors; }
+ const std::vector<VideoMode> &get_modes() const { return modes; }
const VideoMode &get_desktop_mode() const;
void set_mode(const VideoMode &, bool = false);
void restore_mode();