Skip to main content

jellyflow_runtime/io/config/state/views/
keyboard.rs

1use crate::io::config::keys::NodeGraphDeleteKey;
2use crate::io::config::types::NodeGraphNudgeStepMode;
3
4use super::super::NodeGraphInteractionState;
5
6/// Keyboard accessibility and nudge settings resolved for runtime use.
7#[derive(Debug, Clone, Copy, PartialEq)]
8pub struct NodeGraphKeyboardInteraction {
9    pub nodes_focusable: bool,
10    pub edges_focusable: bool,
11    pub delete_key: NodeGraphDeleteKey,
12    pub nudge_step_mode: NodeGraphNudgeStepMode,
13    pub nudge_step_px: f32,
14    pub nudge_fast_step_px: f32,
15    pub disable_keyboard_a11y: bool,
16}
17
18impl NodeGraphInteractionState {
19    pub fn keyboard_interaction(&self) -> NodeGraphKeyboardInteraction {
20        NodeGraphKeyboardInteraction {
21            nodes_focusable: self.nodes_focusable,
22            edges_focusable: self.edges_focusable,
23            delete_key: self.delete_key,
24            nudge_step_mode: self.nudge_step_mode,
25            nudge_step_px: self.nudge_step_px,
26            nudge_fast_step_px: self.nudge_fast_step_px,
27            disable_keyboard_a11y: self.disable_keyboard_a11y,
28        }
29    }
30}