mirror of
https://github.com/griffi-gh/hUI.git
synced 2024-11-25 08:28:42 -06:00
add support for winit 0.30
This commit is contained in:
parent
e7b2a8ff69
commit
3a50d2d0dd
|
@ -90,7 +90,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<code>hui-winit = <master></code><br>
|
||||
<code>winit = "0.29"</code>
|
||||
<code>winit = "0.30"</code> or <code>winit = "0.29"</code>
|
||||
</td>
|
||||
<td align="center">(support planned)</td>
|
||||
</tr>
|
||||
|
|
|
@ -8,7 +8,7 @@ publish = false
|
|||
[dev-dependencies]
|
||||
hui = { path = "../hui" }
|
||||
hui-glium = { path = "../hui-glium" }
|
||||
hui-winit = { path = "../hui-winit" }
|
||||
hui-winit = { path = "../hui-winit", features = ["winit_29"] }
|
||||
kubi-logging = { git = "https://github.com/griffi-gh/kubi", rev = "c162893fd" }
|
||||
glium = "0.34"
|
||||
winit = "0.29"
|
||||
|
|
|
@ -15,6 +15,12 @@ include = [
|
|||
|
||||
[dependencies]
|
||||
hui = { version = "=0.1.0-alpha.5", path = "../hui", default-features = false }
|
||||
winit = { version = "0.29", default-features = false }
|
||||
winit_30 = { package = "winit", version = "0.30", default-features = false, optional = true }
|
||||
winit_29 = { package = "winit", version = "0.29", default-features = false, optional = true }
|
||||
glam = "0.27"
|
||||
log = "0.4"
|
||||
|
||||
[features]
|
||||
default = []
|
||||
winit_30 = ["dep:winit_30"]
|
||||
winit_29 = ["dep:winit_29"]
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
#[cfg(all(feature = "winit_30", feature = "winit_29"))]
|
||||
compile_error!("Only one of the winit_30 and winit_29 features can be enabled at a time");
|
||||
#[cfg(not(any(feature = "winit_30", feature = "winit_29")))]
|
||||
compile_error!("One of the winit_30 and winit_29 features must be enabled");
|
||||
#[cfg(feature = "winit_30")] extern crate winit_30 as winit;
|
||||
#[cfg(feature = "winit_29")] extern crate winit_29 as winit;
|
||||
|
||||
use glam::vec2;
|
||||
use hui::{event::UiEvent, UiInstance};
|
||||
use winit::event::{Event, WindowEvent};
|
||||
use winit::event::{Event, WindowEvent, MouseButton, ElementState};
|
||||
|
||||
//TODO: check window id
|
||||
pub fn handle_winit_event<T>(ui: &mut UiInstance, event: &Event<T>) {
|
||||
|
@ -12,15 +19,15 @@ pub fn handle_winit_event<T>(ui: &mut UiInstance, event: &Event<T>) {
|
|||
WindowEvent::MouseInput { state, button, .. } => {
|
||||
ui.push_event(UiEvent::MouseButton {
|
||||
button: match button {
|
||||
winit::event::MouseButton::Left => hui::input::MouseButton::Primary,
|
||||
winit::event::MouseButton::Right => hui::input::MouseButton::Secondary,
|
||||
winit::event::MouseButton::Middle => hui::input::MouseButton::Middle,
|
||||
winit::event::MouseButton::Other(id) => hui::input::MouseButton::Other(*id as u8),
|
||||
MouseButton::Left => hui::input::MouseButton::Primary,
|
||||
MouseButton::Right => hui::input::MouseButton::Secondary,
|
||||
MouseButton::Middle => hui::input::MouseButton::Middle,
|
||||
MouseButton::Other(id) => hui::input::MouseButton::Other(*id as u8),
|
||||
_ => return,
|
||||
},
|
||||
state: match state {
|
||||
winit::event::ElementState::Pressed => hui::input::ButtonState::Pressed,
|
||||
winit::event::ElementState::Released => hui::input::ButtonState::Released,
|
||||
ElementState::Pressed => hui::input::ButtonState::Pressed,
|
||||
ElementState::Released => hui::input::ButtonState::Released,
|
||||
},
|
||||
})
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue