mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
This commit is contained in:
parent
e6c663e3b0
commit
f360457470
7 changed files with 60 additions and 63 deletions
|
|
@ -2543,18 +2543,18 @@ void juce_updateMultiMonitorInfo (Array <Rectangle>& monitorCoords, const bool c
|
|||
}
|
||||
|
||||
//==============================================================================
|
||||
bool Desktop::canUseSemiTransparentWindows()
|
||||
bool Desktop::canUseSemiTransparentWindows() throw()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void Desktop::getMousePosition (int& x, int& y)
|
||||
void Desktop::getMousePosition (int& x, int& y) throw()
|
||||
{
|
||||
int mouseMods;
|
||||
getMousePos (x, y, mouseMods);
|
||||
}
|
||||
|
||||
void Desktop::setMousePosition (int x, int y)
|
||||
void Desktop::setMousePosition (int x, int y) throw()
|
||||
{
|
||||
Window root = RootWindow (display, DefaultScreen (display));
|
||||
XWarpPointer (display, None, root, 0, 0, 0, 0, x, y);
|
||||
|
|
|
|||
|
|
@ -2186,14 +2186,14 @@ bool Process::isForegroundProcess() throw()
|
|||
}
|
||||
|
||||
//==============================================================================
|
||||
bool Desktop::canUseSemiTransparentWindows()
|
||||
bool Desktop::canUseSemiTransparentWindows() throw()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//==============================================================================
|
||||
void Desktop::getMousePosition (int& x, int& y)
|
||||
void Desktop::getMousePosition (int& x, int& y) throw()
|
||||
{
|
||||
CGrafPtr currentPort;
|
||||
GetPort (¤tPort);
|
||||
|
|
@ -2222,7 +2222,7 @@ void Desktop::getMousePosition (int& x, int& y)
|
|||
SetPort (currentPort);
|
||||
}
|
||||
|
||||
void Desktop::setMousePosition (int x, int y)
|
||||
void Desktop::setMousePosition (int x, int y) throw()
|
||||
{
|
||||
CGPoint pos = { x, y };
|
||||
CGWarpMouseCursorPosition (pos);
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ static HICON createHICONFromImage (const Image& image, const BOOL isIcon, int ho
|
|||
typedef BOOL (WINAPI* UpdateLayeredWinFunc) (HWND, HDC, POINT*, SIZE*, HDC, POINT*, COLORREF, BLENDFUNCTION*, DWORD);
|
||||
static UpdateLayeredWinFunc updateLayeredWindow = 0;
|
||||
|
||||
bool Desktop::canUseSemiTransparentWindows()
|
||||
bool Desktop::canUseSemiTransparentWindows() throw()
|
||||
{
|
||||
if (updateLayeredWindow == 0)
|
||||
{
|
||||
|
|
@ -2241,7 +2241,7 @@ bool Process::isForegroundProcess() throw()
|
|||
}
|
||||
|
||||
//==============================================================================
|
||||
void Desktop::getMousePosition (int& x, int& y)
|
||||
void Desktop::getMousePosition (int& x, int& y) throw()
|
||||
{
|
||||
POINT mousePos;
|
||||
GetCursorPos (&mousePos);
|
||||
|
|
@ -2249,7 +2249,7 @@ void Desktop::getMousePosition (int& x, int& y)
|
|||
y = mousePos.y;
|
||||
}
|
||||
|
||||
void Desktop::setMousePosition (int x, int y)
|
||||
void Desktop::setMousePosition (int x, int y) throw()
|
||||
{
|
||||
SetCursorPos (x, y);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ BEGIN_JUCE_NAMESPACE
|
|||
|
||||
|
||||
//==============================================================================
|
||||
AsyncUpdater::AsyncUpdater()
|
||||
AsyncUpdater::AsyncUpdater() throw()
|
||||
: asyncMessagePending (false)
|
||||
{
|
||||
internalAsyncHandler.owner = this;
|
||||
|
|
@ -47,7 +47,7 @@ AsyncUpdater::~AsyncUpdater()
|
|||
{
|
||||
}
|
||||
|
||||
void AsyncUpdater::triggerAsyncUpdate()
|
||||
void AsyncUpdater::triggerAsyncUpdate() throw()
|
||||
{
|
||||
if (! asyncMessagePending)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class JUCE_API AsyncUpdater
|
|||
public:
|
||||
//==============================================================================
|
||||
/** Creates an AsyncUpdater object. */
|
||||
AsyncUpdater();
|
||||
AsyncUpdater() throw();
|
||||
|
||||
/** Destructor.
|
||||
|
||||
|
|
@ -70,7 +70,7 @@ public:
|
|||
It's thread-safe to call this method from any number of threads without
|
||||
needing to worry about locking.
|
||||
*/
|
||||
void triggerAsyncUpdate();
|
||||
void triggerAsyncUpdate() throw();
|
||||
|
||||
/** This will stop any pending updates from happening.
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ extern void juce_updateMultiMonitorInfo (Array <Rectangle>& monitorCoords,
|
|||
//==============================================================================
|
||||
static Desktop* instance = 0;
|
||||
|
||||
Desktop::Desktop()
|
||||
Desktop::Desktop() throw()
|
||||
: mouseListeners (2),
|
||||
desktopComponents (4),
|
||||
monitorCoordsClipped (2),
|
||||
|
|
@ -56,7 +56,7 @@ Desktop::Desktop()
|
|||
refreshMonitorSizes();
|
||||
}
|
||||
|
||||
Desktop::~Desktop()
|
||||
Desktop::~Desktop() throw()
|
||||
{
|
||||
jassert (instance == this);
|
||||
instance = 0;
|
||||
|
|
@ -66,7 +66,7 @@ Desktop::~Desktop()
|
|||
jassert (desktopComponents.size() == 0);
|
||||
}
|
||||
|
||||
Desktop& JUCE_CALLTYPE Desktop::getInstance()
|
||||
Desktop& JUCE_CALLTYPE Desktop::getInstance() throw()
|
||||
{
|
||||
if (instance == 0)
|
||||
instance = new Desktop();
|
||||
|
|
@ -75,7 +75,7 @@ Desktop& JUCE_CALLTYPE Desktop::getInstance()
|
|||
}
|
||||
|
||||
//==============================================================================
|
||||
void Desktop::refreshMonitorSizes()
|
||||
void Desktop::refreshMonitorSizes() throw()
|
||||
{
|
||||
monitorCoordsClipped.clear();
|
||||
monitorCoordsUnclipped.clear();
|
||||
|
|
@ -85,18 +85,18 @@ void Desktop::refreshMonitorSizes()
|
|||
&& monitorCoordsClipped.size() == monitorCoordsUnclipped.size());
|
||||
}
|
||||
|
||||
int Desktop::getNumDisplayMonitors() const
|
||||
int Desktop::getNumDisplayMonitors() const throw()
|
||||
{
|
||||
return monitorCoordsClipped.size();
|
||||
}
|
||||
|
||||
const Rectangle Desktop::getDisplayMonitorCoordinates (const int index, const bool clippedToWorkArea) const
|
||||
const Rectangle Desktop::getDisplayMonitorCoordinates (const int index, const bool clippedToWorkArea) const throw()
|
||||
{
|
||||
return clippedToWorkArea ? monitorCoordsClipped [index]
|
||||
: monitorCoordsUnclipped [index];
|
||||
}
|
||||
|
||||
const RectangleList Desktop::getAllMonitorDisplayAreas (const bool clippedToWorkArea) const
|
||||
const RectangleList Desktop::getAllMonitorDisplayAreas (const bool clippedToWorkArea) const throw()
|
||||
{
|
||||
RectangleList rl;
|
||||
|
||||
|
|
@ -106,12 +106,12 @@ const RectangleList Desktop::getAllMonitorDisplayAreas (const bool clippedToWork
|
|||
return rl;
|
||||
}
|
||||
|
||||
const Rectangle Desktop::getMainMonitorArea (const bool clippedToWorkArea) const
|
||||
const Rectangle Desktop::getMainMonitorArea (const bool clippedToWorkArea) const throw()
|
||||
{
|
||||
return getDisplayMonitorCoordinates (0, clippedToWorkArea);
|
||||
}
|
||||
|
||||
const Rectangle Desktop::getMonitorAreaContaining (int cx, int cy, const bool clippedToWorkArea) const
|
||||
const Rectangle Desktop::getMonitorAreaContaining (int cx, int cy, const bool clippedToWorkArea) const throw()
|
||||
{
|
||||
for (int i = getNumDisplayMonitors(); --i > 0;)
|
||||
{
|
||||
|
|
@ -125,12 +125,12 @@ const Rectangle Desktop::getMonitorAreaContaining (int cx, int cy, const bool cl
|
|||
}
|
||||
|
||||
//==============================================================================
|
||||
int Desktop::getNumComponents() const
|
||||
int Desktop::getNumComponents() const throw()
|
||||
{
|
||||
return desktopComponents.size();
|
||||
}
|
||||
|
||||
Component* Desktop::getComponent (const int index) const
|
||||
Component* Desktop::getComponent (const int index) const throw()
|
||||
{
|
||||
return (Component*) desktopComponents [index];
|
||||
}
|
||||
|
|
@ -138,38 +138,34 @@ Component* Desktop::getComponent (const int index) const
|
|||
Component* Desktop::findComponentAt (const int screenX,
|
||||
const int screenY) const
|
||||
{
|
||||
for (int i = ComponentPeer::getNumPeers(); --i >= 0;)
|
||||
for (int i = desktopComponents.size(); --i >= 0;)
|
||||
{
|
||||
const ComponentPeer* const peer = ComponentPeer::getPeer (i);
|
||||
Component* const c = (Component*) desktopComponents.getUnchecked(i);
|
||||
|
||||
Component* const c = peer->getComponent();
|
||||
int x = screenX, y = screenY;
|
||||
c->globalPositionToRelative (x, y);
|
||||
|
||||
if (c != 0)
|
||||
{
|
||||
const int x = screenX - c->getScreenX();
|
||||
const int y = screenY - c->getScreenY();
|
||||
|
||||
if (c->contains (x, y))
|
||||
return c->getComponentAt (x, y);
|
||||
}
|
||||
if (c->contains (x, y))
|
||||
return c->getComponentAt (x, y);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void Desktop::addDesktopComponent (Component* const c)
|
||||
void Desktop::addDesktopComponent (Component* const c) throw()
|
||||
{
|
||||
jassert (c != 0);
|
||||
jassert (! desktopComponents.contains (c));
|
||||
desktopComponents.addIfNotAlreadyThere (c);
|
||||
}
|
||||
|
||||
void Desktop::removeDesktopComponent (Component* const c)
|
||||
void Desktop::removeDesktopComponent (Component* const c) throw()
|
||||
{
|
||||
desktopComponents.removeValue (c);
|
||||
}
|
||||
|
||||
void Desktop::componentBroughtToFront (Component* const c)
|
||||
void Desktop::componentBroughtToFront (Component* const c) throw()
|
||||
{
|
||||
const int index = desktopComponents.indexOf (c);
|
||||
jassert (index >= 0);
|
||||
|
|
@ -184,13 +180,13 @@ extern int juce_recentMouseDownX [4];
|
|||
extern int juce_recentMouseDownY [4];
|
||||
extern int juce_MouseClickCounter;
|
||||
|
||||
void Desktop::getLastMouseDownPosition (int& x, int& y)
|
||||
void Desktop::getLastMouseDownPosition (int& x, int& y) throw()
|
||||
{
|
||||
x = juce_recentMouseDownX [0];
|
||||
y = juce_recentMouseDownY [0];
|
||||
}
|
||||
|
||||
int Desktop::getMouseButtonClickCounter()
|
||||
int Desktop::getMouseButtonClickCounter() throw()
|
||||
{
|
||||
return juce_MouseClickCounter;
|
||||
}
|
||||
|
|
@ -227,7 +223,7 @@ void Desktop::removeFocusChangeListener (FocusChangeListener* const listener) th
|
|||
focusListeners.removeValue (listener);
|
||||
}
|
||||
|
||||
void Desktop::triggerFocusCallback()
|
||||
void Desktop::triggerFocusCallback() throw()
|
||||
{
|
||||
triggerAsyncUpdate();
|
||||
}
|
||||
|
|
@ -294,7 +290,7 @@ void Desktop::sendMouseMove()
|
|||
}
|
||||
}
|
||||
|
||||
void Desktop::resetTimer()
|
||||
void Desktop::resetTimer() throw()
|
||||
{
|
||||
if (mouseListeners.size() == 0)
|
||||
stopTimer();
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public:
|
|||
//==============================================================================
|
||||
/** There's only one dektop object, and this method will return it.
|
||||
*/
|
||||
static Desktop& JUCE_CALLTYPE getInstance();
|
||||
static Desktop& JUCE_CALLTYPE getInstance() throw();
|
||||
|
||||
//==============================================================================
|
||||
/** Returns a list of the positions of all the monitors available.
|
||||
|
|
@ -80,14 +80,14 @@ public:
|
|||
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 RectangleList getAllMonitorDisplayAreas (const bool clippedToWorkArea = true) const;
|
||||
const RectangleList getAllMonitorDisplayAreas (const bool clippedToWorkArea = true) const throw();
|
||||
|
||||
/** 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 getMainMonitorArea (const bool clippedToWorkArea = true) const;
|
||||
const Rectangle getMainMonitorArea (const bool clippedToWorkArea = true) const throw();
|
||||
|
||||
/** Returns the position and size of the monitor which contains this co-ordinate.
|
||||
|
||||
|
|
@ -97,7 +97,7 @@ public:
|
|||
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 getMonitorAreaContaining (int x, int y, const bool clippedToWorkArea = true) const;
|
||||
const Rectangle getMonitorAreaContaining (int x, int y, const bool clippedToWorkArea = true) const throw();
|
||||
|
||||
|
||||
//==============================================================================
|
||||
|
|
@ -105,24 +105,24 @@ public:
|
|||
|
||||
The co-ordinates are relative to the top-left of the main monitor.
|
||||
*/
|
||||
static void getMousePosition (int& x, int& y);
|
||||
static void getMousePosition (int& x, int& y) throw();
|
||||
|
||||
/** Makes the mouse pointer jump to a given location.
|
||||
|
||||
The co-ordinates are relative to the top-left of the main monitor.
|
||||
*/
|
||||
static void setMousePosition (int x, int y);
|
||||
static void setMousePosition (int x, int y) throw();
|
||||
|
||||
/** Returns the last position at which a mouse button was pressed.
|
||||
*/
|
||||
static void getLastMouseDownPosition (int& x, int& y);
|
||||
static void getLastMouseDownPosition (int& x, int& y) throw();
|
||||
|
||||
/** 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 int getMouseButtonClickCounter();
|
||||
static int getMouseButtonClickCounter() throw();
|
||||
|
||||
//==============================================================================
|
||||
/** Registers a MouseListener that will receive all mouse events that occur on
|
||||
|
|
@ -154,7 +154,7 @@ public:
|
|||
|
||||
@see getComponent, Component::addToDesktop
|
||||
*/
|
||||
int getNumComponents() const;
|
||||
int getNumComponents() const throw();
|
||||
|
||||
/** Returns one of the top-level desktop window components.
|
||||
|
||||
|
|
@ -163,7 +163,7 @@ public:
|
|||
|
||||
@see getNumComponents, Component::addToDesktop
|
||||
*/
|
||||
Component* getComponent (const int index) const;
|
||||
Component* getComponent (const int index) const throw();
|
||||
|
||||
/** Finds the component at a given screen location.
|
||||
|
||||
|
|
@ -183,10 +183,10 @@ public:
|
|||
|
||||
(Called internally by the native code).
|
||||
*/
|
||||
void refreshMonitorSizes();
|
||||
void refreshMonitorSizes() throw();
|
||||
|
||||
/** True if the OS supports semitransparent windows */
|
||||
static bool canUseSemiTransparentWindows();
|
||||
static bool canUseSemiTransparentWindows() throw();
|
||||
|
||||
|
||||
private:
|
||||
|
|
@ -198,23 +198,24 @@ private:
|
|||
|
||||
friend class DeletedAtShutdown;
|
||||
friend class TopLevelWindowManager;
|
||||
Desktop();
|
||||
~Desktop();
|
||||
Desktop() throw();
|
||||
~Desktop() throw();
|
||||
|
||||
Array <Rectangle> monitorCoordsClipped, monitorCoordsUnclipped;
|
||||
int lastMouseX, lastMouseY;
|
||||
|
||||
void timerCallback();
|
||||
void sendMouseMove();
|
||||
void resetTimer();
|
||||
int getNumDisplayMonitors() const;
|
||||
const Rectangle getDisplayMonitorCoordinates (const int index, const bool clippedToWorkArea) const;
|
||||
void resetTimer() throw();
|
||||
|
||||
void addDesktopComponent (Component* const c);
|
||||
void removeDesktopComponent (Component* const c);
|
||||
void componentBroughtToFront (Component* const c);
|
||||
int getNumDisplayMonitors() const throw();
|
||||
const Rectangle getDisplayMonitorCoordinates (const int index, const bool clippedToWorkArea) const throw();
|
||||
|
||||
void triggerFocusCallback();
|
||||
void addDesktopComponent (Component* const c) throw();
|
||||
void removeDesktopComponent (Component* const c) throw();
|
||||
void componentBroughtToFront (Component* const c) throw();
|
||||
|
||||
void triggerFocusCallback() throw();
|
||||
void handleAsyncUpdate();
|
||||
|
||||
Desktop (const Desktop&);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue