mirror of
https://github.com/glfw/glfw.git
synced 2024-11-25 22:14:34 +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 (* GLFWwindowiconifyfun)(GLFWwindow,int);
|
||||||
typedef void (* GLFWmousebuttonfun)(GLFWwindow,int,int);
|
typedef void (* GLFWmousebuttonfun)(GLFWwindow,int,int);
|
||||||
typedef void (* GLFWmouseposfun)(GLFWwindow,int,int);
|
typedef void (* GLFWmouseposfun)(GLFWwindow,int,int);
|
||||||
typedef void (* GLFWcursorenterfun)(GLFWwindow);
|
typedef void (* GLFWcursorenterfun)(GLFWwindow,int);
|
||||||
typedef void (* GLFWcursorleavefun)(GLFWwindow);
|
|
||||||
typedef void (* GLFWscrollfun)(GLFWwindow,int,int);
|
typedef void (* GLFWscrollfun)(GLFWwindow,int,int);
|
||||||
typedef void (* GLFWkeyfun)(GLFWwindow,int,int);
|
typedef void (* GLFWkeyfun)(GLFWwindow,int,int);
|
||||||
typedef void (* GLFWcharfun)(GLFWwindow,int);
|
typedef void (* GLFWcharfun)(GLFWwindow,int);
|
||||||
@ -576,7 +575,6 @@ GLFWAPI void glfwSetCharCallback(GLFWcharfun cbfun);
|
|||||||
GLFWAPI void glfwSetMouseButtonCallback(GLFWmousebuttonfun cbfun);
|
GLFWAPI void glfwSetMouseButtonCallback(GLFWmousebuttonfun cbfun);
|
||||||
GLFWAPI void glfwSetMousePosCallback(GLFWmouseposfun cbfun);
|
GLFWAPI void glfwSetMousePosCallback(GLFWmouseposfun cbfun);
|
||||||
GLFWAPI void glfwSetCursorEnterCallback(GLFWcursorenterfun cbfun);
|
GLFWAPI void glfwSetCursorEnterCallback(GLFWcursorenterfun cbfun);
|
||||||
GLFWAPI void glfwSetCursorLeaveCallback(GLFWcursorleavefun cbfun);
|
|
||||||
GLFWAPI void glfwSetScrollCallback(GLFWscrollfun cbfun);
|
GLFWAPI void glfwSetScrollCallback(GLFWscrollfun cbfun);
|
||||||
|
|
||||||
/* Joystick input */
|
/* 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)
|
if (_glfwLibrary.cursorEnterCallback)
|
||||||
_glfwLibrary.cursorEnterCallback(window);
|
_glfwLibrary.cursorEnterCallback(window, entered);
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//========================================================================
|
|
||||||
// Register cursor leave events
|
|
||||||
//========================================================================
|
|
||||||
|
|
||||||
void _glfwInputCursorLeave(_GLFWwindow* window)
|
|
||||||
{
|
|
||||||
if (_glfwLibrary.cursorLeaveCallback)
|
|
||||||
_glfwLibrary.cursorLeaveCallback(window);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -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)
|
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
|
// Set callback function for scroll events
|
||||||
//========================================================================
|
//========================================================================
|
||||||
|
@ -238,7 +238,6 @@ struct _GLFWlibrary
|
|||||||
GLFWmousebuttonfun mouseButtonCallback;
|
GLFWmousebuttonfun mouseButtonCallback;
|
||||||
GLFWmouseposfun mousePosCallback;
|
GLFWmouseposfun mousePosCallback;
|
||||||
GLFWcursorenterfun cursorEnterCallback;
|
GLFWcursorenterfun cursorEnterCallback;
|
||||||
GLFWcursorleavefun cursorLeaveCallback;
|
|
||||||
GLFWscrollfun scrollCallback;
|
GLFWscrollfun scrollCallback;
|
||||||
GLFWkeyfun keyCallback;
|
GLFWkeyfun keyCallback;
|
||||||
GLFWcharfun charCallback;
|
GLFWcharfun charCallback;
|
||||||
@ -354,8 +353,7 @@ void _glfwInputChar(_GLFWwindow* window, int character);
|
|||||||
void _glfwInputScroll(_GLFWwindow* window, int x, int y);
|
void _glfwInputScroll(_GLFWwindow* window, int x, int y);
|
||||||
void _glfwInputMouseClick(_GLFWwindow* window, int button, int action);
|
void _glfwInputMouseClick(_GLFWwindow* window, int button, int action);
|
||||||
void _glfwInputCursorMotion(_GLFWwindow* window, int x, int y);
|
void _glfwInputCursorMotion(_GLFWwindow* window, int x, int y);
|
||||||
void _glfwInputCursorEnter(_GLFWwindow* window);
|
void _glfwInputCursorEnter(_GLFWwindow* window, int entered);
|
||||||
void _glfwInputCursorLeave(_GLFWwindow* window);
|
|
||||||
|
|
||||||
// OpenGL context helpers (opengl.c)
|
// OpenGL context helpers (opengl.c)
|
||||||
int _glfwStringInExtensionString(const char* string, const GLubyte* extensions);
|
int _glfwStringInExtensionString(const char* string, const GLubyte* extensions);
|
||||||
|
@ -1194,7 +1194,7 @@ static void processSingleEvent(void)
|
|||||||
if (window->cursorMode == GLFW_CURSOR_HIDDEN)
|
if (window->cursorMode == GLFW_CURSOR_HIDDEN)
|
||||||
hideMouseCursor(window);
|
hideMouseCursor(window);
|
||||||
|
|
||||||
_glfwInputCursorEnter(window);
|
_glfwInputCursorEnter(window, GL_TRUE);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1211,7 +1211,7 @@ static void processSingleEvent(void)
|
|||||||
if (window->cursorMode == GLFW_CURSOR_HIDDEN)
|
if (window->cursorMode == GLFW_CURSOR_HIDDEN)
|
||||||
showMouseCursor(window);
|
showMouseCursor(window);
|
||||||
|
|
||||||
_glfwInputCursorLeave(window);
|
_glfwInputCursorEnter(window, GL_FALSE);
|
||||||
break;
|
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);
|
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());
|
printf("%08x at %0.3f: Cursor %s window\n",
|
||||||
}
|
counter++,
|
||||||
|
glfwGetTime(),
|
||||||
static void cursor_leave_callback(GLFWwindow window)
|
entered ? "entered" : "left");
|
||||||
{
|
|
||||||
printf("%08x at %0.3f: Cursor left window\n", counter++, glfwGetTime());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void scroll_callback(GLFWwindow window, int x, int y)
|
static void scroll_callback(GLFWwindow window, int x, int y)
|
||||||
@ -362,7 +360,6 @@ int main(void)
|
|||||||
glfwSetMouseButtonCallback(mouse_button_callback);
|
glfwSetMouseButtonCallback(mouse_button_callback);
|
||||||
glfwSetMousePosCallback(mouse_position_callback);
|
glfwSetMousePosCallback(mouse_position_callback);
|
||||||
glfwSetCursorEnterCallback(cursor_enter_callback);
|
glfwSetCursorEnterCallback(cursor_enter_callback);
|
||||||
glfwSetCursorLeaveCallback(cursor_leave_callback);
|
|
||||||
glfwSetScrollCallback(scroll_callback);
|
glfwSetScrollCallback(scroll_callback);
|
||||||
glfwSetKeyCallback(key_callback);
|
glfwSetKeyCallback(key_callback);
|
||||||
glfwSetCharCallback(char_callback);
|
glfwSetCharCallback(char_callback);
|
||||||
|
Loading…
Reference in New Issue
Block a user