diff --git a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp index 792aef9cc3..f4e98193e1 100644 --- a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp +++ b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp @@ -1227,16 +1227,6 @@ void PopupMenu::addColouredItem (const int itemResultID, } //============================================================================== -void PopupMenu::addCustomItem (const int itemResultID, CustomComponent* const customComponent) -{ - jassert (itemResultID != 0); // 0 is used as a return value to indicate that the user - // didn't pick anything, so you shouldn't use it as the id - // for an item.. - - items.add (new Item (itemResultID, String::empty, true, false, Image::null, - Colours::black, false, customComponent, nullptr, nullptr)); -} - class PopupMenu::NormalComponentWrapper : public PopupMenu::CustomComponent { public: @@ -1266,14 +1256,27 @@ private: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (NormalComponentWrapper); }; +void PopupMenu::addCustomItem (const int itemResultID, CustomComponent* const customComponent) +{ + jassert (itemResultID != 0); // 0 is used as a return value to indicate that the user + // didn't pick anything, so you shouldn't use it as the id + // for an item.. + + items.add (new Item (itemResultID, String::empty, true, false, Image::null, + Colours::black, false, customComponent, nullptr, nullptr)); +} + void PopupMenu::addCustomItem (const int itemResultID, Component* customComponent, int idealWidth, int idealHeight, - const bool triggerMenuItemAutomaticallyWhenClicked) + const bool triggerMenuItemAutomaticallyWhenClicked, + const PopupMenu* subMenu) { - addCustomItem (itemResultID, - new NormalComponentWrapper (customComponent, idealWidth, idealHeight, - triggerMenuItemAutomaticallyWhenClicked)); + items.add (new Item (itemResultID, String::empty, true, false, Image::null, + Colours::black, false, + new NormalComponentWrapper (customComponent, idealWidth, idealHeight, + triggerMenuItemAutomaticallyWhenClicked), + subMenu, nullptr)); } //============================================================================== diff --git a/modules/juce_gui_basics/menus/juce_PopupMenu.h b/modules/juce_gui_basics/menus/juce_PopupMenu.h index 4e5b63805b..3658ec7839 100644 --- a/modules/juce_gui_basics/menus/juce_PopupMenu.h +++ b/modules/juce_gui_basics/menus/juce_PopupMenu.h @@ -169,7 +169,8 @@ public: void addCustomItem (int itemResultID, Component* customComponent, int idealWidth, int idealHeight, - bool triggerMenuItemAutomaticallyWhenClicked); + bool triggerMenuItemAutomaticallyWhenClicked, + const PopupMenu* optionalSubMenu = nullptr); /** Appends a sub-menu.