summaryrefslogtreecommitdiff
path: root/src/desktop/rule/layerRule/LayerRule.hpp
blob: 990796c1204cfe89374e161b7dbf91cb77843006 (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
#pragma once

#include "../Rule.hpp"
#include "../../DesktopTypes.hpp"
#include "LayerRuleEffectContainer.hpp"

namespace Desktop::Rule {
    class CLayerRule : public IRule {
      public:
        using storageType = CLayerRuleEffectContainer::storageType;

        CLayerRule(const std::string& name = "");
        virtual ~CLayerRule() = default;

        virtual eRuleType                                       type();

        void                                                    addEffect(storageType e, const std::string& result);
        const std::vector<std::pair<storageType, std::string>>& effects();

        bool                                                    matches(PHLLS w);

      private:
        std::vector<std::pair<storageType, std::string>> m_effects;
    };
};