summaryrefslogtreecommitdiffstats
path: root/src/tuice/component/base/text_table.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tuice/component/base/text_table.rs')
-rw-r--r--src/tuice/component/base/text_table.rs26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/tuice/component/base/text_table.rs b/src/tuice/component/base/text_table.rs
index b6d04a77..782313b9 100644
--- a/src/tuice/component/base/text_table.rs
+++ b/src/tuice/component/base/text_table.rs
@@ -14,12 +14,13 @@ use unicode_segmentation::UnicodeSegmentation;
use crate::{
constants::TABLE_GAP_HEIGHT_LIMIT,
- tuice::{DrawContext, Event, Status, TmpComponent},
+ tuice::{Component, DrawContext, Element, Event, Properties, Status},
};
pub use self::table_column::{TextColumn, TextColumnConstraint};
use self::table_scroll_state::ScrollState as TextTableState;
+/// Styles for a [`TextTable`].
#[derive(Clone, Debug, Default)]
pub struct StyleSheet {
text: Style,
@@ -27,7 +28,11 @@ pub struct StyleSheet {
table_header: Style,
}
-pub enum TextTableMsg {}
+/// Properties for a [`TextTable`].
+#[derive(PartialEq, Clone, Debug)]
+pub struct TextTableProps {}
+
+impl Properties for TextTableProps {}
/// A sortable, scrollable table for text data.
pub struct TextTable<'a, Message> {
@@ -165,11 +170,8 @@ impl<'a, Message> TextTable<'a, Message> {
}
}
-impl<'a, Message> TmpComponent<Message> for TextTable<'a, Message> {
- fn draw<B>(&mut self, context: DrawContext<'_>, frame: &mut Frame<'_, B>)
- where
- B: Backend,
- {
+impl<'a, Message, B: Backend> Component<Message, B> for TextTable<'a, Message> {
+ fn draw(&mut self, context: DrawContext<'_>, frame: &mut Frame<'_, B>) {
let rect = context.rect();
self.table_gap = if !self.show_gap
@@ -272,5 +274,15 @@ impl<'a, Message> TmpComponent<Message> for TextTable<'a, Message> {
}
}
+impl<'a, Message, B: Backend> From<TextTable<'a, Message>> for Element<'a, Message, B>
+where
+ Message: 'a,
+ B: 'a,
+{
+ fn from(text_table: TextTable<'a, Message>) -> Self {
+ Element::new(text_table)
+ }
+}
+
#[cfg(test)]
mod tests {}