/*
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
This file is part of the JUCE library .
Copyright ( c ) 2015 - ROLI Ltd .
Permission is granted to use this software under the terms of either :
a ) the GPL v2 ( or any later version )
b ) the Affero GPL v3
Details of these licenses can be found at : www . gnu . org / licenses
JUCE is distributed in the hope that it will be useful , but WITHOUT ANY
WARRANTY ; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE . See the GNU General Public License for more details .
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
To release a closed - source product which uses JUCE , commercial licenses are
available : visit www . juce . com for more information .
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
*/
# ifndef JUCE_TOOLBARITEMPALETTE_H_INCLUDED
# define JUCE_TOOLBARITEMPALETTE_H_INCLUDED
//==============================================================================
/**
A component containing a list of toolbar items , which the user can drag onto
a toolbar to add them .
You can use this class directly , but it ' s a lot easier to call Toolbar : : showCustomisationDialog ( ) ,
which automatically shows one of these in a dialog box with lots of extra controls .
@ see Toolbar
*/
class JUCE_API ToolbarItemPalette : public Component ,
public DragAndDropContainer
{
public :
//==============================================================================
/** Creates a palette of items for a given factory, with the aim of adding them
to the specified toolbar .
The ToolbarItemFactory : : getAllToolbarItemIds ( ) method is used to create the
set of items that are shown in this palette .
The toolbar and factory must not be deleted while this object exists .
*/
ToolbarItemPalette ( ToolbarItemFactory & factory ,
Toolbar & toolbar ) ;
/** Destructor. */
~ ToolbarItemPalette ( ) ;
//==============================================================================
/** @internal */
void resized ( ) override ;
private :
ToolbarItemFactory & factory ;
Toolbar & toolbar ;
Viewport viewport ;
OwnedArray < ToolbarItemComponent > items ;
friend class Toolbar ;
void replaceComponent ( ToolbarItemComponent & ) ;
void addComponent ( int itemId , int index ) ;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR ( ToolbarItemPalette )
} ;
# endif // JUCE_TOOLBARITEMPALETTE_H_INCLUDED