Loading...
Searching...
No Matches
juce::MouseInputSource Class Referencefinal

## Detailed Description

Represents a linear source of mouse events from a mouse device or individual finger in a multi-touch environment.

Each MouseEvent object contains a reference to the MouseInputSource that generated it. In an environment with a single mouse for input, all events will come from the same source, but in a multi-touch system, there may be multiple MouseInputSource objects active, each representing a stream of events coming from a particular finger.

Events coming from a single MouseInputSource are always sent in a fixed and predictable order: a mouseMove will never be called without a mouseEnter having been sent beforehand, the only events that can happen between a mouseDown and its corresponding mouseUp are mouseDrags, etc. When there are multiple touches arriving from multiple MouseInputSources, their event streams may arrive in an interleaved order, so you should use the getIndex() method to find out which finger each event came from.

See also
  MouseEvent

The documentation for this class was generated from the following file:

- juce_gui_basics/mouse/juce_MouseInputSource.h

## Public Types

enum | InputSourceType { mouse , touch , pen }
| Possible mouse input sources. More...

## Public Member Functions

| MouseInputSource (const MouseInputSource &) noexcept
MouseInputSource & | operator= (const MouseInputSource &) noexcept
| ~MouseInputSource () noexcept
bool | operator== (const MouseInputSource &other) const noexcept
bool | operator!= (const MouseInputSource &other) const noexcept
MouseInputSource::InputSourceType | getType () const noexcept
| Returns the type of input source that this object represents.
bool | isMouse () const noexcept
| Returns true if this object represents a normal desk-based mouse device.
bool | isTouch () const noexcept
| Returns true if this object represents a source of touch events.
bool | isPen () const noexcept
| Returns true if this object represents a pen device.
bool | canHover () const noexcept
| Returns true if this source has an on-screen pointer that can hover over items without clicking them.
bool | hasMouseWheel () const noexcept
| Returns true if this source may have a scroll wheel.
int | getIndex () const noexcept
| Returns this source's index in the global list of possible sources.
bool | isDragging () const noexcept
| Returns true if this device is currently being pressed.
Point< float > | getScreenPosition () const noexcept
| Returns the last-known screen position of this source.
Point< float > | getRawScreenPosition () const noexcept
| Returns the last-known screen position of this source without any scaling applied.
ModifierKeys | getCurrentModifiers () const noexcept
| Returns a set of modifiers that indicate which buttons are currently held down on this device.
float | getCurrentPressure () const noexcept
| Returns the device's current touch or pen pressure.
float | getCurrentOrientation () const noexcept
| Returns the device's current orientation in radians.
float | getCurrentRotation () const noexcept
| Returns the device's current rotation.
float | getCurrentTilt (bool tiltX) const noexcept
| Returns the angle of tilt of the pointer in a range of -1.0 to 1.0 either in the x- or y-axis.
bool | isPressureValid () const noexcept
| Returns true if the current pressure value is meaningful.
bool | isOrientationValid () const noexcept
| Returns true if the current orientation value is meaningful.
bool | isRotationValid () const noexcept
| Returns true if the current rotation value is meaningful.
bool | isTiltValid (bool tiltX) const noexcept
| Returns true if the current tilt value (either x- or y-axis) is meaningful.
Component * | getComponentUnderMouse () const
| Returns the component that was last known to be under this pointer.
void | triggerFakeMove () const
| Tells the device to dispatch a mouse-move or mouse-drag event.
int | getNumberOfMultipleClicks () const noexcept
| Returns the number of clicks that should be counted as belonging to the current mouse event.
Time | getLastMouseDownTime () const noexcept
| Returns the time at which the last mouse-down occurred.
Point< float > | getLastMouseDownPosition () const noexcept
| Returns the screen position at which the last mouse-down occurred.
bool | isLongPressOrDrag () const noexcept
| Returns true if this input source represents a long-press or drag interaction i.e.
bool | hasMovedSignificantlySincePressed () const noexcept
| Returns true if this input source has been dragged more than a couple of pixels from the place it was pressed.
bool | hasMouseCursor () const noexcept
| Returns true if this input source uses a visible mouse cursor.
void | showMouseCursor (const MouseCursor &cursor)
| Changes the mouse cursor, (if there is one).
void | hideCursor ()
| Hides the mouse cursor (if there is one).
void | revealCursor ()
| Un-hides the mouse cursor if it was hidden by hideCursor().
void | forceMouseCursorUpdate ()
| Forces an update of the mouse cursor for whatever component it's currently over.
bool | canDoUnboundedMovement () const noexcept
| Returns true if this mouse can be moved indefinitely in any direction without running out of space.
void | enableUnboundedMouseMovement (bool isEnabled, bool keepCursorVisibleUntilOffscreen=false) const
| Allows the mouse to move beyond the edges of the screen.
bool | isUnboundedMouseMovementEnabled () const
| Returns true if this source is currently in "unbounded" mode.
void | setScreenPosition (Point< float > newPosition)
| Attempts to set this mouse pointer's screen position.

## Static Public Attributes

static constexpr float | defaultPressure = 0.0f
| A default value for pressure, which is used when a device doesn't support it, or for mouse-moves, mouse-ups, etc.
static constexpr float | defaultOrientation = 0.0f
| A default value for orientation, which is used when a device doesn't support it.
static constexpr float | defaultRotation = 0.0f
| A default value for rotation, which is used when a device doesn't support it.
static constexpr float | defaultTiltX = 0.0f
| Default values for tilt, which are used when a device doesn't support it.
static constexpr float | defaultTiltY = 0.0f
static const float | invalidPressure
| A default value for pressure, which is used when a device doesn't support it.
static const float | invalidOrientation
| A default value for orientation, which is used when a device doesn't support it.
static const float | invalidRotation
| A default value for rotation, which is used when a device doesn't support it.
static const float | invalidTiltX
| Default values for tilt, which are used when a device doesn't support it.
static const float | invalidTiltY
static const Point< float > | offscreenMousePos
| An offscreen mouse position used when triggering mouse exits where we don't want to move the cursor over an existing component.

## Member Enums

## InputSourceType

enum juce::MouseInputSource::InputSourceType

Possible mouse input sources.

Enumerator
mouse |
touch |
pen |

## Constructors and Destructors

## MouseInputSource()

juce::MouseInputSource::MouseInputSource | ( | const MouseInputSource & |  | ) |

noexcept

References MouseInputSource().

Referenced by Desktop, MouseInputSource(), operator!=(), operator=(), and operator==().

## ~MouseInputSource()

juce::MouseInputSource::~MouseInputSource | ( |  | ) |

noexcept

## Member Functions

## operator=()

MouseInputSource & juce::MouseInputSource::operator= | ( | const MouseInputSource & |  | ) |

noexcept

References MouseInputSource().

## operator==()

bool juce::MouseInputSource::operator== | ( | const MouseInputSource & | other | ) | const

inline noexcept

References MouseInputSource().

## operator!=()

bool juce::MouseInputSource::operator!= | ( | const MouseInputSource & | other | ) | const

inline noexcept

References MouseInputSource().

## getType()

MouseInputSource::InputSourceType juce::MouseInputSource::getType | ( |  | ) | const

noexcept

Returns the type of input source that this object represents.

## isMouse()

bool juce::MouseInputSource::isMouse | ( |  | ) | const

noexcept

Returns true if this object represents a normal desk-based mouse device.

References isMouse().

Referenced by isMouse().

## isTouch()

bool juce::MouseInputSource::isTouch | ( |  | ) | const

noexcept

Returns true if this object represents a source of touch events.

References isTouch().

Referenced by isTouch().

## isPen()

bool juce::MouseInputSource::isPen | ( |  | ) | const

noexcept

Returns true if this object represents a pen device.

References isPen().

Referenced by isPen().

## canHover()

bool juce::MouseInputSource::canHover | ( |  | ) | const

noexcept

Returns true if this source has an on-screen pointer that can hover over items without clicking them.

References canHover().

Referenced by canHover().

## hasMouseWheel()

bool juce::MouseInputSource::hasMouseWheel | ( |  | ) | const

noexcept

Returns true if this source may have a scroll wheel.

References hasMouseWheel().

Referenced by hasMouseWheel().

## getIndex()

int juce::MouseInputSource::getIndex | ( |  | ) | const

noexcept

Returns this source's index in the global list of possible sources.

If the system only has a single mouse, there will only be a single MouseInputSource with an index of 0.

If the system supports multi-touch input, then the index will represent a finger number, starting from 0. When the first touch event begins, it will have finger number 0, and then if a second touch happens while the first is still down, it will have index 1, etc.

References getIndex().

Referenced by getIndex().

## isDragging()

bool juce::MouseInputSource::isDragging | ( |  | ) | const

noexcept

Returns true if this device is currently being pressed.

References isDragging().

Referenced by isDragging().

## getScreenPosition()

Point< float > juce::MouseInputSource::getScreenPosition | ( |  | ) | const

noexcept

Returns the last-known screen position of this source.

References getScreenPosition().

Referenced by getScreenPosition().

## getRawScreenPosition()

Point< float > juce::MouseInputSource::getRawScreenPosition | ( |  | ) | const

noexcept

Returns the last-known screen position of this source without any scaling applied.

References getRawScreenPosition().

Referenced by getRawScreenPosition().

## getCurrentModifiers()

ModifierKeys juce::MouseInputSource::getCurrentModifiers | ( |  | ) | const

noexcept

Returns a set of modifiers that indicate which buttons are currently held down on this device.

References getCurrentModifiers().

Referenced by getCurrentModifiers().

## getCurrentPressure()

float juce::MouseInputSource::getCurrentPressure | ( |  | ) | const

noexcept

Returns the device's current touch or pen pressure.

The range is 0 (soft) to 1 (hard). If the input device doesn't provide any pressure data, it may return a negative value here, or 0.0 or 1.0, depending on the platform.

References getCurrentPressure().

Referenced by getCurrentPressure().

## getCurrentOrientation()

float juce::MouseInputSource::getCurrentOrientation | ( |  | ) | const

noexcept

Returns the device's current orientation in radians.

0 indicates a touch pointer aligned with the x-axis and pointing from left to right; increasing values indicate rotation in the clockwise direction. Only reported by a touch pointer.

References getCurrentOrientation().

Referenced by getCurrentOrientation().

## getCurrentRotation()

float juce::MouseInputSource::getCurrentRotation | ( |  | ) | const

noexcept

Returns the device's current rotation.

Indicates the clockwise rotation, or twist, of the pointer in radians. The default is 0. Only reported by a pen pointer.

References getCurrentRotation().

Referenced by getCurrentRotation().

## getCurrentTilt()

float juce::MouseInputSource::getCurrentTilt | ( | bool | tiltX | ) | const

noexcept

Returns the angle of tilt of the pointer in a range of -1.0 to 1.0 either in the x- or y-axis.

The default is 0. If x-axis, a positive value indicates a tilt to the right and if y-axis, a positive value indicates a tilt toward the user. Only reported by a pen pointer.

References getCurrentTilt().

Referenced by getCurrentTilt().

## isPressureValid()

bool juce::MouseInputSource::isPressureValid | ( |  | ) | const

noexcept

Returns true if the current pressure value is meaningful.

References isPressureValid().

Referenced by isPressureValid().

## isOrientationValid()

bool juce::MouseInputSource::isOrientationValid | ( |  | ) | const

noexcept

Returns true if the current orientation value is meaningful.

References isOrientationValid().

Referenced by isOrientationValid().

## isRotationValid()

bool juce::MouseInputSource::isRotationValid | ( |  | ) | const

noexcept

Returns true if the current rotation value is meaningful.

References isRotationValid().

Referenced by isRotationValid().

## isTiltValid()

bool juce::MouseInputSource::isTiltValid | ( | bool | tiltX | ) | const

noexcept

Returns true if the current tilt value (either x- or y-axis) is meaningful.

References isTiltValid().

Referenced by isTiltValid().

## getComponentUnderMouse()

Component * juce::MouseInputSource::getComponentUnderMouse | ( |  | ) | const

Returns the component that was last known to be under this pointer.

References getComponentUnderMouse().

Referenced by getComponentUnderMouse().

## triggerFakeMove()

void juce::MouseInputSource::triggerFakeMove | ( |  | ) | const

Tells the device to dispatch a mouse-move or mouse-drag event.

This is asynchronous - the event will occur on the message thread.

References triggerFakeMove().

Referenced by triggerFakeMove().

## getNumberOfMultipleClicks()

int juce::MouseInputSource::getNumberOfMultipleClicks | ( |  | ) | const

noexcept

Returns the number of clicks that should be counted as belonging to the current mouse event.

So the mouse is currently down and it's the second click of a double-click, this will return 2.

References getNumberOfMultipleClicks().

Referenced by getNumberOfMultipleClicks().

## getLastMouseDownTime()

Time juce::MouseInputSource::getLastMouseDownTime | ( |  | ) | const

noexcept

Returns the time at which the last mouse-down occurred.

References getLastMouseDownTime().

Referenced by getLastMouseDownTime().

## getLastMouseDownPosition()

Point< float > juce::MouseInputSource::getLastMouseDownPosition | ( |  | ) | const

noexcept

Returns the screen position at which the last mouse-down occurred.

References getLastMouseDownPosition().

Referenced by getLastMouseDownPosition().

## isLongPressOrDrag()

bool juce::MouseInputSource::isLongPressOrDrag | ( |  | ) | const

noexcept

Returns true if this input source represents a long-press or drag interaction i.e.

it has been held down for a significant amount of time or it has been dragged more than a couple of pixels from the place it was pressed.

References isLongPressOrDrag().

Referenced by isLongPressOrDrag().

## hasMovedSignificantlySincePressed()

bool juce::MouseInputSource::hasMovedSignificantlySincePressed | ( |  | ) | const

noexcept

Returns true if this input source has been dragged more than a couple of pixels from the place it was pressed.

References hasMovedSignificantlySincePressed().

Referenced by hasMovedSignificantlySincePressed().

## hasMouseCursor()

bool juce::MouseInputSource::hasMouseCursor | ( |  | ) | const

noexcept

Returns true if this input source uses a visible mouse cursor.

References hasMouseCursor().

Referenced by hasMouseCursor().

## showMouseCursor()

void juce::MouseInputSource::showMouseCursor | ( | const MouseCursor & | cursor | ) |

Changes the mouse cursor, (if there is one).

References showMouseCursor().

Referenced by showMouseCursor().

## hideCursor()

void juce::MouseInputSource::hideCursor | ( |  | ) |

Hides the mouse cursor (if there is one).

References hideCursor().

Referenced by hideCursor().

## revealCursor()

void juce::MouseInputSource::revealCursor | ( |  | ) |

Un-hides the mouse cursor if it was hidden by hideCursor().

References revealCursor().

Referenced by revealCursor().

## forceMouseCursorUpdate()

void juce::MouseInputSource::forceMouseCursorUpdate | ( |  | ) |

Forces an update of the mouse cursor for whatever component it's currently over.

References forceMouseCursorUpdate().

Referenced by forceMouseCursorUpdate().

## canDoUnboundedMovement()

bool juce::MouseInputSource::canDoUnboundedMovement | ( |  | ) | const

noexcept

Returns true if this mouse can be moved indefinitely in any direction without running out of space.

References canDoUnboundedMovement().

Referenced by canDoUnboundedMovement().

## enableUnboundedMouseMovement()

void juce::MouseInputSource::enableUnboundedMouseMovement | ( | bool | isEnabled,
|  | bool | keepCursorVisibleUntilOffscreen = false ) const

Allows the mouse to move beyond the edges of the screen.

Calling this method when the mouse button is currently pressed will remove the cursor from the screen and allow the mouse to (seem to) move beyond the edges of the screen.

This means that the coordinates returned to mouseDrag() will be unbounded, and this can be used for things like custom slider controls or dragging objects around, where movement would be otherwise be limited by the mouse hitting the edges of the screen.

The unbounded mode is automatically turned off when the mouse button is released, or it can be turned off explicitly by calling this method again.

Parameters

  isEnabled | whether to turn this mode on or off
  keepCursorVisibleUntilOffscreen | if set to false, the cursor will immediately be hidden; if true, it will only be hidden when it is moved beyond the edge of the screen

References enableUnboundedMouseMovement().

Referenced by enableUnboundedMouseMovement().

## isUnboundedMouseMovementEnabled()

bool juce::MouseInputSource::isUnboundedMouseMovementEnabled | ( |  | ) | const

Returns true if this source is currently in "unbounded" mode.

References isUnboundedMouseMovementEnabled().

Referenced by isUnboundedMouseMovementEnabled().

## setScreenPosition()

void juce::MouseInputSource::setScreenPosition | ( | Point< float > | newPosition | ) |

Attempts to set this mouse pointer's screen position.

References setScreenPosition().

Referenced by setScreenPosition().

## Member Data Documentation

## defaultPressure

float juce::MouseInputSource::defaultPressure = 0.0f

static constexpr

A default value for pressure, which is used when a device doesn't support it, or for mouse-moves, mouse-ups, etc.

## defaultOrientation

float juce::MouseInputSource::defaultOrientation = 0.0f

static constexpr

A default value for orientation, which is used when a device doesn't support it.

## defaultRotation

float juce::MouseInputSource::defaultRotation = 0.0f

static constexpr

A default value for rotation, which is used when a device doesn't support it.

## defaultTiltX

float juce::MouseInputSource::defaultTiltX = 0.0f

static constexpr

Default values for tilt, which are used when a device doesn't support it.

## defaultTiltY

float juce::MouseInputSource::defaultTiltY = 0.0f

static constexpr

## invalidPressure

const float juce::MouseInputSource::invalidPressure

static

A default value for pressure, which is used when a device doesn't support it.

This is a valid value, returning true when calling isPressureValid() hence the deprecation. Use defaultPressure instead.

## invalidOrientation

const float juce::MouseInputSource::invalidOrientation

static

A default value for orientation, which is used when a device doesn't support it.

This is a valid value, returning true when calling isOrientationValid() hence the deprecation. Use defaultOrientation instead.

## invalidRotation

const float juce::MouseInputSource::invalidRotation

static

A default value for rotation, which is used when a device doesn't support it.

This is a valid value, returning true when calling isRotationValid() hence the deprecation. Use defaultRotation instead.

## invalidTiltX

const float juce::MouseInputSource::invalidTiltX

static

Default values for tilt, which are used when a device doesn't support it.

These are valid values, returning true when calling isTiltValid() hence the deprecation. Use defaultTiltX and defaultTiltY instead.

## invalidTiltY

const float juce::MouseInputSource::invalidTiltY

static

## offscreenMousePos

const Point<float> juce::MouseInputSource::offscreenMousePos

static

An offscreen mouse position used when triggering mouse exits where we don't want to move the cursor over an existing component.

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited