freya_core/
platform_state.rs

1use torin::prelude::Size2D;
2
3use crate::{
4    accessibility::id::AccessibilityId,
5    prelude::{
6        State,
7        consume_root_context,
8    },
9};
10
11#[derive(Clone, Copy, PartialEq, Eq, Default, Debug, Hash)]
12pub enum NavigationMode {
13    #[default]
14    NotKeyboard,
15
16    Keyboard,
17}
18
19#[derive(Clone)]
20pub struct PlatformState {
21    pub focused_accessibility_id: State<AccessibilityId>,
22    pub focused_accessibility_node: State<accesskit::Node>,
23    pub root_size: State<Size2D>,
24    pub navigation_mode: State<NavigationMode>,
25}
26
27impl PlatformState {
28    pub fn get() -> Self {
29        consume_root_context()
30    }
31}