| 
							- /*
 -   ==============================================================================
 - 
 -    This file is part of the JUCE library.
 -    Copyright (c) 2017 - ROLI Ltd.
 - 
 -    JUCE is an open source library subject to commercial or open-source
 -    licensing.
 - 
 -    By using JUCE, you agree to the terms of both the JUCE 5 End-User License
 -    Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
 -    27th April 2017).
 - 
 -    End User License Agreement: www.juce.com/juce-5-licence
 -    Privacy Policy: www.juce.com/juce-5-privacy-policy
 - 
 -    Or: You may also use this code under the terms of the GPL v3 (see
 -    www.gnu.org/licenses).
 - 
 -    JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
 -    EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
 -    DISCLAIMED.
 - 
 -   ==============================================================================
 - */
 - 
 - #pragma once
 - 
 - class ApplicationUsageDataWindowComponent    : public Component,
 -                                                private Button::Listener
 - {
 - public:
 -     ApplicationUsageDataWindowComponent (bool showCheckbox)
 -     {
 -         addAndMakeVisible (headerLabel);
 -         headerLabel.setText ("Application Usage Analytics", dontSendNotification);
 -         headerLabel.setFont (Font (20.0f, Font::FontStyleFlags::bold));
 -         headerLabel.setJustificationType (Justification::centred);
 - 
 -         auto textToShow = String ("We use analytics services to understand how developers use our software in order for JUCE to improve its software and services. ");
 - 
 -         if (! showCheckbox)
 -             textToShow += String (" Analytics can be disabled with an Indie or Pro license. ");
 - 
 -         textToShow += String ("For more information, please read the JUCE EULA and Privacy policy:");
 - 
 -         addAndMakeVisible (bodyLabel);
 -         bodyLabel.setText (textToShow, dontSendNotification);
 -         bodyLabel.setFont (Font (14.0f));
 -         bodyLabel.setJustificationType (Justification::centredLeft);
 - 
 -         addAndMakeVisible (juceEULALink);
 -         juceEULALink.setButtonText ("JUCE EULA");
 -         juceEULALink.setFont (Font (14.0f), false);
 -         juceEULALink.setURL (URL ("https://juce.com/juce-5-license"));
 - 
 -         addAndMakeVisible (privacyPolicyLink);
 -         privacyPolicyLink.setButtonText ("Privacy Policy");
 -         privacyPolicyLink.setFont (Font (14.0f), false);
 -         privacyPolicyLink.setURL (URL ("https://juce.com/privacy-policy"));
 - 
 -         addAndMakeVisible (okButton);
 -         okButton.setButtonText ("OK");
 -         okButton.addListener (this);
 - 
 -         if (showCheckbox)
 -         {
 -             addAndMakeVisible (shareApplicationUsageDataToggle = new ToggleButton());
 - 
 -             LicenseController* controller = ProjucerApplication::getApp().licenseController;
 - 
 -             if (controller != nullptr && controller->getState().applicationUsageDataState == LicenseState::ApplicationUsageData::disabled)
 -                 shareApplicationUsageDataToggle->setToggleState (false, dontSendNotification);
 -             else
 -                 shareApplicationUsageDataToggle->setToggleState (true, dontSendNotification);
 - 
 -             addAndMakeVisible(shareApplicationUsageDataLabel = new Label ({}, "Help JUCE to improve its software and services by sharing my application usage data"));
 -             shareApplicationUsageDataLabel->setFont (Font (14.0f));
 -             shareApplicationUsageDataLabel->setMinimumHorizontalScale (1.0f);
 -         }
 -         else
 -         {
 -             addAndMakeVisible (upgradeLicenseButton = new TextButton ("Upgrade License"));
 -             upgradeLicenseButton->addListener (this);
 -             upgradeLicenseButton->setColour (TextButton::buttonColourId, findColour (secondaryButtonBackgroundColourId));
 -         }
 -     }
 - 
 -     ~ApplicationUsageDataWindowComponent()
 -     {
 -         if (LicenseController* controller = ProjucerApplication::getApp().licenseController)
 -         {
 -             auto newApplicationUsageDataState = LicenseState::ApplicationUsageData::enabled;
 - 
 -             if (shareApplicationUsageDataToggle != nullptr && ! shareApplicationUsageDataToggle->getToggleState())
 -                 newApplicationUsageDataState = LicenseState::ApplicationUsageData::disabled;
 - 
 -             controller->setApplicationUsageDataState (newApplicationUsageDataState);
 -         }
 -     }
 - 
 -     void resized() override
 -     {
 -         auto bounds = getLocalBounds().reduced (20);
 -         headerLabel.setBounds (bounds.removeFromTop (40));
 -         bodyLabel.setBounds (bounds.removeFromTop (75));
 - 
 -         bounds.removeFromTop (10);
 - 
 -         auto linkBounds = bounds.removeFromTop (20);
 -         juceEULALink.setBounds (linkBounds.removeFromLeft (linkBounds.getWidth() / 2).reduced (2));
 -         privacyPolicyLink.setBounds (linkBounds.reduced (2));
 - 
 -         if (shareApplicationUsageDataToggle != nullptr)
 -         {
 -             bounds.removeFromTop (10);
 - 
 -             auto toggleBounds = bounds.removeFromTop (40);
 -             shareApplicationUsageDataToggle->setBounds (toggleBounds.removeFromLeft (40).reduced (5));
 -             shareApplicationUsageDataLabel->setBounds (toggleBounds);
 -         }
 - 
 -         bounds.removeFromTop (10);
 - 
 -         auto buttonW = 125;
 -         auto buttonH = 40;
 - 
 -         if (upgradeLicenseButton != nullptr)
 -         {
 -             auto left = bounds.removeFromLeft (bounds.getWidth() / 2);
 - 
 -             upgradeLicenseButton->setSize (buttonW, buttonH);
 -             upgradeLicenseButton->setCentrePosition (left.getCentreX(), left.getCentreY());
 -         }
 - 
 -         okButton.setSize (buttonW, buttonH);
 -         okButton.setCentrePosition (bounds.getCentreX(), bounds.getCentreY());
 -     }
 - 
 -     void paint (Graphics& g) override
 -     {
 -         g.fillAll (findColour (backgroundColourId));
 -     }
 - 
 - private:
 -     Label headerLabel, bodyLabel;
 -     HyperlinkButton juceEULALink, privacyPolicyLink;
 -     ScopedPointer<Label> shareApplicationUsageDataLabel;
 -     ScopedPointer<ToggleButton> shareApplicationUsageDataToggle;
 -     TextButton okButton;
 -     ScopedPointer<TextButton> upgradeLicenseButton;
 - 
 -     void buttonClicked (Button* b) override
 -     {
 -         if (b == &okButton)
 -         {
 -             ProjucerApplication::getApp().dismissApplicationUsageDataAgreementPopup();
 -         }
 -         else if (b == upgradeLicenseButton)
 -         {
 -             if (LicenseController* controller = ProjucerApplication::getApp().licenseController)
 -                 controller->chooseNewLicense();
 -         }
 -     }
 - 
 -     void lookAndFeelChanged() override
 -     {
 -         if (upgradeLicenseButton != nullptr)
 -             upgradeLicenseButton->setColour (TextButton::buttonColourId, findColour (secondaryButtonBackgroundColourId));
 -     }
 - 
 -     JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ApplicationUsageDataWindowComponent)
 - };
 
 
  |