<?xml version="1.0" encoding="UTF-8" ?> <class name="RichTextLabel" inherits="Control" version="4.0"> <brief_description> Label that displays rich text. </brief_description> <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. [b]Note:[/b] Assignments to [member text] clear the tag stack and reconstruct it from the property's contents. Any edits made to [member text] will erase previous edits made from other manual sources such as [method append_text] and the [code]push_*[/code] / [method pop] methods. [b]Note:[/b] RichTextLabel doesn't support entangled BBCode tags. For example, instead of using [code][b]bold[i]bold italic[/b]italic[/i][/code], use [code][b]bold[i]bold italic[/i][/b][i]italic[/i][/code]. [b]Note:[/b] [code]push_*/pop[/code] functions won't affect BBCode. [b]Note:[/b] Unlike [Label], RichTextLabel doesn't have a [i]property[/i] to horizontally align text to the center. Instead, enable [member bbcode_enabled] and surround the text in a [code][center][/code] tag as follows: [code][center]Example[/center][/code]. There is currently no built-in way to vertically align text either, but this can be emulated by relying on anchors/containers and the [member fit_content_height] property. </description> <tutorials> <link title="BBCode in RichTextLabel">https://docs.godotengine.org/en/latest/tutorials/gui/bbcode_in_richtextlabel.html</link> <link title="GUI Rich Text/BBcode Demo">https://godotengine.org/asset-library/asset/132</link> <link title="OS Test Demo">https://godotengine.org/asset-library/asset/677</link> </tutorials> <methods> <method name="add_image"> <return type="void" /> <argument index="0" name="image" type="Texture2D" /> <argument index="1" name="width" type="int" default="0" /> <argument index="2" name="height" type="int" default="0" /> <argument index="3" name="color" type="Color" default="Color(1, 1, 1, 1)" /> <argument index="4" name="inline_align" type="int" enum="InlineAlign" default="5" /> <description> Adds an image's opening and closing tags to the tag stack, optionally providing a [code]width[/code] and [code]height[/code] to resize the image and a [code]color[/code] to tint the image. If [code]width[/code] or [code]height[/code] is set to 0, the image size will be adjusted in order to keep the original aspect ratio. </description> </method> <method name="add_text"> <return type="void" /> <argument index="0" name="text" type="String" /> <description> Adds raw non-BBCode-parsed text to the tag stack. </description> </method> <method name="append_text"> <return type="int" enum="Error" /> <argument index="0" name="bbcode" type="String" /> <description> Parses [code]bbcode[/code] and adds tags to the tag stack as needed. Returns the result of the parsing, [constant OK] if successful. [b]Note:[/b] Using this method, you can't close a tag that was opened in a previous [method append_text] call. This is done to improve performance, especially when updating large RichTextLabels since rebuilding the whole BBCode every time would be slower. If you absolutely need to close a tag in a future method call, append the [member text] instead of using [method append_text]. </description> </method> <method name="clear"> <return type="void" /> <description> Clears the tag stack and sets [member text] to an empty string. </description> </method> <method name="get_content_height" qualifiers="const"> <return type="int" /> <description> Returns the height of the content. </description> </method> <method name="get_line_count" qualifiers="const"> <return type="int" /> <description> Returns the total number of lines in the text. Wrapped text is counted as multiple lines. </description> </method> <method name="get_paragraph_count" qualifiers="const"> <return type="int" /> <description> Returns the total number of paragraphs (newlines or [code]p[/code] tags in the tag stack's text tags). Considers wrapped text as one paragraph. </description> </method> <method name="get_parsed_text" qualifiers="const"> <return type="String" /> <description> Returns the text without BBCode mark-up. </description> </method> <method name="get_selected_text" qualifiers="const"> <return type="String" /> <description> Returns the current selection text. Does not include BBCodes. </description> </method> <method name="get_selection_from" qualifiers="const"> <return type="int" /> <description> Returns the current selection first character index if a selection is active, [code]-1[/code] otherwise. Does not include BBCodes. </description> </method> <method name="get_selection_to" qualifiers="const"> <return type="int" /> <description> Returns the current selection last character index if a selection is active, [code]-1[/code] otherwise. Does not include BBCodes. </description> </method> <method name="get_total_character_count" qualifiers="const"> <return type="int" /> <description> Returns the total number of characters from text tags. Does not include BBCodes. </description> </method> <method name="get_v_scroll"> <return type="VScrollBar" /> <description> Returns the vertical scrollbar. </description> </method> <method name="get_visible_line_count" qualifiers="const"> <return type="int" /> <description> Returns the number of visible lines. </description> </method> <method name="get_visible_paragraph_count" qualifiers="const"> <return type="int" /> <description> Returns the number of visible paragraphs. A paragraph is considered visible if at least one of its lines is visible. </description> </method> <method name="install_effect"> <return type="void" /> <argument index="0" name="effect" type="Variant" /> <description> Installs a custom effect. [code]effect[/code] should be a valid [RichTextEffect]. </description> </method> <method name="newline"> <return type="void" /> <description> Adds a newline tag to the tag stack. </description> </method> <method name="parse_bbcode"> <return type="int" enum="Error" /> <argument index="0" name="bbcode" type="String" /> <description> The assignment version of [method append_text]. Clears the tag stack and inserts the new content. Returns [constant OK] if parses [code]bbcode[/code] successfully. </description> </method> <method name="parse_expressions_for_values"> <return type="Dictionary" /> <argument index="0" name="expressions" type="PackedStringArray" /> <description> Parses BBCode parameter [code]expressions[/code] into a dictionary. </description> </method> <method name="pop"> <return type="void" /> <description> Terminates the current tag. Use after [code]push_*[/code] methods to close BBCodes manually. Does not need to follow [code]add_*[/code] methods. </description> </method> <method name="push_bgcolor"> <return type="void" /> <argument index="0" name="bgcolor" type="Color" /> <description> Adds a [code][bgcolor][/code] tag to the tag stack. </description> </method> <method name="push_bold"> <return type="void" /> <description> Adds a [code][font][/code] tag with a bold font to the tag stack. This is the same as adding a [code][b][/code] tag if not currently in a [code][i][/code] tag. </description> </method> <method name="push_bold_italics"> <return type="void" /> <description> Adds a [code][font][/code] tag with a bold italics font to the tag stack. </description> </method> <method name="push_cell"> <return type="void" /> <description> Adds a [code][cell][/code] tag to the tag stack. Must be inside a [code][table][/code] tag. See [method push_table] for details. </description> </method> <method name="push_color"> <return type="void" /> <argument index="0" name="color" type="Color" /> <description> Adds a [code][color][/code] tag to the tag stack. </description> </method> <method name="push_dropcap"> <return type="void" /> <argument index="0" name="string" type="String" /> <argument index="1" name="font" type="Font" /> <argument index="2" name="size" type="int" /> <argument index="3" name="dropcap_margins" type="Rect2" default="Rect2(0, 0, 0, 0)" /> <argument index="4" name="color" type="Color" default="Color(1, 1, 1, 1)" /> <argument index="5" name="outline_size" type="int" default="0" /> <argument index="6" name="outline_color" type="Color" default="Color(0, 0, 0, 0)" /> <description> Adds a [code][dropcap][/code] tag to the tag stack. Drop cap (dropped capital) is a decorative element at the beginning of a paragraph that is larger than the rest of the text. </description> </method> <method name="push_fgcolor"> <return type="void" /> <argument index="0" name="fgcolor" type="Color" /> <description> Adds a [code][fgcolor][/code] tag to the tag stack. </description> </method> <method name="push_font"> <return type="void" /> <argument index="0" name="font" type="Font" /> <description> Adds a [code][font][/code] tag to the tag stack. Overrides default fonts for its duration. </description> </method> <method name="push_font_features"> <return type="void" /> <argument index="0" name="opentype_features" type="Dictionary" /> <description> Adds a [code][ot_feature][/code] tag to the tag stack. Overrides default OpenType font feature for its duration. </description> </method> <method name="push_font_size"> <return type="void" /> <argument index="0" name="font_size" type="int" /> <description> Adds a [code][font_size][/code] tag to the tag stack. Overrides default font size for its duration. </description> </method> <method name="push_indent"> <return type="void" /> <argument index="0" name="level" type="int" /> <description> Adds an [code][indent][/code] tag to the tag stack. Multiplies [code]level[/code] by current [member tab_size] to determine new margin length. </description> </method> <method name="push_italics"> <return type="void" /> <description> Adds a [code][font][/code] tag with a italics font to the tag stack. This is the same as adding a [code][i][/code] tag if not currently in a [code][b][/code] tag. </description> </method> <method name="push_list"> <return type="void" /> <argument index="0" name="level" type="int" /> <argument index="1" name="type" type="int" enum="RichTextLabel.ListType" /> <argument index="2" name="capitalize" type="bool" /> <description> Adds [code][ol][/code] or [code][ul][/code] tag to the tag stack. Multiplies [code]level[/code] by current [member tab_size] to determine new margin length. </description> </method> <method name="push_meta"> <return type="void" /> <argument index="0" name="data" type="Variant" /> <description> Adds a [code][meta][/code] tag to the tag stack. Similar to the BBCode [code][url=something]{text}[/url][/code], but supports non-[String] metadata types. </description> </method> <method name="push_mono"> <return type="void" /> <description> Adds a [code][font][/code] tag with a monospace font to the tag stack. </description> </method> <method name="push_normal"> <return type="void" /> <description> Adds a [code][font][/code] tag with a normal font to the tag stack. </description> </method> <method name="push_outline_color"> <return type="void" /> <argument index="0" name="color" type="Color" /> <description> Adds a [code][outline_color][/code] tag to the tag stack. Adds text outline for its duration. </description> </method> <method name="push_outline_size"> <return type="void" /> <argument index="0" name="outline_size" type="int" /> <description> Adds a [code][outline_size][/code] tag to the tag stack. Overrides default text outline size for its duration. </description> </method> <method name="push_paragraph"> <return type="void" /> <argument index="0" name="align" type="int" enum="RichTextLabel.Align" /> <argument index="1" name="base_direction" type="int" enum="Control.TextDirection" default="0" /> <argument index="2" name="language" type="String" default="""" /> <argument index="3" name="st_parser" type="int" enum="Control.StructuredTextParser" default="0" /> <description> Adds a [code][p][/code] tag to the tag stack. </description> </method> <method name="push_strikethrough"> <return type="void" /> <description> Adds a [code][s][/code] tag to the tag stack. </description> </method> <method name="push_table"> <return type="void" /> <argument index="0" name="columns" type="int" /> <argument index="1" name="inline_align" type="int" enum="InlineAlign" default="0" /> <description> Adds a [code][table=columns,inline_align][/code] tag to the tag stack. </description> </method> <method name="push_underline"> <return type="void" /> <description> Adds a [code][u][/code] tag to the tag stack. </description> </method> <method name="remove_line"> <return type="bool" /> <argument index="0" name="line" type="int" /> <description> Removes a line of content from the label. Returns [code]true[/code] if the line exists. The [code]line[/code] argument is the index of the line to remove, it can take values in the interval [code][0, get_line_count() - 1][/code]. </description> </method> <method name="scroll_to_line"> <return type="void" /> <argument index="0" name="line" type="int" /> <description> Scrolls the window's top line to match [code]line[/code]. </description> </method> <method name="scroll_to_paragraph"> <return type="void" /> <argument index="0" name="paragraph" type="int" /> <description> Scrolls the window's top line to match first line of the [code]paragraph[/code]. </description> </method> <method name="set_cell_border_color"> <return type="void" /> <argument index="0" name="color" type="Color" /> <description> Sets color of a table cell border. </description> </method> <method name="set_cell_padding"> <return type="void" /> <argument index="0" name="padding" type="Rect2" /> <description> Sets inner padding of a table cell. </description> </method> <method name="set_cell_row_background_color"> <return type="void" /> <argument index="0" name="odd_row_bg" type="Color" /> <argument index="1" name="even_row_bg" type="Color" /> <description> Sets color of a table cell. Separate colors for alternating rows can be specified. </description> </method> <method name="set_cell_size_override"> <return type="void" /> <argument index="0" name="min_size" type="Vector2" /> <argument index="1" name="max_size" type="Vector2" /> <description> Sets minimum and maximum size overrides for a table cell. </description> </method> <method name="set_table_column_expand"> <return type="void" /> <argument index="0" name="column" type="int" /> <argument index="1" name="expand" type="bool" /> <argument index="2" name="ratio" type="int" /> <description> Edits the selected column's expansion options. If [code]expand[/code] is [code]true[/code], 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. If [code]expand[/code] is [code]false[/code], the column will not contribute to the total ratio. </description> </method> </methods> <members> <member name="bbcode_enabled" type="bool" setter="set_use_bbcode" getter="is_using_bbcode" default="false"> If [code]true[/code], the label uses BBCode formatting. </member> <member name="custom_effects" type="Array" setter="set_effects" getter="get_effects" default="[]"> The currently installed custom effects. This is an array of [RichTextEffect]s. To add a custom effect, it's more convenient to use [method install_effect]. </member> <member name="fit_content_height" type="bool" setter="set_fit_content_height" getter="is_fit_content_height_enabled" default="false"> If [code]true[/code], the label's height will be automatically updated to fit its content. [b]Note:[/b] This property is used as a workaround to fix issues with [RichTextLabel] in [Container]s, but it's unreliable in some cases and will be removed in future versions. </member> <member name="language" type="String" setter="set_language" getter="get_language" default=""""> Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. </member> <member name="meta_underlined" type="bool" setter="set_meta_underline" getter="is_meta_underlined" default="true"> If [code]true[/code], the label underlines meta tags such as [code][url]{text}[/url][/code]. </member> <member name="override_selected_font_color" type="bool" setter="set_override_selected_font_color" getter="is_overriding_selected_font_color" default="false"> If [code]true[/code], the label uses the custom font color. </member> <member name="percent_visible" type="float" setter="set_percent_visible" getter="get_percent_visible" default="1.0"> The range of characters to display, as a [float] between 0.0 and 1.0. When assigned an out of range value, it's the same as assigning 1.0. [b]Note:[/b] Setting this property updates [member visible_characters] based on current [method get_total_character_count]. </member> <member name="rect_clip_content" type="bool" setter="set_clip_contents" getter="is_clipping_contents" override="true" default="true" /> <member name="scroll_active" type="bool" setter="set_scroll_active" getter="is_scroll_active" default="true"> If [code]true[/code], the scrollbar is visible. Setting this to [code]false[/code] does not block scrolling completely. See [method scroll_to_line]. </member> <member name="scroll_following" type="bool" setter="set_scroll_follow" getter="is_scroll_following" default="false"> If [code]true[/code], the window scrolls down to display new content automatically. </member> <member name="selection_enabled" type="bool" setter="set_selection_enabled" getter="is_selection_enabled" default="false"> If [code]true[/code], the label allows text selection. </member> <member name="structured_text_bidi_override" type="int" setter="set_structured_text_bidi_override" getter="get_structured_text_bidi_override" enum="Control.StructuredTextParser" default="0"> Set BiDi algorithm override for the structured text. </member> <member name="structured_text_bidi_override_options" type="Array" setter="set_structured_text_bidi_override_options" getter="get_structured_text_bidi_override_options" default="[]"> Set additional options for BiDi override. </member> <member name="tab_size" type="int" setter="set_tab_size" getter="get_tab_size" default="4"> The number of spaces associated with a single tab length. Does not affect [code]\t[/code] in text tags, only indent tags. </member> <member name="text" type="String" setter="set_text" getter="get_text" default=""""> 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. [b]Note:[/b] If [member bbcode_enabled] is [code]true[/code], it is unadvised to use the [code]+=[/code] operator with [code]text[/code] (e.g. [code]text += "some string"[/code]) as it replaces the whole text and can cause slowdowns. Use [method append_text] for adding text instead, unless you absolutely need to close a tag that was opened in an earlier method call. </member> <member name="text_direction" type="int" setter="set_text_direction" getter="get_text_direction" enum="Control.TextDirection" default="0"> Base text writing direction. </member> <member name="visible_characters" type="int" setter="set_visible_characters" getter="get_visible_characters" default="-1"> The restricted number of characters to display in the label. If [code]-1[/code], all characters will be displayed. [b]Note:[/b] Setting this property updates [member percent_visible] based on current [method get_total_character_count]. </member> </members> <signals> <signal name="meta_clicked"> <argument index="0" name="meta" type="Variant" /> <description> Triggered when the user clicks on content between meta tags. If the meta is defined in text, e.g. [code][url={"data"="hi"}]hi[/url][/code], then the parameter for this signal will be a [String] type. If a particular type or an object is desired, the [method push_meta] method must be used to manually insert the data into the tag stack. </description> </signal> <signal name="meta_hover_ended"> <argument index="0" name="meta" type="Variant" /> <description> Triggers when the mouse exits a meta tag. </description> </signal> <signal name="meta_hover_started"> <argument index="0" name="meta" type="Variant" /> <description> Triggers when the mouse enters a meta tag. </description> </signal> </signals> <constants> <constant name="ALIGN_LEFT" value="0" enum="Align"> Makes text left aligned. </constant> <constant name="ALIGN_CENTER" value="1" enum="Align"> Makes text centered. </constant> <constant name="ALIGN_RIGHT" value="2" enum="Align"> Makes text right aligned. </constant> <constant name="ALIGN_FILL" value="3" enum="Align"> Makes text fill width. </constant> <constant name="LIST_NUMBERS" value="0" enum="ListType"> Each list item has a number marker. </constant> <constant name="LIST_LETTERS" value="1" enum="ListType"> Each list item has a letter marker. </constant> <constant name="LIST_ROMAN" value="2" enum="ListType"> Each list item has a roman number marker. </constant> <constant name="LIST_DOTS" value="3" enum="ListType"> Each list item has a filled circle marker. </constant> <constant name="ITEM_FRAME" value="0" enum="ItemType"> </constant> <constant name="ITEM_TEXT" value="1" enum="ItemType"> </constant> <constant name="ITEM_IMAGE" value="2" enum="ItemType"> </constant> <constant name="ITEM_NEWLINE" value="3" enum="ItemType"> </constant> <constant name="ITEM_FONT" value="4" enum="ItemType"> </constant> <constant name="ITEM_FONT_SIZE" value="5" enum="ItemType"> </constant> <constant name="ITEM_FONT_FEATURES" value="6" enum="ItemType"> </constant> <constant name="ITEM_COLOR" value="7" enum="ItemType"> </constant> <constant name="ITEM_OUTLINE_SIZE" value="8" enum="ItemType"> </constant> <constant name="ITEM_OUTLINE_COLOR" value="9" enum="ItemType"> </constant> <constant name="ITEM_UNDERLINE" value="10" enum="ItemType"> </constant> <constant name="ITEM_STRIKETHROUGH" value="11" enum="ItemType"> </constant> <constant name="ITEM_PARAGRAPH" value="12" enum="ItemType"> </constant> <constant name="ITEM_INDENT" value="13" enum="ItemType"> </constant> <constant name="ITEM_LIST" value="14" enum="ItemType"> </constant> <constant name="ITEM_TABLE" value="15" enum="ItemType"> </constant> <constant name="ITEM_FADE" value="16" enum="ItemType"> </constant> <constant name="ITEM_SHAKE" value="17" enum="ItemType"> </constant> <constant name="ITEM_WAVE" value="18" enum="ItemType"> </constant> <constant name="ITEM_TORNADO" value="19" enum="ItemType"> </constant> <constant name="ITEM_RAINBOW" value="20" enum="ItemType"> </constant> <constant name="ITEM_BGCOLOR" value="21" enum="ItemType"> </constant> <constant name="ITEM_FGCOLOR" value="22" enum="ItemType"> </constant> <constant name="ITEM_META" value="23" enum="ItemType"> </constant> <constant name="ITEM_DROPCAP" value="24" enum="ItemType"> </constant> <constant name="ITEM_CUSTOMFX" value="25" enum="ItemType"> </constant> </constants> <theme_items> <theme_item name="bold_font" data_type="font" type="Font"> The font used for bold text. </theme_item> <theme_item name="bold_font_size" data_type="font_size" type="int"> The font size used for bold text. </theme_item> <theme_item name="bold_italics_font" data_type="font" type="Font"> The font used for bold italics text. </theme_item> <theme_item name="bold_italics_font_size" data_type="font_size" type="int"> The font size used for bold italics text. </theme_item> <theme_item name="default_color" data_type="color" type="Color" default="Color(1, 1, 1, 1)"> The default text color. </theme_item> <theme_item name="focus" data_type="style" type="StyleBox"> The background The background used when the [RichTextLabel] is focused. </theme_item> <theme_item name="font_outline_color" data_type="color" type="Color" default="Color(1, 1, 1, 1)"> The default tint of text outline. </theme_item> <theme_item name="font_selected_color" data_type="color" type="Color" default="Color(0, 0, 0, 1)"> The color of selected text, used when [member selection_enabled] is [code]true[/code]. </theme_item> <theme_item name="font_shadow_color" data_type="color" type="Color" default="Color(0, 0, 0, 0)"> The color of the font's shadow. </theme_item> <theme_item name="italics_font" data_type="font" type="Font"> The font used for italics text. </theme_item> <theme_item name="italics_font_size" data_type="font_size" type="int"> The font size used for italics text. </theme_item> <theme_item name="line_separation" data_type="constant" type="int" default="0"> The vertical space between lines. </theme_item> <theme_item name="mono_font" data_type="font" type="Font"> The font used for monospace text. </theme_item> <theme_item name="mono_font_size" data_type="font_size" type="int"> The font size used for monospace text. </theme_item> <theme_item name="normal" data_type="style" type="StyleBox"> The normal background for the [RichTextLabel]. </theme_item> <theme_item name="normal_font" data_type="font" type="Font"> The default text font. </theme_item> <theme_item name="normal_font_size" data_type="font_size" type="int"> The default text font size. </theme_item> <theme_item name="outline_size" data_type="constant" type="int" default="0"> The size of the text outline. </theme_item> <theme_item name="selection_color" data_type="color" type="Color" default="Color(0.1, 0.1, 1, 0.8)"> The color of the selection box. </theme_item> <theme_item name="shadow_as_outline" data_type="constant" type="int" default="0"> Boolean value. If 1 ([code]true[/code]), the shadow will be displayed around the whole text as an outline. </theme_item> <theme_item name="shadow_offset_x" data_type="constant" type="int" default="1"> The horizontal offset of the font's shadow. </theme_item> <theme_item name="shadow_offset_y" data_type="constant" type="int" default="1"> The vertical offset of the font's shadow. </theme_item> <theme_item name="table_border" data_type="color" type="Color" default="Color(0, 0, 0, 0)"> The default cell border color. </theme_item> <theme_item name="table_even_row_bg" data_type="color" type="Color" default="Color(0, 0, 0, 0)"> The default background color for even rows. </theme_item> <theme_item name="table_hseparation" data_type="constant" type="int" default="3"> The horizontal separation of elements in a table. </theme_item> <theme_item name="table_odd_row_bg" data_type="color" type="Color" default="Color(0, 0, 0, 0)"> The default background color for odd rows. </theme_item> <theme_item name="table_vseparation" data_type="constant" type="int" default="3"> The vertical separation of elements in a table. </theme_item> </theme_items> </class>