Declaration
public static int WordWrap<TState>(
EggsNode node,
TState initialState,
int wrapWidth,
EggsML.EggMeasure<TState> measure,
EggsML.EggRender<TState> render,
EggsML.EggNextLine<TState> advanceToNextLine,
EggsML.EggNextState<TState> nextState
)Summary
Word-wraps a given piece of EggsML, assuming that it is linearly flowing text. Newline (
\n) characters can
be used to split the text into multiple paragraphs. See remarks for the special meaning of
+...+ and
<...>.
Generic type parameters
| TState |
The type of the text state that an EggsML can change, e.g. font or color. |
Parameters
| EggsNode | node |
The root node of the EggsML tree to word-wrap. |
| TState | initialState |
The initial text state. |
| int | wrapWidth |
The maximum width at which to word-wrap. This width can be measured in any unit, as long as measure uses the same unit. |
| EggsML.EggMeasure<TState> | measure |
A delegate that measures the width of any piece of text. |
| EggsML.EggRender<TState> | render |
A delegate that is called whenever a piece of text is ready to be rendered. |
| EggsML.EggNextLine<TState> | advanceToNextLine |
A delegate that is called to advance to the next line. |
| EggsML.EggNextState<TState> | nextState |
A delegate that determines how each EggsML tag character modifies the state (font, color etc.). |
Returns
The maximum width of the text.
Remarks
-
The
+...+ tag marks text that may not be broken by wrapping (effectively turning all spaces into
non-breaking spaces). -
The
<...> tag marks a parameter to an immediately following tag. For example, if the input
EggsML contains <X>{Foo}, the text “X” will be passed as the parameter to nextState when the { tag is processed.