appcui/ui/treeview/
events.rs1use std::any::TypeId;
2use crate::{system::Handle, ui::common::traits::EventProcessStatus};
3
4pub trait GenericTreeViewEvents {
5 fn on_current_item_changed(&mut self, _handle: Handle<()>, _type_id: TypeId, _current_item: Handle<()>) -> EventProcessStatus {
6 EventProcessStatus::Ignored
7 }
8 fn on_item_collapsed(&mut self, _handle: Handle<()>, _type_id: TypeId, _item: Handle<()>, _recursive: bool) -> EventProcessStatus {
9 EventProcessStatus::Ignored
10 }
11 fn on_item_expanded(&mut self, _handle: Handle<()>, _type_id: TypeId, _item: Handle<()>, _recursive: bool) -> EventProcessStatus {
12 EventProcessStatus::Ignored
13 }
14 fn on_selection_changed(&mut self, _handle: Handle<()>, _type_id: TypeId) -> EventProcessStatus {
15 EventProcessStatus::Ignored
16 }
17 fn on_item_action(&mut self, _handle: Handle<()>, _type_id: TypeId, _current_item: Handle<()>) -> EventProcessStatus {
18 EventProcessStatus::Ignored
19 }
20
21}
22
23#[derive(Copy,Clone)]
24pub(crate) enum TreeViewEventTypes {
25 CurrentItemChanged(Handle<()>),
26 ItemCollapsed(Handle<()>, bool),
27 ItemExpanded(Handle<()>, bool),
28 ItemAction(Handle<()>),
29 SelectionChanged,
30}
31
32#[derive(Copy, Clone)]
33pub(crate) struct EventData {
34 pub(crate) event_type: TreeViewEventTypes,
35 pub(crate) type_id: std::any::TypeId
36}