diff --git a/demo/src/table_demo.rs b/demo/src/table_demo.rs index ff36c55..1766364 100644 --- a/demo/src/table_demo.rs +++ b/demo/src/table_demo.rs @@ -250,6 +250,11 @@ impl TableDemo { egui_table::AutoSizeMode::OnParentResize, "OnParentResize", ); + ui.radio_value( + &mut self.auto_size_mode, + egui_table::AutoSizeMode::Fill, + "Fill", + ); }); ui.end_row(); }); diff --git a/egui_table/src/table.rs b/egui_table/src/table.rs index a4c732a..6e930a4 100644 --- a/egui_table/src/table.rs +++ b/egui_table/src/table.rs @@ -22,6 +22,9 @@ pub enum AutoSizeMode { /// Auto-size the columns if the parents' width changes OnParentResize, + + /// Auto-size the columns only if the parents' width is greater than the minimum width + Fill, } #[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize)] @@ -375,6 +378,9 @@ impl Table { AutoSizeMode::Never => false, AutoSizeMode::Always => true, AutoSizeMode::OnParentResize => state.parent_width != Some(parent_width), + AutoSizeMode::Fill => state.parent_width.map_or(true, |w| { + w > self.columns.iter().map(|col| col.current).sum() + }), }; if auto_size { Column::auto_size(&mut self.columns, parent_width);