Class CoreGraphics


  • public class CoreGraphics
    extends java.lang.Object
    Native bindings to <CoreGraphics.h>.
    • Method Detail

      • getLibrary

        public static org.lwjgl.system.SharedLibrary getLibrary()
        Returns the CoreGraphics SharedLibrary.
      • CGEventGetTypeID

        public static long CGEventGetTypeID()
        Returns the type identifier for the opaque type CGEventRef.
      • CGEventCreate

        public static long CGEventCreate​(long source)
        Returns a new event using the event source source. If source is NULL, the default source is used.
      • CGEventCreateData

        public static long CGEventCreateData​(long allocator,
                                             long event)
        Return a "flattened" data representation of an event.
      • CGEventCreateFromData

        public static long CGEventCreateFromData​(long allocator,
                                                 long data)
        Returns an event created from a "flattened" data representation of the event.
      • nCGEventCreateMouseEvent

        public static long nCGEventCreateMouseEvent​(long source,
                                                    int mouseType,
                                                    long mouseCursorPosition,
                                                    int mouseButton,
                                                    long __functionAddress)
        
        public static long nCGEventCreateMouseEvent​(long source,
                                                    int mouseType,
                                                    long mouseCursorPosition,
                                                    int mouseButton)
        
        Unsafe version of: EventCreateMouseEvent
      • CGEventCreateMouseEvent

        public static long CGEventCreateMouseEvent​(long source,
                                                   int mouseType,
                                                   CGPoint mouseCursorPosition,
                                                   int mouseButton)
        Returns a new mouse event.

        The event source may be taken from another event, or may be NULL. mouseType should be one of the mouse event types. mouseCursorPosition should be the position of the mouse cursor in global coordinates. mouseButton should be the button that's changing state; mouseButton is ignored unless mouseType is one of EventOtherMouseDown, EventOtherMouseDragged, or EventOtherMouseUp.

        The current implemementation of the event system supports a maximum of thirty-two buttons. Mouse button 0 is the primary button on the mouse. Mouse button 1 is the secondary mouse button (right). Mouse button 2 is the center button, and the remaining buttons are in USB device order.

      • CGEventCreateKeyboardEvent

        public static long CGEventCreateKeyboardEvent​(long source,
                                                      short virtualKey,
                                                      boolean keyDown)
        Returns a new keyboard event.

        The event source may be taken from another event, or may be NULL. Based on the virtual key code values entered, the appropriate key down, key up, or flags changed events are generated.

        All keystrokes needed to generate a character must be entered, including SHIFT, CONTROL, OPTION, and COMMAND keys. For example, to produce a 'Z', the SHIFT key must be down, the 'z' key must go down, and then the SHIFT and 'z' key must be released:

        
         CGEventCreateKeyboardEvent(source, (CGKeyCode)56, true);  // shift down
         CGEventCreateKeyboardEvent(source, (CGKeyCode) 6, true);  // 'z' down
         CGEventCreateKeyboardEvent(source, (CGKeyCode) 6, false); // 'z' up
         CGEventCreateKeyboardEvent(source, (CGKeyCode)56, false); // 'shift up
      • CGEventCreateScrollWheelEvent

        public static long CGEventCreateScrollWheelEvent​(long source,
                                                         int units,
                                                         int wheelCount,
                                                         int wheel1)
        
        public static long CGEventCreateScrollWheelEvent​(long source,
                                                         int units,
                                                         int wheel1)
        
        Returns a new scrollwheel event.

        The event source may be taken from another event, or may be NULL. The scrolling units may be specified in lines using ScrollEventUnitLine or in pixels using ScrollEventUnitPixel. ScrollEventUnitPixel will produce an event that most applications interpret as a smooth scrolling event.

        One or more wheels must be specified. The current implementation supports up to three wheels.

        Every scrollwheel event can be interpreted to be scrolling by pixel or by line. The scale between the two is about 10 pixels per line by default. The scale can be altered by setting a custom value for the event source, using CGEventSourceSetPixelsPerLine.

      • CGEventCreateScrollWheelEvent2

        public static long CGEventCreateScrollWheelEvent2​(long source,
                                                          int units,
                                                          int wheelCount,
                                                          int wheel1,
                                                          int wheel2,
                                                          int wheel3)
        A non-variadic variant version of EventCreateScrollWheelEvent.
        Since:
        macOS 10.13
      • CGEventCreateCopy

        public static long CGEventCreateCopy​(long event)
        Return a copy of event.
      • CGEventCreateSourceFromEvent

        public static long CGEventCreateSourceFromEvent​(long event)
        Returns an event source created from an existing event.

        Event filters may use the event source to generate events that are compatible with an event being filtered.

        Note that CGEventCreateSourceFromEvent may return NULL if the event was generated with a private CGEventSourceStateID owned by another process. Such events should be filtered based on the public state.

      • CGEventSetSource

        public static void CGEventSetSource​(long event,
                                            long source)
        Set the event source of an event.
      • CGEventGetType

        public static int CGEventGetType​(long event)
        Returns the event type of an event (left mouse down, for example).
      • CGEventSetType

        public static void CGEventSetType​(long event,
                                          int type)
        Sets the event type of an event.
      • CGEventGetTimestamp

        public static long CGEventGetTimestamp​(long event)
        Returns the timestamp of an event.
      • CGEventSetTimestamp

        public static void CGEventSetTimestamp​(long event,
                                               long timestamp)
        Sets the timestamp of an event.
      • nCGEventGetLocation

        public static void nCGEventGetLocation​(long event,
                                               long __functionAddress,
                                               long __result)
        
        public static void nCGEventGetLocation​(long event,
                                               long __result)
        
        Unsafe version of: EventGetLocation
      • CGEventGetLocation

        public static CGPoint CGEventGetLocation​(long event,
                                                 CGPoint __result)
        Returns the location of an event in global display coordinates.

        CGPointZero is returned if event is not a valid CGEventRef.

      • nCGEventGetUnflippedLocation

        public static void nCGEventGetUnflippedLocation​(long event,
                                                        long __functionAddress,
                                                        long __result)
        
        public static void nCGEventGetUnflippedLocation​(long event,
                                                        long __result)
        
        Unsafe version of: EventGetUnflippedLocation
      • CGEventGetUnflippedLocation

        public static CGPoint CGEventGetUnflippedLocation​(long event,
                                                          CGPoint __result)
        Return the location of an event relative to the lower-left corner of the main display.

        CGPointZero is returned if event is not a valid CGEventRef.

      • nCGEventSetLocation

        public static void nCGEventSetLocation​(long event,
                                               long location,
                                               long __functionAddress)
        
        public static void nCGEventSetLocation​(long event,
                                               long location)
        
        Unsafe version of: EventSetLocation
      • CGEventSetLocation

        public static void CGEventSetLocation​(long event,
                                              CGPoint location)
        Sets the location of an event in global display coordinates.
      • CGEventGetFlags

        public static long CGEventGetFlags​(long event)
        Returns the event flags of an event.

        (CGEventFlags)0 if event is not a valid CGEventRef.

      • CGEventSetFlags

        public static void CGEventSetFlags​(long event,
                                           long flags)
        Sets the event flags of an event.
      • nCGEventKeyboardGetUnicodeString

        public static void nCGEventKeyboardGetUnicodeString​(long event,
                                                            long maxStringLength,
                                                            long actualStringLength,
                                                            long unicodeString)
      • CGEventKeyboardGetUnicodeString

        public static void CGEventKeyboardGetUnicodeString​(long event,
                                                           @Nullable
                                                           org.lwjgl.CLongBuffer actualStringLength,
                                                           @Nullable
                                                           java.nio.ShortBuffer unicodeString)
        Returns the Unicode string associated with a keyboard event.

        When you call this function with a NULL string or a maximum string length of 0, the function still returns the actual count of Unicode characters in the event.

      • nCGEventKeyboardSetUnicodeString

        public static void nCGEventKeyboardSetUnicodeString​(long event,
                                                            long stringLength,
                                                            long unicodeString)
      • CGEventKeyboardSetUnicodeString

        public static void CGEventKeyboardSetUnicodeString​(long event,
                                                           java.nio.ShortBuffer unicodeString)
        Sets the Unicode string associated with a keyboard event.

        By default, the system translates the virtual key code in a keyboard event into a Unicode string based on the keyboard ID in the event source. This function allows you to manually override this string. Note that application frameworks may ignore the Unicode string in a keyboard event and do their own translation based on the virtual keycode and perceived event state.

      • CGEventGetIntegerValueField

        public static long CGEventGetIntegerValueField​(long event,
                                                       int field)
        Returns the integer value of a field in an event.
      • CGEventSetIntegerValueField

        public static void CGEventSetIntegerValueField​(long event,
                                                       int field,
                                                       long value)
        Sets the integer value of a field in an event.

        Before calling this function, the event type must be set using a typed event creation function such as EventCreateMouseEvent, or by calling EventSetType.

        If you are creating a mouse event generated by a tablet, call this function and specify the field MouseEventSubtype with a value of EventMouseSubtypeTabletPoint or EventMouseSubtypeTabletProximity before setting other parameters.

      • CGEventGetDoubleValueField

        public static double CGEventGetDoubleValueField​(long event,
                                                        int field)
        Returns the floating-point value of a field in an event.

        In cases where the field value is represented within the event by a fixed point number or an integer, the result is scaled to the appropriate range as part of creating the floating-point representation.

      • CGEventSetDoubleValueField

        public static void CGEventSetDoubleValueField​(long event,
                                                      int field,
                                                      double value)
        Sets the floating-point value of a field in an event.

        Before calling this function, the event type must be set using a typed event creation function such as EventCreateMouseEvent, or by calling EventSetType.

        In cases where the field’s value is represented within the event by a fixed point number or integer, the value parameter is scaled as needed and converted to the appropriate type.

      • nCGEventTapCreate

        public static long nCGEventTapCreate​(int tap,
                                             int place,
                                             int options,
                                             long eventsOfInterest,
                                             long callback,
                                             long userInfo)
        Unsafe version of: EventTapCreate
      • CGEventTapCreate

        public static long CGEventTapCreate​(int tap,
                                            int place,
                                            int options,
                                            long eventsOfInterest,
                                            CGEventTapCallBackI callback,
                                            long userInfo)
        Creates an event tap.

        Taps may be placed at the point where HIDSystem events enter the server, at the point where HIDSystem and remote control events enter a session, at the point where events have been annotated to flow to a specific application, or at the point where events are delivered to the application. Taps may be inserted at a specified point at the head of pre-existing filters, or appended after any pre-existing filters.

        Taps may be passive event listeners, or active filters. An active filter may pass an event through unmodified, modify an event, or discard an event. When a tap is registered, it identifies the set of events to be observed with a mask, and indicates if it is a passive or active event filter. Multiple event type bitmasks may be ORed together.

        Taps may only be placed at HIDEventTap by a process running as the root user. NULL is returned for other users.

        Taps placed at HIDEventTap, SessionEventTap, AnnotatedSessionEventTap, or on a specific process may only receive key up and down events if access for assistive devices is enabled (Preferences Accessibility panel, Keyboard view) or the caller is enabled for assistive device access, as by AXMakeProcessTrusted. If the tap is not permitted to monitor these events when the tap is created, then the appropriate bits in the mask are cleared. If that results in an empty mask, then NULL is returned.

        An event tap is represented as a CFMachPortRef. The event tap may be added to an appropriate run loop by calling CFRunLoopAddSource.

        Releasing the CFMachPortRef will release the tap.

        A CGEventTapProxy is an opaque reference to state within the client application associated with the tap. The tap function may pass this reference to other functions, such as the event-posting routines.

        The event tap callback runs from the CFRunLoop to which the tap CFMachPort is added as a source. Thread safety is defined by the CFRunLoop and its environment.

      • nCGEventTapCreateForPid

        public static long nCGEventTapCreateForPid​(long pid,
                                                   int place,
                                                   int options,
                                                   long eventsOfInterest,
                                                   long callback,
                                                   long userInfo)
        Unsafe version of: EventTapCreateForPid
      • CGEventTapCreateForPid

        public static long CGEventTapCreateForPid​(long pid,
                                                  int place,
                                                  int options,
                                                  long eventsOfInterest,
                                                  CGEventTapCallBackI callback,
                                                  long userInfo)
        Create an event tap for a specified process.

        Events routed to individual applications may be tapped using another function. CGEventTapCreateForPSN will report all events routed to the specified application.

        Since:
        macOS 10.11
      • CGEventTapEnable

        public static void CGEventTapEnable​(long tap,
                                            boolean enable)
        Enables or disables an event tap.

        Taps are normally enabled when created. If a tap becomes unresponsive or a user requests taps be disabled, an appropriate kCGEventTapDisabled... event is passed to the registered CGEventTapCallBack function. An event tap may be re-enabled by calling this function.

      • CGEventTapIsEnabled

        public static boolean CGEventTapIsEnabled​(long tap)
        Return true if tap is enabled; false otherwise.
      • CGEventTapPostEvent

        public static void CGEventTapPostEvent​(long proxy,
                                               long event)
        Post an event from an event tap into the event stream.

        You can use this function to post a new event at the same point to which an event returned from an event tap callback function would be posted. The new event enters the system before the event returned by the callback enters the system. Events posted into the system will be seen by all taps placed after the tap posting the event.

      • CGEventPost

        public static void CGEventPost​(int tap,
                                       long event)
        Posts an event into the event stream at a specified location.

        This function posts the specified event immediately before any event taps instantiated for that location, and the event passes through any such taps.

        Parameters:
        tap - the location at which to post the event
        event - the event to post
      • CGEventPostToPid

        public static void CGEventPostToPid​(long pid,
                                            long event)
        Post an event into the event stream for a specific application.

        This function makes it possible for an application to establish an event routing policy, for example, by tapping events at the AnnotatedSessionEventTap location and then posting the events to another desired process.

        This function posts the specified event immediately before any event taps instantiated for the specified process, and the event passes through any such taps.

        Since:
        macOS 10.11
      • nCGGetEventTapList

        public static int nCGGetEventTapList​(int maxNumberOfTaps,
                                             long tapList,
                                             long eventTapCount)
        Unsafe version of: GetEventTapList
      • CGGetEventTapList

        public static int CGGetEventTapList​(@Nullable
                                            CGEventTapInformation.Buffer tapList,
                                            @Nullable
                                            java.nio.IntBuffer eventTapCount)
        Gets a list of currently installed event taps.

        tapList is an array of event tap information structures of length maxNumberOfTaps. You are responsible for allocating storage for this array. On return, your array contains a list of currently installed event taps. On return, the number of event taps that are currently installed is stored in eventTapCount. If you pass NULL in this parameter, the maxNumberOfTaps parameter is ignored, and the number of event taps that are currently installed is stored in eventTapCount.

        Each call to this function has the side effect of resetting the minimum and maximum latencies in the tapList parameter to the corresponding average values. Values reported in these fields reflect the minimum and maximum values seen since the preceding call, or the instantiation of the tap. This allows a monitoring tool to evaluate the best and worst case latency over time and under various operating conditions.

      • CGEventKeyboardGetUnicodeString

        public static void CGEventKeyboardGetUnicodeString​(long event,
                                                           @Nullable
                                                           org.lwjgl.CLongBuffer actualStringLength,
                                                           @Nullable
                                                           short[] unicodeString)
      • CGEventKeyboardSetUnicodeString

        public static void CGEventKeyboardSetUnicodeString​(long event,
                                                           short[] unicodeString)