22 lines
679 B
Rust
22 lines
679 B
Rust
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);
|