SketchyBar/src/mouse.c

31 lines
1 KiB
C
Raw Normal View History

2021-09-01 15:32:00 +02:00
extern struct event_loop g_event_loop;
static pascal OSStatus mouse_handler(EventHandlerCallRef next, EventRef e, void *data) {
switch (GetEventKind(e)) {
case kEventMouseUp: {
struct event *event = event_create(&g_event_loop, MOUSE_UP, (void *) CFRetain(CopyEventCGEvent(e)));
event_loop_post(&g_event_loop, event);
break;
}
case kEventMouseEntered: {
2021-10-12 21:08:34 +02:00
struct event *event = event_create(&g_event_loop, MOUSE_ENTERED, (void *) CFRetain(CopyEventCGEvent(e)));
event_loop_post(&g_event_loop, event);
break;
}
case kEventMouseExited: {
2021-10-12 21:08:34 +02:00
struct event *event = event_create(&g_event_loop, MOUSE_EXITED, (void *) CFRetain(CopyEventCGEvent(e)));
event_loop_post(&g_event_loop, event);
break;
}
2021-09-01 15:32:00 +02:00
default:
break;
}
return CallNextEventHandler(next, e);
}
void mouse_begin(void) {
EventTargetRef target = GetEventDispatcherTarget();
InstallEventHandler(target, NewEventHandlerUPP(mouse_handler), GetEventTypeCount(mouse_events), mouse_events, 0, 0);
2021-09-01 15:32:00 +02:00
}