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> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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];
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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<uint8_t, SDL_NUM_SCANCODES> _keys;
|
||||
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;
|
||||
std::array<uint8_t, 8> _mouse;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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