mirror of
https://github.com/hyprwm/Hyprland
synced 2025-01-31 19:09:51 +01:00
68 lines
No EOL
1.8 KiB
C++
68 lines
No EOL
1.8 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <cstdint>
|
|
#include "Rule.hpp"
|
|
|
|
class CWindowRule {
|
|
public:
|
|
CWindowRule(const std::string& rule, const std::string& value, bool isV2 = false, bool isExecRule = false);
|
|
|
|
enum eRuleType : uint8_t {
|
|
RULE_INVALID = 0,
|
|
RULE_FLOAT,
|
|
RULE_FULLSCREEN,
|
|
RULE_MAXIMIZE,
|
|
RULE_NOINITIALFOCUS,
|
|
RULE_PIN,
|
|
RULE_STAYFOCUSED,
|
|
RULE_TILE,
|
|
RULE_RENDERUNFOCUSED,
|
|
RULE_ANIMATION,
|
|
RULE_BORDERCOLOR,
|
|
RULE_CENTER,
|
|
RULE_FULLSCREENSTATE,
|
|
RULE_GROUP,
|
|
RULE_IDLEINHIBIT,
|
|
RULE_MAXSIZE,
|
|
RULE_MINSIZE,
|
|
RULE_MONITOR,
|
|
RULE_MOVE,
|
|
RULE_OPACITY,
|
|
RULE_PLUGIN,
|
|
RULE_PSEUDO,
|
|
RULE_SIZE,
|
|
RULE_SUPPRESSEVENT,
|
|
RULE_TAG,
|
|
RULE_WORKSPACE,
|
|
RULE_PROP,
|
|
};
|
|
|
|
eRuleType ruleType = RULE_INVALID;
|
|
|
|
const std::string szValue;
|
|
const std::string szRule;
|
|
const bool v2 = false;
|
|
const bool execRule = false;
|
|
|
|
std::string szTitle;
|
|
std::string szClass;
|
|
std::string szInitialTitle;
|
|
std::string szInitialClass;
|
|
std::string szTag;
|
|
int bX11 = -1; // -1 means "ANY"
|
|
int bFloating = -1;
|
|
int bFullscreen = -1;
|
|
int bPinned = -1;
|
|
int bFocus = -1;
|
|
std::string szFullscreenState = ""; // empty means any
|
|
std::string szOnWorkspace = ""; // empty means any
|
|
std::string szWorkspace = ""; // empty means any
|
|
|
|
// precompiled regexes
|
|
CRuleRegexContainer rTitle;
|
|
CRuleRegexContainer rClass;
|
|
CRuleRegexContainer rInitialTitle;
|
|
CRuleRegexContainer rInitialClass;
|
|
CRuleRegexContainer rV1Regex;
|
|
}; |