Skip to content

Commit fd8e98f

Browse files
committed
adding mouse wheel support
1 parent 0e10e5f commit fd8e98f

File tree

5 files changed

+24
-44
lines changed

5 files changed

+24
-44
lines changed

includes/mlx.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2022/10/04 16:56:35 by maldavid #+# #+# */
9-
/* Updated: 2023/11/23 14:32:06 by maldavid ### ########.fr */
9+
/* Updated: 2023/12/08 12:14:31 by kbz_8 ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -25,7 +25,8 @@ typedef enum
2525
MLX_KEYUP = 1,
2626
MLX_MOUSEDOWN = 2,
2727
MLX_MOUSEUP = 3,
28-
MLX_WINDOW_EVENT = 4
28+
MLX_MOUSEWHEEL = 4,
29+
MLX_WINDOW_EVENT = 5
2930
} mlx_event_type;
3031

3132
/**

src/platform/inputs.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2022/10/05 16:30:19 by maldavid #+# #+# */
9-
/* Updated: 2023/08/28 10:49:03 by maldavid ### ########.fr */
9+
/* Updated: 2023/12/08 12:17:40 by kbz_8 ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -77,6 +77,23 @@ namespace mlx
7777
break;
7878
}
7979

80+
case SDL_MOUSEWHEEL:
81+
{
82+
if(hooks[MLX_MOUSEWHEEL].hook)
83+
{
84+
if(_event.wheel.y > 0) // scroll up
85+
hooks[MLX_MOUSEWHEEL].hook(1, hooks[MLX_MOUSEWHEEL].param);
86+
else if(_event.wheel.y < 0) // scroll down
87+
hooks[MLX_MOUSEWHEEL].hook(2, hooks[MLX_MOUSEWHEEL].param);
88+
89+
if(_event.wheel.x > 0) // scroll right
90+
hooks[MLX_MOUSEWHEEL].hook(3, hooks[MLX_MOUSEWHEEL].param);
91+
else if(_event.wheel.x < 0) // scroll left
92+
hooks[MLX_MOUSEWHEEL].hook(4, hooks[MLX_MOUSEWHEEL].param);
93+
}
94+
break;
95+
}
96+
8097
case SDL_WINDOWEVENT:
8198
{
8299
auto& win_hook = hooks[MLX_WINDOW_EVENT];

src/platform/inputs.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2022/10/05 16:27:35 by maldavid #+# #+# */
9-
/* Updated: 2023/04/19 12:14:43 by maldavid ### ########.fr */
9+
/* Updated: 2023/12/08 12:14:39 by kbz_8 ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -68,7 +68,7 @@ namespace mlx
6868
private:
6969
std::array<uint8_t, SDL_NUM_SCANCODES> _keys;
7070
std::unordered_map<uint32_t, std::shared_ptr<MLX_Window>> _windows;
71-
std::unordered_map<uint32_t, std::array<Hook, 5>> _events_hooks;
71+
std::unordered_map<uint32_t, std::array<Hook, 6>> _events_hooks;
7272
SDL_Event _event;
7373
std::array<uint8_t, 8> _mouse;
7474

test/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2022/10/04 17:55:21 by maldavid #+# #+# */
9-
/* Updated: 2023/11/25 11:57:57 by maldavid ### ########.fr */
9+
/* Updated: 2023/12/08 12:23:07 by kbz_8 ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

xmake.lua

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)