diff --git a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj index bcc9790d3f..f22ebaaa1a 100644 --- a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj +++ b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj @@ -152,6 +152,7 @@ 3C95FA2AA91EBA19ADDD5C29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectWizard_Animated.h"; path = "../../Source/Wizards/jucer_ProjectWizard_Animated.h"; sourceTree = "SOURCE_ROOT"; }; 3D6FD9C0065BF16568EC0AB7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_SlidingPanelComponent.h"; path = "../../Source/Utility/UI/jucer_SlidingPanelComponent.h"; sourceTree = "SOURCE_ROOT"; }; 3EA27F52A254912218F4DE94 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectBuildInfo.h"; path = "../../Source/LiveBuildEngine/jucer_ProjectBuildInfo.h"; sourceTree = "SOURCE_ROOT"; }; + 3F7C5B53347A487C7FBD2223 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_OpenGLComponentTemplate.h"; path = "../../Source/BinaryData/Templates/jucer_OpenGLComponentTemplate.h"; sourceTree = "SOURCE_ROOT"; }; 3F8EC008960DBEB2A5D3C3F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_Headers.h"; path = "../../Source/Application/jucer_Headers.h"; sourceTree = "SOURCE_ROOT"; }; 3F9D4C7F6E5779D4E4AE655D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ComponentLayout.h"; path = "../../Source/ComponentEditor/jucer_ComponentLayout.h"; sourceTree = "SOURCE_ROOT"; }; 4073A12E196BDDADE211E19F = {isa = PBXFileReference; lastKnownFileType = text.txt; name = "projucer_EULA.txt"; path = "../../Source/BinaryData/projucer_EULA.txt"; sourceTree = "SOURCE_ROOT"; }; @@ -193,6 +194,7 @@ 59F8A47C0020D62C8836A1E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_PropertyComponentsWithEnablement.h"; path = "../../Source/Utility/UI/PropertyComponents/jucer_PropertyComponentsWithEnablement.h"; sourceTree = "SOURCE_ROOT"; }; 5A75806B34E4EA6598A6024A = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 5B3532C5F103DAC87B4A5675 = {isa = PBXFileReference; lastKnownFileType = file.svg; name = "wizard_GUI.svg"; path = "../../Source/BinaryData/Icons/wizard_GUI.svg"; sourceTree = "SOURCE_ROOT"; }; + 5BF0374EB908F0476BD8ED42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_AudioComponentTemplate.h"; path = "../../Source/BinaryData/Templates/jucer_AudioComponentTemplate.h"; sourceTree = "SOURCE_ROOT"; }; 5E4EB84A7983AB31366A3490 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ModuleTreeItems.h"; path = "../../Source/Project/UI/Sidebar/jucer_ModuleTreeItems.h"; sourceTree = "SOURCE_ROOT"; }; 5F6584B675E30761521A9F42 = {isa = PBXFileReference; lastKnownFileType = file.xml; name = "colourscheme_light.xml"; path = "../../Source/BinaryData/colourscheme_light.xml"; sourceTree = "SOURCE_ROOT"; }; 62922B3C0620368D1799A653 = {isa = PBXFileReference; lastKnownFileType = file.svg; name = "wizard_OpenGL.svg"; path = "../../Source/BinaryData/Icons/wizard_OpenGL.svg"; sourceTree = "SOURCE_ROOT"; }; @@ -266,9 +268,11 @@ 9914F905BFCFBE5F76619670 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ColouredElement.h"; path = "../../Source/ComponentEditor/PaintElements/jucer_ColouredElement.h"; sourceTree = "SOURCE_ROOT"; }; 996E472B82A75531875A5E38 = {isa = PBXFileReference; lastKnownFileType = file; name = LICENSE; path = ../../Source/BinaryData/gradle/LICENSE; sourceTree = "SOURCE_ROOT"; }; 9992E6950C64322A11E39ADF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectWizard_DLL.h"; path = "../../Source/Wizards/jucer_ProjectWizard_DLL.h"; sourceTree = "SOURCE_ROOT"; }; + 9A3B8BBDA8E144A3DF6B9349 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_AnimatedComponentSimpleTemplate.h"; path = "../../Source/BinaryData/Templates/jucer_AnimatedComponentSimpleTemplate.h"; sourceTree = "SOURCE_ROOT"; }; 9B6FD3FEDB6D91AD0A80EF97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ImageResourceProperty.h"; path = "../../Source/ComponentEditor/PaintElements/jucer_ImageResourceProperty.h"; sourceTree = "SOURCE_ROOT"; }; 9BDF2D6255C1CB2CFF376186 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ComponentOverlayComponent.h"; path = "../../Source/ComponentEditor/UI/jucer_ComponentOverlayComponent.h"; sourceTree = "SOURCE_ROOT"; }; 9D7689451732AF8333402B3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ObjectTypes.cpp"; path = "../../Source/ComponentEditor/jucer_ObjectTypes.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9E0BA495286388EBF929D578 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ContentCompSimpleTemplate.h"; path = "../../Source/BinaryData/Templates/jucer_ContentCompSimpleTemplate.h"; sourceTree = "SOURCE_ROOT"; }; 9E2B1506AC3FDB7863766D59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_NewInlineComponentTemplate.h"; path = "../../Source/BinaryData/Templates/jucer_NewInlineComponentTemplate.h"; sourceTree = "SOURCE_ROOT"; }; 9E62EC342665C27BA01AFC1A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ComponentNameProperty.h"; path = "../../Source/ComponentEditor/Components/jucer_ComponentNameProperty.h"; sourceTree = "SOURCE_ROOT"; }; 9EB33734D0DBD0370AB1247B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ColourPropertyComponent.h"; path = "../../Source/Utility/UI/PropertyComponents/jucer_ColourPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; @@ -323,6 +327,7 @@ C3E04CD5A93A45154894E624 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_Colours.h"; path = "../../Source/Utility/Helpers/jucer_Colours.h"; sourceTree = "SOURCE_ROOT"; }; C402C21DFAC1F8BF121144F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_FillType.h"; path = "../../Source/ComponentEditor/PaintElements/jucer_FillType.h"; sourceTree = "SOURCE_ROOT"; }; C59E624F099CC785F27429EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_Icons.h"; path = "../../Source/Utility/UI/jucer_Icons.h"; sourceTree = "SOURCE_ROOT"; }; + C607639897ED2538CBB860D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_OpenGLComponentSimpleTemplate.h"; path = "../../Source/BinaryData/Templates/jucer_OpenGLComponentSimpleTemplate.h"; sourceTree = "SOURCE_ROOT"; }; C7245390C6C44E89F7526CFC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_NewComponentTemplate.h"; path = "../../Source/BinaryData/Templates/jucer_NewComponentTemplate.h"; sourceTree = "SOURCE_ROOT"; }; C736264708F3F68BA745BA29 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_FloatingToolWindow.h"; path = "../../Source/Application/Windows/jucer_FloatingToolWindow.h"; sourceTree = "SOURCE_ROOT"; }; CC1C5F8E5DE34223FEC59673 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_AudioPluginFilterTemplate.h"; path = "../../Source/BinaryData/Templates/jucer_AudioPluginFilterTemplate.h"; sourceTree = "SOURCE_ROOT"; }; @@ -336,6 +341,8 @@ D1F9B0E9F5D54FE48BEB46EA = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; D251114072E67CA86D9913D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ClassDatabase.h"; path = "../../Source/LiveBuildEngine/jucer_ClassDatabase.h"; sourceTree = "SOURCE_ROOT"; }; D2FE76E4CF003856278343CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_CompileEngineServer.cpp"; path = "../../Source/LiveBuildEngine/jucer_CompileEngineServer.cpp"; sourceTree = "SOURCE_ROOT"; }; + D4EB334E5186D1584EC63CA4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_AudioComponentSimpleTemplate.h"; path = "../../Source/BinaryData/Templates/jucer_AudioComponentSimpleTemplate.h"; sourceTree = "SOURCE_ROOT"; }; + D5795F8CAC5876714DAB355F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_AnimatedComponentTemplate.h"; path = "../../Source/BinaryData/Templates/jucer_AnimatedComponentTemplate.h"; sourceTree = "SOURCE_ROOT"; }; D588BA6A0C62DE1F18D5C2EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_GlobalSearchPathsWindowComponent.h"; path = "../../Source/Application/Windows/jucer_GlobalSearchPathsWindowComponent.h"; sourceTree = "SOURCE_ROOT"; }; D5EF5961B1F0E3FAED32E30A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_CLion.h"; path = "../../Source/ProjectSaving/jucer_ProjectExport_CLion.h"; sourceTree = "SOURCE_ROOT"; }; D6390A40B3279E0E626C78D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ColouredElement.cpp"; path = "../../Source/ComponentEditor/PaintElements/jucer_ColouredElement.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -436,14 +443,19 @@ 62922B3C0620368D1799A653, D1739728A79A2062418B8EF0, ); name = Icons; sourceTree = ""; }; E59ABA0D11CBAAD77179E9C6 = {isa = PBXGroup; children = ( + 9A3B8BBDA8E144A3DF6B9349, 016A6C52B0B93DE29197FF64, + D5795F8CAC5876714DAB355F, + D4EB334E5186D1584EC63CA4, 203FA6AD7EDDF1F9C338CC2A, + 5BF0374EB908F0476BD8ED42, 6574A50A8997799705B23465, 56177921580A4855917E0205, 079802C6AEE7646010766FE8, CC1C5F8E5DE34223FEC59673, FB80347407261BF6CCEFDE91, 2BD9B4556479A8A41740BCAE, + 9E0BA495286388EBF929D578, 8D9A9A373E4621F7CBFCCCEF, 59203884BC48D3B7F8DEABA8, 32C4B61AD995877956B7FA66, @@ -456,7 +468,9 @@ 8F67F3C0492EAFEBDBBC12DB, E111A336FE13C033EAA0A1D1, 9E2B1506AC3FDB7863766D59, - 023B92AC0340305762412E90, ); name = Templates; sourceTree = ""; }; + C607639897ED2538CBB860D0, + 023B92AC0340305762412E90, + 3F7C5B53347A487C7FBD2223, ); name = Templates; sourceTree = ""; }; A9399733CAA07BDAB958242C = {isa = PBXGroup; children = ( 8CF70DA9AB4725126B9F55BE, F0F189518721D46C0F94FD56, diff --git a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj index 20fca052d5..707a9dd7e2 100644 --- a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj @@ -1435,14 +1435,21 @@ + + + + + + + diff --git a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters index ddbea6116b..4dd76c8c76 100644 --- a/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2013/Projucer_App.vcxproj.filters @@ -1812,6 +1812,18 @@ Projucer\Application + + Projucer\BinaryData\Templates + + + Projucer\BinaryData\Templates + + + Projucer\BinaryData\Templates + + + Projucer\BinaryData\Templates + Projucer\BinaryData\Templates @@ -1821,6 +1833,9 @@ Projucer\BinaryData\Templates + + Projucer\BinaryData\Templates + Projucer\BinaryData\Templates @@ -1836,6 +1851,12 @@ Projucer\BinaryData\Templates + + Projucer\BinaryData\Templates + + + Projucer\BinaryData\Templates + Projucer\CodeEditor diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj index 7bd3231c5e..e2e901cb60 100644 --- a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj @@ -1435,14 +1435,21 @@ + + + + + + + diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters index acdd39a36c..adce21cf4a 100644 --- a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters @@ -1812,6 +1812,18 @@ Projucer\Application + + Projucer\BinaryData\Templates + + + Projucer\BinaryData\Templates + + + Projucer\BinaryData\Templates + + + Projucer\BinaryData\Templates + Projucer\BinaryData\Templates @@ -1821,6 +1833,9 @@ Projucer\BinaryData\Templates + + Projucer\BinaryData\Templates + Projucer\BinaryData\Templates @@ -1836,6 +1851,12 @@ Projucer\BinaryData\Templates + + Projucer\BinaryData\Templates + + + Projucer\BinaryData\Templates + Projucer\CodeEditor diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj index 8e32cad546..0ef9d6c957 100644 --- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj @@ -1435,14 +1435,21 @@ + + + + + + + diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters index dfca7c4b29..e6fb7c50a2 100644 --- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters @@ -1812,6 +1812,18 @@ Projucer\Application + + Projucer\BinaryData\Templates + + + Projucer\BinaryData\Templates + + + Projucer\BinaryData\Templates + + + Projucer\BinaryData\Templates + Projucer\BinaryData\Templates @@ -1821,6 +1833,9 @@ Projucer\BinaryData\Templates + + Projucer\BinaryData\Templates + Projucer\BinaryData\Templates @@ -1836,6 +1851,12 @@ Projucer\BinaryData\Templates + + Projucer\BinaryData\Templates + + + Projucer\BinaryData\Templates + Projucer\CodeEditor diff --git a/extras/Projucer/JuceLibraryCode/BinaryData.cpp b/extras/Projucer/JuceLibraryCode/BinaryData.cpp index 34b97182e5..de4ef127fc 100644 --- a/extras/Projucer/JuceLibraryCode/BinaryData.cpp +++ b/extras/Projucer/JuceLibraryCode/BinaryData.cpp @@ -5323,7 +5323,7 @@ static const unsigned char temp_binary_data_23[] = const char* wizard_StaticLibrary_svg = (const char*) temp_binary_data_23; -//================== jucer_AnimatedComponentTemplate.cpp ================== +//================== jucer_AnimatedComponentSimpleTemplate.h ================== static const unsigned char temp_binary_data_24[] = "/*\r\n" " ==============================================================================\r\n" @@ -5333,6 +5333,8 @@ static const unsigned char temp_binary_data_24[] = " ==============================================================================\r\n" "*/\r\n" "\r\n" +"#pragma once\r\n" +"\r\n" "INCLUDE_JUCE\r\n" "\r\n" "//==============================================================================\r\n" @@ -5340,26 +5342,30 @@ static const unsigned char temp_binary_data_24[] = " This component lives inside our window, and this is where you should put all\r\n" " your controls and content.\r\n" "*/\r\n" -"class MainContentComponent : public AnimatedAppComponent\r\n" +"class CONTENTCOMPCLASS : public AnimatedAppComponent\r\n" "{\r\n" "public:\r\n" " //==============================================================================\r\n" -" MainContentComponent()\r\n" +" CONTENTCOMPCLASS()\r\n" " {\r\n" +" // Make sure you set the size of the component after\r\n" +" // you add any child components.\r\n" " setSize (800, 600);\r\n" -" setFramesPerSecond (60);\r\n" +" setFramesPerSecond (60); // This sets the frequency of the update calls.\r\n" " }\r\n" "\r\n" -" ~MainContentComponent()\r\n" +" ~CONTENTCOMPCLASS()\r\n" " {\r\n" " }\r\n" "\r\n" +" //==============================================================================\r\n" " void update() override\r\n" " {\r\n" " // This function is called at the frequency specified by the setFramesPerSecond() call\r\n" " // in the constructor. You can use it to update counters, animate values, etc.\r\n" " }\r\n" "\r\n" +" //==============================================================================\r\n" " void paint (Graphics& g) override\r\n" " {\r\n" " // (Our component is opaque, so we must completely fill the background with a solid colour)\r\n" @@ -5378,22 +5384,109 @@ static const unsigned char temp_binary_data_24[] = "\r\n" "private:\r\n" " //==============================================================================\r\n" -"\r\n" " // Your private member variables go here...\r\n" "\r\n" "\r\n" +" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS)\r\n" +"};\r\n"; + +const char* jucer_AnimatedComponentSimpleTemplate_h = (const char*) temp_binary_data_24; + +//================== jucer_AnimatedComponentTemplate.cpp ================== +static const unsigned char temp_binary_data_25[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file was auto-generated!\r\n" "\r\n" -" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainContentComponent)\r\n" -"};\r\n" +" ==============================================================================\r\n" +"*/\r\n" "\r\n" +"INCLUDE_CORRESPONDING_HEADER\r\n" "\r\n" -"// (This function is called by the app startup code to create our main component)\r\n" -"Component* createMainContentComponent() { return new MainContentComponent(); }\r\n"; +"//==============================================================================\r\n" +"CONTENTCOMPCLASS::CONTENTCOMPCLASS()\r\n" +"{\r\n" +" // Make sure you set the size of the component after\r\n" +" // you add any child components.\r\n" +" setSize (800, 600);\r\n" +" setFramesPerSecond (60); // This sets the frequency of the update calls.\r\n" +"}\r\n" +"\r\n" +"CONTENTCOMPCLASS::~CONTENTCOMPCLASS()\r\n" +"{\r\n" +"}\r\n" +"\r\n" +"//==============================================================================\r\n" +"void CONTENTCOMPCLASS::update()\r\n" +"{\r\n" +" // This function is called at the frequency specified by the setFramesPerSecond() call\r\n" +" // in the constructor. You can use it to update counters, animate values, etc.\r\n" +"}\r\n" +"\r\n" +"//==============================================================================\r\n" +"void CONTENTCOMPCLASS::paint (Graphics& g)\r\n" +"{\r\n" +" // (Our component is opaque, so we must completely fill the background with a solid colour)\r\n" +" g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId));\r\n" +"\r\n" +" // You can add your drawing code here!\r\n" +"}\r\n" +"\r\n" +"void CONTENTCOMPCLASS::resized()\r\n" +"{\r\n" +" // This is called when the MainContentComponent is resized.\r\n" +" // If you add any child components, this is where you should\r\n" +" // update their positions.\r\n" +"}\r\n"; -const char* jucer_AnimatedComponentTemplate_cpp = (const char*) temp_binary_data_24; +const char* jucer_AnimatedComponentTemplate_cpp = (const char*) temp_binary_data_25; -//================== jucer_AudioComponentTemplate.cpp ================== -static const unsigned char temp_binary_data_25[] = +//================== jucer_AnimatedComponentTemplate.h ================== +static const unsigned char temp_binary_data_26[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file was auto-generated!\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#pragma once\r\n" +"\r\n" +"INCLUDE_JUCE\r\n" +"\r\n" +"//==============================================================================\r\n" +"/*\r\n" +" This component lives inside our window, and this is where you should put all\r\n" +" your controls and content.\r\n" +"*/\r\n" +"class CONTENTCOMPCLASS : public AnimatedAppComponent\r\n" +"{\r\n" +"public:\r\n" +" //==============================================================================\r\n" +" CONTENTCOMPCLASS();\r\n" +" ~CONTENTCOMPCLASS();\r\n" +"\r\n" +" //==============================================================================\r\n" +" void update() override;\r\n" +"\r\n" +" //==============================================================================\r\n" +" void paint (Graphics& g) override;\r\n" +" void resized() override;\r\n" +"\r\n" +"private:\r\n" +" //==============================================================================\r\n" +" // Your private member variables go here...\r\n" +"\r\n" +"\r\n" +" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS)\r\n" +"};\r\n"; + +const char* jucer_AnimatedComponentTemplate_h = (const char*) temp_binary_data_26; + +//================== jucer_AudioComponentSimpleTemplate.h ================== +static const unsigned char temp_binary_data_27[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -5402,6 +5495,8 @@ static const unsigned char temp_binary_data_25[] = " ==============================================================================\r\n" "*/\r\n" "\r\n" +"#pragma once\r\n" +"\r\n" "INCLUDE_JUCE\r\n" "\r\n" "//==============================================================================\r\n" @@ -5409,20 +5504,23 @@ static const unsigned char temp_binary_data_25[] = " This component lives inside our window, and this is where you should put all\r\n" " your controls and content.\r\n" "*/\r\n" -"class MainContentComponent : public AudioAppComponent\r\n" +"class CONTENTCOMPCLASS : public AudioAppComponent\r\n" "{\r\n" "public:\r\n" " //==============================================================================\r\n" -" MainContentComponent()\r\n" +" CONTENTCOMPCLASS()\r\n" " {\r\n" +" // Make sure you set the size of the component after\r\n" +" // you add any child components.\r\n" " setSize (800, 600);\r\n" "\r\n" " // specify the number of input and output channels that we want to open\r\n" " setAudioChannels (2, 2);\r\n" " }\r\n" "\r\n" -" ~MainContentComponent()\r\n" +" ~CONTENTCOMPCLASS()\r\n" " {\r\n" +" // This shuts down the audio device and clears the audio source.\r\n" " shutdownAudio();\r\n" " }\r\n" "\r\n" @@ -5476,21 +5574,139 @@ static const unsigned char temp_binary_data_25[] = "\r\n" "private:\r\n" " //==============================================================================\r\n" -"\r\n" " // Your private member variables go here...\r\n" "\r\n" "\r\n" -" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainContentComponent)\r\n" -"};\r\n" +" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS)\r\n" +"};\r\n"; + +const char* jucer_AudioComponentSimpleTemplate_h = (const char*) temp_binary_data_27; + +//================== jucer_AudioComponentTemplate.cpp ================== +static const unsigned char temp_binary_data_28[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file was auto-generated!\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"INCLUDE_CORRESPONDING_HEADER\r\n" +"\r\n" +"//==============================================================================\r\n" +"CONTENTCOMPCLASS::CONTENTCOMPCLASS()\r\n" +"{\r\n" +" // Make sure you set the size of the component after\r\n" +" // you add any child components.\r\n" +" setSize (800, 600);\r\n" +"\r\n" +" // specify the number of input and output channels that we want to open\r\n" +" setAudioChannels (2, 2);\r\n" +"}\r\n" "\r\n" +"CONTENTCOMPCLASS::~CONTENTCOMPCLASS()\r\n" +"{\r\n" +" // This shuts down the audio device and clears the audio source.\r\n" +" shutdownAudio();\r\n" +"}\r\n" "\r\n" -"// (This function is called by the app startup code to create our main component)\r\n" -"Component* createMainContentComponent() { return new MainContentComponent(); }\r\n"; +"//==============================================================================\r\n" +"void CONTENTCOMPCLASS::prepareToPlay (int samplesPerBlockExpected, double sampleRate)\r\n" +"{\r\n" +" // This function will be called when the audio device is started, or when\r\n" +" // its settings (i.e. sample rate, block size, etc) are changed.\r\n" +"\r\n" +" // You can use this function to initialise any resources you might need,\r\n" +" // but be careful - it will be called on the audio thread, not the GUI thread.\r\n" +"\r\n" +" // For more details, see the help for AudioProcessor::prepareToPlay()\r\n" +"}\r\n" +"\r\n" +"void CONTENTCOMPCLASS::getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill)\r\n" +"{\r\n" +" // Your audio-processing code goes here!\r\n" +"\r\n" +" // For more details, see the help for AudioProcessor::getNextAudioBlock()\r\n" +"\r\n" +" // Right now we are not producing any data, in which case we need to clear the buffer\r\n" +" // (to prevent the output of random noise)\r\n" +" bufferToFill.clearActiveBufferRegion();\r\n" +"}\r\n" +"\r\n" +"void CONTENTCOMPCLASS::releaseResources()\r\n" +"{\r\n" +" // This will be called when the audio device stops, or when it is being\r\n" +" // restarted due to a setting change.\r\n" +"\r\n" +" // For more details, see the help for AudioProcessor::releaseResources()\r\n" +"}\r\n" +"\r\n" +"//==============================================================================\r\n" +"void CONTENTCOMPCLASS::paint (Graphics& g)\r\n" +"{\r\n" +" // (Our component is opaque, so we must completely fill the background with a solid colour)\r\n" +" g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId));\r\n" +"\r\n" +" // You can add your drawing code here!\r\n" +"}\r\n" +"\r\n" +"void CONTENTCOMPCLASS::resized()\r\n" +"{\r\n" +" // This is called when the MainContentComponent is resized.\r\n" +" // If you add any child components, this is where you should\r\n" +" // update their positions.\r\n" +"}\r\n"; + +const char* jucer_AudioComponentTemplate_cpp = (const char*) temp_binary_data_28; + +//================== jucer_AudioComponentTemplate.h ================== +static const unsigned char temp_binary_data_29[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file was auto-generated!\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#pragma once\r\n" +"\r\n" +"INCLUDE_JUCE\r\n" +"\r\n" +"//==============================================================================\r\n" +"/*\r\n" +" This component lives inside our window, and this is where you should put all\r\n" +" your controls and content.\r\n" +"*/\r\n" +"class CONTENTCOMPCLASS : public AudioAppComponent\r\n" +"{\r\n" +"public:\r\n" +" //==============================================================================\r\n" +" CONTENTCOMPCLASS();\r\n" +" ~CONTENTCOMPCLASS();\r\n" +"\r\n" +" //==============================================================================\r\n" +" void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override;\r\n" +" void getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill) override;\r\n" +" void releaseResources() override;\r\n" +"\r\n" +" //==============================================================================\r\n" +" void paint (Graphics& g) override;\r\n" +" void resized() override;\r\n" +"\r\n" +"private:\r\n" +" //==============================================================================\r\n" +" // Your private member variables go here...\r\n" +"\r\n" +"\r\n" +" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS)\r\n" +"};\r\n"; -const char* jucer_AudioComponentTemplate_cpp = (const char*) temp_binary_data_25; +const char* jucer_AudioComponentTemplate_h = (const char*) temp_binary_data_29; //================== jucer_AudioPluginEditorTemplate.cpp ================== -static const unsigned char temp_binary_data_26[] = +static const unsigned char temp_binary_data_30[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -5534,10 +5750,10 @@ static const unsigned char temp_binary_data_26[] = " // subcomponents in your editor..\r\n" "}\r\n"; -const char* jucer_AudioPluginEditorTemplate_cpp = (const char*) temp_binary_data_26; +const char* jucer_AudioPluginEditorTemplate_cpp = (const char*) temp_binary_data_30; //================== jucer_AudioPluginEditorTemplate.h ================== -static const unsigned char temp_binary_data_27[] = +static const unsigned char temp_binary_data_31[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -5574,10 +5790,10 @@ static const unsigned char temp_binary_data_27[] = " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (EDITORCLASSNAME)\r\n" "};\r\n"; -const char* jucer_AudioPluginEditorTemplate_h = (const char*) temp_binary_data_27; +const char* jucer_AudioPluginEditorTemplate_h = (const char*) temp_binary_data_31; //================== jucer_AudioPluginFilterTemplate.cpp ================== -static const unsigned char temp_binary_data_28[] = +static const unsigned char temp_binary_data_32[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -5721,14 +5937,18 @@ static const unsigned char temp_binary_data_28[] = " // This is here to avoid people getting screaming feedback\r\n" " // when they first compile a plugin, but obviously you don't need to keep\r\n" " // this code if your algorithm always overwrites all the output channels.\r\n" -" for (int i = totalNumInputChannels; i < totalNumOutputChannels; ++i)\r\n" +" for (auto i = totalNumInputChannels; i < totalNumOutputChannels; ++i)\r\n" " buffer.clear (i, 0, buffer.getNumSamples());\r\n" "\r\n" " // This is the place where you'd normally do the guts of your plugin's\r\n" " // audio processing...\r\n" +" // Make sure to reset the state if your inner loop is processing\r\n" +" // the samples and the outer loop is handling the channels.\r\n" +" // Alternatively, you can process the samples with the channels\r\n" +" // interleaved by keeping the same state.\r\n" " for (int channel = 0; channel < totalNumInputChannels; ++channel)\r\n" " {\r\n" -" float* channelData = buffer.getWritePointer (channel);\r\n" +" auto* channelData = buffer.getWritePointer (channel);\r\n" "\r\n" " // ..do something to the data...\r\n" " }\r\n" @@ -5766,10 +5986,10 @@ static const unsigned char temp_binary_data_28[] = " return new FILTERCLASSNAME();\r\n" "}\r\n"; -const char* jucer_AudioPluginFilterTemplate_cpp = (const char*) temp_binary_data_28; +const char* jucer_AudioPluginFilterTemplate_cpp = (const char*) temp_binary_data_32; //================== jucer_AudioPluginFilterTemplate.h ================== -static const unsigned char temp_binary_data_29[] = +static const unsigned char temp_binary_data_33[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -5833,10 +6053,10 @@ static const unsigned char temp_binary_data_29[] = " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FILTERCLASSNAME)\r\n" "};\r\n"; -const char* jucer_AudioPluginFilterTemplate_h = (const char*) temp_binary_data_29; +const char* jucer_AudioPluginFilterTemplate_h = (const char*) temp_binary_data_33; //================== jucer_ComponentTemplate.cpp ================== -static const unsigned char temp_binary_data_30[] = +static const unsigned char temp_binary_data_34[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -5850,8 +6070,8 @@ static const unsigned char temp_binary_data_30[] = "\r\n" " ------------------------------------------------------------------------------\r\n" "\r\n" -" The Projucer is part of the JUCE library - \"Jules' Utility Class Extensions\"\r\n" -" Copyright (c) 2015 - ROLI Ltd.\r\n" +" The Projucer is part of the JUCE library.\r\n" +" Copyright (c) 2017 - ROLI Ltd.\r\n" "\r\n" " ==============================================================================\r\n" "*/\r\n" @@ -5912,10 +6132,10 @@ static const unsigned char temp_binary_data_30[] = "//[EndFile] You can add extra defines here...\r\n" "//[/EndFile]\r\n"; -const char* jucer_ComponentTemplate_cpp = (const char*) temp_binary_data_30; +const char* jucer_ComponentTemplate_cpp = (const char*) temp_binary_data_34; //================== jucer_ComponentTemplate.h ================== -static const unsigned char temp_binary_data_31[] = +static const unsigned char temp_binary_data_35[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -5929,8 +6149,8 @@ static const unsigned char temp_binary_data_31[] = "\r\n" " ------------------------------------------------------------------------------\r\n" "\r\n" -" The Projucer is part of the JUCE library - \"Jules' Utility Class Extensions\"\r\n" -" Copyright (c) 2015 - ROLI Ltd.\r\n" +" The Projucer is part of the JUCE library.\r\n" +" Copyright (c) 2017 - ROLI Ltd.\r\n" "\r\n" " ==============================================================================\r\n" "*/\r\n" @@ -5978,10 +6198,71 @@ static const unsigned char temp_binary_data_31[] = "//[EndFile] You can add extra defines here...\r\n" "//[/EndFile]\r\n"; -const char* jucer_ComponentTemplate_h = (const char*) temp_binary_data_31; +const char* jucer_ComponentTemplate_h = (const char*) temp_binary_data_35; + +//================== jucer_ContentCompSimpleTemplate.h ================== +static const unsigned char temp_binary_data_36[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file was auto-generated!\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#pragma once\r\n" +"\r\n" +"INCLUDE_JUCE\r\n" +"\r\n" +"//==============================================================================\r\n" +"/*\r\n" +" This component lives inside our window, and this is where you should put all\r\n" +" your controls and content.\r\n" +"*/\r\n" +"class CONTENTCOMPCLASS : public Component\r\n" +"{\r\n" +"public:\r\n" +" //==============================================================================\r\n" +" CONTENTCOMPCLASS()\r\n" +" {\r\n" +" setSize (600, 400);\r\n" +" }\r\n" +"\r\n" +" ~CONTENTCOMPCLASS()\r\n" +" {\r\n" +" }\r\n" +"\r\n" +" //==============================================================================\r\n" +" void paint (Graphics&) override\r\n" +" {\r\n" +" // (Our component is opaque, so we must completely fill the background with a solid colour)\r\n" +" g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId));\r\n" +"\r\n" +" g.setFont (Font (16.0f));\r\n" +" g.setColour (Colours::white);\r\n" +" g.drawText (\"Hello World!\", getLocalBounds(), Justification::centred, true);\r\n" +" }\r\n" +"\r\n" +" void resized() override\r\n" +" {\r\n" +" // This is called when the CONTENTCOMPCLASS is resized.\r\n" +" // If you add any child components, this is where you should\r\n" +" // update their positions.\r\n" +" }\r\n" +"\r\n" +"\r\n" +"private:\r\n" +" //==============================================================================\r\n" +" // Your private member variables go here...\r\n" +"\r\n" +"\r\n" +" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS)\r\n" +"};\r\n"; + +const char* jucer_ContentCompSimpleTemplate_h = (const char*) temp_binary_data_36; //================== jucer_ContentCompTemplate.cpp ================== -static const unsigned char temp_binary_data_32[] = +static const unsigned char temp_binary_data_37[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -5992,7 +6273,6 @@ static const unsigned char temp_binary_data_32[] = "\r\n" "INCLUDE_CORRESPONDING_HEADER\r\n" "\r\n" -"\r\n" "//==============================================================================\r\n" "CONTENTCOMPCLASS::CONTENTCOMPCLASS()\r\n" "{\r\n" @@ -6003,6 +6283,7 @@ static const unsigned char temp_binary_data_32[] = "{\r\n" "}\r\n" "\r\n" +"//==============================================================================\r\n" "void CONTENTCOMPCLASS::paint (Graphics& g)\r\n" "{\r\n" " // (Our component is opaque, so we must completely fill the background with a solid colour)\r\n" @@ -6020,10 +6301,10 @@ static const unsigned char temp_binary_data_32[] = " // update their positions.\r\n" "}\r\n"; -const char* jucer_ContentCompTemplate_cpp = (const char*) temp_binary_data_32; +const char* jucer_ContentCompTemplate_cpp = (const char*) temp_binary_data_37; //================== jucer_ContentCompTemplate.h ================== -static const unsigned char temp_binary_data_33[] = +static const unsigned char temp_binary_data_38[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -6036,7 +6317,6 @@ static const unsigned char temp_binary_data_33[] = "\r\n" "INCLUDE_JUCE\r\n" "\r\n" -"\r\n" "//==============================================================================\r\n" "/*\r\n" " This component lives inside our window, and this is where you should put all\r\n" @@ -6049,18 +6329,22 @@ static const unsigned char temp_binary_data_33[] = " CONTENTCOMPCLASS();\r\n" " ~CONTENTCOMPCLASS();\r\n" "\r\n" +" //==============================================================================\r\n" " void paint (Graphics&) override;\r\n" " void resized() override;\r\n" "\r\n" "private:\r\n" " //==============================================================================\r\n" +" // Your private member variables go here...\r\n" +"\r\n" +"\r\n" " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS)\r\n" "};\r\n"; -const char* jucer_ContentCompTemplate_h = (const char*) temp_binary_data_33; +const char* jucer_ContentCompTemplate_h = (const char*) temp_binary_data_38; //================== jucer_InlineComponentTemplate.h ================== -static const unsigned char temp_binary_data_34[] = +static const unsigned char temp_binary_data_39[] = "//==============================================================================\r\n" "class COMPONENTCLASS : public Component\r\n" "{\r\n" @@ -6102,10 +6386,10 @@ static const unsigned char temp_binary_data_34[] = " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (COMPONENTCLASS)\r\n" "};\r\n"; -const char* jucer_InlineComponentTemplate_h = (const char*) temp_binary_data_34; +const char* jucer_InlineComponentTemplate_h = (const char*) temp_binary_data_39; //================== jucer_MainConsoleAppTemplate.cpp ================== -static const unsigned char temp_binary_data_35[] = +static const unsigned char temp_binary_data_40[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -6129,10 +6413,10 @@ static const unsigned char temp_binary_data_35[] = " return 0;\r\n" "}\r\n"; -const char* jucer_MainConsoleAppTemplate_cpp = (const char*) temp_binary_data_35; +const char* jucer_MainConsoleAppTemplate_cpp = (const char*) temp_binary_data_40; //================== jucer_MainTemplate_NoWindow.cpp ================== -static const unsigned char temp_binary_data_36[] = +static const unsigned char temp_binary_data_41[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -6188,10 +6472,10 @@ static const unsigned char temp_binary_data_36[] = "// This macro generates the main() routine that launches the app.\r\n" "START_JUCE_APPLICATION (APPCLASSNAME)\r\n"; -const char* jucer_MainTemplate_NoWindow_cpp = (const char*) temp_binary_data_36; +const char* jucer_MainTemplate_NoWindow_cpp = (const char*) temp_binary_data_41; //================== jucer_MainTemplate_SimpleWindow.cpp ================== -static const unsigned char temp_binary_data_37[] = +static const unsigned char temp_binary_data_42[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -6204,8 +6488,6 @@ static const unsigned char temp_binary_data_37[] = "\r\n" "APPHEADERS\r\n" "\r\n" -"Component* createMainContentComponent();\r\n" -"\r\n" "//==============================================================================\r\n" "class APPCLASSNAME : public JUCEApplication\r\n" "{\r\n" @@ -6261,7 +6543,7 @@ static const unsigned char temp_binary_data_37[] = " DocumentWindow::allButtons)\r\n" " {\r\n" " setUsingNativeTitleBar (true);\r\n" -" setContentOwned (createMainContentComponent(), true);\r\n" +" setContentOwned (new CONTENTCOMPCLASS(), true);\r\n" " setResizable (true, true);\r\n" "\r\n" " centreWithSize (getWidth(), getHeight());\r\n" @@ -6295,10 +6577,10 @@ static const unsigned char temp_binary_data_37[] = "// This macro generates the main() routine that launches the app.\r\n" "START_JUCE_APPLICATION (APPCLASSNAME)\r\n"; -const char* jucer_MainTemplate_SimpleWindow_cpp = (const char*) temp_binary_data_37; +const char* jucer_MainTemplate_SimpleWindow_cpp = (const char*) temp_binary_data_42; //================== jucer_MainTemplate_Window.cpp ================== -static const unsigned char temp_binary_data_38[] = +static const unsigned char temp_binary_data_43[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -6400,10 +6682,10 @@ static const unsigned char temp_binary_data_38[] = "// This macro generates the main() routine that launches the app.\r\n" "START_JUCE_APPLICATION (APPCLASSNAME)\r\n"; -const char* jucer_MainTemplate_Window_cpp = (const char*) temp_binary_data_38; +const char* jucer_MainTemplate_Window_cpp = (const char*) temp_binary_data_43; //================== jucer_NewComponentTemplate.cpp ================== -static const unsigned char temp_binary_data_39[] = +static const unsigned char temp_binary_data_44[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -6456,10 +6738,10 @@ static const unsigned char temp_binary_data_39[] = "\r\n" "}\r\n"; -const char* jucer_NewComponentTemplate_cpp = (const char*) temp_binary_data_39; +const char* jucer_NewComponentTemplate_cpp = (const char*) temp_binary_data_44; //================== jucer_NewComponentTemplate.h ================== -static const unsigned char temp_binary_data_40[] = +static const unsigned char temp_binary_data_45[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -6490,10 +6772,10 @@ static const unsigned char temp_binary_data_40[] = " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (COMPONENTCLASS)\r\n" "};\r\n"; -const char* jucer_NewComponentTemplate_h = (const char*) temp_binary_data_40; +const char* jucer_NewComponentTemplate_h = (const char*) temp_binary_data_45; //================== jucer_NewCppFileTemplate.cpp ================== -static const unsigned char temp_binary_data_41[] = +static const unsigned char temp_binary_data_46[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -6506,10 +6788,10 @@ static const unsigned char temp_binary_data_41[] = "\r\n" "INCLUDE_CORRESPONDING_HEADER\r\n"; -const char* jucer_NewCppFileTemplate_cpp = (const char*) temp_binary_data_41; +const char* jucer_NewCppFileTemplate_cpp = (const char*) temp_binary_data_46; //================== jucer_NewCppFileTemplate.h ================== -static const unsigned char temp_binary_data_42[] = +static const unsigned char temp_binary_data_47[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -6522,10 +6804,10 @@ static const unsigned char temp_binary_data_42[] = "\r\n" "#pragma once\r\n"; -const char* jucer_NewCppFileTemplate_h = (const char*) temp_binary_data_42; +const char* jucer_NewCppFileTemplate_h = (const char*) temp_binary_data_47; //================== jucer_NewInlineComponentTemplate.h ================== -static const unsigned char temp_binary_data_43[] = +static const unsigned char temp_binary_data_48[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -6588,10 +6870,10 @@ static const unsigned char temp_binary_data_43[] = " JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (COMPONENTCLASS)\r\n" "};\r\n"; -const char* jucer_NewInlineComponentTemplate_h = (const char*) temp_binary_data_43; +const char* jucer_NewInlineComponentTemplate_h = (const char*) temp_binary_data_48; -//================== jucer_OpenGLComponentTemplate.cpp ================== -static const unsigned char temp_binary_data_44[] = +//================== jucer_OpenGLComponentSimpleTemplate.h ================== +static const unsigned char temp_binary_data_49[] = "/*\r\n" " ==============================================================================\r\n" "\r\n" @@ -6600,6 +6882,8 @@ static const unsigned char temp_binary_data_44[] = " ==============================================================================\r\n" "*/\r\n" "\r\n" +"#pragma once\r\n" +"\r\n" "INCLUDE_JUCE\r\n" "\r\n" "//==============================================================================\r\n" @@ -6607,34 +6891,43 @@ static const unsigned char temp_binary_data_44[] = " This component lives inside our window, and this is where you should put all\r\n" " your controls and content.\r\n" "*/\r\n" -"class MainContentComponent : public OpenGLAppComponent\r\n" +"class CONTENTCOMPCLASS : public OpenGLAppComponent\r\n" "{\r\n" "public:\r\n" " //==============================================================================\r\n" -" MainContentComponent()\r\n" +" CONTENTCOMPCLASS()\r\n" " {\r\n" +" // Make sure you set the size of the component after\r\n" +" // you add any child components.\r\n" " setSize (800, 600);\r\n" " }\r\n" "\r\n" -" ~MainContentComponent()\r\n" +" ~CONTENTCOMPCLASS()\r\n" " {\r\n" +" // This shuts down the GL system and stops the rendering calls.\r\n" " shutdownOpenGL();\r\n" " }\r\n" "\r\n" +" //==============================================================================\r\n" " void initialise() override\r\n" " {\r\n" +" // Initialise GL objects for rendering here.\r\n" " }\r\n" "\r\n" " void shutdown() override\r\n" " {\r\n" +" // Free any GL objects created for rendering here.\r\n" " }\r\n" "\r\n" " void render() override\r\n" " {\r\n" +" // This clears the context with a black background.\r\n" " OpenGLHelpers::clear (Colours::black);\r\n" "\r\n" +" // Add your rendering code here...\r\n" " }\r\n" "\r\n" +" //==============================================================================\r\n" " void paint (Graphics& g) override\r\n" " {\r\n" " // You can add your component specific drawing code here!\r\n" @@ -6651,22 +6944,122 @@ static const unsigned char temp_binary_data_44[] = "\r\n" "private:\r\n" " //==============================================================================\r\n" +" // Your private member variables go here...\r\n" "\r\n" -" // private member variables\r\n" "\r\n" +" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS)\r\n" +"};\r\n"; + +const char* jucer_OpenGLComponentSimpleTemplate_h = (const char*) temp_binary_data_49; + +//================== jucer_OpenGLComponentTemplate.cpp ================== +static const unsigned char temp_binary_data_50[] = +"/*\r\n" +" ==============================================================================\r\n" "\r\n" +" This file was auto-generated!\r\n" "\r\n" -" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainContentComponent)\r\n" -"};\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"INCLUDE_CORRESPONDING_HEADER\r\n" +"\r\n" +"//==============================================================================\r\n" +"CONTENTCOMPCLASS::CONTENTCOMPCLASS()\r\n" +"{\r\n" +" // Make sure you set the size of the component after\r\n" +" // you add any child components.\r\n" +" setSize (800, 600);\r\n" +"}\r\n" +"\r\n" +"CONTENTCOMPCLASS::~CONTENTCOMPCLASS()\r\n" +"{\r\n" +" // This shuts down the GL system and stops the rendering calls.\r\n" +" shutdownOpenGL();\r\n" +"}\r\n" +"\r\n" +"//==============================================================================\r\n" +"void CONTENTCOMPCLASS::initialise()\r\n" +"{\r\n" +" // Initialise GL objects for rendering here.\r\n" +"}\r\n" +"\r\n" +"void CONTENTCOMPCLASS::shutdown()\r\n" +"{\r\n" +" // Free any GL objects created for rendering here.\r\n" +"}\r\n" +"\r\n" +"void CONTENTCOMPCLASS::render()\r\n" +"{\r\n" +" // This clears the context with a black background.\r\n" +" OpenGLHelpers::clear (Colours::black);\r\n" +"\r\n" +" // Add your rendering code here...\r\n" +"}\r\n" +"\r\n" +"//==============================================================================\r\n" +"void CONTENTCOMPCLASS::paint (Graphics& g)\r\n" +"{\r\n" +" // You can add your component specific drawing code here!\r\n" +" // This will draw over the top of the openGL background.\r\n" +"}\r\n" "\r\n" +"void CONTENTCOMPCLASS::resized()\r\n" +"{\r\n" +" // This is called when the MainContentComponent is resized.\r\n" +" // If you add any child components, this is where you should\r\n" +" // update their positions.\r\n" +"}\r\n"; + +const char* jucer_OpenGLComponentTemplate_cpp = (const char*) temp_binary_data_50; + +//================== jucer_OpenGLComponentTemplate.h ================== +static const unsigned char temp_binary_data_51[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file was auto-generated!\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#pragma once\r\n" +"\r\n" +"INCLUDE_JUCE\r\n" +"\r\n" +"//==============================================================================\r\n" +"/*\r\n" +" This component lives inside our window, and this is where you should put all\r\n" +" your controls and content.\r\n" +"*/\r\n" +"class CONTENTCOMPCLASS : public OpenGLAppComponent\r\n" +"{\r\n" +"public:\r\n" +" //==============================================================================\r\n" +" CONTENTCOMPCLASS();\r\n" +" ~CONTENTCOMPCLASS();\r\n" "\r\n" -"// (This function is called by the app startup code to create our main component)\r\n" -"Component* createMainContentComponent() { return new MainContentComponent(); }\r\n"; +" //==============================================================================\r\n" +" void initialise() override;\r\n" +" void shutdown() override;\r\n" +" void render() override;\r\n" +"\r\n" +" //==============================================================================\r\n" +" void paint (Graphics& g) override;\r\n" +" void resized() override;\r\n" +"\r\n" +"private:\r\n" +" //==============================================================================\r\n" +" // Your private member variables go here...\r\n" +"\r\n" +"\r\n" +" JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS)\r\n" +"};\r\n"; -const char* jucer_OpenGLComponentTemplate_cpp = (const char*) temp_binary_data_44; +const char* jucer_OpenGLComponentTemplate_h = (const char*) temp_binary_data_51; //================== colourscheme_dark.xml ================== -static const unsigned char temp_binary_data_45[] = +static const unsigned char temp_binary_data_52[] = "\r\n" "\r\n" "\r\n" @@ -6691,10 +7084,10 @@ static const unsigned char temp_binary_data_45[] = " \r\n" "\r\n"; -const char* colourscheme_dark_xml = (const char*) temp_binary_data_45; +const char* colourscheme_dark_xml = (const char*) temp_binary_data_52; //================== colourscheme_light.xml ================== -static const unsigned char temp_binary_data_46[] = +static const unsigned char temp_binary_data_53[] = "\r\n" "\r\n" "\r\n" @@ -6719,10 +7112,10 @@ static const unsigned char temp_binary_data_46[] = " \r\n" "\r\n"; -const char* colourscheme_light_xml = (const char*) temp_binary_data_46; +const char* colourscheme_light_xml = (const char*) temp_binary_data_53; //================== offlinepage.html ================== -static const unsigned char temp_binary_data_47[] = +static const unsigned char temp_binary_data_54[] = "\n" " \n" " \n" @@ -6766,10 +7159,10 @@ static const unsigned char temp_binary_data_47[] = " \n" ""; -const char* offlinepage_html = (const char*) temp_binary_data_47; +const char* offlinepage_html = (const char*) temp_binary_data_54; //================== projucer_EULA.txt ================== -static const unsigned char temp_binary_data_48[] = +static const unsigned char temp_binary_data_55[] = "\r\n" "IMPORTANT NOTICE: PLEASE READ CAREFULLY BEFORE INSTALLING THE SOFTWARE:\r\n" "\r\n" @@ -6933,10 +7326,10 @@ static const unsigned char temp_binary_data_48[] = "\r\n" "10.6. Please note that this License, its subject matter and its formation, are governed by English law. You and we both agree to that the courts of England and Wales will have exclusive jurisdiction.\r\n"; -const char* projucer_EULA_txt = (const char*) temp_binary_data_48; +const char* projucer_EULA_txt = (const char*) temp_binary_data_55; //================== RecentFilesMenuTemplate.nib ================== -static const unsigned char temp_binary_data_49[] = +static const unsigned char temp_binary_data_56[] = { 98,112,108,105,115,116,48,48,212,0,1,0,2,0,3,0,4,0,5,0,6,1,53,1,54,88,36,118,101,114,115,105,111,110,88,36,111,98,106,101,99,116,115,89,36,97,114,99,104,105,118,101,114,84,36,116,111,112,18,0,1,134,160,175,16,74,0,7,0,8,0,31,0,35,0,36,0,42,0,46,0,50, 0,53,0,57,0,74,0,77,0,78,0,86,0,87,0,97,0,112,0,113,0,114,0,119,0,120,0,121,0,124,0,128,0,129,0,132,0,143,0,144,0,145,0,149,0,153,0,162,0,163,0,164,0,169,0,173,0,180,0,181,0,182,0,185,0,192,0,193,0,200,0,201,0,208,0,209,0,216,0,217,0,224,0,225,0,226, 0,229,0,230,0,232,0,249,1,11,1,29,1,30,1,31,1,32,1,33,1,34,1,35,1,36,1,37,1,38,1,39,1,40,1,41,1,42,1,43,1,44,1,47,1,50,85,36,110,117,108,108,219,0,9,0,10,0,11,0,12,0,13,0,14,0,15,0,16,0,17,0,18,0,19,0,20,0,21,0,22,0,23,0,24,0,25,0,26,0,27,0,28,0,29,0, @@ -6973,7 +7366,7 @@ static const unsigned char temp_binary_data_49[] = 7,157,7,159,7,161,7,163,7,165,7,167,7,169,7,171,7,173,7,175,7,177,7,179,7,181,7,190,7,192,7,225,7,227,7,229,7,231,7,233,7,235,7,237,7,239,7,241,7,243,7,245,7,247,7,249,7,251,7,253,7,255,8,2,8,5,8,8,8,11,8,14,8,17,8,20,8,23,8,26,8,29,8,32,8,35,8,38,8, 41,8,44,8,53,8,55,8,56,8,65,8,67,8,68,8,77,8,92,8,97,8,115,8,120,8,134,0,0,0,0,0,0,2,2,0,0,0,0,0,0,1,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,136,0,0 }; -const char* RecentFilesMenuTemplate_nib = (const char*) temp_binary_data_49; +const char* RecentFilesMenuTemplate_nib = (const char*) temp_binary_data_56; const char* getNamedResource (const char*, int&) throw(); @@ -7010,27 +7403,34 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw case 0x52a8dfdf: numBytes = 1859; return wizard_Openfile_svg; case 0x58e2ae48: numBytes = 4551; return wizard_OpenGL_svg; case 0xb1da6f9e: numBytes = 7488; return wizard_StaticLibrary_svg; - case 0x6cf2645e: numBytes = 1887; return jucer_AnimatedComponentTemplate_cpp; - case 0xafccbd3f: numBytes = 3141; return jucer_AudioComponentTemplate_cpp; + case 0xd11e6d35: numBytes = 2037; return jucer_AnimatedComponentSimpleTemplate_h; + case 0x6cf2645e: numBytes = 1482; return jucer_AnimatedComponentTemplate_cpp; + case 0x97b055e3: numBytes = 1153; return jucer_AnimatedComponentTemplate_h; + case 0xfb6f6d96: numBytes = 3146; return jucer_AudioComponentSimpleTemplate_h; + case 0xafccbd3f: numBytes = 2532; return jucer_AudioComponentTemplate_cpp; + case 0x915d7304: numBytes = 1326; return jucer_AudioComponentTemplate_h; case 0x27c5a93a: numBytes = 1310; return jucer_AudioPluginEditorTemplate_cpp; case 0x4d0721bf: numBytes = 938; return jucer_AudioPluginEditorTemplate_h; - case 0x51b49ac5: numBytes = 5638; return jucer_AudioPluginFilterTemplate_cpp; + case 0x51b49ac5: numBytes = 5889; return jucer_AudioPluginFilterTemplate_cpp; case 0x488afa0a: numBytes = 2245; return jucer_AudioPluginFilterTemplate_h; - case 0xabad7041: numBytes = 2151; return jucer_ComponentTemplate_cpp; - case 0xfc72fe86: numBytes = 2064; return jucer_ComponentTemplate_h; - case 0x0b66646c: numBytes = 1029; return jucer_ContentCompTemplate_cpp; - case 0x6fa10171: numBytes = 886; return jucer_ContentCompTemplate_h; + case 0xabad7041: numBytes = 2116; return jucer_ComponentTemplate_cpp; + case 0xfc72fe86: numBytes = 2029; return jucer_ComponentTemplate_h; + case 0x1657b643: numBytes = 1632; return jucer_ContentCompSimpleTemplate_h; + case 0x0b66646c: numBytes = 1109; return jucer_ContentCompTemplate_cpp; + case 0x6fa10171: numBytes = 1023; return jucer_ContentCompTemplate_h; case 0x28d496ad: numBytes = 1208; return jucer_InlineComponentTemplate_h; case 0x8905395b: numBytes = 470; return jucer_MainConsoleAppTemplate_cpp; case 0x5e5ea047: numBytes = 1992; return jucer_MainTemplate_NoWindow_cpp; - case 0xda2391f8: numBytes = 4001; return jucer_MainTemplate_SimpleWindow_cpp; + case 0xda2391f8: numBytes = 3951; return jucer_MainTemplate_SimpleWindow_cpp; case 0x400bc026: numBytes = 3913; return jucer_MainTemplate_Window_cpp; case 0xf4842835: numBytes = 1436; return jucer_NewComponentTemplate_cpp; case 0xe7bf237a: numBytes = 610; return jucer_NewComponentTemplate_h; case 0x02a2a077: numBytes = 262; return jucer_NewCppFileTemplate_cpp; case 0x0842c43c: numBytes = 246; return jucer_NewCppFileTemplate_h; case 0x36e634a1: numBytes = 1635; return jucer_NewInlineComponentTemplate_h; - case 0x7fbac252: numBytes = 1716; return jucer_OpenGLComponentTemplate_cpp; + case 0x6bdeb129: numBytes = 2126; return jucer_OpenGLComponentSimpleTemplate_h; + case 0x7fbac252: numBytes = 1555; return jucer_OpenGLComponentTemplate_cpp; + case 0x491fa0d7: numBytes = 1215; return jucer_OpenGLComponentTemplate_h; case 0x763d39dc: numBytes = 1050; return colourscheme_dark_xml; case 0xe8b08520: numBytes = 1050; return colourscheme_light_xml; case 0xf11580d8: numBytes = 1155; return offlinepage_html; @@ -7069,14 +7469,19 @@ const char* namedResourceList[] = "wizard_Openfile_svg", "wizard_OpenGL_svg", "wizard_StaticLibrary_svg", + "jucer_AnimatedComponentSimpleTemplate_h", "jucer_AnimatedComponentTemplate_cpp", + "jucer_AnimatedComponentTemplate_h", + "jucer_AudioComponentSimpleTemplate_h", "jucer_AudioComponentTemplate_cpp", + "jucer_AudioComponentTemplate_h", "jucer_AudioPluginEditorTemplate_cpp", "jucer_AudioPluginEditorTemplate_h", "jucer_AudioPluginFilterTemplate_cpp", "jucer_AudioPluginFilterTemplate_h", "jucer_ComponentTemplate_cpp", "jucer_ComponentTemplate_h", + "jucer_ContentCompSimpleTemplate_h", "jucer_ContentCompTemplate_cpp", "jucer_ContentCompTemplate_h", "jucer_InlineComponentTemplate_h", @@ -7089,7 +7494,9 @@ const char* namedResourceList[] = "jucer_NewCppFileTemplate_cpp", "jucer_NewCppFileTemplate_h", "jucer_NewInlineComponentTemplate_h", + "jucer_OpenGLComponentSimpleTemplate_h", "jucer_OpenGLComponentTemplate_cpp", + "jucer_OpenGLComponentTemplate_h", "colourscheme_dark_xml", "colourscheme_light_xml", "offlinepage_html", diff --git a/extras/Projucer/JuceLibraryCode/BinaryData.h b/extras/Projucer/JuceLibraryCode/BinaryData.h index 0283c5e376..5617a5f986 100644 --- a/extras/Projucer/JuceLibraryCode/BinaryData.h +++ b/extras/Projucer/JuceLibraryCode/BinaryData.h @@ -80,11 +80,23 @@ namespace BinaryData extern const char* wizard_StaticLibrary_svg; const int wizard_StaticLibrary_svgSize = 7488; + extern const char* jucer_AnimatedComponentSimpleTemplate_h; + const int jucer_AnimatedComponentSimpleTemplate_hSize = 2037; + extern const char* jucer_AnimatedComponentTemplate_cpp; - const int jucer_AnimatedComponentTemplate_cppSize = 1887; + const int jucer_AnimatedComponentTemplate_cppSize = 1482; + + extern const char* jucer_AnimatedComponentTemplate_h; + const int jucer_AnimatedComponentTemplate_hSize = 1153; + + extern const char* jucer_AudioComponentSimpleTemplate_h; + const int jucer_AudioComponentSimpleTemplate_hSize = 3146; extern const char* jucer_AudioComponentTemplate_cpp; - const int jucer_AudioComponentTemplate_cppSize = 3141; + const int jucer_AudioComponentTemplate_cppSize = 2532; + + extern const char* jucer_AudioComponentTemplate_h; + const int jucer_AudioComponentTemplate_hSize = 1326; extern const char* jucer_AudioPluginEditorTemplate_cpp; const int jucer_AudioPluginEditorTemplate_cppSize = 1310; @@ -93,22 +105,25 @@ namespace BinaryData const int jucer_AudioPluginEditorTemplate_hSize = 938; extern const char* jucer_AudioPluginFilterTemplate_cpp; - const int jucer_AudioPluginFilterTemplate_cppSize = 5638; + const int jucer_AudioPluginFilterTemplate_cppSize = 5889; extern const char* jucer_AudioPluginFilterTemplate_h; const int jucer_AudioPluginFilterTemplate_hSize = 2245; extern const char* jucer_ComponentTemplate_cpp; - const int jucer_ComponentTemplate_cppSize = 2151; + const int jucer_ComponentTemplate_cppSize = 2116; extern const char* jucer_ComponentTemplate_h; - const int jucer_ComponentTemplate_hSize = 2064; + const int jucer_ComponentTemplate_hSize = 2029; + + extern const char* jucer_ContentCompSimpleTemplate_h; + const int jucer_ContentCompSimpleTemplate_hSize = 1632; extern const char* jucer_ContentCompTemplate_cpp; - const int jucer_ContentCompTemplate_cppSize = 1029; + const int jucer_ContentCompTemplate_cppSize = 1109; extern const char* jucer_ContentCompTemplate_h; - const int jucer_ContentCompTemplate_hSize = 886; + const int jucer_ContentCompTemplate_hSize = 1023; extern const char* jucer_InlineComponentTemplate_h; const int jucer_InlineComponentTemplate_hSize = 1208; @@ -120,7 +135,7 @@ namespace BinaryData const int jucer_MainTemplate_NoWindow_cppSize = 1992; extern const char* jucer_MainTemplate_SimpleWindow_cpp; - const int jucer_MainTemplate_SimpleWindow_cppSize = 4001; + const int jucer_MainTemplate_SimpleWindow_cppSize = 3951; extern const char* jucer_MainTemplate_Window_cpp; const int jucer_MainTemplate_Window_cppSize = 3913; @@ -140,8 +155,14 @@ namespace BinaryData extern const char* jucer_NewInlineComponentTemplate_h; const int jucer_NewInlineComponentTemplate_hSize = 1635; + extern const char* jucer_OpenGLComponentSimpleTemplate_h; + const int jucer_OpenGLComponentSimpleTemplate_hSize = 2126; + extern const char* jucer_OpenGLComponentTemplate_cpp; - const int jucer_OpenGLComponentTemplate_cppSize = 1716; + const int jucer_OpenGLComponentTemplate_cppSize = 1555; + + extern const char* jucer_OpenGLComponentTemplate_h; + const int jucer_OpenGLComponentTemplate_hSize = 1215; extern const char* colourscheme_dark_xml; const int colourscheme_dark_xmlSize = 1050; @@ -162,7 +183,7 @@ namespace BinaryData extern const char* namedResourceList[]; // Number of elements in the namedResourceList array. - const int namedResourceListSize = 50; + const int namedResourceListSize = 57; // If you provide the name of one of the binary resource variables above, this function will // return the corresponding data and its size (or a null pointer if the name isn't found). diff --git a/extras/Projucer/Projucer.jucer b/extras/Projucer/Projucer.jucer index d158be9b1d..ac6f825ff3 100644 --- a/extras/Projucer/Projucer.jucer +++ b/extras/Projucer/Projucer.jucer @@ -190,10 +190,18 @@ file="Source/BinaryData/Icons/wizard_StaticLibrary.svg"/> + + + + + + + diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_AnimatedComponentSimpleTemplate.h b/extras/Projucer/Source/BinaryData/Templates/jucer_AnimatedComponentSimpleTemplate.h new file mode 100644 index 0000000000..7c638200e6 --- /dev/null +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_AnimatedComponentSimpleTemplate.h @@ -0,0 +1,64 @@ +/* + ============================================================================== + + This file was auto-generated! + + ============================================================================== +*/ + +#pragma once + +INCLUDE_JUCE + +//============================================================================== +/* + This component lives inside our window, and this is where you should put all + your controls and content. +*/ +class CONTENTCOMPCLASS : public AnimatedAppComponent +{ +public: + //============================================================================== + CONTENTCOMPCLASS() + { + // Make sure you set the size of the component after + // you add any child components. + setSize (800, 600); + setFramesPerSecond (60); // This sets the frequency of the update calls. + } + + ~CONTENTCOMPCLASS() + { + } + + //============================================================================== + void update() override + { + // This function is called at the frequency specified by the setFramesPerSecond() call + // in the constructor. You can use it to update counters, animate values, etc. + } + + //============================================================================== + void paint (Graphics& g) override + { + // (Our component is opaque, so we must completely fill the background with a solid colour) + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); + + // You can add your drawing code here! + } + + void resized() override + { + // This is called when the MainContentComponent is resized. + // If you add any child components, this is where you should + // update their positions. + } + + +private: + //============================================================================== + // Your private member variables go here... + + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS) +}; diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_AnimatedComponentTemplate.cpp b/extras/Projucer/Source/BinaryData/Templates/jucer_AnimatedComponentTemplate.cpp index 0c9f65808d..2fd8c45356 100644 --- a/extras/Projucer/Source/BinaryData/Templates/jucer_AnimatedComponentTemplate.cpp +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_AnimatedComponentTemplate.cpp @@ -6,59 +6,40 @@ ============================================================================== */ -INCLUDE_JUCE +INCLUDE_CORRESPONDING_HEADER //============================================================================== -/* - This component lives inside our window, and this is where you should put all - your controls and content. -*/ -class MainContentComponent : public AnimatedAppComponent +CONTENTCOMPCLASS::CONTENTCOMPCLASS() { -public: - //============================================================================== - MainContentComponent() - { - setSize (800, 600); - setFramesPerSecond (60); - } - - ~MainContentComponent() - { - } - - void update() override - { - // This function is called at the frequency specified by the setFramesPerSecond() call - // in the constructor. You can use it to update counters, animate values, etc. - } - - void paint (Graphics& g) override - { - // (Our component is opaque, so we must completely fill the background with a solid colour) - g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); - - // You can add your drawing code here! - } - - void resized() override - { - // This is called when the MainContentComponent is resized. - // If you add any child components, this is where you should - // update their positions. - } - - -private: - //============================================================================== - - // Your private member variables go here... + // Make sure you set the size of the component after + // you add any child components. + setSize (800, 600); + setFramesPerSecond (60); // This sets the frequency of the update calls. +} +CONTENTCOMPCLASS::~CONTENTCOMPCLASS() +{ +} +//============================================================================== +void CONTENTCOMPCLASS::update() +{ + // This function is called at the frequency specified by the setFramesPerSecond() call + // in the constructor. You can use it to update counters, animate values, etc. +} - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainContentComponent) -}; +//============================================================================== +void CONTENTCOMPCLASS::paint (Graphics& g) +{ + // (Our component is opaque, so we must completely fill the background with a solid colour) + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); + // You can add your drawing code here! +} -// (This function is called by the app startup code to create our main component) -Component* createMainContentComponent() { return new MainContentComponent(); } +void CONTENTCOMPCLASS::resized() +{ + // This is called when the MainContentComponent is resized. + // If you add any child components, this is where you should + // update their positions. +} diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_AnimatedComponentTemplate.h b/extras/Projucer/Source/BinaryData/Templates/jucer_AnimatedComponentTemplate.h new file mode 100644 index 0000000000..562380867c --- /dev/null +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_AnimatedComponentTemplate.h @@ -0,0 +1,38 @@ +/* + ============================================================================== + + This file was auto-generated! + + ============================================================================== +*/ + +#pragma once + +INCLUDE_JUCE + +//============================================================================== +/* + This component lives inside our window, and this is where you should put all + your controls and content. +*/ +class CONTENTCOMPCLASS : public AnimatedAppComponent +{ +public: + //============================================================================== + CONTENTCOMPCLASS(); + ~CONTENTCOMPCLASS(); + + //============================================================================== + void update() override; + + //============================================================================== + void paint (Graphics& g) override; + void resized() override; + +private: + //============================================================================== + // Your private member variables go here... + + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS) +}; diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_AudioComponentSimpleTemplate.h b/extras/Projucer/Source/BinaryData/Templates/jucer_AudioComponentSimpleTemplate.h new file mode 100644 index 0000000000..8c4d6d77e1 --- /dev/null +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_AudioComponentSimpleTemplate.h @@ -0,0 +1,92 @@ +/* + ============================================================================== + + This file was auto-generated! + + ============================================================================== +*/ + +#pragma once + +INCLUDE_JUCE + +//============================================================================== +/* + This component lives inside our window, and this is where you should put all + your controls and content. +*/ +class CONTENTCOMPCLASS : public AudioAppComponent +{ +public: + //============================================================================== + CONTENTCOMPCLASS() + { + // Make sure you set the size of the component after + // you add any child components. + setSize (800, 600); + + // specify the number of input and output channels that we want to open + setAudioChannels (2, 2); + } + + ~CONTENTCOMPCLASS() + { + // This shuts down the audio device and clears the audio source. + shutdownAudio(); + } + + //============================================================================== + void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override + { + // This function will be called when the audio device is started, or when + // its settings (i.e. sample rate, block size, etc) are changed. + + // You can use this function to initialise any resources you might need, + // but be careful - it will be called on the audio thread, not the GUI thread. + + // For more details, see the help for AudioProcessor::prepareToPlay() + } + + void getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill) override + { + // Your audio-processing code goes here! + + // For more details, see the help for AudioProcessor::getNextAudioBlock() + + // Right now we are not producing any data, in which case we need to clear the buffer + // (to prevent the output of random noise) + bufferToFill.clearActiveBufferRegion(); + } + + void releaseResources() override + { + // This will be called when the audio device stops, or when it is being + // restarted due to a setting change. + + // For more details, see the help for AudioProcessor::releaseResources() + } + + //============================================================================== + void paint (Graphics& g) override + { + // (Our component is opaque, so we must completely fill the background with a solid colour) + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); + + // You can add your drawing code here! + } + + void resized() override + { + // This is called when the MainContentComponent is resized. + // If you add any child components, this is where you should + // update their positions. + } + + +private: + //============================================================================== + // Your private member variables go here... + + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS) +}; diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_AudioComponentTemplate.cpp b/extras/Projucer/Source/BinaryData/Templates/jucer_AudioComponentTemplate.cpp index 86d2161ebd..0d2e1a349d 100644 --- a/extras/Projucer/Source/BinaryData/Templates/jucer_AudioComponentTemplate.cpp +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_AudioComponentTemplate.cpp @@ -6,87 +6,68 @@ ============================================================================== */ -INCLUDE_JUCE +INCLUDE_CORRESPONDING_HEADER //============================================================================== -/* - This component lives inside our window, and this is where you should put all - your controls and content. -*/ -class MainContentComponent : public AudioAppComponent +CONTENTCOMPCLASS::CONTENTCOMPCLASS() { -public: - //============================================================================== - MainContentComponent() - { - setSize (800, 600); - - // specify the number of input and output channels that we want to open - setAudioChannels (2, 2); - } - - ~MainContentComponent() - { - shutdownAudio(); - } - - //============================================================================== - void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override - { - // This function will be called when the audio device is started, or when - // its settings (i.e. sample rate, block size, etc) are changed. - - // You can use this function to initialise any resources you might need, - // but be careful - it will be called on the audio thread, not the GUI thread. - - // For more details, see the help for AudioProcessor::prepareToPlay() - } - - void getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill) override - { - // Your audio-processing code goes here! - - // For more details, see the help for AudioProcessor::getNextAudioBlock() + // Make sure you set the size of the component after + // you add any child components. + setSize (800, 600); - // Right now we are not producing any data, in which case we need to clear the buffer - // (to prevent the output of random noise) - bufferToFill.clearActiveBufferRegion(); - } + // specify the number of input and output channels that we want to open + setAudioChannels (2, 2); +} - void releaseResources() override - { - // This will be called when the audio device stops, or when it is being - // restarted due to a setting change. +CONTENTCOMPCLASS::~CONTENTCOMPCLASS() +{ + // This shuts down the audio device and clears the audio source. + shutdownAudio(); +} - // For more details, see the help for AudioProcessor::releaseResources() - } +//============================================================================== +void CONTENTCOMPCLASS::prepareToPlay (int samplesPerBlockExpected, double sampleRate) +{ + // This function will be called when the audio device is started, or when + // its settings (i.e. sample rate, block size, etc) are changed. - //============================================================================== - void paint (Graphics& g) override - { - // (Our component is opaque, so we must completely fill the background with a solid colour) - g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); + // You can use this function to initialise any resources you might need, + // but be careful - it will be called on the audio thread, not the GUI thread. - // You can add your drawing code here! - } + // For more details, see the help for AudioProcessor::prepareToPlay() +} - void resized() override - { - // This is called when the MainContentComponent is resized. - // If you add any child components, this is where you should - // update their positions. - } +void CONTENTCOMPCLASS::getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill) +{ + // Your audio-processing code goes here! + // For more details, see the help for AudioProcessor::getNextAudioBlock() -private: - //============================================================================== + // Right now we are not producing any data, in which case we need to clear the buffer + // (to prevent the output of random noise) + bufferToFill.clearActiveBufferRegion(); +} - // Your private member variables go here... +void CONTENTCOMPCLASS::releaseResources() +{ + // This will be called when the audio device stops, or when it is being + // restarted due to a setting change. + // For more details, see the help for AudioProcessor::releaseResources() +} - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainContentComponent) -}; +//============================================================================== +void CONTENTCOMPCLASS::paint (Graphics& g) +{ + // (Our component is opaque, so we must completely fill the background with a solid colour) + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); + // You can add your drawing code here! +} -// (This function is called by the app startup code to create our main component) -Component* createMainContentComponent() { return new MainContentComponent(); } +void CONTENTCOMPCLASS::resized() +{ + // This is called when the MainContentComponent is resized. + // If you add any child components, this is where you should + // update their positions. +} diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_AudioComponentTemplate.h b/extras/Projucer/Source/BinaryData/Templates/jucer_AudioComponentTemplate.h new file mode 100644 index 0000000000..9c2c7c7c66 --- /dev/null +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_AudioComponentTemplate.h @@ -0,0 +1,40 @@ +/* + ============================================================================== + + This file was auto-generated! + + ============================================================================== +*/ + +#pragma once + +INCLUDE_JUCE + +//============================================================================== +/* + This component lives inside our window, and this is where you should put all + your controls and content. +*/ +class CONTENTCOMPCLASS : public AudioAppComponent +{ +public: + //============================================================================== + CONTENTCOMPCLASS(); + ~CONTENTCOMPCLASS(); + + //============================================================================== + void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override; + void getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill) override; + void releaseResources() override; + + //============================================================================== + void paint (Graphics& g) override; + void resized() override; + +private: + //============================================================================== + // Your private member variables go here... + + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS) +}; diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_AudioPluginFilterTemplate.cpp b/extras/Projucer/Source/BinaryData/Templates/jucer_AudioPluginFilterTemplate.cpp index 984c6bb56a..03ee0532d2 100644 --- a/extras/Projucer/Source/BinaryData/Templates/jucer_AudioPluginFilterTemplate.cpp +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_AudioPluginFilterTemplate.cpp @@ -141,14 +141,18 @@ void FILTERCLASSNAME::processBlock (AudioBuffer& buffer, MidiBuffer& midi // This is here to avoid people getting screaming feedback // when they first compile a plugin, but obviously you don't need to keep // this code if your algorithm always overwrites all the output channels. - for (int i = totalNumInputChannels; i < totalNumOutputChannels; ++i) + for (auto i = totalNumInputChannels; i < totalNumOutputChannels; ++i) buffer.clear (i, 0, buffer.getNumSamples()); // This is the place where you'd normally do the guts of your plugin's // audio processing... + // Make sure to reset the state if your inner loop is processing + // the samples and the outer loop is handling the channels. + // Alternatively, you can process the samples with the channels + // interleaved by keeping the same state. for (int channel = 0; channel < totalNumInputChannels; ++channel) { - float* channelData = buffer.getWritePointer (channel); + auto* channelData = buffer.getWritePointer (channel); // ..do something to the data... } diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_ComponentTemplate.cpp b/extras/Projucer/Source/BinaryData/Templates/jucer_ComponentTemplate.cpp index d719a78001..4f2f6413e8 100644 --- a/extras/Projucer/Source/BinaryData/Templates/jucer_ComponentTemplate.cpp +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_ComponentTemplate.cpp @@ -11,8 +11,8 @@ ------------------------------------------------------------------------------ - The Projucer is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright (c) 2015 - ROLI Ltd. + The Projucer is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. ============================================================================== */ diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_ComponentTemplate.h b/extras/Projucer/Source/BinaryData/Templates/jucer_ComponentTemplate.h index 417e8b72d3..e41ee60a95 100644 --- a/extras/Projucer/Source/BinaryData/Templates/jucer_ComponentTemplate.h +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_ComponentTemplate.h @@ -11,8 +11,8 @@ ------------------------------------------------------------------------------ - The Projucer is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright (c) 2015 - ROLI Ltd. + The Projucer is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. ============================================================================== */ diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_ContentCompSimpleTemplate.h b/extras/Projucer/Source/BinaryData/Templates/jucer_ContentCompSimpleTemplate.h new file mode 100644 index 0000000000..a7ad74b3b9 --- /dev/null +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_ContentCompSimpleTemplate.h @@ -0,0 +1,56 @@ +/* + ============================================================================== + + This file was auto-generated! + + ============================================================================== +*/ + +#pragma once + +INCLUDE_JUCE + +//============================================================================== +/* + This component lives inside our window, and this is where you should put all + your controls and content. +*/ +class CONTENTCOMPCLASS : public Component +{ +public: + //============================================================================== + CONTENTCOMPCLASS() + { + setSize (600, 400); + } + + ~CONTENTCOMPCLASS() + { + } + + //============================================================================== + void paint (Graphics&) override + { + // (Our component is opaque, so we must completely fill the background with a solid colour) + g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); + + g.setFont (Font (16.0f)); + g.setColour (Colours::white); + g.drawText ("Hello World!", getLocalBounds(), Justification::centred, true); + } + + void resized() override + { + // This is called when the CONTENTCOMPCLASS is resized. + // If you add any child components, this is where you should + // update their positions. + } + + +private: + //============================================================================== + // Your private member variables go here... + + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS) +}; diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_ContentCompTemplate.cpp b/extras/Projucer/Source/BinaryData/Templates/jucer_ContentCompTemplate.cpp index 030e4b6965..5a77487443 100644 --- a/extras/Projucer/Source/BinaryData/Templates/jucer_ContentCompTemplate.cpp +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_ContentCompTemplate.cpp @@ -8,7 +8,6 @@ INCLUDE_CORRESPONDING_HEADER - //============================================================================== CONTENTCOMPCLASS::CONTENTCOMPCLASS() { @@ -19,6 +18,7 @@ CONTENTCOMPCLASS::~CONTENTCOMPCLASS() { } +//============================================================================== void CONTENTCOMPCLASS::paint (Graphics& g) { // (Our component is opaque, so we must completely fill the background with a solid colour) diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_ContentCompTemplate.h b/extras/Projucer/Source/BinaryData/Templates/jucer_ContentCompTemplate.h index 95c56e99e1..85579863ad 100644 --- a/extras/Projucer/Source/BinaryData/Templates/jucer_ContentCompTemplate.h +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_ContentCompTemplate.h @@ -10,7 +10,6 @@ INCLUDE_JUCE - //============================================================================== /* This component lives inside our window, and this is where you should put all @@ -23,10 +22,14 @@ public: CONTENTCOMPCLASS(); ~CONTENTCOMPCLASS(); + //============================================================================== void paint (Graphics&) override; void resized() override; private: //============================================================================== + // Your private member variables go here... + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS) }; diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_MainTemplate_SimpleWindow.cpp b/extras/Projucer/Source/BinaryData/Templates/jucer_MainTemplate_SimpleWindow.cpp index f26eb06ab3..eb8de9c81d 100644 --- a/extras/Projucer/Source/BinaryData/Templates/jucer_MainTemplate_SimpleWindow.cpp +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_MainTemplate_SimpleWindow.cpp @@ -10,8 +10,6 @@ APPHEADERS -Component* createMainContentComponent(); - //============================================================================== class APPCLASSNAME : public JUCEApplication { @@ -67,7 +65,7 @@ public: DocumentWindow::allButtons) { setUsingNativeTitleBar (true); - setContentOwned (createMainContentComponent(), true); + setContentOwned (new CONTENTCOMPCLASS(), true); setResizable (true, true); centreWithSize (getWidth(), getHeight()); diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_OpenGLComponentSimpleTemplate.h b/extras/Projucer/Source/BinaryData/Templates/jucer_OpenGLComponentSimpleTemplate.h new file mode 100644 index 0000000000..fb3c777471 --- /dev/null +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_OpenGLComponentSimpleTemplate.h @@ -0,0 +1,75 @@ +/* + ============================================================================== + + This file was auto-generated! + + ============================================================================== +*/ + +#pragma once + +INCLUDE_JUCE + +//============================================================================== +/* + This component lives inside our window, and this is where you should put all + your controls and content. +*/ +class CONTENTCOMPCLASS : public OpenGLAppComponent +{ +public: + //============================================================================== + CONTENTCOMPCLASS() + { + // Make sure you set the size of the component after + // you add any child components. + setSize (800, 600); + } + + ~CONTENTCOMPCLASS() + { + // This shuts down the GL system and stops the rendering calls. + shutdownOpenGL(); + } + + //============================================================================== + void initialise() override + { + // Initialise GL objects for rendering here. + } + + void shutdown() override + { + // Free any GL objects created for rendering here. + } + + void render() override + { + // This clears the context with a black background. + OpenGLHelpers::clear (Colours::black); + + // Add your rendering code here... + } + + //============================================================================== + void paint (Graphics& g) override + { + // You can add your component specific drawing code here! + // This will draw over the top of the openGL background. + } + + void resized() override + { + // This is called when the MainContentComponent is resized. + // If you add any child components, this is where you should + // update their positions. + } + + +private: + //============================================================================== + // Your private member variables go here... + + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS) +}; diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_OpenGLComponentTemplate.cpp b/extras/Projucer/Source/BinaryData/Templates/jucer_OpenGLComponentTemplate.cpp index 1b6ff4aa7e..1fcfe8b253 100644 --- a/extras/Projucer/Source/BinaryData/Templates/jucer_OpenGLComponentTemplate.cpp +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_OpenGLComponentTemplate.cpp @@ -6,65 +6,51 @@ ============================================================================== */ -INCLUDE_JUCE +INCLUDE_CORRESPONDING_HEADER //============================================================================== -/* - This component lives inside our window, and this is where you should put all - your controls and content. -*/ -class MainContentComponent : public OpenGLAppComponent +CONTENTCOMPCLASS::CONTENTCOMPCLASS() { -public: - //============================================================================== - MainContentComponent() - { - setSize (800, 600); - } - - ~MainContentComponent() - { - shutdownOpenGL(); - } - - void initialise() override - { - } - - void shutdown() override - { - } - - void render() override - { - OpenGLHelpers::clear (Colours::black); - - } - - void paint (Graphics& g) override - { - // You can add your component specific drawing code here! - // This will draw over the top of the openGL background. - } - - void resized() override - { - // This is called when the MainContentComponent is resized. - // If you add any child components, this is where you should - // update their positions. - } + // Make sure you set the size of the component after + // you add any child components. + setSize (800, 600); +} +CONTENTCOMPCLASS::~CONTENTCOMPCLASS() +{ + // This shuts down the GL system and stops the rendering calls. + shutdownOpenGL(); +} -private: - //============================================================================== - - // private member variables +//============================================================================== +void CONTENTCOMPCLASS::initialise() +{ + // Initialise GL objects for rendering here. +} +void CONTENTCOMPCLASS::shutdown() +{ + // Free any GL objects created for rendering here. +} +void CONTENTCOMPCLASS::render() +{ + // This clears the context with a black background. + OpenGLHelpers::clear (Colours::black); - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainContentComponent) -}; + // Add your rendering code here... +} +//============================================================================== +void CONTENTCOMPCLASS::paint (Graphics& g) +{ + // You can add your component specific drawing code here! + // This will draw over the top of the openGL background. +} -// (This function is called by the app startup code to create our main component) -Component* createMainContentComponent() { return new MainContentComponent(); } +void CONTENTCOMPCLASS::resized() +{ + // This is called when the MainContentComponent is resized. + // If you add any child components, this is where you should + // update their positions. +} diff --git a/extras/Projucer/Source/BinaryData/Templates/jucer_OpenGLComponentTemplate.h b/extras/Projucer/Source/BinaryData/Templates/jucer_OpenGLComponentTemplate.h new file mode 100644 index 0000000000..b7d256210f --- /dev/null +++ b/extras/Projucer/Source/BinaryData/Templates/jucer_OpenGLComponentTemplate.h @@ -0,0 +1,40 @@ +/* + ============================================================================== + + This file was auto-generated! + + ============================================================================== +*/ + +#pragma once + +INCLUDE_JUCE + +//============================================================================== +/* + This component lives inside our window, and this is where you should put all + your controls and content. +*/ +class CONTENTCOMPCLASS : public OpenGLAppComponent +{ +public: + //============================================================================== + CONTENTCOMPCLASS(); + ~CONTENTCOMPCLASS(); + + //============================================================================== + void initialise() override; + void shutdown() override; + void render() override; + + //============================================================================== + void paint (Graphics& g) override; + void resized() override; + +private: + //============================================================================== + // Your private member variables go here... + + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CONTENTCOMPCLASS) +}; diff --git a/extras/Projucer/Source/Wizards/jucer_ProjectWizard_Animated.h b/extras/Projucer/Source/Wizards/jucer_ProjectWizard_Animated.h index c26c02a362..599c075cfd 100644 --- a/extras/Projucer/Source/Wizards/jucer_ProjectWizard_Animated.h +++ b/extras/Projucer/Source/Wizards/jucer_ProjectWizard_Animated.h @@ -36,6 +36,26 @@ struct AnimatedAppWizard : public NewProjectWizard String getDescription() const override { return TRANS("Creates an application which draws an animated graphical display."); } const char* getIcon() const override { return BinaryData::wizard_AnimatedApp_svg; } + StringArray getFileCreationOptions() override + { + return { "Create header and implementation files", + "Create header file only" }; + } + + Result processResultsFromSetupItems (WizardComp& setupComp) override + { + createCppFile = false; + + switch (setupComp.getFileCreationComboID()) + { + case 0: createCppFile = true; break; + case 1: break; + default: jassertfalse; break; + } + + return Result::ok(); + } + bool initialiseProject (Project& project) override { createSourceFolder(); @@ -43,7 +63,7 @@ struct AnimatedAppWizard : public NewProjectWizard File mainCppFile = getSourceFilesFolder().getChildFile ("Main.cpp"); File contentCompCpp = getSourceFilesFolder().getChildFile ("MainComponent.cpp"); File contentCompH = contentCompCpp.withFileExtension (".h"); - String contentCompName = "MainContentComponent"; + String contentCompName = "MainComponent"; project.setProjectType (ProjectType_GUIApp::getTypeName()); @@ -54,14 +74,31 @@ struct AnimatedAppWizard : public NewProjectWizard String appHeaders (CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), mainCppFile)); // create main window - String windowCpp = project.getFileTemplate ("jucer_AnimatedComponentTemplate_cpp") - .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), contentCompCpp), false); + appHeaders << newLine << CodeHelpers::createIncludeStatement (contentCompH, mainCppFile); + + String windowH = project.getFileTemplate (createCppFile ? "jucer_AnimatedComponentTemplate_h" + : "jucer_AnimatedComponentSimpleTemplate_h") + .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), contentCompH), false) + .replace ("CONTENTCOMPCLASS", contentCompName, false) + .replace ("HEADERGUARD", CodeHelpers::makeHeaderGuardName (contentCompH), false); - if (! FileHelpers::overwriteFileWithNewDataIfDifferent (contentCompCpp, windowCpp)) - failedFiles.add (contentCompCpp.getFullPathName()); + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (contentCompH, windowH)) + failedFiles.add (contentCompH.getFullPathName()); - sourceGroup.addFileAtIndex (contentCompCpp, -1, true); + sourceGroup.addFileAtIndex (contentCompH, -1, false); + if (createCppFile) + { + String windowCpp = project.getFileTemplate ("jucer_AnimatedComponentTemplate_cpp") + .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), contentCompCpp), false) + .replace ("INCLUDE_CORRESPONDING_HEADER", CodeHelpers::createIncludeStatement (contentCompH, contentCompCpp), false) + .replace ("CONTENTCOMPCLASS", contentCompName, false); + + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (contentCompCpp, windowCpp)) + failedFiles.add (contentCompCpp.getFullPathName()); + + sourceGroup.addFileAtIndex (contentCompCpp, -1, true); + } // create main cpp String mainCpp = project.getFileTemplate ("jucer_MainTemplate_SimpleWindow_cpp") @@ -79,5 +116,8 @@ struct AnimatedAppWizard : public NewProjectWizard return true; } +private: + bool createCppFile; + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AnimatedAppWizard) }; diff --git a/extras/Projucer/Source/Wizards/jucer_ProjectWizard_AudioApp.h b/extras/Projucer/Source/Wizards/jucer_ProjectWizard_AudioApp.h index c0e01eeb70..8df9cb6dfb 100644 --- a/extras/Projucer/Source/Wizards/jucer_ProjectWizard_AudioApp.h +++ b/extras/Projucer/Source/Wizards/jucer_ProjectWizard_AudioApp.h @@ -36,6 +36,26 @@ struct AudioAppWizard : public NewProjectWizard String getDescription() const override { return TRANS("Creates a JUCE application with a single window component and audio and MIDI in/out functions."); } const char* getIcon() const override { return BinaryData::wizard_AudioApp_svg; } + StringArray getFileCreationOptions() override + { + return { "Create header and implementation files", + "Create header file only" }; + } + + Result processResultsFromSetupItems (WizardComp& setupComp) override + { + createCppFile = false; + + switch (setupComp.getFileCreationComboID()) + { + case 0: createCppFile = true; break; + case 1: break; + default: jassertfalse; break; + } + + return Result::ok(); + } + bool initialiseProject (Project& project) override { createSourceFolder(); @@ -43,7 +63,7 @@ struct AudioAppWizard : public NewProjectWizard File mainCppFile = getSourceFilesFolder().getChildFile ("Main.cpp"); File contentCompCpp = getSourceFilesFolder().getChildFile ("MainComponent.cpp"); File contentCompH = contentCompCpp.withFileExtension (".h"); - String contentCompName = "MainContentComponent"; + String contentCompName = "MainComponent"; project.setProjectType (ProjectType_GUIApp::getTypeName()); @@ -54,15 +74,34 @@ struct AudioAppWizard : public NewProjectWizard String appHeaders (CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), mainCppFile)); // create main window - String windowCpp = project.getFileTemplate ("jucer_AudioComponentTemplate_cpp") - .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), contentCompCpp), false); + appHeaders << newLine << CodeHelpers::createIncludeStatement (contentCompH, mainCppFile); - if (! FileHelpers::overwriteFileWithNewDataIfDifferent (contentCompCpp, windowCpp)) - failedFiles.add (contentCompCpp.getFullPathName()); + String windowH = project.getFileTemplate (createCppFile ? "jucer_AudioComponentTemplate_h" + : "jucer_AudioComponentSimpleTemplate_h") + .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), contentCompH), false) + .replace ("CONTENTCOMPCLASS", contentCompName, false) + .replace ("HEADERGUARD", CodeHelpers::makeHeaderGuardName (contentCompH), false); + + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (contentCompH, windowH)) + failedFiles.add (contentCompH.getFullPathName()); + + sourceGroup.addFileAtIndex (contentCompH, -1, false); + + if (createCppFile) + { + String windowCpp = project.getFileTemplate ("jucer_AudioComponentTemplate_cpp") + .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), contentCompCpp), false) + .replace ("INCLUDE_CORRESPONDING_HEADER", CodeHelpers::createIncludeStatement (contentCompH, contentCompCpp), false) + .replace ("CONTENTCOMPCLASS", contentCompName, false); - sourceGroup.addFileAtIndex (contentCompCpp, -1, true); + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (contentCompCpp, windowCpp)) + failedFiles.add (contentCompCpp.getFullPathName()); + + sourceGroup.addFileAtIndex (contentCompCpp, -1, true); + } + // create main cpp String mainCpp = project.getFileTemplate ("jucer_MainTemplate_SimpleWindow_cpp") .replace ("APPHEADERS", appHeaders, false) @@ -86,5 +125,8 @@ struct AudioAppWizard : public NewProjectWizard return s; } +private: + bool createCppFile; + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AudioAppWizard) }; diff --git a/extras/Projucer/Source/Wizards/jucer_ProjectWizard_GUIApp.h b/extras/Projucer/Source/Wizards/jucer_ProjectWizard_GUIApp.h index de28f297c0..50c1fb2fd1 100644 --- a/extras/Projucer/Source/Wizards/jucer_ProjectWizard_GUIApp.h +++ b/extras/Projucer/Source/Wizards/jucer_ProjectWizard_GUIApp.h @@ -38,20 +38,22 @@ struct GUIAppWizard : public NewProjectWizard StringArray getFileCreationOptions() override { - return { "Create a Main.cpp file and a basic window", - "Create a Main.cpp file", + return { "Create a Main.cpp file with header and implementation files", + "Create a Main.cpp file with header file only", + "Create a Main.cpp file only", "Don't create any files" }; } Result processResultsFromSetupItems (WizardComp& setupComp) override { - createMainCpp = createWindow = false; + createMainCpp = createWindow = createCppFile = false; switch (setupComp.getFileCreationComboID()) { - case 0: createMainCpp = createWindow = true; break; - case 1: createMainCpp = true; break; - case 2: break; + case 0: createMainCpp = createWindow = createCppFile = true; break; + case 1: createMainCpp = createWindow = true; break; + case 2: createMainCpp = true; break; + case 3: break; default: jassertfalse; break; } @@ -65,7 +67,7 @@ struct GUIAppWizard : public NewProjectWizard File mainCppFile = getSourceFilesFolder().getChildFile ("Main.cpp"); File contentCompCpp = getSourceFilesFolder().getChildFile ("MainComponent.cpp"); File contentCompH = contentCompCpp.withFileExtension (".h"); - String contentCompName = "MainContentComponent"; + String contentCompName = "MainComponent"; project.setProjectType (ProjectType_GUIApp::getTypeName()); @@ -79,24 +81,29 @@ struct GUIAppWizard : public NewProjectWizard { appHeaders << newLine << CodeHelpers::createIncludeStatement (contentCompH, mainCppFile); - String windowH = project.getFileTemplate ("jucer_ContentCompTemplate_h") + String windowH = project.getFileTemplate (createCppFile ? "jucer_ContentCompTemplate_h" + : "jucer_ContentCompSimpleTemplate_h") .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), contentCompH), false) .replace ("CONTENTCOMPCLASS", contentCompName, false) .replace ("HEADERGUARD", CodeHelpers::makeHeaderGuardName (contentCompH), false); - String windowCpp = project.getFileTemplate ("jucer_ContentCompTemplate_cpp") - .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), contentCompCpp), false) - .replace ("INCLUDE_CORRESPONDING_HEADER", CodeHelpers::createIncludeStatement (contentCompH, contentCompCpp), false) - .replace ("CONTENTCOMPCLASS", contentCompName, false); - if (! FileHelpers::overwriteFileWithNewDataIfDifferent (contentCompH, windowH)) failedFiles.add (contentCompH.getFullPathName()); - if (! FileHelpers::overwriteFileWithNewDataIfDifferent (contentCompCpp, windowCpp)) - failedFiles.add (contentCompCpp.getFullPathName()); - - sourceGroup.addFileAtIndex (contentCompCpp, -1, true); sourceGroup.addFileAtIndex (contentCompH, -1, false); + + if (createCppFile) + { + String windowCpp = project.getFileTemplate ("jucer_ContentCompTemplate_cpp") + .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), contentCompCpp), false) + .replace ("INCLUDE_CORRESPONDING_HEADER", CodeHelpers::createIncludeStatement (contentCompH, contentCompCpp), false) + .replace ("CONTENTCOMPCLASS", contentCompName, false); + + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (contentCompCpp, windowCpp)) + failedFiles.add (contentCompCpp.getFullPathName()); + + sourceGroup.addFileAtIndex (contentCompCpp, -1, true); + } } if (createMainCpp) @@ -119,7 +126,7 @@ struct GUIAppWizard : public NewProjectWizard } private: - bool createMainCpp, createWindow; + bool createMainCpp, createWindow, createCppFile; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (GUIAppWizard) }; diff --git a/extras/Projucer/Source/Wizards/jucer_ProjectWizard_openGL.h b/extras/Projucer/Source/Wizards/jucer_ProjectWizard_openGL.h index 61b774175d..600aef4871 100644 --- a/extras/Projucer/Source/Wizards/jucer_ProjectWizard_openGL.h +++ b/extras/Projucer/Source/Wizards/jucer_ProjectWizard_openGL.h @@ -36,6 +36,26 @@ struct OpenGLAppWizard : public NewProjectWizard String getDescription() const override { return TRANS("Creates a blank JUCE application with a single window component. This component supports openGL drawing features including 3D model import and GLSL shaders."); } const char* getIcon() const override { return BinaryData::wizard_OpenGL_svg; } + StringArray getFileCreationOptions() override + { + return { "Create header and implementation files", + "Create header file only" }; + } + + Result processResultsFromSetupItems (WizardComp& setupComp) override + { + createCppFile = false; + + switch (setupComp.getFileCreationComboID()) + { + case 0: createCppFile = true; break; + case 1: break; + default: jassertfalse; break; + } + + return Result::ok(); + } + bool initialiseProject (Project& project) override { createSourceFolder(); @@ -43,7 +63,7 @@ struct OpenGLAppWizard : public NewProjectWizard File mainCppFile = getSourceFilesFolder().getChildFile ("Main.cpp"); File contentCompCpp = getSourceFilesFolder().getChildFile ("MainComponent.cpp"); File contentCompH = contentCompCpp.withFileExtension (".h"); - String contentCompName = "MainContentComponent"; + String contentCompName = "MainComponent"; project.setProjectType (ProjectType_GUIApp::getTypeName()); @@ -54,14 +74,31 @@ struct OpenGLAppWizard : public NewProjectWizard String appHeaders (CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), mainCppFile)); // create main window - String windowCpp = project.getFileTemplate ("jucer_OpenGLComponentTemplate_cpp") - .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), contentCompCpp), false); + appHeaders << newLine << CodeHelpers::createIncludeStatement (contentCompH, mainCppFile); + + String windowH = project.getFileTemplate (createCppFile ? "jucer_OpenGLComponentTemplate_h" + : "jucer_OpenGLComponentSimpleTemplate_h") + .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), contentCompH), false) + .replace ("CONTENTCOMPCLASS", contentCompName, false) + .replace ("HEADERGUARD", CodeHelpers::makeHeaderGuardName (contentCompH), false); - if (! FileHelpers::overwriteFileWithNewDataIfDifferent (contentCompCpp, windowCpp)) - failedFiles.add (contentCompCpp.getFullPathName()); + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (contentCompH, windowH)) + failedFiles.add (contentCompH.getFullPathName()); - sourceGroup.addFileAtIndex (contentCompCpp, -1, true); + sourceGroup.addFileAtIndex (contentCompH, -1, false); + if (createCppFile) + { + String windowCpp = project.getFileTemplate ("jucer_OpenGLComponentTemplate_cpp") + .replace ("INCLUDE_JUCE", CodeHelpers::createIncludeStatement (project.getAppIncludeFile(), contentCompCpp), false) + .replace ("INCLUDE_CORRESPONDING_HEADER", CodeHelpers::createIncludeStatement (contentCompH, contentCompCpp), false) + .replace ("CONTENTCOMPCLASS", contentCompName, false); + + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (contentCompCpp, windowCpp)) + failedFiles.add (contentCompCpp.getFullPathName()); + + sourceGroup.addFileAtIndex (contentCompCpp, -1, true); + } // create main cpp String mainCpp = project.getFileTemplate ("jucer_MainTemplate_SimpleWindow_cpp") @@ -79,5 +116,8 @@ struct OpenGLAppWizard : public NewProjectWizard return true; } +private: + bool createCppFile; + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (OpenGLAppWizard) };