mirror of
https://codeberg.org/unspeaker/tengri.git
synced 2025-12-06 03:36:42 +01:00
- output: impl Layout for Measure, FieldH, FieldV - tui: enable #[feature(trait_alias)] - tui: define some trait aliases
This commit is contained in:
parent
90fc869e14
commit
731f4a971e
13 changed files with 166 additions and 147 deletions
|
|
@ -1,4 +1,5 @@
|
|||
#![feature(type_changing_struct_update)]
|
||||
#![feature(trait_alias)]
|
||||
#[cfg(test)] mod tui_test;
|
||||
mod tui_engine; pub use self::tui_engine::*;
|
||||
mod tui_content; pub use self::tui_content::*;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,12 @@
|
|||
use crate::*;
|
||||
|
||||
impl<T: TuiContent, U: TuiContent> Draw<TuiOut> for FieldH<ItemTheme, T, U> {
|
||||
fn draw (&self, to: &mut TuiOut) { to.place(&self.content()) }
|
||||
}
|
||||
impl<T: TuiContent, U: TuiContent> Draw<TuiOut> for FieldV<ItemTheme, T, U> {
|
||||
fn draw (&self, to: &mut TuiOut) { to.place(&self.content()) }
|
||||
}
|
||||
|
||||
// TODO:
|
||||
pub struct Field<T, U> {
|
||||
pub direction: Direction,
|
||||
|
|
|
|||
|
|
@ -73,12 +73,18 @@ impl Tui {
|
|||
}
|
||||
}
|
||||
|
||||
pub trait TuiRun<R: Draw<TuiOut> + Handle<TuiIn> + 'static> {
|
||||
pub trait TuiDraw = Draw<TuiOut>;
|
||||
pub trait TuiLayout = Layout<TuiOut>;
|
||||
pub trait TuiContent = Content<TuiOut>;
|
||||
pub trait TuiHandle = Handle<TuiIn>;
|
||||
pub trait TuiWidget = TuiDraw + TuiHandle;
|
||||
|
||||
pub trait TuiRun<T: TuiWidget + 'static> {
|
||||
/// Run an app in the main loop.
|
||||
fn run (&self, state: &Arc<RwLock<R>>) -> Usually<()>;
|
||||
fn run (&self, state: &Arc<RwLock<T>>) -> Usually<()>;
|
||||
}
|
||||
|
||||
impl<T: Draw<TuiOut> + Handle<TuiIn> + Send + Sync + 'static> TuiRun<T> for Arc<RwLock<Tui>> {
|
||||
impl<T: TuiWidget + Send + Sync + 'static> TuiRun<T> for Arc<RwLock<Tui>> {
|
||||
fn run (&self, state: &Arc<RwLock<T>>) -> Usually<()> {
|
||||
let _input_thread = TuiIn::run_input(self, state, Duration::from_millis(100));
|
||||
self.write().unwrap().setup()?;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue