diff options
Diffstat (limited to 'src-qt5/core/libLumina/LuminaRandR.h')
-rw-r--r-- | src-qt5/core/libLumina/LuminaRandR.h | 51 |
1 files changed, 43 insertions, 8 deletions
diff --git a/src-qt5/core/libLumina/LuminaRandR.h b/src-qt5/core/libLumina/LuminaRandR.h index 3cdff651..448c676d 100644 --- a/src-qt5/core/libLumina/LuminaRandR.h +++ b/src-qt5/core/libLumina/LuminaRandR.h @@ -1,35 +1,70 @@ //=========================================== // Lumina-DE source code -// Copyright (c) 2016, Ken Moore +// Copyright (c) 2017, Ken Moore // Available under the 3-clause BSD license // See the LICENSE file for full details //=========================================== // This class governs all the xcb/randr interactions // and provides simpler Qt-based functions for use elsewhere //=========================================== +#ifndef _LUMINA_LIBRARY_RANDR_MONITORS_H +#define _LUMINA_LIBRARY_RANDR_MONITORS_H //Qt includes #include <QSize> +#include <QString> +#include <QPoint> +#include <QRect> +#include <QList> -#include "xcb/randr.h" -class outputDevice{ +class OutputDevice{ public: QString id; //output ID bool enabled; + bool isPrimary; //Monitor Geometry QPoint geom; //geometry of monitor within session //Monitor Resolution QSize cRes; //current resolution of the monitor (could be different from geom.size() if panning is enabled) QList<QSize> availRes; //available resolutions supported by the monitor //Refresh Rate - int cHz; //current refresh rate - QList<int> availHz; //available refresh rates + //int cHz; //current refresh rate + //QList<int> availHz; //available refresh rates //Expand this later to include: // panning (current/possible) // rotation (current/possible) - //FUNCTIONS - - //Modification + //Global Listing of Devices + static QList<OutputDevice> availableMonitors(); + + //FUNCTIONS (do not use directly - use the static list function instead) + OutputDevice(); + ~OutputDevice(); + + //Modification + bool setAsPrimary(); + bool disable(); + void enable(QRect geom = QRect()); //if no geom provided, will add as the right-most screen at optimal resolution + void changeResolution(QSize); + + //Now define a simple public_objects class so that each implementation + // has a storage container for placing private objects as needed + class p_objects; + p_objects* p_obj; +}; + +class OutputDeviceList : public QList<OutputDevice>{ +public: + OutputDeviceList(); + ~OutputDeviceList(); + + //Simplification functions for dealing with multiple monitors + void setPrimaryMonitor(QString id); + void disableMonitor(QString id); + //void enableMonitor(QString id, + +private: + }; +#endif |