1use crate::bspc::modifier::Modifier;
2
3pub enum NodeModifier {
4 Id(String),
5
6 Focused,
7 NotFocused,
8 Active,
9 NotActive,
10 Atuomatic,
11 NotAutomatic,
12 Local,
13 NotLocal,
14 Leaf,
15 NotLeaf,
16 Window,
17 NotWindow,
18
19 Tiled,
20 NotTiled,
21 PseudoTiled,
22 NotPseudoTiled,
23 Floating,
24 NotFloating,
25 Fullscreen,
26 NotFullscreen,
27
28 SameClass,
29 NotSameClass,
30 DescendantOf,
31 NotDescendantOf,
32 AncestorOf,
33 NotAncestorOf,
34
35 Hidden,
36 NotHidden,
37 Sticky,
38 NotSticky,
39 Private,
40 NotPrivate,
41 Locked,
42 NotLocked,
43 Marked,
44 NotMarked,
45 Urgent,
46 NotUrgent,
47
48 Below,
49 NotBelow,
50 Normal,
51 NotNormal,
52 Above,
53 NotAbove,
54
55 Horizontal,
56 NotHorizontal,
57 Vertical,
58 NotVertical
59}
60
61impl Modifier for NodeModifier {
62 fn get_string(&self) -> String {
63 String::from(match self {
64 NodeModifier::Id(id) => id,
65
66 NodeModifier::Focused => ".focused",
67 NodeModifier::NotFocused => ".!focused",
68 NodeModifier::Active => ".active",
69 NodeModifier::NotActive => ".!active",
70 NodeModifier::Atuomatic => ".automatic",
71 NodeModifier::NotAutomatic => ".!automatic",
72 NodeModifier::Local => ".local",
73 NodeModifier::NotLocal => ".!local",
74 NodeModifier::Leaf => ".leaf",
75 NodeModifier::NotLeaf => ".!leaf",
76 NodeModifier::Window => ".window",
77 NodeModifier::NotWindow => ".!window",
78
79 NodeModifier::Tiled => ".tiled",
80 NodeModifier::NotTiled => ".!tiled",
81 NodeModifier::PseudoTiled => ".pseudo_tiled",
82 NodeModifier::NotPseudoTiled => ".!pseudo_tiled",
83 NodeModifier::Floating => ".floating",
84 NodeModifier::NotFloating => ".!floating",
85 NodeModifier::Fullscreen => ".fullscreen",
86 NodeModifier::NotFullscreen => ".!fullscreen",
87
88 NodeModifier::SameClass => ".same_class",
89 NodeModifier::NotSameClass => ".!same_class",
90 NodeModifier::DescendantOf => ".decendant_of",
91 NodeModifier::NotDescendantOf => ".!decendant_of",
92 NodeModifier::AncestorOf => ".ancestor_of",
93 NodeModifier::NotAncestorOf => ".!ancestor_of",
94
95 NodeModifier::Hidden => ".hidden",
96 NodeModifier::NotHidden => ".!hidden",
97 NodeModifier::Sticky => ".sticky",
98 NodeModifier::NotSticky => ".!sticky",
99 NodeModifier::Private => ".private",
100 NodeModifier::NotPrivate => ".!private",
101 NodeModifier::Locked => ".locked",
102 NodeModifier::NotLocked => ".!locked",
103 NodeModifier::Marked => ".marked",
104 NodeModifier::NotMarked => ".!marked",
105 NodeModifier::Urgent => ".urgent",
106 NodeModifier::NotUrgent => ".!urgent",
107
108 NodeModifier::Below => ".below",
109 NodeModifier::NotBelow => ".!below",
110 NodeModifier::Normal => ".normal",
111 NodeModifier::NotNormal => ".!normal",
112 NodeModifier::Above => ".above",
113 NodeModifier::NotAbove => ".!above",
114
115 NodeModifier::Horizontal => ".horizontal",
116 NodeModifier::NotHorizontal => ".!horizontal",
117 NodeModifier::Vertical => ".vertical",
118 NodeModifier::NotVertical => ".!vertical"
119 })
120 }
121}