bspc_rust_lib/bspc/node/
modifier.rs

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}