From 6c3043f0828b6d58e32690be50d90efb62969591 Mon Sep 17 00:00:00 2001 From: attila Date: Thu, 13 Mar 2025 09:55:57 +0100 Subject: [PATCH] Add detail::UnicodeHelpers::getLineBreaks --- .../Builds/Android/app/CMakeLists.txt | 2 + .../VisualStudio2019/DemoRunner_App.vcxproj | 1 + .../DemoRunner_App.vcxproj.filters | 3 ++ .../VisualStudio2022/DemoRunner_App.vcxproj | 1 + .../DemoRunner_App.vcxproj.filters | 3 ++ .../Builds/Android/app/CMakeLists.txt | 2 + .../AudioPerformanceTest_App.vcxproj | 1 + .../AudioPerformanceTest_App.vcxproj.filters | 3 ++ .../Builds/Android/app/CMakeLists.txt | 2 + .../AudioPluginHost_App.vcxproj | 1 + .../AudioPluginHost_App.vcxproj.filters | 3 ++ .../AudioPluginHost_App.vcxproj | 1 + .../AudioPluginHost_App.vcxproj.filters | 3 ++ .../Builds/Android/app/CMakeLists.txt | 2 + .../NetworkGraphicsDemo_App.vcxproj | 1 + .../NetworkGraphicsDemo_App.vcxproj.filters | 3 ++ .../VisualStudio2019/Projucer_App.vcxproj | 1 + .../Projucer_App.vcxproj.filters | 3 ++ .../VisualStudio2022/Projucer_App.vcxproj | 1 + .../Projucer_App.vcxproj.filters | 3 ++ .../UnitTestRunner_ConsoleApp.vcxproj | 1 + .../UnitTestRunner_ConsoleApp.vcxproj.filters | 3 ++ .../UnitTestRunner_ConsoleApp.vcxproj | 1 + .../UnitTestRunner_ConsoleApp.vcxproj.filters | 3 ++ .../WindowsDLL_DynamicLibrary.vcxproj | 1 + .../WindowsDLL_DynamicLibrary.vcxproj.filters | 3 ++ modules/juce_graphics/detail/juce_Unicode.h | 45 +++++++++++++++++++ modules/juce_graphics/juce_graphics.h | 1 + .../juce_graphics/unicode/juce_Unicode.cpp | 19 ++++++++ 29 files changed, 117 insertions(+) create mode 100644 modules/juce_graphics/detail/juce_Unicode.h diff --git a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt index 7d09a8d777..e9378b2dc3 100644 --- a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt +++ b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt @@ -1488,6 +1488,7 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_graphics/detail/juce_ShapedText.h" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.cpp" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.h" + "../../../../../modules/juce_graphics/detail/juce_Unicode.h" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h" "../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp" @@ -4092,6 +4093,7 @@ set_source_files_properties( "../../../../../modules/juce_graphics/detail/juce_ShapedText.h" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.cpp" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.h" + "../../../../../modules/juce_graphics/detail/juce_Unicode.h" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h" "../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp" diff --git a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj index 3fab09bb7b..929faf373b 100644 --- a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj +++ b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj @@ -4047,6 +4047,7 @@ + diff --git a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters index 276d765e18..db5fed3a0c 100644 --- a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters +++ b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters @@ -6543,6 +6543,9 @@ JUCE Modules\juce_graphics\detail + + JUCE Modules\juce_graphics\detail + JUCE Modules\juce_graphics\effects diff --git a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj index 6396281066..7fe4d50a26 100644 --- a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj +++ b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj @@ -4047,6 +4047,7 @@ + diff --git a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters index 61a2b6fc37..1962ea3086 100644 --- a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters +++ b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters @@ -6543,6 +6543,9 @@ JUCE Modules\juce_graphics\detail + + JUCE Modules\juce_graphics\detail + JUCE Modules\juce_graphics\effects diff --git a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt index ea17b539e0..b5215a84f9 100644 --- a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt +++ b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt @@ -1250,6 +1250,7 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_graphics/detail/juce_ShapedText.h" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.cpp" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.h" + "../../../../../modules/juce_graphics/detail/juce_Unicode.h" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h" "../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp" @@ -3514,6 +3515,7 @@ set_source_files_properties( "../../../../../modules/juce_graphics/detail/juce_ShapedText.h" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.cpp" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.h" + "../../../../../modules/juce_graphics/detail/juce_Unicode.h" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h" "../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp" diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj index 3820dd2448..745d7542a7 100644 --- a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj @@ -3502,6 +3502,7 @@ + diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters index f6c18101ed..53982d9232 100644 --- a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters +++ b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters @@ -5553,6 +5553,9 @@ JUCE Modules\juce_graphics\detail + + JUCE Modules\juce_graphics\detail + JUCE Modules\juce_graphics\effects diff --git a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt index 01b5d2df93..b8ba9f0141 100644 --- a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt +++ b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt @@ -1380,6 +1380,7 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_graphics/detail/juce_ShapedText.h" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.cpp" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.h" + "../../../../../modules/juce_graphics/detail/juce_Unicode.h" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h" "../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp" @@ -3797,6 +3798,7 @@ set_source_files_properties( "../../../../../modules/juce_graphics/detail/juce_ShapedText.h" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.cpp" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.h" + "../../../../../modules/juce_graphics/detail/juce_Unicode.h" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h" "../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp" diff --git a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj index e0652288d0..e5238541aa 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj +++ b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj @@ -3735,6 +3735,7 @@ + diff --git a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters index a19bae6c76..fbbf3e3027 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters +++ b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters @@ -5988,6 +5988,9 @@ JUCE Modules\juce_graphics\detail + + JUCE Modules\juce_graphics\detail + JUCE Modules\juce_graphics\effects diff --git a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj index 697e6b3e89..036879efa0 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj +++ b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj @@ -3735,6 +3735,7 @@ + diff --git a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters index de14c66afe..d790f141bd 100644 --- a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters +++ b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters @@ -5988,6 +5988,9 @@ JUCE Modules\juce_graphics\detail + + JUCE Modules\juce_graphics\detail + JUCE Modules\juce_graphics\effects diff --git a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt index 778886efbc..f5d1a8bacf 100644 --- a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt +++ b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt @@ -1269,6 +1269,7 @@ add_library( ${BINARY_NAME} "../../../../../modules/juce_graphics/detail/juce_ShapedText.h" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.cpp" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.h" + "../../../../../modules/juce_graphics/detail/juce_Unicode.h" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h" "../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp" @@ -3613,6 +3614,7 @@ set_source_files_properties( "../../../../../modules/juce_graphics/detail/juce_ShapedText.h" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.cpp" "../../../../../modules/juce_graphics/detail/juce_SimpleShapedText.h" + "../../../../../modules/juce_graphics/detail/juce_Unicode.h" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp" "../../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h" "../../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp" diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj index cd3895bdc9..c83ca044e7 100644 --- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj +++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj @@ -3600,6 +3600,7 @@ + diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters index 958b7e982a..2910982e40 100644 --- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters +++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters @@ -5715,6 +5715,9 @@ JUCE Modules\juce_graphics\detail + + JUCE Modules\juce_graphics\detail + JUCE Modules\juce_graphics\effects diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj index 657323bbda..390cddebdb 100644 --- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj @@ -2300,6 +2300,7 @@ + diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters index f7c9574861..bc2fbf5b30 100644 --- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters @@ -3357,6 +3357,9 @@ JUCE Modules\juce_graphics\detail + + JUCE Modules\juce_graphics\detail + JUCE Modules\juce_graphics\effects diff --git a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj index 37b4e845d6..70dedfbda1 100644 --- a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj @@ -2300,6 +2300,7 @@ + diff --git a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters index 49d6ad81de..01215fc723 100644 --- a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters @@ -3357,6 +3357,9 @@ JUCE Modules\juce_graphics\detail + + JUCE Modules\juce_graphics\detail + JUCE Modules\juce_graphics\effects diff --git a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj index 452f017650..f3fd43007e 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj +++ b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj @@ -3847,6 +3847,7 @@ + diff --git a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters index 962fc80158..0e5bfd87bb 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters +++ b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters @@ -6147,6 +6147,9 @@ JUCE Modules\juce_graphics\detail + + JUCE Modules\juce_graphics\detail + JUCE Modules\juce_graphics\effects diff --git a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj index 649c5f48d6..ca60af9bad 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj +++ b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj @@ -3847,6 +3847,7 @@ + diff --git a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters index c06c9377ea..e58172465c 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters +++ b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters @@ -6147,6 +6147,9 @@ JUCE Modules\juce_graphics\detail + + JUCE Modules\juce_graphics\detail + JUCE Modules\juce_graphics\effects diff --git a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_DynamicLibrary.vcxproj b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_DynamicLibrary.vcxproj index 919ef9fd48..ad0f8c1ffb 100644 --- a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_DynamicLibrary.vcxproj +++ b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_DynamicLibrary.vcxproj @@ -3576,6 +3576,7 @@ + diff --git a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_DynamicLibrary.vcxproj.filters b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_DynamicLibrary.vcxproj.filters index 1e701fc9da..a45cd5f598 100644 --- a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_DynamicLibrary.vcxproj.filters +++ b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_DynamicLibrary.vcxproj.filters @@ -5682,6 +5682,9 @@ JUCE Modules\juce_graphics\detail + + JUCE Modules\juce_graphics\detail + JUCE Modules\juce_graphics\effects diff --git a/modules/juce_graphics/detail/juce_Unicode.h b/modules/juce_graphics/detail/juce_Unicode.h new file mode 100644 index 0000000000..271cd79563 --- /dev/null +++ b/modules/juce_graphics/detail/juce_Unicode.h @@ -0,0 +1,45 @@ +/* + ============================================================================== + + This file is part of the JUCE framework. + Copyright (c) Raw Material Software Limited + + JUCE is an open source framework subject to commercial or open source + licensing. + + By downloading, installing, or using the JUCE framework, or combining the + JUCE framework with any other source code, object code, content or any other + copyrightable work, you agree to the terms of the JUCE End User Licence + Agreement, and all incorporated terms including the JUCE Privacy Policy and + the JUCE Website Terms of Service, as applicable, which will bind you. If you + do not agree to the terms of these agreements, we will not license the JUCE + framework to you, and you must discontinue the installation or download + process and cease use of the JUCE framework. + + JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ + JUCE Privacy Policy: https://juce.com/juce-privacy-policy + JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ + + Or: + + You may also use this code under the terms of the AGPLv3: + https://www.gnu.org/licenses/agpl-3.0.en.html + + THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL + WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. + + ============================================================================== +*/ + +namespace juce::detail +{ + +struct UnicodeHelpers +{ + UnicodeHelpers() = delete; + + static std::vector getLineBreaks (const String& data); +}; + +} // namespace juce::detail diff --git a/modules/juce_graphics/juce_graphics.h b/modules/juce_graphics/juce_graphics.h index 195d1ae31e..893c1f2d77 100644 --- a/modules/juce_graphics/juce_graphics.h +++ b/modules/juce_graphics/juce_graphics.h @@ -152,6 +152,7 @@ namespace juce #include "effects/juce_ImageEffectFilter.h" #include "effects/juce_DropShadowEffect.h" #include "effects/juce_GlowEffect.h" +#include "detail/juce_Unicode.h" #if JUCE_GRAPHICS_INCLUDE_COREGRAPHICS_HELPERS && (JUCE_MAC || JUCE_IOS) #include "native/juce_CoreGraphicsHelpers_mac.h" diff --git a/modules/juce_graphics/unicode/juce_Unicode.cpp b/modules/juce_graphics/unicode/juce_Unicode.cpp index f1cef2a07e..83c6d843a6 100644 --- a/modules/juce_graphics/unicode/juce_Unicode.cpp +++ b/modules/juce_graphics/unicode/juce_Unicode.cpp @@ -204,4 +204,23 @@ private: } }; +namespace detail +{ + +std::vector UnicodeHelpers::getLineBreaks (const String& data) +{ + std::vector lineBreaks; + const auto analysis = Unicode::performAnalysis (data); + + for (const auto [index, codepoint] : enumerate (analysis, int{})) + { + if (codepoint.breaking == TextBreakType::hard) + lineBreaks.push_back (index); + } + + return lineBreaks; +} + +} // namespace detail + } // namespace juce