aboutsummaryrefslogtreecommitdiff
path: root/src/print.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/print.rs')
-rw-r--r--src/print.rs40
1 files changed, 18 insertions, 22 deletions
diff --git a/src/print.rs b/src/print.rs
index 63f730f..f063322 100644
--- a/src/print.rs
+++ b/src/print.rs
@@ -147,7 +147,8 @@ const CHARS_TABLE: [SymbolTableElement; 25] = [
},
];
-const TO_HIDE_LEGENDE_ELEMENTS: [u32; 25] = [
+const TO_HIDE_LEGENDE_ELEMENTS: [u32; 26] = [
+ 0b000_000_000_000_0_000_000_000_000,
0b000_000_000_000_1_000_000_000_000,
0b000_000_001_000_0_000_100_000_000,
0b000_000_100_000_1_000_001_000_000,
@@ -175,6 +176,11 @@ const TO_HIDE_LEGENDE_ELEMENTS: [u32; 25] = [
0b111_111_111_111_1_111_111_111_111, // 25
];
+const LEN_BY_NB_ELEMENT: [u32; 26] = [
+ 139, 133, 128, 122, 117, 111, 105, 100, 94, 88, 83, 78, 72, 66, 60, 55, 50, 44, 38, 32, 27, 21,
+ 16, 10, 4, 0,
+];
+
pub fn print_legende_line() {
let nb_cols: u32 = if let Some((w, _)) = term_size::dimensions() {
w as u32
@@ -182,36 +188,26 @@ pub fn print_legende_line() {
0
};
+ let mut index = 0;
+ while LEN_BY_NB_ELEMENT[index] > nb_cols {
+ index += 1
+ }
+
let size_elem = 6;
let nb_elements_to_print = CHARS_TABLE.len() as u32;
- if nb_cols == 0 || nb_cols >= nb_elements_to_print * size_elem {
- for (index, element) in CHARS_TABLE.iter().enumerate() {
- print!(
- "{} {}{}{}\x1b[0m ",
- 10 * index, element.fg, element.bg, element.character
- );
- }
- println!("{}", ERASE_LINE_END);
- return;
- }
- println!("Nb_cols: {} / Line_size: {}", nb_cols, CHARS_TABLE.len() as u32 * size_elem);
- let nb_elements_to_skip = if (CHARS_TABLE.len() as u32 * size_elem) > nb_cols {
- (CHARS_TABLE.len() as u32 * size_elem - nb_cols + size_elem - 1) / size_elem
- } else {
- 0
- };
- let skip_mod : u32 = nb_elements_to_print / (nb_elements_to_skip as u32 + 1);
- println!("Print: {} / Skip: {} / Mod: {}", nb_elements_to_print, nb_elements_to_skip, skip_mod);
- println!("Print2: {} / Len: {} / Cols: {}", (nb_elements_to_print - nb_elements_to_skip), (nb_elements_to_print - nb_elements_to_skip) * size_elem, nb_cols);
+ let nb_elements_to_skip = index as usize;
for (index, element) in CHARS_TABLE.iter().enumerate() {
- if (TO_HIDE_LEGENDE_ELEMENTS[nb_elements_to_skip as usize]) & (1 << index) != 0 {
+ if (TO_HIDE_LEGENDE_ELEMENTS[nb_elements_to_skip]) & (1 << index) != 0 {
continue;
}
print!(
"{} {}{}{}\x1b[0m ",
- 10 * index, element.fg, element.bg, element.character
+ 10 * index,
+ element.fg,
+ element.bg,
+ element.character
);
}
println!("{}", ERASE_LINE_END);