ratatui_toolkit/widgets/markdown_widget/widget/methods/
calculate_scrollbar_area.rs1use ratatui::layout::Rect;
4
5use crate::widgets::markdown_widget::widget::MarkdownWidget;
6
7impl<'a> MarkdownWidget<'a> {
8 pub fn calculate_scrollbar_area(&self, area: Rect) -> Option<Rect> {
16 let content_area = if self.show_statusline && area.height > 1 {
18 Rect {
19 height: area.height.saturating_sub(1),
20 ..area
21 }
22 } else {
23 area
24 };
25
26 if !self.show_scrollbar || self.scroll.total_lines <= content_area.height as usize {
28 return None;
29 }
30
31 let scrollbar_width = self.scrollbar_config.width;
32
33 Some(Rect {
34 x: content_area.x + content_area.width.saturating_sub(scrollbar_width),
35 y: content_area.y,
36 width: scrollbar_width,
37 height: content_area.height,
38 })
39 }
40}