aboutsummaryrefslogtreecommitdiff
path: root/game/src/Game/Menu/OptionMenu/MonitorDisplaySelector.gd
diff options
context:
space:
mode:
Diffstat (limited to 'game/src/Game/Menu/OptionMenu/MonitorDisplaySelector.gd')
-rw-r--r--game/src/Game/Menu/OptionMenu/MonitorDisplaySelector.gd18
1 files changed, 18 insertions, 0 deletions
diff --git a/game/src/Game/Menu/OptionMenu/MonitorDisplaySelector.gd b/game/src/Game/Menu/OptionMenu/MonitorDisplaySelector.gd
new file mode 100644
index 0000000..7de033a
--- /dev/null
+++ b/game/src/Game/Menu/OptionMenu/MonitorDisplaySelector.gd
@@ -0,0 +1,18 @@
+extends SettingOptionButton
+
+func _setup_button() -> void:
+ clear()
+ for screen_index in DisplayServer.get_screen_count():
+ add_item("Monitor %d" % (screen_index + 1))
+ default_selected = get_viewport().get_window().current_screen
+
+func _on_option_selected(index : int, by_user : bool) -> void:
+ if _valid_index(index):
+ var window := get_viewport().get_window()
+ var mode := window.mode
+ window.mode = Window.MODE_WINDOWED
+ get_viewport().get_window().set_current_screen(index)
+ window.mode = mode
+ else:
+ push_error("Invalid MonitorDisplaySelector index: %d" % index)
+ reset_setting(not by_user)