From 81bf4eccba449bfe2b6adfb51260108aec710d4f Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Thu, 28 Aug 2025 11:20:29 +0200 Subject: input: Add fully configurable trackpad gestures (#11490) Adds configurable trackpad gestures --- src/managers/animation/AnimationManager.hpp | 58 +++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/managers/animation/AnimationManager.hpp (limited to 'src/managers/animation/AnimationManager.hpp') diff --git a/src/managers/animation/AnimationManager.hpp b/src/managers/animation/AnimationManager.hpp new file mode 100644 index 00000000..0631e7c7 --- /dev/null +++ b/src/managers/animation/AnimationManager.hpp @@ -0,0 +1,58 @@ +#pragma once + +#include +#include + +#include "../../defines.hpp" +#include "../../helpers/AnimatedVariable.hpp" +#include "../../desktop/DesktopTypes.hpp" +#include "../eventLoop/EventLoopTimer.hpp" + +class CHyprAnimationManager : public Hyprutils::Animation::CAnimationManager { + public: + CHyprAnimationManager(); + + void tick(); + virtual void scheduleTick(); + virtual void onTicked(); + + using SAnimationPropertyConfig = Hyprutils::Animation::SAnimationPropertyConfig; + template + void createAnimation(const VarType& v, PHLANIMVAR& pav, SP pConfig, eAVarDamagePolicy policy) { + constexpr const eAnimatedVarType EAVTYPE = typeToeAnimatedVarType; + const auto PAV = makeShared>(); + + PAV->create(EAVTYPE, sc(this), PAV, v); + PAV->setConfig(pConfig); + PAV->m_Context.eDamagePolicy = policy; + + pav = std::move(PAV); + } + + template + void createAnimation(const VarType& v, PHLANIMVAR& pav, SP pConfig, PHLWINDOW pWindow, eAVarDamagePolicy policy) { + createAnimation(v, pav, pConfig, policy); + pav->m_Context.pWindow = pWindow; + } + template + void createAnimation(const VarType& v, PHLANIMVAR& pav, SP pConfig, PHLWORKSPACE pWorkspace, eAVarDamagePolicy policy) { + createAnimation(v, pav, pConfig, policy); + pav->m_Context.pWorkspace = pWorkspace; + } + template + void createAnimation(const VarType& v, PHLANIMVAR& pav, SP pConfig, PHLLS pLayer, eAVarDamagePolicy policy) { + createAnimation(v, pav, pConfig, policy); + pav->m_Context.pLayer = pLayer; + } + + std::string styleValidInConfigVar(const std::string&, const std::string&); + + SP m_animationTimer; + + float m_lastTickTimeMs; + + private: + bool m_tickScheduled = false; +}; + +inline UP g_pAnimationManager; -- cgit v1.2.3