widget event handling into macro

This commit is contained in:
galister
2025-06-21 21:13:33 +09:00
parent 9759dff8b9
commit cd05818465
8 changed files with 86 additions and 155 deletions

View File

@@ -41,8 +41,12 @@ pub struct MouseWheelEvent {
pub device: usize,
}
pub struct InternalStateChangeEvent {
pub metadata: usize,
}
pub enum Event {
InternalStateChange,
InternalStateChange(InternalStateChangeEvent),
MouseDown(MouseDownEvent),
MouseLeave(MouseLeaveEvent),
MouseMotion(MouseMotionEvent),
@@ -117,11 +121,11 @@ impl<'a> WidgetCallback<'a> for CallbackData<'a> {
}
}
pub type MouseEnterCallback = Box<dyn Fn(&mut CallbackData)>;
pub type MouseLeaveCallback = Box<dyn Fn(&mut CallbackData)>;
pub type MouseEnterCallback = Box<dyn Fn(&mut CallbackData, ())>;
pub type MouseLeaveCallback = Box<dyn Fn(&mut CallbackData, ())>;
pub type MousePressCallback = Box<dyn Fn(&mut CallbackData, MouseButton)>;
pub type MouseReleaseCallback = Box<dyn Fn(&mut CallbackData, MouseButton)>;
pub type InternalStateChangeCallback = Box<dyn Fn(&mut CallbackData)>;
pub type InternalStateChangeCallback = Box<dyn Fn(&mut CallbackData, usize)>;
pub enum EventListener {
MouseEnter(MouseEnterCallback),
@@ -129,4 +133,4 @@ pub enum EventListener {
MousePress(MousePressCallback),
MouseRelease(MouseReleaseCallback),
InternalStateChange(InternalStateChangeCallback),
}
}