/* ============================================================================== This file contains the startup code for a PIP. ============================================================================== */ #include #include "${JUCE_PIP_HEADER}" class Application : public juce::JUCEApplication { public: //============================================================================== Application() = default; const juce::String getApplicationName() override { return "${JUCE_PIP_NAME}"; } const juce::String getApplicationVersion() override { return "${PROJECT_VERSION}"; } void initialise (const juce::String&) override { mainWindow.reset (new MainWindow ("${JUCE_PIP_NAME}", new ${JUCE_PIP_MAIN_CLASS}, *this)); } void shutdown() override { mainWindow = nullptr; } private: class MainWindow : public juce::DocumentWindow { public: MainWindow (const juce::String& name, juce::Component* c, JUCEApplication& a) : DocumentWindow (name, juce::Desktop::getInstance().getDefaultLookAndFeel() .findColour (ResizableWindow::backgroundColourId), juce::DocumentWindow::allButtons), app (a) { setUsingNativeTitleBar (true); setContentOwned (c, true); #if JUCE_ANDROID || JUCE_IOS setFullScreen (true); #else setResizable (true, false); setResizeLimits (300, 250, 10000, 10000); centreWithSize (getWidth(), getHeight()); #endif setVisible (true); } void closeButtonPressed() override { app.systemRequestedQuit(); } private: JUCEApplication& app; //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainWindow) }; std::unique_ptr mainWindow; }; //============================================================================== START_JUCE_APPLICATION (Application)