zng_wgt_access/
events.rs
1use zng_app::access::*;
2use zng_view_api::access::AccessCmdName;
3use zng_wgt::prelude::*;
4
5event_property! {
6 pub fn access_click {
10 event: ACCESS_CLICK_EVENT,
11 args: AccessClickArgs,
12 with: access_click,
13 }
14
15 pub fn access_expander {
17 event: ACCESS_EXPANDER_EVENT,
18 args: AccessExpanderArgs,
19 with: access_expander,
20 }
21
22 pub fn access_increment {
24 event: ACCESS_INCREMENT_EVENT,
25 args: AccessIncrementArgs,
26 with: access_increment,
27 }
28
29 pub fn access_tooltip {
33 event: ACCESS_TOOLTIP_EVENT,
34 args: AccessToolTipArgs,
35 with: access_tooltip,
36 }
37
38 pub fn access_scroll {
42 event: ACCESS_SCROLL_EVENT,
43 args: AccessScrollArgs,
44 with: access_scroll,
45 }
46
47 pub fn access_text {
51 event: ACCESS_TEXT_EVENT,
52 args: AccessTextArgs,
53 with: access_text,
54 }
55
56 pub fn access_number {
58 event: ACCESS_NUMBER_EVENT,
59 args: AccessNumberArgs,
60 with: access_number,
61 }
62
63 pub fn access_selection {
67 event: ACCESS_SELECTION_EVENT,
68 args: AccessSelectionArgs,
69 with: access_selection,
70 }
71}
72
73fn access_click(child: impl UiNode, _: bool) -> impl UiNode {
74 access_capable(child, AccessCmdName::Click)
75}
76
77fn access_expander(child: impl UiNode, _: bool) -> impl UiNode {
78 access_capable(child, AccessCmdName::SetExpanded)
79}
80
81fn access_increment(child: impl UiNode, _: bool) -> impl UiNode {
82 access_capable(child, AccessCmdName::Increment)
83}
84
85fn access_tooltip(child: impl UiNode, _: bool) -> impl UiNode {
86 access_capable(child, AccessCmdName::SetToolTipVis)
87}
88
89fn access_scroll(child: impl UiNode, _: bool) -> impl UiNode {
90 access_capable(child, AccessCmdName::Scroll)
91}
92
93fn access_text(child: impl UiNode, _: bool) -> impl UiNode {
94 match_node(child, move |_, op| {
95 if let UiNodeOp::Info { info } = op {
96 if let Some(mut access) = info.access() {
97 access.push_command(AccessCmdName::SetString);
98 access.push_command(AccessCmdName::ReplaceSelectedText);
99 }
100 }
101 })
102}
103
104fn access_number(child: impl UiNode, _: bool) -> impl UiNode {
105 access_capable(child, AccessCmdName::SetNumber)
106}
107
108fn access_selection(child: impl UiNode, _: bool) -> impl UiNode {
109 access_capable(child, AccessCmdName::SelectText)
110}
111
112fn access_capable(child: impl UiNode, cmd: AccessCmdName) -> impl UiNode {
113 match_node(child, move |_, op| {
114 if let UiNodeOp::Info { info } = op {
115 if let Some(mut access) = info.access() {
116 access.push_command(cmd)
117 }
118 }
119 })
120}