4#ifndef _Stroika_Frameworks_Led_TextBreaks_h_
5#define _Stroika_Frameworks_Led_TextBreaks_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
9#include "Stroika/Frameworks/Led/Support.h"
21namespace Stroika::Frameworks::Led {
51 TextBreaks () =
default;
54 virtual ~TextBreaks () =
default;
67 virtual void FindWordBreaks (
const Led_tChar* startOfText,
size_t lengthOfText,
size_t textOffsetToStartLookingForWord,
68 size_t* wordStartResult,
size_t* wordEndResult,
bool* wordReal)
const = 0;
80 virtual void FindLineBreaks (
const Led_tChar* startOfText,
size_t lengthOfText,
size_t textOffsetToStartLookingForWord,
81 size_t* wordEndResult,
bool* wordReal)
const = 0;
90 class TextBreaks_Basic :
public TextBreaks {
92 using inherited = TextBreaks;
98 virtual void FindWordBreaks (
const Led_tChar* startOfText,
size_t lengthOfText,
size_t textOffsetToStartLookingForWord,
99 size_t* wordStartResult,
size_t* wordEndResult,
bool* wordReal)
const override;
100 virtual void FindLineBreaks (
const Led_tChar* startOfText,
size_t lengthOfText,
size_t textOffsetToStartLookingForWord,
101 size_t* wordEndResult,
bool* wordReal)
const override;
104 enum CharacterClasses {
111 eRomanjiOrDigitClass,
116 virtual CharacterClasses CharToCharacterClass (
const Led_tChar* startOfText,
size_t lengthOfText,
const Led_tChar* charToExamine)
const;
118#if qStroika_Foundation_Debug_AssertionsChecked
120 nonvirtual
void RegressionTest ();
129 class TextBreaks_Basic_WP :
public TextBreaks_Basic {
131 using inherited = TextBreaks_Basic;
134 TextBreaks_Basic_WP ();
137 virtual CharacterClasses CharToCharacterClass (
const Led_tChar* startOfText,
size_t lengthOfText,
const Led_tChar* charToExamine)
const override;
139#if qStroika_Foundation_Debug_AssertionsChecked
141 nonvirtual
void RegressionTest ();
150 class TextBreaks_Basic_TextEditor :
public TextBreaks_Basic {
152 using inherited = TextBreaks_Basic;
155 TextBreaks_Basic_TextEditor ();
158 virtual CharacterClasses CharToCharacterClass (
const Led_tChar* startOfText,
size_t lengthOfText,
const Led_tChar* charToExamine)
const override;
160#if qStroika_Foundation_Debug_AssertionsChecked
162 nonvirtual
void RegressionTest ();
166#if qStroika_Foundation_Common_Platform_MacOS
173 class TextBreaks_System :
public TextBreaks {
181 virtual void FindWordBreaks (
const Led_tChar* startOfText,
size_t lengthOfText,
size_t textOffsetToStartLookingForWord,
182 size_t* wordStartResult,
size_t* wordEndResult,
bool* wordReal)
const override;
183 virtual void FindLineBreaks (
const Led_tChar* startOfText,
size_t lengthOfText,
size_t textOffsetToStartLookingForWord,
184 size_t* wordEndResult,
bool* wordReal)
const override;
196 using TextBreaks_DefaultImpl = TextBreaks_Basic_WP;
205#include "TextBreaks.inl"