| @@ -46,13 +46,11 @@ OBJECTS := \ | |||
| $(OBJDIR)/jucer_AppearanceSettings_788d9889.o \ | |||
| $(OBJDIR)/jucer_CommandLine_f35de107.o \ | |||
| $(OBJDIR)/jucer_DocumentEditorComponent_695dff1d.o \ | |||
| $(OBJDIR)/jucer_FilePreviewComponent_55512f53.o \ | |||
| $(OBJDIR)/jucer_JuceUpdater_cf7865c4.o \ | |||
| $(OBJDIR)/jucer_Main_f8488f5b.o \ | |||
| $(OBJDIR)/jucer_MainWindow_1e163aeb.o \ | |||
| $(OBJDIR)/jucer_OpenDocumentManager_4c72d210.o \ | |||
| $(OBJDIR)/jucer_ConfigPage_99b07caa.o \ | |||
| $(OBJDIR)/jucer_GroupInformationComponent_631ccf01.o \ | |||
| $(OBJDIR)/jucer_Module_3f7666a5.o \ | |||
| $(OBJDIR)/jucer_NewFileWizard_b8a19ef8.o \ | |||
| $(OBJDIR)/jucer_NewProjectWizard_7a15bf5d.o \ | |||
| @@ -108,11 +106,6 @@ $(OBJDIR)/jucer_DocumentEditorComponent_695dff1d.o: ../../Source/Application/juc | |||
| @echo "Compiling jucer_DocumentEditorComponent.cpp" | |||
| @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" | |||
| $(OBJDIR)/jucer_FilePreviewComponent_55512f53.o: ../../Source/Application/jucer_FilePreviewComponent.cpp | |||
| -@mkdir -p $(OBJDIR) | |||
| @echo "Compiling jucer_FilePreviewComponent.cpp" | |||
| @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" | |||
| $(OBJDIR)/jucer_JuceUpdater_cf7865c4.o: ../../Source/Application/jucer_JuceUpdater.cpp | |||
| -@mkdir -p $(OBJDIR) | |||
| @echo "Compiling jucer_JuceUpdater.cpp" | |||
| @@ -138,11 +131,6 @@ $(OBJDIR)/jucer_ConfigPage_99b07caa.o: ../../Source/Project/jucer_ConfigPage.cpp | |||
| @echo "Compiling jucer_ConfigPage.cpp" | |||
| @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" | |||
| $(OBJDIR)/jucer_GroupInformationComponent_631ccf01.o: ../../Source/Project/jucer_GroupInformationComponent.cpp | |||
| -@mkdir -p $(OBJDIR) | |||
| @echo "Compiling jucer_GroupInformationComponent.cpp" | |||
| @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" | |||
| $(OBJDIR)/jucer_Module_3f7666a5.o: ../../Source/Project/jucer_Module.cpp | |||
| -@mkdir -p $(OBJDIR) | |||
| @echo "Compiling jucer_Module.cpp" | |||
| @@ -15,13 +15,11 @@ | |||
| 357A6AA6960EF95D92929BEE = { isa = PBXBuildFile; fileRef = 441CFEA771BAA50E187342E9; }; | |||
| 954A036F5DDB375DB23FFB3E = { isa = PBXBuildFile; fileRef = 0400CB0E056A1D840304D2DE; }; | |||
| 3EB3D569250C4BA4CA9AF578 = { isa = PBXBuildFile; fileRef = C7608A3967D9AB9481848F2B; }; | |||
| 9A4D477F1924C31A52AF5C79 = { isa = PBXBuildFile; fileRef = F2FA27430D90E92F0C9EBEDF; }; | |||
| B1A786B525176BEE309998EA = { isa = PBXBuildFile; fileRef = BE94248CF8069E6707174CDB; }; | |||
| 95B44E6C74B1DED31DBE37EB = { isa = PBXBuildFile; fileRef = 8C52A3DDA62A746AA7A68535; }; | |||
| AA9D0B8E23F3D87A23DE9F8A = { isa = PBXBuildFile; fileRef = 9069981E414A631B036CC9AC; }; | |||
| 244BA1BDA5FAA465EA3F9C6D = { isa = PBXBuildFile; fileRef = 2247EE920DF0610CAF9F4513; }; | |||
| D1A1998A202A88C617C9AB73 = { isa = PBXBuildFile; fileRef = E7F7033084AC10FB77B0F77A; }; | |||
| 349B4C837D996E71E08657A5 = { isa = PBXBuildFile; fileRef = 6FA01AEDB9DB70FD1EA6D380; }; | |||
| 3FCA61C401007B243E2E9035 = { isa = PBXBuildFile; fileRef = F797071D88542C813CF7222A; }; | |||
| 5BC89E7905397ABECD25ACCD = { isa = PBXBuildFile; fileRef = F1163B7856FDABA413A88D90; }; | |||
| FBE57B26FE59319AA2E8B59D = { isa = PBXBuildFile; fileRef = 69A5D13490A62DAE9A7D5A22; }; | |||
| @@ -356,7 +354,6 @@ | |||
| 6EE1847181635ED3C0838A4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 6EE91491434D058606460AFB = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GroupComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 6F8A53EDF09094C83DE4D111 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| 6FA01AEDB9DB70FD1EA6D380 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_GroupInformationComponent.cpp"; path = "../../Source/Project/jucer_GroupInformationComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 7074AEDE4B0416BC898DD27A = { isa = PBXFileReference; lastKnownFileType = image.png; name = "brushed_aluminium.png"; path = "../../Source/BinaryData/brushed_aluminium.png"; sourceTree = "SOURCE_ROOT"; }; | |||
| 70CF9F1991538524A7C4CE39 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 70DC1D288DC6503E628A5A03 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -562,6 +559,7 @@ | |||
| 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"; }; | |||
| BBA6060656F685ED7FA52045 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_TreeViewTypes.h"; path = "../../Source/Project/jucer_TreeViewTypes.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| BC17B02633EF1E31024051C2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| BCAD13352CE76BA81629A6E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| BD7C18F07DE633B97B4478E7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -601,7 +599,8 @@ | |||
| C7E19F79947BEFC7DB7A9CE7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| C83992DA0BE30EA3CD06EA98 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| C85B4D62B96F4A44890F20E2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../../../modules/juce_core/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| C90C66C5727759D5CBD5FB07 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| C8A229ACD244F402C57286CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_MSVC.h"; path = "../../Source/Project Saving/jucer_ProjectExport_MSVC.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| C9616830BB2474066AC8C910 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ResourceFile.h"; path = "../../Source/Project Saving/jucer_ResourceFile.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| C9871C46DEDD05103443DC33 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| C9DCA94BF8A4C583E5392755 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| CA62F9F7C5F0D77D8E33D91F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -622,48 +621,46 @@ | |||
| CF8011B3C67B609032974DA5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_NewCppFileTemplate.cpp"; path = "../../Source/BinaryData/jucer_NewCppFileTemplate.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| D00F311BFC3C2625C457CB9B = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; | |||
| D0F1614CC861E8E0B59B7A06 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_linux_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| D10D51A0A2D63F38B4D86A60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ResourceFile.cpp"; path = "../../Source/Project Saving/jucer_ResourceFile.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| D141433D3FE81F20490DE928 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D1F9B0E9F5D54FE48BEB46EA = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; | |||
| D253F74B7F5734984E568CA7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| D2F1CF252F7EC62B35A21CB6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| D2F80DA0946A5EE01FC016CA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D376B9B54EC944E766AFEC45 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PopupMenu.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| D4697A0232AECE5DAC5E332E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| 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"; }; | |||
| D678882D133090214AF681BC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D75EAC16FAECCC51E3669193 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D6C91E2BF537F75A80F5C1DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D780ED33573AED5AD383A036 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D782DA091AD3ECE158FC6A5F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D800DE818BEDBF4579D15B1D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; | |||
| D926E13AB5AD647A7A00F486 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| D9E59DE07A815AB303A297D9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; | |||
| D7A7F1AA9F313B0CCAAA73A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D9B077E2ECDDA94961E134D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| DC5E7FF30B01118F6DAEC38F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../../../modules/juce_core/time/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| DCCB75165B7C73A589498E87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| DD2494D5F1C081898D616AF5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| DD985A60FB76E976AF91852D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| DE5F3C9EF6BFFDE73AF9E7FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| E5D6C36496F5BC84D7213BE8 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; | |||
| E96597BBC6A98255B51B94DC = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; | |||
| 25F52316D256B4534BED16D1 = { isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Introjucer.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; | |||
| BBA6060656F685ED7FA52045 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_TreeViewTypes.h"; path = "../../Source/Project/jucer_TreeViewTypes.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| C8A229ACD244F402C57286CD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ProjectExport_MSVC.h"; path = "../../Source/Project Saving/jucer_ProjectExport_MSVC.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| C9616830BB2474066AC8C910 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "jucer_ResourceFile.h"; path = "../../Source/Project Saving/jucer_ResourceFile.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D10D51A0A2D63F38B4D86A60 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_ResourceFile.cpp"; path = "../../Source/Project Saving/jucer_ResourceFile.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| D4E56676E2EF83404EDCBA8C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp"; 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"; }; | |||
| D6C91E2BF537F75A80F5C1DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D7A7F1AA9F313B0CCAAA73A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| C90C66C5727759D5CBD5FB07 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| D2F80DA0946A5EE01FC016CA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D75EAC16FAECCC51E3669193 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D800DE818BEDBF4579D15B1D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; | |||
| D926E13AB5AD647A7A00F486 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| D9342535EA61901A1AD816C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| D95D7B49EC6C6BDCB5A1B988 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; | |||
| D9B077E2ECDDA94961E134D7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| D9E59DE07A815AB303A297D9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; | |||
| DB20268A566DABEAE3F2CBEE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| DB876F7873F42DC685A58CA7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| DCCB75165B7C73A589498E87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| DD00494140C86144306A9356 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| DD2494D5F1C081898D616AF5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| DD985A60FB76E976AF91852D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| DE40B42B57F29C650CB7F2AD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| DE5F3C9EF6BFFDE73AF9E7FC = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| DE8DF5D263F40F65581CFDE4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| DEF579B1433EB8DEE7AB50F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| DF7BB5B6B394EDEEF5F5B4B8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -719,7 +716,6 @@ | |||
| F2499004037A1C1D8FEE1FD6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| F2759373EAAC820F17409939 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; | |||
| F2C7DE572E29A3D62EFB40F8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| F2FA27430D90E92F0C9EBEDF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_FilePreviewComponent.cpp"; path = "../../Source/Application/jucer_FilePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| F406A0F41B2C7A512FDBC9E0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| F40F5C63CA1098C21B96C80F = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| F591F5E5E162D4667AC26419 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../modules/juce_core/json/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; | |||
| @@ -760,7 +756,6 @@ | |||
| 6E6140969908E7619F858740, | |||
| C7608A3967D9AB9481848F2B, | |||
| E65A820D34BF39478B7C5925, | |||
| F2FA27430D90E92F0C9EBEDF, | |||
| D526C38D581425949BA0E4AC, | |||
| F03E2BDD36E6F4F53AB767A8, | |||
| BE94248CF8069E6707174CDB, | |||
| @@ -774,7 +769,6 @@ | |||
| 93D03B2BC76998A3BDA747E8, | |||
| E7F7033084AC10FB77B0F77A, | |||
| C2080119AEDFDE0D477756FA, | |||
| 6FA01AEDB9DB70FD1EA6D380, | |||
| C7B47372A9D5970E3D9A5400, | |||
| F797071D88542C813CF7222A, | |||
| 7211101FFA28400ADBB1D47A, | |||
| @@ -1686,13 +1680,11 @@ | |||
| 357A6AA6960EF95D92929BEE, | |||
| 954A036F5DDB375DB23FFB3E, | |||
| 3EB3D569250C4BA4CA9AF578, | |||
| 9A4D477F1924C31A52AF5C79, | |||
| B1A786B525176BEE309998EA, | |||
| 95B44E6C74B1DED31DBE37EB, | |||
| AA9D0B8E23F3D87A23DE9F8A, | |||
| 244BA1BDA5FAA465EA3F9C6D, | |||
| D1A1998A202A88C617C9AB73, | |||
| 349B4C837D996E71E08657A5, | |||
| 3FCA61C401007B243E2E9035, | |||
| 5BC89E7905397ABECD25ACCD, | |||
| FBE57B26FE59319AA2E8B59D, | |||
| @@ -139,7 +139,6 @@ | |||
| <File RelativePath="..\..\Source\Application\jucer_CommonHeaders.h"/> | |||
| <File RelativePath="..\..\Source\Application\jucer_DocumentEditorComponent.cpp"/> | |||
| <File RelativePath="..\..\Source\Application\jucer_DocumentEditorComponent.h"/> | |||
| <File RelativePath="..\..\Source\Application\jucer_FilePreviewComponent.cpp"/> | |||
| <File RelativePath="..\..\Source\Application\jucer_FilePreviewComponent.h"/> | |||
| <File RelativePath="..\..\Source\jucer_Headers.h"/> | |||
| <File RelativePath="..\..\Source\Application\jucer_JuceUpdater.cpp"/> | |||
| @@ -154,7 +153,6 @@ | |||
| <File RelativePath="..\..\Source\Project\jucer_AudioPluginModule.h"/> | |||
| <File RelativePath="..\..\Source\Project\jucer_ConfigPage.cpp"/> | |||
| <File RelativePath="..\..\Source\Project\jucer_ConfigPage.h"/> | |||
| <File RelativePath="..\..\Source\Project\jucer_GroupInformationComponent.cpp"/> | |||
| <File RelativePath="..\..\Source\Project\jucer_GroupInformationComponent.h"/> | |||
| <File RelativePath="..\..\Source\Project\jucer_Module.cpp"/> | |||
| <File RelativePath="..\..\Source\Project\jucer_Module.h"/> | |||
| @@ -139,7 +139,6 @@ | |||
| <File RelativePath="..\..\Source\Application\jucer_CommonHeaders.h"/> | |||
| <File RelativePath="..\..\Source\Application\jucer_DocumentEditorComponent.cpp"/> | |||
| <File RelativePath="..\..\Source\Application\jucer_DocumentEditorComponent.h"/> | |||
| <File RelativePath="..\..\Source\Application\jucer_FilePreviewComponent.cpp"/> | |||
| <File RelativePath="..\..\Source\Application\jucer_FilePreviewComponent.h"/> | |||
| <File RelativePath="..\..\Source\jucer_Headers.h"/> | |||
| <File RelativePath="..\..\Source\Application\jucer_JuceUpdater.cpp"/> | |||
| @@ -154,7 +153,6 @@ | |||
| <File RelativePath="..\..\Source\Project\jucer_AudioPluginModule.h"/> | |||
| <File RelativePath="..\..\Source\Project\jucer_ConfigPage.cpp"/> | |||
| <File RelativePath="..\..\Source\Project\jucer_ConfigPage.h"/> | |||
| <File RelativePath="..\..\Source\Project\jucer_GroupInformationComponent.cpp"/> | |||
| <File RelativePath="..\..\Source\Project\jucer_GroupInformationComponent.h"/> | |||
| <File RelativePath="..\..\Source\Project\jucer_Module.cpp"/> | |||
| <File RelativePath="..\..\Source\Project\jucer_Module.h"/> | |||
| @@ -129,13 +129,11 @@ | |||
| <ClCompile Include="..\..\Source\Application\jucer_AppearanceSettings.cpp"/> | |||
| <ClCompile Include="..\..\Source\Application\jucer_CommandLine.cpp"/> | |||
| <ClCompile Include="..\..\Source\Application\jucer_DocumentEditorComponent.cpp"/> | |||
| <ClCompile Include="..\..\Source\Application\jucer_FilePreviewComponent.cpp"/> | |||
| <ClCompile Include="..\..\Source\Application\jucer_JuceUpdater.cpp"/> | |||
| <ClCompile Include="..\..\Source\Application\jucer_Main.cpp"/> | |||
| <ClCompile Include="..\..\Source\Application\jucer_MainWindow.cpp"/> | |||
| <ClCompile Include="..\..\Source\Application\jucer_OpenDocumentManager.cpp"/> | |||
| <ClCompile Include="..\..\Source\Project\jucer_ConfigPage.cpp"/> | |||
| <ClCompile Include="..\..\Source\Project\jucer_GroupInformationComponent.cpp"/> | |||
| <ClCompile Include="..\..\Source\Project\jucer_Module.cpp"/> | |||
| <ClCompile Include="..\..\Source\Project\jucer_NewFileWizard.cpp"/> | |||
| <ClCompile Include="..\..\Source\Project\jucer_NewProjectWizard.cpp"/> | |||
| @@ -238,9 +238,6 @@ | |||
| <ClCompile Include="..\..\Source\Application\jucer_DocumentEditorComponent.cpp"> | |||
| <Filter>The Introjucer\Application</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\Source\Application\jucer_FilePreviewComponent.cpp"> | |||
| <Filter>The Introjucer\Application</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\Source\Application\jucer_JuceUpdater.cpp"> | |||
| <Filter>The Introjucer\Application</Filter> | |||
| </ClCompile> | |||
| @@ -256,9 +253,6 @@ | |||
| <ClCompile Include="..\..\Source\Project\jucer_ConfigPage.cpp"> | |||
| <Filter>The Introjucer\Project</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\Source\Project\jucer_GroupInformationComponent.cpp"> | |||
| <Filter>The Introjucer\Project</Filter> | |||
| </ClCompile> | |||
| <ClCompile Include="..\..\Source\Project\jucer_Module.cpp"> | |||
| <Filter>The Introjucer\Project</Filter> | |||
| </ClCompile> | |||
| @@ -83,8 +83,6 @@ | |||
| resource="0" file="Source/Application/jucer_DocumentEditorComponent.cpp"/> | |||
| <FILE id="tyrTEq" name="jucer_DocumentEditorComponent.h" compile="0" | |||
| resource="0" file="Source/Application/jucer_DocumentEditorComponent.h"/> | |||
| <FILE id="jGu5u7N" name="jucer_FilePreviewComponent.cpp" compile="1" | |||
| resource="0" file="Source/Application/jucer_FilePreviewComponent.cpp"/> | |||
| <FILE id="C4MqR1U" name="jucer_FilePreviewComponent.h" compile="0" | |||
| resource="0" file="Source/Application/jucer_FilePreviewComponent.h"/> | |||
| <FILE id="qXOJtpg" name="jucer_Headers.h" compile="0" resource="0" | |||
| @@ -110,8 +108,6 @@ | |||
| file="Source/Project/jucer_ConfigPage.cpp"/> | |||
| <FILE id="tlj7HT" name="jucer_ConfigPage.h" compile="0" resource="0" | |||
| file="Source/Project/jucer_ConfigPage.h"/> | |||
| <FILE id="Wx7kXq7" name="jucer_GroupInformationComponent.cpp" compile="1" | |||
| resource="0" file="Source/Project/jucer_GroupInformationComponent.cpp"/> | |||
| <FILE id="sQjHbVN" name="jucer_GroupInformationComponent.h" compile="0" | |||
| resource="0" file="Source/Project/jucer_GroupInformationComponent.h"/> | |||
| <FILE id="MJkOAX" name="jucer_Module.cpp" compile="1" resource="0" | |||
| @@ -26,16 +26,38 @@ | |||
| #include "jucer_Application.h" | |||
| #include "jucer_AppearanceSettings.h" | |||
| namespace AppearanceColours | |||
| { | |||
| struct ColourInfo | |||
| { | |||
| const char* name; | |||
| uint32 colourID; | |||
| bool mustBeOpaque; | |||
| }; | |||
| static const ColourInfo colours[] = | |||
| { | |||
| { "Code Background", CodeEditorComponent::backgroundColourId, true }, | |||
| { "Line Number Bkgd", CodeEditorComponent::lineNumberBackgroundId, false }, | |||
| { "Line Numbers", CodeEditorComponent::lineNumberTextId, false }, | |||
| { "Plain Text", CodeEditorComponent::defaultTextColourId, false }, | |||
| { "Selected Text Bkgd", CodeEditorComponent::highlightColourId, false }, | |||
| { "Caret", CaretComponent::caretColourId, false }, | |||
| { "Main Window Bkgd", mainBackgroundColourId, true }, | |||
| { "Project Panel Bkgd", projectPanelBackgroundColourId, true }, | |||
| { "Treeview Highlight", treeviewHighlightColourId, false } | |||
| }; | |||
| } | |||
| //============================================================================== | |||
| AppearanceSettings::AppearanceSettings (const CodeEditorComponent& editor) | |||
| : settings ("COLOUR_SCHEME") | |||
| { | |||
| getColourValue ("Background") = editor.findColour (CodeEditorComponent::backgroundColourId).toString(); | |||
| getColourValue ("Line Number Bkgd") = editor.findColour (CodeEditorComponent::lineNumberBackgroundId).toString(); | |||
| getColourValue ("Line Numbers") = editor.findColour (CodeEditorComponent::lineNumberTextId).toString(); | |||
| getColourValue ("Plain Text") = editor.findColour (CodeEditorComponent::defaultTextColourId).toString(); | |||
| getColourValue ("Selected Background") = editor.findColour (CodeEditorComponent::highlightColourId).toString(); | |||
| IntrojucerLookAndFeel lf; | |||
| for (int i = 0; i < sizeof (AppearanceColours::colours) / sizeof (AppearanceColours::colours[0]); ++i) | |||
| getColourValue (AppearanceColours::colours[i].name) = lf.findColour (AppearanceColours::colours[i].colourID).toString(); | |||
| const CodeEditorComponent::ColourScheme cs (editor.getColourScheme()); | |||
| @@ -48,6 +70,8 @@ AppearanceSettings::AppearanceSettings (const CodeEditorComponent& editor) | |||
| Font f (editor.getFont()); | |||
| f.setTypefaceName (f.getTypeface()->getName()); | |||
| getCodeFontValue() = f.toString(); | |||
| settings.addListener (this); | |||
| } | |||
| bool AppearanceSettings::readFromXML (const XmlElement& xml) | |||
| @@ -97,6 +121,27 @@ StringArray AppearanceSettings::getColourNames() const | |||
| return s; | |||
| } | |||
| void AppearanceSettings::updateColourScheme() | |||
| { | |||
| applyToLookAndFeel (LookAndFeel::getDefaultLookAndFeel()); | |||
| JucerApplication::getApp().mainWindowList.sendLookAndFeelChange(); | |||
| } | |||
| void AppearanceSettings::applyToLookAndFeel (LookAndFeel& lf) const | |||
| { | |||
| for (int i = 0; i < sizeof (AppearanceColours::colours) / sizeof (AppearanceColours::colours[0]); ++i) | |||
| { | |||
| Colour col; | |||
| if (getColour (AppearanceColours::colours[i].name, col)) | |||
| { | |||
| if (AppearanceColours::colours[i].mustBeOpaque) | |||
| col = Colours::white.overlaidWith (col); | |||
| lf.setColour (AppearanceColours::colours[i].colourID, col); | |||
| } | |||
| } | |||
| } | |||
| void AppearanceSettings::applyToCodeEditor (CodeEditorComponent& editor) const | |||
| { | |||
| CodeEditorComponent::ColourScheme cs (editor.getColourScheme()); | |||
| @@ -108,20 +153,6 @@ void AppearanceSettings::applyToCodeEditor (CodeEditorComponent& editor) const | |||
| } | |||
| editor.setColourScheme (cs); | |||
| Colour col; | |||
| if (getColour ("Plain Text", col)) editor.setColour (CodeEditorComponent::defaultTextColourId, col); | |||
| if (getColour ("Selected Background", col)) editor.setColour (CodeEditorComponent::highlightColourId, col); | |||
| if (getColour ("Line Number Bkgd", col)) editor.setColour (CodeEditorComponent::lineNumberBackgroundId, col); | |||
| if (getColour ("Line Numbers", col)) editor.setColour (CodeEditorComponent::lineNumberTextId, col); | |||
| if (getColour ("Background", col)) | |||
| { | |||
| col = Colours::white.overlaidWith (col); | |||
| editor.setColour (CodeEditorComponent::backgroundColourId, col); | |||
| editor.setColour (CaretComponent::caretColourId, col.contrasting()); | |||
| } | |||
| editor.setFont (getCodeFont()); | |||
| } | |||
| @@ -375,3 +406,19 @@ Component* AppearanceSettings::createEditorWindow() | |||
| { | |||
| return new AppearanceEditor::Window(); | |||
| } | |||
| //============================================================================== | |||
| IntrojucerLookAndFeel::IntrojucerLookAndFeel() | |||
| { | |||
| setColour (mainBackgroundColourId, Colour::greyLevel (0.8f)); | |||
| setColour (projectPanelBackgroundColourId, Colour::greyLevel (0.93f)); | |||
| setColour (treeviewHighlightColourId, Colour (0x401111ee)); | |||
| } | |||
| Rectangle<int> IntrojucerLookAndFeel::getPropertyComponentContentPosition (PropertyComponent& component) | |||
| { | |||
| if (component.findParentComponentOfClass<AppearanceEditor::EditorPanel>() != nullptr) | |||
| return component.getLocalBounds().reduced (1, 1).removeFromRight (component.getWidth() / 2); | |||
| return LookAndFeel::getPropertyComponentContentPosition (component); | |||
| } | |||
| @@ -27,7 +27,7 @@ | |||
| #define __JUCER_APPEARANCESETTINGS_H_34D762C7__ | |||
| class AppearanceSettings | |||
| class AppearanceSettings : private ValueTree::Listener | |||
| { | |||
| public: | |||
| AppearanceSettings (const CodeEditorComponent& editorToCopyFrom); | |||
| @@ -36,6 +36,7 @@ public: | |||
| bool readFromXML (const XmlElement&); | |||
| bool writeToFile (const File& file) const; | |||
| void applyToLookAndFeel (LookAndFeel&) const; | |||
| void applyToCodeEditor (CodeEditorComponent& editor) const; | |||
| StringArray getColourNames() const; | |||
| @@ -48,6 +49,32 @@ public: | |||
| ValueTree settings; | |||
| static Component* createEditorWindow(); | |||
| static void intialiseLookAndFeel (LookAndFeel&); | |||
| private: | |||
| void updateColourScheme(); | |||
| void valueTreePropertyChanged (ValueTree&, const Identifier&) { updateColourScheme(); } | |||
| void valueTreeChildAdded (ValueTree&, ValueTree&) { updateColourScheme(); } | |||
| void valueTreeChildRemoved (ValueTree&, ValueTree&) { updateColourScheme(); } | |||
| void valueTreeChildOrderChanged (ValueTree&) { updateColourScheme(); } | |||
| void valueTreeParentChanged (ValueTree&) { updateColourScheme(); } | |||
| void valueTreeRedirected (ValueTree&) { updateColourScheme(); } | |||
| }; | |||
| //============================================================================== | |||
| class IntrojucerLookAndFeel : public LookAndFeel | |||
| { | |||
| public: | |||
| IntrojucerLookAndFeel(); | |||
| void drawStretchableLayoutResizerBar (Graphics& g, int /*w*/, int /*h*/, bool /*isVerticalBar*/, bool isMouseOver, bool isMouseDragging) | |||
| { | |||
| if (isMouseOver || isMouseDragging) | |||
| g.fillAll (Colours::grey.withAlpha (0.4f)); | |||
| } | |||
| Rectangle<int> getPropertyComponentContentPosition (PropertyComponent& component); | |||
| }; | |||
| @@ -44,6 +44,10 @@ public: | |||
| //============================================================================== | |||
| void initialise (const String& commandLine) | |||
| { | |||
| LookAndFeel::setDefaultLookAndFeel (&lookAndFeel); | |||
| settings.initialise(); | |||
| if (commandLine.isNotEmpty()) | |||
| { | |||
| const int appReturnCode = performCommandLine (commandLine); | |||
| @@ -92,6 +96,8 @@ public: | |||
| openDocumentManager.clear(); | |||
| commandManager = nullptr; | |||
| settings.flush(); | |||
| LookAndFeel::setDefaultLookAndFeel (nullptr); | |||
| } | |||
| //============================================================================== | |||
| @@ -439,6 +445,8 @@ public: | |||
| } | |||
| //============================================================================== | |||
| IntrojucerLookAndFeel lookAndFeel; | |||
| StoredSettings settings; | |||
| Icons icons; | |||
| @@ -48,4 +48,11 @@ const char* const sourceFileExtensions = "cpp;mm;m;c;cc;cxx"; | |||
| const char* const headerFileExtensions = "h;hpp;hxx"; | |||
| const char* const sourceOrHeaderFileExtensions = "cpp;mm;m;c;cc;cxx;h;hpp;hxx"; | |||
| enum ColourIds | |||
| { | |||
| mainBackgroundColourId = 0x2340000, | |||
| projectPanelBackgroundColourId = 0x2340001, | |||
| treeviewHighlightColourId = 0x2340002, | |||
| }; | |||
| #endif // __JUCER_COMMONHEADERS_JUCEHEADER__ | |||
| @@ -1,77 +0,0 @@ | |||
| /* | |||
| ============================================================================== | |||
| 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. | |||
| ============================================================================== | |||
| */ | |||
| #include "../jucer_Headers.h" | |||
| #include "jucer_FilePreviewComponent.h" | |||
| //============================================================================== | |||
| ItemPreviewComponent::ItemPreviewComponent (const File& file_) | |||
| : file (file_) | |||
| { | |||
| tryToLoadImage(); | |||
| } | |||
| void ItemPreviewComponent::tryToLoadImage() | |||
| { | |||
| facts.clear(); | |||
| facts.add (file.getFullPathName()); | |||
| image = Image(); | |||
| ScopedPointer <InputStream> input (file.createInputStream()); | |||
| if (input != nullptr) | |||
| { | |||
| const int64 totalSize = input->getTotalLength(); | |||
| ImageFileFormat* format = ImageFileFormat::findImageFormatForStream (*input); | |||
| input = nullptr; | |||
| String formatName; | |||
| if (format != nullptr) | |||
| formatName = " " + format->getFormatName(); | |||
| image = ImageCache::getFromFile (file); | |||
| if (image.isValid()) | |||
| facts.add (String (image.getWidth()) + " x " + String (image.getHeight()) + formatName); | |||
| if (totalSize > 0) | |||
| facts.add (File::descriptionOfSizeInBytes (totalSize)); | |||
| } | |||
| facts.removeEmptyStrings (true); | |||
| } | |||
| void ItemPreviewComponent::paint (Graphics& g) | |||
| { | |||
| g.drawImageWithin (image, 2, 22, getWidth() - 4, getHeight() - 24, | |||
| RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize, | |||
| false); | |||
| g.setFont (Font (15.0f, Font::bold)); | |||
| g.setColour (Colours::white); | |||
| g.drawMultiLineText (facts.joinIntoString ("\n"), | |||
| 10, 15, getWidth() - 16); | |||
| } | |||
| @@ -33,17 +33,58 @@ | |||
| class ItemPreviewComponent : public Component | |||
| { | |||
| public: | |||
| //============================================================================== | |||
| ItemPreviewComponent (const File& file); | |||
| void paint (Graphics& g); | |||
| ItemPreviewComponent (const File& file_) | |||
| : file (file_) | |||
| { | |||
| tryToLoadImage(); | |||
| } | |||
| void paint (Graphics& g) | |||
| { | |||
| g.drawImageWithin (image, 2, 22, getWidth() - 4, getHeight() - 24, | |||
| RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize, | |||
| false); | |||
| g.setFont (Font (14.0f, Font::bold)); | |||
| g.setColour (findColour (mainBackgroundColourId).contrasting()); | |||
| g.drawMultiLineText (facts.joinIntoString ("\n"), | |||
| 10, 15, getWidth() - 16); | |||
| } | |||
| private: | |||
| StringArray facts; | |||
| File file; | |||
| Image image; | |||
| void tryToLoadImage(); | |||
| void tryToLoadImage() | |||
| { | |||
| facts.clear(); | |||
| facts.add (file.getFullPathName()); | |||
| image = Image(); | |||
| ScopedPointer <InputStream> input (file.createInputStream()); | |||
| if (input != nullptr) | |||
| { | |||
| const int64 totalSize = input->getTotalLength(); | |||
| ImageFileFormat* format = ImageFileFormat::findImageFormatForStream (*input); | |||
| input = nullptr; | |||
| String formatName; | |||
| if (format != nullptr) | |||
| formatName = " " + format->getFormatName(); | |||
| image = ImageCache::getFromFile (file); | |||
| if (image.isValid()) | |||
| facts.add (String (image.getWidth()) + " x " + String (image.getHeight()) + formatName); | |||
| if (totalSize > 0) | |||
| facts.add (File::descriptionOfSizeInBytes (totalSize)); | |||
| } | |||
| facts.removeEmptyStrings (true); | |||
| } | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ItemPreviewComponent); | |||
| }; | |||
| @@ -486,3 +486,9 @@ void MainWindowList::reopenLastProjects() | |||
| for (int i = 0; i < projects.size(); ++ i) | |||
| openFile (projects.getReference(i)); | |||
| } | |||
| void MainWindowList::sendLookAndFeelChange() | |||
| { | |||
| for (int i = windows.size(); --i >= 0;) | |||
| windows.getUnchecked(i)->sendLookAndFeelChange(); | |||
| } | |||
| @@ -114,6 +114,8 @@ public: | |||
| void avoidSuperimposedWindows (MainWindow*); | |||
| void sendLookAndFeelChange(); | |||
| OwnedArray<MainWindow> windows; | |||
| private: | |||
| @@ -74,7 +74,7 @@ namespace ProjectSettingsTreeClasses | |||
| String getRenamingName() const { return getDisplayName(); } | |||
| String getDisplayName() const { return config->getName(); } | |||
| void setName (const String&) {} | |||
| Icon getIcon() const { return Icon (getIcons().config, Colours::darkgreen); } | |||
| Icon getIcon() const { return Icon (getIcons().config, getContrastingColour (Colours::green, 0.5f)); } | |||
| void showDocument() { showSettingsPage (new SettingsComp (config, exporterName)); } | |||
| void itemOpennessChanged (bool) {} | |||
| @@ -175,7 +175,7 @@ namespace ProjectSettingsTreeClasses | |||
| String getDisplayName() const { return exporter->getName(); } | |||
| void setName (const String&) {} | |||
| bool isMissing() { return false; } | |||
| Icon getIcon() const { return Icon (getIcons().exporter, Colours::darkgrey); } | |||
| Icon getIcon() const { return Icon (getIcons().exporter, getContrastingColour (0.5f)); } | |||
| void showDocument() { showSettingsPage (new SettingsComp (exporter)); } | |||
| void deleteItem() | |||
| @@ -297,7 +297,7 @@ namespace ProjectSettingsTreeClasses | |||
| String getDisplayName() const { return "Modules"; } | |||
| void setName (const String&) {} | |||
| bool isMissing() { return false; } | |||
| Icon getIcon() const { return Icon (getIcons().graph, Colours::darkred); } | |||
| Icon getIcon() const { return Icon (getIcons().graph, getContrastingColour (Colours::red, 0.5f)); } | |||
| void showDocument() { showSettingsPage (new SettingsComp (project)); } | |||
| private: | |||
| @@ -349,7 +349,7 @@ namespace ProjectSettingsTreeClasses | |||
| String getDisplayName() const { return project.getTitle(); } | |||
| void setName (const String&) {} | |||
| bool isMissing() { return false; } | |||
| Icon getIcon() const { return project.getMainGroup().getIcon(); } | |||
| Icon getIcon() const { return project.getMainGroup().getIcon().withContrastingColourTo (getBackgroundColour()); } | |||
| void showDocument() { showSettingsPage (new SettingsComp (project)); } | |||
| bool canBeSelected() const { return true; } | |||
| bool mightContainSubItems() { return project.getNumExporters() > 0; } | |||
| @@ -1,155 +0,0 @@ | |||
| /* | |||
| ============================================================================== | |||
| 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. | |||
| ============================================================================== | |||
| */ | |||
| #include "jucer_GroupInformationComponent.h" | |||
| //============================================================================== | |||
| GroupInformationComponent::GroupInformationComponent (const Project::Item& item_) | |||
| : item (item_) | |||
| { | |||
| list.setModel (this); | |||
| addAndMakeVisible (&list); | |||
| list.updateContent(); | |||
| list.setRowHeight (20); | |||
| item.state.addListener (this); | |||
| } | |||
| GroupInformationComponent::~GroupInformationComponent() | |||
| { | |||
| item.state.removeListener (this); | |||
| } | |||
| void GroupInformationComponent::resized() | |||
| { | |||
| list.setSize (getWidth(), getHeight()); | |||
| } | |||
| int GroupInformationComponent::getNumRows() | |||
| { | |||
| return item.getNumChildren(); | |||
| } | |||
| void GroupInformationComponent::paintListBoxItem (int rowNumber, Graphics& g, int width, int height, bool rowIsSelected) | |||
| { | |||
| } | |||
| //============================================================================== | |||
| void GroupInformationComponent::valueTreePropertyChanged (ValueTree& treeWhosePropertyHasChanged, const Identifier& property) | |||
| { | |||
| list.updateContent(); | |||
| } | |||
| void GroupInformationComponent::valueTreeChildAdded (ValueTree&, ValueTree&) | |||
| { | |||
| list.updateContent(); | |||
| } | |||
| void GroupInformationComponent::valueTreeChildRemoved (ValueTree&, ValueTree&) | |||
| { | |||
| list.updateContent(); | |||
| } | |||
| void GroupInformationComponent::valueTreeChildOrderChanged (ValueTree&) | |||
| { | |||
| list.updateContent(); | |||
| } | |||
| void GroupInformationComponent::valueTreeParentChanged (ValueTree&) | |||
| { | |||
| list.updateContent(); | |||
| } | |||
| //============================================================================== | |||
| class FileOptionComponent : public Component | |||
| { | |||
| public: | |||
| FileOptionComponent (const Project::Item& item_) | |||
| : item (item_), | |||
| compileButton ("Compile"), | |||
| resourceButton ("Add to Binary Resources") | |||
| { | |||
| if (item.isFile()) | |||
| { | |||
| addAndMakeVisible (&compileButton); | |||
| compileButton.getToggleStateValue().referTo (item.getShouldCompileValue()); | |||
| addAndMakeVisible (&resourceButton); | |||
| resourceButton.getToggleStateValue().referTo (item.getShouldAddToResourceValue()); | |||
| } | |||
| } | |||
| void paint (Graphics& g) | |||
| { | |||
| int x = getHeight() + 6; | |||
| item.getIcon().draw (g, Rectangle<float> (2.0f, 2.0f, x - 4.0f, getHeight() - 4.0f)); | |||
| g.setColour (Colours::black); | |||
| g.setFont (getHeight() * 0.6f); | |||
| const int x2 = compileButton.isVisible() ? compileButton.getX() - 4 | |||
| : getWidth() - 4; | |||
| g.drawText (item.getName(), x, 0, x2 - x, getHeight(), Justification::centredLeft, true); | |||
| g.setColour (Colours::lightgrey); | |||
| g.fillRect (0, getHeight() - 1, getWidth(), 1); | |||
| } | |||
| void resized() | |||
| { | |||
| int w = 180; | |||
| resourceButton.setBounds (getWidth() - w, 1, w, getHeight() - 2); | |||
| w = 100; | |||
| compileButton.setBounds (resourceButton.getX() - w, 1, w, getHeight() - 2); | |||
| } | |||
| Project::Item item; | |||
| private: | |||
| ToggleButton compileButton, resourceButton; | |||
| }; | |||
| Component* GroupInformationComponent::refreshComponentForRow (int rowNumber, bool isRowSelected, Component* existingComponentToUpdate) | |||
| { | |||
| if (rowNumber < getNumRows()) | |||
| { | |||
| Project::Item child (item.getChild (rowNumber)); | |||
| if (existingComponentToUpdate == nullptr | |||
| || dynamic_cast <FileOptionComponent*> (existingComponentToUpdate)->item != child) | |||
| { | |||
| delete existingComponentToUpdate; | |||
| existingComponentToUpdate = new FileOptionComponent (child); | |||
| } | |||
| } | |||
| else | |||
| { | |||
| deleteAndZero (existingComponentToUpdate); | |||
| } | |||
| return existingComponentToUpdate; | |||
| } | |||
| @@ -37,27 +37,127 @@ class GroupInformationComponent : public Component, | |||
| { | |||
| public: | |||
| //============================================================================== | |||
| GroupInformationComponent (const Project::Item& item_); | |||
| ~GroupInformationComponent(); | |||
| GroupInformationComponent (const Project::Item& item_) | |||
| : item (item_) | |||
| { | |||
| list.setModel (this); | |||
| list.setColour (ListBox::backgroundColourId, Colours::transparentBlack); | |||
| addAndMakeVisible (&list); | |||
| list.updateContent(); | |||
| list.setRowHeight (20); | |||
| item.state.addListener (this); | |||
| lookAndFeelChanged(); | |||
| } | |||
| ~GroupInformationComponent() | |||
| { | |||
| item.state.removeListener (this); | |||
| } | |||
| //============================================================================== | |||
| void resized(); | |||
| int getNumRows(); | |||
| void paintListBoxItem (int rowNumber, Graphics& g, int width, int height, bool rowIsSelected); | |||
| Component* refreshComponentForRow (int rowNumber, bool isRowSelected, Component* existingComponentToUpdate); | |||
| void paint (Graphics& g) | |||
| { | |||
| g.fillAll (findColour (projectPanelBackgroundColourId)); | |||
| } | |||
| void resized() | |||
| { | |||
| list.setBounds (getLocalBounds().reduced (4, 2)); | |||
| } | |||
| int getNumRows() | |||
| { | |||
| return item.getNumChildren(); | |||
| } | |||
| void paintListBoxItem (int rowNumber, Graphics& g, int width, int height, bool rowIsSelected) | |||
| { | |||
| g.setColour (Colours::white.withAlpha (0.4f)); | |||
| g.fillRect (0, 0, width, height - 1); | |||
| } | |||
| Component* refreshComponentForRow (int rowNumber, bool isRowSelected, Component* existingComponentToUpdate) | |||
| { | |||
| if (rowNumber < getNumRows()) | |||
| { | |||
| Project::Item child (item.getChild (rowNumber)); | |||
| if (existingComponentToUpdate == nullptr | |||
| || dynamic_cast <FileOptionComponent*> (existingComponentToUpdate)->item != child) | |||
| { | |||
| delete existingComponentToUpdate; | |||
| existingComponentToUpdate = new FileOptionComponent (child); | |||
| } | |||
| } | |||
| else | |||
| { | |||
| deleteAndZero (existingComponentToUpdate); | |||
| } | |||
| return existingComponentToUpdate; | |||
| } | |||
| //============================================================================== | |||
| void valueTreePropertyChanged (ValueTree& treeWhosePropertyHasChanged, const Identifier& property); | |||
| void valueTreeChildAdded (ValueTree& parentTree, ValueTree& childWhichHasBeenAdded); | |||
| void valueTreeChildRemoved (ValueTree& parentTree, ValueTree& childWhichHasBeenRemoved); | |||
| void valueTreeChildOrderChanged (ValueTree& parentTree); | |||
| void valueTreeParentChanged (ValueTree& treeWhoseParentHasChanged); | |||
| void valueTreePropertyChanged (ValueTree&, const Identifier&) { list.updateContent(); } | |||
| void valueTreeChildAdded (ValueTree&, ValueTree&) { list.updateContent(); } | |||
| void valueTreeChildRemoved (ValueTree&, ValueTree&) { list.updateContent(); } | |||
| void valueTreeChildOrderChanged (ValueTree&) { list.updateContent(); } | |||
| void valueTreeParentChanged (ValueTree&) { list.updateContent(); } | |||
| private: | |||
| Project::Item item; | |||
| ListBox list; | |||
| //============================================================================== | |||
| class FileOptionComponent : public Component | |||
| { | |||
| public: | |||
| FileOptionComponent (const Project::Item& item_) | |||
| : item (item_), | |||
| compileButton ("Compile"), | |||
| resourceButton ("Add to Binary Resources") | |||
| { | |||
| if (item.isFile()) | |||
| { | |||
| addAndMakeVisible (&compileButton); | |||
| compileButton.getToggleStateValue().referTo (item.getShouldCompileValue()); | |||
| addAndMakeVisible (&resourceButton); | |||
| resourceButton.getToggleStateValue().referTo (item.getShouldAddToResourceValue()); | |||
| } | |||
| } | |||
| void paint (Graphics& g) | |||
| { | |||
| int x = getHeight() + 6; | |||
| item.getIcon().withContrastingColourTo (Colours::grey) | |||
| .draw (g, Rectangle<float> (2.0f, 2.0f, x - 4.0f, getHeight() - 4.0f)); | |||
| g.setColour (Colours::black); | |||
| g.setFont (getHeight() * 0.6f); | |||
| const int x2 = compileButton.isVisible() ? compileButton.getX() - 4 | |||
| : getWidth() - 4; | |||
| g.drawText (item.getName(), x, 0, x2 - x, getHeight(), Justification::centredLeft, true); | |||
| } | |||
| void resized() | |||
| { | |||
| int w = 180; | |||
| resourceButton.setBounds (getWidth() - w, 1, w, getHeight() - 2); | |||
| w = 100; | |||
| compileButton.setBounds (resourceButton.getX() - w, 1, w, getHeight() - 2); | |||
| } | |||
| Project::Item item; | |||
| private: | |||
| ToggleButton compileButton, resourceButton; | |||
| }; | |||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (GroupInformationComponent); | |||
| }; | |||
| @@ -96,10 +96,16 @@ ProjectContentComponent::ProjectContentComponent() | |||
| treeSizeConstrainer.setMinimumWidth (100); | |||
| treeSizeConstrainer.setMaximumWidth (500); | |||
| treeViewTabs.setOutline (0); | |||
| JucerApplication::getApp().openDocumentManager.addListener (this); | |||
| } | |||
| ProjectContentComponent::~ProjectContentComponent() | |||
| { | |||
| JucerApplication::getApp().openDocumentManager.removeListener (this); | |||
| setProject (nullptr); | |||
| contentView = nullptr; | |||
| removeChildComponent (&bubbleMessage); | |||
| @@ -108,7 +114,7 @@ ProjectContentComponent::~ProjectContentComponent() | |||
| void ProjectContentComponent::paint (Graphics& g) | |||
| { | |||
| g.fillAll (Colour::greyLevel (0.8f)); | |||
| g.fillAll (findColour (mainBackgroundColourId)); | |||
| } | |||
| void ProjectContentComponent::resized() | |||
| @@ -124,6 +130,16 @@ void ProjectContentComponent::resized() | |||
| contentView->setBounds (r); | |||
| } | |||
| void ProjectContentComponent::lookAndFeelChanged() | |||
| { | |||
| const Colour tabColour (findColour (projectPanelBackgroundColourId)); | |||
| for (int i = treeViewTabs.getNumTabs(); --i >= 0;) | |||
| treeViewTabs.setTabBackgroundColour (i, tabColour); | |||
| repaint(); | |||
| } | |||
| void ProjectContentComponent::childBoundsChanged (Component* child) | |||
| { | |||
| if (child == &treeViewTabs) | |||
| @@ -191,8 +207,10 @@ void ProjectContentComponent::setProject (Project* newProject) | |||
| void ProjectContentComponent::createProjectTabs() | |||
| { | |||
| jassert (project != nullptr); | |||
| treeViewTabs.addTab ("Files", Colour::greyLevel (0.93f), new FileTreeTab (*project), true); | |||
| treeViewTabs.addTab ("Config", Colour::greyLevel (0.93f), new ConfigTreeTab (*project), true); | |||
| const Colour tabColour (findColour (projectPanelBackgroundColourId)); | |||
| treeViewTabs.addTab ("Files", tabColour, new FileTreeTab (*project), true); | |||
| treeViewTabs.addTab ("Config", tabColour, new ConfigTreeTab (*project), true); | |||
| } | |||
| TreeView* ProjectContentComponent::getFilesTreeView() const | |||
| @@ -243,6 +261,11 @@ void ProjectContentComponent::reloadLastOpenDocuments() | |||
| } | |||
| } | |||
| void ProjectContentComponent::documentAboutToClose (OpenDocumentManager::Document* document) | |||
| { | |||
| hideDocument (document); | |||
| } | |||
| void ProjectContentComponent::changeListenerCallback (ChangeBroadcaster*) | |||
| { | |||
| updateMissingFileStatuses(); | |||
| @@ -35,7 +35,8 @@ class ProjectTreeViewBase; | |||
| */ | |||
| class ProjectContentComponent : public Component, | |||
| public ApplicationCommandTarget, | |||
| private ChangeListener | |||
| private ChangeListener, | |||
| private OpenDocumentManager::DocumentCloseListener | |||
| { | |||
| public: | |||
| //============================================================================== | |||
| @@ -78,6 +79,7 @@ public: | |||
| void paint (Graphics& g); | |||
| void resized(); | |||
| void childBoundsChanged (Component* child); | |||
| void lookAndFeelChanged(); | |||
| protected: | |||
| Project* project; | |||
| @@ -91,6 +93,7 @@ protected: | |||
| ComponentBoundsConstrainer treeSizeConstrainer; | |||
| BubbleMessageComponent bubbleMessage; | |||
| void documentAboutToClose (OpenDocumentManager::Document*); | |||
| void changeListenerCallback (ChangeBroadcaster*); | |||
| void updateMainWindowTitle(); | |||
| bool reinvokeCommandAfterClosingPropertyEditors (const InvocationInfo&); | |||
| @@ -101,7 +101,8 @@ protected: | |||
| //============================================================================== | |||
| void treeChildrenChanged (const ValueTree& parentTree); | |||
| virtual ProjectTreeViewBase* createSubItem (const Project::Item& node) = 0; | |||
| Icon getIcon() const { return item.getIcon(); } | |||
| Icon getIcon() const { return item.getIcon().withContrastingColourTo (getBackgroundColour()); } | |||
| //============================================================================== | |||
| void triggerAsyncRename (const Project::Item& itemToRename); | |||
| @@ -49,7 +49,7 @@ Font JucerTreeViewBase::getFont() const | |||
| void JucerTreeViewBase::paintItem (Graphics& g, int width, int height) | |||
| { | |||
| if (isSelected()) | |||
| g.fillAll (Colour (0x401111ee)); | |||
| g.fillAll (getOwnerView()->findColour (treeviewHighlightColourId)); | |||
| } | |||
| float JucerTreeViewBase::getIconSize() const | |||
| @@ -66,14 +66,35 @@ void JucerTreeViewBase::paintOpenCloseButton (Graphics& g, int width, int height | |||
| else | |||
| p.addTriangle (width * 0.25f, height * 0.25f, width * 0.8f, height * 0.5f, width * 0.25f, height * 0.75f); | |||
| g.setColour (Colours::lightgrey); | |||
| g.setColour (getContrastingColour (0.3f)); | |||
| g.fillPath (p); | |||
| } | |||
| Colour JucerTreeViewBase::getBackgroundColour() const | |||
| { | |||
| Colour background (getOwnerView()->findColour (projectPanelBackgroundColourId)); | |||
| if (isSelected()) | |||
| background = background.overlaidWith (getOwnerView()->findColour (treeviewHighlightColourId)); | |||
| return background; | |||
| } | |||
| Colour JucerTreeViewBase::getContrastingColour (float contrast) const | |||
| { | |||
| return getBackgroundColour().contrasting (contrast); | |||
| } | |||
| Colour JucerTreeViewBase::getContrastingColour (const Colour& target, float minContrast) const | |||
| { | |||
| return getBackgroundColour().contrasting (target, minContrast); | |||
| } | |||
| void JucerTreeViewBase::paintContent (Graphics& g, const Rectangle<int>& area) | |||
| { | |||
| g.setFont (getFont()); | |||
| g.setColour (isMissing() ? Colours::red : Colours::black); | |||
| g.setColour (isMissing() ? getContrastingColour (Colours::red, 0.8f) | |||
| : getContrastingColour (0.8f)); | |||
| g.drawFittedText (getDisplayName(), | |||
| area.getX(), area.getY(), area.getWidth(), area.getHeight(), | |||
| @@ -93,6 +93,10 @@ protected: | |||
| ProjectContentComponent* getProjectContentComponent() const; | |||
| virtual void addSubItems() {} | |||
| Colour getBackgroundColour() const; | |||
| Colour getContrastingColour (float contrast) const; | |||
| Colour getContrastingColour (const Colour& targetColour, float minContrast) const; | |||
| private: | |||
| class ItemSelectionTimer; | |||
| friend class ItemSelectionTimer; | |||
| @@ -49,6 +49,15 @@ static AppearanceSettings getDefaultScheme() | |||
| //============================================================================== | |||
| StoredSettings::StoredSettings() | |||
| : appearance (getDefaultScheme()) | |||
| { | |||
| } | |||
| StoredSettings::~StoredSettings() | |||
| { | |||
| flush(); | |||
| } | |||
| void StoredSettings::initialise() | |||
| { | |||
| reload(); | |||
| @@ -58,11 +67,6 @@ StoredSettings::StoredSettings() | |||
| appearance.writeToFile (defaultSchemeFile); | |||
| } | |||
| StoredSettings::~StoredSettings() | |||
| { | |||
| flush(); | |||
| } | |||
| PropertiesFile& StoredSettings::getProps() | |||
| { | |||
| jassert (props != nullptr); | |||
| @@ -36,6 +36,8 @@ public: | |||
| StoredSettings(); | |||
| ~StoredSettings(); | |||
| void initialise(); | |||
| PropertiesFile& getProps(); | |||
| void flush(); | |||
| void reload(); | |||