upgrade to JUCE 5.4.3. Remove (probably) unused JUCE modules. Remove VST2 target (it's been end-of-life'd by Steinberg and by JUCE)
This commit is contained in:
@ -48,7 +48,7 @@ void ComponentDragger::dragComponent (Component* const componentToDrag, const Mo
|
||||
|
||||
if (componentToDrag != nullptr)
|
||||
{
|
||||
Rectangle<int> bounds (componentToDrag->getBounds());
|
||||
auto bounds = componentToDrag->getBounds();
|
||||
|
||||
// If the component is a window, multiple mouse events can get queued while it's in the same position,
|
||||
// so their coordinates become wrong after the first one moves the window, so in that case, we'll use
|
||||
|
@ -62,7 +62,7 @@ public:
|
||||
setAlwaysOnTop (true);
|
||||
}
|
||||
|
||||
~DragImageComponent()
|
||||
~DragImageComponent() override
|
||||
{
|
||||
owner.dragImageComponents.remove (owner.dragImageComponents.indexOf (this), false);
|
||||
|
||||
@ -249,10 +249,16 @@ private:
|
||||
|
||||
for (auto i = desktop.getNumComponents(); --i >= 0;)
|
||||
{
|
||||
auto* c = desktop.getComponent(i);
|
||||
auto* desktopComponent = desktop.getComponent (i);
|
||||
auto dPoint = desktopComponent->getLocalPoint (nullptr, screenPos);
|
||||
|
||||
if (auto* hit = c->getComponentAt (c->getLocalPoint (nullptr, screenPos)))
|
||||
return hit;
|
||||
if (auto* c = desktopComponent->getComponentAt (dPoint))
|
||||
{
|
||||
auto cPoint = c->getLocalPoint (desktopComponent, dPoint);
|
||||
|
||||
if (c->hitTest (cPoint.getX(), cPoint.getY()))
|
||||
return c;
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
|
@ -153,42 +153,46 @@ public:
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/** This performs a synchronous drag-and-drop of a set of files to some external
|
||||
/** This performs an asynchronous drag-and-drop of a set of files to some external
|
||||
application.
|
||||
|
||||
You can call this function in response to a mouseDrag callback, and it will
|
||||
block, running its own internal message loop and tracking the mouse, while it
|
||||
uses a native operating system drag-and-drop operation to move or copy some
|
||||
use a native operating system drag-and-drop operation to move or copy some
|
||||
files to another application.
|
||||
|
||||
@param files a list of filenames to drag
|
||||
@param canMoveFiles if true, the app that receives the files is allowed to move the files to a new location
|
||||
(if this is appropriate). If false, the receiver is expected to make a copy of them.
|
||||
@param sourceComponent Normally, JUCE will assume that the component under the mouse is the source component
|
||||
@param sourceComponent normally, JUCE will assume that the component under the mouse is the source component
|
||||
of the drag, but you can use this parameter to override this.
|
||||
@returns true if the files were successfully dropped somewhere, or false if it
|
||||
was interrupted
|
||||
@param callback an optional completion callback that will be called when the operation has ended.
|
||||
|
||||
@returns true if the drag operation was successfully started, or false if it failed for some reason
|
||||
|
||||
@see performExternalDragDropOfText
|
||||
*/
|
||||
static bool performExternalDragDropOfFiles (const StringArray& files, bool canMoveFiles,
|
||||
Component* sourceComponent = nullptr);
|
||||
Component* sourceComponent = nullptr,
|
||||
std::function<void()> callback = nullptr);
|
||||
|
||||
/** This performs a synchronous drag-and-drop of a block of text to some external
|
||||
/** This performs an asynchronous drag-and-drop of a block of text to some external
|
||||
application.
|
||||
|
||||
You can call this function in response to a mouseDrag callback, and it will
|
||||
block, running its own internal message loop and tracking the mouse, while it
|
||||
uses a native operating system drag-and-drop operation to move or copy some
|
||||
use a native operating system drag-and-drop operation to move or copy some
|
||||
text to another application.
|
||||
|
||||
@param text the text to copy
|
||||
@param sourceComponent Normally, JUCE will assume that the component under the mouse is the source component
|
||||
of the drag, but you can use this parameter to override this.
|
||||
@returns true if the text was successfully dropped somewhere, or false if it
|
||||
was interrupted
|
||||
@param callback an optional completion callback that will be called when the operation has ended.
|
||||
|
||||
@returns true if the drag operation was successfully started, or false if it failed for some reason
|
||||
|
||||
@see performExternalDragDropOfFiles
|
||||
*/
|
||||
static bool performExternalDragDropOfText (const String& text, Component* sourceComponent = nullptr);
|
||||
static bool performExternalDragDropOfText (const String& text, Component* sourceComponent = nullptr,
|
||||
std::function<void()> callback = nullptr);
|
||||
|
||||
protected:
|
||||
/** Override this if you want to be able to perform an external drag of a set of files
|
||||
@ -230,8 +234,6 @@ protected:
|
||||
private:
|
||||
//==============================================================================
|
||||
class DragImageComponent;
|
||||
friend class DragImageComponent;
|
||||
friend struct ContainerDeletePolicy<DragImageComponent>;
|
||||
OwnedArray<DragImageComponent> dragImageComponents;
|
||||
|
||||
const MouseInputSource* getMouseInputSourceForDrag (Component* sourceComponent, const MouseInputSource* inputSourceCausingDrag);
|
||||
|
@ -47,12 +47,10 @@ class JUCE_API DragAndDropTarget
|
||||
{
|
||||
public:
|
||||
/** Destructor. */
|
||||
virtual ~DragAndDropTarget() {}
|
||||
virtual ~DragAndDropTarget() = default;
|
||||
|
||||
//==============================================================================
|
||||
/** Contains details about the source of a drag-and-drop operation.
|
||||
The contents of this
|
||||
*/
|
||||
/** Contains details about the source of a drag-and-drop operation. */
|
||||
class JUCE_API SourceDetails
|
||||
{
|
||||
public:
|
||||
|
@ -38,7 +38,7 @@ class JUCE_API FileDragAndDropTarget
|
||||
{
|
||||
public:
|
||||
/** Destructor. */
|
||||
virtual ~FileDragAndDropTarget() {}
|
||||
virtual ~FileDragAndDropTarget() = default;
|
||||
|
||||
/** Callback to check whether this target is interested in the set of files being offered.
|
||||
|
||||
|
@ -43,7 +43,7 @@ class LassoSource
|
||||
{
|
||||
public:
|
||||
/** Destructor. */
|
||||
virtual ~LassoSource() {}
|
||||
virtual ~LassoSource() = default;
|
||||
|
||||
/** Returns the set of items that lie within a given lassoable region.
|
||||
|
||||
@ -103,7 +103,7 @@ class LassoComponent : public Component
|
||||
public:
|
||||
//==============================================================================
|
||||
/** Creates a Lasso component. */
|
||||
LassoComponent() {}
|
||||
LassoComponent() = default;
|
||||
|
||||
//==============================================================================
|
||||
/** Call this in your mouseDown event, to initialise a drag.
|
||||
|
@ -171,11 +171,10 @@ private:
|
||||
SharedCursorHandle* cursorHandle = nullptr;
|
||||
|
||||
friend class MouseInputSourceInternal;
|
||||
void showInWindow (ComponentPeer* window) const;
|
||||
void showInAllWindows() const;
|
||||
void showInWindow (ComponentPeer*) const;
|
||||
void* getHandle() const noexcept;
|
||||
|
||||
static void* createStandardMouseCursor (MouseCursor::StandardCursorType type);
|
||||
static void* createStandardMouseCursor (MouseCursor::StandardCursorType);
|
||||
static void deleteMouseCursor (void* cursorHandle, bool isStandard);
|
||||
|
||||
JUCE_LEAK_DETECTOR (MouseCursor)
|
||||
|
@ -47,12 +47,12 @@ MouseEvent::MouseEvent (MouseInputSource inputSource,
|
||||
pressure (force),
|
||||
orientation (o), rotation (r),
|
||||
tiltX (tX), tiltY (tY),
|
||||
mouseDownPosition (downPos),
|
||||
eventComponent (eventComp),
|
||||
originalComponent (originator),
|
||||
eventTime (time),
|
||||
mouseDownTime (downTime),
|
||||
source (inputSource),
|
||||
mouseDownPos (downPos),
|
||||
numberOfClicks ((uint8) numClicks),
|
||||
wasMovedSinceMouseDown ((uint8) (mouseWasDragged ? 1 : 0))
|
||||
{
|
||||
@ -70,21 +70,21 @@ MouseEvent MouseEvent::getEventRelativeTo (Component* const otherComponent) cons
|
||||
return MouseEvent (source, otherComponent->getLocalPoint (eventComponent, position),
|
||||
mods, pressure, orientation, rotation, tiltX, tiltY,
|
||||
otherComponent, originalComponent, eventTime,
|
||||
otherComponent->getLocalPoint (eventComponent, mouseDownPos),
|
||||
otherComponent->getLocalPoint (eventComponent, mouseDownPosition),
|
||||
mouseDownTime, numberOfClicks, wasMovedSinceMouseDown != 0);
|
||||
}
|
||||
|
||||
MouseEvent MouseEvent::withNewPosition (Point<float> newPosition) const noexcept
|
||||
{
|
||||
return MouseEvent (source, newPosition, mods, pressure, orientation, rotation, tiltX, tiltY,
|
||||
eventComponent, originalComponent, eventTime, mouseDownPos, mouseDownTime,
|
||||
eventComponent, originalComponent, eventTime, mouseDownPosition, mouseDownTime,
|
||||
numberOfClicks, wasMovedSinceMouseDown != 0);
|
||||
}
|
||||
|
||||
MouseEvent MouseEvent::withNewPosition (Point<int> newPosition) const noexcept
|
||||
{
|
||||
return MouseEvent (source, newPosition.toFloat(), mods, pressure, orientation, rotation,
|
||||
tiltX, tiltY, eventComponent, originalComponent, eventTime, mouseDownPos,
|
||||
tiltX, tiltY, eventComponent, originalComponent, eventTime, mouseDownPosition,
|
||||
mouseDownTime, numberOfClicks, wasMovedSinceMouseDown != 0);
|
||||
}
|
||||
|
||||
@ -111,14 +111,14 @@ int MouseEvent::getLengthOfMousePress() const noexcept
|
||||
Point<int> MouseEvent::getPosition() const noexcept { return Point<int> (x, y); }
|
||||
Point<int> MouseEvent::getScreenPosition() const { return eventComponent->localPointToGlobal (getPosition()); }
|
||||
|
||||
Point<int> MouseEvent::getMouseDownPosition() const noexcept { return mouseDownPos.roundToInt(); }
|
||||
Point<int> MouseEvent::getMouseDownScreenPosition() const { return eventComponent->localPointToGlobal (mouseDownPos).roundToInt(); }
|
||||
Point<int> MouseEvent::getMouseDownPosition() const noexcept { return mouseDownPosition.roundToInt(); }
|
||||
Point<int> MouseEvent::getMouseDownScreenPosition() const { return eventComponent->localPointToGlobal (mouseDownPosition).roundToInt(); }
|
||||
|
||||
Point<int> MouseEvent::getOffsetFromDragStart() const noexcept { return (position - mouseDownPos).roundToInt(); }
|
||||
int MouseEvent::getDistanceFromDragStart() const noexcept { return roundToInt (mouseDownPos.getDistanceFrom (position)); }
|
||||
Point<int> MouseEvent::getOffsetFromDragStart() const noexcept { return (position - mouseDownPosition).roundToInt(); }
|
||||
int MouseEvent::getDistanceFromDragStart() const noexcept { return roundToInt (mouseDownPosition.getDistanceFrom (position)); }
|
||||
|
||||
int MouseEvent::getMouseDownX() const noexcept { return roundToInt (mouseDownPos.x); }
|
||||
int MouseEvent::getMouseDownY() const noexcept { return roundToInt (mouseDownPos.y); }
|
||||
int MouseEvent::getMouseDownX() const noexcept { return roundToInt (mouseDownPosition.x); }
|
||||
int MouseEvent::getMouseDownY() const noexcept { return roundToInt (mouseDownPosition.y); }
|
||||
|
||||
int MouseEvent::getDistanceFromDragStartX() const noexcept { return getOffsetFromDragStart().x; }
|
||||
int MouseEvent::getDistanceFromDragStartY() const noexcept { return getOffsetFromDragStart().y; }
|
||||
|
@ -149,6 +149,12 @@ public:
|
||||
*/
|
||||
const float tiltY;
|
||||
|
||||
/** The coordinates of the last place that a mouse button was pressed.
|
||||
The coordinates are relative to the component specified in MouseEvent::component.
|
||||
@see getDistanceFromDragStart, getDistanceFromDragStartX, mouseWasDraggedSinceMouseDown
|
||||
*/
|
||||
const Point<float> mouseDownPosition;
|
||||
|
||||
/** The component that this event applies to.
|
||||
|
||||
This is usually the component that the mouse was over at the time, but for mouse-drag
|
||||
@ -197,7 +203,8 @@ public:
|
||||
|
||||
/** Returns the coordinates of the last place that a mouse was pressed.
|
||||
The coordinates are relative to the component specified in MouseEvent::component.
|
||||
@see getDistanceFromDragStart, getDistanceFromDragStartX, mouseWasDraggedSinceMouseDown
|
||||
For a floating point version of this value, see mouseDownPosition.
|
||||
@see mouseDownPosition, getDistanceFromDragStart, getDistanceFromDragStartX, mouseWasDraggedSinceMouseDown
|
||||
*/
|
||||
Point<int> getMouseDownPosition() const noexcept;
|
||||
|
||||
@ -367,7 +374,6 @@ public:
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
const Point<float> mouseDownPos;
|
||||
const uint8 numberOfClicks, wasMovedSinceMouseDown;
|
||||
|
||||
MouseEvent& operator= (const MouseEvent&);
|
||||
|
@ -52,7 +52,7 @@ public:
|
||||
MouseInactivityDetector (Component& target);
|
||||
|
||||
/** Destructor. */
|
||||
~MouseInactivityDetector();
|
||||
~MouseInactivityDetector() override;
|
||||
|
||||
/** Sets the time for which the mouse must be still before the callback
|
||||
is triggered.
|
||||
@ -71,7 +71,7 @@ public:
|
||||
class Listener
|
||||
{
|
||||
public:
|
||||
virtual ~Listener() {}
|
||||
virtual ~Listener() = default;
|
||||
|
||||
/** Called when the mouse is moved or clicked for the first time
|
||||
after a period of inactivity. */
|
||||
|
@ -149,7 +149,7 @@ public:
|
||||
comp.internalMouseDrag (MouseInputSource (this), screenPosToLocalPos (comp, screenPos), time, pressure, orientation, rotation, tiltX, tiltY);
|
||||
}
|
||||
|
||||
void sendMouseUp (Component& comp, Point<float> screenPos, Time time, const ModifierKeys oldMods)
|
||||
void sendMouseUp (Component& comp, Point<float> screenPos, Time time, ModifierKeys oldMods)
|
||||
{
|
||||
JUCE_MOUSE_EVENT_DBG ("up")
|
||||
comp.internalMouseUp (MouseInputSource (this), screenPosToLocalPos (comp, screenPos), time, oldMods, pressure, orientation, rotation, tiltX, tiltY);
|
||||
@ -161,7 +161,7 @@ public:
|
||||
comp.internalMouseWheel (MouseInputSource (this), screenPosToLocalPos (comp, screenPos), time, wheel);
|
||||
}
|
||||
|
||||
void sendMagnifyGesture (Component& comp, Point<float> screenPos, Time time, const float amount)
|
||||
void sendMagnifyGesture (Component& comp, Point<float> screenPos, Time time, float amount)
|
||||
{
|
||||
JUCE_MOUSE_EVENT_DBG ("magnify")
|
||||
comp.internalMagnifyGesture (MouseInputSource (this), screenPosToLocalPos (comp, screenPos), time, amount);
|
||||
@ -169,7 +169,7 @@ public:
|
||||
|
||||
//==============================================================================
|
||||
// (returns true if the button change caused a modal event loop)
|
||||
bool setButtons (Point<float> screenPos, Time time, const ModifierKeys newButtonState)
|
||||
bool setButtons (Point<float> screenPos, Time time, ModifierKeys newButtonState)
|
||||
{
|
||||
if (buttonState == newButtonState)
|
||||
return false;
|
||||
@ -220,7 +220,7 @@ public:
|
||||
return lastCounter != mouseEventCounter;
|
||||
}
|
||||
|
||||
void setComponentUnderMouse (Component* const newComponent, Point<float> screenPos, Time time)
|
||||
void setComponentUnderMouse (Component* newComponent, Point<float> screenPos, Time time)
|
||||
{
|
||||
auto* current = getComponentUnderMouse();
|
||||
|
||||
@ -234,16 +234,17 @@ public:
|
||||
WeakReference<Component> safeOldComp (current);
|
||||
setButtons (screenPos, time, ModifierKeys());
|
||||
|
||||
if (safeOldComp != nullptr)
|
||||
if (auto oldComp = safeOldComp.get())
|
||||
{
|
||||
componentUnderMouse = safeNewComp;
|
||||
sendMouseExit (*safeOldComp, screenPos, time);
|
||||
sendMouseExit (*oldComp, screenPos, time);
|
||||
}
|
||||
|
||||
buttonState = originalButtonState;
|
||||
}
|
||||
|
||||
current = componentUnderMouse = safeNewComp;
|
||||
componentUnderMouse = safeNewComp.get();
|
||||
current = safeNewComp.get();
|
||||
|
||||
if (current != nullptr)
|
||||
sendMouseEnter (*current, screenPos, time);
|
||||
@ -263,7 +264,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void setScreenPos (Point<float> newScreenPos, Time time, const bool forceUpdate)
|
||||
void setScreenPos (Point<float> newScreenPos, Time time, bool forceUpdate)
|
||||
{
|
||||
if (! isDragging())
|
||||
setComponentUnderMouse (findComponentAt (newScreenPos), newScreenPos, time);
|
||||
@ -368,7 +369,7 @@ public:
|
||||
else
|
||||
screenPos = peer.localToGlobal (positionWithinPeer);
|
||||
|
||||
if (Component* target = lastNonInertialWheelTarget)
|
||||
if (auto target = lastNonInertialWheelTarget.get())
|
||||
sendMouseWheel (*target, screenPos, time, wheel);
|
||||
}
|
||||
|
||||
@ -737,7 +738,7 @@ struct MouseInputSource::SourceList : public Timer
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void beginDragAutoRepeat (const int interval)
|
||||
void beginDragAutoRepeat (int interval)
|
||||
{
|
||||
if (interval > 0)
|
||||
{
|
||||
|
@ -40,7 +40,7 @@ class JUCE_API MouseListener
|
||||
{
|
||||
public:
|
||||
/** Destructor. */
|
||||
virtual ~MouseListener() {}
|
||||
virtual ~MouseListener() = default;
|
||||
|
||||
/** Called when the mouse moves inside a component.
|
||||
|
||||
|
@ -47,15 +47,13 @@ class SelectedItemSet : public ChangeBroadcaster
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
typedef SelectableItemType ItemType;
|
||||
typedef Array<SelectableItemType> ItemArray;
|
||||
typedef typename TypeHelpers::ParameterType<SelectableItemType>::type ParameterType;
|
||||
using ItemType = SelectableItemType;
|
||||
using ItemArray = Array<SelectableItemType>;
|
||||
using ParameterType = typename TypeHelpers::ParameterType<SelectableItemType>::type;
|
||||
|
||||
//==============================================================================
|
||||
/** Creates an empty set. */
|
||||
SelectedItemSet()
|
||||
{
|
||||
}
|
||||
SelectedItemSet() = default;
|
||||
|
||||
/** Creates a set based on an array of items. */
|
||||
explicit SelectedItemSet (const ItemArray& items)
|
||||
@ -65,7 +63,7 @@ public:
|
||||
|
||||
/** Creates a copy of another set. */
|
||||
SelectedItemSet (const SelectedItemSet& other)
|
||||
: selectedItems (other.selectedItems)
|
||||
: ChangeBroadcaster(), selectedItems (other.selectedItems)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@ class JUCE_API TextDragAndDropTarget
|
||||
{
|
||||
public:
|
||||
/** Destructor. */
|
||||
virtual ~TextDragAndDropTarget() {}
|
||||
virtual ~TextDragAndDropTarget() = default;
|
||||
|
||||
/** Callback to check whether this target is interested in the set of text being offered.
|
||||
|
||||
|
@ -43,7 +43,7 @@ class JUCE_API TooltipClient
|
||||
{
|
||||
public:
|
||||
/** Destructor. */
|
||||
virtual ~TooltipClient() {}
|
||||
virtual ~TooltipClient() = default;
|
||||
|
||||
/** Returns the string that this object wants to show as its tooltip. */
|
||||
virtual String getTooltip() = 0;
|
||||
@ -70,7 +70,7 @@ class JUCE_API SettableTooltipClient : public TooltipClient
|
||||
public:
|
||||
//==============================================================================
|
||||
/** Destructor. */
|
||||
~SettableTooltipClient() {}
|
||||
~SettableTooltipClient() override = default;
|
||||
|
||||
//==============================================================================
|
||||
/** Assigns a new tooltip to this object. */
|
||||
@ -80,7 +80,7 @@ public:
|
||||
String getTooltip() override { return tooltipString; }
|
||||
|
||||
protected:
|
||||
SettableTooltipClient() {}
|
||||
SettableTooltipClient() = default;
|
||||
|
||||
private:
|
||||
String tooltipString;
|
||||
|
Reference in New Issue
Block a user