mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-10-26 12:27:30 +00:00 
			
		
		
		
	Examples: Allegro, Apple, DirectX9/10/11, Glfw+Vulkan :Added support for horizontal mouse wheel. (#1463)
This commit is contained in:
		| @@ -215,6 +215,7 @@ bool ImGui_ImplA5_ProcessEvent(ALLEGRO_EVENT *ev) | |||||||
|     { |     { | ||||||
|     case ALLEGRO_EVENT_MOUSE_AXES: |     case ALLEGRO_EVENT_MOUSE_AXES: | ||||||
|         io.MouseWheel += ev->mouse.dz; |         io.MouseWheel += ev->mouse.dz; | ||||||
|  |         io.MouseWheelH += ev->mouse.dw; | ||||||
|         return true; |         return true; | ||||||
|     case ALLEGRO_EVENT_KEY_CHAR: |     case ALLEGRO_EVENT_KEY_CHAR: | ||||||
|         if (ev->keyboard.display == g_Display) |         if (ev->keyboard.display == g_Display) | ||||||
|   | |||||||
| @@ -587,9 +587,9 @@ void ImGui_ClipboardCallback(uSynergyCookie cookie, enum uSynergyClipboardFormat | |||||||
|             io.MouseDown[i] = g_MousePressed[i]; |             io.MouseDown[i] = g_MousePressed[i]; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // This is an arbitrary scaling factor that works for me. Not sure what units these |         // This is an arbitrary scaling factor that works for me. Not sure what units these mousewheel values from synergy are supposed to be in. | ||||||
|         // mousewheel values from synergy are supposed to be in |  | ||||||
|         io.MouseWheel = g_mouseWheelY / 500.0; |         io.MouseWheel = g_mouseWheelY / 500.0; | ||||||
|  |         io.MouseWheelH = g_mouseWheelX / 500.0; | ||||||
|     } |     } | ||||||
|     else |     else | ||||||
|     { |     { | ||||||
|   | |||||||
| @@ -275,6 +275,9 @@ IMGUI_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hwnd, UINT msg, WPARAM wPa | |||||||
|     case WM_MOUSEWHEEL: |     case WM_MOUSEWHEEL: | ||||||
|         io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; |         io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; | ||||||
|         return 0; |         return 0; | ||||||
|  |     case WM_MOUSEHWHEEL: | ||||||
|  |         io.MouseWheelH += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; | ||||||
|  |         return 0; | ||||||
|     case WM_MOUSEMOVE: |     case WM_MOUSEMOVE: | ||||||
|         io.MousePos.x = (signed short)(lParam); |         io.MousePos.x = (signed short)(lParam); | ||||||
|         io.MousePos.y = (signed short)(lParam >> 16); |         io.MousePos.y = (signed short)(lParam >> 16); | ||||||
|   | |||||||
| @@ -282,6 +282,9 @@ IMGUI_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hwnd, UINT msg, WPARAM wPa | |||||||
|     case WM_MOUSEWHEEL: |     case WM_MOUSEWHEEL: | ||||||
|         io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; |         io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; | ||||||
|         return 0; |         return 0; | ||||||
|  |     case WM_MOUSEHWHEEL: | ||||||
|  |         io.MouseWheelH += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; | ||||||
|  |         return 0; | ||||||
|     case WM_MOUSEMOVE: |     case WM_MOUSEMOVE: | ||||||
|         io.MousePos.x = (signed short)(lParam); |         io.MousePos.x = (signed short)(lParam); | ||||||
|         io.MousePos.y = (signed short)(lParam >> 16); |         io.MousePos.y = (signed short)(lParam >> 16); | ||||||
|   | |||||||
| @@ -221,6 +221,9 @@ IMGUI_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hwnd, UINT msg, WPARAM wPa | |||||||
|     case WM_MOUSEWHEEL: |     case WM_MOUSEWHEEL: | ||||||
|         io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; |         io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; | ||||||
|         return 0; |         return 0; | ||||||
|  |     case WM_MOUSEHWHEEL: | ||||||
|  |         io.MouseWheelH += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; | ||||||
|  |         return 0; | ||||||
|     case WM_MOUSEMOVE: |     case WM_MOUSEMOVE: | ||||||
|         io.MousePos.x = (signed short)(lParam); |         io.MousePos.x = (signed short)(lParam); | ||||||
|         io.MousePos.y = (signed short)(lParam >> 16); |         io.MousePos.y = (signed short)(lParam >> 16); | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ | |||||||
| static GLFWwindow*  g_Window = NULL; | static GLFWwindow*  g_Window = NULL; | ||||||
| static double       g_Time = 0.0f; | static double       g_Time = 0.0f; | ||||||
| static bool         g_MousePressed[3] = { false, false, false }; | static bool         g_MousePressed[3] = { false, false, false }; | ||||||
| static float        g_MouseWheel = 0.0f; | static ImVec2       g_MouseWheel = ImVec2(0.0f, 0.0f); | ||||||
|  |  | ||||||
| // Vulkan Data | // Vulkan Data | ||||||
| static VkAllocationCallbacks* g_Allocator = NULL; | static VkAllocationCallbacks* g_Allocator = NULL; | ||||||
| @@ -330,9 +330,10 @@ void ImGui_ImplGlfwVulkan_MouseButtonCallback(GLFWwindow*, int button, int actio | |||||||
|         g_MousePressed[button] = true; |         g_MousePressed[button] = true; | ||||||
| } | } | ||||||
|  |  | ||||||
| void ImGui_ImplGlfwVulkan_ScrollCallback(GLFWwindow*, double /*xoffset*/, double yoffset) | void ImGui_ImplGlfwVulkan_ScrollCallback(GLFWwindow*, double xoffset, double yoffset) | ||||||
| { | { | ||||||
|     g_MouseWheel += (float)yoffset; // Use fractional mouse wheel. |     g_MouseWheel.x += (float)xoffset; // Use fractional mouse wheel. | ||||||
|  |     g_MouseWheel.y += (float)yoffset; | ||||||
| } | } | ||||||
|  |  | ||||||
| void ImGui_ImplGlfwVulkan_KeyCallback(GLFWwindow*, int key, int, int action, int mods) | void ImGui_ImplGlfwVulkan_KeyCallback(GLFWwindow*, int key, int, int action, int mods) | ||||||
| @@ -825,8 +826,9 @@ void ImGui_ImplGlfwVulkan_NewFrame() | |||||||
|         g_MousePressed[i] = false; |         g_MousePressed[i] = false; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     io.MouseWheel = g_MouseWheel; |     io.MouseWheel = g_MouseWheel.y; | ||||||
|     g_MouseWheel = 0.0f; |     io.MouseWheelH = g_MouseWheel.x; | ||||||
|  |     g_MouseWheel.x = g_MouseWheel.x = 0.0f; | ||||||
|  |  | ||||||
|     // Hide OS mouse cursor if ImGui is drawing it |     // Hide OS mouse cursor if ImGui is drawing it | ||||||
|     glfwSetInputMode(g_Window, GLFW_CURSOR, io.MouseDrawCursor ? GLFW_CURSOR_HIDDEN : GLFW_CURSOR_NORMAL); |     glfwSetInputMode(g_Window, GLFW_CURSOR, io.MouseDrawCursor ? GLFW_CURSOR_HIDDEN : GLFW_CURSOR_NORMAL); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 omar
					omar