From 8ecb682579e5a8236cddf151ec200f5ea07d3292 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 17 Mar 2020 18:43:41 +0100 Subject: Use clearer names for pointer events These old "notify" names are a smell from X11 which is a bit strange and inconsistent here, since nearly everything is a "notification" of sorts. I think the new names here are much more clear since they are consistent with the keyboard focus events. --- examples/pugl_cairo_demo.c | 4 ++-- examples/pugl_embed_demo.c | 8 ++++---- examples/pugl_window_demo.c | 6 +++--- pugl/detail/mac.m | 6 +++--- pugl/detail/win.c | 6 +++--- pugl/detail/x11.c | 6 +++--- pugl/pugl.h | 41 +++++++++++++++++++++++++---------------- test/test_utils.h | 6 +++--- 8 files changed, 46 insertions(+), 37 deletions(-) diff --git a/examples/pugl_cairo_demo.c b/examples/pugl_cairo_demo.c index a1423ae..6b43cb0 100644 --- a/examples/pugl_cairo_demo.c +++ b/examples/pugl_cairo_demo.c @@ -195,11 +195,11 @@ onEvent(PuglView* view, const PuglEvent* event) app->mouseDown = false; postButtonRedisplay(view); break; - case PUGL_ENTER_NOTIFY: + case PUGL_POINTER_IN: app->entered = true; puglPostRedisplay(view); break; - case PUGL_LEAVE_NOTIFY: + case PUGL_POINTER_OUT: app->entered = false; puglPostRedisplay(view); break; diff --git a/examples/pugl_embed_demo.c b/examples/pugl_embed_demo.c index a540b67..313a92c 100644 --- a/examples/pugl_embed_demo.c +++ b/examples/pugl_embed_demo.c @@ -193,7 +193,7 @@ onParentEvent(PuglView* view, const PuglEvent* event) case PUGL_KEY_PRESS: onKeyPress(view, &event->key, "Parent: "); break; - case PUGL_MOTION_NOTIFY: + case PUGL_MOTION: break; case PUGL_CLOSE: app->quit = 1; @@ -230,7 +230,7 @@ onEvent(PuglView* view, const PuglEvent* event) case PUGL_KEY_PRESS: onKeyPress(view, &event->key, "Child: "); break; - case PUGL_MOTION_NOTIFY: + case PUGL_MOTION: app->xAngle -= event->motion.x - app->lastMouseX; app->yAngle += event->motion.y - app->lastMouseY; app->lastMouseX = event->motion.x; @@ -246,10 +246,10 @@ onEvent(PuglView* view, const PuglEvent* event) puglPostRedisplay(view); } break; - case PUGL_ENTER_NOTIFY: + case PUGL_POINTER_IN: app->mouseEntered = true; break; - case PUGL_LEAVE_NOTIFY: + case PUGL_POINTER_OUT: app->mouseEntered = false; break; case PUGL_TIMER: diff --git a/examples/pugl_window_demo.c b/examples/pugl_window_demo.c index 175d782..7beb330 100644 --- a/examples/pugl_window_demo.c +++ b/examples/pugl_window_demo.c @@ -142,7 +142,7 @@ onEvent(PuglView* view, const PuglEvent* event) case PUGL_KEY_PRESS: onKeyPress(view, &event->key); break; - case PUGL_MOTION_NOTIFY: + case PUGL_MOTION: cube->xAngle -= event->motion.x - cube->lastMouseX; cube->yAngle += event->motion.y - cube->lastMouseY; cube->lastMouseX = event->motion.x; @@ -153,11 +153,11 @@ onEvent(PuglView* view, const PuglEvent* event) cube->dist = fmaxf(10.0f, cube->dist + (float)event->scroll.dy); redisplayView(app, view); break; - case PUGL_ENTER_NOTIFY: + case PUGL_POINTER_IN: cube->entered = true; redisplayView(app, view); break; - case PUGL_LEAVE_NOTIFY: + case PUGL_POINTER_OUT: cube->entered = false; redisplayView(app, view); break; diff --git a/pugl/detail/mac.m b/pugl/detail/mac.m index 8a0f0c2..bd1fdcf 100644 --- a/pugl/detail/mac.m +++ b/pugl/detail/mac.m @@ -271,12 +271,12 @@ handleCrossing(PuglWrapperView* view, NSEvent* event, const PuglEventType type) - (void) mouseEntered:(NSEvent*)event { - handleCrossing(self, event, PUGL_ENTER_NOTIFY); + handleCrossing(self, event, PUGL_POINTER_IN); } - (void) mouseExited:(NSEvent*)event { - handleCrossing(self, event, PUGL_LEAVE_NOTIFY); + handleCrossing(self, event, PUGL_POINTER_OUT); } - (void) mouseMoved:(NSEvent*)event @@ -284,7 +284,7 @@ handleCrossing(PuglWrapperView* view, NSEvent* event, const PuglEventType type) const NSPoint wloc = [self eventLocation:event]; const NSPoint rloc = [NSEvent mouseLocation]; const PuglEventMotion ev = { - PUGL_MOTION_NOTIFY, + PUGL_MOTION, 0, [event timestamp], wloc.x, diff --git a/pugl/detail/win.c b/pugl/detail/win.c index 7678607..4606d60 100644 --- a/pugl/detail/win.c +++ b/pugl/detail/win.c @@ -617,12 +617,12 @@ handleMessage(PuglView* view, UINT message, WPARAM wParam, LPARAM lParam) tme.hwndTrack = view->impl->hwnd; TrackMouseEvent(&tme); - handleCrossing(view, PUGL_ENTER_NOTIFY, pt); + handleCrossing(view, PUGL_POINTER_IN, pt); view->impl->mouseTracked = true; } ClientToScreen(view->impl->hwnd, &pt); - event.motion.type = PUGL_MOTION_NOTIFY; + event.motion.type = PUGL_MOTION; event.motion.time = GetMessageTime() / 1e3; event.motion.x = GET_X_LPARAM(lParam); event.motion.y = GET_Y_LPARAM(lParam); @@ -634,7 +634,7 @@ handleMessage(PuglView* view, UINT message, WPARAM wParam, LPARAM lParam) case WM_MOUSELEAVE: GetCursorPos(&pt); ScreenToClient(view->impl->hwnd, &pt); - handleCrossing(view, PUGL_LEAVE_NOTIFY, pt); + handleCrossing(view, PUGL_POINTER_OUT, pt); view->impl->mouseTracked = false; break; case WM_LBUTTONDOWN: diff --git a/pugl/detail/x11.c b/pugl/detail/x11.c index 9613dfb..1511b7b 100644 --- a/pugl/detail/x11.c +++ b/pugl/detail/x11.c @@ -493,7 +493,7 @@ translateEvent(PuglView* view, XEvent xevent) event.expose.count = xevent.xexpose.count; break; case MotionNotify: - event.type = PUGL_MOTION_NOTIFY; + event.type = PUGL_MOTION; event.motion.time = xevent.xmotion.time / 1e3; event.motion.x = xevent.xmotion.x; event.motion.y = xevent.xmotion.y; @@ -552,8 +552,8 @@ translateEvent(PuglView* view, XEvent xevent) case EnterNotify: case LeaveNotify: event.type = ((xevent.type == EnterNotify) - ? PUGL_ENTER_NOTIFY - : PUGL_LEAVE_NOTIFY); + ? PUGL_POINTER_IN + : PUGL_POINTER_OUT); event.crossing.time = xevent.xcrossing.time / 1e3; event.crossing.x = xevent.xcrossing.x; event.crossing.y = xevent.xcrossing.y; diff --git a/pugl/pugl.h b/pugl/pugl.h index 8e20f35..0d0f3b6 100644 --- a/pugl/pugl.h +++ b/pugl/pugl.h @@ -42,6 +42,16 @@ # define PUGL_API #endif +#ifndef PUGL_DISABLE_DEPRECATED +# if defined(__clang__) +# define PUGL_DEPRECATED_BY(rep) __attribute__((deprecated("", rep))) +# elif defined(__GNUC__) +# define PUGL_DEPRECATED_BY(rep) __attribute__((deprecated("Use " rep))) +# else +# define PUGL_DEPRECATED_BY(rep) +# endif +#endif + #ifdef __cplusplus # define PUGL_BEGIN_DECLS extern "C" { # define PUGL_END_DECLS } @@ -179,14 +189,21 @@ typedef enum { PUGL_KEY_PRESS, ///< Key pressed, a #PuglEventKey PUGL_KEY_RELEASE, ///< Key released, a #PuglEventKey PUGL_TEXT, ///< Character entered, a #PuglEventText - PUGL_ENTER_NOTIFY, ///< Pointer entered view, a #PuglEventCrossing - PUGL_LEAVE_NOTIFY, ///< Pointer left view, a #PuglEventCrossing - PUGL_MOTION_NOTIFY, ///< Pointer moved, a #PuglEventMotion + PUGL_POINTER_IN, ///< Pointer entered view, a #PuglEventCrossing + PUGL_POINTER_OUT, ///< Pointer left view, a #PuglEventCrossing + PUGL_MOTION, ///< Pointer moved, a #PuglEventMotion PUGL_SCROLL, ///< Scrolled, a #PuglEventScroll PUGL_FOCUS_IN, ///< Keyboard focus entered view, a #PuglEventFocus PUGL_FOCUS_OUT, ///< Keyboard focus left view, a #PuglEventFocus PUGL_CLIENT, ///< Custom client message, a #PuglEventClient - PUGL_TIMER ///< Timer triggered, a #PuglEventTimer + PUGL_TIMER, ///< Timer triggered, a #PuglEventTimer + +#ifndef PUGL_DISABLE_DEPRECATED + PUGL_ENTER_NOTIFY PUGL_DEPRECATED_BY("PUGL_POINTER_IN") = PUGL_POINTER_IN, + PUGL_LEAVE_NOTIFY PUGL_DEPRECATED_BY("PUGL_POINTER_OUT") = PUGL_POINTER_OUT, + PUGL_MOTION_NOTIFY PUGL_DEPRECATED_BY("PUGL_MOTION") = PUGL_MOTION, +#endif + } PuglEventType; /** @@ -330,7 +347,7 @@ typedef struct { window edge), as described by the #mode field. */ typedef struct { - PuglEventType type; ///< #PUGL_ENTER_NOTIFY or #PUGL_LEAVE_NOTIFY + PuglEventType type; ///< #PUGL_POINTER_IN or #PUGL_POINTER_OUT PuglEventFlags flags; ///< Bitwise OR of #PuglEventFlag values double time; ///< Time in seconds double x; ///< View-relative X coordinate @@ -345,7 +362,7 @@ typedef struct { Pointer motion event. */ typedef struct { - PuglEventType type; ///< #PUGL_MOTION_NOTIFY + PuglEventType type; ///< #PUGL_MOTION PuglEventFlags flags; ///< Bitwise OR of #PuglEventFlag values double time; ///< Time in seconds double x; ///< View-relative X coordinate @@ -440,8 +457,8 @@ typedef union { PuglEventExpose expose; ///< #PUGL_EXPOSE PuglEventKey key; ///< #PUGL_KEY_PRESS, #PUGL_KEY_RELEASE PuglEventText text; ///< #PUGL_TEXT - PuglEventCrossing crossing; ///< #PUGL_ENTER_NOTIFY, #PUGL_LEAVE_NOTIFY - PuglEventMotion motion; ///< #PUGL_MOTION_NOTIFY + PuglEventCrossing crossing; ///< #PUGL_POINTER_IN, #PUGL_POINTER_OUT + PuglEventMotion motion; ///< #PUGL_MOTION PuglEventScroll scroll; ///< #PUGL_SCROLL PuglEventFocus focus; ///< #PUGL_FOCUS_IN, #PUGL_FOCUS_OUT PuglEventClient client; ///< #PUGL_CLIENT @@ -1114,14 +1131,6 @@ puglSendEvent(PuglView* view, const PuglEvent* event); @{ */ -#if defined(__clang__) -# define PUGL_DEPRECATED_BY(name) __attribute__((deprecated("", name))) -#elif defined(__GNUC__) -# define PUGL_DEPRECATED_BY(name) __attribute__((deprecated("Use " name))) -#else -# define PUGL_DEPRECATED_BY(name) -#endif - /** Create a Pugl application and view. diff --git a/test/test_utils.h b/test/test_utils.h index cef94dd..34b66c0 100644 --- a/test/test_utils.h +++ b/test/test_utils.h @@ -103,12 +103,12 @@ printEvent(const PuglEvent* event, const char* prefix, const bool verbose) event->scroll.x, event->scroll.y) + printModifiers(event->scroll.state)); - case PUGL_ENTER_NOTIFY: + case PUGL_POINTER_IN: return PRINT("%sMouse enter at " PFMT "\n", prefix, event->crossing.x, event->crossing.y); - case PUGL_LEAVE_NOTIFY: + case PUGL_POINTER_OUT: return PRINT("%sMouse leave at " PFMT "\n", prefix, event->crossing.x, @@ -160,7 +160,7 @@ printEvent(const PuglEvent* event, const char* prefix, const bool verbose) event->expose.height); case PUGL_CLOSE: return PRINT("%sClose\n", prefix); - case PUGL_MOTION_NOTIFY: + case PUGL_MOTION: return PRINT("%sMouse motion at " PFMT "\n", prefix, event->motion.x, -- cgit v1.2.1