summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/interactive/widgets/help.rs32
-rw-r--r--src/interactive/widgets/main.rs10
2 files changed, 33 insertions, 9 deletions
diff --git a/src/interactive/widgets/help.rs b/src/interactive/widgets/help.rs
index 504443a..0a544d6 100644
--- a/src/interactive/widgets/help.rs
+++ b/src/interactive/widgets/help.rs
@@ -1,5 +1,8 @@
use tui::{
- buffer::Buffer, layout::Rect, style::Style, widgets::Block, widgets::Borders, widgets::Widget,
+ buffer::Buffer,
+ layout::Rect,
+ style::{Modifier, Style},
+ widgets::{Block, Borders, Paragraph, Text, Widget},
};
#[derive(Copy, Clone)]
@@ -12,10 +15,31 @@ pub struct HelpPane {
impl Widget for HelpPane {
fn draw(&mut self, area: Rect, buf: &mut Buffer) {
- Block::default()
+ fn title(name: &str) -> Text {
+ Text::Styled(
+ format!("{}\n\n", name).into(),
+ Style {
+ modifier: Modifier::BOLD,
+ ..Default::default()
+ },
+ )
+ };
+ fn hotkey(keys: &str, description: &str) -> Text<'static> {
+ Text::Styled(
+ format!("{} => {}\n", keys, description).into(),
+ Style {
+ ..Default::default()
+ },
+ )
+ };
+
+ let mut block = Block::default()
.title("Help")
.border_style(self.border_style)
- .borders(Borders::ALL)
- .draw(area, buf);
+ .borders(Borders::ALL);
+ block.draw(area, buf);
+ let area = block.inner(area).inner(1);
+
+ Paragraph::new([title("Hotkeys"), hotkey("j", "move down")].iter()).draw(area, buf);
}
}
diff --git a/src/interactive/widgets/main.rs b/src/interactive/widgets/main.rs
index 77b1244..8be4f9a 100644
--- a/src/interactive/widgets/main.rs
+++ b/src/interactive/widgets/main.rs
@@ -56,18 +56,18 @@ impl<'a, 'b, 'c> Widget for MainWindow<'a, 'b, 'c> {
}
None => (entries_area, None),
};
- let grey = || Style {
+ let grey = Style {
fg: Color::DarkGray,
bg: Color::Reset,
modifier: Modifier::empty(),
};
- let white = || Style {
+ let white = Style {
fg: Color::White,
- ..grey()
+ ..grey
};
let (entries_style, help_style) = match state.focussed {
- FocussedPane::Main => (white(), grey()),
- FocussedPane::Help => (grey(), white()),
+ FocussedPane::Main => (white, grey),
+ FocussedPane::Help => (grey, white),
};
Entries {
tree: &tree,