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

Make the second canvas a separate panel and have it hidden by default

This commit is contained in:
Manolis Papadeas 2022-02-15 01:42:20 +02:00
parent a29aadd519
commit 196c5c2d5d
6 changed files with 128 additions and 97 deletions

View file

@ -1,4 +1,4 @@
[gd_resource type="Resource" load_steps=19 format=2]
[gd_resource type="Resource" load_steps=21 format=2]
[ext_resource path="res://addons/dockable_container/layout_panel.gd" type="Script" id=1]
[ext_resource path="res://addons/dockable_container/layout_split.gd" type="Script" id=2]
@ -16,6 +16,20 @@ script = ExtResource( 1 )
names = PoolStringArray( "Main Canvas" )
current_tab = 0
[sub_resource type="Resource" id=28]
resource_name = "Tabs"
script = ExtResource( 1 )
names = PoolStringArray( "Second Canvas" )
current_tab = 0
[sub_resource type="Resource" id=29]
resource_name = "Split"
script = ExtResource( 2 )
direction = 0
percent = 0.980952
first = SubResource( 8 )
second = SubResource( 28 )
[sub_resource type="Resource" id=9]
resource_name = "Tabs"
script = ExtResource( 1 )
@ -26,8 +40,8 @@ current_tab = 0
resource_name = "Split"
script = ExtResource( 2 )
direction = 1
percent = 0.882812
first = SubResource( 8 )
percent = 0.90625
first = SubResource( 29 )
second = SubResource( 9 )
[sub_resource type="Resource" id=11]
@ -36,47 +50,39 @@ script = ExtResource( 1 )
names = PoolStringArray( "Canvas Preview" )
current_tab = 0
[sub_resource type="Resource" id=23]
[sub_resource type="Resource" id=20]
resource_name = "Tabs"
script = ExtResource( 1 )
names = PoolStringArray( "Color Pickers" )
current_tab = 0
[sub_resource type="Resource" id=24]
[sub_resource type="Resource" id=21]
resource_name = "Split"
script = ExtResource( 2 )
direction = 1
percent = 0.0
percent = 0.911765
first = SubResource( 11 )
second = SubResource( 23 )
second = SubResource( 20 )
[sub_resource type="Resource" id=25]
[sub_resource type="Resource" id=22]
resource_name = "Tabs"
script = ExtResource( 1 )
names = PoolStringArray( "Left Tool Options" )
current_tab = 0
[sub_resource type="Resource" id=26]
[sub_resource type="Resource" id=23]
resource_name = "Tabs"
script = ExtResource( 1 )
names = PoolStringArray( "Right Tool Options" )
current_tab = 0
[sub_resource type="Resource" id=27]
[sub_resource type="Resource" id=24]
resource_name = "Split"
script = ExtResource( 2 )
direction = 0
percent = 0.5
first = SubResource( 25 )
second = SubResource( 26 )
[sub_resource type="Resource" id=21]
resource_name = "Split"
script = ExtResource( 2 )
direction = 1
percent = 0.182692
first = SubResource( 24 )
second = SubResource( 27 )
first = SubResource( 22 )
second = SubResource( 23 )
[sub_resource type="Resource" id=13]
resource_name = "Tabs"
@ -84,19 +90,27 @@ script = ExtResource( 1 )
names = PoolStringArray( "Palette Panel" )
current_tab = 0
[sub_resource type="Resource" id=14]
resource_name = "Split"
script = ExtResource( 2 )
direction = 1
percent = 0.754808
first = SubResource( 24 )
second = SubResource( 13 )
[sub_resource type="Resource" id=15]
resource_name = "Split"
script = ExtResource( 2 )
direction = 1
percent = 1.0
percent = 0.332031
first = SubResource( 21 )
second = SubResource( 13 )
second = SubResource( 14 )
[sub_resource type="Resource" id=16]
resource_name = "Split"
script = ExtResource( 2 )
direction = 0
percent = 0.972488
percent = 0.962785
first = SubResource( 10 )
second = SubResource( 15 )
@ -104,7 +118,7 @@ second = SubResource( 15 )
resource_name = "Split"
script = ExtResource( 2 )
direction = 0
percent = 0.00695249
percent = 0.0134804
first = SubResource( 1 )
second = SubResource( 16 )
@ -113,4 +127,5 @@ resource_name = "Layout"
script = ExtResource( 3 )
root = SubResource( 5 )
hidden_tabs = {
"Second Canvas": true
}

View file

@ -1,29 +1,37 @@
[gd_resource type="Resource" load_steps=19 format=2]
[gd_resource type="Resource" load_steps=21 format=2]
[ext_resource path="res://addons/dockable_container/layout_panel.gd" type="Script" id=1]
[ext_resource path="res://addons/dockable_container/layout.gd" type="Script" id=2]
[ext_resource path="res://addons/dockable_container/layout_split.gd" type="Script" id=3]
[sub_resource type="Resource" id=8]
resource_name = "Tabs"
script = ExtResource( 1 )
names = PoolStringArray( "Main Canvas" )
current_tab = 0
[sub_resource type="Resource" id=23]
script = ExtResource( 1 )
names = PoolStringArray( "Second Canvas" )
current_tab = 0
[sub_resource type="Resource" id=24]
script = ExtResource( 3 )
direction = 0
percent = 0.9875
first = SubResource( 8 )
second = SubResource( 23 )
[sub_resource type="Resource" id=9]
resource_name = "Tabs"
script = ExtResource( 1 )
names = PoolStringArray( "Tools" )
current_tab = 0
[sub_resource type="Resource" id=10]
resource_name = "Tabs"
script = ExtResource( 1 )
names = PoolStringArray( "Left Tool Options" )
current_tab = 0
[sub_resource type="Resource" id=11]
resource_name = "Tabs"
script = ExtResource( 1 )
names = PoolStringArray( "Right Tool Options" )
current_tab = 0
@ -37,19 +45,16 @@ first = SubResource( 10 )
second = SubResource( 11 )
[sub_resource type="Resource" id=13]
resource_name = "Tabs"
script = ExtResource( 1 )
names = PoolStringArray( "Color Pickers" )
current_tab = 0
[sub_resource type="Resource" id=14]
resource_name = "Tabs"
script = ExtResource( 1 )
names = PoolStringArray( "Canvas Preview" )
current_tab = 0
[sub_resource type="Resource" id=15]
resource_name = "Split"
script = ExtResource( 3 )
direction = 1
percent = 0.5
@ -57,7 +62,6 @@ first = SubResource( 13 )
second = SubResource( 14 )
[sub_resource type="Resource" id=16]
resource_name = "Tabs"
script = ExtResource( 1 )
names = PoolStringArray( "Palette Panel" )
current_tab = 0
@ -85,7 +89,6 @@ names = PoolStringArray( "Animation Timeline" )
current_tab = 0
[sub_resource type="Resource" id=20]
resource_name = "Split"
script = ExtResource( 3 )
direction = 1
percent = 0.8125
@ -93,7 +96,6 @@ first = SubResource( 18 )
second = SubResource( 19 )
[sub_resource type="Resource" id=21]
resource_name = "Split"
script = ExtResource( 3 )
direction = 0
percent = 0.0
@ -101,11 +103,10 @@ first = SubResource( 9 )
second = SubResource( 20 )
[sub_resource type="Resource" id=22]
resource_name = "Split"
script = ExtResource( 3 )
direction = 1
percent = 0.5
first = SubResource( 8 )
first = SubResource( 24 )
second = SubResource( 21 )
[resource]
@ -113,4 +114,5 @@ resource_name = "Layout"
script = ExtResource( 2 )
root = SubResource( 22 )
hidden_tabs = {
"Second Canvas": true
}

View file

@ -112,14 +112,14 @@ onready var right_cursor: Sprite = control.find_node("RightCursor")
onready var canvas: Canvas = control.find_node("Canvas")
onready var tabs: Tabs = control.find_node("Tabs")
onready var main_viewport: ViewportContainer = control.find_node("ViewportContainer")
onready var second_viewport: ViewportContainer = control.find_node("ViewportContainer2")
onready var second_viewport: ViewportContainer = control.find_node("Second Canvas")
onready var main_canvas_container: Container = control.find_node("Main Canvas")
onready var canvas_preview_container: Container = control.find_node("Canvas Preview")
onready var small_preview_viewport: ViewportContainer = canvas_preview_container.find_node(
"PreviewViewportContainer"
)
onready var camera: Camera2D = main_viewport.find_node("Camera2D")
onready var camera2: Camera2D = control.find_node("Camera2D2")
onready var camera2: Camera2D = second_viewport.find_node("Camera2D2")
onready var camera_preview: Camera2D = control.find_node("CameraPreview")
onready var cameras := [camera, camera2, camera_preview]
onready var horizontal_ruler: BaseButton = control.find_node("HorizontalRuler")

View file

@ -345,7 +345,7 @@ func fit_to_frame(size: Vector2) -> void:
var h_ratio := viewport_container.rect_size.x / size.x
var v_ratio := viewport_container.rect_size.y / size.y
var ratio := min(h_ratio, v_ratio)
if ratio == 0:
if ratio == 0 or !viewport_container.visible:
ratio = 0.1 # Set it to a non-zero value just in case
# If the ratio is 0, it means that the viewport container is hidden
# in that case, use the other viewport to get the ratio

View file

@ -58,6 +58,7 @@ onready var image_menu_button: MenuButton = find_node("ImageMenu")
onready var select_menu_button: MenuButton = find_node("SelectMenu")
onready var help_menu_button: MenuButton = find_node("HelpMenu")
onready var ui: Container = Global.control.find_node("DockableContainer")
onready var new_image_dialog: ConfirmationDialog = Global.control.find_node("CreateNewImage")
onready var window_opacity_dialog: AcceptDialog = Global.control.find_node("WindowOpacityDialog")
onready var tile_mode_submenu := PopupMenu.new()
@ -205,7 +206,8 @@ func _setup_panels_submenu(item: String) -> void:
panels_submenu.hide_on_checkable_item_selection = false
for element in ui_elements:
panels_submenu.add_check_item(element.name)
panels_submenu.set_item_checked(ui_elements.find(element), true)
var is_hidden: bool = ui.is_control_hidden(element)
panels_submenu.set_item_checked(ui_elements.find(element), !is_hidden)
panels_submenu.connect("id_pressed", self, "_panels_submenu_id_pressed")
view_menu.add_child(panels_submenu)
@ -429,8 +431,8 @@ func view_menu_id_pressed(id: int) -> void:
ViewMenuId.SHOW_GUIDES:
_toggle_show_guides()
ViewMenuId.EDIT_MODE:
Global.control.ui.tabs_visible = !Global.control.ui.tabs_visible
view_menu.set_item_checked(ViewMenuId.EDIT_MODE, Global.control.ui.tabs_visible)
ui.tabs_visible = !ui.tabs_visible
view_menu.set_item_checked(ViewMenuId.EDIT_MODE, ui.tabs_visible)
ViewMenuId.ZEN_MODE:
_toggle_zen_mode()
ViewMenuId.FULLSCREEN_MODE:
@ -452,7 +454,7 @@ func _panels_submenu_id_pressed(id: int) -> void:
if zen_mode:
return
var element_visible = panels_submenu.is_item_checked(id)
Global.control.ui.set_control_hidden(ui_elements[id], element_visible)
ui.set_control_hidden(ui_elements[id], element_visible)
panels_submenu.set_item_checked(id, !element_visible)
@ -466,12 +468,13 @@ func _layouts_submenu_id_pressed(id: int) -> void:
func set_layout(id: int) -> void:
# Clone is needed so that the premade layouts do not get modified
Global.control.ui.layout = layouts[id][1].clone()
ui.layout = layouts[id][1].clone()
for i in layouts.size():
layouts_submenu.set_item_checked(i, i == id)
for i in ui_elements.size():
panels_submenu.set_item_checked(i, true)
var is_hidden: bool = ui.is_control_hidden(ui_elements[i])
panels_submenu.set_item_checked(i, !is_hidden)
Global.control.find_node("TabsContainer").visible = true
zen_mode = false
@ -532,13 +535,13 @@ func _toggle_show_guides() -> void:
func _toggle_zen_mode() -> void:
Global.control.ui.set_control_hidden(Global.animation_timeline, !zen_mode)
Global.control.ui.set_control_hidden(Global.tool_panel, !zen_mode)
Global.control.ui.set_control_hidden(Global.canvas_preview_container, !zen_mode)
Global.control.ui.set_control_hidden(Global.color_pickers, !zen_mode)
Global.control.ui.set_control_hidden(Global.left_tool_options_scroll, !zen_mode)
Global.control.ui.set_control_hidden(Global.right_tool_options_scroll, !zen_mode)
Global.control.ui.set_control_hidden(Global.palette_panel, !zen_mode)
ui.set_control_hidden(Global.animation_timeline, !zen_mode)
ui.set_control_hidden(Global.tool_panel, !zen_mode)
ui.set_control_hidden(Global.canvas_preview_container, !zen_mode)
ui.set_control_hidden(Global.color_pickers, !zen_mode)
ui.set_control_hidden(Global.left_tool_options_scroll, !zen_mode)
ui.set_control_hidden(Global.right_tool_options_scroll, !zen_mode)
ui.set_control_hidden(Global.palette_panel, !zen_mode)
Global.control.find_node("TabsContainer").visible = zen_mode
zen_mode = !zen_mode
view_menu.set_item_checked(ViewMenuId.ZEN_MODE, zen_mode)

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=42 format=2]
[gd_scene load_steps=44 format=2]
[ext_resource path="res://src/UI/Tools.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/UI/Canvas/CanvasPreview.tscn" type="PackedScene" id=2]
@ -41,6 +41,20 @@ script = ExtResource( 36 )
names = PoolStringArray( "Main Canvas" )
current_tab = 0
[sub_resource type="Resource" id=28]
resource_name = "Tabs"
script = ExtResource( 36 )
names = PoolStringArray( "Second Canvas" )
current_tab = 0
[sub_resource type="Resource" id=29]
resource_name = "Split"
script = ExtResource( 27 )
direction = 0
percent = 0.980952
first = SubResource( 8 )
second = SubResource( 28 )
[sub_resource type="Resource" id=9]
resource_name = "Tabs"
script = ExtResource( 36 )
@ -52,7 +66,7 @@ resource_name = "Split"
script = ExtResource( 27 )
direction = 1
percent = 0.90625
first = SubResource( 8 )
first = SubResource( 29 )
second = SubResource( 9 )
[sub_resource type="Resource" id=11]
@ -129,15 +143,16 @@ second = SubResource( 15 )
resource_name = "Split"
script = ExtResource( 27 )
direction = 0
percent = 0.0
percent = 0.0134804
first = SubResource( 1 )
second = SubResource( 16 )
[sub_resource type="Resource" id=25]
[sub_resource type="Resource" id=30]
resource_name = "Layout"
script = ExtResource( 14 )
root = SubResource( 5 )
hidden_tabs = {
"Second Canvas": true
}
[sub_resource type="ShaderMaterial" id=2]
@ -188,16 +203,16 @@ __meta__ = {
"_edit_use_anchors_": false
}
tabs_visible = false
layout = SubResource( 25 )
layout = SubResource( 30 )
[node name="Tools" parent="DockableContainer" instance=ExtResource( 1 )]
margin_left = 4.0
margin_top = 8.0
margin_right = -1234.0
margin_right = -1240.0
margin_bottom = -4.0
[node name="Main Canvas" type="VBoxContainer" parent="DockableContainer"]
margin_left = 66.0
margin_left = 60.0
margin_top = 8.0
margin_right = 938.0
margin_bottom = 532.0
@ -206,13 +221,13 @@ size_flags_vertical = 3
custom_constants/separation = 0
[node name="TabsContainer" type="PanelContainer" parent="DockableContainer/Main Canvas"]
margin_right = 872.0
margin_right = 878.0
margin_bottom = 38.0
[node name="Tabs" type="Tabs" parent="DockableContainer/Main Canvas/TabsContainer"]
margin_left = 7.0
margin_top = 7.0
margin_right = 865.0
margin_right = 871.0
margin_bottom = 31.0
tab_align = 0
tab_close_display_policy = 2
@ -221,7 +236,7 @@ script = ExtResource( 3 )
[node name="HorizontalRuler" type="Button" parent="DockableContainer/Main Canvas"]
margin_top = 38.0
margin_right = 872.0
margin_right = 878.0
margin_bottom = 58.0
rect_min_size = Vector2( 0, 16 )
focus_mode = 0
@ -229,21 +244,15 @@ mouse_default_cursor_shape = 14
action_mode = 0
script = ExtResource( 6 )
[node name="HSplitContainer" type="HSplitContainer" parent="DockableContainer/Main Canvas"]
[node name="ViewportandVerticalRuler" type="HBoxContainer" parent="DockableContainer/Main Canvas"]
margin_top = 58.0
margin_right = 872.0
margin_right = 878.0
margin_bottom = 524.0
size_flags_vertical = 3
custom_constants/autohide = 0
[node name="ViewportandVerticalRuler" type="HBoxContainer" parent="DockableContainer/Main Canvas/HSplitContainer"]
margin_right = 860.0
margin_bottom = 466.0
size_flags_horizontal = 3
size_flags_vertical = 3
custom_constants/separation = 0
[node name="VerticalRuler" type="Button" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler"]
[node name="VerticalRuler" type="Button" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler"]
margin_right = 16.0
margin_bottom = 466.0
rect_min_size = Vector2( 16, 0 )
@ -254,9 +263,9 @@ size_flags_vertical = 3
action_mode = 0
script = ExtResource( 4 )
[node name="ViewportContainer" type="ViewportContainer" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler"]
[node name="ViewportContainer" type="ViewportContainer" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler"]
margin_left = 16.0
margin_right = 860.0
margin_right = 878.0
margin_bottom = 466.0
focus_mode = 2
mouse_default_cursor_shape = 3
@ -265,55 +274,57 @@ size_flags_vertical = 3
stretch = true
script = ExtResource( 23 )
[node name="Viewport" type="Viewport" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer"]
size = Vector2( 844, 466 )
[node name="Viewport" type="Viewport" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer"]
size = Vector2( 862, 466 )
handle_input_locally = false
usage = 0
render_target_update_mode = 3
[node name="TransparentChecker" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer/Viewport" instance=ExtResource( 5 )]
[node name="TransparentChecker" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer/Viewport" instance=ExtResource( 5 )]
material = SubResource( 2 )
[node name="Canvas" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer/Viewport" instance=ExtResource( 19 )]
[node name="Canvas" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer/Viewport" instance=ExtResource( 19 )]
[node name="Camera2D" type="Camera2D" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer/Viewport"]
[node name="Camera2D" type="Camera2D" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer/Viewport"]
current = true
zoom = Vector2( 0.15, 0.15 )
script = ExtResource( 7 )
[node name="CanvasLayer" type="CanvasLayer" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer/Viewport"]
[node name="CanvasLayer" type="CanvasLayer" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer/Viewport"]
[node name="GreyscaleVision" type="ColorRect" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer/Viewport/CanvasLayer"]
[node name="GreyscaleVision" type="ColorRect" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer/Viewport/CanvasLayer"]
material = SubResource( 27 )
margin_right = 40.0
margin_bottom = 40.0
mouse_filter = 2
[node name="ViewportContainer2" type="ViewportContainer" parent="DockableContainer/Main Canvas/HSplitContainer"]
margin_left = 872.0
margin_right = 872.0
margin_bottom = 466.0
[node name="Second Canvas" type="ViewportContainer" parent="DockableContainer"]
visible = false
margin_left = 1274.0
margin_top = 8.0
margin_right = 1276.0
margin_bottom = 350.0
size_flags_vertical = 3
stretch = true
script = ExtResource( 23 )
[node name="Viewport" type="Viewport" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2"]
size = Vector2( 0, 466 )
[node name="Viewport" type="Viewport" parent="DockableContainer/Second Canvas"]
size = Vector2( 2, 342 )
handle_input_locally = false
render_target_update_mode = 3
render_target_update_mode = 0
[node name="TransparentChecker" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2/Viewport" instance=ExtResource( 5 )]
[node name="TransparentChecker" parent="DockableContainer/Second Canvas/Viewport" instance=ExtResource( 5 )]
material = SubResource( 3 )
[node name="CanvasPreview" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2/Viewport" instance=ExtResource( 2 )]
[node name="CanvasPreview" parent="DockableContainer/Second Canvas/Viewport" instance=ExtResource( 2 )]
[node name="Camera2D2" type="Camera2D" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2/Viewport"]
[node name="Camera2D2" type="Camera2D" parent="DockableContainer/Second Canvas/Viewport"]
current = true
zoom = Vector2( 0.15, 0.15 )
script = ExtResource( 7 )
[node name="Animation Timeline" parent="DockableContainer" instance=ExtResource( 18 )]
margin_left = 66.0
margin_left = 60.0
margin_top = 556.0
margin_right = 938.0
margin_bottom = 716.0
@ -369,8 +380,8 @@ margin_bottom = 716.0
[connection signal="tab_close" from="DockableContainer/Main Canvas/TabsContainer/Tabs" to="DockableContainer/Main Canvas/TabsContainer/Tabs" method="_on_Tabs_tab_close"]
[connection signal="mouse_entered" from="DockableContainer/Main Canvas/HorizontalRuler" to="DockableContainer/Main Canvas/HorizontalRuler" method="_on_HorizontalRuler_mouse_entered"]
[connection signal="pressed" from="DockableContainer/Main Canvas/HorizontalRuler" to="DockableContainer/Main Canvas/HorizontalRuler" method="_on_HorizontalRuler_pressed"]
[connection signal="pressed" from="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/VerticalRuler" to="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/VerticalRuler" method="_on_VerticalRuler_pressed"]
[connection signal="mouse_entered" from="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer" to="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer" method="_on_ViewportContainer_mouse_entered"]
[connection signal="mouse_exited" from="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer" to="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer" method="_on_ViewportContainer_mouse_exited"]
[connection signal="mouse_entered" from="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2" to="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2" method="_on_ViewportContainer_mouse_entered"]
[connection signal="mouse_exited" from="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2" to="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2" method="_on_ViewportContainer_mouse_exited"]
[connection signal="pressed" from="DockableContainer/Main Canvas/ViewportandVerticalRuler/VerticalRuler" to="DockableContainer/Main Canvas/ViewportandVerticalRuler/VerticalRuler" method="_on_VerticalRuler_pressed"]
[connection signal="mouse_entered" from="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer" to="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer" method="_on_ViewportContainer_mouse_entered"]
[connection signal="mouse_exited" from="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer" to="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer" method="_on_ViewportContainer_mouse_exited"]
[connection signal="mouse_entered" from="DockableContainer/Second Canvas" to="DockableContainer/Second Canvas" method="_on_ViewportContainer_mouse_entered"]
[connection signal="mouse_exited" from="DockableContainer/Second Canvas" to="DockableContainer/Second Canvas" method="_on_ViewportContainer_mouse_exited"]