From 8ed80cea89a11a58497094a73fcdd0e5a3d99c81 Mon Sep 17 00:00:00 2001 From: rabite Date: Mon, 21 Jan 2019 21:46:13 +0100 Subject: [PATCH] got it somewhat working (hopefully) --- src/hbox.rs | 4 ++-- src/listview.rs | 6 +++--- src/widget.rs | 11 +++++++++++ src/window.rs | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/hbox.rs b/src/hbox.rs index 9c9c900..538edf5 100644 --- a/src/hbox.rs +++ b/src/hbox.rs @@ -37,7 +37,7 @@ impl Widget for HBox { } fn render_header(&self) -> String { - self.children[self.main].render_header() + self.children[self.active].render_header() } fn refresh(&mut self) { @@ -67,6 +67,6 @@ impl Widget for HBox { fn on_event(&mut self, event: Event) { - self.children[self.main].on_event(event); + self.children[self.active].on_event(event); } } diff --git a/src/listview.rs b/src/listview.rs index e5f7c77..bb4b701 100644 --- a/src/listview.rs +++ b/src/listview.rs @@ -17,14 +17,14 @@ pub struct ListView { } impl ListView where ListView: Widget { - pub fn new(content: T, dimensions: (u16, u16), position: (u16, u16)) -> Self { + pub fn new(content: T) -> Self { let view = ListView:: { content: content, selection: 0, offset: 0, buffer: Vec::new(), - dimensions: dimensions, - position: position + dimensions: (1,1), + position: (1,1) }; view } diff --git a/src/widget.rs b/src/widget.rs index 4e173ed..c9012c9 100644 --- a/src/widget.rs +++ b/src/widget.rs @@ -50,6 +50,17 @@ pub trait Widget { self.show_status(&format!("Stop the nasty stuff!! {:?} does nothing!", event)); } + fn get_header_drawlist(&mut self) -> String { + format!( + "{}{}{}{:xsize$}", + crate::term::goto_xy(1,1), + crate::term::header_color(), + self.render_header(), + " ", + xsize = crate::term::xsize() + ) + } + //fn get_window(&self) -> Window; //fn get_window_mut(&mut self) -> &mut Window; diff --git a/src/window.rs b/src/window.rs index 2d7ef6c..ec5acbe 100644 --- a/src/window.rs +++ b/src/window.rs @@ -42,7 +42,7 @@ where } pub fn draw(&mut self) { - let output = self.widget.get_drawlist(); + let output = self.widget.get_drawlist() + &self.widget.get_header_drawlist(); self.screen.write(output.as_ref()).unwrap(); self.screen.flush().unwrap();