diff --git a/src/canvas.rs b/src/canvas.rs index 54090544..3915edf2 100644 --- a/src/canvas.rs +++ b/src/canvas.rs @@ -1,7 +1,7 @@ mod dialogs; mod drawing_utils; pub mod styling; -pub mod tui_widgets; +pub mod components; mod widgets; use std::str::FromStr; @@ -71,8 +71,10 @@ pub struct Painter { widget_layout: BottomLayout, } -// Part of a temporary fix for https://github.com/ClementTsang/bottom/issues/896 -enum LayoutConstraint { +/// The constraints of a widget relative to its parent. +/// +/// This is used over ratatui's internal representation due to https://github.com/ClementTsang/bottom/issues/896. +pub enum LayoutConstraint { CanvasHandled, Grow, Ratio(u32, u32), diff --git a/src/canvas/tui_widgets.rs b/src/canvas/components.rs similarity index 56% rename from src/canvas/tui_widgets.rs rename to src/canvas/components.rs index bba5eb90..3493dfb1 100644 --- a/src/canvas/tui_widgets.rs +++ b/src/canvas/components.rs @@ -1,4 +1,4 @@ -//! Cstom ratatui widgets used by the rest of bottom. +//! Cstom ratatui widgets used by the rest of bottom as lower-level components. pub mod data_table; pub mod pipe_gauge; diff --git a/src/canvas/tui_widgets/data_table.rs b/src/canvas/components/data_table.rs similarity index 100% rename from src/canvas/tui_widgets/data_table.rs rename to src/canvas/components/data_table.rs diff --git a/src/canvas/tui_widgets/data_table/column.rs b/src/canvas/components/data_table/column.rs similarity index 100% rename from src/canvas/tui_widgets/data_table/column.rs rename to src/canvas/components/data_table/column.rs diff --git a/src/canvas/tui_widgets/data_table/data_type.rs b/src/canvas/components/data_table/data_type.rs similarity index 100% rename from src/canvas/tui_widgets/data_table/data_type.rs rename to src/canvas/components/data_table/data_type.rs diff --git a/src/canvas/tui_widgets/data_table/draw.rs b/src/canvas/components/data_table/draw.rs similarity index 100% rename from src/canvas/tui_widgets/data_table/draw.rs rename to src/canvas/components/data_table/draw.rs diff --git a/src/canvas/tui_widgets/data_table/props.rs b/src/canvas/components/data_table/props.rs similarity index 100% rename from src/canvas/tui_widgets/data_table/props.rs rename to src/canvas/components/data_table/props.rs diff --git a/src/canvas/tui_widgets/data_table/sortable.rs b/src/canvas/components/data_table/sortable.rs similarity index 100% rename from src/canvas/tui_widgets/data_table/sortable.rs rename to src/canvas/components/data_table/sortable.rs diff --git a/src/canvas/tui_widgets/data_table/state.rs b/src/canvas/components/data_table/state.rs similarity index 100% rename from src/canvas/tui_widgets/data_table/state.rs rename to src/canvas/components/data_table/state.rs diff --git a/src/canvas/tui_widgets/data_table/styling.rs b/src/canvas/components/data_table/styling.rs similarity index 100% rename from src/canvas/tui_widgets/data_table/styling.rs rename to src/canvas/components/data_table/styling.rs diff --git a/src/canvas/tui_widgets/pipe_gauge.rs b/src/canvas/components/pipe_gauge.rs similarity index 100% rename from src/canvas/tui_widgets/pipe_gauge.rs rename to src/canvas/components/pipe_gauge.rs diff --git a/src/canvas/tui_widgets/time_chart.rs b/src/canvas/components/time_chart.rs similarity index 100% rename from src/canvas/tui_widgets/time_chart.rs rename to src/canvas/components/time_chart.rs diff --git a/src/canvas/tui_widgets/time_chart/canvas.rs b/src/canvas/components/time_chart/canvas.rs similarity index 100% rename from src/canvas/tui_widgets/time_chart/canvas.rs rename to src/canvas/components/time_chart/canvas.rs diff --git a/src/canvas/tui_widgets/time_graph.rs b/src/canvas/components/time_graph.rs similarity index 100% rename from src/canvas/tui_widgets/time_graph.rs rename to src/canvas/components/time_graph.rs diff --git a/src/canvas/tui_widgets/widget_carousel.rs b/src/canvas/components/widget_carousel.rs similarity index 100% rename from src/canvas/tui_widgets/widget_carousel.rs rename to src/canvas/components/widget_carousel.rs diff --git a/src/canvas/widgets/cpu_basic.rs b/src/canvas/widgets/cpu_basic.rs index a2a67c4d..d0fd539a 100644 --- a/src/canvas/widgets/cpu_basic.rs +++ b/src/canvas/widgets/cpu_basic.rs @@ -9,7 +9,7 @@ use tui::{ use crate::{ app::App, canvas::{ - tui_widgets::pipe_gauge::{LabelLimit, PipeGauge}, + components::pipe_gauge::{LabelLimit, PipeGauge}, Painter, }, constants::*, diff --git a/src/canvas/widgets/cpu_graph.rs b/src/canvas/widgets/cpu_graph.rs index 7f4e757e..36acf8ed 100644 --- a/src/canvas/widgets/cpu_graph.rs +++ b/src/canvas/widgets/cpu_graph.rs @@ -10,7 +10,7 @@ use crate::{ app::{layout_manager::WidgetDirection, App}, canvas::{ drawing_utils::should_hide_x_label, - tui_widgets::{ + components::{ data_table::{DrawInfo, SelectionState}, time_graph::{GraphData, TimeGraph}, }, diff --git a/src/canvas/widgets/disk_table.rs b/src/canvas/widgets/disk_table.rs index fe241d14..04a626f8 100644 --- a/src/canvas/widgets/disk_table.rs +++ b/src/canvas/widgets/disk_table.rs @@ -3,7 +3,7 @@ use tui::{layout::Rect, terminal::Frame}; use crate::{ app, canvas::{ - tui_widgets::data_table::{DrawInfo, SelectionState}, + components::data_table::{DrawInfo, SelectionState}, Painter, }, }; diff --git a/src/canvas/widgets/mem_basic.rs b/src/canvas/widgets/mem_basic.rs index e8ae71b7..c950329f 100644 --- a/src/canvas/widgets/mem_basic.rs +++ b/src/canvas/widgets/mem_basic.rs @@ -6,7 +6,7 @@ use tui::{ use crate::{ app::App, - canvas::{tui_widgets::pipe_gauge::PipeGauge, Painter}, + canvas::{components::pipe_gauge::PipeGauge, Painter}, constants::*, }; diff --git a/src/canvas/widgets/mem_graph.rs b/src/canvas/widgets/mem_graph.rs index 819c2956..62b0da49 100644 --- a/src/canvas/widgets/mem_graph.rs +++ b/src/canvas/widgets/mem_graph.rs @@ -10,7 +10,7 @@ use crate::{ app::App, canvas::{ drawing_utils::should_hide_x_label, - tui_widgets::time_graph::{GraphData, TimeGraph}, + components::time_graph::{GraphData, TimeGraph}, Painter, }, }; diff --git a/src/canvas/widgets/network_graph.rs b/src/canvas/widgets/network_graph.rs index af1b6d73..29a94dfd 100644 --- a/src/canvas/widgets/network_graph.rs +++ b/src/canvas/widgets/network_graph.rs @@ -10,7 +10,7 @@ use crate::{ app::{App, AxisScaling}, canvas::{ drawing_utils::should_hide_x_label, - tui_widgets::{ + components::{ time_chart::Point, time_graph::{GraphData, TimeGraph}, }, diff --git a/src/canvas/widgets/process_table.rs b/src/canvas/widgets/process_table.rs index e15f3f09..6ccb2dce 100644 --- a/src/canvas/widgets/process_table.rs +++ b/src/canvas/widgets/process_table.rs @@ -10,7 +10,7 @@ use unicode_segmentation::UnicodeSegmentation; use crate::{ app::{App, AppSearchState}, canvas::{ - tui_widgets::data_table::{DrawInfo, SelectionState}, + components::data_table::{DrawInfo, SelectionState}, Painter, }, constants::*, diff --git a/src/canvas/widgets/temperature_table.rs b/src/canvas/widgets/temperature_table.rs index 9be34ef1..4389ff24 100644 --- a/src/canvas/widgets/temperature_table.rs +++ b/src/canvas/widgets/temperature_table.rs @@ -3,7 +3,7 @@ use tui::{layout::Rect, terminal::Frame}; use crate::{ app, canvas::{ - tui_widgets::data_table::{DrawInfo, SelectionState}, + components::data_table::{DrawInfo, SelectionState}, Painter, }, }; diff --git a/src/data_conversion.rs b/src/data_conversion.rs index f4aee9d6..0d1c4604 100644 --- a/src/data_conversion.rs +++ b/src/data_conversion.rs @@ -7,7 +7,7 @@ use kstring::KString; use crate::{ app::{data_farmer::DataCollection, AxisScaling}, - canvas::tui_widgets::time_chart::Point, + canvas::components::time_chart::Point, data_collection::{cpu::CpuDataType, memory::MemHarvest, temperature::TemperatureType}, utils::{data_prefixes::*, data_units::DataUnit, general::*}, widgets::{DiskWidgetData, TempWidgetData}, diff --git a/src/widgets/cpu_graph.rs b/src/widgets/cpu_graph.rs index 38453f68..bd7edf3d 100644 --- a/src/widgets/cpu_graph.rs +++ b/src/widgets/cpu_graph.rs @@ -7,7 +7,7 @@ use crate::{ app::AppConfigFields, canvas::{ styling::CanvasStyling, - tui_widgets::data_table::{ + components::data_table::{ Column, ColumnHeader, DataTable, DataTableColumn, DataTableProps, DataTableStyling, DataToCell, }, diff --git a/src/widgets/disk_table.rs b/src/widgets/disk_table.rs index 7ac2486e..5f72a6fe 100644 --- a/src/widgets/disk_table.rs +++ b/src/widgets/disk_table.rs @@ -7,7 +7,7 @@ use crate::{ app::AppConfigFields, canvas::{ styling::CanvasStyling, - tui_widgets::data_table::{ + components::data_table::{ ColumnHeader, DataTableColumn, DataTableProps, DataTableStyling, DataToCell, SortColumn, SortDataTable, SortDataTableProps, SortOrder, SortsRow, }, diff --git a/src/widgets/process_table.rs b/src/widgets/process_table.rs index 172597ca..da55fe8b 100644 --- a/src/widgets/process_table.rs +++ b/src/widgets/process_table.rs @@ -20,7 +20,7 @@ use crate::{ }, canvas::{ styling::CanvasStyling, - tui_widgets::data_table::{ + components::data_table::{ Column, ColumnHeader, ColumnWidthBounds, DataTable, DataTableColumn, DataTableProps, DataTableStyling, SortColumn, SortDataTable, SortDataTableProps, SortOrder, SortsRow, }, diff --git a/src/widgets/process_table/proc_widget_column.rs b/src/widgets/process_table/proc_widget_column.rs index 9a0a0b94..ea9e8a11 100644 --- a/src/widgets/process_table/proc_widget_column.rs +++ b/src/widgets/process_table/proc_widget_column.rs @@ -4,7 +4,7 @@ use serde::{de::Error, Deserialize, Serialize}; use super::ProcWidgetData; use crate::{ - canvas::tui_widgets::data_table::{ColumnHeader, SortsRow}, + canvas::components::data_table::{ColumnHeader, SortsRow}, utils::general::sort_partial_fn, }; diff --git a/src/widgets/process_table/proc_widget_data.rs b/src/widgets/process_table/proc_widget_data.rs index 8f71434f..1886c6d9 100644 --- a/src/widgets/process_table/proc_widget_data.rs +++ b/src/widgets/process_table/proc_widget_data.rs @@ -10,7 +10,7 @@ use tui::{text::Text, widgets::Row}; use super::proc_widget_column::ProcColumn; use crate::{ canvas::{ - tui_widgets::data_table::{DataTableColumn, DataToCell}, + components::data_table::{DataTableColumn, DataToCell}, Painter, }, data_collection::processes::ProcessHarvest, diff --git a/src/widgets/process_table/sort_table.rs b/src/widgets/process_table/sort_table.rs index da6a08d3..5b7a9dbd 100644 --- a/src/widgets/process_table/sort_table.rs +++ b/src/widgets/process_table/sort_table.rs @@ -3,7 +3,7 @@ use std::borrow::Cow; use tui::text::Text; use crate::{ - canvas::tui_widgets::data_table::{ColumnHeader, DataTableColumn, DataToCell}, + canvas::components::data_table::{ColumnHeader, DataTableColumn, DataToCell}, utils::general::truncate_to_text, }; diff --git a/src/widgets/temperature_table.rs b/src/widgets/temperature_table.rs index 3a8a9db4..37d06d15 100644 --- a/src/widgets/temperature_table.rs +++ b/src/widgets/temperature_table.rs @@ -8,7 +8,7 @@ use crate::{ app::AppConfigFields, canvas::{ styling::CanvasStyling, - tui_widgets::data_table::{ + components::data_table::{ ColumnHeader, DataTableColumn, DataTableProps, DataTableStyling, DataToCell, SortColumn, SortDataTable, SortDataTableProps, SortOrder, SortsRow, },