mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
AttributedString class and advanced text layout (stage 1)
This commit is contained in:
parent
15252c7227
commit
4773b388ef
55 changed files with 2528 additions and 35 deletions
|
|
@ -188,6 +188,7 @@
|
|||
2E540A9137E245EFADCFABB3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
2E680E2C65684A4272AE079A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_SourceCodeEditor.cpp"; path = "../../Source/Code Editor/jucer_SourceCodeEditor.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
2E96852D55A9C1DEAF76FF6D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
2ED5D4ABB34DAA5D6E93A171 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
2EEB1C074162F363C6599282 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_CommandLine.h"; path = "../../Source/Application/jucer_CommandLine.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
2FADEBA1901F74204DE253BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
2FBA1138907F4DE651870008 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseListener.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -372,6 +373,7 @@
|
|||
795AF1D634CA3E6FA899E0B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
796AEF1400580E81AAF23CE7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
79F7CC3E9B848AAA3A5C682B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
7B824A2F1BBE334B140BD8AF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
7C02936574E000C436E3AD8E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Value.cpp"; path = "../../../../modules/juce_data_structures/values/juce_Value.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
7C48EA717C5B1136A39FF4FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
7CBB297E627A7DC7EA12A8B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -551,6 +553,7 @@
|
|||
B92070A7D5952D560DAD32C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
B945EB1DEE6D684E980B7428 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
B9F806910507E82E7BFB15E0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
BA1E340A922D0D7E543563CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
BA5C7DE347A73A87F687703C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
BA95268EEE80F9509EC1F76F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
BAC43B20E14A340CCF14119C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_Project.cpp"; path = "../../Source/Project/jucer_Project.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -631,6 +634,7 @@
|
|||
D4E56676E2EF83404EDCBA8C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
D4F2D42C58F4D86E00E76F31 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D503780AB98993E8F0BA1311 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
D5057D7B18ABD5E810A6F830 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
D526C38D581425949BA0E4AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_FilePreviewComponent.h"; path = "../../Source/Application/jucer_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D53B54D1786A1FFC024BF064 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_cryptography.mm"; path = "../../../../modules/juce_cryptography/juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
D5A6D00DEFDC650AF432A698 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../../../modules/juce_gui_basics/application/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -1179,6 +1183,8 @@
|
|||
DB20268A566DABEAE3F2CBEE,
|
||||
93D165846B65A638F1C25C4C ); name = placement; sourceTree = "<group>"; };
|
||||
59C2687AA614A77DA150AFAB = { isa = PBXGroup; children = (
|
||||
BA1E340A922D0D7E543563CF,
|
||||
7B824A2F1BBE334B140BD8AF,
|
||||
3F1501FE4867042830B25DD5,
|
||||
CD3216F23C7B273B010A8D12,
|
||||
14B7611971E56AC319072A5A,
|
||||
|
|
@ -1205,6 +1211,8 @@
|
|||
0B96A219A0CFF707E5A13B68,
|
||||
2AADCE9D8BADF4DAC05CCA1E,
|
||||
21FAFA7F2C5D0E8D99876EA8,
|
||||
D5057D7B18ABD5E810A6F830,
|
||||
2ED5D4ABB34DAA5D6E93A171,
|
||||
5843A5060852C6ACC4770EC7 ); name = native; sourceTree = "<group>"; };
|
||||
E9819C83D0B797FC71811B1B = { isa = PBXGroup; children = (
|
||||
C3FB0CB81D460B4263689CAF,
|
||||
|
|
|
|||
|
|
@ -1758,6 +1758,17 @@
|
|||
<File RelativePath="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
</Filter>
|
||||
<Filter Name="fonts">
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -1885,6 +1896,26 @@
|
|||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -1758,6 +1758,17 @@
|
|||
<File RelativePath="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
</Filter>
|
||||
<Filter Name="fonts">
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -1885,6 +1896,26 @@
|
|||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -509,6 +509,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -542,6 +545,12 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -1156,6 +1165,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
|
||||
|
|
|
|||
|
|
@ -706,6 +706,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\placement</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -745,6 +748,12 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -1821,6 +1830,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h">
|
||||
<Filter>Juce Modules\juce_graphics\placement</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.h">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
// juce_graphics flags:
|
||||
|
||||
#define JUCE_USE_COREIMAGE_LOADER 0
|
||||
//#define JUCE_USE_DIRECTWRITE
|
||||
|
||||
//==============================================================================
|
||||
// juce_gui_basics flags:
|
||||
|
|
|
|||
|
|
@ -381,7 +381,7 @@ static const unsigned char temp_98c9479f[] =
|
|||
"/*\r\n"
|
||||
" ==============================================================================\r\n"
|
||||
"\r\n"
|
||||
" This file was auto-generated by the Jucer!\r\n"
|
||||
" This file was auto-generated!\r\n"
|
||||
"\r\n"
|
||||
" It contains the basic startup code for a Juce application.\r\n"
|
||||
"\r\n"
|
||||
|
|
@ -563,7 +563,7 @@ static const unsigned char temp_62b91564[] =
|
|||
"/*\r\n"
|
||||
" ==============================================================================\r\n"
|
||||
"\r\n"
|
||||
" This file was auto-generated by the Jucer!\r\n"
|
||||
" This file was auto-generated!\r\n"
|
||||
"\r\n"
|
||||
" It contains the basic startup code for a Juce application.\r\n"
|
||||
"\r\n"
|
||||
|
|
@ -640,7 +640,7 @@ static const unsigned char temp_794304c3[] =
|
|||
"/*\r\n"
|
||||
" ==============================================================================\r\n"
|
||||
"\r\n"
|
||||
" This file was auto-generated by the Jucer!\r\n"
|
||||
" This file was auto-generated!\r\n"
|
||||
"\r\n"
|
||||
" It contains the basic startup code for a Juce application.\r\n"
|
||||
"\r\n"
|
||||
|
|
@ -783,7 +783,7 @@ static const unsigned char temp_6fd7e50[] =
|
|||
"/*\r\n"
|
||||
" ==============================================================================\r\n"
|
||||
"\r\n"
|
||||
" This file was auto-generated by the Jucer!\r\n"
|
||||
" This file was auto-generated!\r\n"
|
||||
"\r\n"
|
||||
" It contains the basic outline for a simple desktop window.\r\n"
|
||||
"\r\n"
|
||||
|
|
@ -819,7 +819,7 @@ static const unsigned char temp_613d4455[] =
|
|||
"/*\r\n"
|
||||
" ==============================================================================\r\n"
|
||||
"\r\n"
|
||||
" This file was auto-generated by the Jucer!\r\n"
|
||||
" This file was auto-generated!\r\n"
|
||||
"\r\n"
|
||||
" It contains the basic outline for a simple desktop window.\r\n"
|
||||
"\r\n"
|
||||
|
|
|
|||
|
|
@ -20,13 +20,13 @@ namespace BinaryData
|
|||
const int jucer_AudioPluginEditorTemplate_hSize = 799;
|
||||
|
||||
extern const char* jucer_AudioPluginFilterTemplate_cpp;
|
||||
const int jucer_AudioPluginFilterTemplate_cppSize = 4468;
|
||||
const int jucer_AudioPluginFilterTemplate_cppSize = 4455;
|
||||
|
||||
extern const char* jucer_AudioPluginFilterTemplate_h;
|
||||
const int jucer_AudioPluginFilterTemplate_hSize = 2413;
|
||||
const int jucer_AudioPluginFilterTemplate_hSize = 2400;
|
||||
|
||||
extern const char* jucer_MainConsoleAppTemplate_cpp;
|
||||
const int jucer_MainConsoleAppTemplate_cppSize = 483;
|
||||
const int jucer_MainConsoleAppTemplate_cppSize = 470;
|
||||
|
||||
extern const char* jucer_MainTemplate_cpp;
|
||||
const int jucer_MainTemplate_cppSize = 1825;
|
||||
|
|
@ -38,10 +38,10 @@ namespace BinaryData
|
|||
const int jucer_NewCppFileTemplate_hSize = 308;
|
||||
|
||||
extern const char* jucer_WindowTemplate_cpp;
|
||||
const int jucer_WindowTemplate_cppSize = 794;
|
||||
const int jucer_WindowTemplate_cppSize = 781;
|
||||
|
||||
extern const char* jucer_WindowTemplate_h;
|
||||
const int jucer_WindowTemplate_hSize = 1229;
|
||||
const int jucer_WindowTemplate_hSize = 1216;
|
||||
|
||||
extern const char* juce_icon_png;
|
||||
const int juce_icon_pngSize = 19826;
|
||||
|
|
|
|||
|
|
@ -271,8 +271,10 @@
|
|||
38CDDFDC6697BF7BCFC8DAFC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
38E0255E6BB9600DEECD39F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectangleList.h"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
393CDFCFA0358C689E5A3691 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
39DADA0AAD7468C535ECD5A2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
39ED2CD3C8A17DF313A0838B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
3A3C8D765CD02651E2C39102 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
3A7C2EA6B6C8E00BBE6A29B1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
3A9AB41831037CF68FF5719F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
3ADBF520293DBBCE5A605902 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
3AEC36869846977B0C09A881 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -428,6 +430,7 @@
|
|||
669FD4C70B8BF2B87DEAFB73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
66E3497A9DCF883BCE6A27A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
66F2929C04B6E230FFA975C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessage.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6704DC3810D991DADFF947AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
678034FB9D177C3D08044AB9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
67B45F46192481A24287B06C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
67DA4E3A02A5697DE923E0C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -529,6 +532,7 @@
|
|||
86DF811859C602F24589AC3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
877D61C08ADC5B13C2627327 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OpenGLDemo.cpp; path = ../../Source/demos/OpenGLDemo.cpp; sourceTree = "SOURCE_ROOT"; };
|
||||
87EDA764A802069F89CEC355 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
87FB016388B49E97FCCBE69B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../modules/juce_opengl/opengl/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
8878426C7F58CB22969E7133 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLContext.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
89006BBD5040A06E6C559F16 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
890F3D7DA5BC01DACF8E5431 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -779,6 +783,7 @@
|
|||
D27A3A58DCC37B5EFC3AD745 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D27D41D4A06E286FDBDF7549 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D2C40CDF46D894BFC72BDC56 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLHelpers.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D2F161366612A4CDA6372113 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../modules/juce_opengl/opengl/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D33142A214D7AC7A8ED27E4A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D33EBA9793C56D73135BD1F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
D3AD73A360B24493ECC4E092 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -795,6 +800,7 @@
|
|||
D7239D5B984E07808E2DB28C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLHelpers.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
D7E6E92AA32B7D51489FD256 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D8081154AA3072D2F2C4B625 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../../../modules/juce_core/native/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D866C4735BF1EF0CA24FC1FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../modules/juce_opengl/opengl/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D8AFC87A918360FFC9D96BE5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D9282DF6556197822D2BD5D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../../../modules/juce_core/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
DA0D464BE6E90C3668AD7C73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -807,7 +813,6 @@
|
|||
DEA38275A65473112CD34252 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
DEB23C98FEC261260F63B6A4 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
||||
DED6D04CFED991C5924B78F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MD5.h"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
DEE1FC30E2FBB97921616CA9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
DF2D86EEA8031481C1FD08B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
DF590CD70352A30FA3BD9835 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
E0AE248F52C70AA1DEA1A5A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -821,8 +826,10 @@
|
|||
E6448B3F03DD2B41519DF93D = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; };
|
||||
D119A3871626EC2B8EFCB0D4 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JuceDemo.app; sourceTree = "BUILT_PRODUCTS_DIR"; };
|
||||
D2F7081BE9A6E24BA7CD1A46 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
DEE1FC30E2FBB97921616CA9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
DF3B7E1BC0AF0C826C47745B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
DF47E8197FF5A9309C062C61 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Justification.cpp"; path = "../../../../modules/juce_graphics/placement/juce_Justification.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
DFEAB699C98B89FF0B85F557 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
DFF6BF0BB64714A494A25E93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
E15F577E82B2E12597447472 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationBase.h"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
E2732267CD7C0C3BDB17456A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -848,6 +855,7 @@
|
|||
EB902A37F3AA5BC62D523F5B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
EB9E8921A8D36EDD7FF3245B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
EC180AD91D1B068D7A8F33BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
EC89003BF30329181BB3EA4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../modules/juce_opengl/opengl/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
EC93857F367028441A067F45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
EC97B274D075920B2490E0D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
ECCEB7E5D6B18F1376E34EDC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -1490,6 +1498,8 @@
|
|||
C30EE4EFDB359E2A9D58F677,
|
||||
989587AD131FF27180BEB3D1 ); name = placement; sourceTree = "<group>"; };
|
||||
0FC4D9918A17F33EEF6831F1 = { isa = PBXGroup; children = (
|
||||
39DADA0AAD7468C535ECD5A2,
|
||||
3A7C2EA6B6C8E00BBE6A29B1,
|
||||
36DD59799C3C4279B18DEAD3,
|
||||
1118BAEA98C38755FEB9E274,
|
||||
DEE1FC30E2FBB97921616CA9,
|
||||
|
|
@ -1516,6 +1526,8 @@
|
|||
0BBEDD3E8C0C2B7C4B52016A,
|
||||
2649F70294DB168919CBCAD3,
|
||||
5712EB90A8B51DBBC4E19A39,
|
||||
6704DC3810D991DADFF947AC,
|
||||
DFEAB699C98B89FF0B85F557,
|
||||
5CABE190EBD0F4EEB763114A ); name = native; sourceTree = "<group>"; };
|
||||
980520A52BB3BF76E45AECA8 = { isa = PBXGroup; children = (
|
||||
6B073962B4485C2D4419DB53,
|
||||
|
|
@ -1866,6 +1878,8 @@
|
|||
5E12C726C5DBB9C81963FAB5,
|
||||
A97EC32975392744C62684F9 ); name = "juce_gui_extra"; sourceTree = "<group>"; };
|
||||
EB8917291F41B7345B13B53E = { isa = PBXGroup; children = (
|
||||
D866C4735BF1EF0CA24FC1FB,
|
||||
87FB016388B49E97FCCBE69B,
|
||||
4F802BD98072EA49F7F4FE4A,
|
||||
D6D0F076F54C7D669A9717C9,
|
||||
8878426C7F58CB22969E7133,
|
||||
|
|
@ -1880,7 +1894,9 @@
|
|||
B81FA2ED22BCC03D124031ED,
|
||||
942191F317B1B2B1CFBB7C60,
|
||||
FE9A5898294228EB7F439951,
|
||||
4CFB262AA9778621B8B33A7D ); name = opengl; sourceTree = "<group>"; };
|
||||
4CFB262AA9778621B8B33A7D,
|
||||
EC89003BF30329181BB3EA4B,
|
||||
D2F161366612A4CDA6372113 ); name = opengl; sourceTree = "<group>"; };
|
||||
C92FEA88254DAAE793DB3CF7 = { isa = PBXGroup; children = (
|
||||
22C2C932398DC1EFE0880A9A,
|
||||
ED9FAEA9116C568942BAD000,
|
||||
|
|
|
|||
|
|
@ -2492,6 +2492,17 @@
|
|||
<File RelativePath="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
</Filter>
|
||||
<Filter Name="fonts">
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -2619,6 +2630,26 @@
|
|||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -4197,6 +4228,8 @@
|
|||
</Filter>
|
||||
<Filter Name="juce_opengl">
|
||||
<Filter Name="opengl">
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Draggable3DOrientation.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Matrix3D.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLComponent.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -4266,6 +4299,8 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLTexture.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Quaternion.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Vector3D.h"/>
|
||||
</Filter>
|
||||
<Filter Name="native">
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\native\juce_android_OpenGLComponent.cpp">
|
||||
|
|
|
|||
|
|
@ -2492,6 +2492,17 @@
|
|||
<File RelativePath="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
</Filter>
|
||||
<Filter Name="fonts">
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -2619,6 +2630,26 @@
|
|||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -4197,6 +4228,8 @@
|
|||
</Filter>
|
||||
<Filter Name="juce_opengl">
|
||||
<Filter Name="opengl">
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Draggable3DOrientation.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Matrix3D.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLComponent.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -4266,6 +4299,8 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLTexture.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Quaternion.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Vector3D.h"/>
|
||||
</Filter>
|
||||
<Filter Name="native">
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\native\juce_android_OpenGLComponent.cpp">
|
||||
|
|
|
|||
|
|
@ -692,6 +692,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -725,6 +728,12 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -1424,6 +1433,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
|
||||
|
|
@ -1578,6 +1588,8 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_gui_extra\misc\juce_WebBrowserComponent.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_gui_extra\native\juce_mac_CarbonViewWrapperComponent.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_gui_extra\juce_gui_extra.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Draggable3DOrientation.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Matrix3D.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLComponent.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLContext.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLFrameBuffer.h"/>
|
||||
|
|
@ -1587,6 +1599,8 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLPixelFormat.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLRenderingTarget.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLTexture.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Quaternion.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Vector3D.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\juce_opengl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_video\playback\juce_DirectShowComponent.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_video\playback\juce_QuickTimeMovieComponent.h"/>
|
||||
|
|
|
|||
|
|
@ -997,6 +997,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\placement</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -1036,6 +1039,12 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -2307,6 +2316,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h">
|
||||
<Filter>Juce Modules\juce_graphics\placement</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.h">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -2769,6 +2781,12 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_gui_extra\juce_gui_extra.h">
|
||||
<Filter>Juce Modules\juce_gui_extra</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Draggable3DOrientation.h">
|
||||
<Filter>Juce Modules\juce_opengl\opengl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Matrix3D.h">
|
||||
<Filter>Juce Modules\juce_opengl\opengl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLComponent.h">
|
||||
<Filter>Juce Modules\juce_opengl\opengl</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -2796,6 +2814,12 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLTexture.h">
|
||||
<Filter>Juce Modules\juce_opengl\opengl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Quaternion.h">
|
||||
<Filter>Juce Modules\juce_opengl\opengl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Vector3D.h">
|
||||
<Filter>Juce Modules\juce_opengl\opengl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\juce_opengl.h">
|
||||
<Filter>Juce Modules\juce_opengl</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -264,8 +264,10 @@
|
|||
38CDDFDC6697BF7BCFC8DAFC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
38E0255E6BB9600DEECD39F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectangleList.h"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
393CDFCFA0358C689E5A3691 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
39DADA0AAD7468C535ECD5A2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
39ED2CD3C8A17DF313A0838B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
3A3C8D765CD02651E2C39102 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
3A7C2EA6B6C8E00BBE6A29B1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
3A9AB41831037CF68FF5719F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
3ADBF520293DBBCE5A605902 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
3AEC36869846977B0C09A881 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -420,6 +422,7 @@
|
|||
669FD4C70B8BF2B87DEAFB73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
66E3497A9DCF883BCE6A27A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
66F2929C04B6E230FFA975C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessage.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6704DC3810D991DADFF947AC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
678034FB9D177C3D08044AB9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
67B45F46192481A24287B06C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
67DA4E3A02A5697DE923E0C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -522,6 +525,7 @@
|
|||
86DF811859C602F24589AC3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
877D61C08ADC5B13C2627327 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OpenGLDemo.cpp; path = ../../Source/demos/OpenGLDemo.cpp; sourceTree = "SOURCE_ROOT"; };
|
||||
87EDA764A802069F89CEC355 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
87FB016388B49E97FCCBE69B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../modules/juce_opengl/opengl/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
8878426C7F58CB22969E7133 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLContext.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
89006BBD5040A06E6C559F16 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
890F3D7DA5BC01DACF8E5431 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -770,6 +774,7 @@
|
|||
D27A3A58DCC37B5EFC3AD745 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D27D41D4A06E286FDBDF7549 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D2C40CDF46D894BFC72BDC56 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLHelpers.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D2F161366612A4CDA6372113 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../modules/juce_opengl/opengl/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D2F7081BE9A6E24BA7CD1A46 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioThumbnailCache.cpp"; path = "../../../../modules/juce_audio_utils/gui/juce_AudioThumbnailCache.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
D33142A214D7AC7A8ED27E4A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D33EBA9793C56D73135BD1F0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -786,6 +791,7 @@
|
|||
D7239D5B984E07808E2DB28C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLHelpers.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
D7E6E92AA32B7D51489FD256 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D8081154AA3072D2F2C4B625 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../../../modules/juce_core/native/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D866C4735BF1EF0CA24FC1FB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../modules/juce_opengl/opengl/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D8AFC87A918360FFC9D96BE5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D9282DF6556197822D2BD5D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../../../modules/juce_core/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
DA0D464BE6E90C3668AD7C73 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -803,6 +809,7 @@
|
|||
DF3B7E1BC0AF0C826C47745B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
DF47E8197FF5A9309C062C61 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Justification.cpp"; path = "../../../../modules/juce_graphics/placement/juce_Justification.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
DF590CD70352A30FA3BD9835 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
DFEAB699C98B89FF0B85F557 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
DFF6BF0BB64714A494A25E93 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
E0AE248F52C70AA1DEA1A5A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
E15F577E82B2E12597447472 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationBase.h"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -838,6 +845,7 @@
|
|||
EB902A37F3AA5BC62D523F5B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
EB9E8921A8D36EDD7FF3245B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
EC180AD91D1B068D7A8F33BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
EC89003BF30329181BB3EA4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../modules/juce_opengl/opengl/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
EC93857F367028441A067F45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
EC97B274D075920B2490E0D8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
ECCEB7E5D6B18F1376E34EDC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -1480,6 +1488,8 @@
|
|||
C30EE4EFDB359E2A9D58F677,
|
||||
989587AD131FF27180BEB3D1 ); name = placement; sourceTree = "<group>"; };
|
||||
0FC4D9918A17F33EEF6831F1 = { isa = PBXGroup; children = (
|
||||
39DADA0AAD7468C535ECD5A2,
|
||||
3A7C2EA6B6C8E00BBE6A29B1,
|
||||
36DD59799C3C4279B18DEAD3,
|
||||
1118BAEA98C38755FEB9E274,
|
||||
DEE1FC30E2FBB97921616CA9,
|
||||
|
|
@ -1506,6 +1516,8 @@
|
|||
0BBEDD3E8C0C2B7C4B52016A,
|
||||
2649F70294DB168919CBCAD3,
|
||||
5712EB90A8B51DBBC4E19A39,
|
||||
6704DC3810D991DADFF947AC,
|
||||
DFEAB699C98B89FF0B85F557,
|
||||
5CABE190EBD0F4EEB763114A ); name = native; sourceTree = "<group>"; };
|
||||
980520A52BB3BF76E45AECA8 = { isa = PBXGroup; children = (
|
||||
6B073962B4485C2D4419DB53,
|
||||
|
|
@ -1856,6 +1868,8 @@
|
|||
5E12C726C5DBB9C81963FAB5,
|
||||
A97EC32975392744C62684F9 ); name = "juce_gui_extra"; sourceTree = "<group>"; };
|
||||
EB8917291F41B7345B13B53E = { isa = PBXGroup; children = (
|
||||
D866C4735BF1EF0CA24FC1FB,
|
||||
87FB016388B49E97FCCBE69B,
|
||||
4F802BD98072EA49F7F4FE4A,
|
||||
D6D0F076F54C7D669A9717C9,
|
||||
8878426C7F58CB22969E7133,
|
||||
|
|
@ -1870,7 +1884,9 @@
|
|||
B81FA2ED22BCC03D124031ED,
|
||||
942191F317B1B2B1CFBB7C60,
|
||||
FE9A5898294228EB7F439951,
|
||||
4CFB262AA9778621B8B33A7D ); name = opengl; sourceTree = "<group>"; };
|
||||
4CFB262AA9778621B8B33A7D,
|
||||
EC89003BF30329181BB3EA4B,
|
||||
D2F161366612A4CDA6372113 ); name = opengl; sourceTree = "<group>"; };
|
||||
C92FEA88254DAAE793DB3CF7 = { isa = PBXGroup; children = (
|
||||
22C2C932398DC1EFE0880A9A,
|
||||
ED9FAEA9116C568942BAD000,
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@
|
|||
// juce_graphics flags:
|
||||
|
||||
//#define JUCE_USE_COREIMAGE_LOADER
|
||||
//#define JUCE_USE_DIRECTWRITE
|
||||
|
||||
//==============================================================================
|
||||
// juce_gui_basics flags:
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ ifeq ($(CONFIG),Debug)
|
|||
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "~/SDKs/vstsdk2.4" -I "../../JuceLibraryCode"
|
||||
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
|
||||
CXXFLAGS += $(CFLAGS)
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext
|
||||
LDDEPS :=
|
||||
RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "~/SDKs/vstsdk2.4" -I "../../JuceLibraryCode"
|
||||
TARGET := JuceDemoPlugin.so
|
||||
|
|
@ -35,7 +35,7 @@ ifeq ($(CONFIG),Release)
|
|||
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "~/SDKs/vstsdk2.4" -I "../../JuceLibraryCode"
|
||||
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -fPIC -Os
|
||||
CXXFLAGS += $(CFLAGS)
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext
|
||||
LDDEPS :=
|
||||
RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "~/SDKs/vstsdk2.4" -I "../../JuceLibraryCode"
|
||||
TARGET := JuceDemoPlugin.so
|
||||
|
|
|
|||
|
|
@ -431,6 +431,7 @@
|
|||
768D64C69F7B45E93D789C98 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
76D55C11232DE62691A084B6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
76E1F46C757D4704DD0F7DFE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
7729ACF65D9863D2582C3ED8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
773A8DF54F59CFC1C062FDA7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
7763B76C3E036AC3C028DBAC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
7808ECB520277B59485718C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -452,6 +453,7 @@
|
|||
7DC4334C7DA62856B8E70B25 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
7E1239926CC4A760AE07FF37 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_data_structures/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
|
||||
7EC813E6F2E7303438F82090 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
|
||||
7F38C9D398788039FD8CAF23 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
7F4472B4691BF3FED1C2025C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
7F85C06C86BD056B387ED7A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
7FBA208089BE0BD3949776EB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -633,6 +635,7 @@
|
|||
B829B4BAE71C6F09169542B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
B8B25605AB1A04A8AE545227 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B8B760CB559864834CC9AB32 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B9BE6469604B9D3252EFA7E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
BAF34E1248A8D20DDA992AFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
BB1148DE7477E7B58ABD2B95 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
BB84A0B296CFBF17FAF145B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -712,6 +715,7 @@
|
|||
D61536C96044EF9D6AC724F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D6274E461525C6F6FB84B336 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D6C649F04F03DA0744EA0456 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
D722F49E225A9A47AA348628 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
D79B9A384D018B252B6C4D6B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D85ABD84770A6A66B78C288B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D88796A40E58D524DE34989B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -1404,6 +1408,8 @@
|
|||
EDD6B4608C8E4C7E7581489D,
|
||||
E95E53ABEA2884BA27EF0545 ); name = placement; sourceTree = "<group>"; };
|
||||
A6DB78E18DD0399D8FA6881E = { isa = PBXGroup; children = (
|
||||
7729ACF65D9863D2582C3ED8,
|
||||
B9BE6469604B9D3252EFA7E7,
|
||||
B57C430D154C1C86350F246A,
|
||||
0E87CC46EB3070AD4D904EF5,
|
||||
F04CF5D4410243EF3DEDBEB8,
|
||||
|
|
@ -1430,6 +1436,8 @@
|
|||
56A295F04B7F248D0A52B878,
|
||||
1127215528CC4A4A504078BF,
|
||||
C8302DD07934EBD796C2BFBB,
|
||||
7F38C9D398788039FD8CAF23,
|
||||
D722F49E225A9A47AA348628,
|
||||
78959840E3EF9DC06998BB42 ); name = native; sourceTree = "<group>"; };
|
||||
F0F89564A3784EB052CEE01B = { isa = PBXGroup; children = (
|
||||
07D63FE21B0E6CB624B00E8D,
|
||||
|
|
|
|||
|
|
@ -2369,6 +2369,17 @@
|
|||
<File RelativePath="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
</Filter>
|
||||
<Filter Name="fonts">
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -2496,6 +2507,26 @@
|
|||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -2369,6 +2369,17 @@
|
|||
<File RelativePath="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
</Filter>
|
||||
<Filter Name="fonts">
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -2496,6 +2507,26 @@
|
|||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@
|
|||
// juce_graphics flags:
|
||||
|
||||
//#define JUCE_USE_COREIMAGE_LOADER
|
||||
//#define JUCE_USE_DIRECTWRITE
|
||||
|
||||
//==============================================================================
|
||||
// juce_gui_basics flags:
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ ifeq ($(CONFIG),Debug)
|
|||
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "~/SDKs/vstsdk2.4" -I "../../JuceLibraryCode"
|
||||
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0
|
||||
CXXFLAGS += $(CFLAGS)
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext
|
||||
LDDEPS :=
|
||||
RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "~/SDKs/vstsdk2.4" -I "../../JuceLibraryCode"
|
||||
TARGET := Plugin\ Host
|
||||
|
|
@ -35,7 +35,7 @@ ifeq ($(CONFIG),Release)
|
|||
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "~/SDKs/vstsdk2.4" -I "../../JuceLibraryCode"
|
||||
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -Os
|
||||
CXXFLAGS += $(CFLAGS)
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext
|
||||
LDDEPS :=
|
||||
RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "~/SDKs/vstsdk2.4" -I "../../JuceLibraryCode"
|
||||
TARGET := Plugin\ Host
|
||||
|
|
|
|||
|
|
@ -294,6 +294,7 @@
|
|||
47C408503AAF7D0AAF1484D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
47D5DB3D6E203E43E808C4C1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
480EB4F8B71B880C74AA82F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
483527FCBD7F07A7AF4743CC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../modules/juce_opengl/opengl/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
4876E03AA7977023BDABA2A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
492D3AE0538BC4DA6A6F7A27 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../../../modules/juce_core/json/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
4A394735BB54B32F3BA7A221 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -357,6 +358,7 @@
|
|||
5C24DE268797C1C7AC932837 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../../../modules/juce_core/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
5CAD4033015519DB9995E82C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
5CD825D3FEC4CA9FEE05D4D2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
5D6AF55EDB77231E95C23086 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
5DF1460C31CD1BF8FADF56D3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
5E0882CA277CB65EBD9292BD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
5E362FF0C74127A56DB805BB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -364,6 +366,7 @@
|
|||
5FA7C14489B6B17B022ACB6B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
600E61BFB0C43971B0A5D720 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
60BDD56D876ECD61169BD3D5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
60FEADAA8A60C12E4F2AEDD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
616738BCE455C5D3DD13CDFB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
61DCCE39ADAE59345FE119C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
627709CC8F994ADFE362022E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -423,6 +426,7 @@
|
|||
736D23CB06CFD14ECE4471CC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
7399BECD1499CBFE6CB6C9B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
740BB2D6D4D42F73A8334824 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
74CAA9C9A8F37A9FF99103F5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../modules/juce_opengl/opengl/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
75F290D7B7C53C03DC653FC5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
75FCAA8D3DF24813844D6552 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
7646DD91B282525F32FB8518 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -568,6 +572,7 @@
|
|||
A00EEAF2F98E0988499D2A92 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
A0582351AC1B641E0590F7AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
A0D98B5B7E49B6D7BB1FAA6B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
A1DC3C215187E6DD24DD7330 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../modules/juce_opengl/opengl/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
A249AD24A52F52ACBFDA6149 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
A24D1AD27646BD96ED513A2F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
A2C29B131B0CF45F91AEAB8E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -599,6 +604,7 @@
|
|||
AE7BE10688B3F7C18D21E9B9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
AEB543D49F0CD263051AC7ED = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
AEC8535EE0876B4B29206E6E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
AED08170765217A058A8C3BA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../modules/juce_opengl/opengl/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B03CEB6B84C7C8D1840CEFF3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
B0935EBBA4F6E2B05F3D1C0A = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
|
||||
B1068476E683AADD3CD8AD55 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -705,6 +711,7 @@
|
|||
CF0F1D933CE2A89A9D05FF38 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
CF27DFD59466D38E34428405 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Typeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
CF299925A6A365E288DC206E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
D0A714338F6B7A47BA1F8F45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
D104AE78E68E1C382F5F1A81 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; };
|
||||
D313CF37B25D7FD313C4F336 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
|
||||
D314CF2F97529FCF35042263 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -817,6 +824,7 @@
|
|||
F0BFBF49596C78EA5FA009DE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
F0E65E0A0D9C0F8D9D6A8116 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
F1784ECBF60C425066642C81 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
F186D87D177BE735EA9D6BC2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
F1C0CFDC6BF9AD9502D78223 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
F1FFDABA2B6EFBD4F57EF676 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
F242FFC66D5385888A14744E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AlertWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -1412,6 +1420,8 @@
|
|||
6462581CC4840341D6E7903F,
|
||||
5B4DD89CB29AEF782C6D878C ); name = placement; sourceTree = "<group>"; };
|
||||
9C8B57AFB5296F6948159935 = { isa = PBXGroup; children = (
|
||||
60FEADAA8A60C12E4F2AEDD4,
|
||||
5D6AF55EDB77231E95C23086,
|
||||
E513696B3670F32F12D807C0,
|
||||
E66AB26776DD0039834DBC76,
|
||||
8FF2B48D3DC38ABCDA0BBE83,
|
||||
|
|
@ -1438,6 +1448,8 @@
|
|||
AA7350771ED17561EB915EED,
|
||||
94D27CA81B1481621186F4D5,
|
||||
C62FBDF34D1B74CCF12AEA2F,
|
||||
D0A714338F6B7A47BA1F8F45,
|
||||
F186D87D177BE735EA9D6BC2,
|
||||
64A1DACEA71957604AD58B3C ); name = native; sourceTree = "<group>"; };
|
||||
735136A0AB9278D0871D9684 = { isa = PBXGroup; children = (
|
||||
EEC8570C058DC7EBFF48BF5E,
|
||||
|
|
@ -1788,6 +1800,8 @@
|
|||
016748F561B0B5046F24DDA0,
|
||||
923E4322525FD5CCAA5F911B ); name = "juce_gui_extra"; sourceTree = "<group>"; };
|
||||
E23F6FDE88C4164420DC07F6 = { isa = PBXGroup; children = (
|
||||
74CAA9C9A8F37A9FF99103F5,
|
||||
483527FCBD7F07A7AF4743CC,
|
||||
CD96180DDD8610A155629CE1,
|
||||
E89669EB797637247F52D30F,
|
||||
BE0231D93CBB02BBC2704D1D,
|
||||
|
|
@ -1802,7 +1816,9 @@
|
|||
8BA1AF085755958342C9213A,
|
||||
597D5688E23397FE09F53BA3,
|
||||
651055751E902F40B83EFD55,
|
||||
09089786B542AEB678DDE38F ); name = opengl; sourceTree = "<group>"; };
|
||||
09089786B542AEB678DDE38F,
|
||||
A1DC3C215187E6DD24DD7330,
|
||||
AED08170765217A058A8C3BA ); name = opengl; sourceTree = "<group>"; };
|
||||
E8C88E6E3FEC2E7A4373205B = { isa = PBXGroup; children = (
|
||||
0DA6343549C1279EEDA7A81A,
|
||||
6E673B706EA21387275F30FD,
|
||||
|
|
|
|||
|
|
@ -2415,6 +2415,17 @@
|
|||
<File RelativePath="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
</Filter>
|
||||
<Filter Name="fonts">
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -2542,6 +2553,26 @@
|
|||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -4120,6 +4151,8 @@
|
|||
</Filter>
|
||||
<Filter Name="juce_opengl">
|
||||
<Filter Name="opengl">
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Draggable3DOrientation.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Matrix3D.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLComponent.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -4189,6 +4222,8 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLTexture.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Quaternion.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Vector3D.h"/>
|
||||
</Filter>
|
||||
<Filter Name="native">
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\native\juce_android_OpenGLComponent.cpp">
|
||||
|
|
|
|||
|
|
@ -2415,6 +2415,17 @@
|
|||
<File RelativePath="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
</Filter>
|
||||
<Filter Name="fonts">
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -2542,6 +2553,26 @@
|
|||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -4120,6 +4151,8 @@
|
|||
</Filter>
|
||||
<Filter Name="juce_opengl">
|
||||
<Filter Name="opengl">
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Draggable3DOrientation.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Matrix3D.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLComponent.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -4189,6 +4222,8 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLTexture.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Quaternion.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Vector3D.h"/>
|
||||
</Filter>
|
||||
<Filter Name="native">
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\native\juce_android_OpenGLComponent.cpp">
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@
|
|||
// juce_graphics flags:
|
||||
|
||||
//#define JUCE_USE_COREIMAGE_LOADER
|
||||
//#define JUCE_USE_DIRECTWRITE
|
||||
|
||||
//==============================================================================
|
||||
// juce_gui_basics flags:
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ ifeq ($(CONFIG),Debug)
|
|||
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "../../JuceLibraryCode"
|
||||
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0
|
||||
CXXFLAGS += $(CFLAGS)
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext
|
||||
LDDEPS :=
|
||||
RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "../../JuceLibraryCode"
|
||||
TARGET := BinaryBuilder
|
||||
|
|
@ -35,7 +35,7 @@ ifeq ($(CONFIG),Release)
|
|||
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "../../JuceLibraryCode"
|
||||
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -Os
|
||||
CXXFLAGS += $(CFLAGS)
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext
|
||||
LDDEPS :=
|
||||
RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "../../JuceLibraryCode"
|
||||
TARGET := BinaryBuilder
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ ifeq ($(CONFIG),Debug)
|
|||
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "../../JuceLibraryCode"
|
||||
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0
|
||||
CXXFLAGS += $(CFLAGS)
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext
|
||||
LDDEPS :=
|
||||
RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "../../JuceLibraryCode"
|
||||
TARGET := HelloWorld
|
||||
|
|
@ -35,7 +35,7 @@ ifeq ($(CONFIG),Release)
|
|||
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "../../JuceLibraryCode"
|
||||
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -Os
|
||||
CXXFLAGS += $(CFLAGS)
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext
|
||||
LDDEPS :=
|
||||
RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "../../JuceLibraryCode"
|
||||
TARGET := HelloWorld
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
02FA201D32033D122C04A1B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../../../modules/juce_graphics/placement/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
0324378725B8DEBC11E93953 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
03E4C81E1D323C0CD78DC8A7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
0493323D5A1374BBEFCFE455 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
04A6FE27FC63E4D27E857CBF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
0525B4E0F2387B1F3AA520F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
068349E735D107BE09BEC641 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -63,6 +64,7 @@
|
|||
118B13BE32C7FDCE82BDC495 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
1259079CB2A8907577BBBAA3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
130A28E84D438B08C6B5D5A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
1316BB7ACE3F151F3B44A3EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
133B528A88E99C116B75BFDA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
140B14E0142DF835F1C6D951 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
140BFF25B0078C0709FF2461 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -224,6 +226,7 @@
|
|||
52AAE149F3EC7BAB0E7703DC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
52D7E72C26E3D1589A6A1BD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
536EB9664EDB02A4CBF9BD28 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
53F3EB3D456B15EF5CC6FC67 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
543A10EED475842E60CE7F3C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
5457E4C7D67E767CCD8B0964 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
54FF1D1CC748FA043A28004F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -430,6 +433,7 @@
|
|||
AC0B866AA2C5F577AA221143 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
AC488F0777290DB214E6E937 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../../../modules/juce_core/native/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
AC975C4D82A4C525F6D879A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
ACD09DE112FDD1028AC1E11B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
ACD0AD8EACA79E8A6273413E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
AD0FE0F54DE76E0C35A3B692 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
ADC3125F0DCD2924ACB173EB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -574,12 +578,12 @@
|
|||
E96CBEBCDABA3EA741C4C2EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
E9904E84AFCF3AB39B03BAA9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandManager.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
ED577465CA22A65861192A35 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
ED872E47438BBE6325FE78F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
EE785DBFA288EFA2E7AB2108 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GIFLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_GIFLoader.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
EF28BA2B5E24F4749F732230 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
EF54929F7151858D8FF8107B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
EF932865774E86525CE7FC55 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
||||
EA398D9C544440E06637C134 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HelloWorld.app; sourceTree = "BUILT_PRODUCTS_DIR"; };
|
||||
ED872E47438BBE6325FE78F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
EF3A7A1A871BAB32EA1B46EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
EFE00478AEAFE39D81B0E59D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
EFE65E031B01332448C2BE5E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -964,6 +968,8 @@
|
|||
7EE080AF681F1D927DF35B95,
|
||||
C71BB293CEF65605741E0CDA ); name = placement; sourceTree = "<group>"; };
|
||||
CBF50CCCB6412B6D1DC75BAC = { isa = PBXGroup; children = (
|
||||
1316BB7ACE3F151F3B44A3EC,
|
||||
ACD09DE112FDD1028AC1E11B,
|
||||
CB85029BEDE10DB68C5BAA21,
|
||||
EFE00478AEAFE39D81B0E59D,
|
||||
FF49DBB348CFFF3F396FB712,
|
||||
|
|
@ -990,6 +996,8 @@
|
|||
C6BCFCD2732C7153C33B6168,
|
||||
4C34CB4DC542D86A193C055A,
|
||||
A3961F3261459774B65EBD3B,
|
||||
0493323D5A1374BBEFCFE455,
|
||||
53F3EB3D456B15EF5CC6FC67,
|
||||
A5E748EC8CB636CEBF7BA497 ); name = native; sourceTree = "<group>"; };
|
||||
0BD57F3380CCDFE06E36335D = { isa = PBXGroup; children = (
|
||||
39D7580AE0D199F462A0411D,
|
||||
|
|
|
|||
|
|
@ -1486,6 +1486,17 @@
|
|||
<File RelativePath="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
</Filter>
|
||||
<Filter Name="fonts">
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -1613,6 +1624,26 @@
|
|||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -1486,6 +1486,17 @@
|
|||
<File RelativePath="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
</Filter>
|
||||
<Filter Name="fonts">
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -1613,6 +1624,26 @@
|
|||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
02FA201D32033D122C04A1B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../../../modules/juce_graphics/placement/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
0324378725B8DEBC11E93953 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
03E4C81E1D323C0CD78DC8A7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
0493323D5A1374BBEFCFE455 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
04A6FE27FC63E4D27E857CBF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
0525B4E0F2387B1F3AA520F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
068349E735D107BE09BEC641 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -64,6 +65,7 @@
|
|||
118B13BE32C7FDCE82BDC495 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
1259079CB2A8907577BBBAA3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
130A28E84D438B08C6B5D5A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
1316BB7ACE3F151F3B44A3EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
133B528A88E99C116B75BFDA = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
140B14E0142DF835F1C6D951 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
140BFF25B0078C0709FF2461 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -223,6 +225,7 @@
|
|||
52AAE149F3EC7BAB0E7703DC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
52D7E72C26E3D1589A6A1BD4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
536EB9664EDB02A4CBF9BD28 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
53F3EB3D456B15EF5CC6FC67 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
543A10EED475842E60CE7F3C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
5457E4C7D67E767CCD8B0964 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
54FF1D1CC748FA043A28004F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -427,6 +430,7 @@
|
|||
AC0B866AA2C5F577AA221143 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
AC488F0777290DB214E6E937 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../../../modules/juce_core/native/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
AC975C4D82A4C525F6D879A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
ACD09DE112FDD1028AC1E11B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
ACD0AD8EACA79E8A6273413E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
AD0FE0F54DE76E0C35A3B692 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
ADC3125F0DCD2924ACB173EB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -608,19 +612,19 @@
|
|||
F9816E9564DF0FD05C77B845 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
FA3161F4692D54C87001BCD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
FB1A1B08CB724305EBC233A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
FB3723E1113ED13B4B8DF09A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
FB6FA17C00AB569935B5CFF8 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
FB845B6C46248D66EB02A862 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
FB9E2985FBE36494513C83A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
FC00A16A6756DBFE0B875F5C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
FC47B303DF1BE68BE78F9079 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
FD5D001673478C39B79A9C6A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BigInteger.h"; path = "../../../../modules/juce_core/maths/juce_BigInteger.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
FE8B93BA3F56CCC0BB37A5C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
FE9531D38CA4C273B6FB87A7 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
|
||||
EA398D9C544440E06637C134 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HelloWorld.app; sourceTree = "BUILT_PRODUCTS_DIR"; };
|
||||
FB3723E1113ED13B4B8DF09A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
FB845B6C46248D66EB02A862 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
FD7E5A4B8C6532BD458B2A94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
FDDA86C3FCCC3C74F7CDA53D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
FE39F19585CBAE3EE247840C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OutputStream.h"; path = "../../../../modules/juce_core/streams/juce_OutputStream.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
FE8B93BA3F56CCC0BB37A5C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
FEA9C3FC8BE313C619C3D195 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
FED2586B3C7EA1BBA5512D58 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
FF263A986694A1ADAA51D156 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -964,6 +968,8 @@
|
|||
7EE080AF681F1D927DF35B95,
|
||||
C71BB293CEF65605741E0CDA ); name = placement; sourceTree = "<group>"; };
|
||||
CBF50CCCB6412B6D1DC75BAC = { isa = PBXGroup; children = (
|
||||
1316BB7ACE3F151F3B44A3EC,
|
||||
ACD09DE112FDD1028AC1E11B,
|
||||
CB85029BEDE10DB68C5BAA21,
|
||||
EFE00478AEAFE39D81B0E59D,
|
||||
FF49DBB348CFFF3F396FB712,
|
||||
|
|
@ -990,6 +996,8 @@
|
|||
C6BCFCD2732C7153C33B6168,
|
||||
4C34CB4DC542D86A193C055A,
|
||||
A3961F3261459774B65EBD3B,
|
||||
0493323D5A1374BBEFCFE455,
|
||||
53F3EB3D456B15EF5CC6FC67,
|
||||
A5E748EC8CB636CEBF7BA497 ); name = native; sourceTree = "<group>"; };
|
||||
0BD57F3380CCDFE06E36335D = { isa = PBXGroup; children = (
|
||||
39D7580AE0D199F462A0411D,
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
// juce_graphics flags:
|
||||
|
||||
//#define JUCE_USE_COREIMAGE_LOADER
|
||||
//#define JUCE_USE_DIRECTWRITE
|
||||
|
||||
//==============================================================================
|
||||
// juce_gui_basics flags:
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@
|
|||
0A94BFA7B633930A9C44B763 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
0A9D5E19342D4BC010667063 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../../../modules/juce_core/misc/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
0AD571BCA7AB6C47B2C84D15 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatWriter.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
0B41301E2279379BE7955E65 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../modules/juce_opengl/opengl/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
0B85A2AF6033752E00F83AFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Synthesiser.cpp"; path = "../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
0B9605D6761053F7125515C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
0BC458FE29429B837EEB24C3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_ALSA.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_ALSA.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -83,6 +84,7 @@
|
|||
148062D5F6A256ABF0841A45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
149649AEA7AD7B8E13B3A35F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OldSchoolLookAndFeel.cpp"; path = "../../../../modules/juce_gui_extra/lookandfeel/juce_OldSchoolLookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
14B6A11EE9B15221B81E6690 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
154C4985C134E2B4A7B87025 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../modules/juce_opengl/opengl/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
159A717B2A67C75CA01B6881 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
164740F3A950758FD901C617 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
16F854A6404E0E6A78094CA5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -139,6 +141,7 @@
|
|||
2A86DFBFC0BF1E11B8011835 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
2A91AADEA4837E131C449373 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
2AA365F4A1C76090431D4FBC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
2AC1E88F92FCBD06A1A60D42 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../modules/juce_opengl/opengl/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
2AC249BFE13A76A1C82F7CD5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
2AD527E12013D8D75B76B8E1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
2B047EE6050EF3D2BB99ECBE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -477,6 +480,7 @@
|
|||
9639E00C68CB8C0B7E7B5427 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
964B8F8E07FC8A58A0EA70EF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
966CF33B8DD2ABBE0C28B0F3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
96A82204F17CFBC13483F6BF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../modules/juce_opengl/opengl/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
96BAE779F62C8730A1CF260D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
96BBDC1A586AB8CA8A1B5F9A = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioTransportSource.cpp"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
973FCBE47D459A85D83D40A5 = { isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_formats/juce_module_info"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -620,6 +624,7 @@
|
|||
C804DA12663C47DC571AB802 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
C851A41BC906656B1D0BC964 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
C895897BD517D9599C4349FD = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
C927C4EC22D48CAEF52F0318 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
C9501187BF1860F357D619D0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
C960619F9F73C79C3EAB8742 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
C96A2D385114E17C879D137B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -640,6 +645,7 @@
|
|||
CCE11AF21E47604E76CA0132 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsList.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
CDADF6A067C358C08803D1B3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
CDF3D87F97FF1526499CC3A1 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Registry.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Registry.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
CE2A5EB678139DE00D7CFF75 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
CE55DEAD4829A44E6F68EBA3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../../../modules/juce_opengl/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
CE598F0D6317056C9958D8DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
CEBE83A5D278021237C24D66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLGraphicsContext.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -667,6 +673,7 @@
|
|||
D5175D86941170D0903C9FB5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D5273722A99718EB4DFA0B3E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D577544641EB343E2E579659 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D581DBED583DE1627B76D774 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
D5F1EA308D0BA7F03C20362C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D5FD80BD808E23FDB4A82DFD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
D6EE042FD59ED0AE9BB38B2F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -787,6 +794,7 @@
|
|||
F980FF71809C8486735F3D56 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiFile.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
F9C5498B3C2A6B0C77905000 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../../../modules/juce_gui_basics/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
F9EC7037E4226BA0AFADE0B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
F9F0CCD33C30298CF6BE0485 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
FA89AC987131D027ACE40582 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
FAA2D69119B5C2DE43A24080 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
FAE81B90A814666653AC92A8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -1331,6 +1339,8 @@
|
|||
7927D0B392E6CD799FB92B43,
|
||||
7C3D9F9E65342D71FD04B5D4 ); name = placement; sourceTree = "<group>"; };
|
||||
16C7C34F1CFA7CF4529574D7 = { isa = PBXGroup; children = (
|
||||
F9F0CCD33C30298CF6BE0485,
|
||||
CE2A5EB678139DE00D7CFF75,
|
||||
CFAFA5FC6E25226D681818D9,
|
||||
D4AB3337D8F963E10EDFE91C,
|
||||
D2ED6CC1A967F79A35AB0105,
|
||||
|
|
@ -1357,6 +1367,8 @@
|
|||
FA89AC987131D027ACE40582,
|
||||
593F1523B6A7AB5415E2CD53,
|
||||
124BDF35CA497A669F44F8A0,
|
||||
C927C4EC22D48CAEF52F0318,
|
||||
D581DBED583DE1627B76D774,
|
||||
AF1FAE38CC1CE6EA02FFD06E ); name = native; sourceTree = "<group>"; };
|
||||
CEDD2E509C8955328B9E4338 = { isa = PBXGroup; children = (
|
||||
3B8E447448A1378605FAF59A,
|
||||
|
|
@ -1707,6 +1719,8 @@
|
|||
7DF5547A341057A483389810,
|
||||
C960619F9F73C79C3EAB8742 ); name = "juce_gui_extra"; sourceTree = "<group>"; };
|
||||
543980D718ACBB76513A4AF0 = { isa = PBXGroup; children = (
|
||||
96A82204F17CFBC13483F6BF,
|
||||
0B41301E2279379BE7955E65,
|
||||
1227115BD17EB8F0667DB117,
|
||||
DC76043392FDF3B5BD7D2554,
|
||||
6096E343983724F254B268C3,
|
||||
|
|
@ -1721,7 +1735,9 @@
|
|||
6D95302F8D68BA3F0538214F,
|
||||
9E067C6101B6E2D11365EBDC,
|
||||
A0D54F01BC8018CC41FA34E9,
|
||||
53B9B6090EDB9B6E0FA8577F ); name = opengl; sourceTree = "<group>"; };
|
||||
53B9B6090EDB9B6E0FA8577F,
|
||||
154C4985C134E2B4A7B87025,
|
||||
2AC1E88F92FCBD06A1A60D42 ); name = opengl; sourceTree = "<group>"; };
|
||||
637D3A9082C214CA0E067538 = { isa = PBXGroup; children = (
|
||||
BF25BBF1072EE73925E688D0,
|
||||
BFBA3FCA1C3F9FD3BB8146B8,
|
||||
|
|
|
|||
|
|
@ -2306,6 +2306,17 @@
|
|||
<File RelativePath="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
</Filter>
|
||||
<Filter Name="fonts">
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -2433,6 +2444,26 @@
|
|||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -4011,6 +4042,8 @@
|
|||
</Filter>
|
||||
<Filter Name="juce_opengl">
|
||||
<Filter Name="opengl">
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Draggable3DOrientation.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Matrix3D.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLComponent.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -4080,6 +4113,8 @@
|
|||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLTexture.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Quaternion.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\opengl\juce_Vector3D.h"/>
|
||||
</Filter>
|
||||
<Filter Name="native">
|
||||
<File RelativePath="..\..\..\..\modules\juce_opengl\native\juce_android_OpenGLComponent.cpp">
|
||||
|
|
|
|||
|
|
@ -655,6 +655,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -688,6 +691,12 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -1370,6 +1379,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
|
||||
|
|
@ -1524,6 +1534,8 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_gui_extra\misc\juce_WebBrowserComponent.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_gui_extra\native\juce_mac_CarbonViewWrapperComponent.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_gui_extra\juce_gui_extra.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Draggable3DOrientation.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Matrix3D.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLComponent.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLContext.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLFrameBuffer.h"/>
|
||||
|
|
@ -1533,6 +1545,8 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLPixelFormat.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLRenderingTarget.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLTexture.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Quaternion.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Vector3D.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\juce_opengl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_video\playback\juce_DirectShowComponent.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_video\playback\juce_QuickTimeMovieComponent.h"/>
|
||||
|
|
|
|||
|
|
@ -883,6 +883,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\placement</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -922,6 +925,12 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -2142,6 +2151,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h">
|
||||
<Filter>Juce Modules\juce_graphics\placement</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.h">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -2604,6 +2616,12 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_gui_extra\juce_gui_extra.h">
|
||||
<Filter>Juce Modules\juce_gui_extra</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Draggable3DOrientation.h">
|
||||
<Filter>Juce Modules\juce_opengl\opengl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Matrix3D.h">
|
||||
<Filter>Juce Modules\juce_opengl\opengl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLComponent.h">
|
||||
<Filter>Juce Modules\juce_opengl\opengl</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -2631,6 +2649,12 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_OpenGLTexture.h">
|
||||
<Filter>Juce Modules\juce_opengl\opengl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Quaternion.h">
|
||||
<Filter>Juce Modules\juce_opengl\opengl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\opengl\juce_Vector3D.h">
|
||||
<Filter>Juce Modules\juce_opengl\opengl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_opengl\juce_opengl.h">
|
||||
<Filter>Juce Modules\juce_opengl</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@
|
|||
// juce_graphics flags:
|
||||
|
||||
//#define JUCE_USE_COREIMAGE_LOADER
|
||||
//#define JUCE_USE_DIRECTWRITE
|
||||
|
||||
//==============================================================================
|
||||
// juce_gui_basics flags:
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ ifeq ($(CONFIG),Debug)
|
|||
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "../../JuceLibraryCode"
|
||||
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0
|
||||
CXXFLAGS += $(CFLAGS)
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext
|
||||
LDDEPS :=
|
||||
RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "../../JuceLibraryCode"
|
||||
TARGET := Jucer
|
||||
|
|
@ -35,7 +35,7 @@ ifeq ($(CONFIG),Release)
|
|||
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "../../JuceLibraryCode"
|
||||
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -Os
|
||||
CXXFLAGS += $(CFLAGS)
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound
|
||||
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lXext
|
||||
LDDEPS :=
|
||||
RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2" -I "../../JuceLibraryCode"
|
||||
TARGET := Jucer
|
||||
|
|
|
|||
|
|
@ -370,6 +370,7 @@
|
|||
6D4F04497FDE7DEB17308D3F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../../../modules/juce_core/misc/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6D72E18850E8708F0B9AB85D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6E82C9C39339B4D35930F5C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6EA69D5F453B736C1AC1AABC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6F03F26F8FD9DCF9C336C7C9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_EdgeTable.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
6F67B1874F95EF2376AA9753 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
700F70E54315881EB5D45567 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_GeneratedCode.cpp"; path = "../../src/model/jucer_GeneratedCode.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -462,6 +463,7 @@
|
|||
8C96948B01B70F125652B4A6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
8C9987F812960988EBE4CC6D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../../../modules/juce_graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
8CBAA0DE1F30C590E248CE92 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
8D4A3D0BDE86DEA5FF304FD3 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
8D7CCBC48D3D21B535663490 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
8DBDD4F65CC8C34616C34255 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../../../modules/juce_core/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
8E412B488CC4A124A64B3793 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -562,6 +564,7 @@
|
|||
AEE21B60BDB0DBEDECC0A194 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_JucerComponentHandler.h"; path = "../../src/model/components/jucer_JucerComponentHandler.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
AEE78FC2ACC32C9446C6D055 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
AFBE132DCF46D754AB003320 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B106EF8F90D0851DA971007B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
B13B3784D431CBC967A43A23 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
B2155B56194AEBA21C1DE8D9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_TextButtonHandler.h"; path = "../../src/model/components/jucer_TextButtonHandler.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
B22AF25F5DEB48469657B759 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -742,6 +745,7 @@
|
|||
F893F4BF51977AD2C0A65A61 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
F8C5FCB2CCEC869DD5AEF806 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
F8EF61F18821D1F9ED3CCF15 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; };
|
||||
F9D4A57B315F77043BF6DE49 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
FA2410FA658C17A930890FFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
FA95E1B6FD8D263A36A449B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; };
|
||||
FB03386CEAF2975CFB81C485 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OldSchoolLookAndFeel.cpp"; path = "../../../../modules/juce_gui_extra/lookandfeel/juce_OldSchoolLookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; };
|
||||
|
|
@ -1224,6 +1228,8 @@
|
|||
4B75F7762F3BF16B19CE7092,
|
||||
A77B76A12F2E43B7DE9D43DB ); name = placement; sourceTree = "<group>"; };
|
||||
1928B752EB0E2D436E7D9058 = { isa = PBXGroup; children = (
|
||||
F9D4A57B315F77043BF6DE49,
|
||||
8D4A3D0BDE86DEA5FF304FD3,
|
||||
6644D131E809965C53E72229,
|
||||
852C44541F302ECE66F1369D,
|
||||
DC5F33450FDAF78D3C918F87,
|
||||
|
|
@ -1250,6 +1256,8 @@
|
|||
4E07995C0E9951843B936AF1,
|
||||
570D06B805FFCB2D29247478,
|
||||
A27536EAA6565A95670917FE,
|
||||
B106EF8F90D0851DA971007B,
|
||||
6EA69D5F453B736C1AC1AABC,
|
||||
A639ECE96CA7798C1E61F5FA ); name = native; sourceTree = "<group>"; };
|
||||
8E157165495A4C0D5FE429BE = { isa = PBXGroup; children = (
|
||||
8DEFDD87D21258051455B4DF,
|
||||
|
|
|
|||
|
|
@ -1653,6 +1653,17 @@
|
|||
<File RelativePath="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
</Filter>
|
||||
<Filter Name="fonts">
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
@ -1780,6 +1791,26 @@
|
|||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
<Tool Name="VCCLCompilerTool"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<FileConfiguration Name="Debug|Win32"
|
||||
ExcludedFromBuild="true">
|
||||
|
|
|
|||
|
|
@ -485,6 +485,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -518,6 +521,12 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -1153,6 +1162,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
|
||||
|
|
|
|||
|
|
@ -700,6 +700,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\placement</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -739,6 +742,12 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Direct2DGraphicsContext.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeface.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_DirectWriteTypeLayout.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_graphics\native\juce_win32_Fonts.cpp">
|
||||
<Filter>Juce Modules\juce_graphics\native</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -1878,6 +1887,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_graphics\placement\juce_RectanglePlacement.h">
|
||||
<Filter>Juce Modules\juce_graphics\placement</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_CustomTypeface.h">
|
||||
<Filter>Juce Modules\juce_graphics\fonts</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
// juce_graphics flags:
|
||||
|
||||
//#define JUCE_USE_COREIMAGE_LOADER
|
||||
//#define JUCE_USE_DIRECTWRITE
|
||||
|
||||
//==============================================================================
|
||||
// juce_gui_basics flags:
|
||||
|
|
|
|||
|
|
@ -30,11 +30,11 @@ namespace ColourHelpers
|
|||
{
|
||||
uint8 floatToUInt8 (const float n) noexcept
|
||||
{
|
||||
return (uint8) jlimit (0, 255, roundToInt (n * 255.0f));
|
||||
return n <= 0.0f ? 0 : (n >= 1.0f ? 255 : (uint8) (n * 255.0f));
|
||||
}
|
||||
|
||||
// This is an adjusted brightness value, based on the way the human eye responds to
|
||||
// different colour channels..
|
||||
// This is an adjusted brightness value, based on the way the human
|
||||
// eye responds to different colour channels..
|
||||
float getPerceivedBrightness (float r, float g, float b) noexcept
|
||||
{
|
||||
return std::sqrt (r * r * 0.241f
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
#include "../geometry/juce_RectangleList.h"
|
||||
#include "../colour/juce_ColourGradient.h"
|
||||
#include "../colour/juce_FillType.h"
|
||||
|
||||
class AttributedString;
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
|
|
@ -103,6 +103,7 @@ public:
|
|||
virtual void setFont (const Font& newFont) = 0;
|
||||
virtual Font getFont() = 0;
|
||||
virtual void drawGlyph (int glyphNumber, const AffineTransform& transform) = 0;
|
||||
virtual bool drawTextLayout (const AttributedString&, const Rectangle<float>&) { return false; }
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
634
modules/juce_graphics/fonts/juce_AttributedString.cpp
Normal file
634
modules/juce_graphics/fonts/juce_AttributedString.cpp
Normal file
|
|
@ -0,0 +1,634 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-11 by Raw Material Software Ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the GNU General
|
||||
Public License (Version 2), as published by the Free Software Foundation.
|
||||
A copy of the license is included in the JUCE distribution, or can be found
|
||||
online at www.gnu.org/licenses.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
To release a closed-source product which uses JUCE, commercial licenses are
|
||||
available: visit www.rawmaterialsoftware.com/juce for more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
BEGIN_JUCE_NAMESPACE
|
||||
|
||||
//==============================================================================
|
||||
AttributedString::Attribute::Attribute (const Range<int>& range_, const Colour& colour_)
|
||||
: range (range_), colour (new Colour (colour_))
|
||||
{
|
||||
}
|
||||
|
||||
AttributedString::Attribute::Attribute (const Range<int>& range_, const Font& font_)
|
||||
: range (range_), font (new Font (font_))
|
||||
{
|
||||
}
|
||||
|
||||
AttributedString::Attribute::Attribute (const Attribute& other)
|
||||
: range (other.range),
|
||||
font (other.font.createCopy()),
|
||||
colour (other.colour.createCopy())
|
||||
{
|
||||
}
|
||||
|
||||
AttributedString::Attribute::~Attribute() {}
|
||||
|
||||
//==============================================================================
|
||||
AttributedString::AttributedString()
|
||||
: lineSpacing (0.0f),
|
||||
justification (Justification::left),
|
||||
wordWrap (AttributedString::byWord),
|
||||
readingDirection (AttributedString::natural)
|
||||
{
|
||||
}
|
||||
|
||||
AttributedString::AttributedString (const String& newString)
|
||||
: text (newString),
|
||||
lineSpacing (0.0f),
|
||||
justification (Justification::left),
|
||||
wordWrap (AttributedString::byWord),
|
||||
readingDirection (AttributedString::natural)
|
||||
{
|
||||
}
|
||||
|
||||
AttributedString::AttributedString (const AttributedString& other)
|
||||
: text (other.text),
|
||||
lineSpacing (other.lineSpacing),
|
||||
justification (other.justification),
|
||||
wordWrap (other.wordWrap),
|
||||
readingDirection (other.readingDirection)
|
||||
{
|
||||
attributes.addCopiesOf (other.attributes);
|
||||
}
|
||||
|
||||
AttributedString& AttributedString::operator= (const AttributedString& other)
|
||||
{
|
||||
if (this != &other)
|
||||
{
|
||||
text = other.text;
|
||||
lineSpacing = other.lineSpacing;
|
||||
justification = other.justification;
|
||||
wordWrap = other.wordWrap;
|
||||
readingDirection = other.readingDirection;
|
||||
attributes.clear();
|
||||
attributes.addCopiesOf (other.attributes);
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
AttributedString::~AttributedString() {}
|
||||
|
||||
void AttributedString::setText (const String& other)
|
||||
{
|
||||
text = other;
|
||||
}
|
||||
|
||||
void AttributedString::setJustification (const Justification& newJustification) noexcept
|
||||
{
|
||||
justification = newJustification;
|
||||
}
|
||||
|
||||
void AttributedString::setWordWrap (WordWrap newWordWrap) noexcept
|
||||
{
|
||||
wordWrap = newWordWrap;
|
||||
}
|
||||
|
||||
void AttributedString::setReadingDirection (ReadingDirection newReadingDirection) noexcept
|
||||
{
|
||||
readingDirection = newReadingDirection;
|
||||
}
|
||||
|
||||
void AttributedString::setLineSpacing (const float newLineSpacing) noexcept
|
||||
{
|
||||
lineSpacing = newLineSpacing;
|
||||
}
|
||||
|
||||
void AttributedString::setColour (const Range<int>& range, const Colour& colour)
|
||||
{
|
||||
attributes.add (new Attribute (range, colour));
|
||||
}
|
||||
|
||||
void AttributedString::setFont (const Range<int>& range, const Font& font)
|
||||
{
|
||||
attributes.add (new Attribute (range, font));
|
||||
}
|
||||
|
||||
void AttributedString::draw (Graphics& g, const Rectangle<float>& area) const
|
||||
{
|
||||
if (text.isNotEmpty() && g.clipRegionIntersects (area.getSmallestIntegerContainer()))
|
||||
{
|
||||
if (! g.getInternalContext()->drawTextLayout (*this, area))
|
||||
{
|
||||
GlyphLayout layout;
|
||||
layout.setText (*this, area.getWidth());
|
||||
layout.draw (g, area);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//==============================================================================
|
||||
GlyphLayout::Glyph::Glyph (const int glyphCode_, const Point<float>& anchor_) noexcept
|
||||
: glyphCode (glyphCode_), anchor (anchor_)
|
||||
{
|
||||
}
|
||||
|
||||
GlyphLayout::Glyph::~Glyph() {}
|
||||
|
||||
//==============================================================================
|
||||
GlyphLayout::Run::Run()
|
||||
: colour (0xff000000)
|
||||
{
|
||||
}
|
||||
|
||||
GlyphLayout::Run::Run (const Range<int>& range, const int numGlyphsToPreallocate)
|
||||
: stringRange (range), colour (0xff000000)
|
||||
{
|
||||
glyphs.ensureStorageAllocated (numGlyphsToPreallocate);
|
||||
}
|
||||
|
||||
GlyphLayout::Run::~Run() {}
|
||||
|
||||
GlyphLayout::Glyph& GlyphLayout::Run::getGlyph (const int index) const
|
||||
{
|
||||
return *glyphs.getUnchecked (index);
|
||||
}
|
||||
|
||||
void GlyphLayout::Run::ensureStorageAllocated (int numGlyphsNeeded)
|
||||
{
|
||||
glyphs.ensureStorageAllocated (numGlyphsNeeded);
|
||||
}
|
||||
|
||||
void GlyphLayout::Run::setStringRange (const Range<int>& newStringRange) noexcept
|
||||
{
|
||||
stringRange = newStringRange;
|
||||
}
|
||||
|
||||
void GlyphLayout::Run::setFont (const Font& newFont)
|
||||
{
|
||||
font = newFont;
|
||||
}
|
||||
|
||||
void GlyphLayout::Run::setColour (const Colour& newColour) noexcept
|
||||
{
|
||||
colour = newColour;
|
||||
}
|
||||
|
||||
void GlyphLayout::Run::addGlyph (Glyph* glyph)
|
||||
{
|
||||
glyphs.add (glyph);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
GlyphLayout::Line::Line() noexcept
|
||||
: ascent (0.0f), descent (0.0f), leading (0.0f)
|
||||
{
|
||||
}
|
||||
|
||||
GlyphLayout::Line::Line (const Range<int>& stringRange_, const Point<float>& lineOrigin_,
|
||||
const float ascent_, const float descent_, const float leading_,
|
||||
const int numRunsToPreallocate)
|
||||
: stringRange (stringRange_), lineOrigin (lineOrigin_),
|
||||
ascent (ascent_), descent (descent_), leading (leading_)
|
||||
{
|
||||
runs.ensureStorageAllocated (numRunsToPreallocate);
|
||||
}
|
||||
|
||||
GlyphLayout::Line::~Line()
|
||||
{
|
||||
}
|
||||
|
||||
GlyphLayout::Run& GlyphLayout::Line::getRun (const int index) const noexcept
|
||||
{
|
||||
return *runs.getUnchecked (index);
|
||||
}
|
||||
|
||||
void GlyphLayout::Line::setStringRange (const Range<int>& newStringRange) noexcept
|
||||
{
|
||||
stringRange = newStringRange;
|
||||
}
|
||||
|
||||
void GlyphLayout::Line::setLineOrigin (const Point<float>& newLineOrigin) noexcept
|
||||
{
|
||||
lineOrigin = newLineOrigin;
|
||||
}
|
||||
|
||||
void GlyphLayout::Line::setLeading (float newLeading) noexcept
|
||||
{
|
||||
leading = newLeading;
|
||||
}
|
||||
|
||||
void GlyphLayout::Line::increaseAscentDescent (float newAscent, float newDescent) noexcept
|
||||
{
|
||||
ascent = jmax (ascent, newAscent);
|
||||
descent = jmax (descent, newDescent);
|
||||
}
|
||||
|
||||
void GlyphLayout::Line::addRun (Run* run)
|
||||
{
|
||||
runs.add (run);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
GlyphLayout::GlyphLayout()
|
||||
: width (0), justification (Justification::topLeft)
|
||||
{
|
||||
}
|
||||
|
||||
GlyphLayout::~GlyphLayout()
|
||||
{
|
||||
}
|
||||
|
||||
void GlyphLayout::setText (const AttributedString& text, float maxWidth)
|
||||
{
|
||||
lines.clear();
|
||||
width = maxWidth;
|
||||
justification = text.getJustification();
|
||||
|
||||
if (! createNativeLayout (text))
|
||||
createStandardLayout (text);
|
||||
}
|
||||
|
||||
float GlyphLayout::getHeight() const noexcept
|
||||
{
|
||||
const Line* const lastLine = lines.getLast();
|
||||
|
||||
return lastLine != nullptr ? lastLine->getLineOrigin().getY() + lastLine->getDescent()
|
||||
: 0;
|
||||
}
|
||||
|
||||
GlyphLayout::Line& GlyphLayout::getLine (const int index) const
|
||||
{
|
||||
return *lines[index];
|
||||
}
|
||||
|
||||
void GlyphLayout::ensureStorageAllocated (int numLinesNeeded)
|
||||
{
|
||||
lines.ensureStorageAllocated (numLinesNeeded);
|
||||
}
|
||||
|
||||
void GlyphLayout::addLine (Line* line)
|
||||
{
|
||||
lines.add (line);
|
||||
}
|
||||
|
||||
void GlyphLayout::draw (Graphics& g, const Rectangle<float>& area) const
|
||||
{
|
||||
const Point<float> origin (justification.appliedToRectangle (Rectangle<float> (0, 0, width, getHeight()), area).getPosition());
|
||||
|
||||
LowLevelGraphicsContext& context = *g.getInternalContext();
|
||||
|
||||
for (int i = 0; i < getNumLines(); ++i)
|
||||
{
|
||||
const Line& line = getLine (i);
|
||||
const Point<float> lineOrigin (origin + line.getLineOrigin());
|
||||
|
||||
for (int j = 0; j < line.getNumRuns(); ++j)
|
||||
{
|
||||
const Run& run = line.getRun (j);
|
||||
context.setFont (run.getFont());
|
||||
context.setFill (run.getColour());
|
||||
|
||||
for (int k = 0; k < run.getNumGlyphs(); ++k)
|
||||
{
|
||||
const Glyph& glyph = run.getGlyph (k);
|
||||
context.drawGlyph (glyph.glyphCode, AffineTransform::translation (lineOrigin.x + glyph.anchor.x,
|
||||
lineOrigin.y + glyph.anchor.y));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
namespace GlyphLayoutHelpers
|
||||
{
|
||||
struct FontAndColour
|
||||
{
|
||||
FontAndColour (const Font* font_) noexcept : font (font_), colour (0xff000000) {}
|
||||
|
||||
const Font* font;
|
||||
Colour colour;
|
||||
|
||||
bool operator!= (const FontAndColour& other) const noexcept
|
||||
{
|
||||
return (font != other.font && *font != *other.font) || colour != other.colour;
|
||||
}
|
||||
};
|
||||
|
||||
struct RunAttribute
|
||||
{
|
||||
RunAttribute (const FontAndColour& fontAndColour_, const Range<int>& range_) noexcept
|
||||
: fontAndColour (fontAndColour_), range (range_)
|
||||
{}
|
||||
|
||||
FontAndColour fontAndColour;
|
||||
Range<int> range;
|
||||
};
|
||||
|
||||
struct Token
|
||||
{
|
||||
Token (const String& t, const Font& f, const Colour& c, const bool isWhitespace_)
|
||||
: text (t), font (f), colour (c),
|
||||
area (font.getStringWidth (t), roundToInt (f.getHeight())),
|
||||
isWhitespace (isWhitespace_),
|
||||
isNewLine (t.containsChar ('\n') || t.containsChar ('\r'))
|
||||
{}
|
||||
|
||||
const String text;
|
||||
const Font font;
|
||||
const Colour colour;
|
||||
Rectangle<int> area;
|
||||
int line, lineHeight;
|
||||
const bool isWhitespace, isNewLine;
|
||||
|
||||
private:
|
||||
Token& operator= (const Token&);
|
||||
};
|
||||
|
||||
class TokenList
|
||||
{
|
||||
public:
|
||||
TokenList() noexcept : totalLines (0) {}
|
||||
|
||||
void createLayout (const AttributedString& text, GlyphLayout& glyphLayout)
|
||||
{
|
||||
tokens.ensureStorageAllocated (64);
|
||||
glyphLayout.ensureStorageAllocated (totalLines);
|
||||
|
||||
addTextRuns (text);
|
||||
|
||||
layout ((int) glyphLayout.getWidth());
|
||||
|
||||
int charPosition = 0;
|
||||
int lineStartPosition = 0;
|
||||
int runStartPosition = 0;
|
||||
|
||||
GlyphLayout::Line* glyphLine = new GlyphLayout::Line();
|
||||
GlyphLayout::Run* glyphRun = new GlyphLayout::Run();
|
||||
|
||||
for (int i = 0; i < tokens.size(); ++i)
|
||||
{
|
||||
const Token* const t = tokens.getUnchecked (i);
|
||||
const Point<float> tokenPos (t->area.getPosition().toFloat());
|
||||
|
||||
Array <int> newGlyphs;
|
||||
Array <float> xOffsets;
|
||||
t->font.getGlyphPositions (t->text.trimEnd(), newGlyphs, xOffsets);
|
||||
|
||||
glyphRun->ensureStorageAllocated (glyphRun->getNumGlyphs() + newGlyphs.size());
|
||||
|
||||
for (int j = 0; j < newGlyphs.size(); ++j)
|
||||
{
|
||||
if (charPosition == lineStartPosition)
|
||||
glyphLine->setLineOrigin (tokenPos.translated (0, t->font.getAscent()));
|
||||
|
||||
glyphRun->addGlyph (new GlyphLayout::Glyph (newGlyphs.getUnchecked(j),
|
||||
Point<float> (tokenPos.getX() + xOffsets.getUnchecked (j), 0)));
|
||||
++charPosition;
|
||||
}
|
||||
|
||||
if (t->isWhitespace || t->isNewLine)
|
||||
++charPosition;
|
||||
|
||||
const Token* const nextToken = tokens [i + 1];
|
||||
|
||||
if (nextToken == nullptr) // this is the last token
|
||||
{
|
||||
addRun (glyphLine, glyphRun, t, runStartPosition, charPosition);
|
||||
glyphLine->setStringRange (Range<int> (lineStartPosition, charPosition));
|
||||
glyphLayout.addLine (glyphLine);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (t->font != nextToken->font || t->colour != nextToken->colour)
|
||||
{
|
||||
addRun (glyphLine, glyphRun, t, runStartPosition, charPosition);
|
||||
runStartPosition = charPosition;
|
||||
glyphRun = new GlyphLayout::Run();
|
||||
}
|
||||
|
||||
if (t->line != nextToken->line)
|
||||
{
|
||||
addRun (glyphLine, glyphRun, t, runStartPosition, charPosition);
|
||||
glyphLine->setStringRange (Range<int> (lineStartPosition, charPosition));
|
||||
glyphLayout.addLine (glyphLine);
|
||||
|
||||
runStartPosition = charPosition;
|
||||
lineStartPosition = charPosition;
|
||||
glyphLine = new GlyphLayout::Line();
|
||||
glyphRun = new GlyphLayout::Run();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((text.getJustification().getFlags() & (Justification::right | Justification::horizontallyCentred)) != 0)
|
||||
{
|
||||
const int totalW = (int) glyphLayout.getWidth();
|
||||
|
||||
for (int i = 0; i < totalLines; ++i)
|
||||
{
|
||||
const int lineW = getLineWidth (i);
|
||||
float dx = 0;
|
||||
|
||||
if ((text.getJustification().getFlags() & Justification::right) != 0)
|
||||
dx = (float) (totalW - lineW);
|
||||
else
|
||||
dx = (totalW - lineW) / 2.0f;
|
||||
|
||||
GlyphLayout::Line& glyphLine = glyphLayout.getLine (i);
|
||||
glyphLine.setLineOrigin (glyphLine.getLineOrigin().translated (dx, 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
static void addRun (GlyphLayout::Line* glyphLine, GlyphLayout::Run* glyphRun,
|
||||
const Token* const t, const int start, const int end)
|
||||
{
|
||||
glyphRun->setStringRange (Range<int> (start, end));
|
||||
glyphRun->setFont (t->font);
|
||||
glyphRun->setColour (t->colour);
|
||||
glyphLine->increaseAscentDescent (t->font.getAscent(), t->font.getDescent());
|
||||
glyphLine->addRun (glyphRun);
|
||||
}
|
||||
|
||||
void appendText (const AttributedString& text, const Range<int>& stringRange,
|
||||
const Font& font, const Colour& colour)
|
||||
{
|
||||
String stringText (text.getText().substring(stringRange.getStart(), stringRange.getEnd()));
|
||||
String::CharPointerType t (stringText.getCharPointer());
|
||||
String currentString;
|
||||
int lastCharType = 0;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
const juce_wchar c = t.getAndAdvance();
|
||||
if (c == 0)
|
||||
break;
|
||||
|
||||
int charType;
|
||||
if (c == '\r' || c == '\n')
|
||||
charType = 0;
|
||||
else if (CharacterFunctions::isWhitespace (c))
|
||||
charType = 2;
|
||||
else
|
||||
charType = 1;
|
||||
|
||||
if (charType == 0 || charType != lastCharType)
|
||||
{
|
||||
if (currentString.isNotEmpty())
|
||||
tokens.add (new Token (currentString, font, colour,
|
||||
lastCharType == 2 || lastCharType == 0));
|
||||
|
||||
currentString = String::charToString (c);
|
||||
|
||||
if (c == '\r' && *t == '\n')
|
||||
currentString += t.getAndAdvance();
|
||||
}
|
||||
else
|
||||
{
|
||||
currentString += c;
|
||||
}
|
||||
|
||||
lastCharType = charType;
|
||||
}
|
||||
|
||||
if (currentString.isNotEmpty())
|
||||
tokens.add (new Token (currentString, font, colour, lastCharType == 2));
|
||||
}
|
||||
|
||||
void layout (const int maxWidth)
|
||||
{
|
||||
int x = 0, y = 0, h = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < tokens.size(); ++i)
|
||||
{
|
||||
Token* const t = tokens.getUnchecked(i);
|
||||
t->area.setPosition (x, y);
|
||||
t->line = totalLines;
|
||||
x += t->area.getWidth();
|
||||
h = jmax (h, t->area.getHeight());
|
||||
|
||||
const Token* nextTok = tokens[i + 1];
|
||||
|
||||
if (nextTok == 0)
|
||||
break;
|
||||
|
||||
if (t->isNewLine || ((! nextTok->isWhitespace) && x + nextTok->area.getWidth() > maxWidth))
|
||||
{
|
||||
setLastLineHeight (i + 1, h);
|
||||
x = 0;
|
||||
y += h;
|
||||
h = 0;
|
||||
++totalLines;
|
||||
}
|
||||
}
|
||||
|
||||
setLastLineHeight (jmin (i + 1, tokens.size()), h);
|
||||
++totalLines;
|
||||
}
|
||||
|
||||
void setLastLineHeight (int i, const int height) noexcept
|
||||
{
|
||||
while (--i >= 0)
|
||||
{
|
||||
Token* const tok = tokens.getUnchecked (i);
|
||||
|
||||
if (tok->line == totalLines)
|
||||
tok->lineHeight = height;
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int getLineWidth (const int lineNumber) const noexcept
|
||||
{
|
||||
int maxW = 0;
|
||||
|
||||
for (int i = tokens.size(); --i >= 0;)
|
||||
{
|
||||
const Token* const t = tokens.getUnchecked (i);
|
||||
|
||||
if (t->line == lineNumber && ! t->isWhitespace)
|
||||
maxW = jmax (maxW, t->area.getRight());
|
||||
}
|
||||
|
||||
return maxW;
|
||||
}
|
||||
|
||||
void addTextRuns (const AttributedString& text)
|
||||
{
|
||||
Font defaultFont;
|
||||
Array<RunAttribute> runAttributes;
|
||||
|
||||
{
|
||||
const int stringLength = text.getText().length();
|
||||
int rangeStart = 0;
|
||||
FontAndColour lastFontAndColour (nullptr);
|
||||
|
||||
// Iterate through every character in the string
|
||||
for (int i = 0; i < stringLength; ++i)
|
||||
{
|
||||
FontAndColour newFontAndColour (&defaultFont);
|
||||
const int numCharacterAttributes = text.getNumAttributes();
|
||||
|
||||
for (int j = 0; j < numCharacterAttributes; ++j)
|
||||
{
|
||||
const AttributedString::Attribute* const attr = text.getAttribute (j);
|
||||
|
||||
// Check if the current character falls within the range of a font attribute
|
||||
if (attr->getFont() != nullptr && (i >= attr->range.getStart()) && (i < attr->range.getEnd()))
|
||||
newFontAndColour.font = attr->getFont();
|
||||
|
||||
// Check if the current character falls within the range of a foreground colour attribute
|
||||
if (attr->getColour() != nullptr && (i >= attr->range.getStart()) && (i < attr->range.getEnd()))
|
||||
newFontAndColour.colour = *attr->getColour();
|
||||
}
|
||||
|
||||
if (i > 0 && (newFontAndColour != lastFontAndColour || i == stringLength - 1))
|
||||
{
|
||||
runAttributes.add (RunAttribute (lastFontAndColour,
|
||||
Range<int> (rangeStart, (i < stringLength - 1) ? i : (i + 1))));
|
||||
rangeStart = i;
|
||||
}
|
||||
|
||||
lastFontAndColour = newFontAndColour;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < runAttributes.size(); ++i)
|
||||
{
|
||||
const RunAttribute& r = runAttributes.getReference(i);
|
||||
appendText (text, r.range, *(r.fontAndColour.font), r.fontAndColour.colour);
|
||||
}
|
||||
}
|
||||
|
||||
OwnedArray<Token> tokens;
|
||||
int totalLines;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE (TokenList);
|
||||
};
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void GlyphLayout::createStandardLayout (const AttributedString& text)
|
||||
{
|
||||
GlyphLayoutHelpers::TokenList l;
|
||||
l.createLayout (text, *this);
|
||||
}
|
||||
|
||||
END_JUCE_NAMESPACE
|
||||
318
modules/juce_graphics/fonts/juce_AttributedString.h
Normal file
318
modules/juce_graphics/fonts/juce_AttributedString.h
Normal file
|
|
@ -0,0 +1,318 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-11 by Raw Material Software Ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the GNU General
|
||||
Public License (Version 2), as published by the Free Software Foundation.
|
||||
A copy of the license is included in the JUCE distribution, or can be found
|
||||
online at www.gnu.org/licenses.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
To release a closed-source product which uses JUCE, commercial licenses are
|
||||
available: visit www.rawmaterialsoftware.com/juce for more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#ifndef __JUCE_ATTRIBUTEDSTRING_JUCEHEADER__
|
||||
#define __JUCE_ATTRIBUTEDSTRING_JUCEHEADER__
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
A text string with a set of colour/font settings that are associated with sub-ranges
|
||||
of the text.
|
||||
|
||||
An attributed string lets you create a string with varied fonts, colours, word-wrapping,
|
||||
layout, etc., and draw it using AttributedString::draw().
|
||||
*/
|
||||
class JUCE_API AttributedString
|
||||
{
|
||||
public:
|
||||
/** Creates an empty attributed string. */
|
||||
AttributedString();
|
||||
|
||||
/** Creates an attributed string with the given text. */
|
||||
explicit AttributedString (const String& text);
|
||||
|
||||
AttributedString (const AttributedString& other);
|
||||
AttributedString& operator= (const AttributedString& other);
|
||||
|
||||
/** Destructor. */
|
||||
~AttributedString();
|
||||
|
||||
//==============================================================================
|
||||
/** Returns the complete text of this attributed string. */
|
||||
const String& getText() const noexcept { return text; }
|
||||
|
||||
/** Sets the text.
|
||||
This will change the text, but won't affect any of the attributes that have
|
||||
been added.
|
||||
*/
|
||||
void setText (const String& newText);
|
||||
|
||||
//==============================================================================
|
||||
/** Draws this string within the given area.
|
||||
The layout of the string within the rectangle is controlled by the justification
|
||||
value passed to setJustification().
|
||||
*/
|
||||
void draw (Graphics& g, const Rectangle<float>& area) const;
|
||||
|
||||
//==============================================================================
|
||||
/** Returns the justification that should be used for laying-out the text.
|
||||
This may include both vertical and horizontal flags.
|
||||
*/
|
||||
Justification getJustification() const noexcept { return justification; }
|
||||
|
||||
/** Sets the justification that should be used for laying-out the text.
|
||||
This may include both vertical and horizontal flags.
|
||||
*/
|
||||
void setJustification (const Justification& newJustification) noexcept;
|
||||
|
||||
//==============================================================================
|
||||
/** Types of word-wrap behaviour.
|
||||
@see getWordWrap, setWordWrap
|
||||
*/
|
||||
enum WordWrap
|
||||
{
|
||||
none, /**< No word-wrapping: lines extend indefinitely. */
|
||||
byWord, /**< Lines are wrapped on a word boundary. */
|
||||
byChar, /**< Lines are wrapped on a character boundary. */
|
||||
};
|
||||
|
||||
/** Returns the word-wrapping behaviour. */
|
||||
WordWrap getWordWrap() const noexcept { return wordWrap; }
|
||||
|
||||
/** Sets the word-wrapping behaviour. */
|
||||
void setWordWrap (WordWrap newWordWrap) noexcept;
|
||||
|
||||
//==============================================================================
|
||||
/** Types of reading direction that can be used.
|
||||
@see getReadingDirection, setReadingDirection
|
||||
*/
|
||||
enum ReadingDirection
|
||||
{
|
||||
natural,
|
||||
leftToRight,
|
||||
rightToLeft,
|
||||
};
|
||||
|
||||
/** Returns the reading direction for the text. */
|
||||
ReadingDirection getReadingDirection() const noexcept { return readingDirection; }
|
||||
|
||||
/** Sets the reading direction that should be used for the text. */
|
||||
void setReadingDirection (ReadingDirection newReadingDirection) noexcept;
|
||||
|
||||
//==============================================================================
|
||||
/** Returns the extra line-spacing distance. */
|
||||
float getLineSpacing() const noexcept { return lineSpacing; }
|
||||
|
||||
/** Sets an extra line-spacing distance. */
|
||||
void setLineSpacing (float newLineSpacing) noexcept;
|
||||
|
||||
//==============================================================================
|
||||
/** An attribute that has been applied to a range of characters in an AttributedString. */
|
||||
class JUCE_API Attribute
|
||||
{
|
||||
public:
|
||||
/** Creates an attribute that changes the colour for a range of characters.
|
||||
@see AttributedString::setColour()
|
||||
*/
|
||||
Attribute (const Range<int>& range, const Colour& colour);
|
||||
|
||||
/** Creates an attribute that changes the font for a range of characters.
|
||||
@see AttributedString::setFont()
|
||||
*/
|
||||
Attribute (const Range<int>& range, const Font& font);
|
||||
|
||||
Attribute (const Attribute&);
|
||||
~Attribute();
|
||||
|
||||
/** If this attribute specifies a font, this returns it; otherwise it returns nullptr. */
|
||||
const Font* getFont() const noexcept { return font; }
|
||||
|
||||
/** If this attribute specifies a colour, this returns it; otherwise it returns nullptr. */
|
||||
const Colour* getColour() const noexcept { return colour; }
|
||||
|
||||
/** The range of characters to which this attribute should be applied. */
|
||||
const Range<int> range;
|
||||
|
||||
private:
|
||||
ScopedPointer<Font> font;
|
||||
ScopedPointer<Colour> colour;
|
||||
|
||||
Attribute& operator= (const Attribute&);
|
||||
};
|
||||
|
||||
/** Returns the number of attributes that have been added to this string. */
|
||||
int getNumAttributes() const noexcept { return attributes.size(); }
|
||||
|
||||
/** Returns one of the string's attributes.
|
||||
The index provided must be less than getNumAttributes(), and >= 0.
|
||||
*/
|
||||
const Attribute* getAttribute (int index) const noexcept { return attributes.getUnchecked (index); }
|
||||
|
||||
//==============================================================================
|
||||
/** Adds a colour attribute for the specified range. */
|
||||
void setColour (const Range<int>& range, const Colour& colour);
|
||||
|
||||
/** Adds a font attribute for the specified range. */
|
||||
void setFont (const Range<int>& range, const Font& font);
|
||||
|
||||
private:
|
||||
String text;
|
||||
float lineSpacing;
|
||||
Justification justification;
|
||||
WordWrap wordWrap;
|
||||
ReadingDirection readingDirection;
|
||||
OwnedArray<Attribute> attributes;
|
||||
};
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
|
||||
*/
|
||||
class JUCE_API GlyphLayout
|
||||
{
|
||||
public:
|
||||
/** Creates an empty layout. */
|
||||
GlyphLayout();
|
||||
|
||||
/** Destructor. */
|
||||
~GlyphLayout();
|
||||
|
||||
//==============================================================================
|
||||
/** Creates a layout from the given attributed string.
|
||||
This will replace any data that is currently stored in the layout.
|
||||
*/
|
||||
void setText (const AttributedString& text, float maxWidth);
|
||||
|
||||
/** Draws the layout within the specified area.
|
||||
The position of the text within the rectangle is controlled by the justification
|
||||
flags set in the original AttributedString that was used to create this layout.
|
||||
*/
|
||||
void draw (Graphics& g, const Rectangle<float>& area) const;
|
||||
|
||||
//==============================================================================
|
||||
/** A positioned glyph. */
|
||||
class JUCE_API Glyph
|
||||
{
|
||||
public:
|
||||
Glyph (int glyphCode, const Point<float>& anchor) noexcept;
|
||||
~Glyph();
|
||||
|
||||
const int glyphCode;
|
||||
const Point<float> anchor;
|
||||
|
||||
private:
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Glyph);
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
/** A sequence of glyphs. */
|
||||
class JUCE_API Run
|
||||
{
|
||||
public:
|
||||
Run();
|
||||
Run (const Range<int>& range, int numGlyphsToPreallocate);
|
||||
~Run();
|
||||
|
||||
int getNumGlyphs() const noexcept { return glyphs.size(); }
|
||||
const Font& getFont() const noexcept { return font; }
|
||||
const Colour& getColour() const { return colour; }
|
||||
Glyph& getGlyph (int index) const;
|
||||
|
||||
void setStringRange (const Range<int>& newStringRange) noexcept;
|
||||
void setFont (const Font& newFont);
|
||||
void setColour (const Colour& newColour) noexcept;
|
||||
|
||||
void addGlyph (Glyph* glyph);
|
||||
void ensureStorageAllocated (int numGlyphsNeeded);
|
||||
|
||||
private:
|
||||
OwnedArray<Glyph> glyphs;
|
||||
Range<int> stringRange;
|
||||
Font font;
|
||||
Colour colour;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Run);
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
/** A line containing a sequence of glyph-runs. */
|
||||
class JUCE_API Line
|
||||
{
|
||||
public:
|
||||
Line() noexcept;
|
||||
Line (const Range<int>& stringRange, const Point<float>& lineOrigin,
|
||||
float ascent, float descent, float leading, int numRunsToPreallocate);
|
||||
~Line();
|
||||
|
||||
const Point<float>& getLineOrigin() const noexcept { return lineOrigin; }
|
||||
|
||||
float getAscent() const noexcept { return ascent; }
|
||||
float getDescent() const noexcept { return descent; }
|
||||
float getLeading() const noexcept { return leading; }
|
||||
|
||||
int getNumRuns() const noexcept { return runs.size(); }
|
||||
Run& getRun (int index) const noexcept;
|
||||
|
||||
void setStringRange (const Range<int>& newStringRange) noexcept;
|
||||
void setLineOrigin (const Point<float>& newLineOrigin) noexcept;
|
||||
void setLeading (float newLeading) noexcept;
|
||||
void increaseAscentDescent (float newAscent, float newDescent) noexcept;
|
||||
|
||||
void addRun (Run* run);
|
||||
|
||||
private:
|
||||
OwnedArray<Run> runs;
|
||||
Range<int> stringRange;
|
||||
Point<float> lineOrigin;
|
||||
float ascent, descent, leading;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Line);
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
/** Returns the maximum width of the content. */
|
||||
float getWidth() const noexcept { return width; }
|
||||
|
||||
/** Returns the maximum height of the content. */
|
||||
float getHeight() const noexcept;
|
||||
|
||||
/** Returns the number of lines in the layout. */
|
||||
int getNumLines() const noexcept { return lines.size(); }
|
||||
|
||||
/** Returns one of the lines. */
|
||||
Line& getLine (int index) const;
|
||||
|
||||
/** Adds a line to the layout. The object passed-in will be owned and deleted by the layout
|
||||
when it is no longer needed.
|
||||
*/
|
||||
void addLine (Line* line);
|
||||
|
||||
/** Pre-allocates space for the specified number of lines. */
|
||||
void ensureStorageAllocated (int numLinesNeeded);
|
||||
|
||||
private:
|
||||
OwnedArray<Line> lines;
|
||||
float width;
|
||||
Justification justification;
|
||||
|
||||
void createStandardLayout (const AttributedString&);
|
||||
bool createNativeLayout (const AttributedString&);
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (GlyphLayout);
|
||||
};
|
||||
|
||||
#endif // __JUCE_ATTRIBUTEDSTRING_JUCEHEADER__
|
||||
|
|
@ -43,6 +43,12 @@
|
|||
#if JUCE_MAC
|
||||
#import <QuartzCore/QuartzCore.h>
|
||||
|
||||
#elif JUCE_WINDOWS
|
||||
#if JUCE_USE_DIRECTWRITE
|
||||
#include <d2d1.h>
|
||||
#include <dwrite.h>
|
||||
#endif
|
||||
|
||||
#elif JUCE_IOS
|
||||
#import <QuartzCore/QuartzCore.h>
|
||||
#import <CoreText/CoreText.h>
|
||||
|
|
@ -78,6 +84,7 @@
|
|||
#include "image_formats/juce_GIFLoader.cpp"
|
||||
#include "image_formats/juce_JPEGLoader.cpp"
|
||||
#include "image_formats/juce_PNGLoader.cpp"
|
||||
#include "fonts/juce_AttributedString.cpp"
|
||||
#include "fonts/juce_CustomTypeface.cpp"
|
||||
#include "fonts/juce_Font.cpp"
|
||||
#include "fonts/juce_GlyphArrangement.cpp"
|
||||
|
|
@ -93,13 +100,17 @@ BEGIN_JUCE_NAMESPACE
|
|||
#if JUCE_MAC || JUCE_IOS
|
||||
#include "../juce_core/native/juce_osx_ObjCHelpers.h"
|
||||
#include "../juce_core/native/juce_mac_ObjCSuffix.h"
|
||||
#include "native/juce_mac_CoreGraphicsHelpers.h"
|
||||
#include "native/juce_mac_Fonts.mm"
|
||||
#include "native/juce_mac_CoreGraphicsContext.mm"
|
||||
|
||||
#elif JUCE_WINDOWS
|
||||
#include "../juce_core/native/juce_win32_ComSmartPtr.h"
|
||||
#if JUCE_DIRECT2D
|
||||
#include "native/juce_win32_Direct2DGraphicsContext.cpp"
|
||||
#endif
|
||||
#include "native/juce_win32_DirectWriteTypeface.cpp"
|
||||
#include "native/juce_win32_DirectWriteTypeLayout.cpp"
|
||||
#include "native/juce_win32_Fonts.cpp"
|
||||
|
||||
#elif JUCE_LINUX
|
||||
|
|
|
|||
|
|
@ -40,6 +40,15 @@
|
|||
#define JUCE_USE_COREIMAGE_LOADER 1
|
||||
#endif
|
||||
|
||||
/** Config: JUCE_USE_DIRECTWRITE
|
||||
|
||||
Enabling this flag means that DirectWrite will be used when available for font
|
||||
management and layout.
|
||||
*/
|
||||
#ifndef JUCE_USE_DIRECTWRITE
|
||||
#define JUCE_USE_DIRECTWRITE 1
|
||||
#endif
|
||||
|
||||
#ifndef JUCE_INCLUDE_PNGLIB_CODE
|
||||
#define JUCE_INCLUDE_PNGLIB_CODE 1
|
||||
#endif
|
||||
|
|
@ -132,6 +141,9 @@ BEGIN_JUCE_NAMESPACE
|
|||
#ifndef __JUCE_IMAGEFILEFORMAT_JUCEHEADER__
|
||||
#include "images/juce_ImageFileFormat.h"
|
||||
#endif
|
||||
#ifndef __JUCE_ATTRIBUTEDSTRING_JUCEHEADER__
|
||||
#include "fonts/juce_AttributedString.h"
|
||||
#endif
|
||||
#ifndef __JUCE_CUSTOMTYPEFACE_JUCEHEADER__
|
||||
#include "fonts/juce_CustomTypeface.h"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@ public:
|
|||
void setFont (const Font& newFont);
|
||||
Font getFont();
|
||||
void drawGlyph (int glyphNumber, const AffineTransform& transform);
|
||||
bool drawTextLayout (const AttributedString& text, const Rectangle<float>&);
|
||||
|
||||
private:
|
||||
CGContextRef context;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@
|
|||
==============================================================================
|
||||
*/
|
||||
|
||||
#include "juce_mac_CoreGraphicsHelpers.h"
|
||||
#include "juce_mac_CoreGraphicsContext.h"
|
||||
|
||||
//==============================================================================
|
||||
|
|
@ -622,6 +621,16 @@ void CoreGraphicsContext::drawGlyph (int glyphNumber, const AffineTransform& tra
|
|||
}
|
||||
}
|
||||
|
||||
bool CoreGraphicsContext::drawTextLayout (const AttributedString& text, const Rectangle<float>& area)
|
||||
{
|
||||
#if JUCE_CORETEXT_AVAILABLE
|
||||
CoreTextTypeLayout::drawToCGContext (text, area, context, flipHeight);
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
CoreGraphicsContext::SavedState::SavedState()
|
||||
: font (1.0f), fontRef (0), fontTransform (CGAffineTransformIdentity),
|
||||
shading (0), numGradientLookupEntries (0)
|
||||
|
|
|
|||
|
|
@ -31,6 +31,270 @@
|
|||
|
||||
#if JUCE_CORETEXT_AVAILABLE
|
||||
|
||||
namespace CoreTextTypeLayout
|
||||
{
|
||||
CFAttributedStringRef createCFAttributedString (const AttributedString& text)
|
||||
{
|
||||
#if JUCE_IOS
|
||||
CGColorSpaceRef rgbColourSpace = CGColorSpaceCreateDeviceRGB();
|
||||
#endif
|
||||
|
||||
CFStringRef cfText = text.getText().toCFString();
|
||||
CFMutableAttributedStringRef attribString = CFAttributedStringCreateMutable (kCFAllocatorDefault, 0);
|
||||
CFAttributedStringReplaceString (attribString, CFRangeMake(0, 0), cfText);
|
||||
CFRelease (cfText);
|
||||
|
||||
const int numCharacterAttributes = text.getNumAttributes();
|
||||
|
||||
for (int i = 0; i < numCharacterAttributes; ++i)
|
||||
{
|
||||
const AttributedString::Attribute* const attr = text.getAttribute (i);
|
||||
|
||||
if (attr->range.getStart() > CFAttributedStringGetLength (attribString))
|
||||
continue;
|
||||
|
||||
Range<int> range (attr->range);
|
||||
range.setEnd (jmin (range.getEnd(), (int) CFAttributedStringGetLength (attribString)));
|
||||
|
||||
if (attr->getFont() != nullptr)
|
||||
{
|
||||
// Apply fontHeightToCGSizeFactor to the font size since this is how glyphs are drawn
|
||||
CTFontRef ctFontRef = CTFontCreateWithName (attr->getFont()->getTypefaceName().toCFString(), 1024, nullptr);
|
||||
CGFontRef cgFontRef = CTFontCopyGraphicsFont (ctFontRef, nullptr);
|
||||
CFRelease (ctFontRef);
|
||||
|
||||
const int totalHeight = abs (CGFontGetAscent (cgFontRef)) + abs (CGFontGetDescent (cgFontRef));
|
||||
float fontHeightToCGSizeFactor = CGFontGetUnitsPerEm (cgFontRef) / (float) totalHeight;
|
||||
CGFontRelease (cgFontRef);
|
||||
|
||||
ctFontRef = CTFontCreateWithName (attr->getFont()->getTypefaceName().toCFString(),
|
||||
attr->getFont()->getHeight() * fontHeightToCGSizeFactor, nullptr);
|
||||
|
||||
CFAttributedStringSetAttribute (attribString, CFRangeMake (range.getStart(), range.getLength()),
|
||||
kCTFontAttributeName, ctFontRef);
|
||||
CFRelease (ctFontRef);
|
||||
}
|
||||
|
||||
if (attr->getColour() != nullptr)
|
||||
{
|
||||
#if JUCE_IOS
|
||||
const CGFloat components[] = { attr->getColour()->getFloatRed(),
|
||||
attr->getColour()->getFloatGreen(),
|
||||
attr->getColour()->getFloatBlue(),
|
||||
attr->getColour()->getFloatAlpha() };
|
||||
CGColorRef colour = CGColorCreate (rgbColourSpace, components);
|
||||
#else
|
||||
CGColorRef colour = CGColorCreateGenericRGB (attr->getColour()->getFloatRed(),
|
||||
attr->getColour()->getFloatGreen(),
|
||||
attr->getColour()->getFloatBlue(),
|
||||
attr->getColour()->getFloatAlpha());
|
||||
#endif
|
||||
|
||||
CFAttributedStringSetAttribute (attribString,
|
||||
CFRangeMake (range.getStart(), range.getLength()),
|
||||
kCTForegroundColorAttributeName, colour);
|
||||
CGColorRelease (colour);
|
||||
}
|
||||
}
|
||||
|
||||
// Paragraph Attributes
|
||||
CTTextAlignment ctTextAlignment = kCTLeftTextAlignment;
|
||||
CTLineBreakMode ctLineBreakMode = kCTLineBreakByWordWrapping;
|
||||
const CGFloat ctLineSpacing = text.getLineSpacing();
|
||||
|
||||
switch (text.getJustification().getOnlyHorizontalFlags())
|
||||
{
|
||||
case Justification::left: break;
|
||||
case Justification::right: ctTextAlignment = kCTRightTextAlignment; break;
|
||||
case Justification::horizontallyCentred: ctTextAlignment = kCTCenterTextAlignment; break;
|
||||
case Justification::horizontallyJustified: ctTextAlignment = kCTJustifiedTextAlignment; break;
|
||||
default: jassertfalse; break; // Illegal justification flags
|
||||
}
|
||||
|
||||
switch (text.getWordWrap())
|
||||
{
|
||||
case AttributedString::byWord: break;
|
||||
case AttributedString::none: ctLineBreakMode = kCTLineBreakByClipping; break;
|
||||
case AttributedString::byChar: ctLineBreakMode = kCTLineBreakByCharWrapping; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
CTParagraphStyleSetting settings[] =
|
||||
{
|
||||
{ kCTParagraphStyleSpecifierAlignment, sizeof (CTTextAlignment), &ctTextAlignment },
|
||||
{ kCTParagraphStyleSpecifierLineBreakMode, sizeof (CTLineBreakMode), &ctLineBreakMode },
|
||||
{ kCTParagraphStyleSpecifierLineSpacing, sizeof (CGFloat), &ctLineSpacing }
|
||||
};
|
||||
|
||||
CTParagraphStyleRef ctParagraphStyleRef = CTParagraphStyleCreate (settings, numElementsInArray (settings));
|
||||
CFAttributedStringSetAttribute (attribString, CFRangeMake (0, CFAttributedStringGetLength (attribString)),
|
||||
kCTParagraphStyleAttributeName, ctParagraphStyleRef);
|
||||
CFRelease (ctParagraphStyleRef);
|
||||
#if JUCE_IOS
|
||||
CGColorSpaceRelease (rgbColourSpace);
|
||||
#endif
|
||||
return attribString;
|
||||
}
|
||||
|
||||
float getTextHeight (CTFrameRef frame, const CGRect& bounds)
|
||||
{
|
||||
CFArrayRef lines = CTFrameGetLines (frame);
|
||||
CFIndex numLines = CFArrayGetCount (lines);
|
||||
CFIndex lastLineIndex = numLines - 1;
|
||||
CGFloat descent;
|
||||
CTLineRef line = (CTLineRef) CFArrayGetValueAtIndex (lines, lastLineIndex);
|
||||
CTLineGetTypographicBounds (line, nullptr, &descent, nullptr);
|
||||
CGPoint lastLineOrigin;
|
||||
CTFrameGetLineOrigins (frame, CFRangeMake (lastLineIndex, 1), &lastLineOrigin);
|
||||
return bounds.size.height - lastLineOrigin.y + descent;
|
||||
}
|
||||
|
||||
void drawToCGContext (const AttributedString& text, const Rectangle<float>& area,
|
||||
const CGContextRef& context, const float flipHeight)
|
||||
{
|
||||
CFAttributedStringRef attribString = CoreTextTypeLayout::createCFAttributedString (text);
|
||||
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString (attribString);
|
||||
CFRelease (attribString);
|
||||
|
||||
CGMutablePathRef path = CGPathCreateMutable();
|
||||
CGRect bounds = CGRectMake ((CGFloat) area.getX(), flipHeight - (CGFloat) area.getBottom(),
|
||||
(CGFloat) area.getWidth(), (CGFloat) area.getHeight());
|
||||
CGPathAddRect (path, nullptr, bounds);
|
||||
|
||||
CTFrameRef frame = CTFramesetterCreateFrame (framesetter, CFRangeMake (0, 0), path, NULL);
|
||||
CFRelease (framesetter);
|
||||
CGPathRelease (path);
|
||||
|
||||
float dy = 0;
|
||||
if (text.getJustification().getOnlyVerticalFlags() == Justification::bottom)
|
||||
dy = bounds.size.height - getTextHeight (frame, bounds);
|
||||
else if (text.getJustification().getOnlyVerticalFlags() == Justification::verticallyCentred)
|
||||
dy = (bounds.size.height - getTextHeight (frame, bounds)) / 2.0f;
|
||||
|
||||
if (dy != 0)
|
||||
{
|
||||
CGContextSaveGState (context);
|
||||
CGContextTranslateCTM (context, 0, -dy);
|
||||
}
|
||||
|
||||
CTFrameDraw (frame, context);
|
||||
|
||||
if (dy != 0)
|
||||
CGContextRestoreGState (context);
|
||||
|
||||
CFRelease (frame);
|
||||
}
|
||||
|
||||
void createLayout (GlyphLayout& glyphLayout, const AttributedString& text)
|
||||
{
|
||||
CFAttributedStringRef attribString = CoreTextTypeLayout::createCFAttributedString (text);
|
||||
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString (attribString);
|
||||
CFRelease (attribString);
|
||||
|
||||
CGMutablePathRef path = CGPathCreateMutable();
|
||||
const CGRect bounds = CGRectMake (0, 0, glyphLayout.getWidth(), 1.0e6f);
|
||||
CGPathAddRect (path, nullptr, bounds);
|
||||
|
||||
CTFrameRef frame = CTFramesetterCreateFrame (framesetter, CFRangeMake(0, 0), path, nullptr);
|
||||
CFRelease (framesetter);
|
||||
CGPathRelease (path);
|
||||
|
||||
CFArrayRef lines = CTFrameGetLines (frame);
|
||||
const CFIndex numLines = CFArrayGetCount (lines);
|
||||
|
||||
glyphLayout.ensureStorageAllocated (numLines);
|
||||
|
||||
for (CFIndex i = 0; i < numLines; ++i)
|
||||
{
|
||||
CTLineRef line = (CTLineRef) CFArrayGetValueAtIndex (lines, i);
|
||||
|
||||
CFArrayRef runs = CTLineGetGlyphRuns (line);
|
||||
const CFIndex numRuns = CFArrayGetCount (runs);
|
||||
|
||||
const CFRange cfrlineStringRange = CTLineGetStringRange (line);
|
||||
const CFIndex lineStringEnd = cfrlineStringRange.location + cfrlineStringRange.length - 1;
|
||||
const Range<int> lineStringRange ((int) cfrlineStringRange.location, (int) lineStringEnd);
|
||||
|
||||
CGPoint cgpLineOrigin;
|
||||
CTFrameGetLineOrigins (frame, CFRangeMake(i, 1), &cgpLineOrigin);
|
||||
|
||||
Point<float> lineOrigin ((float) cgpLineOrigin.x, bounds.size.height - (float) cgpLineOrigin.y);
|
||||
|
||||
CGFloat ascent, descent, leading;
|
||||
CTLineGetTypographicBounds (line, &ascent, &descent, &leading);
|
||||
|
||||
GlyphLayout::Line* const glyphLine = new GlyphLayout::Line (lineStringRange, lineOrigin,
|
||||
(float) ascent, (float) descent, (float) leading,
|
||||
(int) numRuns);
|
||||
glyphLayout.addLine (glyphLine);
|
||||
|
||||
for (CFIndex j = 0; j < numRuns; ++j)
|
||||
{
|
||||
CTRunRef run = (CTRunRef) CFArrayGetValueAtIndex (runs, j);
|
||||
const CFIndex numGlyphs = CTRunGetGlyphCount (run);
|
||||
const CFRange runStringRange = CTRunGetStringRange (run);
|
||||
|
||||
GlyphLayout::Run* const glyphRun = new GlyphLayout::Run (Range<int> ((int) runStringRange.location,
|
||||
(int) (runStringRange.location + runStringRange.length - 1)),
|
||||
(int) numGlyphs);
|
||||
glyphLine->addRun (glyphRun);
|
||||
|
||||
CFDictionaryRef runAttributes = CTRunGetAttributes (run);
|
||||
|
||||
CTFontRef ctRunFont;
|
||||
if (CFDictionaryGetValueIfPresent (runAttributes, kCTFontAttributeName, (const void **) &ctRunFont))
|
||||
{
|
||||
CFStringRef cfsFontName = CTFontCopyPostScriptName (ctRunFont);
|
||||
const String fontName (String::fromCFString (cfsFontName));
|
||||
|
||||
CTFontRef ctFontRef = CTFontCreateWithName (cfsFontName, 1024, nullptr);
|
||||
CFRelease (cfsFontName);
|
||||
CGFontRef cgFontRef = CTFontCopyGraphicsFont (ctFontRef, nullptr);
|
||||
CFRelease (ctFontRef);
|
||||
|
||||
const int totalHeight = std::abs (CGFontGetAscent (cgFontRef)) + std::abs (CGFontGetDescent (cgFontRef));
|
||||
const float fontHeightToCGSizeFactor = CGFontGetUnitsPerEm (cgFontRef) / (float) totalHeight;
|
||||
CGFontRelease (cgFontRef);
|
||||
|
||||
glyphRun->setFont (Font (fontName, CTFontGetSize (ctRunFont) / fontHeightToCGSizeFactor, 0));
|
||||
}
|
||||
|
||||
CGColorRef cgRunColor;
|
||||
if (CFDictionaryGetValueIfPresent (runAttributes, kCTForegroundColorAttributeName, (const void**) &cgRunColor)
|
||||
&& CGColorGetNumberOfComponents (cgRunColor) == 4)
|
||||
{
|
||||
const CGFloat* const components = CGColorGetComponents (cgRunColor);
|
||||
|
||||
glyphRun->setColour (Colour::fromFloatRGBA (components[0], components[1], components[2], components[3]));
|
||||
}
|
||||
|
||||
const CGGlyph* glyphsPtr = CTRunGetGlyphsPtr (run);
|
||||
const CGPoint* posPtr = CTRunGetPositionsPtr (run);
|
||||
HeapBlock <CGGlyph> glyphBuffer;
|
||||
HeapBlock <CGPoint> positionBuffer;
|
||||
|
||||
if (glyphsPtr == nullptr || posPtr == nullptr)
|
||||
{
|
||||
// If we can't get a direct pointer, we have to copy the metrics to get them..
|
||||
glyphBuffer.malloc (numGlyphs);
|
||||
glyphsPtr = glyphBuffer;
|
||||
CTRunGetGlyphs (run, CFRangeMake (0, 0), glyphBuffer);
|
||||
|
||||
positionBuffer.malloc (numGlyphs);
|
||||
posPtr = positionBuffer;
|
||||
CTRunGetPositions (run, CFRangeMake (0, 0), positionBuffer);
|
||||
}
|
||||
|
||||
for (CFIndex k = 0; k < numGlyphs; ++k)
|
||||
glyphRun->addGlyph (new GlyphLayout::Glyph (glyphsPtr[k], Point<float> (posPtr[k].x, posPtr[k].y)));
|
||||
}
|
||||
}
|
||||
|
||||
CFRelease (frame);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//==============================================================================
|
||||
class OSXTypeface : public Typeface
|
||||
{
|
||||
|
|
@ -778,3 +1042,14 @@ Typeface::Ptr Font::getDefaultTypefaceForFont (const Font& font)
|
|||
f.setTypefaceName (faceName);
|
||||
return Typeface::createSystemTypefaceFor (f);
|
||||
}
|
||||
|
||||
bool GlyphLayout::createNativeLayout (const AttributedString& text)
|
||||
{
|
||||
#if JUCE_CORETEXT_AVAILABLE
|
||||
CoreTextTypeLayout::createLayout (*this, text);
|
||||
return true;
|
||||
#else
|
||||
(void) text;
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,349 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-11 by Raw Material Software Ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the GNU General
|
||||
Public License (Version 2), as published by the Free Software Foundation.
|
||||
A copy of the license is included in the JUCE distribution, or can be found
|
||||
online at www.gnu.org/licenses.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
To release a closed-source product which uses JUCE, commercial licenses are
|
||||
available: visit www.rawmaterialsoftware.com/juce for more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
//==================================================================================================
|
||||
#if JUCE_USE_DIRECTWRITE
|
||||
namespace DirectWriteTypeLayout
|
||||
{
|
||||
class CustomDirectWriteTextRenderer : public ComBaseClassHelper <IDWriteTextRenderer>
|
||||
{
|
||||
public:
|
||||
CustomDirectWriteTextRenderer (IDWriteFontCollection* const fontCollection_)
|
||||
: fontCollection (fontCollection_),
|
||||
currentLine (-1),
|
||||
lastOriginY (-10000.0f)
|
||||
{
|
||||
resetReferenceCount();
|
||||
}
|
||||
|
||||
JUCE_COMRESULT QueryInterface (REFIID refId, void** result)
|
||||
{
|
||||
#if ! JUCE_MINGW
|
||||
if (refId == __uuidof (IDWritePixelSnapping)) { AddRef(); *result = dynamic_cast <IDWritePixelSnapping*> (this); return S_OK; }
|
||||
#else
|
||||
jassertfalse; // need to find a mingw equivalent of __uuidof to make this possible
|
||||
#endif
|
||||
|
||||
return ComBaseClassHelper<IDWriteTextRenderer>::QueryInterface (refId, result);
|
||||
}
|
||||
|
||||
JUCE_COMRESULT IsPixelSnappingDisabled (void* /*clientDrawingContext*/, BOOL* isDisabled)
|
||||
{
|
||||
*isDisabled = FALSE;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
JUCE_COMRESULT GetCurrentTransform (void*, DWRITE_MATRIX*) { return S_OK; }
|
||||
JUCE_COMRESULT GetPixelsPerDip (void*, FLOAT*) { return S_OK; }
|
||||
JUCE_COMRESULT DrawUnderline (void*, FLOAT, FLOAT, DWRITE_UNDERLINE const*, IUnknown*) { return S_OK; }
|
||||
JUCE_COMRESULT DrawStrikethrough (void*, FLOAT, FLOAT, DWRITE_STRIKETHROUGH const*, IUnknown*) { return S_OK; }
|
||||
JUCE_COMRESULT DrawInlineObject (void*, FLOAT, FLOAT, IDWriteInlineObject*, BOOL, BOOL, IUnknown*) { return E_NOTIMPL; }
|
||||
|
||||
JUCE_COMRESULT DrawGlyphRun (void* clientDrawingContext, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE,
|
||||
DWRITE_GLYPH_RUN const* glyphRun, DWRITE_GLYPH_RUN_DESCRIPTION const* runDescription,
|
||||
IUnknown* clientDrawingEffect)
|
||||
{
|
||||
GlyphLayout* const glyphLayout = static_cast<GlyphLayout*> (clientDrawingContext);
|
||||
|
||||
if (baselineOriginY != lastOriginY)
|
||||
{
|
||||
lastOriginY = baselineOriginY;
|
||||
++currentLine;
|
||||
|
||||
// The x value is only correct when dealing with LTR text
|
||||
glyphLayout->getLine (currentLine).setLineOrigin (Point<float> (baselineOriginX, baselineOriginY));
|
||||
}
|
||||
|
||||
if (currentLine < 0)
|
||||
return S_OK;
|
||||
|
||||
GlyphLayout::Line& glyphLine = glyphLayout->getLine (currentLine);
|
||||
|
||||
DWRITE_FONT_METRICS dwFontMetrics;
|
||||
glyphRun->fontFace->GetMetrics (&dwFontMetrics);
|
||||
|
||||
const float ascent = scaledFontSize (dwFontMetrics.ascent, dwFontMetrics, glyphRun);
|
||||
const float descent = scaledFontSize (dwFontMetrics.descent, dwFontMetrics, glyphRun);
|
||||
glyphLine.increaseAscentDescent (ascent, descent);
|
||||
|
||||
int styleFlags = 0;
|
||||
const String fontName (getFontName (glyphRun, styleFlags));
|
||||
|
||||
GlyphLayout::Run* const glyphRunLayout = new GlyphLayout::Run (Range<int> (runDescription->textPosition,
|
||||
runDescription->textPosition + runDescription->stringLength),
|
||||
glyphRun->glyphCount);
|
||||
glyphLine.addRun (glyphRunLayout);
|
||||
|
||||
glyphRun->fontFace->GetMetrics (&dwFontMetrics);
|
||||
|
||||
const float totalHeight = std::abs ((float) dwFontMetrics.ascent) + std::abs ((float) dwFontMetrics.descent);
|
||||
const float fontHeightToEmSizeFactor = (float) dwFontMetrics.designUnitsPerEm / totalHeight;
|
||||
|
||||
glyphRunLayout->setFont (Font (fontName, glyphRun->fontEmSize / fontHeightToEmSizeFactor, styleFlags));
|
||||
glyphRunLayout->setColour (getColourOf (static_cast<ID2D1SolidColorBrush*> (clientDrawingEffect)));
|
||||
|
||||
const Point<float> lineOrigin (glyphLayout->getLine (currentLine).getLineOrigin());
|
||||
float x = baselineOriginX - lineOrigin.x;
|
||||
|
||||
for (UINT32 i = 0; i < glyphRun->glyphCount; ++i)
|
||||
{
|
||||
if ((glyphRun->bidiLevel & 1) != 0)
|
||||
x -= glyphRun->glyphAdvances[i]; // RTL text
|
||||
|
||||
glyphRunLayout->addGlyph (new GlyphLayout::Glyph (glyphRun->glyphIndices[i], Point<float> (x, baselineOriginY - lineOrigin.y)));
|
||||
|
||||
if ((glyphRun->bidiLevel & 1) == 0)
|
||||
x += glyphRun->glyphAdvances[i]; // LTR text
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
private:
|
||||
IDWriteFontCollection* const fontCollection;
|
||||
int currentLine;
|
||||
float lastOriginY;
|
||||
|
||||
static float scaledFontSize (int n, const DWRITE_FONT_METRICS& metrics, const DWRITE_GLYPH_RUN* glyphRun) noexcept
|
||||
{
|
||||
return (std::abs ((float) n) / (float) metrics.designUnitsPerEm) * glyphRun->fontEmSize;
|
||||
}
|
||||
|
||||
static Colour getColourOf (ID2D1SolidColorBrush* d2dBrush)
|
||||
{
|
||||
if (d2dBrush == nullptr)
|
||||
return Colours::black;
|
||||
|
||||
const D2D1_COLOR_F colour (d2dBrush->GetColor());
|
||||
return Colour::fromFloatRGBA (colour.r, colour.g, colour.b, colour.a);
|
||||
}
|
||||
|
||||
String getFontName (DWRITE_GLYPH_RUN const* glyphRun, int& styleFlags) const
|
||||
{
|
||||
ComSmartPtr<IDWriteFont> dwFont;
|
||||
|
||||
HRESULT hr = fontCollection->GetFontFromFontFace (glyphRun->fontFace, dwFont.resetAndGetPointerAddress());
|
||||
jassert (dwFont != nullptr);
|
||||
|
||||
if (dwFont->GetWeight() == DWRITE_FONT_WEIGHT_BOLD) styleFlags &= Font::bold;
|
||||
if (dwFont->GetStyle() == DWRITE_FONT_STYLE_ITALIC) styleFlags &= Font::italic;
|
||||
|
||||
ComSmartPtr<IDWriteFontFamily> dwFontFamily;
|
||||
hr = dwFont->GetFontFamily (dwFontFamily.resetAndGetPointerAddress());
|
||||
jassert (dwFontFamily != nullptr);
|
||||
|
||||
// Get the Font Family Names
|
||||
ComSmartPtr<IDWriteLocalizedStrings> dwFamilyNames;
|
||||
hr = dwFontFamily->GetFamilyNames (dwFamilyNames.resetAndGetPointerAddress());
|
||||
jassert (dwFamilyNames != nullptr);
|
||||
|
||||
UINT32 index = 0;
|
||||
BOOL exists = false;
|
||||
hr = dwFamilyNames->FindLocaleName (L"en-us", &index, &exists);
|
||||
if (! exists)
|
||||
index = 0;
|
||||
|
||||
UINT32 length = 0;
|
||||
hr = dwFamilyNames->GetStringLength (index, &length);
|
||||
|
||||
HeapBlock <wchar_t> name (length + 1);
|
||||
hr = dwFamilyNames->GetString (index, name, length + 1);
|
||||
|
||||
return String (name);
|
||||
}
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CustomDirectWriteTextRenderer);
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
float getFontHeightToEmSizeFactor (const Font& font, IDWriteFontCollection& dwFontCollection)
|
||||
{
|
||||
BOOL fontFound = false;
|
||||
uint32 fontIndex;
|
||||
dwFontCollection.FindFamilyName (font.getTypefaceName().toWideCharPointer(), &fontIndex, &fontFound);
|
||||
|
||||
if (! fontFound)
|
||||
fontIndex = 0;
|
||||
|
||||
ComSmartPtr<IDWriteFontFamily> dwFontFamily;
|
||||
HRESULT hr = dwFontCollection.GetFontFamily (fontIndex, dwFontFamily.resetAndGetPointerAddress());
|
||||
|
||||
ComSmartPtr<IDWriteFont> dwFont;
|
||||
hr = dwFontFamily->GetFirstMatchingFont (DWRITE_FONT_WEIGHT_NORMAL, DWRITE_FONT_STRETCH_NORMAL, DWRITE_FONT_STYLE_NORMAL,
|
||||
dwFont.resetAndGetPointerAddress());
|
||||
|
||||
ComSmartPtr<IDWriteFontFace> dwFontFace;
|
||||
hr = dwFont->CreateFontFace (dwFontFace.resetAndGetPointerAddress());
|
||||
|
||||
DWRITE_FONT_METRICS dwFontMetrics;
|
||||
dwFontFace->GetMetrics (&dwFontMetrics);
|
||||
|
||||
const float totalHeight = (float) (std::abs (dwFontMetrics.ascent) + std::abs (dwFontMetrics.descent));
|
||||
return dwFontMetrics.designUnitsPerEm / totalHeight;
|
||||
}
|
||||
|
||||
void setTextFormatProperties (const AttributedString& text, IDWriteTextFormat* const format)
|
||||
{
|
||||
DWRITE_TEXT_ALIGNMENT alignment = DWRITE_TEXT_ALIGNMENT_LEADING;
|
||||
DWRITE_WORD_WRAPPING wrapType = DWRITE_WORD_WRAPPING_WRAP;
|
||||
|
||||
switch (text.getJustification().getOnlyHorizontalFlags())
|
||||
{
|
||||
case Justification::left: break;
|
||||
case Justification::right: alignment = DWRITE_TEXT_ALIGNMENT_TRAILING; break;
|
||||
case Justification::horizontallyCentred: alignment = DWRITE_TEXT_ALIGNMENT_CENTER; break;
|
||||
case Justification::horizontallyJustified: break; // DirectWrite cannot justify text, default to left alignment
|
||||
default: jassertfalse; break; // Illegal justification flags
|
||||
}
|
||||
|
||||
switch (text.getWordWrap())
|
||||
{
|
||||
case AttributedString::none: wrapType = DWRITE_WORD_WRAPPING_NO_WRAP; break;
|
||||
case AttributedString::byWord: break;
|
||||
case AttributedString::byChar: break; // DirectWrite doesn't support wrapping by character, default to word-wrap
|
||||
default: jassertfalse; break; // Illegal flags!
|
||||
}
|
||||
|
||||
format->SetTextAlignment (alignment);
|
||||
format->SetWordWrapping (wrapType);
|
||||
|
||||
// DirectWrite does not automatically set reading direction
|
||||
// This must be set correctly and manually when using RTL Scripts (Hebrew, Arabic)
|
||||
if (text.getReadingDirection() == AttributedString::rightToLeft)
|
||||
format->SetReadingDirection (DWRITE_READING_DIRECTION_RIGHT_TO_LEFT);
|
||||
}
|
||||
|
||||
void addAttributedRange (const AttributedString::Attribute& attr, IDWriteTextLayout* textLayout,
|
||||
const int textLen, ID2D1DCRenderTarget* const renderTarget, IDWriteFontCollection* const fontCollection)
|
||||
{
|
||||
DWRITE_TEXT_RANGE range;
|
||||
range.startPosition = attr.range.getStart();
|
||||
range.length = jmin (attr.range.getLength(), textLen - attr.range.getStart());
|
||||
|
||||
if (attr.getFont() != nullptr)
|
||||
{
|
||||
textLayout->SetFontFamilyName (attr.getFont()->getTypefaceName().toWideCharPointer(), range);
|
||||
|
||||
const float fontHeightToEmSizeFactor = getFontHeightToEmSizeFactor (*attr.getFont(), *fontCollection);
|
||||
textLayout->SetFontSize (attr.getFont()->getHeight() * fontHeightToEmSizeFactor, range);
|
||||
}
|
||||
|
||||
if (attr.getColour() != nullptr)
|
||||
{
|
||||
ComSmartPtr<ID2D1SolidColorBrush> d2dBrush;
|
||||
renderTarget->CreateSolidColorBrush (D2D1::ColorF (D2D1::ColorF (attr.getColour()->getFloatRed(),
|
||||
attr.getColour()->getFloatGreen(),
|
||||
attr.getColour()->getFloatBlue(),
|
||||
attr.getColour()->getFloatAlpha())),
|
||||
d2dBrush.resetAndGetPointerAddress());
|
||||
|
||||
// We need to call SetDrawingEffect with a legimate brush to get DirectWrite to break text based on colours
|
||||
textLayout->SetDrawingEffect (d2dBrush, range);
|
||||
}
|
||||
}
|
||||
|
||||
void createLayout (GlyphLayout& glyphLayout, const AttributedString& text, IDWriteFactory* const directWriteFactory,
|
||||
ID2D1Factory* const direct2dFactory, IDWriteFontCollection* const fontCollection)
|
||||
{
|
||||
// To add color to text, we need to create a D2D render target
|
||||
// Since we are not actually rendering to a D2D context we create a temporary GDI render target
|
||||
|
||||
D2D1_RENDER_TARGET_PROPERTIES d2dRTProp = D2D1::RenderTargetProperties (D2D1_RENDER_TARGET_TYPE_SOFTWARE,
|
||||
D2D1::PixelFormat (DXGI_FORMAT_B8G8R8A8_UNORM,
|
||||
D2D1_ALPHA_MODE_IGNORE),
|
||||
0, 0,
|
||||
D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE,
|
||||
D2D1_FEATURE_LEVEL_DEFAULT);
|
||||
ComSmartPtr<ID2D1DCRenderTarget> renderTarget;
|
||||
HRESULT hr = direct2dFactory->CreateDCRenderTarget (&d2dRTProp, renderTarget.resetAndGetPointerAddress());
|
||||
|
||||
Font defaultFont;
|
||||
const float defaultFontHeightToEmSizeFactor = getFontHeightToEmSizeFactor (defaultFont, *fontCollection);
|
||||
|
||||
jassert (directWriteFactory != nullptr);
|
||||
|
||||
ComSmartPtr<IDWriteTextFormat> dwTextFormat;
|
||||
hr = directWriteFactory->CreateTextFormat (defaultFont.getTypefaceName().toWideCharPointer(), fontCollection,
|
||||
DWRITE_FONT_WEIGHT_REGULAR, DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STRETCH_NORMAL,
|
||||
defaultFont.getHeight() * defaultFontHeightToEmSizeFactor,
|
||||
L"en-us", dwTextFormat.resetAndGetPointerAddress());
|
||||
|
||||
setTextFormatProperties (text, dwTextFormat);
|
||||
|
||||
const int textLen = text.getText().length();
|
||||
|
||||
ComSmartPtr<IDWriteTextLayout> dwTextLayout;
|
||||
hr = directWriteFactory->CreateTextLayout (text.getText().toWideCharPointer(), textLen,
|
||||
dwTextFormat, glyphLayout.getWidth(),
|
||||
1.0e7f, dwTextLayout.resetAndGetPointerAddress());
|
||||
|
||||
const int numAttributes = text.getNumAttributes();
|
||||
|
||||
for (int i = 0; i < numAttributes; ++i)
|
||||
addAttributedRange (*text.getAttribute (i), dwTextLayout, textLen, renderTarget, fontCollection);
|
||||
|
||||
UINT32 actualLineCount = 0;
|
||||
hr = dwTextLayout->GetLineMetrics (nullptr, 0, &actualLineCount);
|
||||
|
||||
glyphLayout.ensureStorageAllocated (actualLineCount);
|
||||
|
||||
HeapBlock <DWRITE_LINE_METRICS> dwLineMetrics (actualLineCount);
|
||||
hr = dwTextLayout->GetLineMetrics (dwLineMetrics, actualLineCount, &actualLineCount);
|
||||
int lastLocation = 0;
|
||||
|
||||
for (UINT32 i = 0; i < actualLineCount; ++i)
|
||||
{
|
||||
const Range<int> lineStringRange (lastLocation, (int) lastLocation + dwLineMetrics[i].length);
|
||||
lastLocation = dwLineMetrics[i].length;
|
||||
|
||||
GlyphLayout::Line* glyphLine = new GlyphLayout::Line();
|
||||
glyphLayout.addLine (glyphLine);
|
||||
glyphLine->setStringRange (lineStringRange);
|
||||
}
|
||||
|
||||
ComSmartPtr<CustomDirectWriteTextRenderer> textRenderer (new CustomDirectWriteTextRenderer (fontCollection));
|
||||
|
||||
hr = dwTextLayout->Draw (&glyphLayout, textRenderer, 0, 0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
bool GlyphLayout::createNativeLayout (const AttributedString& text)
|
||||
{
|
||||
#if JUCE_USE_DIRECTWRITE
|
||||
const Direct2DFactories& factories = Direct2DFactories::getInstance();
|
||||
|
||||
if (factories.d2dFactory != nullptr && factories.systemFonts != nullptr)
|
||||
{
|
||||
DirectWriteTypeLayout::createLayout (*this, text, factories.directWriteFactory,
|
||||
factories.d2dFactory, factories.systemFonts);
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
(void) text;
|
||||
#endif
|
||||
|
||||
return false;
|
||||
}
|
||||
253
modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp
Normal file
253
modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp
Normal file
|
|
@ -0,0 +1,253 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-11 by Raw Material Software Ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the GNU General
|
||||
Public License (Version 2), as published by the Free Software Foundation.
|
||||
A copy of the license is included in the JUCE distribution, or can be found
|
||||
online at www.gnu.org/licenses.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
To release a closed-source product which uses JUCE, commercial licenses are
|
||||
available: visit www.rawmaterialsoftware.com/juce for more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#if JUCE_USE_DIRECTWRITE
|
||||
class Direct2DFactories
|
||||
{
|
||||
public:
|
||||
Direct2DFactories()
|
||||
{
|
||||
if (direct2dDll.open ("d2d1.dll"))
|
||||
{
|
||||
JUCE_DLL_FUNCTION (D2D1CreateFactory, d2d1CreateFactory, HRESULT, direct2dDll, (D2D1_FACTORY_TYPE, REFIID, D2D1_FACTORY_OPTIONS*, void**))
|
||||
|
||||
if (d2d1CreateFactory != nullptr)
|
||||
{
|
||||
D2D1_FACTORY_OPTIONS options;
|
||||
options.debugLevel = D2D1_DEBUG_LEVEL_NONE;
|
||||
|
||||
d2d1CreateFactory (D2D1_FACTORY_TYPE_SINGLE_THREADED, __uuidof (ID2D1Factory), &options,
|
||||
(void**) d2dFactory.resetAndGetPointerAddress());
|
||||
}
|
||||
}
|
||||
|
||||
if (directWriteDll.open ("DWrite.dll"))
|
||||
{
|
||||
JUCE_DLL_FUNCTION (DWriteCreateFactory, dWriteCreateFactory, HRESULT, directWriteDll, (DWRITE_FACTORY_TYPE, REFIID, IUnknown**))
|
||||
|
||||
if (dWriteCreateFactory != nullptr)
|
||||
{
|
||||
dWriteCreateFactory (DWRITE_FACTORY_TYPE_SHARED, __uuidof (IDWriteFactory),
|
||||
(IUnknown**) directWriteFactory.resetAndGetPointerAddress());
|
||||
|
||||
if (directWriteFactory != nullptr)
|
||||
directWriteFactory->GetSystemFontCollection (systemFonts.resetAndGetPointerAddress());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
~Direct2DFactories()
|
||||
{
|
||||
d2dFactory = nullptr; // (need to make sure these are released before deleting the DynamicLibrary objects)
|
||||
directWriteFactory = nullptr;
|
||||
systemFonts = nullptr;
|
||||
}
|
||||
|
||||
static const Direct2DFactories& getInstance()
|
||||
{
|
||||
static Direct2DFactories instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
ComSmartPtr <ID2D1Factory> d2dFactory;
|
||||
ComSmartPtr <IDWriteFactory> directWriteFactory;
|
||||
ComSmartPtr <IDWriteFontCollection> systemFonts;
|
||||
|
||||
private:
|
||||
DynamicLibrary direct2dDll, directWriteDll;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Direct2DFactories);
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
class WindowsDirectWriteTypeface : public Typeface
|
||||
{
|
||||
public:
|
||||
WindowsDirectWriteTypeface (const Font& font, IDWriteFontCollection* fontCollection)
|
||||
: Typeface (font.getTypefaceName()),
|
||||
ascent (0.0f)
|
||||
{
|
||||
jassert (fontCollection != nullptr);
|
||||
|
||||
BOOL fontFound = false;
|
||||
uint32 fontIndex = 0;
|
||||
HRESULT hr = fontCollection->FindFamilyName (font.getTypefaceName().toWideCharPointer(), &fontIndex, &fontFound);
|
||||
if (! fontFound)
|
||||
fontIndex = 0;
|
||||
|
||||
// Get the font family using the search results
|
||||
// Fonts like: Times New Roman, Times New Roman Bold, Times New Roman Italic are all in the same font family
|
||||
ComSmartPtr<IDWriteFontFamily> dwFontFamily;
|
||||
hr = fontCollection->GetFontFamily (fontIndex, dwFontFamily.resetAndGetPointerAddress());
|
||||
|
||||
// Get a specific font in the font family using certain weight and style flags
|
||||
ComSmartPtr<IDWriteFont> dwFont;
|
||||
DWRITE_FONT_WEIGHT dwWeight = font.isBold() ? DWRITE_FONT_WEIGHT_BOLD : DWRITE_FONT_WEIGHT_NORMAL;
|
||||
DWRITE_FONT_STYLE dwStyle = font.isItalic() ? DWRITE_FONT_STYLE_ITALIC : DWRITE_FONT_STYLE_NORMAL;
|
||||
|
||||
hr = dwFontFamily->GetFirstMatchingFont (dwWeight, DWRITE_FONT_STRETCH_NORMAL, dwStyle, dwFont.resetAndGetPointerAddress());
|
||||
hr = dwFont->CreateFontFace (dwFontFace.resetAndGetPointerAddress());
|
||||
|
||||
DWRITE_FONT_METRICS dwFontMetrics;
|
||||
dwFontFace->GetMetrics (&dwFontMetrics);
|
||||
|
||||
// All Font Metrics are in design units so we need to get designUnitsPerEm value to get the metrics
|
||||
// into Em/Design Independent Pixels
|
||||
designUnitsPerEm = dwFontMetrics.designUnitsPerEm;
|
||||
|
||||
ascent = std::abs ((float) dwFontMetrics.ascent);
|
||||
const float totalSize = ascent + std::abs ((float) dwFontMetrics.descent);
|
||||
ascent /= totalSize;
|
||||
unitsToHeightScaleFactor = 1.0f / (totalSize / designUnitsPerEm);
|
||||
const float pathAscent = (((float) dwFontMetrics.ascent) / ((float) designUnitsPerEm)) * 1024.0f;
|
||||
const float pathDescent = (((float) dwFontMetrics.descent) / ((float) designUnitsPerEm)) * 1024.0f;
|
||||
const float pathTotalSize = std::abs (pathAscent) + std::abs (pathDescent);
|
||||
pathTransform = AffineTransform::identity.scale (1.0f / pathTotalSize, 1.0f / pathTotalSize);
|
||||
}
|
||||
|
||||
float getAscent() const { return ascent; }
|
||||
float getDescent() const { return 1.0f - ascent; }
|
||||
|
||||
float getStringWidth (const String& text)
|
||||
{
|
||||
const CharPointer_UTF32 textUTF32 (text.toUTF32());
|
||||
const size_t len = textUTF32.length();
|
||||
|
||||
HeapBlock <UINT16> glyphIndices (len);
|
||||
dwFontFace->GetGlyphIndices (textUTF32, len, glyphIndices);
|
||||
|
||||
HeapBlock <DWRITE_GLYPH_METRICS> dwGlyphMetrics (len);
|
||||
dwFontFace->GetDesignGlyphMetrics (glyphIndices, len, dwGlyphMetrics, false);
|
||||
|
||||
float x = 0;
|
||||
for (size_t i = 0; i < len; ++i)
|
||||
x += (float) dwGlyphMetrics[i].advanceWidth / designUnitsPerEm;
|
||||
|
||||
return x * unitsToHeightScaleFactor;
|
||||
}
|
||||
|
||||
void getGlyphPositions (const String& text, Array <int>& resultGlyphs, Array <float>& xOffsets)
|
||||
{
|
||||
xOffsets.add (0);
|
||||
|
||||
const CharPointer_UTF32 textUTF32 (text.toUTF32());
|
||||
const size_t len = textUTF32.length();
|
||||
|
||||
HeapBlock <UINT16> glyphIndices (len);
|
||||
dwFontFace->GetGlyphIndices (textUTF32, len, glyphIndices);
|
||||
HeapBlock <DWRITE_GLYPH_METRICS> dwGlyphMetrics (len);
|
||||
dwFontFace->GetDesignGlyphMetrics (glyphIndices, len, dwGlyphMetrics, false);
|
||||
|
||||
float x = 0;
|
||||
for (size_t i = 0; i < len; ++i)
|
||||
{
|
||||
x += (float) dwGlyphMetrics[i].advanceWidth / designUnitsPerEm;
|
||||
xOffsets.add (x * unitsToHeightScaleFactor);
|
||||
resultGlyphs.add (glyphIndices[i]);
|
||||
}
|
||||
}
|
||||
|
||||
EdgeTable* getEdgeTableForGlyph (int glyphNumber, const AffineTransform& transform)
|
||||
{
|
||||
Path path;
|
||||
|
||||
if (getOutlineForGlyph (glyphNumber, path) && ! path.isEmpty())
|
||||
return new EdgeTable (path.getBoundsTransformed (transform).getSmallestIntegerContainer().expanded (1, 0),
|
||||
path, transform);
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool getOutlineForGlyph (int glyphNumber, Path& path)
|
||||
{
|
||||
jassert (path.isEmpty()); // we might need to apply a transform to the path, so this must be empty
|
||||
UINT16 glyphIndex = (UINT16) glyphNumber;
|
||||
ComSmartPtr<PathGeometrySink> pathGeometrySink (new PathGeometrySink());
|
||||
|
||||
dwFontFace->GetGlyphRunOutline (1024.0f, &glyphIndex, nullptr, nullptr, 1, false, false, pathGeometrySink);
|
||||
path = pathGeometrySink->path;
|
||||
|
||||
if (! pathTransform.isIdentity())
|
||||
path.applyTransform (pathTransform);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
ComSmartPtr<IDWriteFontFace> dwFontFace;
|
||||
float unitsToHeightScaleFactor, ascent;
|
||||
int designUnitsPerEm;
|
||||
AffineTransform pathTransform;
|
||||
|
||||
class PathGeometrySink : public ComBaseClassHelper<IDWriteGeometrySink>
|
||||
{
|
||||
public:
|
||||
PathGeometrySink() { resetReferenceCount(); }
|
||||
|
||||
void __stdcall AddBeziers (const D2D1_BEZIER_SEGMENT *beziers, UINT beziersCount)
|
||||
{
|
||||
for (UINT i = 0; i < beziersCount; ++i)
|
||||
path.cubicTo ((float) beziers[i].point1.x, (float) beziers[i].point1.y,
|
||||
(float) beziers[i].point2.x, (float) beziers[i].point2.y,
|
||||
(float) beziers[i].point3.x, (float) beziers[i].point3.y);
|
||||
}
|
||||
|
||||
void __stdcall AddLines (const D2D1_POINT_2F* points, UINT pointsCount)
|
||||
{
|
||||
for (UINT i = 0; i < pointsCount; ++i)
|
||||
path.lineTo ((float) points[i].x,
|
||||
(float) points[i].y);
|
||||
}
|
||||
|
||||
void __stdcall BeginFigure (D2D1_POINT_2F startPoint, D2D1_FIGURE_BEGIN)
|
||||
{
|
||||
path.startNewSubPath ((float) startPoint.x,
|
||||
(float) startPoint.y);
|
||||
}
|
||||
|
||||
void __stdcall EndFigure (D2D1_FIGURE_END figureEnd)
|
||||
{
|
||||
if (figureEnd == D2D1_FIGURE_END_CLOSED)
|
||||
path.closeSubPath();
|
||||
}
|
||||
|
||||
void __stdcall SetFillMode (D2D1_FILL_MODE fillMode)
|
||||
{
|
||||
path.setUsingNonZeroWinding (fillMode == D2D1_FILL_MODE_WINDING);
|
||||
}
|
||||
|
||||
void __stdcall SetSegmentFlags (D2D1_PATH_SEGMENT) {}
|
||||
JUCE_COMRESULT Close() { return S_OK; }
|
||||
|
||||
Path path;
|
||||
|
||||
private:
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PathGeometrySink);
|
||||
};
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WindowsDirectWriteTypeface);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -416,5 +416,12 @@ const MAT2 WindowsTypeface::identityMatrix = { { 0, 1 }, { 0, 0 }, { 0, 0 }, { 0
|
|||
|
||||
Typeface::Ptr Typeface::createSystemTypefaceFor (const Font& font)
|
||||
{
|
||||
return new WindowsTypeface (font);
|
||||
#if JUCE_USE_DIRECTWRITE
|
||||
const Direct2DFactories& factories = Direct2DFactories::getInstance();
|
||||
|
||||
if (factories.systemFonts != nullptr)
|
||||
return new WindowsDirectWriteTypeface (font, factories.systemFonts);
|
||||
else
|
||||
#endif
|
||||
return new WindowsTypeface (font);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue