Skip to main content

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}