Browse Source

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

tags/2021-05-28
jules 12 years ago
parent
commit
b3fd5cb8a3
5 changed files with 22 additions and 18 deletions
  1. +5
    -6
      modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp
  2. +5
    -5
      modules/juce_gui_basics/components/juce_Desktop.cpp
  3. +3
    -0
      modules/juce_gui_basics/components/juce_Desktop.h
  4. +4
    -2
      modules/juce_gui_basics/widgets/juce_Slider.cpp
  5. +5
    -5
      modules/juce_gui_basics/widgets/juce_TreeView.cpp

+ 5
- 6
modules/juce_audio_utils/gui/juce_MidiKeyboardComponent.cpp 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());
}
}
}


+ 5
- 5
modules/juce_gui_basics/components/juce_Desktop.cpp 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;
}
}


+ 3
- 0
modules/juce_gui_basics/components/juce_Desktop.h 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()
*/


+ 4
- 2
modules/juce_gui_basics/widgets/juce_Slider.cpp 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()


+ 5
- 5
modules/juce_gui_basics/widgets/juce_TreeView.cpp 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;
}


Loading…
Cancel
Save