From 2401c2a4ec270558748d8983609746518cc6b131 Mon Sep 17 00:00:00 2001 From: Adam Cosner Date: Sat, 4 Jan 2025 11:57:33 -0800 Subject: [PATCH] Added table function for generic table view creation --- examples/table-view/src/main.rs | 6 +++--- src/widget/mod.rs | 1 + src/widget/table/mod.rs | 13 +++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/examples/table-view/src/main.rs b/examples/table-view/src/main.rs index f4c34070..3bea9b36 100644 --- a/examples/table-view/src/main.rs +++ b/examples/table-view/src/main.rs @@ -6,8 +6,8 @@ use chrono::Datelike; use cosmic::app::{Core, Settings, Task}; use cosmic::iced_core::Size; -use cosmic::widget::nav_bar; use cosmic::widget::table; +use cosmic::widget::{self, nav_bar}; use cosmic::{executor, iced, Element}; #[derive(Debug, Default, PartialEq, Eq, Clone, Copy)] @@ -194,12 +194,12 @@ impl cosmic::Application for App { fn view(&self) -> Element { cosmic::widget::responsive(|size| { if size.width < 600.0 { - table::SingleSelectTableView::new(&self.table_model) + widget::table(&self.table_model) .on_item_select(Message::ItemSelect) .on_category_select(Message::CategorySelect) .element_compact() } else { - table::SingleSelectTableView::new(&self.table_model) + widget::table(&self.table_model) .on_item_select(Message::ItemSelect) .on_category_select(Message::CategorySelect) .element_standard() diff --git a/src/widget/mod.rs b/src/widget/mod.rs index 0a11f051..e915e626 100644 --- a/src/widget/mod.rs +++ b/src/widget/mod.rs @@ -316,6 +316,7 @@ pub use spin_button::{spin_button, vertical as vertical_spin_button, SpinButton} pub mod tab_bar; pub mod table; +pub use table::table; pub mod text; #[doc(inline)] diff --git a/src/widget/table/mod.rs b/src/widget/table/mod.rs index 594e73d2..b5a5d0b7 100644 --- a/src/widget/table/mod.rs +++ b/src/widget/table/mod.rs @@ -18,3 +18,16 @@ pub type SingleSelectModel = Model pub type MultiSelectTableView<'a, Item, Category, Message> = TableView<'a, MultiSelect, Item, Category, Message>; pub type MultiSelectModel = Model; + +pub fn table<'a, SelectionMode, Item, Category, Message>( + model: &'a Model, +) -> TableView<'a, SelectionMode, Item, Category, Message> +where + Message: Clone, + SelectionMode: Default, + Category: ItemCategory, + Item: ItemInterface, + Model: model::selection::Selectable, +{ + TableView::new(model) +}