RichTextLabel-port #5

Merged
Brazly merged 2 commits from RichTextLabel-port into main 2026-01-23 04:34:34 +00:00
2 changed files with 17 additions and 21 deletions
Showing only changes of commit 4dc44a5e08 - Show all commits

View File

@@ -248,20 +248,14 @@ func GetBottomScroll():
func UpdateCaretPos(): func UpdateCaretPos():
await get_tree().create_timer(.01).timeout await get_tree().create_timer(.01).timeout
var font = terminalLine.get_theme_font("normal_font")
var font_size = terminalLine.get_theme_font_size("normal_font_size")
var visible_text = terminalLine.get_parsed_text() var visible_text = terminalLine.get_parsed_text()
var lines = visible_text.split("\n") var ruler: Label = $"caret-ruler"
var last_line = lines[-1]
var char_rectY = terminalLine.get_content_height()
var text_line = TextLine.new()
text_line.width = terminalLine.size.x ruler.autowrap_mode =TextServer.AUTOWRAP_WORD_SMART
text_line.flags = TextServer.JUSTIFICATION_NONE ruler.text = visible_text
text_line.alignment = HORIZONTAL_ALIGNMENT_LEFT
text_line.add_string(last_line, font, font_size)
caret.position.x = text_line.get_line_width() var last_char_index = ruler.text.length() - 1
caret.position.y = char_rectY - 50 var char_rect = ruler.get_character_bounds(max(0, last_char_index))
caret.position.x = char_rect.end.x + 1
caret.position.y = terminalLine.get_content_height() - 50
pass

View File

@@ -86,6 +86,7 @@ viewport_path = NodePath("Interactables/PC/Sprite3D/SubViewport")
[sub_resource type="LabelSettings" id="LabelSettings_nmbs0"] [sub_resource type="LabelSettings" id="LabelSettings_nmbs0"]
font_size = 42 font_size = 42
font_color = Color(0, 0, 0, 1)
[sub_resource type="Theme" id="Theme_nmbs0"] [sub_resource type="Theme" id="Theme_nmbs0"]
default_font_size = 42 default_font_size = 42
@@ -230,6 +231,15 @@ size = Vector2i(1830, 1400)
script = ExtResource("10_gba58") script = ExtResource("10_gba58")
terminalLine = NodePath("MarginContainer/ScrollContainer/VBoxContainer/Label") terminalLine = NodePath("MarginContainer/ScrollContainer/VBoxContainer/Label")
[node name="caret-ruler" type="Label" parent="Interactables/PC/Sprite3D/SubViewport"]
clip_contents = true
custom_minimum_size = Vector2(1800, 0)
offset_right = 1800.0
offset_bottom = 58.0
text = "a0ifjaojkfna"
label_settings = SubResource("LabelSettings_nmbs0")
autowrap_mode = 3
[node name="MarginContainer" type="MarginContainer" parent="Interactables/PC/Sprite3D/SubViewport"] [node name="MarginContainer" type="MarginContainer" parent="Interactables/PC/Sprite3D/SubViewport"]
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@@ -243,16 +253,8 @@ scroll_horizontal_custom_step = 0.001
scroll_vertical_custom_step = 0.001 scroll_vertical_custom_step = 0.001
[node name="VBoxContainer" type="VBoxContainer" parent="Interactables/PC/Sprite3D/SubViewport/MarginContainer/ScrollContainer"] [node name="VBoxContainer" type="VBoxContainer" parent="Interactables/PC/Sprite3D/SubViewport/MarginContainer/ScrollContainer"]
layout_mode = 2
[node name="Label3" type="Label" parent="Interactables/PC/Sprite3D/SubViewport/MarginContainer/ScrollContainer/VBoxContainer"]
visible = false
clip_contents = true
custom_minimum_size = Vector2(1800, 0) custom_minimum_size = Vector2(1800, 0)
layout_mode = 2 layout_mode = 2
text = "a0ifjaojkfna"
label_settings = SubResource("LabelSettings_nmbs0")
autowrap_mode = 3
[node name="Label" type="RichTextLabel" parent="Interactables/PC/Sprite3D/SubViewport/MarginContainer/ScrollContainer/VBoxContainer"] [node name="Label" type="RichTextLabel" parent="Interactables/PC/Sprite3D/SubViewport/MarginContainer/ScrollContainer/VBoxContainer"]
clip_contents = false clip_contents = false