1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-11 23:54:18 +00:00

Added iterator access to Desktop's list of mouse sources.

This commit is contained in:
jules 2013-09-02 22:06:10 +01:00
parent 6045915256
commit b3fd5cb8a3
5 changed files with 22 additions and 18 deletions

View file

@ -818,14 +818,13 @@ void MidiKeyboardComponent::timerCallback()
if (shouldCheckMousePos)
{
Desktop& desktop = Desktop::getInstance();
const OwnedArray<MouseInputSource>& mouseSources = Desktop::getInstance().getMouseSources();
for (int i = desktop.getNumMouseSources(); --i >= 0;)
for (MouseInputSource** i = mouseSources.begin(), ** const e = mouseSources.end(); i != e; ++i)
{
MouseInputSource* source = desktop.getMouseSource (i);
jassert (source != nullptr);
updateNoteUnderMouse (getLocalPoint (nullptr, source->getScreenPosition()),
source->isDragging(), source->getIndex());
const MouseInputSource& source = **i;
updateNoteUnderMouse (getLocalPoint (nullptr, source.getScreenPosition()),
source.isDragging(), source.getIndex());
}
}
}

View file

@ -221,13 +221,13 @@ public:
Desktop& desktop = Desktop::getInstance();
int numMiceDown = 0;
for (int i = desktop.getNumMouseSources(); --i >= 0;)
{
MouseInputSource& source = *desktop.getMouseSource(i);
const OwnedArray<MouseInputSource>& mouseSources = desktop.getMouseSources();
if (source.isDragging())
for (MouseInputSource** i = mouseSources.begin(), ** const e = mouseSources.end(); i != e; ++i)
{
if ((*i)->isDragging())
{
source.triggerFakeMove();
(*i)->triggerFakeMove();
++numMiceDown;
}
}

View file

@ -242,6 +242,9 @@ public:
*/
MouseInputSource* getMouseSource (int index) const noexcept { return mouseSources [index]; }
/** Provides access to the array of mouse sources, for iteration. */
const OwnedArray<MouseInputSource>& getMouseSources() const { return mouseSources; }
/** Returns the main mouse input device that the system is using.
@see getNumMouseSources()
*/

View file

@ -1033,8 +1033,10 @@ public:
{
mouseWasHidden = false;
for (int i = Desktop::getInstance().getNumMouseSources(); --i >= 0;)
Desktop::getInstance().getMouseSource(i)->enableUnboundedMouseMovement (false);
const OwnedArray<MouseInputSource>& mouseSources = Desktop::getInstance().getMouseSources();
for (MouseInputSource** i = mouseSources.begin(), ** const e = mouseSources.end(); i != e; ++i)
(*i)->enableUnboundedMouseMovement (false);
const double pos = sliderBeingDragged == 2 ? getMaxValue()
: (sliderBeingDragged == 1 ? getMinValue()

View file

@ -367,14 +367,14 @@ private:
static bool isMouseDraggingInChildCompOf (Component* const comp)
{
Desktop& desktop = Desktop::getInstance();
const OwnedArray<MouseInputSource>& mouseSources = Desktop::getInstance().getMouseSources();
for (int i = desktop.getNumMouseSources(); --i >= 0;)
for (MouseInputSource** i = mouseSources.begin(), ** const e = mouseSources.end(); i != e; ++i)
{
MouseInputSource* const source = desktop.getMouseSource(i);
MouseInputSource& source = **i;
if (source->isDragging())
if (Component* const underMouse = source->getComponentUnderMouse())
if (source.isDragging())
if (Component* const underMouse = source.getComponentUnderMouse())
if (comp == underMouse || comp->isParentOf (underMouse))
return true;
}