mirror of
https://github.com/glfw/glfw.git
synced 2024-11-10 00:51:47 +00:00
Merged cursor enter/leave callbacks.
This commit is contained in:
parent
e5d85a5cc4
commit
c4806b9532
@ -474,8 +474,7 @@ typedef void (* GLFWwindowfocusfun)(GLFWwindow,int);
|
||||
typedef void (* GLFWwindowiconifyfun)(GLFWwindow,int);
|
||||
typedef void (* GLFWmousebuttonfun)(GLFWwindow,int,int);
|
||||
typedef void (* GLFWmouseposfun)(GLFWwindow,int,int);
|
||||
typedef void (* GLFWcursorenterfun)(GLFWwindow);
|
||||
typedef void (* GLFWcursorleavefun)(GLFWwindow);
|
||||
typedef void (* GLFWcursorenterfun)(GLFWwindow,int);
|
||||
typedef void (* GLFWscrollfun)(GLFWwindow,int,int);
|
||||
typedef void (* GLFWkeyfun)(GLFWwindow,int,int);
|
||||
typedef void (* GLFWcharfun)(GLFWwindow,int);
|
||||
@ -576,7 +575,6 @@ GLFWAPI void glfwSetCharCallback(GLFWcharfun cbfun);
|
||||
GLFWAPI void glfwSetMouseButtonCallback(GLFWmousebuttonfun cbfun);
|
||||
GLFWAPI void glfwSetMousePosCallback(GLFWmouseposfun cbfun);
|
||||
GLFWAPI void glfwSetCursorEnterCallback(GLFWcursorenterfun cbfun);
|
||||
GLFWAPI void glfwSetCursorLeaveCallback(GLFWcursorleavefun cbfun);
|
||||
GLFWAPI void glfwSetScrollCallback(GLFWscrollfun cbfun);
|
||||
|
||||
/* Joystick input */
|
||||
|
35
src/input.c
35
src/input.c
@ -147,24 +147,13 @@ void _glfwInputCursorMotion(_GLFWwindow* window, int x, int y)
|
||||
|
||||
|
||||
//========================================================================
|
||||
// Register cursor enter events
|
||||
// Register cursor enter/leave events
|
||||
//========================================================================
|
||||
|
||||
void _glfwInputCursorEnter(_GLFWwindow* window)
|
||||
void _glfwInputCursorEnter(_GLFWwindow* window, int entered)
|
||||
{
|
||||
if (_glfwLibrary.cursorEnterCallback)
|
||||
_glfwLibrary.cursorEnterCallback(window);
|
||||
}
|
||||
|
||||
|
||||
//========================================================================
|
||||
// Register cursor leave events
|
||||
//========================================================================
|
||||
|
||||
void _glfwInputCursorLeave(_GLFWwindow* window)
|
||||
{
|
||||
if (_glfwLibrary.cursorLeaveCallback)
|
||||
_glfwLibrary.cursorLeaveCallback(window);
|
||||
_glfwLibrary.cursorEnterCallback(window, entered);
|
||||
}
|
||||
|
||||
|
||||
@ -443,7 +432,7 @@ GLFWAPI void glfwSetMousePosCallback(GLFWmouseposfun cbfun)
|
||||
|
||||
|
||||
//========================================================================
|
||||
// Set callback function for cursor enter events
|
||||
// Set callback function for cursor enter/leave events
|
||||
//========================================================================
|
||||
|
||||
GLFWAPI void glfwSetCursorEnterCallback(GLFWcursorenterfun cbfun)
|
||||
@ -458,22 +447,6 @@ GLFWAPI void glfwSetCursorEnterCallback(GLFWcursorenterfun cbfun)
|
||||
}
|
||||
|
||||
|
||||
//========================================================================
|
||||
// Set callback function for cursor enter events
|
||||
//========================================================================
|
||||
|
||||
GLFWAPI void glfwSetCursorLeaveCallback(GLFWcursorleavefun cbfun)
|
||||
{
|
||||
if (!_glfwInitialized)
|
||||
{
|
||||
_glfwSetError(GLFW_NOT_INITIALIZED, NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
_glfwLibrary.cursorLeaveCallback = cbfun;
|
||||
}
|
||||
|
||||
|
||||
//========================================================================
|
||||
// Set callback function for scroll events
|
||||
//========================================================================
|
||||
|
@ -238,7 +238,6 @@ struct _GLFWlibrary
|
||||
GLFWmousebuttonfun mouseButtonCallback;
|
||||
GLFWmouseposfun mousePosCallback;
|
||||
GLFWcursorenterfun cursorEnterCallback;
|
||||
GLFWcursorleavefun cursorLeaveCallback;
|
||||
GLFWscrollfun scrollCallback;
|
||||
GLFWkeyfun keyCallback;
|
||||
GLFWcharfun charCallback;
|
||||
@ -354,8 +353,7 @@ void _glfwInputChar(_GLFWwindow* window, int character);
|
||||
void _glfwInputScroll(_GLFWwindow* window, int x, int y);
|
||||
void _glfwInputMouseClick(_GLFWwindow* window, int button, int action);
|
||||
void _glfwInputCursorMotion(_GLFWwindow* window, int x, int y);
|
||||
void _glfwInputCursorEnter(_GLFWwindow* window);
|
||||
void _glfwInputCursorLeave(_GLFWwindow* window);
|
||||
void _glfwInputCursorEnter(_GLFWwindow* window, int entered);
|
||||
|
||||
// OpenGL context helpers (opengl.c)
|
||||
int _glfwStringInExtensionString(const char* string, const GLubyte* extensions);
|
||||
|
@ -1194,7 +1194,7 @@ static void processSingleEvent(void)
|
||||
if (window->cursorMode == GLFW_CURSOR_HIDDEN)
|
||||
hideMouseCursor(window);
|
||||
|
||||
_glfwInputCursorEnter(window);
|
||||
_glfwInputCursorEnter(window, GL_TRUE);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1211,7 +1211,7 @@ static void processSingleEvent(void)
|
||||
if (window->cursorMode == GLFW_CURSOR_HIDDEN)
|
||||
showMouseCursor(window);
|
||||
|
||||
_glfwInputCursorLeave(window);
|
||||
_glfwInputCursorEnter(window, GL_FALSE);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -274,14 +274,12 @@ static void mouse_position_callback(GLFWwindow window, int x, int y)
|
||||
printf("%08x at %0.3f: Mouse position: %i %i\n", counter++, glfwGetTime(), x, y);
|
||||
}
|
||||
|
||||
static void cursor_enter_callback(GLFWwindow window)
|
||||
static void cursor_enter_callback(GLFWwindow window, int entered)
|
||||
{
|
||||
printf("%08x at %0.3f: Cursor entered window\n", counter++, glfwGetTime());
|
||||
}
|
||||
|
||||
static void cursor_leave_callback(GLFWwindow window)
|
||||
{
|
||||
printf("%08x at %0.3f: Cursor left window\n", counter++, glfwGetTime());
|
||||
printf("%08x at %0.3f: Cursor %s window\n",
|
||||
counter++,
|
||||
glfwGetTime(),
|
||||
entered ? "entered" : "left");
|
||||
}
|
||||
|
||||
static void scroll_callback(GLFWwindow window, int x, int y)
|
||||
@ -362,7 +360,6 @@ int main(void)
|
||||
glfwSetMouseButtonCallback(mouse_button_callback);
|
||||
glfwSetMousePosCallback(mouse_position_callback);
|
||||
glfwSetCursorEnterCallback(cursor_enter_callback);
|
||||
glfwSetCursorLeaveCallback(cursor_leave_callback);
|
||||
glfwSetScrollCallback(scroll_callback);
|
||||
glfwSetKeyCallback(key_callback);
|
||||
glfwSetCharCallback(char_callback);
|
||||
|
Loading…
Reference in New Issue
Block a user