OpenTTD Source 20260304-master-g1baaa74679
UniscribeParagraphLayout Class Reference

Wrapper for doing layouts with Uniscribe. More...

Inheritance diagram for UniscribeParagraphLayout:
ParagraphLayouter

Data Structures

class  UniscribeVisualRun
 Visual run contains data about the bit of text with the same font. More...
class  UniscribeLine
 A single line worth of VisualRuns. More...

Public Member Functions

 UniscribeParagraphLayout (std::vector< UniscribeRun > &&ranges, const UniscribeParagraphLayoutFactory::CharType *buffer)
void Reflow () override
 Reset the position to the start of the paragraph.
std::unique_ptr< const LineNextLine (int max_width) override
 Construct a new line with a maximum width.
Public Member Functions inherited from ParagraphLayouter
virtual ~ParagraphLayouter ()=default
 Ensure the destructor of the sub classes are called as well.

Private Attributes

const UniscribeParagraphLayoutFactory::CharTypetext_buffer
std::vector< UniscribeRunranges
 All runs of the text.
std::vector< UniscribeRun >::iterator cur_range
 The next run to be output.
int cur_range_offset = 0
 Offset from the start of the current run from where to output.

Detailed Description

Wrapper for doing layouts with Uniscribe.

Definition at line 63 of file string_uniscribe.cpp.

Constructor & Destructor Documentation

◆ UniscribeParagraphLayout()

UniscribeParagraphLayout::UniscribeParagraphLayout ( std::vector< UniscribeRun > && ranges,
const UniscribeParagraphLayoutFactory::CharType * buffer )
inline

Definition at line 114 of file string_uniscribe.cpp.

Member Function Documentation

◆ NextLine()

std::unique_ptr< const ParagraphLayouter::Line > UniscribeParagraphLayout::NextLine ( int max_width)
overridevirtual

Construct a new line with a maximum width.

Parameters
max_widthThe maximum width of the string.
Returns
A Line, or nullptr when at the end of the paragraph.

Implements ParagraphLayouter.

Definition at line 331 of file string_uniscribe.cpp.

References cur_range, cur_range_offset, ranges, and UniscribeShapeRun().

◆ Reflow()

void UniscribeParagraphLayout::Reflow ( )
inlineoverridevirtual

Reset the position to the start of the paragraph.

Implements ParagraphLayouter.

Definition at line 121 of file string_uniscribe.cpp.

Field Documentation

◆ cur_range

std::vector<UniscribeRun>::iterator UniscribeParagraphLayout::cur_range
private

The next run to be output.

Definition at line 68 of file string_uniscribe.cpp.

Referenced by NextLine().

◆ cur_range_offset

int UniscribeParagraphLayout::cur_range_offset = 0
private

Offset from the start of the current run from where to output.

Definition at line 69 of file string_uniscribe.cpp.

Referenced by NextLine().

◆ ranges

std::vector<UniscribeRun> UniscribeParagraphLayout::ranges
private

All runs of the text.

Definition at line 67 of file string_uniscribe.cpp.

Referenced by NextLine().

◆ text_buffer

const UniscribeParagraphLayoutFactory::CharType* UniscribeParagraphLayout::text_buffer
private

Definition at line 65 of file string_uniscribe.cpp.


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