From 6b2261795ff4b1d48e6b283cfd87f857aabd5f93 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Wed, 15 Jul 2026 08:56:59 +0200 Subject: [PATCH] Fix spaced columns --- pulse-ui/src/widget/spaced.rs | 16 ++++++++++++---- src/main.rs | 8 ++------ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/pulse-ui/src/widget/spaced.rs b/pulse-ui/src/widget/spaced.rs index 72a7e01..8e28ce3 100644 --- a/pulse-ui/src/widget/spaced.rs +++ b/pulse-ui/src/widget/spaced.rs @@ -37,9 +37,19 @@ pub struct SpacedColumns(pub Vec<(LayoutItem, Box)>); impl Widget for SpacedColumns { fn render(&self, scope: &mut crate::render::RenderScope) { + let mut items = Vec::new(); + + for (i, (item, _)) in self.0.iter().enumerate() { + if i > 0 { + items.push(LayoutItem::Spacing(crate::unit::Size::Fixed(1))) + } + + items.push(item.clone()); + } + let mut alloc = scope.rect.allocate(&crate::layout::LayoutItem::Columns { unit: Percent(100), - items: self.0.iter().map(|v| v.0.clone()).collect(), + items, }); for i in 0..alloc.widgets.len() { @@ -49,10 +59,8 @@ impl Widget for SpacedColumns { let rect = &mut alloc.widgets[i]; for i in 0..rect.height { - scope.draw_text((rect.x - 1, i), "│"); + scope.draw_text((rect.x - 2, i), "│"); } - rect.x += 1; - rect.width -= 1; } alloc.draw(i, &*item.1); diff --git a/src/main.rs b/src/main.rs index cddf97d..414d870 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,11 +1,7 @@ use std::any::Any; use pulse_ui::{ - App, - layout::{LayoutItem, layout}, - state::{Refresh, State}, - unit::Size, - widget::{outline::Outline, spaced::SpacedRows}, + App, layout::{LayoutItem, layout}, state::{Refresh, State}, unit::Size, widget::{outline::Outline, spaced::{SpacedColumns, SpacedRows}}, }; pub struct PulseTradeApp { @@ -39,7 +35,7 @@ impl App for PulseTradeApp { layout.draw( 0, - SpacedRows(vec![ + SpacedColumns(vec![ (LayoutItem::Widget(Size::Flex(1)), Box::new("one")), (LayoutItem::Widget(Size::Flex(1)), Box::new("two")), (LayoutItem::Widget(Size::Flex(1)), Box::new("three")),