Up to date

This page is up to date for Godot 4.1. If you still find outdated information, please open an issue.

TextParagraph

Inherits: RefCounted < Object

Holds a paragraph of text.

Description

Abstraction over TextServer for handling a single paragraph of text.

Properties

HorizontalAlignment

alignment

0

BitField<LineBreakFlag>

break_flags

3

String

custom_punctuation

“”

Direction

direction

0

BitField<JustificationFlag>

justification_flags

163

int

max_lines_visible

-1

Orientation

orientation

0

bool

preserve_control

false

bool

preserve_invalid

true

OverrunBehavior

text_overrun_behavior

0

float

width

-1.0

Methods

bool

add_object ( Variant key, Vector2 size, InlineAlignment inline_align=5, int length=1, float baseline=0.0 )

bool

add_string ( String text, Font font, int font_size, String language=””, Variant meta=null )

void

clear ( )

void

clear_dropcap ( )

void

draw ( RID canvas, Vector2 pos, Color color=Color(1, 1, 1, 1), Color dc_color=Color(1, 1, 1, 1) ) const

void

draw_dropcap ( RID canvas, Vector2 pos, Color color=Color(1, 1, 1, 1) ) const

void

draw_dropcap_outline ( RID canvas, Vector2 pos, int outline_size=1, Color color=Color(1, 1, 1, 1) ) const

void

draw_line ( RID canvas, Vector2 pos, int line, Color color=Color(1, 1, 1, 1) ) const

void

draw_line_outline ( RID canvas, Vector2 pos, int line, int outline_size=1, Color color=Color(1, 1, 1, 1) ) const

void

draw_outline ( RID canvas, Vector2 pos, int outline_size=1, Color color=Color(1, 1, 1, 1), Color dc_color=Color(1, 1, 1, 1) ) const

int

get_dropcap_lines ( ) const

RID

get_dropcap_rid ( ) const

Vector2

get_dropcap_size ( ) const

float

get_line_ascent ( int line ) const

int

get_line_count ( ) const

float

get_line_descent ( int line ) const

Rect2

get_line_object_rect ( int line, Variant key ) const

Array

get_line_objects ( int line ) const

Vector2i

get_line_range ( int line ) const

RID

get_line_rid ( int line ) const

Vector2

get_line_size ( int line ) const

float

get_line_underline_position ( int line ) const

float

get_line_underline_thickness ( int line ) const

float

get_line_width ( int line ) const

Vector2

get_non_wrapped_size ( ) const

RID

get_rid ( ) const

Vector2

get_size ( ) const

int

hit_test ( Vector2 coords ) const

bool

resize_object ( Variant key, Vector2 size, InlineAlignment inline_align=5, float baseline=0.0 )

void

set_bidi_override ( Array override )

bool

set_dropcap ( String text, Font font, int font_size, Rect2 dropcap_margins=Rect2(0, 0, 0, 0), String language=”” )

void

tab_align ( PackedFloat32Array tab_stops )


Property Descriptions

HorizontalAlignment alignment = 0

Paragraph horizontal alignment.


BitField<LineBreakFlag> break_flags = 3

Line breaking rules. For more info see TextServer.


String custom_punctuation = ""

  • void set_custom_punctuation ( String value )

  • String get_custom_punctuation ( )

Custom punctuation character list, used for word breaking. If set to empty string, server defaults are used.


Direction direction = 0

Text writing direction.


BitField<JustificationFlag> justification_flags = 163

Line fill alignment rules. For more info see JustificationFlag.


int max_lines_visible = -1

  • void set_max_lines_visible ( int value )

  • int get_max_lines_visible ( )

Limits the lines of text shown.


Orientation orientation = 0

Text orientation.


bool preserve_control = false

  • void set_preserve_control ( bool value )

  • bool get_preserve_control ( )

If set to true text will display control characters.


bool preserve_invalid = true

  • void set_preserve_invalid ( bool value )

  • bool get_preserve_invalid ( )

If set to true text will display invalid characters.


OverrunBehavior text_overrun_behavior = 0

Sets the clipping behavior when the text exceeds the paragraph’s set width. See OverrunBehavior for a description of all modes.


float width = -1.0

  • void set_width ( float value )

  • float get_width ( )

Paragraph width.


Method Descriptions

bool add_object ( Variant key, Vector2 size, InlineAlignment inline_align=5, int length=1, float baseline=0.0 )

Adds inline object to the text buffer, key must be unique. In the text, object is represented as length object replacement characters.


bool add_string ( String text, Font font, int font_size, String language=””, Variant meta=null )

Adds text span and font to draw it.


void clear ( )

Clears text paragraph (removes text and inline objects).


void clear_dropcap ( )

Removes dropcap.


void draw ( RID canvas, Vector2 pos, Color color=Color(1, 1, 1, 1), Color dc_color=Color(1, 1, 1, 1) ) const

Draw all lines of the text and drop cap into a canvas item at a given position, with color. pos specifies the top left corner of the bounding box.


void draw_dropcap ( RID canvas, Vector2 pos, Color color=Color(1, 1, 1, 1) ) const

Draw drop cap into a canvas item at a given position, with color. pos specifies the top left corner of the bounding box.


void draw_dropcap_outline ( RID canvas, Vector2 pos, int outline_size=1, Color color=Color(1, 1, 1, 1) ) const

Draw drop cap outline into a canvas item at a given position, with color. pos specifies the top left corner of the bounding box.


void draw_line ( RID canvas, Vector2 pos, int line, Color color=Color(1, 1, 1, 1) ) const

Draw single line of text into a canvas item at a given position, with color. pos specifies the top left corner of the bounding box.


void draw_line_outline ( RID canvas, Vector2 pos, int line, int outline_size=1, Color color=Color(1, 1, 1, 1) ) const

Draw outline of the single line of text into a canvas item at a given position, with color. pos specifies the top left corner of the bounding box.


void draw_outline ( RID canvas, Vector2 pos, int outline_size=1, Color color=Color(1, 1, 1, 1), Color dc_color=Color(1, 1, 1, 1) ) const

Draw outlines of all lines of the text and drop cap into a canvas item at a given position, with color. pos specifies the top left corner of the bounding box.


int get_dropcap_lines ( ) const

Returns number of lines used by dropcap.


RID get_dropcap_rid ( ) const

Returns drop cap text buffer RID.


Vector2 get_dropcap_size ( ) const

Returns drop cap bounding box size.


float get_line_ascent ( int line ) const

Returns the text line ascent (number of pixels above the baseline for horizontal layout or to the left of baseline for vertical).


int get_line_count ( ) const

Returns number of lines in the paragraph.


float get_line_descent ( int line ) const

Returns the text line descent (number of pixels below the baseline for horizontal layout or to the right of baseline for vertical).


Rect2 get_line_object_rect ( int line, Variant key ) const

Returns bounding rectangle of the inline object.


Array get_line_objects ( int line ) const

Returns array of inline objects in the line.


Vector2i get_line_range ( int line ) const

Returns character range of the line.


RID get_line_rid ( int line ) const

Returns TextServer line buffer RID.


Vector2 get_line_size ( int line ) const

Returns size of the bounding box of the line of text.


float get_line_underline_position ( int line ) const

Returns pixel offset of the underline below the baseline.


float get_line_underline_thickness ( int line ) const

Returns thickness of the underline.


float get_line_width ( int line ) const

Returns width (for horizontal layout) or height (for vertical) of the line of text.


Vector2 get_non_wrapped_size ( ) const

Returns the size of the bounding box of the paragraph, without line breaks.


RID get_rid ( ) const

Returns TextServer full string buffer RID.


Vector2 get_size ( ) const

Returns the size of the bounding box of the paragraph.


int hit_test ( Vector2 coords ) const

Returns caret character offset at the specified coordinates. This function always returns a valid position.


bool resize_object ( Variant key, Vector2 size, InlineAlignment inline_align=5, float baseline=0.0 )

Sets new size and alignment of embedded object.


void set_bidi_override ( Array override )

Overrides BiDi for the structured text.

Override ranges should cover full source text without overlaps. BiDi algorithm will be used on each range separately.


bool set_dropcap ( String text, Font font, int font_size, Rect2 dropcap_margins=Rect2(0, 0, 0, 0), String language=”” )

Sets drop cap, overrides previously set drop cap. Drop cap (dropped capital) is a decorative element at the beginning of a paragraph that is larger than the rest of the text.


void tab_align ( PackedFloat32Array tab_stops )

Aligns paragraph to the given tab-stops.