Class MouseEvent

    • Constructor Detail

      • MouseEvent

        public MouseEvent​(short eventType,
                          Object source,
                          long when,
                          int modifiers,
                          int x,
                          int y,
                          short clickCount,
                          short button,
                          float[] rotationXYZ,
                          float rotationScale)
        Constructor for traditional one-pointer event.
        Parameters:
        eventType -
        source -
        when -
        modifiers -
        x - X-axis
        y - Y-axis
        clickCount - Mouse-button click-count
        button - button number, e.g. [BUTTON1..BUTTON_COUNT-1]. A button value of 0 denotes no button activity, i.e. MouseEvent.PointerType.Mouse move.
        rotationXYZ - Rotation of all axis
        rotationScale - Rotation scale
      • MouseEvent

        public MouseEvent​(short eventType,
                          Object source,
                          long when,
                          int modifiers,
                          MouseEvent.PointerType[] pointerType,
                          short[] pointerID,
                          int[] x,
                          int[] y,
                          float[] pressure,
                          float maxPressure,
                          short button,
                          short clickCount,
                          float[] rotationXYZ,
                          float rotationScale)
        Constructor for a multiple-pointer event.

        First element of multiple-pointer arrays represents the pointer which triggered the event!

        See details for multiple-pointer events.

        Parameters:
        eventType -
        source -
        when -
        modifiers -
        pointerType - PointerType for each pointer (multiple pointer)
        pointerID - Pointer ID for each pointer (multiple pointer). IDs start w/ 0 and are consecutive numbers. A pointer-ID of -1 may also denote no pointer/button activity, i.e. MouseEvent.PointerType.Mouse move.
        x - X-axis for each pointer (multiple pointer)
        y - Y-axis for each pointer (multiple pointer)
        pressure - Pressure for each pointer (multiple pointer)
        maxPressure - Maximum pointer pressure for all pointer
        button - Corresponding mouse-button
        clickCount - Mouse-button click-count
        rotationXYZ - Rotation of all axis
        rotationScale - Rotation scale
    • Method Detail

      • getRotationXYZ

        public static final float[] getRotationXYZ​(float rotationXorY,
                                                   int mods)
        Returns the 3-axis XYZ rotation array by given rotation on Y axis or X axis (if SHIFT_MASK is given in mods).
      • getClickTimeout

        public static final short getClickTimeout()
      • createVariant

        public final MouseEvent createVariant​(short newEventType)
      • getPointerCount

        public final int getPointerCount()
        See details for multiple-pointer events.
        Returns:
        the count of pointers involved in this event
      • getPointerId

        public final short getPointerId​(int index)
        Return the pointer id for the given index or -1 if index not available.

        IDs start w/ 0 and are consecutive numbers.

        See details for multiple-pointer events.

      • getPointerIdx

        public final int getPointerIdx​(short id)
        See details for multiple-pointer events.
        Returns:
        the pointer index for the given pointer id or -1 if id not available.
      • getAllPointerIDs

        public final short[] getAllPointerIDs()
        See details for multiple-pointer events.
        Returns:
        array of all pointer IDs for all pointers. IDs start w/ 0 and are consecutive numbers.
      • getClickCount

        public final short getClickCount()
      • getX

        public final int getX()
        See details for multiple-pointer events.
        Returns:
        X-Coord of the triggering pointer-index zero in pixel units.
      • getY

        public final int getY()
        See details for multiple-pointer events.
        Returns:
        Y-Coord of the triggering pointer-index zero in pixel units.
      • getX

        public final int getX​(int index)
        See details for multiple-pointer events.
        Parameters:
        index - pointer-index within [0 .. getPointerCount()-1]
        Returns:
        X-Coord associated with the pointer-index in pixel units.
        See Also:
        getPointerId(index)
      • getY

        public final int getY​(int index)
        See details for multiple-pointer events.
        Parameters:
        index - pointer-index within [0 .. getPointerCount()-1]
        Returns:
        Y-Coord associated with the pointer-index in pixel units.
        See Also:
        getPointerId(index)
      • getAllX

        public final int[] getAllX()
        See details for multiple-pointer events.
        Returns:
        array of all X-Coords for all pointers in pixel units.
      • getAllY

        public final int[] getAllY()
        See details for multiple-pointer events.
        Returns:
        array of all Y-Coords for all pointers in pixel units.
      • getPressure

        public final float getPressure​(boolean normalized)
        Parameters:
        normalized - if true, method returns the normalized pressure, i.e. pressure / maxPressure
        Returns:
        The pressure associated with the pointer-index 0. The value of zero is return if not available.
        See Also:
        getMaxPressure()
      • getPressure

        public final float getPressure​(int index,
                                       boolean normalized)
        See details for multiple-pointer events.
        Parameters:
        index - pointer-index within [0 .. getPointerCount()-1]
        normalized - if true, method returns the normalized pressure, i.e. pressure / maxPressure
        Returns:
        The pressure associated with the pointer-index. The value of zero is return if not available.
        See Also:
        getMaxPressure()
      • getAllPressures

        public final float[] getAllPressures()
        See details for multiple-pointer events.
        Returns:
        array of all raw, un-normalized pressures for all pointers
      • getMaxPressure

        public final float getMaxPressure()
        Returns the maximum pressure known for the input device generating this event.

        This value may be self calibrating on devices/OS, where no known maximum pressure is known. Hence subsequent events may return a higher value.

        Self calibrating maximum pressure is performed on:

        • Android

      • getRotation

        public final float[] getRotation()
        Returns a 3-component float array filled with the values of the rotational axis in the following order: horizontal-, vertical- and z-axis.

        A vertical rotation of > 0.0f is up and < 0.0f is down.

        A horizontal rotation of > 0.0f is left and < 0.0f is right.

        A z-axis rotation of > 0.0f is back and < 0.0f is front.

        However, on some OS this might be flipped due to the OS default behavior. The latter is true for OS X 10.7 (Lion) for example.

        On PointerClass onscreen devices, i.e. touch screens, rotation events are usually produced by a 2-finger movement, where horizontal and vertical rotation values are filled.

        On PointerClass offscreen devices, i.e. mouse, either the horizontal or the vertical rotation value is filled.

        The InputEvent.SHIFT_MASK modifier is set in case |horizontal| > |vertical| value.
        This can be utilized to implement only one 2d rotation direction, you may use InputEvent.isShiftDown() to query it.

        In case the pointer type is mouse, events are usually send in steps of one, ie. -1.0f and 1.0f. Higher values may result due to fast scrolling. Fractional values may result due to slow scrolling with high resolution devices.
        Here the button number refers to the wheel number.

        In case the pointer type is of class MouseEvent.PointerClass.Onscreen, e.g. touch screen, see getRotationScale() for semantics.

      • getRotationScale

        public final float getRotationScale()
        Returns the scale used to determine the rotation value, which semantics depends on the pointer type's MouseEvent.PointerClass.

        For MouseEvent.PointerClass.Offscreen, the scale is usually 1.0f and denominates an abstract value without association to a physical value.

        For MouseEvent.PointerClass.Onscreen, the scale varies and denominates the divisor of the distance the finger[s] have moved on the screen. Hence scale * rotation reproduces the screen distance in pixels the finger[s] have moved.

      • getEventTypeString

        public static String getEventTypeString​(short type)