… | |
… | |
41 | |
41 | |
42 | =cut |
42 | =cut |
43 | |
43 | |
44 | sub scroll_up ($) { |
44 | sub scroll_up ($) { |
45 | my $lines = $_[0]; |
45 | my $lines = $_[0]; |
46 | $self->view_start ($self->view_start - $lines); |
46 | $self->view_start (List::Util::min 0, $self->view_start - $lines); |
47 | } |
47 | } |
48 | |
48 | |
49 | sub scroll_up_pages ($) { |
49 | sub scroll_up_pages ($) { |
50 | my $lines = $_[0] * ($self->nrow - 1); |
50 | my $lines = $_[0] * ($self->nrow - 1); |
51 | $self->view_start ($self->view_start - $lines); |
51 | $self->view_start (List::Util::min 0, $self->view_start - $lines); |
52 | } |
52 | } |
53 | |
53 | |
54 | sub scroll_down ($) { |
54 | sub scroll_down ($) { |
55 | my $lines = $_[0]; |
55 | my $lines = $_[0]; |
56 | $self->view_start ($self->view_start + $lines); |
56 | $self->view_start (List::Util::min 0, $self->view_start + $lines); |
57 | } |
57 | } |
58 | |
58 | |
59 | sub scroll_down_pages ($) { |
59 | sub scroll_down_pages ($) { |
60 | my $lines = $_[0] * ($self->nrow - 1); |
60 | my $lines = $_[0] * ($self->nrow - 1); |
61 | $self->view_start ($self->view_start + $lines); |
61 | $self->view_start (List::Util::min 0, $self->view_start + $lines); |
62 | } |
62 | } |
63 | |
63 | |
64 | =item scroll_to_top |
64 | =item scroll_to_top |
65 | |
65 | |
66 | =item scroll_to_bottom |
66 | =item scroll_to_bottom |