mirror of
https://github.com/griffi-gh/hUI.git
synced 2024-11-26 00:48:44 -06:00
Compare commits
2 commits
2863bbdf8a
...
3a50d2d0dd
Author | SHA1 | Date | |
---|---|---|---|
griffi-gh | 3a50d2d0dd | ||
griffi-gh | e7b2a8ff69 |
|
@ -90,7 +90,7 @@
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<code>hui-winit = <master></code><br>
|
<code>hui-winit = <master></code><br>
|
||||||
<code>winit = "0.29"</code>
|
<code>winit = "0.30"</code> or <code>winit = "0.29"</code>
|
||||||
</td>
|
</td>
|
||||||
<td align="center">(support planned)</td>
|
<td align="center">(support planned)</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -8,7 +8,7 @@ publish = false
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
hui = { path = "../hui" }
|
hui = { path = "../hui" }
|
||||||
hui-glium = { path = "../hui-glium" }
|
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" }
|
kubi-logging = { git = "https://github.com/griffi-gh/kubi", rev = "c162893fd" }
|
||||||
glium = "0.34"
|
glium = "0.34"
|
||||||
winit = "0.29"
|
winit = "0.29"
|
||||||
|
|
|
@ -15,6 +15,12 @@ include = [
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
hui = { version = "=0.1.0-alpha.5", path = "../hui", default-features = false }
|
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"
|
glam = "0.27"
|
||||||
log = "0.4"
|
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 glam::vec2;
|
||||||
use hui::{event::UiEvent, UiInstance};
|
use hui::{event::UiEvent, UiInstance};
|
||||||
use winit::event::{Event, WindowEvent};
|
use winit::event::{Event, WindowEvent, MouseButton, ElementState};
|
||||||
|
|
||||||
//TODO: check window id
|
//TODO: check window id
|
||||||
pub fn handle_winit_event<T>(ui: &mut UiInstance, event: &Event<T>) {
|
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, .. } => {
|
WindowEvent::MouseInput { state, button, .. } => {
|
||||||
ui.push_event(UiEvent::MouseButton {
|
ui.push_event(UiEvent::MouseButton {
|
||||||
button: match button {
|
button: match button {
|
||||||
winit::event::MouseButton::Left => hui::input::MouseButton::Primary,
|
MouseButton::Left => hui::input::MouseButton::Primary,
|
||||||
winit::event::MouseButton::Right => hui::input::MouseButton::Secondary,
|
MouseButton::Right => hui::input::MouseButton::Secondary,
|
||||||
winit::event::MouseButton::Middle => hui::input::MouseButton::Middle,
|
MouseButton::Middle => hui::input::MouseButton::Middle,
|
||||||
winit::event::MouseButton::Other(id) => hui::input::MouseButton::Other(*id as u8),
|
MouseButton::Other(id) => hui::input::MouseButton::Other(*id as u8),
|
||||||
_ => return,
|
_ => return,
|
||||||
},
|
},
|
||||||
state: match state {
|
state: match state {
|
||||||
winit::event::ElementState::Pressed => hui::input::ButtonState::Pressed,
|
ElementState::Pressed => hui::input::ButtonState::Pressed,
|
||||||
winit::event::ElementState::Released => hui::input::ButtonState::Released,
|
ElementState::Released => hui::input::ButtonState::Released,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
|
@ -25,6 +25,9 @@ impl Frame for ImageHandle {
|
||||||
|
|
||||||
impl Frame for FillColor {
|
impl Frame for FillColor {
|
||||||
fn draw(&self, draw: &mut UiDrawCommandList, rect: Rect) {
|
fn draw(&self, draw: &mut UiDrawCommandList, rect: Rect) {
|
||||||
|
if self.is_transparent() {
|
||||||
|
return
|
||||||
|
}
|
||||||
draw.add(UiDrawCommand::Rectangle {
|
draw.add(UiDrawCommand::Rectangle {
|
||||||
position: rect.position,
|
position: rect.position,
|
||||||
size: rect.size,
|
size: rect.size,
|
||||||
|
|
|
@ -116,6 +116,9 @@ impl Default for RectFrame {
|
||||||
|
|
||||||
impl Frame for RectFrame {
|
impl Frame for RectFrame {
|
||||||
fn draw(&self, draw: &mut UiDrawCommandList, rect: Rect) {
|
fn draw(&self, draw: &mut UiDrawCommandList, rect: Rect) {
|
||||||
|
if self.color.is_transparent() {
|
||||||
|
return
|
||||||
|
}
|
||||||
//TODO: handle bottom_right < top_left
|
//TODO: handle bottom_right < top_left
|
||||||
let top_left = self.top_left.resolve(rect.size);
|
let top_left = self.top_left.resolve(rect.size);
|
||||||
let bottom_right = self.bottom_right.resolve(rect.size);
|
let bottom_right = self.bottom_right.resolve(rect.size);
|
||||||
|
|
Loading…
Reference in a new issue