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:
Alex Birch
2019-06-22 20:41:38 +01:00
parent d22c2cd4fa
commit 9ee566b251
1140 changed files with 67534 additions and 105952 deletions

View File

@ -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

View File

@ -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;

View File

@ -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);

View File

@ -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:

View File

@ -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.

View File

@ -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.

View File

@ -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)

View File

@ -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; }

View File

@ -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&);

View File

@ -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. */

View File

@ -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)
{

View File

@ -40,7 +40,7 @@ class JUCE_API MouseListener
{
public:
/** Destructor. */
virtual ~MouseListener() {}
virtual ~MouseListener() = default;
/** Called when the mouse moves inside a component.

View File

@ -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)
{
}

View File

@ -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.

View File

@ -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;