Open 3D Engine LyShine Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
UiTextComponentOffsetsSelector Struct Reference

Helper class for calculating offsets for visualizing multi-line selection. More...

#include <UiTextComponentOffsetsSelector.h>

Public Member Functions

 UiTextComponentOffsetsSelector (const UiTextComponent::DrawBatchLines &drawBatchLines, const STextDrawContext &fontContext, float fontSize, int firstIndex, int lastIndex, int lastIndexLineNumber, int lineNumHint)
 
void ParseBatchLine (const UiTextComponent::DrawBatchLine &batchLine, float &curLineWidth)
 Parses all the DrawBatch string content of a DrawBatchLine for offsets calculation.
 
void HandleTopAndMiddleOffsets ()
 Handles top and middle offset section cases.
 
void IncrementYOffsets ()
 Condition y-offset incrementing for whatever is on the top of the stack.
 
void CalculateOffsets (UiTextComponent::LineOffsets &top, UiTextComponent::LineOffsets &middle, UiTextComponent::LineOffsets &bottom)
 Parses entirety of DrawBatchLines of text and assigns values to top, middle, and bottom offsets accordingly.
 

Public Attributes

AZStd::stack< UiTextComponent::LineOffsets * > lineOffsetsStack
 
const UiTextComponent::DrawBatchLinesm_drawBatchLines
 
const STextDrawContext & m_fontContext
 
const float m_fontSize
 
float m_maxLineHeight
 
const int m_firstIndex
 
const int m_lastIndex
 
const int m_lastIndexLineNumber
 Used to determine location within "middle" section.
 
const int m_numLines
 
int m_indexIter
 Index for iterating over displaying string (m_locText)
 
int m_numCharsSelected
 
int m_lineCounter
 
int m_lineNumHint
 
bool firstLine = true
 
bool firstIndexFound = false
 
bool lastIndexFound = false
 
bool firstAndLastIndexOccurOnDifferentLines = false
 

Detailed Description

Helper class for calculating offsets for visualizing multi-line selection.

Member Data Documentation

◆ lineOffsetsStack

AZStd::stack<UiTextComponent::LineOffsets*> UiTextComponentOffsetsSelector::lineOffsetsStack

A multi-line selection can be divided into three offsets: the first line (top), the last line (bottom), and a multi-line middle section that is basically a rect.

Each LineOffset contains a Vec2 for left and right offsets. The left offset is "absolute" for the element rect whereas the right offset is relative to the left offset.


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