mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-11-04 01:34:32 +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:
 | 
			
		||||
        io.MouseWheel += ev->mouse.dz;
 | 
			
		||||
        io.MouseWheelH += ev->mouse.dw;
 | 
			
		||||
        return true;
 | 
			
		||||
    case ALLEGRO_EVENT_KEY_CHAR:
 | 
			
		||||
        if (ev->keyboard.display == g_Display)
 | 
			
		||||
 
 | 
			
		||||
@@ -587,9 +587,9 @@ void ImGui_ClipboardCallback(uSynergyCookie cookie, enum uSynergyClipboardFormat
 | 
			
		||||
            io.MouseDown[i] = g_MousePressed[i];
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // This is an arbitrary scaling factor that works for me. Not sure what units these
 | 
			
		||||
        // mousewheel values from synergy are supposed to be in
 | 
			
		||||
        // This is an arbitrary scaling factor that works for me. Not sure what units these mousewheel values from synergy are supposed to be in.
 | 
			
		||||
        io.MouseWheel = g_mouseWheelY / 500.0;
 | 
			
		||||
        io.MouseWheelH = g_mouseWheelX / 500.0;
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -275,6 +275,9 @@ IMGUI_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hwnd, UINT msg, WPARAM wPa
 | 
			
		||||
    case WM_MOUSEWHEEL:
 | 
			
		||||
        io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f;
 | 
			
		||||
        return 0;
 | 
			
		||||
    case WM_MOUSEHWHEEL:
 | 
			
		||||
        io.MouseWheelH += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f;
 | 
			
		||||
        return 0;
 | 
			
		||||
    case WM_MOUSEMOVE:
 | 
			
		||||
        io.MousePos.x = (signed short)(lParam);
 | 
			
		||||
        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:
 | 
			
		||||
        io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f;
 | 
			
		||||
        return 0;
 | 
			
		||||
    case WM_MOUSEHWHEEL:
 | 
			
		||||
        io.MouseWheelH += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f;
 | 
			
		||||
        return 0;
 | 
			
		||||
    case WM_MOUSEMOVE:
 | 
			
		||||
        io.MousePos.x = (signed short)(lParam);
 | 
			
		||||
        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:
 | 
			
		||||
        io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f;
 | 
			
		||||
        return 0;
 | 
			
		||||
    case WM_MOUSEHWHEEL:
 | 
			
		||||
        io.MouseWheelH += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f;
 | 
			
		||||
        return 0;
 | 
			
		||||
    case WM_MOUSEMOVE:
 | 
			
		||||
        io.MousePos.x = (signed short)(lParam);
 | 
			
		||||
        io.MousePos.y = (signed short)(lParam >> 16);
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@
 | 
			
		||||
static GLFWwindow*  g_Window = NULL;
 | 
			
		||||
static double       g_Time = 0.0f;
 | 
			
		||||
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
 | 
			
		||||
static VkAllocationCallbacks* g_Allocator = NULL;
 | 
			
		||||
@@ -330,9 +330,10 @@ void ImGui_ImplGlfwVulkan_MouseButtonCallback(GLFWwindow*, int button, int actio
 | 
			
		||||
        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)
 | 
			
		||||
@@ -825,8 +826,9 @@ void ImGui_ImplGlfwVulkan_NewFrame()
 | 
			
		||||
        g_MousePressed[i] = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    io.MouseWheel = g_MouseWheel;
 | 
			
		||||
    g_MouseWheel = 0.0f;
 | 
			
		||||
    io.MouseWheel = g_MouseWheel.y;
 | 
			
		||||
    io.MouseWheelH = g_MouseWheel.x;
 | 
			
		||||
    g_MouseWheel.x = g_MouseWheel.x = 0.0f;
 | 
			
		||||
 | 
			
		||||
    // Hide OS mouse cursor if ImGui is drawing it
 | 
			
		||||
    glfwSetInputMode(g_Window, GLFW_CURSOR, io.MouseDrawCursor ? GLFW_CURSOR_HIDDEN : GLFW_CURSOR_NORMAL);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user