mirror of
https://github.com/seekrs/MacroLibX.git
synced 2026-01-11 14:43:34 +00:00
adding mouse wheel support
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/10/04 16:56:35 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_KEYUP = 1,
|
||||||
MLX_MOUSEDOWN = 2,
|
MLX_MOUSEDOWN = 2,
|
||||||
MLX_MOUSEUP = 3,
|
MLX_MOUSEUP = 3,
|
||||||
MLX_WINDOW_EVENT = 4
|
MLX_MOUSEWHEEL = 4,
|
||||||
|
MLX_WINDOW_EVENT = 5
|
||||||
} mlx_event_type;
|
} mlx_event_type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/10/05 16:30:19 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;
|
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:
|
case SDL_WINDOWEVENT:
|
||||||
{
|
{
|
||||||
auto& win_hook = hooks[MLX_WINDOW_EVENT];
|
auto& win_hook = hooks[MLX_WINDOW_EVENT];
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/10/05 16:27:35 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:
|
private:
|
||||||
std::array<uint8_t, SDL_NUM_SCANCODES> _keys;
|
std::array<uint8_t, SDL_NUM_SCANCODES> _keys;
|
||||||
std::unordered_map<uint32_t, std::shared_ptr<MLX_Window>> _windows;
|
std::unordered_map<uint32_t, std::shared_ptr<MLX_Window>> _windows;
|
||||||
std::unordered_map<uint32_t, std::array<Hook, 5>> _events_hooks;
|
std::unordered_map<uint32_t, std::array<Hook, 6>> _events_hooks;
|
||||||
SDL_Event _event;
|
SDL_Event _event;
|
||||||
std::array<uint8_t, 8> _mouse;
|
std::array<uint8_t, 8> _mouse;
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/10/04 17:55:21 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 */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|||||||
38
xmake.lua
38
xmake.lua
@@ -1,38 +0,0 @@
|
|||||||
--------------------------------------------------------------------------------
|
|
||||||
-- --
|
|
||||||
-- ::: :::::::: --
|
|
||||||
-- xmake.lua :+: :+: :+: --
|
|
||||||
-- +:+ +:+ +:+ --
|
|
||||||
-- By: kbz_8 </var/spool/mail/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
|
|
||||||
Reference in New Issue
Block a user