expo-juce 0.3.0 → 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 +63 -85
  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,2786 @@
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
+ namespace juce
36
+ {
37
+
38
+ // a word or space that can't be broken down any further
39
+ struct TextAtom
40
+ {
41
+ //==============================================================================
42
+ String atomText;
43
+ float width;
44
+ int numChars;
45
+
46
+ //==============================================================================
47
+ bool isWhitespace() const noexcept { return CharacterFunctions::isWhitespace (atomText[0]); }
48
+ bool isNewLine() const noexcept { return atomText[0] == '\r' || atomText[0] == '\n'; }
49
+
50
+ String getText (juce_wchar passwordCharacter) const
51
+ {
52
+ if (passwordCharacter == 0)
53
+ return atomText;
54
+
55
+ return String::repeatedString (String::charToString (passwordCharacter),
56
+ atomText.length());
57
+ }
58
+
59
+ String getTrimmedText (const juce_wchar passwordCharacter) const
60
+ {
61
+ if (passwordCharacter == 0)
62
+ return atomText.substring (0, numChars);
63
+
64
+ if (isNewLine())
65
+ return {};
66
+
67
+ return String::repeatedString (String::charToString (passwordCharacter), numChars);
68
+ }
69
+
70
+ JUCE_LEAK_DETECTOR (TextAtom)
71
+ };
72
+
73
+ //==============================================================================
74
+ // a run of text with a single font and colour
75
+ class TextEditor::UniformTextSection
76
+ {
77
+ public:
78
+ UniformTextSection (const String& text, const Font& f, Colour col, juce_wchar passwordCharToUse)
79
+ : font (f), colour (col), passwordChar (passwordCharToUse)
80
+ {
81
+ initialiseAtoms (text);
82
+ }
83
+
84
+ UniformTextSection (const UniformTextSection&) = default;
85
+ UniformTextSection (UniformTextSection&&) = default;
86
+
87
+ UniformTextSection& operator= (const UniformTextSection&) = delete;
88
+
89
+ void append (UniformTextSection& other)
90
+ {
91
+ if (! other.atoms.isEmpty())
92
+ {
93
+ int i = 0;
94
+
95
+ if (! atoms.isEmpty())
96
+ {
97
+ auto& lastAtom = atoms.getReference (atoms.size() - 1);
98
+
99
+ if (! CharacterFunctions::isWhitespace (lastAtom.atomText.getLastCharacter()))
100
+ {
101
+ auto& first = other.atoms.getReference (0);
102
+
103
+ if (! CharacterFunctions::isWhitespace (first.atomText[0]))
104
+ {
105
+ lastAtom.atomText += first.atomText;
106
+ lastAtom.numChars = (uint16) (lastAtom.numChars + first.numChars);
107
+ lastAtom.width = font.getStringWidthFloat (lastAtom.getText (passwordChar));
108
+ ++i;
109
+ }
110
+ }
111
+ }
112
+
113
+ atoms.ensureStorageAllocated (atoms.size() + other.atoms.size() - i);
114
+
115
+ while (i < other.atoms.size())
116
+ {
117
+ atoms.add (other.atoms.getReference (i));
118
+ ++i;
119
+ }
120
+ }
121
+ }
122
+
123
+ UniformTextSection* split (int indexToBreakAt)
124
+ {
125
+ auto* section2 = new UniformTextSection ({}, font, colour, passwordChar);
126
+ int index = 0;
127
+
128
+ for (int i = 0; i < atoms.size(); ++i)
129
+ {
130
+ auto& atom = atoms.getReference (i);
131
+ auto nextIndex = index + atom.numChars;
132
+
133
+ if (index == indexToBreakAt)
134
+ {
135
+ for (int j = i; j < atoms.size(); ++j)
136
+ section2->atoms.add (atoms.getUnchecked (j));
137
+
138
+ atoms.removeRange (i, atoms.size());
139
+ break;
140
+ }
141
+
142
+ if (indexToBreakAt >= index && indexToBreakAt < nextIndex)
143
+ {
144
+ TextAtom secondAtom;
145
+ secondAtom.atomText = atom.atomText.substring (indexToBreakAt - index);
146
+ secondAtom.width = font.getStringWidthFloat (secondAtom.getText (passwordChar));
147
+ secondAtom.numChars = (uint16) secondAtom.atomText.length();
148
+
149
+ section2->atoms.add (secondAtom);
150
+
151
+ atom.atomText = atom.atomText.substring (0, indexToBreakAt - index);
152
+ atom.width = font.getStringWidthFloat (atom.getText (passwordChar));
153
+ atom.numChars = (uint16) (indexToBreakAt - index);
154
+
155
+ for (int j = i + 1; j < atoms.size(); ++j)
156
+ section2->atoms.add (atoms.getUnchecked (j));
157
+
158
+ atoms.removeRange (i + 1, atoms.size());
159
+ break;
160
+ }
161
+
162
+ index = nextIndex;
163
+ }
164
+
165
+ return section2;
166
+ }
167
+
168
+ void appendAllText (MemoryOutputStream& mo) const
169
+ {
170
+ for (auto& atom : atoms)
171
+ mo << atom.atomText;
172
+ }
173
+
174
+ void appendSubstring (MemoryOutputStream& mo, Range<int> range) const
175
+ {
176
+ int index = 0;
177
+
178
+ for (auto& atom : atoms)
179
+ {
180
+ auto nextIndex = index + atom.numChars;
181
+
182
+ if (range.getStart() < nextIndex)
183
+ {
184
+ if (range.getEnd() <= index)
185
+ break;
186
+
187
+ auto r = (range - index).getIntersectionWith ({ 0, (int) atom.numChars });
188
+
189
+ if (! r.isEmpty())
190
+ mo << atom.atomText.substring (r.getStart(), r.getEnd());
191
+ }
192
+
193
+ index = nextIndex;
194
+ }
195
+ }
196
+
197
+ int getTotalLength() const noexcept
198
+ {
199
+ int total = 0;
200
+
201
+ for (auto& atom : atoms)
202
+ total += atom.numChars;
203
+
204
+ return total;
205
+ }
206
+
207
+ void setFont (const Font& newFont, const juce_wchar passwordCharToUse)
208
+ {
209
+ if (font != newFont || passwordChar != passwordCharToUse)
210
+ {
211
+ font = newFont;
212
+ passwordChar = passwordCharToUse;
213
+
214
+ for (auto& atom : atoms)
215
+ atom.width = newFont.getStringWidthFloat (atom.getText (passwordChar));
216
+ }
217
+ }
218
+
219
+ //==============================================================================
220
+ Font font;
221
+ Colour colour;
222
+ Array<TextAtom> atoms;
223
+ juce_wchar passwordChar;
224
+
225
+ private:
226
+ void initialiseAtoms (const String& textToParse)
227
+ {
228
+ auto text = textToParse.getCharPointer();
229
+
230
+ while (! text.isEmpty())
231
+ {
232
+ size_t numChars = 0;
233
+ auto start = text;
234
+
235
+ // create a whitespace atom unless it starts with non-ws
236
+ if (text.isWhitespace() && *text != '\r' && *text != '\n')
237
+ {
238
+ do
239
+ {
240
+ ++text;
241
+ ++numChars;
242
+ }
243
+ while (text.isWhitespace() && *text != '\r' && *text != '\n');
244
+ }
245
+ else
246
+ {
247
+ if (*text == '\r')
248
+ {
249
+ ++text;
250
+ ++numChars;
251
+
252
+ if (*text == '\n')
253
+ {
254
+ ++start;
255
+ ++text;
256
+ }
257
+ }
258
+ else if (*text == '\n')
259
+ {
260
+ ++text;
261
+ ++numChars;
262
+ }
263
+ else
264
+ {
265
+ while (! (text.isEmpty() || text.isWhitespace()))
266
+ {
267
+ ++text;
268
+ ++numChars;
269
+ }
270
+ }
271
+ }
272
+
273
+ TextAtom atom;
274
+ atom.atomText = String (start, numChars);
275
+ atom.width = (atom.isNewLine() ? 0.0f : font.getStringWidthFloat (atom.getText (passwordChar)));
276
+ atom.numChars = (uint16) numChars;
277
+ atoms.add (atom);
278
+ }
279
+ }
280
+
281
+ JUCE_LEAK_DETECTOR (UniformTextSection)
282
+ };
283
+
284
+ //==============================================================================
285
+ struct TextEditor::Iterator
286
+ {
287
+ Iterator (const TextEditor& ed)
288
+ : sections (ed.sections),
289
+ justification (ed.justification),
290
+ bottomRight ((float) ed.getMaximumTextWidth(), (float) ed.getMaximumTextHeight()),
291
+ wordWrapWidth ((float) ed.getWordWrapWidth()),
292
+ passwordCharacter (ed.passwordCharacter),
293
+ lineSpacing (ed.lineSpacing),
294
+ underlineWhitespace (ed.underlineWhitespace)
295
+ {
296
+ jassert (wordWrapWidth > 0);
297
+
298
+ if (! sections.isEmpty())
299
+ {
300
+ currentSection = sections.getUnchecked (sectionIndex);
301
+
302
+ if (currentSection != nullptr)
303
+ beginNewLine();
304
+ }
305
+
306
+ lineHeight = ed.currentFont.getHeight();
307
+ }
308
+
309
+ Iterator (const Iterator&) = default;
310
+ Iterator& operator= (const Iterator&) = delete;
311
+
312
+ //==============================================================================
313
+ bool next()
314
+ {
315
+ if (atom == &longAtom && chunkLongAtom (true))
316
+ return true;
317
+
318
+ if (sectionIndex >= sections.size())
319
+ {
320
+ moveToEndOfLastAtom();
321
+ return false;
322
+ }
323
+
324
+ bool forceNewLine = false;
325
+
326
+ if (atomIndex >= currentSection->atoms.size() - 1)
327
+ {
328
+ if (atomIndex >= currentSection->atoms.size())
329
+ {
330
+ if (++sectionIndex >= sections.size())
331
+ {
332
+ moveToEndOfLastAtom();
333
+ return false;
334
+ }
335
+
336
+ atomIndex = 0;
337
+ currentSection = sections.getUnchecked (sectionIndex);
338
+ }
339
+ else
340
+ {
341
+ auto& lastAtom = currentSection->atoms.getReference (atomIndex);
342
+
343
+ if (! lastAtom.isWhitespace())
344
+ {
345
+ // handle the case where the last atom in a section is actually part of the same
346
+ // word as the first atom of the next section...
347
+ float right = atomRight + lastAtom.width;
348
+ float lineHeight2 = lineHeight;
349
+ float maxDescent2 = maxDescent;
350
+
351
+ for (int section = sectionIndex + 1; section < sections.size(); ++section)
352
+ {
353
+ auto* s = sections.getUnchecked (section);
354
+
355
+ if (s->atoms.size() == 0)
356
+ break;
357
+
358
+ auto& nextAtom = s->atoms.getReference (0);
359
+
360
+ if (nextAtom.isWhitespace())
361
+ break;
362
+
363
+ right += nextAtom.width;
364
+
365
+ lineHeight2 = jmax (lineHeight2, s->font.getHeight());
366
+ maxDescent2 = jmax (maxDescent2, s->font.getDescent());
367
+
368
+ if (shouldWrap (right))
369
+ {
370
+ lineHeight = lineHeight2;
371
+ maxDescent = maxDescent2;
372
+
373
+ forceNewLine = true;
374
+ break;
375
+ }
376
+
377
+ if (s->atoms.size() > 1)
378
+ break;
379
+ }
380
+ }
381
+ }
382
+ }
383
+
384
+ bool isInPreviousAtom = false;
385
+
386
+ if (atom != nullptr)
387
+ {
388
+ atomX = atomRight;
389
+ indexInText += atom->numChars;
390
+
391
+ if (atom->isNewLine())
392
+ beginNewLine();
393
+ else
394
+ isInPreviousAtom = true;
395
+ }
396
+
397
+ atom = &(currentSection->atoms.getReference (atomIndex));
398
+ atomRight = atomX + atom->width;
399
+ ++atomIndex;
400
+
401
+ if (shouldWrap (atomRight) || forceNewLine)
402
+ {
403
+ if (atom->isWhitespace())
404
+ {
405
+ // leave whitespace at the end of a line, but truncate it to avoid scrolling
406
+ atomRight = jmin (atomRight, wordWrapWidth);
407
+ }
408
+ else if (shouldWrap (atom->width)) // atom too big to fit on a line, so break it up..
409
+ {
410
+ longAtom = *atom;
411
+ longAtom.numChars = 0;
412
+ atom = &longAtom;
413
+ chunkLongAtom (isInPreviousAtom);
414
+ }
415
+ else
416
+ {
417
+ beginNewLine();
418
+ atomRight = atomX + atom->width;
419
+ }
420
+ }
421
+
422
+ return true;
423
+ }
424
+
425
+ void beginNewLine()
426
+ {
427
+ lineY += lineHeight * lineSpacing;
428
+ float lineWidth = 0;
429
+
430
+ auto tempSectionIndex = sectionIndex;
431
+ auto tempAtomIndex = atomIndex;
432
+ auto* section = sections.getUnchecked (tempSectionIndex);
433
+
434
+ lineHeight = section->font.getHeight();
435
+ maxDescent = section->font.getDescent();
436
+
437
+ float nextLineWidth = (atom != nullptr) ? atom->width : 0.0f;
438
+
439
+ while (! shouldWrap (nextLineWidth))
440
+ {
441
+ lineWidth = nextLineWidth;
442
+
443
+ if (tempSectionIndex >= sections.size())
444
+ break;
445
+
446
+ bool checkSize = false;
447
+
448
+ if (tempAtomIndex >= section->atoms.size())
449
+ {
450
+ if (++tempSectionIndex >= sections.size())
451
+ break;
452
+
453
+ tempAtomIndex = 0;
454
+ section = sections.getUnchecked (tempSectionIndex);
455
+ checkSize = true;
456
+ }
457
+
458
+ if (! isPositiveAndBelow (tempAtomIndex, section->atoms.size()))
459
+ break;
460
+
461
+ auto& nextAtom = section->atoms.getReference (tempAtomIndex);
462
+ nextLineWidth += nextAtom.width;
463
+
464
+ if (shouldWrap (nextLineWidth) || nextAtom.isNewLine())
465
+ break;
466
+
467
+ if (checkSize)
468
+ {
469
+ lineHeight = jmax (lineHeight, section->font.getHeight());
470
+ maxDescent = jmax (maxDescent, section->font.getDescent());
471
+ }
472
+
473
+ ++tempAtomIndex;
474
+ }
475
+
476
+ atomX = getJustificationOffsetX (lineWidth);
477
+ }
478
+
479
+ float getJustificationOffsetX (float lineWidth) const
480
+ {
481
+ if (justification.testFlags (Justification::horizontallyCentred)) return jmax (0.0f, (bottomRight.x - lineWidth) * 0.5f);
482
+ if (justification.testFlags (Justification::right)) return jmax (0.0f, bottomRight.x - lineWidth);
483
+
484
+ return 0;
485
+ }
486
+
487
+ //==============================================================================
488
+ void draw (Graphics& g, const UniformTextSection*& lastSection, AffineTransform transform) const
489
+ {
490
+ if (atom == nullptr)
491
+ return;
492
+
493
+ if (passwordCharacter != 0 || (underlineWhitespace || ! atom->isWhitespace()))
494
+ {
495
+ if (lastSection != currentSection)
496
+ {
497
+ lastSection = currentSection;
498
+ g.setColour (currentSection->colour);
499
+ g.setFont (currentSection->font);
500
+ }
501
+
502
+ jassert (atom->getTrimmedText (passwordCharacter).isNotEmpty());
503
+
504
+ GlyphArrangement ga;
505
+ ga.addLineOfText (currentSection->font,
506
+ atom->getTrimmedText (passwordCharacter),
507
+ atomX, (float) roundToInt (lineY + lineHeight - maxDescent));
508
+ ga.draw (g, transform);
509
+ }
510
+ }
511
+
512
+ void drawUnderline (Graphics& g, Range<int> underline, Colour colour, AffineTransform transform) const
513
+ {
514
+ auto startX = roundToInt (indexToX (underline.getStart()));
515
+ auto endX = roundToInt (indexToX (underline.getEnd()));
516
+ auto baselineY = roundToInt (lineY + currentSection->font.getAscent() + 0.5f);
517
+
518
+ Graphics::ScopedSaveState state (g);
519
+ g.addTransform (transform);
520
+ g.reduceClipRegion ({ startX, baselineY, endX - startX, 1 });
521
+ g.fillCheckerBoard ({ (float) endX, (float) baselineY + 1.0f }, 3.0f, 1.0f, colour, Colours::transparentBlack);
522
+ }
523
+
524
+ void drawSelectedText (Graphics& g, Range<int> selected, Colour selectedTextColour, AffineTransform transform) const
525
+ {
526
+ if (atom == nullptr)
527
+ return;
528
+
529
+ if (passwordCharacter != 0 || ! atom->isWhitespace())
530
+ {
531
+ GlyphArrangement ga;
532
+ ga.addLineOfText (currentSection->font,
533
+ atom->getTrimmedText (passwordCharacter),
534
+ atomX, (float) roundToInt (lineY + lineHeight - maxDescent));
535
+
536
+ if (selected.getEnd() < indexInText + atom->numChars)
537
+ {
538
+ GlyphArrangement ga2 (ga);
539
+ ga2.removeRangeOfGlyphs (0, selected.getEnd() - indexInText);
540
+ ga.removeRangeOfGlyphs (selected.getEnd() - indexInText, -1);
541
+
542
+ g.setColour (currentSection->colour);
543
+ ga2.draw (g, transform);
544
+ }
545
+
546
+ if (selected.getStart() > indexInText)
547
+ {
548
+ GlyphArrangement ga2 (ga);
549
+ ga2.removeRangeOfGlyphs (selected.getStart() - indexInText, -1);
550
+ ga.removeRangeOfGlyphs (0, selected.getStart() - indexInText);
551
+
552
+ g.setColour (currentSection->colour);
553
+ ga2.draw (g, transform);
554
+ }
555
+
556
+ g.setColour (selectedTextColour);
557
+ ga.draw (g, transform);
558
+ }
559
+ }
560
+
561
+ //==============================================================================
562
+ float indexToX (int indexToFind) const
563
+ {
564
+ if (indexToFind <= indexInText || atom == nullptr)
565
+ return atomX;
566
+
567
+ if (indexToFind >= indexInText + atom->numChars)
568
+ return atomRight;
569
+
570
+ GlyphArrangement g;
571
+ g.addLineOfText (currentSection->font,
572
+ atom->getText (passwordCharacter),
573
+ atomX, 0.0f);
574
+
575
+ if (indexToFind - indexInText >= g.getNumGlyphs())
576
+ return atomRight;
577
+
578
+ return jmin (atomRight, g.getGlyph (indexToFind - indexInText).getLeft());
579
+ }
580
+
581
+ int xToIndex (float xToFind) const
582
+ {
583
+ if (xToFind <= atomX || atom == nullptr || atom->isNewLine())
584
+ return indexInText;
585
+
586
+ if (xToFind >= atomRight)
587
+ return indexInText + atom->numChars;
588
+
589
+ GlyphArrangement g;
590
+ g.addLineOfText (currentSection->font,
591
+ atom->getText (passwordCharacter),
592
+ atomX, 0.0f);
593
+
594
+ auto numGlyphs = g.getNumGlyphs();
595
+
596
+ int j;
597
+ for (j = 0; j < numGlyphs; ++j)
598
+ {
599
+ auto& pg = g.getGlyph (j);
600
+
601
+ if ((pg.getLeft() + pg.getRight()) / 2 > xToFind)
602
+ break;
603
+ }
604
+
605
+ return indexInText + j;
606
+ }
607
+
608
+ //==============================================================================
609
+ bool getCharPosition (int index, Point<float>& anchor, float& lineHeightFound)
610
+ {
611
+ while (next())
612
+ {
613
+ if (indexInText + atom->numChars > index)
614
+ {
615
+ anchor = { indexToX (index), lineY };
616
+ lineHeightFound = lineHeight;
617
+ return true;
618
+ }
619
+ }
620
+
621
+ anchor = { atomX, lineY };
622
+ lineHeightFound = lineHeight;
623
+ return false;
624
+ }
625
+
626
+ float getYOffset()
627
+ {
628
+ if (justification.testFlags (Justification::top) || lineY >= bottomRight.y)
629
+ return 0;
630
+
631
+ while (next())
632
+ {
633
+ if (lineY >= bottomRight.y)
634
+ return 0;
635
+ }
636
+
637
+ auto bottom = jmax (0.0f, bottomRight.y - lineY - lineHeight);
638
+
639
+ if (justification.testFlags (Justification::bottom))
640
+ return bottom;
641
+
642
+ return bottom * 0.5f;
643
+ }
644
+
645
+ int getTotalTextHeight()
646
+ {
647
+ while (next()) {}
648
+
649
+ auto height = lineY + lineHeight + getYOffset();
650
+
651
+ if (atom != nullptr && atom->isNewLine())
652
+ height += lineHeight;
653
+
654
+ return roundToInt (height);
655
+ }
656
+
657
+ int getTextRight()
658
+ {
659
+ float maxWidth = 0.0f;
660
+
661
+ while (next())
662
+ maxWidth = jmax (maxWidth, atomRight);
663
+
664
+ return roundToInt (maxWidth);
665
+ }
666
+
667
+ Rectangle<int> getTextBounds (Range<int> range) const
668
+ {
669
+ auto startX = indexToX (range.getStart());
670
+ auto endX = indexToX (range.getEnd());
671
+
672
+ return Rectangle<float> (startX, lineY, endX - startX, lineHeight * lineSpacing).getSmallestIntegerContainer();
673
+ }
674
+
675
+ //==============================================================================
676
+ int indexInText = 0;
677
+ float lineY = 0, lineHeight = 0, maxDescent = 0;
678
+ float atomX = 0, atomRight = 0;
679
+ const TextAtom* atom = nullptr;
680
+
681
+ private:
682
+ const OwnedArray<UniformTextSection>& sections;
683
+ const UniformTextSection* currentSection = nullptr;
684
+ int sectionIndex = 0, atomIndex = 0;
685
+ Justification justification;
686
+ const Point<float> bottomRight;
687
+ const float wordWrapWidth;
688
+ const juce_wchar passwordCharacter;
689
+ const float lineSpacing;
690
+ const bool underlineWhitespace;
691
+ TextAtom longAtom;
692
+
693
+ bool chunkLongAtom (bool shouldStartNewLine)
694
+ {
695
+ const auto numRemaining = longAtom.atomText.length() - longAtom.numChars;
696
+
697
+ if (numRemaining <= 0)
698
+ return false;
699
+
700
+ longAtom.atomText = longAtom.atomText.substring (longAtom.numChars);
701
+ indexInText += longAtom.numChars;
702
+
703
+ GlyphArrangement g;
704
+ g.addLineOfText (currentSection->font, atom->getText (passwordCharacter), 0.0f, 0.0f);
705
+
706
+ int split;
707
+ for (split = 0; split < g.getNumGlyphs(); ++split)
708
+ if (shouldWrap (g.getGlyph (split).getRight()))
709
+ break;
710
+
711
+ const auto numChars = jmax (1, split);
712
+ longAtom.numChars = (uint16) numChars;
713
+ longAtom.width = g.getGlyph (numChars - 1).getRight();
714
+
715
+ atomX = getJustificationOffsetX (longAtom.width);
716
+
717
+ if (shouldStartNewLine)
718
+ {
719
+ if (split == numRemaining)
720
+ beginNewLine();
721
+ else
722
+ lineY += lineHeight * lineSpacing;
723
+ }
724
+
725
+ atomRight = atomX + longAtom.width;
726
+ return true;
727
+ }
728
+
729
+ void moveToEndOfLastAtom()
730
+ {
731
+ if (atom != nullptr)
732
+ {
733
+ atomX = atomRight;
734
+
735
+ if (atom->isNewLine())
736
+ {
737
+ atomX = getJustificationOffsetX (0);
738
+ lineY += lineHeight * lineSpacing;
739
+ }
740
+ }
741
+ }
742
+
743
+ bool shouldWrap (const float x) const noexcept
744
+ {
745
+ return (x - 0.0001f) >= wordWrapWidth;
746
+ }
747
+
748
+ JUCE_LEAK_DETECTOR (Iterator)
749
+ };
750
+
751
+
752
+ //==============================================================================
753
+ struct TextEditor::InsertAction final : public UndoableAction
754
+ {
755
+ InsertAction (TextEditor& ed, const String& newText, int insertPos,
756
+ const Font& newFont, Colour newColour, int oldCaret, int newCaret)
757
+ : owner (ed),
758
+ text (newText),
759
+ insertIndex (insertPos),
760
+ oldCaretPos (oldCaret),
761
+ newCaretPos (newCaret),
762
+ font (newFont),
763
+ colour (newColour)
764
+ {
765
+ }
766
+
767
+ bool perform() override
768
+ {
769
+ owner.insert (text, insertIndex, font, colour, nullptr, newCaretPos);
770
+ return true;
771
+ }
772
+
773
+ bool undo() override
774
+ {
775
+ owner.remove ({ insertIndex, insertIndex + text.length() }, nullptr, oldCaretPos);
776
+ return true;
777
+ }
778
+
779
+ int getSizeInUnits() override
780
+ {
781
+ return text.length() + 16;
782
+ }
783
+
784
+ private:
785
+ TextEditor& owner;
786
+ const String text;
787
+ const int insertIndex, oldCaretPos, newCaretPos;
788
+ const Font font;
789
+ const Colour colour;
790
+
791
+ JUCE_DECLARE_NON_COPYABLE (InsertAction)
792
+ };
793
+
794
+ //==============================================================================
795
+ struct TextEditor::RemoveAction final : public UndoableAction
796
+ {
797
+ RemoveAction (TextEditor& ed, Range<int> rangeToRemove, int oldCaret, int newCaret,
798
+ const Array<UniformTextSection*>& oldSections)
799
+ : owner (ed),
800
+ range (rangeToRemove),
801
+ oldCaretPos (oldCaret),
802
+ newCaretPos (newCaret)
803
+ {
804
+ removedSections.addArray (oldSections);
805
+ }
806
+
807
+ bool perform() override
808
+ {
809
+ owner.remove (range, nullptr, newCaretPos);
810
+ return true;
811
+ }
812
+
813
+ bool undo() override
814
+ {
815
+ owner.reinsert (range.getStart(), removedSections);
816
+ owner.moveCaretTo (oldCaretPos, false);
817
+ return true;
818
+ }
819
+
820
+ int getSizeInUnits() override
821
+ {
822
+ int n = 16;
823
+
824
+ for (auto* s : removedSections)
825
+ n += s->getTotalLength();
826
+
827
+ return n;
828
+ }
829
+
830
+ private:
831
+ TextEditor& owner;
832
+ const Range<int> range;
833
+ const int oldCaretPos, newCaretPos;
834
+ OwnedArray<UniformTextSection> removedSections;
835
+
836
+ JUCE_DECLARE_NON_COPYABLE (RemoveAction)
837
+ };
838
+
839
+ //==============================================================================
840
+ struct TextEditor::TextHolderComponent final : public Component,
841
+ public Timer,
842
+ public Value::Listener
843
+ {
844
+ TextHolderComponent (TextEditor& ed) : owner (ed)
845
+ {
846
+ setWantsKeyboardFocus (false);
847
+ setInterceptsMouseClicks (false, true);
848
+ setMouseCursor (MouseCursor::ParentCursor);
849
+
850
+ owner.getTextValue().addListener (this);
851
+ }
852
+
853
+ ~TextHolderComponent() override
854
+ {
855
+ owner.getTextValue().removeListener (this);
856
+ }
857
+
858
+ void paint (Graphics& g) override
859
+ {
860
+ owner.drawContent (g);
861
+ }
862
+
863
+ void restartTimer()
864
+ {
865
+ startTimer (350);
866
+ }
867
+
868
+ void timerCallback() override
869
+ {
870
+ owner.timerCallbackInt();
871
+ }
872
+
873
+ void valueChanged (Value&) override
874
+ {
875
+ owner.textWasChangedByValue();
876
+ }
877
+
878
+ TextEditor& owner;
879
+
880
+ private:
881
+ std::unique_ptr<AccessibilityHandler> createAccessibilityHandler() override
882
+ {
883
+ return createIgnoredAccessibilityHandler (*this);
884
+ }
885
+
886
+ JUCE_DECLARE_NON_COPYABLE (TextHolderComponent)
887
+ };
888
+
889
+ //==============================================================================
890
+ struct TextEditor::TextEditorViewport final : public Viewport
891
+ {
892
+ TextEditorViewport (TextEditor& ed) : owner (ed) {}
893
+
894
+ void visibleAreaChanged (const Rectangle<int>&) override
895
+ {
896
+ if (! reentrant) // it's rare, but possible to get into a feedback loop as the viewport's scrollbars
897
+ // appear and disappear, causing the wrap width to change.
898
+ {
899
+ auto wordWrapWidth = owner.getWordWrapWidth();
900
+
901
+ if (wordWrapWidth != lastWordWrapWidth)
902
+ {
903
+ lastWordWrapWidth = wordWrapWidth;
904
+
905
+ ScopedValueSetter<bool> svs (reentrant, true);
906
+ owner.checkLayout();
907
+ }
908
+ }
909
+ }
910
+
911
+ private:
912
+ std::unique_ptr<AccessibilityHandler> createAccessibilityHandler() override
913
+ {
914
+ return createIgnoredAccessibilityHandler (*this);
915
+ }
916
+
917
+ TextEditor& owner;
918
+ int lastWordWrapWidth = 0;
919
+ bool reentrant = false;
920
+
921
+ JUCE_DECLARE_NON_COPYABLE (TextEditorViewport)
922
+ };
923
+
924
+ //==============================================================================
925
+ namespace TextEditorDefs
926
+ {
927
+ const int textChangeMessageId = 0x10003001;
928
+ const int returnKeyMessageId = 0x10003002;
929
+ const int escapeKeyMessageId = 0x10003003;
930
+ const int focusLossMessageId = 0x10003004;
931
+
932
+ const int maxActionsPerTransaction = 100;
933
+
934
+ static int getCharacterCategory (juce_wchar character) noexcept
935
+ {
936
+ return CharacterFunctions::isLetterOrDigit (character)
937
+ ? 2 : (CharacterFunctions::isWhitespace (character) ? 0 : 1);
938
+ }
939
+ }
940
+
941
+ //==============================================================================
942
+ TextEditor::TextEditor (const String& name, juce_wchar passwordChar)
943
+ : Component (name),
944
+ passwordCharacter (passwordChar)
945
+ {
946
+ setMouseCursor (MouseCursor::IBeamCursor);
947
+
948
+ viewport.reset (new TextEditorViewport (*this));
949
+ addAndMakeVisible (viewport.get());
950
+ viewport->setViewedComponent (textHolder = new TextHolderComponent (*this));
951
+ viewport->setWantsKeyboardFocus (false);
952
+ viewport->setScrollBarsShown (false, false);
953
+
954
+ setWantsKeyboardFocus (true);
955
+ recreateCaret();
956
+ }
957
+
958
+ TextEditor::~TextEditor()
959
+ {
960
+ if (auto* peer = getPeer())
961
+ peer->refreshTextInputTarget();
962
+
963
+ textValue.removeListener (textHolder);
964
+ textValue.referTo (Value());
965
+
966
+ viewport.reset();
967
+ textHolder = nullptr;
968
+ }
969
+
970
+ //==============================================================================
971
+ void TextEditor::newTransaction()
972
+ {
973
+ lastTransactionTime = Time::getApproximateMillisecondCounter();
974
+ undoManager.beginNewTransaction();
975
+ }
976
+
977
+ bool TextEditor::undoOrRedo (const bool shouldUndo)
978
+ {
979
+ if (! isReadOnly())
980
+ {
981
+ newTransaction();
982
+
983
+ if (shouldUndo ? undoManager.undo()
984
+ : undoManager.redo())
985
+ {
986
+ repaint();
987
+ textChanged();
988
+ scrollToMakeSureCursorIsVisible();
989
+
990
+ return true;
991
+ }
992
+ }
993
+
994
+ return false;
995
+ }
996
+
997
+ bool TextEditor::undo() { return undoOrRedo (true); }
998
+ bool TextEditor::redo() { return undoOrRedo (false); }
999
+
1000
+ //==============================================================================
1001
+ void TextEditor::setMultiLine (const bool shouldBeMultiLine,
1002
+ const bool shouldWordWrap)
1003
+ {
1004
+ if (multiline != shouldBeMultiLine
1005
+ || wordWrap != (shouldWordWrap && shouldBeMultiLine))
1006
+ {
1007
+ multiline = shouldBeMultiLine;
1008
+ wordWrap = shouldWordWrap && shouldBeMultiLine;
1009
+
1010
+ checkLayout();
1011
+
1012
+ viewport->setViewPosition (0, 0);
1013
+ resized();
1014
+ scrollToMakeSureCursorIsVisible();
1015
+ }
1016
+ }
1017
+
1018
+ bool TextEditor::isMultiLine() const
1019
+ {
1020
+ return multiline;
1021
+ }
1022
+
1023
+ void TextEditor::setScrollbarsShown (bool shown)
1024
+ {
1025
+ if (scrollbarVisible != shown)
1026
+ {
1027
+ scrollbarVisible = shown;
1028
+ checkLayout();
1029
+ }
1030
+ }
1031
+
1032
+ void TextEditor::setReadOnly (bool shouldBeReadOnly)
1033
+ {
1034
+ if (readOnly != shouldBeReadOnly)
1035
+ {
1036
+ readOnly = shouldBeReadOnly;
1037
+ enablementChanged();
1038
+ invalidateAccessibilityHandler();
1039
+
1040
+ if (auto* peer = getPeer())
1041
+ peer->refreshTextInputTarget();
1042
+ }
1043
+ }
1044
+
1045
+ void TextEditor::setClicksOutsideDismissVirtualKeyboard (bool newValue)
1046
+ {
1047
+ clicksOutsideDismissVirtualKeyboard = newValue;
1048
+ }
1049
+
1050
+ bool TextEditor::isReadOnly() const noexcept
1051
+ {
1052
+ return readOnly || ! isEnabled();
1053
+ }
1054
+
1055
+ bool TextEditor::isTextInputActive() const
1056
+ {
1057
+ return ! isReadOnly() && (! clicksOutsideDismissVirtualKeyboard || globalMouseListener.lastMouseDownInEditor());
1058
+ }
1059
+
1060
+ void TextEditor::setReturnKeyStartsNewLine (bool shouldStartNewLine)
1061
+ {
1062
+ returnKeyStartsNewLine = shouldStartNewLine;
1063
+ }
1064
+
1065
+ void TextEditor::setTabKeyUsedAsCharacter (bool shouldTabKeyBeUsed)
1066
+ {
1067
+ tabKeyUsed = shouldTabKeyBeUsed;
1068
+ }
1069
+
1070
+ void TextEditor::setPopupMenuEnabled (bool b)
1071
+ {
1072
+ popupMenuEnabled = b;
1073
+ }
1074
+
1075
+ void TextEditor::setSelectAllWhenFocused (bool b)
1076
+ {
1077
+ selectAllTextWhenFocused = b;
1078
+ }
1079
+
1080
+ void TextEditor::setJustification (Justification j)
1081
+ {
1082
+ if (justification != j)
1083
+ {
1084
+ justification = j;
1085
+
1086
+ resized();
1087
+ repaint();
1088
+ }
1089
+ }
1090
+
1091
+ //==============================================================================
1092
+ void TextEditor::setFont (const Font& newFont)
1093
+ {
1094
+ currentFont = newFont;
1095
+ scrollToMakeSureCursorIsVisible();
1096
+ }
1097
+
1098
+ void TextEditor::applyFontToAllText (const Font& newFont, bool changeCurrentFont)
1099
+ {
1100
+ if (changeCurrentFont)
1101
+ currentFont = newFont;
1102
+
1103
+ auto overallColour = findColour (textColourId);
1104
+
1105
+ for (auto* uts : sections)
1106
+ {
1107
+ uts->setFont (newFont, passwordCharacter);
1108
+ uts->colour = overallColour;
1109
+ }
1110
+
1111
+ coalesceSimilarSections();
1112
+ checkLayout();
1113
+ scrollToMakeSureCursorIsVisible();
1114
+ repaint();
1115
+ }
1116
+
1117
+ void TextEditor::applyColourToAllText (const Colour& newColour, bool changeCurrentTextColour)
1118
+ {
1119
+ for (auto* uts : sections)
1120
+ uts->colour = newColour;
1121
+
1122
+ if (changeCurrentTextColour)
1123
+ setColour (TextEditor::textColourId, newColour);
1124
+ else
1125
+ repaint();
1126
+ }
1127
+
1128
+ void TextEditor::lookAndFeelChanged()
1129
+ {
1130
+ caret.reset();
1131
+ recreateCaret();
1132
+ }
1133
+
1134
+ void TextEditor::parentHierarchyChanged()
1135
+ {
1136
+ lookAndFeelChanged();
1137
+ }
1138
+
1139
+ void TextEditor::enablementChanged()
1140
+ {
1141
+ recreateCaret();
1142
+ repaint();
1143
+ }
1144
+
1145
+ void TextEditor::setCaretVisible (bool shouldCaretBeVisible)
1146
+ {
1147
+ if (caretVisible != shouldCaretBeVisible)
1148
+ {
1149
+ caretVisible = shouldCaretBeVisible;
1150
+ recreateCaret();
1151
+ }
1152
+ }
1153
+
1154
+ void TextEditor::recreateCaret()
1155
+ {
1156
+ if (isCaretVisible())
1157
+ {
1158
+ if (caret == nullptr)
1159
+ {
1160
+ caret.reset (getLookAndFeel().createCaretComponent (this));
1161
+ textHolder->addChildComponent (caret.get());
1162
+ updateCaretPosition();
1163
+ }
1164
+ }
1165
+ else
1166
+ {
1167
+ caret.reset();
1168
+ }
1169
+ }
1170
+
1171
+ void TextEditor::updateCaretPosition()
1172
+ {
1173
+ if (caret != nullptr
1174
+ && getWidth() > 0 && getHeight() > 0)
1175
+ {
1176
+ Iterator i (*this);
1177
+ caret->setCaretPosition (getCaretRectangle().translated (leftIndent,
1178
+ topIndent + roundToInt (i.getYOffset())) - getTextOffset());
1179
+
1180
+ if (auto* handler = getAccessibilityHandler())
1181
+ handler->notifyAccessibilityEvent (AccessibilityEvent::textSelectionChanged);
1182
+ }
1183
+ }
1184
+
1185
+ TextEditor::LengthAndCharacterRestriction::LengthAndCharacterRestriction (int maxLen, const String& chars)
1186
+ : allowedCharacters (chars), maxLength (maxLen)
1187
+ {
1188
+ }
1189
+
1190
+ String TextEditor::LengthAndCharacterRestriction::filterNewText (TextEditor& ed, const String& newInput)
1191
+ {
1192
+ String t (newInput);
1193
+
1194
+ if (allowedCharacters.isNotEmpty())
1195
+ t = t.retainCharacters (allowedCharacters);
1196
+
1197
+ if (maxLength > 0)
1198
+ t = t.substring (0, maxLength - (ed.getTotalNumChars() - ed.getHighlightedRegion().getLength()));
1199
+
1200
+ return t;
1201
+ }
1202
+
1203
+ void TextEditor::setInputFilter (InputFilter* newFilter, bool takeOwnership)
1204
+ {
1205
+ inputFilter.set (newFilter, takeOwnership);
1206
+ }
1207
+
1208
+ void TextEditor::setInputRestrictions (int maxLen, const String& chars)
1209
+ {
1210
+ setInputFilter (new LengthAndCharacterRestriction (maxLen, chars), true);
1211
+ }
1212
+
1213
+ void TextEditor::setTextToShowWhenEmpty (const String& text, Colour colourToUse)
1214
+ {
1215
+ textToShowWhenEmpty = text;
1216
+ colourForTextWhenEmpty = colourToUse;
1217
+ }
1218
+
1219
+ void TextEditor::setPasswordCharacter (juce_wchar newPasswordCharacter)
1220
+ {
1221
+ if (passwordCharacter != newPasswordCharacter)
1222
+ {
1223
+ passwordCharacter = newPasswordCharacter;
1224
+ applyFontToAllText (currentFont);
1225
+ }
1226
+ }
1227
+
1228
+ void TextEditor::setScrollBarThickness (int newThicknessPixels)
1229
+ {
1230
+ viewport->setScrollBarThickness (newThicknessPixels);
1231
+ }
1232
+
1233
+ //==============================================================================
1234
+ void TextEditor::clear()
1235
+ {
1236
+ clearInternal (nullptr);
1237
+ checkLayout();
1238
+ undoManager.clearUndoHistory();
1239
+ repaint();
1240
+ }
1241
+
1242
+ void TextEditor::setText (const String& newText, bool sendTextChangeMessage)
1243
+ {
1244
+ auto newLength = newText.length();
1245
+
1246
+ if (newLength != getTotalNumChars() || getText() != newText)
1247
+ {
1248
+ if (! sendTextChangeMessage)
1249
+ textValue.removeListener (textHolder);
1250
+
1251
+ textValue = newText;
1252
+
1253
+ auto oldCursorPos = caretPosition;
1254
+ auto cursorWasAtEnd = oldCursorPos >= getTotalNumChars();
1255
+
1256
+ clearInternal (nullptr);
1257
+ insert (newText, 0, currentFont, findColour (textColourId), nullptr, caretPosition);
1258
+
1259
+ // if you're adding text with line-feeds to a single-line text editor, it
1260
+ // ain't gonna look right!
1261
+ jassert (multiline || ! newText.containsAnyOf ("\r\n"));
1262
+
1263
+ if (cursorWasAtEnd && ! isMultiLine())
1264
+ oldCursorPos = getTotalNumChars();
1265
+
1266
+ moveCaretTo (oldCursorPos, false);
1267
+
1268
+ if (sendTextChangeMessage)
1269
+ textChanged();
1270
+ else
1271
+ textValue.addListener (textHolder);
1272
+
1273
+ checkLayout();
1274
+ scrollToMakeSureCursorIsVisible();
1275
+ undoManager.clearUndoHistory();
1276
+
1277
+ repaint();
1278
+ }
1279
+ }
1280
+
1281
+ //==============================================================================
1282
+ void TextEditor::updateValueFromText()
1283
+ {
1284
+ if (valueTextNeedsUpdating)
1285
+ {
1286
+ valueTextNeedsUpdating = false;
1287
+ textValue = getText();
1288
+ }
1289
+ }
1290
+
1291
+ Value& TextEditor::getTextValue()
1292
+ {
1293
+ updateValueFromText();
1294
+ return textValue;
1295
+ }
1296
+
1297
+ void TextEditor::textWasChangedByValue()
1298
+ {
1299
+ if (textValue.getValueSource().getReferenceCount() > 1)
1300
+ setText (textValue.getValue());
1301
+ }
1302
+
1303
+ //==============================================================================
1304
+ void TextEditor::textChanged()
1305
+ {
1306
+ checkLayout();
1307
+
1308
+ if (listeners.size() != 0 || onTextChange != nullptr)
1309
+ postCommandMessage (TextEditorDefs::textChangeMessageId);
1310
+
1311
+ if (textValue.getValueSource().getReferenceCount() > 1)
1312
+ {
1313
+ valueTextNeedsUpdating = false;
1314
+ textValue = getText();
1315
+ }
1316
+
1317
+ if (auto* handler = getAccessibilityHandler())
1318
+ handler->notifyAccessibilityEvent (AccessibilityEvent::textChanged);
1319
+ }
1320
+
1321
+ void TextEditor::setSelection (Range<int> newSelection) noexcept
1322
+ {
1323
+ if (newSelection != selection)
1324
+ {
1325
+ selection = newSelection;
1326
+
1327
+ if (auto* handler = getAccessibilityHandler())
1328
+ handler->notifyAccessibilityEvent (AccessibilityEvent::textSelectionChanged);
1329
+ }
1330
+ }
1331
+
1332
+ void TextEditor::returnPressed() { postCommandMessage (TextEditorDefs::returnKeyMessageId); }
1333
+ void TextEditor::escapePressed() { postCommandMessage (TextEditorDefs::escapeKeyMessageId); }
1334
+
1335
+ void TextEditor::addListener (Listener* l) { listeners.add (l); }
1336
+ void TextEditor::removeListener (Listener* l) { listeners.remove (l); }
1337
+
1338
+ //==============================================================================
1339
+ void TextEditor::timerCallbackInt()
1340
+ {
1341
+ checkFocus();
1342
+
1343
+ auto now = Time::getApproximateMillisecondCounter();
1344
+
1345
+ if (now > lastTransactionTime + 200)
1346
+ newTransaction();
1347
+ }
1348
+
1349
+ void TextEditor::checkFocus()
1350
+ {
1351
+ if (! wasFocused && hasKeyboardFocus (false) && ! isCurrentlyBlockedByAnotherModalComponent())
1352
+ wasFocused = true;
1353
+ }
1354
+
1355
+ void TextEditor::repaintText (Range<int> range)
1356
+ {
1357
+ if (! range.isEmpty())
1358
+ {
1359
+ if (range.getEnd() >= getTotalNumChars())
1360
+ {
1361
+ textHolder->repaint();
1362
+ return;
1363
+ }
1364
+
1365
+ Iterator i (*this);
1366
+
1367
+ Point<float> anchor;
1368
+ auto lh = currentFont.getHeight();
1369
+ i.getCharPosition (range.getStart(), anchor, lh);
1370
+
1371
+ auto y1 = std::trunc (anchor.y);
1372
+ int y2 = 0;
1373
+
1374
+ if (range.getEnd() >= getTotalNumChars())
1375
+ {
1376
+ y2 = textHolder->getHeight();
1377
+ }
1378
+ else
1379
+ {
1380
+ i.getCharPosition (range.getEnd(), anchor, lh);
1381
+ y2 = (int) (anchor.y + lh * 2.0f);
1382
+ }
1383
+
1384
+ auto offset = i.getYOffset();
1385
+ textHolder->repaint (0, roundToInt (y1 + offset), textHolder->getWidth(), roundToInt ((float) y2 - y1 + offset));
1386
+ }
1387
+ }
1388
+
1389
+ //==============================================================================
1390
+ void TextEditor::moveCaret (const int newCaretPos)
1391
+ {
1392
+ const auto clamped = std::clamp (newCaretPos, 0, getTotalNumChars());
1393
+
1394
+ if (clamped == getCaretPosition())
1395
+ return;
1396
+
1397
+ caretPosition = clamped;
1398
+
1399
+ if (hasKeyboardFocus (false))
1400
+ textHolder->restartTimer();
1401
+
1402
+ scrollToMakeSureCursorIsVisible();
1403
+ updateCaretPosition();
1404
+
1405
+ if (auto* handler = getAccessibilityHandler())
1406
+ handler->notifyAccessibilityEvent (AccessibilityEvent::textChanged);
1407
+ }
1408
+
1409
+ int TextEditor::getCaretPosition() const
1410
+ {
1411
+ return caretPosition;
1412
+ }
1413
+
1414
+ void TextEditor::setCaretPosition (const int newIndex)
1415
+ {
1416
+ moveCaretTo (newIndex, false);
1417
+ }
1418
+
1419
+ void TextEditor::moveCaretToEnd()
1420
+ {
1421
+ setCaretPosition (std::numeric_limits<int>::max());
1422
+ }
1423
+
1424
+ void TextEditor::scrollEditorToPositionCaret (const int desiredCaretX,
1425
+ const int desiredCaretY)
1426
+
1427
+ {
1428
+ updateCaretPosition();
1429
+ auto caretRect = getCaretRectangle().translated (leftIndent, topIndent);
1430
+
1431
+ auto vx = caretRect.getX() - desiredCaretX;
1432
+ auto vy = caretRect.getY() - desiredCaretY;
1433
+
1434
+ if (desiredCaretX < jmax (1, proportionOfWidth (0.05f)))
1435
+ vx += desiredCaretX - proportionOfWidth (0.2f);
1436
+ else if (desiredCaretX > jmax (0, viewport->getMaximumVisibleWidth() - (wordWrap ? 2 : 10)))
1437
+ vx += desiredCaretX + (isMultiLine() ? proportionOfWidth (0.2f) : 10) - viewport->getMaximumVisibleWidth();
1438
+
1439
+ vx = jlimit (0, jmax (0, textHolder->getWidth() + 8 - viewport->getMaximumVisibleWidth()), vx);
1440
+
1441
+ if (! isMultiLine())
1442
+ {
1443
+ vy = viewport->getViewPositionY();
1444
+ }
1445
+ else
1446
+ {
1447
+ vy = jlimit (0, jmax (0, textHolder->getHeight() - viewport->getMaximumVisibleHeight()), vy);
1448
+
1449
+ if (desiredCaretY < 0)
1450
+ vy = jmax (0, desiredCaretY + vy);
1451
+ else if (desiredCaretY > jmax (0, viewport->getMaximumVisibleHeight() - caretRect.getHeight()))
1452
+ vy += desiredCaretY + 2 + caretRect.getHeight() - viewport->getMaximumVisibleHeight();
1453
+ }
1454
+
1455
+ viewport->setViewPosition (vx, vy);
1456
+ }
1457
+
1458
+ Rectangle<int> TextEditor::getCaretRectangleForCharIndex (int index) const
1459
+ {
1460
+ Point<float> anchor;
1461
+ auto cursorHeight = currentFont.getHeight(); // (in case the text is empty and the call below doesn't set this value)
1462
+ getCharPosition (index, anchor, cursorHeight);
1463
+
1464
+ return Rectangle<float> { anchor.x, anchor.y, 2.0f, cursorHeight }.getSmallestIntegerContainer() + getTextOffset();
1465
+ }
1466
+
1467
+ Point<int> TextEditor::getTextOffset() const noexcept
1468
+ {
1469
+ Iterator i (*this);
1470
+ auto yOffset = i.getYOffset();
1471
+
1472
+ return { getLeftIndent() + borderSize.getLeft() - viewport->getViewPositionX(),
1473
+ roundToInt ((float) getTopIndent() + (float) borderSize.getTop() + yOffset) - viewport->getViewPositionY() };
1474
+ }
1475
+
1476
+ RectangleList<int> TextEditor::getTextBounds (Range<int> textRange) const
1477
+ {
1478
+ RectangleList<int> boundingBox;
1479
+ Iterator i (*this);
1480
+
1481
+ while (i.next())
1482
+ {
1483
+ if (textRange.intersects ({ i.indexInText,
1484
+ i.indexInText + i.atom->numChars }))
1485
+ {
1486
+ boundingBox.add (i.getTextBounds (textRange));
1487
+ }
1488
+ }
1489
+
1490
+ boundingBox.offsetAll (getTextOffset());
1491
+ return boundingBox;
1492
+ }
1493
+
1494
+ //==============================================================================
1495
+ // Extra space for the cursor at the right-hand-edge
1496
+ constexpr int rightEdgeSpace = 2;
1497
+
1498
+ int TextEditor::getWordWrapWidth() const
1499
+ {
1500
+ return wordWrap ? getMaximumTextWidth()
1501
+ : std::numeric_limits<int>::max();
1502
+ }
1503
+
1504
+ int TextEditor::getMaximumTextWidth() const
1505
+ {
1506
+ return jmax (1, viewport->getMaximumVisibleWidth() - leftIndent - rightEdgeSpace);
1507
+ }
1508
+
1509
+ int TextEditor::getMaximumTextHeight() const
1510
+ {
1511
+ return jmax (1, viewport->getMaximumVisibleHeight() - topIndent);
1512
+ }
1513
+
1514
+ void TextEditor::checkLayout()
1515
+ {
1516
+ if (getWordWrapWidth() > 0)
1517
+ {
1518
+ const auto textBottom = Iterator (*this).getTotalTextHeight() + topIndent;
1519
+ const auto textRight = jmax (viewport->getMaximumVisibleWidth(),
1520
+ Iterator (*this).getTextRight() + leftIndent + rightEdgeSpace);
1521
+
1522
+ textHolder->setSize (textRight, textBottom);
1523
+ viewport->setScrollBarsShown (scrollbarVisible && multiline && textBottom > viewport->getMaximumVisibleHeight(),
1524
+ scrollbarVisible && multiline && ! wordWrap && textRight > viewport->getMaximumVisibleWidth());
1525
+ }
1526
+ }
1527
+
1528
+ int TextEditor::getTextWidth() const { return textHolder->getWidth(); }
1529
+ int TextEditor::getTextHeight() const { return textHolder->getHeight(); }
1530
+
1531
+ void TextEditor::setIndents (int newLeftIndent, int newTopIndent)
1532
+ {
1533
+ if (leftIndent != newLeftIndent || topIndent != newTopIndent)
1534
+ {
1535
+ leftIndent = newLeftIndent;
1536
+ topIndent = newTopIndent;
1537
+
1538
+ resized();
1539
+ repaint();
1540
+ }
1541
+ }
1542
+
1543
+ void TextEditor::setBorder (BorderSize<int> border)
1544
+ {
1545
+ borderSize = border;
1546
+ resized();
1547
+ }
1548
+
1549
+ BorderSize<int> TextEditor::getBorder() const
1550
+ {
1551
+ return borderSize;
1552
+ }
1553
+
1554
+ void TextEditor::setScrollToShowCursor (const bool shouldScrollToShowCursor)
1555
+ {
1556
+ keepCaretOnScreen = shouldScrollToShowCursor;
1557
+ }
1558
+
1559
+ void TextEditor::scrollToMakeSureCursorIsVisible()
1560
+ {
1561
+ updateCaretPosition();
1562
+
1563
+ if (keepCaretOnScreen)
1564
+ {
1565
+ auto viewPos = viewport->getViewPosition();
1566
+ auto caretRect = getCaretRectangle().translated (leftIndent, topIndent) - getTextOffset();
1567
+ auto relativeCursor = caretRect.getPosition() - viewPos;
1568
+
1569
+ if (relativeCursor.x < jmax (1, proportionOfWidth (0.05f)))
1570
+ {
1571
+ viewPos.x += relativeCursor.x - proportionOfWidth (0.2f);
1572
+ }
1573
+ else if (relativeCursor.x > jmax (0, viewport->getMaximumVisibleWidth() - (wordWrap ? 2 : 10)))
1574
+ {
1575
+ viewPos.x += relativeCursor.x + (isMultiLine() ? proportionOfWidth (0.2f) : 10) - viewport->getMaximumVisibleWidth();
1576
+ }
1577
+
1578
+ viewPos.x = jlimit (0, jmax (0, textHolder->getWidth() + 8 - viewport->getMaximumVisibleWidth()), viewPos.x);
1579
+
1580
+ if (! isMultiLine())
1581
+ {
1582
+ viewPos.y = (getHeight() - textHolder->getHeight() - topIndent) / -2;
1583
+ }
1584
+ else if (relativeCursor.y < 0)
1585
+ {
1586
+ viewPos.y = jmax (0, relativeCursor.y + viewPos.y);
1587
+ }
1588
+ else if (relativeCursor.y > jmax (0, viewport->getMaximumVisibleHeight() - caretRect.getHeight()))
1589
+ {
1590
+ viewPos.y += relativeCursor.y + 2 + caretRect.getHeight() - viewport->getMaximumVisibleHeight();
1591
+ }
1592
+
1593
+ viewport->setViewPosition (viewPos);
1594
+ }
1595
+ }
1596
+
1597
+ void TextEditor::moveCaretTo (const int newPosition, const bool isSelecting)
1598
+ {
1599
+ if (isSelecting)
1600
+ {
1601
+ moveCaret (newPosition);
1602
+
1603
+ auto oldSelection = selection;
1604
+
1605
+ if (dragType == notDragging)
1606
+ {
1607
+ if (std::abs (getCaretPosition() - selection.getStart()) < std::abs (getCaretPosition() - selection.getEnd()))
1608
+ dragType = draggingSelectionStart;
1609
+ else
1610
+ dragType = draggingSelectionEnd;
1611
+ }
1612
+
1613
+ if (dragType == draggingSelectionStart)
1614
+ {
1615
+ if (getCaretPosition() >= selection.getEnd())
1616
+ dragType = draggingSelectionEnd;
1617
+
1618
+ setSelection (Range<int>::between (getCaretPosition(), selection.getEnd()));
1619
+ }
1620
+ else
1621
+ {
1622
+ if (getCaretPosition() < selection.getStart())
1623
+ dragType = draggingSelectionStart;
1624
+
1625
+ setSelection (Range<int>::between (getCaretPosition(), selection.getStart()));
1626
+ }
1627
+
1628
+ repaintText (selection.getUnionWith (oldSelection));
1629
+ }
1630
+ else
1631
+ {
1632
+ dragType = notDragging;
1633
+
1634
+ repaintText (selection);
1635
+
1636
+ moveCaret (newPosition);
1637
+ setSelection (Range<int>::emptyRange (getCaretPosition()));
1638
+ }
1639
+ }
1640
+
1641
+ int TextEditor::getTextIndexAt (const int x, const int y) const
1642
+ {
1643
+ const auto offset = getTextOffset();
1644
+
1645
+ return indexAtPosition ((float) (x - offset.x),
1646
+ (float) (y - offset.y));
1647
+ }
1648
+
1649
+ int TextEditor::getTextIndexAt (const Point<int> pt) const
1650
+ {
1651
+ return getTextIndexAt (pt.x, pt.y);
1652
+ }
1653
+
1654
+ int TextEditor::getCharIndexForPoint (const Point<int> point) const
1655
+ {
1656
+ return getTextIndexAt (isMultiLine() ? point : getTextBounds ({ 0, getTotalNumChars() }).getBounds().getConstrainedPoint (point));
1657
+ }
1658
+
1659
+ void TextEditor::insertTextAtCaret (const String& t)
1660
+ {
1661
+ const auto filtered = inputFilter != nullptr ? inputFilter->filterNewText (*this, t) : t;
1662
+ const auto newText = isMultiLine() ? filtered.replace ("\r\n", "\n")
1663
+ : filtered.replaceCharacters ("\r\n", " ");
1664
+ const auto insertIndex = selection.getStart();
1665
+ const auto newCaretPos = insertIndex + newText.length();
1666
+
1667
+ remove (selection, getUndoManager(),
1668
+ newText.isNotEmpty() ? newCaretPos - 1 : newCaretPos);
1669
+
1670
+ insert (newText, insertIndex, currentFont, findColour (textColourId),
1671
+ getUndoManager(), newCaretPos);
1672
+
1673
+ textChanged();
1674
+ }
1675
+
1676
+ void TextEditor::setHighlightedRegion (const Range<int>& newSelection)
1677
+ {
1678
+ if (newSelection == getHighlightedRegion())
1679
+ return;
1680
+
1681
+ const auto cursorAtStart = newSelection.getEnd() == getHighlightedRegion().getStart()
1682
+ || newSelection.getEnd() == getHighlightedRegion().getEnd();
1683
+ moveCaretTo (cursorAtStart ? newSelection.getEnd() : newSelection.getStart(), false);
1684
+ moveCaretTo (cursorAtStart ? newSelection.getStart() : newSelection.getEnd(), true);
1685
+ }
1686
+
1687
+ //==============================================================================
1688
+ void TextEditor::copy()
1689
+ {
1690
+ if (passwordCharacter == 0)
1691
+ {
1692
+ auto selectedText = getHighlightedText();
1693
+
1694
+ if (selectedText.isNotEmpty())
1695
+ SystemClipboard::copyTextToClipboard (selectedText);
1696
+ }
1697
+ }
1698
+
1699
+ void TextEditor::paste()
1700
+ {
1701
+ if (! isReadOnly())
1702
+ {
1703
+ auto clip = SystemClipboard::getTextFromClipboard();
1704
+
1705
+ if (clip.isNotEmpty())
1706
+ insertTextAtCaret (clip);
1707
+ }
1708
+ }
1709
+
1710
+ void TextEditor::cut()
1711
+ {
1712
+ if (! isReadOnly())
1713
+ {
1714
+ moveCaret (selection.getEnd());
1715
+ insertTextAtCaret (String());
1716
+ }
1717
+ }
1718
+
1719
+ //==============================================================================
1720
+ void TextEditor::drawContent (Graphics& g)
1721
+ {
1722
+ if (getWordWrapWidth() > 0)
1723
+ {
1724
+ g.setOrigin (leftIndent, topIndent);
1725
+ auto clip = g.getClipBounds();
1726
+
1727
+ auto yOffset = Iterator (*this).getYOffset();
1728
+
1729
+ AffineTransform transform;
1730
+
1731
+ if (yOffset > 0)
1732
+ {
1733
+ transform = AffineTransform::translation (0.0f, yOffset);
1734
+ clip.setY (roundToInt ((float) clip.getY() - yOffset));
1735
+ }
1736
+
1737
+ Iterator i (*this);
1738
+ Colour selectedTextColour;
1739
+
1740
+ if (! selection.isEmpty())
1741
+ {
1742
+ selectedTextColour = findColour (highlightedTextColourId);
1743
+
1744
+ g.setColour (findColour (highlightColourId).withMultipliedAlpha (hasKeyboardFocus (true) ? 1.0f : 0.5f));
1745
+
1746
+ auto boundingBox = getTextBounds (selection);
1747
+ boundingBox.offsetAll (-getTextOffset());
1748
+
1749
+ g.fillPath (boundingBox.toPath(), transform);
1750
+ }
1751
+
1752
+ const UniformTextSection* lastSection = nullptr;
1753
+
1754
+ while (i.next() && i.lineY < (float) clip.getBottom())
1755
+ {
1756
+ if (i.lineY + i.lineHeight >= (float) clip.getY())
1757
+ {
1758
+ if (selection.intersects ({ i.indexInText, i.indexInText + i.atom->numChars }))
1759
+ {
1760
+ i.drawSelectedText (g, selection, selectedTextColour, transform);
1761
+ lastSection = nullptr;
1762
+ }
1763
+ else
1764
+ {
1765
+ i.draw (g, lastSection, transform);
1766
+ }
1767
+ }
1768
+ }
1769
+
1770
+ for (auto& underlinedSection : underlinedSections)
1771
+ {
1772
+ Iterator i2 (*this);
1773
+
1774
+ while (i2.next() && i2.lineY < (float) clip.getBottom())
1775
+ {
1776
+ if (i2.lineY + i2.lineHeight >= (float) clip.getY()
1777
+ && underlinedSection.intersects ({ i2.indexInText, i2.indexInText + i2.atom->numChars }))
1778
+ {
1779
+ i2.drawUnderline (g, underlinedSection, findColour (textColourId), transform);
1780
+ }
1781
+ }
1782
+ }
1783
+ }
1784
+ }
1785
+
1786
+ void TextEditor::paint (Graphics& g)
1787
+ {
1788
+ getLookAndFeel().fillTextEditorBackground (g, getWidth(), getHeight(), *this);
1789
+ }
1790
+
1791
+ void TextEditor::paintOverChildren (Graphics& g)
1792
+ {
1793
+ if (textToShowWhenEmpty.isNotEmpty()
1794
+ && (! hasKeyboardFocus (false))
1795
+ && getTotalNumChars() == 0)
1796
+ {
1797
+ g.setColour (colourForTextWhenEmpty);
1798
+ g.setFont (getFont());
1799
+
1800
+ Rectangle<int> textBounds (leftIndent,
1801
+ topIndent,
1802
+ viewport->getWidth() - leftIndent,
1803
+ getHeight() - topIndent);
1804
+
1805
+ if (! textBounds.isEmpty())
1806
+ g.drawText (textToShowWhenEmpty, textBounds, justification, true);
1807
+ }
1808
+
1809
+ getLookAndFeel().drawTextEditorOutline (g, getWidth(), getHeight(), *this);
1810
+ }
1811
+
1812
+ //==============================================================================
1813
+ void TextEditor::addPopupMenuItems (PopupMenu& m, const MouseEvent*)
1814
+ {
1815
+ const bool writable = ! isReadOnly();
1816
+
1817
+ if (passwordCharacter == 0)
1818
+ {
1819
+ m.addItem (StandardApplicationCommandIDs::cut, TRANS ("Cut"), writable);
1820
+ m.addItem (StandardApplicationCommandIDs::copy, TRANS ("Copy"), ! selection.isEmpty());
1821
+ }
1822
+
1823
+ m.addItem (StandardApplicationCommandIDs::paste, TRANS ("Paste"), writable);
1824
+ m.addItem (StandardApplicationCommandIDs::del, TRANS ("Delete"), writable);
1825
+ m.addSeparator();
1826
+ m.addItem (StandardApplicationCommandIDs::selectAll, TRANS ("Select All"));
1827
+ m.addSeparator();
1828
+
1829
+ if (getUndoManager() != nullptr)
1830
+ {
1831
+ m.addItem (StandardApplicationCommandIDs::undo, TRANS ("Undo"), undoManager.canUndo());
1832
+ m.addItem (StandardApplicationCommandIDs::redo, TRANS ("Redo"), undoManager.canRedo());
1833
+ }
1834
+ }
1835
+
1836
+ void TextEditor::performPopupMenuAction (const int menuItemID)
1837
+ {
1838
+ switch (menuItemID)
1839
+ {
1840
+ case StandardApplicationCommandIDs::cut: cutToClipboard(); break;
1841
+ case StandardApplicationCommandIDs::copy: copyToClipboard(); break;
1842
+ case StandardApplicationCommandIDs::paste: pasteFromClipboard(); break;
1843
+ case StandardApplicationCommandIDs::del: cut(); break;
1844
+ case StandardApplicationCommandIDs::selectAll: selectAll(); break;
1845
+ case StandardApplicationCommandIDs::undo: undo(); break;
1846
+ case StandardApplicationCommandIDs::redo: redo(); break;
1847
+ default: break;
1848
+ }
1849
+ }
1850
+
1851
+ //==============================================================================
1852
+ void TextEditor::mouseDown (const MouseEvent& e)
1853
+ {
1854
+ beginDragAutoRepeat (100);
1855
+ newTransaction();
1856
+
1857
+ if (wasFocused || ! selectAllTextWhenFocused)
1858
+ {
1859
+ if (! (popupMenuEnabled && e.mods.isPopupMenu()))
1860
+ {
1861
+ moveCaretTo (getTextIndexAt (e.getPosition()), e.mods.isShiftDown());
1862
+
1863
+ if (auto* peer = getPeer())
1864
+ peer->closeInputMethodContext();
1865
+ }
1866
+ else
1867
+ {
1868
+ PopupMenu m;
1869
+ m.setLookAndFeel (&getLookAndFeel());
1870
+ addPopupMenuItems (m, &e);
1871
+
1872
+ menuActive = true;
1873
+
1874
+ m.showMenuAsync (PopupMenu::Options(),
1875
+ [safeThis = SafePointer<TextEditor> { this }] (int menuResult)
1876
+ {
1877
+ if (auto* editor = safeThis.getComponent())
1878
+ {
1879
+ editor->menuActive = false;
1880
+
1881
+ if (menuResult != 0)
1882
+ editor->performPopupMenuAction (menuResult);
1883
+ }
1884
+ });
1885
+ }
1886
+ }
1887
+ }
1888
+
1889
+ void TextEditor::mouseDrag (const MouseEvent& e)
1890
+ {
1891
+ if (wasFocused || ! selectAllTextWhenFocused)
1892
+ if (! (popupMenuEnabled && e.mods.isPopupMenu()))
1893
+ moveCaretTo (getTextIndexAt (e.getPosition()), true);
1894
+ }
1895
+
1896
+ void TextEditor::mouseUp (const MouseEvent& e)
1897
+ {
1898
+ newTransaction();
1899
+ textHolder->restartTimer();
1900
+
1901
+ if (wasFocused || ! selectAllTextWhenFocused)
1902
+ if (e.mouseWasClicked() && ! (popupMenuEnabled && e.mods.isPopupMenu()))
1903
+ moveCaret (getTextIndexAt (e.getPosition()));
1904
+
1905
+ wasFocused = true;
1906
+ }
1907
+
1908
+ void TextEditor::mouseDoubleClick (const MouseEvent& e)
1909
+ {
1910
+ int tokenEnd = getTextIndexAt (e.getPosition());
1911
+ int tokenStart = 0;
1912
+
1913
+ if (e.getNumberOfClicks() > 3)
1914
+ {
1915
+ tokenEnd = getTotalNumChars();
1916
+ }
1917
+ else
1918
+ {
1919
+ auto t = getText();
1920
+ auto totalLength = getTotalNumChars();
1921
+
1922
+ while (tokenEnd < totalLength)
1923
+ {
1924
+ auto c = t[tokenEnd];
1925
+
1926
+ // (note the slight bodge here - it's because iswalnum only checks for alphabetic chars in the current locale)
1927
+ if (CharacterFunctions::isLetterOrDigit (c) || c > 128)
1928
+ ++tokenEnd;
1929
+ else
1930
+ break;
1931
+ }
1932
+
1933
+ tokenStart = tokenEnd;
1934
+
1935
+ while (tokenStart > 0)
1936
+ {
1937
+ auto c = t[tokenStart - 1];
1938
+
1939
+ // (note the slight bodge here - it's because iswalnum only checks for alphabetic chars in the current locale)
1940
+ if (CharacterFunctions::isLetterOrDigit (c) || c > 128)
1941
+ --tokenStart;
1942
+ else
1943
+ break;
1944
+ }
1945
+
1946
+ if (e.getNumberOfClicks() > 2)
1947
+ {
1948
+ while (tokenEnd < totalLength)
1949
+ {
1950
+ auto c = t[tokenEnd];
1951
+
1952
+ if (c != '\r' && c != '\n')
1953
+ ++tokenEnd;
1954
+ else
1955
+ break;
1956
+ }
1957
+
1958
+ while (tokenStart > 0)
1959
+ {
1960
+ auto c = t[tokenStart - 1];
1961
+
1962
+ if (c != '\r' && c != '\n')
1963
+ --tokenStart;
1964
+ else
1965
+ break;
1966
+ }
1967
+ }
1968
+ }
1969
+
1970
+ moveCaretTo (tokenEnd, false);
1971
+ moveCaretTo (tokenStart, true);
1972
+ }
1973
+
1974
+ void TextEditor::mouseWheelMove (const MouseEvent& e, const MouseWheelDetails& wheel)
1975
+ {
1976
+ if (! viewport->useMouseWheelMoveIfNeeded (e, wheel))
1977
+ Component::mouseWheelMove (e, wheel);
1978
+ }
1979
+
1980
+ //==============================================================================
1981
+ bool TextEditor::moveCaretWithTransaction (const int newPos, const bool selecting)
1982
+ {
1983
+ newTransaction();
1984
+ moveCaretTo (newPos, selecting);
1985
+
1986
+ if (auto* peer = getPeer())
1987
+ peer->closeInputMethodContext();
1988
+
1989
+ return true;
1990
+ }
1991
+
1992
+ bool TextEditor::moveCaretLeft (bool moveInWholeWordSteps, bool selecting)
1993
+ {
1994
+ auto pos = getCaretPosition();
1995
+
1996
+ if (moveInWholeWordSteps)
1997
+ pos = findWordBreakBefore (pos);
1998
+ else
1999
+ --pos;
2000
+
2001
+ return moveCaretWithTransaction (pos, selecting);
2002
+ }
2003
+
2004
+ bool TextEditor::moveCaretRight (bool moveInWholeWordSteps, bool selecting)
2005
+ {
2006
+ auto pos = getCaretPosition();
2007
+
2008
+ if (moveInWholeWordSteps)
2009
+ pos = findWordBreakAfter (pos);
2010
+ else
2011
+ ++pos;
2012
+
2013
+ return moveCaretWithTransaction (pos, selecting);
2014
+ }
2015
+
2016
+ bool TextEditor::moveCaretUp (bool selecting)
2017
+ {
2018
+ if (! isMultiLine())
2019
+ return moveCaretToStartOfLine (selecting);
2020
+
2021
+ const auto caretPos = (getCaretRectangle() - getTextOffset()).toFloat();
2022
+
2023
+ const auto newY = caretPos.getY() - 1.0f;
2024
+
2025
+ if (newY < 0.0f)
2026
+ return moveCaretToStartOfLine (selecting);
2027
+
2028
+ return moveCaretWithTransaction (indexAtPosition (caretPos.getX(), newY), selecting);
2029
+ }
2030
+
2031
+ bool TextEditor::moveCaretDown (bool selecting)
2032
+ {
2033
+ if (! isMultiLine())
2034
+ return moveCaretToEndOfLine (selecting);
2035
+
2036
+ const auto caretPos = (getCaretRectangle() - getTextOffset()).toFloat();
2037
+ return moveCaretWithTransaction (indexAtPosition (caretPos.getX(), caretPos.getBottom() + 1.0f), selecting);
2038
+ }
2039
+
2040
+ bool TextEditor::pageUp (bool selecting)
2041
+ {
2042
+ if (! isMultiLine())
2043
+ return moveCaretToStartOfLine (selecting);
2044
+
2045
+ const auto caretPos = (getCaretRectangle() - getTextOffset()).toFloat();
2046
+ return moveCaretWithTransaction (indexAtPosition (caretPos.getX(), caretPos.getY() - (float) viewport->getViewHeight()), selecting);
2047
+ }
2048
+
2049
+ bool TextEditor::pageDown (bool selecting)
2050
+ {
2051
+ if (! isMultiLine())
2052
+ return moveCaretToEndOfLine (selecting);
2053
+
2054
+ const auto caretPos = (getCaretRectangle() - getTextOffset()).toFloat();
2055
+ return moveCaretWithTransaction (indexAtPosition (caretPos.getX(), caretPos.getBottom() + (float) viewport->getViewHeight()), selecting);
2056
+ }
2057
+
2058
+ void TextEditor::scrollByLines (int deltaLines)
2059
+ {
2060
+ viewport->getVerticalScrollBar().moveScrollbarInSteps (deltaLines);
2061
+ }
2062
+
2063
+ bool TextEditor::scrollDown()
2064
+ {
2065
+ scrollByLines (-1);
2066
+ return true;
2067
+ }
2068
+
2069
+ bool TextEditor::scrollUp()
2070
+ {
2071
+ scrollByLines (1);
2072
+ return true;
2073
+ }
2074
+
2075
+ bool TextEditor::moveCaretToTop (bool selecting)
2076
+ {
2077
+ return moveCaretWithTransaction (0, selecting);
2078
+ }
2079
+
2080
+ bool TextEditor::moveCaretToStartOfLine (bool selecting)
2081
+ {
2082
+ const auto caretPos = (getCaretRectangle() - getTextOffset()).toFloat();
2083
+ return moveCaretWithTransaction (indexAtPosition (0.0f, caretPos.getCentreY()), selecting);
2084
+ }
2085
+
2086
+ bool TextEditor::moveCaretToEnd (bool selecting)
2087
+ {
2088
+ return moveCaretWithTransaction (getTotalNumChars(), selecting);
2089
+ }
2090
+
2091
+ bool TextEditor::moveCaretToEndOfLine (bool selecting)
2092
+ {
2093
+ const auto caretPos = (getCaretRectangle() - getTextOffset()).toFloat();
2094
+ return moveCaretWithTransaction (indexAtPosition ((float) textHolder->getWidth(), caretPos.getCentreY()), selecting);
2095
+ }
2096
+
2097
+ bool TextEditor::deleteBackwards (bool moveInWholeWordSteps)
2098
+ {
2099
+ if (moveInWholeWordSteps)
2100
+ moveCaretTo (findWordBreakBefore (getCaretPosition()), true);
2101
+ else if (selection.isEmpty() && selection.getStart() > 0)
2102
+ setSelection ({ selection.getEnd() - 1, selection.getEnd() });
2103
+
2104
+ cut();
2105
+ return true;
2106
+ }
2107
+
2108
+ bool TextEditor::deleteForwards (bool /*moveInWholeWordSteps*/)
2109
+ {
2110
+ if (selection.isEmpty() && selection.getStart() < getTotalNumChars())
2111
+ setSelection ({ selection.getStart(), selection.getStart() + 1 });
2112
+
2113
+ cut();
2114
+ return true;
2115
+ }
2116
+
2117
+ bool TextEditor::copyToClipboard()
2118
+ {
2119
+ newTransaction();
2120
+ copy();
2121
+ return true;
2122
+ }
2123
+
2124
+ bool TextEditor::cutToClipboard()
2125
+ {
2126
+ newTransaction();
2127
+ copy();
2128
+ cut();
2129
+ return true;
2130
+ }
2131
+
2132
+ bool TextEditor::pasteFromClipboard()
2133
+ {
2134
+ newTransaction();
2135
+ paste();
2136
+ return true;
2137
+ }
2138
+
2139
+ bool TextEditor::selectAll()
2140
+ {
2141
+ newTransaction();
2142
+ moveCaretTo (getTotalNumChars(), false);
2143
+ moveCaretTo (0, true);
2144
+ return true;
2145
+ }
2146
+
2147
+ //==============================================================================
2148
+ void TextEditor::setEscapeAndReturnKeysConsumed (bool shouldBeConsumed) noexcept
2149
+ {
2150
+ consumeEscAndReturnKeys = shouldBeConsumed;
2151
+ }
2152
+
2153
+ bool TextEditor::keyPressed (const KeyPress& key)
2154
+ {
2155
+ if (isReadOnly() && key != KeyPress ('c', ModifierKeys::commandModifier, 0)
2156
+ && key != KeyPress ('a', ModifierKeys::commandModifier, 0))
2157
+ return false;
2158
+
2159
+ if (! TextEditorKeyMapper<TextEditor>::invokeKeyFunction (*this, key))
2160
+ {
2161
+ if (key == KeyPress::returnKey)
2162
+ {
2163
+ newTransaction();
2164
+
2165
+ if (returnKeyStartsNewLine)
2166
+ {
2167
+ insertTextAtCaret ("\n");
2168
+ }
2169
+ else
2170
+ {
2171
+ returnPressed();
2172
+ return consumeEscAndReturnKeys;
2173
+ }
2174
+ }
2175
+ else if (key.isKeyCode (KeyPress::escapeKey))
2176
+ {
2177
+ newTransaction();
2178
+ moveCaretTo (getCaretPosition(), false);
2179
+ escapePressed();
2180
+ return consumeEscAndReturnKeys;
2181
+ }
2182
+ else if (key.getTextCharacter() >= ' '
2183
+ || (tabKeyUsed && (key.getTextCharacter() == '\t')))
2184
+ {
2185
+ insertTextAtCaret (String::charToString (key.getTextCharacter()));
2186
+
2187
+ lastTransactionTime = Time::getApproximateMillisecondCounter();
2188
+ }
2189
+ else
2190
+ {
2191
+ return false;
2192
+ }
2193
+ }
2194
+
2195
+ return true;
2196
+ }
2197
+
2198
+ bool TextEditor::keyStateChanged (const bool isKeyDown)
2199
+ {
2200
+ if (! isKeyDown)
2201
+ return false;
2202
+
2203
+ #if JUCE_WINDOWS
2204
+ if (KeyPress (KeyPress::F4Key, ModifierKeys::altModifier, 0).isCurrentlyDown())
2205
+ return false; // We need to explicitly allow alt-F4 to pass through on Windows
2206
+ #endif
2207
+
2208
+ if ((! consumeEscAndReturnKeys)
2209
+ && (KeyPress (KeyPress::escapeKey).isCurrentlyDown()
2210
+ || KeyPress (KeyPress::returnKey).isCurrentlyDown()))
2211
+ return false;
2212
+
2213
+ // (overridden to avoid forwarding key events to the parent)
2214
+ return ! ModifierKeys::currentModifiers.isCommandDown();
2215
+ }
2216
+
2217
+ //==============================================================================
2218
+ void TextEditor::focusGained (FocusChangeType cause)
2219
+ {
2220
+ newTransaction();
2221
+
2222
+ if (selectAllTextWhenFocused)
2223
+ {
2224
+ moveCaretTo (0, false);
2225
+ moveCaretTo (getTotalNumChars(), true);
2226
+ }
2227
+
2228
+ checkFocus();
2229
+
2230
+ if (cause == FocusChangeType::focusChangedByMouseClick && selectAllTextWhenFocused)
2231
+ wasFocused = false;
2232
+
2233
+ repaint();
2234
+ updateCaretPosition();
2235
+ }
2236
+
2237
+ void TextEditor::focusLost (FocusChangeType)
2238
+ {
2239
+ newTransaction();
2240
+
2241
+ wasFocused = false;
2242
+ textHolder->stopTimer();
2243
+
2244
+ underlinedSections.clear();
2245
+
2246
+ updateCaretPosition();
2247
+
2248
+ postCommandMessage (TextEditorDefs::focusLossMessageId);
2249
+ repaint();
2250
+ }
2251
+
2252
+ //==============================================================================
2253
+ void TextEditor::resized()
2254
+ {
2255
+ viewport->setBoundsInset (borderSize);
2256
+ viewport->setSingleStepSizes (16, roundToInt (currentFont.getHeight()));
2257
+
2258
+ checkLayout();
2259
+
2260
+ if (isMultiLine())
2261
+ updateCaretPosition();
2262
+ else
2263
+ scrollToMakeSureCursorIsVisible();
2264
+ }
2265
+
2266
+ void TextEditor::handleCommandMessage (const int commandId)
2267
+ {
2268
+ Component::BailOutChecker checker (this);
2269
+
2270
+ switch (commandId)
2271
+ {
2272
+ case TextEditorDefs::textChangeMessageId:
2273
+ listeners.callChecked (checker, [this] (Listener& l) { l.textEditorTextChanged (*this); });
2274
+
2275
+ if (! checker.shouldBailOut())
2276
+ NullCheckedInvocation::invoke (onTextChange);
2277
+
2278
+ break;
2279
+
2280
+ case TextEditorDefs::returnKeyMessageId:
2281
+ listeners.callChecked (checker, [this] (Listener& l) { l.textEditorReturnKeyPressed (*this); });
2282
+
2283
+ if (! checker.shouldBailOut())
2284
+ NullCheckedInvocation::invoke (onReturnKey);
2285
+
2286
+ break;
2287
+
2288
+ case TextEditorDefs::escapeKeyMessageId:
2289
+ listeners.callChecked (checker, [this] (Listener& l) { l.textEditorEscapeKeyPressed (*this); });
2290
+
2291
+ if (! checker.shouldBailOut())
2292
+ NullCheckedInvocation::invoke (onEscapeKey);
2293
+
2294
+ break;
2295
+
2296
+ case TextEditorDefs::focusLossMessageId:
2297
+ updateValueFromText();
2298
+ listeners.callChecked (checker, [this] (Listener& l) { l.textEditorFocusLost (*this); });
2299
+
2300
+ if (! checker.shouldBailOut())
2301
+ NullCheckedInvocation::invoke (onFocusLost);
2302
+
2303
+ break;
2304
+
2305
+ default:
2306
+ jassertfalse;
2307
+ break;
2308
+ }
2309
+ }
2310
+
2311
+ void TextEditor::setTemporaryUnderlining (const Array<Range<int>>& newUnderlinedSections)
2312
+ {
2313
+ underlinedSections = newUnderlinedSections;
2314
+ repaint();
2315
+ }
2316
+
2317
+ TextInputTarget::VirtualKeyboardType TextEditor::getKeyboardType()
2318
+ {
2319
+ return passwordCharacter != 0 ? passwordKeyboard : keyboardType;
2320
+ }
2321
+
2322
+ //==============================================================================
2323
+ UndoManager* TextEditor::getUndoManager() noexcept
2324
+ {
2325
+ return readOnly ? nullptr : &undoManager;
2326
+ }
2327
+
2328
+ void TextEditor::clearInternal (UndoManager* const um)
2329
+ {
2330
+ remove ({ 0, getTotalNumChars() }, um, caretPosition);
2331
+ }
2332
+
2333
+ void TextEditor::insert (const String& text, int insertIndex, const Font& font,
2334
+ Colour colour, UndoManager* um, int caretPositionToMoveTo)
2335
+ {
2336
+ if (text.isNotEmpty())
2337
+ {
2338
+ if (um != nullptr)
2339
+ {
2340
+ if (um->getNumActionsInCurrentTransaction() > TextEditorDefs::maxActionsPerTransaction)
2341
+ newTransaction();
2342
+
2343
+ um->perform (new InsertAction (*this, text, insertIndex, font, colour,
2344
+ caretPosition, caretPositionToMoveTo));
2345
+ }
2346
+ else
2347
+ {
2348
+ repaintText ({ insertIndex, getTotalNumChars() }); // must do this before and after changing the data, in case
2349
+ // a line gets moved due to word wrap
2350
+
2351
+ int index = 0;
2352
+ int nextIndex = 0;
2353
+
2354
+ for (int i = 0; i < sections.size(); ++i)
2355
+ {
2356
+ nextIndex = index + sections.getUnchecked (i)->getTotalLength();
2357
+
2358
+ if (insertIndex == index)
2359
+ {
2360
+ sections.insert (i, new UniformTextSection (text, font, colour, passwordCharacter));
2361
+ break;
2362
+ }
2363
+
2364
+ if (insertIndex > index && insertIndex < nextIndex)
2365
+ {
2366
+ splitSection (i, insertIndex - index);
2367
+ sections.insert (i + 1, new UniformTextSection (text, font, colour, passwordCharacter));
2368
+ break;
2369
+ }
2370
+
2371
+ index = nextIndex;
2372
+ }
2373
+
2374
+ if (nextIndex == insertIndex)
2375
+ sections.add (new UniformTextSection (text, font, colour, passwordCharacter));
2376
+
2377
+ coalesceSimilarSections();
2378
+ totalNumChars = -1;
2379
+ valueTextNeedsUpdating = true;
2380
+
2381
+ checkLayout();
2382
+ moveCaretTo (caretPositionToMoveTo, false);
2383
+
2384
+ repaintText ({ insertIndex, getTotalNumChars() });
2385
+ }
2386
+ }
2387
+ }
2388
+
2389
+ void TextEditor::reinsert (int insertIndex, const OwnedArray<UniformTextSection>& sectionsToInsert)
2390
+ {
2391
+ int index = 0;
2392
+ int nextIndex = 0;
2393
+
2394
+ for (int i = 0; i < sections.size(); ++i)
2395
+ {
2396
+ nextIndex = index + sections.getUnchecked (i)->getTotalLength();
2397
+
2398
+ if (insertIndex == index)
2399
+ {
2400
+ for (int j = sectionsToInsert.size(); --j >= 0;)
2401
+ sections.insert (i, new UniformTextSection (*sectionsToInsert.getUnchecked (j)));
2402
+
2403
+ break;
2404
+ }
2405
+
2406
+ if (insertIndex > index && insertIndex < nextIndex)
2407
+ {
2408
+ splitSection (i, insertIndex - index);
2409
+
2410
+ for (int j = sectionsToInsert.size(); --j >= 0;)
2411
+ sections.insert (i + 1, new UniformTextSection (*sectionsToInsert.getUnchecked (j)));
2412
+
2413
+ break;
2414
+ }
2415
+
2416
+ index = nextIndex;
2417
+ }
2418
+
2419
+ if (nextIndex == insertIndex)
2420
+ for (auto* s : sectionsToInsert)
2421
+ sections.add (new UniformTextSection (*s));
2422
+
2423
+ coalesceSimilarSections();
2424
+ totalNumChars = -1;
2425
+ valueTextNeedsUpdating = true;
2426
+ }
2427
+
2428
+ void TextEditor::remove (Range<int> range, UndoManager* const um, const int caretPositionToMoveTo)
2429
+ {
2430
+ if (! range.isEmpty())
2431
+ {
2432
+ int index = 0;
2433
+
2434
+ for (int i = 0; i < sections.size(); ++i)
2435
+ {
2436
+ auto nextIndex = index + sections.getUnchecked (i)->getTotalLength();
2437
+
2438
+ if (range.getStart() > index && range.getStart() < nextIndex)
2439
+ {
2440
+ splitSection (i, range.getStart() - index);
2441
+ --i;
2442
+ }
2443
+ else if (range.getEnd() > index && range.getEnd() < nextIndex)
2444
+ {
2445
+ splitSection (i, range.getEnd() - index);
2446
+ --i;
2447
+ }
2448
+ else
2449
+ {
2450
+ index = nextIndex;
2451
+
2452
+ if (index > range.getEnd())
2453
+ break;
2454
+ }
2455
+ }
2456
+
2457
+ index = 0;
2458
+
2459
+ if (um != nullptr)
2460
+ {
2461
+ Array<UniformTextSection*> removedSections;
2462
+
2463
+ for (auto* section : sections)
2464
+ {
2465
+ if (range.getEnd() <= range.getStart())
2466
+ break;
2467
+
2468
+ auto nextIndex = index + section->getTotalLength();
2469
+
2470
+ if (range.getStart() <= index && range.getEnd() >= nextIndex)
2471
+ removedSections.add (new UniformTextSection (*section));
2472
+
2473
+ index = nextIndex;
2474
+ }
2475
+
2476
+ if (um->getNumActionsInCurrentTransaction() > TextEditorDefs::maxActionsPerTransaction)
2477
+ newTransaction();
2478
+
2479
+ um->perform (new RemoveAction (*this, range, caretPosition,
2480
+ caretPositionToMoveTo, removedSections));
2481
+ }
2482
+ else
2483
+ {
2484
+ auto remainingRange = range;
2485
+
2486
+ for (int i = 0; i < sections.size(); ++i)
2487
+ {
2488
+ auto* section = sections.getUnchecked (i);
2489
+ auto nextIndex = index + section->getTotalLength();
2490
+
2491
+ if (remainingRange.getStart() <= index && remainingRange.getEnd() >= nextIndex)
2492
+ {
2493
+ sections.remove (i);
2494
+ remainingRange.setEnd (remainingRange.getEnd() - (nextIndex - index));
2495
+
2496
+ if (remainingRange.isEmpty())
2497
+ break;
2498
+
2499
+ --i;
2500
+ }
2501
+ else
2502
+ {
2503
+ index = nextIndex;
2504
+ }
2505
+ }
2506
+
2507
+ coalesceSimilarSections();
2508
+ totalNumChars = -1;
2509
+ valueTextNeedsUpdating = true;
2510
+
2511
+ checkLayout();
2512
+ moveCaretTo (caretPositionToMoveTo, false);
2513
+
2514
+ repaintText ({ range.getStart(), getTotalNumChars() });
2515
+ }
2516
+ }
2517
+ }
2518
+
2519
+ //==============================================================================
2520
+ String TextEditor::getText() const
2521
+ {
2522
+ MemoryOutputStream mo;
2523
+ mo.preallocate ((size_t) getTotalNumChars());
2524
+
2525
+ for (auto* s : sections)
2526
+ s->appendAllText (mo);
2527
+
2528
+ return mo.toUTF8();
2529
+ }
2530
+
2531
+ String TextEditor::getTextInRange (const Range<int>& range) const
2532
+ {
2533
+ if (range.isEmpty())
2534
+ return {};
2535
+
2536
+ MemoryOutputStream mo;
2537
+ mo.preallocate ((size_t) jmin (getTotalNumChars(), range.getLength()));
2538
+
2539
+ int index = 0;
2540
+
2541
+ for (auto* s : sections)
2542
+ {
2543
+ auto nextIndex = index + s->getTotalLength();
2544
+
2545
+ if (range.getStart() < nextIndex)
2546
+ {
2547
+ if (range.getEnd() <= index)
2548
+ break;
2549
+
2550
+ s->appendSubstring (mo, range - index);
2551
+ }
2552
+
2553
+ index = nextIndex;
2554
+ }
2555
+
2556
+ return mo.toUTF8();
2557
+ }
2558
+
2559
+ String TextEditor::getHighlightedText() const
2560
+ {
2561
+ return getTextInRange (selection);
2562
+ }
2563
+
2564
+ int TextEditor::getTotalNumChars() const
2565
+ {
2566
+ if (totalNumChars < 0)
2567
+ {
2568
+ totalNumChars = 0;
2569
+
2570
+ for (auto* s : sections)
2571
+ totalNumChars += s->getTotalLength();
2572
+ }
2573
+
2574
+ return totalNumChars;
2575
+ }
2576
+
2577
+ bool TextEditor::isEmpty() const
2578
+ {
2579
+ return getTotalNumChars() == 0;
2580
+ }
2581
+
2582
+ void TextEditor::getCharPosition (int index, Point<float>& anchor, float& lineHeight) const
2583
+ {
2584
+ if (getWordWrapWidth() <= 0)
2585
+ {
2586
+ anchor = {};
2587
+ lineHeight = currentFont.getHeight();
2588
+ }
2589
+ else
2590
+ {
2591
+ Iterator i (*this);
2592
+
2593
+ if (sections.isEmpty())
2594
+ {
2595
+ anchor = { i.getJustificationOffsetX (0), 0 };
2596
+ lineHeight = currentFont.getHeight();
2597
+ }
2598
+ else
2599
+ {
2600
+ i.getCharPosition (index, anchor, lineHeight);
2601
+ }
2602
+ }
2603
+ }
2604
+
2605
+ int TextEditor::indexAtPosition (const float x, const float y) const
2606
+ {
2607
+ if (getWordWrapWidth() > 0)
2608
+ {
2609
+ for (Iterator i (*this); i.next();)
2610
+ {
2611
+ if (y < i.lineY + (i.lineHeight * lineSpacing))
2612
+ {
2613
+ if (jmax (0.0f, y) < i.lineY)
2614
+ return jmax (0, i.indexInText - 1);
2615
+
2616
+ if (x <= i.atomX || i.atom->isNewLine())
2617
+ return i.indexInText;
2618
+
2619
+ if (x < i.atomRight)
2620
+ return i.xToIndex (x);
2621
+ }
2622
+ }
2623
+ }
2624
+
2625
+ return getTotalNumChars();
2626
+ }
2627
+
2628
+ //==============================================================================
2629
+ int TextEditor::findWordBreakAfter (const int position) const
2630
+ {
2631
+ auto t = getTextInRange ({ position, position + 512 });
2632
+ auto totalLength = t.length();
2633
+ int i = 0;
2634
+
2635
+ while (i < totalLength && CharacterFunctions::isWhitespace (t[i]))
2636
+ ++i;
2637
+
2638
+ auto type = TextEditorDefs::getCharacterCategory (t[i]);
2639
+
2640
+ while (i < totalLength && type == TextEditorDefs::getCharacterCategory (t[i]))
2641
+ ++i;
2642
+
2643
+ while (i < totalLength && CharacterFunctions::isWhitespace (t[i]))
2644
+ ++i;
2645
+
2646
+ return position + i;
2647
+ }
2648
+
2649
+ int TextEditor::findWordBreakBefore (const int position) const
2650
+ {
2651
+ if (position <= 0)
2652
+ return 0;
2653
+
2654
+ auto startOfBuffer = jmax (0, position - 512);
2655
+ auto t = getTextInRange ({ startOfBuffer, position });
2656
+
2657
+ int i = position - startOfBuffer;
2658
+
2659
+ while (i > 0 && CharacterFunctions::isWhitespace (t [i - 1]))
2660
+ --i;
2661
+
2662
+ if (i > 0)
2663
+ {
2664
+ auto type = TextEditorDefs::getCharacterCategory (t [i - 1]);
2665
+
2666
+ while (i > 0 && type == TextEditorDefs::getCharacterCategory (t [i - 1]))
2667
+ --i;
2668
+ }
2669
+
2670
+ jassert (startOfBuffer + i >= 0);
2671
+ return startOfBuffer + i;
2672
+ }
2673
+
2674
+
2675
+ //==============================================================================
2676
+ void TextEditor::splitSection (const int sectionIndex, const int charToSplitAt)
2677
+ {
2678
+ jassert (sections[sectionIndex] != nullptr);
2679
+
2680
+ sections.insert (sectionIndex + 1,
2681
+ sections.getUnchecked (sectionIndex)->split (charToSplitAt));
2682
+ }
2683
+
2684
+ void TextEditor::coalesceSimilarSections()
2685
+ {
2686
+ for (int i = 0; i < sections.size() - 1; ++i)
2687
+ {
2688
+ auto* s1 = sections.getUnchecked (i);
2689
+ auto* s2 = sections.getUnchecked (i + 1);
2690
+
2691
+ if (s1->font == s2->font
2692
+ && s1->colour == s2->colour)
2693
+ {
2694
+ s1->append (*s2);
2695
+ sections.remove (i + 1);
2696
+ --i;
2697
+ }
2698
+ }
2699
+ }
2700
+
2701
+ //==============================================================================
2702
+ class TextEditor::EditorAccessibilityHandler final : public AccessibilityHandler
2703
+ {
2704
+ public:
2705
+ explicit EditorAccessibilityHandler (TextEditor& textEditorToWrap)
2706
+ : AccessibilityHandler (textEditorToWrap,
2707
+ textEditorToWrap.isReadOnly() ? AccessibilityRole::staticText : AccessibilityRole::editableText,
2708
+ {},
2709
+ { std::make_unique<TextEditorTextInterface> (textEditorToWrap) }),
2710
+ textEditor (textEditorToWrap)
2711
+ {
2712
+ }
2713
+
2714
+ String getHelp() const override { return textEditor.getTooltip(); }
2715
+
2716
+ private:
2717
+ class TextEditorTextInterface final : public AccessibilityTextInterface
2718
+ {
2719
+ public:
2720
+ explicit TextEditorTextInterface (TextEditor& editor)
2721
+ : textEditor (editor)
2722
+ {
2723
+ }
2724
+
2725
+ bool isDisplayingProtectedText() const override { return textEditor.getPasswordCharacter() != 0; }
2726
+ bool isReadOnly() const override { return textEditor.isReadOnly(); }
2727
+
2728
+ int getTotalNumCharacters() const override { return textEditor.getText().length(); }
2729
+ Range<int> getSelection() const override { return textEditor.getHighlightedRegion(); }
2730
+
2731
+ void setSelection (Range<int> r) override
2732
+ {
2733
+ textEditor.setHighlightedRegion (r);
2734
+ }
2735
+
2736
+ String getText (Range<int> r) const override
2737
+ {
2738
+ if (isDisplayingProtectedText())
2739
+ return String::repeatedString (String::charToString (textEditor.getPasswordCharacter()),
2740
+ getTotalNumCharacters());
2741
+
2742
+ return textEditor.getTextInRange (r);
2743
+ }
2744
+
2745
+ void setText (const String& newText) override
2746
+ {
2747
+ textEditor.setText (newText);
2748
+ }
2749
+
2750
+ int getTextInsertionOffset() const override { return textEditor.getCaretPosition(); }
2751
+
2752
+ RectangleList<int> getTextBounds (Range<int> textRange) const override
2753
+ {
2754
+ auto localRects = textEditor.getTextBounds (textRange);
2755
+ RectangleList<int> globalRects;
2756
+
2757
+ std::for_each (localRects.begin(), localRects.end(),
2758
+ [&] (const Rectangle<int>& r) { globalRects.add (textEditor.localAreaToGlobal (r)); });
2759
+
2760
+ return globalRects;
2761
+ }
2762
+
2763
+ int getOffsetAtPoint (Point<int> point) const override
2764
+ {
2765
+ return textEditor.getTextIndexAt (textEditor.getLocalPoint (nullptr, point));
2766
+ }
2767
+
2768
+ private:
2769
+ TextEditor& textEditor;
2770
+
2771
+ //==============================================================================
2772
+ JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (TextEditorTextInterface)
2773
+ };
2774
+
2775
+ TextEditor& textEditor;
2776
+
2777
+ //==============================================================================
2778
+ JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (EditorAccessibilityHandler)
2779
+ };
2780
+
2781
+ std::unique_ptr<AccessibilityHandler> TextEditor::createAccessibilityHandler()
2782
+ {
2783
+ return std::make_unique<EditorAccessibilityHandler> (*this);
2784
+ }
2785
+
2786
+ } // namespace juce