This commit is contained in:
nyx 2024-10-25 16:05:05 +02:00 committed by GitHub
commit d94aebb8a3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -30,6 +30,7 @@ pub struct FloatingText {
v_scroll: usize, v_scroll: usize,
h_scroll: usize, h_scroll: usize,
mode_title: String, mode_title: String,
frame_height: usize,
} }
macro_rules! style { macro_rules! style {
@ -137,6 +138,7 @@ impl FloatingText {
max_line_width, max_line_width,
v_scroll: 0, v_scroll: 0,
h_scroll: 0, h_scroll: 0,
frame_height: 0,
} }
} }
@ -167,11 +169,13 @@ impl FloatingText {
max_line_width, max_line_width,
h_scroll: 0, h_scroll: 0,
v_scroll: 0, v_scroll: 0,
frame_height: 0,
}) })
} }
fn scroll_down(&mut self) { fn scroll_down(&mut self) {
if self.v_scroll + 1 < self.src.len() { let visible_lines = self.frame_height.saturating_sub(2);
if self.v_scroll + visible_lines < self.src.len() {
self.v_scroll += 1; self.v_scroll += 1;
} }
} }
@ -197,6 +201,8 @@ impl FloatingText {
impl FloatContent for FloatingText { impl FloatContent for FloatingText {
fn draw(&mut self, frame: &mut Frame, area: Rect) { fn draw(&mut self, frame: &mut Frame, area: Rect) {
self.frame_height = area.height as usize;
// Define the Block with a border and background color // Define the Block with a border and background color
let block = Block::default() let block = Block::default()
.borders(Borders::ALL) .borders(Borders::ALL)