Implement new ControlFlow and associated events

This commit is contained in:
Osspial
2018-08-17 17:31:04 -04:00
parent 8b8a7675ec
commit 02f922f003
14 changed files with 237 additions and 131 deletions

View File

@@ -3,14 +3,14 @@ extern crate winit;
use winit::{Event, EventLoop, ElementState, MouseCursor, WindowEvent, KeyboardInput, ControlFlow};
fn main() {
let mut events_loop = EventLoop::new();
let events_loop = EventLoop::new();
let window = winit::WindowBuilder::new().build(&events_loop).unwrap();
window.set_title("A fantastic window!");
let mut cursor_idx = 0;
events_loop.run_forever(move |event, _: &EventLoop| {
events_loop.run(move |event, _, control_flow| {
match event {
Event::WindowEvent { event: WindowEvent::KeyboardInput { input: KeyboardInput { state: ElementState::Pressed, .. }, .. }, .. } => {
println!("Setting cursor to \"{:?}\"", CURSORS[cursor_idx]);
@@ -22,11 +22,11 @@ fn main() {
}
},
Event::WindowEvent { event: WindowEvent::CloseRequested, .. } => {
return ControlFlow::Break;
*control_flow = ControlFlow::Exit;
return;
},
_ => ()
}
ControlFlow::Continue
});
}

View File

@@ -1,18 +1,19 @@
extern crate winit;
fn main() {
let mut events_loop = winit::EventLoop::new();
let events_loop = winit::EventLoop::new();
let window = winit::WindowBuilder::new()
.with_title("Super Cursor Grab'n'Hide Simulator 9000")
.build(&events_loop)
.unwrap();
events_loop.run_forever(move |event, _: &winit::EventLoop| {
events_loop.run(move |event, _, control_flow| {
*control_flow = winit::ControlFlow::Wait;
if let winit::Event::WindowEvent { event, .. } = event {
use winit::WindowEvent::*;
match event {
CloseRequested => return winit::ControlFlow::Break,
CloseRequested => *control_flow = winit::ControlFlow::Exit,
KeyboardInput {
input: winit::KeyboardInput {
state: winit::ElementState::Released,
@@ -24,7 +25,7 @@ fn main() {
} => {
use winit::VirtualKeyCode::*;
match key {
Escape => return winit::ControlFlow::Break,
Escape => *control_flow = winit::ControlFlow::Exit,
G => window.grab_cursor(!modifiers.shift).unwrap(),
H => window.hide_cursor(!modifiers.shift),
_ => (),
@@ -33,6 +34,5 @@ fn main() {
_ => (),
}
}
winit::ControlFlow::Continue
});
}

View File

@@ -4,7 +4,7 @@ use std::io::{self, Write};
use winit::{ControlFlow, Event, WindowEvent};
fn main() {
let mut events_loop = winit::EventLoop::new();
let events_loop = winit::EventLoop::new();
// enumerating monitors
let monitor = {
@@ -35,12 +35,13 @@ fn main() {
let mut is_maximized = false;
let mut decorations = true;
events_loop.run_forever(move |event, _: &winit::EventLoop| {
events_loop.run(move |event, _, control_flow| {
println!("{:?}", event);
*control_flow = ControlFlow::Wait;
match event {
Event::WindowEvent { event, .. } => match event {
WindowEvent::CloseRequested => return ControlFlow::Break,
WindowEvent::CloseRequested => *control_flow = ControlFlow::Exit,
WindowEvent::KeyboardInput {
input:
winit::KeyboardInput {
@@ -50,7 +51,7 @@ fn main() {
},
..
} => match (virtual_code, state) {
(winit::VirtualKeyCode::Escape, _) => return ControlFlow::Break,
(winit::VirtualKeyCode::Escape, _) => *control_flow = ControlFlow::Exit,
(winit::VirtualKeyCode::F, winit::ElementState::Pressed) => {
is_fullscreen = !is_fullscreen;
if !is_fullscreen {
@@ -73,7 +74,5 @@ fn main() {
},
_ => {}
}
ControlFlow::Continue
});
}

View File

@@ -1,7 +1,7 @@
extern crate winit;
fn main() {
let mut events_loop = winit::EventLoop::new();
let events_loop = winit::EventLoop::new();
let _window = winit::WindowBuilder::new()
.with_title("Your faithful window")
@@ -10,7 +10,7 @@ fn main() {
let mut close_requested = false;
events_loop.run_forever(move |event, _: &winit::EventLoop| {
events_loop.run(move |event, _, control_flow| {
use winit::WindowEvent::*;
use winit::ElementState::Released;
use winit::VirtualKeyCode::{N, Y};
@@ -53,7 +53,7 @@ fn main() {
// event loop (i.e. if it's a multi-window application), you need to
// drop the window. That closes it, and results in `Destroyed` being
// sent.
return winit::ControlFlow::Break;
*control_flow = winit::ControlFlow::Exit;
}
}
N => {
@@ -69,6 +69,6 @@ fn main() {
_ => (),
}
winit::ControlFlow::Continue
*control_flow = winit::ControlFlow::Wait;
});
}

View File

@@ -3,7 +3,7 @@ extern crate winit;
use winit::dpi::LogicalSize;
fn main() {
let mut events_loop = winit::EventLoop::new();
let events_loop = winit::EventLoop::new();
let window = winit::WindowBuilder::new()
.build(&events_loop)
@@ -12,12 +12,13 @@ fn main() {
window.set_min_dimensions(Some(LogicalSize::new(400.0, 200.0)));
window.set_max_dimensions(Some(LogicalSize::new(800.0, 400.0)));
events_loop.run_forever(move |event, _: &winit::EventLoop| {
events_loop.run(move |event, _, control_flow| {
println!("{:?}", event);
match event {
winit::Event::WindowEvent { event: winit::WindowEvent::CloseRequested, .. } => winit::ControlFlow::Break,
_ => winit::ControlFlow::Continue,
winit::Event::WindowEvent { event: winit::WindowEvent::CloseRequested, .. } =>
*control_flow = winit::ControlFlow::Exit,
_ => *control_flow = winit::ControlFlow::Wait,
}
});
}

View File

@@ -3,7 +3,7 @@ extern crate winit;
use std::collections::HashMap;
fn main() {
let mut events_loop = winit::EventLoop::new();
let events_loop = winit::EventLoop::new();
let mut windows = HashMap::new();
for _ in 0..3 {
@@ -11,7 +11,8 @@ fn main() {
windows.insert(window.id(), window);
}
events_loop.run_forever(move |event, events_loop: &winit::EventLoop| {
events_loop.run(move |event, events_loop, control_flow| {
*control_flow = winit::ControlFlow::Wait;
match event {
winit::Event::WindowEvent { event, window_id } => {
match event {
@@ -22,7 +23,7 @@ fn main() {
windows.remove(&window_id);
if windows.is_empty() {
return winit::ControlFlow::Break;
*control_flow = winit::ControlFlow::Exit;
}
},
winit::WindowEvent::KeyboardInput{..} => {
@@ -34,6 +35,5 @@ fn main() {
}
_ => (),
}
winit::ControlFlow::Continue
})
}

View File

@@ -1,7 +1,7 @@
extern crate winit;
fn main() {
let mut events_loop = winit::EventLoop::new();
let events_loop = winit::EventLoop::new();
let _window = winit::WindowBuilder::new()
.with_title("A fantastic window!")
@@ -18,12 +18,12 @@ fn main() {
}
});
events_loop.run_forever(move |event, _: &winit::EventLoop| {
events_loop.run(move |event, _, control_flow| {
println!("{:?}", event);
match event {
winit::Event::WindowEvent { event: winit::WindowEvent::CloseRequested, .. } =>
winit::ControlFlow::Break,
_ => winit::ControlFlow::Continue,
*control_flow = winit::ControlFlow::Wait,
_ => *control_flow = winit::ControlFlow::Wait,
}
});
}

View File

@@ -1,7 +1,7 @@
extern crate winit;
fn main() {
let mut events_loop = winit::EventLoop::new();
let events_loop = winit::EventLoop::new();
let mut resizable = false;
@@ -12,10 +12,11 @@ fn main() {
.build(&events_loop)
.unwrap();
events_loop.run_forever(move |event, _: &winit::EventLoop| {
events_loop.run(move |event, _, control_flow| {
*control_flow = winit::ControlFlow::Wait;
match event {
winit::Event::WindowEvent { event, .. } => match event {
winit::WindowEvent::CloseRequested => return winit::ControlFlow::Break,
winit::WindowEvent::CloseRequested => *control_flow = winit::ControlFlow::Exit,
winit::WindowEvent::KeyboardInput {
input:
winit::KeyboardInput {
@@ -33,6 +34,5 @@ fn main() {
},
_ => (),
};
winit::ControlFlow::Continue
});
}

View File

@@ -1,7 +1,7 @@
extern crate winit;
fn main() {
let mut events_loop = winit::EventLoop::new();
let events_loop = winit::EventLoop::new();
let window = winit::WindowBuilder::new().with_decorations(false)
.with_transparency(true)
@@ -9,12 +9,13 @@ fn main() {
window.set_title("A fantastic window!");
events_loop.run_forever(move |event, _: &winit::EventLoop| {
events_loop.run(move |event, _, control_flow| {
println!("{:?}", event);
match event {
winit::Event::WindowEvent { event: winit::WindowEvent::CloseRequested, .. } => winit::ControlFlow::Break,
_ => winit::ControlFlow::Continue,
winit::Event::WindowEvent { event: winit::WindowEvent::CloseRequested, .. } =>
*control_flow = winit::ControlFlow::Exit,
_ => *control_flow = winit::ControlFlow::Wait,
}
});
}

View File

@@ -8,15 +8,15 @@ fn main() {
.build(&events_loop)
.unwrap();
events_loop.run_forever(move |event, _: &winit::EventLoop| {
events_loop.run(move |event, _, control_flow| {
println!("{:?}", event);
match event {
winit::Event::WindowEvent {
event: winit::WindowEvent::CloseRequested,
..
} => winit::ControlFlow::Break,
_ => winit::ControlFlow::Continue,
} => *control_flow = winit::ControlFlow::Exit,
_ => *control_flow = winit::ControlFlow::Wait,
}
});
}

View File

@@ -20,7 +20,7 @@ fn main() {
// feature enabled).
let icon = Icon::from_path(path).expect("Failed to open icon");
let mut events_loop = winit::EventLoop::new();
let events_loop = winit::EventLoop::new();
let window = winit::WindowBuilder::new()
.with_title("An iconic window!")
@@ -30,11 +30,12 @@ fn main() {
.build(&events_loop)
.unwrap();
events_loop.run_forever(move |event, _: &EventLoop| {
events_loop.run(move |event, _, control_flow| {
*control_flow = winit::ControlFlow::Wait;
if let winit::Event::WindowEvent { event, .. } = event {
use winit::WindowEvent::*;
match event {
CloseRequested => return winit::ControlFlow::Break,
CloseRequested => *control_flow = winit::ControlFlow::Exit,
DroppedFile(path) => {
use image::GenericImageView;
@@ -81,7 +82,6 @@ fn main() {
_ => (),
}
}
winit::ControlFlow::Continue
});
}