From 57f3d0780492872490354d738ca4d8e3d5114ee6 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 13 Nov 2021 16:02:27 -0500 Subject: a bit more color --- src/history.rs | 12 +++++++----- src/readline.rs | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/history.rs b/src/history.rs index 41c8289..86fed66 100644 --- a/src/history.rs +++ b/src/history.rs @@ -295,6 +295,7 @@ impl HistoryEntry { width: u16, focused: bool, ) { + out.set_bgcolor(textmode::Color::Rgb(32, 32, 32)); if let Some(info) = self.exit_info { out.write_str(&crate::format::exit_status(info.status)); } else { @@ -306,11 +307,13 @@ impl HistoryEntry { } out.write_str("$ "); out.reset_attributes(); + out.set_bgcolor(textmode::Color::Rgb(32, 32, 32)); if self.running() { out.set_bgcolor(textmode::Color::Rgb(16, 64, 16)); } out.write_str(&self.cmd); out.reset_attributes(); + out.set_bgcolor(textmode::Color::Rgb(32, 32, 32)); let time = if let Some(info) = self.exit_info { format!( "[{} ({:6})]", @@ -321,13 +324,12 @@ impl HistoryEntry { format!("[{}]", self.start_time.time().format("%H:%M:%S")) }; let cur_pos = out.screen().cursor_position(); - out.move_relative( - 0, - (width as usize - time.len() - 1 - cur_pos.1 as usize) - .try_into() - .unwrap(), + out.write_str( + &" ".repeat(width as usize - time.len() - 1 - cur_pos.1 as usize), ); out.write_str(&time); + out.write_str(" "); + out.reset_attributes(); let last_row = self.lines(width, focused); if last_row > 5 { out.write(b"\r\n"); diff --git a/src/readline.rs b/src/readline.rs index 11ea2dd..ceaff0e 100644 --- a/src/readline.rs +++ b/src/readline.rs @@ -65,10 +65,21 @@ impl Readline { if focus { out.set_fgcolor(textmode::color::BLACK); out.set_bgcolor(textmode::color::CYAN); + } else { + out.set_bgcolor(textmode::Color::Rgb(32, 32, 32)); } out.write_str(&self.prompt); out.reset_attributes(); + out.set_bgcolor(textmode::Color::Rgb(32, 32, 32)); out.write_str(&self.input_line); + out.write_str( + &" ".repeat( + (self.size.1 - self.prompt_width() - self.input_line_width()) + .try_into() + .unwrap(), + ), + ); + out.reset_attributes(); out.move_to(self.size.0 - 1, self.prompt_width() + self.pos_width()); Ok(()) } @@ -139,6 +150,10 @@ impl Readline { self.prompt.width().try_into().unwrap() } + fn input_line_width(&self) -> u16 { + self.input_line.width().try_into().unwrap() + } + fn pos_width(&self) -> u16 { self.input_line .chars() -- cgit v1.2.3-54-g00ecf