From 94e8dfb6021bdf7647b9b2919ff498a871293e88 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 12 Oct 2026 20:50:12 +0200 Subject: [PATCH] Add a theme picker and an Original web theme (#42) Settings has a Theme row listing Settings.THEMES: Classic (main_theme.tres, still the default) and Original web (original_web_theme.tres), which looks like MusicFrontend: orange-bordered buttons, a #333 header and popups, #424242 panels, #4e4e4e alternating rows, a yellow playing song and a light grey player bar. Picking one sets the root window's theme at once and saves it as theme_id in settings.cfg, and it is applied at start. The popup backdrop and score graph follow a theme switch. The top bar has its own TopBarBackground style. test_theme.gd checks that every theme has everything main_theme.tres has. The screenshot tool takes a theme id. Closes #42 Co-Authored-By: Claude Opus 5.5 --- data/settings.gd | 36 +- main/TopBar.tscn | 1 + popups/SettingsPopup.tscn | 15 + popups/popup_backdrop.gd | 6 + popups/score_graph.gd | 6 + popups/settings_popup.gd | 18 +- tests/data/layout_baseline.json | 1389 +++++++++++-------- tests/integration/test_theme.gd | 29 + tests/integration/test_theme_picker.gd | 74 + tests/integration/test_theme_picker.gd.uid | 1 + tests/unit/test_settings_files.gd | 2 +- themes/README.md | 36 +- themes/main_theme.tres | 2 + themes/original_web_theme.tres | 1460 ++++++++++++++++++++ tools/take_screenshots.gd | 8 + 15 files changed, 2497 insertions(+), 586 deletions(-) create mode 100644 tests/integration/test_theme_picker.gd create mode 100644 tests/integration/test_theme_picker.gd.uid create mode 100644 themes/original_web_theme.tres diff --git a/data/settings.gd b/data/settings.gd index 82e755b..e792e78 100644 --- a/data/settings.gd +++ b/data/settings.gd @@ -3,6 +3,9 @@ extends Node ## ## Registered as the [code]Settings[/code] autoload. +## Emitted when another theme is used, for code that reads theme colours itself. +signal theme_changed + const MAX_NUMBER_OF_PLAYERS: int = 7 ## How many letters a search needs before it also finds names with the letters in order ## but apart, e.g. "lttp" for "A Link to the Past". Shorter searches only find names @@ -26,8 +29,14 @@ const SAVED_SETTINGS: Dictionary[String, Array] = { &"inspiration_list_speed", ], "window": [&"fullscreen"], - "app": [&"last_seen_version"], + "app": [&"last_seen_version", &"theme_id"], } +## The looks the game can have, picked in Settings: an id that is saved, the name shown +## and the theme file. The first is the default. See themes/README.md. +const THEMES: Array[Dictionary] = [ + {"id": "classic", "name": "Classic", "path": "res://themes/main_theme.tres"}, + {"id": "original_web", "name": "Original web", "path": "res://themes/original_web_theme.tres"}, +] ## When this environment variable is set, the settings files are kept in that folder ## instead of the user's config folder. The tests set it so they never touch the real files. const CONFIG_DIR_ENV: String = "MUSICPLAYER_CONFIG_DIR" @@ -85,6 +94,8 @@ var queue_ids: Dictionary[String, String] = {} ## The version the game last showed the About popup for. When it is not [member version], ## this version is new and the main window opens the About popup to show what is new. var last_seen_version: String = "" +## The id of the theme in use, one of [constant THEMES]. +var theme_id: String = THEMES[0].id ## The folder songs are played from instead of the server, picked in the settings, or null ## to use the server. Kept for this session only. var music_folder: MusicFolder = null @@ -103,6 +114,7 @@ var version: String = ProjectSettings.get_setting("application/config/version", func _ready() -> void: apply_config(load_config()) load_saved_settings() + _use_theme(theme_id) if fullscreen: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) @@ -246,6 +258,28 @@ func characters_dir() -> String: return "" +## Switches the whole game to the theme [param id] from [constant THEMES] and saves the +## choice. Controls without a theme of their own take it from the root window. +func apply_theme(id: String) -> void: + _use_theme(id) + save_settings() + + +## The theme in [constant THEMES] with [param id], or the default one if there is none. +func theme_entry(id: String) -> Dictionary: + for entry: Dictionary in THEMES: + if entry.id == id: + return entry + return THEMES[0] + + +func _use_theme(id: String) -> void: + var entry: Dictionary = theme_entry(id) + theme_id = entry.id + get_tree().root.theme = load(entry.path) + theme_changed.emit() + + func delete_children(node: Node) -> void: for n: Node in node.get_children(): node.remove_child(n) diff --git a/main/TopBar.tscn b/main/TopBar.tscn index 6e80cba..74b178f 100644 --- a/main/TopBar.tscn +++ b/main/TopBar.tscn @@ -17,6 +17,7 @@ script = ExtResource("top_bar_script") layout_mode = 0 offset_right = 1920.0 offset_bottom = 56.0 +theme_type_variation = &"TopBarBackground" [node name="Title" type="Label" parent="." unique_id=1187907861] layout_mode = 0 diff --git a/popups/SettingsPopup.tscn b/popups/SettingsPopup.tscn index 273bd64..dae0a01 100644 --- a/popups/SettingsPopup.tscn +++ b/popups/SettingsPopup.tscn @@ -143,6 +143,21 @@ theme_type_variation = &"HighlightMedium" text = "No pictures found" text_overrun_behavior = 3 +[node name="ThemeRow" type="HBoxContainer" parent="SettingsPanel/VBoxContainer"] +layout_mode = 2 + +[node name="Title" type="Label" parent="SettingsPanel/VBoxContainer/ThemeRow"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_type_variation = &"SettingsRowLabel" +text = "Theme" + +[node name="ThemeButton" type="OptionButton" parent="SettingsPanel/VBoxContainer/ThemeRow"] +unique_name_in_owner = true +custom_minimum_size = Vector2(180, 0) +layout_mode = 2 +focus_mode = 0 + [node name="FullscreenButton" type="CheckButton" parent="SettingsPanel/VBoxContainer" unique_id=400304684] unique_name_in_owner = true layout_mode = 2 diff --git a/popups/popup_backdrop.gd b/popups/popup_backdrop.gd index a83ccf0..53f62de 100644 --- a/popups/popup_backdrop.gd +++ b/popups/popup_backdrop.gd @@ -27,5 +27,11 @@ static func add_to(parent: Control, popups: Array[BasePopup]) -> PopupBackdrop: return backdrop +func _notification(what: int) -> void: + # The dimming colour comes from the theme, which can be switched in Settings + if what == NOTIFICATION_THEME_CHANGED: + color = get_theme_color(&"backdrop", &"Palette") + + func _update() -> void: visible = _popups.any(func(popup: BasePopup) -> bool: return popup.visible) diff --git a/popups/score_graph.gd b/popups/score_graph.gd index b571375..4c502ce 100644 --- a/popups/score_graph.gd +++ b/popups/score_graph.gd @@ -19,6 +19,12 @@ var _history: ScoreHistory var _winning_score: int = 0 +func _notification(what: int) -> void: + # The colours come from the theme, which can be switched in Settings + if what == NOTIFICATION_THEME_CHANGED: + queue_redraw() + + ## Shows [param history]. The y axis goes up to [param winning_score], or higher if ## someone has more points. A winning score of 0 draws no winning line. func show_history(history: ScoreHistory, winning_score: int) -> void: diff --git a/popups/settings_popup.gd b/popups/settings_popup.gd index 82f68da..2dab64c 100644 --- a/popups/settings_popup.gd +++ b/popups/settings_popup.gd @@ -1,9 +1,9 @@ class_name SettingsPopup extends BasePopup -## The application settings: which MusicServer or music folder to play from, fullscreen, -## how many songs to download ahead, whether to prefer less played soundtracks and whether -## plays count in the statistics, and a button that opens the folder the settings are -## kept in. Opened from the Settings button in the top bar. +## The application settings: which MusicServer or music folder to play from, the theme, +## fullscreen, how many songs to download ahead, whether to prefer less played soundtracks +## and whether plays count in the statistics, and a button that opens the folder the +## settings are kept in. Opened from the Settings button in the top bar. ## ## A music folder (see [MusicFolder]) is used instead of the server until Use server is ## pressed or the game is closed. The settings that need the server are off meanwhile. @@ -25,6 +25,7 @@ const PADDING: Vector2 = Vector2(20, 12) @onready var settings_panel: Panel = %SettingsPanel @onready var select_server_button: OptionButton = %SelectServerButton @onready var fullscreen_button: CheckButton = %FullscreenButton +@onready var theme_button: OptionButton = %ThemeButton @onready var cache_label: Label = %CacheLabel @onready var lower_cache_button: Button = %LowerCacheButton @onready var increase_cache_button: Button = %IncreaseCacheButton @@ -56,6 +57,10 @@ var _panel_middle_y: float = 0.0 func _ready() -> void: for server: String in Settings.servers: select_server_button.add_item(server) + for entry: Dictionary in Settings.THEMES: + theme_button.add_item(entry.name) + theme_button.select(Settings.THEMES.find(Settings.theme_entry(Settings.theme_id))) + theme_button.item_selected.connect(select_theme) fullscreen_button.button_pressed = Settings.fullscreen select_server_button.select(Settings.selected_server) cache_label.text = str(Playlist.number_of_tracks_to_preload) @@ -83,6 +88,11 @@ func _ready() -> void: _show_music_source() +## Switches to the theme at [param index] in [constant Settings.THEMES] at once. +func select_theme(index: int) -> void: + Settings.apply_theme(Settings.THEMES[index].id) + + func fullscreen() -> void: Settings.set_fullscreen(!Settings.fullscreen) diff --git a/tests/data/layout_baseline.json b/tests/data/layout_baseline.json index c0a9fbc..b9aa7cf 100644 --- a/tests/data/layout_baseline.json +++ b/tests/data/layout_baseline.json @@ -2082,25 +2082,25 @@ "SettingsPopup/SettingsPanel": { "rect": [ 700.0, - 370.0, + 353.0, 520.0, - 339.0 + 374.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer": { "rect": [ 720.0, - 382.0, + 365.0, 480.0, - 315.0 + 350.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/AddToDatabaseCheckButton": { "rect": [ 720.0, - 382.0, + 365.0, 231.0, 31.0 ], @@ -2109,7 +2109,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow": { "rect": [ 720.0, - 382.0, + 365.0, 331.0, 31.0 ], @@ -2118,7 +2118,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheLabel": { "rect": [ 720.0, - 382.0, + 365.0, 48.0, 23.0 ], @@ -2127,7 +2127,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheTitleLabel": { "rect": [ 720.0, - 382.0, + 365.0, 211.0, 31.0 ], @@ -2136,7 +2136,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/IncreaseCacheButton": { "rect": [ 720.0, - 382.0, + 365.0, 30.0, 31.0 ], @@ -2145,7 +2145,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/LowerCacheButton": { "rect": [ 720.0, - 382.0, + 365.0, 30.0, 31.0 ], @@ -2154,7 +2154,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -2163,7 +2163,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow": { "rect": [ 720.0, - 382.0, + 365.0, 199.0, 31.0 ], @@ -2172,7 +2172,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/CharactersLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 23.0 ], @@ -2181,7 +2181,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ 720.0, - 382.0, + 365.0, 94.0, 31.0 ], @@ -2190,7 +2190,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 96.0, 31.0 ], @@ -2199,7 +2199,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/UseServerCharactersButton": { "rect": [ 720.0, - 382.0, + 365.0, 106.0, 31.0 ], @@ -2208,7 +2208,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow": { "rect": [ 720.0, - 382.0, + 365.0, 324.0, 31.0 ], @@ -2217,7 +2217,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { "rect": [ 720.0, - 382.0, + 365.0, 117.0, 31.0 ], @@ -2226,7 +2226,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 203.0, 31.0 ], @@ -2235,7 +2235,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -2244,7 +2244,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow": { "rect": [ 720.0, - 382.0, + 365.0, 211.0, 31.0 ], @@ -2253,7 +2253,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ 720.0, - 382.0, + 365.0, 94.0, 31.0 ], @@ -2262,7 +2262,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/FolderLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 23.0 ], @@ -2271,7 +2271,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 108.0, 31.0 ], @@ -2280,7 +2280,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/UseServerButton": { "rect": [ 720.0, - 382.0, + 365.0, 106.0, 31.0 ], @@ -2289,7 +2289,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FullscreenButton": { "rect": [ 720.0, - 382.0, + 365.0, 127.0, 31.0 ], @@ -2298,7 +2298,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/Label": { "rect": [ 720.0, - 382.0, + 365.0, 97.0, 35.0 ], @@ -2307,7 +2307,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/LowPlayedCheckButton": { "rect": [ 720.0, - 382.0, + 365.0, 285.0, 31.0 ], @@ -2316,7 +2316,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow": { "rect": [ 720.0, - 382.0, + 365.0, 314.0, 31.0 ], @@ -2325,7 +2325,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/PlayOrderButton": { "rect": [ 720.0, - 382.0, + 365.0, 123.0, 31.0 ], @@ -2334,7 +2334,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 187.0, 31.0 ], @@ -2343,7 +2343,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow": { "rect": [ 720.0, - 382.0, + 365.0, 106.0, 31.0 ], @@ -2352,7 +2352,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/SelectServerButton": { "rect": [ 720.0, - 382.0, + 365.0, 40.0, 20.0 ], @@ -2361,12 +2361,39 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 62.0, 31.0 ], "visible": false }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow": { + "rect": [ + 720.0, + 365.0, + 249.0, + 31.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/ThemeButton": { + "rect": [ + 720.0, + 365.0, + 180.0, + 20.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/Title": { + "rect": [ + 720.0, + 365.0, + 65.0, + 31.0 + ], + "visible": false + }, "ShortcutsPopup": { "rect": [ 610.0, @@ -6242,25 +6269,25 @@ "SettingsPopup/SettingsPanel": { "rect": [ 700.0, - 370.0, + 353.0, 520.0, - 339.0 + 374.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer": { "rect": [ 720.0, - 382.0, + 365.0, 480.0, - 315.0 + 350.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/AddToDatabaseCheckButton": { "rect": [ 720.0, - 631.0, + 649.0, 480.0, 31.0 ], @@ -6269,7 +6296,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow": { "rect": [ 720.0, - 561.0, + 579.0, 480.0, 31.0 ], @@ -6278,7 +6305,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheLabel": { "rect": [ 1084.0, - 565.0, + 583.0, 48.0, 23.0 ], @@ -6287,7 +6314,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheTitleLabel": { "rect": [ 720.0, - 561.0, + 579.0, 360.0, 31.0 ], @@ -6296,7 +6323,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/IncreaseCacheButton": { "rect": [ 1170.0, - 561.0, + 579.0, 30.0, 31.0 ], @@ -6305,7 +6332,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/LowerCacheButton": { "rect": [ 1136.0, - 561.0, + 579.0, 30.0, 31.0 ], @@ -6314,7 +6341,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -6323,7 +6350,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow": { "rect": [ 720.0, - 491.0, + 474.0, 480.0, 31.0 ], @@ -6332,7 +6359,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/CharactersLabel": { "rect": [ 820.0, - 495.0, + 478.0, 282.0, 23.0 ], @@ -6341,7 +6368,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ 1106.0, - 491.0, + 474.0, 94.0, 31.0 ], @@ -6350,7 +6377,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/Title": { "rect": [ 720.0, - 491.0, + 474.0, 96.0, 31.0 ], @@ -6359,7 +6386,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/UseServerCharactersButton": { "rect": [ 720.0, - 491.0, + 474.0, 106.0, 31.0 ], @@ -6368,7 +6395,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow": { "rect": [ 720.0, - 666.0, + 684.0, 480.0, 31.0 ], @@ -6377,7 +6404,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { "rect": [ 1083.0, - 666.0, + 684.0, 117.0, 31.0 ], @@ -6386,7 +6413,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/Title": { "rect": [ 720.0, - 666.0, + 684.0, 359.0, 31.0 ], @@ -6395,7 +6422,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -6404,7 +6431,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow": { "rect": [ 720.0, - 456.0, + 439.0, 480.0, 31.0 ], @@ -6413,7 +6440,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ 1106.0, - 456.0, + 439.0, 94.0, 31.0 ], @@ -6422,7 +6449,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/FolderLabel": { "rect": [ 832.0, - 460.0, + 443.0, 270.0, 23.0 ], @@ -6431,7 +6458,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/Title": { "rect": [ 720.0, - 456.0, + 439.0, 108.0, 31.0 ], @@ -6440,7 +6467,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/UseServerButton": { "rect": [ 720.0, - 456.0, + 439.0, 106.0, 31.0 ], @@ -6449,7 +6476,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FullscreenButton": { "rect": [ 720.0, - 526.0, + 544.0, 480.0, 31.0 ], @@ -6458,7 +6485,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/Label": { "rect": [ 720.0, - 382.0, + 365.0, 480.0, 35.0 ], @@ -6467,7 +6494,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/LowPlayedCheckButton": { "rect": [ 720.0, - 596.0, + 614.0, 480.0, 31.0 ], @@ -6476,7 +6503,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow": { "rect": [ 720.0, - 382.0, + 365.0, 314.0, 31.0 ], @@ -6485,7 +6512,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/PlayOrderButton": { "rect": [ 720.0, - 382.0, + 365.0, 123.0, 31.0 ], @@ -6494,7 +6521,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 187.0, 31.0 ], @@ -6503,7 +6530,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow": { "rect": [ 720.0, - 421.0, + 404.0, 480.0, 31.0 ], @@ -6512,7 +6539,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/SelectServerButton": { "rect": [ 786.0, - 421.0, + 404.0, 414.0, 31.0 ], @@ -6521,12 +6548,39 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/Title": { "rect": [ 720.0, - 421.0, + 404.0, 62.0, 31.0 ], "visible": false }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow": { + "rect": [ + 720.0, + 509.0, + 480.0, + 31.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/ThemeButton": { + "rect": [ + 1020.0, + 509.0, + 180.0, + 31.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/Title": { + "rect": [ + 720.0, + 509.0, + 296.0, + 31.0 + ], + "visible": false + }, "ShortcutsPopup": { "rect": [ 610.0, @@ -12697,25 +12751,25 @@ "SettingsPopup/SettingsPanel": { "rect": [ 700.0, - 370.0, + 353.0, 520.0, - 339.0 + 374.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer": { "rect": [ 720.0, - 382.0, + 365.0, 480.0, - 315.0 + 350.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/AddToDatabaseCheckButton": { "rect": [ 720.0, - 382.0, + 365.0, 231.0, 31.0 ], @@ -12724,7 +12778,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow": { "rect": [ 720.0, - 382.0, + 365.0, 331.0, 31.0 ], @@ -12733,7 +12787,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheLabel": { "rect": [ 720.0, - 382.0, + 365.0, 48.0, 23.0 ], @@ -12742,7 +12796,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheTitleLabel": { "rect": [ 720.0, - 382.0, + 365.0, 211.0, 31.0 ], @@ -12751,7 +12805,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/IncreaseCacheButton": { "rect": [ 720.0, - 382.0, + 365.0, 30.0, 31.0 ], @@ -12760,7 +12814,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/LowerCacheButton": { "rect": [ 720.0, - 382.0, + 365.0, 30.0, 31.0 ], @@ -12769,7 +12823,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -12778,7 +12832,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow": { "rect": [ 720.0, - 382.0, + 365.0, 199.0, 31.0 ], @@ -12787,7 +12841,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/CharactersLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 23.0 ], @@ -12796,7 +12850,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ 720.0, - 382.0, + 365.0, 94.0, 31.0 ], @@ -12805,7 +12859,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 96.0, 31.0 ], @@ -12814,7 +12868,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/UseServerCharactersButton": { "rect": [ 720.0, - 382.0, + 365.0, 106.0, 31.0 ], @@ -12823,7 +12877,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow": { "rect": [ 720.0, - 382.0, + 365.0, 324.0, 31.0 ], @@ -12832,7 +12886,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { "rect": [ 720.0, - 382.0, + 365.0, 117.0, 31.0 ], @@ -12841,7 +12895,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 203.0, 31.0 ], @@ -12850,7 +12904,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -12859,7 +12913,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow": { "rect": [ 720.0, - 382.0, + 365.0, 211.0, 31.0 ], @@ -12868,7 +12922,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ 720.0, - 382.0, + 365.0, 94.0, 31.0 ], @@ -12877,7 +12931,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/FolderLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 23.0 ], @@ -12886,7 +12940,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 108.0, 31.0 ], @@ -12895,7 +12949,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/UseServerButton": { "rect": [ 720.0, - 382.0, + 365.0, 106.0, 31.0 ], @@ -12904,7 +12958,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FullscreenButton": { "rect": [ 720.0, - 382.0, + 365.0, 127.0, 31.0 ], @@ -12913,7 +12967,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/Label": { "rect": [ 720.0, - 382.0, + 365.0, 97.0, 35.0 ], @@ -12922,7 +12976,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/LowPlayedCheckButton": { "rect": [ 720.0, - 382.0, + 365.0, 285.0, 31.0 ], @@ -12931,7 +12985,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow": { "rect": [ 720.0, - 382.0, + 365.0, 314.0, 31.0 ], @@ -12940,7 +12994,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/PlayOrderButton": { "rect": [ 720.0, - 382.0, + 365.0, 123.0, 31.0 ], @@ -12949,7 +13003,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 187.0, 31.0 ], @@ -12958,7 +13012,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow": { "rect": [ 720.0, - 382.0, + 365.0, 106.0, 31.0 ], @@ -12967,7 +13021,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/SelectServerButton": { "rect": [ 720.0, - 382.0, + 365.0, 40.0, 20.0 ], @@ -12976,12 +13030,39 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 62.0, 31.0 ], "visible": false }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow": { + "rect": [ + 720.0, + 365.0, + 249.0, + 31.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/ThemeButton": { + "rect": [ + 720.0, + 365.0, + 180.0, + 20.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/Title": { + "rect": [ + 720.0, + 365.0, + 65.0, + 31.0 + ], + "visible": false + }, "ShortcutsPopup": { "rect": [ 610.0, @@ -16722,25 +16803,25 @@ "SettingsPopup/SettingsPanel": { "rect": [ 700.0, - 370.0, + 353.0, 520.0, - 339.0 + 374.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer": { "rect": [ 720.0, - 382.0, + 365.0, 480.0, - 315.0 + 350.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/AddToDatabaseCheckButton": { "rect": [ 720.0, - 382.0, + 365.0, 231.0, 31.0 ], @@ -16749,7 +16830,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow": { "rect": [ 720.0, - 382.0, + 365.0, 331.0, 31.0 ], @@ -16758,7 +16839,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheLabel": { "rect": [ 720.0, - 382.0, + 365.0, 48.0, 23.0 ], @@ -16767,7 +16848,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheTitleLabel": { "rect": [ 720.0, - 382.0, + 365.0, 211.0, 31.0 ], @@ -16776,7 +16857,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/IncreaseCacheButton": { "rect": [ 720.0, - 382.0, + 365.0, 30.0, 31.0 ], @@ -16785,7 +16866,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/LowerCacheButton": { "rect": [ 720.0, - 382.0, + 365.0, 30.0, 31.0 ], @@ -16794,7 +16875,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -16803,7 +16884,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow": { "rect": [ 720.0, - 382.0, + 365.0, 199.0, 31.0 ], @@ -16812,7 +16893,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/CharactersLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 23.0 ], @@ -16821,7 +16902,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ 720.0, - 382.0, + 365.0, 94.0, 31.0 ], @@ -16830,7 +16911,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 96.0, 31.0 ], @@ -16839,7 +16920,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/UseServerCharactersButton": { "rect": [ 720.0, - 382.0, + 365.0, 106.0, 31.0 ], @@ -16848,7 +16929,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow": { "rect": [ 720.0, - 382.0, + 365.0, 324.0, 31.0 ], @@ -16857,7 +16938,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { "rect": [ 720.0, - 382.0, + 365.0, 117.0, 31.0 ], @@ -16866,7 +16947,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 203.0, 31.0 ], @@ -16875,7 +16956,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -16884,7 +16965,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow": { "rect": [ 720.0, - 382.0, + 365.0, 211.0, 31.0 ], @@ -16893,7 +16974,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ 720.0, - 382.0, + 365.0, 94.0, 31.0 ], @@ -16902,7 +16983,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/FolderLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 23.0 ], @@ -16911,7 +16992,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 108.0, 31.0 ], @@ -16920,7 +17001,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/UseServerButton": { "rect": [ 720.0, - 382.0, + 365.0, 106.0, 31.0 ], @@ -16929,7 +17010,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FullscreenButton": { "rect": [ 720.0, - 382.0, + 365.0, 127.0, 31.0 ], @@ -16938,7 +17019,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/Label": { "rect": [ 720.0, - 382.0, + 365.0, 97.0, 35.0 ], @@ -16947,7 +17028,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/LowPlayedCheckButton": { "rect": [ 720.0, - 382.0, + 365.0, 285.0, 31.0 ], @@ -16956,7 +17037,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow": { "rect": [ 720.0, - 382.0, + 365.0, 314.0, 31.0 ], @@ -16965,7 +17046,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/PlayOrderButton": { "rect": [ 720.0, - 382.0, + 365.0, 123.0, 31.0 ], @@ -16974,7 +17055,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 187.0, 31.0 ], @@ -16983,7 +17064,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow": { "rect": [ 720.0, - 382.0, + 365.0, 106.0, 31.0 ], @@ -16992,7 +17073,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/SelectServerButton": { "rect": [ 720.0, - 382.0, + 365.0, 40.0, 20.0 ], @@ -17001,12 +17082,39 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 62.0, 31.0 ], "visible": false }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow": { + "rect": [ + 720.0, + 365.0, + 249.0, + 31.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/ThemeButton": { + "rect": [ + 720.0, + 365.0, + 180.0, + 20.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/Title": { + "rect": [ + 720.0, + 365.0, + 65.0, + 31.0 + ], + "visible": false + }, "ShortcutsPopup": { "rect": [ 610.0, @@ -19957,323 +20065,6 @@ } }, "popup_SettingsWindow": { - "SettingsPopup": { - "rect": [ - 700.0, - 405.0, - 1920.0, - 1080.0 - ], - "visible": true - }, - "SettingsPopup/CharacterFolderDialog": { - "rect": [ - 0.0, - 0.0, - 800.0, - 500.0 - ], - "visible": false - }, - "SettingsPopup/FolderDialog": { - "rect": [ - 0.0, - 0.0, - 800.0, - 500.0 - ], - "visible": false - }, - "SettingsPopup/SettingsPanel": { - "rect": [ - 700.0, - 370.0, - 520.0, - 339.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer": { - "rect": [ - 720.0, - 382.0, - 480.0, - 315.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/AddToDatabaseCheckButton": { - "rect": [ - 720.0, - 631.0, - 480.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow": { - "rect": [ - 720.0, - 561.0, - 480.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheLabel": { - "rect": [ - 1084.0, - 565.0, - 48.0, - 23.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheTitleLabel": { - "rect": [ - 720.0, - 561.0, - 360.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/IncreaseCacheButton": { - "rect": [ - 1170.0, - 561.0, - 30.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/LowerCacheButton": { - "rect": [ - 1136.0, - 561.0, - 30.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/CharactersErrorLabel": { - "rect": [ - 720.0, - 382.0, - 1.0, - 26.0 - ], - "visible": false - }, - "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow": { - "rect": [ - 720.0, - 491.0, - 480.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/CharactersLabel": { - "rect": [ - 820.0, - 495.0, - 282.0, - 23.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { - "rect": [ - 1106.0, - 491.0, - 94.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/Title": { - "rect": [ - 720.0, - 491.0, - 96.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/UseServerCharactersButton": { - "rect": [ - 720.0, - 491.0, - 106.0, - 31.0 - ], - "visible": false - }, - "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow": { - "rect": [ - 720.0, - 666.0, - 480.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { - "rect": [ - 1083.0, - 666.0, - 117.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/Title": { - "rect": [ - 720.0, - 666.0, - 359.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/FolderErrorLabel": { - "rect": [ - 720.0, - 382.0, - 1.0, - 26.0 - ], - "visible": false - }, - "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow": { - "rect": [ - 720.0, - 456.0, - 480.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { - "rect": [ - 1106.0, - 456.0, - 94.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/FolderLabel": { - "rect": [ - 832.0, - 460.0, - 270.0, - 23.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/Title": { - "rect": [ - 720.0, - 456.0, - 108.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/UseServerButton": { - "rect": [ - 720.0, - 456.0, - 106.0, - 31.0 - ], - "visible": false - }, - "SettingsPopup/SettingsPanel/VBoxContainer/FullscreenButton": { - "rect": [ - 720.0, - 526.0, - 480.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/Label": { - "rect": [ - 720.0, - 382.0, - 480.0, - 35.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/LowPlayedCheckButton": { - "rect": [ - 720.0, - 596.0, - 480.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow": { - "rect": [ - 720.0, - 382.0, - 314.0, - 31.0 - ], - "visible": false - }, - "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/PlayOrderButton": { - "rect": [ - 720.0, - 382.0, - 123.0, - 31.0 - ], - "visible": false - }, - "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/Title": { - "rect": [ - 720.0, - 382.0, - 187.0, - 31.0 - ], - "visible": false - }, - "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow": { - "rect": [ - 720.0, - 421.0, - 480.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/SelectServerButton": { - "rect": [ - 786.0, - 421.0, - 414.0, - 31.0 - ], - "visible": true - }, - "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/Title": { - "rect": [ - 720.0, - 421.0, - 62.0, - 31.0 - ], - "visible": true - } - }, - "popup_SettingsWindow_offline": { "SettingsPopup": { "rect": [ 700.0, @@ -20385,7 +20176,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow": { "rect": [ 720.0, - 509.0, + 474.0, 480.0, 31.0 ], @@ -20394,7 +20185,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/CharactersLabel": { "rect": [ 820.0, - 513.0, + 478.0, 282.0, 23.0 ], @@ -20403,7 +20194,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ 1106.0, - 509.0, + 474.0, 94.0, 31.0 ], @@ -20412,7 +20203,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/Title": { "rect": [ 720.0, - 509.0, + 474.0, 96.0, 31.0 ], @@ -20421,7 +20212,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/UseServerCharactersButton": { "rect": [ 720.0, - 509.0, + 474.0, 106.0, 31.0 ], @@ -20474,7 +20265,7 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ - 996.0, + 1106.0, 439.0, 94.0, 31.0 @@ -20485,7 +20276,7 @@ "rect": [ 832.0, 443.0, - 160.0, + 270.0, 23.0 ], "visible": true @@ -20501,12 +20292,12 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/UseServerButton": { "rect": [ - 1094.0, + 720.0, 439.0, 106.0, 31.0 ], - "visible": true + "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/FullscreenButton": { "rect": [ @@ -20538,29 +20329,29 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow": { "rect": [ 720.0, - 474.0, - 480.0, + 365.0, + 314.0, 31.0 ], - "visible": true + "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/PlayOrderButton": { "rect": [ - 1077.0, - 474.0, + 720.0, + 365.0, 123.0, 31.0 ], - "visible": true + "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/Title": { "rect": [ 720.0, - 474.0, - 353.0, + 365.0, + 187.0, 31.0 ], - "visible": true + "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow": { "rect": [ @@ -20588,6 +20379,377 @@ 31.0 ], "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow": { + "rect": [ + 720.0, + 509.0, + 480.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/ThemeButton": { + "rect": [ + 1020.0, + 509.0, + 180.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/Title": { + "rect": [ + 720.0, + 509.0, + 296.0, + 31.0 + ], + "visible": true + } + }, + "popup_SettingsWindow_offline": { + "SettingsPopup": { + "rect": [ + 700.0, + 405.0, + 1920.0, + 1080.0 + ], + "visible": true + }, + "SettingsPopup/CharacterFolderDialog": { + "rect": [ + 0.0, + 0.0, + 800.0, + 500.0 + ], + "visible": false + }, + "SettingsPopup/FolderDialog": { + "rect": [ + 0.0, + 0.0, + 800.0, + 500.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel": { + "rect": [ + 700.0, + 335.0, + 520.0, + 409.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer": { + "rect": [ + 720.0, + 347.0, + 480.0, + 385.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/AddToDatabaseCheckButton": { + "rect": [ + 720.0, + 666.0, + 480.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow": { + "rect": [ + 720.0, + 596.0, + 480.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheLabel": { + "rect": [ + 1084.0, + 600.0, + 48.0, + 23.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheTitleLabel": { + "rect": [ + 720.0, + 596.0, + 360.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/IncreaseCacheButton": { + "rect": [ + 1170.0, + 596.0, + 30.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/LowerCacheButton": { + "rect": [ + 1136.0, + 596.0, + 30.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/CharactersErrorLabel": { + "rect": [ + 720.0, + 347.0, + 1.0, + 26.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow": { + "rect": [ + 720.0, + 491.0, + 480.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/CharactersLabel": { + "rect": [ + 820.0, + 495.0, + 282.0, + 23.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { + "rect": [ + 1106.0, + 491.0, + 94.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/Title": { + "rect": [ + 720.0, + 491.0, + 96.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/UseServerCharactersButton": { + "rect": [ + 720.0, + 491.0, + 106.0, + 31.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow": { + "rect": [ + 720.0, + 701.0, + 480.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { + "rect": [ + 1083.0, + 701.0, + 117.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/Title": { + "rect": [ + 720.0, + 701.0, + 359.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/FolderErrorLabel": { + "rect": [ + 720.0, + 347.0, + 1.0, + 26.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow": { + "rect": [ + 720.0, + 421.0, + 480.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { + "rect": [ + 996.0, + 421.0, + 94.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/FolderLabel": { + "rect": [ + 832.0, + 425.0, + 160.0, + 23.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/Title": { + "rect": [ + 720.0, + 421.0, + 108.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/UseServerButton": { + "rect": [ + 1094.0, + 421.0, + 106.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/FullscreenButton": { + "rect": [ + 720.0, + 561.0, + 480.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/Label": { + "rect": [ + 720.0, + 347.0, + 480.0, + 35.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/LowPlayedCheckButton": { + "rect": [ + 720.0, + 631.0, + 480.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow": { + "rect": [ + 720.0, + 456.0, + 480.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/PlayOrderButton": { + "rect": [ + 1077.0, + 456.0, + 123.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/Title": { + "rect": [ + 720.0, + 456.0, + 353.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow": { + "rect": [ + 720.0, + 386.0, + 480.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/SelectServerButton": { + "rect": [ + 786.0, + 386.0, + 414.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/Title": { + "rect": [ + 720.0, + 386.0, + 62.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow": { + "rect": [ + 720.0, + 526.0, + 480.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/ThemeButton": { + "rect": [ + 1020.0, + 526.0, + 180.0, + 31.0 + ], + "visible": true + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/Title": { + "rect": [ + 720.0, + 526.0, + 296.0, + 31.0 + ], + "visible": true } }, "popup_ShortcutsWindow": { @@ -24773,25 +24935,25 @@ "SettingsPopup/SettingsPanel": { "rect": [ 700.0, - 370.0, + 353.0, 520.0, - 339.0 + 374.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer": { "rect": [ 720.0, - 382.0, + 365.0, 480.0, - 315.0 + 350.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/AddToDatabaseCheckButton": { "rect": [ 720.0, - 382.0, + 365.0, 231.0, 31.0 ], @@ -24800,7 +24962,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow": { "rect": [ 720.0, - 382.0, + 365.0, 331.0, 31.0 ], @@ -24809,7 +24971,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheLabel": { "rect": [ 720.0, - 382.0, + 365.0, 48.0, 23.0 ], @@ -24818,7 +24980,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheTitleLabel": { "rect": [ 720.0, - 382.0, + 365.0, 211.0, 31.0 ], @@ -24827,7 +24989,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/IncreaseCacheButton": { "rect": [ 720.0, - 382.0, + 365.0, 30.0, 31.0 ], @@ -24836,7 +24998,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/LowerCacheButton": { "rect": [ 720.0, - 382.0, + 365.0, 30.0, 31.0 ], @@ -24845,7 +25007,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -24854,7 +25016,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow": { "rect": [ 720.0, - 382.0, + 365.0, 199.0, 31.0 ], @@ -24863,7 +25025,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/CharactersLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 23.0 ], @@ -24872,7 +25034,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ 720.0, - 382.0, + 365.0, 94.0, 31.0 ], @@ -24881,7 +25043,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 96.0, 31.0 ], @@ -24890,7 +25052,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/UseServerCharactersButton": { "rect": [ 720.0, - 382.0, + 365.0, 106.0, 31.0 ], @@ -24899,7 +25061,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow": { "rect": [ 720.0, - 382.0, + 365.0, 324.0, 31.0 ], @@ -24908,7 +25070,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { "rect": [ 720.0, - 382.0, + 365.0, 117.0, 31.0 ], @@ -24917,7 +25079,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 203.0, 31.0 ], @@ -24926,7 +25088,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -24935,7 +25097,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow": { "rect": [ 720.0, - 382.0, + 365.0, 211.0, 31.0 ], @@ -24944,7 +25106,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ 720.0, - 382.0, + 365.0, 94.0, 31.0 ], @@ -24953,7 +25115,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/FolderLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 23.0 ], @@ -24962,7 +25124,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 108.0, 31.0 ], @@ -24971,7 +25133,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/UseServerButton": { "rect": [ 720.0, - 382.0, + 365.0, 106.0, 31.0 ], @@ -24980,7 +25142,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FullscreenButton": { "rect": [ 720.0, - 382.0, + 365.0, 127.0, 31.0 ], @@ -24989,7 +25151,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/Label": { "rect": [ 720.0, - 382.0, + 365.0, 97.0, 35.0 ], @@ -24998,7 +25160,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/LowPlayedCheckButton": { "rect": [ 720.0, - 382.0, + 365.0, 285.0, 31.0 ], @@ -25007,7 +25169,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow": { "rect": [ 720.0, - 382.0, + 365.0, 314.0, 31.0 ], @@ -25016,7 +25178,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/PlayOrderButton": { "rect": [ 720.0, - 382.0, + 365.0, 123.0, 31.0 ], @@ -25025,7 +25187,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 187.0, 31.0 ], @@ -25034,7 +25196,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow": { "rect": [ 720.0, - 382.0, + 365.0, 106.0, 31.0 ], @@ -25043,7 +25205,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/SelectServerButton": { "rect": [ 720.0, - 382.0, + 365.0, 40.0, 20.0 ], @@ -25052,12 +25214,39 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 62.0, 31.0 ], "visible": false }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow": { + "rect": [ + 720.0, + 365.0, + 249.0, + 31.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/ThemeButton": { + "rect": [ + 720.0, + 365.0, + 180.0, + 20.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/Title": { + "rect": [ + 720.0, + 365.0, + 65.0, + 31.0 + ], + "visible": false + }, "ShortcutsPopup": { "rect": [ 610.0, @@ -38186,25 +38375,25 @@ "SettingsPopup/SettingsPanel": { "rect": [ 700.0, - 370.0, + 353.0, 520.0, - 339.0 + 374.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer": { "rect": [ 720.0, - 382.0, + 365.0, 480.0, - 315.0 + 350.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/AddToDatabaseCheckButton": { "rect": [ 720.0, - 631.0, + 649.0, 480.0, 31.0 ], @@ -38213,7 +38402,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow": { "rect": [ 720.0, - 561.0, + 579.0, 480.0, 31.0 ], @@ -38222,7 +38411,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheLabel": { "rect": [ 1084.0, - 565.0, + 583.0, 48.0, 23.0 ], @@ -38231,7 +38420,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheTitleLabel": { "rect": [ 720.0, - 561.0, + 579.0, 360.0, 31.0 ], @@ -38240,7 +38429,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/IncreaseCacheButton": { "rect": [ 1170.0, - 561.0, + 579.0, 30.0, 31.0 ], @@ -38249,7 +38438,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/LowerCacheButton": { "rect": [ 1136.0, - 561.0, + 579.0, 30.0, 31.0 ], @@ -38258,7 +38447,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -38267,7 +38456,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow": { "rect": [ 720.0, - 491.0, + 474.0, 480.0, 31.0 ], @@ -38276,7 +38465,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/CharactersLabel": { "rect": [ 820.0, - 495.0, + 478.0, 282.0, 23.0 ], @@ -38285,7 +38474,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ 1106.0, - 491.0, + 474.0, 94.0, 31.0 ], @@ -38294,7 +38483,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/Title": { "rect": [ 720.0, - 491.0, + 474.0, 96.0, 31.0 ], @@ -38303,7 +38492,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/UseServerCharactersButton": { "rect": [ 720.0, - 491.0, + 474.0, 106.0, 31.0 ], @@ -38312,7 +38501,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow": { "rect": [ 720.0, - 666.0, + 684.0, 480.0, 31.0 ], @@ -38321,7 +38510,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { "rect": [ 1083.0, - 666.0, + 684.0, 117.0, 31.0 ], @@ -38330,7 +38519,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/Title": { "rect": [ 720.0, - 666.0, + 684.0, 359.0, 31.0 ], @@ -38339,7 +38528,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -38348,7 +38537,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow": { "rect": [ 720.0, - 456.0, + 439.0, 480.0, 31.0 ], @@ -38357,7 +38546,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ 1106.0, - 456.0, + 439.0, 94.0, 31.0 ], @@ -38366,7 +38555,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/FolderLabel": { "rect": [ 832.0, - 460.0, + 443.0, 270.0, 23.0 ], @@ -38375,7 +38564,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/Title": { "rect": [ 720.0, - 456.0, + 439.0, 108.0, 31.0 ], @@ -38384,7 +38573,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/UseServerButton": { "rect": [ 720.0, - 456.0, + 439.0, 106.0, 31.0 ], @@ -38393,7 +38582,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FullscreenButton": { "rect": [ 720.0, - 526.0, + 544.0, 480.0, 31.0 ], @@ -38402,7 +38591,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/Label": { "rect": [ 720.0, - 382.0, + 365.0, 480.0, 35.0 ], @@ -38411,7 +38600,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/LowPlayedCheckButton": { "rect": [ 720.0, - 596.0, + 614.0, 480.0, 31.0 ], @@ -38420,7 +38609,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow": { "rect": [ 720.0, - 382.0, + 365.0, 314.0, 31.0 ], @@ -38429,7 +38618,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/PlayOrderButton": { "rect": [ 720.0, - 382.0, + 365.0, 123.0, 31.0 ], @@ -38438,7 +38627,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 187.0, 31.0 ], @@ -38447,7 +38636,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow": { "rect": [ 720.0, - 421.0, + 404.0, 480.0, 31.0 ], @@ -38456,7 +38645,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/SelectServerButton": { "rect": [ 786.0, - 421.0, + 404.0, 414.0, 31.0 ], @@ -38465,12 +38654,39 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/Title": { "rect": [ 720.0, - 421.0, + 404.0, 62.0, 31.0 ], "visible": false }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow": { + "rect": [ + 720.0, + 509.0, + 480.0, + 31.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/ThemeButton": { + "rect": [ + 1020.0, + 509.0, + 180.0, + 31.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/Title": { + "rect": [ + 720.0, + 509.0, + 296.0, + 31.0 + ], + "visible": false + }, "ShortcutsPopup": { "rect": [ 610.0, @@ -42809,25 +43025,25 @@ "SettingsPopup/SettingsPanel": { "rect": [ 700.0, - 370.0, + 353.0, 520.0, - 339.0 + 374.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer": { "rect": [ 720.0, - 382.0, + 365.0, 480.0, - 315.0 + 350.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/AddToDatabaseCheckButton": { "rect": [ 720.0, - 631.0, + 649.0, 480.0, 31.0 ], @@ -42836,7 +43052,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow": { "rect": [ 720.0, - 561.0, + 579.0, 480.0, 31.0 ], @@ -42845,7 +43061,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheLabel": { "rect": [ 1084.0, - 565.0, + 583.0, 48.0, 23.0 ], @@ -42854,7 +43070,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/CacheTitleLabel": { "rect": [ 720.0, - 561.0, + 579.0, 360.0, 31.0 ], @@ -42863,7 +43079,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/IncreaseCacheButton": { "rect": [ 1170.0, - 561.0, + 579.0, 30.0, 31.0 ], @@ -42872,7 +43088,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CacheRow/LowerCacheButton": { "rect": [ 1136.0, - 561.0, + 579.0, 30.0, 31.0 ], @@ -42881,7 +43097,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -42890,7 +43106,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow": { "rect": [ 720.0, - 491.0, + 474.0, 480.0, 31.0 ], @@ -42899,7 +43115,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/CharactersLabel": { "rect": [ 820.0, - 495.0, + 478.0, 282.0, 23.0 ], @@ -42908,7 +43124,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ 1106.0, - 491.0, + 474.0, 94.0, 31.0 ], @@ -42917,7 +43133,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/Title": { "rect": [ 720.0, - 491.0, + 474.0, 96.0, 31.0 ], @@ -42926,7 +43142,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/UseServerCharactersButton": { "rect": [ 720.0, - 491.0, + 474.0, 106.0, 31.0 ], @@ -42935,7 +43151,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow": { "rect": [ 720.0, - 666.0, + 684.0, 480.0, 31.0 ], @@ -42944,7 +43160,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { "rect": [ 1083.0, - 666.0, + 684.0, 117.0, 31.0 ], @@ -42953,7 +43169,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/Title": { "rect": [ 720.0, - 666.0, + 684.0, 359.0, 31.0 ], @@ -42962,7 +43178,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderErrorLabel": { "rect": [ 720.0, - 382.0, + 365.0, 1.0, 26.0 ], @@ -42971,7 +43187,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow": { "rect": [ 720.0, - 456.0, + 439.0, 480.0, 31.0 ], @@ -42980,7 +43196,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ 1106.0, - 456.0, + 439.0, 94.0, 31.0 ], @@ -42989,7 +43205,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/FolderLabel": { "rect": [ 832.0, - 460.0, + 443.0, 270.0, 23.0 ], @@ -42998,7 +43214,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/Title": { "rect": [ 720.0, - 456.0, + 439.0, 108.0, 31.0 ], @@ -43007,7 +43223,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/UseServerButton": { "rect": [ 720.0, - 456.0, + 439.0, 106.0, 31.0 ], @@ -43016,7 +43232,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/FullscreenButton": { "rect": [ 720.0, - 526.0, + 544.0, 480.0, 31.0 ], @@ -43025,7 +43241,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/Label": { "rect": [ 720.0, - 382.0, + 365.0, 480.0, 35.0 ], @@ -43034,7 +43250,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/LowPlayedCheckButton": { "rect": [ 720.0, - 596.0, + 614.0, 480.0, 31.0 ], @@ -43043,7 +43259,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow": { "rect": [ 720.0, - 382.0, + 365.0, 314.0, 31.0 ], @@ -43052,7 +43268,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/PlayOrderButton": { "rect": [ 720.0, - 382.0, + 365.0, 123.0, 31.0 ], @@ -43061,7 +43277,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/PlayOrderRow/Title": { "rect": [ 720.0, - 382.0, + 365.0, 187.0, 31.0 ], @@ -43070,7 +43286,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow": { "rect": [ 720.0, - 421.0, + 404.0, 480.0, 31.0 ], @@ -43079,7 +43295,7 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/SelectServerButton": { "rect": [ 786.0, - 421.0, + 404.0, 414.0, 31.0 ], @@ -43088,12 +43304,39 @@ "SettingsPopup/SettingsPanel/VBoxContainer/ServerRow/Title": { "rect": [ 720.0, - 421.0, + 404.0, 62.0, 31.0 ], "visible": false }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow": { + "rect": [ + 720.0, + 509.0, + 480.0, + 31.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/ThemeButton": { + "rect": [ + 1020.0, + 509.0, + 180.0, + 31.0 + ], + "visible": false + }, + "SettingsPopup/SettingsPanel/VBoxContainer/ThemeRow/Title": { + "rect": [ + 720.0, + 509.0, + 296.0, + 31.0 + ], + "visible": false + }, "ShortcutsPopup": { "rect": [ 610.0, diff --git a/tests/integration/test_theme.gd b/tests/integration/test_theme.gd index d0de524..20b34d6 100644 --- a/tests/integration/test_theme.gd +++ b/tests/integration/test_theme.gd @@ -15,6 +15,7 @@ const STYLES: Dictionary = { "WindowBackground": "Panel", "PopupBackground": "Panel", "StepButton": "Button", + "TopBarBackground": "PanelContainer", "PlayerList": "PanelContainer", "PlayerCharacter": "PanelContainer", "PlayerCharacterHover": "PanelContainer", @@ -171,3 +172,31 @@ func test_japanese_fallback_keeps_the_line_height_of_godots_font() -> void: assert_float(_theme.default_font.get_height(size)) \ .override_failure_message("Line height at size %d" % size) \ .is_equal(builtin.get_height(size)) + + +func test_every_theme_has_everything_the_main_theme_has() -> void: + var data_types: Array[Theme.DataType] = [Theme.DATA_TYPE_COLOR, Theme.DATA_TYPE_CONSTANT, + Theme.DATA_TYPE_FONT, Theme.DATA_TYPE_FONT_SIZE, Theme.DATA_TYPE_ICON, + Theme.DATA_TYPE_STYLEBOX] + for entry: Dictionary in Settings.THEMES: + var other: Theme = load(entry.path) + assert_object(other).override_failure_message(entry.path + " is missing").is_not_null() + for theme_type: String in _theme.get_type_list(): + assert_str(String(other.get_type_variation_base(theme_type))) \ + .override_failure_message("%s: %s" % [entry.name, theme_type]) \ + .is_equal(String(_theme.get_type_variation_base(theme_type))) + for data_type: Theme.DataType in data_types: + for item: String in _theme.get_theme_item_list(data_type, theme_type): + assert_bool(other.has_theme_item(data_type, item, theme_type)) \ + .override_failure_message("%s has no %s/%s" % [entry.name, + theme_type, item]).is_true() + + +func test_every_theme_has_its_own_name_and_id() -> void: + var ids: Array = Settings.THEMES.map(func(entry: Dictionary) -> String: return entry.id) + var names: Array = Settings.THEMES.map(func(entry: Dictionary) -> String: return entry.name) + + assert_str(Settings.THEMES[0].path).is_equal(THEME_PATH) + for list: Array in [ids, names]: + for value: String in list: + assert_int(list.count(value)).override_failure_message(value).is_equal(1) diff --git a/tests/integration/test_theme_picker.gd b/tests/integration/test_theme_picker.gd new file mode 100644 index 0000000..70d8d51 --- /dev/null +++ b/tests/integration/test_theme_picker.gd @@ -0,0 +1,74 @@ +extends MainWindowTestSuite +## Picking a theme in Settings switches the whole game's look at once and is saved. + +var _settings: SettingsPopup + + +func before_test() -> void: + await super() + _settings = _window.get_node("SettingsPopup") + + +func after_test() -> void: + Settings.apply_theme(Settings.THEMES[0].id) + await super() + + +func _pick(theme_name: String) -> void: + var index: int = Settings.THEMES.map( + func(entry: Dictionary) -> String: return entry.name).find(theme_name) + _settings.theme_button.select(index) + _settings.theme_button.item_selected.emit(index) + await _runner.simulate_frames(1) + + +func test_picker_lists_every_theme_and_shows_the_one_in_use() -> void: + var names: Array[String] = [] + for index: int in _settings.theme_button.item_count: + names.append(_settings.theme_button.get_item_text(index)) + + assert_array(names).contains_exactly(["Classic", "Original web"]) + assert_str(_settings.theme_button.get_item_text(_settings.theme_button.selected)) \ + .is_equal("Classic") + + +func test_picking_a_theme_switches_the_look_at_once() -> void: + var button: Button = _window.get_node("TopBar/%SyncButton") + var classic_text: Color = button.get_theme_color(&"font_color") + var panel: Panel = _window.get_node("SettingsPopup/SettingsPanel") + var popup_style: StyleBox = panel.get_theme_stylebox(&"panel") + + await _pick("Original web") + + assert_str(Settings.theme_id).is_equal("original_web") + assert_str(_window.get_tree().root.theme.resource_path) \ + .is_equal("res://themes/original_web_theme.tres") + assert_object(panel.get_theme_stylebox(&"panel")).is_not_same(popup_style) + # The web version's buttons have orange text + assert_bool(button.get_theme_color(&"font_color") != classic_text).is_true() + + +func test_chosen_theme_is_saved() -> void: + await _pick("Original web") + + var saved: ConfigFile = ConfigFile.new() + assert_int(saved.load(Settings.saved_settings_path())).is_equal(OK) + assert_str(saved.get_value("app", "theme_id")).is_equal("original_web") + + +func test_backdrop_and_graph_follow_the_theme() -> void: + var backdrop: PopupBackdrop = _window.get_node("PopupBackdrop") + var classic: Color = backdrop.color + + await _pick("Original web") + + assert_object(backdrop.color).is_equal(backdrop.get_theme_color(&"backdrop", &"Palette")) + assert_bool(backdrop.color != classic).is_true() + + +func test_unknown_theme_falls_back_to_the_default() -> void: + Settings.apply_theme("no_such_theme") + + assert_str(Settings.theme_id).is_equal("classic") + assert_str(_window.get_tree().root.theme.resource_path) \ + .is_equal("res://themes/main_theme.tres") diff --git a/tests/integration/test_theme_picker.gd.uid b/tests/integration/test_theme_picker.gd.uid new file mode 100644 index 0000000..ac26ade --- /dev/null +++ b/tests/integration/test_theme_picker.gd.uid @@ -0,0 +1 @@ +uid://de1hpddu212xs diff --git a/tests/unit/test_settings_files.gd b/tests/unit/test_settings_files.gd index ff32131..a038541 100644 --- a/tests/unit/test_settings_files.gd +++ b/tests/unit/test_settings_files.gd @@ -6,7 +6,7 @@ const SAVED_VALUES: Dictionary = { &"auto_repeat_song": false, &"stop_after_current": false, &"hide_next_track": false, &"hide_beginning": true, &"hide_for_seconds": 7.0, &"hide_length": true, &"hide_ticks": true, &"winning_score": 13, &"inspiration_list_speed": 4, - &"fullscreen": true, &"last_seen_version": "1.2.3", + &"fullscreen": true, &"last_seen_version": "1.2.3", &"theme_id": "original_web", } var _snapshot: AutoloadSnapshot diff --git a/themes/README.md b/themes/README.md index 533bbda..79ab827 100644 --- a/themes/README.md +++ b/themes/README.md @@ -1,17 +1,35 @@ # Themes -The whole look of the game comes from one theme, `main_theme.tres`. It is the project -theme (Project Settings → GUI → Theme → Custom), so every scene uses it without setting -anything. Scenes and scripts never set colours, font sizes or style boxes themselves; -they name one of the theme's styles instead, and `tests/integration/test_theme.gd` -checks that it stays that way. +The whole look of the game comes from a theme. Scenes and scripts never set colours, +font sizes or style boxes themselves; they name one of the theme's styles instead, and +`tests/integration/test_theme.gd` checks that it stays that way. + +| Theme | File | | +|---|---|---| +| Classic | `main_theme.tres` | The default. Also the project theme (Project Settings → GUI → Theme → Custom), which the editor shows | +| Original web | `original_web_theme.tres` | Looks like MusicFrontend, the web version: orange-bordered buttons, `#333` header and popups, `#424242` panels, `#4e4e4e` alternating rows, a yellow playing song and a light grey player bar | + +## Picking a theme + +The themes are listed in `Settings.THEMES` (`data/settings.gd`): an id, the name shown +and the file. The player picks one in Settings → Theme, and it applies at once. +`Settings.apply_theme()` sets the theme of the root window, which every control without a +theme of its own uses, and saves the id as `theme_id` in `settings.cfg`. The saved theme +is applied when the game starts. + +Code that reads theme colours itself redraws on `NOTIFICATION_THEME_CHANGED`, e.g. the +score graph and the popup backdrop. `Settings.theme_changed` is emitted after a switch. + +To see the pictures of the screenshot tour in another theme, pass its id: +`godot --path . -s tools/take_screenshots.gd -- original_web`. ## Making a new theme 1. Copy `main_theme.tres`, e.g. to `dark_blue_theme.tres`. 2. Open the copy in Godot (double-click it) and change its colours, style boxes and font sizes in the theme editor. Keep every style's name. -3. Point Project Settings → GUI → Theme → Custom at the copy. +3. Add it to `Settings.THEMES`. `test_theme.gd` checks that it has every style, colour and + size that `main_theme.tres` has. The **font** is the theme's default font, Godot's own Open Sans with Noto Sans JP for Japanese text; see `fonts/README.md`. @@ -32,7 +50,11 @@ inspector or `theme_type_variation` in code: |---|---|---| | `WindowBackground` | Panel | The background behind everything in the main window | | `PopupBackground` | Panel | The panel of every popup: dark, bordered and rounded | -| `DarkSpacer` | Panel | The dark gaps in the player list and the add player row | +| `TopBarBackground` | PanelContainer | The bar along the top of the window | +| `PlayerList` | PanelContainer | The player list, with space around its rows | +| `PlayerScore` | Label | A player's points (24) | +| `PlayerCharacter`, `PlayerCharacterHover` | PanelContainer | The frame around a player's character, and the one under the mouse | +| `StepButton` | Button | The small +1 and -1 buttons, with less padding than other buttons | | `CharacterCard` | Panel | A character in the character select popup | | `MusicList` | PanelContainer | The list of songs in the quiz | | `SongRow`, `SongRowOdd` | PanelContainer | Alternating songs in that list | diff --git a/themes/main_theme.tres b/themes/main_theme.tres index 7f839c1..7e2ca73 100644 --- a/themes/main_theme.tres +++ b/themes/main_theme.tres @@ -1331,6 +1331,8 @@ TitleLarge/base_type = &"Label" TitleLarge/font_sizes/font_size = 50 TitleMedium/base_type = &"Label" TitleMedium/font_sizes/font_size = 35 +TopBarBackground/base_type = &"PanelContainer" +TopBarBackground/styles/panel = SubResource("StyleBoxFlat_wl3gy") TooltipLabel/colors/font_color = Color(0.875, 0.875, 0.875, 1) TooltipLabel/colors/font_outline_color = Color(0, 0, 0, 1) TooltipLabel/colors/font_shadow_color = Color(0, 0, 0, 0) diff --git a/themes/original_web_theme.tres b/themes/original_web_theme.tres new file mode 100644 index 0000000..f534d62 --- /dev/null +++ b/themes/original_web_theme.tres @@ -0,0 +1,1460 @@ +[gd_resource type="Theme" format=3] + +[ext_resource type="FontFile" path="res://fonts/OpenSans-SemiBold.woff2" id="1_default_font"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vxwtt"] +content_margin_left = 12.0 +content_margin_top = 4.0 +content_margin_right = 12.0 +content_margin_bottom = 4.0 +bg_color = Color(0.212, 0.212, 0.212, 0.5) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 5 +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.612, 0, 0.5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rjgu6"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.75) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +expand_margin_left = 2.0 +expand_margin_top = 2.0 +expand_margin_right = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vu6l5"] +content_margin_left = 12.0 +content_margin_top = 4.0 +content_margin_right = 12.0 +content_margin_bottom = 4.0 +bg_color = Color(0.29, 0.29, 0.29, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 5 +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ydht1"] +content_margin_left = 12.0 +content_margin_top = 4.0 +content_margin_right = 12.0 +content_margin_bottom = 4.0 +bg_color = Color(0.212, 0.212, 0.212, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 5 +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8gw6x"] +content_margin_left = 12.0 +content_margin_top = 4.0 +content_margin_right = 12.0 +content_margin_bottom = 4.0 +bg_color = Color(0.15, 0.15, 0.15, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 5 +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_g21io"] +bg_color = Color(0.259, 0.259, 0.259, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_charhover"] +bg_color = Color(0.31, 0.31, 0.31, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.612, 0, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_7ceur"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uobgu"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.75) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +expand_margin_left = 2.0 +expand_margin_top = 2.0 +expand_margin_right = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_puucq"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1mjdo"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_s5e0q"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_0x86e"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 6.0 +content_margin_bottom = 4.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7qy2x"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.427, 0.463, 0.475, 0.76) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_myxx4"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.55, 0.59, 0.6, 0.9) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3kvey"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.65, 0.68, 0.7, 0.9) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5iri2"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +bg_color = Color(0.224, 0.235, 0.255, 0.47) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3scot"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.75) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +expand_margin_left = 2.0 +expand_margin_top = 2.0 +expand_margin_right = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_puicy"] +content_margin_left = 4.0 +content_margin_top = 0.0 +content_margin_right = 4.0 +content_margin_bottom = 0.0 +color = Color(0.5, 0.5, 0.5, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_quqgn"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.4) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_m01q4"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.75) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_k36pm"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.1, 0.1, 0.1, 0.6) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6h40v"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.75) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +expand_margin_left = 2.0 +expand_margin_top = 2.0 +expand_margin_right = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_s47sh"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_u5sc5"] +content_margin_left = 8.0 +content_margin_top = 2.0 +content_margin_right = 8.0 +content_margin_bottom = 2.0 +bg_color = Color(0.306, 0.306, 0.306, 0) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_listrowhover"] +content_margin_left = 8.0 +content_margin_top = 2.0 +content_margin_right = 8.0 +content_margin_bottom = 2.0 +bg_color = Color(1, 1, 1, 0.14) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_songstatsheader"] +content_margin_left = 8.0 +content_margin_top = 2.0 +content_margin_right = 8.0 +content_margin_bottom = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mxy8k"] +content_margin_left = 8.0 +content_margin_top = 2.0 +content_margin_right = 8.0 +content_margin_bottom = 2.0 +bg_color = Color(0.306, 0.306, 0.306, 1) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_33f1l"] +content_margin_left = 6.0 +content_margin_top = 6.0 +content_margin_right = 6.0 +content_margin_bottom = 6.0 +bg_color = Color(0.259, 0.259, 0.259, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wbnll"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.212, 0.212, 0.212, 0.5) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.4, 0.4, 0.4, 0.5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bmtpa"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.212, 0.212, 0.212, 0.5) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.4, 0.4, 0.4, 0.5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_f5lmb"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.75) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +expand_margin_left = 2.0 +expand_margin_top = 2.0 +expand_margin_right = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qtlom"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.29, 0.29, 0.29, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_t2i82"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.29, 0.29, 0.29, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_a4gt2"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.212, 0.212, 0.212, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.4, 0.4, 0.4, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uisqs"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.212, 0.212, 0.212, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.4, 0.4, 0.4, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dinf2"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.15, 0.15, 0.15, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_a0ksy"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.15, 0.15, 0.15, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hwwyi"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.259, 0.259, 0.259, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wl3gy"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.259, 0.259, 0.259, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vputg"] +content_margin_left = 12.0 +content_margin_top = 12.0 +content_margin_right = 12.0 +content_margin_bottom = 12.0 +bg_color = Color(0.2, 0.2, 0.2, 1) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 0.612, 0, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1de2m"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.333, 0.333, 0.333, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_bacd5"] +content_margin_left = 4.0 +content_margin_top = 0.0 +content_margin_right = 4.0 +content_margin_bottom = 0.0 +color = Color(0.5, 0.5, 0.5, 1) + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_k3nwn"] +content_margin_left = 4.0 +content_margin_top = 0.0 +content_margin_right = 4.0 +content_margin_bottom = 0.0 +color = Color(0.5, 0.5, 0.5, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_axpob"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.2, 0.2, 0.2, 1) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 0.612, 0, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_cl37w"] +content_margin_left = 4.0 +content_margin_top = 0.0 +content_margin_right = 4.0 +content_margin_bottom = 0.0 +color = Color(0.5, 0.5, 0.5, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_07kyi"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +bg_color = Color(0.259, 0.259, 0.259, 1) +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ouuwv"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +bg_color = Color(0.298, 0.686, 0.314, 1) +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_35dwi"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.75) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 1, 1, 0.75) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +expand_margin_left = 4.0 +expand_margin_top = 4.0 +expand_margin_right = 4.0 +expand_margin_bottom = 4.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_r3gy8"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_anjdx"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.306, 0.306, 0.306, 1) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_oxgwg"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.306, 0.306, 0.306, 0) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_songrowodd"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.306, 0.306, 0.306, 1) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_songrowhover"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.14) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_songrowplaying"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 0, 0.08) +border_width_left = 4 +border_color = Color(1, 1, 0, 1) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1tv07"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.75) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +expand_margin_left = 2.0 +expand_margin_top = 2.0 +expand_margin_right = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0ly2h"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.1, 0.1, 0.1, 0.6) +border_width_bottom = 2 +border_color = Color(0, 0, 0, 0.6) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o0qds"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.1, 0.1, 0.1, 0.3) +border_width_bottom = 2 +border_color = Color(0, 0, 0, 0.3) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ogk6w"] +content_margin_left = 8.0 +content_margin_top = 2.0 +content_margin_right = 8.0 +content_margin_bottom = 2.0 +bg_color = Color(0.2, 0.2, 0.2, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dwgvb"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.427, 0.463, 0.475, 0.76) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uoaln"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.55, 0.59, 0.6, 0.9) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_x5u8n"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.65, 0.68, 0.7, 0.9) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6fedo"] +content_margin_left = 4.0 +content_margin_top = 0.0 +content_margin_right = 4.0 +content_margin_bottom = 0.0 +bg_color = Color(0.224, 0.235, 0.255, 0.47) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8sdcv"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.75) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 +expand_margin_left = 2.0 +expand_margin_top = 2.0 +expand_margin_right = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_r3erx"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +color = Color(0.5, 0.5, 0.5, 1) +vertical = true + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2mdtn"] +bg_color = Color(0.333, 0.333, 0.333, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tabpressed"] +content_margin_left = 12.0 +content_margin_top = 4.0 +content_margin_right = 12.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 0.612, 0, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 5 +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_statscard"] +content_margin_left = 12.0 +content_margin_top = 10.0 +content_margin_right = 12.0 +content_margin_bottom = 10.0 +bg_color = Color(0.2, 0.2, 0.2, 1) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.4, 0.4, 0.4, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_statscardhover"] +content_margin_left = 12.0 +content_margin_top = 10.0 +content_margin_right = 12.0 +content_margin_bottom = 10.0 +bg_color = Color(0.24, 0.24, 0.24, 1) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(1, 0.612, 0, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playerbar"] +content_margin_left = 6.0 +content_margin_top = 4.0 +content_margin_right = 14.0 +content_margin_bottom = 4.0 +bg_color = Color(0.725, 0.725, 0.725, 1) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playerbutton"] +content_margin_left = 8.0 +content_margin_top = 8.0 +content_margin_right = 8.0 +content_margin_bottom = 8.0 +bg_color = Color(1, 1, 1, 0) +corner_radius_top_left = 17 +corner_radius_top_right = 17 +corner_radius_bottom_right = 17 +corner_radius_bottom_left = 17 +corner_detail = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playerbuttonhover"] +content_margin_left = 8.0 +content_margin_top = 8.0 +content_margin_right = 8.0 +content_margin_bottom = 8.0 +bg_color = Color(0, 0, 0, 0.12) +corner_radius_top_left = 17 +corner_radius_top_right = 17 +corner_radius_bottom_right = 17 +corner_radius_bottom_left = 17 +corner_detail = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playerbuttonpressed"] +content_margin_left = 8.0 +content_margin_top = 8.0 +content_margin_right = 8.0 +content_margin_bottom = 8.0 +bg_color = Color(0, 0, 0, 0.2) +corner_radius_top_left = 17 +corner_radius_top_right = 17 +corner_radius_bottom_right = 17 +corner_radius_bottom_left = 17 +corner_detail = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playerprimary"] +content_margin_left = 9.0 +content_margin_top = 9.0 +content_margin_right = 9.0 +content_margin_bottom = 9.0 +bg_color = Color(1, 0.612, 0, 1) +corner_radius_top_left = 17 +corner_radius_top_right = 17 +corner_radius_bottom_right = 17 +corner_radius_bottom_left = 17 +corner_detail = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playerprimaryhover"] +content_margin_left = 9.0 +content_margin_top = 9.0 +content_margin_right = 9.0 +content_margin_bottom = 9.0 +bg_color = Color(1, 0.6, 0.18, 1) +corner_radius_top_left = 17 +corner_radius_top_right = 17 +corner_radius_bottom_right = 17 +corner_radius_bottom_left = 17 +corner_detail = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playerprimarypressed"] +content_margin_left = 9.0 +content_margin_top = 9.0 +content_margin_right = 9.0 +content_margin_bottom = 9.0 +bg_color = Color(0.82, 0.4, 0, 1) +corner_radius_top_left = 17 +corner_radius_top_right = 17 +corner_radius_bottom_right = 17 +corner_radius_bottom_left = 17 +corner_detail = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playerprimarydisabled"] +content_margin_left = 9.0 +content_margin_top = 9.0 +content_margin_right = 9.0 +content_margin_bottom = 9.0 +bg_color = Color(0.4, 0.4, 0.4, 1) +corner_radius_top_left = 17 +corner_radius_top_right = 17 +corner_radius_bottom_right = 17 +corner_radius_bottom_left = 17 +corner_detail = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playertrack"] +content_margin_left = 0.0 +content_margin_top = 3.0 +content_margin_right = 0.0 +content_margin_bottom = 3.0 +bg_color = Color(0, 0, 0, 0.25) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_progressfill"] +content_margin_left = 0.0 +content_margin_top = 3.0 +content_margin_right = 0.0 +content_margin_bottom = 3.0 +bg_color = Color(1, 0.612, 0, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_progressfillhover"] +content_margin_left = 0.0 +content_margin_top = 3.0 +content_margin_right = 0.0 +content_margin_bottom = 3.0 +bg_color = Color(1, 0.62, 0.22, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_volumefill"] +content_margin_left = 0.0 +content_margin_top = 3.0 +content_margin_right = 0.0 +content_margin_bottom = 3.0 +bg_color = Color(0.2, 0.2, 0.2, 1) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_volumefillhover"] +content_margin_left = 0.0 +content_margin_top = 3.0 +content_margin_right = 0.0 +content_margin_bottom = 3.0 +bg_color = Color(0, 0, 0, 1) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_playerfocus"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_step_disabled"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.212, 0.212, 0.212, 0.5) +corner_radius_top_left = 6 +corner_radius_top_right = 6 +corner_radius_bottom_right = 6 +corner_radius_bottom_left = 6 +corner_detail = 5 +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.612, 0, 0.5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_step_hover"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.29, 0.29, 0.29, 1) +corner_radius_top_left = 6 +corner_radius_top_right = 6 +corner_radius_bottom_right = 6 +corner_radius_bottom_left = 6 +corner_detail = 5 +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_step_normal"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.212, 0.212, 0.212, 1) +corner_radius_top_left = 6 +corner_radius_top_right = 6 +corner_radius_bottom_right = 6 +corner_radius_bottom_left = 6 +corner_detail = 5 +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_step_pressed"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.15, 0.15, 0.15, 1) +corner_radius_top_left = 6 +corner_radius_top_right = 6 +corner_radius_bottom_right = 6 +corner_radius_bottom_left = 6 +corner_detail = 5 +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_playerchar"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playercharhover"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.612, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playerlist"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 8.0 +bg_color = Color(0.259, 0.259, 0.259, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_topbar"] +bg_color = Color(0.2, 0.2, 0.2, 1) + +[resource] +default_font = ExtResource("1_default_font") +Button/colors/font_color = Color(1, 0.612, 0, 1) +Button/colors/font_disabled_color = Color(1, 0.612, 0, 0.5) +Button/colors/font_focus_color = Color(1, 0.612, 0, 1) +Button/colors/font_hover_color = Color(1, 0.72, 0.3, 1) +Button/colors/font_hover_pressed_color = Color(1, 1, 1, 1) +Button/colors/font_outline_color = Color(0, 0, 0, 1) +Button/colors/font_pressed_color = Color(1, 1, 1, 1) +Button/colors/icon_disabled_color = Color(1, 1, 1, 0.4) +Button/colors/icon_focus_color = Color(1, 1, 1, 1) +Button/colors/icon_hover_color = Color(1, 1, 1, 1) +Button/colors/icon_hover_pressed_color = Color(1, 1, 1, 1) +Button/colors/icon_normal_color = Color(1, 1, 1, 1) +Button/colors/icon_pressed_color = Color(1, 1, 1, 1) +Button/constants/align_to_largest_stylebox = 0 +Button/constants/h_separation = 4 +Button/constants/icon_max_width = 0 +Button/constants/outline_size = 0 +Button/font_sizes/font_size = 16 +Button/styles/disabled = SubResource("StyleBoxFlat_vxwtt") +Button/styles/focus = SubResource("StyleBoxFlat_rjgu6") +Button/styles/hover = SubResource("StyleBoxFlat_vu6l5") +Button/styles/normal = SubResource("StyleBoxFlat_ydht1") +Button/styles/pressed = SubResource("StyleBoxFlat_8gw6x") +CharacterCard/base_type = &"Panel" +CharacterCard/styles/panel = SubResource("StyleBoxFlat_g21io") +CharacterCardHover/base_type = &"Panel" +CharacterCardHover/styles/panel = SubResource("StyleBoxFlat_charhover") +CheckButton/colors/button_checked_color = Color(1, 1, 1, 1) +CheckButton/colors/button_unchecked_color = Color(1, 1, 1, 1) +CheckButton/colors/font_color = Color(0.875, 0.875, 0.875, 1) +CheckButton/colors/font_disabled_color = Color(0.875, 0.875, 0.875, 0.5) +CheckButton/colors/font_focus_color = Color(0.95, 0.95, 0.95, 1) +CheckButton/colors/font_hover_color = Color(0.95, 0.95, 0.95, 1) +CheckButton/colors/font_hover_pressed_color = Color(1, 1, 1, 1) +CheckButton/colors/font_outline_color = Color(0, 0, 0, 1) +CheckButton/colors/font_pressed_color = Color(1, 1, 1, 1) +CheckButton/constants/check_v_offset = 0 +CheckButton/constants/h_separation = 4 +CheckButton/constants/outline_size = 0 +CheckButton/font_sizes/font_size = 16 +CheckButton/styles/disabled = SubResource("StyleBoxEmpty_7ceur") +CheckButton/styles/focus = SubResource("StyleBoxFlat_uobgu") +CheckButton/styles/hover = SubResource("StyleBoxEmpty_puucq") +CheckButton/styles/hover_pressed = SubResource("StyleBoxEmpty_1mjdo") +CheckButton/styles/normal = SubResource("StyleBoxEmpty_s5e0q") +CheckButton/styles/pressed = SubResource("StyleBoxEmpty_0x86e") +GridContainer/constants/h_separation = 4 +GridContainer/constants/v_separation = 4 +HBoxContainer/constants/separation = 4 +HScrollBar/styles/grabber = SubResource("StyleBoxFlat_7qy2x") +HScrollBar/styles/grabber_highlight = SubResource("StyleBoxFlat_myxx4") +HScrollBar/styles/grabber_pressed = SubResource("StyleBoxFlat_3kvey") +HScrollBar/styles/scroll = SubResource("StyleBoxFlat_5iri2") +HScrollBar/styles/scroll_focus = SubResource("StyleBoxFlat_3scot") +HSeparator/constants/separation = 4 +HSeparator/styles/separator = SubResource("StyleBoxLine_puicy") +HSlider/constants/center_grabber = 0 +HSlider/constants/grabber_offset = 0 +HSlider/constants/tick_offset = 0 +HSlider/styles/grabber_area = SubResource("StyleBoxFlat_quqgn") +HSlider/styles/grabber_area_highlight = SubResource("StyleBoxFlat_m01q4") +HSlider/styles/slider = SubResource("StyleBoxFlat_k36pm") +HighlightLarge/base_type = &"Label" +HighlightLarge/colors/font_color = Color(1, 0.612, 0, 1) +HighlightLarge/font_sizes/font_size = 20 +HighlightMedium/base_type = &"Label" +HighlightMedium/colors/font_color = Color(1, 0.612, 0, 1) +HighlightMedium/font_sizes/font_size = 18 +Label/colors/font_color = Color(1, 1, 1, 1) +Label/colors/font_outline_color = Color(0, 0, 0, 1) +Label/colors/font_shadow_color = Color(0, 0, 0, 0) +Label/constants/line_spacing = 3 +Label/constants/outline_size = 0 +Label/constants/shadow_offset_x = 1 +Label/constants/shadow_offset_y = 1 +Label/constants/shadow_outline_size = 1 +Label/font_sizes/font_size = 16 +Label/styles/focus = SubResource("StyleBoxFlat_6h40v") +Label/styles/normal = SubResource("StyleBoxEmpty_s47sh") +LargeButton/base_type = &"Button" +LargeButton/font_sizes/font_size = 24 +ListRowEven/base_type = &"PanelContainer" +ListRowEven/styles/panel = SubResource("StyleBoxFlat_u5sc5") +ListRowHover/base_type = &"PanelContainer" +ListRowHover/styles/panel = SubResource("StyleBoxFlat_listrowhover") +ListRowOdd/base_type = &"PanelContainer" +ListRowOdd/styles/panel = SubResource("StyleBoxFlat_mxy8k") +MarginContainer/constants/margin_bottom = 0 +MarginContainer/constants/margin_left = 0 +MarginContainer/constants/margin_right = 0 +MarginContainer/constants/margin_top = 0 +MusicList/base_type = &"PanelContainer" +MusicList/styles/panel = SubResource("StyleBoxFlat_33f1l") +OptionButton/colors/font_color = Color(1, 1, 1, 1) +OptionButton/colors/font_disabled_color = Color(0.875, 0.875, 0.875, 0.5) +OptionButton/colors/font_focus_color = Color(0.95, 0.95, 0.95, 1) +OptionButton/colors/font_hover_color = Color(0.95, 0.95, 0.95, 1) +OptionButton/colors/font_hover_pressed_color = Color(1, 1, 1, 1) +OptionButton/colors/font_outline_color = Color(0, 0, 0, 1) +OptionButton/colors/font_pressed_color = Color(1, 1, 1, 1) +OptionButton/constants/arrow_margin = 4 +OptionButton/constants/h_separation = 4 +OptionButton/constants/modulate_arrow = 0 +OptionButton/constants/outline_size = 0 +OptionButton/font_sizes/font_size = 16 +OptionButton/styles/disabled = SubResource("StyleBoxFlat_wbnll") +OptionButton/styles/disabled_mirrored = SubResource("StyleBoxFlat_bmtpa") +OptionButton/styles/focus = SubResource("StyleBoxFlat_f5lmb") +OptionButton/styles/hover = SubResource("StyleBoxFlat_qtlom") +OptionButton/styles/hover_mirrored = SubResource("StyleBoxFlat_t2i82") +OptionButton/styles/normal = SubResource("StyleBoxFlat_a4gt2") +OptionButton/styles/normal_mirrored = SubResource("StyleBoxFlat_uisqs") +OptionButton/styles/pressed = SubResource("StyleBoxFlat_dinf2") +OptionButton/styles/pressed_mirrored = SubResource("StyleBoxFlat_a0ksy") +Palette/colors/backdrop = Color(0, 0, 0, 0.6) +Panel/styles/panel = SubResource("StyleBoxFlat_hwwyi") +PanelContainer/styles/panel = SubResource("StyleBoxFlat_wl3gy") +PlayerBar/base_type = &"PanelContainer" +PlayerBar/styles/panel = SubResource("StyleBoxFlat_playerbar") +PlayerButton/base_type = &"Button" +PlayerButton/colors/icon_hover_color = Color(0, 0, 0, 1) +PlayerButton/colors/icon_hover_pressed_color = Color(0, 0, 0, 1) +PlayerButton/colors/icon_normal_color = Color(0.1, 0.1, 0.1, 1) +PlayerButton/colors/icon_pressed_color = Color(0, 0, 0, 1) +PlayerButton/styles/focus = SubResource("StyleBoxEmpty_playerfocus") +PlayerButton/styles/hover = SubResource("StyleBoxFlat_playerbuttonhover") +PlayerButton/styles/hover_pressed = SubResource("StyleBoxFlat_playerbuttonpressed") +PlayerButton/styles/normal = SubResource("StyleBoxFlat_playerbutton") +PlayerButton/styles/pressed = SubResource("StyleBoxFlat_playerbuttonpressed") +PlayerButtonPrimary/base_type = &"Button" +PlayerButtonPrimary/colors/icon_hover_color = Color(1, 1, 1, 1) +PlayerButtonPrimary/colors/icon_hover_pressed_color = Color(1, 1, 1, 1) +PlayerButtonPrimary/colors/icon_normal_color = Color(1, 1, 1, 1) +PlayerButtonPrimary/colors/icon_pressed_color = Color(1, 1, 1, 1) +PlayerButtonPrimary/styles/disabled = SubResource("StyleBoxFlat_playerprimarydisabled") +PlayerButtonPrimary/styles/focus = SubResource("StyleBoxEmpty_playerfocus") +PlayerButtonPrimary/styles/hover = SubResource("StyleBoxFlat_playerprimaryhover") +PlayerButtonPrimary/styles/hover_pressed = SubResource("StyleBoxFlat_playerprimarypressed") +PlayerButtonPrimary/styles/normal = SubResource("StyleBoxFlat_playerprimary") +PlayerButtonPrimary/styles/pressed = SubResource("StyleBoxFlat_playerprimarypressed") +PlayerTime/base_type = &"Label" +PlayerTime/colors/font_color = Color(0, 0, 0, 1) +PlayerTime/font_sizes/font_size = 18 +PlayerCharacter/base_type = &"PanelContainer" +PlayerCharacter/styles/panel = SubResource("StyleBoxEmpty_playerchar") +PlayerCharacterHover/base_type = &"PanelContainer" +PlayerCharacterHover/styles/panel = SubResource("StyleBoxFlat_playercharhover") +PlayerList/base_type = &"PanelContainer" +PlayerList/styles/panel = SubResource("StyleBoxFlat_playerlist") +PlayerScore/base_type = &"Label" +PlayerScore/font_sizes/font_size = 24 +PopupBackground/base_type = &"Panel" +PopupBackground/styles/panel = SubResource("StyleBoxFlat_vputg") +PopupMenu/colors/font_accelerator_color = Color(0.7, 0.7, 0.7, 0.8) +PopupMenu/colors/font_color = Color(0.875, 0.875, 0.875, 1) +PopupMenu/colors/font_disabled_color = Color(0.4, 0.4, 0.4, 0.8) +PopupMenu/colors/font_hover_color = Color(0.875, 0.875, 0.875, 1) +PopupMenu/colors/font_outline_color = Color(0, 0, 0, 1) +PopupMenu/colors/font_separator_color = Color(0.875, 0.875, 0.875, 1) +PopupMenu/colors/font_separator_outline_color = Color(0, 0, 0, 1) +PopupMenu/constants/gutter_compact = 1 +PopupMenu/constants/h_separation = 4 +PopupMenu/constants/icon_max_width = 0 +PopupMenu/constants/indent = 10 +PopupMenu/constants/item_end_padding = 2 +PopupMenu/constants/item_start_padding = 2 +PopupMenu/constants/outline_size = 0 +PopupMenu/constants/search_bar_separation = 4 +PopupMenu/constants/separator_outline_size = 0 +PopupMenu/constants/v_separation = 4 +PopupMenu/font_sizes/font_separator_size = 16 +PopupMenu/font_sizes/font_size = 16 +PopupMenu/styles/hover = SubResource("StyleBoxFlat_1de2m") +PopupMenu/styles/labeled_separator_left = SubResource("StyleBoxLine_bacd5") +PopupMenu/styles/labeled_separator_right = SubResource("StyleBoxLine_k3nwn") +PopupMenu/styles/panel = SubResource("StyleBoxFlat_axpob") +PopupMenu/styles/separator = SubResource("StyleBoxLine_cl37w") +PopupPanel/styles/panel = SubResource("StyleBoxFlat_vputg") +ProgressBar/colors/font_color = Color(0.95, 0.95, 0.95, 1) +ProgressBar/colors/font_outline_color = Color(0, 0, 0, 1) +ProgressBar/constants/outline_size = 0 +ProgressBar/font_sizes/font_size = 16 +ProgressBar/styles/background = SubResource("StyleBoxFlat_07kyi") +ProgressBar/styles/fill = SubResource("StyleBoxFlat_ouuwv") +ScoreGraph/colors/axis_text = Color(0.75, 0.75, 0.75, 1) +ScoreGraph/colors/grid = Color(1, 1, 1, 0.1) +ScoreGraph/colors/player_1 = Color(0.25, 0.56, 0.95, 1) +ScoreGraph/colors/player_2 = Color(0.11, 0.69, 0.48, 1) +ScoreGraph/colors/player_3 = Color(0.93, 0.76, 0.2, 1) +ScoreGraph/colors/player_4 = Color(0.91, 0.48, 0.64, 1) +ScoreGraph/colors/player_5 = Color(0.62, 0.56, 0.95, 1) +ScoreGraph/colors/player_6 = Color(0.9, 0.4, 0.4, 1) +ScoreGraph/colors/player_7 = Color(0.55, 0.8, 0.3, 1) +ScoreGraph/colors/winning_line = Color(1, 0.612, 0, 1) +ScoreGraph/constants/dot_radius = 5 +ScoreGraph/constants/line_width = 3 +ScoreGraph/font_sizes/font_size = 14 +ScrollContainer/colors/scroll_hint_horizontal_color = Color(0, 0, 0, 1) +ScrollContainer/colors/scroll_hint_vertical_color = Color(0, 0, 0, 1) +ScrollContainer/styles/focus = SubResource("StyleBoxFlat_35dwi") +ScrollContainer/styles/panel = SubResource("StyleBoxEmpty_r3gy8") +ProgressSlider/base_type = &"HSlider" +ProgressSlider/styles/grabber_area = SubResource("StyleBoxFlat_progressfill") +ProgressSlider/styles/grabber_area_highlight = SubResource("StyleBoxFlat_progressfillhover") +ProgressSlider/styles/slider = SubResource("StyleBoxFlat_playertrack") +SearchField/base_type = &"LineEdit" +SearchField/font_sizes/font_size = 28 +SearchResult/base_type = &"RichTextLabel" +SearchResult/font_sizes/normal_font_size = 22 +SettingsRowLabel/base_type = &"Label" +SettingsRowLabel/styles/normal = SubResource("StyleBoxEmpty_s5e0q") +ShortcutRowDark/base_type = &"PanelContainer" +ShortcutRowDark/styles/panel = SubResource("StyleBoxFlat_anjdx") +SongRow/base_type = &"PanelContainer" +SongRow/styles/panel = SubResource("StyleBoxFlat_oxgwg") +SongRowHover/base_type = &"PanelContainer" +SongRowHover/styles/panel = SubResource("StyleBoxFlat_songrowhover") +SongRowLabel/base_type = &"Label" +SongRowLabel/font_sizes/font_size = 20 +SongRowLabelPlaying/base_type = &"Label" +SongRowLabelPlaying/colors/font_color = Color(1, 1, 0, 1) +SongRowLabelPlaying/font_sizes/font_size = 20 +SongRowOdd/base_type = &"PanelContainer" +SongRowOdd/styles/panel = SubResource("StyleBoxFlat_songrowodd") +SongRowPictureLine/base_type = &"HBoxContainer" +SongRowPictureLine/constants/separation = 4 +SongRowPictureLines/base_type = &"VBoxContainer" +SongRowPictureLines/constants/separation = 4 +SongRowPlaying/base_type = &"PanelContainer" +SongRowPlaying/styles/panel = SubResource("StyleBoxFlat_songrowplaying") +SongStatsHeader/base_type = &"PanelContainer" +SongStatsHeader/styles/panel = SubResource("StyleBoxEmpty_songstatsheader") +SongStatsSecondary/base_type = &"RichTextLabel" +SongStatsSecondary/colors/default_color = Color(0.733, 0.733, 0.733, 1) +SongStatsSecondary/font_sizes/normal_font_size = 18 +SongStatsText/base_type = &"RichTextLabel" +SongStatsText/font_sizes/normal_font_size = 18 +StepButton/base_type = &"Button" +StepButton/styles/disabled = SubResource("StyleBoxFlat_step_disabled") +StepButton/styles/hover = SubResource("StyleBoxFlat_step_hover") +StepButton/styles/normal = SubResource("StyleBoxFlat_step_normal") +StepButton/styles/pressed = SubResource("StyleBoxFlat_step_pressed") +StatisticsCard/base_type = &"PanelContainer" +StatisticsCard/styles/panel = SubResource("StyleBoxFlat_statscard") +StatisticsCardHover/base_type = &"PanelContainer" +StatisticsCardHover/styles/panel = SubResource("StyleBoxFlat_statscardhover") +StatisticsGrid/base_type = &"GridContainer" +StatisticsGrid/constants/h_separation = 16 +StatisticsGrid/constants/v_separation = 16 +TabButton/base_type = &"Button" +TabButton/styles/hover_pressed = SubResource("StyleBoxFlat_tabpressed") +TabButton/styles/pressed = SubResource("StyleBoxFlat_tabpressed") +TextEdit/colors/background_color = Color(0, 0, 0, 0) +TextEdit/colors/caret_background_color = Color(0, 0, 0, 1) +TextEdit/colors/caret_color = Color(0.875, 0.875, 0.875, 1) +TextEdit/colors/current_line_color = Color(0.25, 0.25, 0.26, 0.8) +TextEdit/colors/font_color = Color(0.875, 0.875, 0.875, 1) +TextEdit/colors/font_outline_color = Color(0, 0, 0, 1) +TextEdit/colors/font_placeholder_color = Color(0.875, 0.875, 0.875, 0.6) +TextEdit/colors/font_readonly_color = Color(0.875, 0.875, 0.875, 0.5) +TextEdit/colors/font_selected_color = Color(0, 0, 0, 0) +TextEdit/colors/search_result_border_color = Color(0.3, 0.3, 0.3, 0.4) +TextEdit/colors/search_result_color = Color(0.3, 0.3, 0.3, 1) +TextEdit/colors/selection_color = Color(0.5, 0.5, 0.5, 1) +TextEdit/colors/word_highlighted_color = Color(0.5, 0.5, 0.5, 0.25) +TextEdit/constants/caret_width = 1 +TextEdit/constants/line_spacing = 4 +TextEdit/constants/outline_size = 0 +TextEdit/constants/wrap_offset = 10 +TextEdit/font_sizes/font_size = 16 +TextEdit/styles/focus = SubResource("StyleBoxFlat_1tv07") +TextEdit/styles/normal = SubResource("StyleBoxFlat_0ly2h") +TextEdit/styles/read_only = SubResource("StyleBoxFlat_o0qds") +TextLarge/base_type = &"Label" +TextLarge/font_sizes/font_size = 20 +TextMedium/base_type = &"Label" +TextMedium/font_sizes/font_size = 18 +Title/base_type = &"Label" +Title/font_sizes/font_size = 25 +TitleLarge/base_type = &"Label" +TitleLarge/font_sizes/font_size = 50 +TitleMedium/base_type = &"Label" +TitleMedium/font_sizes/font_size = 35 +TopBarBackground/base_type = &"PanelContainer" +TopBarBackground/styles/panel = SubResource("StyleBoxFlat_topbar") +TooltipLabel/colors/font_color = Color(0.875, 0.875, 0.875, 1) +TooltipLabel/colors/font_outline_color = Color(0, 0, 0, 1) +TooltipLabel/colors/font_shadow_color = Color(0, 0, 0, 0) +TooltipLabel/constants/outline_size = 0 +TooltipLabel/constants/shadow_offset_x = 1 +TooltipLabel/constants/shadow_offset_y = 1 +TooltipLabel/font_sizes/font_size = 16 +TooltipPanel/styles/panel = SubResource("StyleBoxFlat_ogk6w") +VBoxContainer/constants/separation = 4 +VScrollBar/styles/grabber = SubResource("StyleBoxFlat_dwgvb") +VScrollBar/styles/grabber_highlight = SubResource("StyleBoxFlat_uoaln") +VScrollBar/styles/grabber_pressed = SubResource("StyleBoxFlat_x5u8n") +VScrollBar/styles/scroll = SubResource("StyleBoxFlat_6fedo") +VScrollBar/styles/scroll_focus = SubResource("StyleBoxFlat_8sdcv") +VSeparator/constants/separation = 4 +VSeparator/styles/separator = SubResource("StyleBoxLine_r3erx") +VolumeBar/base_type = &"HSlider" +VolumeBar/styles/grabber_area = SubResource("StyleBoxFlat_volumefill") +VolumeBar/styles/grabber_area_highlight = SubResource("StyleBoxFlat_volumefillhover") +VolumeBar/styles/slider = SubResource("StyleBoxFlat_playertrack") +WindowBackground/base_type = &"Panel" +WindowBackground/styles/panel = SubResource("StyleBoxFlat_2mdtn") +TitleLarge/colors/font_color = Color(1, 0.533, 0, 1) +TitleMedium/colors/font_color = Color(1, 0.533, 0, 1) diff --git a/tools/take_screenshots.gd b/tools/take_screenshots.gd index 7c60034..2c31245 100644 --- a/tools/take_screenshots.gd +++ b/tools/take_screenshots.gd @@ -3,6 +3,7 @@ extends SceneTree ## ## Usage: ## MUSICPLAYER_CONFIG_DIR=$(mktemp -d) godot --path . -s tools/take_screenshots.gd -- +## [] ## ## Setting [code]MUSICPLAYER_CONFIG_DIR[/code] keeps your saved quiz settings out of the ## pictures. @@ -10,6 +11,9 @@ extends SceneTree ## Writes [code].png[/code] for each state and [code]layout.json[/code] with where ## every node is in each state. With [code]--headless[/code] only the layout is written. ## Compare two runs with [code]tools/compare_screenshots.py[/code]. +## +## The pictures use the default theme, or the theme with the given id from +## [code]Settings.THEMES[/code], e.g. [code]original_web[/code]. const SIZE: Vector2i = Vector2i(1920, 1080) @@ -37,6 +41,10 @@ func _take() -> void: viewport.render_target_update_mode = SubViewport.UPDATE_ALWAYS root.add_child(viewport) var main: Control = load("res://main/MainWindow.tscn").instantiate() + if args.size() > 1: + # The game sets the root window's theme, which the viewport here is not under + var settings: Node = root.get_node("Settings") + main.theme = load(settings.theme_entry(args[1]).path) viewport.add_child(main) var layout: Dictionary = {}