Fix table width size bug

This commit is contained in:
Emil Ernerfeldt 2022-03-31 15:11:01 +02:00
parent 73444a7116
commit 04135aaa9c

View file

@ -93,18 +93,22 @@ impl<'a> TableBuilder<'a> {
self self
} }
/// Create a header row which always stays visible and at the top fn available_width(&self) -> f32 {
pub fn header(self, height: f32, header: impl FnOnce(TableRow<'_, '_>)) -> Table<'a> {
let widths = self.sizing.into_lengths(
self.ui.available_rect_before_wrap().width() self.ui.available_rect_before_wrap().width()
- self.ui.spacing().item_spacing.x - 2.0 * self.ui.spacing().item_spacing.x
- if self.scroll { - if self.scroll {
self.ui.spacing().scroll_bar_width self.ui.spacing().scroll_bar_width
} else { } else {
0.0 0.0
}, }
self.ui.spacing().item_spacing.x, }
);
/// Create a header row which always stays visible and at the top
pub fn header(self, height: f32, header: impl FnOnce(TableRow<'_, '_>)) -> Table<'a> {
let available_width = self.available_width();
let widths = self
.sizing
.into_lengths(available_width, self.ui.spacing().item_spacing.x);
let ui = self.ui; let ui = self.ui;
{ {
let mut layout = StripLayout::new(ui, CellDirection::Horizontal); let mut layout = StripLayout::new(ui, CellDirection::Horizontal);
@ -131,10 +135,10 @@ impl<'a> TableBuilder<'a> {
where where
F: for<'b> FnOnce(TableBody<'b>), F: for<'b> FnOnce(TableBody<'b>),
{ {
let widths = self.sizing.into_lengths( let available_width = self.available_width();
self.ui.available_rect_before_wrap().width(), let widths = self
self.ui.spacing().item_spacing.x, .sizing
); .into_lengths(available_width, self.ui.spacing().item_spacing.x);
Table { Table {
ui: self.ui, ui: self.ui,