Browse Source

Added a templated type to the RectangleList class. If you've used this class and these changes cause syntax errors, all you need to do to your code is to replace "RectangleList" with "RectangleList<int>" and everything will work as it did before.

tags/2021-05-28
jules 11 years ago
parent
commit
1b9a60e52c
72 changed files with 580 additions and 831 deletions
  1. +0
    -4
      extras/Introjucer/Builds/CodeBlocks/The Introjucer.cbp
  2. +0
    -2
      extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj
  3. +0
    -10
      extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj
  4. +0
    -10
      extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj
  5. +0
    -3
      extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj
  6. +0
    -3
      extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters
  7. +0
    -3
      extras/Introjucer/Builds/VisualStudio2012/The Introjucer.vcxproj
  8. +0
    -3
      extras/Introjucer/Builds/VisualStudio2012/The Introjucer.vcxproj.filters
  9. +4
    -0
      extras/Introjucer/JuceLibraryCode/AppConfig.h
  10. +1
    -1
      extras/Introjucer/Source/ComponentEditor/jucer_UtilityFunctions.h
  11. +1
    -0
      extras/JuceDemo/Builds/Android/jni/Android.mk
  12. +0
    -4
      extras/JuceDemo/Builds/CodeBlocks/Juce Demo.cbp
  13. +0
    -2
      extras/JuceDemo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj
  14. +0
    -10
      extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj
  15. +0
    -10
      extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj
  16. +0
    -3
      extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj
  17. +0
    -3
      extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters
  18. +0
    -3
      extras/JuceDemo/Builds/VisualStudio2012/Juce Demo.vcxproj
  19. +0
    -3
      extras/JuceDemo/Builds/VisualStudio2012/Juce Demo.vcxproj.filters
  20. +0
    -2
      extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj
  21. +0
    -2
      extras/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj
  22. +0
    -10
      extras/audio plugin demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj
  23. +0
    -10
      extras/audio plugin demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj
  24. +4
    -0
      extras/audio plugin demo/JuceLibraryCode/AppConfig.h
  25. +1
    -3
      extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj
  26. +0
    -10
      extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj
  27. +0
    -10
      extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj
  28. +4
    -0
      extras/audio plugin host/JuceLibraryCode/AppConfig.h
  29. +4
    -0
      extras/binarybuilder/JuceLibraryCode/AppConfig.h
  30. +0
    -2
      extras/example projects/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj
  31. +0
    -10
      extras/example projects/Builds/VisualStudio2005/HelloWorld.vcproj
  32. +0
    -10
      extras/example projects/Builds/VisualStudio2008/HelloWorld.vcproj
  33. +0
    -2
      extras/example projects/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj
  34. +4
    -0
      extras/example projects/JuceLibraryCode/AppConfig.h
  35. +3
    -3
      modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm
  36. +9
    -0
      modules/juce_core/native/juce_osx_ObjCHelpers.h
  37. +1
    -1
      modules/juce_graphics/contexts/juce_GraphicsContext.cpp
  38. +2
    -3
      modules/juce_graphics/contexts/juce_GraphicsContext.h
  39. +1
    -1
      modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h
  40. +2
    -2
      modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp
  41. +2
    -2
      modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h
  42. +4
    -4
      modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp
  43. +2
    -2
      modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h
  44. +1
    -1
      modules/juce_graphics/geometry/juce_EdgeTable.cpp
  45. +1
    -1
      modules/juce_graphics/geometry/juce_EdgeTable.h
  46. +3
    -4
      modules/juce_graphics/geometry/juce_Rectangle.h
  47. +0
    -511
      modules/juce_graphics/geometry/juce_RectangleList.cpp
  48. +436
    -69
      modules/juce_graphics/geometry/juce_RectangleList.h
  49. +1
    -1
      modules/juce_graphics/images/juce_Image.cpp
  50. +1
    -1
      modules/juce_graphics/images/juce_Image.h
  51. +0
    -1
      modules/juce_graphics/juce_graphics.cpp
  52. +19
    -19
      modules/juce_graphics/native/juce_RenderingHelpers.h
  53. +2
    -2
      modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h
  54. +3
    -3
      modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm
  55. +2
    -2
      modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp
  56. +3
    -3
      modules/juce_gui_basics/components/juce_Component.cpp
  57. +1
    -1
      modules/juce_gui_basics/components/juce_Component.h
  58. +2
    -2
      modules/juce_gui_basics/components/juce_Desktop.cpp
  59. +1
    -1
      modules/juce_gui_basics/components/juce_Desktop.h
  60. +1
    -1
      modules/juce_gui_basics/layout/juce_TabbedComponent.cpp
  61. +2
    -1
      modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp
  62. +1
    -1
      modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h
  63. +3
    -3
      modules/juce_gui_basics/native/juce_linux_Windowing.cpp
  64. +4
    -5
      modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
  65. +2
    -2
      modules/juce_gui_basics/native/juce_win32_Windowing.cpp
  66. +8
    -0
      modules/juce_gui_basics/windows/juce_ComponentPeer.cpp
  67. +6
    -1
      modules/juce_gui_basics/windows/juce_ComponentPeer.h
  68. +1
    -1
      modules/juce_gui_basics/windows/juce_ResizableWindow.cpp
  69. +2
    -6
      modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm
  70. +4
    -1
      modules/juce_opengl/native/juce_OpenGL_win32.h
  71. +5
    -5
      modules/juce_opengl/opengl/juce_OpenGLContext.cpp
  72. +16
    -16
      modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp

+ 0
- 4
extras/Introjucer/Builds/CodeBlocks/The Introjucer.cbp View File

@@ -1796,10 +1796,6 @@
<Option compile="0"/> <Option compile="0"/>
<Option link="0"/> <Option link="0"/>
</Unit> </Unit>
<Unit filename="../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp">
<Option compile="0"/>
<Option link="0"/>
</Unit>
<Unit filename="../../../../modules/juce_graphics/geometry/juce_RectangleList.h"> <Unit filename="../../../../modules/juce_graphics/geometry/juce_RectangleList.h">
<Option compile="0"/> <Option compile="0"/>
<Option link="0"/> <Option link="0"/>


+ 0
- 2
extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj View File

@@ -659,7 +659,6 @@
B8B309972EBB7F07305ACCCA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; B8B309972EBB7F07305ACCCA = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; };
B8BEDDA33D5B1613213434F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; B8BEDDA33D5B1613213434F4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; };
B92070A7D5952D560DAD32C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; B92070A7D5952D560DAD32C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; };
B945EB1DEE6D684E980B7428 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; };
B9F806910507E82E7BFB15E0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; B9F806910507E82E7BFB15E0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; };
BA1E340A922D0D7E543563CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; BA1E340A922D0D7E543563CF = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; };
BA5C7DE347A73A87F687703C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; BA5C7DE347A73A87F687703C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; };
@@ -1433,7 +1432,6 @@
82395D0DB15E012EDA1AC1FE, 82395D0DB15E012EDA1AC1FE,
B79595279502C1A11A4E8C36, B79595279502C1A11A4E8C36,
E27F0860F27023BAA9798B46, E27F0860F27023BAA9798B46,
B945EB1DEE6D684E980B7428,
F08EB921DB62255A4B6DE85A ); name = geometry; sourceTree = "<group>"; }; F08EB921DB62255A4B6DE85A ); name = geometry; sourceTree = "<group>"; };
14995D34FE0826A52FA5262D = { isa = PBXGroup; children = ( 14995D34FE0826A52FA5262D = { isa = PBXGroup; children = (
43B98AB307841FAAB076B882, 43B98AB307841FAAB076B882,


+ 0
- 10
extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj View File

@@ -1946,16 +1946,6 @@
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<FileConfiguration Name="Debug|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
</Filter> </Filter>
<Filter Name="placement"> <Filter Name="placement">


+ 0
- 10
extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj View File

@@ -1946,16 +1946,6 @@
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<FileConfiguration Name="Debug|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
</Filter> </Filter>
<Filter Name="placement"> <Filter Name="placement">


+ 0
- 3
extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj View File

@@ -541,9 +541,6 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild> <ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild> <ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile> </ClCompile>


+ 0
- 3
extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters View File

@@ -772,9 +772,6 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp">
<Filter>Juce Modules\juce_graphics\geometry</Filter> <Filter>Juce Modules\juce_graphics\geometry</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<Filter>Juce Modules\juce_graphics\geometry</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp">
<Filter>Juce Modules\juce_graphics\placement</Filter> <Filter>Juce Modules\juce_graphics\placement</Filter>
</ClCompile> </ClCompile>


+ 0
- 3
extras/Introjucer/Builds/VisualStudio2012/The Introjucer.vcxproj View File

@@ -547,9 +547,6 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild> <ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild> <ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile> </ClCompile>


+ 0
- 3
extras/Introjucer/Builds/VisualStudio2012/The Introjucer.vcxproj.filters View File

@@ -772,9 +772,6 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp">
<Filter>Juce Modules\juce_graphics\geometry</Filter> <Filter>Juce Modules\juce_graphics\geometry</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<Filter>Juce Modules\juce_graphics\geometry</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp">
<Filter>Juce Modules\juce_graphics\placement</Filter> <Filter>Juce Modules\juce_graphics\placement</Filter>
</ClCompile> </ClCompile>


+ 4
- 0
extras/Introjucer/JuceLibraryCode/AppConfig.h View File

@@ -49,6 +49,10 @@
//#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES //#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
#endif #endif
#ifndef JUCE_INCLUDE_ZLIB_CODE
//#define JUCE_INCLUDE_ZLIB_CODE
#endif
//============================================================================== //==============================================================================
// juce_graphics flags: // juce_graphics flags:


+ 1
- 1
extras/Introjucer/Source/ComponentEditor/jucer_UtilityFunctions.h View File

@@ -95,7 +95,7 @@ inline void drawResizableBorder (Graphics& g, int w, int h,
inline void drawMouseOverCorners (Graphics& g, int w, int h) inline void drawMouseOverCorners (Graphics& g, int w, int h)
{ {
RectangleList r (Rectangle<int> (0, 0, w, h));
RectangleList<int> r (Rectangle<int> (0, 0, w, h));
r.subtract (Rectangle<int> (1, 1, w - 2, h - 2)); r.subtract (Rectangle<int> (1, 1, w - 2, h - 2));
const int size = jmin (w / 3, h / 3, 12); const int size = jmin (w / 3, h / 3, 12);


+ 1
- 0
extras/JuceDemo/Builds/Android/jni/Android.mk View File

@@ -5,6 +5,7 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_MODULE := juce_jni LOCAL_MODULE := juce_jni
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
../../../Source/ApplicationStartup.cpp\ ../../../Source/ApplicationStartup.cpp\


+ 0
- 4
extras/JuceDemo/Builds/CodeBlocks/Juce Demo.cbp View File

@@ -1973,10 +1973,6 @@
<Option compile="0"/> <Option compile="0"/>
<Option link="0"/> <Option link="0"/>
</Unit> </Unit>
<Unit filename="../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp">
<Option compile="0"/>
<Option link="0"/>
</Unit>
<Unit filename="../../../../modules/juce_graphics/geometry/juce_RectangleList.h"> <Unit filename="../../../../modules/juce_graphics/geometry/juce_RectangleList.h">
<Option compile="0"/> <Option compile="0"/>
<Option link="0"/> <Option link="0"/>


+ 0
- 2
extras/JuceDemo/Builds/MacOSX/Juce Demo.xcodeproj/project.pbxproj View File

@@ -748,7 +748,6 @@
BF2093D486040BEC64210EBB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; BF2093D486040BEC64210EBB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; };
BF59C96BC3BCB29CCB421861 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; BF59C96BC3BCB29CCB421861 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; };
BF6F272194D16055D6A90D94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; BF6F272194D16055D6A90D94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; };
BF76B8C5007732311AF50543 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; };
C03AF9257B94504D7270416A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; C03AF9257B94504D7270416A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; };
C0608375ACE89B422431E9A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; C0608375ACE89B422431E9A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; };
C069C5FCE1539E9F85C7F29E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; C069C5FCE1539E9F85C7F29E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; };
@@ -1556,7 +1555,6 @@
D4DC657E222FE2BDE92EC58E, D4DC657E222FE2BDE92EC58E,
33A84E7FDD64568649CC89BF, 33A84E7FDD64568649CC89BF,
1089C7A1FF43033FDA63F711, 1089C7A1FF43033FDA63F711,
BF76B8C5007732311AF50543,
38E0255E6BB9600DEECD39F8 ); name = geometry; sourceTree = "<group>"; }; 38E0255E6BB9600DEECD39F8 ); name = geometry; sourceTree = "<group>"; };
BB4F117CD3A2EA9CE8390AD0 = { isa = PBXGroup; children = ( BB4F117CD3A2EA9CE8390AD0 = { isa = PBXGroup; children = (
DF47E8197FF5A9309C062C61, DF47E8197FF5A9309C062C61,


+ 0
- 10
extras/JuceDemo/Builds/VisualStudio2005/Juce Demo.vcproj View File

@@ -2576,16 +2576,6 @@
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<FileConfiguration Name="Debug|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
</Filter> </Filter>
<Filter Name="placement"> <Filter Name="placement">


+ 0
- 10
extras/JuceDemo/Builds/VisualStudio2008/Juce Demo.vcproj View File

@@ -2576,16 +2576,6 @@
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<FileConfiguration Name="Debug|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
</Filter> </Filter>
<Filter Name="placement"> <Filter Name="placement">


+ 0
- 3
extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj View File

@@ -719,9 +719,6 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild> <ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild> <ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile> </ClCompile>


+ 0
- 3
extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj.filters View File

@@ -976,9 +976,6 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp">
<Filter>Juce Modules\juce_graphics\geometry</Filter> <Filter>Juce Modules\juce_graphics\geometry</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<Filter>Juce Modules\juce_graphics\geometry</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp">
<Filter>Juce Modules\juce_graphics\placement</Filter> <Filter>Juce Modules\juce_graphics\placement</Filter>
</ClCompile> </ClCompile>


+ 0
- 3
extras/JuceDemo/Builds/VisualStudio2012/Juce Demo.vcxproj View File

@@ -725,9 +725,6 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild> <ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild> <ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile> </ClCompile>


+ 0
- 3
extras/JuceDemo/Builds/VisualStudio2012/Juce Demo.vcxproj.filters View File

@@ -976,9 +976,6 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.cpp">
<Filter>Juce Modules\juce_graphics\geometry</Filter> <Filter>Juce Modules\juce_graphics\geometry</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<Filter>Juce Modules\juce_graphics\geometry</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp"> <ClCompile Include="..\..\..\..\modules\juce_graphics\placement\juce_Justification.cpp">
<Filter>Juce Modules\juce_graphics\placement</Filter> <Filter>Juce Modules\juce_graphics\placement</Filter>
</ClCompile> </ClCompile>


+ 0
- 2
extras/JuceDemo/Builds/iOS/Juce Demo.xcodeproj/project.pbxproj View File

@@ -740,7 +740,6 @@
BF2093D486040BEC64210EBB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; BF2093D486040BEC64210EBB = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; };
BF59C96BC3BCB29CCB421861 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; BF59C96BC3BCB29CCB421861 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; };
BF6F272194D16055D6A90D94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; BF6F272194D16055D6A90D94 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; };
BF76B8C5007732311AF50543 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; };
C03AF9257B94504D7270416A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; C03AF9257B94504D7270416A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; };
C0608375ACE89B422431E9A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; C0608375ACE89B422431E9A9 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; };
C069C5FCE1539E9F85C7F29E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; C069C5FCE1539E9F85C7F29E = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; };
@@ -1546,7 +1545,6 @@
D4DC657E222FE2BDE92EC58E, D4DC657E222FE2BDE92EC58E,
33A84E7FDD64568649CC89BF, 33A84E7FDD64568649CC89BF,
1089C7A1FF43033FDA63F711, 1089C7A1FF43033FDA63F711,
BF76B8C5007732311AF50543,
38E0255E6BB9600DEECD39F8 ); name = geometry; sourceTree = "<group>"; }; 38E0255E6BB9600DEECD39F8 ); name = geometry; sourceTree = "<group>"; };
BB4F117CD3A2EA9CE8390AD0 = { isa = PBXGroup; children = ( BB4F117CD3A2EA9CE8390AD0 = { isa = PBXGroup; children = (
DF47E8197FF5A9309C062C61, DF47E8197FF5A9309C062C61,


+ 0
- 2
extras/audio plugin demo/Builds/MacOSX/JuceDemoPlugin.xcodeproj/project.pbxproj View File

@@ -432,7 +432,6 @@
6A3C840E1B6CD34CA8C8DB4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; 6A3C840E1B6CD34CA8C8DB4B = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; };
6A593B7ADFAC09D547EA809D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewBase.cpp; sourceTree = "DEVELOPER_DIR"; }; 6A593B7ADFAC09D547EA809D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = AUCarbonViewBase.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewBase.cpp; sourceTree = "DEVELOPER_DIR"; };
6AAAA6BD093B9CCD11BC26EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; 6AAAA6BD093B9CCD11BC26EC = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; };
6AB37A1375F5973557FB034E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; };
6B5564F5E6A5B70B890C146D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsMediaAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; 6B5564F5E6A5B70B890C146D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsMediaAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h"; sourceTree = "SOURCE_ROOT"; };
6C4AD1B0CA254C16E38609DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; 6C4AD1B0CA254C16E38609DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; };
6C5452492262FE01944BE60C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; 6C5452492262FE01944BE60C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; };
@@ -1519,7 +1518,6 @@
42458330B018CCF81D0931CA, 42458330B018CCF81D0931CA,
4514B5F7DBC9B5A3E014C4CA, 4514B5F7DBC9B5A3E014C4CA,
5EE4BB25075E3ACDCFCE14D2, 5EE4BB25075E3ACDCFCE14D2,
6AB37A1375F5973557FB034E,
A1A74C33F871DF7D5E3C4B65 ); name = geometry; sourceTree = "<group>"; }; A1A74C33F871DF7D5E3C4B65 ); name = geometry; sourceTree = "<group>"; };
81AE068FB11A7B2265764318 = { isa = PBXGroup; children = ( 81AE068FB11A7B2265764318 = { isa = PBXGroup; children = (
53ADE0EF49550FB565B3A0A5, 53ADE0EF49550FB565B3A0A5,


+ 0
- 10
extras/audio plugin demo/Builds/VisualStudio2005/JuceDemoPlugin.vcproj View File

@@ -2456,16 +2456,6 @@
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<FileConfiguration Name="Debug|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
</Filter> </Filter>
<Filter Name="placement"> <Filter Name="placement">


+ 0
- 10
extras/audio plugin demo/Builds/VisualStudio2008/JuceDemoPlugin.vcproj View File

@@ -2456,16 +2456,6 @@
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<FileConfiguration Name="Debug|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
</Filter> </Filter>
<Filter Name="placement"> <Filter Name="placement">


+ 4
- 0
extras/audio plugin demo/JuceLibraryCode/AppConfig.h View File

@@ -123,6 +123,10 @@
//#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES //#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
#endif #endif
#ifndef JUCE_INCLUDE_ZLIB_CODE
//#define JUCE_INCLUDE_ZLIB_CODE
#endif
//============================================================================== //==============================================================================
// juce_graphics flags: // juce_graphics flags:


+ 1
- 3
extras/audio plugin host/Builds/MacOSX/Plugin Host.xcodeproj/project.pbxproj View File

@@ -777,7 +777,6 @@
DD53156BA824889FD7DF52D2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; DD53156BA824889FD7DF52D2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; };
DD8E5D0C88FA2C287F824357 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GraphEditorPanel.h; path = ../../Source/GraphEditorPanel.h; sourceTree = "SOURCE_ROOT"; }; DD8E5D0C88FA2C287F824357 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GraphEditorPanel.h; path = ../../Source/GraphEditorPanel.h; sourceTree = "SOURCE_ROOT"; };
DE0C4CC1CE545BAD009786E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; DE0C4CC1CE545BAD009786E4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; };
DE8035865F6033F8BBF41740 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; };
E146C1CCDC8EA0498CD33E5D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; E146C1CCDC8EA0498CD33E5D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; };
E179C9C99270068D4ED16872 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; E179C9C99270068D4ED16872 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; };
E68018DE199135B7F738FB17 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; E68018DE199135B7F738FB17 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
@@ -800,6 +799,7 @@
DE0712F13AD6AB6180E2E680 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; DE0712F13AD6AB6180E2E680 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
DE1FE14BE1B14A214C2D8B66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; DE1FE14BE1B14A214C2D8B66 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; };
DE435BB18276B8626AF37D05 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; DE435BB18276B8626AF37D05 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; };
DE8035865F6033F8BBF41740 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; };
DEEFCE87BE3B9D7AFC7ADC16 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; DEEFCE87BE3B9D7AFC7ADC16 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; };
DF309886A3D26FC34280B329 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../../../modules/juce_video/native/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; }; DF309886A3D26FC34280B329 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../../../modules/juce_video/native/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; };
DF614EDBEA2D76889E002465 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; DF614EDBEA2D76889E002465 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -831,7 +831,6 @@
E5FEEAA0CF737C7F947FD9DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; E5FEEAA0CF737C7F947FD9DD = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; };
E64782A3957A60231A396D3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; E64782A3957A60231A396D3D = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; };
E66AB26776DD0039834DBC76 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; }; E66AB26776DD0039834DBC76 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; };
E682272A2E1A3947D3A9E452 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; };
E6E9A8E11791B4B4D6B3E6D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; E6E9A8E11791B4B4D6B3E6D4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; };
E6EDE8F1BBF28362AC9E1F28 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; E6EDE8F1BBF28362AC9E1F28 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; };
E7734E1F585ACB33420E44B4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; E7734E1F585ACB33420E44B4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -1477,7 +1476,6 @@
3287ECA0DE90C0BCF3CAE6C2, 3287ECA0DE90C0BCF3CAE6C2,
15FBAE360A9B69D6DB38FF22, 15FBAE360A9B69D6DB38FF22,
E7F0E3EF611F21E0B80C7216, E7F0E3EF611F21E0B80C7216,
E682272A2E1A3947D3A9E452,
BC12698889AAD84B83FA7A21 ); name = geometry; sourceTree = "<group>"; }; BC12698889AAD84B83FA7A21 ); name = geometry; sourceTree = "<group>"; };
9F3AAF568F1D887C6A73CC41 = { isa = PBXGroup; children = ( 9F3AAF568F1D887C6A73CC41 = { isa = PBXGroup; children = (
FBD139239758935DC4B678F1, FBD139239758935DC4B678F1,


+ 0
- 10
extras/audio plugin host/Builds/VisualStudio2005/Plugin Host.vcproj View File

@@ -2499,16 +2499,6 @@
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<FileConfiguration Name="Debug|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
</Filter> </Filter>
<Filter Name="placement"> <Filter Name="placement">


+ 0
- 10
extras/audio plugin host/Builds/VisualStudio2008/Plugin Host.vcproj View File

@@ -2499,16 +2499,6 @@
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<FileConfiguration Name="Debug|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
</Filter> </Filter>
<Filter Name="placement"> <Filter Name="placement">


+ 4
- 0
extras/audio plugin host/JuceLibraryCode/AppConfig.h View File

@@ -125,6 +125,10 @@
//#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES //#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
#endif #endif
#ifndef JUCE_INCLUDE_ZLIB_CODE
//#define JUCE_INCLUDE_ZLIB_CODE
#endif
//============================================================================== //==============================================================================
// juce_graphics flags: // juce_graphics flags:


+ 4
- 0
extras/binarybuilder/JuceLibraryCode/AppConfig.h View File

@@ -43,5 +43,9 @@
//#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES //#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
#endif #endif
#ifndef JUCE_INCLUDE_ZLIB_CODE
//#define JUCE_INCLUDE_ZLIB_CODE
#endif
#endif // __JUCE_APPCONFIG_3T6YQETY1__ #endif // __JUCE_APPCONFIG_3T6YQETY1__

+ 0
- 2
extras/example projects/Builds/MacOSX/HelloWorld.xcodeproj/project.pbxproj View File

@@ -211,7 +211,6 @@
4A20547D0C763ABB1DE5A9C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; 4A20547D0C763ABB1DE5A9C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; };
4A5ED88CC2ED6ADD8A5B102A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; 4A5ED88CC2ED6ADD8A5B102A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; };
4A8C64BB96FB93919DDF2166 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; 4A8C64BB96FB93919DDF2166 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; };
4BCEEF3FC9849208FF6B1BD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; };
4C34CB4DC542D86A193C055A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; 4C34CB4DC542D86A193C055A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; };
4CC331BEE18B3EC4BADF38CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; 4CC331BEE18B3EC4BADF38CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; };
4D44E9AD19469774ED8245B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 4D44E9AD19469774ED8245B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -987,7 +986,6 @@
6889EF825EA839830C733D07, 6889EF825EA839830C733D07,
3B51C055A70A99CDCEDFA399, 3B51C055A70A99CDCEDFA399,
189CC2967B6148BE990281E8, 189CC2967B6148BE990281E8,
4BCEEF3FC9849208FF6B1BD7,
9EF2F14290768DC26DBA6149 ); name = geometry; sourceTree = "<group>"; }; 9EF2F14290768DC26DBA6149 ); name = geometry; sourceTree = "<group>"; };
C8E76BBA092B9546D62BFFE4 = { isa = PBXGroup; children = ( C8E76BBA092B9546D62BFFE4 = { isa = PBXGroup; children = (
79E7E37683CACE292A596CEA, 79E7E37683CACE292A596CEA,


+ 0
- 10
extras/example projects/Builds/VisualStudio2005/HelloWorld.vcproj View File

@@ -1482,16 +1482,6 @@
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<FileConfiguration Name="Debug|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
</Filter> </Filter>
<Filter Name="placement"> <Filter Name="placement">


+ 0
- 10
extras/example projects/Builds/VisualStudio2008/HelloWorld.vcproj View File

@@ -1482,16 +1482,6 @@
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_PathStrokeType.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Point.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_Rectangle.h"/>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.cpp">
<FileConfiguration Name="Debug|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
<FileConfiguration Name="Release|Win32"
ExcludedFromBuild="true">
<Tool Name="VCCLCompilerTool"/>
</FileConfiguration>
</File>
<File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/> <File RelativePath="..\..\..\..\modules\juce_graphics\geometry\juce_RectangleList.h"/>
</Filter> </Filter>
<Filter Name="placement"> <Filter Name="placement">


+ 0
- 2
extras/example projects/Builds/iOS/HelloWorld.xcodeproj/project.pbxproj View File

@@ -209,7 +209,6 @@
4A20547D0C763ABB1DE5A9C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; 4A20547D0C763ABB1DE5A9C4 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; };
4A5ED88CC2ED6ADD8A5B102A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; 4A5ED88CC2ED6ADD8A5B102A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; };
4A8C64BB96FB93919DDF2166 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; 4A8C64BB96FB93919DDF2166 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; };
4BCEEF3FC9849208FF6B1BD7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectangleList.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.cpp"; sourceTree = "SOURCE_ROOT"; };
4C34CB4DC542D86A193C055A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; 4C34CB4DC542D86A193C055A = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; };
4CC331BEE18B3EC4BADF38CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; 4CC331BEE18B3EC4BADF38CE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; };
4D44E9AD19469774ED8245B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 4D44E9AD19469774ED8245B2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -985,7 +984,6 @@
6889EF825EA839830C733D07, 6889EF825EA839830C733D07,
3B51C055A70A99CDCEDFA399, 3B51C055A70A99CDCEDFA399,
189CC2967B6148BE990281E8, 189CC2967B6148BE990281E8,
4BCEEF3FC9849208FF6B1BD7,
9EF2F14290768DC26DBA6149 ); name = geometry; sourceTree = "<group>"; }; 9EF2F14290768DC26DBA6149 ); name = geometry; sourceTree = "<group>"; };
C8E76BBA092B9546D62BFFE4 = { isa = PBXGroup; children = ( C8E76BBA092B9546D62BFFE4 = { isa = PBXGroup; children = (
79E7E37683CACE292A596CEA, 79E7E37683CACE292A596CEA,


+ 4
- 0
extras/example projects/JuceLibraryCode/AppConfig.h View File

@@ -48,6 +48,10 @@
//#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES //#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES
#endif #endif
#ifndef JUCE_INCLUDE_ZLIB_CODE
//#define JUCE_INCLUDE_ZLIB_CODE
#endif
//============================================================================== //==============================================================================
// juce_graphics flags: // juce_graphics flags:


+ 3
- 3
modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm View File

@@ -932,7 +932,7 @@ public:
r.size.width = component.getWidth(); r.size.width = component.getWidth();
r.size.height = component.getHeight(); r.size.height = component.getHeight();
[[view superview] setFrame: r]; [[view superview] setFrame: r];
[view setFrame: NSMakeRect (0, 0, component.getWidth(), component.getHeight())];
[view setFrame: makeNSRect (component.getLocalBounds())];
[view setNeedsDisplay: YES]; [view setNeedsDisplay: YES];
} }
@@ -961,7 +961,7 @@ public:
static NSView* createViewFor (AudioProcessor* filter, JuceAU* au, AudioProcessorEditor* const editor) static NSView* createViewFor (AudioProcessor* filter, JuceAU* au, AudioProcessorEditor* const editor)
{ {
EditorCompHolder* editorCompHolder = new EditorCompHolder (editor); EditorCompHolder* editorCompHolder = new EditorCompHolder (editor);
NSRect r = NSMakeRect (0, 0, editorCompHolder->getWidth(), editorCompHolder->getHeight());
NSRect r = makeNSRect (editorCompHolder->getLocalBounds());
static JuceUIViewClass cls; static JuceUIViewClass cls;
NSView* view = [[cls.createInstance() initWithFrame: r] autorelease]; NSView* view = [[cls.createInstance() initWithFrame: r] autorelease];
@@ -999,7 +999,7 @@ public:
r.size.width = editor->getWidth(); r.size.width = editor->getWidth();
r.size.height = editor->getHeight(); r.size.height = editor->getHeight();
[[view superview] setFrame: r]; [[view superview] setFrame: r];
[view setFrame: NSMakeRect (0, 0, editor->getWidth(), editor->getHeight())];
[view setFrame: makeNSRect (editor->getLocalBounds())];
[view setNeedsDisplay: YES]; [view setNeedsDisplay: YES];
} }
} }


+ 9
- 0
modules/juce_core/native/juce_osx_ObjCHelpers.h View File

@@ -55,6 +55,15 @@ namespace
{ {
return [NSString string]; return [NSString string];
} }
template <typename RectangleType>
static NSRect makeNSRect (const RectangleType& r) noexcept
{
return NSMakeRect (static_cast <CGFloat> (r.getX()),
static_cast <CGFloat> (r.getY()),
static_cast <CGFloat> (r.getWidth()),
static_cast <CGFloat> (r.getHeight()));
}
} }
//============================================================================== //==============================================================================


+ 1
- 1
modules/juce_graphics/contexts/juce_GraphicsContext.cpp View File

@@ -85,7 +85,7 @@ bool Graphics::reduceClipRegion (const int x, const int y, const int w, const in
return reduceClipRegion (Rectangle<int> (x, y, w, h)); return reduceClipRegion (Rectangle<int> (x, y, w, h));
} }
bool Graphics::reduceClipRegion (const RectangleList& clipRegion)
bool Graphics::reduceClipRegion (const RectangleList<int>& clipRegion)
{ {
saveStateIfPending(); saveStateIfPending();
return context.clipToRectangleList (clipRegion); return context.clipToRectangleList (clipRegion);


+ 2
- 3
modules/juce_graphics/contexts/juce_GraphicsContext.h View File

@@ -26,7 +26,7 @@
#define JUCE_GRAPHICSCONTEXT_H_INCLUDED #define JUCE_GRAPHICSCONTEXT_H_INCLUDED
#include "../fonts/juce_Font.h" #include "../fonts/juce_Font.h"
#include "../geometry/juce_Rectangle.h"
#include "../geometry/juce_RectangleList.h"
#include "../geometry/juce_PathStrokeType.h" #include "../geometry/juce_PathStrokeType.h"
#include "../geometry/juce_Line.h" #include "../geometry/juce_Line.h"
#include "../colour/juce_Colours.h" #include "../colour/juce_Colours.h"
@@ -35,7 +35,6 @@
class LowLevelGraphicsContext; class LowLevelGraphicsContext;
class Image; class Image;
class FillType; class FillType;
class RectangleList;
//============================================================================== //==============================================================================
@@ -597,7 +596,7 @@ public:
@returns true if the resulting clipping region is non-zero in size @returns true if the resulting clipping region is non-zero in size
@see setOrigin, clipRegionIntersects @see setOrigin, clipRegionIntersects
*/ */
bool reduceClipRegion (const RectangleList& clipRegion);
bool reduceClipRegion (const RectangleList<int>& clipRegion);
/** Intersects the current clipping region with a path. /** Intersects the current clipping region with a path.


+ 1
- 1
modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h View File

@@ -71,7 +71,7 @@ public:
virtual float getTargetDeviceScaleFactor() { return 1.0f; } virtual float getTargetDeviceScaleFactor() { return 1.0f; }
virtual bool clipToRectangle (const Rectangle<int>&) = 0; virtual bool clipToRectangle (const Rectangle<int>&) = 0;
virtual bool clipToRectangleList (const RectangleList&) = 0;
virtual bool clipToRectangleList (const RectangleList<int>&) = 0;
virtual void excludeClipRectangle (const Rectangle<int>&) = 0; virtual void excludeClipRectangle (const Rectangle<int>&) = 0;
virtual void clipToPath (const Path&, const AffineTransform&) = 0; virtual void clipToPath (const Path&, const AffineTransform&) = 0;
virtual void clipToImageAlpha (const Image&, const AffineTransform&) = 0; virtual void clipToImageAlpha (const Image&, const AffineTransform&) = 0;


+ 2
- 2
modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp View File

@@ -117,7 +117,7 @@ bool LowLevelGraphicsPostScriptRenderer::clipToRectangle (const Rectangle<int>&
return stateStack.getLast()->clip.clipTo (r.translated (stateStack.getLast()->xOffset, stateStack.getLast()->yOffset)); return stateStack.getLast()->clip.clipTo (r.translated (stateStack.getLast()->xOffset, stateStack.getLast()->yOffset));
} }
bool LowLevelGraphicsPostScriptRenderer::clipToRectangleList (const RectangleList& clipRegion)
bool LowLevelGraphicsPostScriptRenderer::clipToRectangleList (const RectangleList<int>& clipRegion)
{ {
needToClip = true; needToClip = true;
return stateStack.getLast()->clip.clipTo (clipRegion); return stateStack.getLast()->clip.clipTo (clipRegion);
@@ -470,7 +470,7 @@ void LowLevelGraphicsPostScriptRenderer::drawImage (const Image& sourceImage, co
writeTransform (transform.translated ((float) stateStack.getLast()->xOffset, (float) stateStack.getLast()->yOffset) writeTransform (transform.translated ((float) stateStack.getLast()->xOffset, (float) stateStack.getLast()->yOffset)
.scaled (1.0f, -1.0f)); .scaled (1.0f, -1.0f));
RectangleList imageClip;
RectangleList<int> imageClip;
sourceImage.createSolidAreaMask (imageClip, 0.5f); sourceImage.createSolidAreaMask (imageClip, 0.5f);
out << "newpath "; out << "newpath ";


+ 2
- 2
modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h View File

@@ -52,7 +52,7 @@ public:
float getScaleFactor() override; float getScaleFactor() override;
bool clipToRectangle (const Rectangle<int>&) override; bool clipToRectangle (const Rectangle<int>&) override;
bool clipToRectangleList (const RectangleList&) override;
bool clipToRectangleList (const RectangleList<int>&) override;
void excludeClipRectangle (const Rectangle<int>&) override; void excludeClipRectangle (const Rectangle<int>&) override;
void clipToPath (const Path&, const AffineTransform&) override; void clipToPath (const Path&, const AffineTransform&) override;
void clipToImageAlpha (const Image&, const AffineTransform&) override; void clipToImageAlpha (const Image&, const AffineTransform&) override;
@@ -100,7 +100,7 @@ protected:
SavedState(); SavedState();
~SavedState(); ~SavedState();
RectangleList clip;
RectangleList<int> clip;
int xOffset, yOffset; int xOffset, yOffset;
FillType fillType; FillType fillType;
Font font; Font font;


+ 4
- 4
modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp View File

@@ -28,7 +28,7 @@ LowLevelGraphicsSoftwareRenderer::LowLevelGraphicsSoftwareRenderer (const Image&
} }
LowLevelGraphicsSoftwareRenderer::LowLevelGraphicsSoftwareRenderer (const Image& image, Point<int> origin, LowLevelGraphicsSoftwareRenderer::LowLevelGraphicsSoftwareRenderer (const Image& image, Point<int> origin,
const RectangleList& initialClip)
const RectangleList<int>& initialClip)
: savedState (new RenderingHelpers::SoftwareRendererSavedState (image, initialClip, origin.x, origin.y)) : savedState (new RenderingHelpers::SoftwareRendererSavedState (image, initialClip, origin.x, origin.y))
{ {
} }
@@ -45,9 +45,9 @@ float LowLevelGraphicsSoftwareRenderer::getScaleFactor()
Rectangle<int> LowLevelGraphicsSoftwareRenderer::getClipBounds() const { return savedState->getClipBounds(); } Rectangle<int> LowLevelGraphicsSoftwareRenderer::getClipBounds() const { return savedState->getClipBounds(); }
bool LowLevelGraphicsSoftwareRenderer::isClipEmpty() const { return savedState->clip == nullptr; } bool LowLevelGraphicsSoftwareRenderer::isClipEmpty() const { return savedState->clip == nullptr; }
bool LowLevelGraphicsSoftwareRenderer::clipToRectangle (const Rectangle<int>& r) { return savedState->clipToRectangle (r); }
bool LowLevelGraphicsSoftwareRenderer::clipToRectangleList (const RectangleList& r) { return savedState->clipToRectangleList (r); }
void LowLevelGraphicsSoftwareRenderer::excludeClipRectangle (const Rectangle<int>& r) { savedState->excludeClipRectangle (r); }
bool LowLevelGraphicsSoftwareRenderer::clipToRectangle (const Rectangle<int>& r) { return savedState->clipToRectangle (r); }
bool LowLevelGraphicsSoftwareRenderer::clipToRectangleList (const RectangleList<int>& r) { return savedState->clipToRectangleList (r); }
void LowLevelGraphicsSoftwareRenderer::excludeClipRectangle (const Rectangle<int>& r) { savedState->excludeClipRectangle (r); }
void LowLevelGraphicsSoftwareRenderer::clipToPath (const Path& path, const AffineTransform& transform) void LowLevelGraphicsSoftwareRenderer::clipToPath (const Path& path, const AffineTransform& transform)
{ {


+ 2
- 2
modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h View File

@@ -42,7 +42,7 @@ public:
//============================================================================== //==============================================================================
LowLevelGraphicsSoftwareRenderer (const Image& imageToRenderOnto); LowLevelGraphicsSoftwareRenderer (const Image& imageToRenderOnto);
LowLevelGraphicsSoftwareRenderer (const Image& imageToRenderOnto, Point<int> origin, LowLevelGraphicsSoftwareRenderer (const Image& imageToRenderOnto, Point<int> origin,
const RectangleList& initialClip);
const RectangleList<int>& initialClip);
~LowLevelGraphicsSoftwareRenderer(); ~LowLevelGraphicsSoftwareRenderer();
bool isVectorDevice() const override; bool isVectorDevice() const override;
@@ -50,7 +50,7 @@ public:
void addTransform (const AffineTransform&) override; void addTransform (const AffineTransform&) override;
float getScaleFactor() override; float getScaleFactor() override;
bool clipToRectangle (const Rectangle<int>&) override; bool clipToRectangle (const Rectangle<int>&) override;
bool clipToRectangleList (const RectangleList&) override;
bool clipToRectangleList (const RectangleList<int>&) override;
void excludeClipRectangle (const Rectangle<int>&) override; void excludeClipRectangle (const Rectangle<int>&) override;
void clipToPath (const Path&, const AffineTransform&) override; void clipToPath (const Path&, const AffineTransform&) override;
void clipToImageAlpha (const Image&, const AffineTransform&) override; void clipToImageAlpha (const Image&, const AffineTransform&) override;


+ 1
- 1
modules/juce_graphics/geometry/juce_EdgeTable.cpp View File

@@ -124,7 +124,7 @@ EdgeTable::EdgeTable (const Rectangle<int>& rectangleToAdd)
} }
} }
EdgeTable::EdgeTable (const RectangleList& rectanglesToAdd)
EdgeTable::EdgeTable (const RectangleList<int>& rectanglesToAdd)
: bounds (rectanglesToAdd.getBounds()), : bounds (rectanglesToAdd.getBounds()),
maxEdgesPerLine (juce_edgeTableDefaultEdgesPerLine), maxEdgesPerLine (juce_edgeTableDefaultEdgesPerLine),
lineStrideElements ((juce_edgeTableDefaultEdgesPerLine << 1) + 1), lineStrideElements ((juce_edgeTableDefaultEdgesPerLine << 1) + 1),


+ 1
- 1
modules/juce_graphics/geometry/juce_EdgeTable.h View File

@@ -59,7 +59,7 @@ public:
explicit EdgeTable (const Rectangle<int>& rectangleToAdd); explicit EdgeTable (const Rectangle<int>& rectangleToAdd);
/** Creates an edge table containing a rectangle list. */ /** Creates an edge table containing a rectangle list. */
explicit EdgeTable (const RectangleList& rectanglesToAdd);
explicit EdgeTable (const RectangleList<int>& rectanglesToAdd);
/** Creates an edge table containing a rectangle. */ /** Creates an edge table containing a rectangle. */
explicit EdgeTable (const Rectangle<float>& rectangleToAdd); explicit EdgeTable (const Rectangle<float>& rectangleToAdd);


+ 3
- 4
modules/juce_graphics/geometry/juce_Rectangle.h View File

@@ -26,7 +26,6 @@
#define JUCE_RECTANGLE_H_INCLUDED #define JUCE_RECTANGLE_H_INCLUDED
#include "juce_Point.h" #include "juce_Point.h"
class RectangleList;
//============================================================================== //==============================================================================
@@ -809,15 +808,15 @@ public:
JUCE_DEPRECATED_WITH_BODY (Rectangle transformed (const AffineTransform& t) const noexcept, { return transformedBy (t); }) JUCE_DEPRECATED_WITH_BODY (Rectangle transformed (const AffineTransform& t) const noexcept, { return transformedBy (t); })
private: private:
friend class RectangleList;
template <typename OtherType> friend class Rectangle;
template <typename OtherType> friend class RectangleList;
Point<ValueType> pos; Point<ValueType> pos;
ValueType w, h; ValueType w, h;
static int parseIntAfterSpace (const String& s) noexcept static int parseIntAfterSpace (const String& s) noexcept
{ return s.getCharPointer().findEndOfWhitespace().getIntValue32(); } { return s.getCharPointer().findEndOfWhitespace().getIntValue32(); }
template <typename OtherType> friend class Rectangle;
void copyWithRounding (Rectangle<int>& result) const noexcept { result = getSmallestIntegerContainer(); } void copyWithRounding (Rectangle<int>& result) const noexcept { result = getSmallestIntegerContainer(); }
void copyWithRounding (Rectangle<float>& result) const noexcept { result = toFloat(); } void copyWithRounding (Rectangle<float>& result) const noexcept { result = toFloat(); }
void copyWithRounding (Rectangle<double>& result) const noexcept { result = toDouble(); } void copyWithRounding (Rectangle<double>& result) const noexcept { result = toDouble(); }


+ 0
- 511
modules/juce_graphics/geometry/juce_RectangleList.cpp View File

@@ -1,511 +0,0 @@
/*
==============================================================================
This file is part of the JUCE library.
Copyright (c) 2013 - Raw Material Software Ltd.
Permission is granted to use this software under the terms of either:
a) the GPL v2 (or any later version)
b) the Affero GPL v3
Details of these licenses can be found 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.juce.com for more information.
==============================================================================
*/
RectangleList::RectangleList() noexcept
{
}
RectangleList::RectangleList (const Rectangle<int>& rect)
{
addWithoutMerging (rect);
}
RectangleList::RectangleList (const RectangleList& other)
: rects (other.rects)
{
}
RectangleList& RectangleList::operator= (const RectangleList& other)
{
rects = other.rects;
return *this;
}
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
RectangleList::RectangleList (RectangleList&& other) noexcept
: rects (static_cast <Array <Rectangle<int> >&&> (other.rects))
{
}
RectangleList& RectangleList::operator= (RectangleList&& other) noexcept
{
rects = static_cast <Array <Rectangle<int> >&&> (other.rects);
return *this;
}
#endif
RectangleList::~RectangleList()
{
}
//==============================================================================
void RectangleList::clear()
{
rects.clearQuick();
}
Rectangle<int> RectangleList::getRectangle (const int index) const noexcept
{
if (isPositiveAndBelow (index, rects.size()))
return rects.getReference (index);
return Rectangle<int>();
}
bool RectangleList::isEmpty() const noexcept
{
return rects.size() == 0;
}
//==============================================================================
RectangleList::Iterator::Iterator (const RectangleList& list) noexcept
: current (nullptr),
owner (list),
index (list.rects.size())
{
}
RectangleList::Iterator::~Iterator()
{
}
bool RectangleList::Iterator::next() noexcept
{
if (--index >= 0)
{
current = &(owner.rects.getReference (index));
return true;
}
return false;
}
//==============================================================================
void RectangleList::add (const Rectangle<int>& rect)
{
if (! rect.isEmpty())
{
if (rects.size() == 0)
{
rects.add (rect);
}
else
{
bool anyOverlaps = false;
for (int j = rects.size(); --j >= 0;)
{
Rectangle<int>& ourRect = rects.getReference (j);
if (rect.intersects (ourRect))
{
if (rect.contains (ourRect))
rects.remove (j);
else if (! ourRect.reduceIfPartlyContainedIn (rect))
anyOverlaps = true;
}
}
if (anyOverlaps && rects.size() > 0)
{
RectangleList r (rect);
for (int i = rects.size(); --i >= 0;)
{
const Rectangle<int>& ourRect = rects.getReference (i);
if (rect.intersects (ourRect))
{
r.subtract (ourRect);
if (r.rects.size() == 0)
return;
}
}
rects.addArray (r.rects);
}
else
{
rects.add (rect);
}
}
}
}
void RectangleList::addWithoutMerging (const Rectangle<int>& rect)
{
if (! rect.isEmpty())
rects.add (rect);
}
void RectangleList::add (const int x, const int y, const int w, const int h)
{
add (Rectangle<int> (x, y, w, h));
}
void RectangleList::add (const RectangleList& other)
{
for (const Rectangle<int>* r = other.begin(), * const e = other.end(); r != e; ++r)
add (*r);
}
void RectangleList::subtract (const Rectangle<int>& rect)
{
const int originalNumRects = rects.size();
if (originalNumRects > 0)
{
const int x1 = rect.pos.x;
const int y1 = rect.pos.y;
const int x2 = x1 + rect.w;
const int y2 = y1 + rect.h;
for (int i = getNumRectangles(); --i >= 0;)
{
Rectangle<int>& r = rects.getReference (i);
const int rx1 = r.pos.x;
const int ry1 = r.pos.y;
const int rx2 = rx1 + r.w;
const int ry2 = ry1 + r.h;
if (! (x2 <= rx1 || x1 >= rx2 || y2 <= ry1 || y1 >= ry2))
{
if (x1 > rx1 && x1 < rx2)
{
if (y1 <= ry1 && y2 >= ry2 && x2 >= rx2)
{
r.w = x1 - rx1;
}
else
{
r.pos.x = x1;
r.w = rx2 - x1;
rects.insert (++i, Rectangle<int> (rx1, ry1, x1 - rx1, ry2 - ry1));
++i;
}
}
else if (x2 > rx1 && x2 < rx2)
{
r.pos.x = x2;
r.w = rx2 - x2;
if (y1 > ry1 || y2 < ry2 || x1 > rx1)
{
rects.insert (++i, Rectangle<int> (rx1, ry1, x2 - rx1, ry2 - ry1));
++i;
}
}
else if (y1 > ry1 && y1 < ry2)
{
if (x1 <= rx1 && x2 >= rx2 && y2 >= ry2)
{
r.h = y1 - ry1;
}
else
{
r.pos.y = y1;
r.h = ry2 - y1;
rects.insert (++i, Rectangle<int> (rx1, ry1, rx2 - rx1, y1 - ry1));
++i;
}
}
else if (y2 > ry1 && y2 < ry2)
{
r.pos.y = y2;
r.h = ry2 - y2;
if (x1 > rx1 || x2 < rx2 || y1 > ry1)
{
rects.insert (++i, Rectangle<int> (rx1, ry1, rx2 - rx1, y2 - ry1));
++i;
}
}
else
{
rects.remove (i);
}
}
}
}
}
bool RectangleList::subtract (const RectangleList& otherList)
{
for (int i = otherList.rects.size(); --i >= 0 && rects.size() > 0;)
subtract (otherList.rects.getReference (i));
return rects.size() > 0;
}
bool RectangleList::clipTo (const Rectangle<int>& rect)
{
bool notEmpty = false;
if (rect.isEmpty())
{
clear();
}
else
{
for (int i = rects.size(); --i >= 0;)
{
Rectangle<int>& r = rects.getReference (i);
if (! rect.intersectRectangle (r.pos.x, r.pos.y, r.w, r.h))
rects.remove (i);
else
notEmpty = true;
}
}
return notEmpty;
}
bool RectangleList::clipTo (const RectangleList& other)
{
if (rects.size() == 0)
return false;
RectangleList result;
for (int j = 0; j < rects.size(); ++j)
{
const Rectangle<int>& rect = rects.getReference (j);
for (int i = other.rects.size(); --i >= 0;)
{
Rectangle<int> r (other.rects.getReference (i));
if (rect.intersectRectangle (r.pos.x, r.pos.y, r.w, r.h))
result.rects.add (r);
}
}
swapWith (result);
return ! isEmpty();
}
bool RectangleList::getIntersectionWith (const Rectangle<int>& rect, RectangleList& destRegion) const
{
destRegion.clear();
if (! rect.isEmpty())
{
for (int i = rects.size(); --i >= 0;)
{
Rectangle<int> r (rects.getReference (i));
if (rect.intersectRectangle (r.pos.x, r.pos.y, r.w, r.h))
destRegion.rects.add (r);
}
}
return destRegion.rects.size() > 0;
}
void RectangleList::swapWith (RectangleList& otherList) noexcept
{
rects.swapWith (otherList.rects);
}
//==============================================================================
void RectangleList::consolidate()
{
for (int i = 0; i < getNumRectangles() - 1; ++i)
{
Rectangle<int>& r = rects.getReference (i);
const int rx1 = r.pos.x;
const int ry1 = r.pos.y;
const int rx2 = rx1 + r.w;
const int ry2 = ry1 + r.h;
for (int j = rects.size(); --j > i;)
{
Rectangle<int>& r2 = rects.getReference (j);
const int jrx1 = r2.pos.x;
const int jry1 = r2.pos.y;
const int jrx2 = jrx1 + r2.w;
const int jry2 = jry1 + r2.h;
// if the vertical edges of any blocks are touching and their horizontals don't
// line up, split them horizontally..
if (jrx1 == rx2 || jrx2 == rx1)
{
if (jry1 > ry1 && jry1 < ry2)
{
r.h = jry1 - ry1;
rects.add (Rectangle<int> (rx1, jry1, rx2 - rx1, ry2 - jry1));
i = -1;
break;
}
if (jry2 > ry1 && jry2 < ry2)
{
r.h = jry2 - ry1;
rects.add (Rectangle<int> (rx1, jry2, rx2 - rx1, ry2 - jry2));
i = -1;
break;
}
else if (ry1 > jry1 && ry1 < jry2)
{
r2.h = ry1 - jry1;
rects.add (Rectangle<int> (jrx1, ry1, jrx2 - jrx1, jry2 - ry1));
i = -1;
break;
}
else if (ry2 > jry1 && ry2 < jry2)
{
r2.h = ry2 - jry1;
rects.add (Rectangle<int> (jrx1, ry2, jrx2 - jrx1, jry2 - ry2));
i = -1;
break;
}
}
}
}
for (int i = 0; i < rects.size() - 1; ++i)
{
Rectangle<int>& r = rects.getReference (i);
for (int j = rects.size(); --j > i;)
{
if (r.enlargeIfAdjacent (rects.getReference (j)))
{
rects.remove (j);
i = -1;
break;
}
}
}
}
//==============================================================================
bool RectangleList::containsPoint (const int x, const int y) const noexcept
{
for (const Rectangle<int>* r = rects.begin(), * const e = rects.end(); r != e; ++r)
if (r->contains (x, y))
return true;
return false;
}
bool RectangleList::containsRectangle (const Rectangle<int>& rectangleToCheck) const
{
if (rects.size() > 1)
{
RectangleList r (rectangleToCheck);
for (int i = rects.size(); --i >= 0;)
{
r.subtract (rects.getReference (i));
if (r.rects.size() == 0)
return true;
}
}
else if (rects.size() > 0)
{
return rects.getReference (0).contains (rectangleToCheck);
}
return false;
}
bool RectangleList::intersectsRectangle (const Rectangle<int>& rectangleToCheck) const noexcept
{
for (const Rectangle<int>* r = rects.begin(), * const e = rects.end(); r != e; ++r)
if (r->intersects (rectangleToCheck))
return true;
return false;
}
bool RectangleList::intersects (const RectangleList& other) const noexcept
{
for (const Rectangle<int>* r = rects.begin(), * const e = rects.end(); r != e; ++r)
if (other.intersectsRectangle (*r))
return true;
return false;
}
Rectangle<int> RectangleList::getBounds() const noexcept
{
if (rects.size() <= 1)
{
if (rects.size() == 0)
return Rectangle<int>();
return rects.getReference (0);
}
else
{
const Rectangle<int>& r = rects.getReference (0);
int minX = r.pos.x;
int minY = r.pos.y;
int maxX = minX + r.w;
int maxY = minY + r.h;
for (int i = rects.size(); --i > 0;)
{
const Rectangle<int>& r2 = rects.getReference (i);
minX = jmin (minX, r2.pos.x);
minY = jmin (minY, r2.pos.y);
maxX = jmax (maxX, r2.getRight());
maxY = jmax (maxY, r2.getBottom());
}
return Rectangle<int> (minX, minY, maxX - minX, maxY - minY);
}
}
void RectangleList::offsetAll (const int dx, const int dy) noexcept
{
for (Rectangle<int>* r = rects.begin(), * const e = rects.end(); r != e; ++r)
{
r->pos.x += dx;
r->pos.y += dy;
}
}
//==============================================================================
Path RectangleList::toPath() const
{
Path p;
for (int i = 0; i < rects.size(); ++i)
p.addRectangle (rects.getReference (i));
return p;
}

+ 436
- 69
modules/juce_graphics/geometry/juce_RectangleList.h View File

@@ -39,33 +39,50 @@
@see Rectangle @see Rectangle
*/ */
class JUCE_API RectangleList
template <typename ValueType>
class RectangleList
{ {
public: public:
typedef Rectangle<ValueType> RectangleType;
//============================================================================== //==============================================================================
/** Creates an empty RectangleList */ /** Creates an empty RectangleList */
RectangleList() noexcept;
RectangleList() noexcept {}
/** Creates a copy of another list */ /** Creates a copy of another list */
RectangleList (const RectangleList& other);
RectangleList (const RectangleList& other) : rects (other.rects)
{
}
/** Creates a list containing just one rectangle. */ /** Creates a list containing just one rectangle. */
RectangleList (const Rectangle<int>& rect);
RectangleList (const RectangleType& rect)
{
addWithoutMerging (rect);
}
/** Copies this list from another one. */ /** Copies this list from another one. */
RectangleList& operator= (const RectangleList& other);
RectangleList& operator= (const RectangleList& other)
{
rects = other.rects;
return *this;
}
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS #if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
RectangleList (RectangleList&& other) noexcept;
RectangleList& operator= (RectangleList&& other) noexcept;
#endif
RectangleList (RectangleList&& other) noexcept
: rects (static_cast <Array <RectangleType >&&> (other.rects))
{
}
/** Destructor. */
~RectangleList();
RectangleList& operator= (RectangleList&& other) noexcept
{
rects = static_cast <Array <RectangleType >&&> (other.rects);
return *this;
}
#endif
//============================================================================== //==============================================================================
/** Returns true if the region is empty. */ /** Returns true if the region is empty. */
bool isEmpty() const noexcept;
bool isEmpty() const noexcept { return rects.size() == 0; }
/** Returns the number of rectangles in the list. */ /** Returns the number of rectangles in the list. */
int getNumRectangles() const noexcept { return rects.size(); } int getNumRectangles() const noexcept { return rects.size(); }
@@ -75,48 +92,198 @@ public:
@returns the rectangle at the index, or an empty rectangle if the @returns the rectangle at the index, or an empty rectangle if the
index is out-of-range. index is out-of-range.
*/ */
Rectangle<int> getRectangle (int index) const noexcept;
RectangleType getRectangle (int index) const noexcept
{
if (isPositiveAndBelow (index, rects.size()))
return rects.getReference (index);
return RectangleType();
}
//============================================================================== //==============================================================================
/** Removes all rectangles to leave an empty region. */ /** Removes all rectangles to leave an empty region. */
void clear();
void clear()
{
rects.clearQuick();
}
/** Merges a new rectangle into the list. /** Merges a new rectangle into the list.
The rectangle being added will first be clipped to remove any parts of it The rectangle being added will first be clipped to remove any parts of it
that overlap existing rectangles in the list.
that overlap existing rectangles in the list, and adjacent rectangles will be
merged into it.
*/ */
void add (int x, int y, int width, int height);
void add (const RectangleType& rect)
{
if (! rect.isEmpty())
{
if (rects.size() == 0)
{
rects.add (rect);
}
else
{
bool anyOverlaps = false;
for (int j = rects.size(); --j >= 0;)
{
RectangleType& ourRect = rects.getReference (j);
if (rect.intersects (ourRect))
{
if (rect.contains (ourRect))
rects.remove (j);
else if (! ourRect.reduceIfPartlyContainedIn (rect))
anyOverlaps = true;
}
}
if (anyOverlaps && rects.size() > 0)
{
RectangleList r (rect);
for (int i = rects.size(); --i >= 0;)
{
const RectangleType& ourRect = rects.getReference (i);
if (rect.intersects (ourRect))
{
r.subtract (ourRect);
if (r.rects.size() == 0)
return;
}
}
rects.addArray (r.rects);
}
else
{
rects.add (rect);
}
}
}
}
/** Merges a new rectangle into the list. /** Merges a new rectangle into the list.
The rectangle being added will first be clipped to remove any parts of it The rectangle being added will first be clipped to remove any parts of it
that overlap existing rectangles in the list, and adjacent rectangles will be
merged into it.
that overlap existing rectangles in the list.
*/ */
void add (const Rectangle<int>& rect);
void add (ValueType x, ValueType y, ValueType width, ValueType height)
{
add (RectangleType (x, y, width, height));
}
/** Dumbly adds a rectangle to the list without checking for overlaps. /** Dumbly adds a rectangle to the list without checking for overlaps.
This simply adds the rectangle to the end, it doesn't merge it or remove This simply adds the rectangle to the end, it doesn't merge it or remove
any overlapping bits. any overlapping bits.
*/ */
void addWithoutMerging (const Rectangle<int>& rect);
void addWithoutMerging (const RectangleType& rect)
{
if (! rect.isEmpty())
rects.add (rect);
}
/** Merges another rectangle list into this one. /** Merges another rectangle list into this one.
Any overlaps between the two lists will be clipped, so that the result is Any overlaps between the two lists will be clipped, so that the result is
the union of both lists. the union of both lists.
*/ */
void add (const RectangleList& other);
void add (const RectangleList& other)
{
for (const RectangleType* r = other.begin(), * const e = other.end(); r != e; ++r)
add (*r);
}
/** Removes a rectangular region from the list. /** Removes a rectangular region from the list.
Any rectangles in the list which overlap this will be clipped and subdivided Any rectangles in the list which overlap this will be clipped and subdivided
if necessary. if necessary.
*/ */
void subtract (const Rectangle<int>& rect);
void subtract (const RectangleType& rect)
{
const int originalNumRects = rects.size();
if (originalNumRects > 0)
{
const ValueType x1 = rect.pos.x;
const ValueType y1 = rect.pos.y;
const ValueType x2 = x1 + rect.w;
const ValueType y2 = y1 + rect.h;
for (int i = getNumRectangles(); --i >= 0;)
{
RectangleType& r = rects.getReference (i);
const ValueType rx1 = r.pos.x;
const ValueType ry1 = r.pos.y;
const ValueType rx2 = rx1 + r.w;
const ValueType ry2 = ry1 + r.h;
if (! (x2 <= rx1 || x1 >= rx2 || y2 <= ry1 || y1 >= ry2))
{
if (x1 > rx1 && x1 < rx2)
{
if (y1 <= ry1 && y2 >= ry2 && x2 >= rx2)
{
r.w = x1 - rx1;
}
else
{
r.pos.x = x1;
r.w = rx2 - x1;
rects.insert (++i, RectangleType (rx1, ry1, x1 - rx1, ry2 - ry1));
++i;
}
}
else if (x2 > rx1 && x2 < rx2)
{
r.pos.x = x2;
r.w = rx2 - x2;
if (y1 > ry1 || y2 < ry2 || x1 > rx1)
{
rects.insert (++i, RectangleType (rx1, ry1, x2 - rx1, ry2 - ry1));
++i;
}
}
else if (y1 > ry1 && y1 < ry2)
{
if (x1 <= rx1 && x2 >= rx2 && y2 >= ry2)
{
r.h = y1 - ry1;
}
else
{
r.pos.y = y1;
r.h = ry2 - y1;
rects.insert (++i, RectangleType (rx1, ry1, rx2 - rx1, y1 - ry1));
++i;
}
}
else if (y2 > ry1 && y2 < ry2)
{
r.pos.y = y2;
r.h = ry2 - y2;
if (x1 > rx1 || x2 < rx2 || y1 > ry1)
{
rects.insert (++i, RectangleType (rx1, ry1, rx2 - rx1, y2 - ry1));
++i;
}
}
else
{
rects.remove (i);
}
}
}
}
}
/** Removes all areas in another RectangleList from this one. /** Removes all areas in another RectangleList from this one.
@@ -125,7 +292,14 @@ public:
@returns true if the resulting list is non-empty. @returns true if the resulting list is non-empty.
*/ */
bool subtract (const RectangleList& otherList);
bool subtract (const RectangleList& otherList)
{
for (int i = otherList.rects.size(); --i >= 0 && rects.size() > 0;)
subtract (otherList.rects.getReference (i));
return rects.size() > 0;
}
/** Removes any areas of the region that lie outside a given rectangle. /** Removes any areas of the region that lie outside a given rectangle.
@@ -136,7 +310,29 @@ public:
@see getIntersectionWith @see getIntersectionWith
*/ */
bool clipTo (const Rectangle<int>& rect);
bool clipTo (const RectangleType& rect)
{
bool notEmpty = false;
if (rect.isEmpty())
{
clear();
}
else
{
for (int i = rects.size(); --i >= 0;)
{
RectangleType& r = rects.getReference (i);
if (! rect.intersectRectangle (r.pos.x, r.pos.y, r.w, r.h))
rects.remove (i);
else
notEmpty = true;
}
}
return notEmpty;
}
/** Removes any areas of the region that lie outside a given rectangle list. /** Removes any areas of the region that lie outside a given rectangle list.
@@ -147,7 +343,30 @@ public:
@see getIntersectionWith @see getIntersectionWith
*/ */
bool clipTo (const RectangleList& other);
bool clipTo (const RectangleList& other)
{
if (rects.size() == 0)
return false;
RectangleList result;
for (int j = 0; j < rects.size(); ++j)
{
const RectangleType& rect = rects.getReference (j);
for (int i = other.rects.size(); --i >= 0;)
{
RectangleType r (other.rects.getReference (i));
if (rect.intersectRectangle (r.pos.x, r.pos.y, r.w, r.h))
result.rects.add (r);
}
}
swapWith (result);
return ! isEmpty();
}
/** Creates a region which is the result of clipping this one to a given rectangle. /** Creates a region which is the result of clipping this one to a given rectangle.
@@ -158,21 +377,54 @@ public:
@see clipTo @see clipTo
*/ */
bool getIntersectionWith (const Rectangle<int>& rect, RectangleList& destRegion) const;
bool getIntersectionWith (const RectangleType& rect, RectangleList& destRegion) const
{
destRegion.clear();
if (! rect.isEmpty())
{
for (int i = rects.size(); --i >= 0;)
{
RectangleType r (rects.getReference (i));
if (rect.intersectRectangle (r.pos.x, r.pos.y, r.w, r.h))
destRegion.rects.add (r);
}
}
return destRegion.rects.size() > 0;
}
/** Swaps the contents of this and another list. /** Swaps the contents of this and another list.
This swaps their internal pointers, so is hugely faster than using copy-by-value This swaps their internal pointers, so is hugely faster than using copy-by-value
to swap them. to swap them.
*/ */
void swapWith (RectangleList& otherList) noexcept;
void swapWith (RectangleList& otherList) noexcept
{
rects.swapWith (otherList.rects);
}
//============================================================================== //==============================================================================
/** Checks whether the region contains a given point. /** Checks whether the region contains a given point.
@returns true if the point lies within one of the rectangles in the list
*/
bool containsPoint (Point<ValueType> point) const noexcept
{
for (const RectangleType* r = rects.begin(), * const e = rects.end(); r != e; ++r)
if (r->contains (point))
return true;
return false;
}
/** Checks whether the region contains a given point.
@returns true if the point lies within one of the rectangles in the list @returns true if the point lies within one of the rectangles in the list
*/ */
bool containsPoint (int x, int y) const noexcept;
bool containsPoint (ValueType x, ValueType y) const noexcept
{
return contains (Point<ValueType> (x, y));
}
/** Checks whether the region contains the whole of a given rectangle. /** Checks whether the region contains the whole of a given rectangle.
@@ -180,7 +432,27 @@ public:
defined by this object defined by this object
@see intersectsRectangle, containsPoint @see intersectsRectangle, containsPoint
*/ */
bool containsRectangle (const Rectangle<int>& rectangleToCheck) const;
bool containsRectangle (const RectangleType& rectangleToCheck) const
{
if (rects.size() > 1)
{
RectangleList r (rectangleToCheck);
for (int i = rects.size(); --i >= 0;)
{
r.subtract (rects.getReference (i));
if (r.rects.size() == 0)
return true;
}
}
else if (rects.size() > 0)
{
return rects.getReference (0).contains (rectangleToCheck);
}
return false;
}
/** Checks whether the region contains any part of a given rectangle. /** Checks whether the region contains any part of a given rectangle.
@@ -188,17 +460,59 @@ public:
defined by this object defined by this object
@see containsRectangle @see containsRectangle
*/ */
bool intersectsRectangle (const Rectangle<int>& rectangleToCheck) const noexcept;
bool intersectsRectangle (const RectangleType& rectangleToCheck) const noexcept
{
for (const RectangleType* r = rects.begin(), * const e = rects.end(); r != e; ++r)
if (r->intersects (rectangleToCheck))
return true;
return false;
}
/** Checks whether this region intersects any part of another one. /** Checks whether this region intersects any part of another one.
@see intersectsRectangle @see intersectsRectangle
*/ */
bool intersects (const RectangleList& other) const noexcept;
bool intersects (const RectangleList& other) const noexcept
{
for (const RectangleType* r = rects.begin(), * const e = rects.end(); r != e; ++r)
if (other.intersectsRectangle (*r))
return true;
return false;
}
//============================================================================== //==============================================================================
/** Returns the smallest rectangle that can enclose the whole of this region. */ /** Returns the smallest rectangle that can enclose the whole of this region. */
Rectangle<int> getBounds() const noexcept;
RectangleType getBounds() const noexcept
{
if (rects.size() <= 1)
{
if (rects.size() == 0)
return RectangleType();
return rects.getReference (0);
}
const RectangleType& r = rects.getReference (0);
ValueType minX = r.pos.x;
ValueType minY = r.pos.y;
ValueType maxX = minX + r.w;
ValueType maxY = minY + r.h;
for (int i = rects.size(); --i > 0;)
{
const RectangleType& r2 = rects.getReference (i);
minX = jmin (minX, r2.pos.x);
minY = jmin (minY, r2.pos.y);
maxX = jmax (maxX, r2.getRight());
maxY = jmax (maxY, r2.getBottom());
}
return RectangleType (minX, minY, maxX - minX, maxY - minY);
}
/** Optimises the list into a minimum number of constituent rectangles. /** Optimises the list into a minimum number of constituent rectangles.
@@ -206,63 +520,116 @@ public:
possible, to simplify lists that might have been fragmented by repeated possible, to simplify lists that might have been fragmented by repeated
add/subtract calls. add/subtract calls.
*/ */
void consolidate();
void consolidate()
{
for (int i = 0; i < getNumRectangles() - 1; ++i)
{
RectangleType& r = rects.getReference (i);
const ValueType rx1 = r.pos.x;
const ValueType ry1 = r.pos.y;
const ValueType rx2 = rx1 + r.w;
const ValueType ry2 = ry1 + r.h;
for (int j = rects.size(); --j > i;)
{
RectangleType& r2 = rects.getReference (j);
const ValueType jrx1 = r2.pos.x;
const ValueType jry1 = r2.pos.y;
const ValueType jrx2 = jrx1 + r2.w;
const ValueType jry2 = jry1 + r2.h;
// if the vertical edges of any blocks are touching and their horizontals don't
// line up, split them horizontally..
if (jrx1 == rx2 || jrx2 == rx1)
{
if (jry1 > ry1 && jry1 < ry2)
{
r.h = jry1 - ry1;
rects.add (RectangleType (rx1, jry1, rx2 - rx1, ry2 - jry1));
i = -1;
break;
}
if (jry2 > ry1 && jry2 < ry2)
{
r.h = jry2 - ry1;
rects.add (RectangleType (rx1, jry2, rx2 - rx1, ry2 - jry2));
i = -1;
break;
}
else if (ry1 > jry1 && ry1 < jry2)
{
r2.h = ry1 - jry1;
rects.add (RectangleType (jrx1, ry1, jrx2 - jrx1, jry2 - ry1));
i = -1;
break;
}
else if (ry2 > jry1 && ry2 < jry2)
{
r2.h = ry2 - jry1;
rects.add (RectangleType (jrx1, ry2, jrx2 - jrx1, jry2 - ry2));
i = -1;
break;
}
}
}
}
for (int i = 0; i < rects.size() - 1; ++i)
{
RectangleType& r = rects.getReference (i);
for (int j = rects.size(); --j > i;)
{
if (r.enlargeIfAdjacent (rects.getReference (j)))
{
rects.remove (j);
i = -1;
break;
}
}
}
}
/** Adds an x and y value to all the coordinates. */ /** Adds an x and y value to all the coordinates. */
void offsetAll (int dx, int dy) noexcept;
void offsetAll (ValueType dx, ValueType dy) noexcept
{
for (RectangleType* r = rects.begin(), * const e = rects.end(); r != e; ++r)
{
r->pos.x += dx;
r->pos.y += dy;
}
}
/** Scales all the coordinates. */ /** Scales all the coordinates. */
template <typename ScaleType> template <typename ScaleType>
void scaleAll (ScaleType scaleFactor) noexcept void scaleAll (ScaleType scaleFactor) noexcept
{ {
for (Rectangle<int>* r = rects.begin(), * const e = rects.end(); r != e; ++r)
for (RectangleType* r = rects.begin(), * const e = rects.end(); r != e; ++r)
*r *= scaleFactor; *r *= scaleFactor;
} }
//============================================================================== //==============================================================================
/** Creates a Path object to represent this region. */ /** Creates a Path object to represent this region. */
Path toPath() const;
//==============================================================================
/** Standard method for iterating the rectangles in the list. */
const Rectangle<int>* begin() const noexcept { return rects.begin(); }
/** Standard method for iterating the rectangles in the list. */
const Rectangle<int>* end() const noexcept { return rects.end(); }
//==============================================================================
/** An iterator for accessing all the rectangles in a RectangleList.
Note that this class is deprectated in favour of just using the standard
RectangleList::begin() and RectangleList::end() methods, which are more efficient.
*/
class JUCE_API Iterator
Path toPath() const
{ {
public:
//==============================================================================
Iterator (const RectangleList& list) noexcept;
~Iterator();
//==============================================================================
/** Advances to the next rectangle, and returns true if it's not finished.
Path p;
Call this before using getRectangle() to find the rectangle that was returned.
*/
bool next() noexcept;
for (int i = 0; i < rects.size(); ++i)
p.addRectangle (rects.getReference (i));
/** Returns the current rectangle. */
const Rectangle<int>* getRectangle() const noexcept { return current; }
private:
const Rectangle<int>* current;
const RectangleList& owner;
int index;
return p;
}
JUCE_DECLARE_NON_COPYABLE (Iterator)
};
//==============================================================================
/** Standard method for iterating the rectangles in the list. */
const RectangleType* begin() const noexcept { return rects.begin(); }
/** Standard method for iterating the rectangles in the list. */
const RectangleType* end() const noexcept { return rects.end(); }
private: private:
//============================================================================== //==============================================================================
friend class Iterator;
Array <Rectangle<int> > rects;
Array<RectangleType> rects;
JUCE_LEAK_DETECTOR (RectangleList) JUCE_LEAK_DETECTOR (RectangleList)
}; };


+ 1
- 1
modules/juce_graphics/images/juce_Image.cpp View File

@@ -522,7 +522,7 @@ void Image::desaturate()
} }
} }
void Image::createSolidAreaMask (RectangleList& result, const float alphaThreshold) const
void Image::createSolidAreaMask (RectangleList<int>& result, const float alphaThreshold) const
{ {
if (hasAlphaChannel()) if (hasAlphaChannel())
{ {


+ 1
- 1
modules/juce_graphics/images/juce_Image.h View File

@@ -383,7 +383,7 @@ public:
@param alphaThreshold for a semi-transparent image, any pixels whose alpha is @param alphaThreshold for a semi-transparent image, any pixels whose alpha is
above this level will be considered opaque above this level will be considered opaque
*/ */
void createSolidAreaMask (RectangleList& result, float alphaThreshold) const;
void createSolidAreaMask (RectangleList<int>& result, float alphaThreshold) const;
//============================================================================== //==============================================================================
/** Returns a NamedValueSet that is attached to the image and which can be used for /** Returns a NamedValueSet that is attached to the image and which can be used for


+ 0
- 1
modules/juce_graphics/juce_graphics.cpp View File

@@ -105,7 +105,6 @@ namespace juce
#include "geometry/juce_Path.cpp" #include "geometry/juce_Path.cpp"
#include "geometry/juce_PathIterator.cpp" #include "geometry/juce_PathIterator.cpp"
#include "geometry/juce_PathStrokeType.cpp" #include "geometry/juce_PathStrokeType.cpp"
#include "geometry/juce_RectangleList.cpp"
#include "placement/juce_Justification.cpp" #include "placement/juce_Justification.cpp"
#include "placement/juce_RectanglePlacement.cpp" #include "placement/juce_RectanglePlacement.cpp"
#include "contexts/juce_GraphicsContext.cpp" #include "contexts/juce_GraphicsContext.cpp"


+ 19
- 19
modules/juce_graphics/native/juce_RenderingHelpers.h View File

@@ -1550,7 +1550,7 @@ namespace ClipRegions
virtual Ptr applyClipTo (const Ptr& target) const = 0; virtual Ptr applyClipTo (const Ptr& target) const = 0;
virtual Ptr clipToRectangle (const Rectangle<int>&) = 0; virtual Ptr clipToRectangle (const Rectangle<int>&) = 0;
virtual Ptr clipToRectangleList (const RectangleList&) = 0;
virtual Ptr clipToRectangleList (const RectangleList<int>&) = 0;
virtual Ptr excludeClipRectangle (const Rectangle<int>&) = 0; virtual Ptr excludeClipRectangle (const Rectangle<int>&) = 0;
virtual Ptr clipToPath (const Path&, const AffineTransform&) = 0; virtual Ptr clipToPath (const Path&, const AffineTransform&) = 0;
virtual Ptr clipToEdgeTable (const EdgeTable& et) = 0; virtual Ptr clipToEdgeTable (const EdgeTable& et) = 0;
@@ -1572,12 +1572,12 @@ namespace ClipRegions
class EdgeTableRegion : public Base class EdgeTableRegion : public Base
{ {
public: public:
EdgeTableRegion (const EdgeTable& e) : edgeTable (e) {}
EdgeTableRegion (const Rectangle<int>& r) : edgeTable (r) {}
EdgeTableRegion (const Rectangle<float>& r) : edgeTable (r) {}
EdgeTableRegion (const RectangleList& r) : edgeTable (r) {}
EdgeTableRegion (const EdgeTable& e) : edgeTable (e) {}
EdgeTableRegion (const Rectangle<int>& r) : edgeTable (r) {}
EdgeTableRegion (const Rectangle<float>& r) : edgeTable (r) {}
EdgeTableRegion (const RectangleList<int>& r) : edgeTable (r) {}
EdgeTableRegion (const Rectangle<int>& bounds, const Path& p, const AffineTransform& t) : edgeTable (bounds, p, t) {} EdgeTableRegion (const Rectangle<int>& bounds, const Path& p, const AffineTransform& t) : edgeTable (bounds, p, t) {}
EdgeTableRegion (const EdgeTableRegion& other) : Base(), edgeTable (other.edgeTable) {}
EdgeTableRegion (const EdgeTableRegion& other) : Base(), edgeTable (other.edgeTable) {}
Ptr clone() const { return new EdgeTableRegion (*this); } Ptr clone() const { return new EdgeTableRegion (*this); }
Ptr applyClipTo (const Ptr& target) const { return target->clipToEdgeTable (edgeTable); } Ptr applyClipTo (const Ptr& target) const { return target->clipToEdgeTable (edgeTable); }
@@ -1588,9 +1588,9 @@ namespace ClipRegions
return edgeTable.isEmpty() ? nullptr : this; return edgeTable.isEmpty() ? nullptr : this;
} }
Ptr clipToRectangleList (const RectangleList& r)
Ptr clipToRectangleList (const RectangleList<int>& r)
{ {
RectangleList inverse (edgeTable.getMaximumBounds());
RectangleList<int> inverse (edgeTable.getMaximumBounds());
if (inverse.subtract (r)) if (inverse.subtract (r))
for (const Rectangle<int>* i = inverse.begin(), * const e = inverse.end(); i != e; ++i) for (const Rectangle<int>* i = inverse.begin(), * const e = inverse.end(); i != e; ++i)
@@ -1772,7 +1772,7 @@ namespace ClipRegions
{ {
public: public:
RectangleListRegion (const Rectangle<int>& r) : clip (r) {} RectangleListRegion (const Rectangle<int>& r) : clip (r) {}
RectangleListRegion (const RectangleList& r) : clip (r) {}
RectangleListRegion (const RectangleList<int>& r) : clip (r) {}
RectangleListRegion (const RectangleListRegion& other) : Base(), clip (other.clip) {} RectangleListRegion (const RectangleListRegion& other) : Base(), clip (other.clip) {}
Ptr clone() const { return new RectangleListRegion (*this); } Ptr clone() const { return new RectangleListRegion (*this); }
@@ -1784,7 +1784,7 @@ namespace ClipRegions
return clip.isEmpty() ? nullptr : this; return clip.isEmpty() ? nullptr : this;
} }
Ptr clipToRectangleList (const RectangleList& r)
Ptr clipToRectangleList (const RectangleList<int>& r)
{ {
clip.clipTo (r); clip.clipTo (r);
return clip.isEmpty() ? nullptr : this; return clip.isEmpty() ? nullptr : this;
@@ -1870,7 +1870,7 @@ namespace ClipRegions
EdgeTableFillers::renderImageUntransformed (*this, destData, srcData, alpha, x, y, tiledFill); EdgeTableFillers::renderImageUntransformed (*this, destData, srcData, alpha, x, y, tiledFill);
} }
RectangleList clip;
RectangleList<int> clip;
//============================================================================== //==============================================================================
template <class Renderer> template <class Renderer>
@@ -1896,7 +1896,7 @@ namespace ClipRegions
class SubRectangleIterator class SubRectangleIterator
{ {
public: public:
SubRectangleIterator (const RectangleList& clipList, const Rectangle<int>& clipBounds)
SubRectangleIterator (const RectangleList<int>& clipList, const Rectangle<int>& clipBounds)
: clip (clipList), area (clipBounds) : clip (clipList), area (clipBounds)
{} {}
@@ -1923,7 +1923,7 @@ namespace ClipRegions
} }
private: private:
const RectangleList& clip;
const RectangleList<int>& clip;
const Rectangle<int> area; const Rectangle<int> area;
JUCE_DECLARE_NON_COPYABLE (SubRectangleIterator) JUCE_DECLARE_NON_COPYABLE (SubRectangleIterator)
@@ -1933,7 +1933,7 @@ namespace ClipRegions
class SubRectangleIteratorFloat class SubRectangleIteratorFloat
{ {
public: public:
SubRectangleIteratorFloat (const RectangleList& clipList, const Rectangle<float>& clipBounds) noexcept
SubRectangleIteratorFloat (const RectangleList<int>& clipList, const Rectangle<float>& clipBounds) noexcept
: clip (clipList), area (clipBounds) : clip (clipList), area (clipBounds)
{ {
} }
@@ -2013,7 +2013,7 @@ namespace ClipRegions
} }
private: private:
const RectangleList& clip;
const RectangleList<int>& clip;
const Rectangle<float>& area; const Rectangle<float>& area;
JUCE_DECLARE_NON_COPYABLE (SubRectangleIteratorFloat) JUCE_DECLARE_NON_COPYABLE (SubRectangleIteratorFloat)
@@ -2037,7 +2037,7 @@ public:
{ {
} }
SoftwareRendererSavedState (const Image& im, const RectangleList& clipList, const int x, const int y)
SoftwareRendererSavedState (const Image& im, const RectangleList<int>& clipList, const int x, const int y)
: image (im), clip (new ClipRegions::RectangleListRegion (clipList)), : image (im), clip (new ClipRegions::RectangleListRegion (clipList)),
transform (x, y), transform (x, y),
interpolationQuality (Graphics::mediumResamplingQuality), interpolationQuality (Graphics::mediumResamplingQuality),
@@ -2078,21 +2078,21 @@ public:
return clip != nullptr; return clip != nullptr;
} }
bool clipToRectangleList (const RectangleList& r)
bool clipToRectangleList (const RectangleList<int>& r)
{ {
if (clip != nullptr) if (clip != nullptr)
{ {
if (transform.isOnlyTranslated) if (transform.isOnlyTranslated)
{ {
cloneClipIfMultiplyReferenced(); cloneClipIfMultiplyReferenced();
RectangleList offsetList (r);
RectangleList<int> offsetList (r);
offsetList.offsetAll (transform.xOffset, transform.yOffset); offsetList.offsetAll (transform.xOffset, transform.yOffset);
clip = clip->clipToRectangleList (offsetList); clip = clip->clipToRectangleList (offsetList);
} }
else if (transform.isIntegerScaling) else if (transform.isIntegerScaling)
{ {
cloneClipIfMultiplyReferenced(); cloneClipIfMultiplyReferenced();
RectangleList scaledList;
RectangleList<int> scaledList;
for (const Rectangle<int>* i = r.begin(), * const e = r.end(); i != e; ++i) for (const Rectangle<int>* i = r.begin(), * const e = r.end(); i != e; ++i)
scaledList.add (transform.transformed (*i)); scaledList.add (transform.transformed (*i));


+ 2
- 2
modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h View File

@@ -40,7 +40,7 @@ public:
float getScaleFactor() override; float getScaleFactor() override;
float getTargetDeviceScaleFactor() override { return targetScale; } float getTargetDeviceScaleFactor() override { return targetScale; }
bool clipToRectangle (const Rectangle<int>&) override; bool clipToRectangle (const Rectangle<int>&) override;
bool clipToRectangleList (const RectangleList&) override;
bool clipToRectangleList (const RectangleList<int>&) override;
void excludeClipRectangle (const Rectangle<int>&) override; void excludeClipRectangle (const Rectangle<int>&) override;
void clipToPath (const Path&, const AffineTransform&) override; void clipToPath (const Path&, const AffineTransform&) override;
void clipToImageAlpha (const Image&, const AffineTransform&) override; void clipToImageAlpha (const Image&, const AffineTransform&) override;
@@ -113,7 +113,7 @@ private:
void flip() const; void flip() const;
void applyTransform (const AffineTransform&) const; void applyTransform (const AffineTransform&) const;
void drawImage (const Image&, const AffineTransform&, bool fillEntireClipAsTiles); void drawImage (const Image&, const AffineTransform&, bool fillEntireClipAsTiles);
bool clipToRectangleListWithoutTest (const RectangleList&);
bool clipToRectangleListWithoutTest (const RectangleList<int>&);
void fillCGRect (const CGRect&, bool replaceExistingContents); void fillCGRect (const CGRect&, bool replaceExistingContents);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CoreGraphicsContext) JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CoreGraphicsContext)


+ 3
- 3
modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm View File

@@ -192,7 +192,7 @@ bool CoreGraphicsContext::clipToRectangle (const Rectangle<int>& r)
return ! isClipEmpty(); return ! isClipEmpty();
} }
bool CoreGraphicsContext::clipToRectangleListWithoutTest (const RectangleList& clipRegion)
bool CoreGraphicsContext::clipToRectangleListWithoutTest (const RectangleList<int>& clipRegion)
{ {
if (clipRegion.isEmpty()) if (clipRegion.isEmpty())
{ {
@@ -216,14 +216,14 @@ bool CoreGraphicsContext::clipToRectangleListWithoutTest (const RectangleList& c
} }
} }
bool CoreGraphicsContext::clipToRectangleList (const RectangleList& clipRegion)
bool CoreGraphicsContext::clipToRectangleList (const RectangleList<int>& clipRegion)
{ {
return clipToRectangleListWithoutTest (clipRegion) && ! isClipEmpty(); return clipToRectangleListWithoutTest (clipRegion) && ! isClipEmpty();
} }
void CoreGraphicsContext::excludeClipRectangle (const Rectangle<int>& r) void CoreGraphicsContext::excludeClipRectangle (const Rectangle<int>& r)
{ {
RectangleList remaining (getClipBounds());
RectangleList<int> remaining (getClipBounds());
remaining.subtract (r); remaining.subtract (r);
clipToRectangleListWithoutTest (remaining); clipToRectangleListWithoutTest (remaining);
} }


+ 2
- 2
modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp View File

@@ -103,7 +103,7 @@ public:
return ! isClipEmpty(); return ! isClipEmpty();
} }
bool clipToRectangleList (const RectangleList& clipRegion)
bool clipToRectangleList (const RectangleList<int>& clipRegion)
{ {
currentState->clipToRectList (rectListToPathGeometry (clipRegion)); currentState->clipToRectList (rectListToPathGeometry (clipRegion));
return ! isClipEmpty(); return ! isClipEmpty();
@@ -742,7 +742,7 @@ private:
sink->EndFigure (D2D1_FIGURE_END_CLOSED); sink->EndFigure (D2D1_FIGURE_END_CLOSED);
} }
static ID2D1PathGeometry* rectListToPathGeometry (const RectangleList& clipRegion)
static ID2D1PathGeometry* rectListToPathGeometry (const RectangleList<int>& clipRegion)
{ {
ID2D1PathGeometry* p = nullptr; ID2D1PathGeometry* p = nullptr;
Direct2DFactories::getInstance().d2dFactory->CreatePathGeometry (&p); Direct2DFactories::getInstance().d2dFactory->CreatePathGeometry (&p);


+ 3
- 3
modules/juce_gui_basics/components/juce_Component.cpp View File

@@ -335,7 +335,7 @@ struct Component::ComponentHelpers
return nothingChanged; return nothingChanged;
} }
static void subtractObscuredRegions (const Component& comp, RectangleList& result,
static void subtractObscuredRegions (const Component& comp, RectangleList<int>& result,
Point<int> delta, const Rectangle<int>& clipRect, Point<int> delta, const Rectangle<int>& clipRect,
const Component* const compToAvoid) const Component* const compToAvoid)
{ {
@@ -743,7 +743,7 @@ public:
private: private:
Image image; Image image;
RectangleList validArea;
RectangleList<int> validArea;
Component& owner; Component& owner;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (StandardCachedComponentImage) JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (StandardCachedComponentImage)
@@ -2114,7 +2114,7 @@ Rectangle<int> Component::getBoundsInParent() const noexcept
: bounds.transformedBy (*affineTransform); : bounds.transformedBy (*affineTransform);
} }
void Component::getVisibleArea (RectangleList& result, const bool includeSiblings) const
void Component::getVisibleArea (RectangleList<int>& result, const bool includeSiblings) const
{ {
result.clear(); result.clear();
const Rectangle<int> unclipped (ComponentHelpers::getUnclippedArea (*this)); const Rectangle<int> unclipped (ComponentHelpers::getUnclippedArea (*this));


+ 1
- 1
modules/juce_gui_basics/components/juce_Component.h View File

@@ -330,7 +330,7 @@ public:
If includeSiblings is true, it will also take into account any siblings If includeSiblings is true, it will also take into account any siblings
that may be overlapping the component. that may be overlapping the component.
*/ */
void getVisibleArea (RectangleList& result, bool includeSiblings) const;
void getVisibleArea (RectangleList<int>& result, bool includeSiblings) const;
//============================================================================== //==============================================================================
/** Returns this component's x coordinate relative the the screen's top-left origin. /** Returns this component's x coordinate relative the the screen's top-left origin.


+ 2
- 2
modules/juce_gui_basics/components/juce_Desktop.cpp View File

@@ -378,9 +378,9 @@ const Desktop::Displays::Display& Desktop::Displays::getDisplayContaining (Point
return *best; return *best;
} }
RectangleList Desktop::Displays::getRectangleList (bool userAreasOnly) const
RectangleList<int> Desktop::Displays::getRectangleList (bool userAreasOnly) const
{ {
RectangleList rl;
RectangleList<int> rl;
for (int i = 0; i < displays.size(); ++i) for (int i = 0; i < displays.size(); ++i)
{ {


+ 1
- 1
modules/juce_gui_basics/components/juce_Desktop.h View File

@@ -352,7 +352,7 @@ public:
const Display& getDisplayContaining (Point<int> position) const noexcept; const Display& getDisplayContaining (Point<int> position) const noexcept;
/** Returns a RectangleList made up of all the displays. */ /** Returns a RectangleList made up of all the displays. */
RectangleList getRectangleList (bool userAreasOnly) const;
RectangleList<int> getRectangleList (bool userAreasOnly) const;
/** Returns the smallest bounding box which contains all the displays. */ /** Returns the smallest bounding box which contains all the displays. */
Rectangle<int> getTotalBounds (bool userAreasOnly) const; Rectangle<int> getTotalBounds (bool userAreasOnly) const;


+ 1
- 1
modules/juce_gui_basics/layout/juce_TabbedComponent.cpp View File

@@ -244,7 +244,7 @@ void TabbedComponent::paint (Graphics& g)
if (outlineThickness > 0) if (outlineThickness > 0)
{ {
RectangleList rl (content);
RectangleList<int> rl (content);
rl.subtract (outline.subtractedFrom (content)); rl.subtract (outline.subtractedFrom (content));
g.reduceClipRegion (rl); g.reduceClipRegion (rl);


+ 2
- 1
modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp View File

@@ -300,7 +300,8 @@ MouseCursor LookAndFeel::getMouseCursorFor (Component& component)
return m; return m;
} }
LowLevelGraphicsContext* LookAndFeel::createGraphicsContext (const Image& imageToRenderOn, const Point<int>& origin, const RectangleList& initialClip)
LowLevelGraphicsContext* LookAndFeel::createGraphicsContext (const Image& imageToRenderOn, const Point<int>& origin,
const RectangleList<int>& initialClip)
{ {
return new LowLevelGraphicsSoftwareRenderer (imageToRenderOn, origin, initialClip); return new LowLevelGraphicsSoftwareRenderer (imageToRenderOn, origin, initialClip);
} }


+ 1
- 1
modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h View File

@@ -148,7 +148,7 @@ public:
// Creates a new graphics context object. // Creates a new graphics context object.
virtual LowLevelGraphicsContext* createGraphicsContext (const Image& imageToRenderOn, virtual LowLevelGraphicsContext* createGraphicsContext (const Image& imageToRenderOn,
const Point<int>& origin, const Point<int>& origin,
const RectangleList& initialClip);
const RectangleList<int>& initialClip);
//============================================================================== //==============================================================================
/** Draws the lozenge-shaped background for a standard button. */ /** Draws the lozenge-shaped background for a standard button. */


+ 3
- 3
modules/juce_gui_basics/native/juce_linux_Windowing.cpp View File

@@ -1842,7 +1842,7 @@ private:
peer.clearMaskedRegion(); peer.clearMaskedRegion();
RectangleList originalRepaintRegion (regionsNeedingRepaint);
RectangleList<int> originalRepaintRegion (regionsNeedingRepaint);
regionsNeedingRepaint.clear(); regionsNeedingRepaint.clear();
const Rectangle<int> totalArea (originalRepaintRegion.getBounds()); const Rectangle<int> totalArea (originalRepaintRegion.getBounds());
@@ -1864,7 +1864,7 @@ private:
startTimer (repaintTimerPeriod); startTimer (repaintTimerPeriod);
RectangleList adjustedList (originalRepaintRegion);
RectangleList<int> adjustedList (originalRepaintRegion);
adjustedList.offsetAll (-totalArea.getX(), -totalArea.getY()); adjustedList.offsetAll (-totalArea.getX(), -totalArea.getY());
if (peer.depth == 32) if (peer.depth == 32)
@@ -1907,7 +1907,7 @@ private:
LinuxComponentPeer& peer; LinuxComponentPeer& peer;
Image image; Image image;
uint32 lastTimeImageUsed; uint32 lastTimeImageUsed;
RectangleList regionsNeedingRepaint;
RectangleList<int> regionsNeedingRepaint;
#if JUCE_USE_XSHM #if JUCE_USE_XSHM
bool useARGBImagesForRendering; bool useARGBImagesForRendering;


+ 4
- 5
modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm View File

@@ -64,7 +64,7 @@ public:
appFocusChangeCallback = appFocusChanged; appFocusChangeCallback = appFocusChanged;
isEventBlockedByModalComps = checkEventBlockedByModalComps; isEventBlockedByModalComps = checkEventBlockedByModalComps;
NSRect r = NSMakeRect (0, 0, (CGFloat) component.getWidth(), (CGFloat) component.getHeight());
NSRect r = makeNSRect (component.getLocalBounds());
view = [createViewInstance() initWithFrame: r]; view = [createViewInstance() initWithFrame: r];
setOwner (view, this); setOwner (view, this);
@@ -225,8 +225,7 @@ public:
{ {
fullScreen = isNowFullScreen; fullScreen = isNowFullScreen;
NSRect r = NSMakeRect ((CGFloat) newBounds.getX(), (CGFloat) newBounds.getY(),
(CGFloat) jmax (0, newBounds.getWidth()), (CGFloat) jmax (0, newBounds.getHeight()));
NSRect r = makeNSRect (newBounds);
if (isSharedWindow) if (isSharedWindow)
{ {
@@ -770,7 +769,7 @@ public:
const int clipW = (int) (r.size.width + 0.5f); const int clipW = (int) (r.size.width + 0.5f);
const int clipH = (int) (r.size.height + 0.5f); const int clipH = (int) (r.size.height + 0.5f);
RectangleList clip;
RectangleList<int> clip;
getClipRects (clip, offset, clipW, clipH); getClipRects (clip, offset, clipW, clipH);
if (! clip.isEmpty()) if (! clip.isEmpty())
@@ -1192,7 +1191,7 @@ private:
object_setInstanceVariable (viewOrWindow, "owner", newOwner); object_setInstanceVariable (viewOrWindow, "owner", newOwner);
} }
void getClipRects (RectangleList& clip, const Point<int> offset, const int clipW, const int clipH)
void getClipRects (RectangleList<int>& clip, const Point<int> offset, const int clipW, const int clipH)
{ {
const NSRect* rects = nullptr; const NSRect* rects = nullptr;
NSInteger numRects = 0; NSInteger numRects = 0;


+ 2
- 2
modules/juce_gui_basics/native/juce_win32_Windowing.cpp View File

@@ -333,7 +333,7 @@ public:
void blitToWindow (HWND hwnd, HDC dc, const bool transparent, void blitToWindow (HWND hwnd, HDC dc, const bool transparent,
const int x, const int y, const int x, const int y,
const RectangleList& maskedRegion,
const RectangleList<int>& maskedRegion,
const uint8 updateLayeredWindowAlpha) noexcept const uint8 updateLayeredWindowAlpha) noexcept
{ {
SetMapMode (dc, MM_TEXT); SetMapMode (dc, MM_TEXT);
@@ -1487,7 +1487,7 @@ private:
Image& offscreenImage = offscreenImageGenerator.getImage (transparent, w, h); Image& offscreenImage = offscreenImageGenerator.getImage (transparent, w, h);
RectangleList contextClip;
RectangleList<int> contextClip;
const Rectangle<int> clipBounds (w, h); const Rectangle<int> clipBounds (w, h);
bool needToPaintAll = true; bool needToPaintAll = true;


+ 8
- 0
modules/juce_gui_basics/windows/juce_ComponentPeer.cpp View File

@@ -399,6 +399,14 @@ Rectangle<int> ComponentPeer::globalToLocal (const Rectangle<int>& screenPositio
return screenPosition.withPosition (globalToLocal (screenPosition.getPosition())); return screenPosition.withPosition (globalToLocal (screenPosition.getPosition()));
} }
Rectangle<int> ComponentPeer::getAreaCoveredBy (Component& subComponent) const
{
jassert (component.isParentOf (&subComponent)); // this can only be used for child components.
return Component::ComponentHelpers::scaledScreenPosToUnscaled
(component.getLocalArea (&subComponent, subComponent.getLocalBounds()));
}
//============================================================================== //==============================================================================
namespace DragHelpers namespace DragHelpers
{ {


+ 6
- 1
modules/juce_gui_basics/windows/juce_ComponentPeer.h View File

@@ -165,6 +165,11 @@ public:
/** Converts a screen area to a position relative to the top-left of this component. */ /** Converts a screen area to a position relative to the top-left of this component. */
virtual Rectangle<int> globalToLocal (const Rectangle<int>& screenPosition); virtual Rectangle<int> globalToLocal (const Rectangle<int>& screenPosition);
/** Returns the area in peer coordinates that is covered by the given sub-comp (which
may be at any depth)
*/
Rectangle<int> getAreaCoveredBy (Component& subComponent) const;
/** Minimises the window. */ /** Minimises the window. */
virtual void setMinimised (bool shouldBeMinimised) = 0; virtual void setMinimised (bool shouldBeMinimised) = 0;
@@ -364,7 +369,7 @@ protected:
//============================================================================== //==============================================================================
Component& component; Component& component;
const int styleFlags; const int styleFlags;
RectangleList maskedRegion;
RectangleList<int> maskedRegion;
Rectangle<int> lastNonFullscreenBounds; Rectangle<int> lastNonFullscreenBounds;
ComponentBoundsConstrainer* constrainer; ComponentBoundsConstrainer* constrainer;


+ 1
- 1
modules/juce_gui_basics/windows/juce_ResizableWindow.cpp View File

@@ -532,7 +532,7 @@ bool ResizableWindow::restoreWindowStateFromString (const String& s)
{ {
Desktop& desktop = Desktop::getInstance(); Desktop& desktop = Desktop::getInstance();
RectangleList allMonitors (desktop.getDisplays().getRectangleList (true));
RectangleList<int> allMonitors (desktop.getDisplays().getRectangleList (true));
allMonitors.clipTo (newPos); allMonitors.clipTo (newPos);
const Rectangle<int> onScreenArea (allMonitors.getBounds()); const Rectangle<int> onScreenArea (allMonitors.getBounds());


+ 2
- 6
modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm View File

@@ -58,13 +58,9 @@ public:
void componentMovedOrResized (bool /*wasMoved*/, bool /*wasResized*/) override void componentMovedOrResized (bool /*wasMoved*/, bool /*wasResized*/) override
{ {
Component* const topComp = owner.getTopLevelComponent();
if (topComp->getPeer() != nullptr)
if (ComponentPeer* const peer = owner.getTopLevelComponent()->getPeer())
{ {
const Rectangle<int> area (topComp->getLocalArea (&owner, owner.getLocalBounds()));
NSRect r = NSMakeRect ((float) area.getX(), (float) area.getY(), (float) area.getWidth(), (float) area.getHeight());
NSRect r = makeNSRect (peer->getAreaCoveredBy (owner));
r.origin.y = [[view superview] frame].size.height - (r.origin.y + r.size.height); r.origin.y = [[view superview] frame].size.height - (r.origin.y + r.size.height);
[view setFrame: r]; [view setFrame: r];
} }


+ 4
- 1
modules/juce_opengl/native/juce_OpenGL_win32.h View File

@@ -142,7 +142,10 @@ private:
{ {
Component* topComp = component.getTopLevelComponent(); Component* topComp = component.getTopLevelComponent();
nativeWindow = createNonRepaintingEmbeddedWindowsPeer (&dummyComponent, topComp->getWindowHandle()); nativeWindow = createNonRepaintingEmbeddedWindowsPeer (&dummyComponent, topComp->getWindowHandle());
updateWindowPosition (topComp->getLocalArea (&component, component.getLocalBounds()));
if (ComponentPeer* peer = topComp->getPeer())
updateWindowPosition (peer->getAreaCoveredBy (component));
nativeWindow->setVisible (true); nativeWindow->setVisible (true);
dc = GetDC ((HWND) nativeWindow->getNativeHandle()); dc = GetDC ((HWND) nativeWindow->getNativeHandle());
} }


+ 5
- 5
modules/juce_opengl/opengl/juce_OpenGLContext.cpp View File

@@ -119,7 +119,7 @@ public:
return true; return true;
} }
void clearRegionInFrameBuffer (const RectangleList& list, const float scaleFactor)
void clearRegionInFrameBuffer (const RectangleList<int>& list, const float scaleFactor)
{ {
glClearColor (0, 0, 0, 0); glClearColor (0, 0, 0, 0);
glEnable (GL_SCISSOR_TEST); glEnable (GL_SCISSOR_TEST);
@@ -211,7 +211,7 @@ public:
if (! ensureFrameBufferSize()) if (! ensureFrameBufferSize())
return; return;
RectangleList invalid (viewportArea);
RectangleList<int> invalid (viewportArea);
invalid.subtract (validArea); invalid.subtract (validArea);
validArea = viewportArea; validArea = viewportArea;
@@ -361,7 +361,7 @@ public:
Component& component; Component& component;
OpenGLFrameBuffer cachedImageFrameBuffer; OpenGLFrameBuffer cachedImageFrameBuffer;
RectangleList validArea;
RectangleList<int> validArea;
Rectangle<int> viewportArea; Rectangle<int> viewportArea;
double scale; double scale;
@@ -429,8 +429,8 @@ public:
if (CachedImage* const c = CachedImage::get (comp)) if (CachedImage* const c = CachedImage::get (comp))
c->handleResize(); c->handleResize();
context.nativeContext->updateWindowPosition (comp.getTopLevelComponent()
->getLocalArea (&comp, comp.getLocalBounds()));
if (ComponentPeer* peer = comp.getTopLevelComponent()->getPeer())
context.nativeContext->updateWindowPosition (peer->getAreaCoveredBy (comp));
} }
} }


+ 16
- 16
modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp View File

@@ -978,13 +978,13 @@ struct StateHelpers
RenderingHelpers::FloatRectangleRasterisingInfo (r).iterate (frr); RenderingHelpers::FloatRectangleRasterisingInfo (r).iterate (frr);
} }
void add (const RectangleList& list, const PixelARGB colour) noexcept
void add (const RectangleList<int>& list, const PixelARGB colour) noexcept
{ {
for (const Rectangle<int>* i = list.begin(), * const e = list.end(); i != e; ++i) for (const Rectangle<int>* i = list.begin(), * const e = list.end(); i != e; ++i)
add (*i, colour); add (*i, colour);
} }
void add (const RectangleList& list, const Rectangle<int>& clip, const PixelARGB colour) noexcept
void add (const RectangleList<int>& list, const Rectangle<int>& clip, const PixelARGB colour) noexcept
{ {
for (const Rectangle<int>* i = list.begin(), * const e = list.end(); i != e; ++i) for (const Rectangle<int>* i = list.begin(), * const e = list.end(); i != e; ++i)
{ {
@@ -1318,7 +1318,7 @@ public:
virtual Ptr clone() const = 0; virtual Ptr clone() const = 0;
virtual Ptr clipToRectangle (const Rectangle<int>&) = 0; virtual Ptr clipToRectangle (const Rectangle<int>&) = 0;
virtual Ptr clipToRectangleList (const RectangleList&) = 0;
virtual Ptr clipToRectangleList (const RectangleList<int>&) = 0;
virtual Ptr excludeClipRectangle (const Rectangle<int>&) = 0; virtual Ptr excludeClipRectangle (const Rectangle<int>&) = 0;
virtual Ptr clipToPath (const Path& p, const AffineTransform&) = 0; virtual Ptr clipToPath (const Path& p, const AffineTransform&) = 0;
virtual Ptr clipToImageAlpha (const OpenGLTextureFromImage&, const AffineTransform&) = 0; virtual Ptr clipToImageAlpha (const OpenGLTextureFromImage&, const AffineTransform&) = 0;
@@ -1369,7 +1369,7 @@ public:
state.shaderQuadQueue.flush(); state.shaderQuadQueue.flush();
} }
ClipRegion_Mask (GLState& state_, const RectangleList& r)
ClipRegion_Mask (GLState& state_, const RectangleList<int>& r)
: ClipRegionBase (state_), : ClipRegionBase (state_),
clip (r.getBounds()), clip (r.getBounds()),
maskArea (clip) maskArea (clip)
@@ -1397,13 +1397,13 @@ public:
return clip.isEmpty() ? nullptr : this; return clip.isEmpty() ? nullptr : this;
} }
Ptr clipToRectangleList (const RectangleList& r)
Ptr clipToRectangleList (const RectangleList<int>& r)
{ {
clip = clip.getIntersection (r.getBounds()); clip = clip.getIntersection (r.getBounds());
if (clip.isEmpty()) if (clip.isEmpty())
return Ptr(); return Ptr();
RectangleList excluded (clip);
RectangleList<int> excluded (clip);
if (excluded.subtract (r)) if (excluded.subtract (r))
{ {
@@ -1640,7 +1640,7 @@ public:
: ClipRegionBase (state_), clip (r) : ClipRegionBase (state_), clip (r)
{} {}
ClipRegion_RectangleList (GLState& state_, const RectangleList& r) noexcept
ClipRegion_RectangleList (GLState& state_, const RectangleList<int>& r) noexcept
: ClipRegionBase (state_), clip (r) : ClipRegionBase (state_), clip (r)
{} {}
@@ -1704,13 +1704,13 @@ public:
} }
} }
Rectangle<int> getClipBounds() const { return clip.getBounds(); }
Ptr clipToRectangle (const Rectangle<int>& r) { return clip.clipTo (r) ? this : nullptr; }
Ptr clipToRectangleList (const RectangleList& r) { return clip.clipTo (r) ? this : nullptr; }
Ptr excludeClipRectangle (const Rectangle<int>& r) { clip.subtract (r); return clip.isEmpty() ? nullptr : this; }
Rectangle<int> getClipBounds() const { return clip.getBounds(); }
Ptr clipToRectangle (const Rectangle<int>& r) { return clip.clipTo (r) ? this : nullptr; }
Ptr clipToRectangleList (const RectangleList<int>& r) { return clip.clipTo (r) ? this : nullptr; }
Ptr excludeClipRectangle (const Rectangle<int>& r) { clip.subtract (r); return clip.isEmpty() ? nullptr : this; }
private: private:
RectangleList clip;
RectangleList<int> clip;
Ptr toMask() const { return new ClipRegion_Mask (state, clip); } Ptr toMask() const { return new ClipRegion_Mask (state, clip); }
@@ -1796,21 +1796,21 @@ public:
return clip != nullptr; return clip != nullptr;
} }
bool clipToRectangleList (const RectangleList& r)
bool clipToRectangleList (const RectangleList<int>& r)
{ {
if (clip != nullptr) if (clip != nullptr)
{ {
if (transform.isOnlyTranslated) if (transform.isOnlyTranslated)
{ {
cloneClipIfMultiplyReferenced(); cloneClipIfMultiplyReferenced();
RectangleList offsetList (r);
RectangleList<int> offsetList (r);
offsetList.offsetAll (transform.xOffset, transform.yOffset); offsetList.offsetAll (transform.xOffset, transform.yOffset);
clip = clip->clipToRectangleList (offsetList); clip = clip->clipToRectangleList (offsetList);
} }
else if (transform.isIntegerScaling) else if (transform.isIntegerScaling)
{ {
cloneClipIfMultiplyReferenced(); cloneClipIfMultiplyReferenced();
RectangleList scaledList;
RectangleList<int> scaledList;
for (const Rectangle<int>* i = r.begin(), * const e = r.end(); i != e; ++i) for (const Rectangle<int>* i = r.begin(), * const e = r.end(); i != e; ++i)
scaledList.add (transform.transformed (*i).getSmallestIntegerContainer()); scaledList.add (transform.transformed (*i).getSmallestIntegerContainer());
@@ -2124,7 +2124,7 @@ public:
bool isClipEmpty() const { return stack->clip == nullptr; } bool isClipEmpty() const { return stack->clip == nullptr; }
bool clipRegionIntersects (const Rectangle<int>& r) { return stack->clipRegionIntersects (r); } bool clipRegionIntersects (const Rectangle<int>& r) { return stack->clipRegionIntersects (r); }
bool clipToRectangle (const Rectangle<int>& r) { return stack->clipToRectangle (r); } bool clipToRectangle (const Rectangle<int>& r) { return stack->clipToRectangle (r); }
bool clipToRectangleList (const RectangleList& r) { return stack->clipToRectangleList (r); }
bool clipToRectangleList (const RectangleList<int>& r) { return stack->clipToRectangleList (r); }
void excludeClipRectangle (const Rectangle<int>& r) { stack->excludeClipRectangle (r); } void excludeClipRectangle (const Rectangle<int>& r) { stack->excludeClipRectangle (r); }
void clipToPath (const Path& path, const AffineTransform& t) { stack->clipToPath (path, t); } void clipToPath (const Path& path, const AffineTransform& t) { stack->clipToPath (path, t); }
void clipToImageAlpha (const Image& im, const AffineTransform& t) { stack->clipToImageAlpha (im, t); } void clipToImageAlpha (const Image& im, const AffineTransform& t) { stack->clipToImageAlpha (im, t); }


Loading…
Cancel
Save