scrollable/scrollable.rs
1use {
2 cursive::{view::*, views::*, *},
3 cursive_image::*,
4};
5
6// Here we'll demonstrate scrolling
7
8// JPEG support requires the "jpeg" feature
9// (note that loading large JPEGs is slow for dev builds)
10const FILE: &str = "assets/media/sunrise.jpg";
11
12fn main() {
13 let mut cursive = default();
14
15 cursive.add_layer(
16 Panel::new(
17 ImageView::default()
18 .with_image(
19 // Note that RGBA is supported, too, if you need transparency
20 Image::new_stream_from_jpeg_file(FILE, ImageFormat::RGB).expect("new_stream_from_jpeg_file"),
21 // If you prefer to keep the image data in memory:
22 // Image::new_owned_from_jpeg_file(FILE, ImageFormat::RGB, true).expect("new_owned_from_jpeg_file"),
23 )
24 .with_sizing(Sizing::original())
25 .scrollable()
26 .scroll_x(true),
27 )
28 .fixed_size((50, 20)),
29 );
30
31 cursive.add_global_callback('q', |cursive| cursive.quit());
32
33 cursive.run();
34}