<?xml version="1.0" encoding="UTF-8" ?>
<class name="Label" inherits="Control" api_type="core" keywords="text" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		A control for displaying plain text.
	</brief_description>
	<description>
		A control for displaying plain text. It gives you control over the horizontal and vertical alignment and can wrap the text inside the node's bounding rectangle. It doesn't support bold, italics, or other rich text formatting. For that, use [RichTextLabel] instead.
		[b]Note:[/b] A single Label node is not designed to display huge amounts of text. To display large amounts of text in a single node, consider using [RichTextLabel] instead as it supports features like an integrated scroll bar and threading. [RichTextLabel] generally performs better when displaying large amounts of text (several pages or more).
	</description>
	<tutorials>
		<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/2712</link>
	</tutorials>
	<methods>
		<method name="get_character_bounds" qualifiers="const">
			<return type="Rect2" />
			<param index="0" name="pos" type="int" />
			<description>
				Returns the bounding rectangle of the character at position [param pos] in the label's local coordinate system. If the character is a non-visual character or [param pos] is outside the valid range, an empty [Rect2] is returned. If the character is a part of a composite grapheme, the bounding rectangle of the whole grapheme is returned.
			</description>
		</method>
		<method name="get_line_count" qualifiers="const">
			<return type="int" />
			<description>
				Returns the number of lines of text the Label has.
			</description>
		</method>
		<method name="get_line_height" qualifiers="const">
			<return type="int" />
			<param index="0" name="line" type="int" default="-1" />
			<description>
				Returns the height of the line [param line].
				If [param line] is set to [code]-1[/code], returns the biggest line height.
				If there are no lines, returns font size in pixels.
			</description>
		</method>
		<method name="get_total_character_count" qualifiers="const">
			<return type="int" />
			<description>
				Returns the total number of printable characters in the text (excluding spaces and newlines).
			</description>
		</method>
		<method name="get_visible_line_count" qualifiers="const">
			<return type="int" />
			<description>
				Returns the number of lines shown. Useful if the [Label]'s height cannot currently display all lines.
			</description>
		</method>
	</methods>
	<members>
		<member name="autowrap_mode" type="int" setter="set_autowrap_mode" getter="get_autowrap_mode" enum="TextServer.AutowrapMode" default="0">
			If set to something other than [constant TextServer.AUTOWRAP_OFF], the text gets wrapped inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text.
			[b]Note:[/b] Labels with autowrapping enabled must have a custom maximum width configured to work correctly, either through the Label's own [member Control.custom_maximum_size] or as a result of a propagated maximum size from a parent Control with [member Control.propagate_maximum_size] enabled.
		</member>
		<member name="autowrap_trim_flags" type="int" setter="set_autowrap_trim_flags" getter="get_autowrap_trim_flags" enum="TextServer.LineBreakFlag" is_bitfield="true" default="192">
			Autowrap space trimming flags. See [constant TextServer.BREAK_TRIM_START_EDGE_SPACES] and [constant TextServer.BREAK_TRIM_END_EDGE_SPACES] for more info.
		</member>
		<member name="clip_text" type="bool" setter="set_clip_text" getter="is_clipping_text" default="false">
			If [code]true[/code], the Label only shows the text that fits inside its bounding rectangle and will clip text horizontally.
		</member>
		<member name="ellipsis_char" type="String" setter="set_ellipsis_char" getter="get_ellipsis_char" default="&quot;…&quot;">
			Ellipsis character used for text clipping.
		</member>
		<member name="horizontal_alignment" type="int" setter="set_horizontal_alignment" getter="get_horizontal_alignment" enum="HorizontalAlignment" default="0">
			Controls the text's horizontal alignment. Supports left, center, right, and fill (also known as justify).
		</member>
		<member name="justification_flags" type="int" setter="set_justification_flags" getter="get_justification_flags" enum="TextServer.JustificationFlag" is_bitfield="true" default="163">
			Line fill alignment rules.
		</member>
		<member name="label_settings" type="LabelSettings" setter="set_label_settings" getter="get_label_settings">
			A [LabelSettings] resource that can be shared between multiple [Label] nodes. Takes priority over theme properties.
		</member>
		<member name="language" type="String" setter="set_language" getter="get_language" default="&quot;&quot;">
			Language code used for line-breaking and text shaping algorithms. If left empty, the current locale is used instead.
		</member>
		<member name="lines_skipped" type="int" setter="set_lines_skipped" getter="get_lines_skipped" default="0">
			The number of the lines ignored and not displayed from the start of the [member text] value.
		</member>
		<member name="max_lines_visible" type="int" setter="set_max_lines_visible" getter="get_max_lines_visible" default="-1">
			Limits the lines of text the node shows on screen.
		</member>
		<member name="mouse_filter" type="int" setter="set_mouse_filter" getter="get_mouse_filter" overrides="Control" enum="Control.MouseFilter" default="2" />
		<member name="paragraph_separator" type="String" setter="set_paragraph_separator" getter="get_paragraph_separator" default="&quot;\\n&quot;">
			String used as a paragraph separator. Each paragraph is processed independently, in its own BiDi context.
		</member>
		<member name="size_flags_vertical" type="int" setter="set_v_size_flags" getter="get_v_size_flags" overrides="Control" enum="Control.SizeFlags" is_bitfield="true" default="4" />
		<member name="structured_text_bidi_override" type="int" setter="set_structured_text_bidi_override" getter="get_structured_text_bidi_override" enum="TextServer.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_stops" type="PackedFloat32Array" setter="set_tab_stops" getter="get_tab_stops" default="PackedFloat32Array()">
			Aligns text to the given tab-stops.
		</member>
		<member name="text" type="String" setter="set_text" getter="get_text" default="&quot;&quot;">
			The text to display on screen.
		</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="text_overrun_behavior" type="int" setter="set_text_overrun_behavior" getter="get_text_overrun_behavior" enum="TextServer.OverrunBehavior" default="0">
			The clipping behavior when the text exceeds the node's bounding rectangle.
		</member>
		<member name="uppercase" type="bool" setter="set_uppercase" getter="is_uppercase" default="false">
			If [code]true[/code], all the text displays as UPPERCASE.
		</member>
		<member name="vertical_alignment" type="int" setter="set_vertical_alignment" getter="get_vertical_alignment" enum="VerticalAlignment" default="0">
			Controls the text's vertical alignment. Supports top, center, bottom, and fill.
		</member>
		<member name="visible_characters" type="int" setter="set_visible_characters" getter="get_visible_characters" default="-1">
			The number of characters to display. If set to [code]-1[/code], all characters are displayed. This can be useful when animating the text appearing in a dialog box.
			[b]Note:[/b] Setting this property updates [member visible_ratio] accordingly.
			[b]Note:[/b] Characters are counted as Unicode codepoints. A single visible grapheme may contain multiple codepoints (e.g. certain emoji use three codepoints). A single codepoint may contain two UTF-16 characters, which are used in C# strings.
		</member>
		<member name="visible_characters_behavior" type="int" setter="set_visible_characters_behavior" getter="get_visible_characters_behavior" enum="TextServer.VisibleCharactersBehavior" default="0">
			The clipping behavior when [member visible_characters] or [member visible_ratio] is set.
		</member>
		<member name="visible_ratio" type="float" setter="set_visible_ratio" getter="get_visible_ratio" default="1.0">
			The fraction of characters to display, relative to the total number of characters (see [method get_total_character_count]). If set to [code]1.0[/code], all characters are displayed. If set to [code]0.5[/code], only half of the characters will be displayed. This can be useful when animating the text appearing in a dialog box.
			[b]Note:[/b] Setting this property updates [member visible_characters] accordingly.
		</member>
	</members>
	<theme_items>
		<theme_item name="font_color" data_type="color" type="Color" default="Color(1, 1, 1, 1)">
			Default text [Color] of the [Label].
		</theme_item>
		<theme_item name="font_outline_color" data_type="color" type="Color" default="Color(0, 0, 0, 1)">
			The color of text outline.
		</theme_item>
		<theme_item name="font_shadow_color" data_type="color" type="Color" default="Color(0, 0, 0, 0)">
			[Color] of the text's shadow effect.
		</theme_item>
		<theme_item name="line_spacing" data_type="constant" type="int" default="3">
			Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative.
		</theme_item>
		<theme_item name="outline_size" data_type="constant" type="int" default="0">
			Text outline size.
			[b]Note:[/b] If using a font with [member FontFile.multichannel_signed_distance_field] enabled, its [member FontFile.msdf_pixel_range] must be set to at least [i]twice[/i] the value of [theme_item outline_size] for outline rendering to look correct. Otherwise, the outline may appear to be cut off earlier than intended.
			[b]Note:[/b] Using a value that is larger than half the font size is not recommended, as the font outline may fail to be fully closed in this case.
		</theme_item>
		<theme_item name="paragraph_spacing" data_type="constant" type="int" default="0">
			Vertical space between paragraphs. Added on top of [theme_item line_spacing].
		</theme_item>
		<theme_item name="shadow_offset_x" data_type="constant" type="int" default="1">
			The horizontal offset of the text's shadow.
		</theme_item>
		<theme_item name="shadow_offset_y" data_type="constant" type="int" default="1">
			The vertical offset of the text's shadow.
		</theme_item>
		<theme_item name="shadow_outline_size" data_type="constant" type="int" default="1">
			The size of the shadow outline.
		</theme_item>
		<theme_item name="font" data_type="font" type="Font">
			[Font] used for the [Label]'s text.
		</theme_item>
		<theme_item name="font_size" data_type="font_size" type="int">
			Font size of the [Label]'s text.
		</theme_item>
		<theme_item name="focus" data_type="style" type="StyleBox">
			[StyleBox] used when the [Label] is focused (when used with assistive apps).
		</theme_item>
		<theme_item name="normal" data_type="style" type="StyleBox">
			Background [StyleBox] for the [Label].
		</theme_item>
	</theme_items>
</class>
