Loading...
Searching...
No Matches
PopupMenu::Options Class Reference

Class used to create a set of options to pass to the show() method. More...

#include <juce_PopupMenu.h>

Public Types

enum class  PopupDirection { upwards , downwards }
 

Public Member Functions

 Options ()
 By default, the target screen area will be the current mouse position.
 
 Options (const Options &)=default
 
Optionsoperator= (const Options &)=default
 
Options withTargetComponent (Component *targetComponent) const
 Sets the target component to use when displaying the menu.
 
Options withTargetComponent (Component &targetComponent) const
 
Options withTargetScreenArea (Rectangle< int > targetArea) const
 Sets the region of the screen next to which the menu should be displayed.
 
Options withMousePosition () const
 Sets the target screen area to match the current mouse position.
 
Options withDeletionCheck (Component &componentToWatchForDeletion) const
 If the passed component has been deleted when the popup menu exits, the selected item's action will not be called.
 
Options withMinimumWidth (int minWidth) const
 Sets the minimum width of the popup window.
 
Options withMinimumNumColumns (int minNumColumns) const
 Sets the minimum number of columns in the popup window.
 
Options withMaximumNumColumns (int maxNumColumns) const
 Sets the maximum number of columns in the popup window.
 
Options withStandardItemHeight (int standardHeight) const
 Sets the default height of each item in the popup menu.
 
Options withItemThatMustBeVisible (int idOfItemToBeVisible) const
 Sets an item which must be visible when the menu is initially drawn.
 
Options withParentComponent (Component *parentComponent) const
 Sets a component that the popup menu will be drawn into.
 
Options withPreferredPopupDirection (PopupDirection direction) const
 Sets the direction of the popup menu relative to the target screen area.
 
Options withInitiallySelectedItem (int idOfItemToBeSelected) const
 Sets an item to select in the menu.
 
Options forSubmenu () const
 Returns a copy of these options with the target component set to null.
 
ComponentgetParentComponent () const noexcept
 Gets the parent component.
 
ComponentgetTargetComponent () const noexcept
 Gets the target component.
 
ComponentgetTopLevelTargetComponent () const noexcept
 Gets the target component that was set for the top-level menu.
 
bool hasWatchedComponentBeenDeleted () const noexcept
 Returns true if the menu was watching a component, and that component has been deleted, and false otherwise.
 
Rectangle< int > getTargetScreenArea () const noexcept
 Gets the target screen area.
 
int getMinimumWidth () const noexcept
 Gets the minimum width.
 
int getMaximumNumColumns () const noexcept
 Gets the maximum number of columns.
 
int getMinimumNumColumns () const noexcept
 Gets the minimum number of columns.
 
int getStandardItemHeight () const noexcept
 Gets the default height of items in the menu.
 
int getItemThatMustBeVisible () const noexcept
 Gets the ID of the item that must be visible when the menu is initially shown.
 
PopupDirection getPreferredPopupDirection () const noexcept
 Gets the preferred popup menu direction.
 
int getInitiallySelectedItemId () const noexcept
 Gets the ID of the item that must be selected when the menu is initially shown.
 

Detailed Description

Class used to create a set of options to pass to the show() method.

You can chain together a series of calls to this class's methods to create a set of whatever options you want to specify. E.g.

PopupMenu menu;
...
.withTargetComponent (myComp));
Class used to create a set of options to pass to the show() method.
Definition juce_PopupMenu.h:469
Options withMaximumNumColumns(int maxNumColumns) const
Sets the maximum number of columns in the popup window.
Options withTargetComponent(Component *targetComponent) const
Sets the target component to use when displaying the menu.
Options withMinimumWidth(int minWidth) const
Sets the minimum width of the popup window.
Creates and displays a popup-menu.
Definition juce_PopupMenu.h:92
int showMenu(const Options &options)
Displays and runs the menu modally, with a set of options.

Member Enumeration Documentation

◆ PopupDirection

Enumerator
upwards 
downwards 

Constructor & Destructor Documentation

◆ Options() [1/2]

PopupMenu::Options::Options ( )

By default, the target screen area will be the current mouse position.

◆ Options() [2/2]

PopupMenu::Options::Options ( const Options & )
default

Member Function Documentation

◆ operator=()

Options & PopupMenu::Options::operator= ( const Options & )
default

◆ withTargetComponent() [1/2]

Options PopupMenu::Options::withTargetComponent ( Component * targetComponent) const
nodiscard

Sets the target component to use when displaying the menu.

This is normally the button or other control that triggered the menu.

The target component is primarily used to control the scale of the menu, so it's important to supply a target component if you'll be using your program on hi-DPI displays.

This function will also set the target screen area, so that the menu displays next to the target component. If you need to display the menu at a specific location, you should call withTargetScreenArea() after withTargetComponent.

See also
withTargetComponent, withTargetScreenArea

◆ withTargetComponent() [2/2]

Options PopupMenu::Options::withTargetComponent ( Component & targetComponent) const
nodiscard

◆ withTargetScreenArea()

Options PopupMenu::Options::withTargetScreenArea ( Rectangle< int > targetArea) const
nodiscard

Sets the region of the screen next to which the menu should be displayed.

To display the menu next to the mouse cursor use withMousePosition(), which is equivalent to passing the following to this function:

static Point< int > getMousePosition()
Returns the mouse position.
Manages a rectangle and allows geometric operations to be performed on it.
Definition juce_Rectangle.h:79
Rectangle withPosition(ValueType newX, ValueType newY) const noexcept
Returns a rectangle with the same size as this one, but a new position.
Definition juce_Rectangle.h:244

withTargetComponent() will also set the target screen area. If you need a target component and a target screen area, make sure to call withTargetScreenArea() after withTargetComponent().

See also
withMousePosition

◆ withMousePosition()

Options PopupMenu::Options::withMousePosition ( ) const
nodiscard

Sets the target screen area to match the current mouse position.

Make sure to call this after withTargetComponent().

See also
withTargetScreenArea

◆ withDeletionCheck()

Options PopupMenu::Options::withDeletionCheck ( Component & componentToWatchForDeletion) const
nodiscard

If the passed component has been deleted when the popup menu exits, the selected item's action will not be called.

This is useful for avoiding dangling references inside the action callback, in the case that the callback needs to access a component that may be deleted.

◆ withMinimumWidth()

Options PopupMenu::Options::withMinimumWidth ( int minWidth) const
nodiscard

Sets the minimum width of the popup window.

◆ withMinimumNumColumns()

Options PopupMenu::Options::withMinimumNumColumns ( int minNumColumns) const
nodiscard

Sets the minimum number of columns in the popup window.

◆ withMaximumNumColumns()

Options PopupMenu::Options::withMaximumNumColumns ( int maxNumColumns) const
nodiscard

Sets the maximum number of columns in the popup window.

◆ withStandardItemHeight()

Options PopupMenu::Options::withStandardItemHeight ( int standardHeight) const
nodiscard

Sets the default height of each item in the popup menu.

◆ withItemThatMustBeVisible()

Options PopupMenu::Options::withItemThatMustBeVisible ( int idOfItemToBeVisible) const
nodiscard

Sets an item which must be visible when the menu is initially drawn.

This is useful to ensure that a particular item is shown when the menu contains too many items to display on a single screen.

◆ withParentComponent()

Options PopupMenu::Options::withParentComponent ( Component * parentComponent) const
nodiscard

Sets a component that the popup menu will be drawn into.

Some plugin formats, such as AUv3, dislike it when the plugin editor spawns additional windows. Some AUv3 hosts display pink backgrounds underneath transparent popup windows, which is confusing and can appear as though the plugin is malfunctioning. Setting a parent component will avoid this unwanted behaviour, but with the downside that the menu size will be constrained by the size of the parent component.

◆ withPreferredPopupDirection()

Options PopupMenu::Options::withPreferredPopupDirection ( PopupDirection direction) const
nodiscard

Sets the direction of the popup menu relative to the target screen area.

◆ withInitiallySelectedItem()

Options PopupMenu::Options::withInitiallySelectedItem ( int idOfItemToBeSelected) const
nodiscard

Sets an item to select in the menu.

This is useful for controls such as combo boxes, where opening the combo box with the keyboard should ideally highlight the currently-selected item, allowing the next/previous item to be selected by pressing up/down on the keyboard, rather than needing to move the highlighted row down from the top of the menu each time it is opened.

◆ forSubmenu()

Options PopupMenu::Options::forSubmenu ( ) const
nodiscard

Returns a copy of these options with the target component set to null.

The value of the top-level target component will not be changed.

See also
getTargetComponent(), getTopLevelTargetComponent()

◆ getParentComponent()

Component * PopupMenu::Options::getParentComponent ( ) const
noexcept

Gets the parent component.

This may be nullptr if the Component has been deleted.

See also
withParentComponent

◆ getTargetComponent()

Component * PopupMenu::Options::getTargetComponent ( ) const
noexcept

Gets the target component.

This may be nullptr if the Component has been deleted.

See also
withTargetComponent

◆ getTopLevelTargetComponent()

Component * PopupMenu::Options::getTopLevelTargetComponent ( ) const
noexcept

Gets the target component that was set for the top-level menu.

When querying the options of a submenu, getTargetComponent() will always return nullptr, while getTopLevelTargetComponent() will return the target passed to withTargetComponent() when creating the top-level menu.

◆ hasWatchedComponentBeenDeleted()

bool PopupMenu::Options::hasWatchedComponentBeenDeleted ( ) const
noexcept

Returns true if the menu was watching a component, and that component has been deleted, and false otherwise.

See also
withDeletionCheck

◆ getTargetScreenArea()

Rectangle< int > PopupMenu::Options::getTargetScreenArea ( ) const
noexcept

Gets the target screen area.

See also
withTargetScreenArea

◆ getMinimumWidth()

int PopupMenu::Options::getMinimumWidth ( ) const
noexcept

Gets the minimum width.

See also
withMinimumWidth

◆ getMaximumNumColumns()

int PopupMenu::Options::getMaximumNumColumns ( ) const
noexcept

Gets the maximum number of columns.

See also
withMaximumNumColumns

◆ getMinimumNumColumns()

int PopupMenu::Options::getMinimumNumColumns ( ) const
noexcept

Gets the minimum number of columns.

See also
withMinimumNumColumns

◆ getStandardItemHeight()

int PopupMenu::Options::getStandardItemHeight ( ) const
noexcept

Gets the default height of items in the menu.

See also
withStandardItemHeight

◆ getItemThatMustBeVisible()

int PopupMenu::Options::getItemThatMustBeVisible ( ) const
noexcept

Gets the ID of the item that must be visible when the menu is initially shown.

See also
withItemThatMustBeVisible

◆ getPreferredPopupDirection()

PopupDirection PopupMenu::Options::getPreferredPopupDirection ( ) const
noexcept

Gets the preferred popup menu direction.

See also
withPreferredPopupDirection

◆ getInitiallySelectedItemId()

int PopupMenu::Options::getInitiallySelectedItemId ( ) const
noexcept

Gets the ID of the item that must be selected when the menu is initially shown.

See also
withItemThatMustBeVisible

The documentation for this class was generated from the following file:
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram