summaryrefslogtreecommitdiff
path: root/src/layout/MasterLayout.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout/MasterLayout.hpp')
-rw-r--r--src/layout/MasterLayout.hpp75
1 files changed, 38 insertions, 37 deletions
diff --git a/src/layout/MasterLayout.hpp b/src/layout/MasterLayout.hpp
index 06dd8f00..1b637fde 100644
--- a/src/layout/MasterLayout.hpp
+++ b/src/layout/MasterLayout.hpp
@@ -4,11 +4,13 @@
#include <vector>
#include <list>
#include <deque>
+#include <any>
enum eFullscreenMode : uint8_t;
//orientation determines which side of the screen the master area resides
-enum eOrientation : uint8_t {
+enum eOrientation : uint8_t
+{
ORIENTATION_LEFT = 0,
ORIENTATION_TOP,
ORIENTATION_RIGHT,
@@ -16,67 +18,66 @@ enum eOrientation : uint8_t {
};
struct SMasterNodeData {
- bool isMaster = false;
- float percMaster = 0.5f;
+ bool isMaster = false;
+ float percMaster = 0.5f;
CWindow* pWindow = nullptr;
Vector2D position;
Vector2D size;
- float percSize = 1.f; // size multiplier for resizing children
+ float percSize = 1.f; // size multiplier for resizing children
- int workspaceID = -1;
+ int workspaceID = -1;
- bool operator==(const SMasterNodeData& rhs) {
+ bool operator==(const SMasterNodeData& rhs) {
return pWindow == rhs.pWindow;
}
};
struct SMasterWorkspaceData {
- int workspaceID = -1;
+ int workspaceID = -1;
eOrientation orientation = ORIENTATION_LEFT;
- bool operator==(const SMasterWorkspaceData& rhs) {
+ bool operator==(const SMasterWorkspaceData& rhs) {
return workspaceID == rhs.workspaceID;
}
};
class CHyprMasterLayout : public IHyprLayout {
-public:
- virtual void onWindowCreatedTiling(CWindow*);
- virtual void onWindowRemovedTiling(CWindow*);
- virtual bool isWindowTiled(CWindow*);
- virtual void recalculateMonitor(const int&);
- virtual void recalculateWindow(CWindow*);
- virtual void resizeActiveWindow(const Vector2D&, CWindow* pWindow = nullptr);
- virtual void fullscreenRequestForWindow(CWindow*, eFullscreenMode, bool);
- virtual std::any layoutMessage(SLayoutMessageHeader, std::string);
+ public:
+ virtual void onWindowCreatedTiling(CWindow*);
+ virtual void onWindowRemovedTiling(CWindow*);
+ virtual bool isWindowTiled(CWindow*);
+ virtual void recalculateMonitor(const int&);
+ virtual void recalculateWindow(CWindow*);
+ virtual void resizeActiveWindow(const Vector2D&, CWindow* pWindow = nullptr);
+ virtual void fullscreenRequestForWindow(CWindow*, eFullscreenMode, bool);
+ virtual std::any layoutMessage(SLayoutMessageHeader, std::string);
virtual SWindowRenderLayoutHints requestRenderHints(CWindow*);
- virtual void switchWindows(CWindow*, CWindow*);
- virtual void alterSplitRatioBy(CWindow*, float);
- virtual std::string getLayoutName();
+ virtual void switchWindows(CWindow*, CWindow*);
+ virtual void alterSplitRatioBy(CWindow*, float);
+ virtual std::string getLayoutName();
- virtual void onEnable();
- virtual void onDisable();
+ virtual void onEnable();
+ virtual void onDisable();
-private:
-
- std::list<SMasterNodeData> m_lMasterNodesData;
+ private:
+ std::list<SMasterNodeData> m_lMasterNodesData;
std::vector<SMasterWorkspaceData> m_lMasterWorkspacesData;
- bool m_bForceWarps = false;
-
- int getNodesOnWorkspace(const int&);
- void applyNodeDataToWindow(SMasterNodeData*);
- SMasterNodeData* getNodeFromWindow(CWindow*);
- SMasterNodeData* getMasterNodeOnWorkspace(const int&);
- SMasterWorkspaceData* getMasterWorkspaceData(const int&);
- void calculateWorkspace(const int&);
- CWindow* getNextWindow(CWindow*, bool);
- int getMastersOnWorkspace(const int&);
- bool prepareLoseFocus(CWindow*);
- void prepareNewFocus(CWindow*, bool inherit_fullscreen);
+ bool m_bForceWarps = false;
+
+ int getNodesOnWorkspace(const int&);
+ void applyNodeDataToWindow(SMasterNodeData*);
+ SMasterNodeData* getNodeFromWindow(CWindow*);
+ SMasterNodeData* getMasterNodeOnWorkspace(const int&);
+ SMasterWorkspaceData* getMasterWorkspaceData(const int&);
+ void calculateWorkspace(const int&);
+ CWindow* getNextWindow(CWindow*, bool);
+ int getMastersOnWorkspace(const int&);
+ bool prepareLoseFocus(CWindow*);
+ void prepareNewFocus(CWindow*, bool inherit_fullscreen);
friend struct SMasterNodeData;
friend struct SMasterWorkspaceData;