diff --git a/src/ui.rs b/src/ui.rs index 37cbe49..f8d6fdb 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -4,6 +4,7 @@ mod list; mod room; mod rooms; mod util; +mod widget; use std::sync::{Arc, Weak}; use std::time::Duration; diff --git a/src/ui/widget.rs b/src/ui/widget.rs new file mode 100644 index 0000000..b422beb --- /dev/null +++ b/src/ui/widget.rs @@ -0,0 +1,9 @@ +use async_trait::async_trait; +use toss::frame::{Frame, Pos, Size}; + +#[async_trait] +pub trait Widget { + fn size(max_width: Option, max_height: Option) -> Size; + + async fn render(frame: &mut Frame, pos: Pos, size: Size); +}