OpenTTD Source: OSXStringIterator Class Reference

OpenTTD Source 12.0-beta1

Data Structures | Public Member Functions | Static Public Member Functions | Private Attributes
OSXStringIterator Class Reference

String iterator using CoreText as a backend. More...

`#include <string_osx.h>`

Inheritance diagram for OSXStringIterator:

## Data Structures
struct | CharInfo
| Break info for a character. More...

## Public Member Functions
void | SetString (const char *s) override
| Set a new iteration string. More...
size_t | SetCurPosition (size_t pos) override
| Change the current string cursor. More...
size_t | Next (IterType what) override
| Advance the cursor by one iteration unit. More...
size_t | Prev (IterType what) override
| Move the cursor back by one iteration unit. More...

## Static Public Member Functions
static StringIterator * | Create ()
Static Public Member Functions inherited from StringIterator
static StringIterator * | Create ()
| Create a new iterator instance. More...

## Private Attributes
std::vector< CharInfo > | str_info
| Break information for each code point.
std::vector< size_t > | utf16_to_utf8
| Mapping from UTF-16 code point position to index in the UTF-8 source string.
size_t | cur_pos
| Current iteration position.

## Additional Inherited Members
Public Types inherited from StringIterator
enum | IterType { ITER_CHARACTER, ITER_WORD }
| Type of the iterator. More...
Static Public Attributes inherited from StringIterator
static const size_t | END = SIZE_MAX
| Sentinel to indicate end-of-iteration.

## Detailed Description

String iterator using CoreText as a backend.

Definition at line 18 of file string_osx.h.

## Member Function Documentation

## ◆ Next()

size_t OSXStringIterator::Next | ( | IterType | what | ) |
| overridevirtual

Advance the cursor by one iteration unit.

Returns
  New cursor position (in bytes) or END if the cursor is already at the end of the string.

Implements StringIterator.

Definition at line 417 of file string_osx.cpp.

References StringIterator::ITER_CHARACTER, and StringIterator::ITER_WORD.

## ◆ Prev()

size_t OSXStringIterator::Prev | ( | IterType | what | ) |
| overridevirtual

Move the cursor back by one iteration unit.

Returns
  New cursor position (in bytes) or END if the cursor is already at the start of the string.

Implements StringIterator.

Definition at line 431 of file string_osx.cpp.

References StringIterator::ITER_CHARACTER, and StringIterator::ITER_WORD.

## ◆ SetCurPosition()

size_t OSXStringIterator::SetCurPosition | ( | size_t | pos | ) |
| overridevirtual

Change the current string cursor.

Parameters

  pos | New cursor position.

Returns
  Actual new cursor position at the next valid character boundary.

Precondition
  pos has to be inside the current string.

Implements StringIterator.

Definition at line 399 of file string_osx.cpp.

## ◆ SetString()

void OSXStringIterator::SetString | ( | const char * | s | ) |
| overridevirtual

Set a new iteration string.

Must also be called if the string contents changed. The cursor is reset to the start of the string.

Parameters

  s | New string.

< UTF-16 copy of the string.

Implements StringIterator.

Definition at line 340 of file string_osx.cpp.

The documentation for this class was generated from the following files:

- src/os/macosx/string_osx.h
- src/os/macosx/string_osx.cpp