Skip to main content

appcui/ui/listview/
events.rs

1use std::any::TypeId;
2use crate::{system::Handle, ui::common::traits::EventProcessStatus};
3use super::Group;
4
5pub trait GenericListViewEvents {
6    fn on_current_item_changed(&mut self, _handle: Handle<()>, _type_id: TypeId) -> EventProcessStatus {
7        EventProcessStatus::Ignored
8    }
9    fn on_group_collapsed(&mut self, _handle: Handle<()>, _type_id: TypeId, _group: Group) -> EventProcessStatus {
10        EventProcessStatus::Ignored
11    }
12    fn on_group_expanded(&mut self, _handle: Handle<()>, _type_id: TypeId, _group: Group) -> EventProcessStatus {
13        EventProcessStatus::Ignored
14    }
15    fn on_selection_changed(&mut self, _handle: Handle<()>, _type_id: TypeId) -> EventProcessStatus {
16        EventProcessStatus::Ignored
17    }
18    fn on_item_action(&mut self, _handle: Handle<()>, _type_id: TypeId, _index: usize) -> EventProcessStatus {
19        EventProcessStatus::Ignored
20    }
21
22}
23
24#[derive(Copy,Clone)]
25pub(crate) enum ListViewEventTypes {
26    CurrentItemChanged,
27    GroupFoldedOrUnfolded(Group, bool),
28    SelectionChanged,
29    ItemAction(usize),
30}
31
32#[derive(Copy, Clone)]
33pub(crate) struct EventData {
34    pub(crate) event_type: ListViewEventTypes,
35    pub(crate) type_id: std::any::TypeId
36}