From 9fab4af3f19e78a9417df68ed610c525cec36944 Mon Sep 17 00:00:00 2001 From: KJ Lawrence Date: Fri, 28 May 2021 05:46:23 -0400 Subject: [PATCH] gg: update the mouse click callback to pass what mouse button was clicked too (#10225) --- vlib/gg/enums.v | 7 +++++++ vlib/gg/gg.v | 8 +++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/vlib/gg/enums.v b/vlib/gg/enums.v index f6a215f638..88a1dcb589 100644 --- a/vlib/gg/enums.v +++ b/vlib/gg/enums.v @@ -125,3 +125,10 @@ pub enum KeyCode { right_super = 347 menu = 348 } + +pub enum MouseButton { + left = 0 + right = 1 + middle = 2 + invalid = 256 +} diff --git a/vlib/gg/gg.v b/vlib/gg/gg.v index d1eaa76377..ee2f53e785 100644 --- a/vlib/gg/gg.v +++ b/vlib/gg/gg.v @@ -22,6 +22,8 @@ pub type FNKeyDown = fn (c KeyCode, m Modifier, x voidptr) pub type FNMove = fn (x f32, y f32, z voidptr) +pub type FNClick = fn (x f32, y f32, button MouseButton, z voidptr) + pub type FNChar = fn (c u32, x voidptr) pub struct Event { @@ -32,7 +34,7 @@ pub mut: char_code u32 key_repeat bool modifiers u32 - mouse_button sapp.MouseButton + mouse_button MouseButton mouse_x f32 mouse_y f32 mouse_dx f32 @@ -81,7 +83,7 @@ pub: // special case of event_fn move_fn FNMove = voidptr(0) // special case of event_fn - click_fn FNMove = voidptr(0) + click_fn FNClick = voidptr(0) // special case of event_fn // wait_events bool // set this to true for UIs, to save power fullscreen bool @@ -295,7 +297,7 @@ fn gg_event_fn(ce &C.sapp_event, user_data voidptr) { .mouse_down { if g.config.click_fn != voidptr(0) { cfn := g.config.click_fn - cfn(e.mouse_x / g.scale, e.mouse_y / g.scale, g.config.user_data) + cfn(e.mouse_x / g.scale, e.mouse_y / g.scale, e.mouse_button, g.config.user_data) } } else {}