pub struct HelpState {
pub visible: bool,
pub scroll: usize,
pub for_filter_mode: bool,
}
impl HelpState {
pub(super) fn new() -> Self {
Self {
visible: false,
scroll: 0,
for_filter_mode: false,
}
}
pub(super) fn toggle(&mut self, is_filter_mode: bool) {
if self.visible {
self.visible = false;
} else {
self.visible = true;
self.scroll = 0;
self.for_filter_mode = is_filter_mode;
}
}
pub(super) fn scroll_down(&mut self, lines: usize) {
self.scroll = self.scroll.saturating_add(lines);
}
pub(super) fn scroll_up(&mut self, lines: usize) {
self.scroll = self.scroll.saturating_sub(lines);
}
pub fn clamp_scroll(&mut self, max_scroll: usize) {
self.scroll = self.scroll.min(max_scroll);
}
}