mirror of
https://github.com/FliegendeWurst/cursive.git
synced 2024-11-23 17:35:00 +00:00
Implement scroll_to_top, scroll_to_bottom, scroll_to_left, and scroll_to_right
This commit is contained in:
parent
0ed8eabc5e
commit
03e143f4c3
@ -107,6 +107,32 @@ impl<V> ScrollView<V> {
|
|||||||
pub fn scroll_x(self, enabled: bool) -> Self {
|
pub fn scroll_x(self, enabled: bool) -> Self {
|
||||||
self.with(|s| s.set_scroll_x(enabled))
|
self.with(|s| s.set_scroll_x(enabled))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Programmatically scroll to the top of the view.
|
||||||
|
pub fn scroll_to_top(&mut self) {
|
||||||
|
let curr_x = self.offset.x;
|
||||||
|
self.set_offset((curr_x,0));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Programmatically scroll to the bottom of the view.
|
||||||
|
pub fn scroll_to_bottom(&mut self) {
|
||||||
|
let max_y = self.inner_size.saturating_sub(self.available_size()).y;
|
||||||
|
let curr_x = self.offset.x;
|
||||||
|
self.set_offset((curr_x, max_y));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Programmatically scroll to the leftmost side of the view.
|
||||||
|
pub fn scroll_to_left(&mut self) {
|
||||||
|
let curr_y = self.offset.y;
|
||||||
|
self.set_offset((0, curr_y));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Programmatically scroll to the rightmost side of the view.
|
||||||
|
pub fn scroll_to_right(&mut self) {
|
||||||
|
let max_x = self.inner_size.saturating_sub(self.available_size()).x;
|
||||||
|
let curr_y = self.offset.y;
|
||||||
|
self.set_offset((max_x, curr_y));
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns for each axis if we are scrolling.
|
/// Returns for each axis if we are scrolling.
|
||||||
fn is_scrolling(&self) -> XY<bool> {
|
fn is_scrolling(&self) -> XY<bool> {
|
||||||
|
Loading…
Reference in New Issue
Block a user