Browse Source

Merge pull request #737 from voylin/WindowManagement4.0Update

Window Management Update 4.0
Aaron Franke 3 years ago
parent
commit
bde67b4c5e

+ 1 - 1
misc/window_management/README.md

@@ -12,7 +12,7 @@ A demo showing the various window management features available through
 
 
 Language: GDScript
 Language: GDScript
 
 
-Renderer: GLES 2
+Renderer: Vulkan Mobile
 
 
 Check out this demo on the asset library: https://godotengine.org/asset-library/asset/145
 Check out this demo on the asset library: https://godotengine.org/asset-library/asset/145
 
 

+ 35 - 35
misc/window_management/control.gd

@@ -12,15 +12,15 @@ func _ready():
 
 
 func _physics_process(_delta):
 func _physics_process(_delta):
 	var modetext = "Mode:\n"
 	var modetext = "Mode:\n"
-	if OS.is_window_fullscreen():
+	if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN:
 		modetext += "Fullscreen\n"
 		modetext += "Fullscreen\n"
 	else:
 	else:
 		modetext += "Windowed\n"
 		modetext += "Windowed\n"
-	if not OS.is_window_resizable():
+	if DisplayServer.window_get_flag(DisplayServer.WINDOW_FLAG_RESIZE_DISABLED):
 		modetext += "FixedSize\n"
 		modetext += "FixedSize\n"
-	if OS.is_window_minimized():
+	if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_MINIMIZED:
 		modetext += "Minimized\n"
 		modetext += "Minimized\n"
-	if OS.is_window_maximized():
+	if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_MAXIMIZED:
 		modetext += "Maximized\n"
 		modetext += "Maximized\n"
 	if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
 	if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
 		modetext += "MouseGrab\n"
 		modetext += "MouseGrab\n"
@@ -29,24 +29,24 @@ func _physics_process(_delta):
 		$Label_MouseModeCaptured_KeyInfo.hide()
 		$Label_MouseModeCaptured_KeyInfo.hide()
 
 
 	$Label_Mode.text = modetext
 	$Label_Mode.text = modetext
-	$Label_Position.text = str("Position:\n", OS.get_window_position())
-	$Label_Size.text = str("Size:\n", OS.get_window_size())
+	$Label_Position.text = str("Position:\n", DisplayServer.window_get_position())
+	$Label_Size.text = str("Size:\n", DisplayServer.window_get_size())
 	$Label_MousePosition.text = str("Mouse Position:\n", mousepos)
 	$Label_MousePosition.text = str("Mouse Position:\n", mousepos)
-	$Label_Screen_Count.text = str("Screen_Count:\n", OS.get_screen_count())
-	$Label_Screen_Current.text = str("Screen:\n", OS.get_current_screen())
-	$Label_Screen0_Resolution.text = str("Screen0 Resolution:\n", OS.get_screen_size())
-	$Label_Screen0_Position.text = str("Screen0 Position:\n", OS.get_screen_position())
-	$Label_Screen0_DPI.text = str("Screen0 DPI:\n", OS.get_screen_dpi())
+	$Label_Screen_Count.text = str("Screen_Count:\n", DisplayServer.get_screen_count())
+	$Label_Screen_Current.text = str("Screen:\n", DisplayServer.window_get_current_screen())
+	$Label_Screen0_Resolution.text = str("Screen0 Resolution:\n", DisplayServer.screen_get_size())
+	$Label_Screen0_Position.text = str("Screen0 Position:\n", DisplayServer.screen_get_position())
+	$Label_Screen0_DPI.text = str("Screen0 DPI:\n", DisplayServer.screen_get_dpi())
 
 
-	if OS.get_screen_count() > 1:
+	if DisplayServer.get_screen_count() > 1:
 		$Button_Screen0.show()
 		$Button_Screen0.show()
 		$Button_Screen1.show()
 		$Button_Screen1.show()
 		$Label_Screen1_Resolution.show()
 		$Label_Screen1_Resolution.show()
 		$Label_Screen1_Position.show()
 		$Label_Screen1_Position.show()
 		$Label_Screen1_DPI.show()
 		$Label_Screen1_DPI.show()
-		$Label_Screen1_Resolution.text = str("Screen1 Resolution:\n", OS.get_screen_size(1))
-		$Label_Screen1_Position.text = str("Screen1 Position:\n", OS.get_screen_position(1))
-		$Label_Screen1_DPI.text = str("Screen1 DPI:\n", OS.get_screen_dpi(1))
+		$Label_Screen1_Resolution.text = str("Screen1 Resolution:\n", DisplayServer.window_get_size(1))
+		$Label_Screen1_Position.text = str("Screen1 Position:\n", DisplayServer.screen_get_position(1))
+		$Label_Screen1_DPI.text = str("Screen1 DPI:\n", DisplayServer.screen_get_dpi(1))
 	else:
 	else:
 		$Button_Screen0.hide()
 		$Button_Screen0.hide()
 		$Button_Screen1.hide()
 		$Button_Screen1.hide()
@@ -54,10 +54,10 @@ func _physics_process(_delta):
 		$Label_Screen1_Position.hide()
 		$Label_Screen1_Position.hide()
 		$Label_Screen1_DPI.hide()
 		$Label_Screen1_DPI.hide()
 
 
-	$Button_Fullscreen.set_pressed(OS.is_window_fullscreen())
-	$Button_FixedSize.set_pressed(not OS.is_window_resizable())
-	$Button_Minimized.set_pressed(OS.is_window_minimized())
-	$Button_Maximized.set_pressed(OS.is_window_maximized())
+	$Button_Fullscreen.set_pressed(DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN)
+	$Button_FixedSize.set_pressed(DisplayServer.window_get_flag(DisplayServer.WINDOW_FLAG_RESIZE_DISABLED))
+	$Button_Minimized.set_pressed(DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_MINIMIZED)
+	$Button_Maximized.set_pressed(DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_MAXIMIZED)
 	$Button_MouseModeVisible.set_pressed(Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE)
 	$Button_MouseModeVisible.set_pressed(Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE)
 	$Button_MouseModeHidden.set_pressed(Input.get_mouse_mode() == Input.MOUSE_MODE_HIDDEN)
 	$Button_MouseModeHidden.set_pressed(Input.get_mouse_mode() == Input.MOUSE_MODE_HIDDEN)
 	$Button_MouseModeCaptured.set_pressed(Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED)
 	$Button_MouseModeCaptured.set_pressed(Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED)
@@ -126,47 +126,47 @@ func check_wm_api():
 
 
 
 
 func _on_Button_MoveTo_pressed():
 func _on_Button_MoveTo_pressed():
-	OS.set_window_position(Vector2(100, 100))
+	DisplayServer.window_set_position(Vector2(100, 100))
 
 
 
 
 func _on_Button_Resize_pressed():
 func _on_Button_Resize_pressed():
-	OS.set_window_size(Vector2(1024, 768))
+	DisplayServer.window_set_size(Vector2(1024, 768))
 
 
 
 
 func _on_Button_Screen0_pressed():
 func _on_Button_Screen0_pressed():
-	OS.set_current_screen(0)
+	DisplayServer.window_set_current_screen(0)
 
 
 
 
 func _on_Button_Screen1_pressed():
 func _on_Button_Screen1_pressed():
-	OS.set_current_screen(1)
+	DisplayServer.window_set_current_screen(1)
 
 
 
 
 func _on_Button_Fullscreen_pressed():
 func _on_Button_Fullscreen_pressed():
-	if OS.is_window_fullscreen():
-		OS.set_window_fullscreen(false)
+	if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN:
+		DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
 	else:
 	else:
-		OS.set_window_fullscreen(true)
+		DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
 
 
 
 
 func _on_Button_FixedSize_pressed():
 func _on_Button_FixedSize_pressed():
-	if OS.is_window_resizable():
-		OS.set_window_resizable(false)
+	if DisplayServer.window_get_flag(DisplayServer.WINDOW_FLAG_RESIZE_DISABLED):
+		DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_RESIZE_DISABLED, false)
 	else:
 	else:
-		OS.set_window_resizable(true)
+		DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_RESIZE_DISABLED, true)
 
 
 
 
 func _on_Button_Minimized_pressed():
 func _on_Button_Minimized_pressed():
-	if OS.is_window_minimized():
-		OS.set_window_minimized(false)
+	if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_MINIMIZED:
+		DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
 	else:
 	else:
-		OS.set_window_minimized(true)
+		DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MINIMIZED)
 
 
 
 
 func _on_Button_Maximized_pressed():
 func _on_Button_Maximized_pressed():
-	if OS.is_window_maximized():
-		OS.set_window_maximized(false)
+	if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_MAXIMIZED:
+		DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MINIMIZED)
 	else:
 	else:
-		OS.set_window_maximized(true)
+		DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MAXIMIZED)
 
 
 
 
 func _on_Button_MouseModeVisible_pressed():
 func _on_Button_MouseModeVisible_pressed():

+ 14 - 15
misc/window_management/icon.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+type="CompressedTexture2D"
+uid="uid://0b682rxmsdkw"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://icon.png"
 source_file="res://icon.png"
-dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 4 - 3
misc/window_management/project.godot

@@ -6,7 +6,7 @@
 ;   [section] ; section goes between []
 ;   [section] ; section goes between []
 ;   param=value ; assign values to parameters
 ;   param=value ; assign values to parameters
 
 
-config_version=4
+config_version=5
 
 
 [application]
 [application]
 
 
@@ -14,13 +14,13 @@ config/name="Window Management"
 config/description="A demo showing the various window management features available through OS."
 config/description="A demo showing the various window management features available through OS."
 run/main_scene="res://window_management.tscn"
 run/main_scene="res://window_management.tscn"
 config/icon="res://icon.png"
 config/icon="res://icon.png"
+config/features=PackedStringArray("4.0")
 
 
 [display]
 [display]
 
 
-window/size/width=800
-window/dpi/allow_hidpi=true
 window/stretch/mode="2d"
 window/stretch/mode="2d"
 window/stretch/aspect="expand"
 window/stretch/aspect="expand"
+window/size/width=800
 window/fullscreen=false
 window/fullscreen=false
 window/resizable=true
 window/resizable=true
 
 
@@ -72,6 +72,7 @@ move_right={
 
 
 [rendering]
 [rendering]
 
 
+vulkan/rendering/back_end=1
 quality/driver/driver_name="GLES2"
 quality/driver/driver_name="GLES2"
 quality/intended_usage/framebuffer_allocation=3
 quality/intended_usage/framebuffer_allocation=3
 vram_compression/import_etc=true
 vram_compression/import_etc=true

+ 195 - 137
misc/window_management/window_management.tscn

@@ -1,336 +1,394 @@
-[gd_scene load_steps=5 format=2]
+[gd_scene load_steps=5 format=3 uid="uid://cwvmsqurkf8aa"]
 
 
-[ext_resource path="res://observer/observer.tscn" type="PackedScene" id=1]
-[ext_resource path="res://control.gd" type="Script" id=2]
+[ext_resource type="PackedScene" path="res://observer/observer.tscn" id="1"]
+[ext_resource type="Script" path="res://control.gd" id="2"]
 
 
-[sub_resource type="StandardMaterial3D" id=1]
+[sub_resource type="StandardMaterial3D" id="1"]
 albedo_color = Color(0.835294, 0.133333, 0.133333, 1)
 albedo_color = Color(0.835294, 0.133333, 0.133333, 1)
 
 
-[sub_resource type="BoxMesh" id=2]
-material = SubResource( 1 )
+[sub_resource type="BoxMesh" id="2"]
+material = SubResource( "1" )
 size = Vector3(5, 5, 5)
 size = Vector3(5, 5, 5)
 
 
 [node name="WindowManagement" type="Node3D"]
 [node name="WindowManagement" type="Node3D"]
 
 
-[node name="Observer" parent="." instance=ExtResource( 1 )]
+[node name="Observer" parent="." instance=ExtResource( "1" )]
 transform = Transform3D(0.910685, 0, -0.4131, 0, 1, 0, 0.4131, 0, 0.910685, -4.81287, -0.152566, 9.90641)
 transform = Transform3D(0.910685, 0, -0.4131, 0, 1, 0, 0.4131, 0, 0.910685, -4.81287, -0.152566, 9.90641)
 
 
 [node name="TestCube" type="MeshInstance3D" parent="."]
 [node name="TestCube" type="MeshInstance3D" parent="."]
-mesh = SubResource( 2 )
-surface_material_override/0 = null
+mesh = SubResource( "2" )
 
 
 [node name="Control" type="Control" parent="."]
 [node name="Control" type="Control" parent="."]
 anchor_right = 1.0
 anchor_right = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 2
 size_flags_vertical = 2
-script = ExtResource( 2 )
+script = ExtResource( "2" )
 
 
 [node name="Button_Fullscreen" type="Button" parent="Control"]
 [node name="Button_Fullscreen" type="Button" parent="Control"]
-offset_left = 20.0
-offset_top = 20.0
-offset_right = 120.0
-offset_bottom = 45.0
+offset_left = 23.0
+offset_top = 12.0
+offset_right = 123.0
+offset_bottom = 43.0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 2
 size_flags_vertical = 2
 toggle_mode = true
 toggle_mode = true
 text = "Fullscreen"
 text = "Fullscreen"
+metadata/_edit_layout_mode = 0
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Button_FixedSize" type="Button" parent="Control"]
 [node name="Button_FixedSize" type="Button" parent="Control"]
-offset_left = 20.0
-offset_top = 60.0
-offset_right = 120.0
-offset_bottom = 85.0
+offset_left = 23.0
+offset_top = 52.0
+offset_right = 123.0
+offset_bottom = 83.0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 2
 size_flags_vertical = 2
 toggle_mode = true
 toggle_mode = true
 text = "FixedSize"
 text = "FixedSize"
+metadata/_edit_layout_mode = 0
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Button_Minimized" type="Button" parent="Control"]
 [node name="Button_Minimized" type="Button" parent="Control"]
-offset_left = 20.0
-offset_top = 100.0
-offset_right = 120.0
-offset_bottom = 125.0
+offset_left = 23.0
+offset_top = 92.0
+offset_right = 123.0
+offset_bottom = 123.0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 2
 size_flags_vertical = 2
 toggle_mode = true
 toggle_mode = true
 text = "Minimized"
 text = "Minimized"
+metadata/_edit_layout_mode = 0
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Button_Maximized" type="Button" parent="Control"]
 [node name="Button_Maximized" type="Button" parent="Control"]
-offset_left = 20.0
-offset_top = 140.0
-offset_right = 120.0
-offset_bottom = 165.0
+offset_left = 23.0
+offset_top = 132.0
+offset_right = 123.0
+offset_bottom = 163.0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 2
 size_flags_vertical = 2
 toggle_mode = true
 toggle_mode = true
 text = "Maximized"
 text = "Maximized"
+metadata/_edit_layout_mode = 0
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Button_MoveTo" type="Button" parent="Control"]
 [node name="Button_MoveTo" type="Button" parent="Control"]
-offset_left = 20.0
-offset_top = 178.0
-offset_right = 120.0
-offset_bottom = 203.0
+offset_left = 23.0
+offset_top = 170.0
+offset_right = 123.0
+offset_bottom = 201.0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 2
 size_flags_vertical = 2
 text = "MoveTo"
 text = "MoveTo"
+metadata/_edit_layout_mode = 0
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Button_Resize" type="Button" parent="Control"]
 [node name="Button_Resize" type="Button" parent="Control"]
-offset_left = 20.0
-offset_top = 218.0
-offset_right = 120.0
-offset_bottom = 243.0
+offset_left = 23.0
+offset_top = 210.0
+offset_right = 123.0
+offset_bottom = 241.0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 2
 size_flags_vertical = 2
 text = "Resize"
 text = "Resize"
+metadata/_edit_layout_mode = 0
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Button_Screen0" type="Button" parent="Control"]
 [node name="Button_Screen0" type="Button" parent="Control"]
-offset_left = 20.0
-offset_top = 258.0
-offset_right = 120.0
-offset_bottom = 283.0
+offset_left = 23.0
+offset_top = 250.0
+offset_right = 123.0
+offset_bottom = 281.0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 2
 size_flags_vertical = 2
 text = "Screen0"
 text = "Screen0"
+metadata/_edit_layout_mode = 0
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Button_Screen1" type="Button" parent="Control"]
 [node name="Button_Screen1" type="Button" parent="Control"]
-offset_left = 20.0
-offset_top = 298.0
-offset_right = 120.0
-offset_bottom = 323.0
+offset_left = 23.0
+offset_top = 290.0
+offset_right = 123.0
+offset_bottom = 321.0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 2
 size_flags_vertical = 2
 text = "Screen1"
 text = "Screen1"
+metadata/_edit_layout_mode = 0
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Button_MouseModeVisible" type="Button" parent="Control"]
 [node name="Button_MouseModeVisible" type="Button" parent="Control"]
 anchor_top = 1.0
 anchor_top = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
-offset_left = 20.0
-offset_top = -221.0
-offset_right = 225.0
-offset_bottom = -196.0
+offset_left = 18.0
+offset_top = -217.0
+offset_right = 234.0
+offset_bottom = -186.0
+grow_vertical = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 2
 size_flags_vertical = 2
 toggle_mode = true
 toggle_mode = true
 text = "[F1] MOUSE_MODE_VISIBLE"
 text = "[F1] MOUSE_MODE_VISIBLE"
-align = 0
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Button_MouseModeHidden" type="Button" parent="Control"]
 [node name="Button_MouseModeHidden" type="Button" parent="Control"]
 anchor_top = 1.0
 anchor_top = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
-offset_left = 20.0
-offset_top = -186.0
-offset_right = 225.0
-offset_bottom = -161.0
+offset_left = 18.0
+offset_top = -182.0
+offset_right = 240.0
+offset_bottom = -151.0
+grow_vertical = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 2
 size_flags_vertical = 2
 toggle_mode = true
 toggle_mode = true
 text = "[F2] MOUSE_MODE_HIDDEN"
 text = "[F2] MOUSE_MODE_HIDDEN"
-align = 0
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Button_MouseModeCaptured" type="Button" parent="Control"]
 [node name="Button_MouseModeCaptured" type="Button" parent="Control"]
 anchor_top = 1.0
 anchor_top = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
-offset_left = 20.0
-offset_top = -151.0
-offset_right = 225.0
-offset_bottom = -126.0
+offset_left = 18.0
+offset_top = -147.0
+offset_right = 260.0
+offset_bottom = -116.0
+grow_vertical = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 2
 size_flags_vertical = 2
 toggle_mode = true
 toggle_mode = true
 text = "[F3] MOUSE_MODE_CAPTURED"
 text = "[F3] MOUSE_MODE_CAPTURED"
-align = 0
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_Mode" type="Label" parent="Control"]
 [node name="Label_Mode" type="Label" parent="Control"]
+minimum_size = Vector2(190, 0)
 anchor_left = 1.0
 anchor_left = 1.0
 anchor_right = 1.0
 anchor_right = 1.0
-offset_left = -140.0
-offset_top = 140.0
-offset_right = -20.0
-offset_bottom = 153.0
+offset_left = -205.0
+offset_top = 156.0
+offset_right = -15.0
+offset_bottom = 182.0
+grow_horizontal = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "Mode:"
 text = "Mode:"
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_Position" type="Label" parent="Control"]
 [node name="Label_Position" type="Label" parent="Control"]
+minimum_size = Vector2(190, 0)
 anchor_left = 1.0
 anchor_left = 1.0
 anchor_right = 1.0
 anchor_right = 1.0
-offset_left = -140.0
-offset_top = 60.0
-offset_right = -20.0
-offset_bottom = 73.0
+offset_left = -205.0
+offset_top = 76.0
+offset_right = -15.0
+offset_bottom = 102.0
+grow_horizontal = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "Position:"
 text = "Position:"
-valign = 1
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_Size" type="Label" parent="Control"]
 [node name="Label_Size" type="Label" parent="Control"]
+minimum_size = Vector2(190, 0)
 anchor_left = 1.0
 anchor_left = 1.0
 anchor_right = 1.0
 anchor_right = 1.0
-offset_left = -140.0
-offset_top = 100.0
-offset_right = -20.0
-offset_bottom = 113.0
+offset_left = -205.0
+offset_top = 116.0
+offset_right = -15.0
+offset_bottom = 142.0
+grow_horizontal = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "Size:"
 text = "Size:"
-valign = 1
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_MousePosition" type="Label" parent="Control"]
 [node name="Label_MousePosition" type="Label" parent="Control"]
+minimum_size = Vector2(190, 0)
 anchor_left = 1.0
 anchor_left = 1.0
 anchor_right = 1.0
 anchor_right = 1.0
-offset_left = -140.0
-offset_top = 220.0
-offset_right = -20.0
-offset_bottom = 153.0
+offset_left = -205.0
+offset_top = 236.0
+offset_right = -15.0
+offset_bottom = 262.0
+grow_horizontal = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "Mouse Position:"
 text = "Mouse Position:"
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_Screen_Count" type="Label" parent="Control"]
 [node name="Label_Screen_Count" type="Label" parent="Control"]
+minimum_size = Vector2(190, 0)
 anchor_left = 1.0
 anchor_left = 1.0
 anchor_right = 1.0
 anchor_right = 1.0
-offset_left = -140.0
-offset_top = 300.0
-offset_right = -20.0
-offset_bottom = 314.0
+offset_left = -205.0
+offset_top = 316.0
+offset_right = -15.0
+offset_bottom = 342.0
+grow_horizontal = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "Screen_Count:"
 text = "Screen_Count:"
-valign = 1
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_Screen_Current" type="Label" parent="Control"]
 [node name="Label_Screen_Current" type="Label" parent="Control"]
+minimum_size = Vector2(190, 0)
 anchor_left = 1.0
 anchor_left = 1.0
 anchor_right = 1.0
 anchor_right = 1.0
-offset_left = -140.0
-offset_top = 20.0
-offset_right = -20.0
-offset_bottom = 40.0
+offset_left = -205.0
+offset_top = 36.0
+offset_right = -15.0
+offset_bottom = 62.0
+grow_horizontal = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "Screen:"
 text = "Screen:"
-valign = 1
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_Screen0_Resolution" type="Label" parent="Control"]
 [node name="Label_Screen0_Resolution" type="Label" parent="Control"]
+minimum_size = Vector2(190, 0)
 anchor_left = 1.0
 anchor_left = 1.0
 anchor_right = 1.0
 anchor_right = 1.0
-offset_left = -140.0
-offset_top = 340.0
-offset_right = -16.0
-offset_bottom = 353.0
+offset_left = -205.0
+offset_top = 356.0
+offset_right = -15.0
+offset_bottom = 382.0
+grow_horizontal = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "Screen0 Resolution: "
 text = "Screen0 Resolution: "
-valign = 1
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_Screen0_Position" type="Label" parent="Control"]
 [node name="Label_Screen0_Position" type="Label" parent="Control"]
+minimum_size = Vector2(190, 0)
 anchor_left = 1.0
 anchor_left = 1.0
 anchor_right = 1.0
 anchor_right = 1.0
-offset_left = -140.0
-offset_top = 380.0
-offset_right = -16.0
-offset_bottom = 396.0
+offset_left = -205.0
+offset_top = 396.0
+offset_right = -15.0
+offset_bottom = 422.0
+grow_horizontal = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "Screen0 Position: "
 text = "Screen0 Position: "
-valign = 1
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_Screen0_DPI" type="Label" parent="Control"]
 [node name="Label_Screen0_DPI" type="Label" parent="Control"]
+minimum_size = Vector2(190, 0)
 anchor_left = 1.0
 anchor_left = 1.0
 anchor_right = 1.0
 anchor_right = 1.0
-offset_left = -140.0
-offset_top = 416.0
-offset_right = -16.0
-offset_bottom = 432.0
+offset_left = -205.0
+offset_top = 432.0
+offset_right = -15.0
+offset_bottom = 458.0
+grow_horizontal = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "Screen0 DPI:"
 text = "Screen0 DPI:"
-valign = 1
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_Screen1_Resolution" type="Label" parent="Control"]
 [node name="Label_Screen1_Resolution" type="Label" parent="Control"]
+minimum_size = Vector2(190, 0)
 anchor_left = 1.0
 anchor_left = 1.0
 anchor_right = 1.0
 anchor_right = 1.0
-offset_left = -140.0
-offset_top = 451.0
-offset_right = -16.0
-offset_bottom = 467.0
+offset_left = -205.0
+offset_top = 467.0
+offset_right = -15.0
+offset_bottom = 493.0
+grow_horizontal = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "Screen1 Resolution: "
 text = "Screen1 Resolution: "
-valign = 1
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_Screen1_Position" type="Label" parent="Control"]
 [node name="Label_Screen1_Position" type="Label" parent="Control"]
+minimum_size = Vector2(190, 0)
 anchor_left = 1.0
 anchor_left = 1.0
 anchor_right = 1.0
 anchor_right = 1.0
-offset_left = -140.0
-offset_top = 489.0
-offset_right = -16.0
-offset_bottom = 505.0
+offset_left = -205.0
+offset_top = 505.0
+offset_right = -15.0
+offset_bottom = 531.0
+grow_horizontal = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "Screen1 Position: "
 text = "Screen1 Position: "
-valign = 1
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_Screen1_DPI" type="Label" parent="Control"]
 [node name="Label_Screen1_DPI" type="Label" parent="Control"]
+minimum_size = Vector2(190, 0)
 anchor_left = 1.0
 anchor_left = 1.0
 anchor_right = 1.0
 anchor_right = 1.0
-offset_left = -140.0
-offset_top = 524.0
-offset_right = -16.0
-offset_bottom = 540.0
+offset_left = -205.0
+offset_top = 540.0
+offset_right = -15.0
+offset_bottom = 566.0
+grow_horizontal = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "Screen1 DPI:"
 text = "Screen1 DPI:"
-valign = 1
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_KeyInfo" type="Label" parent="Control"]
 [node name="Label_KeyInfo" type="Label" parent="Control"]
 anchor_top = 1.0
 anchor_top = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
-offset_left = 20.0
-offset_top = -122.0
-offset_right = 286.0
-offset_bottom = -63.0
+offset_left = 14.0
+offset_top = -87.0
+offset_right = 309.0
+offset_bottom = -9.0
+grow_vertical = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "F1: Activate MOUSE_MODE_VISIBLE
 text = "F1: Activate MOUSE_MODE_VISIBLE
 F2: Activate MOUSE_MODE_HIDDEN
 F2: Activate MOUSE_MODE_HIDDEN
 F3: Activate MOUSE_MODE_CAPTURED"
 F3: Activate MOUSE_MODE_CAPTURED"
-valign = 2
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_MouseModeCaptured_KeyInfo" type="Label" parent="Control"]
 [node name="Label_MouseModeCaptured_KeyInfo" type="Label" parent="Control"]
 anchor_top = 1.0
 anchor_top = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
-offset_left = 20.0
-offset_top = -65.0
-offset_right = 286.0
-offset_bottom = -11.0
+offset_left = 328.0
+offset_top = -86.0
+offset_right = 653.0
+offset_bottom = -8.0
+grow_vertical = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "ESC: Deactivate MOUSE_MODE_CAPTURED
 text = "ESC: Deactivate MOUSE_MODE_CAPTURED
 W, S: Move forward, backward
 W, S: Move forward, backward
 A, D: Strafe left, right"
 A, D: Strafe left, right"
-valign = 2
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="Label_MouseModes" type="Label" parent="Control"]
 [node name="Label_MouseModes" type="Label" parent="Control"]
 anchor_top = 1.0
 anchor_top = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
-offset_left = 20.0
-offset_top = -249.0
-offset_right = 286.0
-offset_bottom = -227.0
+offset_left = 18.0
+offset_top = -244.0
+offset_right = 284.0
+offset_bottom = -218.0
+grow_vertical = 0
 size_flags_horizontal = 2
 size_flags_horizontal = 2
 size_flags_vertical = 0
 size_flags_vertical = 0
 text = "MouseModes:"
 text = "MouseModes:"
-valign = 2
+metadata/_edit_layout_mode = 1
+metadata/_edit_use_custom_anchors = false
 
 
 [node name="ImplementationDialog" type="AcceptDialog" parent="Control"]
 [node name="ImplementationDialog" type="AcceptDialog" parent="Control"]
-offset_left = 200.0
-offset_top = 100.0
-offset_right = 600.0
-offset_bottom = 450.0
-size_flags_horizontal = 2
-size_flags_vertical = 2
-window_title = "Please be advised..."
 
 
 [node name="Text" type="Label" parent="Control/ImplementationDialog"]
 [node name="Text" type="Label" parent="Control/ImplementationDialog"]
 offset_left = 8.0
 offset_left = 8.0