diff --git a/Output/Languages/en.xml b/Output/Languages/en.xml
index 843c0905..6bd3e7ed 100644
--- a/Output/Languages/en.xml
+++ b/Output/Languages/en.xml
@@ -294,6 +294,7 @@
Song-menu style
Song sorting
Tabs
+ Tile caption
Autoplay song previews
Game difficulty
Timer mode
@@ -309,6 +310,8 @@
Player 6
Mic delay
Warning: At least one player is assigned to two mics.
+ Warning: Several players are assigned to the same channel, only one of them will be used.
+ Warning: No microphone found.
Delay test
Sound Options
Background music
@@ -336,6 +339,9 @@
Fullscreen
Stretched
Server Options
+ Song Folders
+ Add folder
+ No song folders configured. The Songs folder of the program is used.
Server active
Server encryption
Server address
diff --git a/Output/Themes/Changelog/Changelog_ScreenOptions.txt b/Output/Themes/Changelog/Changelog_ScreenOptions.txt
deleted file mode 100644
index 5ec52d6a..00000000
--- a/Output/Themes/Changelog/Changelog_ScreenOptions.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-ScreenOptions
-
-++++++++++
-Version 4:
-(2026 Mar 28)
-
-Add:
-Grahpics Button
-Server Button
-Song Folder Button
-
-++++++++++
-Version 3:
-(2025 Jan 13)
-
-Add:
-Back Button
-
-++++++++++
-Version 2:
-(2024 Nov 24)
-
-Add:
-Credits Button
-
-++++++++++
-Version 1:
-(2023 Dec 31)
-
-Add:
-
diff --git a/Output/Themes/Changelog/Changelog_ScreenOptionsGame.txt b/Output/Themes/Changelog/Changelog_ScreenOptionsGame.txt
index 782fc40a..6b9c4fe8 100644
--- a/Output/Themes/Changelog/Changelog_ScreenOptionsGame.txt
+++ b/Output/Themes/Changelog/Changelog_ScreenOptionsGame.txt
@@ -1,5 +1,24 @@
ScreenOptionsGame
+++++++++++
+Version 7:
+(2026 Oct 18)
+
+Add:
+
+ (only selectable when the song menu is set to tiles)
+
+Add (optional, the screen works without them):
+ background of the navigation
+, , for Game, Sound, Record, Video, Lyrics, Theme, Graphics, Server, SongFolders and Credits (navigation tiles, can be clicked, Tab switches to the next category, Escape moves the focus to the navigation and leaves the screen from there, the navigation is focused when the options are opened from the main menu)
+, , templates for the tile of the current category (only skin and colors are used, like the tiles in ScreenParty)
+ background of the settings
+
+Change:
+Positions and sizes of all texts and select slides
+ of the select slides is OptionsSlideSelected (selection color instead of dark background)
+
+++++++++++
Version 6:
Remove:
diff --git a/Output/Themes/Changelog/Changelog_ScreenOptionsGraphics.txt b/Output/Themes/Changelog/Changelog_ScreenOptionsGraphics.txt
index f0f45f08..019e4849 100644
--- a/Output/Themes/Changelog/Changelog_ScreenOptionsGraphics.txt
+++ b/Output/Themes/Changelog/Changelog_ScreenOptionsGraphics.txt
@@ -1,5 +1,20 @@
ScreenOptionsGraphics
+++++++++++
+Version 2:
+(2026 Oct 18)
+
+Add (optional, the screen works without them):
+ background of the navigation
+, , for Game, Sound, Record, Video, Lyrics, Theme, Graphics, Server, SongFolders and Credits (navigation tiles, can be clicked, Tab switches to the next category, Escape moves the focus to the navigation and leaves the screen from there, the navigation is focused when the options are opened from the main menu)
+, , templates for the tile of the current category (only skin and colors are used, like the tiles in ScreenParty)
+ background of the settings
+
+Change:
+Positions and sizes of all texts and select slides
+ of the select slides is OptionsSlideSelected (selection color instead of dark background)
+The warning is centered below the settings background
+
++++++++++
Version 1:
diff --git a/Output/Themes/Changelog/Changelog_ScreenOptionsLyrics.txt b/Output/Themes/Changelog/Changelog_ScreenOptionsLyrics.txt
index 70269b7c..49875bde 100644
--- a/Output/Themes/Changelog/Changelog_ScreenOptionsLyrics.txt
+++ b/Output/Themes/Changelog/Changelog_ScreenOptionsLyrics.txt
@@ -1,5 +1,19 @@
ScreenOptionsLyrics
+++++++++++
+Version 5:
+(2026 Oct 18)
+
+Add (optional, the screen works without them):
+ background of the navigation
+, , for Game, Sound, Record, Video, Lyrics, Theme, Graphics, Server, SongFolders and Credits (navigation tiles, can be clicked, Tab switches to the next category, Escape moves the focus to the navigation and leaves the screen from there, the navigation is focused when the options are opened from the main menu)
+, , templates for the tile of the current category (only skin and colors are used, like the tiles in ScreenParty)
+ background of the settings
+
+Change:
+Positions and sizes of all texts and select slides
+ of the select slides is OptionsSlideSelected (selection color instead of dark background)
+
++++++++++
Version 4:
Remove Graphics Options
diff --git a/Output/Themes/Changelog/Changelog_ScreenOptionsRecord.txt b/Output/Themes/Changelog/Changelog_ScreenOptionsRecord.txt
index b41f8990..a936a01d 100644
--- a/Output/Themes/Changelog/Changelog_ScreenOptionsRecord.txt
+++ b/Output/Themes/Changelog/Changelog_ScreenOptionsRecord.txt
@@ -1,5 +1,21 @@
ScreenOptionsRecord
+++++++++++
+Version 6:
+(2026 Oct 18)
+
+Add (optional, the screen works without them):
+ background of the navigation
+, , for Game, Sound, Record, Video, Lyrics, Theme, Graphics, Server, SongFolders and Credits (navigation tiles, can be clicked, Tab switches to the next category, Escape moves the focus to the navigation and leaves the screen from there, the navigation is focused when the options are opened from the main menu)
+, , templates for the tile of the current category (only skin and colors are used, like the tiles in ScreenParty)
+ background of the settings
+
+Change:
+Positions and sizes of all texts and select slides
+ of the select slides is OptionsSlideSelected (selection color instead of dark background)
+The action button is placed at the bottom right of the settings background
+The warning is centered below the settings background
+
++++++++++
Version 2:
diff --git a/Output/Themes/Changelog/Changelog_ScreenOptionsServer.txt b/Output/Themes/Changelog/Changelog_ScreenOptionsServer.txt
index 8b3adb58..51046552 100644
--- a/Output/Themes/Changelog/Changelog_ScreenOptionsServer.txt
+++ b/Output/Themes/Changelog/Changelog_ScreenOptionsServer.txt
@@ -1,5 +1,21 @@
ScreenOptionsServer
+++++++++++
+Version 2:
+(2026 Oct 18)
+
+Add (optional, the screen works without them):
+ background of the navigation
+, , for Game, Sound, Record, Video, Lyrics, Theme, Graphics, Server, SongFolders and Credits (navigation tiles, can be clicked, Tab switches to the next category, Escape moves the focus to the navigation and leaves the screen from there, the navigation is focused when the options are opened from the main menu)
+, , templates for the tile of the current category (only skin and colors are used, like the tiles in ScreenParty)
+ background of the settings
+
+Change:
+Positions and sizes of all texts and select slides
+ of the select slides is OptionsSlideSelected (selection color instead of dark background)
+The action button is placed at the bottom right of the settings background
+The warning is centered below the settings background
+
++++++++++
Version 1:
diff --git a/Output/Themes/Changelog/Changelog_ScreenOptionsSongFolders.txt b/Output/Themes/Changelog/Changelog_ScreenOptionsSongFolders.txt
new file mode 100644
index 00000000..f490bf8d
--- /dev/null
+++ b/Output/Themes/Changelog/Changelog_ScreenOptionsSongFolders.txt
@@ -0,0 +1,36 @@
+ScreenOptionsSongFolders
+
+++++++++++
+Version 3:
+(2026 Oct 18)
+
+Add:
+ and (only visible with more than 8 folders, the thumb uses X, W and Z of its rect, Y and H follow the scroll position, click or drag on the bar to scroll)
+
+Remove:
+,
+
+++++++++++
+Version 2:
+(2026 Oct 18)
+
+Add (optional, the screen works without them):
+ background of the navigation
+, , for Game, Sound, Record, Video, Lyrics, Theme, Graphics, Server, SongFolders and Credits (navigation tiles, can be clicked, Tab switches to the next category, Escape moves the focus to the navigation and leaves the screen from there, the navigation is focused when the options are opened from the main menu)
+, , templates for the tile of the current category (only skin and colors are used, like the tiles in ScreenParty)
+ background of the settings
+
+Change:
+Positions and sizes of all folder rows, buttons and texts
+ without background
+The add button is placed at the bottom right of the settings background
+The warning is centered below the settings background
+
+++++++++++
+Version 1:
+(2026 Oct 18)
+
+New screen to manage the song folders, opened with in ScreenOptions:
+ to , to , to (one row per folder)
+, (only visible with more than 8 folders)
+, , , ,
diff --git a/Output/Themes/Changelog/Changelog_ScreenOptionsSound.txt b/Output/Themes/Changelog/Changelog_ScreenOptionsSound.txt
index dbbb1efc..3604512c 100644
--- a/Output/Themes/Changelog/Changelog_ScreenOptionsSound.txt
+++ b/Output/Themes/Changelog/Changelog_ScreenOptionsSound.txt
@@ -1,5 +1,19 @@
ScreenOptionsSound
+++++++++++
+Version 6:
+(2026 Oct 18)
+
+Add (optional, the screen works without them):
+ background of the navigation
+, , for Game, Sound, Record, Video, Lyrics, Theme, Graphics, Server, SongFolders and Credits (navigation tiles, can be clicked, Tab switches to the next category, Escape moves the focus to the navigation and leaves the screen from there, the navigation is focused when the options are opened from the main menu)
+, , templates for the tile of the current category (only skin and colors are used, like the tiles in ScreenParty)
+ background of the settings
+
+Change:
+Positions and sizes of all texts and select slides
+ of the select slides is OptionsSlideSelected (selection color instead of dark background)
+
++++++++++
Version 5:
diff --git a/Output/Themes/Changelog/Changelog_ScreenOptionsTheme.txt b/Output/Themes/Changelog/Changelog_ScreenOptionsTheme.txt
index a8c28341..d47469f9 100644
--- a/Output/Themes/Changelog/Changelog_ScreenOptionsTheme.txt
+++ b/Output/Themes/Changelog/Changelog_ScreenOptionsTheme.txt
@@ -1,5 +1,19 @@
ScreenOptionsTheme
+++++++++++
+Version 4:
+(2026 Oct 18)
+
+Add (optional, the screen works without them):
+ background of the navigation
+, , for Game, Sound, Record, Video, Lyrics, Theme, Graphics, Server, SongFolders and Credits (navigation tiles, can be clicked, Tab switches to the next category, Escape moves the focus to the navigation and leaves the screen from there, the navigation is focused when the options are opened from the main menu)
+, , templates for the tile of the current category (only skin and colors are used, like the tiles in ScreenParty)
+ background of the settings
+
+Change:
+Positions and sizes of all texts and select slides
+ of the select slides is OptionsSlideSelected (selection color instead of dark background)
+
++++++++++
Version 3:
diff --git a/Output/Themes/Changelog/Changelog_ScreenOptionsVideo.txt b/Output/Themes/Changelog/Changelog_ScreenOptionsVideo.txt
index 9e8d37df..4d6a68e1 100644
--- a/Output/Themes/Changelog/Changelog_ScreenOptionsVideo.txt
+++ b/Output/Themes/Changelog/Changelog_ScreenOptionsVideo.txt
@@ -1,3 +1,19 @@
+++++++++++
+Version 6:
+(2026 Oct 18)
+
+Add (optional, the screen works without them):
+ background of the navigation
+, , for Game, Sound, Record, Video, Lyrics, Theme, Graphics, Server, SongFolders and Credits (navigation tiles, can be clicked, Tab switches to the next category, Escape moves the focus to the navigation and leaves the screen from there, the navigation is focused when the options are opened from the main menu)
+, , templates for the tile of the current category (only skin and colors are used, like the tiles in ScreenParty)
+ background of the settings
+
+Change:
+Positions and sizes of all texts and select slides
+ of the select slides is OptionsSlideSelected (selection color instead of dark background)
+The action button is placed at the bottom right of the settings background
+ is centered at the bottom of the settings background
+
++++++++++
Version 5:
diff --git a/Output/Themes/Changelog/Changelog_SkinSystem.txt b/Output/Themes/Changelog/Changelog_SkinSystem.txt
index 41b5d672..e6d22094 100644
--- a/Output/Themes/Changelog/Changelog_SkinSystem.txt
+++ b/Output/Themes/Changelog/Changelog_SkinSystem.txt
@@ -3,6 +3,7 @@ Skin System
++++++++++
Version 4:
All Colors in (Playercolors and ColorSchemes)
+Optional textures for the options screens: OptionsIconGame, OptionsIconSound, OptionsIconLyrics, OptionsIconTheme, OptionsIconGraphics, OptionsIconServer, OptionsIconSongFolders, OptionsNavBackground, OptionsSlideSelected, OptionsNavSelected
++++++++++
Version 3:
diff --git a/Output/Themes/Vocaluxe 2024/01_Standard.xml b/Output/Themes/Vocaluxe 2024/01_Standard.xml
index 270ff459..97701e06 100644
--- a/Output/Themes/Vocaluxe 2024/01_Standard.xml
+++ b/Output/Themes/Vocaluxe 2024/01_Standard.xml
@@ -419,6 +419,16 @@
Warning.png
PlayerSelBG.png
CalibrationBG.png
+ OptionsIconGame.png
+ OptionsIconSound.png
+ OptionsIconLyrics.png
+ OptionsIconTheme.png
+ OptionsIconGraphics.png
+ OptionsIconServer.png
+ OptionsIconSongFolders.png
+ OptionsNavBackground.png
+ OptionsSlideSelected.png
+ OptionsNavSelected.png
BG_Video.mp4
diff --git a/Output/Themes/Vocaluxe 2024/02.xml b/Output/Themes/Vocaluxe 2024/02.xml
index 0808a147..55d6f8b4 100644
--- a/Output/Themes/Vocaluxe 2024/02.xml
+++ b/Output/Themes/Vocaluxe 2024/02.xml
@@ -418,6 +418,16 @@
Warning.png
PlayerSelBG.png
CalibrationBG.png
+ OptionsIconGame.png
+ OptionsIconSound.png
+ OptionsIconLyrics.png
+ OptionsIconTheme.png
+ OptionsIconGraphics.png
+ OptionsIconServer.png
+ OptionsIconSongFolders.png
+ OptionsNavBackground.png
+ OptionsSlideSelected.png
+ OptionsNavSelected.png
BG_Video_2.mp4
diff --git a/Output/Themes/Vocaluxe 2024/03.xml b/Output/Themes/Vocaluxe 2024/03.xml
index f11d5049..31a8fcaf 100644
--- a/Output/Themes/Vocaluxe 2024/03.xml
+++ b/Output/Themes/Vocaluxe 2024/03.xml
@@ -418,6 +418,16 @@
Warning.png
PlayerSelBG.png
CalibrationBG.png
+ OptionsIconGame.png
+ OptionsIconSound.png
+ OptionsIconLyrics.png
+ OptionsIconTheme.png
+ OptionsIconGraphics.png
+ OptionsIconServer.png
+ OptionsIconSongFolders.png
+ OptionsNavBackground.png
+ OptionsSlideSelected.png
+ OptionsNavSelected.png
BG_Video_3.mp4
diff --git a/Output/Themes/Vocaluxe 2024/04.xml b/Output/Themes/Vocaluxe 2024/04.xml
index 485c1996..b5d1cef8 100644
--- a/Output/Themes/Vocaluxe 2024/04.xml
+++ b/Output/Themes/Vocaluxe 2024/04.xml
@@ -418,6 +418,16 @@
Warning.png
PlayerSelBG.png
CalibrationBG.png
+ OptionsIconGame.png
+ OptionsIconSound.png
+ OptionsIconLyrics.png
+ OptionsIconTheme.png
+ OptionsIconGraphics.png
+ OptionsIconServer.png
+ OptionsIconSongFolders.png
+ OptionsNavBackground.png
+ OptionsSlideSelected.png
+ OptionsNavSelected.png
BG_Video_4.mp4
diff --git a/Output/Themes/Vocaluxe 2024/05.xml b/Output/Themes/Vocaluxe 2024/05.xml
index 33561669..27fd4ca8 100644
--- a/Output/Themes/Vocaluxe 2024/05.xml
+++ b/Output/Themes/Vocaluxe 2024/05.xml
@@ -418,6 +418,16 @@
Warning.png
PlayerSelBG.png
CalibrationBG.png
+ OptionsIconGame.png
+ OptionsIconSound.png
+ OptionsIconLyrics.png
+ OptionsIconTheme.png
+ OptionsIconGraphics.png
+ OptionsIconServer.png
+ OptionsIconSongFolders.png
+ OptionsNavBackground.png
+ OptionsSlideSelected.png
+ OptionsNavSelected.png
BG_Video_5.mp4
diff --git a/Output/Themes/Vocaluxe 2024/06.xml b/Output/Themes/Vocaluxe 2024/06.xml
index 7dae9e6a..93f06dfe 100644
--- a/Output/Themes/Vocaluxe 2024/06.xml
+++ b/Output/Themes/Vocaluxe 2024/06.xml
@@ -418,6 +418,16 @@
Warning.png
PlayerSelBG.png
CalibrationBG.png
+ OptionsIconGame.png
+ OptionsIconSound.png
+ OptionsIconLyrics.png
+ OptionsIconTheme.png
+ OptionsIconGraphics.png
+ OptionsIconServer.png
+ OptionsIconSongFolders.png
+ OptionsNavBackground.png
+ OptionsSlideSelected.png
+ OptionsNavSelected.png
BG_Video_6.mp4
diff --git a/Output/Themes/Vocaluxe 2024/OptionsIconGame.png b/Output/Themes/Vocaluxe 2024/OptionsIconGame.png
new file mode 100644
index 00000000..c9ae0118
Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/OptionsIconGame.png differ
diff --git a/Output/Themes/Vocaluxe 2024/OptionsIconGraphics.png b/Output/Themes/Vocaluxe 2024/OptionsIconGraphics.png
new file mode 100644
index 00000000..ff5d24e2
Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/OptionsIconGraphics.png differ
diff --git a/Output/Themes/Vocaluxe 2024/OptionsIconLyrics.png b/Output/Themes/Vocaluxe 2024/OptionsIconLyrics.png
new file mode 100644
index 00000000..8a1d3890
Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/OptionsIconLyrics.png differ
diff --git a/Output/Themes/Vocaluxe 2024/OptionsIconServer.png b/Output/Themes/Vocaluxe 2024/OptionsIconServer.png
new file mode 100644
index 00000000..78c5d270
Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/OptionsIconServer.png differ
diff --git a/Output/Themes/Vocaluxe 2024/OptionsIconSongFolders.png b/Output/Themes/Vocaluxe 2024/OptionsIconSongFolders.png
new file mode 100644
index 00000000..459e934a
Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/OptionsIconSongFolders.png differ
diff --git a/Output/Themes/Vocaluxe 2024/OptionsIconSound.png b/Output/Themes/Vocaluxe 2024/OptionsIconSound.png
new file mode 100644
index 00000000..3f44695b
Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/OptionsIconSound.png differ
diff --git a/Output/Themes/Vocaluxe 2024/OptionsIconTheme.png b/Output/Themes/Vocaluxe 2024/OptionsIconTheme.png
new file mode 100644
index 00000000..2916aff9
Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/OptionsIconTheme.png differ
diff --git a/Output/Themes/Vocaluxe 2024/OptionsNavBackground.png b/Output/Themes/Vocaluxe 2024/OptionsNavBackground.png
new file mode 100644
index 00000000..ef28b6e3
Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/OptionsNavBackground.png differ
diff --git a/Output/Themes/Vocaluxe 2024/OptionsNavSelected.png b/Output/Themes/Vocaluxe 2024/OptionsNavSelected.png
new file mode 100644
index 00000000..95634069
Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/OptionsNavSelected.png differ
diff --git a/Output/Themes/Vocaluxe 2024/OptionsSlideSelected.png b/Output/Themes/Vocaluxe 2024/OptionsSlideSelected.png
new file mode 100644
index 00000000..9dee3dad
Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/OptionsSlideSelected.png differ
diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptions.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptions.xml
deleted file mode 100644
index cbd3c331..00000000
--- a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptions.xml
+++ /dev/null
@@ -1,412 +0,0 @@
-
-
-
- ScreenOptions
- 4
-
-
-
- Video
-
- BG_Video
- BG_Default
-
-
-
-
-
- LogoMain
-
-
- 435
- 265.5
- 1110
- 202.5
- 0
-
-
-
- Warning
-
-
- 695
- 700
- 1140
- 75
- -1
-
-
-
-
-
- 1265
- 720
- -1.1
- 37.5
- 960
-
-
- Center
- Center
-
- Outline
- TR_SCREENO_WARNINGRESTART
-
-
-
-
- Button
- Button
-
- 81.43
- 900
- 225
- 75
- 0
-
-
-
-
- 112.5
- 18
- 0
- 40.5
- 213
-
-
- Center
- Center
-
- Outline
- TR_BUTTON_BACK
-
-
- 39
- 15
-
-
- 39
- 15
-
-
-
- Button
- Button
-
- 387.85
- 900
- 225
- 75
- 0
-
-
-
-
- 112.5
- 18
- 0
- 40.5
- 213
-
-
- Center
- Center
-
- Outline
- TR_SCREENO_BUTTON_GAME
-
-
- 39
- 15
-
-
- 39
- 15
-
-
-
- Button
- Button
-
- 694.27
- 900
- 225
- 75
- 0
-
-
-
-
- 112.5
- 18
- 0
- 40.5
- 213
-
-
- Center
- Center
-
- Outline
- TR_SCREENO_BUTTON_SOUND
-
-
- 39
- 15
-
-
- 39
- 15
-
-
-
- Button
- Button
-
- 1000.69
- 900
- 225
- 75
- 0
-
-
-
-
- 112.5
- 18
- 0
- 40.5
- 213
-
-
- Center
- Center
-
- Outline
- TR_SCREENO_BUTTON_RECORD
-
-
- 39
- 15
-
-
- 39
- 15
-
-
-
- Button
- Button
-
- 387.85
- 800
- 225
- 75
- 0
-
-
-
-
- 112.5
- 18
- 0
- 40.5
- 213
-
-
- Center
- Center
-
- Outline
- TR_SCREENO_BUTTON_VIDEO
-
-
-
- Button
- Button
-
- 1307.11
- 900
- 225
- 75
- 0
-
-
-
-
- 112.5
- 18
- 0
- 40.5
- 213
-
-
- Center
- Center
-
- Outline
- TR_SCREENO_BUTTON_LYRICS
-
-
- 39
- 15
-
-
- 39
- 15
-
-
-
- Button
- Button
-
- 1000.69
- 800
- 225
- 75
- 0
-
-
-
-
- 112.5
- 18
- 0
- 40.5
- 213
-
-
- Center
- Center
-
- Outline
- TR_SCREENO_BUTTON_THEME
-
-
-
- Button
- Button
-
- 1613.53
- 800
- 225
- 75
- 0
-
-
-
-
- 112.5
- 18
- 0
- 40.5
- 213
-
-
- Center
- Center
-
- Outline
- TR_SCREENO_BUTTON_CREDITS
-
-
-
- Button
- Button
-
- 694.27
- 800
- 225
- 75
- 0
-
-
-
-
- 112.5
- 18
- 0
- 40.5
- 213
-
-
- Center
- Center
-
- Outline
- TR_SCREENO_BUTTON_GRAPHICS
-
-
-
- Button
- Button
-
- 1307.11
- 800
- 225
- 75
- 0
-
-
-
-
- 112.5
- 18
- 0
- 40.5
- 213
-
-
- Center
- Center
-
- Outline
- TR_SCREENO_BUTTON_SERVER
-
-
-
- Button
- Button
-
- 1613.53
- 900
- 225
- 75
- 0
-
-
-
-
- 112.5
- 18
- 0
- 40.5
- 213
-
-
- Center
- Center
-
- Outline
- TR_SCREENO_BUTTON_SONGFOLDER
-
-
- 39
- 15
-
-
- 39
- 15
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsGame.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsGame.xml
index 49bd6726..33083c48 100644
--- a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsGame.xml
+++ b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsGame.xml
@@ -2,7 +2,7 @@
ScreenOptionsGame
- 6
+ 7
@@ -25,6 +25,270 @@
1
+
+ OptionsNavBackground
+
+
+ 45
+ 150
+ 375
+ 735
+ 0.3
+
+
+
+ ButtonTile
+
+
+ 60
+ 162
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGame
+
+
+ 75
+ 171
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 233.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSound
+
+
+ 75
+ 242.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 305
+ 345
+ 62
+ 0.2
+
+
+
+ SingIcon
+
+
+ 75
+ 314
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 376.5
+ 345
+ 62
+ 0.2
+
+
+
+ VideoIcon
+
+
+ 75
+ 385.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 448
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconLyrics
+
+
+ 75
+ 457
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 519.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconTheme
+
+
+ 75
+ 528.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 591
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGraphics
+
+
+ 75
+ 600
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 662.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconServer
+
+
+ 75
+ 671.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 734
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSongFolders
+
+
+ 75
+ 743
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 805.5
+ 345
+ 62
+ 0.2
+
+
+
+ Star
+
+
+ 75
+ 814.5
+ 44
+ 44
+ 0.1
+
+
+
+ OptionsNavSelected
+
+
+ 0
+ 0
+ 345
+ 62
+ 0.15
+
+
+
+
+
+
+ 0
+ 0
+ 44
+ 44
+ 0.1
+
+
+
+ CoverTextBackground
+
+
+ 435
+ 150
+ 1440
+ 735
+ 0.3
+
+
@@ -42,11 +306,11 @@
TR_SCREENOGAME_OPTIONS
- 112.5
- 160.5
+ 465
+ 181.75
0
40.5
- 0
+ 480
Left
@@ -56,11 +320,11 @@
TR_SCREENOGAME_LANGUAGE
- 112.5
- 250.5
+ 465
+ 259.31
0
40.5
- 0
+ 480
Left
@@ -70,11 +334,11 @@
TR_SCREENOGAME_DEBUGLEVEL
- 112.5
- 340.5
+ 465
+ 336.86
0
40.5
- 0
+ 480
Left
@@ -84,11 +348,11 @@
TR_SCREENOGAME_SONGMENU
- 112.5
- 430.5
+ 465
+ 491.97
0
40.5
- 0
+ 480
Left
@@ -98,11 +362,11 @@
TR_SCREENOGAME_SONGSORTING
- 112.5
- 520.5
+ 465
+ 569.53
0
40.5
- 0
+ 480
Left
@@ -111,12 +375,26 @@
Outline
TR_SCREENOGAME_TABS
-
- 112.5
- 610.5
+
+ 465
+ 414.42
0
40.5
- 0
+ 480
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENOGAME_TILECAPTION
+
+
+ 465
+ 647.08
+ 0
+ 40.5
+ 480
Left
@@ -126,11 +404,11 @@
TR_SCREENOGAME_AUTOPLAYPREVIEWS
- 112.5
- 700.5
+ 465
+ 724.64
0
40.5
- 0
+ 480
Left
@@ -140,11 +418,11 @@
TR_SCREENOGAME_TIMERMODE
- 112.5
- 790.5
+ 465
+ 802.19
0
40.5
- 0
+ 480
Left
@@ -153,6 +431,160 @@
Outline
TR_SCREENOGAME_HIGHSCORESTYLE
+
+ 135
+ 173
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GAME
+
+
+ 135
+ 244.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SOUND
+
+
+ 135
+ 316
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_RECORD
+
+
+ 135
+ 387.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_VIDEO
+
+
+ 135
+ 459
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_LYRICS
+
+
+ 135
+ 530.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_THEME
+
+
+ 135
+ 602
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GRAPHICS
+
+
+ 135
+ 673.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SERVER
+
+
+ 135
+ 745
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SONGFOLDER
+
+
+ 135
+ 816.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_CREDITS
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+
+
@@ -198,28 +630,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 150
- 1072.5
- 75
+ 965
+ 172
+ 890
+ 60
0
- 757.5
- 157.5
- 60
- 60
+ 971
+ 178
+ 48
+ 48
0
- 1755
- 157.5
- 60
- 60
+ 1801
+ 178
+ 48
+ 48
0
@@ -228,10 +660,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -240,28 +672,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 240
- 1072.5
- 75
+ 965
+ 249.56
+ 890
+ 60
0
- 757.5
- 247.5
- 60
- 60
+ 971
+ 255.56
+ 48
+ 48
0
- 1755
- 247.5
- 60
- 60
+ 1801
+ 255.56
+ 48
+ 48
0
@@ -270,10 +702,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -282,28 +714,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 330
- 1072.5
- 75
+ 965
+ 327.11
+ 890
+ 60
0
- 757.5
- 337.5
- 60
- 60
+ 971
+ 333.11
+ 48
+ 48
0
- 1755
- 337.5
- 60
- 60
+ 1801
+ 333.11
+ 48
+ 48
0
@@ -312,10 +744,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -324,28 +756,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 420
- 1072.5
- 75
+ 965
+ 482.22
+ 890
+ 60
0
- 757.5
- 427.5
- 60
- 60
+ 971
+ 488.22
+ 48
+ 48
0
- 1755
- 427.5
- 60
- 60
+ 1801
+ 488.22
+ 48
+ 48
0
@@ -354,10 +786,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -366,28 +798,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 510
- 1072.5
- 75
+ 965
+ 559.78
+ 890
+ 60
0
- 757.5
- 517.5
- 60
- 60
+ 971
+ 565.78
+ 48
+ 48
0
- 1755
- 517.5
- 60
- 60
+ 1801
+ 565.78
+ 48
+ 48
0
@@ -396,10 +828,52 @@
- 40.5
- 75
+ 36
+ 60
0
- 462
+ 375
+ Outline
+ Bold
+ 2
+
+
+
+ SelectSlideArrowLeft
+ SelectSlideArrowRight
+ OptionsSlideSelected
+ SelectSlideArrowLeft
+ SelectSlideArrowRight
+
+ 965
+ 404.67
+ 890
+ 60
+ 0
+
+
+ 971
+ 410.67
+ 48
+ 48
+ 0
+
+
+ 1801
+ 410.67
+ 48
+ 48
+ 0
+
+
+
+
+
+
+
+ 36
+ 60
+ 0
+ 375
Outline
Bold
2
@@ -408,28 +882,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 600
- 1072.5
- 75
+ 965
+ 637.33
+ 890
+ 60
0
- 757.5
- 607.5
- 60
- 60
+ 971
+ 643.33
+ 48
+ 48
0
- 1755
- 607.5
- 60
- 60
+ 1801
+ 643.33
+ 48
+ 48
0
@@ -438,10 +912,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -450,28 +924,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 690
- 1072.5
- 75
+ 965
+ 714.89
+ 890
+ 60
0
- 757.5
- 697.5
- 60
- 60
+ 971
+ 720.89
+ 48
+ 48
0
- 1755
- 697.5
- 60
- 60
+ 1801
+ 720.89
+ 48
+ 48
0
@@ -480,10 +954,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 375
Outline
Bold
2
@@ -492,28 +966,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 780
- 1072.5
- 75
+ 965
+ 792.44
+ 890
+ 60
0
- 757.5
- 787.5
- 60
- 60
+ 971
+ 798.44
+ 48
+ 48
0
- 1755
- 787.5
- 60
- 60
+ 1801
+ 798.44
+ 48
+ 48
0
@@ -522,10 +996,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 375
Outline
Bold
2
diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsGraphics.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsGraphics.xml
index ab4d86e6..a3985511 100644
--- a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsGraphics.xml
+++ b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsGraphics.xml
@@ -2,7 +2,7 @@
ScreenOptionsGrahpics
- 1
+ 2
@@ -29,13 +29,277 @@
Warning
- 710
+ 585
900
1140
75
-1
+
+ OptionsNavBackground
+
+
+ 45
+ 150
+ 375
+ 735
+ 0.3
+
+
+
+ ButtonTile
+
+
+ 60
+ 162
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGame
+
+
+ 75
+ 171
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 233.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSound
+
+
+ 75
+ 242.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 305
+ 345
+ 62
+ 0.2
+
+
+
+ SingIcon
+
+
+ 75
+ 314
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 376.5
+ 345
+ 62
+ 0.2
+
+
+
+ VideoIcon
+
+
+ 75
+ 385.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 448
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconLyrics
+
+
+ 75
+ 457
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 519.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconTheme
+
+
+ 75
+ 528.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 591
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGraphics
+
+
+ 75
+ 600
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 662.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconServer
+
+
+ 75
+ 671.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 734
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSongFolders
+
+
+ 75
+ 743
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 805.5
+ 345
+ 62
+ 0.2
+
+
+
+ Star
+
+
+ 75
+ 814.5
+ 44
+ 44
+ 0.1
+
+
+
+ OptionsNavSelected
+
+
+ 0
+ 0
+ 345
+ 62
+ 0.15
+
+
+
+
+
+
+ 0
+ 0
+ 44
+ 44
+ 0.1
+
+
+
+ CoverTextBackground
+
+
+ 435
+ 150
+ 1440
+ 735
+ 0.3
+
+
@@ -53,11 +317,11 @@
TR_SCREENOGRAPHICS_OPTIONS
- 112.5
- 160.5
+ 465
+ 181.75
0
40.5
- 0
+ 480
Left
@@ -67,11 +331,11 @@
TR_SCREENOGRAPHICS_TEXTUREQUALITY
- 112.5
- 250.5
+ 465
+ 261.75
0
40.5
- 0
+ 480
Left
@@ -81,11 +345,11 @@
TR_SCREENOGRAPHICS_COVERSIZE
- 112.5
- 340.5
+ 465
+ 341.75
0
40.5
- 0
+ 480
Left
@@ -95,11 +359,11 @@
TR_SCREENOGRAPHICS_FULLSCREEN
- 112.5
- 430.5
+ 465
+ 421.75
0
40.5
- 0
+ 480
Left
@@ -109,7 +373,7 @@
TR_SCREENOGRAPHICS_STRETCH
- 1280
+ 1155
920
-1.1
37.5
@@ -122,6 +386,160 @@
Outline
TR_SCREENO_WARNINGRESTART
+
+ 135
+ 173
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GAME
+
+
+ 135
+ 244.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SOUND
+
+
+ 135
+ 316
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_RECORD
+
+
+ 135
+ 387.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_VIDEO
+
+
+ 135
+ 459
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_LYRICS
+
+
+ 135
+ 530.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_THEME
+
+
+ 135
+ 602
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GRAPHICS
+
+
+ 135
+ 673.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SERVER
+
+
+ 135
+ 745
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SONGFOLDER
+
+
+ 135
+ 816.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_CREDITS
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+
+
@@ -167,28 +585,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 150
- 1072.5
- 75
+ 965
+ 172
+ 890
+ 60
0
- 757.5
- 157.5
- 60
- 60
+ 971
+ 178
+ 48
+ 48
0
- 1755
- 157.5
- 60
- 60
+ 1801
+ 178
+ 48
+ 48
0
@@ -197,10 +615,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 462
+ 246.67
Outline
Bold
3
@@ -209,28 +627,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 240
- 1072.5
- 75
+ 965
+ 252
+ 890
+ 60
0
- 757.5
- 247.5
- 60
- 60
+ 971
+ 258
+ 48
+ 48
0
- 1755
- 247.5
- 60
- 60
+ 1801
+ 258
+ 48
+ 48
0
@@ -239,10 +657,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 182.5
Outline
Bold
4
@@ -251,28 +669,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 330
- 1072.5
- 75
+ 965
+ 332
+ 890
+ 60
0
- 757.5
- 337.5
- 60
- 60
+ 971
+ 338
+ 48
+ 48
0
- 1755
- 337.5
- 60
- 60
+ 1801
+ 338
+ 48
+ 48
0
@@ -281,10 +699,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 375
Outline
Bold
2
@@ -293,28 +711,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 420
- 1072.5
- 75
+ 965
+ 412
+ 890
+ 60
0
- 757.5
- 427.5
- 60
- 60
+ 971
+ 418
+ 48
+ 48
0
- 1755
- 427.5
- 60
- 60
+ 1801
+ 418
+ 48
+ 48
0
@@ -323,10 +741,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 375
Outline
Bold
2
diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsLyrics.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsLyrics.xml
index 7dbf1e00..ce434fe5 100644
--- a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsLyrics.xml
+++ b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsLyrics.xml
@@ -2,7 +2,7 @@
ScreenOptionsLyrics
- 4
+ 5
@@ -25,6 +25,270 @@
1
+
+ OptionsNavBackground
+
+
+ 45
+ 150
+ 375
+ 735
+ 0.3
+
+
+
+ ButtonTile
+
+
+ 60
+ 162
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGame
+
+
+ 75
+ 171
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 233.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSound
+
+
+ 75
+ 242.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 305
+ 345
+ 62
+ 0.2
+
+
+
+ SingIcon
+
+
+ 75
+ 314
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 376.5
+ 345
+ 62
+ 0.2
+
+
+
+ VideoIcon
+
+
+ 75
+ 385.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 448
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconLyrics
+
+
+ 75
+ 457
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 519.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconTheme
+
+
+ 75
+ 528.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 591
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGraphics
+
+
+ 75
+ 600
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 662.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconServer
+
+
+ 75
+ 671.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 734
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSongFolders
+
+
+ 75
+ 743
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 805.5
+ 345
+ 62
+ 0.2
+
+
+
+ Star
+
+
+ 75
+ 814.5
+ 44
+ 44
+ 0.1
+
+
+
+ OptionsNavSelected
+
+
+ 0
+ 0
+ 345
+ 62
+ 0.15
+
+
+
+
+
+
+ 0
+ 0
+ 44
+ 44
+ 0.1
+
+
+
+ CoverTextBackground
+
+
+ 435
+ 150
+ 1440
+ 735
+ 0.3
+
+
@@ -42,11 +306,11 @@
TR_SCREENOLYRICS_OPTIONS
- 112.5
- 160.5
+ 465
+ 181.75
0
40.5
- 0
+ 480
Left
@@ -56,11 +320,11 @@
TR_SCREENOLYRICS_STYLE
- 112.5
- 250.5
+ 465
+ 261.75
0
40.5
- 0
+ 480
Left
@@ -69,6 +333,160 @@
Outline
TR_SCREENOLYRICS_POSITION
+
+ 135
+ 173
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GAME
+
+
+ 135
+ 244.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SOUND
+
+
+ 135
+ 316
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_RECORD
+
+
+ 135
+ 387.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_VIDEO
+
+
+ 135
+ 459
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_LYRICS
+
+
+ 135
+ 530.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_THEME
+
+
+ 135
+ 602
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GRAPHICS
+
+
+ 135
+ 673.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SERVER
+
+
+ 135
+ 745
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SONGFOLDER
+
+
+ 135
+ 816.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_CREDITS
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+
+
@@ -114,28 +532,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 150
- 1072.5
- 75
+ 965
+ 172
+ 890
+ 60
0
- 757.5
- 157.5
- 60
- 60
+ 971
+ 178
+ 48
+ 48
0
- 1755
- 157.5
- 60
- 60
+ 1801
+ 178
+ 48
+ 48
0
@@ -144,10 +562,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 182.5
Outline
Bold
4
@@ -156,28 +574,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 240
- 1072.5
- 75
+ 965
+ 252
+ 890
+ 60
0
- 757.5
- 247.5
- 60
- 60
+ 971
+ 258
+ 48
+ 48
0
- 1755
- 247.5
- 60
- 60
+ 1801
+ 258
+ 48
+ 48
0
@@ -186,10 +604,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 375
Outline
Bold
2
diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsRecord.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsRecord.xml
index 21c25a09..741ab426 100644
--- a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsRecord.xml
+++ b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsRecord.xml
@@ -2,7 +2,7 @@
ScreenOptionsRecord
- 5
+ 6
@@ -29,10 +29,10 @@
SingIcon
- 112.5
- 337.5
- 60
- 60
+ 465
+ 330.75
+ 44
+ 44
0
@@ -40,10 +40,10 @@
SingIcon
- 112.5
- 427.5
- 60
- 60
+ 465
+ 406.12
+ 44
+ 44
0
@@ -51,10 +51,10 @@
SingIcon
- 112.5
- 517.5
- 60
- 60
+ 465
+ 481.5
+ 44
+ 44
0
@@ -62,10 +62,10 @@
SingIcon
- 112.5
- 607.5
- 60
- 60
+ 465
+ 556.88
+ 44
+ 44
0
@@ -73,10 +73,10 @@
SingIcon
- 112.5
- 697.5
- 60
- 60
+ 465
+ 632.25
+ 44
+ 44
0
@@ -84,10 +84,10 @@
SingIcon
- 112.5
- 787.5
- 60
- 60
+ 465
+ 707.62
+ 44
+ 44
0
@@ -95,7 +95,7 @@
Warning
- 390
+ 585
900
1140
75
@@ -110,9 +110,9 @@
EnergyBeam
- 585
- 351
- 150
+ 810
+ 340.75
+ 100
24
0
@@ -121,9 +121,9 @@
EnergyBeam
- 585
- 444
- 150
+ 810
+ 416.12
+ 100
24
0
@@ -132,9 +132,9 @@
EnergyBeam
- 585
- 531
- 150
+ 810
+ 491.5
+ 100
24
0
@@ -143,9 +143,9 @@
EnergyBeam
- 585
- 624
- 150
+ 810
+ 566.88
+ 100
24
0
@@ -154,9 +154,9 @@
EnergyBeam
- 585
- 711
- 150
+ 810
+ 642.25
+ 100
24
0
@@ -165,13 +165,277 @@
EnergyBeam
- 585
- 804
- 150
+ 810
+ 717.62
+ 100
24
0
+
+ OptionsNavBackground
+
+
+ 45
+ 150
+ 375
+ 735
+ 0.3
+
+
+
+ ButtonTile
+
+
+ 60
+ 162
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGame
+
+
+ 75
+ 171
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 233.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSound
+
+
+ 75
+ 242.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 305
+ 345
+ 62
+ 0.2
+
+
+
+ SingIcon
+
+
+ 75
+ 314
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 376.5
+ 345
+ 62
+ 0.2
+
+
+
+ VideoIcon
+
+
+ 75
+ 385.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 448
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconLyrics
+
+
+ 75
+ 457
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 519.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconTheme
+
+
+ 75
+ 528.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 591
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGraphics
+
+
+ 75
+ 600
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 662.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconServer
+
+
+ 75
+ 671.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 734
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSongFolders
+
+
+ 75
+ 743
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 805.5
+ 345
+ 62
+ 0.2
+
+
+
+ Star
+
+
+ 75
+ 814.5
+ 44
+ 44
+ 0.1
+
+
+
+ OptionsNavSelected
+
+
+ 0
+ 0
+ 345
+ 62
+ 0.15
+
+
+
+
+
+
+ 0
+ 0
+ 44
+ 44
+ 0.1
+
+
+
+ CoverTextBackground
+
+
+ 435
+ 150
+ 1440
+ 735
+ 0.3
+
+
@@ -189,11 +453,11 @@
TR_SCREENORECORD_OPTIONS
- 112.5
- 159
+ 465
+ 181.75
0
40.5
- 0
+ 480
Left
@@ -203,11 +467,11 @@
TR_SCREENORECORD_DEVICE
- 112.5
- 250.5
+ 465
+ 257.12
0
40.5
- 0
+ 480
Left
@@ -217,7 +481,7 @@
TR_SCREENORECORD_MIC_DELAY
- 960
+ 1155
918
0
37.5
@@ -235,11 +499,11 @@
- 187.5
- 340.5
+ 520
+ 332.5
0
40.5
- 0
+ 150
Left
@@ -249,11 +513,11 @@
TR_SCREENORECORD_PLAYER_1
- 187.5
- 430.5
+ 520
+ 407.88
0
40.5
- 0
+ 150
Left
@@ -263,11 +527,11 @@
TR_SCREENORECORD_PLAYER_2
- 187.5
- 520.5
+ 520
+ 483.25
0
40.5
- 0
+ 150
Left
@@ -277,11 +541,11 @@
TR_SCREENORECORD_PLAYER_3
- 187.5
- 610.5
+ 520
+ 558.62
0
40.5
- 0
+ 150
Left
@@ -291,11 +555,11 @@
TR_SCREENORECORD_PLAYER_4
- 187.5
- 700.5
+ 520
+ 634
0
40.5
- 0
+ 150
Left
@@ -305,11 +569,11 @@
TR_SCREENORECORD_PLAYER_5
- 187.5
- 790.5
+ 520
+ 709.38
0
40.5
- 0
+ 150
Left
@@ -319,11 +583,11 @@
TR_SCREENORECORD_PLAYER_6
- 480
- 340.5
+ 982
+ 332.5
-1
40.5
- 150
+ 115
Center
@@ -332,11 +596,11 @@
Outline
- 480
- 430.5
+ 982
+ 407.88
-1
40.5
- 150
+ 115
Center
@@ -345,11 +609,11 @@
Outline
- 480
- 520.5
+ 982
+ 483.25
-1
40.5
- 150
+ 115
Center
@@ -358,11 +622,11 @@
Outline
- 480
- 610.5
+ 982
+ 558.62
-1
40.5
- 150
+ 115
Center
@@ -371,11 +635,11 @@
Outline
- 480
- 700.5
+ 982
+ 634
-1
40.5
- 150
+ 115
Center
@@ -384,11 +648,11 @@
Outline
- 480
- 790.5
+ 982
+ 709.38
-1
40.5
- 150
+ 115
Center
@@ -396,6 +660,160 @@
Outline
+
+ 135
+ 173
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GAME
+
+
+ 135
+ 244.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SOUND
+
+
+ 135
+ 316
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_RECORD
+
+
+ 135
+ 387.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_VIDEO
+
+
+ 135
+ 459
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_LYRICS
+
+
+ 135
+ 530.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_THEME
+
+
+ 135
+ 602
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GRAPHICS
+
+
+ 135
+ 673.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SERVER
+
+
+ 135
+ 745
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SONGFOLDER
+
+
+ 135
+ 816.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_CREDITS
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+
+
@@ -437,8 +855,8 @@
Button
Button
- 1612.5
- 900
+ 1625
+ 790
225
75
0
@@ -459,14 +877,6 @@
Outline
TR_SCREENORECORD_BUTTON_DELAYTEST
-
- 39
- 15
-
-
- 39
- 15
-
@@ -476,28 +886,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 150
- 1072.5
- 75
+ 965
+ 172
+ 890
+ 60
0
- 757.5
- 157.5
- 60
- 60
+ 971
+ 178
+ 48
+ 48
0
- 1755
- 157.5
- 60
- 60
+ 1801
+ 178
+ 48
+ 48
0
@@ -506,10 +916,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 924
+ 760
Outline
Bold
1
@@ -518,28 +928,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 330
- 1072.5
- 75
+ 1045
+ 322.75
+ 810
+ 60
0
- 757.5
- 337.5
- 60
- 60
+ 1051
+ 328.75
+ 48
+ 48
0
- 1755
- 337.5
- 60
- 60
+ 1801
+ 328.75
+ 48
+ 48
0
@@ -548,10 +958,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 231
+ 88.57
Outline
Bold
7
@@ -560,28 +970,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 420
- 1072.5
- 75
+ 1045
+ 398.12
+ 810
+ 60
0
- 757.5
- 427.5
- 60
- 60
+ 1051
+ 404.12
+ 48
+ 48
0
- 1755
- 427.5
- 60
- 60
+ 1801
+ 404.12
+ 48
+ 48
0
@@ -590,10 +1000,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 231
+ 88.57
Outline
Bold
7
@@ -602,28 +1012,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 510
- 1072.5
- 75
+ 1045
+ 473.5
+ 810
+ 60
0
- 757.5
- 517.5
- 60
- 60
+ 1051
+ 479.5
+ 48
+ 48
0
- 1755
- 517.5
- 60
- 60
+ 1801
+ 479.5
+ 48
+ 48
0
@@ -632,10 +1042,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 231
+ 88.57
Outline
Bold
7
@@ -644,28 +1054,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 600
- 1072.5
- 75
+ 1045
+ 548.88
+ 810
+ 60
0
- 757.5
- 607.5
- 60
- 60
+ 1051
+ 554.88
+ 48
+ 48
0
- 1755
- 607.5
- 60
- 60
+ 1801
+ 554.88
+ 48
+ 48
0
@@ -674,10 +1084,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 231
+ 88.57
Outline
Bold
7
@@ -686,28 +1096,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 690
- 1072.5
- 75
+ 1045
+ 624.25
+ 810
+ 60
0
- 757.5
- 697.5
- 60
- 60
+ 1051
+ 630.25
+ 48
+ 48
0
- 1755
- 697.5
- 60
- 60
+ 1801
+ 630.25
+ 48
+ 48
0
@@ -716,10 +1126,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 231
+ 88.57
Outline
Bold
7
@@ -728,28 +1138,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 780
- 1072.5
- 75
+ 1045
+ 699.62
+ 810
+ 60
0
- 757.5
- 787.5
- 60
- 60
+ 1051
+ 705.62
+ 48
+ 48
0
- 1755
- 787.5
- 60
- 60
+ 1801
+ 705.62
+ 48
+ 48
0
@@ -758,10 +1168,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 231
+ 88.57
Outline
Bold
7
@@ -770,28 +1180,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 240
- 1072.5
- 75
+ 965
+ 247.38
+ 890
+ 60
0
- 757.5
- 247.5
- 60
- 60
+ 971
+ 253.38
+ 48
+ 48
0
- 1755
- 247.5
- 60
- 60
+ 1801
+ 253.38
+ 48
+ 48
0
@@ -800,10 +1210,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 180
+ 144
Outline
Bold
5
@@ -815,10 +1225,10 @@
- 405
- 330
- 150
- 60
+ 680
+ 330.75
+ 120
+ 44
-1
12
@@ -834,10 +1244,10 @@
- 405
- 420
- 150
- 60
+ 680
+ 406.12
+ 120
+ 44
-1
12
@@ -853,10 +1263,10 @@
- 405
- 510
- 150
- 60
+ 680
+ 481.5
+ 120
+ 44
-1
12
@@ -872,10 +1282,10 @@
- 405
- 600
- 150
- 60
+ 680
+ 556.88
+ 120
+ 44
-1
12
@@ -891,10 +1301,10 @@
- 405
- 690
- 150
- 60
+ 680
+ 632.25
+ 120
+ 44
-1
12
@@ -910,10 +1320,10 @@
- 405
- 780
- 150
- 60
+ 680
+ 707.62
+ 120
+ 44
-1
12
diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsServer.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsServer.xml
index a5126a1d..fc0691de 100644
--- a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsServer.xml
+++ b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsServer.xml
@@ -2,7 +2,7 @@
ScreenOptionsSercer
- 1
+ 2
@@ -29,13 +29,277 @@
Warning
- 390
+ 585
900
1140
75
-1
+
+ OptionsNavBackground
+
+
+ 45
+ 150
+ 375
+ 735
+ 0.3
+
+
+
+ ButtonTile
+
+
+ 60
+ 162
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGame
+
+
+ 75
+ 171
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 233.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSound
+
+
+ 75
+ 242.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 305
+ 345
+ 62
+ 0.2
+
+
+
+ SingIcon
+
+
+ 75
+ 314
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 376.5
+ 345
+ 62
+ 0.2
+
+
+
+ VideoIcon
+
+
+ 75
+ 385.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 448
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconLyrics
+
+
+ 75
+ 457
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 519.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconTheme
+
+
+ 75
+ 528.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 591
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGraphics
+
+
+ 75
+ 600
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 662.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconServer
+
+
+ 75
+ 671.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 734
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSongFolders
+
+
+ 75
+ 743
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 805.5
+ 345
+ 62
+ 0.2
+
+
+
+ Star
+
+
+ 75
+ 814.5
+ 44
+ 44
+ 0.1
+
+
+
+ OptionsNavSelected
+
+
+ 0
+ 0
+ 345
+ 62
+ 0.15
+
+
+
+
+
+
+ 0
+ 0
+ 44
+ 44
+ 0.1
+
+
+
+ CoverTextBackground
+
+
+ 435
+ 150
+ 1440
+ 735
+ 0.3
+
+
@@ -53,11 +317,11 @@
TR_SCREENOSERVER_OPTIONS
- 112.5
- 160.5
+ 465
+ 181.75
0
40.5
- 0
+ 480
Left
@@ -67,11 +331,11 @@
TR_SCREENOSERVER_ACTIVE
- 112.5
- 250.5
+ 465
+ 261.75
0
40.5
- 0
+ 480
Left
@@ -81,7 +345,7 @@
TR_SCREENOSERVER_ENCRYPTION
- 960
+ 1155
920
-1.1
37.5
@@ -94,6 +358,160 @@
Outline
TR_SCREENO_WARNINGRESTART
+
+ 135
+ 173
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GAME
+
+
+ 135
+ 244.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SOUND
+
+
+ 135
+ 316
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_RECORD
+
+
+ 135
+ 387.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_VIDEO
+
+
+ 135
+ 459
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_LYRICS
+
+
+ 135
+ 530.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_THEME
+
+
+ 135
+ 602
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GRAPHICS
+
+
+ 135
+ 673.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SERVER
+
+
+ 135
+ 745
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SONGFOLDER
+
+
+ 135
+ 816.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_CREDITS
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+
+
@@ -135,8 +553,8 @@
Button
Button
- 1612.5
- 900
+ 1625
+ 790
225
75
0
@@ -157,14 +575,6 @@
Outline
TR_SCREENOSERVER_BUTTON_SERVER
-
- 39
- 15
-
-
- 39
- 15
-
@@ -174,28 +584,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 150
- 1072.5
- 75
+ 965
+ 172
+ 890
+ 60
0
- 757.5
- 157.5
- 60
- 60
+ 971
+ 178
+ 48
+ 48
0
- 1755
- 157.5
- 60
- 60
+ 1801
+ 178
+ 48
+ 48
0
@@ -204,10 +614,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -216,28 +626,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 240
- 1072.5
- 75
+ 965
+ 252
+ 890
+ 60
0
- 757.5
- 247.5
- 60
- 60
+ 971
+ 258
+ 48
+ 48
0
- 1755
- 247.5
- 60
- 60
+ 1801
+ 258
+ 48
+ 48
0
@@ -246,10 +656,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsSongFolders.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsSongFolders.xml
new file mode 100644
index 00000000..b7344abc
--- /dev/null
+++ b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsSongFolders.xml
@@ -0,0 +1,1023 @@
+
+
+
+ ScreenOptionsSongFolders
+ 3
+
+
+
+ Video
+
+ BG_Video
+ BG_Options
+
+
+
+
+
+
+
+
+ 0
+ 60
+ 1920
+ 67.5
+ 1
+
+
+
+ Warning
+
+
+ 585
+ 900
+ 1140
+ 75
+ -1
+
+
+
+ SelectSlide
+
+
+ 450
+ 165
+ 1360
+ 62
+ 0.1
+
+
+
+ SelectSlide
+
+
+ 450
+ 240
+ 1360
+ 62
+ 0.1
+
+
+
+ SelectSlide
+
+
+ 450
+ 315
+ 1360
+ 62
+ 0.1
+
+
+
+ SelectSlide
+
+
+ 450
+ 390
+ 1360
+ 62
+ 0.1
+
+
+
+ SelectSlide
+
+
+ 450
+ 465
+ 1360
+ 62
+ 0.1
+
+
+
+ SelectSlide
+
+
+ 450
+ 540
+ 1360
+ 62
+ 0.1
+
+
+
+ SelectSlide
+
+
+ 450
+ 615
+ 1360
+ 62
+ 0.1
+
+
+
+ SelectSlide
+
+
+ 450
+ 690
+ 1360
+ 62
+ 0.1
+
+
+
+ OptionsNavBackground
+
+
+ 45
+ 150
+ 375
+ 735
+ 0.3
+
+
+
+ ButtonTile
+
+
+ 60
+ 162
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGame
+
+
+ 75
+ 171
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 233.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSound
+
+
+ 75
+ 242.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 305
+ 345
+ 62
+ 0.2
+
+
+
+ SingIcon
+
+
+ 75
+ 314
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 376.5
+ 345
+ 62
+ 0.2
+
+
+
+ VideoIcon
+
+
+ 75
+ 385.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 448
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconLyrics
+
+
+ 75
+ 457
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 519.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconTheme
+
+
+ 75
+ 528.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 591
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGraphics
+
+
+ 75
+ 600
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 662.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconServer
+
+
+ 75
+ 671.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 734
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSongFolders
+
+
+ 75
+ 743
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 805.5
+ 345
+ 62
+ 0.2
+
+
+
+ Star
+
+
+ 75
+ 814.5
+ 44
+ 44
+ 0.1
+
+
+
+ OptionsNavSelected
+
+
+ 0
+ 0
+ 345
+ 62
+ 0.15
+
+
+
+
+
+
+ 0
+ 0
+ 44
+ 44
+ 0.1
+
+
+
+ CoverTextBackground
+
+
+ 435
+ 150
+ 1440
+ 735
+ 0.3
+
+
+
+
+
+ 1
+ 1
+ 1
+ 0.15
+
+
+ 1835
+ 165
+ 6
+ 587
+ 0.1
+
+
+
+
+
+ 1
+ 1
+ 1
+ 0.8
+
+
+ 1835
+ 165
+ 6
+ 587
+ 0.05
+
+
+
+
+
+ 960
+ 75
+ 0
+ 40.5
+ 0
+
+
+ Center
+ Center
+
+ Outline
+ TR_SCREENOSONGFOLDERS_TITLE
+
+
+ 1155
+ 920
+ -1.1
+ 37.5
+ 960
+
+
+ Center
+ Center
+
+ Outline
+ TR_SCREENO_WARNINGRESTART
+
+
+ 1155
+ 450
+ 0
+ 40.5
+ 1300
+
+
+ Center
+ Center
+
+ Outline
+ TR_SCREENOSONGFOLDERS_NOFOLDERS
+
+
+ 475
+ 176
+ 0
+ 40.5
+ 1240
+
+
+ Left
+ Center
+
+ Outline
+
+
+
+ 475
+ 251
+ 0
+ 40.5
+ 1240
+
+
+ Left
+ Center
+
+ Outline
+
+
+
+ 475
+ 326
+ 0
+ 40.5
+ 1240
+
+
+ Left
+ Center
+
+ Outline
+
+
+
+ 475
+ 401
+ 0
+ 40.5
+ 1240
+
+
+ Left
+ Center
+
+ Outline
+
+
+
+ 475
+ 476
+ 0
+ 40.5
+ 1240
+
+
+ Left
+ Center
+
+ Outline
+
+
+
+ 475
+ 551
+ 0
+ 40.5
+ 1240
+
+
+ Left
+ Center
+
+ Outline
+
+
+
+ 475
+ 626
+ 0
+ 40.5
+ 1240
+
+
+ Left
+ Center
+
+ Outline
+
+
+
+ 475
+ 701
+ 0
+ 40.5
+ 1240
+
+
+ Left
+ Center
+
+ Outline
+
+
+
+ 135
+ 173
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GAME
+
+
+ 135
+ 244.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SOUND
+
+
+ 135
+ 316
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_RECORD
+
+
+ 135
+ 387.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_VIDEO
+
+
+ 135
+ 459
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_LYRICS
+
+
+ 135
+ 530.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_THEME
+
+
+ 135
+ 602
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GRAPHICS
+
+
+ 135
+ 673.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SERVER
+
+
+ 135
+ 745
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SONGFOLDER
+
+
+ 135
+ 816.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_CREDITS
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+
+
+
+
+
+ Button
+ Button
+
+ 82.5
+ 900
+ 225
+ 75
+ 0
+
+
+
+
+ 112.5
+ 18
+ 0
+ 40.5
+ 213
+
+
+ Center
+ Center
+
+ Outline
+ TR_BUTTON_BACK
+
+
+ 39
+ 15
+
+
+ 39
+ 15
+
+
+
+ Button
+ Button
+
+ 1625
+ 790
+ 225
+ 75
+ 0
+
+
+
+
+ 112.5
+ 18
+ 0
+ 40.5
+ 213
+
+
+ Center
+ Center
+
+ Outline
+ TR_SCREENOSONGFOLDERS_BUTTON_ADD
+
+
+
+ DeleteIcon
+ DeleteIcon
+
+ 1750
+ 171
+ 50
+ 50
+ 0
+
+
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 0
+
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ DeleteIcon
+ DeleteIcon
+
+ 1750
+ 246
+ 50
+ 50
+ 0
+
+
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 0
+
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ DeleteIcon
+ DeleteIcon
+
+ 1750
+ 321
+ 50
+ 50
+ 0
+
+
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 0
+
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ DeleteIcon
+ DeleteIcon
+
+ 1750
+ 396
+ 50
+ 50
+ 0
+
+
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 0
+
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ DeleteIcon
+ DeleteIcon
+
+ 1750
+ 471
+ 50
+ 50
+ 0
+
+
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 0
+
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ DeleteIcon
+ DeleteIcon
+
+ 1750
+ 546
+ 50
+ 50
+ 0
+
+
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 0
+
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ DeleteIcon
+ DeleteIcon
+
+ 1750
+ 621
+ 50
+ 50
+ 0
+
+
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 0
+
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ DeleteIcon
+ DeleteIcon
+
+ 1750
+ 696
+ 50
+ 50
+ 0
+
+
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 0
+
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsSound.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsSound.xml
index e57e67e9..bc5a38e2 100644
--- a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsSound.xml
+++ b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsSound.xml
@@ -2,7 +2,7 @@
ScreenOptionsSound
- 5
+ 6
@@ -25,6 +25,270 @@
1
+
+ OptionsNavBackground
+
+
+ 45
+ 150
+ 375
+ 735
+ 0.3
+
+
+
+ ButtonTile
+
+
+ 60
+ 162
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGame
+
+
+ 75
+ 171
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 233.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSound
+
+
+ 75
+ 242.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 305
+ 345
+ 62
+ 0.2
+
+
+
+ SingIcon
+
+
+ 75
+ 314
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 376.5
+ 345
+ 62
+ 0.2
+
+
+
+ VideoIcon
+
+
+ 75
+ 385.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 448
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconLyrics
+
+
+ 75
+ 457
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 519.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconTheme
+
+
+ 75
+ 528.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 591
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGraphics
+
+
+ 75
+ 600
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 662.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconServer
+
+
+ 75
+ 671.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 734
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSongFolders
+
+
+ 75
+ 743
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 805.5
+ 345
+ 62
+ 0.2
+
+
+
+ Star
+
+
+ 75
+ 814.5
+ 44
+ 44
+ 0.1
+
+
+
+ OptionsNavSelected
+
+
+ 0
+ 0
+ 345
+ 62
+ 0.15
+
+
+
+
+
+
+ 0
+ 0
+ 44
+ 44
+ 0.1
+
+
+
+ CoverTextBackground
+
+
+ 435
+ 150
+ 1440
+ 735
+ 0.3
+
+
@@ -42,11 +306,11 @@
TR_SCREENOSOUND_OPTIONS
- 112.5
- 160.5
+ 465
+ 181.75
0
40.5
- 0
+ 480
Left
@@ -56,11 +320,11 @@
TR_SCREENOSOUND_BACKGROUNDMUSIC
- 112.5
- 250.5
+ 465
+ 261.75
0
40.5
- 0
+ 480
Left
@@ -70,11 +334,11 @@
TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME
- 112.5
- 340.5
+ 465
+ 341.75
0
40.5
- 0
+ 480
Left
@@ -84,11 +348,11 @@
TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE
- 112.5
- 430.5
+ 465
+ 421.75
0
40.5
- 0
+ 480
Left
@@ -98,11 +362,11 @@
TR_SCREENOSOUND_PREVIEWMUSICVOLUME
- 112.5
- 520.5
+ 465
+ 501.75
0
40.5
- 0
+ 480
Left
@@ -112,11 +376,11 @@
TR_SCREENOSOUND_GAMEMUSICVOLUME
- 112.5
- 610.5
+ 465
+ 581.75
0
40.5
- 0
+ 480
Left
@@ -126,11 +390,11 @@
TR_SCREENOSOUND_SOUNDEFFECTVOLUME
- 112.5
- 700.5
+ 465
+ 661.75
0
40.5
- 0
+ 480
Left
@@ -139,6 +403,160 @@
Outline
TR_SCREENOSOUND_KARAOKEEFFECT
+
+ 135
+ 173
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GAME
+
+
+ 135
+ 244.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SOUND
+
+
+ 135
+ 316
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_RECORD
+
+
+ 135
+ 387.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_VIDEO
+
+
+ 135
+ 459
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_LYRICS
+
+
+ 135
+ 530.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_THEME
+
+
+ 135
+ 602
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GRAPHICS
+
+
+ 135
+ 673.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SERVER
+
+
+ 135
+ 745
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SONGFOLDER
+
+
+ 135
+ 816.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_CREDITS
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+
+
@@ -184,28 +602,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 150
- 1072.5
- 75
+ 965
+ 172
+ 890
+ 60
0
- 757.5
- 157.5
- 60
- 60
+ 971
+ 178
+ 48
+ 48
0
- 1755
- 157.5
- 60
- 60
+ 1801
+ 178
+ 48
+ 48
0
@@ -214,10 +632,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -226,28 +644,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 240
- 1072.5
- 75
+ 965
+ 252
+ 890
+ 60
0
- 757.5
- 247.5
- 60
- 60
+ 971
+ 258
+ 48
+ 48
0
- 1755
- 247.5
- 60
- 60
+ 1801
+ 258
+ 48
+ 48
0
@@ -256,10 +674,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -268,28 +686,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 330
- 1072.5
- 75
+ 965
+ 332
+ 890
+ 60
0
- 757.5
- 337.5
- 60
- 60
+ 971
+ 338
+ 48
+ 48
0
- 1755
- 337.5
- 60
- 60
+ 1801
+ 338
+ 48
+ 48
0
@@ -298,10 +716,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 750
+ 760
Outline
Bold
1
@@ -310,28 +728,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 420
- 1072.5
- 75
+ 965
+ 412
+ 890
+ 60
0
- 757.5
- 427.5
- 60
- 60
+ 971
+ 418
+ 48
+ 48
0
- 1755
- 427.5
- 60
- 60
+ 1801
+ 418
+ 48
+ 48
0
@@ -340,10 +758,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 750
+ 246.67
Outline
Bold
3
@@ -352,28 +770,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 510
- 1072.5
- 75
+ 965
+ 492
+ 890
+ 60
0
- 757.5
- 517.5
- 60
- 60
+ 971
+ 498
+ 48
+ 48
0
- 1755
- 517.5
- 60
- 60
+ 1801
+ 498
+ 48
+ 48
0
@@ -382,10 +800,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 750
+ 246.67
Outline
Bold
3
@@ -394,28 +812,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 600
- 1072.5
- 75
+ 965
+ 572
+ 890
+ 60
0
- 757.5
- 607.5
- 60
- 60
+ 971
+ 578
+ 48
+ 48
0
- 1755
- 607.5
- 60
- 60
+ 1801
+ 578
+ 48
+ 48
0
@@ -424,10 +842,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 750
+ 246.67
Outline
Bold
3
@@ -436,28 +854,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 690
- 1072.5
- 75
+ 965
+ 652
+ 890
+ 60
0
- 757.5
- 697.5
- 60
- 60
+ 971
+ 658
+ 48
+ 48
0
- 1755
- 697.5
- 60
- 60
+ 1801
+ 658
+ 48
+ 48
0
@@ -466,10 +884,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 750
+ 246.67
Outline
Bold
3
diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsTheme.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsTheme.xml
index 05d3fc67..57d0af3c 100644
--- a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsTheme.xml
+++ b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsTheme.xml
@@ -2,7 +2,7 @@
ScreenOptionsTheme
- 3
+ 4
@@ -25,6 +25,270 @@
1
+
+ OptionsNavBackground
+
+
+ 45
+ 150
+ 375
+ 735
+ 0.3
+
+
+
+ ButtonTile
+
+
+ 60
+ 162
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGame
+
+
+ 75
+ 171
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 233.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSound
+
+
+ 75
+ 242.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 305
+ 345
+ 62
+ 0.2
+
+
+
+ SingIcon
+
+
+ 75
+ 314
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 376.5
+ 345
+ 62
+ 0.2
+
+
+
+ VideoIcon
+
+
+ 75
+ 385.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 448
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconLyrics
+
+
+ 75
+ 457
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 519.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconTheme
+
+
+ 75
+ 528.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 591
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGraphics
+
+
+ 75
+ 600
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 662.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconServer
+
+
+ 75
+ 671.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 734
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSongFolders
+
+
+ 75
+ 743
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 805.5
+ 345
+ 62
+ 0.2
+
+
+
+ Star
+
+
+ 75
+ 814.5
+ 44
+ 44
+ 0.1
+
+
+
+ OptionsNavSelected
+
+
+ 0
+ 0
+ 345
+ 62
+ 0.15
+
+
+
+
+
+
+ 0
+ 0
+ 44
+ 44
+ 0.1
+
+
+
+ CoverTextBackground
+
+
+ 435
+ 150
+ 1440
+ 735
+ 0.3
+
+
@@ -42,11 +306,11 @@
TR_SCREENOTHEME_OPTIONS
- 112.5
- 160.5
+ 465
+ 181.75
0
40.5
- 0
+ 480
Left
@@ -56,11 +320,11 @@
TR_SCREENOTHEME_THEME
- 112.5
- 250.5
+ 465
+ 261.75
0
40.5
- 0
+ 480
Left
@@ -70,11 +334,11 @@
TR_SCREENOTHEME_SKIN
- 112.5
- 340.5
+ 465
+ 341.75
0
40.5
- 0
+ 480
Left
@@ -84,11 +348,11 @@
TR_SCREENOTHEME_COVERTHEME
- 112.5
- 430.5
+ 465
+ 421.75
0
40.5
- 0
+ 480
Left
@@ -98,11 +362,11 @@
TR_SCREENOTHEME_NOTELINES
- 112.5
- 520.5
+ 465
+ 501.75
0
40.5
- 0
+ 480
Left
@@ -112,11 +376,11 @@
TR_SCREENOTHEME_TONEHELPER
- 112.5
- 610.5
+ 465
+ 581.75
0
40.5
- 0
+ 480
Left
@@ -126,11 +390,11 @@
TR_SCREENOTHEME_TIMERLOOK
- 112.5
- 700.5
+ 465
+ 661.75
0
40.5
- 0
+ 480
Left
@@ -140,11 +404,11 @@
TR_SCREENOTHEME_FADEINFO
- 112.5
- 790.5
+ 465
+ 741.75
0
40.5
- 0
+ 480
Left
@@ -153,6 +417,160 @@
Outline
TR_SCREENOTHEME_COVERLOADING
+
+ 135
+ 173
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GAME
+
+
+ 135
+ 244.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SOUND
+
+
+ 135
+ 316
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_RECORD
+
+
+ 135
+ 387.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_VIDEO
+
+
+ 135
+ 459
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_LYRICS
+
+
+ 135
+ 530.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_THEME
+
+
+ 135
+ 602
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GRAPHICS
+
+
+ 135
+ 673.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SERVER
+
+
+ 135
+ 745
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SONGFOLDER
+
+
+ 135
+ 816.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_CREDITS
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+
+
@@ -198,28 +616,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 150
- 1072.5
- 75
+ 965
+ 172
+ 890
+ 60
0
- 757.5
- 157.5
- 60
- 60
+ 971
+ 178
+ 48
+ 48
0
- 1755
- 157.5
- 60
- 60
+ 1801
+ 178
+ 48
+ 48
0
@@ -228,10 +646,10 @@
- 40.5
- 78
+ 36
+ 60
0
- 924
+ 760
Outline
Bold
1
@@ -240,28 +658,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 240
- 1072.5
- 75
+ 965
+ 252
+ 890
+ 60
0
- 757.5
- 247.5
- 60
- 60
+ 971
+ 258
+ 48
+ 48
0
- 1755
- 247.5
- 60
- 60
+ 1801
+ 258
+ 48
+ 48
0
@@ -270,10 +688,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 924
+ 760
Outline
Bold
1
@@ -282,28 +700,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 330
- 1072.5
- 75
+ 965
+ 332
+ 890
+ 60
0
- 757.5
- 337.5
- 60
- 60
+ 971
+ 338
+ 48
+ 48
0
- 1755
- 337.5
- 60
- 60
+ 1801
+ 338
+ 48
+ 48
0
@@ -312,10 +730,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 462
+ 375
Outline
Bold
2
@@ -324,28 +742,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 420
- 1072.5
- 75
+ 965
+ 412
+ 890
+ 60
0
- 757.5
- 427.5
- 60
- 60
+ 971
+ 418
+ 48
+ 48
0
- 1755
- 427.5
- 60
- 60
+ 1801
+ 418
+ 48
+ 48
0
@@ -354,10 +772,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 462
+ 375
Outline
Bold
2
@@ -366,28 +784,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 510
- 1072.5
- 75
+ 965
+ 492
+ 890
+ 60
0
- 757.5
- 517.5
- 60
- 60
+ 971
+ 498
+ 48
+ 48
0
- 1755
- 517.5
- 60
- 60
+ 1801
+ 498
+ 48
+ 48
0
@@ -396,10 +814,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 462
+ 375
Outline
Bold
2
@@ -408,28 +826,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 600
- 1072.5
- 75
+ 965
+ 572
+ 890
+ 60
0
- 757.5
- 607.5
- 60
- 60
+ 971
+ 578
+ 48
+ 48
0
- 1755
- 607.5
- 60
- 60
+ 1801
+ 578
+ 48
+ 48
0
@@ -438,10 +856,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 462
+ 375
Outline
Bold
2
@@ -450,28 +868,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 690
- 1072.5
- 75
+ 965
+ 652
+ 890
+ 60
0
- 757.5
- 697.5
- 60
- 60
+ 971
+ 658
+ 48
+ 48
0
- 1755
- 697.5
- 60
- 60
+ 1801
+ 658
+ 48
+ 48
0
@@ -480,10 +898,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 924
+ 375
Outline
Bold
2
@@ -492,28 +910,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 780
- 1072.5
- 75
+ 965
+ 732
+ 890
+ 60
0
- 757.5
- 787.5
- 60
- 60
+ 971
+ 738
+ 48
+ 48
0
- 1755
- 787.5
- 60
- 60
+ 1801
+ 738
+ 48
+ 48
0
@@ -522,10 +940,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 924
+ 760
Outline
Bold
1
diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsVideo.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsVideo.xml
index ef6a7b97..f1817427 100644
--- a/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsVideo.xml
+++ b/Output/Themes/Vocaluxe 2024/Screens/ScreenOptionsVideo.xml
@@ -2,7 +2,7 @@
ScreenOptionsVideo
- 5
+ 6
@@ -29,13 +29,277 @@
- 825
- 690
- 480
- 360
+ 981.67
+ 605
+ 346.67
+ 260
0
+
+ OptionsNavBackground
+
+
+ 45
+ 150
+ 375
+ 735
+ 0.3
+
+
+
+ ButtonTile
+
+
+ 60
+ 162
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGame
+
+
+ 75
+ 171
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 233.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSound
+
+
+ 75
+ 242.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 305
+ 345
+ 62
+ 0.2
+
+
+
+ SingIcon
+
+
+ 75
+ 314
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 376.5
+ 345
+ 62
+ 0.2
+
+
+
+ VideoIcon
+
+
+ 75
+ 385.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 448
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconLyrics
+
+
+ 75
+ 457
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 519.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconTheme
+
+
+ 75
+ 528.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 591
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconGraphics
+
+
+ 75
+ 600
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 662.5
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconServer
+
+
+ 75
+ 671.5
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 734
+ 345
+ 62
+ 0.2
+
+
+
+ OptionsIconSongFolders
+
+
+ 75
+ 743
+ 44
+ 44
+ 0.1
+
+
+
+ ButtonTile
+
+
+ 60
+ 805.5
+ 345
+ 62
+ 0.2
+
+
+
+ Star
+
+
+ 75
+ 814.5
+ 44
+ 44
+ 0.1
+
+
+
+ OptionsNavSelected
+
+
+ 0
+ 0
+ 345
+ 62
+ 0.15
+
+
+
+
+
+
+ 0
+ 0
+ 44
+ 44
+ 0.1
+
+
+
+ CoverTextBackground
+
+
+ 435
+ 150
+ 1440
+ 735
+ 0.3
+
+
@@ -53,11 +317,11 @@
TR_SCREENOVIDEO_OPTIONS
- 112.5
- 160.5
+ 465
+ 181.75
0
40.5
- 0
+ 480
Left
@@ -67,11 +331,11 @@
TR_SCREENOVIDEO_VIDEOBACKGROUNDS
- 112.5
- 250.5
+ 465
+ 253.08
0
40.5
- 0
+ 480
Left
@@ -81,11 +345,11 @@
TR_SCREENOVIDEO_VIDEOPREVIEW
- 112.5
- 340.5
+ 465
+ 324.42
0
40.5
- 0
+ 480
Left
@@ -95,11 +359,11 @@
TR_SCREENOVIDEO_VIDEOINSONGS
- 112.5
- 430.5
+ 465
+ 395.75
0
40.5
- 0
+ 480
Left
@@ -109,11 +373,11 @@
TR_SCREENOVIDEO_VIDEOSTOBACKGROUND
- 112.5
- 520.5
+ 465
+ 467.08
0
40.5
- 0
+ 480
Left
@@ -123,11 +387,11 @@
TR_SCREENOVIDEO_WEBCAMDEVICES
- 112.5
- 610.5
+ 465
+ 538.42
0
40.5
- 0
+ 480
Left
@@ -136,6 +400,160 @@
Outline
TR_SCREENOVIDEO_WEBCAMRESOLUTION
+
+ 135
+ 173
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GAME
+
+
+ 135
+ 244.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SOUND
+
+
+ 135
+ 316
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_RECORD
+
+
+ 135
+ 387.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_VIDEO
+
+
+ 135
+ 459
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_LYRICS
+
+
+ 135
+ 530.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_THEME
+
+
+ 135
+ 602
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_GRAPHICS
+
+
+ 135
+ 673.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SERVER
+
+
+ 135
+ 745
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_SONGFOLDER
+
+
+ 135
+ 816.5
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENO_BUTTON_CREDITS
+
+
+ 0
+ 0
+ 0
+ 40.5
+ 255
+
+
+ Left
+ Center
+
+ Outline
+
+
@@ -177,8 +595,8 @@
Button
Button
- 1612.5
- 900
+ 1625
+ 790
225
75
0
@@ -199,14 +617,6 @@
Outline
TR_SCREENOVIDEO_BUTTON_ADJUSTMENTS
-
- 39
- 15
-
-
- 39
- 15
-
@@ -216,28 +626,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 150
- 1072.5
- 75
+ 965
+ 172
+ 890
+ 60
0
- 757.5
- 157.5
- 60
- 60
+ 971
+ 178
+ 48
+ 48
0
- 1755
- 157.5
- 60
- 60
+ 1801
+ 178
+ 48
+ 48
0
@@ -246,10 +656,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -258,28 +668,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 240
- 1072.5
- 75
+ 965
+ 243.33
+ 890
+ 60
0
- 757.5
- 247.5
- 60
- 60
+ 971
+ 249.33
+ 48
+ 48
0
- 1755
- 247.5
- 60
- 60
+ 1801
+ 249.33
+ 48
+ 48
0
@@ -288,10 +698,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -300,28 +710,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 330
- 1072.5
- 75
+ 965
+ 314.67
+ 890
+ 60
0
- 757.5
- 337.5
- 60
- 60
+ 971
+ 320.67
+ 48
+ 48
0
- 1755
- 337.5
- 60
- 60
+ 1801
+ 320.67
+ 48
+ 48
0
@@ -330,10 +740,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -342,28 +752,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 420
- 1072.5
- 75
+ 965
+ 386
+ 890
+ 60
0
- 757.5
- 427.5
- 60
- 60
+ 971
+ 392
+ 48
+ 48
0
- 1755
- 427.5
- 60
- 60
+ 1801
+ 392
+ 48
+ 48
0
@@ -372,10 +782,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -384,28 +794,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 510
- 1072.5
- 75
+ 965
+ 457.33
+ 890
+ 60
0
- 757.5
- 517.5
- 60
- 60
+ 971
+ 463.33
+ 48
+ 48
0
- 1755
- 517.5
- 60
- 60
+ 1801
+ 463.33
+ 48
+ 48
0
@@ -414,10 +824,10 @@
- 40.5
- 75
+ 36
+ 60
0
- 300
+ 246.67
Outline
Bold
3
@@ -426,28 +836,28 @@
SelectSlideArrowLeft
SelectSlideArrowRight
- SelectSlide
+ OptionsSlideSelected
SelectSlideArrowLeft
SelectSlideArrowRight
- 750
- 600
- 1072.5
- 75
+ 965
+ 528.67
+ 890
+ 60
0
- 757.5
- 607.5
- 60
- 60
+ 971
+ 534.67
+ 48
+ 48
0
- 1755
- 607.5
- 60
- 60
+ 1801
+ 534.67
+ 48
+ 48
0
@@ -456,10 +866,10 @@
- 27
- 50
+ 36
+ 60
0
- 150
+ 246.67
Outline
Bold
3
diff --git a/Vocaluxe/Base/CConfig.cs b/Vocaluxe/Base/CConfig.cs
index dae4516a..cb338521 100644
--- a/Vocaluxe/Base/CConfig.cs
+++ b/Vocaluxe/Base/CConfig.cs
@@ -192,6 +192,8 @@ namespace Vocaluxe.Base
public EOffOn Tabs;
[DefaultValue(EOffOn.TR_CONFIG_OFF)]
public EOffOn AutoplayPreviews;
+ [DefaultValue(EOffOn.TR_CONFIG_ON)]
+ public EOffOn TileCaption;
[XmlAltName("AutoplayPreviewDelay"), DefaultValue(500)]
public int AutoplayPreviewDelay;
[DefaultValue(ELyricsPosition.TR_CONFIG_LYRICSPOSITION_BOTTOM)]
@@ -509,7 +511,7 @@ namespace Vocaluxe.Base
case "TextureQuality":
return "TextureQuality: " + CHelper.ListStrings(Enum.GetNames(typeof(ETextureQuality)));
case "CoverSize":
- return "CoverSize (pixels): 32, 64, 128, 256, 512, 1024 (default: 512)";
+ return "CoverSize (pixels): 128, 256, 512, 1024 (default: 512)";
case "NumScreens":
return "Number of screens to use. 1 - 6 (default: 1)";
case "ScreenW":
@@ -546,6 +548,8 @@ namespace Vocaluxe.Base
return "Cover Loading: " + CHelper.ListStrings(Enum.GetNames(typeof(ECoverLoading)));
case "LyricStyle":
return "Lyric Style: " + CHelper.ListStrings(Enum.GetNames(typeof(ELyricStyle)));
+ case "TileCaption":
+ return "Show artist and title on the selected tile of the song selection: " + CHelper.ListStrings(Enum.GetNames(typeof(EOffOn)));
case "PlayBackLib":
return "PlayBackLib: " + CHelper.ListStrings(Enum.GetNames(typeof(EPlaybackLib)));
case "RecordLib":
@@ -767,8 +771,10 @@ namespace Vocaluxe.Base
///
public static void NormalizeSongPaths()
{
+ Config.Game.SongFolder = Config.Game.SongFolder.Where(folder => !string.IsNullOrEmpty(folder)).ToArray();
+
//Check if there are configured songfolders
- if (Config.Game.SongFolder.Length > 0 && Config.Game.SongFolder[0] != "")
+ if (Config.Game.SongFolder.Length > 0)
{
SongFolders.Clear();
diff --git a/Vocaluxe/Base/CGraphics.cs b/Vocaluxe/Base/CGraphics.cs
index 176b3d67..713e36b1 100644
--- a/Vocaluxe/Base/CGraphics.cs
+++ b/Vocaluxe/Base/CGraphics.cs
@@ -68,7 +68,6 @@ namespace Vocaluxe.Base
_Screens.Add(new CScreenLoad());
_Screens.Add(new CScreenMain());
_Screens.Add(new CScreenSong());
- _Screens.Add(new CScreenOptions());
_Screens.Add(new CScreenSing());
_Screens.Add(new CScreenProfiles());
_Screens.Add(new CScreenScore());
@@ -82,6 +81,7 @@ namespace Vocaluxe.Base
_Screens.Add(new CScreenOptionsTheme());
_Screens.Add(new CScreenOptionsGraphics());
_Screens.Add(new CScreenOptionsServer());
+ _Screens.Add(new CScreenOptionsSongFolders());
_Screens.Add(new CScreenNames());
_Screens.Add(new CScreenCredits());
_Screens.Add(new CScreenParty());
diff --git a/Vocaluxe/Base/CMain.cs b/Vocaluxe/Base/CMain.cs
index 64dac969..eba613c8 100644
--- a/Vocaluxe/Base/CMain.cs
+++ b/Vocaluxe/Base/CMain.cs
@@ -121,6 +121,11 @@ namespace Vocaluxe.Base
return CConfig.Config.Theme.DrawToneHelper;
}
+ public EOffOn GetTileCaption()
+ {
+ return CConfig.Config.Game.TileCaption;
+ }
+
public int GetCoverSize()
{
return CConfig.Config.Graphics.CoverSize;
diff --git a/Vocaluxe/Screens/CScreenCredits.cs b/Vocaluxe/Screens/CScreenCredits.cs
index ec6e7c15..088976a3 100644
--- a/Vocaluxe/Screens/CScreenCredits.cs
+++ b/Vocaluxe/Screens/CScreenCredits.cs
@@ -342,7 +342,7 @@ namespace Vocaluxe.Screens
private void _LeaveScreen()
{
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.OptionsGame);
if (_BackgroundVideo != null)
{
diff --git a/Vocaluxe/Screens/CScreenMain.cs b/Vocaluxe/Screens/CScreenMain.cs
index aad50a60..3eca2386 100644
--- a/Vocaluxe/Screens/CScreenMain.cs
+++ b/Vocaluxe/Screens/CScreenMain.cs
@@ -83,7 +83,7 @@ namespace Vocaluxe.Screens
switch (keyEvent.Key)
{
case Keys.O:
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.OptionsGame);
_LeaveScreen();
break;
@@ -134,7 +134,7 @@ namespace Vocaluxe.Screens
if (_Buttons[_ButtonOptions].Selected)
{
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.OptionsGame);
_LeaveScreen();
}
@@ -193,7 +193,7 @@ namespace Vocaluxe.Screens
if (_Buttons[_ButtonOptions].Selected)
{
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.OptionsGame);
_LeaveScreen();
}
diff --git a/Vocaluxe/Screens/CScreenOptions.cs b/Vocaluxe/Screens/CScreenOptions.cs
deleted file mode 100644
index 0fd4de2c..00000000
--- a/Vocaluxe/Screens/CScreenOptions.cs
+++ /dev/null
@@ -1,303 +0,0 @@
-#region license
-// This file is part of Vocaluxe.
-//
-// Vocaluxe is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Vocaluxe is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Vocaluxe. If not, see .
-#endregion
-
-using System.Collections.Generic;
-using System.Linq;
-using System.Windows.Forms;
-using Vocaluxe.Base;
-using VocaluxeLib;
-using VocaluxeLib.Menu;
-
-namespace Vocaluxe.Screens
-{
- public class CScreenOptions : CMenu
- {
- // Version number for theme files. Increment it, if you've changed something on the theme files!
- protected override int _ScreenVersion
- {
- get { return 4; }
- }
-
- private const string _ButtonOptionsBack = "ButtonOptionsBack";
- private const string _ButtonOptionsGame = "ButtonOptionsGame";
- private const string _ButtonOptionsSound = "ButtonOptionsSound";
- private const string _ButtonOptionsRecord = "ButtonOptionsRecord";
- private const string _ButtonOptionsVideo = "ButtonOptionsVideo";
- private const string _ButtonOptionsLyrics = "ButtonOptionsLyrics";
- private const string _ButtonOptionsTheme = "ButtonOptionsTheme";
- private const string _ButtonOptionsCredits = "ButtonOptionsCredits";
- private const string _ButtonOptionsGraphics = "ButtonOptionsGraphics";
- private const string _ButtonOptionsServer = "ButtonOptionsServer";
- private const string _ButtonSelectSongFolder = "ButtonSongFolder";
-
- private const string _TextWarningRestart = "TextWarningRestart";
- private const string _StaticWarningRestart = "StaticWarningRestart";
-
- private int _WarningStream = -1;
- private bool _HasPlayedWarningSound = false;
-
- private static int PlaySound(ESounds sound, int volume)
- {
- var streamId = CSound.PlaySound(sound, false);
- CSound.SetStreamVolume(streamId, volume);
-
- return streamId;
- }
-
- public override void Init()
- {
- base.Init();
-
- _ThemeButtons = new string[]
- {
- _ButtonOptionsBack, _ButtonOptionsGame, _ButtonOptionsSound, _ButtonOptionsRecord, _ButtonOptionsVideo, _ButtonOptionsLyrics, _ButtonOptionsTheme,
- _ButtonOptionsCredits, _ButtonOptionsGraphics, _ButtonOptionsServer, _ButtonSelectSongFolder
- };
- _ThemeTexts = new string[] { _TextWarningRestart };
- _ThemeStatics = new string[] { _StaticWarningRestart };
- }
-
- public override void LoadTheme(string xmlPath)
- {
- base.LoadTheme(xmlPath);
-
- _Texts[_TextWarningRestart].Visible = false;
- _Statics[_StaticWarningRestart].Visible = false;
- }
-
- public override bool HandleInput(SKeyEvent keyEvent)
- {
- base.HandleInput(keyEvent);
-
- if (keyEvent.KeyPressed) { }
- else
- {
- switch (keyEvent.Key)
- {
- case Keys.Escape:
- case Keys.Back:
- CGraphics.FadeTo(EScreen.Main);
- _LeaveScreen();
- break;
-
- case Keys.S:
- CParty.SetNormalGameMode();
- CGraphics.FadeTo(EScreen.Song);
- _LeaveScreen();
- break;
-
- case Keys.Enter:
- if (_Buttons[_ButtonOptionsBack].Selected)
- {
- CGraphics.FadeTo(EScreen.Main);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsGame].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsGame);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsSound].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsSound);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsRecord].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsRecord);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsVideo].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsVideo);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsLyrics].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsLyrics);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsTheme].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsTheme);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsGraphics].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsGraphics);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsServer].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsServer);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsCredits].Selected)
- {
- CGraphics.FadeTo(EScreen.Credits);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonSelectSongFolder].Selected && CScreenOptions._OpenSongFolderDialog())
- {
- _Texts[_TextWarningRestart].Visible = true;
- _Statics[_StaticWarningRestart].Visible = true;
- }
-
- break;
- }
- }
-
- return true;
- }
-
- public override bool HandleMouse(SMouseEvent mouseEvent)
- {
- base.HandleMouse(mouseEvent);
-
- if (mouseEvent.LB && _IsMouseOverCurSelection(mouseEvent))
- {
- if (_Buttons[_ButtonOptionsBack].Selected)
- {
- CGraphics.FadeTo(EScreen.Main);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsGame].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsGame);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsSound].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsSound);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsRecord].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsRecord);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsVideo].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsVideo);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsLyrics].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsLyrics);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsTheme].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsTheme);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsGraphics].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsGraphics);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsServer].Selected)
- {
- CGraphics.FadeTo(EScreen.OptionsServer);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonOptionsCredits].Selected)
- {
- CGraphics.FadeTo(EScreen.Credits);
- _LeaveScreen();
- }
-
- if (_Buttons[_ButtonSelectSongFolder].Selected && CScreenOptions._OpenSongFolderDialog())
- {
- _Texts[_TextWarningRestart].Visible = true;
- _Statics[_StaticWarningRestart].Visible = true;
- }
- }
-
- if (mouseEvent.RB)
- {
- CGraphics.FadeTo(EScreen.Main);
- _LeaveScreen();
- }
-
- return true;
- }
-
- public override bool UpdateGame()
- {
- if (_Texts[_TextWarningRestart].Visible && !_HasPlayedWarningSound)
- {
- _WarningStream = CScreenOptions.PlaySound(ESounds.Warning, CConfig.SoundEffectVolume);
- _HasPlayedWarningSound = true;
- }
-
- return true;
- }
-
- private static bool _OpenSongFolderDialog()
- {
- using (var dialog = new FolderBrowserDialog())
- {
- dialog.Description = CLanguage.Translate("TR_SCREENO_SONGFOLDER");
- dialog.ShowNewFolderButton = true;
- if (dialog.ShowDialog() == DialogResult.OK)
- {
- // Update config with new folder
- var folders = CConfig.Config.Game.SongFolder?.ToList() ?? new List();
- if (!folders.Contains(dialog.SelectedPath))
- {
- folders.Add(dialog.SelectedPath);
- CConfig.Config.Game.SongFolder = folders.ToArray();
- CConfig.SaveConfig();
- }
-
- return true; // Folder was selected
- }
- }
-
- return false; // Dialog was cancelled
- }
-
- private void _LeaveScreen()
- {
- if (_WarningStream != -1)
- {
- CSound.Close(_WarningStream);
- _WarningStream = -1;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Vocaluxe/Screens/CScreenOptionsBase.cs b/Vocaluxe/Screens/CScreenOptionsBase.cs
new file mode 100644
index 00000000..075bef14
--- /dev/null
+++ b/Vocaluxe/Screens/CScreenOptionsBase.cs
@@ -0,0 +1,310 @@
+#region license
+// This file is part of Vocaluxe.
+//
+// Vocaluxe is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Vocaluxe is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Vocaluxe. If not, see .
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+using Vocaluxe.Base;
+using VocaluxeLib;
+using VocaluxeLib.Menu;
+
+namespace Vocaluxe.Screens
+{
+ public abstract class CScreenOptionsBase : CMenu
+ {
+ private static readonly string[] _NavNames = { "Game", "Sound", "Record", "Video", "Lyrics", "Theme", "Graphics", "Server", "SongFolders", "Credits" };
+ private static readonly EScreen[] _NavScreens =
+ {
+ EScreen.OptionsGame, EScreen.OptionsSound, EScreen.OptionsRecord, EScreen.OptionsVideo, EScreen.OptionsLyrics, EScreen.OptionsTheme, EScreen.OptionsGraphics,
+ EScreen.OptionsServer, EScreen.OptionsSongFolders, EScreen.Credits
+ };
+ private const int _NumOptionScreens = 9;
+
+ private const string _StaticNavSelected = "StaticNavSelected";
+ private const string _StaticNavIconSelected = "StaticNavIconSelected";
+ private const string _TextNavSelected = "TextNavSelected";
+
+ private readonly Dictionary _NavColors = new Dictionary();
+ private bool _NavFocused;
+ private int _NavCursor;
+ private IMenuElement _ContentSelection;
+ private bool _PendingNavFocus;
+ private bool _PendingContentFocus;
+ private static bool _SwitchingOptions;
+
+ protected abstract EScreen _OptionsScreen { get; }
+
+ protected abstract void _SaveOptions();
+
+ private int _CurrentNavIndex
+ {
+ get { return Array.IndexOf(_NavScreens, _OptionsScreen); }
+ }
+
+ private bool _HasNavigation
+ {
+ get { return _Statics.ContainsKey(_StaticNavSelected) && _Statics.ContainsKey("StaticNav" + _NavNames[0]); }
+ }
+
+ public override void LoadTheme(string xmlPath)
+ {
+ base.LoadTheme(xmlPath);
+
+ _NavColors.Clear();
+ foreach (var name in _NavNames)
+ {
+ var icon = "StaticNavIcon" + name;
+ if (_Statics.ContainsKey(icon))
+ {
+ _NavColors[icon] = _Statics[icon].Color;
+ }
+
+ var text = "TextNav" + name;
+ if (_Texts.ContainsKey(text))
+ {
+ _NavColors[text] = _Texts[text].Color;
+ }
+ }
+
+ if (_Statics.ContainsKey(_StaticNavIconSelected))
+ {
+ _Statics[_StaticNavIconSelected].Visible = false;
+ }
+
+ if (_Texts.ContainsKey(_TextNavSelected))
+ {
+ _Texts[_TextNavSelected].Visible = false;
+ }
+
+ _NavFocused = false;
+ _UpdateNavHighlight();
+ }
+
+ public override void OnShow()
+ {
+ base.OnShow();
+
+ _NavFocused = false;
+ _ContentSelection = null;
+ _PendingNavFocus = !_SwitchingOptions;
+ _PendingContentFocus = _SwitchingOptions;
+ _SwitchingOptions = false;
+ _UpdateNavHighlight();
+ }
+
+ public override void Draw()
+ {
+ if (_PendingNavFocus)
+ {
+ _PendingNavFocus = false;
+ if (_HasNavigation)
+ {
+ _SetNavFocus(true);
+ _ContentSelection = _GetFirstContentElement();
+ }
+ }
+ else if (_PendingContentFocus)
+ {
+ _PendingContentFocus = false;
+ var first = _GetFirstContentElement();
+ if (first != null)
+ {
+ _SelectElement(first);
+ }
+ }
+
+ base.Draw();
+ }
+
+ protected bool _HandleNavigationInput(SKeyEvent keyEvent)
+ {
+ if (!_HasNavigation)
+ {
+ return false;
+ }
+
+ if (_NavFocused)
+ {
+ if (keyEvent.KeyPressed)
+ {
+ return true;
+ }
+
+ switch (keyEvent.Key)
+ {
+ case Keys.Escape:
+ case Keys.Back:
+ return false;
+
+ case Keys.Up:
+ _NavCursor = (_NavCursor - 1 + _NavNames.Length) % _NavNames.Length;
+ _UpdateNavHighlight();
+ break;
+
+ case Keys.Down:
+ _NavCursor = (_NavCursor + 1) % _NavNames.Length;
+ _UpdateNavHighlight();
+ break;
+
+ case Keys.Enter:
+ case Keys.Right:
+ if (_NavCursor == _CurrentNavIndex)
+ {
+ _SetNavFocus(false);
+ }
+ else
+ {
+ _SwitchTo(_NavCursor);
+ }
+
+ break;
+ }
+
+ return true;
+ }
+
+ if (keyEvent.Key == Keys.Escape || keyEvent.Key == Keys.Back)
+ {
+ if (!keyEvent.KeyPressed)
+ {
+ _SetNavFocus(true);
+ }
+
+ return true;
+ }
+
+ if (keyEvent.Key != Keys.Tab)
+ {
+ return false;
+ }
+
+ if (!keyEvent.KeyPressed)
+ {
+ var step = keyEvent.Mod == EModifier.Shift ? -1 : 1;
+ _SwitchTo((_CurrentNavIndex + step + _NumOptionScreens) % _NumOptionScreens);
+ }
+
+ return true;
+ }
+
+ protected bool _HandleNavigationMouse(SMouseEvent mouseEvent)
+ {
+ for (var i = 0; i < _NavNames.Length; i++)
+ {
+ var row = "StaticNav" + _NavNames[i];
+ if (!_Statics.ContainsKey(row) || !CHelper.IsInBounds(_Statics[row].Rect, mouseEvent))
+ {
+ continue;
+ }
+
+ if (!mouseEvent.LB)
+ {
+ return false;
+ }
+
+ _SwitchTo(i);
+ return true;
+ }
+
+ if (_NavFocused)
+ {
+ _SetNavFocus(false);
+ }
+
+ return false;
+ }
+
+ private IMenuElement _GetFirstContentElement()
+ {
+ return _SelectSlides.Cast().Concat(_Buttons).Where(element => element.Selectable).OrderBy(element => element.Rect.Y).ThenBy(element => element.Rect.X)
+ .FirstOrDefault();
+ }
+
+ private void _SetNavFocus(bool focused)
+ {
+ if (focused)
+ {
+ _ContentSelection = _SelectSlides.FirstOrDefault(slide => slide.Selected) ?? (IMenuElement)_Buttons.FirstOrDefault(button => button.Selected);
+ if (_ContentSelection != null)
+ {
+ _ContentSelection.Selected = false;
+ }
+
+ _NavCursor = _CurrentNavIndex;
+ }
+ else if (_ContentSelection != null)
+ {
+ _SelectElement(_ContentSelection);
+ _ContentSelection = null;
+ }
+
+ _NavFocused = focused;
+ _UpdateNavHighlight();
+ }
+
+ private void _UpdateNavHighlight()
+ {
+ if (!_HasNavigation)
+ {
+ return;
+ }
+
+ var highlighted = _NavFocused ? _NavCursor : _CurrentNavIndex;
+ var selected = _Statics[_StaticNavSelected];
+ for (var i = 0; i < _NavNames.Length; i++)
+ {
+ var row = "StaticNav" + _NavNames[i];
+ var icon = "StaticNavIcon" + _NavNames[i];
+ var text = "TextNav" + _NavNames[i];
+ var isHighlighted = i == highlighted;
+
+ if (_Statics.ContainsKey(row))
+ {
+ _Statics[row].Visible = !isHighlighted;
+ if (isHighlighted)
+ {
+ var rowRect = _Statics[row].Rect;
+ selected.MaxRect = new SRectF(rowRect.X, rowRect.Y, rowRect.W, rowRect.H, selected.Rect.Z);
+ }
+ }
+
+ if (_Statics.ContainsKey(icon) && _NavColors.ContainsKey(icon))
+ {
+ _Statics[icon].Color = isHighlighted && _Statics.ContainsKey(_StaticNavIconSelected) ? _Statics[_StaticNavIconSelected].Color : _NavColors[icon];
+ }
+
+ if (_Texts.ContainsKey(text) && _NavColors.ContainsKey(text))
+ {
+ _Texts[text].Color = isHighlighted && _Texts.ContainsKey(_TextNavSelected) ? _Texts[_TextNavSelected].Color : _NavColors[text];
+ }
+ }
+ }
+
+ private void _SwitchTo(int index)
+ {
+ if (_NavScreens[index] == _OptionsScreen)
+ {
+ return;
+ }
+
+ _SaveOptions();
+ _SwitchingOptions = true;
+ CGraphics.FadeTo(_NavScreens[index]);
+ }
+ }
+}
diff --git a/Vocaluxe/Screens/CScreenOptionsGame.cs b/Vocaluxe/Screens/CScreenOptionsGame.cs
index 5ac2a105..8984281d 100644
--- a/Vocaluxe/Screens/CScreenOptionsGame.cs
+++ b/Vocaluxe/Screens/CScreenOptionsGame.cs
@@ -22,12 +22,17 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- public class CScreenOptionsGame : CMenu
+ public class CScreenOptionsGame : CScreenOptionsBase
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
{
- get { return 6; }
+ get { return 7; }
+ }
+
+ protected override EScreen _OptionsScreen
+ {
+ get { return EScreen.OptionsGame; }
}
private const string _SelectSlideLanguage = "SelectSlideLanguage";
@@ -38,6 +43,9 @@ namespace Vocaluxe.Screens
private const string _SelectSlideAutoplayPreviews = "SelectSlideAutoplayPreviews";
private const string _SelectSlideTimerMode = "SelectSlideTimerMode";
private const string _SelectSlideHighscoreStyle = "SelectSlideHighscoreStyle";
+ private const string _SelectSlideTileCaption = "SelectSlideTileCaption";
+
+ private const string _TextTileCaption = "TextTileCaption";
private const string _ButtonExit = "ButtonExit";
@@ -48,8 +56,10 @@ namespace Vocaluxe.Screens
_ThemeButtons = new string[] { _ButtonExit };
_ThemeSelectSlides = new string[]
{
- _SelectSlideLanguage, _SelectSlideDebugLevel, _SelectSlideSongMenu, _SelectSlideSongSorting, _SelectSlideTabs, _SelectSlideTimerMode, _SelectSlideHighscoreStyle
+ _SelectSlideLanguage, _SelectSlideDebugLevel, _SelectSlideSongMenu, _SelectSlideSongSorting, _SelectSlideTabs, _SelectSlideAutoplayPreviews, _SelectSlideTimerMode,
+ _SelectSlideHighscoreStyle, _SelectSlideTileCaption
};
+ _ThemeTexts = new string[] { _TextTileCaption };
}
public override void LoadTheme(string xmlPath)
@@ -66,10 +76,17 @@ namespace Vocaluxe.Screens
_SelectSlides[_SelectSlideAutoplayPreviews].SetValues((int)CConfig.Config.Game.AutoplayPreviews);
_SelectSlides[_SelectSlideTimerMode].SetValues((int)CConfig.Config.Game.TimerMode);
_SelectSlides[_SelectSlideHighscoreStyle].SetValues((int)CConfig.Config.Game.HighscoreStyle);
+ _SelectSlides[_SelectSlideTileCaption].SetValues((int)CConfig.Config.Game.TileCaption);
+ _UpdateTileCaptionState();
}
public override bool HandleInput(SKeyEvent keyEvent)
{
+ if (_HandleNavigationInput(keyEvent))
+ {
+ return true;
+ }
+
base.HandleInput(keyEvent);
if (!keyEvent.KeyPressed)
@@ -79,7 +96,7 @@ namespace Vocaluxe.Screens
case Keys.Escape:
case Keys.Back:
_SaveConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
break;
case Keys.S:
@@ -92,7 +109,7 @@ namespace Vocaluxe.Screens
if (_Buttons[_ButtonExit].Selected)
{
_SaveConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
}
break;
@@ -107,25 +124,32 @@ namespace Vocaluxe.Screens
}
}
+ _UpdateTileCaptionState();
return true;
}
public override bool HandleMouse(SMouseEvent mouseEvent)
{
+ if (_HandleNavigationMouse(mouseEvent))
+ {
+ return true;
+ }
+
base.HandleMouse(mouseEvent);
if (mouseEvent.RB)
{
_SaveConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
}
if (mouseEvent.LB && _IsMouseOverCurSelection(mouseEvent) && _Buttons[_ButtonExit].Selected)
{
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
_SaveConfig();
}
+ _UpdateTileCaptionState();
return true;
}
@@ -134,6 +158,13 @@ namespace Vocaluxe.Screens
return true;
}
+ private void _UpdateTileCaptionState()
+ {
+ var enabled = (ESongMenu)_SelectSlides[_SelectSlideSongMenu].Selection == ESongMenu.TR_CONFIG_TILE_BOARD;
+ _SelectSlides[_SelectSlideTileCaption].Enabled = enabled;
+ _Texts[_TextTileCaption].Alpha = enabled ? 1f : 0.4f;
+ }
+
private void _SaveConfig()
{
CLanguage.LanguageId = _SelectSlides[_SelectSlideLanguage].Selection;
@@ -145,11 +176,17 @@ namespace Vocaluxe.Screens
CConfig.Config.Game.AutoplayPreviews = (EOffOn)_SelectSlides[_SelectSlideAutoplayPreviews].Selection;
CConfig.Config.Game.TimerMode = (ETimerMode)_SelectSlides[_SelectSlideTimerMode].Selection;
CConfig.Config.Game.HighscoreStyle = (EHighscoreStyle)_SelectSlides[_SelectSlideHighscoreStyle].Selection;
+ CConfig.Config.Game.TileCaption = (EOffOn)_SelectSlides[_SelectSlideTileCaption].Selection;
CConfig.SaveConfig();
CSongs.Sorter.SongSorting = CConfig.Config.Game.SongSorting;
CSongs.Categorizer.Tabs = CConfig.Config.Game.Tabs;
}
+
+ protected override void _SaveOptions()
+ {
+ _SaveConfig();
+ }
}
}
\ No newline at end of file
diff --git a/Vocaluxe/Screens/CScreenOptionsGraphics.cs b/Vocaluxe/Screens/CScreenOptionsGraphics.cs
index 3dab6ada..23750927 100644
--- a/Vocaluxe/Screens/CScreenOptionsGraphics.cs
+++ b/Vocaluxe/Screens/CScreenOptionsGraphics.cs
@@ -24,12 +24,17 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- public class CScreenOptionsGraphics : CMenu
+ public class CScreenOptionsGraphics : CScreenOptionsBase
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
{
- get { return 1; }
+ get { return 2; }
+ }
+
+ protected override EScreen _OptionsScreen
+ {
+ get { return EScreen.OptionsGraphics; }
}
private const string _SelectSlideTextureQuality = "SelectSlideTextureQuality";
@@ -39,7 +44,8 @@ namespace Vocaluxe.Screens
private const string _TextWarningRestart = "TextWarningRestart";
private const string _StaticWarningRestart = "StaticWarningRestart";
private const string _ButtonExit = "ButtonExit";
- private static readonly string[] CoverSizes = { "32", "64", "128", "256", "512", "1024" };
+ private static readonly string[] CoverSizes = { "128", "256", "512", "1024" };
+ private int _LoadedCoverSizeIndex;
private int _WarningStream = -1;
private bool _HasPlayedWarningSound = false;
@@ -70,7 +76,17 @@ namespace Vocaluxe.Screens
_SelectSlides[_SelectSlideCoverSize].AddValues(CoverSizes);
var currentCoverSize = CConfig.Config.Graphics.CoverSize;
var index = Array.IndexOf(CoverSizes, currentCoverSize.ToString());
+ if (index < 0)
+ {
+ index = Array.FindIndex(CoverSizes, size => int.Parse(size) >= currentCoverSize);
+ if (index < 0)
+ {
+ index = CoverSizes.Length - 1;
+ }
+ }
+
_SelectSlides[_SelectSlideCoverSize].Selection = index;
+ _LoadedCoverSizeIndex = index;
_SelectSlides[_SelectSlideFullScreen].SetValues((int)CConfig.Config.Graphics.FullScreen);
_SelectSlides[_SelectSlideFullScreen].Selection = (int)CConfig.Config.Graphics.FullScreen;
@@ -84,41 +100,49 @@ namespace Vocaluxe.Screens
public override bool HandleInput(SKeyEvent keyEvent)
{
+ if (_HandleNavigationInput(keyEvent))
+ {
+ return true;
+ }
+
base.HandleInput(keyEvent);
- switch (keyEvent.Key)
+ if (!keyEvent.KeyPressed)
{
- case Keys.Escape:
- case Keys.Back:
- _SaveConfig();
- CGraphics.FadeTo(EScreen.Options);
- _LeaveScreen();
- break;
-
- case Keys.S:
- CParty.SetNormalGameMode();
- _SaveConfig();
- CGraphics.FadeTo(EScreen.Song);
- _LeaveScreen();
- break;
-
- case Keys.Enter:
- if (_Buttons[_ButtonExit].Selected)
- {
+ switch (keyEvent.Key)
+ {
+ case Keys.Escape:
+ case Keys.Back:
_SaveConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
_LeaveScreen();
- }
+ break;
- break;
+ case Keys.S:
+ CParty.SetNormalGameMode();
+ _SaveConfig();
+ CGraphics.FadeTo(EScreen.Song);
+ _LeaveScreen();
+ break;
- case Keys.Left:
- _SaveConfig();
- break;
+ case Keys.Enter:
+ if (_Buttons[_ButtonExit].Selected)
+ {
+ _SaveConfig();
+ CGraphics.FadeTo(EScreen.Main);
+ _LeaveScreen();
+ }
- case Keys.Right:
- _SaveConfig();
- break;
+ break;
+
+ case Keys.Left:
+ _SaveConfig();
+ break;
+
+ case Keys.Right:
+ _SaveConfig();
+ break;
+ }
}
return true;
@@ -126,12 +150,17 @@ namespace Vocaluxe.Screens
public override bool HandleMouse(SMouseEvent mouseEvent)
{
+ if (_HandleNavigationMouse(mouseEvent))
+ {
+ return true;
+ }
+
base.HandleMouse(mouseEvent);
if (mouseEvent.RB)
{
_SaveConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
_LeaveScreen();
}
@@ -140,7 +169,7 @@ namespace Vocaluxe.Screens
_SaveConfig();
if (_Buttons[_ButtonExit].Selected)
{
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
_LeaveScreen();
}
}
@@ -148,6 +177,12 @@ namespace Vocaluxe.Screens
return true;
}
+ public override void OnShow()
+ {
+ base.OnShow();
+ _HasPlayedWarningSound = false;
+ }
+
public override bool UpdateGame()
{
if (_Texts[_TextWarningRestart].Visible && !_HasPlayedWarningSound)
@@ -178,7 +213,7 @@ namespace Vocaluxe.Screens
// Detect Cover size change
var selectedValue = CoverSizes[_SelectSlides[_SelectSlideCoverSize].Selection];
var currentCoverSize = CConfig.Config.Graphics.CoverSize;
- var newCoverSize = int.Parse(selectedValue);
+ var newCoverSize = _SelectSlides[_SelectSlideCoverSize].Selection == _LoadedCoverSizeIndex ? currentCoverSize : int.Parse(selectedValue);
if (currentCoverSize != newCoverSize)
{
_Texts[_TextWarningRestart].Visible = true;
@@ -204,5 +239,11 @@ namespace Vocaluxe.Screens
_WarningStream = -1;
}
}
+
+ protected override void _SaveOptions()
+ {
+ _SaveConfig();
+ _LeaveScreen();
+ }
}
}
diff --git a/Vocaluxe/Screens/CScreenOptionsLyrics.cs b/Vocaluxe/Screens/CScreenOptionsLyrics.cs
index 377772de..d000dabf 100644
--- a/Vocaluxe/Screens/CScreenOptionsLyrics.cs
+++ b/Vocaluxe/Screens/CScreenOptionsLyrics.cs
@@ -22,12 +22,17 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- public class CScreenOptionsLyrics : CMenu
+ public class CScreenOptionsLyrics : CScreenOptionsBase
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
{
- get { return 4; }
+ get { return 5; }
+ }
+
+ protected override EScreen _OptionsScreen
+ {
+ get { return EScreen.OptionsLyrics; }
}
private const string _SelectSlideLyricStyle = "SelectSlideLyricStyle";
@@ -51,6 +56,11 @@ namespace Vocaluxe.Screens
public override bool HandleInput(SKeyEvent keyEvent)
{
+ if (_HandleNavigationInput(keyEvent))
+ {
+ return true;
+ }
+
base.HandleInput(keyEvent);
if (keyEvent.KeyPressed) { }
@@ -61,7 +71,7 @@ namespace Vocaluxe.Screens
case Keys.Escape:
case Keys.Back:
_SaveConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
break;
case Keys.S:
@@ -74,7 +84,7 @@ namespace Vocaluxe.Screens
if (_Buttons[_ButtonExit].Selected)
{
_SaveConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
}
break;
@@ -94,12 +104,17 @@ namespace Vocaluxe.Screens
public override bool HandleMouse(SMouseEvent mouseEvent)
{
+ if (_HandleNavigationMouse(mouseEvent))
+ {
+ return true;
+ }
+
base.HandleMouse(mouseEvent);
if (mouseEvent.RB)
{
_SaveConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
}
if (mouseEvent.LB && _IsMouseOverCurSelection(mouseEvent))
@@ -107,7 +122,7 @@ namespace Vocaluxe.Screens
_SaveConfig();
if (_Buttons[_ButtonExit].Selected)
{
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
}
}
@@ -125,5 +140,10 @@ namespace Vocaluxe.Screens
CConfig.Config.Theme.LyricStyle = (ELyricStyle)_SelectSlides[_SelectSlideLyricStyle].Selection;
CConfig.SaveConfig();
}
+
+ protected override void _SaveOptions()
+ {
+ _SaveConfig();
+ }
}
}
\ No newline at end of file
diff --git a/Vocaluxe/Screens/CScreenOptionsRecord.cs b/Vocaluxe/Screens/CScreenOptionsRecord.cs
index 1a89a1b6..86295231 100644
--- a/Vocaluxe/Screens/CScreenOptionsRecord.cs
+++ b/Vocaluxe/Screens/CScreenOptionsRecord.cs
@@ -25,12 +25,17 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- public class CScreenOptionsRecord : CMenu
+ public class CScreenOptionsRecord : CScreenOptionsBase
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
{
- get { return 5; }
+ get { return 6; }
+ }
+
+ protected override EScreen _OptionsScreen
+ {
+ get { return EScreen.OptionsRecord; }
}
private const string _SelectSlideRecordDevices = "SelectSlideRecordDevices";
@@ -121,6 +126,11 @@ namespace Vocaluxe.Screens
public override bool HandleInput(SKeyEvent keyEvent)
{
+ if (_HandleNavigationInput(keyEvent))
+ {
+ return true;
+ }
+
base.HandleInput(keyEvent);
if (keyEvent.KeyPressed) { }
@@ -131,7 +141,7 @@ namespace Vocaluxe.Screens
case Keys.Escape:
case Keys.Back:
_SaveMicConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
_LeaveScreen();
break;
@@ -146,7 +156,7 @@ namespace Vocaluxe.Screens
if (_Buttons[_ButtonExit].Selected)
{
_SaveMicConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
_LeaveScreen();
}
@@ -176,12 +186,17 @@ namespace Vocaluxe.Screens
public override bool HandleMouse(SMouseEvent mouseEvent)
{
+ if (_HandleNavigationMouse(mouseEvent))
+ {
+ return true;
+ }
+
base.HandleMouse(mouseEvent);
if (mouseEvent.RB)
{
_SaveMicConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
_LeaveScreen();
}
@@ -192,7 +207,7 @@ namespace Vocaluxe.Screens
if (_Buttons[_ButtonExit].Selected)
{
_SaveMicConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
_LeaveScreen();
}
@@ -250,9 +265,18 @@ namespace Vocaluxe.Screens
}
}
- var showWarning = !_CheckMicConfig();
+ var warning = _GetWarning();
+ var showWarning = warning != null;
_Statics[_StaticWarning].Visible = showWarning;
_Texts[_TextWarning].Visible = showWarning;
+ if (showWarning)
+ {
+ _Texts[_TextWarning].Text = warning;
+ }
+ else
+ {
+ _HasPlayedWarningSound = false;
+ }
if (_Texts[_TextWarning].Visible && !_HasPlayedWarningSound)
{
@@ -299,6 +323,7 @@ namespace Vocaluxe.Screens
_Statics[_StaticWarning].Visible = false;
_Texts[_TextWarning].Visible = false;
+ _HasPlayedWarningSound = false;
_DelayTest.Reset();
@@ -495,6 +520,31 @@ namespace Vocaluxe.Screens
return true;
}
+ private string _GetWarning()
+ {
+ if (_Devices == null)
+ {
+ return "TR_SCREENORECORD_NO_MIC_WARNING";
+ }
+
+ if (!_CheckMicConfig())
+ {
+ return "TR_SCREENORECORD_MIC_WARNING";
+ }
+
+ var usedChannels = new HashSet();
+ foreach (var selectSlide in _SelectSlideRecordPlayer)
+ {
+ var channel = _SelectSlides[selectSlide].Selection;
+ if (channel > 0 && !usedChannels.Add(channel))
+ {
+ return "TR_SCREENORECORD_CHANNEL_WARNING";
+ }
+ }
+
+ return null;
+ }
+
private void _TestDelay()
{
_SaveMicConfig();
@@ -537,5 +587,11 @@ namespace Vocaluxe.Screens
_WarningStream = -1;
}
}
+
+ protected override void _SaveOptions()
+ {
+ _SaveMicConfig();
+ _LeaveScreen();
+ }
}
}
\ No newline at end of file
diff --git a/Vocaluxe/Screens/CScreenOptionsServer.cs b/Vocaluxe/Screens/CScreenOptionsServer.cs
index 060d5684..78812365 100644
--- a/Vocaluxe/Screens/CScreenOptionsServer.cs
+++ b/Vocaluxe/Screens/CScreenOptionsServer.cs
@@ -22,12 +22,17 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- public class CScreenOptionsServer : CMenu
+ public class CScreenOptionsServer : CScreenOptionsBase
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
{
- get { return 1; }
+ get { return 2; }
+ }
+
+ protected override EScreen _OptionsScreen
+ {
+ get { return EScreen.OptionsServer; }
}
private const string _SelectSlideServerActive = "SelectSlideServerActive";
@@ -70,45 +75,53 @@ namespace Vocaluxe.Screens
public override bool HandleInput(SKeyEvent keyEvent)
{
+ if (_HandleNavigationInput(keyEvent))
+ {
+ return true;
+ }
+
base.HandleInput(keyEvent);
- switch (keyEvent.Key)
+ if (!keyEvent.KeyPressed)
{
- case Keys.Escape:
- case Keys.Back:
- _SaveConfig();
- CGraphics.FadeTo(EScreen.Options);
- _LeaveScreen();
- break;
-
- case Keys.S:
- CParty.SetNormalGameMode();
- _SaveConfig();
- CGraphics.FadeTo(EScreen.Song);
- _LeaveScreen();
- break;
-
- case Keys.Enter:
- if (_Buttons[_ButtonExit].Selected)
- {
+ switch (keyEvent.Key)
+ {
+ case Keys.Escape:
+ case Keys.Back:
_SaveConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
_LeaveScreen();
- }
- else if (_Buttons[_ButtonServer].Selected)
- {
- CGraphics.ShowPopup(EPopupScreens.PopupServerQR);
- }
+ break;
- break;
+ case Keys.S:
+ CParty.SetNormalGameMode();
+ _SaveConfig();
+ CGraphics.FadeTo(EScreen.Song);
+ _LeaveScreen();
+ break;
- case Keys.Left:
- _SaveConfig();
- break;
+ case Keys.Enter:
+ if (_Buttons[_ButtonExit].Selected)
+ {
+ _SaveConfig();
+ CGraphics.FadeTo(EScreen.Main);
+ _LeaveScreen();
+ }
+ else if (_Buttons[_ButtonServer].Selected)
+ {
+ CGraphics.ShowPopup(EPopupScreens.PopupServerQR);
+ }
- case Keys.Right:
- _SaveConfig();
- break;
+ break;
+
+ case Keys.Left:
+ _SaveConfig();
+ break;
+
+ case Keys.Right:
+ _SaveConfig();
+ break;
+ }
}
return true;
@@ -116,12 +129,17 @@ namespace Vocaluxe.Screens
public override bool HandleMouse(SMouseEvent mouseEvent)
{
+ if (_HandleNavigationMouse(mouseEvent))
+ {
+ return true;
+ }
+
base.HandleMouse(mouseEvent);
if (mouseEvent.RB)
{
_SaveConfig();
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
_LeaveScreen();
}
@@ -129,7 +147,7 @@ namespace Vocaluxe.Screens
{
if (_Buttons[_ButtonExit].Selected)
{
- CGraphics.FadeTo(EScreen.Options);
+ CGraphics.FadeTo(EScreen.Main);
_SaveConfig();
_LeaveScreen();
}
@@ -142,6 +160,12 @@ namespace Vocaluxe.Screens
return true;
}
+ public override void OnShow()
+ {
+ base.OnShow();
+ _HasPlayedWarningSound = false;
+ }
+
public override bool UpdateGame()
{
if (_Texts[_TextWarningRestart].Visible && !_HasPlayedWarningSound)
@@ -196,5 +220,11 @@ namespace Vocaluxe.Screens
_WarningStream = -1;
}
}
+
+ protected override void _SaveOptions()
+ {
+ _SaveConfig();
+ _LeaveScreen();
+ }
}
}
\ No newline at end of file
diff --git a/Vocaluxe/Screens/CScreenOptionsSongFolders.cs b/Vocaluxe/Screens/CScreenOptionsSongFolders.cs
new file mode 100644
index 00000000..e69d6805
--- /dev/null
+++ b/Vocaluxe/Screens/CScreenOptionsSongFolders.cs
@@ -0,0 +1,375 @@
+#region license
+// This file is part of Vocaluxe.
+//
+// Vocaluxe is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Vocaluxe is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Vocaluxe. If not, see .
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Windows.Forms;
+using Vocaluxe.Base;
+using VocaluxeLib;
+using VocaluxeLib.Menu;
+
+namespace Vocaluxe.Screens
+{
+ public class CScreenOptionsSongFolders : CScreenOptionsBase
+ {
+ protected override int _ScreenVersion
+ {
+ get { return 3; }
+ }
+
+ protected override EScreen _OptionsScreen
+ {
+ get { return EScreen.OptionsSongFolders; }
+ }
+
+ private const int _NumRows = 8;
+
+ private const string _ButtonExit = "ButtonExit";
+ private const string _ButtonAddFolder = "ButtonAddFolder";
+ private const string _TextNoFolders = "TextNoFolders";
+ private const string _TextWarningRestart = "TextWarningRestart";
+ private const string _StaticWarningRestart = "StaticWarningRestart";
+ private const string _StaticScrollBar = "StaticScrollBar";
+ private const string _StaticScrollBarThumb = "StaticScrollBarThumb";
+
+ private readonly string[] _StaticFolder = new string[_NumRows];
+ private readonly string[] _TextFolder = new string[_NumRows];
+ private readonly string[] _ButtonRemoveFolder = new string[_NumRows];
+
+ private int _Offset;
+ private int _WarningStream = -1;
+ private bool _HasPlayedWarningSound;
+
+ public override void Init()
+ {
+ base.Init();
+
+ for (var i = 0; i < _NumRows; i++)
+ {
+ _StaticFolder[i] = "StaticFolder" + (i + 1);
+ _TextFolder[i] = "TextFolder" + (i + 1);
+ _ButtonRemoveFolder[i] = "ButtonRemoveFolder" + (i + 1);
+ }
+
+ var buttons = new List { _ButtonExit, _ButtonAddFolder };
+ buttons.AddRange(_ButtonRemoveFolder);
+ _ThemeButtons = buttons.ToArray();
+
+ var texts = new List { _TextNoFolders, _TextWarningRestart };
+ texts.AddRange(_TextFolder);
+ _ThemeTexts = texts.ToArray();
+
+ var statics = new List { _StaticWarningRestart, _StaticScrollBar, _StaticScrollBarThumb };
+ statics.AddRange(_StaticFolder);
+ _ThemeStatics = statics.ToArray();
+ }
+
+ public override void LoadTheme(string xmlPath)
+ {
+ base.LoadTheme(xmlPath);
+
+ _Texts[_TextWarningRestart].Visible = false;
+ _Statics[_StaticWarningRestart].Visible = false;
+ _UpdateList();
+ }
+
+ public override void OnShow()
+ {
+ base.OnShow();
+
+ _Offset = 0;
+ _HasPlayedWarningSound = false;
+ _UpdateList();
+ }
+
+ public override bool HandleInput(SKeyEvent keyEvent)
+ {
+ if (_HandleNavigationInput(keyEvent))
+ {
+ return true;
+ }
+
+ if (!keyEvent.KeyPressed && _ScrollWithSelection(keyEvent.Key))
+ {
+ return true;
+ }
+
+ base.HandleInput(keyEvent);
+
+ if (!keyEvent.KeyPressed)
+ {
+ switch (keyEvent.Key)
+ {
+ case Keys.Escape:
+ case Keys.Back:
+ _Leave(EScreen.Main);
+ break;
+
+ case Keys.S:
+ CParty.SetNormalGameMode();
+ _Leave(EScreen.Song);
+ break;
+
+ case Keys.PageUp:
+ _Scroll(-_NumRows);
+ break;
+
+ case Keys.PageDown:
+ _Scroll(_NumRows);
+ break;
+
+ case Keys.Enter:
+ _OnButtonAction();
+ break;
+ }
+ }
+
+ return true;
+ }
+
+ public override bool HandleMouse(SMouseEvent mouseEvent)
+ {
+ if (_HandleNavigationMouse(mouseEvent))
+ {
+ return true;
+ }
+
+ base.HandleMouse(mouseEvent);
+
+ if (mouseEvent.LB && _IsMouseOverCurSelection(mouseEvent))
+ {
+ _OnButtonAction();
+ }
+
+ if (mouseEvent.RB)
+ {
+ _Leave(EScreen.Main);
+ }
+
+ if (mouseEvent.Wheel != 0)
+ {
+ _Scroll(mouseEvent.Wheel);
+ }
+
+ if ((mouseEvent.LB || mouseEvent.LBH) && _Statics[_StaticScrollBar].Visible)
+ {
+ var bar = _Statics[_StaticScrollBar].Rect;
+ var area = new SRectF(bar.X - 15, bar.Y, bar.W + 30, bar.H, bar.Z);
+ if (CHelper.IsInBounds(area, mouseEvent))
+ {
+ _ScrollTo((mouseEvent.Y - bar.Y) / bar.H);
+ }
+ }
+
+ return true;
+ }
+
+ public override bool UpdateGame()
+ {
+ if (_Texts[_TextWarningRestart].Visible && !_HasPlayedWarningSound)
+ {
+ _WarningStream = CSound.PlaySound(ESounds.Warning, false);
+ CSound.SetStreamVolume(_WarningStream, CConfig.SoundEffectVolume);
+ _HasPlayedWarningSound = true;
+ }
+
+ return true;
+ }
+
+ private void _OnButtonAction()
+ {
+ if (_Buttons[_ButtonExit].Selected)
+ {
+ _Leave(EScreen.Main);
+ return;
+ }
+
+ if (_Buttons[_ButtonAddFolder].Selected)
+ {
+ _AddFolder();
+ return;
+ }
+
+ for (var i = 0; i < _NumRows; i++)
+ {
+ if (_Buttons[_ButtonRemoveFolder[i]].Selected)
+ {
+ _RemoveFolder(_Offset + i);
+ return;
+ }
+ }
+ }
+
+ private void _AddFolder()
+ {
+ var folder = _OpenSongFolderDialog();
+ if (folder == null)
+ {
+ return;
+ }
+
+ // Update config with new folder
+ var folders = _GetSongFolders().ToList();
+ if (!folders.Contains(folder))
+ {
+ folders.Add(folder);
+ CConfig.Config.Game.SongFolder = folders.ToArray();
+ CConfig.SaveConfig();
+ _ShowRestartWarning();
+ }
+
+ _Offset = Math.Max(0, folders.IndexOf(folder) - _NumRows + 1);
+ _UpdateList();
+ }
+
+ private void _RemoveFolder(int index)
+ {
+ var folders = _GetSongFolders().ToList();
+ if (index < 0 || index >= folders.Count)
+ {
+ return;
+ }
+
+ folders.RemoveAt(index);
+ CConfig.Config.Game.SongFolder = folders.ToArray();
+ CConfig.SaveConfig();
+ _ShowRestartWarning();
+ _UpdateList();
+ }
+
+ private void _Scroll(int rows)
+ {
+ _Offset += rows;
+ _UpdateList();
+ }
+
+ private bool _ScrollWithSelection(Keys key)
+ {
+ var numFolders = _GetSongFolders().Length;
+ if (key == Keys.Down && _Buttons[_ButtonRemoveFolder[_NumRows - 1]].Selected && _Offset + _NumRows < numFolders)
+ {
+ _Scroll(1);
+ return true;
+ }
+
+ if (key == Keys.Up && _Buttons[_ButtonRemoveFolder[0]].Selected && _Offset > 0)
+ {
+ _Scroll(-1);
+ return true;
+ }
+
+ return false;
+ }
+
+ private void _ScrollTo(float position)
+ {
+ var maxOffset = Math.Max(0, _GetSongFolders().Length - _NumRows);
+ _Offset = (int)Math.Round(position.Clamp(0f, 1f) * maxOffset);
+ _UpdateList();
+ }
+
+ private void _UpdateList()
+ {
+ var folders = _GetSongFolders();
+ _Offset = _Offset.Clamp(0, Math.Max(0, folders.Length - _NumRows));
+
+ for (var i = 0; i < _NumRows; i++)
+ {
+ var index = _Offset + i;
+ var visible = index < folders.Length;
+ _Statics[_StaticFolder[i]].Visible = visible;
+ _Texts[_TextFolder[i]].Visible = visible;
+ _Buttons[_ButtonRemoveFolder[i]].Visible = visible;
+ if (visible)
+ {
+ _Texts[_TextFolder[i]].Text = folders[index];
+ _Texts[_TextFolder[i]].Alpha = Directory.Exists(folders[index]) ? 1f : 0.5f;
+ }
+ }
+
+ _Texts[_TextNoFolders].Visible = folders.Length == 0;
+ _UpdateScrollBar(folders.Length);
+
+ if (!_Buttons.Any(button => button.Selected && button.Visible))
+ {
+ _SelectElement(_Buttons[_ButtonAddFolder]);
+ }
+ }
+
+ private void _UpdateScrollBar(int numFolders)
+ {
+ var scrollBar = _Statics[_StaticScrollBar];
+ var thumb = _Statics[_StaticScrollBarThumb];
+ var visible = numFolders > _NumRows;
+ scrollBar.Visible = visible;
+ thumb.Visible = visible;
+ if (!visible)
+ {
+ return;
+ }
+
+ var track = scrollBar.Rect;
+ var thumbH = Math.Min(track.H, Math.Max(track.H * _NumRows / numFolders, thumb.Rect.W * 3f));
+ thumb.Y = track.Y + (track.H - thumbH) * _Offset / (numFolders - _NumRows);
+ thumb.H = thumbH;
+ }
+
+ private void _ShowRestartWarning()
+ {
+ _Texts[_TextWarningRestart].Visible = true;
+ _Statics[_StaticWarningRestart].Visible = true;
+ }
+
+ private void _Leave(EScreen screen)
+ {
+ _SaveOptions();
+ CGraphics.FadeTo(screen);
+ }
+
+ protected override void _SaveOptions()
+ {
+ if (_WarningStream != -1)
+ {
+ CSound.Close(_WarningStream);
+ _WarningStream = -1;
+ }
+ }
+
+ private static string[] _GetSongFolders()
+ {
+ return CConfig.Config.Game.SongFolder?.Where(folder => !string.IsNullOrEmpty(folder)).ToArray() ?? new string[0];
+ }
+
+ private static string _OpenSongFolderDialog()
+ {
+ using (var dialog = new FolderBrowserDialog())
+ {
+ dialog.Description = CLanguage.Translate("TR_SCREENO_SONGFOLDER");
+ dialog.ShowNewFolderButton = true;
+ var owner = Application.OpenForms.Cast