Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions assets/fonts/IconButtonFont.tres
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[gd_resource type="FontVariation" load_steps=2 format=3 uid="uid://dg5vsg45k8y7w"]

[ext_resource type="FontFile" uid="uid://depydd16jq777" path="res://assets/fonts/FontMono.ttf" id="1_67ox0"]

[resource]
base_font = ExtResource("1_67ox0")
spacing_bottom = -15
1 change: 1 addition & 0 deletions src/ui_parts/IconTextButton.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
extends BetterButton
1 change: 1 addition & 0 deletions src/ui_parts/IconTextButton.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://bs5jf31syjgie
8 changes: 4 additions & 4 deletions src/ui_parts/display.gd
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ const NumberEdit = preload("res://src/ui_widgets/number_edit.gd")

@onready var viewport: SubViewport = %Viewport
@onready var reference_texture: TextureRect = %Viewport/ReferenceTexture
@onready var reference_button: Button = %LeftMenu/Reference
@onready var snapper: NumberEdit = %LeftMenu/Snapping/SnapNumberEdit
@onready var snap_button: BetterButton = %LeftMenu/Snapping/SnapButton
@onready var reference_button: Button = %ViewportOptions/Reference
@onready var snapper: NumberEdit = %ViewportOptions/Snapping/SnapNumberEdit
@onready var snap_button: BetterButton = %ViewportOptions/Snapping/SnapButton
@onready var viewport_panel: PanelContainer = $ViewportPanel
@onready var debug_container: MarginContainer = $ViewportPanel/DebugMargins
@onready var debug_label: Label = %DebugContainer/DebugLabel
Expand Down Expand Up @@ -38,7 +38,7 @@ func _ready() -> void:


func sync_localization() -> void:
%LeftMenu/Snapping/SnapNumberEdit.tooltip_text = Translator.translate("Snap size")
%ViewportOptions/Snapping/SnapNumberEdit.tooltip_text = Translator.translate("Snap size")

func sync_theming() -> void:
var frame := StyleBoxFlat.new()
Expand Down
95 changes: 58 additions & 37 deletions src/ui_parts/display.tscn
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[gd_scene load_steps=18 format=3 uid="uid://bvrncl7e6yn5b"]
[gd_scene load_steps=19 format=3 uid="uid://bvrncl7e6yn5b"]

[ext_resource type="Script" uid="uid://bxmb134e3sqpr" path="res://src/ui_parts/display.gd" id="1_oib5g"]
[ext_resource type="Texture2D" uid="uid://iglrqrqyg4kn" path="res://assets/icons/Reference.svg" id="4_2hiq7"]
Expand All @@ -9,6 +9,7 @@
[ext_resource type="PackedScene" uid="uid://oltvrf01xrxl" path="res://src/ui_widgets/zoom_menu.tscn" id="8_xtdmn"]
[ext_resource type="Script" uid="uid://b6pmlbnl76wmm" path="res://src/ui_parts/viewport.gd" id="9_4xrk7"]
[ext_resource type="Script" uid="uid://cbajqkgudfvh0" path="res://src/ui_parts/viewport_container.gd" id="9_ryr8t"]
[ext_resource type="FontVariation" uid="uid://dg5vsg45k8y7w" path="res://assets/fonts/IconButtonFont.tres" id="10_kq8gf"]
[ext_resource type="Texture2D" uid="uid://b7r171i82g3xl" path="res://assets/icons/Translate.svg" id="10_rll1m"]
[ext_resource type="Shader" uid="uid://i2y5pyhcgra2" path="res://src/shaders/zoom_shader.gdshader" id="10_x7ybk"]
[ext_resource type="Texture2D" uid="uid://c68og6bsqt0lb" path="res://assets/icons/backgrounds/Checkerboard.svg" id="11_1bm1s"]
Expand Down Expand Up @@ -51,7 +52,7 @@ unique_name_in_owner = true
disable_3d = true
handle_input_locally = false
gui_snap_controls_to_pixels = false
size = Vector2i(480, 819)
size = Vector2i(480, 811)
size_2d_override_stretch = true
render_target_update_mode = 4
script = ExtResource("9_4xrk7")
Expand Down Expand Up @@ -92,54 +93,67 @@ script = ExtResource("13_lwhwy")
layout_mode = 2

[node name="ViewportOptions" type="HBoxContainer" parent="ViewportPanel/VBoxContainer/Toolbar"]
layout_mode = 2
alignment = 1

[node name="LeftMenu" type="HBoxContainer" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions"]
unique_name_in_owner = true
custom_minimum_size = Vector2(132, 0)
layout_mode = 2
theme_override_constants/separation = 5
alignment = 1

[node name="show_grid" type="Button" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/LeftMenu"]
[node name="show_grid" type="Button" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions"]
layout_mode = 2
theme_type_variation = &"IconButton"
theme_type_variation = &"FlatButton"
theme_override_fonts/font = ExtResource("10_kq8gf")
theme_override_font_sizes/font_size = 12
text = "Grid"
icon = ExtResource("8_rll1m")
icon_alignment = 1
vertical_icon_alignment = 0
script = ExtResource("6_3v3ve")
action = "view_show_grid"
metadata/_custom_type_script = "uid://ynx3s1jc6bwq"

[node name="show_handle" type="Button" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/LeftMenu"]
[node name="show_handle" type="Button" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions"]
layout_mode = 2
theme_type_variation = &"IconButton"
theme_type_variation = &"FlatButton"
theme_override_fonts/font = ExtResource("10_kq8gf")
theme_override_font_sizes/font_size = 12
text = "Handle"
icon = ExtResource("10_rll1m")
icon_alignment = 1
vertical_icon_alignment = 0
script = ExtResource("6_3v3ve")
action = "view_show_handles"
metadata/_custom_type_script = "uid://ynx3s1jc6bwq"

[node name="rasterized svg" type="Button" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/LeftMenu"]
[node name="rasterize_svg" type="Button" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions"]
visible = false
layout_mode = 2
theme_type_variation = &"IconButton"
theme_type_variation = &"FlatButton"
theme_override_fonts/font = ExtResource("10_kq8gf")
theme_override_font_sizes/font_size = 12
text = "Handle"
icon = ExtResource("15_kq8gf")
icon_alignment = 1
vertical_icon_alignment = 0
script = ExtResource("6_3v3ve")
action = "view_rasterized_svg"
metadata/_custom_type_script = "uid://ynx3s1jc6bwq"

[node name="Reference" type="Button" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/LeftMenu"]
[node name="Reference" type="Button" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions"]
layout_mode = 2
size_flags_horizontal = 2
focus_mode = 0
mouse_default_cursor_shape = 2
theme_type_variation = &"IconButton"
theme_type_variation = &"FlatButton"
theme_override_fonts/font = ExtResource("10_kq8gf")
theme_override_font_sizes/font_size = 12
text = "Reference"
icon = ExtResource("4_2hiq7")
icon_alignment = 1
vertical_icon_alignment = 0

[node name="Snapping" type="HBoxContainer" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/LeftMenu"]
[node name="Snapping" type="HBoxContainer" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions"]
layout_mode = 2
theme_override_constants/separation = 0

[node name="SnapButton" type="Button" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/LeftMenu/Snapping"]
[node name="SnapButton" type="Button" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/Snapping"]
layout_mode = 2
focus_mode = 0
mouse_default_cursor_shape = 2
Expand All @@ -149,8 +163,7 @@ icon = ExtResource("5_1k2cq")
script = ExtResource("6_3v3ve")
action = "toggle_snap"

[node name="SnapNumberEdit" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/LeftMenu/Snapping" instance=ExtResource("7_wrrfr")]
custom_minimum_size = Vector2(48, 22)
[node name="SnapNumberEdit" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/Snapping" instance=ExtResource("7_wrrfr")]
layout_mode = 2
theme_type_variation = &"LeftConnectedLineEdit"
max_length = 20
Expand All @@ -161,24 +174,32 @@ allow_lower = false
layout_mode = 2
size_flags_horizontal = 3

[node name="TabsPanel" type="Button" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions"]
layout_mode = 2
focus_mode = 0
mouse_default_cursor_shape = 2
theme_type_variation = &"IconButton"
icon = ExtResource("14_ryr8t")
icon_alignment = 1

[node name="spacer2" type="Control" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions"]
layout_mode = 2
size_flags_horizontal = 3

[node name="ZoomMenu" parent="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions" instance=ExtResource("8_xtdmn")]
unique_name_in_owner = true
custom_minimum_size = Vector2(132, 0)
layout_mode = 2
size_flags_vertical = 4
alignment = 2

[node name="Control" type="Control" parent="ViewportPanel/VBoxContainer/Toolbar"]
layout_mode = 2
mouse_filter = 2

[node name="TabsPanel" type="Button" parent="ViewportPanel/VBoxContainer/Toolbar/Control"]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -12.0
offset_top = -55.0
offset_right = 12.0
offset_bottom = -16.0
grow_horizontal = 2
focus_mode = 0
mouse_default_cursor_shape = 2
icon = ExtResource("14_ryr8t")
icon_alignment = 1

[node name="DebugMargins" type="MarginContainer" parent="ViewportPanel"]
visible = false
layout_mode = 2
Expand Down Expand Up @@ -213,9 +234,9 @@ theme_override_font_sizes/font_size = 14
horizontal_alignment = 2

[connection signal="size_changed" from="ViewportPanel/VBoxContainer/ViewportContainer/Viewport" to="ViewportPanel/VBoxContainer/ViewportContainer/Viewport" method="_on_size_changed"]
[connection signal="pressed" from="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/LeftMenu/Reference" to="." method="_on_reference_pressed"]
[connection signal="toggled" from="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/LeftMenu/Snapping/SnapButton" to="." method="_on_snap_button_toggled"]
[connection signal="value_changed" from="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/LeftMenu/Snapping/SnapNumberEdit" to="." method="_on_snap_number_edit_value_changed"]
[connection signal="pressed" from="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/TabsPanel" to="." method="show_tabs_panel"]
[connection signal="pressed" from="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/Reference" to="." method="_on_reference_pressed"]
[connection signal="toggled" from="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/Snapping/SnapButton" to="." method="_on_snap_button_toggled"]
[connection signal="value_changed" from="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/Snapping/SnapNumberEdit" to="." method="_on_snap_number_edit_value_changed"]
[connection signal="zoom_changed" from="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/ZoomMenu" to="ViewportPanel/VBoxContainer/ViewportContainer/Viewport" method="_on_zoom_changed"]
[connection signal="zoom_reset_pressed" from="ViewportPanel/VBoxContainer/Toolbar/ViewportOptions/ZoomMenu" to="ViewportPanel/VBoxContainer/ViewportContainer/Viewport" method="center_frame"]
[connection signal="pressed" from="ViewportPanel/VBoxContainer/Toolbar/Control/TabsPanel" to="." method="show_tabs_panel"]
1 change: 1 addition & 0 deletions src/ui_widgets/BetterButton.gd
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,4 @@ func end_highlight() -> void:
remove_theme_stylebox_override("normal")
remove_theme_stylebox_override("hover")
timer = null

18 changes: 13 additions & 5 deletions src/utils/ThemeUtils.gd
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,6 @@ static func _setup_button(theme: Theme) -> void:
theme.set_stylebox("pressed", "OutlinedButton", pressed_outlined)

theme.set_stylebox("disabled", "OutlinedButton", outlined_style)


theme.add_type("IconButton")
theme.set_type_variation("IconButton", "Button")
Expand Down Expand Up @@ -658,13 +657,22 @@ static func _setup_button(theme: Theme) -> void:
theme.set_color("icon_pressed_color", "FlatButton", icon_pressed_color)
theme.set_color("icon_hover_pressed_color", "FlatButton", icon_pressed_color)

theme.set_stylebox("normal", "FlatButton", icon_button_stylebox)
var flat_button_stylebox := normal_button_stylebox.duplicate()
flat_button_stylebox.draw_center = false
flat_button_stylebox.set_content_margin_all(4)

theme.set_stylebox("normal", "FlatButton", flat_button_stylebox)

theme.set_stylebox("hover", "FlatButton", flat_button_stylebox)

theme.set_stylebox("hover", "FlatButton", icon_button_stylebox)
var pressed_flat_button_stylebox := pressed_button_stylebox.duplicate()
pressed_flat_button_stylebox.set_corner_radius_all(8)
pressed_flat_button_stylebox.set_content_margin_all(4)
theme.set_stylebox("pressed", "FlatButton", pressed_flat_button_stylebox)

theme.set_stylebox("pressed", "FlatButton", pressed_button_stylebox)
theme.set_stylebox("hover_pressed", "FlatButton", pressed_flat_button_stylebox)

var disabled_flat_button_stylebox := icon_button_stylebox.duplicate()
var disabled_flat_button_stylebox := flat_button_stylebox.duplicate()
disabled_flat_button_stylebox.bg_color = flat_button_color_disabled
disabled_flat_button_stylebox.draw_center = true
theme.set_stylebox("disabled", "FlatButton", disabled_flat_button_stylebox)
Expand Down