From 7455c19a43022ca7e3bf56a142e9bc67306f821e Mon Sep 17 00:00:00 2001 From: zsliu98 Date: Fri, 7 Mar 2025 00:01:20 -0500 Subject: [PATCH] PopupMenu: Add Item tooltipText --- modules/juce_gui_basics/menus/juce_PopupMenu.cpp | 6 +++++- modules/juce_gui_basics/menus/juce_PopupMenu.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp index 123eccb145..c8d79ba45f 100644 --- a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp +++ b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp @@ -120,11 +120,13 @@ struct HeaderItemComponent final : public PopupMenu::CustomComponent }; //============================================================================== -struct ItemComponent final : public Component +struct ItemComponent final : public Component, public SettableTooltipClient { ItemComponent (const PopupMenu::Item& i, const PopupMenu::Options& o, MenuWindow& parent) : item (i), parentWindow (parent), options (o), customComp (i.customComponent) { + SettableTooltipClient::setTooltip(item.tooltipText); + if (item.isSectionHeader) customComp = *new HeaderItemComponent (item.text, options); @@ -1708,6 +1710,7 @@ PopupMenu::Item& PopupMenu::Item::operator= (Item&&) = default; PopupMenu::Item::Item (const Item& other) : text (other.text), + tooltipText(other.tooltipText), itemID (other.itemID), action (other.action), subMenu (createCopyIfNotNull (other.subMenu.get())), @@ -1727,6 +1730,7 @@ PopupMenu::Item::Item (const Item& other) PopupMenu::Item& PopupMenu::Item::operator= (const Item& other) { text = other.text; + tooltipText = other.tooltipText; itemID = other.itemID; action = other.action; subMenu.reset (createCopyIfNotNull (other.subMenu.get())); diff --git a/modules/juce_gui_basics/menus/juce_PopupMenu.h b/modules/juce_gui_basics/menus/juce_PopupMenu.h index a8234453e9..34ae9b40e6 100644 --- a/modules/juce_gui_basics/menus/juce_PopupMenu.h +++ b/modules/juce_gui_basics/menus/juce_PopupMenu.h @@ -137,6 +137,7 @@ public: /** The menu item's name. */ String text; + String tooltipText = ""; /** The menu item's ID. This must not be 0 if you want the item to be triggerable, but if you're attaching