text:
[plugin]

name="gdtl"
description="BiDi, shaping and basic text layout for Godot Engine."
author=""
version=0.6
script="gdtl.gd"


text:
tool
extends EditorPlugin

const EditorInspectorPluginTLFontFamily = preload("res://addons/libgdtl/tl_font_family_edit.gd")
var inspector_plug

func _enter_tree():
    inspector_plug = EditorInspectorPluginTLFontFamily.new()
    add_custom_type("TLICUDataLoader", "Resource", preload("res://addons/libgdtl/classes/tl_icu_data_loader.gdns"), preload("res://addons/libgdtl/icons/icon_t_l_i_c_u_data_loader.svg"))
    add_custom_type("TLFontFace", "Resource", preload("res://addons/libgdtl/classes/tl_font_face.gdns"), preload("res://addons/libgdtl/icons/icon_t_l_font_face.svg"))
    add_custom_type("TLBitmapFontFace", "Resource", preload("res://addons/libgdtl/classes/tl_bitmap_font_face.gdns"), preload("res://addons/libgdtl/icons/icon_t_l_bitmap_font_face.svg"))
    add_custom_type("TLDynamicFontFace", "Resource", preload("res://addons/libgdtl/classes/tl_dynamic_font_face.gdns"), preload("res://addons/libgdtl/icons/icon_t_l_dynamic_font_face.svg"))
    add_custom_type("TLFontFamily", "Resource", preload("res://addons/libgdtl/classes/tl_font_family.gdns"), preload("res://addons/libgdtl/icons/icon_t_l_font_family.svg"))
    add_custom_type("TLShapedString", "Resource", preload("res://addons/libgdtl/classes/tl_shaped_string.gdns"), preload("res://addons/libgdtl/icons/icon_t_l_shaped_string.svg"))
    add_custom_type("TLShapedAttributedString", "Resource", preload("res://addons/libgdtl/classes/tl_shaped_attributed_string.gdns"), preload("res://addons/libgdtl/icons/icon_t_l_shaped_attributed_string.svg"))
    add_custom_type("TLShapedParagraph", "Resource", preload("res://addons/libgdtl/classes/tl_shaped_paragraph.gdns"), preload("res://addons/libgdtl/icons/icon_t_l_shaped_paragraph.svg"))
    add_custom_type("TLRichTextEdit", "Control", preload("res://addons/libgdtl/classes/tl_rich_text_edit.gdns"), preload("res://addons/libgdtl/icons/icon_t_l_proto_control.svg"))
    add_custom_type("TLRichTextEditSelection", "Reference", preload("res://addons/libgdtl/classes/tl_rich_text_edit_selection.gdns"), preload("res://addons/libgdtl/icons/icon_t_l_proto_control_selection.svg"))
    add_custom_type("TLLabel", "Control", preload("res://addons/libgdtl/classes/tl_label.gdns"), preload("res://addons/libgdtl/icons/icon_t_l_label.svg"))
    add_custom_type("TLLineEdit", "Control", preload("res://addons/libgdtl/classes/tl_line_edit.gdns"), preload("res://addons/libgdtl/icons/icon_t_l_line_edit.svg"))
    add_autoload_singleton("TLConstants", "res://addons/libgdtl/constants.gd")
    add_inspector_plugin(inspector_plug)

func _exit_tree():
    remove_custom_type("TLICUDataLoader")
    remove_custom_type("TLFontFace")
    remove_custom_type("TLBitmapFontFace")
    remove_custom_type("TLDynamicFontFace")
    remove_custom_type("TLFontFamily")
    remove_custom_type("TLShapedString")
    remove_custom_type("TLShapedAttributedString")
    remove_custom_type("TLShapedParagraph")
    remove_custom_type("TLRichTextEdit")
    remove_custom_type("TLRichTextEditSelection")
    remove_custom_type("TLLabel")
    remove_custom_type("TLLineEdit")
    remove_inspector_plugin(inspector_plug)

repo_language: C

mime_type: text/x-c


text:
[general]

singleton=false
reloadable=false
load_once=true
symbol_prefix="gdtl_"

[entry]

Windows.32="res://addons/libgdtl/bin/windows.x86/libgdtl.dll"
Windows.64="res://addons/libgdtl/bin/windows.x86_64/libgdtl.dll"

OSX.x86_64="res://addons/libgdtl/bin/darwin.x86_64/libgdtl.dylib"
OSX.arm64="res://addons/libgdtl/bin/darwin.arm64/libgdtl.dylib"

X11.x86_64="res://addons/libgdtl/bin/linux.x86_64/libgdtl.so"
X11.x86="res://addons/libgdtl/bin/linux.x86/libgdtl.so"
X11.armv7="res://addons/libgdtl/bin/linux.armv7/libgdtl.so"
X11.arm64="res://addons/libgdtl/bin/linux.arm64/libgdtl.so"

Android.x86_64="res://addons/libgdtl/bin/android.x86_64/libgdtl.so"
Android.x86="res://addons/libgdtl/bin/android.x86/libgdtl.so"
Android.armeabi-v7a="res://addons/libgdtl/bin/android.armv7/libgdtl.so"
Android.arm64-v8a="res://addons/libgdtl/bin/android.arm64/libgdtl.so"

iOS="res://addons/libgdtl/bin/ios/libgdtl.xcframework"

[dependencies]

Windows.32=[  ]
Windows.64=[  ]

OSX.x86_64=[  ]
OSX.arm64=[  ]

X11.x86_64=[  ]
X11.x86=[  ]
X11.armv7=[  ]
X11.arm64=[  ]

Android.x86_64=[  ]
Android.x86=[  ]
Android.armeabi-v7a=[  ]
Android.arm64-v8a=[  ]

iOS=[  ]


text:
tool
extends VBoxContainer

const TLShapedString = preload("res://addons/libgdtl/classes/tl_shaped_string.gdns")

var preview
var strctx
var ctl

func _ff_changed(p_text):
	strctx.set_text(p_text)
	preview.update()

func _redraw():
	VisualServer.canvas_item_add_rect(preview.get_canvas_item(), Rect2(Vector2(), preview.get_size()), Color(0.8, 0.8, 0.8, 1))
	strctx.draw(preview.get_canvas_item(), Vector2((preview.get_rect().size.x - strctx.get_width()) / 2, (preview.get_rect().size.y - strctx.get_height()) / 2 + strctx.get_ascent()), Color(0, 0, 0, 1))

func set_ff(p_ff, p_style):
	strctx.set_base_font(p_ff);
	strctx.set_base_font_style(p_style);

func _init():
	strctx = TLShapedString.new()
	strctx.set_base_font_size(18.0)
	strctx.set_text("Etaoin shrdlu")
	preview = Control.new();
	preview.set_custom_minimum_size(Vector2(0, 50))
	preview.connect("draw", self, "_redraw")
	add_child(preview)
	ctl = LineEdit.new()
	ctl.set_text("Etaoin shrdlu")
	ctl.connect("text_changed", self, "_ff_changed")
	add_child(ctl)


text:
tool
extends Node

enum TextDirection {

	TEXT_DIRECTION_LTR = 0,
	TEXT_DIRECTION_RTL = 1,
	TEXT_DIRECTION_LOCALE = 2,
	TEXT_DIRECTION_AUTO = 3,
	TEXT_DIRECTION_INVALID = 4
};

enum TextJustification {

	TEXT_JUSTIFICATION_NONE = 0,
	TEXT_JUSTIFICATION_KASHIDA_AND_WHITESPACE = 1,
	TEXT_JUSTIFICATION_KASHIDA_ONLY = 2,
	TEXT_JUSTIFICATION_WHITESPACE_ONLY = 3,
	TEXT_JUSTIFICATION_KASHIDA_AND_WHITESPACE_AND_INTERCHAR = 4,
	TEXT_JUSTIFICATION_KASHIDA_AND_INTERCHAR = 5,
	TEXT_JUSTIFICATION_WHITESPACE_AND_INTERCHAR = 6,
	TEXT_JUSTIFICATION_INTERCHAR_ONLY = 7
};

enum TextBreak {

	TEXT_BREAK_NONE = 0,
	TEXT_BREAK_MANDATORY = 1,
	TEXT_BREAK_MANDATORY_AND_WORD_BOUND = 2,
	TEXT_BREAK_MANDATORY_AND_ANYWHERE = 3
};

enum TextAttribute {

	TEXT_ATTRIBUTE_FONT = 1, #TLFontFamily
	TEXT_ATTRIBUTE_FONT_STYLE = 2, #String
	TEXT_ATTRIBUTE_FONT_SIZE = 3, #int
	TEXT_ATTRIBUTE_FONT_FEATURES = 4, #String
	TEXT_ATTRIBUTE_LANGUAGE = 5, #String
	TEXT_ATTRIBUTE_REPLACEMENT_IMAGE = 6, #Texture
	TEXT_ATTRIBUTE_REPLACEMENT_RECT = 7, #Size2
	TEXT_ATTRIBUTE_REPLACEMENT_ID = 8, #Variant
	TEXT_ATTRIBUTE_REPLACEMENT_VALIGN = 9, #VAlign

	TEXT_ATTRIBUTE_COLOR = 31, #Color
	TEXT_ATTRIBUTE_OUTLINE_COLOR = 32, #Color

	TEXT_ATTRIBUTE_UNDERLINE_COLOR = 41, #Color
	TEXT_ATTRIBUTE_UNDERLINE_WIDTH = 42, #int
	TEXT_ATTRIBUTE_STRIKETHROUGH_COLOR = 51, #Color
	TEXT_ATTRIBUTE_STRIKETHROUGH_WIDTH = 52, #int
	TEXT_ATTRIBUTE_OVERLINE_COLOR = 61, #Color
	TEXT_ATTRIBUTE_OVERLINE_WIDTH = 62, #int

	TEXT_ATTRIBUTE_HIGHLIGHT_COLOR = 71, #Color

	TEXT_ATTRIBUTE_META = 100 #Variant
};

enum TextVAlign {

	TEXT_VALIGN_TOP = 0,
	TEXT_VALIGN_CENTER = 1,
	TEXT_VALIGN_BOTTOM = 2
};

enum DynamicFaceHinting {

	DF_HINTING_NONE = 0,
	DF_HINTING_LIGHT = 1,
	DF_HINTING_NORMAL = 2
};

enum TextTrimMode {

	TEXT_TRIM_NONE = 0,
	TEXT_TRIM_BREAK = 1,
	TEXT_TRIM_BREAK_AND_WHITESPACE = 2
};

enum ParaHAlign {

	PARA_HALIGN_LEFT = 0,
	PARA_HALIGN_CENTER = 1,
	PARA_HALIGN_RIGHT = 2,
	PARA_HALIGN_FILL = 3
};


text:
tool
extends EditorInspectorPlugin

const TLFontFamily = preload("res://addons/libgdtl/classes/tl_font_family.gdns")
const TLFontFamilyPreview = preload("res://addons/libgdtl/tl_font_family_preview.gd")

func can_handle(object):
	var scr = object.get_script()
	if (scr && scr.is_class("NativeScript") && (scr.get_class_name() == "TLFontFamily" || scr.get_class_name() == "TLShapedAttributedString")):
		return true

func parse_begin(object):
	pass

func parse_category(object, category):
	pass

func parse_end():
	pass

func _new_style(p_object, p_ctl):
	if (p_object && p_ctl && p_ctl.get_text() != ""):
		p_object.add_style(p_ctl.get_text())

func _remove_style(p_object, p_style):
	if (p_object):
		p_object.remove_style(p_style)

func _new_lang(p_object, p_style, p_ctl):
	if (p_object && p_ctl && p_ctl.get_text() != ""):
		p_object.add_language(p_style, p_ctl.get_text())

func _new_script(p_object, p_style, p_ctl):
	if (p_object && p_ctl && p_ctl.get_text() != ""):
		p_object.add_script(p_style, p_ctl.get_text())

func _remove_lang(p_object, p_style, p_lang):
	if (p_object):
		p_object.remove_language(p_style, p_lang)

func _remove_script(p_object, p_style, p_script):
	if (p_object):
		p_object.remove_script(p_style, p_script)

func _clear(p_object):
	if (p_object):
		p_object.clear_attributes()

func _commit(p_object):
	if (p_object):
		p_object.commit_attribute()

func _reject(p_object):
	if (p_object):
		p_object.reject_attribute()

func parse_property(p_object, p_type, p_path, p_hint, p_hint_text, p_usage):
	if (p_path == "attribute/_commit"):
		var hbox = HBoxContainer.new()
		var rem_btn = Button.new()
		rem_btn.set_h_size_flags(Control.SIZE_EXPAND_FILL)
		rem_btn.connect("pressed", self, "_clear", [p_object])
		rem_btn.set_text("Clear")
		hbox.add_child(rem_btn)
		var cln_btn = Button.new()
		cln_btn.set_h_size_flags(Control.SIZE_EXPAND_FILL)
		cln_btn.connect("pressed", self, "_reject", [p_object])
		cln_btn.set_text("Remove")
		hbox.add_child(cln_btn)
		var new_btn = Button.new()
		new_btn.set_h_size_flags(Control.SIZE_EXPAND_FILL)
		new_btn.connect("pressed", self, "_commit", [p_object])
		new_btn.set_text("Add")
		hbox.add_child(new_btn)
		add_custom_control(hbox)
		return true
	if (p_path == "_new_style"):
		var hbox = HBoxContainer.new()
		var new_name = LineEdit.new()
		new_name.set_h_size_flags(Control.SIZE_EXPAND_FILL)
		new_name.set_placeholder("Style name")
		hbox.add_child(new_name)
		var new_btn = Button.new()
		new_btn.set_h_size_flags(Control.SIZE_EXPAND_FILL)
		new_btn.connect("pressed", self, "_new_style", [p_object, new_name])
		new_btn.set_text("Add style")
		hbox.add_child(new_btn)
		add_custom_control(hbox)
		return true
	var tokens = p_path.split("/")
	if (tokens.size() == 2):
		if (tokens[1] == "_prev_style"):
			var prev = TLFontFamilyPreview.new()
			prev.set_ff(p_object, tokens[0])
			add_custom_control(prev)
			return true
		elif (tokens[1] == "_remove_style"):
			var rem_btn = Button.new()
			rem_btn.set_text("Remove \"" + tokens[0] + "\" style")
			rem_btn.connect("pressed", self, "_remove_style", [p_object, tokens[0]])
			add_custom_control(rem_btn)
			return true
		elif (tokens[1] == "_add_lang"):
			var hbox = HBoxContainer.new()
			var new_name = LineEdit.new()
			new_name.set_h_size_flags(Control.SIZE_EXPAND_FILL)
			new_name.set_max_length(4)
			new_name.set_placeholder("ISO language code")
			hbox.add_child(new_name)
			var new_btn = Button.new()
			new_btn.set_h_size_flags(Control.SIZE_EXPAND_FILL)
			new_btn.connect("pressed", self, "_new_lang", [p_object, tokens[0], new_name])
			new_btn.set_text("Add language")
			hbox.add_child(new_btn)
			add_custom_control(hbox)
			return true
		elif (tokens[1] == "_add_script"):
			var hbox = HBoxContainer.new()
			var new_name = LineEdit.new()
			new_name.set_h_size_flags(Control.SIZE_EXPAND_FILL)
			new_name.set_max_length(4)
			new_name.set_placeholder("ISO script code")
			hbox.add_child(new_name)
			var new_btn = Button.new()
			new_btn.set_h_size_flags(Control.SIZE_EXPAND_FILL)
			new_btn.connect("pressed", self, "_new_script", [p_object, tokens[0], new_name])
			new_btn.set_text("Add script")
			hbox.add_child(new_btn)
			add_custom_control(hbox)
			return true
	elif (tokens.size() == 4):
		if (tokens[3] == "_remove_script" && tokens[1] == "script"):
			var rem_btn = Button.new()
			rem_btn.set_text("Remove \"" + tokens[2] + "\" script")
			rem_btn.connect("pressed", self, "_remove_script", [p_object, tokens[0], tokens[2]])
			add_custom_control(rem_btn)
			return true
		elif (tokens[3] == "_remove_lang" && tokens[1] == "lang"):
			var rem_btn = Button.new()
			rem_btn.set_text("Remove \"" + tokens[2] + "\" language")
			rem_btn.connect("pressed", self, "_remove_lang", [p_object, tokens[0], tokens[2]])
			add_custom_control(rem_btn)
			return true
	return false


text:
[gd_resource type="NativeScript" load_steps=2 format=2]

[ext_resource path="res://addons/libgdtl/libgdtl.gdnlib" type="GDNativeLibrary" id=1]

[resource]

resource_name = "TLICUDataLoader"
class_name = "TLICUDataLoader"
library = ExtResource( 1 )


text:
[gd_resource type="NativeScript" load_steps=2 format=2]

[ext_resource path="res://addons/libgdtl/libgdtl.gdnlib" type="GDNativeLibrary" id=1]

[resource]

resource_name = "TLDynamicFontFace"
class_name = "TLDynamicFontFace"
library = ExtResource( 1 )


text:
[gd_resource type="NativeScript" load_steps=2 format=2]

[ext_resource path="res://addons/libgdtl/libgdtl.gdnlib" type="GDNativeLibrary" id=1]

[resource]

resource_name = "TLFontFace"
class_name = "TLFontFace"
library = ExtResource( 1 )


text:
[gd_resource type="NativeScript" load_steps=2 format=2]

[ext_resource path="res://addons/libgdtl/libgdtl.gdnlib" type="GDNativeLibrary" id=1]

[resource]

resource_name = "TLFontFamily"
class_name = "TLFontFamily"
library = ExtResource( 1 )


text:
[gd_resource type="NativeScript" load_steps=2 format=2]

[ext_resource path="res://addons/libgdtl/libgdtl.gdnlib" type="GDNativeLibrary" id=1]

[resource]

resource_name = "TLRichTextEdit"
class_name = "TLRichTextEdit"
library = ExtResource( 1 )


text:
[gd_resource type="NativeScript" load_steps=2 format=2]

[ext_resource path="res://addons/libgdtl/libgdtl.gdnlib" type="GDNativeLibrary" id=1]

[resource]

resource_name = "TLLabel"
class_name = "TLLabel"
library = ExtResource( 1 )


text:
[gd_resource type="NativeScript" load_steps=2 format=2]

[ext_resource path="res://addons/libgdtl/libgdtl.gdnlib" type="GDNativeLibrary" id=1]

[resource]

resource_name = "TLShapedAttributedString"
class_name = "TLShapedAttributedString"
library = ExtResource( 1 )


text:
[gd_resource type="NativeScript" load_steps=2 format=2]

[ext_resource path="res://addons/libgdtl/libgdtl.gdnlib" type="GDNativeLibrary" id=1]

[resource]

resource_name = "TLShapedParagraph"
class_name = "TLShapedParagraph"
library = ExtResource( 1 )


text:
[gd_resource type="NativeScript" load_steps=2 format=2]

[ext_resource path="res://addons/libgdtl/libgdtl.gdnlib" type="GDNativeLibrary" id=1]

[resource]

resource_name = "TLBitmapFontFace"
class_name = "TLBitmapFontFace"
library = ExtResource( 1 )


text:
[gd_resource type="NativeScript" load_steps=2 format=2]

[ext_resource path="res://addons/libgdtl/libgdtl.gdnlib" type="GDNativeLibrary" id=1]

[resource]

resource_name = "TLShapedString"
class_name = "TLShapedString"
library = ExtResource( 1 )


text:
[gd_resource type="NativeScript" load_steps=2 format=2]

[ext_resource path="res://addons/libgdtl/libgdtl.gdnlib" type="GDNativeLibrary" id=1]

[resource]

resource_name = "TLRichTextEditSelection"
class_name = "TLRichTextEditSelection"
library = ExtResource( 1 )


text:
[gd_resource type="NativeScript" load_steps=2 format=2]

[ext_resource path="res://addons/libgdtl/libgdtl.gdnlib" type="GDNativeLibrary" id=1]

[resource]

resource_name = "TLLineEdit"
class_name = "TLLineEdit"
library = ExtResource( 1 )


text:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>AvailableLibraries</key>
	<array>
		<dict>
			<key>LibraryIdentifier</key>
			<string>ios-arm64</string>
			<key>LibraryPath</key>
			<string>libgdtl.a</string>
			<key>SupportedArchitectures</key>
			<array>
				<string>arm64</string>
			</array>
			<key>SupportedPlatform</key>
			<string>ios</string>
		</dict>
		<dict>
			<key>LibraryIdentifier</key>
			<string>ios-arm64_x86_64-simulator</string>
			<key>LibraryPath</key>
			<string>libgdtl.a</string>
			<key>SupportedArchitectures</key>
			<array>
				<string>arm64</string>
				<string>x86_64</string>
			</array>
			<key>SupportedPlatform</key>
			<string>ios</string>
			<key>SupportedPlatformVariant</key>
			<string>simulator</string>
		</dict>
	</array>
	<key>CFBundlePackageType</key>
	<string>XFWK</string>
	<key>XCFrameworkFormatVersion</key>
	<string>1.0</string>
</dict>
</plist>


text:
[binaries]
c = 'clang'
cpp = 'clang++'
ar = 'ar'
strip = 'strip'
pkgconfig = 'pkg-config'

[host_machine]
system = 'darwin'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'

[built-in options]
c_args = ['-arch', 'arm64']
cpp_args = ['-arch', 'arm64']
c_link_args = ['-arch', 'arm64']
cpp_link_args = ['-arch', 'arm64']


text:
[binaries]
c = 'i686-linux-gnu-gcc'
cpp = 'i686-linux-gnu-g++'
ar = 'i686-linux-gnu-ar'
strip = 'i686-linux-gnu-strip'
pkgconfig = 'pkg-config'

[host_machine]
system = 'linux'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'

[built-in options]
c_args = ['-march=i686', '-fPIC']
cpp_args = ['-march=i686', '-fPIC']
c_link_args = ['-march=i686']
cpp_link_args = ['-march=i686']


text:
[binaries]
c = 'clang'
cpp = 'clang++'
ar = 'ar'
strip = 'strip'
pkgconfig = 'pkg-config'

[host_machine]
system = 'darwin'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'

[built-in options]
c_args = ['-arch', 'x86_64']
cpp_args = ['-arch', 'x86_64']
c_link_args = ['-arch', 'x86_64']
cpp_link_args = ['-arch', 'x86_64']


text:
[binaries]
c = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang'
cpp = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++'
ar = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar'
strip = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip'
pkgconfig = ''

[host_machine]
system = 'android'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'

[built-in options]
c_args = ['--target=aarch64-none-linux-android21', '-march=armv8-a', '-fPIC']
cpp_args = ['--target=aarch64-none-linux-android21', '-march=armv8-a', '-fPIC']
c_link_args = ['--target=aarch64-none-linux-android21', '-march=armv8-a']
cpp_link_args = ['--target=aarch64-none-linux-android21', '-march=armv8-a']


text:
[binaries]
c = 'aarch64-linux-gnu-gcc'
cpp = 'aarch64-linux-gnu-g++'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
pkgconfig = 'pkg-config'

[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'

[built-in options]
c_args = ['-march=armv8-a', '-fPIC']
cpp_args = ['-march=armv8-a', '-fPIC']
c_link_args = ['-march=armv8-a']
cpp_link_args = ['-march=armv8-a']


text:
[binaries]
c = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang'
cpp = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++'
ar = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar'
strip = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip'
pkgconfig = ''

[host_machine]
system = 'android'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'

[built-in options]
c_args = ['--target=i686-none-linux-android21', '-march=i686', '-fPIC']
cpp_args = ['--target=i686-none-linux-android21', '-march=i686', '-fPIC']
c_link_args = ['--target=i686-none-linux-android21', '-march=i686']
cpp_link_args = ['--target=i686-none-linux-android21', '-march=i686']


text:
Editor
======

macOS:
    BUILD_NAME=gdtl scons platform=osx tools=yes tests=no target=release_debug use_font_wrapper=yes arch=arm64 -j8
    BUILD_NAME=gdtl scons platform=osx tools=yes tests=no target=release_debug use_font_wrapper=yes arch=x86_64 -j8

Windows:
    BUILD_NAME=gdtl scons platform=windows use_mingw=yes tools=yes tests=no target=release_debug use_font_wrapper=yes bits=64 -j8

Linux:
    BUILD_NAME=gdtl scons platform=x11 tools=yes tests=no target=release_debug use_font_wrapper=yes bits=64 -j8 CCFLAGS="-march=x86-64" LINKFLAGS="-march=x86-64" CC=x86_64-linux-gnu-gcc CXX=x86_64-linux-gnu-g++ AR=x86_64-linux-gnu-ar RANLIB=x86_64-linux-gnu-ranlib
    // BUILD_NAME=gdtl scons platform=x11 tools=yes tests=no target=release_debug use_font_wrapper=yes bits=64 -j8 CCFLAGS="-march=arm64-v8" LINKFLAGS="-march=arm64-v8" CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ AR=aarch64-linux-gnu-ar RANLIB=aarch64-linux-gnu-ranlib

Templates
=========

macOS:
    BUILD_NAME=gdtl scons platform=osx tools=no tests=no target=release_debug use_font_wrapper=yes arch=arm64 -j8
    BUILD_NAME=gdtl scons platform=osx tools=no tests=no target=release_debug use_font_wrapper=yes arch=x86_64 -j8

    BUILD_NAME=gdtl scons platform=osx tools=no tests=no target=release use_font_wrapper=yes arch=arm64 -j8
    BUILD_NAME=gdtl scons platform=osx tools=no tests=no target=release use_font_wrapper=yes arch=x86_64 -j8

Windows:
    BUILD_NAME=gdtl scons platform=windows use_mingw=yes tools=no tests=no target=release_debug use_font_wrapper=yes bits=64 -j8
    BUILD_NAME=gdtl scons platform=windows use_mingw=yes tools=no tests=no target=release_debug use_font_wrapper=yes bits=32 -j8

    BUILD_NAME=gdtl scons platform=windows use_mingw=yes tools=no tests=no target=release use_font_wrapper=yes bits=64 -j8
    BUILD_NAME=gdtl scons platform=windows use_mingw=yes tools=no tests=no target=release use_font_wrapper=yes bits=32 -j8

Linux:
    BUILD_NAME=gdtl scons platform=x11 tools=no tests=no target=release_debug use_font_wrapper=yes bits=32 -j8 CCFLAGS="-march=i686" LINKFLAGS="-march=i686" CC=i686-linux-gnu-gcc CXX=i686-linux-gnu-g++ AR=i686-linux-gnu-ar RANLIB=i686-linux-gnu-ranlib
    BUILD_NAME=gdtl scons platform=x11 tools=no tests=no target=release_debug use_font_wrapper=yes bits=64 -j8 CCFLAGS="-march=x86-64" LINKFLAGS="-march=x86-64" CC=x86_64-linux-gnu-gcc CXX=x86_64-linux-gnu-g++ AR=x86_64-linux-gnu-ar RANLIB=x86_64-linux-gnu-ranlib

    // BUILD_NAME=gdtl scons platform=x11 tools=no tests=no target=release_debug use_font_wrapper=yes bits=64 -j8 CCFLAGS="-march=armv7" LINKFLAGS="-march=armv7" CC=armv7-linux-gnu-gcc CXX=armv7-linux-gnu-g++ AR=armv7-linux-gnu-ar RANLIB=armv7-linux-gnu-ranlib
    // BUILD_NAME=gdtl scons platform=x11 tools=no tests=no target=release_debug use_font_wrapper=yes bits=64 -j8 CCFLAGS="-march=arm64-v8" LINKFLAGS="-march=arm64-v8" CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ AR=aarch64-linux-gnu-ar RANLIB=aarch64-linux-gnu-ranlib

    BUILD_NAME=gdtl scons platform=x11 tools=no tests=no target=release use_font_wrapper=yes bits=32 -j8 CCFLAGS="-march=i686" LINKFLAGS="-march=i686" CC=i686-linux-gnu-gcc CXX=i686-linux-gnu-g++ AR=i686-linux-gnu-ar RANLIB=i686-linux-gnu-ranlib
    BUILD_NAME=gdtl scons platform=x11 tools=no tests=no target=release use_font_wrapper=yes bits=64 -j8 CCFLAGS="-march=x86-64" LINKFLAGS="-march=x86-64" CC=x86_64-linux-gnu-gcc CXX=x86_64-linux-gnu-g++ AR=x86_64-linux-gnu-ar RANLIB=x86_64-linux-gnu-ranlib

    // BUILD_NAME=gdtl scons platform=x11 tools=no tests=no target=release use_font_wrapper=yes bits=64 -j8 CCFLAGS="-march=armv7" LINKFLAGS="-march=armv7" CC=armv7-linux-gnu-gcc CXX=armv7-linux-gnu-g++ AR=armv7-linux-gnu-ar RANLIB=armv7-linux-gnu-ranlib
    // BUILD_NAME=gdtl scons platform=x11 tools=no tests=no target=release use_font_wrapper=yes bits=64 -j8 CCFLAGS="-march=arm64-v8" LINKFLAGS="-march=arm64-v8" CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ AR=aarch64-linux-gnu-ar RANLIB=aarch64-linux-gnu-ranlib

iOS:
    BUILD_NAME=gdtl scons platform=iphone tools=no tests=no target=release_debug use_font_wrapper=yes arch=arm64 simulator=no -j8
    BUILD_NAME=gdtl scons platform=iphone tools=no tests=no target=release_debug use_font_wrapper=yes arch=x86_64 simulator=yes -j8
    // BUILD_NAME=gdtl scons platform=iphone tools=no tests=no target=release_debug use_font_wrapper=yes arch=arm64 simulator=yes -j8

    BUILD_NAME=gdtl scons platform=iphone tools=no tests=no target=release use_font_wrapper=yes arch=arm64 simulator=no -j8
    BUILD_NAME=gdtl scons platform=iphone tools=no tests=no target=release use_font_wrapper=yes arch=x86_64 simulator=yes -j8
    // BUILD_NAME=gdtl scons platform=iphone tools=no tests=no target=release use_font_wrapper=yes arch=arm64 simulator=yes -j8

Android:
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
    export ANDROID_NDK_ROOT=/Volumes/Backup/SDKs/Android/ndk/21.4.7075529
    export ANDROID_SDK_ROOT=/Volumes/Backup/SDKs/Android

    BUILD_NAME=gdtl scons platform=android tools=no tests=no target=release_debug use_font_wrapper=yes android_arch=armv7 -j8
    BUILD_NAME=gdtl scons platform=android tools=no tests=no target=release_debug use_font_wrapper=yes android_arch=arm64v8 -j8
    BUILD_NAME=gdtl scons platform=android tools=no tests=no target=release_debug use_font_wrapper=yes android_arch=x86_64 -j8

    BUILD_NAME=gdtl scons platform=android tools=no tests=no target=release use_font_wrapper=yes android_arch=armv7 -j8
    BUILD_NAME=gdtl scons platform=android tools=no tests=no target=release use_font_wrapper=yes android_arch=arm64v8 -j8
    BUILD_NAME=gdtl scons platform=android tools=no tests=no target=release use_font_wrapper=yes android_arch=x86_64 -j8

    cd platform/android/java
    ./gradlew generateGodotTemplates

Web:
    emsdk activate

    BUILD_NAME=gdtl scons platform=javascript tools=no tests=no target=release_debug use_font_wrapper=yes -j8
    BUILD_NAME=gdtl scons platform=javascript tools=no tests=no target=release use_font_wrapper=yes -j8

    BUILD_NAME=gdtl scons platform=javascript tools=no tests=no threads_enabled=yes target=release_debug use_font_wrapper=yes -j8
    BUILD_NAME=gdtl scons platform=javascript tools=no tests=no threads_enabled=yes target=release use_font_wrapper=yes -j8

    BUILD_NAME=gdtl scons platform=javascript tools=no tests=no gdnative_enabled=yes target=release_debug use_font_wrapper=yes -j8
    BUILD_NAME=gdtl scons platform=javascript tools=no tests=no gdnative_enabled=yes target=release use_font_wrapper=yes -j8


text:
[binaries]
c = '/opt/homebrew/bin/x86_64-w64-mingw32-gcc'
cpp = '/opt/homebrew/bin/x86_64-w64-mingw32-g++'
ar = '/opt/homebrew/bin/x86_64-w64-mingw32-ar'
strip = '/opt/homebrew/bin/x86_64-w64-mingw32-strip'
pkgconfig = '/opt/homebrew/bin/x86_64-w64-mingw32-pkg-config'

[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'amd64'
endian = 'little'

[built-in options]
c_args = ['-D_WIN32_WINNT=0x0601']
cpp_args = ['-D_WIN32_WINNT=0x0601']


text:
meson ./_macos_arm64 -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.osx.release.arm64 --cross-file ./toolchains/macos.arm64.toolchain
ninja -C ./_macos_arm64

meson ./_macos_x86_64 -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.osx.release.x86_64 --cross-file ./toolchains/macos.x86_64.toolchain
ninja -C ./_macos_x86_64

meson ./_windows_x86_64 -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.windows.release.64 --cross-file ./toolchains/mingw.x86_64.toolchain
ninja -C ./_windows_x86_64

meson ./_windows_x86 -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.windows.release.32 --cross-file ./toolchains/mingw.x86.toolchain
ninja -C ./_windows_x86

meson ./_android_armv7 -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.android.release.armv7 --cross-file ./toolchains/android.armv7.toolchain
ninja -C ./_android_armv7

meson ./_android_arm64 -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.android.release.arm64v8 --cross-file ./toolchains/android.arm64.toolchain
ninja -C ./_android_arm64

meson ./_android_x86 -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.android.release.x86 --cross-file ./toolchains/android.x86.toolchain
ninja -C ./_android_x86

meson ./_android_x86_64 -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.android.release.x86_64 --cross-file ./toolchains/android.x86_64.toolchain
ninja -C ./_android_x86_64

meson ./_ios_arm64 -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.ios.release.arm64 --cross-file ./toolchains/ios.arm64.toolchain
ninja -C ./_ios_arm64

meson ./_ios_arm64_sim -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.ios.release.arm64.simulator --cross-file ./toolchains/ios.arm64_sim.toolchain
ninja -C ./_ios_arm64_sim

meson ./_ios_x86_64_sim -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.ios.release.x86_64.simulator --cross-file ./toolchains/ios.x86_64_sim.toolchain
ninja -C ./_ios_x86_64_sim

meson ./_linux_arm64 -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.linux.release.arm64 --cross-file ./toolchains/linux.arm64.toolchain
ninja -C ./_linux_arm64

meson ./_linux_x86 -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.linux.release.x86 --cross-file ./toolchains/linux.x86.toolchain
ninja -C ./_linux_x86

meson ./_linux_x86_64 -Dstatic-runtime=false -Dbuiltin-runtime=true -Duse-graphite2=true --buildtype=release -Dgodot-cpp-lib-name=libgodot-cpp.linux.release.x86_64 --cross-file ./toolchains/linux.x86_64.toolchain
ninja -C ./_linux_x86_64


text:
[binaries]
c = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang'
cpp = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++'
ar = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar'
strip = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip'
pkgconfig = ''

[host_machine]
system = 'android'
cpu_family = 'x86_64'
cpu = 'amd64'
endian = 'little'

[built-in options]
c_args = ['--target=x86_64-none-linux-android21', '-march=x86-64', '-fPIC']
cpp_args = ['--target=x86_64-none-linux-android21', '-march=x86-64', '-fPIC']
c_link_args = ['--target=x86_64-none-linux-android21', '-march=x86-64']
cpp_link_args = ['--target=x86_64-none-linux-android21', '-march=x86-64']


text:
[binaries]
c = 'x86_64-linux-gnu-gcc'
cpp = 'x86_64-linux-gnu-g++'
ar = 'x86_64-linux-gnu-ar'
strip = 'x86_64-linux-gnu-strip'
pkgconfig = 'pkg-config'

[host_machine]
system = 'linux'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'

[built-in options]
c_args = ['-march=x86-64', '-fPIC']
cpp_args = ['-march=x86-64', '-fPIC']
c_link_args = ['-march=x86-64']
cpp_link_args = ['-march=x86-64']


text:
[binaries]
c = '/opt/homebrew/bin/i686-w64-mingw32-gcc'
cpp = '/opt/homebrew/bin/i686-w64-mingw32-g++'
ar = '/opt/homebrew/bin/i686-w64-mingw32-ar'
strip = '/opt/homebrew/bin/i686-w64-mingw32-strip'
pkgconfig = '/opt/homebrew/bin/i686-w64-mingw32-pkg-config'

[host_machine]
system = 'windows'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'

[built-in options]
c_args = ['-D_WIN32_WINNT=0x0601']
cpp_args = ['-D_WIN32_WINNT=0x0601']


text:
[binaries]
c = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang'
cpp = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++'
ar = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar'
strip = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip'
pkgconfig = ''

[host_machine]
system = 'ios'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'

[built-in options]
c_args = ['-arch', 'arm64', '--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk', '-mios-simulator-version-min=10.0']
cpp_args = ['-arch', 'arm64', '--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk', '-mios-simulator-version-min=10.0']
c_link_args = ['-arch', 'arm64', '--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk', '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk', '-mios-simulator-version-min=10.0']
cpp_link_args = ['-arch', 'arm64', '--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk', '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk', '-mios-simulator-version-min=10.0']


text:
[binaries]
c = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang'
cpp = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++'
ar = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar'
strip = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip'
pkgconfig = ''

[host_machine]
system = 'ios'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'

[built-in options]
c_args = ['-arch', 'arm64', '--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk', '-miphoneos-version-min=10.0']
cpp_args = ['-arch', 'arm64', '--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk', '-miphoneos-version-min=10.0']
c_link_args = ['-arch', 'arm64', '--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk', '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk', '-miphoneos-version-min=10.0']
cpp_link_args = ['-arch', 'arm64', '--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk', '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk', '-miphoneos-version-min=10.0']


text:
[binaries]
c = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang'
cpp = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++'
ar = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar'
strip = '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip'
pkgconfig = ''

[host_machine]
system = 'ios'
cpu_family = 'x86_64'
cpu = 'amd64'
endian = 'little'

[built-in options]
c_args = ['-arch', 'x86_64', '--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk', '-mios-simulator-version-min=10.0']
cpp_args = ['-arch', 'x86_64', '--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk', '-mios-simulator-version-min=10.0']
c_link_args = ['-arch', 'x86_64', '--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk', '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk', '-mios-simulator-version-min=10.0']
cpp_link_args = ['-arch', 'x86_64', '--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk', '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk', '-mios-simulator-version-min=10.0']


text:
[binaries]
c = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang'
cpp = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++'
ar = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar'
strip = '/usr/local/opt/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip'
pkgconfig = ''

[host_machine]
system = 'android'
cpu_family = 'arm'
cpu = 'armv7'
endian = 'little'

[built-in options]
c_args = ['--target=armv7a-linux-androideabi21', '-march=armv7-a', '-fPIC', '-mfpu=neon']
cpp_args = ['--target=armv7a-linux-androideabi21', '-march=armv7-a', '-fPIC', '-mfpu=neon']
c_link_args = ['--target=armv7a-linux-androideabi21', '-march=armv7-a']
cpp_link_args = ['--target=armv7a-linux-androideabi21', '-march=armv7-a']


text:
<?xml version="1.0" encoding="UTF-8" ?>
<class name="TLFontFace" inherits="Resource" category="Core" version="3.2">
	<brief_description>
		*Virtual class*

		A base font face class.
	</brief_description>
	<description>
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="draw_glyph" qualifiers="const">
			<return type="void">
			</return>
			<argument index="0" name="canvas_item" type="RID">
			</argument>
			<argument index="1" name="pos" type="Vector2">
			</argument>
			<argument index="2" name="codepoint" type="int">
			</argument>
			<argument index="3" name="modulate" type="Color">
			</argument>
			<argument index="4" name="size" type="int">
			</argument>
			<description>
				Draws a single glyph.
			</description>
		</method>
		<method name="draw_glyph_outline" qualifiers="const">
			<return type="void">
			</return>
			<argument index="0" name="canvas_item" type="RID">
			</argument>
			<argument index="1" name="pos" type="Vector2">
			</argument>
			<argument index="2" name="codepoint" type="int">
			</argument>
			<argument index="3" name="modulate" type="Color">
			</argument>
			<argument index="4" name="size" type="int">
			</argument>
			<description>
				Draws single glyph outline.
			</description>
		</method>
		<method name="get_ascent" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="size" type="int">
			</argument>
			<description>
				Returns ascent (distance from the baseline to the highest position characters extend to) of the font.
			</description>
		</method>
		<method name="get_base_size" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns default font size for bitmap fonts or [code]0[/code] for dynamic fonts.
			</description>
		</method>
		<method name="get_descent" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="size" type="int">
			</argument>
			<description>
				Returns descent (distance from the base line to the lowest point characters extend to) of the font.
			</description>
		</method>
		<method name="get_glyph_outline" qualifiers="const">
			<return type="Array">
			</return>
			<argument index="0" name="pos" type="Vector2">
			</argument>
			<argument index="1" name="codepoint" type="int">
			</argument>
			<argument index="2" name="size" type="int">
			</argument>
			<description>
				Returns array of glyph counture points, if it's supported by font implementation or empty array otherwise.
			</description>
		</method>
		<method name="get_height" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="size" type="int">
			</argument>
			<description>
				Returns height (vertical distance between two consecutive baselines) of the font.
			</description>
		</method>
		<method name="load">
			<return type="bool">
			</return>
			<argument index="0" name="resource_path" type="String">
			</argument>
			<description>
				Loads font from speified file.
			</description>
		</method>
		<method name="unicode_scripts_supported" qualifiers="const">
			<return type="Array">
			</return>
			<description>
				Returns array of supported ISO 15924 script codes.
			</description>
		</method>
	</methods>
	<members>
		<member name="font_path" type="String" setter="set_font_path" getter="get_font_path" default="""">
			Path of the font file.
		</member>
		<member name="texture_flags" type="int" setter="set_texture_flags" getter="get_texture_flags" default="0">
			Underlaying textures flags, see Texture class documentation https://docs.godotengine.org/en/latest/classes/class_texture.html#enumerations for more info.
		</member>
	</members>
	<constants>
	</constants>
</class>


text:
<?xml version="1.0" encoding="UTF-8" ?>
<class name="TLBitmapFontFace" inherits="TLFontFace" category="Core" version="3.2">
	<brief_description>
		An AngelCode Bitmap Font Generator bitmap font for drawing text.
	</brief_description>
	<description>
		TLBitmapFontFace have limited shaping support.
		TLBitmapFontFace doesn't support OpenType features.
	</description>
	<tutorials>
	</tutorials>
	<methods>
	</methods>
	<members>
		<member name="texture_flags" type="int" setter="set_texture_flags" getter="get_texture_flags" override="true" default="2048" />
	</members>
	<constants>
	</constants>
</class>


text:
<?xml version="1.0" encoding="UTF-8" ?>
<class name="TLShapedString" inherits="Resource" category="Core" version="3.2">
	<brief_description>
		Holds shaped line of plain text.
	</brief_description>
	<description>
		Note 1: Code points, Characters, Clusters and Glyphs

		- A code point is a single encoding UTF-16 unit (Unicode character or half of the surrogate pair).
		- A character is a full Unicode character.
		- A grapheme cluster is the abstract unit of a writing system (a letter, a digit, or punctuation).
		- A glyph is a shape used to render a character or a sequence of characters.

		In general, code point, characters, clusters and glyphs do not have one-to-one correspondence.

		Note 2: Encoding

		TLShapedString uses UTF-16 encoding, all positions accepted and returned by TLShapedString function are measured in UTF-16 code points.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_sstring">
			<return type="void">
			</return>
			<argument index="0" name="text" type="TLShapedString">
			</argument>
			<description>
				Appends shaped string.
			</description>
		</method>
		<method name="add_text">
			<return type="void">
			</return>
			<argument index="0" name="text" type="String">
			</argument>
			<description>
				Appends plain text string.
			</description>
		</method>
		<method name="add_utf16">
			<return type="void">
			</return>
			<argument index="0" name="text" type="PoolByteArray">
			</argument>
			<description>
			</description>
		</method>
		<method name="add_utf32">
			<return type="void">
			</return>
			<argument index="0" name="text" type="PoolByteArray">
			</argument>
			<description>
			</description>
		</method>
		<method name="add_utf8">
			<return type="void">
			</return>
			<argument index="0" name="text" type="PoolByteArray">
			</argument>
			<description>
			</description>
		</method>
		<method name="break_jst" qualifiers="const">
			<return type="Array">
			</return>
			<description>
			</description>
		</method>
		<method name="break_lines" qualifiers="const">
			<return type="Array">
			</return>
			<argument index="0" name="width" type="float">
			</argument>
			<argument index="1" name="flags" type="int">
			</argument>
			<description>
				Breaks text into lines that fit within a specified width.
				Returns [Array] of line boundaries.
			</description>
		</method>
		<method name="break_words" qualifiers="const">
			<return type="Array">
			</return>
			<description>
				Breaks text into words.
				Returns [Array] of word boundaries.
			</description>
		</method>
		<method name="char_count" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns number of characters in the string.
			</description>
		</method>
		<method name="clusters" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns number of grapheme clusters, clusters are indexed in visual order.
			</description>
		</method>
		<method name="copy_properties">
			<return type="void">
			</return>
			<argument index="0" name="source" type="TLShapedString">
			</argument>
			<description>
			</description>
		</method>
		<method name="draw">
			<return type="void">
			</return>
			<argument index="0" name="canvas_item" type="RID">
			</argument>
			<argument index="1" name="position" type="Vector2">
			</argument>
			<argument index="2" name="modulate" type="Color">
			</argument>
			<description>
				Draws a string.
			</description>
		</method>
		<method name="draw_as_hex">
			<return type="void">
			</return>
			<argument index="0" name="canvas_item" type="RID">
			</argument>
			<argument index="1" name="position" type="Vector2">
			</argument>
			<argument index="2" name="modulate" type="Color">
			</argument>
			<argument index="3" name="draw_brk_ops" type="bool">
			</argument>
			<argument index="4" name="draw_jst_ops" type="bool">
			</argument>
			<description>
				[code]DEBUG:[/code] Draws a string using "hexbox" fallback font.
			</description>
		</method>
		<method name="draw_cluster">
			<return type="Vector2">
			</return>
			<argument index="0" name="canvas_item" type="RID">
			</argument>
			<argument index="1" name="position" type="Vector2">
			</argument>
			<argument index="2" name="index" type="int">
			</argument>
			<argument index="3" name="modulate" type="Color">
			</argument>
			<description>
				Draws single grapheme cluster. Returns advance.
			</description>
		</method>
		<method name="draw_dbg">
			<return type="void">
			</return>
			<argument index="0" name="canvas_item" type="RID">
			</argument>
			<argument index="1" name="position" type="Vector2">
			</argument>
			<argument index="2" name="modulate" type="Color">
			</argument>
			<argument index="3" name="draw_brk_ops" type="bool">
			</argument>
			<argument index="4" name="draw_jst_ops" type="bool">
			</argument>
			<description>
				[code]DEBUG:[/code] Draws a string with additional debug information.
			</description>
		</method>
		<method name="draw_logical_as_hex">
			<return type="void">
			</return>
			<argument index="0" name="canvas_item" type="RID">
			</argument>
			<argument index="1" name="position" type="Vector2">
			</argument>
			<argument index="2" name="modulate" type="Color">
			</argument>
			<argument index="3" name="draw_brk_ops" type="bool">
			</argument>
			<argument index="4" name="draw_jst_ops" type="bool">
			</argument>
			<description>
				[code]DEBUG:[/code] Draws logical character codes of the string with additional debug information.
			</description>
		</method>
		<method name="empty" qualifiers="const">
			<return type="bool">
			</return>
			<description>
				Returns [code]true[/code] if the string is empty.
			</description>
		</method>
		<method name="extend_to_width">
			<return type="float">
			</return>
			<argument index="0" name="width" type="float">
			</argument>
			<argument index="1" name="flags" type="int">
			</argument>
			<description>
				Increase text width to the specified. Returns new line width.
			</description>
		</method>
		<method name="get_ascent" qualifiers="const">
			<return type="float">
			</return>
			<description>
				Returns ascent of the line.
			</description>
		</method>
		<method name="get_char_direction" qualifiers="const">
			<return type="int" enum="TextDirection">
			</return>
			<argument index="0" name="position" type="int">
			</argument>
			<description>
				Return writing direction of a character writing direction.
			</description>
		</method>
		<method name="get_cluster_ascent" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Returns cluster ascent.
			</description>
		</method>
		<method name="get_cluster_debug_info" qualifiers="const">
			<return type="String">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
			</description>
		</method>
		<method name="get_cluster_descent" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Returns cluster descent.
			</description>
		</method>
		<method name="get_cluster_end" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Returns last character position corresponding cluster.
			</description>
		</method>
		<method name="get_cluster_face" qualifiers="const">
			<return type="TLFontFace">
			</return>
			<argument index="0" name="position" type="int">
			</argument>
			<description>
				Returns font face of the cluster.
			</description>
		</method>
		<method name="get_cluster_face_size" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="position" type="int">
			</argument>
			<description>
				Returns font size of the cluster. For non-attributed string it's always equal to base size.
			</description>
		</method>
		<method name="get_cluster_glyph" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<argument index="1" name="glyph" type="int">
			</argument>
			<description>
				Returns glyph ID.
			</description>
		</method>
		<method name="get_cluster_glyph_advance" qualifiers="const">
			<return type="Vector2">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<argument index="1" name="glyph" type="int">
			</argument>
			<description>
				Returns glyph advance.
			</description>
		</method>
		<method name="get_cluster_glyph_offset" qualifiers="const">
			<return type="Vector2">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<argument index="1" name="glyph" type="int">
			</argument>
			<description>
				Returns glyph offset.
			</description>
		</method>
		<method name="get_cluster_glyphs" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Returns number of glyphs in cluster.
			</description>
		</method>
		<method name="get_cluster_height" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Returns cluster height.
			</description>
		</method>
		<method name="get_cluster_index" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="position" type="int">
			</argument>
			<description>
				Returns cluster index corresponding to a specific character position in string.
			</description>
		</method>
		<method name="get_cluster_leading_edge" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Returns cluster leading edge offset in pixels.
			</description>
		</method>
		<method name="get_cluster_rect" qualifiers="const">
			<return type="Rect2">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Returns cluster bounding rectangle.
			</description>
		</method>
		<method name="get_cluster_start" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Returns first character position corresponding cluster.
			</description>
		</method>
		<method name="get_cluster_trailing_edge" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Returns cluster trailing edge offset in pixels.
			</description>
		</method>
		<method name="get_cluster_width" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Returns cluster width.
			</description>
		</method>
		<method name="get_cursor_positions" qualifiers="const">
			<return type="Array">
			</return>
			<argument index="0" name="position" type="int">
			</argument>
			<argument index="1" name="primary_dir" type="int">
			</argument>
			<description>
				Returns an [Array] of [code]float[/code] (up to two elements) offsets corresponding to the strong and weak cursor, at the specified character position.
			</description>
		</method>
		<method name="get_descent" qualifiers="const">
			<return type="float">
			</return>
			<description>
				Returns descent of the line.
			</description>
		</method>
		<method name="get_height" qualifiers="const">
			<return type="float">
			</return>
			<description>
				Returns height of the line.
			</description>
		</method>
		<method name="get_highlight_shapes" qualifiers="const">
			<return type="Array">
			</return>
			<argument index="0" name="start" type="int">
			</argument>
			<argument index="1" name="end" type="int">
			</argument>
			<description>
				Returns an [Array] of [Rect2] enclosing the selection/highlight in the specified range.
			</description>
		</method>
		<method name="get_para_direction" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns shaped string paragraph direction.
			</description>
		</method>
		<method name="get_utf16" qualifiers="const">
			<return type="PoolByteArray">
			</return>
			<description>
				Returns raw text string in UTF-16 encoding.
			</description>
		</method>
		<method name="get_utf32" qualifiers="const">
			<return type="PoolByteArray">
			</return>
			<description>
				Returns raw text string in UTF-32 encoding.
			</description>
		</method>
		<method name="get_utf8" qualifiers="const">
			<return type="PoolByteArray">
			</return>
			<description>
				Returns raw text string in UTF-8 encoding.
			</description>
		</method>
		<method name="get_width" qualifiers="const">
			<return type="float">
			</return>
			<description>
				Returns width of the line.
			</description>
		</method>
		<method name="hit_test" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="position" type="float">
			</argument>
			<description>
				Returns a cursor position corresponding to the specified pixel offset.
			</description>
		</method>
		<method name="hit_test_cluster" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="position" type="float">
			</argument>
			<description>
				Returns a cluster index corresponding to the specified pixel offset.
			</description>
		</method>
		<method name="is_valid" qualifiers="const">
			<return type="bool">
			</return>
			<description>
				Returns [code]true[/code] if the string is shaped successfully.
			</description>
		</method>
		<method name="length" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns number of UTF-16 codepoints in the string.
			</description>
		</method>
		<method name="next_safe_bound" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="position" type="int">
			</argument>
			<description>
				Returns next whole character position in the string.
			</description>
		</method>
		<method name="pos_u16_to_wcs" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="position" type="int">
			</argument>
			<description>
				Returns character position (Characters)
			</description>
		</method>
		<method name="pos_wcs_to_u16" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="position" type="int">
			</argument>
			<description>
				Retruns character position (UTF-16 codepoints)
			</description>
		</method>
		<method name="prev_safe_bound" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="position" type="int">
			</argument>
			<description>
				Returns previous whole character position in the string.
			</description>
		</method>
		<method name="replace_sstring">
			<return type="void">
			</return>
			<argument index="0" name="start" type="int">
			</argument>
			<argument index="1" name="end" type="int">
			</argument>
			<argument index="2" name="text" type="TLShapedString">
			</argument>
			<description>
				Replaces substring with contents of another shaped string.
			</description>
		</method>
		<method name="replace_text">
			<return type="void">
			</return>
			<argument index="0" name="start" type="int">
			</argument>
			<argument index="1" name="end" type="int">
			</argument>
			<argument index="2" name="text" type="String">
			</argument>
			<description>
				Replaces substring with text.
			</description>
		</method>
		<method name="replace_utf16">
			<return type="void">
			</return>
			<argument index="0" name="start" type="int">
			</argument>
			<argument index="1" name="end" type="int">
			</argument>
			<argument index="2" name="text" type="PoolByteArray">
			</argument>
			<description>
				Replaces substring with contents of the raw UTF-16 encoded string.
			</description>
		</method>
		<method name="replace_utf32">
			<return type="void">
			</return>
			<argument index="0" name="start" type="int">
			</argument>
			<argument index="1" name="end" type="int">
			</argument>
			<argument index="2" name="text" type="PoolByteArray">
			</argument>
			<description>
				Replaces substring with contents of the raw UTF-32 encoded string.
			</description>
		</method>
		<method name="replace_utf8">
			<return type="void">
			</return>
			<argument index="0" name="start" type="int">
			</argument>
			<argument index="1" name="end" type="int">
			</argument>
			<argument index="2" name="text" type="PoolByteArray">
			</argument>
			<description>
				Replaces substring with contents of the raw UTF-8 encoded string.
			</description>
		</method>
		<method name="set_utf16">
			<return type="void">
			</return>
			<argument index="0" name="data" type="PoolByteArray">
			</argument>
			<description>
				Sets text to the contents of the raw UTF-16 encoded string.
			</description>
		</method>
		<method name="set_utf32">
			<return type="void">
			</return>
			<argument index="0" name="data" type="PoolByteArray">
			</argument>
			<description>
				Sets text to the contents of the raw UTF-32 encoded string.
			</description>
		</method>
		<method name="set_utf8">
			<return type="void">
			</return>
			<argument index="0" name="data" type="PoolByteArray">
			</argument>
			<description>
				Sets text to the contents of the raw UTF-8 encoded string.
			</description>
		</method>
		<method name="shape">
			<return type="bool">
			</return>
			<description>
				Shapes string and returns [code]true[/code] if the string is shaped successfully.
			</description>
		</method>
		<method name="substr" qualifiers="const">
			<return type="TLShapedString">
			</return>
			<argument index="0" name="start" type="int">
			</argument>
			<argument index="1" name="end" type="int">
			</argument>
			<argument index="2" name="trim" type="int">
			</argument>
			<description>
				Returns part of the shaped string from the position [code]start[/code] to [code]end[/code], trims it according to [code]trim[/code] parameter.
			</description>
		</method>
	</methods>
	<members>
		<member name="base_direction" type="int" setter="set_base_direction" getter="get_base_direction" default="3">
			Base text writing direction.
		</member>
		<member name="base_font" type="TLFontFamily" setter="set_base_font" getter="get_base_font">
			Base font family reference.
		</member>
		<member name="base_font_size" type="int" setter="set_base_font_size" getter="get_base_font_size" default="12">
			Font size.
		</member>
		<member name="base_font_style" type="String" setter="set_base_font_style" getter="get_base_font_style" default=""Regular"">
			Style name (Regular, Bold, Italic, Oblique etc.).
		</member>
		<member name="features" type="String" setter="set_features" getter="get_features" default="""">
			Comma separated list of OpenType feature tags. More info: https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags.
		</member>
		<member name="language" type="String" setter="set_language" getter="get_language" default=""en"">
			Language code for line-breaking and text shaping algorithms.
		</member>
		<member name="preserve_control" type="bool" setter="set_preserve_control" getter="get_preserve_control" default="false">
			If [code]true[/code], displays control character.
		</member>
		<member name="text" type="String" setter="set_text" getter="get_text" default="""">
			Text string.
		</member>
	</members>
	<signals>
		<signal name="string_changed">
			<description>
				Emitted when the text or/and other property of the string changes.
			</description>
		</signal>
		<signal name="string_shaped">
			<description>
				Emitted when the text shaping process is completed.
			</description>
		</signal>
	</signals>
	<constants>
		<constant name="TEXT_DIRECTION_LTR" value="0" enum="TextDirection">
			Left-to-right text writing direction.
		</constant>
		<constant name="TEXT_DIRECTION_RTL" value="1" enum="TextDirection">
			Right-to-left text writing direction.
		</constant>
		<constant name="TEXT_DIRECTION_LOCALE" value="2" enum="TextDirection">
			Text writing direction is derived from the locale's script according to the CLDR metadata.
		</constant>
		<constant name="TEXT_DIRECTION_AUTO" value="3" enum="TextDirection">
			Text writing direction is derived from the first character in the string with BiDi class L, R, or AL or locale's script if text is not strongly directional.
		</constant>
		<constant name="TEXT_DIRECTION_INVALID" value="4" enum="TextDirection">
			Invalid text direction (Used as return value only).
		</constant>
		<constant name="TEXT_JUSTIFICATION_NONE" value="0" enum="TextJustification">
			No text justification.
		</constant>
		<constant name="TEXT_JUSTIFICATION_KASHIDA_AND_WHITESPACE" value="1" enum="TextJustification">
			Use kashida and white space elongation to justify text.
		</constant>
		<constant name="TEXT_JUSTIFICATION_KASHIDA_ONLY" value="2" enum="TextJustification">
			Use kashida elongation to justify text.
		</constant>
		<constant name="TEXT_JUSTIFICATION_WHITESPACE_ONLY" value="3" enum="TextJustification">
			Use white space elongation to justify text.
		</constant>
		<constant name="TEXT_JUSTIFICATION_KASHIDA_AND_WHITESPACE_AND_INTERCHAR" value="4" enum="TextJustification">
			Use kashida, white space and inter character elongation to justify text.
		</constant>
		<constant name="TEXT_JUSTIFICATION_KASHIDA_AND_INTERCHAR" value="5" enum="TextJustification">
			Use kashida and inter character elongation to justify text.
		</constant>
		<constant name="TEXT_JUSTIFICATION_WHITESPACE_AND_INTERCHAR" value="6" enum="TextJustification">
			Use white space and inter character elongation to justify text.
		</constant>
		<constant name="TEXT_JUSTIFICATION_INTERCHAR_ONLY" value="7" enum="TextJustification">
			Use inter character elongation to justify text.
		</constant>
		<constant name="TEXT_BREAK_NONE" value="0" enum="TextBreak">
			No line breaking.
		</constant>
		<constant name="TEXT_BREAK_MANDATORY" value="1" enum="TextBreak">
			Break lines only at mandatory break points.
		</constant>
		<constant name="TEXT_BREAK_MANDATORY_AND_WORD_BOUND" value="2" enum="TextBreak">
			Break lines at mandatory break points and word boundaries.
		</constant>
		<constant name="TEXT_BREAK_MANDATORY_AND_ANYWHERE" value="3" enum="TextBreak">
			Break lines at mandatory break points and grapheme cluster boundaries.
		</constant>
		<constant name="TEXT_TRIM_NONE" value="0" enum="TextTrimMode">
			No substring trimming.
		</constant>
		<constant name="TEXT_TRIM_BREAK" value="1" enum="TextTrimMode">
			Trim line break characters for substring ends.
		</constant>
		<constant name="TEXT_TRIM_BREAK_AND_WHITESPACE" value="2" enum="TextTrimMode">
			Trim line break and white space characters for substring ends.
		</constant>
	</constants>
</class>


text:
<?xml version="1.0" encoding="UTF-8" ?>
<class name="TLFontIterator" inherits="Reference" category="Core" version="3.2">
	<brief_description>
	</brief_description>
	<description>
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="is_linked" qualifiers="const">
			<return type="bool">
			</return>
			<description>
				Return [code]true[/code] if current iterator value is part of language/script specific fallback list.
			</description>
		</method>
		<method name="is_valid" qualifiers="const">
			<return type="bool">
			</return>
			<description>
				Return [code]true[/code] if current iterator value is valid.
			</description>
		</method>
		<method name="next">
			<return type="bool">
			</return>
			<description>
				Advances iterator. Return [code]true[/code] if current iterator value is valid.
			</description>
		</method>
		<method name="value" qualifiers="const">
			<return type="TLFontFace">
			</return>
			<description>
				Return current font face.
			</description>
		</method>
	</methods>
	<constants>
	</constants>
</class>


text:
<?xml version="1.0" encoding="UTF-8" ?>
<class name="TLDynamicFontFace" inherits="TLFontFace" category="Core" version="3.2">
	<brief_description>
		A TrueType, OpenType or Graphite font for drawing text.
	</brief_description>
	<description>
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="has_graphite" qualifiers="const">
			<return type="bool">
			</return>
			<description>
				Returns [code]true[/code] if module is built with SIL Graphite 2 shaper support.
			</description>
		</method>
	</methods>
	<members>
		<member name="force_autohinter" type="bool" setter="set_force_autohinter" getter="get_force_autohinter" default="false">
			If [code]true[/code], prefers FreeType auto-hinter over the font's native hinter.
		</member>
		<member name="hinting" type="int" setter="set_hinting" getter="get_hinting" default="2">
			The font hinting mode used by FreeType auto-hinter.
		</member>
		<member name="oversampling" type="float" setter="set_oversampling" getter="get_oversampling" default="1.0">
			Font oversampling factor.
		</member>
		<member name="texture_flags" type="int" setter="set_texture_flags" getter="get_texture_flags" override="true" default="2048" />
	</members>
	<constants>
		<constant name="DF_HINTING_NONE" value="0" enum="DynamicFaceHinting">
			Disable font hinting (smoother but less crisp)
		</constant>
		<constant name="DF_HINTING_LIGHT" value="1" enum="DynamicFaceHinting">
			Use the light font hinting mode
		</constant>
		<constant name="DF_HINTING_NORMAL" value="2" enum="DynamicFaceHinting">
			Use the default font hinting mode (crisper but less smooth)
		</constant>
	</constants>
</class>


text:
<?xml version="1.0" encoding="UTF-8" ?>
<class name="TLShapedAttributedString" inherits="TLShapedString" category="Core" version="3.2">
	<brief_description>
		Golds shaped line of text with associated attributes.
	</brief_description>
	<description>
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_attribute">
			<return type="void">
			</return>
			<argument index="0" name="attribute" type="int">
			</argument>
			<argument index="1" name="value" type="Variant">
			</argument>
			<argument index="2" name="start" type="int">
			</argument>
			<argument index="3" name="end" type="int">
			</argument>
			<description>
				Sets [code]attribute[/code] attribute to [code]value[/code] for specified text range.
			</description>
		</method>
		<method name="clear_attributes">
			<return type="void">
			</return>
			<description>
				Removes all attributes.
			</description>
		</method>
		<method name="commit_attribute">
			<return type="void">
			</return>
			<description>
			</description>
		</method>
		<method name="get_attribute" qualifiers="const">
			<return type="Variant">
			</return>
			<argument index="0" name="attribute" type="int">
			</argument>
			<argument index="1" name="index" type="int">
			</argument>
			<description>
				Returns [code]attribute[/code] attribute value for specified text position.
			</description>
		</method>
		<method name="get_attribute_end" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="attribute" type="int">
			</argument>
			<argument index="1" name="index" type="int">
			</argument>
			<description>
				Returns last position of [code]attribute[/code] attribute run enclosing specified position.
			</description>
		</method>
		<method name="get_attribute_start" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="attribute" type="int">
			</argument>
			<argument index="1" name="index" type="int">
			</argument>
			<description>
				Returns first position of [code]attribute[/code] attribute run enclosing specified position.
			</description>
		</method>
		<method name="get_embedded_rects">
			<return type="Array">
			</return>
			<description>
				Returns bounding rectangles of embedded objects ([code]TEXT_ATTRIBUTE_REPLACEMENT_RECT[/code] attributes).
			</description>
		</method>
		<method name="has_attribute" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="attribute" type="int">
			</argument>
			<argument index="1" name="index" type="int">
			</argument>
			<description>
				Returns [code]true[/code] if specified position has [code]attribute[/code] attribute set.
			</description>
		</method>
		<method name="load_attributes_dict">
			<return type="void">
			</return>
			<argument index="0" name="array" type="Array">
			</argument>
			<description>
				Loads attributes from [Array] of [Dictionary].
			</description>
		</method>
		<method name="remove_attribute">
			<return type="void">
			</return>
			<argument index="0" name="attribute" type="int">
			</argument>
			<argument index="1" name="start" type="int">
			</argument>
			<argument index="2" name="end" type="int">
			</argument>
			<description>
				Removes [code]attribute[/code] attribute for specified text range.
			</description>
		</method>
		<method name="remove_attributes">
			<return type="void">
			</return>
			<argument index="0" name="start" type="int">
			</argument>
			<argument index="1" name="end" type="int">
			</argument>
			<description>
				Removes all attributes for specified text range.
			</description>
		</method>
		<method name="save_attributes_dict" qualifiers="const">
			<return type="Array">
			</return>
			<description>
				Stores string attributes into [Array] of [Dictionary].
			</description>
		</method>
	</methods>
	<members>
		<member name="attributes_dict" type="Array" setter="load_attributes_dict" getter="save_attributes_dict">
			[Array] of attribute [Dictionary].
		</member>
		<member name="attribute/type" type="int">
			Temporary attribute type, temporary attributes can be committed to the string by calling [method commit_attribute].
		</member>
		<member name="attribute/value" type="Variant">
			Temporary attribute value, temporary attributes can be committed to the string by calling [method commit_attribute].
		</member>
		<member name="attribute/start" type="int">
			Temporary attribute start offset, temporary attributes can be committed to the string by calling [method commit_attribute].
		</member>
		<member name="attribute/end" type="int">
			Temporary attribute end offset, temporary attributes can be committed to the string by calling [method commit_attribute].
		</member>
	</members>
	<constants>
		<constant name="TEXT_ATTRIBUTE_FONT" value="1" enum="TextAttribute">
			Font family. Attribute type: [TLFontFamily]
		</constant>
		<constant name="TEXT_ATTRIBUTE_FONT_STYLE" value="2" enum="TextAttribute">
			Font style (Regular, Bold, Italic, Oblique etc.). Attribute type: [String]
		</constant>
		<constant name="TEXT_ATTRIBUTE_FONT_SIZE" value="3" enum="TextAttribute">
			Font size. Attribute type: [code]int[/code]
		</constant>
		<constant name="TEXT_ATTRIBUTE_FONT_FEATURES" value="4" enum="TextAttribute">
			Comma separated list of OpenType feature tags. More info: https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags. Attribute type: [String]
		</constant>
		<constant name="TEXT_ATTRIBUTE_LANGUAGE" value="5" enum="TextAttribute">
			Language code for line-breaking and text shaping algorithms. Attribute type: [String]
		</constant>
		<constant name="TEXT_ATTRIBUTE_REPLACEMENT_IMAGE" value="6" enum="TextAttribute">
			Embedded image. Attribute type: [Texture]
		</constant>
		<constant name="TEXT_ATTRIBUTE_REPLACEMENT_RECT" value="7" enum="TextAttribute">
			Reserved space for custom embedded object. Attribute type: [Vector2]
		</constant>
		<constant name="TEXT_ATTRIBUTE_REPLACEMENT_ID" value="8" enum="TextAttribute">
			Embedded object id key. Attribute type: [Variant]
		</constant>
		<constant name="TEXT_ATTRIBUTE_REPLACEMENT_VALIGN" value="9" enum="TextAttribute">
			Embedded image/object inline alignment. Attribute type: [code]TEXT_VALIGN_*[/code]
		</constant>
		<constant name="TEXT_ATTRIBUTE_COLOR" value="31" enum="TextAttribute">
			Text color. Attribute type: [Color]
		</constant>
		<constant name="TEXT_ATTRIBUTE_OUTLINE_COLOR" value="32" enum="TextAttribute">
			Text outline color. Attribute type: [Color]
		</constant>
		<constant name="TEXT_ATTRIBUTE_UNDERLINE_COLOR" value="41" enum="TextAttribute">
			Underline color. Attribute type: [Color]
		</constant>
		<constant name="TEXT_ATTRIBUTE_UNDERLINE_WIDTH" value="42" enum="TextAttribute">
			Underline width. Attribute type: [code]int[/code]
		</constant>
		<constant name="TEXT_ATTRIBUTE_STRIKETHROUGH_COLOR" value="51" enum="TextAttribute">
			Strike through line color. Attribute type: [Color]
		</constant>
		<constant name="TEXT_ATTRIBUTE_STRIKETHROUGH_WIDTH" value="52" enum="TextAttribute">
			Strike through line width. Attribute type: [code]int[/code]
		</constant>
		<constant name="TEXT_ATTRIBUTE_OVERLINE_COLOR" value="61" enum="TextAttribute">
			Overline color/ Attribute type: [Color]
		</constant>
		<constant name="TEXT_ATTRIBUTE_OVERLINE_WIDTH" value="62" enum="TextAttribute">
			Overline width. Attribute type: [code]int[/code]
		</constant>
		<constant name="TEXT_ATTRIBUTE_HIGHLIGHT_COLOR" value="71" enum="TextAttribute">
			Highlight color. Attribute type: [Color]
		</constant>
		<constant name="TEXT_ATTRIBUTE_META" value="100" enum="TextAttribute">
			User defined data, use [code]TEXT_ATTRIBUTE_META + x[/code] to define multiple user attributes. Attribute type: [Variant]
		</constant>
		<constant name="TEXT_VALIGN_TOP" value="0" enum="TextVAlign">
			Inline vertical top alignment.
		</constant>
		<constant name="TEXT_VALIGN_CENTER" value="1" enum="TextVAlign">
			Inline vertical center alignment.
		</constant>
		<constant name="TEXT_VALIGN_BOTTOM" value="2" enum="TextVAlign">
			Inline vertical bottom alignment.
		</constant>
	</constants>
</class>


text:
<?xml version="1.0" encoding="UTF-8" ?>
<class name="TLFontFamily" inherits="Resource" category="Core" version="3.2">
	<brief_description>
		A set of fonts that make up a font family.
	</brief_description>
	<description>
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_face">
			<return type="void">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<argument index="1" name="ref" type="TLFontFace">
			</argument>
			<description>
				Adds font face to be used for specific style. Supported scripts are detected automatically.
			</description>
		</method>
		<method name="add_face_for_language">
			<return type="void">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<argument index="1" name="ref" type="TLFontFace">
			</argument>
			<argument index="2" name="lang" type="String">
			</argument>
			<description>
				Adds font face to be used for specific language and style.
			</description>
		</method>
		<method name="add_face_for_script">
			<return type="void">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<argument index="1" name="ref" type="TLFontFace">
			</argument>
			<argument index="2" name="script" type="String">
			</argument>
			<description>
				Adds font face to be used for specific script and style.
			</description>
		</method>
		<method name="add_face_unlinked">
			<return type="void">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<argument index="1" name="ref" type="TLFontFace">
			</argument>
			<description>
				Adds font face to be used for specific style, without associating it with the script or language.
			</description>
		</method>
		<method name="add_language">
			<return type="void">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<argument index="1" name="language" type="String">
			</argument>
			<description>
				Creates new font fallback list for the language, list is created automatically when [add_face] or [add_face_for_language] function is called.
				Use ISO 639-1 (https://en.wikipedia.org/wiki/ISO_639-1) codes for the language names.
			</description>
		</method>
		<method name="add_script">
			<return type="void">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<argument index="1" name="script" type="String">
			</argument>
			<description>
				Creates new font fallback list for the script, list is created automatically when [add_face] or [add_face_for_script] function is called.
				Use ISO 15924 (https://en.wikipedia.org/wiki/ISO_15924) for the script names.
			</description>
		</method>
		<method name="add_style">
			<return type="void">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<description>
				Adds new style to the family, style is created automatically when any of the [add_face] functions is called.
			</description>
		</method>
		<method name="get_face" qualifiers="const">
			<return type="TLFontIterator">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<description>
				Returns font iterator for the specific style.
			</description>
		</method>
		<method name="get_face_for_language" qualifiers="const">
			<return type="TLFontIterator">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<argument index="1" name="lang" type="String">
			</argument>
			<description>
				Returns font iterator for the specific style and supported language.
			</description>
		</method>
		<method name="get_face_for_script" qualifiers="const">
			<return type="TLFontIterator">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<argument index="1" name="script" type="String">
			</argument>
			<description>
				Returns font iterator for the specific style and supported script.
			</description>
		</method>
		<method name="has_style" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<description>
				Returns [code]true[/code] if font family has style.
			</description>
		</method>
		<method name="remove_language">
			<return type="void">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<argument index="1" name="language" type="String">
			</argument>
			<description>
				Removes font fallback list for the language.
			</description>
		</method>
		<method name="remove_script">
			<return type="void">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<argument index="1" name="script" type="String">
			</argument>
			<description>
				Removes font fallback list for the script.
			</description>
		</method>
		<method name="remove_style">
			<return type="void">
			</return>
			<argument index="0" name="style" type="String">
			</argument>
			<description>
				Removes style from the font family.
			</description>
		</method>
	</methods>
	<members>
		<member name="{style_name}/{index}" type="TLFontFace">
			Font faces not linked to the language or script.
		</member>
		<member name="{style_name}/script/{tag}/{index}" type="TLFontFace">
			Font faces linked to the script.
		</member>
		<member name="{style_name}/script/{lang}/{index}" type="TLFontFace">
			Font faces linked to the language.
		</member>
	</members>
	<constants>
	</constants>
</class>


text:
<?xml version="1.0" encoding="UTF-8" ?>
<class name="TLGDFontWrapper" inherits="Font" category="Core" version="3.2">
	<brief_description>
	</brief_description>
	<description>
		Subclass [Font] to use with default Godot controls, provides limited shaping support.
		Note: This class is only available if module is built with [code]use_font_wrapper=true[/code] flag.
	</description>
	<tutorials>
	</tutorials>
	<methods>
	</methods>
	<members>
		<member name="base_font" type="TLFontFamily" setter="set_base_font" getter="get_base_font">
			Base font to wrap.
		</member>
		<member name="base_font_size" type="int" setter="set_base_font_size" getter="get_base_font_size" default="12">
			Base font size.
		</member>
		<member name="base_font_style" type="String" setter="set_base_font_style" getter="get_base_font_style" default=""Regular"">
			Base font style.
		</member>
		<member name="cache_depth" type="int" setter="set_cache_depth" getter="get_cache_depth" default="100">
			Number of shaped strings to keep in cache.
		</member>
	</members>
	<constants>
	</constants>
</class>


text:
<?xml version="1.0" encoding="UTF-8" ?>
<class name="TLICUDataLoader" inherits="Resource" category="Core" version="3.2">
	<brief_description>
		Helper class that handles ICU data loading.
	</brief_description>
	<description>
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="load">
			<return type="bool">
			</return>
			<argument index="0" name="resource_path" type="String">
			</argument>
			<description>
				Loads ICU data file, should be done at most once in a process, before the first ICU operation. Returns [code]true[/code] if function succeeds.
			</description>
		</method>
	</methods>
	<members>
		<member name="data_path" type="String" setter="set_data_path" getter="get_data_path" default="""">
			ICU data file path.
		</member>
	</members>
	<constants>
	</constants>
</class>


text:
<?xml version="1.0" encoding="UTF-8" ?>
<class name="TLLabel" inherits="Control" category="Core" version="3.2">
	<brief_description>
		Displays plain text in a line or wrapped inside a rectangle. For formatted text, use [TLRichTextEdit].
		Copy of Godot [Label] with the shaping support. TLLabel uses the same theme items as the [Label].
	</brief_description>
	<description>
		Label displays plain text on the screen. 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 formatting. For that, use [RichTextLabel] instead.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="get_line_count" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the amount of lines of text the Label has.
			</description>
		</method>
		<method name="get_line_height" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the of the line in pixels.
			</description>
		</method>
		<method name="get_total_character_count" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the total number of printable characters in the text.
			</description>
		</method>
		<method name="get_visible_line_count" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the number of lines shown. Useful if the [Label]'s height cannot currently display all lines.
			</description>
		</method>
	</methods>
	<members>
		<member name="align" type="int" setter="set_align" getter="get_align" default="0">
			Controls the text's horizontal align. Supports left, center, right, and fill, or justify. Set it to one of the [code]ALIGN_*[/code] constants.
		</member>
		<member name="autowrap" type="bool" setter="set_autowrap" getter="has_autowrap" default="false">
			If [code]true[/code], wraps the text inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text.
		</member>
		<member name="base_font" type="TLFontFamily" setter="set_base_font" getter="get_base_font">
			Base font.
		</member>
		<member name="base_font_size" type="int" setter="set_base_font_size" getter="get_base_font_size" default="12">
			Base font size.
		</member>
		<member name="base_font_style" type="String" setter="set_base_font_style" getter="get_base_font_style" default=""Regular"">
			Base font style.
		</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. It also lets you scale the node down freely.
		</member>
		<member name="language" type="String" setter="set_language" getter="get_language" default="""">
			Language code for line-breaking and text shaping algorithms.
		</member>
		<member name="lines_skipped" type="int" setter="set_lines_skipped" getter="get_lines_skipped" default="0">
			The node ignores the first [code]lines_skipped[/code] lines before it starts to display text.
		</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" override="true" default="2" />
		<member name="ot_features" type="String" setter="set_ot_features" getter="get_ot_features" default="""">
			Comma separated list of OpenType feature tags.
		</member>
		<member name="percent_visible" type="float" setter="set_percent_visible" getter="get_percent_visible" default="1.0">
			Limits the count of visible characters. If you set [code]percent_visible[/code] to 50, only up to half of the text's characters will display on screen. Useful to animate the text in a dialog box.
		</member>
		<member name="size_flags_vertical" type="int" setter="set_v_size_flags" getter="get_v_size_flags" override="true" default="4" />
		<member name="text" type="String" setter="set_text" getter="get_text" default="""">
			The text to display on screen.
		</member>
		<member name="text_direction" type="int" setter="set_text_direction" getter="get_text_direction" default="3">
			Base direction of the text.
		</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="valign" type="int" setter="set_valign" getter="get_valign" default="0">
			Controls the text's vertical align. Supports top, center, bottom, and fill. Set it to one of the [code]VALIGN_*[/code] constants.
		</member>
		<member name="visible_characters" type="int" setter="set_visible_characters" getter="get_visible_characters" default="-1">
			Restricts the number of characters to display. Set to -1 to disable.
		</member>
	</members>
	<constants>
		<constant name="ALIGN_LEFT" value="0" enum="Align">
			Align rows to the left (default).
		</constant>
		<constant name="ALIGN_CENTER" value="1" enum="Align">
			Align rows centered.
		</constant>
		<constant name="ALIGN_RIGHT" value="2" enum="Align">
			Align rows to the right.
		</constant>
		<constant name="ALIGN_FILL" value="3" enum="Align">
			Expand row white spaces to fit the width.
		</constant>
		<constant name="VALIGN_TOP" value="0" enum="VAlign">
			Align the whole text to the top.
		</constant>
		<constant name="VALIGN_CENTER" value="1" enum="VAlign">
			Align the whole text to the center.
		</constant>
		<constant name="VALIGN_BOTTOM" value="2" enum="VAlign">
			Align the whole text to the bottom.
		</constant>
		<constant name="VALIGN_FILL" value="3" enum="VAlign">
			Align the whole text by spreading the rows.
		</constant>
	</constants>
</class>


text:
<?xml version="1.0" encoding="UTF-8" ?>
<class name="TLRichTextEdit" inherits="Control" category="Core" version="3.2">
	<brief_description>
		Rich text display and input control.
		Rich text can contain custom text, fonts, images and formatting.
	</brief_description>
	<description>
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_attribute">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="attribute" type="int">
			</argument>
			<argument index="2" name="value" type="Variant">
			</argument>
			<description>
				Sets [code]attribute[/code] attribute to [code]value[/code] for the selection.
			</description>
		</method>
		<method name="clear">
			<return type="void">
			</return>
			<description>
				Clears the attributes and sets text to an empty string.
			</description>
		</method>
		<method name="debug_draw">
			<return type="void">
			</return>
			<argument index="0" name="rid" type="RID">
			</argument>
			<argument index="1" name="position" type="Vector2">
			</argument>
			<argument index="2" name="hit_position" type="Vector2">
			</argument>
			<argument index="3" name="draw_brk_ops" type="bool">
			</argument>
			<argument index="4" name="draw_jst_ops" type="bool">
			</argument>
			<description>
				[code]DEBUG:[/code] Draws text with additional debug information.
			</description>
		</method>
		<method name="debug_draw_as_hex">
			<return type="void">
			</return>
			<argument index="0" name="rid" type="RID">
			</argument>
			<argument index="1" name="position" type="Vector2">
			</argument>
			<argument index="2" name="hit_position" type="Vector2">
			</argument>
			<argument index="3" name="draw_brk_ops" type="bool">
			</argument>
			<argument index="4" name="draw_jst_ops" type="bool">
			</argument>
			<description>
				[code]DEBUG:[/code] Draws text using "hexbox" fallback font.
			</description>
		</method>
		<method name="debug_draw_logical_as_hex">
			<return type="void">
			</return>
			<argument index="0" name="rid" type="RID">
			</argument>
			<argument index="1" name="position" type="Vector2">
			</argument>
			<argument index="2" name="hit_position" type="Vector2">
			</argument>
			<argument index="3" name="draw_brk_ops" type="bool">
			</argument>
			<argument index="4" name="draw_jst_ops" type="bool">
			</argument>
			<description>
				[code]DEBUG:[/code] Draws logical character codes of the text with additional debug information.
			</description>
		</method>
		<method name="get_caret_position">
			<return type="Vector2">
			</return>
			<description>
				Returns position of the caret, in (paragraph, offset) format.
			</description>
		</method>
		<method name="get_cluster_debug_info_hit_test">
			<return type="String">
			</return>
			<argument index="0" name="position" type="Vector2">
			</argument>
			<description>
				[code]DEBUG:[/code] Returns cluster hit test info.
			</description>
		</method>
		<method name="get_cluster_glyphs_hit_test">
			<return type="Array">
			</return>
			<argument index="0" name="position" type="Vector2">
			</argument>
			<description>
				Returns glyph hit test info.
			</description>
		</method>
		<method name="get_cluster_rect_hit_test">
			<return type="Rect2">
			</return>
			<argument index="0" name="position" type="Vector2">
			</argument>
			<description>
				Returns replacement object hit test info.
			</description>
		</method>
		<method name="get_paragraph" qualifiers="const">
			<return type="TLShapedParagraph">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Returns paragraph of text.
			</description>
		</method>
		<method name="get_paragraphs">
			<return type="int">
			</return>
			<description>
				Returns number of paragraph in the text.
			</description>
		</method>
		<method name="get_selection" qualifiers="const">
			<return type="TLRichTextEditSelection">
			</return>
			<description>
				Returns current selection and caret position.
			</description>
		</method>
		<method name="insert_paragraph">
			<return type="int">
			</return>
			<argument index="0" name="para" type="TLShapedParagraph">
			</argument>
			<argument index="1" name="index" type="int">
			</argument>
			<description>
				Inserts paragraph of text at the [index] position.
			</description>
		</method>
		<method name="remove_attribute">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="attribute" type="int">
			</argument>
			<description>
				Returns [code]attribute[/code] attribute value in the selection.
			</description>
		</method>
		<method name="remove_attributes">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<description>
				Removes all attributes in the selection.
			</description>
		</method>
		<method name="remove_paragraph">
			<return type="void">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Removes paragraph of the text.
			</description>
		</method>
		<method name="replace_sstring">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="text" type="TLShapedString">
			</argument>
			<description>
				Replaces selection with the shaped string.
			</description>
		</method>
		<method name="replace_text">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="text" type="String">
			</argument>
			<description>
				Replaces selection with the plain string.
			</description>
		</method>
		<method name="replace_utf16">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="text" type="PoolByteArray">
			</argument>
			<description>
				Replaces selection with the contents of the raw UTF-16 encoded string.
			</description>
		</method>
		<method name="replace_utf32">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="text" type="PoolByteArray">
			</argument>
			<description>
				Replaces selection with the contents of the raw UTF-32 encoded string.
			</description>
		</method>
		<method name="replace_utf8">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="text" type="PoolByteArray">
			</argument>
			<description>
				Replaces selection with the contents of the raw UTF-8 encoded string.
			</description>
		</method>
		<method name="set_paragraph">
			<return type="void">
			</return>
			<argument index="0" name="para" type="TLShapedParagraph">
			</argument>
			<argument index="1" name="index" type="int">
			</argument>
			<description>
				Sets content of the specific paragraph.
			</description>
		</method>
		<method name="set_paragraph_back_color">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="bcolor" type="Color">
			</argument>
			<description>
				Sets background color of the paragraph.
			</description>
		</method>
		<method name="set_paragraph_brk_flags">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="flags" type="int">
			</argument>
			<description>
				Sets line breaking flags of the paragraph.
			</description>
		</method>
		<method name="set_paragraph_halign">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="halign" type="int">
			</argument>
			<description>
				Sets horizontal alignment of the paragraph.
			</description>
		</method>
		<method name="set_paragraph_indent">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="indent" type="float">
			</argument>
			<description>
				Sets indentation of the paragraph.
			</description>
		</method>
		<method name="set_paragraph_jst_flags">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="flags" type="int">
			</argument>
			<description>
				Sets justification flags of the paragraph.
			</description>
		</method>
		<method name="set_paragraph_line_spacing">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="line_spacing" type="float">
			</argument>
			<description>
				Sets line spacing of the paragraph.
			</description>
		</method>
		<method name="set_paragraph_width">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<argument index="1" name="width" type="float">
			</argument>
			<description>
				Sets max width of the paragraph.
			</description>
		</method>
		<method name="set_selection">
			<return type="void">
			</return>
			<argument index="0" name="selection" type="TLRichTextEditSelection">
			</argument>
			<description>
				Sets current selection.
			</description>
		</method>
	</methods>
	<members>
		<member name="back_color" type="Color" setter="set_back_color" getter="get_back_color" default="Color( 1, 1, 1, 0 )">
			Background color of the control.
		</member>
		<member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" override="true" enum="Control.FocusMode" default="2" />
		<member name="paragraph_spacing" type="float" setter="set_paragraph_spacing" getter="get_paragraph_spacing" default="3.0">
			Spacing between the paragraphs in pixels.
		</member>
		<member name="readonly" type="bool" setter="set_readonly" getter="get_readonly" default="false">
			If [code]true[/code], existing text cannot be modified and new text cannot be added.
		</member>
		<member name="selectable" type="bool" setter="set_selectable" getter="get_selectable" default="true">
			If [code]true[/code], the control allows text selection.
		</member>
		<member name="paragraphs/{index}" type="TLShapedParagraph">
			Paragraphs of the text.
		</member>
	</members>
	<signals>
		<signal name="cursor_changed">
			<description>
				Emitted when caret moves or selection changes.
			</description>
		</signal>
		<signal name="paragraph_changed">
			<description>
				Emitted when paragraph text or attributes changes.
			</description>
		</signal>
	</signals>
	<constants>
	</constants>
</class>