openshot-audio
0.1.7
|
#include <juce_gui_extra.h>
Public Member Functions | |
PreferencesPanel () | |
~PreferencesPanel () | |
void | addSettingsPage (const String &pageTitle, const Drawable *normalIcon, const Drawable *overIcon, const Drawable *downIcon) |
void | addSettingsPage (const String &pageTitle, const void *imageData, int imageDataSize) |
void | showInDialogBox (const String &dialogTitle, int dialogWidth, int dialogHeight, Colour backgroundColour=Colours::white) |
virtual Component * | createComponentForPage (const String &pageName)=0 |
void | setCurrentPage (const String &pageName) |
int | getButtonSize () const noexcept |
void | setButtonSize (int newSize) |
void | resized () override |
void | paint (Graphics &) override |
void | buttonClicked (Button *) override |
A component with a set of buttons at the top for changing between pages of preferences.
This is just a handy way of writing a Mac-style preferences panel where you have a row of buttons along the top for the different preference categories, each button having an icon above its name. Clicking these will show an appropriate prefs page below it.
You can either put one of these inside your own component, or just use the showInDialogBox() method to show it in a window and run it modally.
To use it, just add a set of named pages with the addSettingsPage() method, and implement the createComponentForPage() method to create suitable components for each of these pages.
PreferencesPanel::PreferencesPanel | ( | ) |
Creates an empty panel.
Use addSettingsPage() to add some pages to it in your constructor.
PreferencesPanel::~PreferencesPanel | ( | ) |
Destructor.
void PreferencesPanel::addSettingsPage | ( | const String & | pageTitle, |
const Drawable * | normalIcon, | ||
const Drawable * | overIcon, | ||
const Drawable * | downIcon | ||
) |
Creates a page using a set of drawables to define the page's icon.
Note that the other version of this method is much easier if you're using an image instead of a custom drawable.
pageTitle | the name of this preferences page - you'll need to make sure your createComponentForPage() method creates a suitable component when it is passed this name |
normalIcon | the drawable to display in the page's button normally |
overIcon | the drawable to display in the page's button when the mouse is over |
downIcon | the drawable to display in the page's button when the button is down |
void PreferencesPanel::addSettingsPage | ( | const String & | pageTitle, |
const void * | imageData, | ||
int | imageDataSize | ||
) |
Creates a page using a set of drawables to define the page's icon.
The other version of this method gives you more control over the icon, but this one is much easier if you're just loading it from a file.
pageTitle | the name of this preferences page - you'll need to make sure your createComponentForPage() method creates a suitable component when it is passed this name |
imageData | a block of data containing an image file, e.g. a jpeg, png or gif. For this to look good, you'll probably want to use a nice transparent png file. |
imageDataSize | the size of the image data, in bytes |
|
overridevirtual |
Called when the button is clicked.
Implements juce::Button::Listener.
|
pure virtual |
Subclasses must override this to return a component for each preferences page.
The subclass should return a pointer to a new component representing the named page, which the panel will then display.
The panel will delete the component later when the user goes to another page or deletes the panel.
|
noexcept |
Returns the size of the buttons shown along the top.
|
override |
|
override |
void PreferencesPanel::setButtonSize | ( | int | newSize | ) |
Changes the size of the buttons shown along the top.
Changes the current page being displayed.
void PreferencesPanel::showInDialogBox | ( | const String & | dialogTitle, |
int | dialogWidth, | ||
int | dialogHeight, | ||
Colour | backgroundColour = Colours::white |
||
) |
Utility method to display this panel in a DialogWindow.
Calling this will create a DialogWindow containing this panel with the given size and title, and will run it modally, returning when the user closes the dialog box.