diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp index 755e691b3f..afe8a4326d 100644 --- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp +++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp @@ -899,7 +899,20 @@ void LookAndFeel_V2::getIdealPopupMenuItemSizeWithOptions (const String& text, standardMenuItemHeight, idealWidth, idealHeight); +} +void LookAndFeel_V2::getIdealPopupMenuSectionHeaderSizeWithOptions (const String& text, + int standardMenuItemHeight, + int& idealWidth, + int& idealHeight, + const PopupMenu::Options& options) +{ + getIdealPopupMenuItemSizeWithOptions (text, + false, + standardMenuItemHeight, + idealWidth, + idealHeight, + options); idealHeight += idealHeight / 2; idealWidth += idealWidth / 4; } diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h index 8662fcc9b6..f3ada35f81 100644 --- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h +++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h @@ -207,6 +207,12 @@ public: int& idealHeight, const PopupMenu::Options&) override; + void getIdealPopupMenuSectionHeaderSizeWithOptions (const String& text, + int standardMenuItemHeight, + int& idealWidth, + int& idealHeight, + const PopupMenu::Options&) override; + int getMenuWindowFlags() override; void preparePopupMenuWindow (Component&) override; diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp index d611bb9a95..a9ed7700fb 100644 --- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp +++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp @@ -884,9 +884,6 @@ void LookAndFeel_V4::getIdealPopupMenuItemSize (const String& text, const bool i idealHeight = standardMenuItemHeight > 0 ? standardMenuItemHeight : roundToInt (font.getHeight() * 1.3f); idealWidth = GlyphArrangement::getStringWidthInt (font, text) + idealHeight * 2; } - - idealHeight += idealHeight / 2; - idealWidth += idealWidth / 4; } void LookAndFeel_V4::drawMenuBarBackground (Graphics& g, int width, int height, diff --git a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp index 69129d3696..cf7974aabf 100644 --- a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp +++ b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp @@ -84,12 +84,11 @@ struct HeaderItemComponent final : public PopupMenu::CustomComponent void getIdealSize (int& idealWidth, int& idealHeight) override { - getLookAndFeel().getIdealPopupMenuItemSizeWithOptions (getName(), - false, - -1, - idealWidth, - idealHeight, - options); + getLookAndFeel().getIdealPopupMenuSectionHeaderSizeWithOptions (getName(), + -1, + idealWidth, + idealHeight, + options); } std::unique_ptr createAccessibilityHandler() override diff --git a/modules/juce_gui_basics/menus/juce_PopupMenu.h b/modules/juce_gui_basics/menus/juce_PopupMenu.h index 26235173dd..a8234453e9 100644 --- a/modules/juce_gui_basics/menus/juce_PopupMenu.h +++ b/modules/juce_gui_basics/menus/juce_PopupMenu.h @@ -997,6 +997,12 @@ public: int& idealHeight, const Options&) = 0; + virtual void getIdealPopupMenuSectionHeaderSizeWithOptions (const String& text, + int standardMenuItemHeight, + int& idealWidth, + int& idealHeight, + const Options&) = 0; + virtual int getMenuWindowFlags() = 0; virtual void drawMenuBarBackground (Graphics&, int width, int height,