flow_rs_core/selection/modes.rs
1//! Selection modes and related enums
2
3/// Selection modes for different interaction patterns
4#[derive(Debug, Clone, Copy, PartialEq, Default)]
5pub enum SelectionMode {
6 /// Single node selection (default)
7 #[default]
8 Single,
9 /// Multi-node selection with Ctrl+Click
10 Multi,
11 /// Rectangle selection drag
12 Rectangle,
13}
14
15/// Direction for keyboard navigation
16#[derive(Debug, Clone, Copy, PartialEq)]
17pub enum NavigationDirection {
18 /// Move to next node
19 Next,
20 /// Move to previous node
21 Previous,
22}
23
24/// Keyboard shortcuts for selection management
25#[derive(Debug, Clone, Copy, PartialEq)]
26pub enum KeyboardShortcut {
27 /// Select all nodes (Ctrl+A)
28 SelectAll,
29 /// Clear selection (Escape)
30 Escape,
31 /// Navigate right (Right Arrow)
32 ArrowRight,
33 /// Navigate left (Left Arrow)
34 ArrowLeft,
35 /// Navigate up (Up Arrow)
36 ArrowUp,
37 /// Navigate down (Down Arrow)
38 ArrowDown,
39 /// Delete selected nodes (Delete)
40 Delete,
41}