use crate::widgets::markdown_widget::state::toc_state::TocState;
impl TocState {
pub fn scroll_offset(&self) -> usize {
self.scroll_offset
}
pub fn set_scroll_offset(&mut self, offset: usize) {
self.scroll_offset = offset;
}
pub fn scroll_up(&mut self, amount: usize) {
self.scroll_offset = self.scroll_offset.saturating_sub(amount);
}
pub fn scroll_down(&mut self, amount: usize) {
let max_offset = self.entries.len().saturating_sub(1);
self.scroll_offset = (self.scroll_offset + amount).min(max_offset);
}
pub fn scroll_to_top(&mut self) {
self.scroll_offset = 0;
}
pub fn scroll_to_bottom(&mut self) {
self.scroll_offset = self.entries.len().saturating_sub(1);
}
}