VuoMouse implementation.
Definition in file VuoMouse.m.
Go to the source code of this file.
Classes | |
category | NSEvent(VuoMouse) |
Defined in OS X 10.11 SDK but available on 10.10.3+. More... | |
struct | VuoMouseContext |
Handle for starting and stopping event listeners. More... | |
Functions | |
void | VuoMouse_GetScreenDimensions (int64_t *width, int64_t *height) |
Get the full screen width and height in pixels. More... | |
static float | VuoMouse_getPressure (NSEvent *event) |
Combines the event's pressure with its stage to produce a continuous pressure value. More... | |
VuoMouse * | VuoMouse_make (void) |
Creates a handle for starting and stopping event listeners. More... | |
static VuoPoint2d | VuoMouse_convertWindowToScreenCoordinates (NSPoint pointInWindow, NSWindow *window, bool *shouldFire) |
Converts a position relative to the window into a position relative to the current screen. More... | |
static VuoPoint2d | VuoMouse_convertViewToVuoCoordinates (NSPoint pointInView, NSView *view) |
Converts a position relative to a view and in view coordinates into a position in Vuo coordinates. More... | |
static VuoPoint2d | VuoMouse_convertFullScreenToVuoCoordinates (NSPoint pointInScreen, NSWindow *window, bool *isInScreen) |
Converts a position in screen coordinates into a position relative to the the window's fullscreen view and in Vuo coordinates. More... | |
VuoPoint2d | VuoMouse_convertWindowToVuoCoordinates (NSPoint pointInWindow, NSWindow *window, bool *shouldFire) |
Converts a position relative to the window and in window coordinates into a position relative to the window's content view and in Vuo coordinates. More... | |
static VuoPoint2d | VuoMouse_convertDeltaToVuoCoordinates (NSPoint delta, NSWindow *window) |
Converts a change in position in window coordinates into a change in position in Vuo coordinates. More... | |
bool | VuoMouse_isResizing (void) |
Returns true if the mouse is potentially involved in a window resize (and thus we should ignore the button). More... | |
static void | VuoMouse_fireScrollDeltaIfNeeded (NSEvent *event, VuoWindowReference windowRef, VuoModifierKey modifierKey, void(^scrolled)(VuoPoint2d)) |
If the mouse was scrolled a non-zero amount, calls the trigger function and passes it the scroll delta. More... | |
static void | VuoMouse_fireMousePositionIfNeeded (NSEvent *event, NSPoint fullscreenPoint, VuoWindowReference windowRef, VuoModifierKey modifierKey, bool fireRegardlessOfPosition, void(^fire)(VuoPoint2d)) |
If the mouse event is not ignored, calls the block and passes it the mouse position. More... | |
static void | VuoMouse_fireMouseDeltaIfNeeded (NSEvent *event, VuoWindowReference windowRef, VuoModifierKey modifierKey, void(*fire)(VuoPoint2d)) |
If the mouse event is not ignored, calls the trigger function and passes it the mouse delta (change in position). More... | |
static void | VuoMouse_fireMouseClickIfNeeded (struct VuoMouseContext *context, NSEvent *event, VuoWindowReference windowRef, VuoModifierKey modifierKey, void(*singleClicked)(VuoPoint2d), void(*doubleClicked)(VuoPoint2d), void(*tripleClicked)(VuoPoint2d)) |
If the mouse click event is not ignored, calls the trigger function and passes it the mouse position. More... | |
void | VuoMouse_startListeningForScrolls (VuoMouse *mouseListener, void(*scrolled)(VuoPoint2d), VuoWindowReference window, VuoModifierKey modifierKey) |
Starts listening for scroll events, and calling the trigger function for each one. More... | |
void | VuoMouse_startListeningForScrollsWithCallback (VuoMouse *mouseListener, void(^scrolled)(VuoPoint2d), VuoWindowReference window, VuoModifierKey modifierKey) |
Starts listening for scroll events, and calling the scrolled block for each one. More... | |
static void | VuoMouse_fireInitialEvent (void(^movedTo)(VuoPoint2d), VuoWindowReference window, VuoModifierKey modifierKey) |
If window is non-NULL and modifierKey is Any or None, invokes movedTo with the mouse's current position. More... | |
void | VuoMouse_startListeningForMoves (VuoMouse *mouseListener, void(*movedTo)(VuoPoint2d), VuoWindowReference window, VuoModifierKey modifierKey) |
Starts listening for mouse move events, and calling the trigger function (with mouse position) for each one,. More... | |
void | VuoMouse_startListeningForMovesWithCallback (VuoMouse *mouseListener, void(^movedTo)(VuoPoint2d), VuoWindowReference window, VuoModifierKey modifierKey) |
Starts listening for mouse move events, and calling the given block for each one. More... | |
void | VuoMouse_startListeningForDeltas (VuoMouse *mouseListener, void(*movedBy)(VuoPoint2d), VuoWindowReference window, VuoModifierKey modifierKey) |
Starts listening for mouse move events, and calling the trigger function (with change in mouse position) for each one. More... | |
void | VuoMouse_startListeningForDragsWithCallback (VuoMouse *mouseListener, void(^dragMovedTo)(VuoPoint2d), VuoMouseButton button, VuoWindowReference window, VuoModifierKey modifierKey, bool fireRegardlessOfPosition) |
Starts listening for mouse drag events, and calling the given block for each one. More... | |
void | VuoMouse_startListeningForDrags (VuoMouse *mouseListener, void(*dragMovedTo)(VuoPoint2d), VuoMouseButton button, VuoWindowReference window, VuoModifierKey modifierKey) |
Starts listening for mouse drag events, and calling the trigger function for each one. More... | |
void | VuoMouse_startListeningForPressesWithCallback (VuoMouse *mouseListener, void(^pressed)(VuoPoint2d), void(^forcePressed)(VuoPoint2d), VuoMouseButton button, VuoWindowReference window, VuoModifierKey modifierKey) |
Starts listening for mouse press events, and calling the given block for each one. More... | |
void | VuoMouse_startListeningForPresses (VuoMouse *mouseListener, void(*pressed)(VuoPoint2d), void(*forcePressed)(VuoPoint2d), VuoMouseButton button, VuoWindowReference window, VuoModifierKey modifierKey) |
Starts listening for mouse press events, and calling the trigger function for each one. More... | |
void | VuoMouse_startListeningForPressureChanges (VuoMouse *mouseListener, void(*pressureChanged)(VuoReal), VuoMouseButton button, VuoModifierKey modifierKey) |
Starts listening for mouse pressure-change events, and calling the trigger function for each one. More... | |
void | VuoMouse_startListeningForReleasesWithCallback (VuoMouse *mouseListener, void(^released)(VuoPoint2d), VuoMouseButton button, VuoWindowReference window, VuoModifierKey modifierKey, bool fireRegardlessOfPosition) |
Starts listening for mouse release events, and calling the given block for each one. More... | |
void | VuoMouse_startListeningForReleases (VuoMouse *mouseListener, void(*released)(VuoPoint2d), VuoMouseButton button, VuoWindowReference window, VuoModifierKey modifierKey, bool fireRegardlessOfPosition) |
Starts listening for mouse release events, and calling the trigger function for each one. More... | |
void | VuoMouse_startListeningForClicks (VuoMouse *mouseListener, void(*singleClicked)(VuoPoint2d), void(*doubleClicked)(VuoPoint2d), void(*tripleClicked)(VuoPoint2d), VuoMouseButton button, VuoWindowReference window, VuoModifierKey modifierKey) |
Starts listening for mouse click events, and calling the trigger function for each one. More... | |
void | VuoMouse_startListeningForTouches (VuoMouse *mouseListener, void(*touchesMoved)(VuoList_VuoPoint2d), void(*zoomed)(VuoReal), void(*swipedLeft)(void), void(*swipedRight)(void), VuoWindowReference windowRef) |
Starts listening for touch events, and calling the trigger function for each one. More... | |
void | VuoMouse_stopListening (VuoMouse *mouseListener) |
Stops listening for mouse events for the given handle. More... | |
void | VuoMouseStatus_use (void) |
Starts tracking mouse events to later be reported by VuoMouse_getStatus. More... | |
void | VuoMouseStatus_disuse (void) |
Stops tracking mouse events for VuoMouse_getStatus. More... | |
bool | VuoMouse_getStatus (VuoPoint2d *position, VuoBoolean *isPressed, VuoMouseButton button, VuoWindowReference windowRef, VuoModifierKey modifierKey, bool onlyUpdateWhenActive) |
Outputs the current mouse position and whether the mouse is currently pressed. More... | |
Variables | |
const int | NSEventTypePressure = 34 |
Defined in OS X 10.11 SDK but available on 10.10.3+. More... | |
const uint64_t | NSEventMaskPressure = 1ULL << NSEventTypePressure |
Defined in OS X 10.11 SDK but available on 10.10.3+. More... | |
static unsigned int | VuoMouseStatus_useCount = 0 |
Process-wide count of callers (typically node instances) using VuoMouse_getStatus. More... | |
static id | VuoMouseStatus_monitor = nil |
Process-wide mouse event monitor for VuoMouse_getStatus. More... | |
static NSPoint | VuoMouseStatus_position |
The mouse's position in screen coordinates, as reported by the most recent non-filtered event. More... | |
static bool | VuoMouseStatus_leftButton = false |
The mouse's current button status, as reported by recent non-filtered events. More... | |
static bool | VuoMouseStatus_middleButton = false |
The mouse's current button status, as reported by recent non-filtered events. More... | |
static bool | VuoMouseStatus_rightButton = false |
The mouse's current button status, as reported by recent non-filtered events. More... | |
|
static |
Converts a change in position in window coordinates into a change in position in Vuo coordinates.
Definition at line 224 of file VuoMouse.m.
|
static |
Converts a position in screen coordinates into a position relative to the the window's fullscreen view and in Vuo coordinates.
Definition at line 172 of file VuoMouse.m.
|
static |
Converts a position relative to a view and in view coordinates into a position in Vuo coordinates.
This function may be called from any thread.
Definition at line 142 of file VuoMouse.m.
|
static |
Converts a position relative to the window into a position relative to the current screen.
Definition at line 116 of file VuoMouse.m.
VuoPoint2d VuoMouse_convertWindowToVuoCoordinates | ( | NSPoint | pointInWindow, |
NSWindow * | window, | ||
bool * | shouldFire | ||
) |
Converts a position relative to the window and in window coordinates into a position relative to the window's content view and in Vuo coordinates.
This function may be called from any thread.
Definition at line 196 of file VuoMouse.m.
|
static |
If window
is non-NULL and modifierKey
is Any or None, invokes movedTo
with the mouse's current position.
Definition at line 462 of file VuoMouse.m.
|
static |
If the mouse click event is not ignored, calls the trigger function and passes it the mouse position.
If a window is given, the mouse position is in Vuo coordinates relative to the window's content view. The mouse event is ignored if it doesn't correspond to this window.
If no window is given, the mouse position is in screen coordinates.
Definition at line 393 of file VuoMouse.m.
|
static |
If the mouse event is not ignored, calls the trigger function and passes it the mouse delta (change in position).
If a window is given, the mouse delta is in Vuo coordinates relative to the window's content view. The mouse event is ignored if it doesn't correspond to this window.
If no window is given, the mouse delta is in screen coordinates.
Definition at line 343 of file VuoMouse.m.
|
static |
If the mouse event is not ignored, calls the block and passes it the mouse position.
If a window is given, the mouse position is in Vuo coordinates relative to the window's content view. The mouse event is ignored if it doesn't correspond to this window.
If no window is given, the mouse position is in screen coordinates.
Definition at line 284 of file VuoMouse.m.
|
static |
If the mouse was scrolled a non-zero amount, calls the trigger function and passes it the scroll delta.
Definition at line 253 of file VuoMouse.m.
|
static |
Combines the event's pressure with its stage to produce a continuous pressure value.
Definition at line 72 of file VuoMouse.m.
void VuoMouse_GetScreenDimensions | ( | int64_t * | width, |
int64_t * | height | ||
) |
Get the full screen width and height in pixels.
This function may be called on any thread except the main thread.
Definition at line 57 of file VuoMouse.m.
bool VuoMouse_getStatus | ( | VuoPoint2d * | position, |
VuoBoolean * | isPressed, | ||
VuoMouseButton | button, | ||
VuoWindowReference | windowRef, | ||
VuoModifierKey | modifierKey, | ||
bool | onlyUpdateWhenActive | ||
) |
Outputs the current mouse position and whether the mouse is currently pressed.
If onlyUpdateWhenActive
is true, and the application is not active, then neither position
nor isPressed
is modified.
If a window is given, but it's not the key window or the mouse is not within the window, then position is modified but isPressed is not.
If a window is given, the mouse position is in Vuo coordinates relative to the window's content view. Otherwise, the mouse position is in screen coordinates.
Returns true if position
was updated.
This function may be called from any thread.
Definition at line 927 of file VuoMouse.m.
bool VuoMouse_isResizing | ( | void | ) |
Returns true if the mouse is potentially involved in a window resize (and thus we should ignore the button).
Definition at line 238 of file VuoMouse.m.
VuoMouse* VuoMouse_make | ( | void | ) |
Creates a handle for starting and stopping event listeners.
Definition at line 101 of file VuoMouse.m.
void VuoMouse_startListeningForClicks | ( | VuoMouse * | mouseListener, |
void(*)(VuoPoint2d) | singleClicked, | ||
void(*)(VuoPoint2d) | doubleClicked, | ||
void(*)(VuoPoint2d) | tripleClicked, | ||
VuoMouseButton | button, | ||
VuoWindowReference | window, | ||
VuoModifierKey | modifierKey | ||
) |
Starts listening for mouse click events, and calling the trigger function for each one.
This function may be called from any thread.
Definition at line 727 of file VuoMouse.m.
void VuoMouse_startListeningForDeltas | ( | VuoMouse * | mouseListener, |
void(*)(VuoPoint2d) | movedBy, | ||
VuoWindowReference | window, | ||
VuoModifierKey | modifierKey | ||
) |
Starts listening for mouse move events, and calling the trigger function (with change in mouse position) for each one.
This function may be called from any thread.
Definition at line 523 of file VuoMouse.m.
void VuoMouse_startListeningForDrags | ( | VuoMouse * | mouseListener, |
void(*)(VuoPoint2d) | dragMovedTo, | ||
VuoMouseButton | button, | ||
VuoWindowReference | window, | ||
VuoModifierKey | modifierKey | ||
) |
Starts listening for mouse drag events, and calling the trigger function for each one.
This function may be called from any thread.
Definition at line 579 of file VuoMouse.m.
void VuoMouse_startListeningForDragsWithCallback | ( | VuoMouse * | mouseListener, |
void(^)(VuoPoint2d) | dragMovedTo, | ||
VuoMouseButton | button, | ||
VuoWindowReference | window, | ||
VuoModifierKey | modifierKey, | ||
bool | fireRegardlessOfPosition | ||
) |
Starts listening for mouse drag events, and calling the given block for each one.
This function may be called from any thread.
Definition at line 539 of file VuoMouse.m.
void VuoMouse_startListeningForMoves | ( | VuoMouse * | mouseListener, |
void(*)(VuoPoint2d) | movedTo, | ||
VuoWindowReference | window, | ||
VuoModifierKey | modifierKey | ||
) |
Starts listening for mouse move events, and calling the trigger function (with mouse position) for each one,.
If window
is non-NULL and modifierKey
is Any or None, immediately invokes movedTo
with the mouse's current position.
This function may be called from any thread.
Definition at line 484 of file VuoMouse.m.
void VuoMouse_startListeningForMovesWithCallback | ( | VuoMouse * | mouseListener, |
void(^)(VuoPoint2d) | movedTo, | ||
VuoWindowReference | window, | ||
VuoModifierKey | modifierKey | ||
) |
Starts listening for mouse move events, and calling the given block for each one.
If window
is non-NULL and modifierKey
is Any or None, immediately invokes movedTo
with the mouse's current position.
This function may be called from any thread.
Definition at line 504 of file VuoMouse.m.
void VuoMouse_startListeningForPresses | ( | VuoMouse * | mouseListener, |
void(*)(VuoPoint2d) | pressed, | ||
void(*)(VuoPoint2d) | forcePressed, | ||
VuoMouseButton | button, | ||
VuoWindowReference | window, | ||
VuoModifierKey | modifierKey | ||
) |
Starts listening for mouse press events, and calling the trigger function for each one.
This function may be called from any thread.
Definition at line 642 of file VuoMouse.m.
void VuoMouse_startListeningForPressesWithCallback | ( | VuoMouse * | mouseListener, |
void(^)(VuoPoint2d) | pressed, | ||
void(^)(VuoPoint2d) | forcePressed, | ||
VuoMouseButton | button, | ||
VuoWindowReference | window, | ||
VuoModifierKey | modifierKey | ||
) |
Starts listening for mouse press events, and calling the given block for each one.
This function may be called from any thread.
Definition at line 591 of file VuoMouse.m.
void VuoMouse_startListeningForPressureChanges | ( | VuoMouse * | mouseListener, |
void(*)(VuoReal) | pressureChanged, | ||
VuoMouseButton | button, | ||
VuoModifierKey | modifierKey | ||
) |
Starts listening for mouse pressure-change events, and calling the trigger function for each one.
This function may be called from any thread.
Definition at line 658 of file VuoMouse.m.
void VuoMouse_startListeningForReleases | ( | VuoMouse * | mouseListener, |
void(*)(VuoPoint2d) | released, | ||
VuoMouseButton | button, | ||
VuoWindowReference | window, | ||
VuoModifierKey | modifierKey, | ||
bool | fireRegardlessOfPosition | ||
) |
Starts listening for mouse release events, and calling the trigger function for each one.
This function may be called from any thread.
Definition at line 717 of file VuoMouse.m.
void VuoMouse_startListeningForReleasesWithCallback | ( | VuoMouse * | mouseListener, |
void(^)(VuoPoint2d) | released, | ||
VuoMouseButton | button, | ||
VuoWindowReference | window, | ||
VuoModifierKey | modifierKey, | ||
bool | fireRegardlessOfPosition | ||
) |
Starts listening for mouse release events, and calling the given block for each one.
This function may be called from any thread.
Definition at line 677 of file VuoMouse.m.
void VuoMouse_startListeningForScrolls | ( | VuoMouse * | mouseListener, |
void(*)(VuoPoint2d) | scrolled, | ||
VuoWindowReference | window, | ||
VuoModifierKey | modifierKey | ||
) |
Starts listening for scroll events, and calling the trigger function for each one.
This function may be called from any thread.
Definition at line 432 of file VuoMouse.m.
void VuoMouse_startListeningForScrollsWithCallback | ( | VuoMouse * | mouseListener, |
void(^)(VuoPoint2d) | scrolled, | ||
VuoWindowReference | window, | ||
VuoModifierKey | modifierKey | ||
) |
Starts listening for scroll events, and calling the scrolled block for each one.
This function may be called from any thread.
Definition at line 448 of file VuoMouse.m.
void VuoMouse_startListeningForTouches | ( | VuoMouse * | mouseListener, |
void(*)(VuoList_VuoPoint2d) | touchesMoved, | ||
void(*)(VuoReal) | zoomed, | ||
void(*)(void) | swipedLeft, | ||
void(*)(void) | swipedRight, | ||
VuoWindowReference | windowRef | ||
) |
Starts listening for touch events, and calling the trigger function for each one.
This function may be called from any thread.
Definition at line 772 of file VuoMouse.m.
void VuoMouse_stopListening | ( | VuoMouse * | mouseListener | ) |
Stops listening for mouse events for the given handle.
This function may be called from any thread.
Definition at line 795 of file VuoMouse.m.
void VuoMouseStatus_disuse | ( | void | ) |
Stops tracking mouse events for VuoMouse_getStatus.
This function may be called from any thread.
Definition at line 903 of file VuoMouse.m.
void VuoMouseStatus_use | ( | void | ) |
Starts tracking mouse events to later be reported by VuoMouse_getStatus.
This function may be called from any thread.
Definition at line 849 of file VuoMouse.m.
const uint64_t NSEventMaskPressure = 1ULL << NSEventTypePressure |
Defined in OS X 10.11 SDK but available on 10.10.3+.
Definition at line 20 of file VuoMouse.m.
const int NSEventTypePressure = 34 |
Defined in OS X 10.11 SDK but available on 10.10.3+.
Definition at line 18 of file VuoMouse.m.
|
static |
The mouse's current button status, as reported by recent non-filtered events.
Definition at line 840 of file VuoMouse.m.
|
static |
The mouse's current button status, as reported by recent non-filtered events.
Definition at line 841 of file VuoMouse.m.
|
static |
Process-wide mouse event monitor for VuoMouse_getStatus.
Definition at line 838 of file VuoMouse.m.
|
static |
The mouse's position in screen coordinates, as reported by the most recent non-filtered event.
Definition at line 839 of file VuoMouse.m.
|
static |
The mouse's current button status, as reported by recent non-filtered events.
Definition at line 842 of file VuoMouse.m.
|
static |
Process-wide count of callers (typically node instances) using VuoMouse_getStatus.
Definition at line 837 of file VuoMouse.m.