migrating to the latest JUCE version
This commit is contained in:
		
							
								
								
									
										202
									
								
								deps/juce/examples/CMake/GuiApp/Main.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										202
									
								
								deps/juce/examples/CMake/GuiApp/Main.cpp
									
									
									
									
										vendored
									
									
								
							@@ -1,101 +1,101 @@
 | 
			
		||||
#include "MainComponent.h"
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
class GuiAppApplication  : public juce::JUCEApplication
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    GuiAppApplication() {}
 | 
			
		||||
 | 
			
		||||
    // We inject these as compile definitions from the CMakeLists.txt
 | 
			
		||||
    // If you've enabled the juce header with `juce_generate_juce_header(<thisTarget>)`
 | 
			
		||||
    // you could `#include <JuceHeader.h>` and use `ProjectInfo::projectName` etc. instead.
 | 
			
		||||
    const juce::String getApplicationName() override       { return JUCE_APPLICATION_NAME_STRING; }
 | 
			
		||||
    const juce::String getApplicationVersion() override    { return JUCE_APPLICATION_VERSION_STRING; }
 | 
			
		||||
    bool moreThanOneInstanceAllowed() override             { return true; }
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    void initialise (const juce::String& commandLine) override
 | 
			
		||||
    {
 | 
			
		||||
        // This method is where you should put your application's initialisation code..
 | 
			
		||||
        juce::ignoreUnused (commandLine);
 | 
			
		||||
 | 
			
		||||
        mainWindow.reset (new MainWindow (getApplicationName()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void shutdown() override
 | 
			
		||||
    {
 | 
			
		||||
        // Add your application's shutdown code here..
 | 
			
		||||
 | 
			
		||||
        mainWindow = nullptr; // (deletes our window)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    void systemRequestedQuit() override
 | 
			
		||||
    {
 | 
			
		||||
        // This is called when the app is being asked to quit: you can ignore this
 | 
			
		||||
        // request and let the app carry on running, or call quit() to allow the app to close.
 | 
			
		||||
        quit();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void anotherInstanceStarted (const juce::String& commandLine) override
 | 
			
		||||
    {
 | 
			
		||||
        // When another instance of the app is launched while this one is running,
 | 
			
		||||
        // this method is invoked, and the commandLine parameter tells you what
 | 
			
		||||
        // the other instance's command-line arguments were.
 | 
			
		||||
        juce::ignoreUnused (commandLine);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    /*
 | 
			
		||||
        This class implements the desktop window that contains an instance of
 | 
			
		||||
        our MainComponent class.
 | 
			
		||||
    */
 | 
			
		||||
    class MainWindow    : public juce::DocumentWindow
 | 
			
		||||
    {
 | 
			
		||||
    public:
 | 
			
		||||
        explicit MainWindow (juce::String name)
 | 
			
		||||
            : DocumentWindow (name,
 | 
			
		||||
                              juce::Desktop::getInstance().getDefaultLookAndFeel()
 | 
			
		||||
                                                          .findColour (ResizableWindow::backgroundColourId),
 | 
			
		||||
                              DocumentWindow::allButtons)
 | 
			
		||||
        {
 | 
			
		||||
            setUsingNativeTitleBar (true);
 | 
			
		||||
            setContentOwned (new MainComponent(), true);
 | 
			
		||||
 | 
			
		||||
           #if JUCE_IOS || JUCE_ANDROID
 | 
			
		||||
            setFullScreen (true);
 | 
			
		||||
           #else
 | 
			
		||||
            setResizable (true, true);
 | 
			
		||||
            centreWithSize (getWidth(), getHeight());
 | 
			
		||||
           #endif
 | 
			
		||||
 | 
			
		||||
            setVisible (true);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void closeButtonPressed() override
 | 
			
		||||
        {
 | 
			
		||||
            // This is called when the user tries to close this window. Here, we'll just
 | 
			
		||||
            // ask the app to quit when this happens, but you can change this to do
 | 
			
		||||
            // whatever you need.
 | 
			
		||||
            JUCEApplication::getInstance()->systemRequestedQuit();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* Note: Be careful if you override any DocumentWindow methods - the base
 | 
			
		||||
           class uses a lot of them, so by overriding you might break its functionality.
 | 
			
		||||
           It's best to do all your work in your content component instead, but if
 | 
			
		||||
           you really have to override any DocumentWindow methods, make sure your
 | 
			
		||||
           subclass also calls the superclass's method.
 | 
			
		||||
        */
 | 
			
		||||
 | 
			
		||||
    private:
 | 
			
		||||
        JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainWindow)
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    std::unique_ptr<MainWindow> mainWindow;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
// This macro generates the main() routine that launches the app.
 | 
			
		||||
START_JUCE_APPLICATION (GuiAppApplication)
 | 
			
		||||
#include "MainComponent.h"
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
class GuiAppApplication  : public juce::JUCEApplication
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    GuiAppApplication() {}
 | 
			
		||||
 | 
			
		||||
    // We inject these as compile definitions from the CMakeLists.txt
 | 
			
		||||
    // If you've enabled the juce header with `juce_generate_juce_header(<thisTarget>)`
 | 
			
		||||
    // you could `#include <JuceHeader.h>` and use `ProjectInfo::projectName` etc. instead.
 | 
			
		||||
    const juce::String getApplicationName() override       { return JUCE_APPLICATION_NAME_STRING; }
 | 
			
		||||
    const juce::String getApplicationVersion() override    { return JUCE_APPLICATION_VERSION_STRING; }
 | 
			
		||||
    bool moreThanOneInstanceAllowed() override             { return true; }
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    void initialise (const juce::String& commandLine) override
 | 
			
		||||
    {
 | 
			
		||||
        // This method is where you should put your application's initialisation code..
 | 
			
		||||
        juce::ignoreUnused (commandLine);
 | 
			
		||||
 | 
			
		||||
        mainWindow.reset (new MainWindow (getApplicationName()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void shutdown() override
 | 
			
		||||
    {
 | 
			
		||||
        // Add your application's shutdown code here..
 | 
			
		||||
 | 
			
		||||
        mainWindow = nullptr; // (deletes our window)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    void systemRequestedQuit() override
 | 
			
		||||
    {
 | 
			
		||||
        // This is called when the app is being asked to quit: you can ignore this
 | 
			
		||||
        // request and let the app carry on running, or call quit() to allow the app to close.
 | 
			
		||||
        quit();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void anotherInstanceStarted (const juce::String& commandLine) override
 | 
			
		||||
    {
 | 
			
		||||
        // When another instance of the app is launched while this one is running,
 | 
			
		||||
        // this method is invoked, and the commandLine parameter tells you what
 | 
			
		||||
        // the other instance's command-line arguments were.
 | 
			
		||||
        juce::ignoreUnused (commandLine);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    /*
 | 
			
		||||
        This class implements the desktop window that contains an instance of
 | 
			
		||||
        our MainComponent class.
 | 
			
		||||
    */
 | 
			
		||||
    class MainWindow    : public juce::DocumentWindow
 | 
			
		||||
    {
 | 
			
		||||
    public:
 | 
			
		||||
        explicit MainWindow (juce::String name)
 | 
			
		||||
            : DocumentWindow (name,
 | 
			
		||||
                              juce::Desktop::getInstance().getDefaultLookAndFeel()
 | 
			
		||||
                                                          .findColour (ResizableWindow::backgroundColourId),
 | 
			
		||||
                              DocumentWindow::allButtons)
 | 
			
		||||
        {
 | 
			
		||||
            setUsingNativeTitleBar (true);
 | 
			
		||||
            setContentOwned (new MainComponent(), true);
 | 
			
		||||
 | 
			
		||||
           #if JUCE_IOS || JUCE_ANDROID
 | 
			
		||||
            setFullScreen (true);
 | 
			
		||||
           #else
 | 
			
		||||
            setResizable (true, true);
 | 
			
		||||
            centreWithSize (getWidth(), getHeight());
 | 
			
		||||
           #endif
 | 
			
		||||
 | 
			
		||||
            setVisible (true);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void closeButtonPressed() override
 | 
			
		||||
        {
 | 
			
		||||
            // This is called when the user tries to close this window. Here, we'll just
 | 
			
		||||
            // ask the app to quit when this happens, but you can change this to do
 | 
			
		||||
            // whatever you need.
 | 
			
		||||
            JUCEApplication::getInstance()->systemRequestedQuit();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* Note: Be careful if you override any DocumentWindow methods - the base
 | 
			
		||||
           class uses a lot of them, so by overriding you might break its functionality.
 | 
			
		||||
           It's best to do all your work in your content component instead, but if
 | 
			
		||||
           you really have to override any DocumentWindow methods, make sure your
 | 
			
		||||
           subclass also calls the superclass's method.
 | 
			
		||||
        */
 | 
			
		||||
 | 
			
		||||
    private:
 | 
			
		||||
        JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainWindow)
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    std::unique_ptr<MainWindow> mainWindow;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
// This macro generates the main() routine that launches the app.
 | 
			
		||||
START_JUCE_APPLICATION (GuiAppApplication)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,25 +1,25 @@
 | 
			
		||||
#include "MainComponent.h"
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
MainComponent::MainComponent()
 | 
			
		||||
{
 | 
			
		||||
    setSize (600, 400);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
void MainComponent::paint (juce::Graphics& g)
 | 
			
		||||
{
 | 
			
		||||
    // (Our component is opaque, so we must completely fill the background with a solid colour)
 | 
			
		||||
    g.fillAll (getLookAndFeel().findColour (juce::ResizableWindow::backgroundColourId));
 | 
			
		||||
 | 
			
		||||
    g.setFont (juce::Font (16.0f));
 | 
			
		||||
    g.setColour (juce::Colours::white);
 | 
			
		||||
    g.drawText ("Hello World!", getLocalBounds(), juce::Justification::centred, true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainComponent::resized()
 | 
			
		||||
{
 | 
			
		||||
    // This is called when the MainComponent is resized.
 | 
			
		||||
    // If you add any child components, this is where you should
 | 
			
		||||
    // update their positions.
 | 
			
		||||
}
 | 
			
		||||
#include "MainComponent.h"
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
MainComponent::MainComponent()
 | 
			
		||||
{
 | 
			
		||||
    setSize (600, 400);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
void MainComponent::paint (juce::Graphics& g)
 | 
			
		||||
{
 | 
			
		||||
    // (Our component is opaque, so we must completely fill the background with a solid colour)
 | 
			
		||||
    g.fillAll (getLookAndFeel().findColour (juce::ResizableWindow::backgroundColourId));
 | 
			
		||||
 | 
			
		||||
    g.setFont (juce::Font (16.0f));
 | 
			
		||||
    g.setColour (juce::Colours::white);
 | 
			
		||||
    g.drawText ("Hello World!", getLocalBounds(), juce::Justification::centred, true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainComponent::resized()
 | 
			
		||||
{
 | 
			
		||||
    // This is called when the MainComponent is resized.
 | 
			
		||||
    // If you add any child components, this is where you should
 | 
			
		||||
    // update their positions.
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										58
									
								
								deps/juce/examples/CMake/GuiApp/MainComponent.h
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										58
									
								
								deps/juce/examples/CMake/GuiApp/MainComponent.h
									
									
									
									
										vendored
									
									
								
							@@ -1,29 +1,29 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
// CMake builds don't use an AppConfig.h, so it's safe to include juce module headers
 | 
			
		||||
// directly. If you need to remain compatible with Projucer-generated builds, and
 | 
			
		||||
// have called `juce_generate_juce_header(<thisTarget>)` in your CMakeLists.txt,
 | 
			
		||||
// you could `#include <JuceHeader.h>` here instead, to make all your module headers visible.
 | 
			
		||||
#include <juce_gui_extra/juce_gui_extra.h>
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
/*
 | 
			
		||||
    This component lives inside our window, and this is where you should put all
 | 
			
		||||
    your controls and content.
 | 
			
		||||
*/
 | 
			
		||||
class MainComponent   : public juce::Component
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    MainComponent();
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    void paint (juce::Graphics&) override;
 | 
			
		||||
    void resized() override;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    // Your private member variables go here...
 | 
			
		||||
 | 
			
		||||
    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainComponent)
 | 
			
		||||
};
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
// CMake builds don't use an AppConfig.h, so it's safe to include juce module headers
 | 
			
		||||
// directly. If you need to remain compatible with Projucer-generated builds, and
 | 
			
		||||
// have called `juce_generate_juce_header(<thisTarget>)` in your CMakeLists.txt,
 | 
			
		||||
// you could `#include <JuceHeader.h>` here instead, to make all your module headers visible.
 | 
			
		||||
#include <juce_gui_extra/juce_gui_extra.h>
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
/*
 | 
			
		||||
    This component lives inside our window, and this is where you should put all
 | 
			
		||||
    your controls and content.
 | 
			
		||||
*/
 | 
			
		||||
class MainComponent   : public juce::Component
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    MainComponent();
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    void paint (juce::Graphics&) override;
 | 
			
		||||
    void resized() override;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    // Your private member variables go here...
 | 
			
		||||
 | 
			
		||||
    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainComponent)
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user