diff --git a/includes/mlx.h b/includes/mlx.h index 7b6aa0d..7c10776 100644 --- a/includes/mlx.h +++ b/includes/mlx.h @@ -6,7 +6,7 @@ /* By: maldavid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/10/04 16:56:35 by maldavid #+# #+# */ -/* Updated: 2023/11/23 14:32:06 by maldavid ### ########.fr */ +/* Updated: 2023/12/08 12:14:31 by kbz_8 ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,7 +25,8 @@ typedef enum MLX_KEYUP = 1, MLX_MOUSEDOWN = 2, MLX_MOUSEUP = 3, - MLX_WINDOW_EVENT = 4 + MLX_MOUSEWHEEL = 4, + MLX_WINDOW_EVENT = 5 } mlx_event_type; /** diff --git a/src/platform/inputs.cpp b/src/platform/inputs.cpp index 02b5f26..7dce064 100644 --- a/src/platform/inputs.cpp +++ b/src/platform/inputs.cpp @@ -6,7 +6,7 @@ /* By: maldavid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/10/05 16:30:19 by maldavid #+# #+# */ -/* Updated: 2023/08/28 10:49:03 by maldavid ### ########.fr */ +/* Updated: 2023/12/08 12:17:40 by kbz_8 ### ########.fr */ /* */ /* ************************************************************************** */ @@ -77,6 +77,23 @@ namespace mlx break; } + case SDL_MOUSEWHEEL: + { + if(hooks[MLX_MOUSEWHEEL].hook) + { + if(_event.wheel.y > 0) // scroll up + hooks[MLX_MOUSEWHEEL].hook(1, hooks[MLX_MOUSEWHEEL].param); + else if(_event.wheel.y < 0) // scroll down + hooks[MLX_MOUSEWHEEL].hook(2, hooks[MLX_MOUSEWHEEL].param); + + if(_event.wheel.x > 0) // scroll right + hooks[MLX_MOUSEWHEEL].hook(3, hooks[MLX_MOUSEWHEEL].param); + else if(_event.wheel.x < 0) // scroll left + hooks[MLX_MOUSEWHEEL].hook(4, hooks[MLX_MOUSEWHEEL].param); + } + break; + } + case SDL_WINDOWEVENT: { auto& win_hook = hooks[MLX_WINDOW_EVENT]; diff --git a/src/platform/inputs.h b/src/platform/inputs.h index 60c98d1..030171c 100644 --- a/src/platform/inputs.h +++ b/src/platform/inputs.h @@ -6,7 +6,7 @@ /* By: maldavid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/10/05 16:27:35 by maldavid #+# #+# */ -/* Updated: 2023/04/19 12:14:43 by maldavid ### ########.fr */ +/* Updated: 2023/12/08 12:14:39 by kbz_8 ### ########.fr */ /* */ /* ************************************************************************** */ @@ -68,7 +68,7 @@ namespace mlx private: std::array _keys; std::unordered_map> _windows; - std::unordered_map> _events_hooks; + std::unordered_map> _events_hooks; SDL_Event _event; std::array _mouse; diff --git a/test/main.c b/test/main.c index 4326b30..e1e107b 100644 --- a/test/main.c +++ b/test/main.c @@ -6,7 +6,7 @@ /* By: maldavid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/10/04 17:55:21 by maldavid #+# #+# */ -/* Updated: 2023/11/25 11:57:57 by maldavid ### ########.fr */ +/* Updated: 2023/12/08 12:23:07 by kbz_8 ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/xmake.lua b/xmake.lua deleted file mode 100644 index 506e27c..0000000 --- a/xmake.lua +++ /dev/null @@ -1,38 +0,0 @@ --------------------------------------------------------------------------------- --- -- --- ::: :::::::: -- --- xmake.lua :+: :+: :+: -- --- +:+ +:+ +:+ -- --- By: kbz_8 +#+ +:+ +#+ -- --- +#+#+#+#+#+ +#+ -- --- Created: 2023/12/07 15:21:38 by kbz_8 #+# #+# -- --- Updated: 2023/12/07 15:21:38 by kbz_8 ### ########.fr -- --- -- --------------------------------------------------------------------------------- - --- Global settings - -add_requires("libsdl", "vulkan-headers") - -add_rules("mode.debug", "mode.release") -set_languages("cxx17") - -set_objectdir("objs/xmake/$(os)_$(arch)") -set_targetdir("./") - -set_optimize("fastest") - -target("libmlx") - set_default(true) - set_license("MIT") - set_kind("shared") - add_includedirs("includes", "srcs", "third_party") - - add_files("srcs/**.cpp") - - add_packages("libsdl", "vulkan-headers") - - if is_mode("debug") then - add_defines("DEBUG") - end -target_end() -- optional but I think the code is cleaner with this -- optional but I think the code is cleaner with this