blob: 46bfa20d64f52bc3e117cd98a105aadc26e0bf79 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
use bevy::prelude::*;
use downcast_rs::{impl_downcast, DowncastSync};
use ratatui::{layout::Rect, Frame};
use crate::input::events::TerminalInputEvent;
/// Components for this module
pub mod components;
/// Systems for this module
pub(crate) mod systems;
/// Trait which defines an interface for terminal widgets
pub trait TerminalWidget: DowncastSync {
/// Called every frame to render the widget
fn render(&mut self, frame: &mut Frame, rect: Rect);
/// Called when a terminal input event is invoked to update any state accordingly
fn handle_events(&mut self, _event: &TerminalInputEvent, _commands: &mut Commands) {}
}
impl_downcast!(sync TerminalWidget);
|