From 11a4d24d524cecdb18e60da896fd16e1173ecfa9 Mon Sep 17 00:00:00 2001 From: ClementTsang Date: Sun, 2 Jan 2022 22:47:50 -0500 Subject: [PATCH] Rename view_context to build_context --- src/app.rs | 4 ++-- src/app/layout_manager.rs | 12 ++++++------ src/tuine/application.rs | 4 ++-- src/tuine/component/base/mod.rs | 3 +++ src/tuine/component/base/shortcut.rs | 2 +- src/tuine/component/base/text_table/mod.rs | 8 ++++---- src/tuine/component/mod.rs | 9 --------- src/tuine/component/stateful.rs | 4 ++-- src/tuine/component/widget/battery_table.rs | 2 +- src/tuine/component/widget/cpu_graph.rs | 2 +- src/tuine/component/widget/cpu_simple.rs | 2 +- src/tuine/component/widget/disk_table.rs | 4 ++-- src/tuine/component/widget/mem_graph.rs | 2 +- src/tuine/component/widget/mem_simple.rs | 2 +- src/tuine/component/widget/mod.rs | 4 ++-- src/tuine/component/widget/net_graph.rs | 2 +- src/tuine/component/widget/net_simple.rs | 2 +- src/tuine/component/widget/process_table.rs | 2 +- src/tuine/component/widget/simple_table.rs | 4 ++-- src/tuine/component/widget/temp_table.rs | 4 ++-- .../context/{view_context.rs => build_context.rs} | 4 ++-- src/tuine/context/mod.rs | 4 ++-- src/tuine/runtime.rs | 4 ++-- 23 files changed, 42 insertions(+), 48 deletions(-) rename src/tuine/context/{view_context.rs => build_context.rs} (97%) diff --git a/src/app.rs b/src/app.rs index a810b9b8..16a1da1c 100644 --- a/src/app.rs +++ b/src/app.rs @@ -30,7 +30,7 @@ use crate::{ canvas::Painter, constants, data_conversion::ConvertedData, - tuine::{Application, Element, Status, ViewContext}, + tuine::{Application, Element, Status, BuildContext}, units::data_units::DataUnit, Pid, }; @@ -251,7 +251,7 @@ impl Application for AppState { self.terminator.load(SeqCst) } - fn view<'b>(&mut self, ctx: &mut ViewContext<'_>) -> Element { + fn view<'b>(&mut self, ctx: &mut BuildContext<'_>) -> Element { match self.current_screen { CurrentScreen::Main => { // The main screen. diff --git a/src/app/layout_manager.rs b/src/app/layout_manager.rs index fad7343e..b7348d35 100644 --- a/src/app/layout_manager.rs +++ b/src/app/layout_manager.rs @@ -150,7 +150,7 @@ pub struct WidgetLayoutRoot { impl WidgetLayoutRoot { pub fn build( - &self, ctx: &mut ViewContext<'_>, app_state: &AppState, data: &mut ConvertedData<'_>, + &self, ctx: &mut BuildContext<'_>, app_state: &AppState, data: &mut ConvertedData<'_>, ) -> Element { Flex::column_with_children( self.children @@ -186,7 +186,7 @@ pub enum WidgetLayoutNode { impl WidgetLayoutNode { fn new_row( - ctx: &mut ViewContext<'_>, app_state: &AppState, data: &mut ConvertedData<'_>, + ctx: &mut BuildContext<'_>, app_state: &AppState, data: &mut ConvertedData<'_>, children: &[WidgetLayoutNode], parent_ratio: u16, ) -> FlexElement { FlexElement::with_flex( @@ -201,7 +201,7 @@ impl WidgetLayoutNode { } fn new_col( - ctx: &mut ViewContext<'_>, app_state: &AppState, data: &mut ConvertedData<'_>, + ctx: &mut BuildContext<'_>, app_state: &AppState, data: &mut ConvertedData<'_>, children: &[WidgetLayoutNode], parent_ratio: u16, ) -> FlexElement { FlexElement::with_flex( @@ -216,7 +216,7 @@ impl WidgetLayoutNode { } fn new_carousel( - ctx: &mut ViewContext<'_>, app_state: &AppState, data: &mut ConvertedData<'_>, + ctx: &mut BuildContext<'_>, app_state: &AppState, data: &mut ConvertedData<'_>, children: &[BottomWidgetType], selected: bool, ) -> FlexElement { // FIXME: Carousel! @@ -231,7 +231,7 @@ impl WidgetLayoutNode { } fn make_element( - ctx: &mut ViewContext<'_>, app_state: &AppState, data: &mut ConvertedData<'_>, + ctx: &mut BuildContext<'_>, app_state: &AppState, data: &mut ConvertedData<'_>, widget_type: &BottomWidgetType, selected: bool, ) -> Element { let painter = &app_state.painter; @@ -270,7 +270,7 @@ impl WidgetLayoutNode { } pub fn build( - &self, ctx: &mut ViewContext<'_>, app_state: &AppState, data: &mut ConvertedData<'_>, + &self, ctx: &mut BuildContext<'_>, app_state: &AppState, data: &mut ConvertedData<'_>, ) -> FlexElement { match self { WidgetLayoutNode::Row { diff --git a/src/tuine/application.rs b/src/tuine/application.rs index dbe629ee..91450312 100644 --- a/src/tuine/application.rs +++ b/src/tuine/application.rs @@ -4,7 +4,7 @@ use tui::Terminal; use super::{ runtime::{self, RuntimeEvent}, - Element, Event, Status, ViewContext, + Element, Event, Status, BuildContext, }; /// An alias to the [`tui::backend::CrosstermBackend`] writing to [`std::io::Stdout`]. @@ -22,7 +22,7 @@ pub trait Application: Sized { fn is_terminated(&self) -> bool; /// Creates the user interface. - fn view<'b>(&mut self, ctx: &mut ViewContext<'_>) -> Element; + fn view<'b>(&mut self, ctx: &mut BuildContext<'_>) -> Element; /// To run upon stopping the application. fn destructor(&mut self) {} diff --git a/src/tuine/component/base/mod.rs b/src/tuine/component/base/mod.rs index ba95516d..a3dfa5d0 100644 --- a/src/tuine/component/base/mod.rs +++ b/src/tuine/component/base/mod.rs @@ -24,3 +24,6 @@ pub use padding::*; pub mod time_graph; pub use time_graph::TimeGraph; + +pub mod focus; +pub use focus::*; diff --git a/src/tuine/component/base/shortcut.rs b/src/tuine/component/base/shortcut.rs index 1e485670..812a3d63 100644 --- a/src/tuine/component/base/shortcut.rs +++ b/src/tuine/component/base/shortcut.rs @@ -145,7 +145,7 @@ where type ComponentState = ShortcutState; - fn build(ctx: &mut crate::tuine::ViewContext<'_>, props: Self::Properties) -> Self { + fn build(ctx: &mut crate::tuine::BuildContext<'_>, props: Self::Properties) -> Self { let (key, state) = ctx.register_and_mut_state::<_, Self::ComponentState>(Location::caller()); let mut forest: FxHashMap, bool> = FxHashMap::default(); diff --git a/src/tuine/component/base/text_table/mod.rs b/src/tuine/component/base/text_table/mod.rs index 0c911d8b..b29338e8 100644 --- a/src/tuine/component/base/text_table/mod.rs +++ b/src/tuine/component/base/text_table/mod.rs @@ -211,7 +211,7 @@ impl StatefulComponent for TextTable { type ComponentState = TextTableState; - fn build(ctx: &mut crate::tuine::ViewContext<'_>, mut props: Self::Properties) -> Self { + fn build(ctx: &mut crate::tuine::BuildContext<'_>, mut props: Self::Properties) -> Self { let sort = props.sort; let (key, state) = ctx.register_and_mut_state_with_default::<_, Self::ComponentState, _>( Location::caller(), @@ -372,15 +372,15 @@ impl TmpComponent for TextTable { #[cfg(test)] mod tests { use crate::tuine::{ - text_table::SortType, StateMap, StatefulComponent, TextTableProps, ViewContext, + text_table::SortType, StateMap, StatefulComponent, TextTableProps, BuildContext, }; use super::{DataRow, TextTable}; type Message = (); - fn ctx<'a>(map: &'a mut StateMap) -> ViewContext<'a> { - ViewContext::new(map) + fn ctx<'a>(map: &'a mut StateMap) -> BuildContext<'a> { + BuildContext::new(map) } #[test] diff --git a/src/tuine/component/mod.rs b/src/tuine/component/mod.rs index 90713c5e..74946505 100644 --- a/src/tuine/component/mod.rs +++ b/src/tuine/component/mod.rs @@ -22,15 +22,6 @@ use super::{Bounds, DrawContext, Element, Event, LayoutNode, Size, StateContext, #[allow(unused_variables)] #[enum_dispatch] pub trait TmpComponent { - /// Builds as component into an [`Element`](super::Element). - #[track_caller] - fn build(self, ctx: ()) -> Element - where - Self: Sized, - { - todo!() - } - /// Draws the component. fn draw( &mut self, state_ctx: &mut StateContext<'_>, draw_ctx: &DrawContext<'_>, diff --git a/src/tuine/component/stateful.rs b/src/tuine/component/stateful.rs index 62b89557..a405e7a3 100644 --- a/src/tuine/component/stateful.rs +++ b/src/tuine/component/stateful.rs @@ -1,4 +1,4 @@ -use crate::tuine::{State, StateContext, ViewContext}; +use crate::tuine::{State, StateContext, BuildContext}; use super::TmpComponent; @@ -11,5 +11,5 @@ pub trait StatefulComponent: TmpComponent { type ComponentState: State; #[track_caller] - fn build(ctx: &mut ViewContext<'_>, props: Self::Properties) -> Self; + fn build(ctx: &mut BuildContext<'_>, props: Self::Properties) -> Self; } diff --git a/src/tuine/component/widget/battery_table.rs b/src/tuine/component/widget/battery_table.rs index c1bd7e50..35b488a9 100644 --- a/src/tuine/component/widget/battery_table.rs +++ b/src/tuine/component/widget/battery_table.rs @@ -7,7 +7,7 @@ pub struct BatteryTable {} impl super::AppWidget for BatteryTable { fn build( - ctx: &mut crate::tuine::ViewContext<'_>, painter: &crate::canvas::Painter, + ctx: &mut crate::tuine::BuildContext<'_>, painter: &crate::canvas::Painter, config: &crate::app::AppConfig, data: &mut crate::data_conversion::ConvertedData<'_>, ) -> Self { Self {} diff --git a/src/tuine/component/widget/cpu_graph.rs b/src/tuine/component/widget/cpu_graph.rs index 18e240b0..35003d6d 100644 --- a/src/tuine/component/widget/cpu_graph.rs +++ b/src/tuine/component/widget/cpu_graph.rs @@ -8,7 +8,7 @@ pub struct CpuGraph {} impl super::AppWidget for CpuGraph { fn build( - ctx: &mut crate::tuine::ViewContext<'_>, painter: &crate::canvas::Painter, + ctx: &mut crate::tuine::BuildContext<'_>, painter: &crate::canvas::Painter, config: &crate::app::AppConfig, data: &mut crate::data_conversion::ConvertedData<'_>, ) -> Self { Self {} diff --git a/src/tuine/component/widget/cpu_simple.rs b/src/tuine/component/widget/cpu_simple.rs index 79456b34..1ab4ed2c 100644 --- a/src/tuine/component/widget/cpu_simple.rs +++ b/src/tuine/component/widget/cpu_simple.rs @@ -9,7 +9,7 @@ pub struct CpuSimple {} impl super::AppWidget for CpuSimple { fn build( - ctx: &mut crate::tuine::ViewContext<'_>, painter: &crate::canvas::Painter, + ctx: &mut crate::tuine::BuildContext<'_>, painter: &crate::canvas::Painter, config: &crate::app::AppConfig, data: &mut crate::data_conversion::ConvertedData<'_>, ) -> Self { Self {} diff --git a/src/tuine/component/widget/disk_table.rs b/src/tuine/component/widget/disk_table.rs index fdbfba92..a71ff938 100644 --- a/src/tuine/component/widget/disk_table.rs +++ b/src/tuine/component/widget/disk_table.rs @@ -4,7 +4,7 @@ use crate::{ data_conversion::ConvertedData, tuine::{ Bounds, DrawContext, LayoutNode, SimpleTable, Size, StateContext, Status, TmpComponent, - ViewContext, + BuildContext, }, }; @@ -21,7 +21,7 @@ impl DiskTable {} impl AppWidget for DiskTable { fn build( - ctx: &mut ViewContext<'_>, painter: &Painter, config: &AppConfig, + ctx: &mut BuildContext<'_>, painter: &Painter, config: &AppConfig, data: &mut ConvertedData<'_>, ) -> Self { let style = simple_table::StyleSheet { diff --git a/src/tuine/component/widget/mem_graph.rs b/src/tuine/component/widget/mem_graph.rs index e93ff46c..a25c87da 100644 --- a/src/tuine/component/widget/mem_graph.rs +++ b/src/tuine/component/widget/mem_graph.rs @@ -7,7 +7,7 @@ pub struct MemGraph {} impl super::AppWidget for MemGraph { fn build( - ctx: &mut crate::tuine::ViewContext<'_>, painter: &crate::canvas::Painter, + ctx: &mut crate::tuine::BuildContext<'_>, painter: &crate::canvas::Painter, config: &crate::app::AppConfig, data: &mut crate::data_conversion::ConvertedData<'_>, ) -> Self { Self {} diff --git a/src/tuine/component/widget/mem_simple.rs b/src/tuine/component/widget/mem_simple.rs index 65b2d115..1100318c 100644 --- a/src/tuine/component/widget/mem_simple.rs +++ b/src/tuine/component/widget/mem_simple.rs @@ -9,7 +9,7 @@ pub struct MemSimple {} impl super::AppWidget for MemSimple { fn build( - ctx: &mut crate::tuine::ViewContext<'_>, painter: &crate::canvas::Painter, + ctx: &mut crate::tuine::BuildContext<'_>, painter: &crate::canvas::Painter, config: &crate::app::AppConfig, data: &mut crate::data_conversion::ConvertedData<'_>, ) -> Self { Self {} diff --git a/src/tuine/component/widget/mod.rs b/src/tuine/component/widget/mod.rs index 0bc0c318..399ef15d 100644 --- a/src/tuine/component/widget/mod.rs +++ b/src/tuine/component/widget/mod.rs @@ -31,11 +31,11 @@ pub use mem_simple::*; pub mod net_simple; pub use net_simple::*; -use crate::{app::AppConfig, canvas::Painter, data_conversion::ConvertedData, tuine::ViewContext}; +use crate::{app::AppConfig, canvas::Painter, data_conversion::ConvertedData, tuine::BuildContext}; pub trait AppWidget { fn build( - ctx: &mut ViewContext<'_>, painter: &Painter, config: &AppConfig, + ctx: &mut BuildContext<'_>, painter: &Painter, config: &AppConfig, data: &mut ConvertedData<'_>, ) -> Self; } diff --git a/src/tuine/component/widget/net_graph.rs b/src/tuine/component/widget/net_graph.rs index e4abf549..e97a09f7 100644 --- a/src/tuine/component/widget/net_graph.rs +++ b/src/tuine/component/widget/net_graph.rs @@ -7,7 +7,7 @@ pub struct NetGraph {} impl super::AppWidget for NetGraph { fn build( - ctx: &mut crate::tuine::ViewContext<'_>, painter: &crate::canvas::Painter, + ctx: &mut crate::tuine::BuildContext<'_>, painter: &crate::canvas::Painter, config: &crate::app::AppConfig, data: &mut crate::data_conversion::ConvertedData<'_>, ) -> Self { Self {} diff --git a/src/tuine/component/widget/net_simple.rs b/src/tuine/component/widget/net_simple.rs index ac7f7315..85f4153c 100644 --- a/src/tuine/component/widget/net_simple.rs +++ b/src/tuine/component/widget/net_simple.rs @@ -9,7 +9,7 @@ pub struct NetSimple {} impl super::AppWidget for NetSimple { fn build( - ctx: &mut crate::tuine::ViewContext<'_>, painter: &crate::canvas::Painter, + ctx: &mut crate::tuine::BuildContext<'_>, painter: &crate::canvas::Painter, config: &crate::app::AppConfig, data: &mut crate::data_conversion::ConvertedData<'_>, ) -> Self { Self {} diff --git a/src/tuine/component/widget/process_table.rs b/src/tuine/component/widget/process_table.rs index 03f97f01..0dbe0c5d 100644 --- a/src/tuine/component/widget/process_table.rs +++ b/src/tuine/component/widget/process_table.rs @@ -7,7 +7,7 @@ pub struct ProcessTable {} impl super::AppWidget for ProcessTable { fn build( - ctx: &mut crate::tuine::ViewContext<'_>, painter: &crate::canvas::Painter, + ctx: &mut crate::tuine::BuildContext<'_>, painter: &crate::canvas::Painter, config: &crate::app::AppConfig, data: &mut crate::data_conversion::ConvertedData<'_>, ) -> Self { Self {} diff --git a/src/tuine/component/widget/simple_table.rs b/src/tuine/component/widget/simple_table.rs index dd395748..5b691a4e 100644 --- a/src/tuine/component/widget/simple_table.rs +++ b/src/tuine/component/widget/simple_table.rs @@ -5,7 +5,7 @@ use crate::tuine::{ self, block, shortcut::ShortcutProps, text_table::{self, DataRow, SortType, TextTableProps, TextTableState}, - Block, Event, Shortcut, StatefulComponent, Status, TextTable, TmpComponent, ViewContext, + Block, BuildContext, Event, Shortcut, StatefulComponent, Status, TextTable, TmpComponent, }; /// A set of styles for a [`SimpleTable`]. @@ -28,7 +28,7 @@ pub struct SimpleTable { impl SimpleTable { #[track_caller] pub fn build>, R: Into>( - ctx: &mut ViewContext<'_>, style: StyleSheet, columns: Vec, data: Vec, + ctx: &mut BuildContext<'_>, style: StyleSheet, columns: Vec, data: Vec, sort_index: usize, ) -> Self { let text_table = TextTable::build( diff --git a/src/tuine/component/widget/temp_table.rs b/src/tuine/component/widget/temp_table.rs index aaa832db..4d2eeb49 100644 --- a/src/tuine/component/widget/temp_table.rs +++ b/src/tuine/component/widget/temp_table.rs @@ -4,7 +4,7 @@ use crate::{ data_conversion::ConvertedData, tuine::{ Bounds, DrawContext, LayoutNode, SimpleTable, Size, StateContext, Status, TmpComponent, - ViewContext, + BuildContext, }, }; @@ -21,7 +21,7 @@ impl TempTable {} impl AppWidget for TempTable { fn build( - ctx: &mut ViewContext<'_>, painter: &Painter, config: &AppConfig, + ctx: &mut BuildContext<'_>, painter: &Painter, config: &AppConfig, data: &mut ConvertedData<'_>, ) -> Self { let style = simple_table::StyleSheet { diff --git a/src/tuine/context/view_context.rs b/src/tuine/context/build_context.rs similarity index 97% rename from src/tuine/context/view_context.rs rename to src/tuine/context/build_context.rs index ddcc45ac..17c947f1 100644 --- a/src/tuine/context/view_context.rs +++ b/src/tuine/context/build_context.rs @@ -2,12 +2,12 @@ use crate::tuine::{Caller, Key, State, StateMap}; use super::StateContext; -pub struct ViewContext<'a> { +pub struct BuildContext<'a> { key_counter: usize, state_context: StateContext<'a>, } -impl<'a> ViewContext<'a> { +impl<'a> BuildContext<'a> { pub fn new(state_map: &'a mut StateMap) -> Self { Self { key_counter: 0, diff --git a/src/tuine/context/mod.rs b/src/tuine/context/mod.rs index e4fc90e8..de4ee08e 100644 --- a/src/tuine/context/mod.rs +++ b/src/tuine/context/mod.rs @@ -4,8 +4,8 @@ pub use state_map::StateMap; pub mod draw_context; pub use draw_context::DrawContext; -pub mod view_context; -pub use view_context::ViewContext; +pub mod build_context; +pub use build_context::BuildContext; pub mod state_context; pub use state_context::StateContext; diff --git a/src/tuine/runtime.rs b/src/tuine/runtime.rs index d3c3579a..11c8e1ee 100644 --- a/src/tuine/runtime.rs +++ b/src/tuine/runtime.rs @@ -6,7 +6,7 @@ use crate::tuine::Status; use super::{ build_layout_tree, Application, DrawContext, Element, Event, LayoutNode, StateContext, - StateMap, TmpComponent, ViewContext, + StateMap, TmpComponent, BuildContext, }; #[derive(Clone, Copy, Debug)] @@ -118,7 +118,7 @@ fn create_user_interface(application: &mut A, app_data: &mut AppData) -> Elem where A: Application + 'static, { - let mut ctx = ViewContext::new(&mut app_data.state_map); + let mut ctx = BuildContext::new(&mut app_data.state_map); application.view(&mut ctx) }