1 use winit::{
2     dpi::LogicalSize,
3     event::{ElementState, Event, KeyboardInput, VirtualKeyCode, WindowEvent},
4     event_loop::{ControlFlow, EventLoop},
5     window::WindowBuilder,
6 };
7 
main()8 fn main() {
9     simple_logger::init().unwrap();
10     let event_loop = EventLoop::new();
11 
12     let mut resizable = false;
13 
14     let window = WindowBuilder::new()
15         .with_title("Hit space to toggle resizability.")
16         .with_inner_size(LogicalSize::new(400.0, 200.0))
17         .with_resizable(resizable)
18         .build(&event_loop)
19         .unwrap();
20 
21     event_loop.run(move |event, _, control_flow| {
22         *control_flow = ControlFlow::Wait;
23 
24         match event {
25             Event::WindowEvent { event, .. } => match event {
26                 WindowEvent::CloseRequested => *control_flow = ControlFlow::Exit,
27                 WindowEvent::KeyboardInput {
28                     input:
29                         KeyboardInput {
30                             virtual_keycode: Some(VirtualKeyCode::Space),
31                             state: ElementState::Released,
32                             ..
33                         },
34                     ..
35                 } => {
36                     resizable = !resizable;
37                     println!("Resizable: {}", resizable);
38                     window.set_resizable(resizable);
39                 }
40                 _ => (),
41             },
42             _ => (),
43         };
44     });
45 }
46