utilities.rs: fill and align shortcut table columns

pull/144/head
Manos Pitsidianakis 2022-03-20 19:18:40 +02:00
parent d3e62e3d74
commit 23c2355662
Signed by: Manos Pitsidianakis
GPG Key ID: 73627C2F690DF710
1 changed files with 15 additions and 1 deletions

View File

@ -1072,6 +1072,8 @@ impl Component for Tabbed {
let mut max_width =
"Press ? to close, use COMMAND \"search\" to find shortcuts".len() + 3;
let mut max_first_column_width = 3;
for (desc, shortcuts) in children_maps.iter() {
max_length += shortcuts.len() + 3;
max_width = std::cmp::max(
@ -1085,6 +1087,14 @@ impl Component for Tabbed {
.unwrap_or(0),
),
);
max_first_column_width = std::cmp::max(
max_first_column_width,
shortcuts
.values()
.map(|v| v.to_string().len() + 5)
.max()
.unwrap_or(0),
);
}
self.help_content =
CellBuffer::new_with_context(max_width, max_length + 2, None, context);
@ -1112,7 +1122,11 @@ impl Component for Tabbed {
idx += 2;
for (k, v) in shortcuts {
let (x, y) = write_string_to_grid(
&format!("{:1$}", v, max_width),
&format!(
"{: >width$}",
format!("{}", v),
width = max_first_column_width
),
&mut self.help_content,
self.theme_default.fg,
self.theme_default.bg,