LMMS
Loading...
Searching...
No Matches
juce::MenuBarModel Class Referenceabstract

#include <juce_MenuBarModel.h>

Inheritance diagram for juce::MenuBarModel:
juce::AsyncUpdater juce::ApplicationCommandManagerListener

Classes

class  Listener

Public Member Functions

 MenuBarModel () noexcept
 ~MenuBarModel () override
void menuItemsChanged ()
void setApplicationCommandManagerToWatch (ApplicationCommandManager *manager)
void addListener (Listener *listenerToAdd)
void removeListener (Listener *listenerToRemove)
virtual StringArray getMenuBarNames ()=0
virtual PopupMenu getMenuForIndex (int topLevelMenuIndex, const String &menuName)=0
virtual void menuItemSelected (int menuItemID, int topLevelMenuIndex)=0
virtual void menuBarActivated (bool isActive)
void applicationCommandInvoked (const ApplicationCommandTarget::InvocationInfo &) override
void applicationCommandListChanged () override
void handleAsyncUpdate () override
void handleMenuBarActivate (bool isActive)

Private Attributes

ApplicationCommandManagermanager
ListenerList< Listenerlisteners

Additional Inherited Members

Private Member Functions inherited from juce::AsyncUpdater
 AsyncUpdater ()
virtual ~AsyncUpdater ()
void triggerAsyncUpdate ()
void cancelPendingUpdate () noexcept
void handleUpdateNowIfNeeded ()
bool isUpdatePending () const noexcept
Private Member Functions inherited from juce::ApplicationCommandManagerListener
virtual ~ApplicationCommandManagerListener ()=default

Detailed Description

A class for controlling MenuBar components.

This class is used to tell a MenuBar what menus to show, and to respond to a menu being selected.

See also
MenuBarModel::Listener, MenuBarComponent, PopupMenu

@tags{GUI}

Constructor & Destructor Documentation

◆ MenuBarModel()

juce::MenuBarModel::MenuBarModel ( )
noexcept

◆ ~MenuBarModel()

juce::MenuBarModel::~MenuBarModel ( )
override

Destructor.

Member Function Documentation

◆ addListener()

void juce::MenuBarModel::addListener ( Listener * listenerToAdd)

Registers a listener for callbacks when the menu items in this model change.

The listener object will get callbacks when this object's menuItemsChanged() method is called.

See also
removeListener

◆ applicationCommandInvoked()

void juce::MenuBarModel::applicationCommandInvoked ( const ApplicationCommandTarget::InvocationInfo & )
overridevirtual

Called when an app command is about to be invoked.

Implements juce::ApplicationCommandManagerListener.

◆ applicationCommandListChanged()

void juce::MenuBarModel::applicationCommandListChanged ( )
overridevirtual

Called when commands are registered or deregistered from the command manager, or when commands are made active or inactive.

Note that if you're using this to watch for changes to whether a command is disabled, you'll need to make sure that ApplicationCommandManager::commandStatusChanged() is called whenever the status of your command might have changed.

Implements juce::ApplicationCommandManagerListener.

◆ getMenuBarNames()

virtual StringArray juce::MenuBarModel::getMenuBarNames ( )
pure virtual

This method must return a list of the names of the menus.

◆ getMenuForIndex()

virtual PopupMenu juce::MenuBarModel::getMenuForIndex ( int topLevelMenuIndex,
const String & menuName )
pure virtual

This should return the popup menu to display for a given top-level menu.

Parameters
topLevelMenuIndexthe index of the top-level menu to show
menuNamethe name of the top-level menu item to show

◆ handleAsyncUpdate()

void juce::MenuBarModel::handleAsyncUpdate ( )
overridevirtual

Called back to do whatever your class needs to do.

This method is called by the message thread at the next convenient time after the triggerAsyncUpdate() method has been called.

Implements juce::AsyncUpdater.

◆ handleMenuBarActivate()

void juce::MenuBarModel::handleMenuBarActivate ( bool isActive)

◆ menuBarActivated()

void juce::MenuBarModel::menuBarActivated ( bool isActive)
virtual

This is called when the user starts/stops navigating the menu bar.

Parameters
isActivetrue when the user starts navigating the menu bar

◆ menuItemsChanged()

void juce::MenuBarModel::menuItemsChanged ( )

Call this when some of your menu items have changed.

This method will cause a callback to any MenuBarListener objects that are registered with this model.

If this model is displaying items from an ApplicationCommandManager, you can use the setApplicationCommandManagerToWatch() method to cause change messages to be sent automatically when the ApplicationCommandManager is changed.

See also
addListener, removeListener, MenuBarListener

◆ menuItemSelected()

virtual void juce::MenuBarModel::menuItemSelected ( int menuItemID,
int topLevelMenuIndex )
pure virtual

This is called when a menu item has been clicked on.

Parameters
menuItemIDthe item ID of the PopupMenu item that was selected
topLevelMenuIndexthe index of the top-level menu from which the item was chosen (just in case you've used duplicate ID numbers on more than one of the popup menus)

◆ removeListener()

void juce::MenuBarModel::removeListener ( Listener * listenerToRemove)

Removes a listener.

See also
addListener

◆ setApplicationCommandManagerToWatch()

void juce::MenuBarModel::setApplicationCommandManagerToWatch ( ApplicationCommandManager * manager)

Tells the menu bar to listen to the specified command manager, and to update itself when the commands change.

This will also allow it to flash a menu name when a command from that menu is invoked using a keystroke.

Member Data Documentation

◆ listeners

ListenerList<Listener> juce::MenuBarModel::listeners
private

◆ manager

ApplicationCommandManager* juce::MenuBarModel::manager
private

The documentation for this class was generated from the following files: