diff --git a/JuceLibraryCode/JuceHeader.h b/JuceLibraryCode/JuceHeader.h index 085ff30b7f42c3d9ce633dd4c4f4ee90189ad055..f0c484a5a181a3ceae656618009bd26a54c20bb7 100644 --- a/JuceLibraryCode/JuceHeader.h +++ b/JuceLibraryCode/JuceHeader.h @@ -13,7 +13,9 @@ #ifndef __APPHEADERFILE_YNSYIRR__ #define __APPHEADERFILE_YNSYIRR__ +#ifndef JUCE_OPEN_EPHYS_PLUGIN_GENERATOR // to avoid redefinition error when using juce header. #include "AppConfig.h" +#endif #include <juce_audio_basics/juce_audio_basics.h> #include <juce_audio_devices/juce_audio_devices.h> @@ -30,14 +32,15 @@ #include <juce_opengl/juce_opengl.h> #include <juce_video/juce_video.h> -#include "BinaryData.h" - #if ! DONT_SET_USING_JUCE_NAMESPACE // If your code uses a lot of JUCE classes, then this will obviously save you // a lot of typing, but can be disabled by setting DONT_SET_USING_JUCE_NAMESPACE. using namespace juce; #endif +#ifndef JUCE_OPEN_EPHYS_PLUGIN_GENERATOR // to avoid redefinition error when using juce header. +#include "BinaryData.h" + #if ! JUCE_DONT_DECLARE_PROJECTINFO namespace ProjectInfo { @@ -46,5 +49,6 @@ namespace ProjectInfo const int versionNumber = 0x400; } #endif +#endif #endif // __APPHEADERFILE_YNSYIRR__ diff --git a/PluginGenerator/Builds/LinuxMakefile/Makefile b/PluginGenerator/Builds/LinuxMakefile/Makefile index 6fde094588d902d3ee5d139594dbb78a56d48fe7..d7c8dc4867bd17d9f907015d0545f2b5118ea867 100644 --- a/PluginGenerator/Builds/LinuxMakefile/Makefile +++ b/PluginGenerator/Builds/LinuxMakefile/Makefile @@ -86,6 +86,11 @@ OBJECTS := \ $(OBJDIR)/jucer_ProjectExporter_eefe2e5b.o \ $(OBJDIR)/jucer_ProjectSaver_38b16c25.o \ $(OBJDIR)/jucer_ResourceFile_6af120d3.o \ + $(OBJDIR)/MaterialButtonLookAndFeel_ccb23013.o \ + $(OBJDIR)/MaterialSliderLookAndFeel_be5e6a84.o \ + $(OBJDIR)/ButtonGroupManager_48c303e9.o \ + $(OBJDIR)/LinearButtonGroupManager_ee5ece6e.o \ + $(OBJDIR)/TiledButtonGroupManager_9e681e17.o \ $(OBJDIR)/jucer_CodeHelpers_c317179c.o \ $(OBJDIR)/jucer_FileHelpers_f98ed0ad.o \ $(OBJDIR)/jucer_Icons_9db2f51e.o \ @@ -307,6 +312,31 @@ $(OBJDIR)/jucer_ResourceFile_6af120d3.o: ../../Source/Project\ Saving/jucer_Reso @echo "Compiling jucer_ResourceFile.cpp" @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" +$(OBJDIR)/MaterialButtonLookAndFeel_ccb23013.o: ../../../Source/UI/LookAndFeel/MaterialButtonLookAndFeel.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling MaterialButtonLookAndFeel.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/MaterialSliderLookAndFeel_be5e6a84.o: ../../../Source/UI/LookAndFeel/MaterialSliderLookAndFeel.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling MaterialSliderLookAndFeel.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/ButtonGroupManager_48c303e9.o: ../../../Source/UI/Utils/ButtonGroupManager.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling ButtonGroupManager.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/LinearButtonGroupManager_ee5ece6e.o: ../../../Source/UI/Utils/LinearButtonGroupManager.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling LinearButtonGroupManager.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/TiledButtonGroupManager_9e681e17.o: ../../../Source/UI/Utils/TiledButtonGroupManager.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling TiledButtonGroupManager.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + $(OBJDIR)/jucer_CodeHelpers_c317179c.o: ../../Source/Utility/jucer_CodeHelpers.cpp -@mkdir -p $(OBJDIR) @echo "Compiling jucer_CodeHelpers.cpp" diff --git a/PluginGenerator/Builds/MacOSX/OpenEphys_PluginGenerator.xcodeproj/project.pbxproj b/PluginGenerator/Builds/MacOSX/OpenEphys_PluginGenerator.xcodeproj/project.pbxproj index ee6755ea6ed4c2de81e471a361a194852ab6fe7c..83ab5c336636eae9599c2927ab396a95cce7400d 100644 --- a/PluginGenerator/Builds/MacOSX/OpenEphys_PluginGenerator.xcodeproj/project.pbxproj +++ b/PluginGenerator/Builds/MacOSX/OpenEphys_PluginGenerator.xcodeproj/project.pbxproj @@ -61,6 +61,11 @@ 1F37544891EC8DBB5E500C1C = {isa = PBXBuildFile; fileRef = F71AF6D2DF3E652F8B51EBAB; }; 0C5F43C262695A3EB7A9E1C0 = {isa = PBXBuildFile; fileRef = 14A24BB4AB7B81D40EF062E5; }; 110221CD5578153B528AD2BE = {isa = PBXBuildFile; fileRef = D10D51A0A2D63F38B4D86A60; }; + 4A7EAE537E848B6371DA77E7 = {isa = PBXBuildFile; fileRef = C8014348357FB800DD39F628; }; + 3DC21316BD44A399A31BFEB4 = {isa = PBXBuildFile; fileRef = 03D81EF40B73C96044412AEA; }; + 9856166603880FC8318433DE = {isa = PBXBuildFile; fileRef = AE98FAEC5E4C8B0B7A1DA6F3; }; + 56C66B069412D807A3EE3D40 = {isa = PBXBuildFile; fileRef = C2280BC635F02A7126E911C4; }; + 4788DC089FA90E35CC987509 = {isa = PBXBuildFile; fileRef = 833A65B7B3E8BAD74EE3E470; }; CD4F7B119CE718BCE78D61F4 = {isa = PBXBuildFile; fileRef = 9B9CAD20E1243B4351B4C8D8; }; 78CB463DD98A55313A543859 = {isa = PBXBuildFile; fileRef = 1729AEDC34001C31B8CC357C; }; 1499DF2E85B05AC1BF423773 = {isa = PBXBuildFile; fileRef = CF21D9DB3AEC0A4DCAB36A99; }; @@ -91,6 +96,7 @@ 02CA8C3BE552E240C77A3722 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../JuceLibraryCode/modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; 0329C05B4EE23CBB5578BF02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Primes.h"; path = "../../../JuceLibraryCode/modules/juce_cryptography/encryption/juce_Primes.h"; sourceTree = "SOURCE_ROOT"; }; 03D3053EDE47FED1919C6674 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_AudioPluginFilterTemplate.h"; path = "../../Source/BinaryData/jucer_AudioPluginFilterTemplate.h"; sourceTree = "SOURCE_ROOT"; }; + 03D81EF40B73C96044412AEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MaterialSliderLookAndFeel.cpp; path = ../../../Source/UI/LookAndFeel/MaterialSliderLookAndFeel.cpp; sourceTree = "SOURCE_ROOT"; }; 0400CB0E056A1D840304D2DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_CommandLine.cpp"; path = "../../Source/Application/jucer_CommandLine.cpp"; sourceTree = "SOURCE_ROOT"; }; 043FC175E80305E3D95ECAF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NotificationType.h"; path = "../../../JuceLibraryCode/modules/juce_events/messages/juce_NotificationType.h"; sourceTree = "SOURCE_ROOT"; }; 049A726AFEC564314777C076 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_AndroidBase.h"; path = "../../Source/Project Saving/jucer_ProjectExport_AndroidBase.h"; sourceTree = "SOURCE_ROOT"; }; @@ -108,6 +114,7 @@ 087CB3A961CD3C7434D660A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_NewProjectWizard.h"; path = "../../Source/Wizards/jucer_NewProjectWizard.h"; sourceTree = "SOURCE_ROOT"; }; 08AF500230E8F8644B3682F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/native/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; 08E815AF5FC4D7DCC66055CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = zlib.h; path = "../../../JuceLibraryCode/modules/juce_core/zip/zlib/zlib.h"; sourceTree = "SOURCE_ROOT"; }; + 08FD0ED30B3390C39C63B158 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MaterialSliderLookAndFeel.h; path = ../../../Source/UI/LookAndFeel/MaterialSliderLookAndFeel.h; sourceTree = "SOURCE_ROOT"; }; 09261261800229B6438A9A5B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; 09739F17883B08498F571B2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = png.h; path = "../../../JuceLibraryCode/modules/juce_graphics/image_formats/pnglib/png.h"; sourceTree = "SOURCE_ROOT"; }; 09BB016660D64FDCD2A9866F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../../JuceLibraryCode/modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -242,6 +249,7 @@ 27E909E8C27DFBF0F184DCBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; 27F7865BD6FE03B970B8DBFB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../JuceLibraryCode/modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; 2802BE05CAC2BE78EFD5A239 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 281096EB17B1ACA733A9B7A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = TiledButtonGroupManager.h; path = ../../../Source/UI/Utils/TiledButtonGroupManager.h; sourceTree = "SOURCE_ROOT"; }; 2875464712C12E9BFCCEE57D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; }; 28A5DF3CEA69B587C9CA7C4A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../JuceLibraryCode/modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; 28C9E13B1A70FDC728770C6E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../../JuceLibraryCode/modules/juce_graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; @@ -432,6 +440,7 @@ 529B0A44694A54ED99444A0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../JuceLibraryCode/modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; 529B9F1BADEE58EA9F4F8C09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; 52A4289E71132A45D5C3EAE7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = "../../../JuceLibraryCode/modules/juce_graphics/image_formats/pnglib/pngwutil.c"; sourceTree = "SOURCE_ROOT"; }; + 52C2B96495534A2B06ACE6AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MaterialButtonLookAndFeel.h; path = ../../../Source/UI/LookAndFeel/MaterialButtonLookAndFeel.h; sourceTree = "SOURCE_ROOT"; }; 530ADBF1045867FE90EB8F1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Messaging.cpp"; path = "../../../JuceLibraryCode/modules/juce_events/native/juce_win32_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; 53151B683E11F420203E61C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_NewCppFileTemplate.h"; path = "../../Source/BinaryData/jucer_NewCppFileTemplate.h"; sourceTree = "SOURCE_ROOT"; }; 5377705718D6D60A6AA2848F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../../JuceLibraryCode/modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -631,6 +640,7 @@ 825F21A8A32CC0FD20B845A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../../JuceLibraryCode/modules/juce_gui_extra/misc/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; 82976E18712BAE638A132F02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../JuceLibraryCode/modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; 82C7BF9F5E863E647438A8AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 833A65B7B3E8BAD74EE3E470 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TiledButtonGroupManager.cpp; path = ../../../Source/UI/Utils/TiledButtonGroupManager.cpp; sourceTree = "SOURCE_ROOT"; }; 83C7547CCAFCBB88F791FED8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; 842427CFE565F3FCE5B99174 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; 84493A7AD6B0398B732461FB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; @@ -695,6 +705,7 @@ 92DECC0E4EBC843391AF7DB7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = "../../../JuceLibraryCode/modules/juce_graphics/image_formats/pnglib/pngget.c"; sourceTree = "SOURCE_ROOT"; }; 92E4C9A69A2DAD900D128A02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; 92F91DC29B64AD85B1F508BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_GenericComponentHandler.h"; path = "../../Source/ComponentEditor/components/jucer_GenericComponentHandler.h"; sourceTree = "SOURCE_ROOT"; }; + 93A8E777B774ACDA887E9C0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = LinearButtonGroupManager.h; path = ../../../Source/UI/Utils/LinearButtonGroupManager.h; sourceTree = "SOURCE_ROOT"; }; 93B419190CCE92ACAB1ED25B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ColouredElement.cpp"; path = "../../Source/ComponentEditor/paintelements/jucer_ColouredElement.cpp"; sourceTree = "SOURCE_ROOT"; }; 93B474F28D09D858DE16E881 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../../JuceLibraryCode/modules/juce_core/unit_tests/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; 93C5BEADA1AB1CFF7B167D2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Random.cpp"; path = "../../../JuceLibraryCode/modules/juce_core/maths/juce_Random.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -797,6 +808,7 @@ AC70D9D3E27592DD5D19B935 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../JuceLibraryCode/modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; AD828AEF8A826DCAD19095B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; AE1BC6DCCFC1A18E2ACE23F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_MainTemplate_NoWindow.cpp"; path = "../../Source/BinaryData/jucer_MainTemplate_NoWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + AE98FAEC5E4C8B0B7A1DA6F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ButtonGroupManager.cpp; path = ../../../Source/UI/Utils/ButtonGroupManager.cpp; sourceTree = "SOURCE_ROOT"; }; AECBC5CBB388E4EB95660B02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = deflate.c; path = "../../../JuceLibraryCode/modules/juce_core/zip/zlib/deflate.c"; sourceTree = "SOURCE_ROOT"; }; AF51A8DC8E67D8EB660AD6D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../JuceLibraryCode/modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; AF57278F8F46D86B4EBA449E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "projucer_CompileEngineServer.h"; path = "../../Source/LiveBuildEngine/projucer_CompileEngineServer.h"; sourceTree = "SOURCE_ROOT"; }; @@ -828,6 +840,7 @@ B54CB8DDB5000BDCBDECD8BA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; B5CB69026BC4E8F439355CDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "projucer_SourceCodeRange.h"; path = "../../Source/LiveBuildEngine/projucer_SourceCodeRange.h"; sourceTree = "SOURCE_ROOT"; }; B5F94A37629F841C6C2B4CA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../../JuceLibraryCode/modules/juce_events/native/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; }; + B65C3D8EB470775244803FD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ButtonGroupManager.h; path = ../../../Source/UI/Utils/ButtonGroupManager.h; sourceTree = "SOURCE_ROOT"; }; B68B2E4185C6FDCEEE0DBA79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../JuceLibraryCode/modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; B72DAC469A62BD52C86102E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../JuceLibraryCode/modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; B741170E45D74F30B7D5CDDF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ComponentNameProperty.h"; path = "../../Source/ComponentEditor/components/jucer_ComponentNameProperty.h"; sourceTree = "SOURCE_ROOT"; }; @@ -879,6 +892,7 @@ C187718F7B9EBA88584B43F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_PaintRoutine.cpp"; path = "../../Source/ComponentEditor/jucer_PaintRoutine.cpp"; sourceTree = "SOURCE_ROOT"; }; C21AD85C35257A4B9A74D522 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../JuceLibraryCode/modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; C22791DB75870C4F102AA8A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_SlidingPanelComponent.h"; path = "../../Source/Utility/jucer_SlidingPanelComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C2280BC635F02A7126E911C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LinearButtonGroupManager.cpp; path = ../../../Source/UI/Utils/LinearButtonGroupManager.cpp; sourceTree = "SOURCE_ROOT"; }; C2990A8D054BC230E7C637C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_NewProjectWizardClasses.h"; path = "../../Source/Wizards/jucer_NewProjectWizardClasses.h"; sourceTree = "SOURCE_ROOT"; }; C2EEEB5E55C76817AC291BF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; C3AB2FD3B067F2AD883FE793 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cderror.h; path = "../../../JuceLibraryCode/modules/juce_graphics/image_formats/jpglib/cderror.h"; sourceTree = "SOURCE_ROOT"; }; @@ -897,6 +911,7 @@ C7B47372A9D5970E3D9A5400 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_GroupInformationComponent.h"; path = "../../Source/Project/jucer_GroupInformationComponent.h"; sourceTree = "SOURCE_ROOT"; }; C7B6983AD1896535B9B98F40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../../JuceLibraryCode/modules/juce_events/messages/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; }; C7D4CFEA33205B2D33955B9E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../JuceLibraryCode/modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + C8014348357FB800DD39F628 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MaterialButtonLookAndFeel.cpp; path = ../../../Source/UI/LookAndFeel/MaterialButtonLookAndFeel.cpp; sourceTree = "SOURCE_ROOT"; }; C81BC495F7C4B665C8856AA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; C85BCA043B9CB378FA6876B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../JuceLibraryCode/modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; C879F5FBCAACFD533EBEDF91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jdmainct.c; path = "../../../JuceLibraryCode/modules/juce_graphics/image_formats/jpglib/jdmainct.c"; sourceTree = "SOURCE_ROOT"; }; @@ -1304,7 +1319,21 @@ 9C04F9680F82BF279D528688, D10D51A0A2D63F38B4D86A60, C9616830BB2474066AC8C910, ); name = "Project Saving"; sourceTree = "<group>"; }; + 06487A04FFCD1B6C8C639B43 = {isa = PBXGroup; children = ( + C8014348357FB800DD39F628, + 52C2B96495534A2B06ACE6AF, + 03D81EF40B73C96044412AEA, + 08FD0ED30B3390C39C63B158, ); name = LookAndFeel; sourceTree = "<group>"; }; + DA2A2B72BDCC0958C26274DE = {isa = PBXGroup; children = ( + AE98FAEC5E4C8B0B7A1DA6F3, + B65C3D8EB470775244803FD3, + C2280BC635F02A7126E911C4, + 93A8E777B774ACDA887E9C0E, + 833A65B7B3E8BAD74EE3E470, + 281096EB17B1ACA733A9B7A7, ); name = Utils; sourceTree = "<group>"; }; 6580E53C420AA794542CC8D7 = {isa = PBXGroup; children = ( + 06487A04FFCD1B6C8C639B43, + DA2A2B72BDCC0958C26274DE, 9B9CAD20E1243B4351B4C8D8, 914ADDB50ED7365F08BA91F9, DF78EF6242D82F912534A277, @@ -2490,6 +2519,11 @@ 1F37544891EC8DBB5E500C1C, 0C5F43C262695A3EB7A9E1C0, 110221CD5578153B528AD2BE, + 4A7EAE537E848B6371DA77E7, + 3DC21316BD44A399A31BFEB4, + 9856166603880FC8318433DE, + 56C66B069412D807A3EE3D40, + 4788DC089FA90E35CC987509, CD4F7B119CE718BCE78D61F4, 78CB463DD98A55313A543859, 1499DF2E85B05AC1BF423773, diff --git a/PluginGenerator/Builds/VisualStudio2013/OpenEphys_PluginGenerator.vcxproj b/PluginGenerator/Builds/VisualStudio2013/OpenEphys_PluginGenerator.vcxproj index ef26d574c3d893cd191f61c4bc1d91c0ea6cf5bb..a77c235a6e9836789befd4e47e5632a23ee02be9 100644 --- a/PluginGenerator/Builds/VisualStudio2013/OpenEphys_PluginGenerator.vcxproj +++ b/PluginGenerator/Builds/VisualStudio2013/OpenEphys_PluginGenerator.vcxproj @@ -171,6 +171,11 @@ <ClCompile Include="..\..\Source\Project Saving\jucer_ProjectExporter.cpp"/> <ClCompile Include="..\..\Source\Project Saving\jucer_ProjectSaver.cpp"/> <ClCompile Include="..\..\Source\Project Saving\jucer_ResourceFile.cpp"/> + <ClCompile Include="..\..\..\Source\UI\LookAndFeel\MaterialButtonLookAndFeel.cpp"/> + <ClCompile Include="..\..\..\Source\UI\LookAndFeel\MaterialSliderLookAndFeel.cpp"/> + <ClCompile Include="..\..\..\Source\UI\Utils\ButtonGroupManager.cpp"/> + <ClCompile Include="..\..\..\Source\UI\Utils\LinearButtonGroupManager.cpp"/> + <ClCompile Include="..\..\..\Source\UI\Utils\TiledButtonGroupManager.cpp"/> <ClCompile Include="..\..\Source\Utility\jucer_CodeHelpers.cpp"/> <ClCompile Include="..\..\Source\Utility\jucer_FileHelpers.cpp"/> <ClCompile Include="..\..\Source\Utility\jucer_Icons.cpp"/> @@ -1438,6 +1443,11 @@ <ClInclude Include="..\..\Source\Project Saving\jucer_ProjectExporter.h"/> <ClInclude Include="..\..\Source\Project Saving\jucer_ProjectSaver.h"/> <ClInclude Include="..\..\Source\Project Saving\jucer_ResourceFile.h"/> + <ClInclude Include="..\..\..\Source\UI\LookAndFeel\MaterialButtonLookAndFeel.h"/> + <ClInclude Include="..\..\..\Source\UI\LookAndFeel\MaterialSliderLookAndFeel.h"/> + <ClInclude Include="..\..\..\Source\UI\Utils\ButtonGroupManager.h"/> + <ClInclude Include="..\..\..\Source\UI\Utils\LinearButtonGroupManager.h"/> + <ClInclude Include="..\..\..\Source\UI\Utils\TiledButtonGroupManager.h"/> <ClInclude Include="..\..\Source\Utility\jucer_CodeHelpers.h"/> <ClInclude Include="..\..\Source\Utility\jucer_ColourPropertyComponent.h"/> <ClInclude Include="..\..\Source\Utility\jucer_Colours.h"/> diff --git a/PluginGenerator/Builds/VisualStudio2013/OpenEphys_PluginGenerator.vcxproj.filters b/PluginGenerator/Builds/VisualStudio2013/OpenEphys_PluginGenerator.vcxproj.filters index 0ddd3a276c8977a0ce34094cfcc5accb233fd7ca..3c430ca25e5d1d8d09e85072c755bdbee1d4359a 100644 --- a/PluginGenerator/Builds/VisualStudio2013/OpenEphys_PluginGenerator.vcxproj.filters +++ b/PluginGenerator/Builds/VisualStudio2013/OpenEphys_PluginGenerator.vcxproj.filters @@ -41,6 +41,12 @@ <Filter Include="OpenEphys_PluginGenerator\Utility"> <UniqueIdentifier>{E2DF8972-90D2-24DD-8A0A-975636458A79}</UniqueIdentifier> </Filter> + <Filter Include="OpenEphys_PluginGenerator\Utility\LookAndFeel"> + <UniqueIdentifier>{7BD1873F-23C8-042A-19FF-1F2E347F13EE}</UniqueIdentifier> + </Filter> + <Filter Include="OpenEphys_PluginGenerator\Utility\Utils"> + <UniqueIdentifier>{DCC29866-2C98-0A59-0BF9-1640B818D682}</UniqueIdentifier> + </Filter> <Filter Include="OpenEphys_PluginGenerator\Wizards"> <UniqueIdentifier>{8319DD92-AD5C-F8E7-50DD-9B43C14D54ED}</UniqueIdentifier> </Filter> @@ -379,6 +385,21 @@ <ClCompile Include="..\..\Source\Project Saving\jucer_ResourceFile.cpp"> <Filter>OpenEphys_PluginGenerator\Project Saving</Filter> </ClCompile> + <ClCompile Include="..\..\..\Source\UI\LookAndFeel\MaterialButtonLookAndFeel.cpp"> + <Filter>OpenEphys_PluginGenerator\Utility\LookAndFeel</Filter> + </ClCompile> + <ClCompile Include="..\..\..\Source\UI\LookAndFeel\MaterialSliderLookAndFeel.cpp"> + <Filter>OpenEphys_PluginGenerator\Utility\LookAndFeel</Filter> + </ClCompile> + <ClCompile Include="..\..\..\Source\UI\Utils\ButtonGroupManager.cpp"> + <Filter>OpenEphys_PluginGenerator\Utility\Utils</Filter> + </ClCompile> + <ClCompile Include="..\..\..\Source\UI\Utils\LinearButtonGroupManager.cpp"> + <Filter>OpenEphys_PluginGenerator\Utility\Utils</Filter> + </ClCompile> + <ClCompile Include="..\..\..\Source\UI\Utils\TiledButtonGroupManager.cpp"> + <Filter>OpenEphys_PluginGenerator\Utility\Utils</Filter> + </ClCompile> <ClCompile Include="..\..\Source\Utility\jucer_CodeHelpers.cpp"> <Filter>OpenEphys_PluginGenerator\Utility</Filter> </ClCompile> @@ -2007,6 +2028,21 @@ <ClInclude Include="..\..\Source\Project Saving\jucer_ResourceFile.h"> <Filter>OpenEphys_PluginGenerator\Project Saving</Filter> </ClInclude> + <ClInclude Include="..\..\..\Source\UI\LookAndFeel\MaterialButtonLookAndFeel.h"> + <Filter>OpenEphys_PluginGenerator\Utility\LookAndFeel</Filter> + </ClInclude> + <ClInclude Include="..\..\..\Source\UI\LookAndFeel\MaterialSliderLookAndFeel.h"> + <Filter>OpenEphys_PluginGenerator\Utility\LookAndFeel</Filter> + </ClInclude> + <ClInclude Include="..\..\..\Source\UI\Utils\ButtonGroupManager.h"> + <Filter>OpenEphys_PluginGenerator\Utility\Utils</Filter> + </ClInclude> + <ClInclude Include="..\..\..\Source\UI\Utils\LinearButtonGroupManager.h"> + <Filter>OpenEphys_PluginGenerator\Utility\Utils</Filter> + </ClInclude> + <ClInclude Include="..\..\..\Source\UI\Utils\TiledButtonGroupManager.h"> + <Filter>OpenEphys_PluginGenerator\Utility\Utils</Filter> + </ClInclude> <ClInclude Include="..\..\Source\Utility\jucer_CodeHelpers.h"> <Filter>OpenEphys_PluginGenerator\Utility</Filter> </ClInclude> diff --git a/PluginGenerator/Builds/VisualStudio2015/OpenEphys_PluginGenerator.vcxproj b/PluginGenerator/Builds/VisualStudio2015/OpenEphys_PluginGenerator.vcxproj index d2e30e4dc51f2c1bd43ffd39bea3e0445365b8bf..50344fd47b04c6a54dc37f687499ac6c4cfc9597 100644 --- a/PluginGenerator/Builds/VisualStudio2015/OpenEphys_PluginGenerator.vcxproj +++ b/PluginGenerator/Builds/VisualStudio2015/OpenEphys_PluginGenerator.vcxproj @@ -171,6 +171,11 @@ <ClCompile Include="..\..\Source\Project Saving\jucer_ProjectExporter.cpp"/> <ClCompile Include="..\..\Source\Project Saving\jucer_ProjectSaver.cpp"/> <ClCompile Include="..\..\Source\Project Saving\jucer_ResourceFile.cpp"/> + <ClCompile Include="..\..\..\Source\UI\LookAndFeel\MaterialButtonLookAndFeel.cpp"/> + <ClCompile Include="..\..\..\Source\UI\LookAndFeel\MaterialSliderLookAndFeel.cpp"/> + <ClCompile Include="..\..\..\Source\UI\Utils\ButtonGroupManager.cpp"/> + <ClCompile Include="..\..\..\Source\UI\Utils\LinearButtonGroupManager.cpp"/> + <ClCompile Include="..\..\..\Source\UI\Utils\TiledButtonGroupManager.cpp"/> <ClCompile Include="..\..\Source\Utility\jucer_CodeHelpers.cpp"/> <ClCompile Include="..\..\Source\Utility\jucer_FileHelpers.cpp"/> <ClCompile Include="..\..\Source\Utility\jucer_Icons.cpp"/> @@ -1438,6 +1443,11 @@ <ClInclude Include="..\..\Source\Project Saving\jucer_ProjectExporter.h"/> <ClInclude Include="..\..\Source\Project Saving\jucer_ProjectSaver.h"/> <ClInclude Include="..\..\Source\Project Saving\jucer_ResourceFile.h"/> + <ClInclude Include="..\..\..\Source\UI\LookAndFeel\MaterialButtonLookAndFeel.h"/> + <ClInclude Include="..\..\..\Source\UI\LookAndFeel\MaterialSliderLookAndFeel.h"/> + <ClInclude Include="..\..\..\Source\UI\Utils\ButtonGroupManager.h"/> + <ClInclude Include="..\..\..\Source\UI\Utils\LinearButtonGroupManager.h"/> + <ClInclude Include="..\..\..\Source\UI\Utils\TiledButtonGroupManager.h"/> <ClInclude Include="..\..\Source\Utility\jucer_CodeHelpers.h"/> <ClInclude Include="..\..\Source\Utility\jucer_ColourPropertyComponent.h"/> <ClInclude Include="..\..\Source\Utility\jucer_Colours.h"/> diff --git a/PluginGenerator/Builds/VisualStudio2015/OpenEphys_PluginGenerator.vcxproj.filters b/PluginGenerator/Builds/VisualStudio2015/OpenEphys_PluginGenerator.vcxproj.filters index 6a57907712efc461ba5394bc69f0482db2ba69dc..ef20e221bcfab524a113409c25e8602b0585aa5c 100644 --- a/PluginGenerator/Builds/VisualStudio2015/OpenEphys_PluginGenerator.vcxproj.filters +++ b/PluginGenerator/Builds/VisualStudio2015/OpenEphys_PluginGenerator.vcxproj.filters @@ -41,6 +41,12 @@ <Filter Include="OpenEphys_PluginGenerator\Utility"> <UniqueIdentifier>{E2DF8972-90D2-24DD-8A0A-975636458A79}</UniqueIdentifier> </Filter> + <Filter Include="OpenEphys_PluginGenerator\Utility\LookAndFeel"> + <UniqueIdentifier>{7BD1873F-23C8-042A-19FF-1F2E347F13EE}</UniqueIdentifier> + </Filter> + <Filter Include="OpenEphys_PluginGenerator\Utility\Utils"> + <UniqueIdentifier>{DCC29866-2C98-0A59-0BF9-1640B818D682}</UniqueIdentifier> + </Filter> <Filter Include="OpenEphys_PluginGenerator\Wizards"> <UniqueIdentifier>{8319DD92-AD5C-F8E7-50DD-9B43C14D54ED}</UniqueIdentifier> </Filter> @@ -379,6 +385,21 @@ <ClCompile Include="..\..\Source\Project Saving\jucer_ResourceFile.cpp"> <Filter>OpenEphys_PluginGenerator\Project Saving</Filter> </ClCompile> + <ClCompile Include="..\..\..\Source\UI\LookAndFeel\MaterialButtonLookAndFeel.cpp"> + <Filter>OpenEphys_PluginGenerator\Utility\LookAndFeel</Filter> + </ClCompile> + <ClCompile Include="..\..\..\Source\UI\LookAndFeel\MaterialSliderLookAndFeel.cpp"> + <Filter>OpenEphys_PluginGenerator\Utility\LookAndFeel</Filter> + </ClCompile> + <ClCompile Include="..\..\..\Source\UI\Utils\ButtonGroupManager.cpp"> + <Filter>OpenEphys_PluginGenerator\Utility\Utils</Filter> + </ClCompile> + <ClCompile Include="..\..\..\Source\UI\Utils\LinearButtonGroupManager.cpp"> + <Filter>OpenEphys_PluginGenerator\Utility\Utils</Filter> + </ClCompile> + <ClCompile Include="..\..\..\Source\UI\Utils\TiledButtonGroupManager.cpp"> + <Filter>OpenEphys_PluginGenerator\Utility\Utils</Filter> + </ClCompile> <ClCompile Include="..\..\Source\Utility\jucer_CodeHelpers.cpp"> <Filter>OpenEphys_PluginGenerator\Utility</Filter> </ClCompile> @@ -2007,6 +2028,21 @@ <ClInclude Include="..\..\Source\Project Saving\jucer_ResourceFile.h"> <Filter>OpenEphys_PluginGenerator\Project Saving</Filter> </ClInclude> + <ClInclude Include="..\..\..\Source\UI\LookAndFeel\MaterialButtonLookAndFeel.h"> + <Filter>OpenEphys_PluginGenerator\Utility\LookAndFeel</Filter> + </ClInclude> + <ClInclude Include="..\..\..\Source\UI\LookAndFeel\MaterialSliderLookAndFeel.h"> + <Filter>OpenEphys_PluginGenerator\Utility\LookAndFeel</Filter> + </ClInclude> + <ClInclude Include="..\..\..\Source\UI\Utils\ButtonGroupManager.h"> + <Filter>OpenEphys_PluginGenerator\Utility\Utils</Filter> + </ClInclude> + <ClInclude Include="..\..\..\Source\UI\Utils\LinearButtonGroupManager.h"> + <Filter>OpenEphys_PluginGenerator\Utility\Utils</Filter> + </ClInclude> + <ClInclude Include="..\..\..\Source\UI\Utils\TiledButtonGroupManager.h"> + <Filter>OpenEphys_PluginGenerator\Utility\Utils</Filter> + </ClInclude> <ClInclude Include="..\..\Source\Utility\jucer_CodeHelpers.h"> <Filter>OpenEphys_PluginGenerator\Utility</Filter> </ClInclude> diff --git a/PluginGenerator/Projucer.jucer b/PluginGenerator/Projucer.jucer index bfd2b9cf35e942b6b7c04353f1ee49ba97cb2b89..1854b6cffe4e5c61da4512ba11538266fcc6b903 100644 --- a/PluginGenerator/Projucer.jucer +++ b/PluginGenerator/Projucer.jucer @@ -387,7 +387,7 @@ <FILE id="eecwL8" name="jucer_Project.cpp" compile="1" resource="0" file="Source/Project/jucer_Project.cpp"/> <FILE id="p7qo62" name="jucer_Project.h" compile="0" resource="0" file="Source/Project/jucer_Project.h"/> - <FILE id="rhvzYd" name="jucer_ProjectContentComponent.cpp" compile="0" + <FILE id="phG5zJ" name="jucer_ProjectContentComponent.cpp" compile="0" resource="0" file="Source/Project/jucer_ProjectContentComponent.cpp"/> <FILE id="xDGBxS" name="jucer_ProjectContentComponent.h" compile="0" resource="0" file="Source/Project/jucer_ProjectContentComponent.h"/> @@ -431,6 +431,30 @@ file="Source/Project Saving/jucer_ResourceFile.h"/> </GROUP> <GROUP id="{58EB50D9-0F01-AF9B-087B-93DB283A339D}" name="Utility"> + <GROUP id="{E62211FC-D300-1C0B-03D9-659EF1B391B9}" name="LookAndFeel"> + <FILE id="RjWumG" name="MaterialButtonLookAndFeel.cpp" compile="1" + resource="0" file="../Source/UI/LookAndFeel/MaterialButtonLookAndFeel.cpp"/> + <FILE id="aHgAz4" name="MaterialButtonLookAndFeel.h" compile="0" resource="0" + file="../Source/UI/LookAndFeel/MaterialButtonLookAndFeel.h"/> + <FILE id="ElKr8c" name="MaterialSliderLookAndFeel.cpp" compile="1" + resource="0" file="../Source/UI/LookAndFeel/MaterialSliderLookAndFeel.cpp"/> + <FILE id="DKvgBi" name="MaterialSliderLookAndFeel.h" compile="0" resource="0" + file="../Source/UI/LookAndFeel/MaterialSliderLookAndFeel.h"/> + </GROUP> + <GROUP id="{E2C1EF21-0DC8-2F0E-AF9E-052BCBD179AE}" name="Utils"> + <FILE id="lTIMco" name="ButtonGroupManager.cpp" compile="1" resource="0" + file="../Source/UI/Utils/ButtonGroupManager.cpp"/> + <FILE id="EmUNYK" name="ButtonGroupManager.h" compile="0" resource="0" + file="../Source/UI/Utils/ButtonGroupManager.h"/> + <FILE id="EBJFkv" name="LinearButtonGroupManager.cpp" compile="1" resource="0" + file="../Source/UI/Utils/LinearButtonGroupManager.cpp"/> + <FILE id="rO6udt" name="LinearButtonGroupManager.h" compile="0" resource="0" + file="../Source/UI/Utils/LinearButtonGroupManager.h"/> + <FILE id="NRlbfV" name="TiledButtonGroupManager.cpp" compile="1" resource="0" + file="../Source/UI/Utils/TiledButtonGroupManager.cpp"/> + <FILE id="OSP7ow" name="TiledButtonGroupManager.h" compile="0" resource="0" + file="../Source/UI/Utils/TiledButtonGroupManager.h"/> + </GROUP> <FILE id="TX2oGI" name="jucer_CodeHelpers.cpp" compile="1" resource="0" file="Source/Utility/jucer_CodeHelpers.cpp"/> <FILE id="mpDJct" name="jucer_CodeHelpers.h" compile="0" resource="0" diff --git a/PluginGenerator/Source/Project/jucer_ConfigTree_Base.h b/PluginGenerator/Source/Project/jucer_ConfigTree_Base.h index 7e787b29a9fb535115b6f8887fb4e8e5c30161d5..979f9c81fad62050f97a58bd89f2b8998bb2ff54 100644 --- a/PluginGenerator/Source/Project/jucer_ConfigTree_Base.h +++ b/PluginGenerator/Source/Project/jucer_ConfigTree_Base.h @@ -22,6 +22,9 @@ ============================================================================== */ + +// Open Ephys + class PropertyGroupComponent : public Component { public: @@ -57,9 +60,7 @@ public: const Colour bkg (findColour (mainBackgroundColourId)); g.setColour (Colours::white.withAlpha (0.35f)); - g.fillRect (0, 30, getWidth(), getHeight() - 38); - - g.setFont (Font (15.0f, Font::bold)); + g.fillRect (0, 30, getWidth(), getHeight() - 38); g.setFont (Font (15.0f, Font::bold)); g.setColour (bkg.contrasting (0.7f)); g.drawFittedText (getName(), 12, 0, getWidth() - 16, 25, Justification::bottomLeft, 1); } @@ -298,8 +299,9 @@ private: ValueTree exportersTree; //============================================================================== - class SettingsComp : public Component, - private ChangeListener + class SettingsComp : public Component + , public Button::Listener + , private ChangeListener { public: SettingsComp (Project& p) : project (p) @@ -308,6 +310,48 @@ private: updatePropertyList(); project.addChangeListener (this); + + static const Colour COLOUR_PRIMARY (Colours::black.withAlpha (0.87f)); + static const Colour COLOUR_ACCENT (Colour::fromRGB (3, 169, 244)); + + TextButton* projectSettingsButton = new TextButton ("Project", "Switch to project settings tab"); + projectSettingsButton->setComponentID (PROJECT_SETTINGS_BUTTON_ID); + projectSettingsButton->setClickingTogglesState (true); + projectSettingsButton->setToggleState (true, dontSendNotification); + projectSettingsButton->setColour (TextButton::buttonColourId, Colour (0x0)); + projectSettingsButton->setColour (TextButton::buttonOnColourId, Colour (0x0)); + projectSettingsButton->setColour (TextButton::textColourOffId, COLOUR_PRIMARY); + projectSettingsButton->setColour (TextButton::textColourOnId, COLOUR_ACCENT); + + TextButton* pluginSettingsButton = new TextButton ("Plugin", "Switch to plugin settings tab"); + pluginSettingsButton->setComponentID (PLUGIN_SETTINGS_BUTTON_ID); + pluginSettingsButton->setClickingTogglesState (true); + pluginSettingsButton->setColour (TextButton::buttonColourId, Colour (0x0)); + pluginSettingsButton->setColour (TextButton::buttonOnColourId, Colour (0x0)); + pluginSettingsButton->setColour (TextButton::textColourOffId, COLOUR_PRIMARY); + pluginSettingsButton->setColour (TextButton::textColourOnId, COLOUR_ACCENT); + + TextButton* editorSettingsButton = new TextButton ("Editor", "Switch to editor settings tab"); + editorSettingsButton->setComponentID (EDITOR_SETTINGS_BUTTON_ID); + editorSettingsButton->setClickingTogglesState (true); + editorSettingsButton->setColour (TextButton::buttonColourId, Colour (0x0)); + editorSettingsButton->setColour (TextButton::buttonOnColourId, Colour (0x0)); + editorSettingsButton->setColour (TextButton::textColourOffId, COLOUR_PRIMARY); + editorSettingsButton->setColour (TextButton::textColourOnId, COLOUR_ACCENT); + + // Open Ephys + m_buttonGroupManager.addButton (projectSettingsButton); + m_buttonGroupManager.addButton (pluginSettingsButton); + m_buttonGroupManager.addButton (editorSettingsButton); + m_buttonGroupManager.setRadioButtonMode (true); + m_buttonGroupManager.setButtonListener (this); + m_buttonGroupManager.setButtonsLookAndFeel (m_materialButtonLookAndFeel); + m_buttonGroupManager.setColour (ButtonGroupManager::backgroundColourId, Colours::white); + m_buttonGroupManager.setColour (ButtonGroupManager::outlineColourId, Colour (0x0)); + m_buttonGroupManager.setColour (LinearButtonGroupManager::accentColourId, COLOUR_ACCENT); + addChildComponent (&m_buttonGroupManager); + + m_buttonGroupManager.setVisible (project.getProjectType().isOpenEphysPlugin()); } ~SettingsComp() @@ -315,9 +359,28 @@ private: project.removeChangeListener (this); } + Rectangle<int> updateSizeAndGetNewBounds() + { + const int groupComponentWidth = jmax (550, getParentWidth() - 20); + const bool isOpenEphysPlugin = project.getProjectType().isOpenEphysPlugin(); + + int y = isOpenEphysPlugin ? 25 : 0; + y += group.updateSize (12, y, groupComponentWidth - 12); + + m_buttonGroupManager.setBounds (0, 0, 300, 36); + + return Rectangle<int> (0, 0, groupComponentWidth, y); + } + void parentSizeChanged() override { - updateSize (*this, group); + const auto newBounds = updateSizeAndGetNewBounds(); + setSize (newBounds.getWidth(), newBounds.getHeight()); + } + + void resized() override + { + updateSizeAndGetNewBounds(); } void updatePropertyList() @@ -325,12 +388,29 @@ private: PropertyListBuilder props; project.createPropertyEditors (props); group.setProperties (props); - group.setName ("Project Settings"); + //group.setName ("Project Settings"); lastProjectType = project.getProjectTypeValue().getValue(); parentSizeChanged(); } + void buttonClicked (Button* buttonThatWasClicked) + { + const auto buttonID = buttonThatWasClicked->getComponentID(); + if (buttonID == PROJECT_SETTINGS_BUTTON_ID) + { + group.setVisible (true); + } + else if (buttonID == PLUGIN_SETTINGS_BUTTON_ID) + { + group.setVisible (false); + } + else if (buttonID == EDITOR_SETTINGS_BUTTON_ID) + { + group.setVisible (false); + } + } + void changeListenerCallback (ChangeBroadcaster*) override { if (lastProjectType != project.getProjectTypeValue().getValue()) @@ -342,6 +422,14 @@ private: var lastProjectType; PropertyGroupComponent group; + LinearButtonGroupManager m_buttonGroupManager; + + SharedResourcePointer<MaterialButtonLookAndFeel> m_materialButtonLookAndFeel; + + static constexpr const char* PROJECT_SETTINGS_BUTTON_ID = "projectSettingsTab"; + static constexpr const char* PLUGIN_SETTINGS_BUTTON_ID = "pluginSettingsTab"; + static constexpr const char* EDITOR_SETTINGS_BUTTON_ID = "editorSettingsTab"; + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (SettingsComp) }; diff --git a/PluginGenerator/Source/Project/jucer_Project.cpp b/PluginGenerator/Source/Project/jucer_Project.cpp index db3248b090e6541bcfd5ce99db0a813c5bfef6ed..42e545b257dc68a4b908281f9de8943da0dc50a8 100644 --- a/PluginGenerator/Source/Project/jucer_Project.cpp +++ b/PluginGenerator/Source/Project/jucer_Project.cpp @@ -30,6 +30,7 @@ #include "../Application/jucer_OpenDocumentManager.h" #include "../Application/jucer_Application.h" + namespace { String makeValid4CC (const String& seed) @@ -122,6 +123,9 @@ void Project::setMissingDefaultValues() if (getProjectType().isAudioPlugin()) setMissingAudioPluginDefaultValues(); + if (getProjectType().isOpenEphysPlugin()) + setMissingOpenEphysPluginDefaultValues(); + getModules().sortAlphabetically(); if (getBundleIdentifier().toString().isEmpty()) @@ -171,6 +175,21 @@ void Project::setMissingAudioPluginDefaultValues() setValueIfVoid (getPluginAAXCategory(), "AAX_ePlugInCategory_Dynamics"); } +void Project::setMissingOpenEphysPluginDefaultValues() +{ + const String sanitisedProjectName (CodeHelpers::makeValidIdentifier (getTitle(), false, true, false)); + + setValueIfVoid (getPluginName(), getTitle()); + setValueIfVoid (getPluginDesc(), getTitle()); + setValueIfVoid (getPluginManufacturer(), "yourcompany"); + setValueIfVoid (getPluginManufacturerCode(), "Manu"); + setValueIfVoid (getPluginCode(), makeValid4CC (getProjectUID() + getProjectUID())); + + setValueIfVoid (getOpenEphysPluginType(), NOT_A_PLUGIN_TYPE); + setValueIfVoid (getOpenEphysPluginProcessorType(), PROCESSOR_TYPE_INVALID); + setValueIfVoid (getOpenEphysPluginFileSourceSupportedExts(), ""); +} + void Project::updateOldStyleConfigList() { ValueTree deprecatedConfigsList (projectRoot.getChildWithName (Ids::CONFIGURATIONS)); @@ -462,6 +481,9 @@ void Project::createPropertyEditors (PropertyListBuilder& props) if (getProjectType().isAudioPlugin()) createAudioPluginPropertyEditors (props); + if (getProjectType().isOpenEphysPlugin()) + createOpenEphysPluginPropertyEditors (props); + { const int maxSizes[] = { 20480, 10240, 6144, 2048, 1024, 512, 256, 128, 64 }; @@ -574,6 +596,51 @@ void Project::createAudioPluginPropertyEditors (PropertyListBuilder& props) "The value to use for the JucePlugin_AAXIdentifier setting"); } +void Project::createOpenEphysPluginPropertyEditors (PropertyListBuilder& props) +{ + props.add (new TextPropertyComponent (getPluginName(), "Plugin Display Name", 128, false), + "The name of your plugin that will be displayed in the Open Ephys GUI (keep it short!)"); + props.add (new TextPropertyComponent (getPluginDesc(), "Plugin Description", 256, false), + "A short description of your plugin."); + + props.add (new TextPropertyComponent (getPluginManufacturer(), "Plugin Manufacturer", 256, false), + "The name of your company (cannot be blank)."); + props.add (new TextPropertyComponent (getPluginManufacturerCode(), "Plugin Manufacturer Code", 4, false), + "A four-character unique ID for your company. Note that for AU compatibility, this must contain at least one upper-case letter!"); + props.add (new TextPropertyComponent (getPluginCode(), "Plugin Code", 4, false), + "A four-character unique ID for your plugin. Note that for AU compatibility, this must contain at least one upper-case letter!"); + + // Plugin types + props.add (new TextPropertyComponent (getOpenEphysPluginType(), "Plugin Type", 128, false), + "Select type of the Open Ephys plugin"); + + // Processor types + StringArray processorTypesNames; + Array<var> processorTypesVar; + Array<PluginProcessorType> processorTypes; + processorTypes.add (PROCESSOR_TYPE_FILTER); + processorTypes.add (PROCESSOR_TYPE_SOURCE); + processorTypes.add (PROCESSOR_TYPE_SINK); + processorTypes.add (PROCESSOR_TYPE_SPLITTER); + processorTypes.add (PROCESSOR_TYPE_MERGER); + processorTypes.add (PROCESSOR_TYPE_UTILITY); + + for (int i = 0; i < processorTypes.size(); ++i) + { + processorTypesNames.add (getProcessorTypeHumanReadableName (processorTypes[i])); + processorTypesVar.add (processorTypes[i]); + } + + props.add (new ChoicePropertyComponent (getOpenEphysPluginProcessorType(), "Plugin type", processorTypesNames, processorTypesVar)); + + // FileSource plugin type + if (getPluginType() == PLUGIN_TYPE_FILE_SOURCE) + { + props.add (new TextPropertyComponent (getOpenEphysPluginFileSourceSupportedExts(), "Supported file extensions", 128, false), + "Semicolon separated list of supported extensions. E.g.:\"txt;dat;info;kwd\""); + } +} + //============================================================================== static StringArray getVersionSegments (const Project& p) { diff --git a/PluginGenerator/Source/Project/jucer_Project.h b/PluginGenerator/Source/Project/jucer_Project.h index f923408c8b80816b02b6573c08ef875fc7159368..c410ad30d270a9d3cb263e69f20ce98d97feb0f3 100644 --- a/PluginGenerator/Source/Project/jucer_Project.h +++ b/PluginGenerator/Source/Project/jucer_Project.h @@ -30,6 +30,8 @@ class ProjectType; class LibraryModule; class EnabledModuleList; +#include "../Utility/openEphys_pluginHelpers.h" + //============================================================================== class Project : public FileBasedDocument, public ValueTree::Listener @@ -153,6 +155,19 @@ public: String getAUMainTypeCode(); String getPluginVSTCategoryString(); + // <Open Ephys> + Value getOpenEphysPluginType() { return getProjectValue ("openEphysPluginType"); } + Value getOpenEphysPluginProcessorType() { return getProjectValue ("openEphysPluginProcessorType"); } + Value getOpenEphysPluginFileSourceSupportedExts() { return getProjectValue ("openEphysFileSourcePluginSupportedExtensions"); } + + bool isProcessorPlugin() const { return m_pluginType == PLUGIN_TYPE_PROCESSOR; } + + PluginType getPluginType() const { return m_pluginType; } + PluginProcessorType getPluginProcessorType() const { return m_pluginProcessorType; } + + void setPluginType (PluginType pluginType) { m_pluginType = pluginType; } + void setPluginProcessorType (PluginProcessorType pluginProcessorType) { m_pluginProcessorType = pluginProcessorType; } + bool isAUPluginHost(); bool isVSTPluginHost(); bool isVST3PluginHost(); @@ -315,12 +330,20 @@ private: void setMissingAudioPluginDefaultValues(); void createAudioPluginPropertyEditors (PropertyListBuilder& props); + // <Open Ephys> + void setMissingOpenEphysPluginDefaultValues(); + void createOpenEphysPluginPropertyEditors (PropertyListBuilder& props); + + //============================================================================== friend class Item; ValueTree projectRoot; ScopedPointer<EnabledModuleList> enabledModulesList; bool isSaving; + PluginType m_pluginType { NOT_A_PLUGIN_TYPE }; + PluginProcessorType m_pluginProcessorType { PROCESSOR_TYPE_INVALID }; + void updateProjectSettings(); void sanitiseConfigFlags(); void setMissingDefaultValues(); diff --git a/PluginGenerator/Source/Project/jucer_ProjectType.h b/PluginGenerator/Source/Project/jucer_ProjectType.h index 855c5cb03d77090f7f4c385732e0d20afd6e9bc4..d69c539a179cf08f37c587a33f88e6a6e8993764 100644 --- a/PluginGenerator/Source/Project/jucer_ProjectType.h +++ b/PluginGenerator/Source/Project/jucer_ProjectType.h @@ -25,6 +25,8 @@ #ifndef JUCER_PROJECTTYPE_H_INCLUDED #define JUCER_PROJECTTYPE_H_INCLUDED +#include "../Utility/openEphys_pluginHelpers.h" + class Project; class ProjectExporter; diff --git a/PluginGenerator/Source/Project/jucer_TreeItemTypes.h b/PluginGenerator/Source/Project/jucer_TreeItemTypes.h index 4dc1970d265103989997210f7fa3abb0f0fa23ee..fd569554879dce6ce5d79344264e874f08c1e8cd 100644 --- a/PluginGenerator/Source/Project/jucer_TreeItemTypes.h +++ b/PluginGenerator/Source/Project/jucer_TreeItemTypes.h @@ -32,6 +32,8 @@ #include "jucer_GroupInformationComponent.h" #include "jucer_ModulesPanel.h" +#include "../../../Source/UI/Utils/LinearButtonGroupManager.h" +#include "../../../Source/UI/LookAndFeel/MaterialButtonLookAndFeel.h" struct FileTreeItemTypes { diff --git a/PluginGenerator/Source/Utility/openEphys_pluginHelpers.h b/PluginGenerator/Source/Utility/openEphys_pluginHelpers.h index ebbcf0c4684be923b9e6bfa4d8502c09d830cb65..6c905860048f8ec4f17062352ab0ea7bbf3b46ee 100644 --- a/PluginGenerator/Source/Utility/openEphys_pluginHelpers.h +++ b/PluginGenerator/Source/Utility/openEphys_pluginHelpers.h @@ -20,6 +20,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#ifndef __OPEN_EPHYS_PLUGIN_HELPERS__ +#define __OPEN_EPHYS_PLUGIN_HELPERS__ + #include "../../../Source/Processors/PluginManager/PluginIDs.h" using namespace Plugin; @@ -128,6 +131,48 @@ static String getLibProcessorTypeString (PluginProcessorType processorType) } +/** Returns the string with the human friendly name for plugin type. */ +static String getPluginTypeHumanReadableName (PluginType pluginType) +{ + switch (pluginType) + { + case PLUGIN_TYPE_PROCESSOR: + return "Processor"; + case PLUGIN_TYPE_RECORD_ENGINE: + return "Record Engine"; + case PLUGIN_TYPE_DATA_THREAD: + return "Data Thread"; + case PLUGIN_TYPE_FILE_SOURCE: + return "File Source"; + default: + return "InvalidPluginInfoType"; + }; +} + + +/** Returns the string with the human friendly name for processor type. */ +static String getProcessorTypeHumanReadableName (PluginProcessorType processorType) +{ + switch (processorType) + { + case PROCESSOR_TYPE_FILTER: + return "Filter"; + case PROCESSOR_TYPE_SOURCE: + return "Source"; + case PROCESSOR_TYPE_SINK: + return "Sink"; + case PROCESSOR_TYPE_UTILITY: + return "Utility"; + case PROCESSOR_TYPE_MERGER: + return "Merger"; + case PROCESSOR_TYPE_SPLITTER: + return "Splitter"; + default: + return "Invalid processor"; + }; +} + + // ============================================================================ // ============================================================================ // ============================================================================ @@ -149,3 +194,7 @@ static String getTemplateProcessorFileName (PluginType pluginType) return "InvalidFileName"; }; } + + +#endif // __OPEN_EPHYS_PLUGIN_HELPERS__ + diff --git a/PluginGenerator/Source/Wizards/openEphys_ProjectWizard_OpenEphysPlugin.h b/PluginGenerator/Source/Wizards/openEphys_ProjectWizard_OpenEphysPlugin.h index e5446191c64ce41a55a24f9f3dccb1e3da438d88..1c522abdea8b0589ac92dd6827b8343c31c78471 100644 --- a/PluginGenerator/Source/Wizards/openEphys_ProjectWizard_OpenEphysPlugin.h +++ b/PluginGenerator/Source/Wizards/openEphys_ProjectWizard_OpenEphysPlugin.h @@ -122,7 +122,6 @@ static void updateOpenEphysWizardComboBoxBounds (const Component& parent) // ============================================================================ struct OpenEphysPluginAppWizard : public NewProjectWizard - , public ComboBox::Listener { OpenEphysPluginAppWizard() {} @@ -201,41 +200,6 @@ struct OpenEphysPluginAppWizard : public NewProjectWizard } - void comboBoxChanged (ComboBox* comboBoxThatHasChanged) override - { - return; - - // UNUSED NOW - // - // - // - // - const auto comboBoxId = comboBoxThatHasChanged->getComponentID(); - if (comboBoxId == COMBOBOX_ID_PLUGIN_TYPE) - { - const auto selectedIndex = comboBoxThatHasChanged->getSelectedItemIndex() + 1; - - ComboBox* processorTypeComboBox = dynamic_cast<ComboBox*> (ownerWizardComp->findChildWithID (COMBOBOX_ID_PROCESSOR_TYPE)); - jassert (processorTypeComboBox != nullptr); - - // If was selected "Processor" type of the plugin, then show "Processor type" combobox - // and reduce size of both ComboBoxes to have equal size. - if (selectedIndex == (int)PLUGIN_TYPE_PROCESSOR) - { - processorTypeComboBox->setVisible (true); - - // Change "Plugin type" combobox's width - comboBoxThatHasChanged->setBounds (comboBoxThatHasChanged->getBounds() - .withWidth (processorTypeComboBox->getWidth())); - } - else - { - processorTypeComboBox->setVisible (false); - } - } - } - - bool initialiseProject (Project& project) override { createSourceFolder(); @@ -251,6 +215,9 @@ struct OpenEphysPluginAppWizard : public NewProjectWizard project.getProjectTypeValue() = ProjectType_OpenEphysPlugin::getTypeName(); + project.setPluginType (m_pluginType); + project.setPluginProcessorType (m_processorType); + Project::Item sourceGroup (createSourceGroup (project)); project.getConfigFlag ("JUCE_QUICKTIME") = Project::configFlagDisabled; // disabled because it interferes with RTAS build on PC project.shouldBuildVST().setValue (false); @@ -281,7 +248,6 @@ struct OpenEphysPluginAppWizard : public NewProjectWizard const auto templatePluginLibFile = templatesFolder.getChildFile ("openEphys_OpenEphysLibTemplate.cpp"); const auto newPluginLibFile = getSourceFilesFolder().getChildFile ("OpenEphysLib.cpp"); - String libPluginProcessorType = m_pluginType == PLUGIN_TYPE_PROCESSOR ? ("info->processor.type = " + getLibProcessorTypeString (m_processorType) + ";") : ""; @@ -443,7 +409,7 @@ struct OpenEphysPluginAppWizard : public NewProjectWizard private: - PluginType m_pluginType { PLUGIN_TYPE_FILE_SOURCE } ; + PluginType m_pluginType { NOT_A_PLUGIN_TYPE } ; PluginProcessorType m_processorType { PROCESSOR_TYPE_INVALID }; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (OpenEphysPluginAppWizard) diff --git a/PluginGenerator/Source/jucer_Headers.h b/PluginGenerator/Source/jucer_Headers.h index e100107b18ec9e6109d9c6f8d730ce9070cbae07..6227f05882624a967e9120a374745ee44bb0a94f 100644 --- a/PluginGenerator/Source/jucer_Headers.h +++ b/PluginGenerator/Source/jucer_Headers.h @@ -27,6 +27,8 @@ #include "../JuceLibraryCode/JuceHeader.h" #include "Application/jucer_CommonHeaders.h" +#define JUCE_OPEN_EPHYS_PLUGIN_GENERATOR // to avoid redefinition error when using juce header. + #if JUCE_DEBUG #define RUN_CLANG_IN_CHILD_PROCESS 1 diff --git a/Source/Processors/PluginManager/PluginIDs.h b/Source/Processors/PluginManager/PluginIDs.h index 500353f757b43a3d3116656607c5c388e37e7b40..3a238e66674f525286357e03f7a2f9d397c77228 100644 --- a/Source/Processors/PluginManager/PluginIDs.h +++ b/Source/Processors/PluginManager/PluginIDs.h @@ -34,7 +34,6 @@ enum PluginProcessorType , PROCESSOR_TYPE_SPLITTER , PROCESSOR_TYPE_MERGER , PROCESSOR_TYPE_UTILITY - , PROCESSOR_TYPE_DATA_FORMAT , PROCESSOR_TYPE_INVALID };