summaryrefslogtreecommitdiff
path: root/src/managers/LayoutManager.cpp
blob: 8e352184be62ab8d7f523226bd9e6c74d043893e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "LayoutManager.hpp"

IHyprLayout* CLayoutManager::getCurrentLayout() {
    switch (m_iCurrentLayoutID) {
        case DWINDLE: return &m_cDwindleLayout;
        case MASTER: return &m_cMasterLayout;
    }

    // fallback
    return &m_cDwindleLayout;
}

void CLayoutManager::switchToLayout(std::string layout) {
    if (layout == "dwindle") {
        if (m_iCurrentLayoutID != DWINDLE) {
            getCurrentLayout()->onDisable();
            m_iCurrentLayoutID = DWINDLE;
            getCurrentLayout()->onEnable();
        }
    } else if (layout == "master") {
        if (m_iCurrentLayoutID != MASTER) {
            getCurrentLayout()->onDisable();
            m_iCurrentLayoutID = MASTER;
            getCurrentLayout()->onEnable();
        }
    } else {
        Debug::log(ERR, "Unknown layout %s!", layout.c_str());
    }
}