From b688a25810840c5ebf4bf2c18bbdae52c62f6b4d Mon Sep 17 00:00:00 2001 From: tcmal Date: Sun, 25 Aug 2024 17:44:22 +0100 Subject: feat(render): WIP eGUI integration --- stockton-input/Cargo.toml | 3 ++- stockton-input/src/manager.rs | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) (limited to 'stockton-input') diff --git a/stockton-input/Cargo.toml b/stockton-input/Cargo.toml index fa6507f..57ea6e1 100644 --- a/stockton-input/Cargo.toml +++ b/stockton-input/Cargo.toml @@ -5,4 +5,5 @@ authors = ["Oscar Shrimpton "] edition = "2018" [dependencies] -stockton-types = { path = "../stockton-types" } \ No newline at end of file +stockton-types = { path = "../stockton-types" } +egui = "^0.2" diff --git a/stockton-input/src/manager.rs b/stockton-input/src/manager.rs index f0786b0..663b6b8 100644 --- a/stockton-input/src/manager.rs +++ b/stockton-input/src/manager.rs @@ -23,11 +23,32 @@ pub enum InputMutation { PositiveAxis, } +#[derive(Debug, Clone, Copy)] +pub enum MouseButton { + Left, + Right, + Middle, + Other(u8) +} + +impl MouseButton { + fn keycode(&self) -> u32 { + u32::MAX - match self { + MouseButton::Left => 0, + MouseButton::Right => 1, + MouseButton::Middle => 2, + MouseButton::Other(x) => *x as u32 + } + } +} + /// A key being pressed or released #[derive(Debug, Clone, Copy)] pub enum Action { KeyPress(u32), KeyRelease(u32), + MousePress(MouseButton), + MouseRelease(MouseButton) } impl Action { @@ -35,12 +56,17 @@ impl Action { match self { Action::KeyPress(x) => *x, Action::KeyRelease(x) => *x, + Action::MousePress(x) => x.keycode(), + Action::MouseRelease(x) => x.keycode(), + } } pub fn is_down(&self) -> bool { match self { Action::KeyPress(_) => true, + Action::MousePress(_) => true, Action::KeyRelease(_) => false, + Action::MouseRelease(_) => false, } } } -- cgit v1.2.3