pollen-not-included/addons/gdUnit4/test/update/bbcodeView.gd
2024-05-02 09:36:31 +01:00

48 lines
1.4 KiB
GDScript

extends Control
const GdUnitTools := preload("res://addons/gdUnit4/src/core/GdUnitTools.gd")
const GdMarkDownReader := preload("res://addons/gdUnit4/src/update/GdMarkDownReader.gd")
const GdUnitUpdateClient := preload("res://addons/gdUnit4/src/update/GdUnitUpdateClient.gd")
@onready var _input :TextEdit = $HSplitContainer/TextEdit
@onready var _text :RichTextLabel = $HSplitContainer/RichTextLabel
@onready var _update_client :GdUnitUpdateClient = $GdUnitUpdateClient
var _md_reader := GdMarkDownReader.new()
func _ready():
_md_reader.set_http_client(_update_client)
var source := GdUnitFileAccess.resource_as_string("res://addons/gdUnit4/test/update/resources/markdown_example.txt")
_input.text = source
await set_bbcode(source)
func set_bbcode(text :String) :
var bbcode = await _md_reader.to_bbcode(text)
_text.clear()
_text.append_text(bbcode)
_text.queue_redraw()
func _on_TextEdit_text_changed():
await set_bbcode(_input.get_text())
func _on_RichTextLabel_meta_clicked(meta :String):
var properties = str_to_var(meta)
prints("meta_clicked", properties)
if properties.has("url"):
OS.shell_open(properties.get("url"))
func _on_RichTextLabel_meta_hover_started(meta :String):
var properties = str_to_var(meta)
prints("hover_started", properties)
if properties.has("tool_tip"):
_text.set_tooltip(properties.get("tool_tip"))
func _on_RichTextLabel_meta_hover_ended(_meta :String):
_text.set_tooltip("")