diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-02-29 13:03:38 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-02-29 13:03:38 +0000 |
| commit | b39dcfa497f84486569bf862092dfcfadbfd8747 (patch) | |
| tree | c9f7a99c04ed6091ef79eea41a61d53dd04cc7cb /src/helpers/Workspace.cpp | |
| parent | 4bff762d9733ba7334cd37b995cf51552cc80be0 (diff) | |
refactor: move a few things to desktop/
Diffstat (limited to 'src/helpers/Workspace.cpp')
| -rw-r--r-- | src/helpers/Workspace.cpp | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/src/helpers/Workspace.cpp b/src/helpers/Workspace.cpp deleted file mode 100644 index ad8ae4ad..00000000 --- a/src/helpers/Workspace.cpp +++ /dev/null @@ -1,180 +0,0 @@ -#include "Workspace.hpp" -#include "../Compositor.hpp" - -CWorkspace::CWorkspace(int monitorID, std::string name, bool special) { - const auto PMONITOR = g_pCompositor->getMonitorFromID(monitorID); - - if (!PMONITOR) { - Debug::log(ERR, "Attempted a creation of CWorkspace with an invalid monitor?"); - return; - } - - m_iMonitorID = monitorID; - m_szName = name; - m_bIsSpecialWorkspace = special; - - m_vRenderOffset.m_pWorkspace = this; - m_vRenderOffset.create(AVARTYPE_VECTOR, special ? g_pConfigManager->getAnimationPropertyConfig("specialWorkspace") : g_pConfigManager->getAnimationPropertyConfig("workspaces"), - nullptr, AVARDAMAGE_ENTIRE); - m_fAlpha.m_pWorkspace = this; - m_fAlpha.create(AVARTYPE_FLOAT, special ? g_pConfigManager->getAnimationPropertyConfig("specialWorkspace") : g_pConfigManager->getAnimationPropertyConfig("workspaces"), - nullptr, AVARDAMAGE_ENTIRE); - m_fAlpha.setValueAndWarp(1.f); - - m_vRenderOffset.registerVar(); - m_fAlpha.registerVar(); - - const auto RULEFORTHIS = g_pConfigManager->getWorkspaceRuleFor(this); - if (RULEFORTHIS.defaultName.has_value()) - m_szName = RULEFORTHIS.defaultName.value(); - - g_pEventManager->postEvent({"createworkspace", m_szName}); - EMIT_HOOK_EVENT("createWorkspace", this); -} - -CWorkspace::~CWorkspace() { - m_vRenderOffset.unregister(); - - Debug::log(LOG, "Destroying workspace ID {}", m_iID); - - g_pEventManager->postEvent({"destroyworkspace", m_szName}); - EMIT_HOOK_EVENT("destroyWorkspace", this); -} - -void CWorkspace::startAnim(bool in, bool left, bool instant) { - const auto ANIMSTYLE = m_fAlpha.m_pConfig->pValues->internalStyle; - static auto* const PWORKSPACEGAP = (Hyprlang::INT* const*)g_pConfigManager->getConfigValuePtr("general:gaps_workspaces"); - - if (ANIMSTYLE.starts_with("slidefade")) { - const auto PMONITOR = g_pCompositor->getMonitorFromID(m_iMonitorID); - float movePerc = 100.f; - - if (ANIMSTYLE.find("%") != std::string::npos) { - try { - auto percstr = ANIMSTYLE.substr(ANIMSTYLE.find_last_of(' ') + 1); - movePerc = std::stoi(percstr.substr(0, percstr.length() - 1)); - } catch (std::exception& e) { Debug::log(ERR, "Error in startAnim: invalid percentage"); } - } - - m_fAlpha.setValueAndWarp(1.f); - m_vRenderOffset.setValueAndWarp(Vector2D(0, 0)); - - if (ANIMSTYLE.starts_with("slidefadevert")) { - if (in) { - m_fAlpha.setValueAndWarp(0.f); - m_vRenderOffset.setValueAndWarp(Vector2D(0, (left ? PMONITOR->vecSize.y : -PMONITOR->vecSize.y) * (movePerc / 100.f))); - m_fAlpha = 1.f; - m_vRenderOffset = Vector2D(0, 0); - } else { - m_fAlpha.setValueAndWarp(1.f); - m_fAlpha = 0.f; - m_vRenderOffset = Vector2D(0, (left ? -PMONITOR->vecSize.y : PMONITOR->vecSize.y) * (movePerc / 100.f)); - } - } else { - if (in) { - m_fAlpha.setValueAndWarp(0.f); - m_vRenderOffset.setValueAndWarp(Vector2D((left ? PMONITOR->vecSize.x : -PMONITOR->vecSize.x) * (movePerc / 100.f), 0)); - m_fAlpha = 1.f; - m_vRenderOffset = Vector2D(0, 0); - } else { - m_fAlpha.setValueAndWarp(1.f); - m_fAlpha = 0.f; - m_vRenderOffset = Vector2D((left ? -PMONITOR->vecSize.x : PMONITOR->vecSize.x) * (movePerc / 100.f), 0); - } - } - } else if (ANIMSTYLE == "fade") { - m_vRenderOffset.setValueAndWarp(Vector2D(0, 0)); // fix a bug, if switching from slide -> fade. - - if (in) { - m_fAlpha.setValueAndWarp(0.f); - m_fAlpha = 1.f; - } else { - m_fAlpha.setValueAndWarp(1.f); - m_fAlpha = 0.f; - } - } else if (ANIMSTYLE == "slidevert") { - // fallback is slide - const auto PMONITOR = g_pCompositor->getMonitorFromID(m_iMonitorID); - const auto YDISTANCE = PMONITOR->vecSize.y + **PWORKSPACEGAP; - - m_fAlpha.setValueAndWarp(1.f); // fix a bug, if switching from fade -> slide. - - if (in) { - m_vRenderOffset.setValueAndWarp(Vector2D(0, left ? YDISTANCE : -YDISTANCE)); - m_vRenderOffset = Vector2D(0, 0); - } else { - m_vRenderOffset = Vector2D(0, left ? -YDISTANCE : YDISTANCE); - } - } else { - // fallback is slide - const auto PMONITOR = g_pCompositor->getMonitorFromID(m_iMonitorID); - const auto XDISTANCE = PMONITOR->vecSize.x + **PWORKSPACEGAP; - - m_fAlpha.setValueAndWarp(1.f); // fix a bug, if switching from fade -> slide. - - if (in) { - m_vRenderOffset.setValueAndWarp(Vector2D(left ? XDISTANCE : -XDISTANCE, 0)); - m_vRenderOffset = Vector2D(0, 0); - } else { - m_vRenderOffset = Vector2D(left ? -XDISTANCE : XDISTANCE, 0); - } - } - - if (m_bIsSpecialWorkspace) { - // required for open/close animations - if (in) { - m_fAlpha.setValueAndWarp(0.f); - m_fAlpha = 1.f; - } else { - m_fAlpha.setValueAndWarp(1.f); - m_fAlpha = 0.f; - } - } - - if (instant) { - m_vRenderOffset.warp(); - m_fAlpha.warp(); - } -} - -void CWorkspace::setActive(bool on) { - ; // empty until https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/40 -} - -void CWorkspace::moveToMonitor(const int& id) { - ; // empty until https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/40 -} - -CWindow* CWorkspace::getLastFocusedWindow() { - if (!g_pCompositor->windowValidMapped(m_pLastFocusedWindow) || m_pLastFocusedWindow->m_iWorkspaceID != m_iID) - return nullptr; - - return m_pLastFocusedWindow; -} - -void CWorkspace::rememberPrevWorkspace(const CWorkspace* prev) { - if (!prev) { - m_sPrevWorkspace.iID = -1; - m_sPrevWorkspace.name = ""; - return; - } - - if (prev->m_iID == m_iID) { - Debug::log(LOG, "Tried to set prev workspace to the same as current one"); - return; - } - - m_sPrevWorkspace.iID = prev->m_iID; - m_sPrevWorkspace.name = prev->m_szName; -} - -std::string CWorkspace::getConfigName() { - if (m_bIsSpecialWorkspace) { - return "special:" + m_szName; - } - - if (m_iID > 0) - return std::to_string(m_iID); - - return "name:" + m_szName; -} |
