diff options
author | Anton Yabchinskiy <arn@bestmx.ru> | 2015-04-04 09:31:21 +0300 |
---|---|---|
committer | Anton Yabchinskiy <arn@bestmx.ru> | 2015-04-04 09:31:21 +0300 |
commit | 16746f157f83d666079ba3266acec13d35b84c3f (patch) | |
tree | 8c872d18ccdef90a15e72622cd0139e0e64801a6 /demos/misc/window_management/control.gd | |
parent | 43713810deaadfec6a1656767cf5520073e58a06 (diff) | |
parent | 5d99e15e43d5a446b35d48e8a3b08a478f1998a9 (diff) |
Merge branch 'master' of github.com:okamstudio/godot
Diffstat (limited to 'demos/misc/window_management/control.gd')
-rw-r--r-- | demos/misc/window_management/control.gd | 177 |
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..5eb5817619 --- /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_window_fullscreen()): + modetext += "Fullscreen\n" + else: + modetext += "Windowed\n" + + if(!OS.is_window_resizable()): + modetext += "FixedSize\n" + + if(OS.is_window_minimized()): + modetext += "Minimized\n" + + if(OS.is_window_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_current_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_window_fullscreen() ) + get_node("Button_FixedSize").set_pressed( !OS.is_window_resizable() ) + get_node("Button_Minimized").set_pressed( OS.is_window_minimized() ) + get_node("Button_Maximized").set_pressed( OS.is_window_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_current_screen") ): + s += " - get_current_screen()\n" + + if( !OS.has_method("set_current_screen") ): + s += " - set_current_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_window_fullscreen") ): + s += " - set_window_fullscreen()\n" + + if( !OS.has_method("is_window_fullscreen") ): + s += " - is_window_fullscreen()\n" + + if( !OS.has_method("set_window_resizable") ): + s += " - set_window_resizable()\n" + + if( !OS.has_method("is_window_resizable") ): + s += " - is_window_resizable()\n" + + if( !OS.has_method("set_window_minimized") ): + s += " - set_window_minimized()\n" + + if( !OS.has_method("is_window_minimized") ): + s += " - is_window_minimized()\n" + + if( !OS.has_method("set_window_maximized") ): + s += " - set_window_maximized()\n" + + if( !OS.has_method("is_window_maximized") ): + s += " - is_window_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_current_screen(0) + + +func _on_Button_Screen1_pressed(): + OS.set_current_screen(1) + + +func _on_Button_Fullscreen_pressed(): + if(OS.is_window_fullscreen()): + OS.set_window_fullscreen(false) + else: + OS.set_window_fullscreen(true) + + +func _on_Button_FixedSize_pressed(): + if(OS.is_window_resizable()): + OS.set_window_resizable(false) + else: + OS.set_window_resizable(true) + + +func _on_Button_Minimized_pressed(): + if(OS.is_window_minimized()): + OS.set_window_minimized(false) + else: + OS.set_window_minimized(true) + + +func _on_Button_Maximized_pressed(): + if(OS.is_window_maximized()): + OS.set_window_maximized(false) + else: + OS.set_window_maximized(true) + + +func _on_Button_Mouse_Grab_pressed(): + var observer = get_node("../Observer") + observer.state = observer.STATE_GRAB |