tui_treelistview/
action.rs1#[derive(Clone, Copy, Debug, PartialEq, Eq)]
3pub enum TreeViewAction {
4 SelectPrev,
5 SelectNext,
6 SelectParent,
7 SelectFirstChild,
8 Expand,
9 Collapse,
10 ExpandOrSelectFirstChild,
11 CollapseOrSelectParent,
12 ToggleNode,
13 ToggleRecursive,
14 ExpandAll,
15 CollapseAll,
16 ToggleGuides,
17 ToggleMark,
18 SelectFirst,
19 SelectLast,
20 SelectColumnLeft,
21 SelectColumnRight,
22 SelectFirstColumn,
23 SelectLastColumn,
24 ScrollViewUp,
25 ScrollViewDown,
26 ScrollLeft,
27 ScrollRight,
28}
29
30#[derive(Clone, Copy, Debug, PartialEq, Eq)]
32pub enum TreeEditAction {
33 ReorderUp,
34 ReorderDown,
35 AddChild,
36 Rename,
37 Detach,
38 Delete,
39 Yank,
40 Paste,
41}
42
43#[derive(Clone, Copy, Debug, PartialEq, Eq)]
45pub enum TreeAction<Custom = ()> {
46 View(TreeViewAction),
47 Edit(TreeEditAction),
48 Custom(Custom),
49}
50
51impl<C> From<TreeViewAction> for TreeAction<C> {
52 fn from(action: TreeViewAction) -> Self {
53 Self::View(action)
54 }
55}
56
57impl<C> From<TreeEditAction> for TreeAction<C> {
58 fn from(action: TreeEditAction) -> Self {
59 Self::Edit(action)
60 }
61}
62
63#[derive(Clone, Copy, Debug, PartialEq, Eq)]
65pub enum TreeEditRequest<Id> {
66 ReorderUp { node: Id, parent: Id },
67 ReorderDown { node: Id, parent: Id },
68 AddChild { parent: Id },
69 Rename { node: Id },
70 Detach { node: Id, parent: Id },
71 Delete { node: Id },
72 Yank { node: Id },
73 Paste { parent: Id },
74}
75
76#[derive(Clone, Copy, Debug, PartialEq, Eq)]
78pub enum TreeIntent<Id, Custom = ()> {
79 LoadChildren(Id),
80 Edit(TreeEditRequest<Id>),
81 Custom(Custom),
82}
83
84#[derive(Clone, Copy, Debug, PartialEq, Eq)]
86pub enum TreeEvent<Id, Custom = ()> {
87 Changed,
89 Unchanged,
91 Intent(TreeIntent<Id, Custom>),
93}