Function broot::display::flags_display::write
source · Expand description
draw the flags
Examples found in repository?
src/app/panel.rs (line 215)
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
pub fn display(
&mut self,
w: &mut W,
disc: &DisplayContext,
) -> Result<(), ProgramError> {
self.mut_state().display(w, disc)?;
if disc.active || !WIDE_STATUS {
self.write_status(w, disc.panel_skin, disc.screen)?;
}
let mut input_area = self.areas.input.clone();
if disc.active {
self.write_purpose(w, disc.panel_skin, disc.screen, disc.con)?;
let flags = self.state().get_flags();
let input_content_len = self.input.get_content().len() as u16;
let flags_len = flags_display::visible_width(&flags);
if input_area.width > input_content_len + 1 + flags_len {
input_area.width -= flags_len + 1;
disc.screen.goto(w, input_area.left + input_area.width, input_area.top)?;
flags_display::write(w, &flags, disc.panel_skin)?;
}
}
self.input.display(w, disc.active, self.state().get_mode(), input_area, disc.panel_skin)?;
Ok(())
}