From 6f19816cf4e8fdf77ddea14c1fc40304dfbede97 Mon Sep 17 00:00:00 2001 From: jules Date: Fri, 5 Feb 2016 09:51:51 +0000 Subject: [PATCH] Added another PopupMenu::addItem method for coloured items with drawables --- modules/juce_gui_basics/menus/juce_PopupMenu.cpp | 14 ++++++++++---- modules/juce_gui_basics/menus/juce_PopupMenu.h | 15 ++++++++++++++- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp index 571a51edc7..2418a5281b 100644 --- a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp +++ b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp @@ -61,8 +61,8 @@ public: { String shortcutKey; - const Array keyPresses (commandManager->getKeyMappings() - ->getKeyPressesAssignedToCommand (itemID)); + const Array keyPresses (commandManager->getKeyMappings() + ->getKeyPressesAssignedToCommand (itemID)); for (int i = 0; i < keyPresses.size(); ++i) { @@ -1351,16 +1351,22 @@ void PopupMenu::addCommandItem (ApplicationCommandManager* commandManager, } void PopupMenu::addColouredItem (int itemResultID, const String& itemText, Colour itemTextColour, - bool isActive, bool isTicked, const Image& iconToUse) + bool isActive, bool isTicked, Drawable* iconToUse) { 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, itemText, isActive, isTicked, createDrawableFromImage (iconToUse), + items.add (new Item (itemResultID, itemText, isActive, isTicked, iconToUse, itemTextColour, true, nullptr, nullptr, nullptr)); } +void PopupMenu::addColouredItem (int itemResultID, const String& itemText, Colour itemTextColour, + bool isActive, bool isTicked, const Image& iconToUse) +{ + addColouredItem (itemResultID, itemText, itemTextColour, isActive, isTicked, createDrawableFromImage (iconToUse)); +} + void PopupMenu::addCustomItem (int itemID, CustomComponent* cc, const PopupMenu* subMenu) { jassert (itemID != 0); // 0 is used as a return value to indicate that the user diff --git a/modules/juce_gui_basics/menus/juce_PopupMenu.h b/modules/juce_gui_basics/menus/juce_PopupMenu.h index a6e833bf3b..f240723107 100644 --- a/modules/juce_gui_basics/menus/juce_PopupMenu.h +++ b/modules/juce_gui_basics/menus/juce_PopupMenu.h @@ -189,7 +189,20 @@ public: Colour itemTextColour, bool isEnabled = true, bool isTicked = false, - const Image& iconToUse = Image::null); + const Image& iconToUse = Image()); + + /** Appends a text item with a special colour. + + This is the same as addItem(), but specifies a colour to use for the + text, which will override the default colours that are used by the + current look-and-feel. See addItem() for a description of the parameters. + */ + void addColouredItem (int itemResultID, + const String& itemText, + Colour itemTextColour, + bool isEnabled, + bool isTicked, + Drawable* iconToUse); /** Appends a custom menu item.