25 #ifndef JUCE_POPUPMENU_H_INCLUDED 26 #define JUCE_POPUPMENU_H_INCLUDED 96 #if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS 117 void addItem (
int itemResultID,
119 bool isEnabled =
true,
120 bool isTicked =
false);
135 void addItem (
int itemResultID,
139 const Image& iconToUse);
155 void addItem (
int itemResultID,
180 void addColouredItem (
int itemResultID,
183 bool isEnabled =
true,
184 bool isTicked =
false,
200 void addCustomItem (
int itemResultID,
202 int idealWidth,
int idealHeight,
203 bool triggerMenuItemAutomaticallyWhenClicked,
204 const PopupMenu* optionalSubMenu =
nullptr);
212 void addSubMenu (
const String& subMenuName,
214 bool isEnabled =
true);
222 void addSubMenu (
const String& subMenuName,
225 const Image& iconToUse,
226 bool isTicked =
false,
227 int itemResultID = 0);
239 void addSubMenu (
const String& subMenuName,
243 bool isTicked =
false,
244 int itemResultID = 0);
260 void addSectionHeader (
const String& title);
269 bool containsCommandItem (
int commandID)
const;
272 bool containsAnyActiveItems()
const noexcept;
296 Options withItemThatMustBeVisible (
int idOfItemToBeVisible)
const noexcept;
300 friend class PopupMenu::Window;
303 int visibleItemID, minWidth, maxColumns, standardHeight;
307 #if JUCE_MODAL_LOOPS_PERMITTED 341 int show (
int itemIDThatMustBeVisible = 0,
342 int minimumWidth = 0,
343 int maximumNumColumns = 0,
344 int standardItemHeight = 0,
362 int itemIDThatMustBeVisible = 0,
363 int minimumWidth = 0,
364 int maximumNumColumns = 0,
365 int standardItemHeight = 0,
374 int showAt (
Component* componentToAttachTo,
375 int itemIDThatMustBeVisible = 0,
376 int minimumWidth = 0,
377 int maximumNumColumns = 0,
378 int standardItemHeight = 0,
383 int showMenu (
const Options& options);
507 virtual void getIdealSize (
int& idealWidth,
int& idealHeight) = 0;
514 void triggerMenuItem();
525 void setHighlighted (
bool shouldBeHighlighted);
529 bool isHighlighted, triggeredAutomatically;
541 void addCustomItem (
int itemResultID,
CustomComponent* customComponent,
542 const PopupMenu* optionalSubMenu =
nullptr);
554 virtual void drawPopupMenuBackground (
Graphics&,
int width,
int height) = 0;
558 bool isSeparator,
bool isActive,
bool isHighlighted,
559 bool isTicked,
bool hasSubMenu,
561 const String& shortcutKeyText,
563 const Colour* textColour) = 0;
566 const String& sectionName) = 0;
569 virtual Font getPopupMenuFont() = 0;
571 virtual void drawPopupMenuUpDownArrow (
Graphics&,
572 int width,
int height,
573 bool isScrollUpArrow) = 0;
576 virtual void getIdealPopupMenuItemSize (
const String& text,
578 int standardMenuItemHeight,
580 int& idealHeight) = 0;
582 virtual int getMenuWindowFlags() = 0;
584 virtual void drawMenuBarBackground (
Graphics&,
int width,
int height,
588 virtual int getDefaultMenuBarHeight() = 0;
594 virtual void drawMenuBarItem (
Graphics&,
int width,
int height,
597 bool isMouseOverItem,
616 #if JUCE_CATCH_DEPRECATED_CODE_MISUSE 618 int drawPopupMenuItem (
Graphics&,
int,
int,
bool,
bool,
bool,
bool,
bool,
const String&,
const String&,
Image*,
const Colour*) {
return 0; }
624 #endif // JUCE_POPUPMENU_H_INCLUDED
Definition: juce_ApplicationCommandManager.h:84
static const String empty
Definition: juce_String.h:152
Definition: juce_Font.h:39
#define noexcept
Definition: juce_CompilerSupport.h:141
Definition: juce_LookAndFeel.h:74
Definition: juce_ModalComponentManager.h:53
Definition: juce_String.h:43
#define JUCE_API
Definition: juce_StandardHeader.h:139
#define JUCE_PUBLIC_IN_DLL_BUILD(declaration)
Definition: juce_StandardHeader.h:145
Definition: juce_Rectangle.h:36
Definition: juce_Colour.h:35
Definition: juce_Component.h:33
int CommandID
Definition: juce_ApplicationCommandID.h:37
Definition: juce_Drawable.h:35
Definition: juce_OwnedArray.h:55
Definition: juce_GraphicsContext.h:42
Definition: juce_Image.h:54
#define JUCE_LEAK_DETECTOR(OwnerClass)
Definition: juce_LeakedObjectDetector.h:141
Definition: juce_PopupMenu.h:549
Definition: juce_ReferenceCountedObject.h:144
virtual ~LookAndFeelMethods()
Definition: juce_PopupMenu.h:551
static const Image null
Definition: juce_Image.h:152
Definition: juce_ModalComponentManager.h:40