From 911b27dcbde1b9b9bd6e5ed31ab4e61331fefae5 Mon Sep 17 00:00:00 2001 From: Julian Storer Date: Fri, 11 Jun 2010 21:47:20 +0100 Subject: [PATCH] Added Jucer support for the new Visual Studio 2010 projects. --- Builds/VisualStudio2005/Juce.vcproj | 4 +- Builds/VisualStudio2008/Juce.vcproj | 4 +- Builds/VisualStudio2008_DLL/Juce.vcproj | 4 +- Builds/VisualStudio2010/Juce.sln | 19 + Builds/VisualStudio2010/Juce.vcxproj | 765 ++++++ Builds/VisualStudio2010/Juce.vcxproj.filters | 2155 +++++++++++++++++ Juce.jucer | 4 + .../Builds/MacOSX/Info.plist | 2 +- .../Builds/VisualStudio2005/The Jucer.vcproj | 64 +- .../Builds/VisualStudio2008/The Jucer.vcproj | 64 +- .../Builds/VisualStudio2010/The Jucer.sln | 19 + .../Builds/VisualStudio2010/The Jucer.vcxproj | 238 ++ .../The Jucer.vcxproj.filters | 412 ++++ extras/Jucer (experimental)/Jucer.jucer | 2 + .../Component/jucer_ComponentDocument.cpp | 2 +- .../model/Component/jucer_ComponentDocument.h | 2 +- .../model/Drawable/jucer_DrawableDocument.cpp | 4 +- .../model/Drawable/jucer_DrawableDocument.h | 2 +- .../model/Project/jucer_ProjectExport_MSVC.h | 1005 +++++--- .../model/Project/jucer_ProjectExporter.cpp | 29 +- .../ui/Editor Base/jucer_EditorCanvas.cpp | 69 +- .../ui/Editor Base/jucer_EditorCanvas.h | 27 +- .../Source/utility/jucer_MarkerListBase.h | 2 +- .../VisualStudio2005/Amalgamator.vcproj | 4 +- .../VisualStudio2008/Amalgamator.vcproj | 4 +- .../Builds/MacOSX/Info.plist | 2 +- .../VisualStudio2005/Plugin Host.vcproj | 4 +- .../VisualStudio2008/Plugin Host.vcproj | 4 +- .../demo/Builds/MacOSX/Info.plist | 2 +- .../VisualStudio2005/JuceDemoPlugin.vcproj | 4 +- .../VisualStudio2008/JuceDemoPlugin.vcproj | 4 +- .../VisualStudio2005/BinaryBuilder.vcproj | 4 +- .../VisualStudio2008/BinaryBuilder.vcproj | 4 +- .../example projects/Builds/MacOSX/Info.plist | 2 +- .../Builds/VisualStudio2005/HelloWorld.vcproj | 4 +- .../Builds/VisualStudio2008/HelloWorld.vcproj | 4 +- .../example projects/Builds/iPhone/Info.plist | 2 +- extras/juce demo/Builds/MacOSX/Info.plist | 2 +- .../Builds/VisualStudio2005/Juce Demo.vcproj | 24 +- .../Builds/VisualStudio2008/Juce Demo.vcproj | 24 +- .../Builds/VisualStudio2010/Juce Demo.sln | 19 + .../Builds/VisualStudio2010/Juce Demo.vcxproj | 168 ++ .../Juce Demo.vcxproj.filters | 154 ++ extras/juce demo/Builds/iPhone/Info.plist | 2 +- extras/juce demo/Juce Demo.jucer | 2 + .../special/juce_OpenGLComponent.cpp | 7 +- src/text/juce_XmlElement.cpp | 4 +- 47 files changed, 4915 insertions(+), 437 deletions(-) create mode 100644 Builds/VisualStudio2010/Juce.sln create mode 100644 Builds/VisualStudio2010/Juce.vcxproj create mode 100644 Builds/VisualStudio2010/Juce.vcxproj.filters create mode 100644 extras/Jucer (experimental)/Builds/VisualStudio2010/The Jucer.sln create mode 100644 extras/Jucer (experimental)/Builds/VisualStudio2010/The Jucer.vcxproj create mode 100644 extras/Jucer (experimental)/Builds/VisualStudio2010/The Jucer.vcxproj.filters create mode 100644 extras/juce demo/Builds/VisualStudio2010/Juce Demo.sln create mode 100644 extras/juce demo/Builds/VisualStudio2010/Juce Demo.vcxproj create mode 100644 extras/juce demo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters diff --git a/Builds/VisualStudio2005/Juce.vcproj b/Builds/VisualStudio2005/Juce.vcproj index 8f5d225630..c4f4f4913a 100644 --- a/Builds/VisualStudio2005/Juce.vcproj +++ b/Builds/VisualStudio2005/Juce.vcproj @@ -10,7 +10,7 @@ - - - - - - + + + + + Debug + Win32 + + + Release + Win32 + + + + {2F2AF28C-CD42-F164-1AC5-90A9ACD39DD3} + + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + true + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\..\..\bin\ + .\..\..\bin\ + jucelib_static_Win32_debug + .\..\..\bin\ + .\..\..\bin\ + jucelib_static_Win32 + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Disabled + EditAndContinue + %(AdditionalIncludeDirectories) + JUCER_VS2010_78A501D;WIN32;_WINDOWS;_DEBUG;_LIB;%(PreprocessorDefinitions) + MultiThreadedDebug + true + + .\Debug\ + .\Debug\ + .\Debug\ + Level4 + true + + + _DEBUG;%(PreprocessorDefinitions) + + + .\..\..\bin\jucelib_static_Win32_debug.lib + true + libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) + true + .\Debug\jucedebug.pdb + Windows + MachineX86 + + + true + .\Debug\jucedebug.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + MaxSpeed + %(AdditionalIncludeDirectories) + JUCER_VS2010_78A501D;WIN32;_WINDOWS;NDEBUG;_LIB;%(PreprocessorDefinitions) + MultiThreaded + true + + .\Release\ + .\Release\ + .\Release\ + Level4 + true + + + NDEBUG;%(PreprocessorDefinitions) + + + .\..\..\bin\jucelib_static_Win32.lib + true + %(IgnoreSpecificDefaultLibraries) + false + .\Release\juce.pdb + Windows + MachineX86 + true + true + + + true + .\Release\juce.bsc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Builds/VisualStudio2010/Juce.vcxproj.filters b/Builds/VisualStudio2010/Juce.vcxproj.filters new file mode 100644 index 0000000000..85fb0ccddf --- /dev/null +++ b/Builds/VisualStudio2010/Juce.vcxproj.filters @@ -0,0 +1,2155 @@ + + + + + + {4EBB1AA0-C8C1-3A6E-4EEF-16D94A800C1D} + + + {B3957F8E-6663-9185-1136-725FC483F754} + + + {76ED2629-A92C-0B92-503A-087604454893} + + + {0D4D0FFE-D16E-58DC-8BD2-B98A19E3D3E5} + + + {198C8EED-D309-F1DE-6B4E-C351CC50812F} + + + {21B05F4A-D58A-C45D-09BA-8A736B3D67C3} + + + {78A04D1F-179A-65F9-AF83-CC9C07828139} + + + {22AEF7CD-EF75-F3B4-8C08-F1FE5A087932} + + + {5B74C3D9-7807-74F3-0944-5242688166CE} + + + {726F1543-3280-C554-0844-B5AF99C2392D} + + + {46220919-DA8A-82C3-B033-1939CFCB5579} + + + {A0FD2518-2705-57EF-1770-7C9BB5396CC7} + + + {8D895E8F-029F-B8EA-E30D-6DE6D776C4B8} + + + {4FAABF21-2D54-2382-DBE2-34AC36E64382} + + + {9379B582-DCC2-F948-F1DE-A0D450B0DBEF} + + + {1C014FAC-29EE-15DA-644F-6C5DC4AECE62} + + + {E290BC33-5CD3-5DCF-DA4E-C16839648601} + + + {C1DD5A90-9EF3-E7A3-51D2-4F764B95DF4E} + + + {F87ADC73-12F9-6920-443B-408155CE0BA6} + + + {28FF351A-88A5-954B-43EB-1786A20796C4} + + + {E7BF31BD-CF43-6336-3393-A91CEB523BD4} + + + {6D87BD0C-C8BC-F4A1-9370-44D21B630459} + + + {7130B08B-624D-1D77-EAC7-04C96F798B1C} + + + {7637E9FA-EF6E-D1AD-948C-D2FC50F34B1B} + + + {C26D9DA0-B2D0-FF8F-2CEC-72157E40911B} + + + {CD7E4A5D-B44F-D468-7A29-E9812E562684} + + + {91615EAF-82B1-CE71-C546-B107666DC73C} + + + {B0D9CCC8-4718-BF06-EA13-DA2333E77AEE} + + + {6A81EDB6-D54A-343C-8BB0-CCE4DAA4823F} + + + {40D34D66-1607-CAC3-2F76-226E0C328620} + + + {FBDC681F-229A-7BDD-B1B3-10BE5A7F9A9B} + + + {3451EF52-8398-5DB1-9C74-EFD21B8ED2EF} + + + {ABF2F706-BD6B-F226-E0AC-76D0FC7ADB5A} + + + {6FC7F6EC-55E2-32DF-72F0-FFD044AA8C3C} + + + {E0962947-51B5-F42D-204C-AFC22B38AD94} + + + {8E523C69-A1A0-BDA3-9B80-FA1278E0C007} + + + {6AA8AEDB-B5A6-26A6-50AC-4EEF5B60D7EF} + + + {256CA617-3048-F818-38CA-AF50C584E234} + + + {08423EB8-E26E-3600-7177-8E3CD4BBF639} + + + {FC05C369-DC75-D434-ED29-1ECF5A8ED49F} + + + {E6E900B2-D5B4-7AE6-2AAB-A1E88B530DFE} + + + {92FD5E6C-144F-9B2E-F659-6D01129A62FC} + + + {64622FE4-B44B-D474-B7E9-6CCAB470D0AE} + + + {C2308939-D584-9814-C8E8-EFA033FFC652} + + + {A5F8397A-22E0-232C-6BDB-9A112412C424} + + + {BAD6B5EE-236C-8A52-235E-F92C1F98F8F7} + + + {37D4DBD5-448B-3915-AF1D-06AE76B6156C} + + + {B08B93CD-344E-92C9-88DF-BE1A2F8E2BD1} + + + {CFBC5FA1-5A68-B012-A852-1D798CD2CBDF} + + + {56CD7BE1-9B0B-A873-6126-8F47C2268CD3} + + + {63A5A988-2E40-A16D-FB1D-337F27BAF97A} + + + {69764D4B-36D6-B011-D88D-71CE947588EE} + + + + + Juce\Source\application + + + Juce\Source\application + + + Juce\Source\application + + + Juce\Source\application + + + Juce\Source\application + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\devices + + + Juce\Source\audio\devices + + + Juce\Source\audio\devices + + + Juce\Source\audio\devices + + + Juce\Source\audio\dsp + + + Juce\Source\audio\dsp + + + Juce\Source\audio\dsp + + + Juce\Source\audio\midi + + + Juce\Source\audio\midi + + + Juce\Source\audio\midi + + + Juce\Source\audio\midi + + + Juce\Source\audio\midi + + + Juce\Source\audio\midi + + + Juce\Source\audio\plugins\formats + + + Juce\Source\audio\plugins\formats + + + Juce\Source\audio\plugins\formats + + + Juce\Source\audio\plugins + + + Juce\Source\audio\plugins + + + Juce\Source\audio\plugins + + + Juce\Source\audio\plugins + + + Juce\Source\audio\plugins + + + Juce\Source\audio\plugins + + + Juce\Source\audio\plugins + + + Juce\Source\audio\processors + + + Juce\Source\audio\processors + + + Juce\Source\audio\processors + + + Juce\Source\audio\processors + + + Juce\Source\audio\processors + + + Juce\Source\audio\synthesisers + + + Juce\Source\audio\synthesisers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\cryptography + + + Juce\Source\cryptography + + + Juce\Source\cryptography + + + Juce\Source\cryptography + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\gui\components + + + Juce\Source\gui\components + + + Juce\Source\gui\components + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\code_editor + + + Juce\Source\gui\components\code_editor + + + Juce\Source\gui\components\code_editor + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\lookandfeel + + + Juce\Source\gui\components\lookandfeel + + + Juce\Source\gui\components\menus + + + Juce\Source\gui\components\menus + + + Juce\Source\gui\components\menus + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\graphics\colour + + + Juce\Source\gui\graphics\colour + + + Juce\Source\gui\graphics\colour + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\drawables + + + Juce\Source\gui\graphics\drawables + + + Juce\Source\gui\graphics\drawables + + + Juce\Source\gui\graphics\drawables + + + Juce\Source\gui\graphics\drawables + + + Juce\Source\gui\graphics\drawables + + + Juce\Source\gui\graphics\effects + + + Juce\Source\gui\graphics\effects + + + Juce\Source\gui\graphics\effects + + + Juce\Source\gui\graphics\fonts + + + Juce\Source\gui\graphics\fonts + + + Juce\Source\gui\graphics\fonts + + + Juce\Source\gui\graphics\fonts + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\imaging\image_file_formats + + + Juce\Source\gui\graphics\imaging\image_file_formats + + + Juce\Source\gui\graphics\imaging\image_file_formats + + + Juce\Source\gui\graphics\imaging + + + Juce\Source\gui\graphics\imaging + + + Juce\Source\gui\graphics\imaging + + + Juce\Source\gui\graphics\imaging + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\network + + + Juce\Source\io\network + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\native + + + Juce\Source\native + + + Juce\Source\native + + + Juce\Source\native\common + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\linux + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\utilities + + + Juce\Source\utilities + + + Juce\Source\utilities + + + Juce\Source\utilities + + + Juce\Source\utilities + + + + + Juce\Source\application + + + Juce\Source\application + + + Juce\Source\application + + + Juce\Source\application + + + Juce\Source\application + + + Juce\Source\application + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_file_formats + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\audio_sources + + + Juce\Source\audio\devices + + + Juce\Source\audio\devices + + + Juce\Source\audio\devices + + + Juce\Source\audio\devices + + + Juce\Source\audio\devices + + + Juce\Source\audio\dsp + + + Juce\Source\audio\dsp + + + Juce\Source\audio\dsp + + + Juce\Source\audio\midi + + + Juce\Source\audio\midi + + + Juce\Source\audio\midi + + + Juce\Source\audio\midi + + + Juce\Source\audio\midi + + + Juce\Source\audio\midi + + + Juce\Source\audio\plugins\formats + + + Juce\Source\audio\plugins\formats + + + Juce\Source\audio\plugins\formats + + + Juce\Source\audio\plugins\formats + + + Juce\Source\audio\plugins\formats + + + Juce\Source\audio\plugins + + + Juce\Source\audio\plugins + + + Juce\Source\audio\plugins + + + Juce\Source\audio\plugins + + + Juce\Source\audio\plugins + + + Juce\Source\audio\plugins + + + Juce\Source\audio\plugins + + + Juce\Source\audio\processors + + + Juce\Source\audio\processors + + + Juce\Source\audio\processors + + + Juce\Source\audio\processors + + + Juce\Source\audio\processors + + + Juce\Source\audio\processors + + + Juce\Source\audio\processors + + + Juce\Source\audio\synthesisers + + + Juce\Source\audio\synthesisers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\containers + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\core + + + Juce\Source\cryptography + + + Juce\Source\cryptography + + + Juce\Source\cryptography + + + Juce\Source\cryptography + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\events + + + Juce\Source\gui\components + + + Juce\Source\gui\components + + + Juce\Source\gui\components + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\buttons + + + Juce\Source\gui\components\code_editor + + + Juce\Source\gui\components\code_editor + + + Juce\Source\gui\components\code_editor + + + Juce\Source\gui\components\code_editor + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\controls + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\filebrowser + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\keyboard + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\layout + + + Juce\Source\gui\components\lookandfeel + + + Juce\Source\gui\components\lookandfeel + + + Juce\Source\gui\components\menus + + + Juce\Source\gui\components\menus + + + Juce\Source\gui\components\menus + + + Juce\Source\gui\components\menus + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\mouse + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\properties + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\special + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\components\windows + + + Juce\Source\gui\graphics\colour + + + Juce\Source\gui\graphics\colour + + + Juce\Source\gui\graphics\colour + + + Juce\Source\gui\graphics\colour + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\contexts + + + Juce\Source\gui\graphics\drawables + + + Juce\Source\gui\graphics\drawables + + + Juce\Source\gui\graphics\drawables + + + Juce\Source\gui\graphics\drawables + + + Juce\Source\gui\graphics\drawables + + + Juce\Source\gui\graphics\effects + + + Juce\Source\gui\graphics\effects + + + Juce\Source\gui\graphics\effects + + + Juce\Source\gui\graphics\effects + + + Juce\Source\gui\graphics\fonts + + + Juce\Source\gui\graphics\fonts + + + Juce\Source\gui\graphics\fonts + + + Juce\Source\gui\graphics\fonts + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\geometry + + + Juce\Source\gui\graphics\imaging\image_file_formats + + + Juce\Source\gui\graphics\imaging + + + Juce\Source\gui\graphics\imaging + + + Juce\Source\gui\graphics\imaging + + + Juce\Source\gui\graphics\imaging + + + Juce\Source\gui\graphics\imaging + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\files + + + Juce\Source\io\network + + + Juce\Source\io\network + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\io\streams + + + Juce\Source\native\common + + + Juce\Source\native\linux + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\mac + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\native\windows + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\text + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\threads + + + Juce\Source\utilities + + + Juce\Source\utilities + + + Juce\Source\utilities + + + Juce\Source\utilities + + + Juce\Source\utilities + + + Juce\Source\utilities + + + Juce\Source\utilities + + + Juce\Source\utilities + + + Juce\Source + + + Juce\Source + + + diff --git a/Juce.jucer b/Juce.jucer index 68e95c82ea..268f848a72 100644 --- a/Juce.jucer +++ b/Juce.jucer @@ -24,6 +24,10 @@ rtasFolder="c:\SDKs\PT_80_SDK" libraryType="2" juceFolder="." extraDefs="JUCE_DLL_BUILD=1 JUCE_DLL=1" libraryName_Debug="JUCE_debug.dll" libraryName_Release="JUCE.dll"/> + CFBundleExecutable - ${EXECUTABLE_NAME} + ${EXECUTABLE_NAME} CFBundleIconFile CFBundleIdentifier diff --git a/extras/Jucer (experimental)/Builds/VisualStudio2005/The Jucer.vcproj b/extras/Jucer (experimental)/Builds/VisualStudio2005/The Jucer.vcproj index 723f2e13db..72b3b2161f 100644 --- a/extras/Jucer (experimental)/Builds/VisualStudio2005/The Jucer.vcproj +++ b/extras/Jucer (experimental)/Builds/VisualStudio2005/The Jucer.vcproj @@ -10,7 +10,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/extras/Jucer (experimental)/Builds/VisualStudio2008/The Jucer.vcproj b/extras/Jucer (experimental)/Builds/VisualStudio2008/The Jucer.vcproj index 3615212698..720823471c 100644 --- a/extras/Jucer (experimental)/Builds/VisualStudio2008/The Jucer.vcproj +++ b/extras/Jucer (experimental)/Builds/VisualStudio2008/The Jucer.vcproj @@ -10,7 +10,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/extras/Jucer (experimental)/Builds/VisualStudio2010/The Jucer.sln b/extras/Jucer (experimental)/Builds/VisualStudio2010/The Jucer.sln new file mode 100644 index 0000000000..eb1d8d9f0e --- /dev/null +++ b/extras/Jucer (experimental)/Builds/VisualStudio2010/The Jucer.sln @@ -0,0 +1,19 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +Project("{4E9D0CBA-BFAB-E5E4-0A60-A20FD97F37CA}") = "The Jucer", "The Jucer.vcxproj", "{C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Debug|Win32.ActiveCfg = Debug|Win32 + {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Debug|Win32.Build.0 = Debug|Win32 + {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Release|Win32.ActiveCfg = Release|Win32 + {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/extras/Jucer (experimental)/Builds/VisualStudio2010/The Jucer.vcxproj b/extras/Jucer (experimental)/Builds/VisualStudio2010/The Jucer.vcxproj new file mode 100644 index 0000000000..d81d065bd1 --- /dev/null +++ b/extras/Jucer (experimental)/Builds/VisualStudio2010/The Jucer.vcxproj @@ -0,0 +1,238 @@ + + + + + + Debug + Win32 + + + Release + Win32 + + + + {C9C4A72E-8CC9-D57E-C0D0-2E6109E48884} + + + + Application + false + MultiByte + + + Application + false + MultiByte + true + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\Debug\ + .\Debug\ + Jucer + .\Release\ + .\Release\ + Jucer + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Disabled + EditAndContinue + %(AdditionalIncludeDirectories) + JUCER_VS2010_78A501D;WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions) + MultiThreadedDebug + true + + .\Debug\ + .\Debug\ + .\Debug\ + Level4 + true + + + _DEBUG;%(PreprocessorDefinitions) + + + .\Debug\Jucer.exe + true + libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) + true + .\Debug\Jucer.pdb + Windows + MachineX86 + + + true + .\Debug\Jucer.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + MaxSpeed + %(AdditionalIncludeDirectories) + JUCER_VS2010_78A501D;WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions) + MultiThreaded + true + + .\Release\ + .\Release\ + .\Release\ + Level4 + true + + + NDEBUG;%(PreprocessorDefinitions) + + + .\Release\Jucer.exe + true + %(IgnoreSpecificDefaultLibraries) + false + .\Release\Jucer.pdb + Windows + MachineX86 + true + true + + + true + .\Release\Jucer.bsc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/Jucer (experimental)/Builds/VisualStudio2010/The Jucer.vcxproj.filters b/extras/Jucer (experimental)/Builds/VisualStudio2010/The Jucer.vcxproj.filters new file mode 100644 index 0000000000..6b832497b8 --- /dev/null +++ b/extras/Jucer (experimental)/Builds/VisualStudio2010/The Jucer.vcxproj.filters @@ -0,0 +1,412 @@ + + + + + + {251378DC-2EBB-4B5D-54B9-F55AC57A478F} + + + {A5344922-0D8B-B045-F28C-FED2183BC2C7} + + + {BB130AC7-0080-F6A3-9A33-66D8D081545C} + + + {373D0BD7-814C-7145-4C25-6D9C9E6D1D5D} + + + {7C9CA237-B750-662B-7DF8-5FD8FCAF4E3C} + + + {F9D69347-AF9F-BE13-7C53-9C497443E5AE} + + + {0FF8ACAB-44CE-46E5-1696-551E75158B70} + + + {F4F08AA9-6601-8093-5779-F29289064327} + + + {F476DB92-615F-54AF-2D4B-35031423FB68} + + + {37D72050-852A-B36C-3674-277B759737F1} + + + {04730C9B-9F60-192C-2577-97984C6BC024} + + + {B34892C3-DBB0-4445-A3A2-FF5FB798F25B} + + + {E870C076-EBCA-BE3D-D4EB-5D91F2FF6C9F} + + + {2E88444F-D7BD-E1A9-66EC-392A5E9341E5} + + + {80A084D8-BC07-0004-6213-67EFCAD6DC64} + + + {F7048EA6-F4B2-F31B-E402-E05D678A1111} + + + + + The Jucer\Model\Component + + + The Jucer\Model\Component + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Drawable + + + The Jucer\Model\Drawable + + + The Jucer\Model\Project + + + The Jucer\Model\Project + + + The Jucer\Model\Project + + + The Jucer\Model\Project + + + The Jucer\Model\Project + + + The Jucer\UI\Code Editor + + + The Jucer\UI\Component Editor + + + The Jucer\UI\Component Editor + + + The Jucer\UI\Drawable Editor + + + The Jucer\UI\Editor Base + + + The Jucer\UI + + + The Jucer\UI + + + The Jucer\UI + + + The Jucer\UI + + + The Jucer\UI\Project Editor + + + The Jucer\UI\Project Editor + + + The Jucer\UI\Project Editor + + + The Jucer\UI\Project Editor + + + The Jucer\UI\Project Editor + + + The Jucer\UI\Project Editor + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Main + + + The Jucer\Resources + + + The Jucer\Resources + + + The Jucer\Resources + + + The Jucer\Resources + + + The Jucer\Resources + + + The Jucer\Resources + + + The Jucer\Resources + + + The Jucer\Resources + + + The Jucer\Resources + + + The Jucer\Resources + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + + + The Jucer\Model\Component + + + The Jucer\Model\Component + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Component\Types + + + The Jucer\Model\Drawable + + + The Jucer\Model\Drawable + + + The Jucer\Model\Project + + + The Jucer\Model\Project + + + The Jucer\Model\Project + + + The Jucer\Model\Project + + + The Jucer\Model\Project + + + The Jucer\Model\Project + + + The Jucer\Model\Project + + + The Jucer\Model\Project + + + The Jucer\Model\Project + + + The Jucer\UI\Code Editor + + + The Jucer\UI\Component Editor + + + The Jucer\UI\Component Editor + + + The Jucer\UI\Component Editor + + + The Jucer\UI\Component Editor + + + The Jucer\UI\Component Editor + + + The Jucer\UI\Component Editor + + + The Jucer\UI\Drawable Editor + + + The Jucer\UI\Drawable Editor + + + The Jucer\UI\Drawable Editor + + + The Jucer\UI\Drawable Editor + + + The Jucer\UI\Editor Base + + + The Jucer\UI\Editor Base + + + The Jucer\UI\Editor Base + + + The Jucer\UI + + + The Jucer\UI + + + The Jucer\UI + + + The Jucer\UI + + + The Jucer\UI + + + The Jucer\UI\Project Editor + + + The Jucer\UI\Project Editor + + + The Jucer\UI\Project Editor + + + The Jucer\UI\Project Editor + + + The Jucer\UI\Project Editor + + + The Jucer\UI\Project Editor + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Utility + + + The Jucer\Main + + + The Jucer\Resources + + + The Jucer\Resources + + + The Jucer\Resources + + + The Jucer\Resources + + + The Jucer\Resources + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + diff --git a/extras/Jucer (experimental)/Jucer.jucer b/extras/Jucer (experimental)/Jucer.jucer index b61e76bee1..1d4dd2fa77 100644 --- a/extras/Jucer (experimental)/Jucer.jucer +++ b/extras/Jucer (experimental)/Jucer.jucer @@ -18,6 +18,8 @@ + & props) { ProjectExporter::createPropertyEditors (props); @@ -136,176 +76,14 @@ public: } } - //============================================================================== - const String create() - { - if (version == visualStudio6) - { - { - MemoryOutputStream mo; - writeVC6Project (mo); - - if (! FileHelpers::overwriteFileWithNewDataIfDifferent (getDSPFile(), mo)) - return "Can't write to the VC project file: " + getDSPFile().getFullPathName(); - } - - { - MemoryOutputStream mo; - writeDSWFile (mo); - - if (! FileHelpers::overwriteFileWithNewDataIfDifferent (getDSWFile(), mo)) - return "Can't write to the VC solution file: " + getDSWFile().getFullPathName(); - } - } - else - { - projectGUID = createGUID (project.getProjectUID()); - - XmlElement masterXml ("VisualStudioProject"); - fillInMasterXml (masterXml); - - { - MemoryOutputStream mo; - masterXml.writeToStream (mo, String::empty, false, true, "UTF-8", 10); - - if (! FileHelpers::overwriteFileWithNewDataIfDifferent (getVCProjFile(), mo)) - return "Can't write to the VC project file: " + getVCProjFile().getFullPathName(); - } - - { - MemoryOutputStream mo; - writeSolutionFile (mo); - - if (! FileHelpers::overwriteFileWithNewDataIfDifferent (getSLNFile(), mo)) - return "Can't write to the VC solution file: " + getSLNFile().getFullPathName(); - } - } - - return String::empty; - } - -private: +protected: String projectGUID; - const VisualStudioVersion version; const File getProjectFile (const String& extension) const { return getTargetFolder().getChildFile (project.getProjectFilenameRoot()).withFileExtension (extension); } - const File getVCProjFile() const { return getProjectFile (".vcproj"); } - const File getSLNFile() const { return getProjectFile (".sln"); } - const File getDSPFile() const { return getProjectFile (".dsp"); } - const File getDSWFile() const { return getProjectFile (".dsw"); } - Value getLibraryType() const { return getSetting (Ids::libraryType); } bool isLibraryDLL() const { return project.isLibrary() && getLibraryType() == 2; } - //============================================================================== - void fillInMasterXml (XmlElement& masterXml) - { - masterXml.setAttribute ("ProjectType", "Visual C++"); - - switch (version) - { - case visualStudio2005: masterXml.setAttribute ("Version", "8.00"); break; - case visualStudio2008: masterXml.setAttribute ("Version", "9.00"); break; - default: jassertfalse; break; - } - - masterXml.setAttribute ("Name", project.getProjectName().toString()); - masterXml.setAttribute ("ProjectGUID", projectGUID); - masterXml.setAttribute ("TargetFrameworkVersion", "131072"); - - { - XmlElement* platforms = masterXml.createNewChildElement ("Platforms"); - XmlElement* platform = platforms->createNewChildElement ("Platform"); - platform->setAttribute ("Name", "Win32"); - } - - masterXml.createNewChildElement ("ToolFiles"); - createConfigs (*masterXml.createNewChildElement ("Configurations")); - masterXml.createNewChildElement ("References"); - createFiles (*masterXml.createNewChildElement ("Files")); - masterXml.createNewChildElement ("Globals"); - } - - //============================================================================== - void addFile (const RelativePath& file, XmlElement& parent, const bool excludeFromBuild, const bool useStdcall) - { - jassert (file.getRoot() == RelativePath::buildTargetFolder); - - XmlElement* fileXml = parent.createNewChildElement ("File"); - fileXml->setAttribute ("RelativePath", file.toWindowsStyle()); - - if (excludeFromBuild || useStdcall) - { - for (int i = 0; i < project.getNumConfigurations(); ++i) - { - Project::BuildConfiguration config (project.getConfiguration (i)); - - XmlElement* fileConfig = fileXml->createNewChildElement ("FileConfiguration"); - fileConfig->setAttribute ("Name", createConfigName (config)); - - if (excludeFromBuild) - fileConfig->setAttribute ("ExcludedFromBuild", "true"); - - XmlElement* tool = createToolElement (*fileConfig, "VCCLCompilerTool"); - - if (useStdcall) - tool->setAttribute ("CallingConvention", "2"); - } - } - } - - XmlElement* createGroup (const String& groupName, XmlElement& parent) - { - XmlElement* filter = parent.createNewChildElement ("Filter"); - filter->setAttribute ("Name", groupName); - return filter; - } - - void addFiles (const Project::Item& projectItem, XmlElement& parent) - { - if (projectItem.isGroup()) - { - XmlElement* filter = createGroup (projectItem.getName().toString(), parent); - - for (int i = 0; i < projectItem.getNumChildren(); ++i) - addFiles (projectItem.getChild(i), *filter); - } - else - { - if (projectItem.shouldBeAddedToTargetProject()) - { - const RelativePath path (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); - - addFile (path, parent, - projectItem.shouldBeAddedToBinaryResources() || (shouldFileBeCompiledByDefault (path) && ! projectItem.shouldBeCompiled()), - false); - } - } - } - - void addGroup (XmlElement& parent, const String& groupName, const Array& files, const bool useStdcall) - { - if (files.size() > 0) - { - XmlElement* const group = createGroup (groupName, parent); - - for (int i = 0; i < files.size(); ++i) - if (files.getReference(i).hasFileExtension ("cpp;c;h")) - addFile (files.getReference(i), *group, false, - useStdcall && shouldFileBeCompiledByDefault (files.getReference(i))); - } - } - - void createFiles (XmlElement& files) - { - addFiles (project.getMainGroup(), files); - - addGroup (files, project.getJuceCodeGroupName(), juceWrapperFiles, false); - addGroup (files, "Juce VST Wrapper", getVSTFilesRequired(), false); - addGroup (files, "Juce RTAS Wrapper", getRTASFilesRequired(), true); - } - //============================================================================== const Array getRTASFilesRequired() const { @@ -425,10 +203,232 @@ private: for (int i = 0; i < numElementsInArray (rtasIncludePaths); ++i) searchPaths.add (sdkFolder.getChildFile (rtasIncludePaths[i]).toWindowsStyle()); } - - return searchPaths; + + return searchPaths; + } + + const String getBinaryFileForConfig (const Project::BuildConfiguration& config) const + { + const String targetBinary (getSetting (config.isDebug().getValue() ? Ids::libraryName_Debug : Ids::libraryName_Release).toString().trim()); + if (targetBinary.isNotEmpty()) + return targetBinary; + + return config.getTargetBinaryName().toString() + getTargetBinarySuffix(); + } + + static const String createConfigName (const Project::BuildConfiguration& config) + { + return config.getName().toString() + "|Win32"; + } + + //============================================================================== + void writeSolutionFile (OutputStream& out, const String& versionString, const File& vcProject) + { + out << newLine << "Microsoft Visual Studio Solution File, Format Version " << versionString << newLine + << "Project(\"" << createGUID (project.getProjectName().toString() + "sln_guid") << "\") = \"" << project.getProjectName().toString() << "\", \"" + << vcProject.getFileName() << "\", \"" << projectGUID << '"' << newLine + << "EndProject" << newLine + << "Global" << newLine + << "\tGlobalSection(SolutionConfigurationPlatforms) = preSolution" << newLine; + + int i; + for (i = 0; i < project.getNumConfigurations(); ++i) + { + Project::BuildConfiguration config (project.getConfiguration (i)); + out << "\t\t" << createConfigName (config) << " = " << createConfigName (config) << newLine; + } + + out << "\tEndGlobalSection" << newLine + << "\tGlobalSection(ProjectConfigurationPlatforms) = postSolution" << newLine; + + for (i = 0; i < project.getNumConfigurations(); ++i) + { + Project::BuildConfiguration config (project.getConfiguration (i)); + out << "\t\t" << projectGUID << "." << createConfigName (config) << ".ActiveCfg = " << createConfigName (config) << newLine; + out << "\t\t" << projectGUID << "." << createConfigName (config) << ".Build.0 = " << createConfigName (config) << newLine; + } + + out << "\tEndGlobalSection" << newLine + << "\tGlobalSection(SolutionProperties) = preSolution" << newLine + << "\t\tHideSolutionNode = FALSE" << newLine + << "\tEndGlobalSection" << newLine + << "EndGlobal" << newLine; + } + + MSVCProjectExporterBase (const MSVCProjectExporterBase&); + MSVCProjectExporterBase& operator= (const MSVCProjectExporterBase&); +}; + + +//============================================================================== +class MSVCProjectExporterVC2008 : public MSVCProjectExporterBase +{ +public: + //============================================================================== + MSVCProjectExporterVC2008 (Project& project_, const ValueTree& settings_, const char* folderName = "VisualStudio2008") + : MSVCProjectExporterBase (project_, settings_, folderName) + { + name = getName(); + } + + ~MSVCProjectExporterVC2008() {} + + static const char* getName() { return "Visual Studio 2008"; } + static const char* getValueTreeTypeName() { return "VS2008"; } + + void launchProject() { getSLNFile().startAsProcess(); } + + bool isDefaultFormatForCurrentOS() + { + #if JUCE_WINDOWS + return true; + #else + return false; + #endif + } + + static MSVCProjectExporterVC2008* createForSettings (Project& project, const ValueTree& settings) + { + if (settings.hasType (getValueTreeTypeName())) + return new MSVCProjectExporterVC2008 (project, settings); + + return 0; + } + + //============================================================================== + const String create() + { + { + XmlElement projectXml ("VisualStudioProject"); + fillInProjectXml (projectXml); + + MemoryOutputStream mo; + projectXml.writeToStream (mo, String::empty, false, true, "UTF-8", 10); + + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (getVCProjFile(), mo)) + return "Can't write to the VC project file: " + getVCProjFile().getFullPathName(); + } + + { + MemoryOutputStream mo; + writeSolutionFile (mo, getSolutionVersionString(), getVCProjFile()); + + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (getSLNFile(), mo)) + return "Can't write to the VC solution file: " + getSLNFile().getFullPathName(); + } + + return String::empty; + } + +protected: + virtual const String getProjectVersionString() const { return "9.00"; } + virtual const String getSolutionVersionString() const { return String ("10.00") + newLine + "# Visual C++ Express 2008"; } + + const File getVCProjFile() const { return getProjectFile (".vcproj"); } + const File getSLNFile() const { return getProjectFile (".sln"); } + + //============================================================================== + void fillInProjectXml (XmlElement& projectXml) + { + projectXml.setAttribute ("ProjectType", "Visual C++"); + projectXml.setAttribute ("Version", getProjectVersionString()); + projectXml.setAttribute ("Name", project.getProjectName().toString()); + projectXml.setAttribute ("ProjectGUID", projectGUID); + projectXml.setAttribute ("TargetFrameworkVersion", "131072"); + + { + XmlElement* platforms = projectXml.createNewChildElement ("Platforms"); + XmlElement* platform = platforms->createNewChildElement ("Platform"); + platform->setAttribute ("Name", "Win32"); + } + + projectXml.createNewChildElement ("ToolFiles"); + createConfigs (*projectXml.createNewChildElement ("Configurations")); + projectXml.createNewChildElement ("References"); + createFiles (*projectXml.createNewChildElement ("Files")); + projectXml.createNewChildElement ("Globals"); + } + + //============================================================================== + void addFile (const RelativePath& file, XmlElement& parent, const bool excludeFromBuild, const bool useStdcall) + { + jassert (file.getRoot() == RelativePath::buildTargetFolder); + + XmlElement* fileXml = parent.createNewChildElement ("File"); + fileXml->setAttribute ("RelativePath", file.toWindowsStyle()); + + if (excludeFromBuild || useStdcall) + { + for (int i = 0; i < project.getNumConfigurations(); ++i) + { + Project::BuildConfiguration config (project.getConfiguration (i)); + + XmlElement* fileConfig = fileXml->createNewChildElement ("FileConfiguration"); + fileConfig->setAttribute ("Name", createConfigName (config)); + + if (excludeFromBuild) + fileConfig->setAttribute ("ExcludedFromBuild", "true"); + + XmlElement* tool = createToolElement (*fileConfig, "VCCLCompilerTool"); + + if (useStdcall) + tool->setAttribute ("CallingConvention", "2"); + } + } + } + + XmlElement* createGroup (const String& groupName, XmlElement& parent) + { + XmlElement* filter = parent.createNewChildElement ("Filter"); + filter->setAttribute ("Name", groupName); + return filter; + } + + void addFiles (const Project::Item& projectItem, XmlElement& parent) + { + if (projectItem.isGroup()) + { + XmlElement* filter = createGroup (projectItem.getName().toString(), parent); + + for (int i = 0; i < projectItem.getNumChildren(); ++i) + addFiles (projectItem.getChild(i), *filter); + } + else + { + if (projectItem.shouldBeAddedToTargetProject()) + { + const RelativePath path (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); + + addFile (path, parent, + projectItem.shouldBeAddedToBinaryResources() || (shouldFileBeCompiledByDefault (path) && ! projectItem.shouldBeCompiled()), + false); + } + } + } + + void addGroup (XmlElement& parent, const String& groupName, const Array& files, const bool useStdcall) + { + if (files.size() > 0) + { + XmlElement* const group = createGroup (groupName, parent); + + for (int i = 0; i < files.size(); ++i) + if (files.getReference(i).hasFileExtension ("cpp;c;h")) + addFile (files.getReference(i), *group, false, + useStdcall && shouldFileBeCompiledByDefault (files.getReference(i))); + } } + void createFiles (XmlElement& files) + { + addFiles (project.getMainGroup(), files); + + addGroup (files, project.getJuceCodeGroupName(), juceWrapperFiles, false); + addGroup (files, "Juce VST Wrapper", getVSTFilesRequired(), false); + addGroup (files, "Juce RTAS Wrapper", getRTASFilesRequired(), true); + } + + //============================================================================== XmlElement* createToolElement (XmlElement& parent, const String& toolName) const { XmlElement* const e = parent.createNewChildElement ("Tool"); @@ -436,15 +436,6 @@ private: return e; } - const String getBinaryFileForConfig (const Project::BuildConfiguration& config) const - { - const String targetBinary (getSetting (config.isDebug().getValue() ? Ids::libraryName_Debug : Ids::libraryName_Release).toString().trim()); - if (targetBinary.isNotEmpty()) - return targetBinary; - - return config.getTargetBinaryName().toString() + getTargetBinarySuffix(); - } - void createConfig (XmlElement& xml, const Project::BuildConfiguration& config) const { String binariesPath (getConfigTargetPath (config)); @@ -622,62 +613,108 @@ private: } } - const String createConfigName (const Project::BuildConfiguration& config) const + //============================================================================== + MSVCProjectExporterVC2008 (const MSVCProjectExporterVC2008&); + MSVCProjectExporterVC2008& operator= (const MSVCProjectExporterVC2008&); +}; + + +//============================================================================== +class MSVCProjectExporterVC2005 : public MSVCProjectExporterVC2008 +{ +public: + MSVCProjectExporterVC2005 (Project& project_, const ValueTree& settings_) + : MSVCProjectExporterVC2008 (project_, settings_, "VisualStudio2005") { - return config.getName().toString() + "|Win32"; + name = getName(); + } + + ~MSVCProjectExporterVC2005() {} + + static const char* getName() { return "Visual Studio 2005"; } + static const char* getValueTreeTypeName() { return "VS2005"; } + + bool isDefaultFormatForCurrentOS() { return false; } + + static MSVCProjectExporterVC2005* createForSettings (Project& project, const ValueTree& settings) + { + if (settings.hasType (getValueTreeTypeName())) + return new MSVCProjectExporterVC2005 (project, settings); + + return 0; } +protected: + const String getProjectVersionString() const { return "8.00"; } + const String getSolutionVersionString() const { return String ("8.00") + newLine + "# Visual C++ Express 2005"; } + + MSVCProjectExporterVC2005 (const MSVCProjectExporterVC2005&); + MSVCProjectExporterVC2005& operator= (const MSVCProjectExporterVC2005&); +}; + + +//============================================================================== +class MSVCProjectExporterVC6 : public MSVCProjectExporterBase +{ +public: //============================================================================== - void writeSolutionFile (OutputStream& out) + MSVCProjectExporterVC6 (Project& project_, const ValueTree& settings_) + : MSVCProjectExporterBase (project_, settings_, "MSVC6") { - out << newLine << "Microsoft Visual Studio Solution File, Format Version "; + name = getName(); + } - switch (version) - { - case visualStudio2005: out << "8.00" << newLine << "# Visual C++ Express 2005"; break; - case visualStudio2008: out << "10.00" << newLine << "# Visual C++ Express 2008"; break; - default: jassertfalse; break; - } + ~MSVCProjectExporterVC6() {} - out << newLine << "Project(\"" << createGUID (project.getProjectName().toString() + "sln_guid") << "\") = \"" << project.getProjectName().toString() << "\", \"" - << getVCProjFile().getFileName() << "\", \"" << projectGUID << '"' << newLine - << "EndProject" << newLine - << "Global" << newLine - << "\tGlobalSection(SolutionConfigurationPlatforms) = preSolution" << newLine; + static const char* getName() { return "Visual C++ 6.0"; } + static const char* getValueTreeTypeName() { return "MSVC6"; } - int i; - for (i = 0; i < project.getNumConfigurations(); ++i) + bool isDefaultFormatForCurrentOS() { return false; } + void launchProject() { getDSWFile().startAsProcess(); } + + static MSVCProjectExporterVC6* createForSettings (Project& project, const ValueTree& settings) + { + if (settings.hasType (getValueTreeTypeName())) + return new MSVCProjectExporterVC6 (project, settings); + + return 0; + } + + //============================================================================== + const String create() + { { - Project::BuildConfiguration config (project.getConfiguration (i)); - out << "\t\t" << createConfigName (config) << " = " << createConfigName (config) << newLine; - } + MemoryOutputStream mo; + writeProject (mo); - out << "\tEndGlobalSection" << newLine - << "\tGlobalSection(ProjectConfigurationPlatforms) = postSolution" << newLine; + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (getDSPFile(), mo)) + return "Can't write to the VC project file: " + getDSPFile().getFullPathName(); + } - for (i = 0; i < project.getNumConfigurations(); ++i) { - Project::BuildConfiguration config (project.getConfiguration (i)); - out << "\t\t" << projectGUID << "." << createConfigName (config) << ".ActiveCfg = " << createConfigName (config) << newLine; - out << "\t\t" << projectGUID << "." << createConfigName (config) << ".Build.0 = " << createConfigName (config) << newLine; + MemoryOutputStream mo; + writeDSWFile (mo); + + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (getDSWFile(), mo)) + return "Can't write to the VC solution file: " + getDSWFile().getFullPathName(); } - out << "\tEndGlobalSection" << newLine - << "\tGlobalSection(SolutionProperties) = preSolution" << newLine - << "\t\tHideSolutionNode = FALSE" << newLine - << "\tEndGlobalSection" << newLine - << "EndGlobal" << newLine; + return String::empty; } +private: + const File getDSPFile() const { return getProjectFile (".dsp"); } + const File getDSWFile() const { return getProjectFile (".dsw"); } + //============================================================================== - const String createConfigNameVC6 (const Project::BuildConfiguration& config) const + const String createConfigName (const Project::BuildConfiguration& config) const { return project.getProjectName().toString() + " - Win32 " + config.getName().toString(); } - void writeVC6Project (OutputStream& out) + void writeProject (OutputStream& out) { - const String defaultConfigName (createConfigNameVC6 (project.getConfiguration (0))); + const String defaultConfigName (createConfigName (project.getConfiguration (0))); const bool isDLL = project.isAudioPlugin() || project.isBrowserPlugin(); String targetType, targetCode; @@ -708,7 +745,7 @@ private: int i; for (i = 0; i < project.getNumConfigurations(); ++i) - out << "!MESSAGE \"" << createConfigNameVC6 (project.getConfiguration (i)) << "\" (based on " << targetType << ")" << newLine; + out << "!MESSAGE \"" << createConfigName (project.getConfiguration (i)) << "\" (based on " << targetType << ")" << newLine; out << "!MESSAGE " << newLine << "# Begin Project" << newLine @@ -724,7 +761,7 @@ private: for (i = 0; i < project.getNumConfigurations(); ++i) { const Project::BuildConfiguration config (project.getConfiguration (i)); - const String configName (createConfigNameVC6 (config)); + const String configName (createConfigName (config)); targetList << "# Name \"" << configName << '"' << newLine; const String binariesPath (getConfigTargetPath (config)); @@ -790,15 +827,15 @@ private: << "# Begin Target" << newLine << targetList; - writeFilesVC6 (out, project.getMainGroup()); - writeGroupVC6 (out, project.getJuceCodeGroupName(), juceWrapperFiles); - writeGroupVC6 (out, "Juce VST Wrapper", getVSTFilesRequired()); + writeFiles (out, project.getMainGroup()); + writeGroup (out, project.getJuceCodeGroupName(), juceWrapperFiles); + writeGroup (out, "Juce VST Wrapper", getVSTFilesRequired()); out << "# End Target" << newLine << "# End Project" << newLine; } - void writeFileVC6 (OutputStream& out, const RelativePath& file, const bool excludeFromBuild) + void writeFile (OutputStream& out, const RelativePath& file, const bool excludeFromBuild) { jassert (file.getRoot() == RelativePath::buildTargetFolder); @@ -811,7 +848,7 @@ private: out << "# End Source File" << newLine; } - void writeFilesVC6 (OutputStream& out, const Project::Item& projectItem) + void writeFiles (OutputStream& out, const Project::Item& projectItem) { if (projectItem.isGroup()) { @@ -819,25 +856,25 @@ private: << "# PROP Default_Filter \"cpp;c;cxx;rc;def;r;odl;idl;hpj;bat\"" << newLine; for (int i = 0; i < projectItem.getNumChildren(); ++i) - writeFilesVC6 (out, projectItem.getChild (i)); + writeFiles (out, projectItem.getChild (i)); out << "# End Group" << newLine; } else if (projectItem.shouldBeAddedToTargetProject()) { const RelativePath path (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); - writeFileVC6 (out, path, projectItem.shouldBeAddedToBinaryResources() || (shouldFileBeCompiledByDefault (path) && ! projectItem.shouldBeCompiled())); + writeFile (out, path, projectItem.shouldBeAddedToBinaryResources() || (shouldFileBeCompiledByDefault (path) && ! projectItem.shouldBeCompiled())); } } - void writeGroupVC6 (OutputStream& out, const String& groupName, const Array& files) + void writeGroup (OutputStream& out, const String& groupName, const Array& files) { if (files.size() > 0) { out << "# Begin Group \"" << groupName << '"' << newLine; for (int i = 0; i < files.size(); ++i) if (files.getReference(i).hasFileExtension ("cpp;c;h")) - writeFileVC6 (out, files.getReference(i), false); + writeFile (out, files.getReference(i), false); out << "# End Group" << newLine; } @@ -882,8 +919,400 @@ private: << "}}}" << newLine; } - MSVCProjectExporter (const MSVCProjectExporter&); - MSVCProjectExporter& operator= (const MSVCProjectExporter&); + MSVCProjectExporterVC6 (const MSVCProjectExporterVC6&); + MSVCProjectExporterVC6& operator= (const MSVCProjectExporterVC6&); +}; + + +//============================================================================== +class MSVCProjectExporterVC2010 : public MSVCProjectExporterBase +{ +public: + MSVCProjectExporterVC2010 (Project& project_, const ValueTree& settings_) + : MSVCProjectExporterBase (project_, settings_, "VisualStudio2010") + { + name = getName(); + } + + ~MSVCProjectExporterVC2010() {} + + static const char* getName() { return "Visual Studio 2010"; } + static const char* getValueTreeTypeName() { return "VS2010"; } + + bool isDefaultFormatForCurrentOS() { return false; } + void launchProject() { getSLNFile().startAsProcess(); } + + static MSVCProjectExporterVC2010* createForSettings (Project& project, const ValueTree& settings) + { + if (settings.hasType (getValueTreeTypeName())) + return new MSVCProjectExporterVC2010 (project, settings); + + return 0; + } + + //============================================================================== + const String create() + { + { + XmlElement projectXml ("Project"); + fillInProjectXml (projectXml); + + MemoryOutputStream mo; + projectXml.writeToStream (mo, String::empty, false, true, "utf-8", 100); + + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (getVCProjFile(), mo)) + return "Can't write to the VC project file: " + getVCProjFile().getFullPathName(); + } + + { + XmlElement filtersXml ("Project"); + fillInFiltersXml (filtersXml); + + MemoryOutputStream mo; + filtersXml.writeToStream (mo, String::empty, false, true, "utf-8", 100); + + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (getVCProjFiltersFile(), mo)) + return "Can't write to the VC project file: " + getVCProjFiltersFile().getFullPathName(); + } + + { + MemoryOutputStream mo; + writeSolutionFile (mo, "11.00", getVCProjFile()); + + if (! FileHelpers::overwriteFileWithNewDataIfDifferent (getSLNFile(), mo)) + return "Can't write to the VC solution file: " + getSLNFile().getFullPathName(); + } + + return String::empty; + } + +protected: + const File getVCProjFile() const { return getProjectFile (".vcxproj"); } + const File getVCProjFiltersFile() const { return getProjectFile (".vcxproj.filters"); } + const File getSLNFile() const { return getProjectFile (".sln"); } + + static const String createConfigName (const Project::BuildConfiguration& config) + { + return config.getName().toString() + "|Win32"; + } + + //============================================================================== + void fillInProjectXml (XmlElement& projectXml) + { + projectXml.setAttribute ("DefaultTargets", "Build"); + projectXml.setAttribute ("ToolsVersion", "4.0"); + projectXml.setAttribute ("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003"); + + { + XmlElement* configsGroup = projectXml.createNewChildElement ("ItemGroup"); + configsGroup->setAttribute ("Label", "ProjectConfigurations"); + + for (int i = 0; i < project.getNumConfigurations(); ++i) + { + Project::BuildConfiguration config (project.getConfiguration (i)); + + XmlElement* e = configsGroup->createNewChildElement ("ProjectConfiguration"); + e->setAttribute ("Include", createConfigName (config)); + e->createNewChildElement ("Configuration")->addTextElement (config.getName().toString()); + e->createNewChildElement ("Platform")->addTextElement ("Win32"); + } + } + + { + XmlElement* globals = projectXml.createNewChildElement ("PropertyGroup"); + globals->setAttribute ("Label", "Globals"); + globals->createNewChildElement ("ProjectGuid")->addTextElement (projectGUID); + } + + { + XmlElement* imports = projectXml.createNewChildElement ("Import"); + imports->setAttribute ("Project", "$(VCTargetsPath)\\Microsoft.Cpp.Default.props"); + } + + for (int i = 0; i < project.getNumConfigurations(); ++i) + { + Project::BuildConfiguration config (project.getConfiguration (i)); + + XmlElement* e = projectXml.createNewChildElement ("PropertyGroup"); + e->setAttribute ("Condition", "'$(Configuration)|$(Platform)'=='" + createConfigName (config) + "'"); + e->setAttribute ("Label", "Configuration"); + e->createNewChildElement ("ConfigurationType")->addTextElement (getProjectType()); + e->createNewChildElement ("UseOfMfc")->addTextElement ("false"); + e->createNewChildElement ("CharacterSet")->addTextElement ("MultiByte"); + + if (! config.isDebug().getValue()) + e->createNewChildElement ("WholeProgramOptimization")->addTextElement ("true"); + } + + { + XmlElement* e = projectXml.createNewChildElement ("Import"); + e->setAttribute ("Project", "$(VCTargetsPath)\\Microsoft.Cpp.props"); + } + + { + XmlElement* e = projectXml.createNewChildElement ("ImportGroup"); + e->setAttribute ("Label", "ExtensionSettings"); + } + + { + XmlElement* e = projectXml.createNewChildElement ("ImportGroup"); + e->setAttribute ("Label", "PropertySheets"); + XmlElement* p = e->createNewChildElement ("Import"); + p->setAttribute ("Project", "$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props"); + p->setAttribute ("Condition", "exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')"); + p->setAttribute ("Label", "LocalAppDataPlatform"); + } + + { + XmlElement* e = projectXml.createNewChildElement ("PropertyGroup"); + e->setAttribute ("Label", "UserMacros"); + } + + { + XmlElement* props = projectXml.createNewChildElement ("PropertyGroup"); + props->createNewChildElement ("_ProjectFileVersion")->addTextElement ("10.0.30319.1"); + + for (int i = 0; i < project.getNumConfigurations(); ++i) + { + Project::BuildConfiguration config (project.getConfiguration (i)); + + XmlElement* outdir = props->createNewChildElement ("OutDir"); + outdir->setAttribute ("Condition", "'$(Configuration)|$(Platform)'=='" + createConfigName (config) + "'"); + outdir->addTextElement (getConfigTargetPath (config) + "\\"); + + XmlElement* intdir = props->createNewChildElement ("IntDir"); + intdir->setAttribute ("Condition", "'$(Configuration)|$(Platform)'=='" + createConfigName (config) + "'"); + intdir->addTextElement (getConfigTargetPath (config) + "\\"); + + XmlElement* name = props->createNewChildElement ("TargetName"); + name->setAttribute ("Condition", "'$(Configuration)|$(Platform)'=='" + createConfigName (config) + "'"); + name->addTextElement (getBinaryFileForConfig (config).upToLastOccurrenceOf (".", false, false)); + } + } + + for (int i = 0; i < project.getNumConfigurations(); ++i) + { + Project::BuildConfiguration config (project.getConfiguration (i)); + String binariesPath (getConfigTargetPath (config)); + String intermediatesPath (getIntermediatesPath (config)); + const bool isDebug = (bool) config.isDebug().getValue(); + const String binaryName (File::createLegalFileName (config.getTargetBinaryName().toString())); + const String outputFileName (getBinaryFileForConfig (config)); + + XmlElement* group = projectXml.createNewChildElement ("ItemDefinitionGroup"); + group->setAttribute ("Condition", "'$(Configuration)|$(Platform)'=='" + createConfigName (config) + "'"); + + XmlElement* midl = group->createNewChildElement ("Midl"); + midl->createNewChildElement ("PreprocessorDefinitions")->addTextElement (isDebug ? "_DEBUG;%(PreprocessorDefinitions)" + : "NDEBUG;%(PreprocessorDefinitions)"); + midl->createNewChildElement ("MkTypLibCompatible")->addTextElement ("true"); + midl->createNewChildElement ("SuppressStartupBanner")->addTextElement ("true"); + midl->createNewChildElement ("TargetEnvironment")->addTextElement ("Win32"); + //midl->createNewChildElement ("TypeLibraryName")->addTextElement (""); + midl->createNewChildElement ("HeaderFileName"); + + XmlElement* cl = group->createNewChildElement ("ClCompile"); + cl->createNewChildElement ("Optimization")->addTextElement (isDebug ? "Disabled" : "MaxSpeed"); + + if (isDebug) + cl->createNewChildElement ("DebugInformationFormat")->addTextElement ("EditAndContinue"); + + StringArray includePaths (getHeaderSearchPaths (config)); + includePaths.add ("%(AdditionalIncludeDirectories)"); + cl->createNewChildElement ("AdditionalIncludeDirectories")->addTextElement (includePaths.joinIntoString (";")); + cl->createNewChildElement ("PreprocessorDefinitions")->addTextElement (getPreprocessorDefs (config, ";") + ";%(PreprocessorDefinitions)"); + cl->createNewChildElement ("RuntimeLibrary")->addTextElement (isRTAS() ? (isDebug ? "MultiThreadedDLLDebug" : "MultiThreadedDLL") + : (isDebug ? "MultiThreadedDebug" : "MultiThreaded")); + cl->createNewChildElement ("RuntimeTypeInfo")->addTextElement ("true"); + cl->createNewChildElement ("PrecompiledHeader"); + cl->createNewChildElement ("AssemblerListingLocation")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/")); + cl->createNewChildElement ("ObjectFileName")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/")); + cl->createNewChildElement ("ProgramDataBaseFileName")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/")); + cl->createNewChildElement ("WarningLevel")->addTextElement ("Level4"); + cl->createNewChildElement ("SuppressStartupBanner")->addTextElement ("true"); + + XmlElement* res = group->createNewChildElement ("ResourceCompile"); + res->createNewChildElement ("PreprocessorDefinitions")->addTextElement (isDebug ? "_DEBUG;%(PreprocessorDefinitions)" + : "NDEBUG;%(PreprocessorDefinitions)"); + + XmlElement* link = group->createNewChildElement ("Link"); + link->createNewChildElement ("OutputFile")->addTextElement (FileHelpers::windowsStylePath (binariesPath + "/" + outputFileName)); + link->createNewChildElement ("SuppressStartupBanner")->addTextElement ("true"); + link->createNewChildElement ("IgnoreSpecificDefaultLibraries")->addTextElement (isDebug ? "libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries)" + : "%(IgnoreSpecificDefaultLibraries)"); + link->createNewChildElement ("GenerateDebugInformation")->addTextElement (isDebug ? "true" : "false"); + link->createNewChildElement ("ProgramDatabaseFile")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".pdb")); + link->createNewChildElement ("SubSystem")->addTextElement (project.isCommandLineApp() ? "Console" : "Windows"); + link->createNewChildElement ("TargetMachine")->addTextElement ("MachineX86"); + + if (! isDebug) + { + link->createNewChildElement ("OptimizeReferences")->addTextElement ("true"); + link->createNewChildElement ("EnableCOMDATFolding")->addTextElement ("true"); + } + + XmlElement* bsc = group->createNewChildElement ("Bscmake"); + bsc->createNewChildElement ("SuppressStartupBanner")->addTextElement ("true"); + bsc->createNewChildElement ("OutputFile")->addTextElement (FileHelpers::windowsStylePath (intermediatesPath + "/" + binaryName + ".bsc")); + } + + { + XmlElement* cppFiles = projectXml.createNewChildElement ("ItemGroup"); + XmlElement* headerFiles = projectXml.createNewChildElement ("ItemGroup"); + + addFilesToCompile (project.getMainGroup(), *cppFiles, *headerFiles); + addFilesToCompile (juceWrapperFiles, *cppFiles, *headerFiles, false); + addFilesToCompile (getVSTFilesRequired(), *cppFiles, *headerFiles, false); + addFilesToCompile (getRTASFilesRequired(), *cppFiles, *headerFiles, true); + } + + { + XmlElement* e = projectXml.createNewChildElement ("Import"); + e->setAttribute ("Project", "$(VCTargetsPath)\\Microsoft.Cpp.targets"); + } + + { + XmlElement* e = projectXml.createNewChildElement ("ImportGroup"); + e->setAttribute ("Label", "ExtensionTargets"); + } + } + + const String getProjectType() const + { + if (project.isGUIApplication()) + return "Application"; + else if (project.isAudioPlugin() || project.isBrowserPlugin()) + return "DynamicLibrary"; + else if (project.isLibrary()) + return "StaticLibrary"; + + jassertfalse; + return String::empty; + } + + //============================================================================== + void addFileToCompile (const RelativePath& file, XmlElement& cpps, XmlElement& headers, const bool excludeFromBuild, const bool useStdcall) + { + jassert (file.getRoot() == RelativePath::buildTargetFolder); + + if (file.hasFileExtension ("cpp;c")) + { + XmlElement* e = cpps.createNewChildElement ("ClCompile"); + e->setAttribute ("Include", file.toWindowsStyle()); + + if (excludeFromBuild) + e->createNewChildElement ("ExcludedFromBuild")->addTextElement ("true"); + + if (useStdcall) + { + jassertfalse; + } + } + else if (file.hasFileExtension ("h")) + { + headers.createNewChildElement ("ClInclude")->setAttribute ("Include", file.toWindowsStyle()); + } + } + + void addFilesToCompile (const Array& files, XmlElement& cpps, XmlElement& headers, bool useStdCall) + { + for (int i = 0; i < files.size(); ++i) + addFileToCompile (files.getReference(i), cpps, headers, false, + useStdCall && shouldFileBeCompiledByDefault (files.getReference(i))); + } + + void addFilesToCompile (const Project::Item& projectItem, XmlElement& cpps, XmlElement& headers) + { + if (projectItem.isGroup()) + { + for (int i = 0; i < projectItem.getNumChildren(); ++i) + addFilesToCompile (projectItem.getChild(i), cpps, headers); + } + else + { + if (projectItem.shouldBeAddedToTargetProject()) + { + const RelativePath path (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); + + if (path.hasFileExtension ("h") || (path.hasFileExtension ("cpp;c") && projectItem.shouldBeCompiled())) + addFileToCompile (path, cpps, headers, false, false); + } + } + } + + //============================================================================== + void addFilterGroup (XmlElement& groups, const String& path) + { + XmlElement* e = groups.createNewChildElement ("Filter"); + e->setAttribute ("Include", path); + e->createNewChildElement ("UniqueIdentifier")->addTextElement (createGUID (path + "_guidpathsaltxhsdf")); + } + + void addFileToFilter (const RelativePath& file, const String& groupPath, XmlElement& cpps, XmlElement& headers) + { + XmlElement* e; + + if (file.hasFileExtension ("h")) + e = headers.createNewChildElement ("ClInclude"); + else + e = cpps.createNewChildElement ("ClCompile"); + + jassert (file.getRoot() == RelativePath::buildTargetFolder); + e->setAttribute ("Include", file.toWindowsStyle()); + e->createNewChildElement ("Filter")->addTextElement (groupPath); + } + + void addFilesToFilter (const Project::Item& projectItem, const String& path, XmlElement& cpps, XmlElement& headers, XmlElement& groups) + { + if (projectItem.isGroup()) + { + addFilterGroup (groups, path); + + for (int i = 0; i < projectItem.getNumChildren(); ++i) + addFilesToFilter (projectItem.getChild(i), + (path.isEmpty() ? String::empty : (path + "\\")) + projectItem.getChild(i).getName().toString(), + cpps, headers, groups); + } + else + { + if (projectItem.shouldBeAddedToTargetProject()) + { + addFileToFilter (RelativePath (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder), + path.upToLastOccurrenceOf ("\\", false, false), cpps, headers); + } + } + } + + void addFilesToFilter (const Array& files, const String& path, XmlElement& cpps, XmlElement& headers, XmlElement& groups) + { + if (files.size() > 0) + { + addFilterGroup (groups, path); + + for (int i = 0; i < files.size(); ++i) + addFileToFilter (files.getReference(i), path, cpps, headers); + } + } + + void fillInFiltersXml (XmlElement& filterXml) + { + filterXml.setAttribute ("ToolsVersion", "4.0"); + filterXml.setAttribute ("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003"); + + XmlElement* groups = filterXml.createNewChildElement ("ItemGroup"); + XmlElement* cpps = filterXml.createNewChildElement ("ItemGroup"); + XmlElement* headers = filterXml.createNewChildElement ("ItemGroup"); + + addFilesToFilter (project.getMainGroup(), project.getProjectName().toString(), *cpps, *headers, *groups); + + addFilesToFilter (juceWrapperFiles, project.getJuceCodeGroupName(), *cpps, *headers, *groups); + addFilesToFilter (getVSTFilesRequired(), "Juce VST Wrapper", *cpps, *headers, *groups); + addFilesToFilter (getRTASFilesRequired(), "Juce RTAS Wrapper", *cpps, *headers, *groups); + } + + //============================================================================== + MSVCProjectExporterVC2010 (const MSVCProjectExporterVC2010&); + MSVCProjectExporterVC2010& operator= (const MSVCProjectExporterVC2010&); }; diff --git a/extras/Jucer (experimental)/Source/model/Project/jucer_ProjectExporter.cpp b/extras/Jucer (experimental)/Source/model/Project/jucer_ProjectExporter.cpp index 3b781802bb..ca81db6f42 100644 --- a/extras/Jucer (experimental)/Source/model/Project/jucer_ProjectExporter.cpp +++ b/extras/Jucer (experimental)/Source/model/Project/jucer_ProjectExporter.cpp @@ -50,9 +50,10 @@ const StringArray ProjectExporter::getExporterNames() StringArray s; s.add (XCodeProjectExporter::getNameMac()); s.add (XCodeProjectExporter::getNameiPhone()); - s.add (MSVCProjectExporter::getNameVC6()); - s.add (MSVCProjectExporter::getName2005()); - s.add (MSVCProjectExporter::getName2008()); + s.add (MSVCProjectExporterVC6::getName()); + s.add (MSVCProjectExporterVC2005::getName()); + s.add (MSVCProjectExporterVC2008::getName()); + s.add (MSVCProjectExporterVC2010::getName()); s.add (MakefileProjectExporter::getNameLinux()); return s; } @@ -65,10 +66,11 @@ ProjectExporter* ProjectExporter::createNewExporter (Project& project, const int { case 0: exp = new XCodeProjectExporter (project, ValueTree (XCodeProjectExporter::getValueTreeTypeName (false)), false); break; case 1: exp = new XCodeProjectExporter (project, ValueTree (XCodeProjectExporter::getValueTreeTypeName (true)), true); break; - case 2: exp = new MSVCProjectExporter (project, ValueTree (MSVCProjectExporter::getValueTreeTypeName (MSVCProjectExporter::visualStudio6)), MSVCProjectExporter::visualStudio6); break; - case 3: exp = new MSVCProjectExporter (project, ValueTree (MSVCProjectExporter::getValueTreeTypeName (MSVCProjectExporter::visualStudio2005)), MSVCProjectExporter::visualStudio2005); break; - case 4: exp = new MSVCProjectExporter (project, ValueTree (MSVCProjectExporter::getValueTreeTypeName (MSVCProjectExporter::visualStudio2008)), MSVCProjectExporter::visualStudio2008); break; - case 5: exp = new MakefileProjectExporter (project, ValueTree (MakefileProjectExporter::getValueTreeTypeName())); break; + case 2: exp = new MSVCProjectExporterVC6 (project, ValueTree (MSVCProjectExporterVC6::getValueTreeTypeName())); break; + case 3: exp = new MSVCProjectExporterVC2005 (project, ValueTree (MSVCProjectExporterVC2005::getValueTreeTypeName())); break; + case 4: exp = new MSVCProjectExporterVC2008 (project, ValueTree (MSVCProjectExporterVC2008::getValueTreeTypeName())); break; + case 5: exp = new MSVCProjectExporterVC2010 (project, ValueTree (MSVCProjectExporterVC2010::getValueTreeTypeName())); break; + case 6: exp = new MakefileProjectExporter (project, ValueTree (MakefileProjectExporter::getValueTreeTypeName())); break; default: jassertfalse; return 0; } @@ -85,13 +87,12 @@ ProjectExporter* ProjectExporter::createNewExporter (Project& project, const int ProjectExporter* ProjectExporter::createExporter (Project& project, const ValueTree& settings) { - ProjectExporter* exp = MSVCProjectExporter::createForSettings (project, settings); - - if (exp == 0) - exp = XCodeProjectExporter::createForSettings (project, settings); - - if (exp == 0) - exp = MakefileProjectExporter::createForSettings (project, settings); + ProjectExporter* exp = MSVCProjectExporterVC6::createForSettings (project, settings); + if (exp == 0) exp = MSVCProjectExporterVC2005::createForSettings (project, settings); + if (exp == 0) exp = MSVCProjectExporterVC2008::createForSettings (project, settings); + if (exp == 0) exp = MSVCProjectExporterVC2010::createForSettings (project, settings); + if (exp == 0) exp = XCodeProjectExporter::createForSettings (project, settings); + if (exp == 0) exp = MakefileProjectExporter::createForSettings (project, settings); jassert (exp != 0); return exp; diff --git a/extras/Jucer (experimental)/Source/ui/Editor Base/jucer_EditorCanvas.cpp b/extras/Jucer (experimental)/Source/ui/Editor Base/jucer_EditorCanvas.cpp index dc6c2540f6..cc9b74d46b 100644 --- a/extras/Jucer (experimental)/Source/ui/Editor Base/jucer_EditorCanvas.cpp +++ b/extras/Jucer (experimental)/Source/ui/Editor Base/jucer_EditorCanvas.cpp @@ -597,6 +597,7 @@ EditorCanvasBase::EditorCanvasBase() : border (8, 8, 14, 14) { //setOpaque (true); + addChildComponent (&spacebarDragOverlay); } EditorCanvasBase::~EditorCanvasBase() @@ -616,8 +617,9 @@ void EditorCanvasBase::initialise() void EditorCanvasBase::shutdown() { dragger = 0; - deleteAndZero (overlay); - deleteAllChildren(); + resizeFrame = 0; + overlay = 0; + componentHolder = 0; } EditorPanelBase* EditorCanvasBase::getPanel() const @@ -680,6 +682,16 @@ void EditorCanvasBase::paint (Graphics& g) { } +bool EditorCanvasBase::keyStateChanged (bool) +{ + return spacebarDragOverlay.updateVisibility(); +} + +bool EditorCanvasBase::keyPressed (const KeyPress& key) +{ + return key.isKeyCode (KeyPress::spaceKey); // required to consume the spacebar events and avoid a warning beep +} + void EditorCanvasBase::setScale (const Scale& newScale) { jassertfalse; @@ -735,6 +747,7 @@ void EditorCanvasBase::resized() componentHolder->setBounds (getContentArea()); overlay->setBounds (getLocalBounds()); resizeFrame->setBounds (getLocalBounds()); + spacebarDragOverlay.setBounds (getLocalBounds()); overlay->update(); handleUpdateNowIfNeeded(); } @@ -798,6 +811,58 @@ const Point EditorCanvasBase::OverlayItemComponent::pointToLocalSpace (co - getPosition()).toFloat(); } +//============================================================================== +EditorCanvasBase::SpacebarDragOverlay::SpacebarDragOverlay() +{ + setAlwaysOnTop (true); + setMouseCursor (MouseCursor::DraggingHandCursor); +} + +EditorCanvasBase::SpacebarDragOverlay::~SpacebarDragOverlay() +{ +} + +bool EditorCanvasBase::SpacebarDragOverlay::updateVisibility() +{ + bool isSpaceDown = KeyPress::isKeyCurrentlyDown (KeyPress::spaceKey); + + if (isSpaceDown == isVisible()) + return false; + + setVisible (isSpaceDown); + return true; +} + +void EditorCanvasBase::SpacebarDragOverlay::paint (Graphics&) +{ +} + +void EditorCanvasBase::SpacebarDragOverlay::mouseMove (const MouseEvent& e) +{ + updateVisibility(); +} + +void EditorCanvasBase::SpacebarDragOverlay::mouseDown (const MouseEvent& e) +{ + Viewport* vp = findParentComponentOfClass ((Viewport*) 0); + + if (vp != 0) + dragStart = vp->getViewPosition(); +} + +void EditorCanvasBase::SpacebarDragOverlay::mouseDrag (const MouseEvent& e) +{ + Viewport* vp = findParentComponentOfClass ((Viewport*) 0); + + if (vp != 0) + vp->setViewPosition (dragStart - Point (e.getDistanceFromDragStartX(), + e.getDistanceFromDragStartY())); +} + +void EditorCanvasBase::SpacebarDragOverlay::modifierKeysChanged (const ModifierKeys& modifiers) +{ +} + //============================================================================== EditorCanvasBase::Scale::Scale() : scale (1.0) diff --git a/extras/Jucer (experimental)/Source/ui/Editor Base/jucer_EditorCanvas.h b/extras/Jucer (experimental)/Source/ui/Editor Base/jucer_EditorCanvas.h index b121108ea5..1a7b3b728c 100644 --- a/extras/Jucer (experimental)/Source/ui/Editor Base/jucer_EditorCanvas.h +++ b/extras/Jucer (experimental)/Source/ui/Editor Base/jucer_EditorCanvas.h @@ -49,6 +49,8 @@ public: //============================================================================== void paint (Graphics& g); void resized(); + bool keyStateChanged (bool isKeyDown); + bool keyPressed (const KeyPress& key); const Rectangle getContentArea() const; @@ -169,10 +171,29 @@ protected: class DocumentResizeFrame; class OverlayComponent; + class SpacebarDragOverlay : public Component + { + public: + SpacebarDragOverlay(); + ~SpacebarDragOverlay(); + + bool updateVisibility(); + + void paint (Graphics&); + void mouseMove (const MouseEvent& e); + void mouseDown (const MouseEvent& e); + void mouseDrag (const MouseEvent& e); + void modifierKeysChanged (const ModifierKeys& modifiers); + + private: + Point dragStart; + }; + //============================================================================== - Component* componentHolder; - OverlayComponent* overlay; - DocumentResizeFrame* resizeFrame; + ScopedPointer componentHolder; + ScopedPointer overlay; + ScopedPointer resizeFrame; + SpacebarDragOverlay spacebarDragOverlay; ScopedPointer dragger; void handleAsyncUpdate(); diff --git a/extras/Jucer (experimental)/Source/utility/jucer_MarkerListBase.h b/extras/Jucer (experimental)/Source/utility/jucer_MarkerListBase.h index 57fedeee3d..ab71f00e54 100644 --- a/extras/Jucer (experimental)/Source/utility/jucer_MarkerListBase.h +++ b/extras/Jucer (experimental)/Source/utility/jucer_MarkerListBase.h @@ -60,7 +60,7 @@ public: } } - virtual void createMarker (const String& name, int position) = 0; + virtual void createMarker (const String& name, double position) = 0; virtual void deleteMarker (ValueTree& markerState) = 0; //============================================================================== diff --git a/extras/amalgamator/Builds/VisualStudio2005/Amalgamator.vcproj b/extras/amalgamator/Builds/VisualStudio2005/Amalgamator.vcproj index 76dcbf6771..be2c474bae 100644 --- a/extras/amalgamator/Builds/VisualStudio2005/Amalgamator.vcproj +++ b/extras/amalgamator/Builds/VisualStudio2005/Amalgamator.vcproj @@ -10,7 +10,7 @@ - - - - CFBundleExecutable - ${EXECUTABLE_NAME} + ${EXECUTABLE_NAME} CFBundleIconFile CFBundleIdentifier diff --git a/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj b/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj index 568bf7a75c..4489f0904d 100644 --- a/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj +++ b/extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj @@ -10,7 +10,7 @@ - - - - CFBundleExecutable - ${EXECUTABLE_NAME} + ${EXECUTABLE_NAME} CFBundleIconFile CFBundleIdentifier diff --git a/extras/audio plugins/demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj b/extras/audio plugins/demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj index 5791e73cd7..5a1f0ab96a 100644 --- a/extras/audio plugins/demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj +++ b/extras/audio plugins/demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj @@ -10,7 +10,7 @@ - - - - - - - - CFBundleExecutable - ${EXECUTABLE_NAME} + ${EXECUTABLE_NAME} CFBundleIconFile CFBundleIdentifier diff --git a/extras/example projects/Builds/VisualStudio2005/HelloWorld.vcproj b/extras/example projects/Builds/VisualStudio2005/HelloWorld.vcproj index 23bc7d745f..8dea3e7dba 100644 --- a/extras/example projects/Builds/VisualStudio2005/HelloWorld.vcproj +++ b/extras/example projects/Builds/VisualStudio2005/HelloWorld.vcproj @@ -10,7 +10,7 @@ - - - - CFBundleExecutable - ${EXECUTABLE_NAME} + ${EXECUTABLE_NAME} CFBundleIconFile CFBundleIdentifier diff --git a/extras/juce demo/Builds/MacOSX/Info.plist b/extras/juce demo/Builds/MacOSX/Info.plist index cef430999d..fbc0914d22 100644 --- a/extras/juce demo/Builds/MacOSX/Info.plist +++ b/extras/juce demo/Builds/MacOSX/Info.plist @@ -4,7 +4,7 @@ CFBundleExecutable - ${EXECUTABLE_NAME} + ${EXECUTABLE_NAME} CFBundleIconFile CFBundleIdentifier diff --git a/extras/juce demo/Builds/VisualStudio2005/Juce Demo.vcproj b/extras/juce demo/Builds/VisualStudio2005/Juce Demo.vcproj index 2a3dc74758..0032c41608 100644 --- a/extras/juce demo/Builds/VisualStudio2005/Juce Demo.vcproj +++ b/extras/juce demo/Builds/VisualStudio2005/Juce Demo.vcproj @@ -10,7 +10,7 @@ - - - - - - - - - - - - diff --git a/extras/juce demo/Builds/VisualStudio2008/Juce Demo.vcproj b/extras/juce demo/Builds/VisualStudio2008/Juce Demo.vcproj index 2967d3d7f3..22b71fbe6f 100644 --- a/extras/juce demo/Builds/VisualStudio2008/Juce Demo.vcproj +++ b/extras/juce demo/Builds/VisualStudio2008/Juce Demo.vcproj @@ -10,7 +10,7 @@ - - - - - - - - - - - - diff --git a/extras/juce demo/Builds/VisualStudio2010/Juce Demo.sln b/extras/juce demo/Builds/VisualStudio2010/Juce Demo.sln new file mode 100644 index 0000000000..d9ead8d9ee --- /dev/null +++ b/extras/juce demo/Builds/VisualStudio2010/Juce Demo.sln @@ -0,0 +1,19 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +Project("{7A947A64-CDD8-D41D-F886-5E65A8ABDF81}") = "Juce Demo", "Juce Demo.vcxproj", "{36211E76-A802-50EE-3B95-0202F4EB67ED}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {36211E76-A802-50EE-3B95-0202F4EB67ED}.Debug|Win32.ActiveCfg = Debug|Win32 + {36211E76-A802-50EE-3B95-0202F4EB67ED}.Debug|Win32.Build.0 = Debug|Win32 + {36211E76-A802-50EE-3B95-0202F4EB67ED}.Release|Win32.ActiveCfg = Release|Win32 + {36211E76-A802-50EE-3B95-0202F4EB67ED}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/extras/juce demo/Builds/VisualStudio2010/Juce Demo.vcxproj b/extras/juce demo/Builds/VisualStudio2010/Juce Demo.vcxproj new file mode 100644 index 0000000000..0b51703f25 --- /dev/null +++ b/extras/juce demo/Builds/VisualStudio2010/Juce Demo.vcxproj @@ -0,0 +1,168 @@ + + + + + + Debug + Win32 + + + Release + Win32 + + + + {36211E76-A802-50EE-3B95-0202F4EB67ED} + + + + Application + false + MultiByte + + + Application + false + MultiByte + true + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\Debug\ + .\Debug\ + JuceDemo + .\Release\ + .\Release\ + JuceDemo + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Disabled + EditAndContinue + %(AdditionalIncludeDirectories) + JUCER_VS2010_78A501D;WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions) + MultiThreadedDebug + true + + .\Debug\ + .\Debug\ + .\Debug\ + Level4 + true + + + _DEBUG;%(PreprocessorDefinitions) + + + .\Debug\JuceDemo.exe + true + libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) + true + .\Debug\JuceDemo.pdb + Windows + MachineX86 + + + true + .\Debug\JuceDemo.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + MaxSpeed + %(AdditionalIncludeDirectories) + JUCER_VS2010_78A501D;WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions) + MultiThreaded + true + + .\Release\ + .\Release\ + .\Release\ + Level4 + true + + + NDEBUG;%(PreprocessorDefinitions) + + + .\Release\JuceDemo.exe + true + %(IgnoreSpecificDefaultLibraries) + false + .\Release\JuceDemo.pdb + Windows + MachineX86 + true + true + + + true + .\Release\JuceDemo.bsc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/juce demo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters b/extras/juce demo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters new file mode 100644 index 0000000000..651b8d318a --- /dev/null +++ b/extras/juce demo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters @@ -0,0 +1,154 @@ + + + + + + {D3C1BE7C-161D-78D2-AA4A-AE5B28A49DC5} + + + {D4BFDBA1-04DA-1AF7-BEDF-7A5C63D00D65} + + + {383A10E9-7C30-CC23-0554-D95AC593AAFC} + + + {6E0A4587-C5D5-BB9D-A788-42A182380C69} + + + {F7048EA6-F4B2-F31B-E402-E05D678A1111} + + + + + Juce Demo\Source + + + Juce Demo\Source + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Binary Data + + + Juce Demo\Source\Binary Data + + + Juce Demo\Source\Binary Data + + + Juce Demo\Source\Binary Data + + + Juce Demo\Source\Binary Data + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + + + Juce Demo\Source + + + Juce Demo\Source + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Demo\Source\Demos + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + diff --git a/extras/juce demo/Builds/iPhone/Info.plist b/extras/juce demo/Builds/iPhone/Info.plist index cef430999d..fbc0914d22 100644 --- a/extras/juce demo/Builds/iPhone/Info.plist +++ b/extras/juce demo/Builds/iPhone/Info.plist @@ -4,7 +4,7 @@ CFBundleExecutable - ${EXECUTABLE_NAME} + ${EXECUTABLE_NAME} CFBundleIconFile CFBundleIdentifier diff --git a/extras/juce demo/Juce Demo.jucer b/extras/juce demo/Juce Demo.jucer index 355914ee01..4a9fc8780f 100644 --- a/extras/juce demo/Juce Demo.jucer +++ b/extras/juce demo/Juce Demo.jucer @@ -18,6 +18,8 @@ + updateContextPosition(); + + if (! isShowingNow) + { + const ScopedLock sl (owner->getContextLock()); + owner->deleteContext(); + } } } diff --git a/src/text/juce_XmlElement.cpp b/src/text/juce_XmlElement.cpp index e6c01f4e52..cc15a419a7 100644 --- a/src/text/juce_XmlElement.cpp +++ b/src/text/juce_XmlElement.cpp @@ -160,7 +160,7 @@ namespace XmlOutputFunctions || (character >= '0' && character <= '9')) return true; - const char* t = " .,;:-()_+=?!'#@[]/\\*%~{}"; + const char* t = " .,;:-()_+=?!'#@[]/\\*%~{}$|"; do { @@ -189,7 +189,7 @@ namespace XmlOutputFunctions static bool isLegalXmlChar (const uint32 c) throw() { - static const unsigned char legalChars[] = { 0, 0, 0, 0, 171, 255, 255, 175, 255, 255, 255, 191, 254, 255, 255, 111 }; + static const unsigned char legalChars[] = { 0, 0, 0, 0, 187, 255, 255, 175, 255, 255, 255, 191, 254, 255, 255, 127 }; return c < sizeof (legalChars) * 8 && (legalChars [c >> 3] & (1 << (c & 7))) != 0;