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}