summaryrefslogtreecommitdiff
path: root/demos/misc/window_management/control.gd
diff options
context:
space:
mode:
Diffstat (limited to 'demos/misc/window_management/control.gd')
-rw-r--r--demos/misc/window_management/control.gd177
1 files changed, 177 insertions, 0 deletions
diff --git a/demos/misc/window_management/control.gd b/demos/misc/window_management/control.gd
new file mode 100644
index 0000000000..bca13c5a0c
--- /dev/null
+++ b/demos/misc/window_management/control.gd
@@ -0,0 +1,177 @@
+
+extends Control
+
+func _fixed_process(delta):
+
+ var modetext = "Mode:\n"
+
+ if(OS.is_fullscreen()):
+ modetext += "Fullscreen\n"
+ else:
+ modetext += "Windowed\n"
+
+ if(!OS.is_resizable()):
+ modetext += "FixedSize\n"
+
+ if(OS.is_minimized()):
+ modetext += "Minimized\n"
+
+ if(OS.is_maximized()):
+ modetext += "Maximized\n"
+
+ if(Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED):
+ modetext += "MouseGrab\n"
+ get_node("Label_MouseGrab_KeyInfo").show()
+ else:
+ get_node("Label_MouseGrab_KeyInfo").hide()
+
+ get_node("Label_Mode").set_text(modetext)
+
+ get_node("Label_Position").set_text( str("Position:\n", OS.get_window_position() ) )
+
+ get_node("Label_Size").set_text(str("Size:\n", OS.get_window_size() ) )
+
+ get_node("Label_MousePosition").set_text(str("Mouse Position:\n", Input.get_mouse_pos() ) )
+
+ get_node("Label_Screen_Count").set_text( str("Screen_Count:\n", OS.get_screen_count() ) )
+
+ get_node("Label_Screen_Current").set_text( str("Screen:\n", OS.get_screen() ) )
+
+ get_node("Label_Screen0_Resolution").set_text( str("Screen0 Resolution:\n", OS.get_screen_size() ) )
+
+ get_node("Label_Screen0_Position").set_text(str("Screen0 Position:\n",OS.get_screen_position() ) )
+
+ if(OS.get_screen_count() > 1):
+ get_node("Button_Screen0").show()
+ get_node("Button_Screen1").show()
+ get_node("Label_Screen1_Resolution").show()
+ get_node("Label_Screen1_Position").show()
+ get_node("Label_Screen1_Resolution").set_text( str("Screen1 Resolution:\n", OS.get_screen_size(1) ) )
+ get_node("Label_Screen1_Position").set_text( str("Screen1 Position:\n", OS.get_screen_position(1) ) )
+ else:
+ get_node("Button_Screen0").hide()
+ get_node("Button_Screen1").hide()
+ get_node("Label_Screen1_Resolution").hide()
+ get_node("Label_Screen1_Position").hide()
+
+ get_node("Button_Fullscreen").set_pressed( OS.is_fullscreen() )
+ get_node("Button_FixedSize").set_pressed( !OS.is_resizable() )
+ get_node("Button_Minimized").set_pressed( OS.is_minimized() )
+ get_node("Button_Maximized").set_pressed( OS.is_maximized() )
+ get_node("Button_Mouse_Grab").set_pressed( Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED )
+
+
+func check_wm_api():
+ var s = ""
+ if( !OS.has_method("get_screen_count") ):
+ s += " - get_screen_count()\n"
+
+ if( !OS.has_method("get_screen") ):
+ s += " - get_screen()\n"
+
+ if( !OS.has_method("set_screen") ):
+ s += " - set_screen()\n"
+
+ if( !OS.has_method("get_screen_position") ):
+ s += " - get_screen_position()\n"
+
+ if( !OS.has_method("get_screen_size") ):
+ s += " - get_screen_size()\n"
+
+ if( !OS.has_method("get_window_position") ):
+ s += " - get_window_position()\n"
+
+ if( !OS.has_method("set_window_position") ):
+ s += " - set_window_position()\n"
+
+ if( !OS.has_method("get_window_size") ):
+ s += " - get_window_size()\n"
+
+ if( !OS.has_method("set_window_size") ):
+ s += " - set_window_size()\n"
+
+ if( !OS.has_method("set_fullscreen") ):
+ s += " - set_fullscreen()\n"
+
+ if( !OS.has_method("is_fullscreen") ):
+ s += " - is_fullscreen()\n"
+
+ if( !OS.has_method("set_resizable") ):
+ s += " - set_resizable()\n"
+
+ if( !OS.has_method("is_resizable") ):
+ s += " - is_resizable()\n"
+
+ if( !OS.has_method("set_minimized") ):
+ s += " - set_minimized()\n"
+
+ if( !OS.has_method("is_minimized") ):
+ s += " - is_minimized()\n"
+
+ if( !OS.has_method("set_maximized") ):
+ s += " - set_maximized()\n"
+
+ if( !OS.has_method("is_maximized") ):
+ s += " - is_maximized()\n"
+
+ if( s.length() == 0 ):
+ return true
+ else:
+ var text = get_node("ImplementationDialog/Text").get_text()
+ get_node("ImplementationDialog/Text").set_text( text + s )
+ get_node("ImplementationDialog").show()
+ return false
+
+
+func _ready():
+ if( check_wm_api() ):
+ set_fixed_process(true)
+
+
+func _on_Button_MoveTo_pressed():
+ OS.set_window_position( Vector2(100,100) )
+
+
+func _on_Button_Resize_pressed():
+ OS.set_window_size( Vector2(1024,768) )
+
+
+func _on_Button_Screen0_pressed():
+ OS.set_screen(0)
+
+
+func _on_Button_Screen1_pressed():
+ OS.set_screen(1)
+
+
+func _on_Button_Fullscreen_pressed():
+ if(OS.is_fullscreen()):
+ OS.set_fullscreen(false)
+ else:
+ OS.set_fullscreen(true)
+
+
+func _on_Button_FixedSize_pressed():
+ if(OS.is_resizable()):
+ OS.set_resizable(false)
+ else:
+ OS.set_resizable(true)
+
+
+func _on_Button_Minimized_pressed():
+ if(OS.is_minimized()):
+ OS.set_minimized(false)
+ else:
+ OS.set_minimized(true)
+
+
+func _on_Button_Maximized_pressed():
+ if(OS.is_maximized()):
+ OS.set_maximized(false)
+ else:
+ OS.set_maximized(true)
+
+
+func _on_Button_Mouse_Grab_pressed():
+ var observer = get_node("../Observer")
+ observer.state = observer.STATE_GRAB