screens_info/
screens_info.rs1use fltk::{
2 app::Screen,
3 draw::{Coordinates, Rect},
4};
5type Coord = Coordinates<i32>;
6
7fn main() {
8 let screens = Screen::all_screens();
9 println!("Number of detected screens = {}\n", screens.len());
10 assert_eq![screens.len(), Screen::count() as usize];
11
12 println!("Is scaling supported:");
13 println!("- at all = {}", Screen::scaling_supported());
14 println!("- separately = {}", Screen::scaling_supported_separately());
15
16 let coord: Coord = [100, 100].into();
17 let rect: Rect = [100, 100, 100, 100].into();
18
19 println!("\nScreen found:");
24 println!("- at {coord:?} = {:?}", Screen::new_at(coord));
25 println!("- inside {rect:?} = {:?}", Screen::new_inside(rect));
26
27 println!("\nWork area:");
28 println!("- at {coord:?} = {:?}", Screen::work_area_at(coord));
29 println!("- under the mouse = {:?}", Screen::work_area_mouse());
30
31 println!("\nXYWH:");
32 println!("- at {coord:?} = {:?}", Screen::xywh_at(coord));
33 println!("- inside {rect:?} = {:?}", Screen::xywh_inside(rect));
34 println!("- under the mouse = {:?}", Screen::xywh_mouse());
35
36 println!("\nFor each screen:");
37 for s in screens {
38 println!("+ {s:?}");
39 println!(" - work area = {:?}:", s.work_area());
40 println!(" - dpi = {:?}", s.dpi());
41 println!(" - scale = {:?}", s.scale());
42 }
43}