Primitives
WidgetEvent
Event handling system for widgets with mouse and keyboard support.
Overview
The WidgetEvent primitive provides a unified event handling system for widgets, supporting both mouse and keyboard interactions.
Basic Usage
use ratkit::primitives::widget_event::{WidgetEvent, EventHandler};
use ratatui::crossterm::event::Event;
fn handle_events(event: Event) {
let widget_event = WidgetEvent::from(event);
match widget_event {
WidgetEvent::Click { x, y } => {
// Handle mouse click
}
WidgetEvent::Key(key) => {
// Handle key press
}
_ => {}
}
}Event Types
Supported event types:
- Click - Mouse click events
- DoubleClick - Double-click events
- Scroll - Scroll wheel events
- Key - Keyboard events
- Resize - Terminal resize events
- Focus - Focus change events
Event Handlers
Create reusable event handlers:
let handler = EventHandler::new()
.on_click(|x, y| println!("Clicked at ({}, {})", x, y))
.on_key(|key| println!("Key pressed: {:?}", key));