summaryrefslogtreecommitdiff
path: root/src/config/shared/animation/AnimationTree.hpp
blob: 301e09f681b55ebdd531e27962de47814f42da58 (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
#pragma once

#include <string>

#include "../../../helpers/memory/Memory.hpp"

#include <hyprutils/animation/AnimationConfig.hpp>

namespace Config {
    class CAnimationTreeController {
      public:
        CAnimationTreeController();

        const std::unordered_map<std::string, SP<Hyprutils::Animation::SAnimationPropertyConfig>>& getAnimationConfig();
        SP<Hyprutils::Animation::SAnimationPropertyConfig>                                         getAnimationPropertyConfig(const std::string&);

        //
        void reset();

        //
        void setConfigForNode(const std::string& name, bool enabled, float speed, const std::string& bezier, const std::string& style = "");
        bool nodeExists(const std::string& name);

      private:
        Hyprutils::Animation::CAnimationConfigTree m_animationTree;
    };

    UP<CAnimationTreeController>& animationTree();
};