1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-18 17:19:50 +00:00

Compare commits

...

3 commits

Author SHA1 Message Date
Emmanouil Papadeas 9040942865
Merge fa3642f99c into 5ec316a50f 2024-12-12 21:37:07 +02:00
Emmanouil Papadeas 5ec316a50f Some minor UI improvements in the text tool
The text tool's caret is now blinking, and the width of the border should now change depending on the zoom value
2024-12-12 21:36:56 +02:00
Emmanouil Papadeas a7a76ff9f0 Enable always on top for more child dialogs of other dialogs
Continuation of c72a1f4b90
2024-12-10 14:36:56 +02:00
5 changed files with 28 additions and 7 deletions

View file

@ -1483,6 +1483,7 @@ text = "Pixelorama must be restarted for changes to take effect."
mode = 1
title = "Open File(s)"
size = Vector2i(560, 400)
always_on_top = true
ok_button_text = "Open"
file_mode = 1
access = 2
@ -1494,6 +1495,7 @@ transient = true
[node name="EnableExtensionConfirmation" type="ConfirmationDialog" parent="."]
unique_name_in_owner = true
always_on_top = true
dialog_text = "Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust."
dialog_autowrap = true
@ -1501,11 +1503,13 @@ dialog_autowrap = true
unique_name_in_owner = true
position = Vector2i(0, 36)
size = Vector2i(400, 100)
always_on_top = true
ok_button_text = "Delete Permanently"
dialog_text = "Are you sure you want to delete this extension?"
dialog_autowrap = true
[node name="ResetOptionsConfirmation" type="ConfirmationDialog" parent="."]
always_on_top = true
dialog_text = "Are you sure you want to reset the selected options? There will be no way to undo this."
[connection signal="about_to_popup" from="." to="." method="_on_PreferencesDialog_about_to_show"]

View file

@ -139,7 +139,7 @@ func text_to_pixels() -> void:
var text := text_edit.text
var color := tool_slot.color
var font_ascent := font.get_ascent(text_size)
var pos := Vector2(1, font_ascent + text_edit.get_theme_constant(&"line_spacing"))
var pos := Vector2(0, font_ascent + text_edit.get_theme_constant(&"line_spacing"))
pos += text_edit.position
font.draw_multiline_string(ci_rid, pos, text, horizontal_alignment, -1, text_size, -1, color)

View file

@ -16,6 +16,7 @@ resource_name = "Layout"
script = ExtResource("3")
root = SubResource("1")
hidden_tabs = {}
windows = {}
save_on_change = false
[node name="ManageLayouts" type="AcceptDialog"]
@ -110,6 +111,7 @@ disabled = true
text = "Delete"
[node name="LayoutSettings" type="ConfirmationDialog" parent="."]
always_on_top = true
[node name="VBoxContainer" type="VBoxContainer" parent="LayoutSettings"]
offset_right = 40.0
@ -131,12 +133,12 @@ text = "Copy from"
[node name="LayoutFrom" type="OptionButton" parent="LayoutSettings/VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
item_count = 1
selected = 0
item_count = 1
popup/item_0/text = "Current layout"
popup/item_0/id = 0
[node name="DeleteConfirmation" type="ConfirmationDialog" parent="."]
always_on_top = true
dialog_text = "Are you sure you want to delete this layout?"
[connection signal="about_to_popup" from="." to="." method="_on_ManageLayouts_about_to_show"]

View file

@ -12,6 +12,7 @@ size = Vector2i(760, 470)
visible = false
wrap_controls = true
exclusive = true
always_on_top = true
script = ExtResource("1_pwcwi")
[node name="TabContainer" type="TabContainer" parent="."]
@ -24,9 +25,11 @@ offset_left = 7.0
offset_top = 8.0
offset_right = -7.0
offset_bottom = -8.0
current_tab = 0
[node name="Store" type="MarginContainer" parent="TabContainer"]
layout_mode = 2
metadata/_tab_index = 0
[node name="StoreMainContainer" type="HSplitContainer" parent="TabContainer/Store"]
layout_mode = 2
@ -68,6 +71,7 @@ size_flags_horizontal = 3
[node name="Options" type="MarginContainer" parent="TabContainer"]
visible = false
layout_mode = 2
metadata/_tab_index = 1
[node name="ScrollContainer" type="ScrollContainer" parent="TabContainer/Options"]
layout_mode = 2
@ -153,6 +157,7 @@ unique_name_in_owner = true
position = Vector2i(0, 36)
size = Vector2i(511, 326)
unresizable = true
always_on_top = true
popup_window = true
[node name="Content" type="VBoxContainer" parent="Error"]
@ -200,6 +205,7 @@ autowrap_mode = 3
unique_name_in_owner = true
position = Vector2i(0, 36)
size = Vector2i(357, 110)
always_on_top = true
popup_window = true
[node name="Content" type="VBoxContainer" parent="ErrorCustom"]

View file

@ -5,15 +5,18 @@ var font: Font:
set(value):
font = value
add_theme_font_override(&"font", font)
var _border_node := Control.new()
func _ready() -> void:
Global.camera.zoom_changed.connect(func(): _border_node.queue_redraw())
_border_node.draw.connect(_on_border_redraw)
_border_node.set_anchors_preset(Control.PRESET_FULL_RECT)
_border_node.mouse_filter = Control.MOUSE_FILTER_IGNORE
add_child(_border_node)
caret_blink = true
var stylebox := StyleBoxFlat.new()
stylebox.draw_center = false
stylebox.border_width_left = 1
stylebox.border_width_top = 1
stylebox.border_width_right = 1
stylebox.border_width_bottom = 1
add_theme_stylebox_override(&"normal", stylebox)
add_theme_stylebox_override(&"focus", stylebox)
add_theme_constant_override(&"line_spacing", 0)
@ -44,3 +47,9 @@ func _on_text_changed() -> void:
var string_size := font.get_string_size(max_line, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size)
size.x = font_size + string_size.x
size.y = (get_line_count() + 1) * font.get_height(font_size)
_border_node.queue_redraw()
func _on_border_redraw() -> void:
var border_width := (1.0 / Global.camera.zoom.x) * 2.0 + 1.0
_border_node.draw_rect(_border_node.get_rect(), Color.WHITE, false, border_width)