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:
		@ -43,10 +43,10 @@ struct CustomMenuBarItemHolder    : public Component
 | 
			
		||||
        if (newComponent != custom)
 | 
			
		||||
        {
 | 
			
		||||
            if (custom != nullptr)
 | 
			
		||||
                removeChildComponent (custom);
 | 
			
		||||
                removeChildComponent (custom.get());
 | 
			
		||||
 | 
			
		||||
            custom = newComponent;
 | 
			
		||||
            addAndMakeVisible (custom);
 | 
			
		||||
            addAndMakeVisible (*custom);
 | 
			
		||||
            resized();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -54,7 +54,7 @@ public:
 | 
			
		||||
    BurgerMenuComponent (MenuBarModel* model = nullptr);
 | 
			
		||||
 | 
			
		||||
    /** Destructor. */
 | 
			
		||||
    ~BurgerMenuComponent();
 | 
			
		||||
    ~BurgerMenuComponent() override;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    /** Changes the model object to use to control the burger menu.
 | 
			
		||||
 | 
			
		||||
@ -50,7 +50,7 @@ public:
 | 
			
		||||
    MenuBarComponent (MenuBarModel* model = nullptr);
 | 
			
		||||
 | 
			
		||||
    /** Destructor. */
 | 
			
		||||
    ~MenuBarComponent();
 | 
			
		||||
    ~MenuBarComponent() override;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    /** Changes the model object to use to control the bar.
 | 
			
		||||
 | 
			
		||||
@ -43,7 +43,7 @@ void MenuBarModel::menuItemsChanged()
 | 
			
		||||
    triggerAsyncUpdate();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MenuBarModel::setApplicationCommandManagerToWatch (ApplicationCommandManager* const newManager) noexcept
 | 
			
		||||
void MenuBarModel::setApplicationCommandManagerToWatch (ApplicationCommandManager* newManager)
 | 
			
		||||
{
 | 
			
		||||
    if (manager != newManager)
 | 
			
		||||
    {
 | 
			
		||||
@ -57,12 +57,12 @@ void MenuBarModel::setApplicationCommandManagerToWatch (ApplicationCommandManage
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MenuBarModel::addListener (Listener* const newListener) noexcept
 | 
			
		||||
void MenuBarModel::addListener (Listener* newListener)
 | 
			
		||||
{
 | 
			
		||||
    listeners.add (newListener);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MenuBarModel::removeListener (Listener* const listenerToRemove) noexcept
 | 
			
		||||
void MenuBarModel::removeListener (Listener* listenerToRemove)
 | 
			
		||||
{
 | 
			
		||||
    // Trying to remove a listener that isn't on the list!
 | 
			
		||||
    // If this assertion happens because this object is a dangling pointer, make sure you've not
 | 
			
		||||
 | 
			
		||||
@ -46,7 +46,7 @@ public:
 | 
			
		||||
    MenuBarModel() noexcept;
 | 
			
		||||
 | 
			
		||||
    /** Destructor. */
 | 
			
		||||
    virtual ~MenuBarModel();
 | 
			
		||||
    ~MenuBarModel() override;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    /** Call this when some of your menu items have changed.
 | 
			
		||||
@ -69,7 +69,7 @@ public:
 | 
			
		||||
        This will also allow it to flash a menu name when a command from that menu
 | 
			
		||||
        is invoked using a keystroke.
 | 
			
		||||
    */
 | 
			
		||||
    void setApplicationCommandManagerToWatch (ApplicationCommandManager* manager) noexcept;
 | 
			
		||||
    void setApplicationCommandManagerToWatch (ApplicationCommandManager* manager);
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    /** A class to receive callbacks when a MenuBarModel changes.
 | 
			
		||||
@ -80,7 +80,7 @@ public:
 | 
			
		||||
    {
 | 
			
		||||
    public:
 | 
			
		||||
        /** Destructor. */
 | 
			
		||||
        virtual ~Listener() {}
 | 
			
		||||
        virtual ~Listener() = default;
 | 
			
		||||
 | 
			
		||||
        //==============================================================================
 | 
			
		||||
        /** This callback is made when items are changed in the menu bar model. */
 | 
			
		||||
@ -104,12 +104,12 @@ public:
 | 
			
		||||
 | 
			
		||||
        @see removeListener
 | 
			
		||||
    */
 | 
			
		||||
    void addListener (Listener* listenerToAdd) noexcept;
 | 
			
		||||
    void addListener (Listener* listenerToAdd);
 | 
			
		||||
 | 
			
		||||
    /** Removes a listener.
 | 
			
		||||
        @see addListener
 | 
			
		||||
    */
 | 
			
		||||
    void removeListener (Listener* listenerToRemove) noexcept;
 | 
			
		||||
    void removeListener (Listener* listenerToRemove);
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    /** This method must return a list of the names of the menus. */
 | 
			
		||||
 | 
			
		||||
@ -40,7 +40,7 @@ struct PopupMenu::HelperClasses
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
class MouseSourceState;
 | 
			
		||||
class MenuWindow;
 | 
			
		||||
struct MenuWindow;
 | 
			
		||||
 | 
			
		||||
static bool canBeTriggered (const PopupMenu::Item& item) noexcept        { return item.isEnabled && item.itemID != 0 && ! item.isSectionHeader; }
 | 
			
		||||
static bool hasActiveSubMenu (const PopupMenu::Item& item) noexcept      { return item.isEnabled && item.subMenu != nullptr && item.subMenu->items.size() > 0; }
 | 
			
		||||
@ -77,9 +77,10 @@ struct ItemComponent  : public Component
 | 
			
		||||
      : item (i), customComp (i.customComponent)
 | 
			
		||||
    {
 | 
			
		||||
        if (item.isSectionHeader)
 | 
			
		||||
            customComp = new HeaderItemComponent (item.text);
 | 
			
		||||
            customComp = *new HeaderItemComponent (item.text);
 | 
			
		||||
 | 
			
		||||
        addAndMakeVisible (customComp);
 | 
			
		||||
        if (customComp != nullptr)
 | 
			
		||||
            addAndMakeVisible (*customComp);
 | 
			
		||||
 | 
			
		||||
        parent.addAndMakeVisible (this);
 | 
			
		||||
 | 
			
		||||
@ -93,9 +94,9 @@ struct ItemComponent  : public Component
 | 
			
		||||
        addMouseListener (&parent, false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ~ItemComponent()
 | 
			
		||||
    ~ItemComponent() override
 | 
			
		||||
    {
 | 
			
		||||
        removeChildComponent (customComp);
 | 
			
		||||
        removeChildComponent (customComp.get());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void getIdealSize (int& idealWidth, int& idealHeight, const int standardItemHeight)
 | 
			
		||||
@ -188,9 +189,8 @@ private:
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
class MenuWindow  : public Component
 | 
			
		||||
struct MenuWindow  : public Component
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    MenuWindow (const PopupMenu& menu, MenuWindow* parentWindow,
 | 
			
		||||
                const Options& opts, bool alignToRectangle, bool shouldDismissOnMouseUp,
 | 
			
		||||
                ApplicationCommandManager** manager, float parentScaleFactor = 1.0f)
 | 
			
		||||
@ -211,10 +211,10 @@ public:
 | 
			
		||||
 | 
			
		||||
        setLookAndFeel (parent != nullptr ? &(parent->getLookAndFeel())
 | 
			
		||||
                                          : menu.lookAndFeel.get());
 | 
			
		||||
 | 
			
		||||
        auto& lf = getLookAndFeel();
 | 
			
		||||
 | 
			
		||||
        parentComponent = lf.getParentComponentForMenuOptions (options);
 | 
			
		||||
        const_cast<Options&>(options) = options.withParentComponent (parentComponent);
 | 
			
		||||
 | 
			
		||||
        if (parentComponent == nullptr && parentWindow == nullptr && lf.shouldPopupMenuScaleWithTargetComponent (options))
 | 
			
		||||
            if (auto* targetComponent = options.getTargetComponent())
 | 
			
		||||
@ -267,7 +267,7 @@ public:
 | 
			
		||||
        getMouseState (Desktop::getInstance().getMainMouseSource()); // forces creation of a mouse source watcher for the main mouse
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ~MenuWindow()
 | 
			
		||||
    ~MenuWindow() override
 | 
			
		||||
    {
 | 
			
		||||
        getActiveWindows().removeFirstMatchingValue (this);
 | 
			
		||||
        Desktop::getInstance().removeGlobalMouseListener (this);
 | 
			
		||||
@ -592,10 +592,13 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    Rectangle<int> getParentArea (Point<int> targetPoint)
 | 
			
		||||
    Rectangle<int> getParentArea (Point<int> targetPoint, Component* relativeTo = nullptr)
 | 
			
		||||
    {
 | 
			
		||||
        auto parentArea = Desktop::getInstance().getDisplays().getDisplayContaining (targetPoint)
 | 
			
		||||
                              #if JUCE_MAC
 | 
			
		||||
        if (relativeTo != nullptr)
 | 
			
		||||
            targetPoint = relativeTo->localPointToGlobal (targetPoint);
 | 
			
		||||
 | 
			
		||||
        auto parentArea = Desktop::getInstance().getDisplays().findDisplayForPoint (targetPoint)
 | 
			
		||||
                              #if JUCE_MAC || JUCE_ANDROID
 | 
			
		||||
                               .userArea;
 | 
			
		||||
                              #else
 | 
			
		||||
                               .totalArea; // on windows, don't stop the menu overlapping the taskbar
 | 
			
		||||
@ -789,7 +792,7 @@ public:
 | 
			
		||||
                                                    windowPos.getHeight() - (PopupMenuSettings::scrollZone + m->getHeight())),
 | 
			
		||||
                                              currentY);
 | 
			
		||||
 | 
			
		||||
                        auto parentArea = getParentArea (windowPos.getPosition()) / scaleFactor;
 | 
			
		||||
                        auto parentArea = getParentArea (windowPos.getPosition(), parentComponent) / scaleFactor;
 | 
			
		||||
                        auto deltaY = wantedY - currentY;
 | 
			
		||||
 | 
			
		||||
                        windowPos.setSize (jmin (windowPos.getWidth(), parentArea.getWidth()),
 | 
			
		||||
@ -909,7 +912,8 @@ public:
 | 
			
		||||
            activeSubMenu.reset (new HelperClasses::MenuWindow (*(childComp->item.subMenu), this,
 | 
			
		||||
                                                                options.withTargetScreenArea (childComp->getScreenBounds())
 | 
			
		||||
                                                                       .withMinimumWidth (0)
 | 
			
		||||
                                                                       .withTargetComponent (nullptr),
 | 
			
		||||
                                                                       .withTargetComponent (nullptr)
 | 
			
		||||
                                                                       .withParentComponent (parentComponent),
 | 
			
		||||
                                                                false, dismissOnMouseUp, managerOfChosenCommand, scaleFactor));
 | 
			
		||||
 | 
			
		||||
            activeSubMenu->setVisible (true); // (must be called before enterModalState on Windows to avoid DropShadower confusion)
 | 
			
		||||
@ -1085,7 +1089,7 @@ private:
 | 
			
		||||
            {
 | 
			
		||||
                PopupMenuSettings::menuWasHiddenBecauseOfAppChange = true;
 | 
			
		||||
                window.dismissMenu (nullptr);
 | 
			
		||||
                // Note: this object may have been deleted by the previous call..
 | 
			
		||||
                // Note: This object may have been deleted by the previous call.
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if (wasDown && timeNow > window.windowCreationTime + 250
 | 
			
		||||
@ -1096,7 +1100,7 @@ private:
 | 
			
		||||
            else if ((window.hasBeenOver || ! window.dismissOnMouseUp) && ! isOverAny)
 | 
			
		||||
                window.dismissMenu (nullptr);
 | 
			
		||||
 | 
			
		||||
            // Note: this object may have been deleted by the previous call..
 | 
			
		||||
            // Note: This object may have been deleted by the previous call.
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
@ -1738,8 +1742,13 @@ bool JUCE_CALLTYPE PopupMenu::dismissAllActiveMenus()
 | 
			
		||||
    auto numWindows = windows.size();
 | 
			
		||||
 | 
			
		||||
    for (int i = numWindows; --i >= 0;)
 | 
			
		||||
    {
 | 
			
		||||
        if (auto* pmw = windows[i])
 | 
			
		||||
        {
 | 
			
		||||
            pmw->setLookAndFeel (nullptr);
 | 
			
		||||
            pmw->dismissMenu (nullptr);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return numWindows > 0;
 | 
			
		||||
}
 | 
			
		||||
@ -1853,7 +1862,9 @@ bool PopupMenu::MenuItemIterator::next()
 | 
			
		||||
        menus.add (currentItem->subMenu.get());
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        index.setUnchecked (index.size() - 1, index.getLast() + 1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    while (index.size() > 0 && index.getLast() >= menus.getLast()->items.size())
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
@ -624,7 +624,7 @@ public:
 | 
			
		||||
        CustomComponent (bool isTriggeredAutomatically = true);
 | 
			
		||||
 | 
			
		||||
        /** Destructor. */
 | 
			
		||||
        ~CustomComponent();
 | 
			
		||||
        ~CustomComponent() override;
 | 
			
		||||
 | 
			
		||||
        /** Returns a rectangle with the size that this component would like to have.
 | 
			
		||||
 | 
			
		||||
@ -666,7 +666,7 @@ public:
 | 
			
		||||
    {
 | 
			
		||||
    public:
 | 
			
		||||
        CustomCallback();
 | 
			
		||||
        ~CustomCallback();
 | 
			
		||||
        ~CustomCallback() override;
 | 
			
		||||
 | 
			
		||||
        /** Callback to indicate this item has been triggered.
 | 
			
		||||
            @returns true if the itemID should be sent to the exitModalState method, or
 | 
			
		||||
@ -684,7 +684,7 @@ public:
 | 
			
		||||
    */
 | 
			
		||||
    struct JUCE_API  LookAndFeelMethods
 | 
			
		||||
    {
 | 
			
		||||
        virtual ~LookAndFeelMethods() {}
 | 
			
		||||
        virtual ~LookAndFeelMethods() = default;
 | 
			
		||||
 | 
			
		||||
        /** Fills the background of a popup menu component. */
 | 
			
		||||
        virtual void drawPopupMenuBackground (Graphics&, int width, int height) = 0;
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user