Public Types | Public Member Functions | Static Public Member Functions

Desktop Class Reference

Describes and controls aspects of the computer's desktop. More...

Inherits DeletedAtShutdown, Timer, and AsyncUpdater.

List of all members.

Public Types

enum  DisplayOrientation {
  upright = 1, upsideDown = 2, rotatedClockwise = 4, rotatedAntiClockwise = 8,
  allOrientations = 1 + 2 + 4 + 8
}
 

In a tablet device which can be turned around, this is used to inidicate the orientation.

More...

Public Member Functions

const RectangleList getAllMonitorDisplayAreas (bool clippedToWorkArea=true) const
 Returns a list of the positions of all the monitors available.
const Rectangle< int > getMainMonitorArea (bool clippedToWorkArea=true) const noexcept
 Returns the position and size of the main monitor.
const Rectangle< int > getMonitorAreaContaining (const Point< int > &position, bool clippedToWorkArea=true) const
 Returns the position and size of the monitor which contains this co-ordinate.
void addGlobalMouseListener (MouseListener *listener)
 Registers a MouseListener that will receive all mouse events that occur on any component.
void removeGlobalMouseListener (MouseListener *listener)
 Unregisters a MouseListener that was added with the addGlobalMouseListener() method.
void addFocusChangeListener (FocusChangeListener *listener)
 Registers a MouseListener that will receive a callback whenever the focused component changes.
void removeFocusChangeListener (FocusChangeListener *listener)
 Unregisters a listener that was added with addFocusChangeListener().
void setKioskModeComponent (Component *componentToUse, bool allowMenusAndBars=true)
 Takes a component and makes it full-screen, removing the taskbar, dock, etc.
ComponentgetKioskModeComponent () const noexcept
 Returns the component that is currently being used in kiosk-mode.
int getNumComponents () const noexcept
 Returns the number of components that are currently active as top-level desktop windows.
ComponentgetComponent (int index) const noexcept
 Returns one of the top-level desktop window components.
ComponentfindComponentAt (const Point< int > &screenPosition) const
 Finds the component at a given screen location.
ComponentAnimatorgetAnimator () noexcept
 The Desktop object has a ComponentAnimator instance which can be used for performing your animations.
LookAndFeelgetDefaultLookAndFeel () noexcept
 Returns the current default look-and-feel for components which don't have one explicitly set.
void setDefaultLookAndFeel (LookAndFeel *newDefaultLookAndFeel)
 Changes the default look-and-feel.
int getNumMouseSources () const noexcept
 Returns the number of MouseInputSource objects the system has at its disposal.
MouseInputSourcegetMouseSource (int index) const noexcept
 Returns one of the system's MouseInputSource objects.
MouseInputSourcegetMainMouseSource () const noexcept
 Returns the main mouse input device that the system is using.
int getNumDraggingMouseSources () const noexcept
 Returns the number of mouse-sources that are currently being dragged.
MouseInputSourcegetDraggingMouseSource (int index) const noexcept
 Returns one of the mouse sources that's currently being dragged.
void beginDragAutoRepeat (int millisecondsBetweenCallbacks)
 Ensures that a non-stop stream of mouse-drag events will be sent during the current mouse-drag operation.
DisplayOrientation getCurrentOrientation () const
 In a tablet device which can be turned around, this returns the current orientation.
void setOrientationsEnabled (int allowedOrientations)
 Sets which orientations the display is allowed to auto-rotate to.
bool isOrientationEnabled (DisplayOrientation orientation) const noexcept
 Returns whether the display is allowed to auto-rotate to the given orientation.
void refreshMonitorSizes ()
 Tells this object to refresh its idea of what the screen resolution is.

Static Public Member Functions

static Desktop &JUCE_CALLTYPE getInstance ()
 There's only one dektop object, and this method will return it.
static const Point< int > getMousePosition ()
 Returns the mouse position.
static void setMousePosition (const Point< int > &newPosition)
 Makes the mouse pointer jump to a given location.
static const Point< int > getLastMouseDownPosition ()
 Returns the last position at which a mouse button was pressed.
static int getMouseButtonClickCounter ()
 Returns the number of times the mouse button has been clicked since the app started.
static void setScreenSaverEnabled (bool isEnabled)
 This lets you prevent the screensaver from becoming active.
static bool isScreenSaverEnabled ()
 Returns true if the screensaver has not been turned off.
static bool canUseSemiTransparentWindows () noexcept
 True if the OS supports semitransparent windows.

Detailed Description

Describes and controls aspects of the computer's desktop.


Member Enumeration Documentation

In a tablet device which can be turned around, this is used to inidicate the orientation.

Enumerator:
upright 

Indicates that the display is the normal way up.

upsideDown 

Indicates that the display is upside-down.

rotatedClockwise 

Indicates that the display is turned 90 degrees clockwise from its upright position.

rotatedAntiClockwise 

Indicates that the display is turned 90 degrees anti-clockwise from its upright position.

allOrientations 

A combination of all the orientation values.


Member Function Documentation

static Desktop& JUCE_CALLTYPE Desktop::getInstance (  ) [static]

There's only one dektop object, and this method will return it.

const RectangleList Desktop::getAllMonitorDisplayAreas ( bool  clippedToWorkArea = true ) const

Returns a list of the positions of all the monitors available.

The first rectangle in the list will be the main monitor area.

If clippedToWorkArea is true, it will exclude any areas like the taskbar on Windows, or the menu bar on Mac. If clippedToWorkArea is false, the entire monitor area is returned.

const Rectangle<int> Desktop::getMainMonitorArea ( bool  clippedToWorkArea = true ) const

Returns the position and size of the main monitor.

If clippedToWorkArea is true, it will exclude any areas like the taskbar on Windows, or the menu bar on Mac. If clippedToWorkArea is false, the entire monitor area is returned.

const Rectangle<int> Desktop::getMonitorAreaContaining ( const Point< int > &  position,
bool  clippedToWorkArea = true 
) const

Returns the position and size of the monitor which contains this co-ordinate.

If none of the monitors contains the point, this will just return the main monitor.

If clippedToWorkArea is true, it will exclude any areas like the taskbar on Windows, or the menu bar on Mac. If clippedToWorkArea is false, the entire monitor area is returned.

static const Point<int> Desktop::getMousePosition (  ) [static]

Returns the mouse position.

The co-ordinates are relative to the top-left of the main monitor.

Note that this is just a shortcut for calling getMainMouseSource().getScreenPosition(), and you should only resort to grabbing the global mouse position if there's really no way to get the coordinates via a mouse event callback instead.

static void Desktop::setMousePosition ( const Point< int > &  newPosition ) [static]

Makes the mouse pointer jump to a given location.

The co-ordinates are relative to the top-left of the main monitor.

static const Point<int> Desktop::getLastMouseDownPosition (  ) [static]

Returns the last position at which a mouse button was pressed.

Note that this is just a shortcut for calling getMainMouseSource().getLastMouseDownPosition(), and in a multi-touch environment, it doesn't make much sense. ALWAYS prefer to get this information via other means, such as MouseEvent::getMouseDownScreenPosition() if possible, and only ever call this as a last resort.

static int Desktop::getMouseButtonClickCounter (  ) [static]

Returns the number of times the mouse button has been clicked since the app started.

Each mouse-down event increments this number by 1.

static void Desktop::setScreenSaverEnabled ( bool  isEnabled ) [static]

This lets you prevent the screensaver from becoming active.

Handy if you're running some sort of presentation app where having a screensaver appear would be annoying.

Pass false to disable the screensaver, and true to re-enable it. (Note that this won't enable a screensaver unless the user has actually set one up).

The disablement will only happen while the Juce application is the foreground process - if another task is running in front of it, then the screensaver will be unaffected.

See also:
isScreenSaverEnabled
static bool Desktop::isScreenSaverEnabled (  ) [static]

Returns true if the screensaver has not been turned off.

This will return the last value passed into setScreenSaverEnabled(). Note that it won't tell you whether the user is actually using a screen saver, just whether this app is deliberately preventing one from running.

See also:
setScreenSaverEnabled
void Desktop::addGlobalMouseListener ( MouseListener listener )

Registers a MouseListener that will receive all mouse events that occur on any component.

See also:
removeGlobalMouseListener
void Desktop::removeGlobalMouseListener ( MouseListener listener )

Unregisters a MouseListener that was added with the addGlobalMouseListener() method.

See also:
addGlobalMouseListener
void Desktop::addFocusChangeListener ( FocusChangeListener listener )

Registers a MouseListener that will receive a callback whenever the focused component changes.

void Desktop::removeFocusChangeListener ( FocusChangeListener listener )

Unregisters a listener that was added with addFocusChangeListener().

void Desktop::setKioskModeComponent ( Component componentToUse,
bool  allowMenusAndBars = true 
)

Takes a component and makes it full-screen, removing the taskbar, dock, etc.

The component must already be on the desktop for this method to work. It will be resized to completely fill the screen and any extraneous taskbars, menu bars, etc will be hidden.

To exit kiosk mode, just call setKioskModeComponent (nullptr). When this is called, the component that's currently being used will be resized back to the size and position it was in before being put into this mode.

If allowMenusAndBars is true, things like the menu and dock (on mac) are still allowed to pop up when the mouse moves onto them. If this is false, it'll try to hide as much on-screen paraphenalia as possible.

Component* Desktop::getKioskModeComponent (  ) const

Returns the component that is currently being used in kiosk-mode.

This is the component that was last set by setKioskModeComponent(). If none has been set, this returns 0.

int Desktop::getNumComponents (  ) const

Returns the number of components that are currently active as top-level desktop windows.

See also:
getComponent, Component::addToDesktop
Component* Desktop::getComponent ( int  index ) const

Returns one of the top-level desktop window components.

The index is from 0 to getNumComponents() - 1. This could return 0 if the index is out-of-range.

See also:
getNumComponents, Component::addToDesktop
Component* Desktop::findComponentAt ( const Point< int > &  screenPosition ) const

Finds the component at a given screen location.

This will drill down into top-level windows to find the child component at the given position.

Returns 0 if the co-ordinates are inside a non-Juce window.

ComponentAnimator& Desktop::getAnimator (  )

The Desktop object has a ComponentAnimator instance which can be used for performing your animations.

Having a single shared ComponentAnimator object makes it more efficient when multiple components are being moved around simultaneously. It's also more convenient than having to manage your own instance of one.

See also:
ComponentAnimator
LookAndFeel& Desktop::getDefaultLookAndFeel (  )

Returns the current default look-and-feel for components which don't have one explicitly set.

See also:
setDefaultLookAndFeel
void Desktop::setDefaultLookAndFeel ( LookAndFeel newDefaultLookAndFeel )

Changes the default look-and-feel.

Parameters:
newDefaultLookAndFeelthe new look-and-feel object to use - if this is set to nullptr, it will revert to using the system's default one. The object passed-in must be deleted by the caller when it's no longer needed.
See also:
getDefaultLookAndFeel
int Desktop::getNumMouseSources (  ) const

Returns the number of MouseInputSource objects the system has at its disposal.

In a traditional single-mouse system, there might be only one object. On a multi-touch system, there could be one input source per potential finger. To find out how many mouse events are currently happening, use getNumDraggingMouseSources().

See also:
getMouseSource
MouseInputSource* Desktop::getMouseSource ( int  index ) const

Returns one of the system's MouseInputSource objects.

The index should be from 0 to getNumMouseSources() - 1. Out-of-range indexes will return a null pointer. In a traditional single-mouse system, there might be only one object. On a multi-touch system, there could be one input source per potential finger.

MouseInputSource& Desktop::getMainMouseSource (  ) const

Returns the main mouse input device that the system is using.

See also:
getNumMouseSources()
int Desktop::getNumDraggingMouseSources (  ) const

Returns the number of mouse-sources that are currently being dragged.

In a traditional single-mouse system, this will be 0 or 1, depending on whether a juce component has the button down on it. In a multi-touch system, this could be any number from 0 to the number of simultaneous touches that can be detected.

MouseInputSource* Desktop::getDraggingMouseSource ( int  index ) const

Returns one of the mouse sources that's currently being dragged.

The index should be between 0 and getNumDraggingMouseSources() - 1. If the index is out of range, or if no mice or fingers are down, this will return a null pointer.

void Desktop::beginDragAutoRepeat ( int  millisecondsBetweenCallbacks )

Ensures that a non-stop stream of mouse-drag events will be sent during the current mouse-drag operation.

This allows you to make sure that mouseDrag() events are sent continuously, even when the mouse isn't moving. This can be useful for things like auto-scrolling components when the mouse is near an edge.

Call this method during a mouseDown() or mouseDrag() callback, specifying the minimum interval between consecutive mouse drag callbacks. The callbacks will continue until the mouse is released, and then the interval will be reset, so you need to make sure it's called every time you begin a drag event. Passing an interval of 0 or less will cancel the auto-repeat.

See also:
mouseDrag
DisplayOrientation Desktop::getCurrentOrientation (  ) const

In a tablet device which can be turned around, this returns the current orientation.

void Desktop::setOrientationsEnabled ( int  allowedOrientations )

Sets which orientations the display is allowed to auto-rotate to.

For devices that support rotating desktops, this lets you specify which of the orientations your app can use.

The parameter is a bitwise or-ed combination of the values in DisplayOrientation, and must contain at least one set bit.

bool Desktop::isOrientationEnabled ( DisplayOrientation  orientation ) const

Returns whether the display is allowed to auto-rotate to the given orientation.

Each orientation can be enabled using setOrientationEnabled(). By default, all orientations are allowed.

void Desktop::refreshMonitorSizes (  )

Tells this object to refresh its idea of what the screen resolution is.

(Called internally by the native code).

static bool Desktop::canUseSemiTransparentWindows (  ) [static]

True if the OS supports semitransparent windows.


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines