RichTextLabel

Inherits: Control < CanvasItem < Node < Object

Category: Core

Brief Description

Label that displays rich text.

Properties

boolbbcode_enabled
Stringbbcode_text
boolmeta_underlined
booloverride_selected_font_color
floatpercent_visible
boolscroll_active
boolscroll_following
boolselection_enabled
inttab_size
Stringtext
intvisible_characters

Methods

voidadd_image ( Texture image )
voidadd_text ( String text )
Errorappend_bbcode ( String bbcode )
voidclear ( )
intget_content_height ( )
intget_line_count ( ) const
intget_total_character_count ( ) const
VScrollBarget_v_scroll ( )
intget_visible_line_count ( ) const
voidnewline ( )
Errorparse_bbcode ( String bbcode )
voidpop ( )
voidpush_align ( Align align )
voidpush_cell ( )
voidpush_color ( Color color )
voidpush_font ( Font font )
voidpush_indent ( int level )
voidpush_list ( ListType type )
voidpush_meta ( Variant data )
voidpush_strikethrough ( )
voidpush_table ( int columns )
voidpush_underline ( )
boolremove_line ( int line )
voidscroll_to_line ( int line )
voidset_table_column_expand ( int column, bool expand, int ratio )

Theme Properties

Fontbold_font
Fontbold_italics_font
Colordefault_color
StyleBoxfocus
Colorfont_color_selected
Colorfont_color_shadow
Fontitalics_font
intline_separation
Fontmono_font
StyleBoxnormal
Fontnormal_font
Colorselection_color
intshadow_as_outline
intshadow_offset_x
intshadow_offset_y
inttable_hseparation
inttable_vseparation

Signals

  • meta_clicked ( Nil meta )

Triggered when the user clicks on content between [url] tags. If the meta is defined in text, e.g. [url={"data"="hi"}]hi[/url], then the parameter for this signal will be a String type. If a particular type or an object is desired, the push_meta method must be used to manually insert the data into the tag stack.


  • meta_hover_ended ( Nil meta )

Triggers when the mouse exits a meta tag.


  • meta_hover_started ( Nil meta )

Triggers when the mouse enters a meta tag.

Enumerations

enum Align:

  • ALIGN_LEFT = 0
  • ALIGN_CENTER = 1
  • ALIGN_RIGHT = 2
  • ALIGN_FILL = 3

enum ListType:

  • LIST_NUMBERS = 0
  • LIST_LETTERS = 1
  • LIST_DOTS = 2

enum ItemType:

  • ITEM_FRAME = 0
  • ITEM_TEXT = 1
  • ITEM_IMAGE = 2
  • ITEM_NEWLINE = 3
  • ITEM_FONT = 4
  • ITEM_COLOR = 5
  • ITEM_UNDERLINE = 6
  • ITEM_STRIKETHROUGH = 7
  • ITEM_ALIGN = 8
  • ITEM_INDENT = 9
  • ITEM_LIST = 10
  • ITEM_TABLE = 11
  • ITEM_META = 12

Description

Rich text can contain custom text, fonts, images and some basic formatting. The label manages these as an internal tag stack. It also adapts itself to given width/heights.

Note that assignments to bbcode_text clear the tag stack and reconstruct it from the property’s contents. Any edits made to bbcode_text will erase previous edits made from other manual sources such as append_bbcode and the push_* / pop methods.

Tutorials

Property Descriptions

  • bool bbcode_enabled
Setterset_use_bbcode(value)
Getteris_using_bbcode()

If true, the label uses BBCode formatting. Default value: false.


Setterset_bbcode(value)
Getterget_bbcode()

The label’s text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.


  • bool meta_underlined
Setterset_meta_underline(value)
Getteris_meta_underlined()

If true, the label underlines meta tags such as [url]{text}[/url]. Default value: true.


  • bool override_selected_font_color
Setterset_override_selected_font_color(value)
Getteris_overriding_selected_font_color()

If true, the label uses the custom font color. Default value: false.


Setterset_percent_visible(value)
Getterget_percent_visible()

The text’s visibility, as a float between 0.0 and 1.0.


Setterset_scroll_active(value)
Getteris_scroll_active()

If true, the scrollbar is visible. Does not block scrolling completely. See scroll_to_line. Default value: true.


  • bool scroll_following
Setterset_scroll_follow(value)
Getteris_scroll_following()

If true, the window scrolls down to display new content automatically. Default value: false.


  • bool selection_enabled
Setterset_selection_enabled(value)
Getteris_selection_enabled()

If true, the label allows text selection.


Setterset_tab_size(value)
Getterget_tab_size()

The number of spaces associated with a single tab length. Does not affect “\t” in text tags, only indent tags.


Setterset_text(value)
Getterget_text()

The raw text of the label.

When set, clears the tag stack and adds a raw text tag to the top of it. Does not parse bbcodes. Does not modify bbcode_text.


  • int visible_characters
Setterset_visible_characters(value)
Getterget_visible_characters()

The restricted number of characters to display in the label.

Method Descriptions

Adds an image’s opening and closing tags to the tag stack.


  • void add_text ( String text )

Adds raw non-bbcode-parsed text to the tag stack.


Parses bbcode and adds tags to the tag stack as needed. Returns the result of the parsing, @GlobalScope.OK if successful.


  • void clear ( )

Clears the tag stack and sets bbcode_text to an empty string.


  • int get_content_height ( )

Returns the height of the content.


  • int get_line_count ( ) const

Returns the total number of newlines in the tag stack’s text tags. Considers wrapped text as one line.


  • int get_total_character_count ( ) const

Returns the total number of characters from text tags. Does not include bbcodes.


Returns the vertical scrollbar.


  • int get_visible_line_count ( ) const

Returns the number of visible lines.


  • void newline ( )

Adds a newline tag to the tag stack.


The assignment version of append_bbcode. Clears the tag stack and inserts the new content. Returns @GlobalScope.OK if parses bbcode successfully.


  • void pop ( )

Terminates the current tag. Use after push_* methods to close bbcodes manually. Does not need to follow add_* methods.


  • void push_align ( Align align )

Adds an alignment tag based on the given align value. See Align for possible values.


  • void push_cell ( )

Adds a [cell] tag to the tag stack. Must be inside a [table] tag. See push_table for details.


  • void push_color ( Color color )

Adds a [color] tag to the tag stack.


  • void push_font ( Font font )

Adds a [font] tag to the tag stack. Overrides default fonts for its duration.


  • void push_indent ( int level )

Adds an [indent] tag to the tag stack. Multiplies “level” by current tab_size to determine new margin length.


Adds a list tag to the tag stack. Similar to the bbcodes [ol] or [ul], but supports more list types. Not fully implemented!


Adds a meta tag to the tag stack. Similar to the bbcode [url=something]{text}[/url], but supports non-String metadata types.


  • void push_strikethrough ( )

Adds a [s] tag to the tag stack.


  • void push_table ( int columns )

Adds a [table=columns] tag to the tag stack.


  • void push_underline ( )

Adds a [u] tag to the tag stack.


Removes a line of content from the label. Returns true if the line exists.


  • void scroll_to_line ( int line )

Scrolls the window’s top line to match line.


  • void set_table_column_expand ( int column, bool expand, int ratio )

Edits the selected columns expansion options. If expand is true, the column expands in proportion to its expansion ratio versus the other columns’ ratios.

For example, 2 columns with ratios 3 and 4 plus 70 pixels in available width would expand 30 and 40 pixels, respectively.

Columns with a false expand will not contribute to the total ratio.