aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/helpers/Workspace.hpp
blob: c60eedfba90cb9ff8b53a8790985a0208d79802c (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
30
31
32
33
34
35
36
37
38
#pragma once

#include "../defines.hpp"
#include "AnimatedVariable.hpp"

enum eFullscreenMode : uint8_t {
    FULLSCREEN_FULL = 0,
    FULLSCREEN_MAXIMIZED
};

class CWorkspace {
public:
    CWorkspace(int monitorID);
    ~CWorkspace();

    // Workspaces ID-based have IDs > 0
    // and workspaces name-based have IDs starting with -1337
    int             m_iID = -1;
    std::string     m_szName = "";
    uint64_t        m_iMonitorID = -1;
    bool            m_bHasFullscreenWindow = false;
    eFullscreenMode m_efFullscreenMode = FULLSCREEN_FULL;

    wlr_ext_workspace_handle_v1* m_pWlrHandle = nullptr;

    wl_array        m_wlrCoordinateArr;

    // for animations
    CAnimatedVariable m_vRenderOffset;
    CAnimatedVariable m_fAlpha;

    // user-set
    bool            m_bDefaultFloating = false;
    bool            m_bDefaultPseudo = false;

    void            startAnim(bool in, bool left);
    void            setActive(bool on);
};