Refactor InputState functions for AccessKit actions
This commit is contained in:
parent
9e10822172
commit
b65fd40f8c
1 changed files with 8 additions and 25 deletions
|
@ -395,47 +395,30 @@ impl InputState {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "accesskit")]
|
#[cfg(feature = "accesskit")]
|
||||||
pub fn accesskit_action_request(
|
pub fn accesskit_action_requests(
|
||||||
&self,
|
&self,
|
||||||
id: crate::Id,
|
id: crate::Id,
|
||||||
action: accesskit::Action,
|
action: accesskit::Action,
|
||||||
) -> Option<&accesskit::ActionRequest> {
|
) -> impl Iterator<Item = &accesskit::ActionRequest> {
|
||||||
let accesskit_id = id.accesskit_id();
|
let accesskit_id = id.accesskit_id();
|
||||||
for event in &self.events {
|
self.events.iter().filter_map(move |event| {
|
||||||
if let Event::AccessKitActionRequest(request) = event {
|
if let Event::AccessKitActionRequest(request) = event {
|
||||||
if request.target == accesskit_id && request.action == action {
|
if request.target == accesskit_id && request.action == action {
|
||||||
return Some(request);
|
return Some(request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
None
|
||||||
None
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "accesskit")]
|
#[cfg(feature = "accesskit")]
|
||||||
pub fn has_accesskit_action_request(&self, id: crate::Id, action: accesskit::Action) -> bool {
|
pub fn has_accesskit_action_request(&self, id: crate::Id, action: accesskit::Action) -> bool {
|
||||||
self.accesskit_action_request(id, action).is_some()
|
self.accesskit_action_requests(id, action).next().is_some()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "accesskit")]
|
#[cfg(feature = "accesskit")]
|
||||||
pub fn num_accesskit_action_requests(
|
pub fn num_accesskit_action_requests(&self, id: crate::Id, action: accesskit::Action) -> usize {
|
||||||
&self,
|
self.accesskit_action_requests(id, action).count()
|
||||||
id: crate::Id,
|
|
||||||
desired_action: accesskit::Action,
|
|
||||||
) -> usize {
|
|
||||||
let accesskit_id = id.accesskit_id();
|
|
||||||
self.events
|
|
||||||
.iter()
|
|
||||||
.filter(|event| {
|
|
||||||
matches!(
|
|
||||||
event,
|
|
||||||
Event::AccessKitActionRequest(accesskit::ActionRequest {
|
|
||||||
target,
|
|
||||||
action,
|
|
||||||
..
|
|
||||||
}) if *target == accesskit_id && *action == desired_action
|
|
||||||
)
|
|
||||||
})
|
|
||||||
.count()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue