expo-juce 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1611) hide show
  1. package/README.md +34 -0
  2. package/build/index.d.ts +21 -24
  3. package/build/index.d.ts.map +1 -1
  4. package/build/index.js +44 -48
  5. package/build/index.js.map +1 -1
  6. package/ios/BeeperAudioEngine.h +45 -0
  7. package/ios/BeeperAudioEngine.mm +352 -0
  8. package/ios/ExpoJuce.podspec +31 -8
  9. package/ios/ExpoJuceBridge.h +12 -12
  10. package/ios/ExpoJuceBridge.m +35 -100
  11. package/ios/ExpoJuceModule.swift +33 -55
  12. package/ios/JuceConfig.h +49 -14
  13. package/ios/JuceModule_audio_basics.mm +2 -0
  14. package/ios/JuceModule_audio_devices.mm +2 -0
  15. package/ios/JuceModule_audio_formats.mm +2 -0
  16. package/ios/JuceModule_audio_processors.mm +2 -0
  17. package/ios/JuceModule_core.mm +5 -0
  18. package/ios/JuceModule_data_structures.mm +2 -0
  19. package/ios/JuceModule_dsp.mm +2 -0
  20. package/ios/JuceModule_events.mm +2 -0
  21. package/ios/JuceModule_graphics.mm +2 -0
  22. package/ios/JuceModule_gui_basics.mm +2 -0
  23. package/ios/JuceModule_gui_extra.mm +2 -0
  24. package/ios/JuceModule_harfbuzz.mm +4 -0
  25. package/ios/PolySynthProcessor.h +83 -0
  26. package/ios/PolySynthProcessor.mm +164 -0
  27. package/ios/TransportEngine.h +35 -0
  28. package/ios/TransportEngine.mm +50 -0
  29. package/ios/Voice.h +59 -0
  30. package/ios/Voice.mm +157 -0
  31. package/ios/VoiceAllocator.h +22 -0
  32. package/ios/VoiceAllocator.mm +88 -0
  33. package/ios/juce_modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp +1957 -0
  34. package/ios/juce_modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h +586 -0
  35. package/ios/juce_modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp +65 -0
  36. package/ios/juce_modules/juce_audio_devices/audio_io/juce_AudioIODevice.h +368 -0
  37. package/ios/juce_modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp +152 -0
  38. package/ios/juce_modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h +200 -0
  39. package/ios/juce_modules/juce_audio_devices/audio_io/juce_SampleRateHelpers.cpp +57 -0
  40. package/ios/juce_modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h +71 -0
  41. package/ios/juce_modules/juce_audio_devices/juce_audio_devices.cpp +277 -0
  42. package/ios/juce_modules/juce_audio_devices/juce_audio_devices.h +201 -0
  43. package/ios/juce_modules/juce_audio_devices/juce_audio_devices.mm +35 -0
  44. package/ios/juce_modules/juce_audio_devices/midi_io/juce_MidiDevices.cpp +246 -0
  45. package/ios/juce_modules/juce_audio_devices/midi_io/juce_MidiDevices.h +482 -0
  46. package/ios/juce_modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp +170 -0
  47. package/ios/juce_modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h +125 -0
  48. package/ios/juce_modules/juce_audio_devices/midi_io/ump/juce_UMPBytestreamInputHandler.h +153 -0
  49. package/ios/juce_modules/juce_audio_devices/midi_io/ump/juce_UMPU32InputHandler.h +165 -0
  50. package/ios/juce_modules/juce_audio_devices/native/java/app/com/rmsl/juce/JuceMidiSupport.java +1121 -0
  51. package/ios/juce_modules/juce_audio_devices/native/juce_ALSA_linux.cpp +1313 -0
  52. package/ios/juce_modules/juce_audio_devices/native/juce_ASIO_windows.cpp +1654 -0
  53. package/ios/juce_modules/juce_audio_devices/native/juce_Audio_android.cpp +482 -0
  54. package/ios/juce_modules/juce_audio_devices/native/juce_Audio_ios.cpp +1508 -0
  55. package/ios/juce_modules/juce_audio_devices/native/juce_Audio_ios.h +106 -0
  56. package/ios/juce_modules/juce_audio_devices/native/juce_Bela_linux.cpp +612 -0
  57. package/ios/juce_modules/juce_audio_devices/native/juce_CoreAudio_mac.cpp +2315 -0
  58. package/ios/juce_modules/juce_audio_devices/native/juce_CoreMidi_mac.mm +1280 -0
  59. package/ios/juce_modules/juce_audio_devices/native/juce_DirectSound_windows.cpp +1304 -0
  60. package/ios/juce_modules/juce_audio_devices/native/juce_HighPerformanceAudioHelpers_android.h +137 -0
  61. package/ios/juce_modules/juce_audio_devices/native/juce_JackAudio_linux.cpp +681 -0
  62. package/ios/juce_modules/juce_audio_devices/native/juce_Midi_android.cpp +1183 -0
  63. package/ios/juce_modules/juce_audio_devices/native/juce_Midi_linux.cpp +788 -0
  64. package/ios/juce_modules/juce_audio_devices/native/juce_Midi_windows.cpp +2038 -0
  65. package/ios/juce_modules/juce_audio_devices/native/juce_Oboe_android.cpp +1440 -0
  66. package/ios/juce_modules/juce_audio_devices/native/juce_OpenSL_android.cpp +1306 -0
  67. package/ios/juce_modules/juce_audio_devices/native/juce_WASAPI_windows.cpp +2032 -0
  68. package/ios/juce_modules/juce_audio_devices/native/oboe/.clang-tidy +3 -0
  69. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/AudioStream.h +706 -0
  70. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/AudioStreamBase.h +343 -0
  71. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/AudioStreamBuilder.h +670 -0
  72. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/AudioStreamCallback.h +193 -0
  73. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/Definitions.h +897 -0
  74. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/FifoBuffer.h +164 -0
  75. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/FifoControllerBase.h +112 -0
  76. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/FullDuplexStream.h +324 -0
  77. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/LatencyTuner.h +150 -0
  78. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/Oboe.h +40 -0
  79. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/OboeExtensions.h +64 -0
  80. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/ResultWithValue.h +155 -0
  81. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/StabilizedCallback.h +75 -0
  82. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/Utilities.h +99 -0
  83. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/Version.h +92 -0
  84. package/ios/juce_modules/juce_audio_devices/native/oboe/src/aaudio/AAudioExtensions.h +180 -0
  85. package/ios/juce_modules/juce_audio_devices/native/oboe/src/aaudio/AAudioLoader.cpp +506 -0
  86. package/ios/juce_modules/juce_audio_devices/native/oboe/src/aaudio/AAudioLoader.h +299 -0
  87. package/ios/juce_modules/juce_audio_devices/native/oboe/src/aaudio/AudioStreamAAudio.cpp +868 -0
  88. package/ios/juce_modules/juce_audio_devices/native/oboe/src/aaudio/AudioStreamAAudio.h +152 -0
  89. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AdpfWrapper.cpp +124 -0
  90. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AdpfWrapper.h +85 -0
  91. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AudioClock.h +75 -0
  92. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AudioSourceCaller.cpp +38 -0
  93. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AudioSourceCaller.h +83 -0
  94. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AudioStream.cpp +222 -0
  95. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AudioStreamBuilder.cpp +224 -0
  96. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/DataConversionFlowGraph.cpp +266 -0
  97. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/DataConversionFlowGraph.h +86 -0
  98. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FilterAudioStream.cpp +106 -0
  99. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FilterAudioStream.h +227 -0
  100. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FixedBlockAdapter.cpp +38 -0
  101. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FixedBlockAdapter.h +67 -0
  102. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FixedBlockReader.cpp +73 -0
  103. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FixedBlockReader.h +60 -0
  104. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FixedBlockWriter.cpp +73 -0
  105. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FixedBlockWriter.h +54 -0
  106. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/LatencyTuner.cpp +108 -0
  107. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/MonotonicCounter.h +112 -0
  108. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/OboeDebug.h +41 -0
  109. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/OboeExtensions.cpp +36 -0
  110. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/QuirksManager.cpp +311 -0
  111. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/QuirksManager.h +134 -0
  112. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceFloatCaller.cpp +30 -0
  113. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceFloatCaller.h +44 -0
  114. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceI16Caller.cpp +47 -0
  115. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceI16Caller.h +49 -0
  116. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceI24Caller.cpp +56 -0
  117. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceI24Caller.h +53 -0
  118. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceI32Caller.cpp +47 -0
  119. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceI32Caller.h +53 -0
  120. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/StabilizedCallback.cpp +112 -0
  121. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/Trace.cpp +75 -0
  122. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/Trace.h +31 -0
  123. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/Utilities.cpp +333 -0
  124. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/Version.cpp +28 -0
  125. package/ios/juce_modules/juce_audio_devices/native/oboe/src/fifo/FifoBuffer.cpp +178 -0
  126. package/ios/juce_modules/juce_audio_devices/native/oboe/src/fifo/FifoController.cpp +30 -0
  127. package/ios/juce_modules/juce_audio_devices/native/oboe/src/fifo/FifoController.h +62 -0
  128. package/ios/juce_modules/juce_audio_devices/native/oboe/src/fifo/FifoControllerBase.cpp +68 -0
  129. package/ios/juce_modules/juce_audio_devices/native/oboe/src/fifo/FifoControllerIndirect.cpp +32 -0
  130. package/ios/juce_modules/juce_audio_devices/native/oboe/src/fifo/FifoControllerIndirect.h +66 -0
  131. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/ChannelCountConverter.cpp +52 -0
  132. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/ChannelCountConverter.h +52 -0
  133. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/ClipToRange.cpp +38 -0
  134. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/ClipToRange.h +68 -0
  135. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/FlowGraphNode.cpp +114 -0
  136. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/FlowGraphNode.h +450 -0
  137. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/FlowgraphUtilities.h +55 -0
  138. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/Limiter.cpp +67 -0
  139. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/Limiter.h +64 -0
  140. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/ManyToMultiConverter.cpp +47 -0
  141. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/ManyToMultiConverter.h +53 -0
  142. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MonoBlend.cpp +46 -0
  143. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MonoBlend.h +48 -0
  144. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MonoToMultiConverter.cpp +41 -0
  145. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MonoToMultiConverter.h +49 -0
  146. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MultiToManyConverter.cpp +47 -0
  147. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MultiToManyConverter.h +49 -0
  148. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MultiToMonoConverter.cpp +41 -0
  149. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MultiToMonoConverter.h +49 -0
  150. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/RampLinear.cpp +81 -0
  151. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/RampLinear.h +96 -0
  152. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SampleRateConverter.cpp +71 -0
  153. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SampleRateConverter.h +63 -0
  154. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkFloat.cpp +46 -0
  155. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkFloat.h +45 -0
  156. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkI16.cpp +57 -0
  157. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkI16.h +43 -0
  158. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkI24.cpp +66 -0
  159. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkI24.h +44 -0
  160. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkI32.cpp +55 -0
  161. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkI32.h +40 -0
  162. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceFloat.cpp +42 -0
  163. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceFloat.h +44 -0
  164. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceI16.cpp +54 -0
  165. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceI16.h +42 -0
  166. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceI24.cpp +65 -0
  167. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceI24.h +43 -0
  168. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceI32.cpp +54 -0
  169. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceI32.h +42 -0
  170. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/HyperbolicCosineWindow.h +71 -0
  171. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/IntegerRatio.cpp +50 -0
  172. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/IntegerRatio.h +54 -0
  173. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/KaiserWindow.h +90 -0
  174. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/LinearResampler.cpp +42 -0
  175. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/LinearResampler.h +47 -0
  176. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/MultiChannelResampler.cpp +171 -0
  177. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/MultiChannelResampler.h +281 -0
  178. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/PolyphaseResampler.cpp +61 -0
  179. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/PolyphaseResampler.h +53 -0
  180. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/PolyphaseResamplerMono.cpp +63 -0
  181. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/PolyphaseResamplerMono.h +41 -0
  182. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/PolyphaseResamplerStereo.cpp +79 -0
  183. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/PolyphaseResamplerStereo.h +41 -0
  184. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/ResamplerDefinitions.h +27 -0
  185. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/SincResampler.cpp +72 -0
  186. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/SincResampler.h +50 -0
  187. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/SincResamplerStereo.cpp +81 -0
  188. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/SincResamplerStereo.h +42 -0
  189. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioInputStreamOpenSLES.cpp +360 -0
  190. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioInputStreamOpenSLES.h +66 -0
  191. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioOutputStreamOpenSLES.cpp +462 -0
  192. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioOutputStreamOpenSLES.h +80 -0
  193. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioStreamBuffered.cpp +285 -0
  194. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioStreamBuffered.h +96 -0
  195. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioStreamOpenSLES.cpp +499 -0
  196. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioStreamOpenSLES.h +148 -0
  197. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/EngineOpenSLES.cpp +141 -0
  198. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/EngineOpenSLES.h +65 -0
  199. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/OpenSLESUtilities.cpp +96 -0
  200. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/OpenSLESUtilities.h +44 -0
  201. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/OutputMixerOpenSLES.cpp +74 -0
  202. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/OutputMixerOpenSLES.h +58 -0
  203. package/ios/juce_modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp +193 -0
  204. package/ios/juce_modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h +127 -0
  205. package/ios/juce_modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp +295 -0
  206. package/ios/juce_modules/juce_audio_devices/sources/juce_AudioTransportSource.h +192 -0
  207. package/ios/juce_modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp +107 -0
  208. package/ios/juce_modules/juce_audio_processors/format/juce_AudioPluginFormat.h +183 -0
  209. package/ios/juce_modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp +212 -0
  210. package/ios/juce_modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h +151 -0
  211. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/generate_lv2_bundle_sources.py +175 -0
  212. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/juce_lv2_config.h +87 -0
  213. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/COPYING +13 -0
  214. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/lilv/lilv.h +2117 -0
  215. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/lilv/lilvmm.hpp +440 -0
  216. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/collections.c +240 -0
  217. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/filesystem.c +564 -0
  218. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/filesystem.h +182 -0
  219. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/instance.c +115 -0
  220. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/lib.c +127 -0
  221. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/lilv_internal.h +477 -0
  222. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/node.c +413 -0
  223. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/plugin.c +1140 -0
  224. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/pluginclass.c +91 -0
  225. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/port.c +272 -0
  226. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/query.c +144 -0
  227. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/scalepoint.c +53 -0
  228. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/state.c +1541 -0
  229. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/ui.c +115 -0
  230. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/util.c +291 -0
  231. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/world.c +1249 -0
  232. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/zix/common.h +138 -0
  233. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/zix/tree.c +727 -0
  234. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/zix/tree.h +164 -0
  235. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv_config.h +42 -0
  236. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/COPYING +16 -0
  237. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/atom-test-utils.c +73 -0
  238. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/atom-test.c +367 -0
  239. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/atom.h +260 -0
  240. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/atom.meta.ttl +542 -0
  241. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/atom.ttl +247 -0
  242. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/forge-overflow-test.c +235 -0
  243. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/forge.h +683 -0
  244. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/manifest.ttl +9 -0
  245. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/util.h +523 -0
  246. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/buf-size/buf-size.h +51 -0
  247. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/buf-size/buf-size.meta.ttl +157 -0
  248. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/buf-size/buf-size.ttl +67 -0
  249. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/buf-size/manifest.ttl +9 -0
  250. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/attributes.h +59 -0
  251. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/lv2.h +484 -0
  252. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/lv2_util.h +103 -0
  253. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/lv2core.meta.ttl +905 -0
  254. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/lv2core.ttl +674 -0
  255. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/manifest.ttl +15 -0
  256. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/meta.ttl +199 -0
  257. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/people.ttl +51 -0
  258. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/data-access/data-access.h +73 -0
  259. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/data-access/data-access.meta.ttl +77 -0
  260. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/data-access/data-access.ttl +11 -0
  261. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/data-access/manifest.ttl +9 -0
  262. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/dynmanifest/dynmanifest.h +160 -0
  263. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/dynmanifest/dynmanifest.meta.ttl +131 -0
  264. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/dynmanifest/dynmanifest.ttl +25 -0
  265. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/dynmanifest/manifest.ttl +9 -0
  266. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/event/event-helpers.h +255 -0
  267. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/event/event.h +306 -0
  268. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/event/event.meta.ttl +246 -0
  269. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/event/event.ttl +86 -0
  270. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/event/manifest.ttl +9 -0
  271. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/instance-access/instance-access.h +41 -0
  272. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/instance-access/instance-access.meta.ttl +75 -0
  273. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/instance-access/instance-access.ttl +11 -0
  274. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/instance-access/manifest.ttl +9 -0
  275. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/log/log.h +113 -0
  276. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/log/log.meta.ttl +126 -0
  277. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/log/log.ttl +48 -0
  278. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/log/logger.h +157 -0
  279. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/log/manifest.ttl +9 -0
  280. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/midi/manifest.ttl +9 -0
  281. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/midi/midi.h +248 -0
  282. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/midi/midi.meta.ttl +153 -0
  283. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/midi/midi.ttl +366 -0
  284. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/morph/manifest.ttl +9 -0
  285. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/morph/morph.h +48 -0
  286. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/morph/morph.meta.ttl +90 -0
  287. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/morph/morph.ttl +46 -0
  288. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/options/manifest.ttl +9 -0
  289. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/options/options.h +149 -0
  290. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/options/options.meta.ttl +129 -0
  291. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/options/options.ttl +44 -0
  292. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/parameters/manifest.ttl +9 -0
  293. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/parameters/parameters.h +68 -0
  294. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/parameters/parameters.meta.ttl +75 -0
  295. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/parameters/parameters.ttl +202 -0
  296. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/patch/manifest.ttl +9 -0
  297. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/patch/patch.h +73 -0
  298. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/patch/patch.meta.ttl +374 -0
  299. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/patch/patch.ttl +251 -0
  300. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-groups/manifest.ttl +9 -0
  301. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-groups/port-groups.h +77 -0
  302. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-groups/port-groups.meta.ttl +144 -0
  303. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-groups/port-groups.ttl +807 -0
  304. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-props/manifest.ttl +9 -0
  305. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-props/port-props.h +53 -0
  306. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-props/port-props.meta.ttl +202 -0
  307. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-props/port-props.ttl +79 -0
  308. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/presets/manifest.ttl +9 -0
  309. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/presets/presets.h +48 -0
  310. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/presets/presets.meta.ttl +132 -0
  311. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/presets/presets.ttl +60 -0
  312. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/resize-port/manifest.ttl +9 -0
  313. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/resize-port/resize-port.h +89 -0
  314. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/resize-port/resize-port.meta.ttl +74 -0
  315. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/resize-port/resize-port.ttl +36 -0
  316. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/state/manifest.ttl +9 -0
  317. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/state/state.h +392 -0
  318. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/state/state.meta.ttl +467 -0
  319. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/state/state.ttl +60 -0
  320. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/time/manifest.ttl +9 -0
  321. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/time/time.h +59 -0
  322. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/time/time.meta.ttl +112 -0
  323. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/time/time.ttl +122 -0
  324. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/ui/manifest.ttl +9 -0
  325. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/ui/ui.h +543 -0
  326. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/ui/ui.meta.ttl +627 -0
  327. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/ui/ui.ttl +248 -0
  328. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/units/manifest.ttl +9 -0
  329. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/units/units.h +75 -0
  330. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/units/units.meta.ttl +154 -0
  331. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/units/units.ttl +379 -0
  332. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/uri-map/manifest.ttl +9 -0
  333. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/uri-map/uri-map.h +121 -0
  334. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/uri-map/uri-map.meta.ttl +72 -0
  335. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/uri-map/uri-map.ttl +14 -0
  336. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/urid/manifest.ttl +9 -0
  337. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/urid/urid.h +140 -0
  338. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/urid/urid.meta.ttl +84 -0
  339. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/urid/urid.ttl +22 -0
  340. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/worker/manifest.ttl +9 -0
  341. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/worker/worker.h +183 -0
  342. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/worker/worker.meta.ttl +82 -0
  343. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/worker/worker.ttl +25 -0
  344. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/COPYING +13 -0
  345. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/serd/serd.h +1059 -0
  346. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/.clang-tidy +18 -0
  347. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/attributes.h +26 -0
  348. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/base64.c +132 -0
  349. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/base64.h +48 -0
  350. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/byte_sink.h +98 -0
  351. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/byte_source.c +112 -0
  352. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/byte_source.h +120 -0
  353. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/env.c +256 -0
  354. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/n3.c +1720 -0
  355. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/node.c +393 -0
  356. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/node.h +48 -0
  357. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/reader.c +425 -0
  358. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/reader.h +196 -0
  359. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/serd_config.h +98 -0
  360. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/serd_internal.h +46 -0
  361. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/serdi.c +377 -0
  362. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/stack.h +119 -0
  363. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/string.c +179 -0
  364. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/string_utils.h +173 -0
  365. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/system.c +82 -0
  366. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/system.h +40 -0
  367. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/uri.c +506 -0
  368. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/uri_utils.h +110 -0
  369. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/writer.c +1114 -0
  370. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd_config.h +42 -0
  371. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/COPYING +13 -0
  372. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/sord/sord.h +642 -0
  373. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/sord/sordmm.hpp +720 -0
  374. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sord.c +1368 -0
  375. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sord_config.h +61 -0
  376. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sord_internal.h +53 -0
  377. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sord_test.c +767 -0
  378. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sord_validate.c +804 -0
  379. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sordi.c +216 -0
  380. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sordmm_test.cpp +25 -0
  381. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/syntax.c +203 -0
  382. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/btree.c +936 -0
  383. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/btree.h +187 -0
  384. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/common.h +138 -0
  385. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/digest.c +141 -0
  386. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/digest.h +67 -0
  387. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/hash.c +230 -0
  388. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/hash.h +138 -0
  389. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord_config.h +42 -0
  390. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sratom/COPYING +13 -0
  391. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sratom/sratom/sratom.h +220 -0
  392. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sratom/src/sratom.c +919 -0
  393. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/VST3_License_Agreement.pdf +0 -0
  394. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/VST3_Usage_Guidelines.pdf +0 -0
  395. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/baseiids.cpp +52 -0
  396. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/classfactoryhelpers.h +87 -0
  397. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fbuffer.cpp +641 -0
  398. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fbuffer.h +306 -0
  399. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fcommandline.h +392 -0
  400. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fdebug.cpp +340 -0
  401. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fdebug.h +246 -0
  402. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fobject.cpp +271 -0
  403. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fobject.h +577 -0
  404. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fstreamer.cpp +756 -0
  405. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fstreamer.h +242 -0
  406. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fstring.cpp +3962 -0
  407. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fstring.h +767 -0
  408. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/updatehandler.cpp +737 -0
  409. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/updatehandler.h +150 -0
  410. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/thread/include/flock.h +184 -0
  411. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/thread/source/flock.cpp +146 -0
  412. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/helper.manifest +10 -0
  413. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/conststringtable.cpp +106 -0
  414. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/conststringtable.h +44 -0
  415. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/coreiids.cpp +40 -0
  416. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/falignpop.h +25 -0
  417. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/falignpush.h +40 -0
  418. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fplatform.h +333 -0
  419. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fstrdefs.h +291 -0
  420. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ftypes.h +176 -0
  421. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp +502 -0
  422. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h +564 -0
  423. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/futils.h +107 -0
  424. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fvariant.h +297 -0
  425. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ibstream.h +87 -0
  426. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/icloneable.h +41 -0
  427. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ipersistent.h +160 -0
  428. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ipluginbase.h +520 -0
  429. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/iplugincompatibility.h +122 -0
  430. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h +80 -0
  431. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/iupdatehandler.h +98 -0
  432. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/smartpointer.h +386 -0
  433. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/typesizecheck.h +55 -0
  434. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ustring.cpp +275 -0
  435. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ustring.h +116 -0
  436. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/gui/iplugview.h +287 -0
  437. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/gui/iplugviewcontentscalesupport.h +75 -0
  438. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstattributes.h +150 -0
  439. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstaudioprocessor.h +434 -0
  440. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstautomationstate.h +67 -0
  441. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstchannelcontextinfo.h +238 -0
  442. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstcomponent.h +205 -0
  443. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstcontextmenu.h +219 -0
  444. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstdataexchange.h +221 -0
  445. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivsteditcontroller.h +657 -0
  446. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstevents.h +221 -0
  447. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivsthostapplication.h +163 -0
  448. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstinterappaudio.h +142 -0
  449. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstmessage.h +97 -0
  450. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstmidicontrollers.h +118 -0
  451. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstmidilearn.h +106 -0
  452. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstnoteexpression.h +255 -0
  453. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstparameterchanges.h +145 -0
  454. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstparameterfunctionname.h +151 -0
  455. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstphysicalui.h +169 -0
  456. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstpluginterfacesupport.h +67 -0
  457. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstplugview.h +62 -0
  458. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstprefetchablesupport.h +99 -0
  459. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstprocesscontext.h +153 -0
  460. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstremapparamid.h +75 -0
  461. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstrepresentation.h +364 -0
  462. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivsttestplugprovider.h +109 -0
  463. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstunits.h +271 -0
  464. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/vstpshpack4.h +30 -0
  465. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/vstspeaker.h +1318 -0
  466. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/vsttypes.h +157 -0
  467. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/samples/vst-utilities/moduleinfotool/source/main.cpp +441 -0
  468. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.cpp +319 -0
  469. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.h +79 -0
  470. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/pluginview.cpp +100 -0
  471. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/pluginview.h +116 -0
  472. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/readfile.cpp +81 -0
  473. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/readfile.h +54 -0
  474. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/hostclasses.cpp +342 -0
  475. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/hostclasses.h +120 -0
  476. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/module.cpp +340 -0
  477. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/module.h +214 -0
  478. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/module_linux.cpp +369 -0
  479. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/module_mac.mm +395 -0
  480. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/module_win32.cpp +647 -0
  481. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/pluginterfacesupport.cpp +134 -0
  482. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/pluginterfacesupport.h +70 -0
  483. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/json.h +3403 -0
  484. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/jsoncxx.h +427 -0
  485. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/moduleinfo.h +100 -0
  486. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/moduleinfocreator.cpp +309 -0
  487. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/moduleinfocreator.h +67 -0
  488. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/moduleinfoparser.cpp +537 -0
  489. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/moduleinfoparser.h +68 -0
  490. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/utility/optional.h +135 -0
  491. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/utility/stringconvert.cpp +148 -0
  492. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/utility/stringconvert.h +147 -0
  493. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/utility/uid.h +286 -0
  494. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstbus.cpp +99 -0
  495. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstbus.h +172 -0
  496. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstcomponent.cpp +216 -0
  497. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstcomponent.h +118 -0
  498. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstcomponentbase.cpp +180 -0
  499. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstcomponentbase.h +110 -0
  500. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vsteditcontroller.cpp +701 -0
  501. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vsteditcontroller.h +374 -0
  502. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstinitiids.cpp +154 -0
  503. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstparameters.cpp +454 -0
  504. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstparameters.h +240 -0
  505. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstpresetfile.cpp +927 -0
  506. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstpresetfile.h +306 -0
  507. package/ios/juce_modules/juce_audio_processors/format_types/juce_ARACommon.cpp +99 -0
  508. package/ios/juce_modules/juce_audio_processors/format_types/juce_ARACommon.h +98 -0
  509. package/ios/juce_modules/juce_audio_processors/format_types/juce_ARAHosting.cpp +490 -0
  510. package/ios/juce_modules/juce_audio_processors/format_types/juce_ARAHosting.h +786 -0
  511. package/ios/juce_modules/juce_audio_processors/format_types/juce_AU_Shared.h +588 -0
  512. package/ios/juce_modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h +79 -0
  513. package/ios/juce_modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm +2947 -0
  514. package/ios/juce_modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp +728 -0
  515. package/ios/juce_modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h +79 -0
  516. package/ios/juce_modules/juce_audio_processors/format_types/juce_LV2Common.h +676 -0
  517. package/ios/juce_modules/juce_audio_processors/format_types/juce_LV2PluginFormat.cpp +5654 -0
  518. package/ios/juce_modules/juce_audio_processors/format_types/juce_LV2PluginFormat.h +87 -0
  519. package/ios/juce_modules/juce_audio_processors/format_types/juce_LV2PluginFormat_test.cpp +281 -0
  520. package/ios/juce_modules/juce_audio_processors/format_types/juce_LV2Resources.h +10241 -0
  521. package/ios/juce_modules/juce_audio_processors/format_types/juce_LV2SupportLibs.cpp +117 -0
  522. package/ios/juce_modules/juce_audio_processors/format_types/juce_LegacyAudioParameter.cpp +225 -0
  523. package/ios/juce_modules/juce_audio_processors/format_types/juce_VST3Common.h +1851 -0
  524. package/ios/juce_modules/juce_audio_processors/format_types/juce_VST3Headers.h +280 -0
  525. package/ios/juce_modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp +4086 -0
  526. package/ios/juce_modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h +95 -0
  527. package/ios/juce_modules/juce_audio_processors/format_types/juce_VST3PluginFormat_test.cpp +740 -0
  528. package/ios/juce_modules/juce_audio_processors/format_types/juce_VSTCommon.h +315 -0
  529. package/ios/juce_modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h +229 -0
  530. package/ios/juce_modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp +3764 -0
  531. package/ios/juce_modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h +141 -0
  532. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/ipslcontextinfo.h +190 -0
  533. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/ipsleditcontroller.h +108 -0
  534. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/ipslgainreduction.h +53 -0
  535. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/ipslhostcommands.h +121 -0
  536. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/ipslviewembedding.h +53 -0
  537. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/ipslviewscaling.h +67 -0
  538. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/pslauextensions.h +57 -0
  539. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/pslvst2extensions.h +111 -0
  540. package/ios/juce_modules/juce_audio_processors/juce_audio_processors.cpp +246 -0
  541. package/ios/juce_modules/juce_audio_processors/juce_audio_processors.h +195 -0
  542. package/ios/juce_modules/juce_audio_processors/juce_audio_processors.mm +35 -0
  543. package/ios/juce_modules/juce_audio_processors/juce_audio_processors_ara.cpp +51 -0
  544. package/ios/juce_modules/juce_audio_processors/juce_audio_processors_lv2_libs.cpp +44 -0
  545. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioPluginInstance.cpp +294 -0
  546. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioPluginInstance.h +191 -0
  547. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessor.cpp +1655 -0
  548. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessor.h +1587 -0
  549. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp +230 -0
  550. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h +272 -0
  551. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorEditorHostContext.h +98 -0
  552. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp +2375 -0
  553. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h +453 -0
  554. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorListener.h +198 -0
  555. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h +370 -0
  556. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorParameterGroup.cpp +330 -0
  557. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorParameterGroup.h +263 -0
  558. package/ios/juce_modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp +633 -0
  559. package/ios/juce_modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h +74 -0
  560. package/ios/juce_modules/juce_audio_processors/processors/juce_HostedAudioProcessorParameter.h +61 -0
  561. package/ios/juce_modules/juce_audio_processors/processors/juce_PluginDescription.cpp +126 -0
  562. package/ios/juce_modules/juce_audio_processors/processors/juce_PluginDescription.h +189 -0
  563. package/ios/juce_modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp +651 -0
  564. package/ios/juce_modules/juce_audio_processors/scanning/juce_KnownPluginList.h +249 -0
  565. package/ios/juce_modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp +148 -0
  566. package/ios/juce_modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h +147 -0
  567. package/ios/juce_modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp +690 -0
  568. package/ios/juce_modules/juce_audio_processors/scanning/juce_PluginListComponent.h +156 -0
  569. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARADebug.h +76 -0
  570. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARADocumentController.cpp +985 -0
  571. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARADocumentController.h +538 -0
  572. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARADocumentControllerCommon.cpp +80 -0
  573. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARAModelObjects.cpp +302 -0
  574. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARAModelObjects.h +983 -0
  575. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARAPlugInInstanceRoles.cpp +123 -0
  576. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARAPlugInInstanceRoles.h +263 -0
  577. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARA_utils.cpp +65 -0
  578. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARA_utils.h +95 -0
  579. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_AudioProcessor_ARAExtensions.cpp +163 -0
  580. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_AudioProcessor_ARAExtensions.h +213 -0
  581. package/ios/juce_modules/juce_audio_processors/utilities/juce_AAXClientExtensions.cpp +308 -0
  582. package/ios/juce_modules/juce_audio_processors/utilities/juce_AAXClientExtensions.h +92 -0
  583. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterBool.cpp +104 -0
  584. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterBool.h +149 -0
  585. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterChoice.cpp +145 -0
  586. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h +162 -0
  587. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterFloat.cpp +113 -0
  588. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h +169 -0
  589. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterInt.cpp +146 -0
  590. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterInt.h +163 -0
  591. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.cpp +56 -0
  592. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h +200 -0
  593. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp +997 -0
  594. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h +669 -0
  595. package/ios/juce_modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h +155 -0
  596. package/ios/juce_modules/juce_audio_processors/utilities/juce_FlagCache.h +191 -0
  597. package/ios/juce_modules/juce_audio_processors/utilities/juce_ParameterAttachments.cpp +442 -0
  598. package/ios/juce_modules/juce_audio_processors/utilities/juce_ParameterAttachments.h +400 -0
  599. package/ios/juce_modules/juce_audio_processors/utilities/juce_PluginHostType.cpp +328 -0
  600. package/ios/juce_modules/juce_audio_processors/utilities/juce_PluginHostType.h +265 -0
  601. package/ios/juce_modules/juce_audio_processors/utilities/juce_RangedAudioParameter.cpp +60 -0
  602. package/ios/juce_modules/juce_audio_processors/utilities/juce_RangedAudioParameter.h +129 -0
  603. package/ios/juce_modules/juce_audio_processors/utilities/juce_VST2ClientExtensions.cpp +48 -0
  604. package/ios/juce_modules/juce_audio_processors/utilities/juce_VST2ClientExtensions.h +83 -0
  605. package/ios/juce_modules/juce_audio_processors/utilities/juce_VST3ClientExtensions.h +119 -0
  606. package/ios/juce_modules/juce_core/native/juce_BasicNativeHeaders.h +6 -1
  607. package/ios/juce_modules/juce_graphics/colour/juce_Colour.cpp +726 -0
  608. package/ios/juce_modules/juce_graphics/colour/juce_Colour.h +429 -0
  609. package/ios/juce_modules/juce_graphics/colour/juce_ColourGradient.cpp +294 -0
  610. package/ios/juce_modules/juce_graphics/colour/juce_ColourGradient.h +255 -0
  611. package/ios/juce_modules/juce_graphics/colour/juce_Colours.cpp +205 -0
  612. package/ios/juce_modules/juce_graphics/colour/juce_Colours.h +200 -0
  613. package/ios/juce_modules/juce_graphics/colour/juce_FillType.cpp +166 -0
  614. package/ios/juce_modules/juce_graphics/colour/juce_FillType.h +165 -0
  615. package/ios/juce_modules/juce_graphics/colour/juce_PixelFormats.h +749 -0
  616. package/ios/juce_modules/juce_graphics/contexts/juce_GraphicsContext.cpp +857 -0
  617. package/ios/juce_modules/juce_graphics/contexts/juce_GraphicsContext.h +758 -0
  618. package/ios/juce_modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h +186 -0
  619. package/ios/juce_modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp +59 -0
  620. package/ios/juce_modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h +66 -0
  621. package/ios/juce_modules/juce_graphics/detail/juce_Ranges.cpp +793 -0
  622. package/ios/juce_modules/juce_graphics/detail/juce_Ranges.h +1014 -0
  623. package/ios/juce_modules/juce_graphics/effects/juce_DropShadowEffect.cpp +152 -0
  624. package/ios/juce_modules/juce_graphics/effects/juce_DropShadowEffect.h +122 -0
  625. package/ios/juce_modules/juce_graphics/effects/juce_GlowEffect.cpp +59 -0
  626. package/ios/juce_modules/juce_graphics/effects/juce_GlowEffect.h +86 -0
  627. package/ios/juce_modules/juce_graphics/effects/juce_ImageEffectFilter.h +80 -0
  628. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Color/CBDT/CBDT.hh +1031 -0
  629. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Color/COLR/COLR.hh +2745 -0
  630. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Color/COLR/colrv1-closure.hh +137 -0
  631. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Color/CPAL/CPAL.hh +358 -0
  632. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Color/sbix/sbix.hh +448 -0
  633. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Color/svg/svg.hh +152 -0
  634. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/Common/Coverage.hh +352 -0
  635. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/Common/CoverageFormat1.hh +133 -0
  636. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/Common/CoverageFormat2.hh +239 -0
  637. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/Common/RangeRecord.hh +97 -0
  638. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GDEF/GDEF.hh +1044 -0
  639. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/Anchor.hh +84 -0
  640. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/AnchorFormat1.hh +46 -0
  641. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/AnchorFormat2.hh +58 -0
  642. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/AnchorFormat3.hh +120 -0
  643. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/AnchorMatrix.hh +87 -0
  644. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/ChainContextPos.hh +14 -0
  645. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/Common.hh +33 -0
  646. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/ContextPos.hh +14 -0
  647. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/CursivePos.hh +35 -0
  648. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/CursivePosFormat1.hh +311 -0
  649. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/ExtensionPos.hh +17 -0
  650. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/GPOS.hh +171 -0
  651. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/LigatureArray.hh +57 -0
  652. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkArray.hh +128 -0
  653. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkBasePos.hh +41 -0
  654. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkBasePosFormat1.hh +243 -0
  655. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkLigPos.hh +41 -0
  656. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkLigPosFormat1.hh +224 -0
  657. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkMarkPos.hh +42 -0
  658. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkMarkPosFormat1.hh +231 -0
  659. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkRecord.hh +51 -0
  660. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PairPos.hh +46 -0
  661. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PairPosFormat1.hh +233 -0
  662. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PairPosFormat2.hh +365 -0
  663. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PairSet.hh +210 -0
  664. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PairValueRecord.hh +99 -0
  665. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PosLookup.hh +79 -0
  666. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PosLookupSubTable.hh +79 -0
  667. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/SinglePos.hh +98 -0
  668. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/SinglePosFormat1.hh +190 -0
  669. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/SinglePosFormat2.hh +213 -0
  670. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/ValueFormat.hh +441 -0
  671. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/AlternateSet.hh +126 -0
  672. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/AlternateSubst.hh +62 -0
  673. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/AlternateSubstFormat1.hh +128 -0
  674. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/ChainContextSubst.hh +18 -0
  675. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/Common.hh +19 -0
  676. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/ContextSubst.hh +18 -0
  677. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/ExtensionSubst.hh +22 -0
  678. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/GSUB.hh +61 -0
  679. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/Ligature.hh +203 -0
  680. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/LigatureSet.hh +188 -0
  681. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/LigatureSubst.hh +71 -0
  682. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/LigatureSubstFormat1.hh +166 -0
  683. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/MultipleSubst.hh +62 -0
  684. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/MultipleSubstFormat1.hh +130 -0
  685. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/ReverseChainSingleSubst.hh +36 -0
  686. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/ReverseChainSingleSubstFormat1.hh +245 -0
  687. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/Sequence.hh +165 -0
  688. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/SingleSubst.hh +103 -0
  689. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/SingleSubstFormat1.hh +204 -0
  690. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/SingleSubstFormat2.hh +176 -0
  691. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/SubstLookup.hh +220 -0
  692. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/SubstLookupSubTable.hh +77 -0
  693. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/types.hh +66 -0
  694. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Var/VARC/VARC.cc +346 -0
  695. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Var/VARC/VARC.hh +193 -0
  696. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Var/VARC/coord-setter.hh +37 -0
  697. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/CompositeGlyph.hh +435 -0
  698. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/Glyph.hh +556 -0
  699. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/GlyphHeader.hh +52 -0
  700. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/SimpleGlyph.hh +348 -0
  701. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/SubsetGlyph.hh +141 -0
  702. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/composite-iter.hh +68 -0
  703. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/glyf-helpers.hh +127 -0
  704. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/glyf.hh +513 -0
  705. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/loca.hh +43 -0
  706. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/path-builder.hh +190 -0
  707. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/name/name.hh +589 -0
  708. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/failing-alloc.c +65 -0
  709. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/harfbuzz-subset.cc +64 -0
  710. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/harfbuzz.cc +63 -0
  711. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-ankr-table.hh +99 -0
  712. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-bsln-table.hh +159 -0
  713. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-common.hh +1076 -0
  714. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-feat-table.hh +224 -0
  715. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-just-table.hh +420 -0
  716. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-kerx-table.hh +1191 -0
  717. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-morx-table.hh +1443 -0
  718. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-opbd-table.hh +174 -0
  719. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-trak-table.hh +232 -0
  720. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout.cc +449 -0
  721. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout.h +795 -0
  722. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout.hh +77 -0
  723. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-ltag-table.hh +95 -0
  724. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-map.cc +172 -0
  725. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-map.hh +123 -0
  726. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat.h +38 -0
  727. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-algs.hh +1558 -0
  728. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-array.hh +504 -0
  729. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-atomic.hh +228 -0
  730. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-bimap.hh +205 -0
  731. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-bit-page.hh +352 -0
  732. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-bit-set-invertible.hh +379 -0
  733. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-bit-set.hh +982 -0
  734. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-blob.cc +794 -0
  735. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-blob.h +160 -0
  736. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-blob.hh +98 -0
  737. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer-deserialize-json.hh +795 -0
  738. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer-deserialize-text-glyphs.hh +692 -0
  739. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer-deserialize-text-unicode.hh +332 -0
  740. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer-serialize.cc +872 -0
  741. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer-verify.cc +423 -0
  742. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer.cc +2266 -0
  743. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer.h +805 -0
  744. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer.hh +682 -0
  745. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cache.hh +99 -0
  746. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cff-interp-common.hh +642 -0
  747. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cff-interp-cs-common.hh +905 -0
  748. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cff-interp-dict-common.hh +201 -0
  749. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cff1-interp-cs.hh +160 -0
  750. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cff2-interp-cs.hh +278 -0
  751. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-common.cc +1220 -0
  752. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-common.h +935 -0
  753. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-config.hh +212 -0
  754. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-coretext.cc +1197 -0
  755. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-coretext.h +96 -0
  756. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cplusplus.hh +220 -0
  757. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-debug.hh +491 -0
  758. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-deprecated.h +318 -0
  759. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-directwrite.cc +884 -0
  760. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-directwrite.h +40 -0
  761. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-dispatch.hh +60 -0
  762. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-draw.cc +458 -0
  763. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-draw.h +340 -0
  764. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-draw.hh +243 -0
  765. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-face-builder.cc +246 -0
  766. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-face.cc +664 -0
  767. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-face.h +187 -0
  768. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-face.hh +111 -0
  769. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-fallback-shape.cc +115 -0
  770. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-font.cc +3069 -0
  771. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-font.h +1153 -0
  772. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-font.hh +720 -0
  773. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ft-colr.hh +601 -0
  774. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ft.cc +1500 -0
  775. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ft.h +145 -0
  776. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-gdi.cc +85 -0
  777. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-gdi.h +39 -0
  778. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-geometry.hh +284 -0
  779. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-glib.cc +232 -0
  780. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-glib.h +56 -0
  781. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-gobject-structs.cc +116 -0
  782. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-gobject-structs.h +136 -0
  783. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-gobject.h +40 -0
  784. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-graphite2.cc +455 -0
  785. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-graphite2.h +61 -0
  786. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-icu.cc +291 -0
  787. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-icu.h +52 -0
  788. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-iter.hh +1037 -0
  789. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-kern.hh +145 -0
  790. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-limits.hh +112 -0
  791. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-machinery.hh +332 -0
  792. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-map.cc +419 -0
  793. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-map.h +143 -0
  794. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-map.hh +568 -0
  795. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-meta.hh +238 -0
  796. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ms-feature-ranges.hh +232 -0
  797. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-multimap.hh +96 -0
  798. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-mutex.hh +122 -0
  799. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-null.hh +226 -0
  800. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-number-parser.hh +237 -0
  801. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-number.cc +79 -0
  802. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-number.hh +41 -0
  803. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-object.hh +357 -0
  804. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-open-file.hh +543 -0
  805. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-open-type.hh +1886 -0
  806. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cff-common.hh +374 -0
  807. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cff1-std-str.hh +425 -0
  808. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cff1-table.cc +620 -0
  809. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cff1-table.hh +1539 -0
  810. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cff2-table.cc +227 -0
  811. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cff2-table.hh +564 -0
  812. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cmap-table.hh +2154 -0
  813. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-color.cc +363 -0
  814. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-color.h +155 -0
  815. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-deprecated.h +147 -0
  816. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-face-table-list.hh +155 -0
  817. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-face.cc +60 -0
  818. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-face.hh +77 -0
  819. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-font.cc +662 -0
  820. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-font.h +45 -0
  821. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-gasp-table.hh +84 -0
  822. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-glyf-table.hh +35 -0
  823. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-hdmx-table.hh +177 -0
  824. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-head-table.hh +204 -0
  825. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-hhea-table.hh +106 -0
  826. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-hmtx-table.hh +502 -0
  827. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-kern-table.hh +425 -0
  828. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-base-table.hh +849 -0
  829. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-common.hh +4953 -0
  830. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-gdef-table.hh +34 -0
  831. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-gpos-table.hh +81 -0
  832. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-gsub-table.hh +94 -0
  833. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-gsubgpos.hh +4887 -0
  834. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-jstf-table.hh +236 -0
  835. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout.cc +2705 -0
  836. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout.h +549 -0
  837. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout.hh +611 -0
  838. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-map.cc +394 -0
  839. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-map.hh +298 -0
  840. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-math-table.hh +1132 -0
  841. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-math.cc +338 -0
  842. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-math.h +333 -0
  843. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-maxp-table.hh +156 -0
  844. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-meta-table.hh +131 -0
  845. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-meta.cc +79 -0
  846. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-meta.h +72 -0
  847. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-metrics.cc +436 -0
  848. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-metrics.h +129 -0
  849. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-metrics.hh +35 -0
  850. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-name-language-static.hh +456 -0
  851. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-name-language.hh +40 -0
  852. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-name-table.hh +32 -0
  853. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-name.cc +184 -0
  854. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-name.h +164 -0
  855. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-os2-table.hh +405 -0
  856. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-os2-unicode-ranges.hh +231 -0
  857. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-post-macroman.hh +294 -0
  858. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-post-table-v2subset.hh +142 -0
  859. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-post-table.hh +352 -0
  860. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape-fallback.cc +615 -0
  861. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape-fallback.hh +54 -0
  862. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape-normalize.cc +470 -0
  863. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape-normalize.hh +104 -0
  864. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape.cc +1319 -0
  865. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape.h +53 -0
  866. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape.hh +171 -0
  867. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic-fallback.hh +383 -0
  868. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic-joining-list.hh +47 -0
  869. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic-pua.hh +118 -0
  870. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic-table.hh +556 -0
  871. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic-win1256.hh +349 -0
  872. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic.cc +774 -0
  873. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic.hh +50 -0
  874. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-default.cc +75 -0
  875. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-hangul.cc +436 -0
  876. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-hebrew.cc +211 -0
  877. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-indic-machine.hh +627 -0
  878. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-indic-table.cc +561 -0
  879. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-indic.cc +1578 -0
  880. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-indic.hh +66 -0
  881. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-khmer-machine.hh +428 -0
  882. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-khmer.cc +387 -0
  883. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-myanmar-machine.hh +553 -0
  884. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-myanmar.cc +390 -0
  885. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-syllabic.cc +112 -0
  886. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-syllabic.hh +47 -0
  887. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-thai.cc +393 -0
  888. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-use-machine.hh +1079 -0
  889. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-use-table.hh +690 -0
  890. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-use.cc +514 -0
  891. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-vowel-constraints.cc +477 -0
  892. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-vowel-constraints.hh +39 -0
  893. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper.hh +404 -0
  894. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-stat-table.hh +619 -0
  895. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-tag-table.hh +3009 -0
  896. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-tag.cc +658 -0
  897. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-avar-table.hh +411 -0
  898. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-common.hh +1985 -0
  899. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-cvar-table.hh +220 -0
  900. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-fvar-table.hh +505 -0
  901. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-gvar-table.hh +890 -0
  902. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-hvar-table.hh +478 -0
  903. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-mvar-table.hh +184 -0
  904. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-varc-table.hh +32 -0
  905. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var.cc +328 -0
  906. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var.h +191 -0
  907. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-vorg-table.hh +137 -0
  908. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot.h +49 -0
  909. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-outline.cc +321 -0
  910. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-outline.hh +83 -0
  911. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-paint-extents.cc +330 -0
  912. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-paint-extents.hh +132 -0
  913. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-paint.cc +728 -0
  914. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-paint.h +1029 -0
  915. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-paint.hh +236 -0
  916. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-pool.hh +107 -0
  917. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-priority-queue.hh +174 -0
  918. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-repacker.hh +476 -0
  919. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-sanitize.hh +530 -0
  920. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-serialize.hh +832 -0
  921. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-set-digest.hh +227 -0
  922. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-set.cc +673 -0
  923. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-set.h +203 -0
  924. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-set.hh +186 -0
  925. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shape-plan.cc +581 -0
  926. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shape-plan.h +122 -0
  927. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shape-plan.hh +77 -0
  928. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shape.cc +445 -0
  929. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shape.h +74 -0
  930. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shaper-impl.hh +38 -0
  931. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shaper-list.hh +65 -0
  932. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shaper.cc +102 -0
  933. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shaper.hh +134 -0
  934. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-static.cc +138 -0
  935. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-string-array.hh +85 -0
  936. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-style.cc +134 -0
  937. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-style.h +81 -0
  938. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-accelerator.hh +141 -0
  939. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-cff-common.cc +231 -0
  940. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-cff-common.hh +1228 -0
  941. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-cff1.cc +1001 -0
  942. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-cff2.cc +679 -0
  943. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-input.cc +748 -0
  944. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-input.hh +155 -0
  945. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-instancer-iup.cc +532 -0
  946. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-instancer-iup.hh +37 -0
  947. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-instancer-solver.cc +434 -0
  948. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-instancer-solver.hh +114 -0
  949. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-plan-member-list.hh +164 -0
  950. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-plan.cc +1570 -0
  951. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-plan.hh +302 -0
  952. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-repacker.cc +58 -0
  953. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-repacker.h +81 -0
  954. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset.cc +704 -0
  955. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset.h +260 -0
  956. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset.hh +74 -0
  957. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ucd-table.hh +5637 -0
  958. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ucd.cc +258 -0
  959. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-unicode-emoji-table.hh +79 -0
  960. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-unicode.cc +625 -0
  961. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-unicode.h +643 -0
  962. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-unicode.hh +403 -0
  963. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-uniscribe.cc +889 -0
  964. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-uniscribe.h +46 -0
  965. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-utf.hh +481 -0
  966. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-vector.hh +539 -0
  967. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-version.h +95 -0
  968. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-blob.hh +50 -0
  969. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-buffer.hh +217 -0
  970. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-common.hh +44 -0
  971. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-face.hh +109 -0
  972. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-font.hh +263 -0
  973. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-list.hh +109 -0
  974. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-shape.hh +70 -0
  975. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api.cc +46 -0
  976. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api.h +322 -0
  977. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api.hh +117 -0
  978. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-shape.cc +470 -0
  979. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb.h +51 -0
  980. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb.hh +555 -0
  981. package/ios/juce_modules/juce_graphics/fonts/juce_AttributedString.cpp +288 -0
  982. package/ios/juce_modules/juce_graphics/fonts/juce_AttributedString.h +219 -0
  983. package/ios/juce_modules/juce_graphics/fonts/juce_Font.cpp +1036 -0
  984. package/ios/juce_modules/juce_graphics/fonts/juce_Font.h +571 -0
  985. package/ios/juce_modules/juce_graphics/fonts/juce_FontOptions.cpp +111 -0
  986. package/ios/juce_modules/juce_graphics/fonts/juce_FontOptions.h +218 -0
  987. package/ios/juce_modules/juce_graphics/fonts/juce_FunctionPointerDestructor.h +53 -0
  988. package/ios/juce_modules/juce_graphics/fonts/juce_GlyphArrangement.cpp +657 -0
  989. package/ios/juce_modules/juce_graphics/fonts/juce_GlyphArrangement.h +324 -0
  990. package/ios/juce_modules/juce_graphics/fonts/juce_JustifiedText.cpp +580 -0
  991. package/ios/juce_modules/juce_graphics/fonts/juce_LruCache.h +88 -0
  992. package/ios/juce_modules/juce_graphics/fonts/juce_ShapedText.cpp +210 -0
  993. package/ios/juce_modules/juce_graphics/fonts/juce_SimpleShapedText.cpp +1279 -0
  994. package/ios/juce_modules/juce_graphics/fonts/juce_TextLayout.cpp +512 -0
  995. package/ios/juce_modules/juce_graphics/fonts/juce_TextLayout.h +278 -0
  996. package/ios/juce_modules/juce_graphics/fonts/juce_Typeface.cpp +983 -0
  997. package/ios/juce_modules/juce_graphics/fonts/juce_Typeface.h +396 -0
  998. package/ios/juce_modules/juce_graphics/fonts/juce_TypefaceFileCache.h +74 -0
  999. package/ios/juce_modules/juce_graphics/fonts/juce_TypefaceTestData.cpp +6051 -0
  1000. package/ios/juce_modules/juce_graphics/geometry/juce_AffineTransform.cpp +307 -0
  1001. package/ios/juce_modules/juce_graphics/geometry/juce_AffineTransform.h +314 -0
  1002. package/ios/juce_modules/juce_graphics/geometry/juce_BorderSize.h +176 -0
  1003. package/ios/juce_modules/juce_graphics/geometry/juce_EdgeTable.cpp +848 -0
  1004. package/ios/juce_modules/juce_graphics/geometry/juce_EdgeTable.h +225 -0
  1005. package/ios/juce_modules/juce_graphics/geometry/juce_Line.h +454 -0
  1006. package/ios/juce_modules/juce_graphics/geometry/juce_Parallelogram.h +194 -0
  1007. package/ios/juce_modules/juce_graphics/geometry/juce_Parallelogram_test.cpp +75 -0
  1008. package/ios/juce_modules/juce_graphics/geometry/juce_Path.cpp +1531 -0
  1009. package/ios/juce_modules/juce_graphics/geometry/juce_Path.h +846 -0
  1010. package/ios/juce_modules/juce_graphics/geometry/juce_PathIterator.cpp +304 -0
  1011. package/ios/juce_modules/juce_graphics/geometry/juce_PathIterator.h +120 -0
  1012. package/ios/juce_modules/juce_graphics/geometry/juce_PathStrokeType.cpp +756 -0
  1013. package/ios/juce_modules/juce_graphics/geometry/juce_PathStrokeType.h +215 -0
  1014. package/ios/juce_modules/juce_graphics/geometry/juce_Point.h +269 -0
  1015. package/ios/juce_modules/juce_graphics/geometry/juce_Rectangle.h +1032 -0
  1016. package/ios/juce_modules/juce_graphics/geometry/juce_RectangleList.h +694 -0
  1017. package/ios/juce_modules/juce_graphics/geometry/juce_Rectangle_test.cpp +60 -0
  1018. package/ios/juce_modules/juce_graphics/image_formats/jpglib/README +385 -0
  1019. package/ios/juce_modules/juce_graphics/image_formats/jpglib/cderror.h +132 -0
  1020. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcapimin.c +280 -0
  1021. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcapistd.c +161 -0
  1022. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jccoefct.c +449 -0
  1023. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jccolor.c +459 -0
  1024. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcdctmgr.c +387 -0
  1025. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jchuff.c +909 -0
  1026. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jchuff.h +52 -0
  1027. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcinit.c +72 -0
  1028. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcmainct.c +293 -0
  1029. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcmarker.c +597 -0
  1030. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcmaster.c +590 -0
  1031. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcomapi.c +106 -0
  1032. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jconfig.h +59 -0
  1033. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcparam.c +610 -0
  1034. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcphuff.c +833 -0
  1035. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcprepct.c +354 -0
  1036. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcsample.c +519 -0
  1037. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jctrans.c +388 -0
  1038. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdapimin.c +395 -0
  1039. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdapistd.c +275 -0
  1040. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdatasrc.c +212 -0
  1041. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdcoefct.c +736 -0
  1042. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdcolor.c +396 -0
  1043. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdct.h +182 -0
  1044. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jddctmgr.c +269 -0
  1045. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdhuff.c +625 -0
  1046. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdhuff.h +206 -0
  1047. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdinput.c +381 -0
  1048. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdmainct.c +512 -0
  1049. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdmarker.c +1292 -0
  1050. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdmaster.c +557 -0
  1051. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdmerge.c +400 -0
  1052. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdphuff.c +642 -0
  1053. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdpostct.c +290 -0
  1054. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdsample.c +478 -0
  1055. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdtrans.c +143 -0
  1056. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jerror.c +252 -0
  1057. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jerror.h +291 -0
  1058. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jfdctflt.c +168 -0
  1059. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jfdctfst.c +224 -0
  1060. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jfdctint.c +283 -0
  1061. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jidctflt.c +242 -0
  1062. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jidctfst.c +368 -0
  1063. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jidctint.c +389 -0
  1064. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jidctred.c +398 -0
  1065. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jinclude.h +197 -0
  1066. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jmemmgr.c +1118 -0
  1067. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jmemnobs.c +109 -0
  1068. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jmemsys.h +203 -0
  1069. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jmorecfg.h +363 -0
  1070. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jpegint.h +392 -0
  1071. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jpeglib.h +1096 -0
  1072. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jquant1.c +856 -0
  1073. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jquant2.c +1310 -0
  1074. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jutils.c +179 -0
  1075. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jversion.h +14 -0
  1076. package/ios/juce_modules/juce_graphics/image_formats/jpglib/transupp.c +928 -0
  1077. package/ios/juce_modules/juce_graphics/image_formats/jpglib/transupp.h +135 -0
  1078. package/ios/juce_modules/juce_graphics/image_formats/juce_GIFLoader.cpp +464 -0
  1079. package/ios/juce_modules/juce_graphics/image_formats/juce_JPEGLoader.cpp +456 -0
  1080. package/ios/juce_modules/juce_graphics/image_formats/juce_PNGLoader.cpp +635 -0
  1081. package/ios/juce_modules/juce_graphics/image_formats/pnglib/png.c +4607 -0
  1082. package/ios/juce_modules/juce_graphics/image_formats/pnglib/png.h +3251 -0
  1083. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngconf.h +623 -0
  1084. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngdebug.h +153 -0
  1085. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngerror.c +963 -0
  1086. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngget.c +1249 -0
  1087. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pnginfo.h +267 -0
  1088. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngmem.c +284 -0
  1089. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngpread.c +1096 -0
  1090. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngpriv.h +2156 -0
  1091. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngread.c +4225 -0
  1092. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngrio.c +120 -0
  1093. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngrtran.c +5102 -0
  1094. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngrutil.c +4681 -0
  1095. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngset.c +1802 -0
  1096. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngstruct.h +491 -0
  1097. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngtrans.c +864 -0
  1098. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngwio.c +168 -0
  1099. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngwrite.c +2395 -0
  1100. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngwtran.c +587 -0
  1101. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngwutil.c +2781 -0
  1102. package/ios/juce_modules/juce_graphics/images/juce_Image.cpp +851 -0
  1103. package/ios/juce_modules/juce_graphics/images/juce_Image.h +630 -0
  1104. package/ios/juce_modules/juce_graphics/images/juce_ImageCache.cpp +183 -0
  1105. package/ios/juce_modules/juce_graphics/images/juce_ImageCache.h +136 -0
  1106. package/ios/juce_modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp +209 -0
  1107. package/ios/juce_modules/juce_graphics/images/juce_ImageConvolutionKernel.h +121 -0
  1108. package/ios/juce_modules/juce_graphics/images/juce_ImageFileFormat.cpp +120 -0
  1109. package/ios/juce_modules/juce_graphics/images/juce_ImageFileFormat.h +232 -0
  1110. package/ios/juce_modules/juce_graphics/images/juce_ScaledImage.h +93 -0
  1111. package/ios/juce_modules/juce_graphics/juce_graphics.cpp +230 -0
  1112. package/ios/juce_modules/juce_graphics/juce_graphics.h +162 -0
  1113. package/ios/juce_modules/juce_graphics/juce_graphics.mm +35 -0
  1114. package/ios/juce_modules/juce_graphics/juce_graphics_Harfbuzz.cpp +100 -0
  1115. package/ios/juce_modules/juce_graphics/native/juce_CoreGraphicsContext_mac.h +153 -0
  1116. package/ios/juce_modules/juce_graphics/native/juce_CoreGraphicsContext_mac.mm +969 -0
  1117. package/ios/juce_modules/juce_graphics/native/juce_CoreGraphicsHelpers_mac.h +117 -0
  1118. package/ios/juce_modules/juce_graphics/native/juce_Direct2DGraphicsContext_windows.cpp +1807 -0
  1119. package/ios/juce_modules/juce_graphics/native/juce_Direct2DGraphicsContext_windows.h +174 -0
  1120. package/ios/juce_modules/juce_graphics/native/juce_Direct2DHelpers_windows.cpp +456 -0
  1121. package/ios/juce_modules/juce_graphics/native/juce_Direct2DHwndContext_windows.cpp +784 -0
  1122. package/ios/juce_modules/juce_graphics/native/juce_Direct2DHwndContext_windows.h +73 -0
  1123. package/ios/juce_modules/juce_graphics/native/juce_Direct2DImageContext_windows.cpp +124 -0
  1124. package/ios/juce_modules/juce_graphics/native/juce_Direct2DImageContext_windows.h +55 -0
  1125. package/ios/juce_modules/juce_graphics/native/juce_Direct2DImage_windows.cpp +732 -0
  1126. package/ios/juce_modules/juce_graphics/native/juce_Direct2DImage_windows.h +94 -0
  1127. package/ios/juce_modules/juce_graphics/native/juce_Direct2DMetrics_windows.cpp +132 -0
  1128. package/ios/juce_modules/juce_graphics/native/juce_Direct2DMetrics_windows.h +320 -0
  1129. package/ios/juce_modules/juce_graphics/native/juce_Direct2DResources_windows.cpp +661 -0
  1130. package/ios/juce_modules/juce_graphics/native/juce_DirectWriteTypeface_windows.cpp +920 -0
  1131. package/ios/juce_modules/juce_graphics/native/juce_DirectX_windows.h +330 -0
  1132. package/ios/juce_modules/juce_graphics/native/juce_EventTracing.h +310 -0
  1133. package/ios/juce_modules/juce_graphics/native/juce_Fonts_android.cpp +636 -0
  1134. package/ios/juce_modules/juce_graphics/native/juce_Fonts_freetype.cpp +589 -0
  1135. package/ios/juce_modules/juce_graphics/native/juce_Fonts_linux.cpp +208 -0
  1136. package/ios/juce_modules/juce_graphics/native/juce_Fonts_mac.mm +416 -0
  1137. package/ios/juce_modules/juce_graphics/native/juce_GraphicsContext_android.cpp +43 -0
  1138. package/ios/juce_modules/juce_graphics/native/juce_IconHelpers_android.cpp +39 -0
  1139. package/ios/juce_modules/juce_graphics/native/juce_IconHelpers_linux.cpp +39 -0
  1140. package/ios/juce_modules/juce_graphics/native/juce_IconHelpers_mac.cpp +150 -0
  1141. package/ios/juce_modules/juce_graphics/native/juce_IconHelpers_windows.cpp +39 -0
  1142. package/ios/juce_modules/juce_graphics/native/juce_RenderingHelpers.h +2696 -0
  1143. package/ios/juce_modules/juce_graphics/placement/juce_Justification.h +196 -0
  1144. package/ios/juce_modules/juce_graphics/placement/juce_RectanglePlacement.cpp +131 -0
  1145. package/ios/juce_modules/juce_graphics/placement/juce_RectanglePlacement.h +183 -0
  1146. package/ios/juce_modules/juce_graphics/unicode/juce_Unicode.cpp +331 -0
  1147. package/ios/juce_modules/juce_graphics/unicode/juce_UnicodeBidi.cpp +1139 -0
  1148. package/ios/juce_modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp +142 -0
  1149. package/ios/juce_modules/juce_graphics/unicode/juce_UnicodeGenerated.cpp +1380 -0
  1150. package/ios/juce_modules/juce_graphics/unicode/juce_UnicodeLine.cpp +273 -0
  1151. package/ios/juce_modules/juce_graphics/unicode/juce_UnicodeScript.cpp +235 -0
  1152. package/ios/juce_modules/juce_graphics/unicode/juce_UnicodeUtils.cpp +104 -0
  1153. package/ios/juce_modules/juce_gui_basics/accessibility/enums/juce_AccessibilityActions.h +128 -0
  1154. package/ios/juce_modules/juce_gui_basics/accessibility/enums/juce_AccessibilityEvent.h +90 -0
  1155. package/ios/juce_modules/juce_gui_basics/accessibility/enums/juce_AccessibilityRole.h +80 -0
  1156. package/ios/juce_modules/juce_gui_basics/accessibility/interfaces/juce_AccessibilityCellInterface.h +61 -0
  1157. package/ios/juce_modules/juce_gui_basics/accessibility/interfaces/juce_AccessibilityTableInterface.h +106 -0
  1158. package/ios/juce_modules/juce_gui_basics/accessibility/interfaces/juce_AccessibilityTextInterface.h +93 -0
  1159. package/ios/juce_modules/juce_gui_basics/accessibility/interfaces/juce_AccessibilityValueInterface.h +231 -0
  1160. package/ios/juce_modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.cpp +412 -0
  1161. package/ios/juce_modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.h +354 -0
  1162. package/ios/juce_modules/juce_gui_basics/accessibility/juce_AccessibilityState.h +236 -0
  1163. package/ios/juce_modules/juce_gui_basics/application/juce_Application.cpp +109 -0
  1164. package/ios/juce_modules/juce_gui_basics/application/juce_Application.h +202 -0
  1165. package/ios/juce_modules/juce_gui_basics/buttons/juce_ArrowButton.cpp +60 -0
  1166. package/ios/juce_modules/juce_gui_basics/buttons/juce_ArrowButton.h +74 -0
  1167. package/ios/juce_modules/juce_gui_basics/buttons/juce_Button.cpp +730 -0
  1168. package/ios/juce_modules/juce_gui_basics/buttons/juce_Button.h +559 -0
  1169. package/ios/juce_modules/juce_gui_basics/buttons/juce_DrawableButton.cpp +250 -0
  1170. package/ios/juce_modules/juce_gui_basics/buttons/juce_DrawableButton.h +206 -0
  1171. package/ios/juce_modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp +138 -0
  1172. package/ios/juce_modules/juce_gui_basics/buttons/juce_HyperlinkButton.h +139 -0
  1173. package/ios/juce_modules/juce_gui_basics/buttons/juce_ImageButton.cpp +207 -0
  1174. package/ios/juce_modules/juce_gui_basics/buttons/juce_ImageButton.h +170 -0
  1175. package/ios/juce_modules/juce_gui_basics/buttons/juce_ShapeButton.cpp +146 -0
  1176. package/ios/juce_modules/juce_gui_basics/buttons/juce_ShapeButton.h +135 -0
  1177. package/ios/juce_modules/juce_gui_basics/buttons/juce_TextButton.cpp +86 -0
  1178. package/ios/juce_modules/juce_gui_basics/buttons/juce_TextButton.h +118 -0
  1179. package/ios/juce_modules/juce_gui_basics/buttons/juce_ToggleButton.cpp +74 -0
  1180. package/ios/juce_modules/juce_gui_basics/buttons/juce_ToggleButton.h +102 -0
  1181. package/ios/juce_modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp +122 -0
  1182. package/ios/juce_modules/juce_gui_basics/buttons/juce_ToolbarButton.h +107 -0
  1183. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandID.h +99 -0
  1184. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp +75 -0
  1185. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h +199 -0
  1186. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp +331 -0
  1187. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h +358 -0
  1188. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp +195 -0
  1189. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h +253 -0
  1190. package/ios/juce_modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp +427 -0
  1191. package/ios/juce_modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h +253 -0
  1192. package/ios/juce_modules/juce_gui_basics/components/juce_CachedComponentImage.h +81 -0
  1193. package/ios/juce_modules/juce_gui_basics/components/juce_Component.cpp +3013 -0
  1194. package/ios/juce_modules/juce_gui_basics/components/juce_Component.h +2716 -0
  1195. package/ios/juce_modules/juce_gui_basics/components/juce_ComponentListener.cpp +47 -0
  1196. package/ios/juce_modules/juce_gui_basics/components/juce_ComponentListener.h +131 -0
  1197. package/ios/juce_modules/juce_gui_basics/components/juce_ComponentTraverser.h +81 -0
  1198. package/ios/juce_modules/juce_gui_basics/components/juce_FocusTraverser.cpp +283 -0
  1199. package/ios/juce_modules/juce_gui_basics/components/juce_FocusTraverser.h +102 -0
  1200. package/ios/juce_modules/juce_gui_basics/components/juce_ModalComponentManager.cpp +295 -0
  1201. package/ios/juce_modules/juce_gui_basics/components/juce_ModalComponentManager.h +340 -0
  1202. package/ios/juce_modules/juce_gui_basics/desktop/juce_Desktop.cpp +386 -0
  1203. package/ios/juce_modules/juce_gui_basics/desktop/juce_Desktop.h +502 -0
  1204. package/ios/juce_modules/juce_gui_basics/desktop/juce_Displays.cpp +447 -0
  1205. package/ios/juce_modules/juce_gui_basics/desktop/juce_Displays.h +218 -0
  1206. package/ios/juce_modules/juce_gui_basics/detail/juce_AccessibilityHelpers.cpp +42 -0
  1207. package/ios/juce_modules/juce_gui_basics/detail/juce_AccessibilityHelpers.h +79 -0
  1208. package/ios/juce_modules/juce_gui_basics/detail/juce_AlertWindowHelpers.h +124 -0
  1209. package/ios/juce_modules/juce_gui_basics/detail/juce_ButtonAccessibilityHandler.h +134 -0
  1210. package/ios/juce_modules/juce_gui_basics/detail/juce_ComponentHelpers.h +291 -0
  1211. package/ios/juce_modules/juce_gui_basics/detail/juce_CustomMouseCursorInfo.h +44 -0
  1212. package/ios/juce_modules/juce_gui_basics/detail/juce_FocusHelpers.h +126 -0
  1213. package/ios/juce_modules/juce_gui_basics/detail/juce_FocusRestorer.h +55 -0
  1214. package/ios/juce_modules/juce_gui_basics/detail/juce_LookAndFeelHelpers.h +71 -0
  1215. package/ios/juce_modules/juce_gui_basics/detail/juce_MouseInputSourceImpl.h +597 -0
  1216. package/ios/juce_modules/juce_gui_basics/detail/juce_MouseInputSourceList.h +163 -0
  1217. package/ios/juce_modules/juce_gui_basics/detail/juce_PointerState.h +113 -0
  1218. package/ios/juce_modules/juce_gui_basics/detail/juce_ScalingHelpers.h +132 -0
  1219. package/ios/juce_modules/juce_gui_basics/detail/juce_ScopedContentSharerImpl.h +107 -0
  1220. package/ios/juce_modules/juce_gui_basics/detail/juce_ScopedContentSharerInterface.h +224 -0
  1221. package/ios/juce_modules/juce_gui_basics/detail/juce_ScopedMessageBoxImpl.h +141 -0
  1222. package/ios/juce_modules/juce_gui_basics/detail/juce_ScopedMessageBoxInterface.h +69 -0
  1223. package/ios/juce_modules/juce_gui_basics/detail/juce_StandardCachedComponentImage.h +102 -0
  1224. package/ios/juce_modules/juce_gui_basics/detail/juce_ToolbarItemDragAndDropOverlayComponent.h +127 -0
  1225. package/ios/juce_modules/juce_gui_basics/detail/juce_TopLevelWindowManager.h +145 -0
  1226. package/ios/juce_modules/juce_gui_basics/detail/juce_ViewportHelpers.h +58 -0
  1227. package/ios/juce_modules/juce_gui_basics/detail/juce_WindowingHelpers.h +70 -0
  1228. package/ios/juce_modules/juce_gui_basics/drawables/juce_Drawable.cpp +228 -0
  1229. package/ios/juce_modules/juce_gui_basics/drawables/juce_Drawable.h +271 -0
  1230. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp +173 -0
  1231. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableComposite.h +126 -0
  1232. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableImage.cpp +165 -0
  1233. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableImage.h +126 -0
  1234. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawablePath.cpp +66 -0
  1235. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawablePath.h +86 -0
  1236. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp +96 -0
  1237. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableRectangle.h +85 -0
  1238. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableShape.cpp +190 -0
  1239. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableShape.h +135 -0
  1240. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableText.cpp +241 -0
  1241. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableText.h +130 -0
  1242. package/ios/juce_modules/juce_gui_basics/drawables/juce_SVGParser.cpp +1903 -0
  1243. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_ContentSharer.cpp +83 -0
  1244. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_ContentSharer.h +154 -0
  1245. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp +79 -0
  1246. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h +125 -0
  1247. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp +279 -0
  1248. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h +235 -0
  1249. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp +633 -0
  1250. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h +306 -0
  1251. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h +67 -0
  1252. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp +292 -0
  1253. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileChooser.h +358 -0
  1254. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp +272 -0
  1255. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h +177 -0
  1256. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp +295 -0
  1257. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileListComponent.h +104 -0
  1258. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h +75 -0
  1259. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp +280 -0
  1260. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h +126 -0
  1261. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp +690 -0
  1262. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h +117 -0
  1263. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp +277 -0
  1264. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h +245 -0
  1265. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp +135 -0
  1266. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h +77 -0
  1267. package/ios/juce_modules/juce_gui_basics/juce_gui_basics.cpp +370 -0
  1268. package/ios/juce_modules/juce_gui_basics/juce_gui_basics.h +403 -0
  1269. package/ios/juce_modules/juce_gui_basics/juce_gui_basics.mm +35 -0
  1270. package/ios/juce_modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp +73 -0
  1271. package/ios/juce_modules/juce_gui_basics/keyboard/juce_CaretComponent.h +90 -0
  1272. package/ios/juce_modules/juce_gui_basics/keyboard/juce_KeyListener.cpp +43 -0
  1273. package/ios/juce_modules/juce_gui_basics/keyboard/juce_KeyListener.h +86 -0
  1274. package/ios/juce_modules/juce_gui_basics/keyboard/juce_KeyPress.cpp +298 -0
  1275. package/ios/juce_modules/juce_gui_basics/keyboard/juce_KeyPress.h +286 -0
  1276. package/ios/juce_modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp +283 -0
  1277. package/ios/juce_modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h +96 -0
  1278. package/ios/juce_modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp +58 -0
  1279. package/ios/juce_modules/juce_gui_basics/keyboard/juce_ModifierKeys.h +220 -0
  1280. package/ios/juce_modules/juce_gui_basics/keyboard/juce_SystemClipboard.h +58 -0
  1281. package/ios/juce_modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h +132 -0
  1282. package/ios/juce_modules/juce_gui_basics/keyboard/juce_TextInputTarget.h +129 -0
  1283. package/ios/juce_modules/juce_gui_basics/layout/juce_AnimatedPosition.h +216 -0
  1284. package/ios/juce_modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h +162 -0
  1285. package/ios/juce_modules/juce_gui_basics/layout/juce_BorderedComponentBoundsConstrainer.cpp +86 -0
  1286. package/ios/juce_modules/juce_gui_basics/layout/juce_BorderedComponentBoundsConstrainer.h +78 -0
  1287. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp +363 -0
  1288. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentAnimator.h +174 -0
  1289. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp +314 -0
  1290. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h +206 -0
  1291. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp +295 -0
  1292. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentBuilder.h +256 -0
  1293. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp +151 -0
  1294. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h +105 -0
  1295. package/ios/juce_modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp +512 -0
  1296. package/ios/juce_modules/juce_gui_basics/layout/juce_ConcertinaPanel.h +153 -0
  1297. package/ios/juce_modules/juce_gui_basics/layout/juce_FlexBox.cpp +1158 -0
  1298. package/ios/juce_modules/juce_gui_basics/layout/juce_FlexBox.h +152 -0
  1299. package/ios/juce_modules/juce_gui_basics/layout/juce_FlexItem.h +186 -0
  1300. package/ios/juce_modules/juce_gui_basics/layout/juce_Grid.cpp +1651 -0
  1301. package/ios/juce_modules/juce_gui_basics/layout/juce_Grid.h +232 -0
  1302. package/ios/juce_modules/juce_gui_basics/layout/juce_GridItem.cpp +188 -0
  1303. package/ios/juce_modules/juce_gui_basics/layout/juce_GridItem.h +249 -0
  1304. package/ios/juce_modules/juce_gui_basics/layout/juce_GroupComponent.cpp +87 -0
  1305. package/ios/juce_modules/juce_gui_basics/layout/juce_GroupComponent.h +120 -0
  1306. package/ios/juce_modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp +641 -0
  1307. package/ios/juce_modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h +390 -0
  1308. package/ios/juce_modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp +208 -0
  1309. package/ios/juce_modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h +205 -0
  1310. package/ios/juce_modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp +112 -0
  1311. package/ios/juce_modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h +101 -0
  1312. package/ios/juce_modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp +139 -0
  1313. package/ios/juce_modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h +109 -0
  1314. package/ios/juce_modules/juce_gui_basics/layout/juce_ScrollBar.cpp +486 -0
  1315. package/ios/juce_modules/juce_gui_basics/layout/juce_ScrollBar.h +450 -0
  1316. package/ios/juce_modules/juce_gui_basics/layout/juce_SidePanel.cpp +309 -0
  1317. package/ios/juce_modules/juce_gui_basics/layout/juce_SidePanel.h +248 -0
  1318. package/ios/juce_modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp +351 -0
  1319. package/ios/juce_modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h +270 -0
  1320. package/ios/juce_modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp +88 -0
  1321. package/ios/juce_modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h +114 -0
  1322. package/ios/juce_modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp +131 -0
  1323. package/ios/juce_modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h +111 -0
  1324. package/ios/juce_modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp +592 -0
  1325. package/ios/juce_modules/juce_gui_basics/layout/juce_TabbedButtonBar.h +382 -0
  1326. package/ios/juce_modules/juce_gui_basics/layout/juce_TabbedComponent.cpp +328 -0
  1327. package/ios/juce_modules/juce_gui_basics/layout/juce_TabbedComponent.h +236 -0
  1328. package/ios/juce_modules/juce_gui_basics/layout/juce_Viewport.cpp +649 -0
  1329. package/ios/juce_modules/juce_gui_basics/layout/juce_Viewport.h +383 -0
  1330. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp +201 -0
  1331. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h +301 -0
  1332. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp +599 -0
  1333. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h +114 -0
  1334. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp +3200 -0
  1335. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h +443 -0
  1336. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp +655 -0
  1337. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h +107 -0
  1338. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp +1516 -0
  1339. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.h +269 -0
  1340. package/ios/juce_modules/juce_gui_basics/menus/juce_BurgerMenuComponent.cpp +311 -0
  1341. package/ios/juce_modules/juce_gui_basics/menus/juce_BurgerMenuComponent.h +120 -0
  1342. package/ios/juce_modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp +472 -0
  1343. package/ios/juce_modules/juce_gui_basics/menus/juce_MenuBarComponent.h +138 -0
  1344. package/ios/juce_modules/juce_gui_basics/menus/juce_MenuBarModel.cpp +108 -0
  1345. package/ios/juce_modules/juce_gui_basics/menus/juce_MenuBarModel.h +201 -0
  1346. package/ios/juce_modules/juce_gui_basics/menus/juce_PopupMenu.cpp +2401 -0
  1347. package/ios/juce_modules/juce_gui_basics/menus/juce_PopupMenu.h +1070 -0
  1348. package/ios/juce_modules/juce_gui_basics/misc/juce_BubbleComponent.cpp +162 -0
  1349. package/ios/juce_modules/juce_gui_basics/misc/juce_BubbleComponent.h +213 -0
  1350. package/ios/juce_modules/juce_gui_basics/misc/juce_DropShadower.cpp +408 -0
  1351. package/ios/juce_modules/juce_gui_basics/misc/juce_DropShadower.h +96 -0
  1352. package/ios/juce_modules/juce_gui_basics/misc/juce_FocusOutline.cpp +194 -0
  1353. package/ios/juce_modules/juce_gui_basics/misc/juce_FocusOutline.h +109 -0
  1354. package/ios/juce_modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp +76 -0
  1355. package/ios/juce_modules/juce_gui_basics/mouse/juce_ComponentDragger.h +110 -0
  1356. package/ios/juce_modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp +646 -0
  1357. package/ios/juce_modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h +275 -0
  1358. package/ios/juce_modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h +149 -0
  1359. package/ios/juce_modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h +115 -0
  1360. package/ios/juce_modules/juce_gui_basics/mouse/juce_LassoComponent.h +233 -0
  1361. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseCursor.cpp +162 -0
  1362. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseCursor.h +199 -0
  1363. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseEvent.cpp +147 -0
  1364. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseEvent.h +463 -0
  1365. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp +86 -0
  1366. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h +121 -0
  1367. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp +114 -0
  1368. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseInputSource.h +315 -0
  1369. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseListener.cpp +48 -0
  1370. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseListener.h +180 -0
  1371. package/ios/juce_modules/juce_gui_basics/mouse/juce_SelectedItemSet.h +336 -0
  1372. package/ios/juce_modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h +115 -0
  1373. package/ios/juce_modules/juce_gui_basics/mouse/juce_TooltipClient.h +98 -0
  1374. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_Accessibility.cpp +46 -0
  1375. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_AccessibilityElement_windows.cpp +660 -0
  1376. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_AccessibilityElement_windows.h +89 -0
  1377. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_AccessibilitySharedCode_mac.mm +283 -0
  1378. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_AccessibilityTextHelpers.h +311 -0
  1379. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_AccessibilityTextHelpers_test.cpp +164 -0
  1380. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_Accessibility_android.cpp +1058 -0
  1381. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_Accessibility_ios.mm +669 -0
  1382. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_Accessibility_mac.mm +942 -0
  1383. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_Accessibility_windows.cpp +336 -0
  1384. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAExpandCollapseProvider_windows.h +92 -0
  1385. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAGridItemProvider_windows.h +162 -0
  1386. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAGridProvider_windows.h +160 -0
  1387. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAHelpers_windows.h +128 -0
  1388. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAInvokeProvider_windows.h +68 -0
  1389. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAProviderBase_windows.h +67 -0
  1390. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAProviders_windows.h +52 -0
  1391. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIARangeValueProvider_windows.h +146 -0
  1392. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIASelectionProvider_windows.h +254 -0
  1393. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIATextProvider_windows.h +626 -0
  1394. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAToggleProvider_windows.h +87 -0
  1395. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIATransformProvider_windows.h +131 -0
  1396. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAValueProvider_windows.h +92 -0
  1397. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAWindowProvider_windows.h +203 -0
  1398. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_WindowsUIAWrapper_windows.h +169 -0
  1399. package/ios/juce_modules/juce_gui_basics/native/java/app/com/rmsl/juce/ComponentPeerView.java +987 -0
  1400. package/ios/juce_modules/juce_gui_basics/native/java/app/com/rmsl/juce/JuceContentProviderCursor.java +62 -0
  1401. package/ios/juce_modules/juce_gui_basics/native/java/app/com/rmsl/juce/JuceContentProviderFileObserver.java +57 -0
  1402. package/ios/juce_modules/juce_gui_basics/native/javaopt/app/com/rmsl/juce/JuceActivity.java +63 -0
  1403. package/ios/juce_modules/juce_gui_basics/native/javaopt/app/com/rmsl/juce/JuceSharingContentProvider.java +128 -0
  1404. package/ios/juce_modules/juce_gui_basics/native/javaopt/app/com/rmsl/juce/Receiver.java +51 -0
  1405. package/ios/juce_modules/juce_gui_basics/native/juce_CGMetalLayerRenderer_mac.h +384 -0
  1406. package/ios/juce_modules/juce_gui_basics/native/juce_ContentSharer_android.cpp +963 -0
  1407. package/ios/juce_modules/juce_gui_basics/native/juce_ContentSharer_ios.cpp +134 -0
  1408. package/ios/juce_modules/juce_gui_basics/native/juce_DragAndDrop_linux.cpp +618 -0
  1409. package/ios/juce_modules/juce_gui_basics/native/juce_DragAndDrop_windows.cpp +377 -0
  1410. package/ios/juce_modules/juce_gui_basics/native/juce_FileChooser_android.cpp +276 -0
  1411. package/ios/juce_modules/juce_gui_basics/native/juce_FileChooser_ios.mm +379 -0
  1412. package/ios/juce_modules/juce_gui_basics/native/juce_FileChooser_linux.cpp +296 -0
  1413. package/ios/juce_modules/juce_gui_basics/native/juce_FileChooser_mac.mm +414 -0
  1414. package/ios/juce_modules/juce_gui_basics/native/juce_FileChooser_windows.cpp +908 -0
  1415. package/ios/juce_modules/juce_gui_basics/native/juce_MainMenu_mac.mm +848 -0
  1416. package/ios/juce_modules/juce_gui_basics/native/juce_MouseCursor_mac.mm +205 -0
  1417. package/ios/juce_modules/juce_gui_basics/native/juce_MultiTouchMapper.h +116 -0
  1418. package/ios/juce_modules/juce_gui_basics/native/juce_NSViewComponentPeer_mac.mm +3053 -0
  1419. package/ios/juce_modules/juce_gui_basics/native/juce_NativeMessageBox_android.cpp +124 -0
  1420. package/ios/juce_modules/juce_gui_basics/native/juce_NativeMessageBox_ios.mm +119 -0
  1421. package/ios/juce_modules/juce_gui_basics/native/juce_NativeMessageBox_linux.cpp +78 -0
  1422. package/ios/juce_modules/juce_gui_basics/native/juce_NativeMessageBox_mac.mm +140 -0
  1423. package/ios/juce_modules/juce_gui_basics/native/juce_NativeMessageBox_windows.cpp +354 -0
  1424. package/ios/juce_modules/juce_gui_basics/native/juce_NativeModalWrapperComponent_ios.h +141 -0
  1425. package/ios/juce_modules/juce_gui_basics/native/juce_PerScreenDisplayLinks_mac.h +313 -0
  1426. package/ios/juce_modules/juce_gui_basics/native/juce_ScopedDPIAwarenessDisabler.cpp +43 -0
  1427. package/ios/juce_modules/juce_gui_basics/native/juce_ScopedDPIAwarenessDisabler.h +63 -0
  1428. package/ios/juce_modules/juce_gui_basics/native/juce_ScopedThreadDPIAwarenessSetter_windows.h +52 -0
  1429. package/ios/juce_modules/juce_gui_basics/native/juce_ScopedWindowAssociation_linux.h +127 -0
  1430. package/ios/juce_modules/juce_gui_basics/native/juce_UIViewComponentPeer_ios.mm +2376 -0
  1431. package/ios/juce_modules/juce_gui_basics/native/juce_VBlank_windows.cpp +302 -0
  1432. package/ios/juce_modules/juce_gui_basics/native/juce_WindowUtils_android.cpp +43 -0
  1433. package/ios/juce_modules/juce_gui_basics/native/juce_WindowUtils_ios.mm +43 -0
  1434. package/ios/juce_modules/juce_gui_basics/native/juce_WindowUtils_linux.cpp +48 -0
  1435. package/ios/juce_modules/juce_gui_basics/native/juce_WindowUtils_mac.mm +47 -0
  1436. package/ios/juce_modules/juce_gui_basics/native/juce_WindowUtils_windows.cpp +68 -0
  1437. package/ios/juce_modules/juce_gui_basics/native/juce_Windowing_android.cpp +2903 -0
  1438. package/ios/juce_modules/juce_gui_basics/native/juce_Windowing_ios.mm +629 -0
  1439. package/ios/juce_modules/juce_gui_basics/native/juce_Windowing_linux.cpp +863 -0
  1440. package/ios/juce_modules/juce_gui_basics/native/juce_Windowing_mac.mm +588 -0
  1441. package/ios/juce_modules/juce_gui_basics/native/juce_Windowing_windows.cpp +5549 -0
  1442. package/ios/juce_modules/juce_gui_basics/native/juce_WindowsHooks_windows.cpp +118 -0
  1443. package/ios/juce_modules/juce_gui_basics/native/juce_WindowsHooks_windows.h +55 -0
  1444. package/ios/juce_modules/juce_gui_basics/native/juce_XSymbols_linux.cpp +249 -0
  1445. package/ios/juce_modules/juce_gui_basics/native/juce_XSymbols_linux.h +629 -0
  1446. package/ios/juce_modules/juce_gui_basics/native/juce_XWindowSystem_linux.cpp +4036 -0
  1447. package/ios/juce_modules/juce_gui_basics/native/juce_XWindowSystem_linux.h +364 -0
  1448. package/ios/juce_modules/juce_gui_basics/positioning/juce_MarkerList.cpp +293 -0
  1449. package/ios/juce_modules/juce_gui_basics/positioning/juce_MarkerList.h +204 -0
  1450. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp +162 -0
  1451. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h +190 -0
  1452. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp +344 -0
  1453. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h +99 -0
  1454. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp +149 -0
  1455. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h +75 -0
  1456. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativePoint.cpp +110 -0
  1457. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativePoint.h +100 -0
  1458. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp +271 -0
  1459. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativePointPath.h +202 -0
  1460. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp +286 -0
  1461. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeRectangle.h +117 -0
  1462. package/ios/juce_modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp +95 -0
  1463. package/ios/juce_modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h +118 -0
  1464. package/ios/juce_modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp +55 -0
  1465. package/ios/juce_modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h +85 -0
  1466. package/ios/juce_modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp +284 -0
  1467. package/ios/juce_modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h +162 -0
  1468. package/ios/juce_modules/juce_gui_basics/properties/juce_MultiChoicePropertyComponent.cpp +367 -0
  1469. package/ios/juce_modules/juce_gui_basics/properties/juce_MultiChoicePropertyComponent.h +150 -0
  1470. package/ios/juce_modules/juce_gui_basics/properties/juce_PropertyComponent.cpp +65 -0
  1471. package/ios/juce_modules/juce_gui_basics/properties/juce_PropertyComponent.h +154 -0
  1472. package/ios/juce_modules/juce_gui_basics/properties/juce_PropertyPanel.cpp +405 -0
  1473. package/ios/juce_modules/juce_gui_basics/properties/juce_PropertyPanel.h +186 -0
  1474. package/ios/juce_modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp +95 -0
  1475. package/ios/juce_modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h +116 -0
  1476. package/ios/juce_modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp +271 -0
  1477. package/ios/juce_modules/juce_gui_basics/properties/juce_TextPropertyComponent.h +196 -0
  1478. package/ios/juce_modules/juce_gui_basics/widgets/juce_ComboBox.cpp +721 -0
  1479. package/ios/juce_modules/juce_gui_basics/widgets/juce_ComboBox.h +473 -0
  1480. package/ios/juce_modules/juce_gui_basics/widgets/juce_ImageComponent.cpp +116 -0
  1481. package/ios/juce_modules/juce_gui_basics/widgets/juce_ImageComponent.h +90 -0
  1482. package/ios/juce_modules/juce_gui_basics/widgets/juce_Label.cpp +592 -0
  1483. package/ios/juce_modules/juce_gui_basics/widgets/juce_Label.h +377 -0
  1484. package/ios/juce_modules/juce_gui_basics/widgets/juce_ListBox.cpp +1263 -0
  1485. package/ios/juce_modules/juce_gui_basics/widgets/juce_ListBox.h +656 -0
  1486. package/ios/juce_modules/juce_gui_basics/widgets/juce_ProgressBar.cpp +189 -0
  1487. package/ios/juce_modules/juce_gui_basics/widgets/juce_ProgressBar.h +215 -0
  1488. package/ios/juce_modules/juce_gui_basics/widgets/juce_Slider.cpp +1839 -0
  1489. package/ios/juce_modules/juce_gui_basics/widgets/juce_Slider.h +1048 -0
  1490. package/ios/juce_modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp +935 -0
  1491. package/ios/juce_modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h +472 -0
  1492. package/ios/juce_modules/juce_gui_basics/widgets/juce_TableListBox.cpp +688 -0
  1493. package/ios/juce_modules/juce_gui_basics/widgets/juce_TableListBox.h +365 -0
  1494. package/ios/juce_modules/juce_gui_basics/widgets/juce_TextEditor.cpp +2786 -0
  1495. package/ios/juce_modules/juce_gui_basics/widgets/juce_TextEditor.h +888 -0
  1496. package/ios/juce_modules/juce_gui_basics/widgets/juce_Toolbar.cpp +838 -0
  1497. package/ios/juce_modules/juce_gui_basics/widgets/juce_Toolbar.h +347 -0
  1498. package/ios/juce_modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp +173 -0
  1499. package/ios/juce_modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h +217 -0
  1500. package/ios/juce_modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h +118 -0
  1501. package/ios/juce_modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp +125 -0
  1502. package/ios/juce_modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h +88 -0
  1503. package/ios/juce_modules/juce_gui_basics/widgets/juce_TreeView.cpp +2286 -0
  1504. package/ios/juce_modules/juce_gui_basics/widgets/juce_TreeView.h +969 -0
  1505. package/ios/juce_modules/juce_gui_basics/windows/juce_AlertWindow.cpp +712 -0
  1506. package/ios/juce_modules/juce_gui_basics/windows/juce_AlertWindow.h +600 -0
  1507. package/ios/juce_modules/juce_gui_basics/windows/juce_CallOutBox.cpp +279 -0
  1508. package/ios/juce_modules/juce_gui_basics/windows/juce_CallOutBox.h +197 -0
  1509. package/ios/juce_modules/juce_gui_basics/windows/juce_ComponentPeer.cpp +625 -0
  1510. package/ios/juce_modules/juce_gui_basics/windows/juce_ComponentPeer.h +623 -0
  1511. package/ios/juce_modules/juce_gui_basics/windows/juce_DialogWindow.cpp +190 -0
  1512. package/ios/juce_modules/juce_gui_basics/windows/juce_DialogWindow.h +286 -0
  1513. package/ios/juce_modules/juce_gui_basics/windows/juce_DocumentWindow.cpp +423 -0
  1514. package/ios/juce_modules/juce_gui_basics/windows/juce_DocumentWindow.h +316 -0
  1515. package/ios/juce_modules/juce_gui_basics/windows/juce_MessageBoxOptions.cpp +102 -0
  1516. package/ios/juce_modules/juce_gui_basics/windows/juce_MessageBoxOptions.h +202 -0
  1517. package/ios/juce_modules/juce_gui_basics/windows/juce_NativeMessageBox.cpp +167 -0
  1518. package/ios/juce_modules/juce_gui_basics/windows/juce_NativeMessageBox.h +311 -0
  1519. package/ios/juce_modules/juce_gui_basics/windows/juce_NativeScaleFactorNotifier.cpp +75 -0
  1520. package/ios/juce_modules/juce_gui_basics/windows/juce_NativeScaleFactorNotifier.h +78 -0
  1521. package/ios/juce_modules/juce_gui_basics/windows/juce_ResizableWindow.cpp +679 -0
  1522. package/ios/juce_modules/juce_gui_basics/windows/juce_ResizableWindow.h +427 -0
  1523. package/ios/juce_modules/juce_gui_basics/windows/juce_ScopedMessageBox.cpp +67 -0
  1524. package/ios/juce_modules/juce_gui_basics/windows/juce_ScopedMessageBox.h +78 -0
  1525. package/ios/juce_modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp +128 -0
  1526. package/ios/juce_modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h +184 -0
  1527. package/ios/juce_modules/juce_gui_basics/windows/juce_TooltipWindow.cpp +264 -0
  1528. package/ios/juce_modules/juce_gui_basics/windows/juce_TooltipWindow.h +169 -0
  1529. package/ios/juce_modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp +264 -0
  1530. package/ios/juce_modules/juce_gui_basics/windows/juce_TopLevelWindow.h +176 -0
  1531. package/ios/juce_modules/juce_gui_basics/windows/juce_VBlankAttachment.cpp +122 -0
  1532. package/ios/juce_modules/juce_gui_basics/windows/juce_VBlankAttachment.h +85 -0
  1533. package/ios/juce_modules/juce_gui_basics/windows/juce_WindowUtils.h +51 -0
  1534. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp +83 -0
  1535. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h +81 -0
  1536. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h +683 -0
  1537. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp +1306 -0
  1538. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CodeDocument.h +459 -0
  1539. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp +1857 -0
  1540. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h +486 -0
  1541. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h +68 -0
  1542. package/ios/juce_modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp +248 -0
  1543. package/ios/juce_modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h +74 -0
  1544. package/ios/juce_modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp +181 -0
  1545. package/ios/juce_modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h +72 -0
  1546. package/ios/juce_modules/juce_gui_extra/detail/juce_WebControlRelayEvents.h +255 -0
  1547. package/ios/juce_modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp +1124 -0
  1548. package/ios/juce_modules/juce_gui_extra/documents/juce_FileBasedDocument.h +440 -0
  1549. package/ios/juce_modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h +142 -0
  1550. package/ios/juce_modules/juce_gui_extra/embedding/juce_AndroidViewComponent.h +91 -0
  1551. package/ios/juce_modules/juce_gui_extra/embedding/juce_HWNDComponent.h +98 -0
  1552. package/ios/juce_modules/juce_gui_extra/embedding/juce_NSViewComponent.h +107 -0
  1553. package/ios/juce_modules/juce_gui_extra/embedding/juce_UIViewComponent.h +99 -0
  1554. package/ios/juce_modules/juce_gui_extra/embedding/juce_XEmbedComponent.h +129 -0
  1555. package/ios/juce_modules/juce_gui_extra/juce_gui_extra.cpp +210 -0
  1556. package/ios/juce_modules/juce_gui_extra/juce_gui_extra.h +161 -0
  1557. package/ios/juce_modules/juce_gui_extra/juce_gui_extra.mm +35 -0
  1558. package/ios/juce_modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp +89 -0
  1559. package/ios/juce_modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h +96 -0
  1560. package/ios/juce_modules/juce_gui_extra/misc/juce_AppleRemote.h +126 -0
  1561. package/ios/juce_modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp +133 -0
  1562. package/ios/juce_modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h +134 -0
  1563. package/ios/juce_modules/juce_gui_extra/misc/juce_ColourSelector.cpp +656 -0
  1564. package/ios/juce_modules/juce_gui_extra/misc/juce_ColourSelector.h +173 -0
  1565. package/ios/juce_modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp +486 -0
  1566. package/ios/juce_modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h +142 -0
  1567. package/ios/juce_modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp +501 -0
  1568. package/ios/juce_modules/juce_gui_extra/misc/juce_LiveConstantEditor.h +310 -0
  1569. package/ios/juce_modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp +165 -0
  1570. package/ios/juce_modules/juce_gui_extra/misc/juce_PreferencesPanel.h +156 -0
  1571. package/ios/juce_modules/juce_gui_extra/misc/juce_PushNotifications.cpp +239 -0
  1572. package/ios/juce_modules/juce_gui_extra/misc/juce_PushNotifications.h +714 -0
  1573. package/ios/juce_modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp +189 -0
  1574. package/ios/juce_modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h +186 -0
  1575. package/ios/juce_modules/juce_gui_extra/misc/juce_SplashScreen.cpp +110 -0
  1576. package/ios/juce_modules/juce_gui_extra/misc/juce_SplashScreen.h +165 -0
  1577. package/ios/juce_modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp +51 -0
  1578. package/ios/juce_modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h +125 -0
  1579. package/ios/juce_modules/juce_gui_extra/misc/juce_WebBrowserComponent.cpp +722 -0
  1580. package/ios/juce_modules/juce_gui_extra/misc/juce_WebBrowserComponent.h +626 -0
  1581. package/ios/juce_modules/juce_gui_extra/misc/juce_WebControlParameterIndexReceiver.h +76 -0
  1582. package/ios/juce_modules/juce_gui_extra/misc/juce_WebControlRelays.cpp +256 -0
  1583. package/ios/juce_modules/juce_gui_extra/misc/juce_WebControlRelays.h +254 -0
  1584. package/ios/juce_modules/juce_gui_extra/native/java/app/com/rmsl/juce/JuceWebViewClasses.java +356 -0
  1585. package/ios/juce_modules/juce_gui_extra/native/javaopt/app/com/rmsl/juce/JuceFirebaseInstanceIdService.java +50 -0
  1586. package/ios/juce_modules/juce_gui_extra/native/javaopt/app/com/rmsl/juce/JuceFirebaseMessagingService.java +69 -0
  1587. package/ios/juce_modules/juce_gui_extra/native/javascript/check_native_interop.js +146 -0
  1588. package/ios/juce_modules/juce_gui_extra/native/javascript/index.js +577 -0
  1589. package/ios/juce_modules/juce_gui_extra/native/javascript/package.json +4 -0
  1590. package/ios/juce_modules/juce_gui_extra/native/juce_ActiveXComponent_windows.cpp +553 -0
  1591. package/ios/juce_modules/juce_gui_extra/native/juce_AndroidViewComponent.cpp +199 -0
  1592. package/ios/juce_modules/juce_gui_extra/native/juce_AppleRemote_mac.mm +285 -0
  1593. package/ios/juce_modules/juce_gui_extra/native/juce_HWNDComponent_windows.cpp +203 -0
  1594. package/ios/juce_modules/juce_gui_extra/native/juce_NSViewComponent_mac.mm +203 -0
  1595. package/ios/juce_modules/juce_gui_extra/native/juce_NSViewFrameWatcher_mac.h +120 -0
  1596. package/ios/juce_modules/juce_gui_extra/native/juce_PushNotifications_android.cpp +1607 -0
  1597. package/ios/juce_modules/juce_gui_extra/native/juce_PushNotifications_ios.cpp +620 -0
  1598. package/ios/juce_modules/juce_gui_extra/native/juce_PushNotifications_mac.cpp +535 -0
  1599. package/ios/juce_modules/juce_gui_extra/native/juce_SystemTrayIcon_linux.cpp +160 -0
  1600. package/ios/juce_modules/juce_gui_extra/native/juce_SystemTrayIcon_mac.cpp +451 -0
  1601. package/ios/juce_modules/juce_gui_extra/native/juce_SystemTrayIcon_windows.cpp +251 -0
  1602. package/ios/juce_modules/juce_gui_extra/native/juce_UIViewComponent_ios.mm +151 -0
  1603. package/ios/juce_modules/juce_gui_extra/native/juce_WebBrowserComponent_android.cpp +953 -0
  1604. package/ios/juce_modules/juce_gui_extra/native/juce_WebBrowserComponent_linux.cpp +1659 -0
  1605. package/ios/juce_modules/juce_gui_extra/native/juce_WebBrowserComponent_mac.mm +1113 -0
  1606. package/ios/juce_modules/juce_gui_extra/native/juce_WebBrowserComponent_windows.cpp +1298 -0
  1607. package/ios/juce_modules/juce_gui_extra/native/juce_XEmbedComponent_linux.cpp +739 -0
  1608. package/package.json +1 -1
  1609. package/ios/JuceModules.mm +0 -14
  1610. package/ios/JuceToneGenerator.h +0 -39
  1611. package/ios/JuceToneGenerator.mm +0 -613
@@ -0,0 +1,3053 @@
1
+ /*
2
+ ==============================================================================
3
+
4
+ This file is part of the JUCE framework.
5
+ Copyright (c) Raw Material Software Limited
6
+
7
+ JUCE is an open source framework subject to commercial or open source
8
+ licensing.
9
+
10
+ By downloading, installing, or using the JUCE framework, or combining the
11
+ JUCE framework with any other source code, object code, content or any other
12
+ copyrightable work, you agree to the terms of the JUCE End User Licence
13
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
14
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
15
+ do not agree to the terms of these agreements, we will not license the JUCE
16
+ framework to you, and you must discontinue the installation or download
17
+ process and cease use of the JUCE framework.
18
+
19
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
20
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
21
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
22
+
23
+ Or:
24
+
25
+ You may also use this code under the terms of the AGPLv3:
26
+ https://www.gnu.org/licenses/agpl-3.0.en.html
27
+
28
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
29
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
30
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
31
+
32
+ ==============================================================================
33
+ */
34
+
35
+ @interface NSEvent (DeviceDelta)
36
+ - (float)deviceDeltaX;
37
+ - (float)deviceDeltaY;
38
+ @end
39
+
40
+ //==============================================================================
41
+ namespace juce
42
+ {
43
+
44
+ using AppFocusChangeCallback = void (*)();
45
+ extern AppFocusChangeCallback appFocusChangeCallback;
46
+ using CheckEventBlockedByModalComps = bool (*) (NSEvent*);
47
+ extern CheckEventBlockedByModalComps isEventBlockedByModalComps;
48
+
49
+ //==============================================================================
50
+ static void resetTrackingArea (NSView* view)
51
+ {
52
+ const auto trackingAreas = [view trackingAreas];
53
+
54
+ jassert ([trackingAreas count] <= 1);
55
+
56
+ for (NSTrackingArea* area in trackingAreas)
57
+ [view removeTrackingArea: area];
58
+
59
+ const auto options = NSTrackingMouseEnteredAndExited
60
+ | NSTrackingMouseMoved
61
+ | NSTrackingActiveAlways
62
+ | NSTrackingInVisibleRect;
63
+
64
+ const NSUniquePtr<NSTrackingArea> trackingArea { [[NSTrackingArea alloc] initWithRect: [view bounds]
65
+ options: options
66
+ owner: view
67
+ userInfo: nil] };
68
+
69
+ [view addTrackingArea: trackingArea.get()];
70
+ }
71
+
72
+ static constexpr int translateVirtualToAsciiKeyCode (int keyCode) noexcept
73
+ {
74
+ switch (keyCode)
75
+ {
76
+ // The virtual keycodes are from HIToolbox/Events.h
77
+ case 0x00: return 'A';
78
+ case 0x01: return 'S';
79
+ case 0x02: return 'D';
80
+ case 0x03: return 'F';
81
+ case 0x04: return 'H';
82
+ case 0x05: return 'G';
83
+ case 0x06: return 'Z';
84
+ case 0x07: return 'X';
85
+ case 0x08: return 'C';
86
+ case 0x09: return 'V';
87
+ case 0x0B: return 'B';
88
+ case 0x0C: return 'Q';
89
+ case 0x0D: return 'W';
90
+ case 0x0E: return 'E';
91
+ case 0x0F: return 'R';
92
+ case 0x10: return 'Y';
93
+ case 0x11: return 'T';
94
+ case 0x12: return '1';
95
+ case 0x13: return '2';
96
+ case 0x14: return '3';
97
+ case 0x15: return '4';
98
+ case 0x16: return '6';
99
+ case 0x17: return '5';
100
+ case 0x18: return '='; // kVK_ANSI_Equal
101
+ case 0x19: return '9';
102
+ case 0x1A: return '7';
103
+ case 0x1B: return '-'; // kVK_ANSI_Minus
104
+ case 0x1C: return '8';
105
+ case 0x1D: return '0';
106
+ case 0x1E: return ']'; // kVK_ANSI_RightBracket
107
+ case 0x1F: return 'O';
108
+ case 0x20: return 'U';
109
+ case 0x21: return '['; // kVK_ANSI_LeftBracket
110
+ case 0x22: return 'I';
111
+ case 0x23: return 'P';
112
+ case 0x25: return 'L';
113
+ case 0x26: return 'J';
114
+ case 0x27: return '"'; // kVK_ANSI_Quote
115
+ case 0x28: return 'K';
116
+ case 0x29: return ';'; // kVK_ANSI_Semicolon
117
+ case 0x2A: return '\\'; // kVK_ANSI_Backslash
118
+ case 0x2B: return ','; // kVK_ANSI_Comma
119
+ case 0x2C: return '/'; // kVK_ANSI_Slash
120
+ case 0x2D: return 'N';
121
+ case 0x2E: return 'M';
122
+ case 0x2F: return '.'; // kVK_ANSI_Period
123
+ case 0x32: return '`'; // kVK_ANSI_Grave
124
+
125
+ default: return keyCode;
126
+ }
127
+ }
128
+
129
+ constexpr int extendedKeyModifier = 0x30000;
130
+
131
+ //==============================================================================
132
+ class JuceCALayerDelegate final : public ObjCClass<NSObject<CALayerDelegate>>
133
+ {
134
+ public:
135
+ struct Callback
136
+ {
137
+ virtual ~Callback() = default;
138
+ virtual void displayLayer (CALayer*) = 0;
139
+ };
140
+
141
+ static NSObject<CALayerDelegate>* construct (Callback* owner)
142
+ {
143
+ static JuceCALayerDelegate cls;
144
+ auto* result = cls.createInstance();
145
+ setOwner (result, owner);
146
+ return result;
147
+ }
148
+
149
+ private:
150
+ JuceCALayerDelegate()
151
+ : ObjCClass ("JuceCALayerDelegate_")
152
+ {
153
+ addIvar<Callback*> ("owner");
154
+
155
+ addMethod (@selector (displayLayer:), [] (id self, SEL, CALayer* layer)
156
+ {
157
+ if (auto* owner = getOwner (self))
158
+ owner->displayLayer (layer);
159
+ });
160
+
161
+ addProtocol (@protocol (CALayerDelegate));
162
+
163
+ registerClass();
164
+ }
165
+
166
+ static Callback* getOwner (id self)
167
+ {
168
+ return getIvar<Callback*> (self, "owner");
169
+ }
170
+
171
+ static void setOwner (id self, Callback* newOwner)
172
+ {
173
+ object_setInstanceVariable (self, "owner", newOwner);
174
+ }
175
+ };
176
+
177
+ //==============================================================================
178
+ class NSViewComponentPeer final : public ComponentPeer,
179
+ private JuceCALayerDelegate::Callback
180
+ {
181
+ public:
182
+ NSViewComponentPeer (Component& comp, const int windowStyleFlags, NSView* viewToAttachTo)
183
+ : ComponentPeer (comp, windowStyleFlags),
184
+ safeComponent (&comp),
185
+ isSharedWindow (viewToAttachTo != nil),
186
+ lastRepaintTime (Time::getMillisecondCounter())
187
+ {
188
+ appFocusChangeCallback = appFocusChanged;
189
+ isEventBlockedByModalComps = checkEventBlockedByModalComps;
190
+
191
+ auto r = makeNSRect (component.getLocalBounds());
192
+
193
+ view = [createViewInstance() initWithFrame: r];
194
+ setOwner (view, this);
195
+
196
+ [view registerForDraggedTypes: getSupportedDragTypes()];
197
+
198
+ resetTrackingArea (view);
199
+
200
+ scopedObservers.emplace_back (view, frameChangedSelector, NSViewFrameDidChangeNotification, view);
201
+
202
+ [view setPostsFrameChangedNotifications: YES];
203
+
204
+ #if USE_COREGRAPHICS_RENDERING
205
+ // Creating a metal renderer may fail on some systems.
206
+ // We need to try creating the renderer before first creating a backing layer
207
+ // so that we know whether to use a metal layer or the system default layer
208
+ // (setWantsLayer: YES will call through to makeBackingLayer, where we check
209
+ // whether metalRenderer is non-null).
210
+ // The system overwrites the layer delegate set during makeBackingLayer,
211
+ // so that must be set separately, after the layer has been created and
212
+ // configured.
213
+ #if JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS
214
+ if (@available (macOS 10.14, *))
215
+ {
216
+ metalRenderer = CoreGraphicsMetalLayerRenderer::create();
217
+ layerDelegate.reset (JuceCALayerDelegate::construct (this));
218
+ }
219
+ #endif
220
+
221
+ if ((windowStyleFlags & ComponentPeer::windowRequiresSynchronousCoreGraphicsRendering) == 0)
222
+ {
223
+ [view setWantsLayer: YES];
224
+ [view setLayerContentsRedrawPolicy: NSViewLayerContentsRedrawDuringViewResize];
225
+ [view layer].drawsAsynchronously = YES;
226
+ }
227
+
228
+ #if JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS
229
+ if (@available (macOS 10.14, *))
230
+ if (metalRenderer != nullptr)
231
+ view.layer.delegate = layerDelegate.get();
232
+ #endif
233
+ #endif
234
+
235
+ if (isSharedWindow)
236
+ {
237
+ window = [viewToAttachTo window];
238
+ [viewToAttachTo addSubview: view];
239
+ }
240
+ else
241
+ {
242
+ r.origin.x = (CGFloat) component.getX();
243
+ r.origin.y = (CGFloat) component.getY();
244
+ r = flippedScreenRect (r);
245
+
246
+ window = [createWindowInstance() initWithContentRect: r
247
+ styleMask: getNSWindowStyleMask (windowStyleFlags)
248
+ backing: NSBackingStoreBuffered
249
+ defer: YES];
250
+ [window setColorSpace: [NSColorSpace sRGBColorSpace]];
251
+ setOwner (window, this);
252
+
253
+ [window setAccessibilityElement: YES];
254
+
255
+ [window orderOut: nil];
256
+ [window setDelegate: (id<NSWindowDelegate>) window];
257
+
258
+ [window setOpaque: component.isOpaque()];
259
+
260
+ if (! [window isOpaque])
261
+ [window setBackgroundColor: [NSColor clearColor]];
262
+
263
+ [view setAppearance: [NSAppearance appearanceNamed: NSAppearanceNameAqua]];
264
+
265
+ [window setHasShadow: ((windowStyleFlags & windowHasDropShadow) != 0)];
266
+
267
+ if (component.isAlwaysOnTop())
268
+ setAlwaysOnTop (true);
269
+
270
+ [window setContentView: view];
271
+
272
+ // We'll both retain and also release this on closing because plugin hosts can unexpectedly
273
+ // close the window for us, and also tend to get cause trouble if setReleasedWhenClosed is NO.
274
+ [window setReleasedWhenClosed: YES];
275
+ [window retain];
276
+
277
+ [window setExcludedFromWindowsMenu: (windowStyleFlags & windowIsTemporary) != 0];
278
+ [window setIgnoresMouseEvents: (windowStyleFlags & windowIgnoresMouseClicks) != 0];
279
+
280
+ setCollectionBehaviour (false);
281
+
282
+ [window setRestorable: NO];
283
+
284
+ if (@available (macOS 10.12, *))
285
+ [window setTabbingMode: NSWindowTabbingModeDisallowed];
286
+
287
+ scopedObservers.emplace_back (view, frameChangedSelector, NSWindowDidMoveNotification, window);
288
+ scopedObservers.emplace_back (view, frameChangedSelector, NSWindowDidMiniaturizeNotification, window);
289
+ scopedObservers.emplace_back (view, @selector (windowWillMiniaturize:), NSWindowWillMiniaturizeNotification, window);
290
+ scopedObservers.emplace_back (view, @selector (windowDidDeminiaturize:), NSWindowDidDeminiaturizeNotification, window);
291
+ }
292
+
293
+ auto alpha = component.getAlpha();
294
+
295
+ if (alpha < 1.0f)
296
+ setAlpha (alpha);
297
+
298
+ setTitle (component.getName());
299
+
300
+ getNativeRealtimeModifiers = []
301
+ {
302
+ if ([NSEvent respondsToSelector: @selector (modifierFlags)])
303
+ NSViewComponentPeer::updateModifiers ([NSEvent modifierFlags]);
304
+
305
+ return ModifierKeys::currentModifiers;
306
+ };
307
+ }
308
+
309
+ ~NSViewComponentPeer() override
310
+ {
311
+ scopedObservers.clear();
312
+
313
+ setOwner (view, nullptr);
314
+
315
+ if ([view superview] != nil)
316
+ {
317
+ redirectWillMoveToWindow (nullptr);
318
+ [view removeFromSuperview];
319
+ }
320
+
321
+ if (! isSharedWindow)
322
+ {
323
+ setOwner (window, nullptr);
324
+ [window setContentView: nil];
325
+ [window close];
326
+ [window release];
327
+ }
328
+
329
+ [view release];
330
+ }
331
+
332
+ //==============================================================================
333
+ void* getNativeHandle() const override { return view; }
334
+
335
+ void setVisible (bool shouldBeVisible) override
336
+ {
337
+ if (isSharedWindow)
338
+ {
339
+ if (shouldBeVisible)
340
+ [view setHidden: false];
341
+ else if ([window firstResponder] != view || ([window firstResponder] == view && [window makeFirstResponder: nil]))
342
+ [view setHidden: true];
343
+ }
344
+ else
345
+ {
346
+ if (shouldBeVisible)
347
+ {
348
+ ++insideToFrontCall;
349
+ [window orderFront: nil];
350
+ --insideToFrontCall;
351
+ handleBroughtToFront();
352
+ }
353
+ else
354
+ {
355
+ [window orderOut: nil];
356
+ }
357
+ }
358
+ }
359
+
360
+ void setTitle (const String& title) override
361
+ {
362
+ JUCE_AUTORELEASEPOOL
363
+ {
364
+ if (! isSharedWindow)
365
+ [window setTitle: juceStringToNS (title)];
366
+ }
367
+ }
368
+
369
+ bool setDocumentEditedStatus (bool edited) override
370
+ {
371
+ if (! hasNativeTitleBar())
372
+ return false;
373
+
374
+ [window setDocumentEdited: edited];
375
+ return true;
376
+ }
377
+
378
+ void setRepresentedFile (const File& file) override
379
+ {
380
+ if (! isSharedWindow)
381
+ {
382
+ [window setRepresentedFilename: juceStringToNS (file != File()
383
+ ? file.getFullPathName()
384
+ : String())];
385
+
386
+ windowRepresentsFile = (file != File());
387
+ }
388
+ }
389
+
390
+ void setBounds (const Rectangle<int>& newBounds, bool) override
391
+ {
392
+ auto r = makeNSRect (newBounds);
393
+ auto oldViewSize = [view frame].size;
394
+
395
+ if (isSharedWindow)
396
+ {
397
+ [view setFrame: r];
398
+ }
399
+ else
400
+ {
401
+ [window setFrame: [window frameRectForContentRect: flippedScreenRect (r)]
402
+ display: false];
403
+ }
404
+
405
+ if (! CGSizeEqualToSize (oldViewSize, r.size))
406
+ [view setNeedsDisplay: true];
407
+ }
408
+
409
+ Rectangle<int> getBounds (const bool global) const
410
+ {
411
+ auto r = [view frame];
412
+ NSWindow* viewWindow = [view window];
413
+
414
+ if (global && viewWindow != nil)
415
+ {
416
+ r = [[view superview] convertRect: r toView: nil];
417
+ r = [viewWindow convertRectToScreen: r];
418
+
419
+ r = flippedScreenRect (r);
420
+ }
421
+
422
+ return convertToRectInt (r);
423
+ }
424
+
425
+ Rectangle<int> getBounds() const override
426
+ {
427
+ return getBounds (! isSharedWindow);
428
+ }
429
+
430
+ Point<float> localToGlobal (Point<float> relativePosition) override
431
+ {
432
+ return relativePosition + getBounds (true).getPosition().toFloat();
433
+ }
434
+
435
+ using ComponentPeer::localToGlobal;
436
+
437
+ Point<float> globalToLocal (Point<float> screenPosition) override
438
+ {
439
+ return screenPosition - getBounds (true).getPosition().toFloat();
440
+ }
441
+
442
+ using ComponentPeer::globalToLocal;
443
+
444
+ void setAlpha (float newAlpha) override
445
+ {
446
+ if (isSharedWindow)
447
+ [view setAlphaValue: (CGFloat) newAlpha];
448
+ else
449
+ [window setAlphaValue: (CGFloat) newAlpha];
450
+ }
451
+
452
+ void setMinimised (bool shouldBeMinimised) override
453
+ {
454
+ if (! isSharedWindow)
455
+ {
456
+ if (shouldBeMinimised)
457
+ [window miniaturize: nil];
458
+ else
459
+ [window deminiaturize: nil];
460
+ }
461
+ }
462
+
463
+ bool isMinimised() const override
464
+ {
465
+ return [window isMiniaturized];
466
+ }
467
+
468
+ NSWindowCollectionBehavior getCollectionBehavior (bool forceFullScreen) const
469
+ {
470
+ if (forceFullScreen)
471
+ return NSWindowCollectionBehaviorFullScreenPrimary;
472
+
473
+ // Some SDK versions don't define NSWindowCollectionBehaviorFullScreenAuxiliary
474
+ constexpr auto fullScreenAux = (NSUInteger) (1 << 8);
475
+
476
+ return (getStyleFlags() & (windowHasMaximiseButton | windowIsResizable)) == (windowHasMaximiseButton | windowIsResizable)
477
+ ? NSWindowCollectionBehaviorFullScreenPrimary
478
+ : fullScreenAux;
479
+ }
480
+
481
+ void setCollectionBehaviour (bool forceFullScreen) const
482
+ {
483
+ [window setCollectionBehavior: getCollectionBehavior (forceFullScreen)];
484
+ }
485
+
486
+ void setFullScreen (bool shouldBeFullScreen) override
487
+ {
488
+ if (isSharedWindow)
489
+ return;
490
+
491
+ if (shouldBeFullScreen)
492
+ setCollectionBehaviour (true);
493
+
494
+ if (isMinimised())
495
+ setMinimised (false);
496
+
497
+ if (shouldBeFullScreen != isFullScreen())
498
+ [window toggleFullScreen: nil];
499
+ }
500
+
501
+ bool isFullScreen() const override
502
+ {
503
+ return ([window styleMask] & NSWindowStyleMaskFullScreen) != 0;
504
+ }
505
+
506
+ bool isKioskMode() const override
507
+ {
508
+ return isFullScreen() && ComponentPeer::isKioskMode();
509
+ }
510
+
511
+ static bool isWindowAtPoint (NSWindow* w, NSPoint screenPoint)
512
+ {
513
+ if ([NSWindow respondsToSelector: @selector (windowNumberAtPoint:belowWindowWithWindowNumber:)])
514
+ return [NSWindow windowNumberAtPoint: screenPoint belowWindowWithWindowNumber: 0] == [w windowNumber];
515
+
516
+ return true;
517
+ }
518
+
519
+ bool contains (Point<int> localPos, bool trueIfInAChildWindow) const override
520
+ {
521
+ NSRect viewFrame = [view frame];
522
+
523
+ if (! (isPositiveAndBelow (localPos.getX(), viewFrame.size.width)
524
+ && isPositiveAndBelow (localPos.getY(), viewFrame.size.height)))
525
+ return false;
526
+
527
+ if (! SystemStats::isRunningInAppExtensionSandbox())
528
+ {
529
+ if (NSWindow* const viewWindow = [view window])
530
+ {
531
+ NSRect windowFrame = [viewWindow frame];
532
+ NSPoint windowPoint = [view convertPoint: NSMakePoint (localPos.x, localPos.y) toView: nil];
533
+ NSPoint screenPoint = NSMakePoint (windowFrame.origin.x + windowPoint.x,
534
+ windowFrame.origin.y + windowPoint.y);
535
+
536
+ if (! isWindowAtPoint (viewWindow, screenPoint))
537
+ return false;
538
+
539
+ }
540
+ }
541
+
542
+ NSView* v = [view hitTest: NSMakePoint (viewFrame.origin.x + localPos.getX(),
543
+ viewFrame.origin.y + localPos.getY())];
544
+
545
+ return trueIfInAChildWindow ? (v != nil)
546
+ : (v == view);
547
+ }
548
+
549
+ OptionalBorderSize getFrameSizeIfPresent() const override
550
+ {
551
+ if (! isSharedWindow)
552
+ {
553
+ BorderSize<int> b;
554
+
555
+ NSRect v = [view convertRect: [view frame] toView: nil];
556
+ NSRect w = [window frame];
557
+
558
+ b.setTop ((int) (w.size.height - (v.origin.y + v.size.height)));
559
+ b.setBottom ((int) v.origin.y);
560
+ b.setLeft ((int) v.origin.x);
561
+ b.setRight ((int) (w.size.width - (v.origin.x + v.size.width)));
562
+
563
+ return OptionalBorderSize { b };
564
+ }
565
+
566
+ return {};
567
+ }
568
+
569
+ BorderSize<int> getFrameSize() const override
570
+ {
571
+ if (const auto frameSize = getFrameSizeIfPresent())
572
+ return *frameSize;
573
+
574
+ return {};
575
+ }
576
+
577
+ bool hasNativeTitleBar() const
578
+ {
579
+ return (getStyleFlags() & windowHasTitleBar) != 0;
580
+ }
581
+
582
+ bool setAlwaysOnTop (bool alwaysOnTop) override
583
+ {
584
+ if (! isSharedWindow)
585
+ {
586
+ [window setLevel: alwaysOnTop ? ((getStyleFlags() & windowIsTemporary) != 0 ? NSPopUpMenuWindowLevel
587
+ : NSFloatingWindowLevel)
588
+ : NSNormalWindowLevel];
589
+
590
+ isAlwaysOnTop = alwaysOnTop;
591
+ }
592
+
593
+ return true;
594
+ }
595
+
596
+ void toFront (bool makeActiveWindow) override
597
+ {
598
+ if (isSharedWindow)
599
+ {
600
+ NSView* superview = [view superview];
601
+ NSMutableArray* subviews = [NSMutableArray arrayWithArray: [superview subviews]];
602
+
603
+ const auto isFrontmost = [[subviews lastObject] isEqual: view];
604
+
605
+ if (! isFrontmost)
606
+ {
607
+ [view retain];
608
+ [subviews removeObject: view];
609
+ [subviews addObject: view];
610
+
611
+ [superview setSubviews: subviews];
612
+ [view release];
613
+ }
614
+ }
615
+
616
+ if (window != nil && component.isVisible())
617
+ {
618
+ ++insideToFrontCall;
619
+
620
+ if (makeActiveWindow && ! inBecomeKeyWindow && [window canBecomeKeyWindow])
621
+ [window makeKeyAndOrderFront: nil];
622
+ else
623
+ [window orderFront: nil];
624
+
625
+ if (insideToFrontCall <= 1)
626
+ {
627
+ Desktop::getInstance().getMainMouseSource().forceMouseCursorUpdate();
628
+ handleBroughtToFront();
629
+ }
630
+
631
+ --insideToFrontCall;
632
+ }
633
+ }
634
+
635
+ void toBehind (ComponentPeer* other) override
636
+ {
637
+ if (auto* otherPeer = dynamic_cast<NSViewComponentPeer*> (other))
638
+ {
639
+ if (isSharedWindow)
640
+ {
641
+ NSView* superview = [view superview];
642
+ NSMutableArray* subviews = [NSMutableArray arrayWithArray: [superview subviews]];
643
+
644
+ const auto otherViewIndex = [subviews indexOfObject: otherPeer->view];
645
+
646
+ if (otherViewIndex == NSNotFound)
647
+ return;
648
+
649
+ const auto isBehind = [subviews indexOfObject: view] < otherViewIndex;
650
+
651
+ if (! isBehind)
652
+ {
653
+ [view retain];
654
+ [subviews removeObject: view];
655
+ [subviews insertObject: view
656
+ atIndex: otherViewIndex];
657
+
658
+ [superview setSubviews: subviews];
659
+ [view release];
660
+ }
661
+ }
662
+ else if (component.isVisible())
663
+ {
664
+ [window orderWindow: NSWindowBelow
665
+ relativeTo: [otherPeer->window windowNumber]];
666
+ }
667
+ }
668
+ else
669
+ {
670
+ jassertfalse; // wrong type of window?
671
+ }
672
+ }
673
+
674
+ void setIcon (const Image& newIcon) override
675
+ {
676
+ if (! isSharedWindow)
677
+ {
678
+ // need to set a dummy represented file here to show the file icon (which we then set to the new icon)
679
+ if (! windowRepresentsFile)
680
+ [window setRepresentedFilename: juceStringToNS (" ")]; // can't just use an empty string for some reason...
681
+
682
+ auto img = NSUniquePtr<NSImage> { imageToNSImage (ScaledImage (newIcon)) };
683
+ [[window standardWindowButton: NSWindowDocumentIconButton] setImage: img.get()];
684
+ }
685
+ }
686
+
687
+ StringArray getAvailableRenderingEngines() override
688
+ {
689
+ StringArray s ("Software Renderer");
690
+
691
+ #if USE_COREGRAPHICS_RENDERING
692
+ s.add ("CoreGraphics Renderer");
693
+ #endif
694
+
695
+ return s;
696
+ }
697
+
698
+ int getCurrentRenderingEngine() const override
699
+ {
700
+ return usingCoreGraphics ? 1 : 0;
701
+ }
702
+
703
+ void setCurrentRenderingEngine ([[maybe_unused]] int index) override
704
+ {
705
+ #if USE_COREGRAPHICS_RENDERING
706
+ if (usingCoreGraphics != (index > 0))
707
+ {
708
+ usingCoreGraphics = index > 0;
709
+ [view setNeedsDisplay: true];
710
+ }
711
+ #endif
712
+ }
713
+
714
+ void redirectMouseDown (NSEvent* ev)
715
+ {
716
+ if (! Process::isForegroundProcess())
717
+ Process::makeForegroundProcess();
718
+
719
+ ModifierKeys::currentModifiers = ModifierKeys::currentModifiers.withFlags (getModifierForButtonNumber ([ev buttonNumber]));
720
+ sendMouseEvent (ev);
721
+ }
722
+
723
+ void redirectMouseUp (NSEvent* ev)
724
+ {
725
+ ModifierKeys::currentModifiers = ModifierKeys::currentModifiers.withoutFlags (getModifierForButtonNumber ([ev buttonNumber]));
726
+ sendMouseEvent (ev);
727
+ showArrowCursorIfNeeded();
728
+ }
729
+
730
+ void redirectMouseDrag (NSEvent* ev)
731
+ {
732
+ ModifierKeys::currentModifiers = ModifierKeys::currentModifiers.withFlags (getModifierForButtonNumber ([ev buttonNumber]));
733
+ sendMouseEvent (ev);
734
+ }
735
+
736
+ void redirectMouseMove (NSEvent* ev)
737
+ {
738
+ ModifierKeys::currentModifiers = ModifierKeys::currentModifiers.withoutMouseButtons();
739
+
740
+ NSPoint windowPos = [ev locationInWindow];
741
+ NSPoint screenPos = [[ev window] convertRectToScreen: NSMakeRect (windowPos.x, windowPos.y, 1.0f, 1.0f)].origin;
742
+
743
+ if (isWindowAtPoint ([ev window], screenPos))
744
+ sendMouseEvent (ev);
745
+ else
746
+ // moved into another window which overlaps this one, so trigger an exit
747
+ handleMouseEvent (MouseInputSource::InputSourceType::mouse, MouseInputSource::offscreenMousePos, ModifierKeys::currentModifiers,
748
+ getMousePressure (ev), MouseInputSource::defaultOrientation, getMouseTime (ev));
749
+
750
+ showArrowCursorIfNeeded();
751
+ }
752
+
753
+ void redirectMouseEnter (NSEvent* ev)
754
+ {
755
+ sendMouseEnterExit (ev);
756
+ }
757
+
758
+ void redirectMouseExit (NSEvent* ev)
759
+ {
760
+ sendMouseEnterExit (ev);
761
+ }
762
+
763
+ static float checkDeviceDeltaReturnValue (float v) noexcept
764
+ {
765
+ // (deviceDeltaX can fail and return NaN, so need to sanity-check the result)
766
+ v *= 0.5f / 256.0f;
767
+ return (v > -1000.0f && v < 1000.0f) ? v : 0.0f;
768
+ }
769
+
770
+ void redirectMouseWheel (NSEvent* ev)
771
+ {
772
+ updateModifiers (ev);
773
+
774
+ MouseWheelDetails wheel;
775
+ wheel.deltaX = 0;
776
+ wheel.deltaY = 0;
777
+ wheel.isReversed = false;
778
+ wheel.isSmooth = false;
779
+ wheel.isInertial = false;
780
+
781
+ @try
782
+ {
783
+ if ([ev respondsToSelector: @selector (isDirectionInvertedFromDevice)])
784
+ wheel.isReversed = [ev isDirectionInvertedFromDevice];
785
+
786
+ wheel.isInertial = ([ev momentumPhase] != NSEventPhaseNone);
787
+
788
+ if ([ev respondsToSelector: @selector (hasPreciseScrollingDeltas)])
789
+ {
790
+ if ([ev hasPreciseScrollingDeltas])
791
+ {
792
+ const float scale = 0.5f / 256.0f;
793
+ wheel.deltaX = scale * (float) [ev scrollingDeltaX];
794
+ wheel.deltaY = scale * (float) [ev scrollingDeltaY];
795
+ wheel.isSmooth = true;
796
+ }
797
+ }
798
+ else if ([ev respondsToSelector: @selector (deviceDeltaX)])
799
+ {
800
+ wheel.deltaX = checkDeviceDeltaReturnValue ([ev deviceDeltaX]);
801
+ wheel.deltaY = checkDeviceDeltaReturnValue ([ev deviceDeltaY]);
802
+ }
803
+ }
804
+ @catch (...)
805
+ {}
806
+
807
+ if (wheel.deltaX == 0.0f && wheel.deltaY == 0.0f)
808
+ {
809
+ const float scale = 10.0f / 256.0f;
810
+ wheel.deltaX = scale * (float) [ev deltaX];
811
+ wheel.deltaY = scale * (float) [ev deltaY];
812
+ }
813
+
814
+ handleMouseWheel (MouseInputSource::InputSourceType::mouse, getMousePos (ev, view), getMouseTime (ev), wheel);
815
+ }
816
+
817
+ void redirectMagnify (NSEvent* ev)
818
+ {
819
+ const float invScale = 1.0f - (float) [ev magnification];
820
+
821
+ if (invScale > 0.0f)
822
+ handleMagnifyGesture (MouseInputSource::InputSourceType::mouse, getMousePos (ev, view), getMouseTime (ev), 1.0f / invScale);
823
+ }
824
+
825
+ void redirectCopy (NSObject*) { handleKeyPress (KeyPress ('c', ModifierKeys (ModifierKeys::commandModifier), 'c')); }
826
+ void redirectPaste (NSObject*) { handleKeyPress (KeyPress ('v', ModifierKeys (ModifierKeys::commandModifier), 'v')); }
827
+ void redirectCut (NSObject*) { handleKeyPress (KeyPress ('x', ModifierKeys (ModifierKeys::commandModifier), 'x')); }
828
+ void redirectSelectAll (NSObject*) { handleKeyPress (KeyPress ('a', ModifierKeys (ModifierKeys::commandModifier), 'a')); }
829
+
830
+ void redirectWillMoveToWindow (NSWindow* newWindow)
831
+ {
832
+ windowObservers.clear();
833
+
834
+ if (isSharedWindow && [view window] == window && newWindow == nullptr)
835
+ {
836
+ if (auto* comp = safeComponent.get())
837
+ comp->setVisible (false);
838
+ }
839
+ }
840
+
841
+ void sendMouseEvent (NSEvent* ev)
842
+ {
843
+ updateModifiers (ev);
844
+ handleMouseEvent (MouseInputSource::InputSourceType::mouse, getMousePos (ev, view), ModifierKeys::currentModifiers,
845
+ getMousePressure (ev), MouseInputSource::defaultOrientation, getMouseTime (ev));
846
+ }
847
+
848
+ bool handleKeyEvent (NSEvent* ev, bool isKeyDown)
849
+ {
850
+ auto unicode = nsStringToJuce ([ev characters]);
851
+ auto keyCode = getKeyCodeFromEvent (ev);
852
+
853
+ #if JUCE_DEBUG_KEYCODES
854
+ DBG ("unicode: " + unicode + " " + String::toHexString ((int) unicode[0]));
855
+ auto unmodified = nsStringToJuce ([ev charactersIgnoringModifiers]);
856
+ DBG ("unmodified: " + unmodified + " " + String::toHexString ((int) unmodified[0]));
857
+ #endif
858
+
859
+ if (keyCode != 0 || unicode.isNotEmpty())
860
+ {
861
+ if (isKeyDown)
862
+ {
863
+ bool used = false;
864
+
865
+ for (auto textCharacter : unicode)
866
+ {
867
+ switch (keyCode)
868
+ {
869
+ case NSLeftArrowFunctionKey:
870
+ case NSRightArrowFunctionKey:
871
+ case NSUpArrowFunctionKey:
872
+ case NSDownArrowFunctionKey:
873
+ case NSPageUpFunctionKey:
874
+ case NSPageDownFunctionKey:
875
+ case NSEndFunctionKey:
876
+ case NSHomeFunctionKey:
877
+ case NSDeleteFunctionKey:
878
+ textCharacter = 0;
879
+ break; // (these all seem to generate unwanted garbage unicode strings)
880
+
881
+ default:
882
+ if (([ev modifierFlags] & NSEventModifierFlagCommand) != 0
883
+ || (keyCode >= NSF1FunctionKey && keyCode <= NSF35FunctionKey))
884
+ textCharacter = 0;
885
+ break;
886
+ }
887
+
888
+ used |= handleKeyUpOrDown (true);
889
+ used |= handleKeyPress (keyCode, textCharacter);
890
+ }
891
+
892
+ return used;
893
+ }
894
+
895
+ if (handleKeyUpOrDown (false))
896
+ return true;
897
+ }
898
+
899
+ return false;
900
+ }
901
+
902
+ bool redirectKeyDown (NSEvent* ev)
903
+ {
904
+ // (need to retain this in case a modal loop runs in handleKeyEvent and
905
+ // our event object gets lost)
906
+ const NSUniquePtr<NSEvent> r ([ev retain]);
907
+
908
+ updateKeysDown (ev, true);
909
+ bool used = handleKeyEvent (ev, true);
910
+
911
+ if (([ev modifierFlags] & NSEventModifierFlagCommand) != 0)
912
+ {
913
+ // for command keys, the key-up event is thrown away, so simulate one..
914
+ updateKeysDown (ev, false);
915
+ used = (isValidPeer (this) && handleKeyEvent (ev, false)) || used;
916
+ }
917
+
918
+ // (If we're running modally, don't allow unused keystrokes to be passed
919
+ // along to other blocked views..)
920
+ if (Component::getCurrentlyModalComponent() != nullptr)
921
+ used = true;
922
+
923
+ return used;
924
+ }
925
+
926
+ bool redirectKeyUp (NSEvent* ev)
927
+ {
928
+ updateKeysDown (ev, false);
929
+ return handleKeyEvent (ev, false)
930
+ || Component::getCurrentlyModalComponent() != nullptr;
931
+ }
932
+
933
+ void redirectModKeyChange (NSEvent* ev)
934
+ {
935
+ // (need to retain this in case a modal loop runs and our event object gets lost)
936
+ const NSUniquePtr<NSEvent> r ([ev retain]);
937
+
938
+ keysCurrentlyDown.clear();
939
+ handleKeyUpOrDown (true);
940
+
941
+ updateModifiers (ev);
942
+ handleModifierKeysChange();
943
+ }
944
+
945
+ //==============================================================================
946
+ void drawRect (NSRect r)
947
+ {
948
+ if (r.size.width < 1.0f || r.size.height < 1.0f)
949
+ return;
950
+
951
+ auto* cg = (CGContextRef) [[NSGraphicsContext currentContext] CGContext];
952
+ drawRectWithContext (cg, r);
953
+ }
954
+
955
+ void drawRectWithContext (CGContextRef cg, NSRect r)
956
+ {
957
+ if (! component.isOpaque())
958
+ CGContextClearRect (cg, CGContextGetClipBoundingBox (cg));
959
+
960
+ float displayScale = 1.0f;
961
+ NSScreen* screen = [[view window] screen];
962
+
963
+ if ([screen respondsToSelector: @selector (backingScaleFactor)])
964
+ displayScale = (float) screen.backingScaleFactor;
965
+
966
+ auto invalidateTransparentWindowShadow = [this]
967
+ {
968
+ // transparent NSWindows with a drop-shadow need to redraw their shadow when the content
969
+ // changes to avoid stale shadows being drawn behind the window
970
+ if (! isSharedWindow && ! [window isOpaque] && [window hasShadow])
971
+ [window invalidateShadow];
972
+ };
973
+
974
+ #if USE_COREGRAPHICS_RENDERING && JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS
975
+ // This was a workaround for a CGContext not having a way of finding whether a rectangle
976
+ // falls within its clip region. However, Apple removed the capability of
977
+ // [view getRectsBeingDrawn: ...] sometime around 10.13, so on later versions of macOS
978
+ // numRects will always be 1, and you'll need to use a CoreGraphicsMetalLayerRenderer
979
+ // to avoid CoreGraphics consolidating disparate rects.
980
+ if (usingCoreGraphics && metalRenderer == nullptr)
981
+ {
982
+ const NSRect* rects = nullptr;
983
+ NSInteger numRects = 0;
984
+ [view getRectsBeingDrawn: &rects count: &numRects];
985
+
986
+ if (numRects > 1)
987
+ {
988
+ for (int i = 0; i < numRects; ++i)
989
+ {
990
+ NSRect rect = rects[i];
991
+ CGContextSaveGState (cg);
992
+ CGContextClipToRect (cg, CGRectMake (rect.origin.x, rect.origin.y, rect.size.width, rect.size.height));
993
+ renderRect (cg, rect, displayScale);
994
+ CGContextRestoreGState (cg);
995
+ }
996
+
997
+ invalidateTransparentWindowShadow();
998
+ return;
999
+ }
1000
+ }
1001
+ #endif
1002
+
1003
+ renderRect (cg, r, displayScale);
1004
+ invalidateTransparentWindowShadow();
1005
+ }
1006
+
1007
+ void renderRect (CGContextRef cg, NSRect r, float displayScale)
1008
+ {
1009
+ #if USE_COREGRAPHICS_RENDERING
1010
+ if (usingCoreGraphics)
1011
+ {
1012
+ const auto height = getComponent().getHeight();
1013
+ CGContextConcatCTM (cg, CGAffineTransformMake (1, 0, 0, -1, 0, height));
1014
+ CoreGraphicsContext context (cg, (float) height);
1015
+ handlePaint (context);
1016
+ }
1017
+ else
1018
+ #endif
1019
+ {
1020
+ const Point<int> offset (-roundToInt (r.origin.x), -roundToInt (r.origin.y));
1021
+ auto clipW = (int) (r.size.width + 0.5f);
1022
+ auto clipH = (int) (r.size.height + 0.5f);
1023
+
1024
+ RectangleList<int> clip;
1025
+ getClipRects (clip, offset, clipW, clipH);
1026
+
1027
+ if (! clip.isEmpty())
1028
+ {
1029
+ Image temp (component.isOpaque() ? Image::RGB : Image::ARGB,
1030
+ roundToInt ((float) clipW * displayScale),
1031
+ roundToInt ((float) clipH * displayScale),
1032
+ ! component.isOpaque());
1033
+
1034
+ {
1035
+ auto intScale = roundToInt (displayScale);
1036
+
1037
+ if (intScale != 1)
1038
+ clip.scaleAll (intScale);
1039
+
1040
+ auto context = component.getLookAndFeel()
1041
+ .createGraphicsContext (temp, offset * intScale, clip);
1042
+
1043
+ if (intScale != 1)
1044
+ context->addTransform (AffineTransform::scale (displayScale));
1045
+
1046
+ handlePaint (*context);
1047
+ }
1048
+
1049
+ detail::ColorSpacePtr colourSpace { CGColorSpaceCreateWithName (kCGColorSpaceSRGB) };
1050
+ CGImageRef image = juce_createCoreGraphicsImage (temp, colourSpace.get());
1051
+ CGContextConcatCTM (cg, CGAffineTransformMake (1, 0, 0, -1, r.origin.x, r.origin.y + clipH));
1052
+ CGContextDrawImage (cg, CGRectMake (0.0f, 0.0f, clipW, clipH), image);
1053
+ CGImageRelease (image);
1054
+ }
1055
+ }
1056
+ }
1057
+
1058
+ void repaint (const Rectangle<int>& area) override
1059
+ {
1060
+ // In 10.11 changes were made to the way the OS handles repaint regions, and it seems that it can
1061
+ // no longer be trusted to coalesce all the regions, or to even remember them all without losing
1062
+ // a few when there's a lot of activity.
1063
+ // As a workaround for this, we use a RectangleList to do our own coalescing of regions before
1064
+ // asynchronously asking the OS to repaint them.
1065
+ deferredRepaints.add (area.toFloat());
1066
+ }
1067
+
1068
+ static bool shouldThrottleRepaint()
1069
+ {
1070
+ return areAnyWindowsInLiveResize();
1071
+ }
1072
+
1073
+ void onVBlank()
1074
+ {
1075
+ vBlankListeners.call ([] (auto& l) { l.onVBlank(); });
1076
+ setNeedsDisplayRectangles();
1077
+ }
1078
+
1079
+ void setNeedsDisplayRectangles()
1080
+ {
1081
+ if (deferredRepaints.isEmpty())
1082
+ return;
1083
+
1084
+ auto now = Time::getMillisecondCounter();
1085
+ auto msSinceLastRepaint = (lastRepaintTime >= now) ? now - lastRepaintTime
1086
+ : (std::numeric_limits<uint32>::max() - lastRepaintTime) + now;
1087
+
1088
+ constexpr uint32 minimumRepaintInterval = 1000 / 30; // 30fps
1089
+
1090
+ // When windows are being resized, artificially throttling high-frequency repaints helps
1091
+ // to stop the event queue getting clogged, and keeps everything working smoothly.
1092
+ // For some reason Logic also needs this throttling to record parameter events correctly.
1093
+ if (msSinceLastRepaint < minimumRepaintInterval && shouldThrottleRepaint())
1094
+ return;
1095
+
1096
+ const auto frameSize = view.frame.size;
1097
+ const Rectangle currentBounds { (float) frameSize.width, (float) frameSize.height };
1098
+
1099
+ for (auto& i : deferredRepaints)
1100
+ [view setNeedsDisplayInRect: makeNSRect (i)];
1101
+
1102
+ lastRepaintTime = Time::getMillisecondCounter();
1103
+
1104
+ #if JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS
1105
+ if (metalRenderer == nullptr)
1106
+ #endif
1107
+ deferredRepaints.clear();
1108
+ }
1109
+
1110
+ void performAnyPendingRepaintsNow() override
1111
+ {
1112
+ [view displayIfNeeded];
1113
+ }
1114
+
1115
+ static bool areAnyWindowsInLiveResize() noexcept
1116
+ {
1117
+ for (NSWindow* w in [NSApp windows])
1118
+ if ([w inLiveResize])
1119
+ return true;
1120
+
1121
+ return false;
1122
+ }
1123
+
1124
+ //==============================================================================
1125
+ bool isBlockedByModalComponent()
1126
+ {
1127
+ if (auto* modal = Component::getCurrentlyModalComponent())
1128
+ {
1129
+ if (insideToFrontCall == 0
1130
+ && (! getComponent().isParentOf (modal))
1131
+ && getComponent().isCurrentlyBlockedByAnotherModalComponent())
1132
+ {
1133
+ return true;
1134
+ }
1135
+ }
1136
+
1137
+ return false;
1138
+ }
1139
+
1140
+ enum class KeyWindowChanged { no, yes };
1141
+
1142
+ void sendModalInputAttemptIfBlocked (KeyWindowChanged keyChanged)
1143
+ {
1144
+ if (! isBlockedByModalComponent())
1145
+ return;
1146
+
1147
+ if (auto* modal = Component::getCurrentlyModalComponent())
1148
+ {
1149
+ if (auto* otherPeer = modal->getPeer())
1150
+ {
1151
+ const auto modalPeerIsTemporary = (otherPeer->getStyleFlags() & ComponentPeer::windowIsTemporary) != 0;
1152
+
1153
+ if (! modalPeerIsTemporary)
1154
+ return;
1155
+
1156
+ // When a peer resigns key status, it might be because we just created a modal
1157
+ // component that is now key.
1158
+ // In this case, we should only dismiss the modal component if it isn't key,
1159
+ // implying that a third window has become key.
1160
+ const auto modalPeerIsKey = [NSApp keyWindow] == static_cast<NSViewComponentPeer*> (otherPeer)->window;
1161
+
1162
+ if (keyChanged == KeyWindowChanged::yes && modalPeerIsKey)
1163
+ return;
1164
+
1165
+ modal->inputAttemptWhenModal();
1166
+ }
1167
+ }
1168
+ }
1169
+
1170
+ bool canBecomeKeyWindow()
1171
+ {
1172
+ return component.isVisible() && (getStyleFlags() & ComponentPeer::windowIgnoresKeyPresses) == 0;
1173
+ }
1174
+
1175
+ bool canBecomeMainWindow()
1176
+ {
1177
+ return component.isVisible() && dynamic_cast<ResizableWindow*> (&component) != nullptr;
1178
+ }
1179
+
1180
+ bool worksWhenModal() const
1181
+ {
1182
+ // In plugins, the host could put our plugin window inside a modal window, so this
1183
+ // allows us to successfully open other popups. Feels like there could be edge-case
1184
+ // problems caused by this, so let us know if you spot any issues..
1185
+ return ! JUCEApplication::isStandaloneApp();
1186
+ }
1187
+
1188
+ void becomeKeyWindow()
1189
+ {
1190
+ handleBroughtToFront();
1191
+ grabFocus();
1192
+ }
1193
+
1194
+ void resignKeyWindow()
1195
+ {
1196
+ viewFocusLoss();
1197
+ }
1198
+
1199
+ bool windowShouldClose()
1200
+ {
1201
+ if (! isValidPeer (this))
1202
+ return YES;
1203
+
1204
+ handleUserClosingWindow();
1205
+ return NO;
1206
+ }
1207
+
1208
+ void redirectMovedOrResized()
1209
+ {
1210
+ handleMovedOrResized();
1211
+ setNeedsDisplayRectangles();
1212
+ }
1213
+
1214
+ void viewMovedToWindow()
1215
+ {
1216
+ if (isSharedWindow)
1217
+ {
1218
+ auto newWindow = [view window];
1219
+ bool shouldSetVisible = (window == nullptr && newWindow != nullptr);
1220
+
1221
+ window = newWindow;
1222
+
1223
+ if (shouldSetVisible)
1224
+ getComponent().setVisible (true);
1225
+ }
1226
+
1227
+ if (auto* currentWindow = [view window])
1228
+ {
1229
+ windowObservers.emplace_back (view, dismissModalsSelector, NSWindowWillMoveNotification, currentWindow);
1230
+ windowObservers.emplace_back (view, dismissModalsSelector, NSWindowWillMiniaturizeNotification, currentWindow);
1231
+ windowObservers.emplace_back (view, becomeKeySelector, NSWindowDidBecomeKeyNotification, currentWindow);
1232
+ windowObservers.emplace_back (view, resignKeySelector, NSWindowDidResignKeyNotification, currentWindow);
1233
+ }
1234
+ }
1235
+
1236
+ void dismissModals()
1237
+ {
1238
+ if (hasNativeTitleBar() || isSharedWindow)
1239
+ sendModalInputAttemptIfBlocked (KeyWindowChanged::no);
1240
+ }
1241
+
1242
+ void becomeKey()
1243
+ {
1244
+ component.repaint();
1245
+ }
1246
+
1247
+ void resignKey()
1248
+ {
1249
+ viewFocusLoss();
1250
+ sendModalInputAttemptIfBlocked (KeyWindowChanged::yes);
1251
+ }
1252
+
1253
+ void liveResizingStart()
1254
+ {
1255
+ if (constrainer == nullptr)
1256
+ return;
1257
+
1258
+ constrainer->resizeStart();
1259
+ isFirstLiveResize = true;
1260
+
1261
+ setFullScreenSizeConstraints (*constrainer);
1262
+ }
1263
+
1264
+ void liveResizingEnd()
1265
+ {
1266
+ if (constrainer != nullptr)
1267
+ constrainer->resizeEnd();
1268
+ }
1269
+
1270
+ NSRect constrainRect (const NSRect r)
1271
+ {
1272
+ if (constrainer == nullptr || isKioskMode() || isFullScreen())
1273
+ return r;
1274
+
1275
+ const auto scale = getComponent().getDesktopScaleFactor();
1276
+
1277
+ auto pos = detail::ScalingHelpers::unscaledScreenPosToScaled (scale, convertToRectInt (flippedScreenRect (r)));
1278
+ const auto original = detail::ScalingHelpers::unscaledScreenPosToScaled (scale, convertToRectInt (flippedScreenRect ([window frame])));
1279
+
1280
+ const auto screenBounds = Desktop::getInstance().getDisplays().getTotalBounds (true);
1281
+
1282
+ const bool inLiveResize = [window inLiveResize];
1283
+
1284
+ if (! inLiveResize || isFirstLiveResize)
1285
+ {
1286
+ isFirstLiveResize = false;
1287
+
1288
+ isStretchingTop = (pos.getY() != original.getY() && pos.getBottom() == original.getBottom());
1289
+ isStretchingLeft = (pos.getX() != original.getX() && pos.getRight() == original.getRight());
1290
+ isStretchingBottom = (pos.getY() == original.getY() && pos.getBottom() != original.getBottom());
1291
+ isStretchingRight = (pos.getX() == original.getX() && pos.getRight() != original.getRight());
1292
+ }
1293
+
1294
+ constrainer->checkBounds (pos, original, screenBounds,
1295
+ isStretchingTop, isStretchingLeft, isStretchingBottom, isStretchingRight);
1296
+
1297
+ return flippedScreenRect (makeNSRect (detail::ScalingHelpers::scaledScreenPosToUnscaled (scale, pos)));
1298
+ }
1299
+
1300
+ static void showArrowCursorIfNeeded()
1301
+ {
1302
+ auto& desktop = Desktop::getInstance();
1303
+ auto mouse = desktop.getMainMouseSource();
1304
+
1305
+ if (mouse.getComponentUnderMouse() == nullptr
1306
+ && desktop.findComponentAt (mouse.getScreenPosition().roundToInt()) == nullptr)
1307
+ {
1308
+ [[NSCursor arrowCursor] set];
1309
+ }
1310
+ }
1311
+
1312
+ static void updateModifiers (NSEvent* e)
1313
+ {
1314
+ updateModifiers ([e modifierFlags]);
1315
+ }
1316
+
1317
+ static void updateModifiers (const NSUInteger flags)
1318
+ {
1319
+ int m = 0;
1320
+
1321
+ if ((flags & NSEventModifierFlagShift) != 0) m |= ModifierKeys::shiftModifier;
1322
+ if ((flags & NSEventModifierFlagControl) != 0) m |= ModifierKeys::ctrlModifier;
1323
+ if ((flags & NSEventModifierFlagOption) != 0) m |= ModifierKeys::altModifier;
1324
+ if ((flags & NSEventModifierFlagCommand) != 0) m |= ModifierKeys::commandModifier;
1325
+
1326
+ ModifierKeys::currentModifiers = ModifierKeys::currentModifiers.withOnlyMouseButtons().withFlags (m);
1327
+ }
1328
+
1329
+ static void updateKeysDown (NSEvent* ev, bool isKeyDown)
1330
+ {
1331
+ updateModifiers (ev);
1332
+
1333
+ if (auto keyCode = getKeyCodeFromEvent (ev))
1334
+ {
1335
+ if (isKeyDown)
1336
+ keysCurrentlyDown.insert (keyCode);
1337
+ else
1338
+ keysCurrentlyDown.erase (keyCode);
1339
+ }
1340
+ }
1341
+
1342
+ static int getKeyCodeFromEvent (NSEvent* ev)
1343
+ {
1344
+ // Unfortunately, charactersIgnoringModifiers does not ignore the shift key.
1345
+ // Using [ev keyCode] is not a solution either as this will,
1346
+ // for example, return VK_KEY_Y if the key is pressed which
1347
+ // is typically located at the Y key position on a QWERTY
1348
+ // keyboard. However, on international keyboards this might not
1349
+ // be the key labeled Y (for example, on German keyboards this key
1350
+ // has a Z label). Therefore, we need to query the current keyboard
1351
+ // layout to figure out what character the key would have produced
1352
+ // if the shift key was not pressed
1353
+ String unmodified = nsStringToJuce ([ev charactersIgnoringModifiers]);
1354
+ auto keyCode = (int) unmodified[0];
1355
+
1356
+ if (keyCode == 0x19) // (backwards-tab)
1357
+ keyCode = '\t';
1358
+ else if (keyCode == 0x03) // (enter)
1359
+ keyCode = '\r';
1360
+ else
1361
+ keyCode = (int) CharacterFunctions::toUpperCase ((juce_wchar) keyCode);
1362
+
1363
+ // The purpose of the keyCode is to provide information about non-printing characters to facilitate
1364
+ // keyboard control over the application.
1365
+ //
1366
+ // So when keyCode is decoded as a printing character outside the ASCII range we need to replace it.
1367
+ // This holds when the keyCode is larger than 0xff and not part one of the two MacOS specific
1368
+ // non-printing ranges.
1369
+ if (keyCode > 0xff
1370
+ && ! (keyCode >= NSUpArrowFunctionKey && keyCode <= NSModeSwitchFunctionKey)
1371
+ && ! (keyCode >= extendedKeyModifier))
1372
+ {
1373
+ keyCode = translateVirtualToAsciiKeyCode ([ev keyCode]);
1374
+ }
1375
+
1376
+ if (([ev modifierFlags] & NSEventModifierFlagNumericPad) != 0)
1377
+ {
1378
+ const int numPadConversions[] = { '0', KeyPress::numberPad0, '1', KeyPress::numberPad1,
1379
+ '2', KeyPress::numberPad2, '3', KeyPress::numberPad3,
1380
+ '4', KeyPress::numberPad4, '5', KeyPress::numberPad5,
1381
+ '6', KeyPress::numberPad6, '7', KeyPress::numberPad7,
1382
+ '8', KeyPress::numberPad8, '9', KeyPress::numberPad9,
1383
+ '+', KeyPress::numberPadAdd, '-', KeyPress::numberPadSubtract,
1384
+ '*', KeyPress::numberPadMultiply, '/', KeyPress::numberPadDivide,
1385
+ '.', KeyPress::numberPadDecimalPoint,
1386
+ ',', KeyPress::numberPadDecimalPoint, // (to deal with non-english kbds)
1387
+ '=', KeyPress::numberPadEquals };
1388
+
1389
+ for (int i = 0; i < numElementsInArray (numPadConversions); i += 2)
1390
+ if (keyCode == numPadConversions [i])
1391
+ keyCode = numPadConversions [i + 1];
1392
+ }
1393
+
1394
+ return keyCode;
1395
+ }
1396
+
1397
+ static int64 getMouseTime (NSEvent* e) noexcept
1398
+ {
1399
+ return (Time::currentTimeMillis() - Time::getMillisecondCounter())
1400
+ + (int64) ([e timestamp] * 1000.0);
1401
+ }
1402
+
1403
+ static float getMousePressure (NSEvent* e) noexcept
1404
+ {
1405
+ @try
1406
+ {
1407
+ if (e.type != NSEventTypeMouseEntered && e.type != NSEventTypeMouseExited)
1408
+ return (float) e.pressure;
1409
+ }
1410
+ @catch (NSException* e) {}
1411
+ @finally {}
1412
+
1413
+ return 0.0f;
1414
+ }
1415
+
1416
+ static Point<float> getMousePos (NSEvent* e, NSView* view)
1417
+ {
1418
+ NSPoint p = [view convertPoint: [e locationInWindow] fromView: nil];
1419
+ return { (float) p.x, (float) p.y };
1420
+ }
1421
+
1422
+ static int getModifierForButtonNumber (const NSInteger num)
1423
+ {
1424
+ return num == 0 ? ModifierKeys::leftButtonModifier
1425
+ : (num == 1 ? ModifierKeys::rightButtonModifier
1426
+ : (num == 2 ? ModifierKeys::middleButtonModifier : 0));
1427
+ }
1428
+
1429
+ static unsigned int getNSWindowStyleMask (const int flags) noexcept
1430
+ {
1431
+ unsigned int style = (flags & windowHasTitleBar) != 0 ? NSWindowStyleMaskTitled
1432
+ : NSWindowStyleMaskBorderless;
1433
+
1434
+ if ((flags & windowHasMinimiseButton) != 0) style |= NSWindowStyleMaskMiniaturizable;
1435
+ if ((flags & windowHasCloseButton) != 0) style |= NSWindowStyleMaskClosable;
1436
+ if ((flags & windowIsResizable) != 0) style |= NSWindowStyleMaskResizable;
1437
+ return style;
1438
+ }
1439
+
1440
+ static NSArray* getSupportedDragTypes()
1441
+ {
1442
+ const auto type = []
1443
+ {
1444
+ if (@available (macOS 10.13, *))
1445
+ return NSPasteboardTypeFileURL;
1446
+
1447
+ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations")
1448
+ return (NSString*) kUTTypeFileURL;
1449
+ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
1450
+ }();
1451
+
1452
+ return [NSArray arrayWithObjects: type, (NSString*) kPasteboardTypeFileURLPromise, NSPasteboardTypeString, nil];
1453
+ }
1454
+
1455
+ BOOL sendDragCallback (bool (ComponentPeer::* callback) (const DragInfo&), id <NSDraggingInfo> sender)
1456
+ {
1457
+ NSPasteboard* pasteboard = [sender draggingPasteboard];
1458
+ NSString* contentType = [pasteboard availableTypeFromArray: getSupportedDragTypes()];
1459
+
1460
+ if (contentType == nil)
1461
+ return false;
1462
+
1463
+ const auto p = localToGlobal (convertToPointFloat ([view convertPoint: [sender draggingLocation] fromView: nil]));
1464
+
1465
+ ComponentPeer::DragInfo dragInfo;
1466
+ dragInfo.position = detail::ScalingHelpers::screenPosToLocalPos (component, p).roundToInt();
1467
+
1468
+ if (contentType == NSPasteboardTypeString)
1469
+ dragInfo.text = nsStringToJuce ([pasteboard stringForType: NSPasteboardTypeString]);
1470
+ else
1471
+ dragInfo.files = getDroppedFiles (pasteboard, contentType);
1472
+
1473
+ if (! dragInfo.isEmpty())
1474
+ return (this->*callback) (dragInfo);
1475
+
1476
+ return false;
1477
+ }
1478
+
1479
+ StringArray getDroppedFiles (NSPasteboard* pasteboard, NSString* contentType)
1480
+ {
1481
+ StringArray files;
1482
+ NSString* iTunesPasteboardType = nsStringLiteral ("CorePasteboardFlavorType 0x6974756E"); // 'itun'
1483
+
1484
+ if ([contentType isEqualToString: (NSString*) kPasteboardTypeFileURLPromise]
1485
+ && [[pasteboard types] containsObject: iTunesPasteboardType])
1486
+ {
1487
+ id list = [pasteboard propertyListForType: iTunesPasteboardType];
1488
+
1489
+ if ([list isKindOfClass: [NSDictionary class]])
1490
+ {
1491
+ NSDictionary* iTunesDictionary = (NSDictionary*) list;
1492
+ NSArray* tracks = [iTunesDictionary valueForKey: nsStringLiteral ("Tracks")];
1493
+ NSEnumerator* enumerator = [tracks objectEnumerator];
1494
+ NSDictionary* track;
1495
+
1496
+ while ((track = [enumerator nextObject]) != nil)
1497
+ {
1498
+ if (id value = [track valueForKey: nsStringLiteral ("Location")])
1499
+ {
1500
+ NSURL* url = [NSURL URLWithString: value];
1501
+
1502
+ if ([url isFileURL])
1503
+ files.add (nsStringToJuce ([url path]));
1504
+ }
1505
+ }
1506
+ }
1507
+ }
1508
+ else
1509
+ {
1510
+ NSArray* items = [pasteboard readObjectsForClasses:@[[NSURL class]] options: nil];
1511
+
1512
+ for (unsigned int i = 0; i < [items count]; ++i)
1513
+ {
1514
+ NSURL* url = [items objectAtIndex: i];
1515
+
1516
+ if ([url isFileURL])
1517
+ files.add (nsStringToJuce ([url path]));
1518
+ }
1519
+ }
1520
+
1521
+ return files;
1522
+ }
1523
+
1524
+ //==============================================================================
1525
+ void viewFocusGain()
1526
+ {
1527
+ if (currentlyFocusedPeer != this)
1528
+ {
1529
+ if (ComponentPeer::isValidPeer (currentlyFocusedPeer))
1530
+ currentlyFocusedPeer->handleFocusLoss();
1531
+
1532
+ currentlyFocusedPeer = this;
1533
+ handleFocusGain();
1534
+ }
1535
+ }
1536
+
1537
+ void viewFocusLoss()
1538
+ {
1539
+ if (currentlyFocusedPeer == this)
1540
+ {
1541
+ currentlyFocusedPeer = nullptr;
1542
+ handleFocusLoss();
1543
+ }
1544
+ }
1545
+
1546
+ bool isFocused() const override
1547
+ {
1548
+ return (isSharedWindow || ! JUCEApplication::isStandaloneApp())
1549
+ ? this == currentlyFocusedPeer
1550
+ : [window isKeyWindow];
1551
+ }
1552
+
1553
+ void grabFocus() override
1554
+ {
1555
+ if (window != nil)
1556
+ {
1557
+ if (! inBecomeKeyWindow && [window canBecomeKeyWindow])
1558
+ [window makeKeyWindow];
1559
+
1560
+ [window makeFirstResponder: view];
1561
+
1562
+ viewFocusGain();
1563
+ }
1564
+ }
1565
+
1566
+ void textInputRequired (Point<int>, TextInputTarget&) override {}
1567
+
1568
+ void closeInputMethodContext() override
1569
+ {
1570
+ stringBeingComposed.clear();
1571
+
1572
+ if (const auto* inputContext = [view inputContext])
1573
+ [inputContext discardMarkedText];
1574
+ }
1575
+
1576
+ void resetWindowPresentation()
1577
+ {
1578
+ [window setStyleMask: (NSViewComponentPeer::getNSWindowStyleMask (getStyleFlags()))];
1579
+
1580
+ if (hasNativeTitleBar())
1581
+ setTitle (getComponent().getName()); // required to force the OS to update the title
1582
+
1583
+ [NSApp setPresentationOptions: NSApplicationPresentationDefault];
1584
+ setCollectionBehaviour (isFullScreen());
1585
+ }
1586
+
1587
+ void setHasChangedSinceSaved (bool b) override
1588
+ {
1589
+ if (! isSharedWindow)
1590
+ [window setDocumentEdited: b];
1591
+ }
1592
+
1593
+ bool sendEventToInputContextOrComponent (NSEvent* ev)
1594
+ {
1595
+ // In the case that an event was processed unsuccessfully in performKeyEquivalent and then
1596
+ // posted back to keyDown by the system, this check will ensure that we don't attempt to
1597
+ // process the same event a second time.
1598
+ const auto newEvent = KeyEventAttributes::make (ev);
1599
+
1600
+ if (std::exchange (lastSeenKeyEvent, newEvent) == newEvent)
1601
+ return false;
1602
+
1603
+ // We assume that the event will be handled by the IME.
1604
+ // Occasionally, the inputContext may be sent key events like cmd+Q, which it will turn
1605
+ // into a noop: call and forward to doCommandBySelector:.
1606
+ // In this case, the event will be extracted from keyEventBeingHandled and passed to the
1607
+ // focused component, and viewCannotHandleEvent will be set depending on whether the event
1608
+ // was handled by the component.
1609
+ // If the event was *not* handled by the component, and was also not consumed completely by
1610
+ // the IME, it's important to return the event to the system for further handling, so that
1611
+ // the main menu works as expected.
1612
+ viewCannotHandleEvent = false;
1613
+ keyEventBeingHandled.reset ([ev retain]);
1614
+ const WeakReference ref { this };
1615
+ // redirectKeyDown may delete this peer!
1616
+ const ScopeGuard scope { [&ref] { if (ref != nullptr) ref->keyEventBeingHandled = nullptr; } };
1617
+
1618
+ const auto handled = [&]() -> bool
1619
+ {
1620
+ if (auto* target = findCurrentTextInputTarget())
1621
+ if (const auto* inputContext = [view inputContext])
1622
+ return [inputContext handleEvent: ev] && ! viewCannotHandleEvent;
1623
+
1624
+ return false;
1625
+ }();
1626
+
1627
+ if (handled)
1628
+ return true;
1629
+
1630
+ stringBeingComposed.clear();
1631
+ return redirectKeyDown (ev);
1632
+ }
1633
+
1634
+ //==============================================================================
1635
+ class KeyEventAttributes
1636
+ {
1637
+ auto tie() const
1638
+ {
1639
+ return std::tie (type,
1640
+ modifierFlags,
1641
+ timestamp,
1642
+ windowNumber,
1643
+ characters,
1644
+ charactersIgnoringModifiers,
1645
+ keyCode,
1646
+ isRepeat);
1647
+ }
1648
+
1649
+ public:
1650
+ static std::optional<KeyEventAttributes> make (NSEvent* event)
1651
+ {
1652
+ const auto type = [event type];
1653
+
1654
+ if (type != NSEventTypeKeyDown && type != NSEventTypeKeyUp)
1655
+ return {};
1656
+
1657
+ return KeyEventAttributes
1658
+ {
1659
+ type,
1660
+ [event modifierFlags],
1661
+ [event timestamp],
1662
+ [event windowNumber],
1663
+ nsStringToJuce ([event characters]),
1664
+ nsStringToJuce ([event charactersIgnoringModifiers]),
1665
+ [event keyCode],
1666
+ static_cast<bool> ([event isARepeat])
1667
+ };
1668
+ }
1669
+
1670
+ bool operator== (const KeyEventAttributes& other) const { return tie() == other.tie(); }
1671
+ bool operator!= (const KeyEventAttributes& other) const { return tie() != other.tie(); }
1672
+
1673
+ private:
1674
+ KeyEventAttributes (NSEventType typeIn,
1675
+ NSEventModifierFlags flagsIn,
1676
+ NSTimeInterval timestampIn,
1677
+ NSInteger windowNumberIn,
1678
+ String charactersIn,
1679
+ String charactersIgnoringModifiersIn,
1680
+ unsigned short keyCodeIn,
1681
+ bool isRepeatIn)
1682
+ : type (typeIn),
1683
+ modifierFlags (flagsIn),
1684
+ timestamp (timestampIn),
1685
+ windowNumber (windowNumberIn),
1686
+ characters (charactersIn),
1687
+ charactersIgnoringModifiers (charactersIgnoringModifiersIn),
1688
+ keyCode (keyCodeIn),
1689
+ isRepeat (isRepeatIn)
1690
+ {}
1691
+
1692
+ NSEventType type;
1693
+ NSEventModifierFlags modifierFlags;
1694
+ NSTimeInterval timestamp;
1695
+ NSInteger windowNumber;
1696
+ String characters;
1697
+ String charactersIgnoringModifiers;
1698
+ unsigned short keyCode;
1699
+ bool isRepeat;
1700
+ };
1701
+
1702
+ NSWindow* window = nil;
1703
+ NSView* view = nil;
1704
+ WeakReference<Component> safeComponent;
1705
+ const bool isSharedWindow = false;
1706
+ #if USE_COREGRAPHICS_RENDERING
1707
+ bool usingCoreGraphics = true;
1708
+ #else
1709
+ bool usingCoreGraphics = false;
1710
+ #endif
1711
+ NSUniquePtr<NSEvent> keyEventBeingHandled;
1712
+ bool isFirstLiveResize = false, viewCannotHandleEvent = false;
1713
+ bool isStretchingTop = false, isStretchingLeft = false, isStretchingBottom = false, isStretchingRight = false;
1714
+ bool windowRepresentsFile = false;
1715
+ bool isAlwaysOnTop = false, wasAlwaysOnTop = false, inBecomeKeyWindow = false;
1716
+ String stringBeingComposed;
1717
+ int startOfMarkedTextInTextInputTarget = 0;
1718
+
1719
+ Rectangle<float> lastSizeBeforeZoom;
1720
+ RectangleList<float> deferredRepaints;
1721
+ uint32 lastRepaintTime;
1722
+
1723
+ std::optional<KeyEventAttributes> lastSeenKeyEvent;
1724
+
1725
+ static inline ComponentPeer* currentlyFocusedPeer;
1726
+ static inline std::set<int> keysCurrentlyDown;
1727
+ static inline int insideToFrontCall;
1728
+
1729
+ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wundeclared-selector")
1730
+ static inline const auto dismissModalsSelector = @selector (dismissModals);
1731
+ static inline const auto frameChangedSelector = @selector (frameChanged:);
1732
+ static inline const auto asyncMouseDownSelector = @selector (asyncMouseDown:);
1733
+ static inline const auto asyncMouseUpSelector = @selector (asyncMouseUp:);
1734
+ static inline const auto becomeKeySelector = @selector (becomeKey:);
1735
+ static inline const auto resignKeySelector = @selector (resignKey:);
1736
+ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
1737
+
1738
+ #if JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS
1739
+ std::unique_ptr<CoreGraphicsMetalLayerRenderer> metalRenderer;
1740
+ NSUniquePtr<NSObject<CALayerDelegate>> layerDelegate;
1741
+ #endif
1742
+
1743
+ private:
1744
+ JUCE_DECLARE_WEAK_REFERENCEABLE (NSViewComponentPeer)
1745
+
1746
+ // Note: the OpenGLContext also has a SharedResourcePointer<PerScreenDisplayLinks> to
1747
+ // avoid unnecessarily duplicating display-link threads.
1748
+ SharedResourcePointer<PerScreenDisplayLinks> sharedDisplayLinks;
1749
+
1750
+ class AsyncRepainter final : private AsyncUpdater
1751
+ {
1752
+ public:
1753
+ explicit AsyncRepainter (NSViewComponentPeer& o) : owner (o) {}
1754
+ ~AsyncRepainter() override { cancelPendingUpdate(); }
1755
+
1756
+ void markUpdated (const CGDirectDisplayID x)
1757
+ {
1758
+ {
1759
+ const std::scoped_lock lock { mutex };
1760
+
1761
+ if (std::find (backgroundDisplays.cbegin(), backgroundDisplays.cend(), x) == backgroundDisplays.cend())
1762
+ backgroundDisplays.push_back (x);
1763
+ }
1764
+
1765
+ triggerAsyncUpdate();
1766
+ }
1767
+
1768
+ private:
1769
+ void handleAsyncUpdate() override
1770
+ {
1771
+ {
1772
+ const std::scoped_lock lock { mutex };
1773
+ mainThreadDisplays = backgroundDisplays;
1774
+ backgroundDisplays.clear();
1775
+ }
1776
+
1777
+ for (const auto& display : mainThreadDisplays)
1778
+ if (auto* peerView = owner.view)
1779
+ if (auto* peerWindow = [peerView window])
1780
+ if (display == ScopedDisplayLink::getDisplayIdForScreen ([peerWindow screen]))
1781
+ owner.onVBlank();
1782
+ }
1783
+
1784
+ NSViewComponentPeer& owner;
1785
+ std::mutex mutex;
1786
+ std::vector<CGDirectDisplayID> backgroundDisplays, mainThreadDisplays;
1787
+ };
1788
+
1789
+ AsyncRepainter asyncRepainter { *this };
1790
+
1791
+ /* Creates a function object that can be called from an arbitrary thread (probably a CVLink
1792
+ thread). When called, this function object will trigger a call to setNeedsDisplayRectangles
1793
+ as soon as possible on the main thread, for any peers currently on the provided NSScreen.
1794
+ */
1795
+ PerScreenDisplayLinks::Connection connection
1796
+ {
1797
+ sharedDisplayLinks->registerFactory ([this] (CGDirectDisplayID display)
1798
+ {
1799
+ return [this, display] { asyncRepainter.markUpdated (display); };
1800
+ })
1801
+ };
1802
+
1803
+ static NSView* createViewInstance();
1804
+ static NSWindow* createWindowInstance();
1805
+
1806
+ void sendMouseEnterExit (NSEvent* ev)
1807
+ {
1808
+ if (auto* area = [ev trackingArea])
1809
+ if (! [[view trackingAreas] containsObject: area])
1810
+ return;
1811
+
1812
+ if ([NSEvent pressedMouseButtons] == 0)
1813
+ sendMouseEvent (ev);
1814
+ }
1815
+
1816
+ static void setOwner (id viewOrWindow, NSViewComponentPeer* newOwner)
1817
+ {
1818
+ object_setInstanceVariable (viewOrWindow, "owner", newOwner);
1819
+ }
1820
+
1821
+ void getClipRects (RectangleList<int>& clip, Point<int> offset, int clipW, int clipH)
1822
+ {
1823
+ const NSRect* rects = nullptr;
1824
+ NSInteger numRects = 0;
1825
+ [view getRectsBeingDrawn: &rects count: &numRects];
1826
+
1827
+ const Rectangle<int> clipBounds (clipW, clipH);
1828
+
1829
+ clip.ensureStorageAllocated ((int) numRects);
1830
+
1831
+ for (int i = 0; i < numRects; ++i)
1832
+ clip.addWithoutMerging (clipBounds.getIntersection (Rectangle<int> (roundToInt (rects[i].origin.x) + offset.x,
1833
+ roundToInt (rects[i].origin.y) + offset.y,
1834
+ roundToInt (rects[i].size.width),
1835
+ roundToInt (rects[i].size.height))));
1836
+ }
1837
+
1838
+ static void appFocusChanged()
1839
+ {
1840
+ keysCurrentlyDown.clear();
1841
+
1842
+ if (isValidPeer (currentlyFocusedPeer))
1843
+ {
1844
+ if (Process::isForegroundProcess())
1845
+ {
1846
+ currentlyFocusedPeer->handleFocusGain();
1847
+ ModalComponentManager::getInstance()->bringModalComponentsToFront();
1848
+ }
1849
+ else
1850
+ {
1851
+ currentlyFocusedPeer->handleFocusLoss();
1852
+ }
1853
+ }
1854
+ }
1855
+
1856
+ static bool checkEventBlockedByModalComps (NSEvent* e)
1857
+ {
1858
+ if (Component::getNumCurrentlyModalComponents() == 0)
1859
+ return false;
1860
+
1861
+ NSWindow* const w = [e window];
1862
+
1863
+ if (w == nil || [w worksWhenModal])
1864
+ return false;
1865
+
1866
+ bool isKey = false, isInputAttempt = false;
1867
+
1868
+ switch ([e type])
1869
+ {
1870
+ case NSEventTypeKeyDown:
1871
+ case NSEventTypeKeyUp:
1872
+ isKey = isInputAttempt = true;
1873
+ break;
1874
+
1875
+ case NSEventTypeLeftMouseDown:
1876
+ case NSEventTypeRightMouseDown:
1877
+ case NSEventTypeOtherMouseDown:
1878
+ isInputAttempt = true;
1879
+ break;
1880
+
1881
+ case NSEventTypeLeftMouseDragged:
1882
+ case NSEventTypeRightMouseDragged:
1883
+ case NSEventTypeLeftMouseUp:
1884
+ case NSEventTypeRightMouseUp:
1885
+ case NSEventTypeOtherMouseUp:
1886
+ case NSEventTypeOtherMouseDragged:
1887
+ if (Desktop::getInstance().getDraggingMouseSource (0) != nullptr)
1888
+ return false;
1889
+ break;
1890
+
1891
+ case NSEventTypeMouseMoved:
1892
+ case NSEventTypeMouseEntered:
1893
+ case NSEventTypeMouseExited:
1894
+ case NSEventTypeCursorUpdate:
1895
+ case NSEventTypeScrollWheel:
1896
+ case NSEventTypeTabletPoint:
1897
+ case NSEventTypeTabletProximity:
1898
+ break;
1899
+
1900
+ case NSEventTypeFlagsChanged:
1901
+ case NSEventTypeAppKitDefined:
1902
+ case NSEventTypeSystemDefined:
1903
+ case NSEventTypeApplicationDefined:
1904
+ case NSEventTypePeriodic:
1905
+ case NSEventTypeGesture:
1906
+ case NSEventTypeMagnify:
1907
+ case NSEventTypeSwipe:
1908
+ case NSEventTypeRotate:
1909
+ case NSEventTypeBeginGesture:
1910
+ case NSEventTypeEndGesture:
1911
+ case NSEventTypeQuickLook:
1912
+ case NSEventTypeSmartMagnify:
1913
+ case NSEventTypePressure:
1914
+ case NSEventTypeDirectTouch:
1915
+ case NSEventTypeChangeMode:
1916
+ default:
1917
+ return false;
1918
+ }
1919
+
1920
+ for (int i = ComponentPeer::getNumPeers(); --i >= 0;)
1921
+ {
1922
+ if (auto* peer = dynamic_cast<NSViewComponentPeer*> (ComponentPeer::getPeer (i)))
1923
+ {
1924
+ if ([peer->view window] == w)
1925
+ {
1926
+ if (isKey)
1927
+ {
1928
+ if (peer->view == [w firstResponder])
1929
+ return false;
1930
+ }
1931
+ else
1932
+ {
1933
+ if (peer->isSharedWindow
1934
+ ? NSPointInRect ([peer->view convertPoint: [e locationInWindow] fromView: nil], [peer->view bounds])
1935
+ : NSPointInRect ([e locationInWindow], NSMakeRect (0, 0, [w frame].size.width, [w frame].size.height)))
1936
+ return false;
1937
+ }
1938
+ }
1939
+ }
1940
+ }
1941
+
1942
+ if (isInputAttempt)
1943
+ {
1944
+ if (! [NSApp isActive])
1945
+ [NSApp activateIgnoringOtherApps: YES];
1946
+
1947
+ if (auto* modal = Component::getCurrentlyModalComponent())
1948
+ modal->inputAttemptWhenModal();
1949
+ }
1950
+
1951
+ return true;
1952
+ }
1953
+
1954
+ void setFullScreenSizeConstraints (const ComponentBoundsConstrainer& c)
1955
+ {
1956
+ const auto minSize = NSMakeSize (static_cast<float> (c.getMinimumWidth()), 0.0f);
1957
+ [window setMinFullScreenContentSize: minSize];
1958
+ [window setMaxFullScreenContentSize: NSMakeSize (100000, 100000)];
1959
+ }
1960
+
1961
+ void displayLayer ([[maybe_unused]] CALayer* layer) override
1962
+ {
1963
+ #if JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS
1964
+ if (metalRenderer == nullptr)
1965
+ return;
1966
+
1967
+ const auto scale = [this]
1968
+ {
1969
+ if (auto* viewWindow = [view window])
1970
+ return (float) viewWindow.backingScaleFactor;
1971
+
1972
+ return 1.0f;
1973
+ }();
1974
+
1975
+ deferredRepaints = metalRenderer->drawRectangleList (static_cast<CAMetalLayer*> (layer),
1976
+ scale,
1977
+ [this] (auto&&... args) { drawRectWithContext (args...); },
1978
+ std::move (deferredRepaints),
1979
+ [view inLiveResize]);
1980
+ #endif
1981
+ }
1982
+
1983
+ /* Used to store and restore the values of the NSWindowStyleMaskClosable and
1984
+ NSWindowStyleMaskMiniaturizable flags.
1985
+ */
1986
+ struct StoredStyleFlags
1987
+ {
1988
+ StoredStyleFlags (NSWindowStyleMask m)
1989
+ : stored { m }
1990
+ {}
1991
+
1992
+ static auto getStoredFlags()
1993
+ {
1994
+ return std::array<NSWindowStyleMask, 2> { NSWindowStyleMaskClosable,
1995
+ NSWindowStyleMaskMiniaturizable };
1996
+ }
1997
+
1998
+ auto withFlagsRestored (NSWindowStyleMask m) const
1999
+ {
2000
+ for (const auto& f : getStoredFlags())
2001
+ m = withFlagFromStored (m, f);
2002
+
2003
+ return m;
2004
+ }
2005
+
2006
+ private:
2007
+ NSWindowStyleMask withFlagFromStored (NSWindowStyleMask m, NSWindowStyleMask flag) const
2008
+ {
2009
+ return (m & ~flag) | (stored & flag);
2010
+ }
2011
+
2012
+ NSWindowStyleMask stored;
2013
+ };
2014
+
2015
+ void modalComponentManagerChanged()
2016
+ {
2017
+ // We are only changing the style flags if we absolutely have to. Plugin windows generally
2018
+ // don't like to be modified. Windows created under plugin hosts running in an external
2019
+ // subprocess are particularly touchy, and may make the window invisible even if we call
2020
+ // [window setStyleMask [window setStyleMask]].
2021
+ if (isSharedWindow || ! hasNativeTitleBar())
2022
+ return;
2023
+
2024
+ const auto newStyleMask = [&]() -> std::optional<NSWindowStyleMask>
2025
+ {
2026
+ const auto currentStyleMask = [window styleMask];
2027
+
2028
+ if (ModalComponentManager::getInstance()->getNumModalComponents() > 0)
2029
+ {
2030
+ if (! storedFlags)
2031
+ storedFlags.emplace (currentStyleMask);
2032
+
2033
+ auto updatedMask = (storedFlags->withFlagsRestored (currentStyleMask)) & ~NSWindowStyleMaskMiniaturizable;
2034
+
2035
+ if (component.isCurrentlyBlockedByAnotherModalComponent())
2036
+ updatedMask &= ~NSWindowStyleMaskClosable;
2037
+
2038
+ return updatedMask;
2039
+ }
2040
+
2041
+ if (storedFlags)
2042
+ {
2043
+ const auto flagsToApply = storedFlags->withFlagsRestored (currentStyleMask);
2044
+ storedFlags.reset();
2045
+ return flagsToApply;
2046
+ }
2047
+
2048
+ return {};
2049
+ }();
2050
+
2051
+ if (newStyleMask && *newStyleMask != [window styleMask])
2052
+ [window setStyleMask: *newStyleMask];
2053
+ }
2054
+
2055
+ //==============================================================================
2056
+ std::vector<ScopedNotificationCenterObserver> scopedObservers;
2057
+ std::vector<ScopedNotificationCenterObserver> windowObservers;
2058
+
2059
+ std::optional<StoredStyleFlags> storedFlags;
2060
+ ErasedScopeGuard modalChangeListenerScope =
2061
+ detail::ComponentHelpers::ModalComponentManagerChangeNotifier::getInstance().addListener ([this]
2062
+ {
2063
+ modalComponentManagerChanged();
2064
+ });
2065
+
2066
+ JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (NSViewComponentPeer)
2067
+ };
2068
+
2069
+ //==============================================================================
2070
+ template <typename Base>
2071
+ struct NSViewComponentPeerWrapper : public Base
2072
+ {
2073
+ explicit NSViewComponentPeerWrapper (const char* baseName)
2074
+ : Base (baseName)
2075
+ {
2076
+ Base::template addIvar<NSViewComponentPeer*> ("owner");
2077
+ }
2078
+
2079
+ static NSViewComponentPeer* getOwner (id self)
2080
+ {
2081
+ return getIvar<NSViewComponentPeer*> (self, "owner");
2082
+ }
2083
+
2084
+ static id getAccessibleChild (id self)
2085
+ {
2086
+ if (auto* owner = getOwner (self))
2087
+ if (auto* handler = owner->getComponent().getAccessibilityHandler())
2088
+ return (id) handler->getNativeImplementation();
2089
+
2090
+ return nil;
2091
+ }
2092
+ };
2093
+
2094
+ //==============================================================================
2095
+ struct JuceNSViewClass final : public NSViewComponentPeerWrapper<ObjCClass<NSView>>
2096
+ {
2097
+ JuceNSViewClass() : NSViewComponentPeerWrapper ("JUCEView_")
2098
+ {
2099
+ addMethod (@selector (isOpaque), [] (id self, SEL)
2100
+ {
2101
+ auto* owner = getOwner (self);
2102
+ return owner == nullptr || owner->getComponent().isOpaque();
2103
+ });
2104
+
2105
+ addMethod (@selector (updateTrackingAreas), [] (id self, SEL)
2106
+ {
2107
+ sendSuperclassMessage<void> (self, @selector (updateTrackingAreas));
2108
+
2109
+ resetTrackingArea (static_cast<NSView*> (self));
2110
+ });
2111
+
2112
+ addMethod (@selector (becomeFirstResponder), [] (id self, SEL)
2113
+ {
2114
+ callOnOwner (self, &NSViewComponentPeer::viewFocusGain);
2115
+ return YES;
2116
+ });
2117
+
2118
+ addMethod (@selector (resignFirstResponder), [] (id self, SEL)
2119
+ {
2120
+ callOnOwner (self, &NSViewComponentPeer::viewFocusLoss);
2121
+ return YES;
2122
+ });
2123
+
2124
+ addMethod (NSViewComponentPeer::dismissModalsSelector, [] (id self, SEL) { callOnOwner (self, &NSViewComponentPeer::dismissModals); });
2125
+ addMethod (NSViewComponentPeer::frameChangedSelector, [] (id self, SEL, NSNotification*) { callOnOwner (self, &NSViewComponentPeer::redirectMovedOrResized); });
2126
+ addMethod (NSViewComponentPeer::becomeKeySelector, [] (id self, SEL) { callOnOwner (self, &NSViewComponentPeer::becomeKey); });
2127
+ addMethod (NSViewComponentPeer::resignKeySelector, [] (id self, SEL) { callOnOwner (self, &NSViewComponentPeer::resignKey); });
2128
+
2129
+ addMethod (@selector (paste:), [] (id self, SEL, NSObject* s) { callOnOwner (self, &NSViewComponentPeer::redirectPaste, s); });
2130
+ addMethod (@selector (copy:), [] (id self, SEL, NSObject* s) { callOnOwner (self, &NSViewComponentPeer::redirectCopy, s); });
2131
+ addMethod (@selector (cut:), [] (id self, SEL, NSObject* s) { callOnOwner (self, &NSViewComponentPeer::redirectCut, s); });
2132
+ addMethod (@selector (selectAll:), [] (id self, SEL, NSObject* s) { callOnOwner (self, &NSViewComponentPeer::redirectSelectAll, s); });
2133
+
2134
+ addMethod (@selector (viewWillMoveToWindow:), [] (id self, SEL, NSWindow* w) { callOnOwner (self, &NSViewComponentPeer::redirectWillMoveToWindow, w); });
2135
+
2136
+ addMethod (@selector (drawRect:), [] (id self, SEL, NSRect r) { callOnOwner (self, &NSViewComponentPeer::drawRect, r); });
2137
+ addMethod (@selector (viewDidMoveToWindow), [] (id self, SEL) { callOnOwner (self, &NSViewComponentPeer::viewMovedToWindow); });
2138
+ addMethod (@selector (flagsChanged:), [] (id self, SEL, NSEvent* ev) { callOnOwner (self, &NSViewComponentPeer::redirectModKeyChange, ev); });
2139
+ addMethod (@selector (mouseMoved:), [] (id self, SEL, NSEvent* ev) { callOnOwner (self, &NSViewComponentPeer::redirectMouseMove, ev); });
2140
+ addMethod (@selector (mouseEntered:), [] (id self, SEL, NSEvent* ev) { callOnOwner (self, &NSViewComponentPeer::redirectMouseEnter, ev); });
2141
+ addMethod (@selector (mouseExited:), [] (id self, SEL, NSEvent* ev) { callOnOwner (self, &NSViewComponentPeer::redirectMouseExit, ev); });
2142
+ addMethod (@selector (scrollWheel:), [] (id self, SEL, NSEvent* ev) { callOnOwner (self, &NSViewComponentPeer::redirectMouseWheel, ev); });
2143
+ addMethod (@selector (magnifyWithEvent:), [] (id self, SEL, NSEvent* ev) { callOnOwner (self, &NSViewComponentPeer::redirectMagnify, ev); });
2144
+
2145
+ addMethod (@selector (mouseDragged:), mouseDragged);
2146
+ addMethod (@selector (rightMouseDragged:), mouseDragged);
2147
+ addMethod (@selector (otherMouseDragged:), mouseDragged);
2148
+
2149
+ addMethod (NSViewComponentPeer::asyncMouseDownSelector, asyncMouseDown);
2150
+ addMethod (NSViewComponentPeer::asyncMouseUpSelector, asyncMouseUp);
2151
+
2152
+ addMethod (@selector (mouseDown:), mouseDown);
2153
+ addMethod (@selector (rightMouseDown:), mouseDown);
2154
+ addMethod (@selector (otherMouseDown:), mouseDown);
2155
+
2156
+ addMethod (@selector (mouseUp:), mouseUp);
2157
+ addMethod (@selector (rightMouseUp:), mouseUp);
2158
+ addMethod (@selector (otherMouseUp:), mouseUp);
2159
+
2160
+ addMethod (@selector (draggingEntered:), draggingUpdated);
2161
+ addMethod (@selector (draggingUpdated:), draggingUpdated);
2162
+
2163
+ addMethod (@selector (draggingEnded:), draggingExited);
2164
+ addMethod (@selector (draggingExited:), draggingExited);
2165
+
2166
+ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wundeclared-selector")
2167
+ addMethod (@selector (clipsToBounds), [] (id, SEL) { return YES; });
2168
+ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
2169
+
2170
+ addMethod (@selector (acceptsFirstMouse:), [] (id, SEL, NSEvent*) { return YES; });
2171
+
2172
+ #if JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS
2173
+ addMethod (@selector (makeBackingLayer), [] (id self, SEL) -> CALayer*
2174
+ {
2175
+ if (auto* owner = getOwner (self))
2176
+ {
2177
+ if (owner->metalRenderer != nullptr)
2178
+ {
2179
+ auto* layer = [CAMetalLayer layer];
2180
+
2181
+ layer.device = MTLCreateSystemDefaultDevice();
2182
+ layer.framebufferOnly = NO;
2183
+ layer.pixelFormat = MTLPixelFormatBGRA8Unorm_sRGB;
2184
+ layer.opaque = getOwner (self)->getComponent().isOpaque();
2185
+ layer.needsDisplayOnBoundsChange = YES;
2186
+ layer.drawsAsynchronously = YES;
2187
+ layer.delegate = owner->layerDelegate.get();
2188
+
2189
+ if (@available (macOS 10.13, *))
2190
+ layer.allowsNextDrawableTimeout = NO;
2191
+
2192
+ return layer;
2193
+ }
2194
+ }
2195
+
2196
+ return sendSuperclassMessage<CALayer*> (self, @selector (makeBackingLayer));
2197
+ });
2198
+ #endif
2199
+
2200
+ addMethod (@selector (windowWillMiniaturize:), [] (id self, SEL, NSNotification*)
2201
+ {
2202
+ if (auto* p = getOwner (self))
2203
+ {
2204
+ if (p->isAlwaysOnTop)
2205
+ {
2206
+ // there is a bug when restoring minimised always on top windows so we need
2207
+ // to remove this behaviour before minimising and restore it afterwards
2208
+ p->setAlwaysOnTop (false);
2209
+ p->wasAlwaysOnTop = true;
2210
+ }
2211
+ }
2212
+ });
2213
+
2214
+ addMethod (@selector (windowDidDeminiaturize:), [] (id self, SEL, NSNotification*)
2215
+ {
2216
+ if (auto* p = getOwner (self))
2217
+ {
2218
+ if (p->wasAlwaysOnTop)
2219
+ p->setAlwaysOnTop (true);
2220
+
2221
+ p->redirectMovedOrResized();
2222
+ }
2223
+ });
2224
+
2225
+ addMethod (@selector (wantsDefaultClipping), [] (id, SEL) { return YES; }); // (this is the default, but may want to customise it in future)
2226
+
2227
+ addMethod (@selector (worksWhenModal), [] (id self, SEL)
2228
+ {
2229
+ if (auto* p = getOwner (self))
2230
+ return p->worksWhenModal();
2231
+
2232
+ return false;
2233
+ });
2234
+
2235
+ addMethod (@selector (viewWillDraw), [] (id self, SEL)
2236
+ {
2237
+ // Without setting contentsFormat macOS Big Sur will always set the invalid area
2238
+ // to be the entire frame.
2239
+ if (@available (macOS 10.12, *))
2240
+ {
2241
+ CALayer* layer = ((NSView*) self).layer;
2242
+ layer.contentsFormat = kCAContentsFormatRGBA8Uint;
2243
+ }
2244
+
2245
+ sendSuperclassMessage<void> (self, @selector (viewWillDraw));
2246
+ });
2247
+
2248
+ addMethod (@selector (keyDown:), [] (id self, SEL, NSEvent* ev)
2249
+ {
2250
+ const auto handled = [&]
2251
+ {
2252
+ if (auto* owner = getOwner (self))
2253
+ return owner->sendEventToInputContextOrComponent (ev);
2254
+
2255
+ return false;
2256
+ }();
2257
+
2258
+ if (! handled)
2259
+ sendSuperclassMessage<void> (self, @selector (keyDown:), ev);
2260
+ });
2261
+
2262
+ addMethod (@selector (keyUp:), [] (id self, SEL, NSEvent* ev)
2263
+ {
2264
+ auto* owner = getOwner (self);
2265
+
2266
+ if (! owner->redirectKeyUp (ev))
2267
+ sendSuperclassMessage<void> (self, @selector (keyUp:), ev);
2268
+ });
2269
+
2270
+ // See "The Path of Key Events" on this page:
2271
+ // https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/EventArchitecture/EventArchitecture.html
2272
+ // Normally, 'special' key presses (cursor keys, shortcuts, return, delete etc.) will be
2273
+ // sent down the view hierarchy to this function before any of the other keyboard handling
2274
+ // functions.
2275
+ // If any object returns YES from performKeyEquivalent, then the event is consumed.
2276
+ // If no object handles the key equivalent, then the event will be sent to the main menu.
2277
+ // If the menu is also unable to respond to the event, then the event will be sent
2278
+ // to keyDown:/keyUp: via sendEvent:, but this time the event will be sent to the first
2279
+ // responder and propagated back up the responder chain.
2280
+ // This architecture presents some issues in JUCE apps, which always expect the focused
2281
+ // Component to be sent all key presses *including* special keys.
2282
+ // There are also some slightly pathological cases that JUCE needs to support, for example
2283
+ // the situation where one of the cursor keys is bound to a main menu item. By default,
2284
+ // macOS would send the cursor event to performKeyEquivalent on each NSResponder, then send
2285
+ // the event to the main menu if no responder handled it. This would mean that the focused
2286
+ // Component would never see the event, which would break widgets like the TextEditor, which
2287
+ // expect to take precedence over menu items when they have focus.
2288
+ // Another layer of subtlety is that some IMEs require cursor key input. When long-pressing
2289
+ // the 'e' key to bring up the accent menu, the popup menu should receive cursor events
2290
+ // before the focused component.
2291
+ // To fulfil all of these requirements, we handle special keys ('key equivalents') like any
2292
+ // other key event, and send these events firstly to the NSTextInputContext (if there's an
2293
+ // active TextInputTarget), and then on to the focused Component in the case that the
2294
+ // input handler is unable to use the keypress. If the event still hasn't been used, then
2295
+ // it will be sent to the superclass's performKeyEquivalent: function, which will give the
2296
+ // OS a chance to handle events like cmd+Q, cmd+`, cmd+H etc.
2297
+ addMethod (@selector (performKeyEquivalent:), [] (id self, SEL s, NSEvent* ev) -> BOOL
2298
+ {
2299
+ if (auto* owner = getOwner (self))
2300
+ {
2301
+ const auto ref = owner->safeComponent;
2302
+
2303
+ if (owner->sendEventToInputContextOrComponent (ev))
2304
+ {
2305
+ if (ref == nullptr)
2306
+ return YES;
2307
+
2308
+ const auto isFirstResponder = [&]
2309
+ {
2310
+ if (auto* v = owner->view)
2311
+ if (auto* w = v.window)
2312
+ return w.firstResponder == self;
2313
+
2314
+ return false;
2315
+ }();
2316
+
2317
+ // If the view isn't the first responder, but the view has successfully
2318
+ // performed the key equivalent, then the key event must have been passed down
2319
+ // the view hierarchy to this point. In that case, the view won't be sent a
2320
+ // matching keyUp event, so we simulate it here.
2321
+ if (! isFirstResponder)
2322
+ owner->redirectKeyUp (ev);
2323
+
2324
+ return YES;
2325
+ }
2326
+ }
2327
+
2328
+ return sendSuperclassMessage<BOOL> (self, s, ev);
2329
+ });
2330
+
2331
+ addMethod (@selector (insertText:replacementRange:), [] (id self, SEL, id aString, NSRange replacementRange)
2332
+ {
2333
+ // This commits multi-byte text when using an IME, or after every keypress for western keyboards
2334
+ if (auto* owner = getOwner (self))
2335
+ {
2336
+ if (auto* target = owner->findCurrentTextInputTarget())
2337
+ {
2338
+ const auto newText = nsStringToJuce ([aString isKindOfClass: [NSAttributedString class]] ? [aString string] : aString);
2339
+
2340
+ if (newText.isNotEmpty())
2341
+ {
2342
+ target->setHighlightedRegion ([&]
2343
+ {
2344
+ // To test this, try long-pressing 'e' to bring up the accent popup,
2345
+ // then select one of the accented options.
2346
+ if (replacementRange.location != NSNotFound)
2347
+ return nsRangeToJuce (replacementRange);
2348
+
2349
+ // To test this, try entering the characters 'a b <esc>' with the 2-Set
2350
+ // Korean IME. The input client should receive three calls to setMarkedText:
2351
+ // followed by a call to insertText:
2352
+ // The final call to insertText should overwrite the currently-marked
2353
+ // text, and reset the composition string.
2354
+ if (owner->stringBeingComposed.isNotEmpty())
2355
+ return Range<int>::withStartAndLength (owner->startOfMarkedTextInTextInputTarget,
2356
+ owner->stringBeingComposed.length());
2357
+
2358
+ return target->getHighlightedRegion();
2359
+ }());
2360
+
2361
+ target->insertTextAtCaret (newText);
2362
+ target->setTemporaryUnderlining ({});
2363
+ }
2364
+ }
2365
+ else
2366
+ jassertfalse; // The system should not attempt to insert text when there is no active TextInputTarget
2367
+
2368
+ owner->stringBeingComposed.clear();
2369
+ }
2370
+ });
2371
+
2372
+ addMethod (@selector (doCommandBySelector:), [] (id self, SEL, SEL sel)
2373
+ {
2374
+ const auto handled = [&]
2375
+ {
2376
+ // 'Special' keys, like backspace, return, tab, and escape, are converted to commands by the system.
2377
+ // Components still expect to receive these events as key presses, so we send the currently-processed
2378
+ // key event (if any).
2379
+ if (auto* owner = getOwner (self))
2380
+ {
2381
+ owner->viewCannotHandleEvent = [&]
2382
+ {
2383
+ if (auto* e = owner->keyEventBeingHandled.get())
2384
+ {
2385
+ if ([e type] != NSEventTypeKeyDown && [e type] != NSEventTypeKeyUp)
2386
+ return true;
2387
+
2388
+ return ! ([e type] == NSEventTypeKeyDown ? owner->redirectKeyDown (e)
2389
+ : owner->redirectKeyUp (e));
2390
+ }
2391
+
2392
+ return true;
2393
+ }();
2394
+
2395
+ return ! owner->viewCannotHandleEvent;
2396
+ }
2397
+
2398
+ return false;
2399
+ }();
2400
+
2401
+ if (! handled)
2402
+ sendSuperclassMessage<void> (self, @selector (doCommandBySelector:), sel);
2403
+ });
2404
+
2405
+ addMethod (@selector (setMarkedText:selectedRange:replacementRange:), [] (id self,
2406
+ SEL,
2407
+ id aString,
2408
+ const NSRange selectedRange,
2409
+ const NSRange replacementRange)
2410
+ {
2411
+ if (auto* owner = getOwner (self))
2412
+ {
2413
+ if (auto* target = owner->findCurrentTextInputTarget())
2414
+ {
2415
+ const auto toInsert = nsStringToJuce ([aString isKindOfClass: [NSAttributedString class]] ? [aString string] : aString);
2416
+ const auto [initialHighlight, marked, finalHighlight] = [&]
2417
+ {
2418
+ if (owner->stringBeingComposed.isNotEmpty())
2419
+ {
2420
+ const auto toReplace = Range<int>::withStartAndLength (owner->startOfMarkedTextInTextInputTarget,
2421
+ owner->stringBeingComposed.length());
2422
+
2423
+ return replacementRange.location != NSNotFound
2424
+ // There's a composition underway, so replacementRange is relative to the marked text,
2425
+ // and selectedRange is relative to the inserted string.
2426
+ ? std::tuple (toReplace,
2427
+ owner->stringBeingComposed.replaceSection (static_cast<int> (replacementRange.location),
2428
+ static_cast<int> (replacementRange.length),
2429
+ toInsert),
2430
+ nsRangeToJuce (selectedRange) + static_cast<int> (replacementRange.location))
2431
+ // The replacementRange is invalid, so replace all the marked text.
2432
+ : std::tuple (toReplace, toInsert, nsRangeToJuce (selectedRange));
2433
+ }
2434
+
2435
+ if (replacementRange.location != NSNotFound)
2436
+ // There's no string composition in progress, so replacementRange is relative to the start
2437
+ // of the document.
2438
+ return std::tuple (nsRangeToJuce (replacementRange), toInsert, nsRangeToJuce (selectedRange));
2439
+
2440
+ return std::tuple (target->getHighlightedRegion(), toInsert, nsRangeToJuce (selectedRange));
2441
+ }();
2442
+
2443
+ owner->stringBeingComposed = marked;
2444
+ owner->startOfMarkedTextInTextInputTarget = initialHighlight.getStart();
2445
+
2446
+ target->setHighlightedRegion (initialHighlight);
2447
+ target->insertTextAtCaret (marked);
2448
+ target->setTemporaryUnderlining ({ Range<int>::withStartAndLength (initialHighlight.getStart(), marked.length()) });
2449
+ target->setHighlightedRegion (finalHighlight + owner->startOfMarkedTextInTextInputTarget);
2450
+ }
2451
+ }
2452
+ });
2453
+
2454
+ addMethod (@selector (unmarkText), [] (id self, SEL)
2455
+ {
2456
+ if (auto* owner = getOwner (self))
2457
+ {
2458
+ if (owner->stringBeingComposed.isNotEmpty())
2459
+ {
2460
+ if (auto* target = owner->findCurrentTextInputTarget())
2461
+ {
2462
+ target->insertTextAtCaret (owner->stringBeingComposed);
2463
+ target->setTemporaryUnderlining ({});
2464
+ }
2465
+
2466
+ owner->stringBeingComposed.clear();
2467
+ }
2468
+ }
2469
+ });
2470
+
2471
+ addMethod (@selector (hasMarkedText), [] (id self, SEL)
2472
+ {
2473
+ auto* owner = getOwner (self);
2474
+ return owner != nullptr && owner->stringBeingComposed.isNotEmpty();
2475
+ });
2476
+
2477
+ addMethod (@selector (attributedSubstringForProposedRange:actualRange:), [] (id self, SEL, NSRange theRange, NSRangePointer actualRange) -> NSAttributedString*
2478
+ {
2479
+ jassert (theRange.location != NSNotFound);
2480
+
2481
+ if (auto* owner = getOwner (self))
2482
+ {
2483
+ if (auto* target = owner->findCurrentTextInputTarget())
2484
+ {
2485
+ const auto clamped = Range<int> { 0, target->getTotalNumChars() }.constrainRange (nsRangeToJuce (theRange));
2486
+
2487
+ if (actualRange != nullptr)
2488
+ *actualRange = juceRangeToNS (clamped);
2489
+
2490
+ return [[[NSAttributedString alloc] initWithString: juceStringToNS (target->getTextInRange (clamped))] autorelease];
2491
+ }
2492
+ }
2493
+
2494
+ return nil;
2495
+ });
2496
+
2497
+ addMethod (@selector (markedRange), [] (id self, SEL)
2498
+ {
2499
+ if (auto* owner = getOwner (self))
2500
+ if (owner->stringBeingComposed.isNotEmpty())
2501
+ return NSMakeRange (static_cast<NSUInteger> (owner->startOfMarkedTextInTextInputTarget),
2502
+ static_cast<NSUInteger> (owner->stringBeingComposed.length()));
2503
+
2504
+ return NSMakeRange (NSNotFound, 0);
2505
+ });
2506
+
2507
+ addMethod (@selector (selectedRange), [] (id self, SEL)
2508
+ {
2509
+ if (auto* owner = getOwner (self))
2510
+ {
2511
+ if (auto* target = owner->findCurrentTextInputTarget())
2512
+ {
2513
+ const auto highlight = target->getHighlightedRegion();
2514
+
2515
+ // The accent-selector popup does not show if the selectedRange location is NSNotFound!
2516
+ return NSMakeRange ((NSUInteger) highlight.getStart(),
2517
+ (NSUInteger) highlight.getLength());
2518
+ }
2519
+ }
2520
+
2521
+ return NSMakeRange (NSNotFound, 0);
2522
+ });
2523
+
2524
+ addMethod (@selector (firstRectForCharacterRange:actualRange:), [] (id self, SEL, NSRange range, NSRangePointer actualRange)
2525
+ {
2526
+ if (auto* owner = getOwner (self))
2527
+ {
2528
+ if (auto* target = owner->findCurrentTextInputTarget())
2529
+ {
2530
+ if (auto* comp = dynamic_cast<Component*> (target))
2531
+ {
2532
+ const auto codePointRange = range.location == NSNotFound ? Range<int>::emptyRange (target->getCaretPosition())
2533
+ : nsRangeToJuce (range);
2534
+ const auto clamped = Range<int> { 0, target->getTotalNumChars() }.constrainRange (codePointRange);
2535
+
2536
+ if (actualRange != nullptr)
2537
+ *actualRange = juceRangeToNS (clamped);
2538
+
2539
+ const auto rect = codePointRange.isEmpty() ? target->getCaretRectangleForCharIndex (codePointRange.getStart())
2540
+ : target->getTextBounds (codePointRange).getRectangle (0);
2541
+ const auto areaOnDesktop = comp->localAreaToGlobal (rect);
2542
+
2543
+ return flippedScreenRect (makeNSRect (detail::ScalingHelpers::scaledScreenPosToUnscaled (areaOnDesktop)));
2544
+ }
2545
+ }
2546
+ }
2547
+
2548
+ return NSZeroRect;
2549
+ });
2550
+
2551
+ addMethod (@selector (characterIndexForPoint:), [] (id, SEL, NSPoint) { return NSNotFound; });
2552
+
2553
+ addMethod (@selector (validAttributesForMarkedText), [] (id, SEL) { return [NSArray array]; });
2554
+
2555
+ addMethod (@selector (acceptsFirstResponder), [] (id self, SEL)
2556
+ {
2557
+ auto* owner = getOwner (self);
2558
+ return owner != nullptr && owner->canBecomeKeyWindow();
2559
+ });
2560
+
2561
+ addMethod (@selector (prepareForDragOperation:), [] (id, SEL, id<NSDraggingInfo>) { return YES; });
2562
+
2563
+ addMethod (@selector (performDragOperation:), [] (id self, SEL, id<NSDraggingInfo> sender)
2564
+ {
2565
+ auto* owner = getOwner (self);
2566
+ return owner != nullptr && owner->sendDragCallback (&NSViewComponentPeer::handleDragDrop, sender);
2567
+ });
2568
+
2569
+ addMethod (@selector (concludeDragOperation:), [] (id, SEL, id<NSDraggingInfo>) {});
2570
+
2571
+ addMethod (@selector (isAccessibilityElement), [] (id, SEL) { return NO; });
2572
+
2573
+ addMethod (@selector (accessibilityChildren), getAccessibilityChildren);
2574
+
2575
+ addMethod (@selector (accessibilityHitTest:), [] (id self, SEL, NSPoint point)
2576
+ {
2577
+ return [getAccessibleChild (self) accessibilityHitTest: point];
2578
+ });
2579
+
2580
+ addMethod (@selector (accessibilityFocusedUIElement), [] (id self, SEL)
2581
+ {
2582
+ return [getAccessibleChild (self) accessibilityFocusedUIElement];
2583
+ });
2584
+
2585
+ // deprecated methods required for backwards compatibility
2586
+ addMethod (@selector (accessibilityIsIgnored), [] (id, SEL) { return YES; });
2587
+
2588
+ addMethod (@selector (accessibilityAttributeValue:), [] (id self, SEL, NSString* attribute) -> id
2589
+ {
2590
+ if ([attribute isEqualToString: NSAccessibilityChildrenAttribute])
2591
+ return getAccessibilityChildren (self, {});
2592
+
2593
+ return sendSuperclassMessage<id> (self, @selector (accessibilityAttributeValue:), attribute);
2594
+ });
2595
+
2596
+ addMethod (@selector (isFlipped), [] (id, SEL) { return true; });
2597
+
2598
+ addProtocol (@protocol (NSTextInputClient));
2599
+
2600
+ registerClass();
2601
+ }
2602
+
2603
+ private:
2604
+ template <typename Func, typename... Args>
2605
+ static void callOnOwner (id self, Func&& func, Args&&... args)
2606
+ {
2607
+ if (auto* owner = getOwner (self))
2608
+ (owner->*func) (std::forward<Args> (args)...);
2609
+ }
2610
+
2611
+ static void mouseDragged (id self, SEL, NSEvent* ev) { callOnOwner (self, &NSViewComponentPeer::redirectMouseDrag, ev); }
2612
+ static void asyncMouseDown (id self, SEL, NSEvent* ev) { callOnOwner (self, &NSViewComponentPeer::redirectMouseDown, ev); }
2613
+ static void asyncMouseUp (id self, SEL, NSEvent* ev) { callOnOwner (self, &NSViewComponentPeer::redirectMouseUp, ev); }
2614
+ static void draggingExited (id self, SEL, id<NSDraggingInfo> sender) { callOnOwner (self, &NSViewComponentPeer::sendDragCallback, &NSViewComponentPeer::handleDragExit, sender); }
2615
+
2616
+ static void mouseDown (id self, SEL s, NSEvent* ev)
2617
+ {
2618
+ if (JUCEApplicationBase::isStandaloneApp())
2619
+ {
2620
+ asyncMouseDown (self, s, ev);
2621
+ }
2622
+ else
2623
+ {
2624
+ // In some host situations, the host will stop modal loops from working
2625
+ // correctly if they're called from a mouse event, so we'll trigger
2626
+ // the event asynchronously..
2627
+ [self performSelectorOnMainThread: NSViewComponentPeer::asyncMouseDownSelector
2628
+ withObject: ev
2629
+ waitUntilDone: NO];
2630
+ }
2631
+ }
2632
+
2633
+ static void mouseUp (id self, SEL s, NSEvent* ev)
2634
+ {
2635
+ if (JUCEApplicationBase::isStandaloneApp())
2636
+ {
2637
+ asyncMouseUp (self, s, ev);
2638
+ }
2639
+ else
2640
+ {
2641
+ // In some host situations, the host will stop modal loops from working
2642
+ // correctly if they're called from a mouse event, so we'll trigger
2643
+ // the event asynchronously..
2644
+ [self performSelectorOnMainThread: NSViewComponentPeer::asyncMouseUpSelector
2645
+ withObject: ev
2646
+ waitUntilDone: NO];
2647
+ }
2648
+ }
2649
+
2650
+ static NSDragOperation draggingUpdated (id self, SEL, id<NSDraggingInfo> sender)
2651
+ {
2652
+ if (auto* owner = getOwner (self))
2653
+ if (owner->sendDragCallback (&NSViewComponentPeer::handleDragMove, sender))
2654
+ return NSDragOperationGeneric;
2655
+
2656
+ return NSDragOperationNone;
2657
+ }
2658
+
2659
+ static NSArray* getAccessibilityChildren (id self, SEL)
2660
+ {
2661
+ return NSAccessibilityUnignoredChildrenForOnlyChild (getAccessibleChild (self));
2662
+ }
2663
+ };
2664
+
2665
+ //==============================================================================
2666
+ struct JuceNSWindowClass final : public NSViewComponentPeerWrapper<ObjCClass<NSWindow>>
2667
+ {
2668
+ JuceNSWindowClass() : NSViewComponentPeerWrapper ("JUCEWindow_")
2669
+ {
2670
+ addMethod (@selector (canBecomeKeyWindow), [] (id self, SEL)
2671
+ {
2672
+ auto* owner = getOwner (self);
2673
+
2674
+ return owner != nullptr
2675
+ && owner->canBecomeKeyWindow()
2676
+ && ! owner->isBlockedByModalComponent();
2677
+ });
2678
+
2679
+ addMethod (@selector (canBecomeMainWindow), [] (id self, SEL)
2680
+ {
2681
+ auto* owner = getOwner (self);
2682
+
2683
+ return owner != nullptr
2684
+ && owner->canBecomeMainWindow()
2685
+ && ! owner->isBlockedByModalComponent();
2686
+ });
2687
+
2688
+ addMethod (@selector (becomeKeyWindow), [] (id self, SEL)
2689
+ {
2690
+ sendSuperclassMessage<void> (self, @selector (becomeKeyWindow));
2691
+
2692
+ if (auto* owner = getOwner (self))
2693
+ {
2694
+ jassert (! owner->inBecomeKeyWindow);
2695
+
2696
+ const ScopedValueSetter scope { owner->inBecomeKeyWindow, true };
2697
+
2698
+ if (owner->canBecomeKeyWindow())
2699
+ {
2700
+ owner->becomeKeyWindow();
2701
+ return;
2702
+ }
2703
+
2704
+ // this fixes a bug causing hidden windows to sometimes become visible when the app regains focus
2705
+ if (! owner->getComponent().isVisible())
2706
+ [(NSWindow*) self orderOut: nil];
2707
+ }
2708
+ });
2709
+
2710
+ addMethod (@selector (resignKeyWindow), [] (id self, SEL)
2711
+ {
2712
+ sendSuperclassMessage<void> (self, @selector (resignKeyWindow));
2713
+
2714
+ if (auto* owner = getOwner (self))
2715
+ owner->resignKeyWindow();
2716
+ });
2717
+
2718
+ addMethod (@selector (windowShouldClose:), [] (id self, SEL, id /*window*/)
2719
+ {
2720
+ auto* owner = getOwner (self);
2721
+ return owner == nullptr || owner->windowShouldClose();
2722
+ });
2723
+
2724
+ addMethod (@selector (constrainFrameRect:toScreen:), [] (id self, SEL, NSRect frameRect, NSScreen* screen)
2725
+ {
2726
+ if (auto* owner = getOwner (self))
2727
+ {
2728
+ frameRect = sendSuperclassMessage<NSRect, NSRect, NSScreen*> (self, @selector (constrainFrameRect:toScreen:),
2729
+ frameRect, screen);
2730
+
2731
+ frameRect = owner->constrainRect (frameRect);
2732
+ }
2733
+
2734
+ return frameRect;
2735
+ });
2736
+
2737
+ addMethod (@selector (windowWillResize:toSize:), [] (id self, SEL, NSWindow*, NSSize proposedFrameSize)
2738
+ {
2739
+ auto* owner = getOwner (self);
2740
+
2741
+ if (owner == nullptr)
2742
+ return proposedFrameSize;
2743
+
2744
+ NSRect frameRect = flippedScreenRect ([(NSWindow*) self frame]);
2745
+ frameRect.size = proposedFrameSize;
2746
+
2747
+ frameRect = owner->constrainRect (flippedScreenRect (frameRect));
2748
+
2749
+ owner->dismissModals();
2750
+
2751
+ return frameRect.size;
2752
+ });
2753
+
2754
+ addMethod (@selector (windowDidExitFullScreen:), [] (id self, SEL, NSNotification*)
2755
+ {
2756
+ if (auto* owner = getOwner (self))
2757
+ owner->resetWindowPresentation();
2758
+ });
2759
+
2760
+ addMethod (@selector (windowWillEnterFullScreen:), [] (id self, SEL, NSNotification*)
2761
+ {
2762
+ if (auto* owner = getOwner (self))
2763
+ if (owner->hasNativeTitleBar() && (owner->getStyleFlags() & ComponentPeer::windowIsResizable) == 0)
2764
+ [owner->window setStyleMask: NSWindowStyleMaskBorderless];
2765
+ });
2766
+
2767
+ addMethod (@selector (windowWillExitFullScreen:), [] (id self, SEL, NSNotification*)
2768
+ {
2769
+ // The exit-fullscreen animation looks bad on Monterey if the window isn't resizable...
2770
+ if (auto* owner = getOwner (self))
2771
+ if (auto* window = owner->window)
2772
+ [window setStyleMask: [window styleMask] | NSWindowStyleMaskResizable];
2773
+ });
2774
+
2775
+ addMethod (@selector (windowWillStartLiveResize:), [] (id self, SEL, NSNotification*)
2776
+ {
2777
+ if (auto* owner = getOwner (self))
2778
+ owner->liveResizingStart();
2779
+ });
2780
+
2781
+ addMethod (@selector (windowDidEndLiveResize:), [] (id self, SEL, NSNotification*)
2782
+ {
2783
+ if (auto* owner = getOwner (self))
2784
+ owner->liveResizingEnd();
2785
+ });
2786
+
2787
+ addMethod (@selector (window:shouldPopUpDocumentPathMenu:), [] (id self, SEL, id /*window*/, NSMenu*)
2788
+ {
2789
+ if (auto* owner = getOwner (self))
2790
+ return owner->windowRepresentsFile;
2791
+
2792
+ return false;
2793
+ });
2794
+
2795
+ addMethod (@selector (isFlipped), [] (id, SEL) { return true; });
2796
+
2797
+ addMethod (@selector (windowWillUseStandardFrame:defaultFrame:), [] (id self, SEL, NSWindow* window, NSRect r)
2798
+ {
2799
+ if (auto* owner = getOwner (self))
2800
+ {
2801
+ if (auto* constrainer = owner->getConstrainer())
2802
+ {
2803
+ if (auto* screen = [window screen])
2804
+ {
2805
+ const auto safeScreenBounds = convertToRectFloat (flippedScreenRect (owner->hasNativeTitleBar() ? r : [screen visibleFrame]));
2806
+ const auto originalBounds = owner->getFrameSize().addedTo (owner->getComponent().getScreenBounds()).toFloat();
2807
+ const auto expanded = originalBounds.withWidth ((float) constrainer->getMaximumWidth())
2808
+ .withHeight ((float) constrainer->getMaximumHeight());
2809
+ const auto constrained = expanded.constrainedWithin (safeScreenBounds);
2810
+
2811
+ return flippedScreenRect (makeNSRect ([&]
2812
+ {
2813
+ if (constrained == owner->getBounds().toFloat())
2814
+ return owner->lastSizeBeforeZoom.toFloat();
2815
+
2816
+ owner->lastSizeBeforeZoom = owner->getBounds().toFloat();
2817
+ return constrained;
2818
+ }()));
2819
+ }
2820
+ }
2821
+ }
2822
+
2823
+ return r;
2824
+ });
2825
+
2826
+ addMethod (@selector (windowShouldZoom:toFrame:), [] (id self, SEL, NSWindow*, NSRect)
2827
+ {
2828
+ if (auto* owner = getOwner (self))
2829
+ if (owner->hasNativeTitleBar() && (owner->getStyleFlags() & ComponentPeer::windowIsResizable) == 0)
2830
+ return NO;
2831
+
2832
+ return YES;
2833
+ });
2834
+
2835
+ addMethod (@selector (accessibilityTitle), [] (id self, SEL) { return [self title]; });
2836
+
2837
+ addMethod (@selector (accessibilityLabel), [] (id self, SEL) { return [getAccessibleChild (self) accessibilityLabel]; });
2838
+
2839
+ addMethod (@selector (accessibilityRole), [] (id, SEL) { return NSAccessibilityWindowRole; });
2840
+
2841
+ addMethod (@selector (accessibilitySubrole), [] (id self, SEL) -> NSAccessibilitySubrole
2842
+ {
2843
+ return [getAccessibleChild (self) accessibilitySubrole];
2844
+ });
2845
+
2846
+ addMethod (@selector (window:shouldDragDocumentWithEvent:from:withPasteboard:), [] (id self, SEL, id /*window*/, NSEvent*, NSPoint, NSPasteboard*)
2847
+ {
2848
+ if (auto* owner = getOwner (self))
2849
+ return owner->windowRepresentsFile;
2850
+
2851
+ return false;
2852
+ });
2853
+
2854
+ addMethod (@selector (toggleFullScreen:), [] (id self, SEL name, id sender)
2855
+ {
2856
+ if (auto* owner = getOwner (self))
2857
+ {
2858
+ const auto isFullScreen = owner->isFullScreen();
2859
+
2860
+ if (! isFullScreen)
2861
+ owner->lastSizeBeforeZoom = owner->getBounds().toFloat();
2862
+
2863
+ sendSuperclassMessage<void> (self, name, sender);
2864
+
2865
+ if (isFullScreen)
2866
+ {
2867
+ [NSApp setPresentationOptions: NSApplicationPresentationDefault];
2868
+ owner->setBounds (owner->lastSizeBeforeZoom.toNearestInt(), false);
2869
+ }
2870
+ }
2871
+ });
2872
+
2873
+ addMethod (@selector (accessibilityTopLevelUIElement), getAccessibilityWindow);
2874
+ addMethod (@selector (accessibilityWindow), getAccessibilityWindow);
2875
+
2876
+ addProtocol (@protocol (NSWindowDelegate));
2877
+
2878
+ registerClass();
2879
+ }
2880
+
2881
+ private:
2882
+ //==============================================================================
2883
+ static id getAccessibilityWindow (id self, SEL) { return self; }
2884
+ };
2885
+
2886
+ NSView* NSViewComponentPeer::createViewInstance()
2887
+ {
2888
+ static JuceNSViewClass cls;
2889
+ return cls.createInstance();
2890
+ }
2891
+
2892
+ NSWindow* NSViewComponentPeer::createWindowInstance()
2893
+ {
2894
+ static JuceNSWindowClass cls;
2895
+ return cls.createInstance();
2896
+ }
2897
+
2898
+
2899
+ //==============================================================================
2900
+ bool KeyPress::isKeyCurrentlyDown (int keyCode)
2901
+ {
2902
+ const auto isDown = [] (int k)
2903
+ {
2904
+ return NSViewComponentPeer::keysCurrentlyDown.find (k) != NSViewComponentPeer::keysCurrentlyDown.cend();
2905
+ };
2906
+
2907
+ if (isDown (keyCode))
2908
+ return true;
2909
+
2910
+ if (keyCode >= 'A' && keyCode <= 'Z'
2911
+ && isDown ((int) CharacterFunctions::toLowerCase ((juce_wchar) keyCode)))
2912
+ return true;
2913
+
2914
+ if (keyCode >= 'a' && keyCode <= 'z'
2915
+ && isDown ((int) CharacterFunctions::toUpperCase ((juce_wchar) keyCode)))
2916
+ return true;
2917
+
2918
+ return false;
2919
+ }
2920
+
2921
+ //==============================================================================
2922
+ bool detail::MouseInputSourceList::addSource()
2923
+ {
2924
+ if (sources.size() == 0)
2925
+ {
2926
+ addSource (0, MouseInputSource::InputSourceType::mouse);
2927
+ return true;
2928
+ }
2929
+
2930
+ return false;
2931
+ }
2932
+
2933
+ bool detail::MouseInputSourceList::canUseTouch() const
2934
+ {
2935
+ return false;
2936
+ }
2937
+
2938
+ //==============================================================================
2939
+ void Desktop::setKioskComponent (Component* kioskComp, bool shouldBeEnabled, bool allowMenusAndBars)
2940
+ {
2941
+ auto* peer = dynamic_cast<NSViewComponentPeer*> (kioskComp->getPeer());
2942
+ jassert (peer != nullptr); // (this should have been checked by the caller)
2943
+
2944
+ if (peer->hasNativeTitleBar())
2945
+ {
2946
+ if (shouldBeEnabled && ! allowMenusAndBars)
2947
+ [NSApp setPresentationOptions: NSApplicationPresentationHideDock | NSApplicationPresentationHideMenuBar];
2948
+ else if (! shouldBeEnabled)
2949
+ [NSApp setPresentationOptions: NSApplicationPresentationDefault];
2950
+
2951
+ peer->setFullScreen (true);
2952
+ }
2953
+ else
2954
+ {
2955
+ if (shouldBeEnabled)
2956
+ {
2957
+ [NSApp setPresentationOptions: (allowMenusAndBars ? (NSApplicationPresentationAutoHideDock | NSApplicationPresentationAutoHideMenuBar)
2958
+ : (NSApplicationPresentationHideDock | NSApplicationPresentationHideMenuBar))];
2959
+
2960
+ kioskComp->setBounds (getDisplays().getDisplayForRect (kioskComp->getScreenBounds())->totalArea);
2961
+ peer->becomeKeyWindow();
2962
+ }
2963
+ else
2964
+ {
2965
+ peer->resetWindowPresentation();
2966
+ }
2967
+ }
2968
+ }
2969
+
2970
+ void Desktop::allowedOrientationsChanged() {}
2971
+
2972
+ //==============================================================================
2973
+ ComponentPeer* Component::createNewPeer (int styleFlags, void* windowToAttachTo)
2974
+ {
2975
+ return new NSViewComponentPeer (*this, styleFlags, (NSView*) windowToAttachTo);
2976
+ }
2977
+
2978
+ //==============================================================================
2979
+ const int KeyPress::spaceKey = ' ';
2980
+ const int KeyPress::returnKey = 0x0d;
2981
+ const int KeyPress::escapeKey = 0x1b;
2982
+ const int KeyPress::backspaceKey = 0x7f;
2983
+ const int KeyPress::leftKey = NSLeftArrowFunctionKey;
2984
+ const int KeyPress::rightKey = NSRightArrowFunctionKey;
2985
+ const int KeyPress::upKey = NSUpArrowFunctionKey;
2986
+ const int KeyPress::downKey = NSDownArrowFunctionKey;
2987
+ const int KeyPress::pageUpKey = NSPageUpFunctionKey;
2988
+ const int KeyPress::pageDownKey = NSPageDownFunctionKey;
2989
+ const int KeyPress::endKey = NSEndFunctionKey;
2990
+ const int KeyPress::homeKey = NSHomeFunctionKey;
2991
+ const int KeyPress::deleteKey = NSDeleteFunctionKey;
2992
+ const int KeyPress::insertKey = -1;
2993
+ const int KeyPress::tabKey = 9;
2994
+ const int KeyPress::F1Key = NSF1FunctionKey;
2995
+ const int KeyPress::F2Key = NSF2FunctionKey;
2996
+ const int KeyPress::F3Key = NSF3FunctionKey;
2997
+ const int KeyPress::F4Key = NSF4FunctionKey;
2998
+ const int KeyPress::F5Key = NSF5FunctionKey;
2999
+ const int KeyPress::F6Key = NSF6FunctionKey;
3000
+ const int KeyPress::F7Key = NSF7FunctionKey;
3001
+ const int KeyPress::F8Key = NSF8FunctionKey;
3002
+ const int KeyPress::F9Key = NSF9FunctionKey;
3003
+ const int KeyPress::F10Key = NSF10FunctionKey;
3004
+ const int KeyPress::F11Key = NSF11FunctionKey;
3005
+ const int KeyPress::F12Key = NSF12FunctionKey;
3006
+ const int KeyPress::F13Key = NSF13FunctionKey;
3007
+ const int KeyPress::F14Key = NSF14FunctionKey;
3008
+ const int KeyPress::F15Key = NSF15FunctionKey;
3009
+ const int KeyPress::F16Key = NSF16FunctionKey;
3010
+ const int KeyPress::F17Key = NSF17FunctionKey;
3011
+ const int KeyPress::F18Key = NSF18FunctionKey;
3012
+ const int KeyPress::F19Key = NSF19FunctionKey;
3013
+ const int KeyPress::F20Key = NSF20FunctionKey;
3014
+ const int KeyPress::F21Key = NSF21FunctionKey;
3015
+ const int KeyPress::F22Key = NSF22FunctionKey;
3016
+ const int KeyPress::F23Key = NSF23FunctionKey;
3017
+ const int KeyPress::F24Key = NSF24FunctionKey;
3018
+ const int KeyPress::F25Key = NSF25FunctionKey;
3019
+ const int KeyPress::F26Key = NSF26FunctionKey;
3020
+ const int KeyPress::F27Key = NSF27FunctionKey;
3021
+ const int KeyPress::F28Key = NSF28FunctionKey;
3022
+ const int KeyPress::F29Key = NSF29FunctionKey;
3023
+ const int KeyPress::F30Key = NSF30FunctionKey;
3024
+ const int KeyPress::F31Key = NSF31FunctionKey;
3025
+ const int KeyPress::F32Key = NSF32FunctionKey;
3026
+ const int KeyPress::F33Key = NSF33FunctionKey;
3027
+ const int KeyPress::F34Key = NSF34FunctionKey;
3028
+ const int KeyPress::F35Key = NSF35FunctionKey;
3029
+
3030
+ const int KeyPress::numberPad0 = extendedKeyModifier + 0x20;
3031
+ const int KeyPress::numberPad1 = extendedKeyModifier + 0x21;
3032
+ const int KeyPress::numberPad2 = extendedKeyModifier + 0x22;
3033
+ const int KeyPress::numberPad3 = extendedKeyModifier + 0x23;
3034
+ const int KeyPress::numberPad4 = extendedKeyModifier + 0x24;
3035
+ const int KeyPress::numberPad5 = extendedKeyModifier + 0x25;
3036
+ const int KeyPress::numberPad6 = extendedKeyModifier + 0x26;
3037
+ const int KeyPress::numberPad7 = extendedKeyModifier + 0x27;
3038
+ const int KeyPress::numberPad8 = extendedKeyModifier + 0x28;
3039
+ const int KeyPress::numberPad9 = extendedKeyModifier + 0x29;
3040
+ const int KeyPress::numberPadAdd = extendedKeyModifier + 0x2a;
3041
+ const int KeyPress::numberPadSubtract = extendedKeyModifier + 0x2b;
3042
+ const int KeyPress::numberPadMultiply = extendedKeyModifier + 0x2c;
3043
+ const int KeyPress::numberPadDivide = extendedKeyModifier + 0x2d;
3044
+ const int KeyPress::numberPadSeparator = extendedKeyModifier + 0x2e;
3045
+ const int KeyPress::numberPadDecimalPoint = extendedKeyModifier + 0x2f;
3046
+ const int KeyPress::numberPadEquals = extendedKeyModifier + 0x30;
3047
+ const int KeyPress::numberPadDelete = extendedKeyModifier + 0x31;
3048
+ const int KeyPress::playKey = extendedKeyModifier + 0x00;
3049
+ const int KeyPress::stopKey = extendedKeyModifier + 0x01;
3050
+ const int KeyPress::fastForwardKey = extendedKeyModifier + 0x02;
3051
+ const int KeyPress::rewindKey = extendedKeyModifier + 0x03;
3052
+
3053
+ } // namespace juce