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 // This will decode the JPEG file on-demand
20 // Note that RGBA is supported, too, if you need transparency
21 Image::new_stream_from_jpeg_file(FILE, ImageFormat::RGB).expect("new_stream_from_jpeg_file"),
22 // If you prefer to keep the image data in memory:
23 // Image::new_owned_from_jpeg_file(FILE, ImageFormat::RGB, true).expect("new_owned_from_jpeg_file"),
24 )
25 .with_sizing(Sizing::original())
26 .scrollable()
27 .scroll_x(true),
28 )
29 .fixed_size((50, 20)),
30 );
31
32 cursive.add_global_callback('q', |cursive| cursive.quit());
33
34 cursive.run();
35}