| @@ -177,6 +177,7 @@ OBJECTS := \ | |||||
| $(OBJDIR)/juce_MultiDocumentPanel_50e05aac.o \ | $(OBJDIR)/juce_MultiDocumentPanel_50e05aac.o \ | ||||
| $(OBJDIR)/juce_ResizableBorderComponent_7f4f2182.o \ | $(OBJDIR)/juce_ResizableBorderComponent_7f4f2182.o \ | ||||
| $(OBJDIR)/juce_ResizableCornerComponent_1cac2df9.o \ | $(OBJDIR)/juce_ResizableCornerComponent_1cac2df9.o \ | ||||
| $(OBJDIR)/juce_ResizableEdgeComponent_b9c9291.o \ | |||||
| $(OBJDIR)/juce_ScrollBar_89666ad4.o \ | $(OBJDIR)/juce_ScrollBar_89666ad4.o \ | ||||
| $(OBJDIR)/juce_StretchableLayoutManager_6bf5d800.o \ | $(OBJDIR)/juce_StretchableLayoutManager_6bf5d800.o \ | ||||
| $(OBJDIR)/juce_StretchableLayoutResizerBar_a720084c.o \ | $(OBJDIR)/juce_StretchableLayoutResizerBar_a720084c.o \ | ||||
| @@ -1071,6 +1072,11 @@ $(OBJDIR)/juce_ResizableCornerComponent_1cac2df9.o: ../../src/gui/components/lay | |||||
| @echo "Compiling juce_ResizableCornerComponent.cpp" | @echo "Compiling juce_ResizableCornerComponent.cpp" | ||||
| @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" | @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" | ||||
| $(OBJDIR)/juce_ResizableEdgeComponent_b9c9291.o: ../../src/gui/components/layout/juce_ResizableEdgeComponent.cpp | |||||
| -@mkdir -p $(OBJDIR) | |||||
| @echo "Compiling juce_ResizableEdgeComponent.cpp" | |||||
| @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" | |||||
| $(OBJDIR)/juce_ScrollBar_89666ad4.o: ../../src/gui/components/layout/juce_ScrollBar.cpp | $(OBJDIR)/juce_ScrollBar_89666ad4.o: ../../src/gui/components/layout/juce_ScrollBar.cpp | ||||
| -@mkdir -p $(OBJDIR) | -@mkdir -p $(OBJDIR) | ||||
| @echo "Compiling juce_ScrollBar.cpp" | @echo "Compiling juce_ScrollBar.cpp" | ||||
| @@ -146,6 +146,7 @@ | |||||
| F5F3F25D9F377128DC74D95B = { isa = PBXBuildFile; fileRef = FF046140CCF1EDB0DFF80178; }; | F5F3F25D9F377128DC74D95B = { isa = PBXBuildFile; fileRef = FF046140CCF1EDB0DFF80178; }; | ||||
| C64A2BF05224582134872415 = { isa = PBXBuildFile; fileRef = A95F42C5CB0C2E5052B31568; }; | C64A2BF05224582134872415 = { isa = PBXBuildFile; fileRef = A95F42C5CB0C2E5052B31568; }; | ||||
| 0A9C9486A6B31F21B1472D2B = { isa = PBXBuildFile; fileRef = A31221E2A50CCE9DF06B5F4B; }; | 0A9C9486A6B31F21B1472D2B = { isa = PBXBuildFile; fileRef = A31221E2A50CCE9DF06B5F4B; }; | ||||
| ED9F9A6CB4F8BB7FEA5384B7 = { isa = PBXBuildFile; fileRef = 3D8B0E86C98E2EE49AE868C8; }; | |||||
| DE0BAD16BD5A6568EB4D228B = { isa = PBXBuildFile; fileRef = B116FEC4D544DB8E38CB571E; }; | DE0BAD16BD5A6568EB4D228B = { isa = PBXBuildFile; fileRef = B116FEC4D544DB8E38CB571E; }; | ||||
| AF6FEC311B9FDA112CEEBE03 = { isa = PBXBuildFile; fileRef = F1F65C9E7394E04E073A57A4; }; | AF6FEC311B9FDA112CEEBE03 = { isa = PBXBuildFile; fileRef = F1F65C9E7394E04E073A57A4; }; | ||||
| 3795ECCE9D98F872F5BCAE64 = { isa = PBXBuildFile; fileRef = 993C90B10202DA78FA31CC58; }; | 3795ECCE9D98F872F5BCAE64 = { isa = PBXBuildFile; fileRef = 993C90B10202DA78FA31CC58; }; | ||||
| @@ -691,6 +692,8 @@ | |||||
| 600B2FDBBBE812784CB49A69 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableBorderComponent.h; path = ../../src/gui/components/layout/juce_ResizableBorderComponent.h; sourceTree = SOURCE_ROOT; }; | 600B2FDBBBE812784CB49A69 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableBorderComponent.h; path = ../../src/gui/components/layout/juce_ResizableBorderComponent.h; sourceTree = SOURCE_ROOT; }; | ||||
| A31221E2A50CCE9DF06B5F4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResizableCornerComponent.cpp; path = ../../src/gui/components/layout/juce_ResizableCornerComponent.cpp; sourceTree = SOURCE_ROOT; }; | A31221E2A50CCE9DF06B5F4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResizableCornerComponent.cpp; path = ../../src/gui/components/layout/juce_ResizableCornerComponent.cpp; sourceTree = SOURCE_ROOT; }; | ||||
| CB54AC3D311C44A1F3B463A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableCornerComponent.h; path = ../../src/gui/components/layout/juce_ResizableCornerComponent.h; sourceTree = SOURCE_ROOT; }; | CB54AC3D311C44A1F3B463A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableCornerComponent.h; path = ../../src/gui/components/layout/juce_ResizableCornerComponent.h; sourceTree = SOURCE_ROOT; }; | ||||
| 3D8B0E86C98E2EE49AE868C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResizableEdgeComponent.cpp; path = ../../src/gui/components/layout/juce_ResizableEdgeComponent.cpp; sourceTree = SOURCE_ROOT; }; | |||||
| 238965266F88730956D776DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableEdgeComponent.h; path = ../../src/gui/components/layout/juce_ResizableEdgeComponent.h; sourceTree = SOURCE_ROOT; }; | |||||
| B116FEC4D544DB8E38CB571E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ScrollBar.cpp; path = ../../src/gui/components/layout/juce_ScrollBar.cpp; sourceTree = SOURCE_ROOT; }; | B116FEC4D544DB8E38CB571E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ScrollBar.cpp; path = ../../src/gui/components/layout/juce_ScrollBar.cpp; sourceTree = SOURCE_ROOT; }; | ||||
| 797C94BB7F42CBBAACCFFB87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScrollBar.h; path = ../../src/gui/components/layout/juce_ScrollBar.h; sourceTree = SOURCE_ROOT; }; | 797C94BB7F42CBBAACCFFB87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScrollBar.h; path = ../../src/gui/components/layout/juce_ScrollBar.h; sourceTree = SOURCE_ROOT; }; | ||||
| F1F65C9E7394E04E073A57A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StretchableLayoutManager.cpp; path = ../../src/gui/components/layout/juce_StretchableLayoutManager.cpp; sourceTree = SOURCE_ROOT; }; | F1F65C9E7394E04E073A57A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StretchableLayoutManager.cpp; path = ../../src/gui/components/layout/juce_StretchableLayoutManager.cpp; sourceTree = SOURCE_ROOT; }; | ||||
| @@ -933,6 +936,7 @@ | |||||
| 341631A7E86BF1C0E49093C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Memory.h; path = ../../src/memory/juce_Memory.h; sourceTree = SOURCE_ROOT; }; | 341631A7E86BF1C0E49093C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Memory.h; path = ../../src/memory/juce_Memory.h; sourceTree = SOURCE_ROOT; }; | ||||
| AD655AA04981173716022D8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MemoryBlock.cpp; path = ../../src/memory/juce_MemoryBlock.cpp; sourceTree = SOURCE_ROOT; }; | AD655AA04981173716022D8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MemoryBlock.cpp; path = ../../src/memory/juce_MemoryBlock.cpp; sourceTree = SOURCE_ROOT; }; | ||||
| F1D085B5F12E814BF1D5C395 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryBlock.h; path = ../../src/memory/juce_MemoryBlock.h; sourceTree = SOURCE_ROOT; }; | F1D085B5F12E814BF1D5C395 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryBlock.h; path = ../../src/memory/juce_MemoryBlock.h; sourceTree = SOURCE_ROOT; }; | ||||
| 58654C2630387C4A336A5BFB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OptionalScopedPointer.h; path = ../../src/memory/juce_OptionalScopedPointer.h; sourceTree = SOURCE_ROOT; }; | |||||
| 524A70C9F23954F8F2A3F99B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedObject.h; path = ../../src/memory/juce_ReferenceCountedObject.h; sourceTree = SOURCE_ROOT; }; | 524A70C9F23954F8F2A3F99B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedObject.h; path = ../../src/memory/juce_ReferenceCountedObject.h; sourceTree = SOURCE_ROOT; }; | ||||
| E05812E3CC31875A202D6B30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedPointer.h; path = ../../src/memory/juce_ScopedPointer.h; sourceTree = SOURCE_ROOT; }; | E05812E3CC31875A202D6B30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedPointer.h; path = ../../src/memory/juce_ScopedPointer.h; sourceTree = SOURCE_ROOT; }; | ||||
| 224C989BF83B6EA867814BFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WeakReference.h; path = ../../src/memory/juce_WeakReference.h; sourceTree = SOURCE_ROOT; }; | 224C989BF83B6EA867814BFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WeakReference.h; path = ../../src/memory/juce_WeakReference.h; sourceTree = SOURCE_ROOT; }; | ||||
| @@ -1448,6 +1452,8 @@ | |||||
| 600B2FDBBBE812784CB49A69, | 600B2FDBBBE812784CB49A69, | ||||
| A31221E2A50CCE9DF06B5F4B, | A31221E2A50CCE9DF06B5F4B, | ||||
| CB54AC3D311C44A1F3B463A5, | CB54AC3D311C44A1F3B463A5, | ||||
| 3D8B0E86C98E2EE49AE868C8, | |||||
| 238965266F88730956D776DB, | |||||
| B116FEC4D544DB8E38CB571E, | B116FEC4D544DB8E38CB571E, | ||||
| 797C94BB7F42CBBAACCFFB87, | 797C94BB7F42CBBAACCFFB87, | ||||
| F1F65C9E7394E04E073A57A4, | F1F65C9E7394E04E073A57A4, | ||||
| @@ -1748,6 +1754,7 @@ | |||||
| 341631A7E86BF1C0E49093C6, | 341631A7E86BF1C0E49093C6, | ||||
| AD655AA04981173716022D8D, | AD655AA04981173716022D8D, | ||||
| F1D085B5F12E814BF1D5C395, | F1D085B5F12E814BF1D5C395, | ||||
| 58654C2630387C4A336A5BFB, | |||||
| 524A70C9F23954F8F2A3F99B, | 524A70C9F23954F8F2A3F99B, | ||||
| E05812E3CC31875A202D6B30, | E05812E3CC31875A202D6B30, | ||||
| 224C989BF83B6EA867814BFF ); name = memory; sourceTree = "<group>"; }; | 224C989BF83B6EA867814BFF ); name = memory; sourceTree = "<group>"; }; | ||||
| @@ -2156,6 +2163,7 @@ | |||||
| F5F3F25D9F377128DC74D95B, | F5F3F25D9F377128DC74D95B, | ||||
| C64A2BF05224582134872415, | C64A2BF05224582134872415, | ||||
| 0A9C9486A6B31F21B1472D2B, | 0A9C9486A6B31F21B1472D2B, | ||||
| ED9F9A6CB4F8BB7FEA5384B7, | |||||
| DE0BAD16BD5A6568EB4D228B, | DE0BAD16BD5A6568EB4D228B, | ||||
| AF6FEC311B9FDA112CEEBE03, | AF6FEC311B9FDA112CEEBE03, | ||||
| 3795ECCE9D98F872F5BCAE64, | 3795ECCE9D98F872F5BCAE64, | ||||
| @@ -555,6 +555,8 @@ | |||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableBorderComponent.h"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ResizableBorderComponent.h"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableCornerComponent.cpp"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ResizableCornerComponent.cpp"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableCornerComponent.h"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ResizableCornerComponent.h"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableEdgeComponent.cpp"/> | |||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableEdgeComponent.h"/> | |||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ScrollBar.cpp"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ScrollBar.cpp"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ScrollBar.h"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ScrollBar.h"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_StretchableLayoutManager.cpp"/> | <File RelativePath="..\..\src\gui\components\layout\juce_StretchableLayoutManager.cpp"/> | ||||
| @@ -555,6 +555,8 @@ | |||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableBorderComponent.h"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ResizableBorderComponent.h"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableCornerComponent.cpp"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ResizableCornerComponent.cpp"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableCornerComponent.h"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ResizableCornerComponent.h"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableEdgeComponent.cpp"/> | |||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableEdgeComponent.h"/> | |||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ScrollBar.cpp"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ScrollBar.cpp"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ScrollBar.h"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ScrollBar.h"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_StretchableLayoutManager.cpp"/> | <File RelativePath="..\..\src\gui\components\layout\juce_StretchableLayoutManager.cpp"/> | ||||
| @@ -557,6 +557,8 @@ | |||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableBorderComponent.h"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ResizableBorderComponent.h"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableCornerComponent.cpp"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ResizableCornerComponent.cpp"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableCornerComponent.h"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ResizableCornerComponent.h"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableEdgeComponent.cpp"/> | |||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ResizableEdgeComponent.h"/> | |||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ScrollBar.cpp"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ScrollBar.cpp"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_ScrollBar.h"/> | <File RelativePath="..\..\src\gui\components\layout\juce_ScrollBar.h"/> | ||||
| <File RelativePath="..\..\src\gui\components\layout\juce_StretchableLayoutManager.cpp"/> | <File RelativePath="..\..\src\gui\components\layout\juce_StretchableLayoutManager.cpp"/> | ||||
| @@ -260,6 +260,7 @@ | |||||
| <ClCompile Include="..\..\src\gui\components\layout\juce_MultiDocumentPanel.cpp"/> | <ClCompile Include="..\..\src\gui\components\layout\juce_MultiDocumentPanel.cpp"/> | ||||
| <ClCompile Include="..\..\src\gui\components\layout\juce_ResizableBorderComponent.cpp"/> | <ClCompile Include="..\..\src\gui\components\layout\juce_ResizableBorderComponent.cpp"/> | ||||
| <ClCompile Include="..\..\src\gui\components\layout\juce_ResizableCornerComponent.cpp"/> | <ClCompile Include="..\..\src\gui\components\layout\juce_ResizableCornerComponent.cpp"/> | ||||
| <ClCompile Include="..\..\src\gui\components\layout\juce_ResizableEdgeComponent.cpp"/> | |||||
| <ClCompile Include="..\..\src\gui\components\layout\juce_ScrollBar.cpp"/> | <ClCompile Include="..\..\src\gui\components\layout\juce_ScrollBar.cpp"/> | ||||
| <ClCompile Include="..\..\src\gui\components\layout\juce_StretchableLayoutManager.cpp"/> | <ClCompile Include="..\..\src\gui\components\layout\juce_StretchableLayoutManager.cpp"/> | ||||
| <ClCompile Include="..\..\src\gui\components\layout\juce_StretchableLayoutResizerBar.cpp"/> | <ClCompile Include="..\..\src\gui\components\layout\juce_StretchableLayoutResizerBar.cpp"/> | ||||
| @@ -629,6 +630,7 @@ | |||||
| <ClInclude Include="..\..\src\gui\components\layout\juce_MultiDocumentPanel.h"/> | <ClInclude Include="..\..\src\gui\components\layout\juce_MultiDocumentPanel.h"/> | ||||
| <ClInclude Include="..\..\src\gui\components\layout\juce_ResizableBorderComponent.h"/> | <ClInclude Include="..\..\src\gui\components\layout\juce_ResizableBorderComponent.h"/> | ||||
| <ClInclude Include="..\..\src\gui\components\layout\juce_ResizableCornerComponent.h"/> | <ClInclude Include="..\..\src\gui\components\layout\juce_ResizableCornerComponent.h"/> | ||||
| <ClInclude Include="..\..\src\gui\components\layout\juce_ResizableEdgeComponent.h"/> | |||||
| <ClInclude Include="..\..\src\gui\components\layout\juce_ScrollBar.h"/> | <ClInclude Include="..\..\src\gui\components\layout\juce_ScrollBar.h"/> | ||||
| <ClInclude Include="..\..\src\gui\components\layout\juce_StretchableLayoutManager.h"/> | <ClInclude Include="..\..\src\gui\components\layout\juce_StretchableLayoutManager.h"/> | ||||
| <ClInclude Include="..\..\src\gui\components\layout\juce_StretchableLayoutResizerBar.h"/> | <ClInclude Include="..\..\src\gui\components\layout\juce_StretchableLayoutResizerBar.h"/> | ||||
| @@ -640,6 +640,9 @@ | |||||
| <ClCompile Include="..\..\src\gui\components\layout\juce_ResizableCornerComponent.cpp"> | <ClCompile Include="..\..\src\gui\components\layout\juce_ResizableCornerComponent.cpp"> | ||||
| <Filter>Juce\Source\gui\components\layout</Filter> | <Filter>Juce\Source\gui\components\layout</Filter> | ||||
| </ClCompile> | </ClCompile> | ||||
| <ClCompile Include="..\..\src\gui\components\layout\juce_ResizableEdgeComponent.cpp"> | |||||
| <Filter>Juce\Source\gui\components\layout</Filter> | |||||
| </ClCompile> | |||||
| <ClCompile Include="..\..\src\gui\components\layout\juce_ScrollBar.cpp"> | <ClCompile Include="..\..\src\gui\components\layout\juce_ScrollBar.cpp"> | ||||
| <Filter>Juce\Source\gui\components\layout</Filter> | <Filter>Juce\Source\gui\components\layout</Filter> | ||||
| </ClCompile> | </ClCompile> | ||||
| @@ -1821,6 +1824,9 @@ | |||||
| <ClInclude Include="..\..\src\gui\components\layout\juce_ResizableCornerComponent.h"> | <ClInclude Include="..\..\src\gui\components\layout\juce_ResizableCornerComponent.h"> | ||||
| <Filter>Juce\Source\gui\components\layout</Filter> | <Filter>Juce\Source\gui\components\layout</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| <ClInclude Include="..\..\src\gui\components\layout\juce_ResizableEdgeComponent.h"> | |||||
| <Filter>Juce\Source\gui\components\layout</Filter> | |||||
| </ClInclude> | |||||
| <ClInclude Include="..\..\src\gui\components\layout\juce_ScrollBar.h"> | <ClInclude Include="..\..\src\gui\components\layout\juce_ScrollBar.h"> | ||||
| <Filter>Juce\Source\gui\components\layout</Filter> | <Filter>Juce\Source\gui\components\layout</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| @@ -146,6 +146,7 @@ | |||||
| F5F3F25D9F377128DC74D95B = { isa = PBXBuildFile; fileRef = FF046140CCF1EDB0DFF80178; }; | F5F3F25D9F377128DC74D95B = { isa = PBXBuildFile; fileRef = FF046140CCF1EDB0DFF80178; }; | ||||
| C64A2BF05224582134872415 = { isa = PBXBuildFile; fileRef = A95F42C5CB0C2E5052B31568; }; | C64A2BF05224582134872415 = { isa = PBXBuildFile; fileRef = A95F42C5CB0C2E5052B31568; }; | ||||
| 0A9C9486A6B31F21B1472D2B = { isa = PBXBuildFile; fileRef = A31221E2A50CCE9DF06B5F4B; }; | 0A9C9486A6B31F21B1472D2B = { isa = PBXBuildFile; fileRef = A31221E2A50CCE9DF06B5F4B; }; | ||||
| ED9F9A6CB4F8BB7FEA5384B7 = { isa = PBXBuildFile; fileRef = 3D8B0E86C98E2EE49AE868C8; }; | |||||
| DE0BAD16BD5A6568EB4D228B = { isa = PBXBuildFile; fileRef = B116FEC4D544DB8E38CB571E; }; | DE0BAD16BD5A6568EB4D228B = { isa = PBXBuildFile; fileRef = B116FEC4D544DB8E38CB571E; }; | ||||
| AF6FEC311B9FDA112CEEBE03 = { isa = PBXBuildFile; fileRef = F1F65C9E7394E04E073A57A4; }; | AF6FEC311B9FDA112CEEBE03 = { isa = PBXBuildFile; fileRef = F1F65C9E7394E04E073A57A4; }; | ||||
| 3795ECCE9D98F872F5BCAE64 = { isa = PBXBuildFile; fileRef = 993C90B10202DA78FA31CC58; }; | 3795ECCE9D98F872F5BCAE64 = { isa = PBXBuildFile; fileRef = 993C90B10202DA78FA31CC58; }; | ||||
| @@ -691,6 +692,8 @@ | |||||
| 600B2FDBBBE812784CB49A69 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableBorderComponent.h; path = ../../src/gui/components/layout/juce_ResizableBorderComponent.h; sourceTree = SOURCE_ROOT; }; | 600B2FDBBBE812784CB49A69 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableBorderComponent.h; path = ../../src/gui/components/layout/juce_ResizableBorderComponent.h; sourceTree = SOURCE_ROOT; }; | ||||
| A31221E2A50CCE9DF06B5F4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResizableCornerComponent.cpp; path = ../../src/gui/components/layout/juce_ResizableCornerComponent.cpp; sourceTree = SOURCE_ROOT; }; | A31221E2A50CCE9DF06B5F4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResizableCornerComponent.cpp; path = ../../src/gui/components/layout/juce_ResizableCornerComponent.cpp; sourceTree = SOURCE_ROOT; }; | ||||
| CB54AC3D311C44A1F3B463A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableCornerComponent.h; path = ../../src/gui/components/layout/juce_ResizableCornerComponent.h; sourceTree = SOURCE_ROOT; }; | CB54AC3D311C44A1F3B463A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableCornerComponent.h; path = ../../src/gui/components/layout/juce_ResizableCornerComponent.h; sourceTree = SOURCE_ROOT; }; | ||||
| 3D8B0E86C98E2EE49AE868C8 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ResizableEdgeComponent.cpp; path = ../../src/gui/components/layout/juce_ResizableEdgeComponent.cpp; sourceTree = SOURCE_ROOT; }; | |||||
| 238965266F88730956D776DB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ResizableEdgeComponent.h; path = ../../src/gui/components/layout/juce_ResizableEdgeComponent.h; sourceTree = SOURCE_ROOT; }; | |||||
| B116FEC4D544DB8E38CB571E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ScrollBar.cpp; path = ../../src/gui/components/layout/juce_ScrollBar.cpp; sourceTree = SOURCE_ROOT; }; | B116FEC4D544DB8E38CB571E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ScrollBar.cpp; path = ../../src/gui/components/layout/juce_ScrollBar.cpp; sourceTree = SOURCE_ROOT; }; | ||||
| 797C94BB7F42CBBAACCFFB87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScrollBar.h; path = ../../src/gui/components/layout/juce_ScrollBar.h; sourceTree = SOURCE_ROOT; }; | 797C94BB7F42CBBAACCFFB87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScrollBar.h; path = ../../src/gui/components/layout/juce_ScrollBar.h; sourceTree = SOURCE_ROOT; }; | ||||
| F1F65C9E7394E04E073A57A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StretchableLayoutManager.cpp; path = ../../src/gui/components/layout/juce_StretchableLayoutManager.cpp; sourceTree = SOURCE_ROOT; }; | F1F65C9E7394E04E073A57A4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_StretchableLayoutManager.cpp; path = ../../src/gui/components/layout/juce_StretchableLayoutManager.cpp; sourceTree = SOURCE_ROOT; }; | ||||
| @@ -933,6 +936,7 @@ | |||||
| 341631A7E86BF1C0E49093C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Memory.h; path = ../../src/memory/juce_Memory.h; sourceTree = SOURCE_ROOT; }; | 341631A7E86BF1C0E49093C6 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Memory.h; path = ../../src/memory/juce_Memory.h; sourceTree = SOURCE_ROOT; }; | ||||
| AD655AA04981173716022D8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MemoryBlock.cpp; path = ../../src/memory/juce_MemoryBlock.cpp; sourceTree = SOURCE_ROOT; }; | AD655AA04981173716022D8D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_MemoryBlock.cpp; path = ../../src/memory/juce_MemoryBlock.cpp; sourceTree = SOURCE_ROOT; }; | ||||
| F1D085B5F12E814BF1D5C395 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryBlock.h; path = ../../src/memory/juce_MemoryBlock.h; sourceTree = SOURCE_ROOT; }; | F1D085B5F12E814BF1D5C395 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryBlock.h; path = ../../src/memory/juce_MemoryBlock.h; sourceTree = SOURCE_ROOT; }; | ||||
| 58654C2630387C4A336A5BFB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_OptionalScopedPointer.h; path = ../../src/memory/juce_OptionalScopedPointer.h; sourceTree = SOURCE_ROOT; }; | |||||
| 524A70C9F23954F8F2A3F99B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedObject.h; path = ../../src/memory/juce_ReferenceCountedObject.h; sourceTree = SOURCE_ROOT; }; | 524A70C9F23954F8F2A3F99B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ReferenceCountedObject.h; path = ../../src/memory/juce_ReferenceCountedObject.h; sourceTree = SOURCE_ROOT; }; | ||||
| E05812E3CC31875A202D6B30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedPointer.h; path = ../../src/memory/juce_ScopedPointer.h; sourceTree = SOURCE_ROOT; }; | E05812E3CC31875A202D6B30 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ScopedPointer.h; path = ../../src/memory/juce_ScopedPointer.h; sourceTree = SOURCE_ROOT; }; | ||||
| 224C989BF83B6EA867814BFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WeakReference.h; path = ../../src/memory/juce_WeakReference.h; sourceTree = SOURCE_ROOT; }; | 224C989BF83B6EA867814BFF = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_WeakReference.h; path = ../../src/memory/juce_WeakReference.h; sourceTree = SOURCE_ROOT; }; | ||||
| @@ -1448,6 +1452,8 @@ | |||||
| 600B2FDBBBE812784CB49A69, | 600B2FDBBBE812784CB49A69, | ||||
| A31221E2A50CCE9DF06B5F4B, | A31221E2A50CCE9DF06B5F4B, | ||||
| CB54AC3D311C44A1F3B463A5, | CB54AC3D311C44A1F3B463A5, | ||||
| 3D8B0E86C98E2EE49AE868C8, | |||||
| 238965266F88730956D776DB, | |||||
| B116FEC4D544DB8E38CB571E, | B116FEC4D544DB8E38CB571E, | ||||
| 797C94BB7F42CBBAACCFFB87, | 797C94BB7F42CBBAACCFFB87, | ||||
| F1F65C9E7394E04E073A57A4, | F1F65C9E7394E04E073A57A4, | ||||
| @@ -1748,6 +1754,7 @@ | |||||
| 341631A7E86BF1C0E49093C6, | 341631A7E86BF1C0E49093C6, | ||||
| AD655AA04981173716022D8D, | AD655AA04981173716022D8D, | ||||
| F1D085B5F12E814BF1D5C395, | F1D085B5F12E814BF1D5C395, | ||||
| 58654C2630387C4A336A5BFB, | |||||
| 524A70C9F23954F8F2A3F99B, | 524A70C9F23954F8F2A3F99B, | ||||
| E05812E3CC31875A202D6B30, | E05812E3CC31875A202D6B30, | ||||
| 224C989BF83B6EA867814BFF ); name = memory; sourceTree = "<group>"; }; | 224C989BF83B6EA867814BFF ); name = memory; sourceTree = "<group>"; }; | ||||
| @@ -2160,6 +2167,7 @@ | |||||
| F5F3F25D9F377128DC74D95B, | F5F3F25D9F377128DC74D95B, | ||||
| C64A2BF05224582134872415, | C64A2BF05224582134872415, | ||||
| 0A9C9486A6B31F21B1472D2B, | 0A9C9486A6B31F21B1472D2B, | ||||
| ED9F9A6CB4F8BB7FEA5384B7, | |||||
| DE0BAD16BD5A6568EB4D228B, | DE0BAD16BD5A6568EB4D228B, | ||||
| AF6FEC311B9FDA112CEEBE03, | AF6FEC311B9FDA112CEEBE03, | ||||
| 3795ECCE9D98F872F5BCAE64, | 3795ECCE9D98F872F5BCAE64, | ||||
| @@ -742,6 +742,10 @@ | |||||
| resource="0" file="src/gui/components/layout/juce_ResizableCornerComponent.cpp"/> | resource="0" file="src/gui/components/layout/juce_ResizableCornerComponent.cpp"/> | ||||
| <FILE id="BNceExpX" name="juce_ResizableCornerComponent.h" compile="0" | <FILE id="BNceExpX" name="juce_ResizableCornerComponent.h" compile="0" | ||||
| resource="0" file="src/gui/components/layout/juce_ResizableCornerComponent.h"/> | resource="0" file="src/gui/components/layout/juce_ResizableCornerComponent.h"/> | ||||
| <FILE id="RqXFh" name="juce_ResizableEdgeComponent.cpp" compile="1" | |||||
| resource="0" file="src/gui/components/layout/juce_ResizableEdgeComponent.cpp"/> | |||||
| <FILE id="yO4Ojb" name="juce_ResizableEdgeComponent.h" compile="0" | |||||
| resource="0" file="src/gui/components/layout/juce_ResizableEdgeComponent.h"/> | |||||
| <FILE id="bz95sXSrm" name="juce_ScrollBar.cpp" compile="1" resource="0" | <FILE id="bz95sXSrm" name="juce_ScrollBar.cpp" compile="1" resource="0" | ||||
| file="src/gui/components/layout/juce_ScrollBar.cpp"/> | file="src/gui/components/layout/juce_ScrollBar.cpp"/> | ||||
| <FILE id="fNljvLwAj" name="juce_ScrollBar.h" compile="0" resource="0" | <FILE id="fNljvLwAj" name="juce_ScrollBar.h" compile="0" resource="0" | ||||
| @@ -282,6 +282,7 @@ | |||||
| #include "../src/gui/components/layout/juce_MultiDocumentPanel.cpp" | #include "../src/gui/components/layout/juce_MultiDocumentPanel.cpp" | ||||
| #include "../src/gui/components/layout/juce_ResizableBorderComponent.cpp" | #include "../src/gui/components/layout/juce_ResizableBorderComponent.cpp" | ||||
| #include "../src/gui/components/layout/juce_ResizableCornerComponent.cpp" | #include "../src/gui/components/layout/juce_ResizableCornerComponent.cpp" | ||||
| #include "../src/gui/components/layout/juce_ResizableEdgeComponent.cpp" | |||||
| #include "../src/gui/components/layout/juce_ScrollBar.cpp" | #include "../src/gui/components/layout/juce_ScrollBar.cpp" | ||||
| #include "../src/gui/components/layout/juce_StretchableLayoutManager.cpp" | #include "../src/gui/components/layout/juce_StretchableLayoutManager.cpp" | ||||
| #include "../src/gui/components/layout/juce_StretchableLayoutResizerBar.cpp" | #include "../src/gui/components/layout/juce_StretchableLayoutResizerBar.cpp" | ||||
| @@ -33,15 +33,14 @@ | |||||
| //============================================================================== | //============================================================================== | ||||
| ProjectContentComponent::ProjectContentComponent() | ProjectContentComponent::ProjectContentComponent() | ||||
| : projectTree (0), project (0), | |||||
| currentDocument (0), resizerBar (0) | |||||
| : project (0), | |||||
| currentDocument (0) | |||||
| { | { | ||||
| setItemLayout (0, 100, 500, 300); | |||||
| setItemLayout (1, 4, 4, 4); | |||||
| setItemLayout (2, 100, 10000, 800); | |||||
| setOpaque (true); | setOpaque (true); | ||||
| setWantsKeyboardFocus (true); | setWantsKeyboardFocus (true); | ||||
| treeSizeConstrainer.setMinimumWidth (100); | |||||
| treeSizeConstrainer.setMaximumWidth (500); | |||||
| } | } | ||||
| ProjectContentComponent::~ProjectContentComponent() | ProjectContentComponent::~ProjectContentComponent() | ||||
| @@ -56,17 +55,6 @@ void ProjectContentComponent::paint (Graphics& g) | |||||
| g.fillAll (Colour::greyLevel (0.8f)); | g.fillAll (Colour::greyLevel (0.8f)); | ||||
| } | } | ||||
| void ProjectContentComponent::hasBeenMoved() | |||||
| { | |||||
| resized(); | |||||
| } | |||||
| void ProjectContentComponent::resized() | |||||
| { | |||||
| Component* comps[] = { projectTree, resizerBar, contentView }; | |||||
| layOutComponents (comps, 3, 0, 0, getWidth(), getHeight(), false, true); | |||||
| } | |||||
| void ProjectContentComponent::setProject (Project* newProject) | void ProjectContentComponent::setProject (Project* newProject) | ||||
| { | { | ||||
| if (project != newProject) | if (project != newProject) | ||||
| @@ -74,31 +62,42 @@ void ProjectContentComponent::setProject (Project* newProject) | |||||
| if (project != 0) | if (project != 0) | ||||
| project->removeChangeListener (this); | project->removeChangeListener (this); | ||||
| if (projectTree != 0) | |||||
| projectTree->deleteRootItem(); | |||||
| projectTree = 0; | |||||
| contentView = 0; | contentView = 0; | ||||
| resizerBar = 0; | resizerBar = 0; | ||||
| if (projectTree != 0) | |||||
| { | |||||
| StoredSettings::getInstance()->getProps().setValue ("projectTreeviewWidth", projectTree->getWidth()); | |||||
| projectTree->deleteRootItem(); | |||||
| projectTree = 0; | |||||
| } | |||||
| project = newProject; | project = newProject; | ||||
| if (project != 0) | if (project != 0) | ||||
| { | { | ||||
| addAndMakeVisible (projectTree = new TreeView()); | addAndMakeVisible (projectTree = new TreeView()); | ||||
| projectTree->setComponentID ("tree"); | |||||
| projectTree->setRootItemVisible (true); | projectTree->setRootItemVisible (true); | ||||
| projectTree->setMultiSelectEnabled (true); | projectTree->setMultiSelectEnabled (true); | ||||
| projectTree->setDefaultOpenness (true); | projectTree->setDefaultOpenness (true); | ||||
| projectTree->setColour (TreeView::backgroundColourId, Colour::greyLevel (0.93f)); | projectTree->setColour (TreeView::backgroundColourId, Colour::greyLevel (0.93f)); | ||||
| projectTree->setIndentSize (14); | projectTree->setIndentSize (14); | ||||
| addAndMakeVisible (resizerBar = new StretchableLayoutResizerBar (this, 1, true)); | |||||
| resized(); | |||||
| projectTree->setRootItem (new GroupTreeViewItem (project->getMainGroup())); | projectTree->setRootItem (new GroupTreeViewItem (project->getMainGroup())); | ||||
| projectTree->getRootItem()->setOpen (true); | projectTree->getRootItem()->setOpen (true); | ||||
| String lastTreeWidth (StoredSettings::getInstance()->getProps().getValue ("projectTreeviewWidth")); | |||||
| if (lastTreeWidth.getIntValue() < 150) | |||||
| lastTreeWidth = "250"; | |||||
| projectTree->setBounds (RelativeRectangle ("0, 0, left + " + lastTreeWidth + ", parent.height")); | |||||
| addAndMakeVisible (resizerBar = new ResizableEdgeComponent (projectTree, &treeSizeConstrainer, | |||||
| ResizableEdgeComponent::rightEdge)); | |||||
| resizerBar->setComponentID ("resizer"); | |||||
| resizerBar->setBounds (RelativeRectangle ("tree.right, 0, tree.right + 4, parent.height")); | |||||
| project->addChangeListener (this); | project->addChangeListener (this); | ||||
| if (currentDocument == 0) | if (currentDocument == 0) | ||||
| @@ -161,7 +160,8 @@ bool ProjectContentComponent::setEditorComponent (Component* editor, OpenDocumen | |||||
| contentView = editor; | contentView = editor; | ||||
| currentDocument = doc; | currentDocument = doc; | ||||
| addAndMakeVisible (editor); | addAndMakeVisible (editor); | ||||
| resized(); | |||||
| editor->setBounds (RelativeRectangle ("resizer.right, 0, parent.right, parent.height")); | |||||
| updateMainWindowTitle(); | updateMainWindowTitle(); | ||||
| commandManager->commandStatusChanged(); | commandManager->commandStatusChanged(); | ||||
| @@ -35,8 +35,7 @@ | |||||
| */ | */ | ||||
| class ProjectContentComponent : public Component, | class ProjectContentComponent : public Component, | ||||
| public ApplicationCommandTarget, | public ApplicationCommandTarget, | ||||
| public ChangeListener, | |||||
| public StretchableLayoutManager | |||||
| public ChangeListener | |||||
| { | { | ||||
| public: | public: | ||||
| //============================================================================== | //============================================================================== | ||||
| @@ -44,7 +43,6 @@ public: | |||||
| ~ProjectContentComponent(); | ~ProjectContentComponent(); | ||||
| void paint (Graphics& g); | void paint (Graphics& g); | ||||
| void resized(); | |||||
| void setProject (Project* project); | void setProject (Project* project); | ||||
| @@ -56,7 +54,6 @@ public: | |||||
| void updateMissingFileStatuses(); | void updateMissingFileStatuses(); | ||||
| void changeListenerCallback (ChangeBroadcaster*); | void changeListenerCallback (ChangeBroadcaster*); | ||||
| void hasBeenMoved(); | |||||
| //============================================================================== | //============================================================================== | ||||
| ApplicationCommandTarget* getNextCommandTarget(); | ApplicationCommandTarget* getNextCommandTarget(); | ||||
| @@ -66,12 +63,14 @@ public: | |||||
| bool perform (const InvocationInfo& info); | bool perform (const InvocationInfo& info); | ||||
| private: | private: | ||||
| ScopedPointer<TreeView> projectTree; | |||||
| Project* project; | Project* project; | ||||
| ScopedPointer <Component> contentView; | |||||
| OpenDocumentManager::Document* currentDocument; | OpenDocumentManager::Document* currentDocument; | ||||
| ScopedPointer<StretchableLayoutResizerBar> resizerBar; | |||||
| ScopedPointer<TreeView> projectTree; | |||||
| ScopedPointer<ResizableEdgeComponent> resizerBar; | |||||
| ScopedPointer<Component> contentView; | |||||
| ComponentBoundsConstrainer treeSizeConstrainer; | |||||
| void updateMainWindowTitle(); | void updateMainWindowTitle(); | ||||
| @@ -61843,7 +61843,12 @@ void ComponentBoundsConstrainer::checkComponentBounds (Component* component) | |||||
| void ComponentBoundsConstrainer::applyBoundsToComponent (Component* component, | void ComponentBoundsConstrainer::applyBoundsToComponent (Component* component, | ||||
| const Rectangle<int>& bounds) | const Rectangle<int>& bounds) | ||||
| { | { | ||||
| component->setBounds (bounds); | |||||
| Component::Positioner* const positioner = component->getPositioner(); | |||||
| if (positioner != 0) | |||||
| positioner->applyNewBounds (bounds); | |||||
| else | |||||
| component->setBounds (bounds); | |||||
| } | } | ||||
| void ComponentBoundsConstrainer::resizeStart() | void ComponentBoundsConstrainer::resizeStart() | ||||
| @@ -62803,13 +62808,22 @@ void ResizableBorderComponent::mouseDrag (const MouseEvent& e) | |||||
| const Rectangle<int> bounds (mouseZone.resizeRectangleBy (originalBounds, e.getOffsetFromDragStart())); | const Rectangle<int> bounds (mouseZone.resizeRectangleBy (originalBounds, e.getOffsetFromDragStart())); | ||||
| if (constrainer != 0) | if (constrainer != 0) | ||||
| { | |||||
| constrainer->setBoundsForComponent (component, bounds, | constrainer->setBoundsForComponent (component, bounds, | ||||
| mouseZone.isDraggingTopEdge(), | mouseZone.isDraggingTopEdge(), | ||||
| mouseZone.isDraggingLeftEdge(), | mouseZone.isDraggingLeftEdge(), | ||||
| mouseZone.isDraggingBottomEdge(), | mouseZone.isDraggingBottomEdge(), | ||||
| mouseZone.isDraggingRightEdge()); | mouseZone.isDraggingRightEdge()); | ||||
| } | |||||
| else | else | ||||
| component->setBounds (bounds); | |||||
| { | |||||
| Component::Positioner* const positioner = component->getPositioner(); | |||||
| if (positioner != 0) | |||||
| positioner->applyNewBounds (bounds); | |||||
| else | |||||
| component->setBounds (bounds); | |||||
| } | |||||
| } | } | ||||
| void ResizableBorderComponent::mouseUp (const MouseEvent&) | void ResizableBorderComponent::mouseUp (const MouseEvent&) | ||||
| @@ -62905,9 +62919,18 @@ void ResizableCornerComponent::mouseDrag (const MouseEvent& e) | |||||
| originalBounds.getHeight() + e.getDistanceFromDragStartY())); | originalBounds.getHeight() + e.getDistanceFromDragStartY())); | ||||
| if (constrainer != 0) | if (constrainer != 0) | ||||
| { | |||||
| constrainer->setBoundsForComponent (component, r, false, false, true, true); | constrainer->setBoundsForComponent (component, r, false, false, true, true); | ||||
| } | |||||
| else | else | ||||
| component->setBounds (r); | |||||
| { | |||||
| Component::Positioner* const positioner = component->getPositioner(); | |||||
| if (positioner != 0) | |||||
| positioner->applyNewBounds (r); | |||||
| else | |||||
| component->setBounds (r); | |||||
| } | |||||
| } | } | ||||
| void ResizableCornerComponent::mouseUp (const MouseEvent&) | void ResizableCornerComponent::mouseUp (const MouseEvent&) | ||||
| @@ -62930,6 +62953,98 @@ END_JUCE_NAMESPACE | |||||
| /*** End of inlined file: juce_ResizableCornerComponent.cpp ***/ | /*** End of inlined file: juce_ResizableCornerComponent.cpp ***/ | ||||
| /*** Start of inlined file: juce_ResizableEdgeComponent.cpp ***/ | |||||
| BEGIN_JUCE_NAMESPACE | |||||
| ResizableEdgeComponent::ResizableEdgeComponent (Component* const componentToResize, | |||||
| ComponentBoundsConstrainer* const constrainer_, | |||||
| Edge edge_) | |||||
| : component (componentToResize), | |||||
| constrainer (constrainer_), | |||||
| edge (edge_) | |||||
| { | |||||
| setRepaintsOnMouseActivity (true); | |||||
| setMouseCursor (MouseCursor (isVertical() ? MouseCursor::LeftRightResizeCursor | |||||
| : MouseCursor::UpDownResizeCursor)); | |||||
| } | |||||
| ResizableEdgeComponent::~ResizableEdgeComponent() | |||||
| { | |||||
| } | |||||
| bool ResizableEdgeComponent::isVertical() const throw() | |||||
| { | |||||
| return edge == leftEdge || edge == rightEdge; | |||||
| } | |||||
| void ResizableEdgeComponent::paint (Graphics& g) | |||||
| { | |||||
| getLookAndFeel().drawStretchableLayoutResizerBar (g, getWidth(), getHeight(), isVertical(), | |||||
| isMouseOver(), isMouseButtonDown()); | |||||
| } | |||||
| void ResizableEdgeComponent::mouseDown (const MouseEvent& e) | |||||
| { | |||||
| if (component == 0) | |||||
| { | |||||
| jassertfalse; // You've deleted the component that this resizer was supposed to be using! | |||||
| return; | |||||
| } | |||||
| originalBounds = component->getBounds(); | |||||
| if (constrainer != 0) | |||||
| constrainer->resizeStart(); | |||||
| } | |||||
| void ResizableEdgeComponent::mouseDrag (const MouseEvent& e) | |||||
| { | |||||
| if (component == 0) | |||||
| { | |||||
| jassertfalse; // You've deleted the component that this resizer was supposed to be using! | |||||
| return; | |||||
| } | |||||
| Rectangle<int> bounds (originalBounds); | |||||
| switch (edge) | |||||
| { | |||||
| case leftEdge: bounds.setLeft (bounds.getX() + e.getDistanceFromDragStartX()); break; | |||||
| case rightEdge: bounds.setWidth (bounds.getWidth() + e.getDistanceFromDragStartX()); break; | |||||
| case topEdge: bounds.setTop (bounds.getY() + e.getDistanceFromDragStartY()); break; | |||||
| case bottomEdge: bounds.setHeight (bounds.getHeight() + e.getDistanceFromDragStartY()); break; | |||||
| default: jassertfalse; break; | |||||
| } | |||||
| if (constrainer != 0) | |||||
| { | |||||
| constrainer->setBoundsForComponent (component, bounds, | |||||
| edge == topEdge, | |||||
| edge == leftEdge, | |||||
| edge == bottomEdge, | |||||
| edge == rightEdge); | |||||
| } | |||||
| else | |||||
| { | |||||
| Component::Positioner* const positioner = component->getPositioner(); | |||||
| if (positioner != 0) | |||||
| positioner->applyNewBounds (bounds); | |||||
| else | |||||
| component->setBounds (bounds); | |||||
| } | |||||
| } | |||||
| void ResizableEdgeComponent::mouseUp (const MouseEvent&) | |||||
| { | |||||
| if (constrainer != 0) | |||||
| constrainer->resizeEnd(); | |||||
| } | |||||
| END_JUCE_NAMESPACE | |||||
| /*** End of inlined file: juce_ResizableEdgeComponent.cpp ***/ | |||||
| /*** Start of inlined file: juce_ScrollBar.cpp ***/ | /*** Start of inlined file: juce_ScrollBar.cpp ***/ | ||||
| BEGIN_JUCE_NAMESPACE | BEGIN_JUCE_NAMESPACE | ||||
| @@ -79954,8 +80069,19 @@ public: | |||||
| jassertfalse; // must be a recursive reference! | jassertfalse; // must be a recursive reference! | ||||
| } | } | ||||
| void applyNewBounds (const Rectangle<int>& newBounds) | |||||
| { | |||||
| if (newBounds != getComponent().getBounds()) | |||||
| { | |||||
| ComponentScope scope (getComponent()); | |||||
| rectangle.moveToAbsolute (newBounds.toFloat(), &scope); | |||||
| applyToComponentBounds(); | |||||
| } | |||||
| } | |||||
| private: | private: | ||||
| const RelativeRectangle rectangle; | |||||
| RelativeRectangle rectangle; | |||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (RelativeRectangleComponentPositioner); | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (RelativeRectangleComponentPositioner); | ||||
| }; | }; | ||||
| @@ -86515,6 +86641,11 @@ public: | |||||
| owner.repaint(); | owner.repaint(); | ||||
| } | } | ||||
| void applyNewBounds (const Rectangle<int>& newBounds) | |||||
| { | |||||
| jassertfalse; // drawables can't be resized directly! | |||||
| } | |||||
| private: | private: | ||||
| DrawableShape& owner; | DrawableShape& owner; | ||||
| const DrawableShape::RelativeFillType fill; | const DrawableShape::RelativeFillType fill; | ||||
| @@ -87570,6 +87701,11 @@ public: | |||||
| owner.applyRelativePath (*owner.relativePath, &scope); | owner.applyRelativePath (*owner.relativePath, &scope); | ||||
| } | } | ||||
| void applyNewBounds (const Rectangle<int>& newBounds) | |||||
| { | |||||
| jassertfalse; // drawables can't be resized directly! | |||||
| } | |||||
| private: | private: | ||||
| DrawablePath& owner; | DrawablePath& owner; | ||||
| @@ -73,7 +73,7 @@ namespace JuceDummyNamespace {} | |||||
| */ | */ | ||||
| #define JUCE_MAJOR_VERSION 1 | #define JUCE_MAJOR_VERSION 1 | ||||
| #define JUCE_MINOR_VERSION 53 | #define JUCE_MINOR_VERSION 53 | ||||
| #define JUCE_BUILDNUMBER 32 | |||||
| #define JUCE_BUILDNUMBER 33 | |||||
| /** Current Juce version number. | /** Current Juce version number. | ||||
| @@ -31755,6 +31755,13 @@ public: | |||||
| /** Returns the component that this positioner controls. */ | /** Returns the component that this positioner controls. */ | ||||
| Component& getComponent() const throw() { return component; } | Component& getComponent() const throw() { return component; } | ||||
| /** Attempts to set the component's position to the given rectangle. | |||||
| Unlike simply calling Component::setBounds(), this may involve the positioner | |||||
| being smart enough to adjust itself to fit the new bounds, e.g. a RelativeRectangle's | |||||
| positioner may try to reverse the expressions used to make them fit these new coordinates. | |||||
| */ | |||||
| virtual void applyNewBounds (const Rectangle<int>& newBounds) = 0; | |||||
| private: | private: | ||||
| Component& component; | Component& component; | ||||
| @@ -49126,6 +49133,11 @@ protected: | |||||
| owner.recalculateCoordinates (&scope); | owner.recalculateCoordinates (&scope); | ||||
| } | } | ||||
| void applyNewBounds (const Rectangle<int>&) | |||||
| { | |||||
| jassertfalse; // drawables can't be resized directly! | |||||
| } | |||||
| private: | private: | ||||
| DrawableType& owner; | DrawableType& owner; | ||||
| @@ -55072,7 +55084,7 @@ private: | |||||
| #define __JUCE_RESIZABLEBORDERCOMPONENT_JUCEHEADER__ | #define __JUCE_RESIZABLEBORDERCOMPONENT_JUCEHEADER__ | ||||
| /** | /** | ||||
| A component that resizes its parent window when dragged. | |||||
| A component that resizes its parent component when dragged. | |||||
| This component forms a frame around the edge of a component, allowing it to | This component forms a frame around the edge of a component, allowing it to | ||||
| be dragged by the edges or corners to resize it - like the way windows are | be dragged by the edges or corners to resize it - like the way windows are | ||||
| @@ -55240,7 +55252,7 @@ private: | |||||
| #ifndef __JUCE_RESIZABLECORNERCOMPONENT_JUCEHEADER__ | #ifndef __JUCE_RESIZABLECORNERCOMPONENT_JUCEHEADER__ | ||||
| #define __JUCE_RESIZABLECORNERCOMPONENT_JUCEHEADER__ | #define __JUCE_RESIZABLECORNERCOMPONENT_JUCEHEADER__ | ||||
| /** A component that resizes a parent window when dragged. | |||||
| /** A component that resizes a parent component when dragged. | |||||
| This is the small triangular stripey resizer component you get in the bottom-right | This is the small triangular stripey resizer component you get in the bottom-right | ||||
| of windows (more commonly on the Mac than Windows). Put one in the corner of | of windows (more commonly on the Mac than Windows). Put one in the corner of | ||||
| @@ -58785,6 +58797,85 @@ private: | |||||
| #endif | #endif | ||||
| #ifndef __JUCE_RESIZABLECORNERCOMPONENT_JUCEHEADER__ | #ifndef __JUCE_RESIZABLECORNERCOMPONENT_JUCEHEADER__ | ||||
| #endif | |||||
| #ifndef __JUCE_RESIZABLEEDGECOMPONENT_JUCEHEADER__ | |||||
| /*** Start of inlined file: juce_ResizableEdgeComponent.h ***/ | |||||
| #ifndef __JUCE_RESIZABLEEDGECOMPONENT_JUCEHEADER__ | |||||
| #define __JUCE_RESIZABLEEDGECOMPONENT_JUCEHEADER__ | |||||
| /** | |||||
| A component that resizes its parent component when dragged. | |||||
| This component forms a bar along one edge of a component, allowing it to | |||||
| be dragged by that edges to resize it. | |||||
| To use it, just add it to your component, positioning it along the appropriate | |||||
| edge. Make sure you reposition the resizer component each time the parent's size | |||||
| changes, to keep it in the correct position. | |||||
| @see ResizbleBorderComponent, ResizableCornerComponent | |||||
| */ | |||||
| class JUCE_API ResizableEdgeComponent : public Component | |||||
| { | |||||
| public: | |||||
| enum Edge | |||||
| { | |||||
| leftEdge, /**< Indicates a vertical bar that can be dragged left/right to move the component's left-hand edge. */ | |||||
| rightEdge, /**< Indicates a vertical bar that can be dragged left/right to move the component's right-hand edge. */ | |||||
| topEdge, /**< Indicates a horizontal bar that can be dragged up/down to move the top of the component. */ | |||||
| bottomEdge /**< Indicates a horizontal bar that can be dragged up/down to move the bottom of the component. */ | |||||
| }; | |||||
| /** Creates a resizer bar. | |||||
| Pass in the target component which you want to be resized when this one is | |||||
| dragged. The target component will usually be this component's parent, but this | |||||
| isn't mandatory. | |||||
| Remember that when the target component is resized, it'll need to move and | |||||
| resize this component to keep it in place, as this won't happen automatically. | |||||
| If the constrainer parameter is non-zero, then this object will be used to enforce | |||||
| limits on the size and position that the component can be stretched to. Make sure | |||||
| that the constrainer isn't deleted while still in use by this object. | |||||
| @see ComponentBoundsConstrainer | |||||
| */ | |||||
| ResizableEdgeComponent (Component* componentToResize, | |||||
| ComponentBoundsConstrainer* constrainer, | |||||
| Edge edgeToResize); | |||||
| /** Destructor. */ | |||||
| ~ResizableEdgeComponent(); | |||||
| bool isVertical() const throw(); | |||||
| protected: | |||||
| /** @internal */ | |||||
| void paint (Graphics& g); | |||||
| /** @internal */ | |||||
| void mouseDown (const MouseEvent& e); | |||||
| /** @internal */ | |||||
| void mouseDrag (const MouseEvent& e); | |||||
| /** @internal */ | |||||
| void mouseUp (const MouseEvent& e); | |||||
| private: | |||||
| WeakReference<Component> component; | |||||
| ComponentBoundsConstrainer* constrainer; | |||||
| Rectangle<int> originalBounds; | |||||
| const Edge edge; | |||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ResizableEdgeComponent); | |||||
| }; | |||||
| #endif // __JUCE_RESIZABLEEDGECOMPONENT_JUCEHEADER__ | |||||
| /*** End of inlined file: juce_ResizableEdgeComponent.h ***/ | |||||
| #endif | #endif | ||||
| #ifndef __JUCE_SCROLLBAR_JUCEHEADER__ | #ifndef __JUCE_SCROLLBAR_JUCEHEADER__ | ||||
| @@ -33,7 +33,7 @@ | |||||
| */ | */ | ||||
| #define JUCE_MAJOR_VERSION 1 | #define JUCE_MAJOR_VERSION 1 | ||||
| #define JUCE_MINOR_VERSION 53 | #define JUCE_MINOR_VERSION 53 | ||||
| #define JUCE_BUILDNUMBER 32 | |||||
| #define JUCE_BUILDNUMBER 33 | |||||
| /** Current Juce version number. | /** Current Juce version number. | ||||
| @@ -2183,6 +2183,13 @@ public: | |||||
| /** Returns the component that this positioner controls. */ | /** Returns the component that this positioner controls. */ | ||||
| Component& getComponent() const throw() { return component; } | Component& getComponent() const throw() { return component; } | ||||
| /** Attempts to set the component's position to the given rectangle. | |||||
| Unlike simply calling Component::setBounds(), this may involve the positioner | |||||
| being smart enough to adjust itself to fit the new bounds, e.g. a RelativeRectangle's | |||||
| positioner may try to reverse the expressions used to make them fit these new coordinates. | |||||
| */ | |||||
| virtual void applyNewBounds (const Rectangle<int>& newBounds) = 0; | |||||
| private: | private: | ||||
| Component& component; | Component& component; | ||||
| @@ -182,7 +182,12 @@ void ComponentBoundsConstrainer::checkComponentBounds (Component* component) | |||||
| void ComponentBoundsConstrainer::applyBoundsToComponent (Component* component, | void ComponentBoundsConstrainer::applyBoundsToComponent (Component* component, | ||||
| const Rectangle<int>& bounds) | const Rectangle<int>& bounds) | ||||
| { | { | ||||
| component->setBounds (bounds); | |||||
| Component::Positioner* const positioner = component->getPositioner(); | |||||
| if (positioner != 0) | |||||
| positioner->applyNewBounds (bounds); | |||||
| else | |||||
| component->setBounds (bounds); | |||||
| } | } | ||||
| //============================================================================== | //============================================================================== | ||||
| @@ -28,7 +28,6 @@ | |||||
| BEGIN_JUCE_NAMESPACE | BEGIN_JUCE_NAMESPACE | ||||
| #include "juce_ResizableBorderComponent.h" | #include "juce_ResizableBorderComponent.h" | ||||
| #include "../juce_Desktop.h" | |||||
| #include "../../graphics/geometry/juce_RectangleList.h" | #include "../../graphics/geometry/juce_RectangleList.h" | ||||
| #include "../../graphics/geometry/juce_Line.h" | #include "../../graphics/geometry/juce_Line.h" | ||||
| #include "../lookandfeel/juce_LookAndFeel.h" | #include "../lookandfeel/juce_LookAndFeel.h" | ||||
| @@ -154,13 +153,22 @@ void ResizableBorderComponent::mouseDrag (const MouseEvent& e) | |||||
| const Rectangle<int> bounds (mouseZone.resizeRectangleBy (originalBounds, e.getOffsetFromDragStart())); | const Rectangle<int> bounds (mouseZone.resizeRectangleBy (originalBounds, e.getOffsetFromDragStart())); | ||||
| if (constrainer != 0) | if (constrainer != 0) | ||||
| { | |||||
| constrainer->setBoundsForComponent (component, bounds, | constrainer->setBoundsForComponent (component, bounds, | ||||
| mouseZone.isDraggingTopEdge(), | mouseZone.isDraggingTopEdge(), | ||||
| mouseZone.isDraggingLeftEdge(), | mouseZone.isDraggingLeftEdge(), | ||||
| mouseZone.isDraggingBottomEdge(), | mouseZone.isDraggingBottomEdge(), | ||||
| mouseZone.isDraggingRightEdge()); | mouseZone.isDraggingRightEdge()); | ||||
| } | |||||
| else | else | ||||
| component->setBounds (bounds); | |||||
| { | |||||
| Component::Positioner* const positioner = component->getPositioner(); | |||||
| if (positioner != 0) | |||||
| positioner->applyNewBounds (bounds); | |||||
| else | |||||
| component->setBounds (bounds); | |||||
| } | |||||
| } | } | ||||
| void ResizableBorderComponent::mouseUp (const MouseEvent&) | void ResizableBorderComponent::mouseUp (const MouseEvent&) | ||||
| @@ -31,7 +31,7 @@ | |||||
| //============================================================================== | //============================================================================== | ||||
| /** | /** | ||||
| A component that resizes its parent window when dragged. | |||||
| A component that resizes its parent component when dragged. | |||||
| This component forms a frame around the edge of a component, allowing it to | This component forms a frame around the edge of a component, allowing it to | ||||
| be dragged by the edges or corners to resize it - like the way windows are | be dragged by the edges or corners to resize it - like the way windows are | ||||
| @@ -82,9 +82,18 @@ void ResizableCornerComponent::mouseDrag (const MouseEvent& e) | |||||
| originalBounds.getHeight() + e.getDistanceFromDragStartY())); | originalBounds.getHeight() + e.getDistanceFromDragStartY())); | ||||
| if (constrainer != 0) | if (constrainer != 0) | ||||
| { | |||||
| constrainer->setBoundsForComponent (component, r, false, false, true, true); | constrainer->setBoundsForComponent (component, r, false, false, true, true); | ||||
| } | |||||
| else | else | ||||
| component->setBounds (r); | |||||
| { | |||||
| Component::Positioner* const positioner = component->getPositioner(); | |||||
| if (positioner != 0) | |||||
| positioner->applyNewBounds (r); | |||||
| else | |||||
| component->setBounds (r); | |||||
| } | |||||
| } | } | ||||
| void ResizableCornerComponent::mouseUp (const MouseEvent&) | void ResizableCornerComponent::mouseUp (const MouseEvent&) | ||||
| @@ -30,7 +30,7 @@ | |||||
| //============================================================================== | //============================================================================== | ||||
| /** A component that resizes a parent window when dragged. | |||||
| /** A component that resizes a parent component when dragged. | |||||
| This is the small triangular stripey resizer component you get in the bottom-right | This is the small triangular stripey resizer component you get in the bottom-right | ||||
| of windows (more commonly on the Mac than Windows). Put one in the corner of | of windows (more commonly on the Mac than Windows). Put one in the corner of | ||||
| @@ -0,0 +1,121 @@ | |||||
| /* | |||||
| ============================================================================== | |||||
| This file is part of the JUCE library - "Jules' Utility Class Extensions" | |||||
| Copyright 2004-10 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 "../../../core/juce_StandardHeader.h" | |||||
| BEGIN_JUCE_NAMESPACE | |||||
| #include "juce_ResizableEdgeComponent.h" | |||||
| #include "../lookandfeel/juce_LookAndFeel.h" | |||||
| //============================================================================== | |||||
| ResizableEdgeComponent::ResizableEdgeComponent (Component* const componentToResize, | |||||
| ComponentBoundsConstrainer* const constrainer_, | |||||
| Edge edge_) | |||||
| : component (componentToResize), | |||||
| constrainer (constrainer_), | |||||
| edge (edge_) | |||||
| { | |||||
| setRepaintsOnMouseActivity (true); | |||||
| setMouseCursor (MouseCursor (isVertical() ? MouseCursor::LeftRightResizeCursor | |||||
| : MouseCursor::UpDownResizeCursor)); | |||||
| } | |||||
| ResizableEdgeComponent::~ResizableEdgeComponent() | |||||
| { | |||||
| } | |||||
| //============================================================================== | |||||
| bool ResizableEdgeComponent::isVertical() const throw() | |||||
| { | |||||
| return edge == leftEdge || edge == rightEdge; | |||||
| } | |||||
| void ResizableEdgeComponent::paint (Graphics& g) | |||||
| { | |||||
| getLookAndFeel().drawStretchableLayoutResizerBar (g, getWidth(), getHeight(), isVertical(), | |||||
| isMouseOver(), isMouseButtonDown()); | |||||
| } | |||||
| void ResizableEdgeComponent::mouseDown (const MouseEvent& e) | |||||
| { | |||||
| if (component == 0) | |||||
| { | |||||
| jassertfalse; // You've deleted the component that this resizer was supposed to be using! | |||||
| return; | |||||
| } | |||||
| originalBounds = component->getBounds(); | |||||
| if (constrainer != 0) | |||||
| constrainer->resizeStart(); | |||||
| } | |||||
| void ResizableEdgeComponent::mouseDrag (const MouseEvent& e) | |||||
| { | |||||
| if (component == 0) | |||||
| { | |||||
| jassertfalse; // You've deleted the component that this resizer was supposed to be using! | |||||
| return; | |||||
| } | |||||
| Rectangle<int> bounds (originalBounds); | |||||
| switch (edge) | |||||
| { | |||||
| case leftEdge: bounds.setLeft (bounds.getX() + e.getDistanceFromDragStartX()); break; | |||||
| case rightEdge: bounds.setWidth (bounds.getWidth() + e.getDistanceFromDragStartX()); break; | |||||
| case topEdge: bounds.setTop (bounds.getY() + e.getDistanceFromDragStartY()); break; | |||||
| case bottomEdge: bounds.setHeight (bounds.getHeight() + e.getDistanceFromDragStartY()); break; | |||||
| default: jassertfalse; break; | |||||
| } | |||||
| if (constrainer != 0) | |||||
| { | |||||
| constrainer->setBoundsForComponent (component, bounds, | |||||
| edge == topEdge, | |||||
| edge == leftEdge, | |||||
| edge == bottomEdge, | |||||
| edge == rightEdge); | |||||
| } | |||||
| else | |||||
| { | |||||
| Component::Positioner* const positioner = component->getPositioner(); | |||||
| if (positioner != 0) | |||||
| positioner->applyNewBounds (bounds); | |||||
| else | |||||
| component->setBounds (bounds); | |||||
| } | |||||
| } | |||||
| void ResizableEdgeComponent::mouseUp (const MouseEvent&) | |||||
| { | |||||
| if (constrainer != 0) | |||||
| constrainer->resizeEnd(); | |||||
| } | |||||
| END_JUCE_NAMESPACE | |||||
| @@ -0,0 +1,102 @@ | |||||
| /* | |||||
| ============================================================================== | |||||
| This file is part of the JUCE library - "Jules' Utility Class Extensions" | |||||
| Copyright 2004-10 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_RESIZABLEEDGECOMPONENT_JUCEHEADER__ | |||||
| #define __JUCE_RESIZABLEEDGECOMPONENT_JUCEHEADER__ | |||||
| #include "juce_ComponentBoundsConstrainer.h" | |||||
| //============================================================================== | |||||
| /** | |||||
| A component that resizes its parent component when dragged. | |||||
| This component forms a bar along one edge of a component, allowing it to | |||||
| be dragged by that edges to resize it. | |||||
| To use it, just add it to your component, positioning it along the appropriate | |||||
| edge. Make sure you reposition the resizer component each time the parent's size | |||||
| changes, to keep it in the correct position. | |||||
| @see ResizbleBorderComponent, ResizableCornerComponent | |||||
| */ | |||||
| class JUCE_API ResizableEdgeComponent : public Component | |||||
| { | |||||
| public: | |||||
| //============================================================================== | |||||
| enum Edge | |||||
| { | |||||
| leftEdge, /**< Indicates a vertical bar that can be dragged left/right to move the component's left-hand edge. */ | |||||
| rightEdge, /**< Indicates a vertical bar that can be dragged left/right to move the component's right-hand edge. */ | |||||
| topEdge, /**< Indicates a horizontal bar that can be dragged up/down to move the top of the component. */ | |||||
| bottomEdge /**< Indicates a horizontal bar that can be dragged up/down to move the bottom of the component. */ | |||||
| }; | |||||
| /** Creates a resizer bar. | |||||
| Pass in the target component which you want to be resized when this one is | |||||
| dragged. The target component will usually be this component's parent, but this | |||||
| isn't mandatory. | |||||
| Remember that when the target component is resized, it'll need to move and | |||||
| resize this component to keep it in place, as this won't happen automatically. | |||||
| If the constrainer parameter is non-zero, then this object will be used to enforce | |||||
| limits on the size and position that the component can be stretched to. Make sure | |||||
| that the constrainer isn't deleted while still in use by this object. | |||||
| @see ComponentBoundsConstrainer | |||||
| */ | |||||
| ResizableEdgeComponent (Component* componentToResize, | |||||
| ComponentBoundsConstrainer* constrainer, | |||||
| Edge edgeToResize); | |||||
| /** Destructor. */ | |||||
| ~ResizableEdgeComponent(); | |||||
| bool isVertical() const throw(); | |||||
| protected: | |||||
| //============================================================================== | |||||
| /** @internal */ | |||||
| void paint (Graphics& g); | |||||
| /** @internal */ | |||||
| void mouseDown (const MouseEvent& e); | |||||
| /** @internal */ | |||||
| void mouseDrag (const MouseEvent& e); | |||||
| /** @internal */ | |||||
| void mouseUp (const MouseEvent& e); | |||||
| private: | |||||
| WeakReference<Component> component; | |||||
| ComponentBoundsConstrainer* constrainer; | |||||
| Rectangle<int> originalBounds; | |||||
| const Edge edge; | |||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ResizableEdgeComponent); | |||||
| }; | |||||
| #endif // __JUCE_RESIZABLEEDGECOMPONENT_JUCEHEADER__ | |||||
| @@ -95,5 +95,4 @@ private: | |||||
| }; | }; | ||||
| #endif // __JUCE_STRETCHABLELAYOUTRESIZERBAR_JUCEHEADER__ | #endif // __JUCE_STRETCHABLELAYOUTRESIZERBAR_JUCEHEADER__ | ||||
| @@ -232,8 +232,19 @@ public: | |||||
| jassertfalse; // must be a recursive reference! | jassertfalse; // must be a recursive reference! | ||||
| } | } | ||||
| void applyNewBounds (const Rectangle<int>& newBounds) | |||||
| { | |||||
| if (newBounds != getComponent().getBounds()) | |||||
| { | |||||
| ComponentScope scope (getComponent()); | |||||
| rectangle.moveToAbsolute (newBounds.toFloat(), &scope); | |||||
| applyToComponentBounds(); | |||||
| } | |||||
| } | |||||
| private: | private: | ||||
| const RelativeRectangle rectangle; | |||||
| RelativeRectangle rectangle; | |||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (RelativeRectangleComponentPositioner); | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (RelativeRectangleComponentPositioner); | ||||
| }; | }; | ||||
| @@ -234,6 +234,11 @@ protected: | |||||
| owner.recalculateCoordinates (&scope); | owner.recalculateCoordinates (&scope); | ||||
| } | } | ||||
| void applyNewBounds (const Rectangle<int>&) | |||||
| { | |||||
| jassertfalse; // drawables can't be resized directly! | |||||
| } | |||||
| private: | private: | ||||
| DrawableType& owner; | DrawableType& owner; | ||||
| @@ -123,6 +123,11 @@ public: | |||||
| owner.applyRelativePath (*owner.relativePath, &scope); | owner.applyRelativePath (*owner.relativePath, &scope); | ||||
| } | } | ||||
| void applyNewBounds (const Rectangle<int>& newBounds) | |||||
| { | |||||
| jassertfalse; // drawables can't be resized directly! | |||||
| } | |||||
| private: | private: | ||||
| DrawablePath& owner; | DrawablePath& owner; | ||||
| @@ -77,6 +77,11 @@ public: | |||||
| owner.repaint(); | owner.repaint(); | ||||
| } | } | ||||
| void applyNewBounds (const Rectangle<int>& newBounds) | |||||
| { | |||||
| jassertfalse; // drawables can't be resized directly! | |||||
| } | |||||
| private: | private: | ||||
| DrawableShape& owner; | DrawableShape& owner; | ||||
| const DrawableShape::RelativeFillType fill; | const DrawableShape::RelativeFillType fill; | ||||
| @@ -446,6 +446,9 @@ | |||||
| #ifndef __JUCE_RESIZABLECORNERCOMPONENT_JUCEHEADER__ | #ifndef __JUCE_RESIZABLECORNERCOMPONENT_JUCEHEADER__ | ||||
| #include "gui/components/layout/juce_ResizableCornerComponent.h" | #include "gui/components/layout/juce_ResizableCornerComponent.h" | ||||
| #endif | #endif | ||||
| #ifndef __JUCE_RESIZABLEEDGECOMPONENT_JUCEHEADER__ | |||||
| #include "gui/components/layout/juce_ResizableEdgeComponent.h" | |||||
| #endif | |||||
| #ifndef __JUCE_SCROLLBAR_JUCEHEADER__ | #ifndef __JUCE_SCROLLBAR_JUCEHEADER__ | ||||
| #include "gui/components/layout/juce_ScrollBar.h" | #include "gui/components/layout/juce_ScrollBar.h" | ||||
| #endif | #endif | ||||