| 
							- /*
 -   ==============================================================================
 - 
 -    This file is part of the JUCE library.
 -    Copyright (c) 2013 - Raw Material Software 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.
 - 
 -   ==============================================================================
 - */
 - 
 - PreferencesPanel::PreferencesPanel()
 -     : buttonSize (70)
 - {
 - }
 - 
 - PreferencesPanel::~PreferencesPanel()
 - {
 - }
 - 
 - int PreferencesPanel::getButtonSize() const noexcept
 - {
 -     return buttonSize;
 - }
 - 
 - void PreferencesPanel::setButtonSize (int newSize)
 - {
 -     buttonSize = newSize;
 -     resized();
 - }
 - 
 - //==============================================================================
 - void PreferencesPanel::addSettingsPage (const String& title,
 -                                         const Drawable* icon,
 -                                         const Drawable* overIcon,
 -                                         const Drawable* downIcon)
 - {
 -     DrawableButton* const button = new DrawableButton (title, DrawableButton::ImageAboveTextLabel);
 -     buttons.add (button);
 - 
 -     button->setImages (icon, overIcon, downIcon);
 -     button->setRadioGroupId (1);
 -     button->addListener (this);
 -     button->setClickingTogglesState (true);
 -     button->setWantsKeyboardFocus (false);
 -     addAndMakeVisible (button);
 - 
 -     resized();
 - 
 -     if (currentPage == nullptr)
 -         setCurrentPage (title);
 - }
 - 
 - void PreferencesPanel::addSettingsPage (const String& title, const void* imageData, const int imageDataSize)
 - {
 -     DrawableImage icon, iconOver, iconDown;
 -     icon.setImage (ImageCache::getFromMemory (imageData, imageDataSize));
 - 
 -     iconOver.setImage (ImageCache::getFromMemory (imageData, imageDataSize));
 -     iconOver.setOverlayColour (Colours::black.withAlpha (0.12f));
 - 
 -     iconDown.setImage (ImageCache::getFromMemory (imageData, imageDataSize));
 -     iconDown.setOverlayColour (Colours::black.withAlpha (0.25f));
 - 
 -     addSettingsPage (title, &icon, &iconOver, &iconDown);
 - }
 - 
 - //==============================================================================
 - void PreferencesPanel::showInDialogBox (const String& dialogTitle, int dialogWidth, int dialogHeight, Colour backgroundColour)
 - {
 -     setSize (dialogWidth, dialogHeight);
 - 
 -     DialogWindow::LaunchOptions o;
 -     o.content.setNonOwned (this);
 -     o.dialogTitle                   = dialogTitle;
 -     o.dialogBackgroundColour        = backgroundColour;
 -     o.escapeKeyTriggersCloseButton  = false;
 -     o.useNativeTitleBar             = false;
 -     o.resizable                     = false;
 - 
 -     o.launchAsync();
 - }
 - 
 - //==============================================================================
 - void PreferencesPanel::resized()
 - {
 -     for (int i = 0; i < buttons.size(); ++i)
 -         buttons.getUnchecked(i)->setBounds (i * buttonSize, 0, buttonSize, buttonSize);
 - 
 -     if (currentPage != nullptr)
 -         currentPage->setBounds (getLocalBounds().withTop (buttonSize + 5));
 - }
 - 
 - void PreferencesPanel::paint (Graphics& g)
 - {
 -     g.setColour (Colours::grey);
 -     g.fillRect (0, buttonSize + 2, getWidth(), 1);
 - }
 - 
 - void PreferencesPanel::setCurrentPage (const String& pageName)
 - {
 -     if (currentPageName != pageName)
 -     {
 -         currentPageName = pageName;
 - 
 -         currentPage = nullptr;
 -         currentPage = createComponentForPage (pageName);
 - 
 -         if (currentPage != nullptr)
 -         {
 -             addAndMakeVisible (currentPage);
 -             currentPage->toBack();
 -             resized();
 -         }
 - 
 -         for (int i = 0; i < buttons.size(); ++i)
 -         {
 -             if (buttons.getUnchecked(i)->getName() == pageName)
 -             {
 -                 buttons.getUnchecked(i)->setToggleState (true, dontSendNotification);
 -                 break;
 -             }
 -         }
 -     }
 - }
 - 
 - void PreferencesPanel::buttonClicked (Button*)
 - {
 -     for (int i = 0; i < buttons.size(); ++i)
 -     {
 -         if (buttons.getUnchecked(i)->getToggleState())
 -         {
 -             setCurrentPage (buttons.getUnchecked(i)->getName());
 -             break;
 -         }
 -     }
 - }
 
 
  |