appcui/ui/listview/
events.rs1use 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}