Generate the navbar automatically

This commit is contained in:
Flairieve 2019-11-24 13:12:55 -06:00
parent f239129542
commit f92049d2ae
4 changed files with 53 additions and 67 deletions

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=20 format=2] [gd_scene load_steps=19 format=2]
[ext_resource path="res://addons/graphics_editor/Editor.gd" type="Script" id=1] [ext_resource path="res://addons/graphics_editor/Editor.gd" type="Script" id=1]
[ext_resource path="res://addons/graphics_editor/PaintCanvasContainer.gd" type="Script" id=2] [ext_resource path="res://addons/graphics_editor/PaintCanvasContainer.gd" type="Script" id=2]
@ -8,16 +8,15 @@
[ext_resource path="res://addons/graphics_editor/VisualGrid.tscn" type="PackedScene" id=6] [ext_resource path="res://addons/graphics_editor/VisualGrid.tscn" type="PackedScene" id=6]
[ext_resource path="res://addons/graphics_editor/CanvasOutline.gd" type="Script" id=7] [ext_resource path="res://addons/graphics_editor/CanvasOutline.gd" type="Script" id=7]
[ext_resource path="res://addons/graphics_editor/Navbar.gd" type="Script" id=8] [ext_resource path="res://addons/graphics_editor/Navbar.gd" type="Script" id=8]
[ext_resource path="res://addons/graphics_editor/MenuButtonExtended.gd" type="Script" id=9] [ext_resource path="res://addons/graphics_editor/ColorPicker.gd" type="Script" id=9]
[ext_resource path="res://addons/graphics_editor/ColorPicker.gd" type="Script" id=10] [ext_resource path="res://addons/graphics_editor/Layers.gd" type="Script" id=10]
[ext_resource path="res://addons/graphics_editor/Layers.gd" type="Script" id=11] [ext_resource path="res://addons/graphics_editor/TextInfo.gd" type="Script" id=11]
[ext_resource path="res://addons/graphics_editor/TextInfo.gd" type="Script" id=12] [ext_resource path="res://addons/graphics_editor/SaveFileDialog.gd" type="Script" id=12]
[ext_resource path="res://addons/graphics_editor/SaveFileDialog.gd" type="Script" id=13] [ext_resource path="res://addons/graphics_editor/Settings.tscn" type="PackedScene" id=13]
[ext_resource path="res://addons/graphics_editor/Settings.tscn" type="PackedScene" id=14] [ext_resource path="res://addons/graphics_editor/NewImage.tscn" type="PackedScene" id=14]
[ext_resource path="res://addons/graphics_editor/NewImage.tscn" type="PackedScene" id=15] [ext_resource path="res://addons/graphics_editor/LoadFileDialog.gd" type="Script" id=15]
[ext_resource path="res://addons/graphics_editor/LoadFileDialog.gd" type="Script" id=16] [ext_resource path="res://addons/graphics_editor/ExpandCanvas.tscn" type="PackedScene" id=16]
[ext_resource path="res://addons/graphics_editor/ExpandCanvas.tscn" type="PackedScene" id=17] [ext_resource path="res://addons/graphics_editor/ToolManager.gd" type="Script" id=17]
[ext_resource path="res://addons/graphics_editor/ToolManager.gd" type="Script" id=18]
[sub_resource type="World" id=1] [sub_resource type="World" id=1]
@ -115,7 +114,6 @@ color = Color( 0, 1, 0, 1 )
width = 3.0 width = 3.0
[node name="Navbar" type="Control" parent="."] [node name="Navbar" type="Control" parent="."]
editor/display_folded = true
anchor_right = 1.0 anchor_right = 1.0
margin_bottom = 20.0 margin_bottom = 20.0
script = ExtResource( 8 ) script = ExtResource( 8 )
@ -131,42 +129,8 @@ __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="File" type="MenuButton" parent="Navbar/Buttons"]
margin_right = 90.0
margin_bottom = 20.0
text = "File"
flat = false
items = [ "New", null, 0, false, false, 0, 0, null, "", false, "Load", null, 0, false, false, 1, 0, null, "", false, "Save", null, 0, false, false, 2, 0, null, "", false, "Quit", null, 0, false, false, 3, 0, null, "", false ]
switch_on_hover = true
script = ExtResource( 9 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Editor" type="MenuButton" parent="Navbar/Buttons"]
margin_left = 90.0
margin_right = 180.0
margin_bottom = 20.0
text = "Editor"
flat = false
items = [ "Settings", null, 0, false, false, -1, 0, null, "", false, "Reset Camera Position", null, 0, false, false, -1, 0, null, "", false, "Toggle Grid", null, 0, false, false, -1, 0, null, "", false ]
switch_on_hover = true
script = ExtResource( 9 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Image" type="MenuButton" parent="Navbar/Buttons"]
margin_left = 180.0
margin_right = 270.0
margin_bottom = 20.0
text = "Image"
flat = false
items = [ "Resize", null, 0, false, false, -1, 0, null, "", false ]
switch_on_hover = true
script = ExtResource( 9 )
[node name="ToolMenu" type="Control" parent="."] [node name="ToolMenu" type="Control" parent="."]
editor/display_folded = true
anchor_left = 1.0 anchor_left = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
@ -219,7 +183,7 @@ margin_top = 210.0
margin_bottom = 240.0 margin_bottom = 240.0
focus_mode = 0 focus_mode = 0
enabled_focus_mode = 0 enabled_focus_mode = 0
script = ExtResource( 10 ) script = ExtResource( 9 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
@ -228,7 +192,7 @@ __meta__ = {
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_top = 240.0 margin_top = 240.0
script = ExtResource( 11 ) script = ExtResource( 10 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
@ -271,7 +235,7 @@ __meta__ = {
} }
[node name="TextInfo" type="Control" parent="BottomPanel"] [node name="TextInfo" type="Control" parent="BottomPanel"]
script = ExtResource( 12 ) script = ExtResource( 11 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
@ -286,9 +250,9 @@ margin_top = -165.0
margin_right = 340.0 margin_right = 340.0
margin_bottom = 165.0 margin_bottom = 165.0
filters = PoolStringArray( "*.png ; PNG Images" ) filters = PoolStringArray( "*.png ; PNG Images" )
script = ExtResource( 13 ) script = ExtResource( 12 )
[node name="Settings" parent="." instance=ExtResource( 14 )] [node name="Settings" parent="." instance=ExtResource( 13 )]
anchor_left = 0.5 anchor_left = 0.5
anchor_top = 0.5 anchor_top = 0.5
anchor_right = 0.5 anchor_right = 0.5
@ -298,7 +262,7 @@ margin_top = -150.0
margin_right = 155.0 margin_right = 155.0
margin_bottom = 150.0 margin_bottom = 150.0
[node name="NewImage" parent="." instance=ExtResource( 15 )] [node name="NewImage" parent="." instance=ExtResource( 14 )]
anchor_left = 0.5 anchor_left = 0.5
anchor_top = 0.5 anchor_top = 0.5
anchor_right = 0.5 anchor_right = 0.5
@ -320,12 +284,12 @@ margin_bottom = 165.0
window_title = "Open a File" window_title = "Open a File"
mode = 0 mode = 0
filters = PoolStringArray( "*.png ; PNG Images" ) filters = PoolStringArray( "*.png ; PNG Images" )
script = ExtResource( 16 ) script = ExtResource( 15 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="ExpandCanvas" parent="." instance=ExtResource( 17 )] [node name="ExpandCanvas" parent="." instance=ExtResource( 16 )]
anchor_left = 0.5 anchor_left = 0.5
anchor_top = 0.5 anchor_top = 0.5
anchor_right = 0.5 anchor_right = 0.5
@ -336,7 +300,7 @@ margin_right = 145.0
margin_bottom = 40.0 margin_bottom = 40.0
[node name="ToolManager" type="Node" parent="."] [node name="ToolManager" type="Node" parent="."]
script = ExtResource( 18 ) script = ExtResource( 17 )
[connection signal="mouse_entered" from="PaintCanvasContainer" to="PaintCanvasContainer" method="_on_PaintCanvasContainer_mouse_entered"] [connection signal="mouse_entered" from="PaintCanvasContainer" to="PaintCanvasContainer" method="_on_PaintCanvasContainer_mouse_entered"]
[connection signal="mouse_exited" from="PaintCanvasContainer" to="PaintCanvasContainer" method="_on_PaintCanvasContainer_mouse_exited"] [connection signal="mouse_exited" from="PaintCanvasContainer" to="PaintCanvasContainer" method="_on_PaintCanvasContainer_mouse_exited"]
[connection signal="pressed" from="ToolMenu/Buttons/PaintTool" to="." method="_on_PaintTool_pressed"] [connection signal="pressed" from="ToolMenu/Buttons/PaintTool" to="." method="_on_PaintTool_pressed"]

View File

@ -16,7 +16,6 @@ func _process(delta):
if active_node: if active_node:
active_node.image_storage = canvas.image.duplicate() active_node.image_storage = canvas.image.duplicate()
canvas.image_pixel_array = get_all_layer_images() canvas.image_pixel_array = get_all_layer_images()
pass
func set_active_layer(new_layer): func set_active_layer(new_layer):
if active_layer: if active_layer:

View File

@ -1,16 +1,43 @@
tool tool
extends Control extends Control
#TODO: Finish the navbar system!
#Disable the quit button when running as an editor plugin!
var navbar_storage = { var navbar_storage = {
"File": ["New", "Load", "Save"], "File": {
"Editor": ["Settings", "Toggle Grid", "Reset Camera Position"], "items": ["New", "Load", "Save", "Quit"],
"Image": ["Resize"] "export_only": ["Quit"]
},
"Editor": {
"items": ["Settings", "Toggle Grid", "Reset Camera Position"],
},
"Image": {
"items": ["Resize"]
}
} }
func _ready(): func _ready():
var x_to_add = 0
var menu_button_script = load("res://addons/graphics_editor/MenuButtonExtended.gd")
for i in navbar_storage:
var menu_button = MenuButton.new()
menu_button.name = i
menu_button.rect_size = Vector2(90, 20)
menu_button.rect_position = Vector2(x_to_add, 0)
x_to_add += menu_button.rect_size.x
menu_button.switch_on_hover = true
menu_button.flat = false
menu_button.text = i
menu_button.set_script(menu_button_script)
var items_to_remove = []
if Engine.editor_hint:
if navbar_storage[i].get("export_only"):
for j in navbar_storage[i]["export_only"]:
items_to_remove.append(j)
if navbar_storage[i].get("items"):
for j in navbar_storage[i]["items"]:
var item_index = items_to_remove.find(j)
if item_index == -1:
menu_button.get_popup().add_item(j)
get_node("Buttons").add_child(menu_button)
for i in get_node("Buttons").get_children(): for i in get_node("Buttons").get_children():
i.connect("item_pressed", self, "button_pressed") i.connect("item_pressed", self, "button_pressed")
@ -22,7 +49,6 @@ func button_pressed(button_name, button_item):
get_parent().get_node("LoadFileDialog").show() get_parent().get_node("LoadFileDialog").show()
if button_item == "Save": if button_item == "Save":
get_parent().get_node("SaveFileDialog").show() get_parent().get_node("SaveFileDialog").show()
if button_item == "Quit": if button_item == "Quit":
get_tree().quit() get_tree().quit()
elif button_name == "Editor": elif button_name == "Editor":

View File

@ -16,7 +16,6 @@ margin_bottom = 290.0
text = "Ok" text = "Ok"
[node name="CanvasOutline" type="Control" parent="."] [node name="CanvasOutline" type="Control" parent="."]
editor/display_folded = true
margin_left = 10.0 margin_left = 10.0
margin_top = 10.0 margin_top = 10.0
margin_right = 300.0 margin_right = 300.0
@ -31,7 +30,6 @@ margin_bottom = 14.0
text = "Canvas Outline:" text = "Canvas Outline:"
[node name="Enabled" type="Control" parent="CanvasOutline"] [node name="Enabled" type="Control" parent="CanvasOutline"]
editor/display_folded = true
margin_left = 10.0 margin_left = 10.0
margin_top = 20.0 margin_top = 20.0
margin_right = 290.0 margin_right = 290.0
@ -69,7 +67,6 @@ margin_right = 280.0
margin_bottom = 20.0 margin_bottom = 20.0
[node name="Width" type="Control" parent="CanvasOutline"] [node name="Width" type="Control" parent="CanvasOutline"]
editor/display_folded = true
margin_left = 10.0 margin_left = 10.0
margin_top = 80.0 margin_top = 80.0
margin_right = 290.0 margin_right = 290.0