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
30
31
32
33
34
35
36
37
38
39
40
use crate::items::ItemRc;
#[repr(C)]
#[derive(PartialEq, Eq, Copy, Clone, strum::Display)]
#[strum(serialize_all = "kebab-case")]
pub enum AccessibleStringProperty {
Checkable,
Checked,
DelegateFocus,
Description,
Label,
Value,
ValueMaximum,
ValueMinimum,
ValueStep,
}
pub fn accessible_descendents(root_item: &ItemRc, descendents: &mut impl Extend<ItemRc>) {
let mut child = root_item.first_child();
while let Some(c) = &child {
if c.is_accessible() {
descendents.extend(core::iter::once(c.clone()));
} else {
accessible_descendents(c, descendents)
}
child = c.next_sibling();
}
}