Skip to main content

appcui/ui/treeview/
events.rs

1use 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}