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                    // 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}