control.gd 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. extends Control
  2. # Member variables
  3. var mousepos
  4. func _fixed_process(delta):
  5. var modetext = "Mode:\n"
  6. if(OS.is_window_fullscreen()):
  7. modetext += "Fullscreen\n"
  8. else:
  9. modetext += "Windowed\n"
  10. if(!OS.is_window_resizable()):
  11. modetext += "FixedSize\n"
  12. if(OS.is_window_minimized()):
  13. modetext += "Minimized\n"
  14. if(OS.is_window_maximized()):
  15. modetext += "Maximized\n"
  16. if(Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED):
  17. modetext += "MouseGrab\n"
  18. get_node("Label_MouseGrab_KeyInfo").show()
  19. else:
  20. get_node("Label_MouseGrab_KeyInfo").hide()
  21. get_node("Label_Mode").set_text(modetext)
  22. get_node("Label_Position").set_text(str("Position:\n", OS.get_window_position()))
  23. get_node("Label_Size").set_text(str("Size:\n", OS.get_window_size()))
  24. get_node("Label_MousePosition").set_text(str("Mouse Position:\n", mousepos))
  25. get_node("Label_Screen_Count").set_text(str("Screen_Count:\n", OS.get_screen_count()))
  26. get_node("Label_Screen_Current").set_text(str("Screen:\n", OS.get_current_screen()))
  27. get_node("Label_Screen0_Resolution").set_text(str("Screen0 Resolution:\n", OS.get_screen_size()))
  28. get_node("Label_Screen0_Position").set_text(str("Screen0 Position:\n", OS.get_screen_position()))
  29. get_node("Label_Screen0_DPI").set_text(str("Screen0 DPI:\n", OS.get_screen_dpi()))
  30. if(OS.get_screen_count() > 1):
  31. get_node("Button_Screen0").show()
  32. get_node("Button_Screen1").show()
  33. get_node("Label_Screen1_Resolution").show()
  34. get_node("Label_Screen1_Position").show()
  35. get_node("Label_Screen1_DPI").show()
  36. get_node("Label_Screen1_Resolution").set_text(str("Screen1 Resolution:\n", OS.get_screen_size(1)))
  37. get_node("Label_Screen1_Position").set_text(str("Screen1 Position:\n", OS.get_screen_position(1)))
  38. get_node("Label_Screen1_DPI").set_text(str("Screen1 DPI:\n", OS.get_screen_dpi(1)))
  39. else:
  40. get_node("Button_Screen0").hide()
  41. get_node("Button_Screen1").hide()
  42. get_node("Label_Screen1_Resolution").hide()
  43. get_node("Label_Screen1_Position").hide()
  44. get_node("Label_Screen1_DPI").hide()
  45. get_node("Button_Fullscreen").set_pressed(OS.is_window_fullscreen())
  46. get_node("Button_FixedSize").set_pressed(!OS.is_window_resizable())
  47. get_node("Button_Minimized").set_pressed(OS.is_window_minimized())
  48. get_node("Button_Maximized").set_pressed(OS.is_window_maximized())
  49. get_node("Button_Mouse_Grab").set_pressed(Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED)
  50. func check_wm_api():
  51. var s = ""
  52. if(!OS.has_method("get_screen_count")):
  53. s += " - get_screen_count()\n"
  54. if(!OS.has_method("get_current_screen")):
  55. s += " - get_current_screen()\n"
  56. if(!OS.has_method("set_current_screen")):
  57. s += " - set_current_screen()\n"
  58. if(!OS.has_method("get_screen_position")):
  59. s += " - get_screen_position()\n"
  60. if(!OS.has_method("get_screen_size")):
  61. s += " - get_screen_size()\n"
  62. if(!OS.has_method("get_window_position")):
  63. s += " - get_window_position()\n"
  64. if(!OS.has_method("set_window_position")):
  65. s += " - set_window_position()\n"
  66. if(!OS.has_method("get_window_size")):
  67. s += " - get_window_size()\n"
  68. if(!OS.has_method("set_window_size")):
  69. s += " - set_window_size()\n"
  70. if(!OS.has_method("set_window_fullscreen")):
  71. s += " - set_window_fullscreen()\n"
  72. if(!OS.has_method("is_window_fullscreen")):
  73. s += " - is_window_fullscreen()\n"
  74. if(!OS.has_method("set_window_resizable")):
  75. s += " - set_window_resizable()\n"
  76. if(!OS.has_method("is_window_resizable")):
  77. s += " - is_window_resizable()\n"
  78. if(!OS.has_method("set_window_minimized")):
  79. s += " - set_window_minimized()\n"
  80. if(!OS.has_method("is_window_minimized")):
  81. s += " - is_window_minimized()\n"
  82. if(!OS.has_method("set_window_maximized")):
  83. s += " - set_window_maximized()\n"
  84. if(!OS.has_method("is_window_maximized")):
  85. s += " - is_window_maximized()\n"
  86. if(s.length() == 0):
  87. return true
  88. else:
  89. var text = get_node("ImplementationDialog/Text").get_text()
  90. get_node("ImplementationDialog/Text").set_text(text + s)
  91. get_node("ImplementationDialog").show()
  92. return false
  93. func _ready():
  94. if(check_wm_api()):
  95. set_fixed_process(true)
  96. set_process_input(true)
  97. func _input(event):
  98. if (event.type == InputEvent.MOUSE_MOTION):
  99. mousepos = event.pos
  100. func _on_Button_MoveTo_pressed():
  101. OS.set_window_position(Vector2(100, 100))
  102. func _on_Button_Resize_pressed():
  103. OS.set_window_size(Vector2(1024, 768))
  104. func _on_Button_Screen0_pressed():
  105. OS.set_current_screen(0)
  106. func _on_Button_Screen1_pressed():
  107. OS.set_current_screen(1)
  108. func _on_Button_Fullscreen_pressed():
  109. if(OS.is_window_fullscreen()):
  110. OS.set_window_fullscreen(false)
  111. else:
  112. OS.set_window_fullscreen(true)
  113. func _on_Button_FixedSize_pressed():
  114. if(OS.is_window_resizable()):
  115. OS.set_window_resizable(false)
  116. else:
  117. OS.set_window_resizable(true)
  118. func _on_Button_Minimized_pressed():
  119. if(OS.is_window_minimized()):
  120. OS.set_window_minimized(false)
  121. else:
  122. OS.set_window_minimized(true)
  123. func _on_Button_Maximized_pressed():
  124. if(OS.is_window_maximized()):
  125. OS.set_window_maximized(false)
  126. else:
  127. OS.set_window_maximized(true)
  128. func _on_Button_Mouse_Grab_pressed():
  129. var observer = get_node("../Observer")
  130. observer.state = observer.STATE_GRAB