in below/view/src/command_palette.rs [61:99]
fn draw(&self, printer: &Printer) {
// Right most X position that contains text
let mut max_x = printer.size.x;
printer.print_hline((0, 0), printer.size.x, "─");
if let Some(filter) = &self.filter {
let filter = format!("| Filter: {:>10.10} |", filter);
max_x -= filter.len();
printer.print((max_x, 0), &filter);
}
if self.fold {
let text = "| Fold |";
max_x -= text.len();
printer.print((max_x, 0), text);
}
match self.mode {
CPMode::Command => {
printer.print((0, 1), ":");
let inner_printer = printer.offset((1, 1));
self.cmd_view.borrow_mut().layout(inner_printer.size);
self.cmd_view.borrow().draw(&inner_printer);
}
_ => {
// Message should adapt the screen size
let mut msg_len_left = self.content.len();
let mut idx = 0;
let mut line = 1;
while msg_len_left > printer.size.x {
self.print(printer, (0, line), idx);
msg_len_left -= printer.size.x;
idx += printer.size.x;
line += 1;
}
self.print(printer, (0, line), idx);
}
}
}