Loading...
Searching...
No Matches
juce::ToolbarItemFactory Class Referenceabstract

## Detailed Description

A factory object which can create ToolbarItemComponent objects.

A subclass of ToolbarItemFactory publishes a set of types of toolbar item that it can create.

Each type of item is identified by a unique ID, and multiple instances of an item type can exist at once (even on the same toolbar, e.g. spacers or separator bars).

See also
  Toolbar, ToolbarItemComponent, ToolbarButton

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

- juce_gui_basics/widgets/juce_ToolbarItemFactory.h

## Public Types

enum | SpecialItemIds { separatorBarId = -1 , spacerId = -2 , flexibleSpacerId = -3 }
| A set of reserved item ID values, used for the built-in item types. More...

## Public Member Functions

| ToolbarItemFactory ()
virtual | ~ToolbarItemFactory ()
| Destructor.
virtual void | getAllToolbarItemIds (Array< int > &ids)=0
| Must return a list of the IDs for all the item types that this factory can create.
virtual void | getDefaultItemSet (Array< int > &ids)=0
| Must return the set of items that should be added to a toolbar as its default set.
virtual ToolbarItemComponent * | createItem (int itemId)=0
| Must create an instance of one of the items that the factory lists in its getAllToolbarItemIds() method.

## Member Enums

## SpecialItemIds

enum juce::ToolbarItemFactory::SpecialItemIds

A set of reserved item ID values, used for the built-in item types.

Enumerator
separatorBarId | The item ID for a vertical (or horizontal) separator bar that can be placed between sets of items to break them into groups.
spacerId | The item ID for a fixed-width space that can be placed between items.
flexibleSpacerId | The item ID for a gap that pushes outwards against the things on either side of it, filling any available space.

## Constructors and Destructors

## ToolbarItemFactory()

juce::ToolbarItemFactory::ToolbarItemFactory | ( |  | ) |

## ~ToolbarItemFactory()

virtual juce::ToolbarItemFactory::~ToolbarItemFactory | ( |  | ) |

virtual

Destructor.

## Member Functions

## getAllToolbarItemIds()

virtual void juce::ToolbarItemFactory::getAllToolbarItemIds | ( | Array< int > & | ids | ) |

pure virtual

Must return a list of the IDs for all the item types that this factory can create.

The ids should be added to the array that is passed-in.

An item ID can be any integer you choose, except for 0, which is considered a null ID, and the predefined IDs in the SpecialItemIds enum.

You should also add the built-in types (separatorBarId, spacerId and flexibleSpacerId) to this list if you want your toolbar to be able to contain those items.

The list returned here is used by the ToolbarItemPalette class to obtain its list of available items, and their order on the palette will reflect the order in which they appear on this list.

See also
  ToolbarItemPalette

## getDefaultItemSet()

virtual void juce::ToolbarItemFactory::getDefaultItemSet | ( | Array< int > & | ids | ) |

pure virtual

Must return the set of items that should be added to a toolbar as its default set.

This method is used by Toolbar::addDefaultItems() to determine which items to create.

The items that your method adds to the array that is passed-in will be added to the toolbar in the same order. Items can appear in the list more than once.

## createItem()

virtual ToolbarItemComponent * juce::ToolbarItemFactory::createItem | ( | int | itemId | ) |

pure virtual

Must create an instance of one of the items that the factory lists in its getAllToolbarItemIds() method.

The itemId parameter can be any of the values listed by your getAllToolbarItemIds() method, except for the built-in item types from the SpecialItemIds enum, which are created internally by the toolbar code.

Try not to keep a pointer to the object that is returned, as it will be deleted automatically by the toolbar, and remember that multiple instances of the same item type are likely to exist at the same time.

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited