From 74653ab97798d9022a432b94fe701033ac11c82a Mon Sep 17 00:00:00 2001 From: McSchneidar <262792195+McSchneidar@users.noreply.github.com> Date: Wed, 21 Oct 2026 10:25:40 +0200 Subject: [PATCH] Improve song selection screen (#932) * Redesign song selection screen * Fix SonarCloud issues * Add TileCaption to SConfig test file --------- Co-authored-by: Florian Ostertag --- Output/Languages/en.xml | 4 + .../Themes/Changelog/Changelog_ScreenSong.txt | 25 +- Output/Themes/Vocaluxe 2024/01_Standard.xml | 4 + Output/Themes/Vocaluxe 2024/02.xml | 4 + Output/Themes/Vocaluxe 2024/03.xml | 4 + Output/Themes/Vocaluxe 2024/04.xml | 4 + Output/Themes/Vocaluxe 2024/05.xml | 4 + Output/Themes/Vocaluxe 2024/06.xml | 4 + Output/Themes/Vocaluxe 2024/InfoBar.png | Bin 0 -> 1309 bytes Output/Themes/Vocaluxe 2024/InfoTile.png | Bin 0 -> 951 bytes .../Vocaluxe 2024/OptionsGroupLarge.png | Bin 0 -> 2223 bytes .../Vocaluxe 2024/OptionsGroupSmall.png | Bin 0 -> 1652 bytes .../Vocaluxe 2024/Screens/ScreenSong.xml | 1043 +++++++++++++---- Tests/VocaluxeLib/XML/TestFiles/SConfig.xml | 1 + Vocaluxe/Screens/CScreenSong.cs | 249 +++- .../Menu/SongMenu/CSongMenuFramework.cs | 118 ++ VocaluxeLib/Menu/SongMenu/CSongMenuList.cs | 368 ++++-- .../Menu/SongMenu/CSongMenuTileBoard.cs | 222 +++- VocaluxeLib/Menu/SongMenu/ISongMenu.cs | 1 + 19 files changed, 1710 insertions(+), 345 deletions(-) create mode 100644 Output/Themes/Vocaluxe 2024/InfoBar.png create mode 100644 Output/Themes/Vocaluxe 2024/InfoTile.png create mode 100644 Output/Themes/Vocaluxe 2024/OptionsGroupLarge.png create mode 100644 Output/Themes/Vocaluxe 2024/OptionsGroupSmall.png diff --git a/Output/Languages/en.xml b/Output/Languages/en.xml index 6bd3e7ed..6114e1f3 100644 --- a/Output/Languages/en.xml +++ b/Output/Languages/en.xml @@ -217,6 +217,10 @@ New playlist Song Options Song length + Year + Times sung + Selection + Sing all Audio mode Playlist Player selection diff --git a/Output/Themes/Changelog/Changelog_ScreenSong.txt b/Output/Themes/Changelog/Changelog_ScreenSong.txt index f3165d7b..0f0a690f 100644 --- a/Output/Themes/Changelog/Changelog_ScreenSong.txt +++ b/Output/Themes/Changelog/Changelog_ScreenSong.txt @@ -1,8 +1,31 @@ ScreenSong +++++++++++ +Version 16: + +Add (optional): + and to SongMenu.SongMenuTileBoard and SongMenu.SongMenuList (position relative to TileRect, moved with TileRectSmall) +, and to SongMenu.SongMenuTileBoard (caption on the selected tile, coordinates relative to the tile) + +Add: +, and (song header of the song options) +, , and (groups of the song options, using the new skin ) +, , , , and (groups of the general and medley options, using the new skins and ) +, , and (headings of the general options) +, , , , , , and (icons of the song options) +, , , and (info tiles and icon bar below the cover, using the new skins and ) +, , , , and (labels and values of the info tiles) + +Change: +SongMenu.SongMenuList shows title and artist in two lines (artist first if sorted by artist letter), the selected row is shown larger (ListLength 12, SpaceH 4) +SongMenu: TextTitle and TextArtist are shown in a bar at the bottom of the cover, TextSongYear and TextSongLength are shown in the info tiles +StaticOptionsBG covers the whole left column, the preview of the song menu is hidden while the song options are shown + +Fix: + skin name in SongMenu + ++++++++++ Version 15: -(2026 Oct 16) Add: in (audio mode for each playlist entry, only shown if the song has an instrumental file) diff --git a/Output/Themes/Vocaluxe 2024/01_Standard.xml b/Output/Themes/Vocaluxe 2024/01_Standard.xml index 97701e06..8b40b698 100644 --- a/Output/Themes/Vocaluxe 2024/01_Standard.xml +++ b/Output/Themes/Vocaluxe 2024/01_Standard.xml @@ -339,6 +339,10 @@ CoverTile.png PlayerTile.png CoverTextBackground.png + InfoTile.png + InfoBar.png + OptionsGroupSmall.png + OptionsGroupLarge.png Cursor.png TimeBar.png TimeLine.png diff --git a/Output/Themes/Vocaluxe 2024/02.xml b/Output/Themes/Vocaluxe 2024/02.xml index 55d6f8b4..223f6086 100644 --- a/Output/Themes/Vocaluxe 2024/02.xml +++ b/Output/Themes/Vocaluxe 2024/02.xml @@ -339,6 +339,10 @@ CoverTile.png PlayerTile.png CoverTextBackground.png + InfoTile.png + InfoBar.png + OptionsGroupSmall.png + OptionsGroupLarge.png Cursor.png TimeBar.png TimeLine.png diff --git a/Output/Themes/Vocaluxe 2024/03.xml b/Output/Themes/Vocaluxe 2024/03.xml index 31a8fcaf..b2b3066d 100644 --- a/Output/Themes/Vocaluxe 2024/03.xml +++ b/Output/Themes/Vocaluxe 2024/03.xml @@ -339,6 +339,10 @@ CoverTile.png PlayerTile.png CoverTextBackground.png + InfoTile.png + InfoBar.png + OptionsGroupSmall.png + OptionsGroupLarge.png Cursor.png TimeBar.png TimeLine.png diff --git a/Output/Themes/Vocaluxe 2024/04.xml b/Output/Themes/Vocaluxe 2024/04.xml index b5d1cef8..ea42f9fc 100644 --- a/Output/Themes/Vocaluxe 2024/04.xml +++ b/Output/Themes/Vocaluxe 2024/04.xml @@ -339,6 +339,10 @@ CoverTile.png PlayerTile.png CoverTextBackground.png + InfoTile.png + InfoBar.png + OptionsGroupSmall.png + OptionsGroupLarge.png Cursor.png TimeBar.png TimeLine.png diff --git a/Output/Themes/Vocaluxe 2024/05.xml b/Output/Themes/Vocaluxe 2024/05.xml index 27fd4ca8..72ef50e4 100644 --- a/Output/Themes/Vocaluxe 2024/05.xml +++ b/Output/Themes/Vocaluxe 2024/05.xml @@ -339,6 +339,10 @@ CoverTile.png PlayerTile.png CoverTextBackground.png + InfoTile.png + InfoBar.png + OptionsGroupSmall.png + OptionsGroupLarge.png Cursor.png TimeBar.png TimeLine.png diff --git a/Output/Themes/Vocaluxe 2024/06.xml b/Output/Themes/Vocaluxe 2024/06.xml index 93f06dfe..48c865be 100644 --- a/Output/Themes/Vocaluxe 2024/06.xml +++ b/Output/Themes/Vocaluxe 2024/06.xml @@ -339,6 +339,10 @@ CoverTile.png PlayerTile.png CoverTextBackground.png + InfoTile.png + InfoBar.png + OptionsGroupSmall.png + OptionsGroupLarge.png Cursor.png TimeBar.png TimeLine.png diff --git a/Output/Themes/Vocaluxe 2024/InfoBar.png b/Output/Themes/Vocaluxe 2024/InfoBar.png new file mode 100644 index 0000000000000000000000000000000000000000..6dc46426b5538ef444617cf3de664c8b87e7caaf GIT binary patch literal 1309 zcmeAS@N?(olHy`uVBq!ia0y~yV6gzQ7jUov$(LDoHUR~mc)B=-RNQ)dcVq5r1Buqa z@JNTL*8-M$ac_9Uv})6Tt|}D=#+C^;`sUcYX7?+!+P(9g-GwK)x3}HqK9-~vG_l(s zXjFsx(`zEju1WZrcNxb^buEqfD*zNdpdS@oEb-5%fM@M02^pZkkL;J~3m?zquNB#x z$OzPBJ|lW|g=PWI?A@jyL%yHt_bayPl74p+$YWTSuvgsj2rrPOQ1e8<9HijG#K)_- zUGMG$>Sc(DyvHZrFUQ<|9q22D299U%nT{ubEK!*7aP@(SJj_5Q%cQ=>!!N-`ywU8l zEzn^D>12xfb>LxS1W4(kQhu4mhCo)sfn!n@YR*6wL!)n;KS_7 zSonaH!vi3}AOH$S2B?4m6OgS?021KleI zn|;i%pho1T2atE5_31T(eY`Ti<3nwvxq$*P7jOMHeH!;bz!J!5FerQsV+s^L4t#J! zx!oEpQGV+CqhrR6$@?p=yw(DlV}0iKL#KZDH#=%EGVFpiEKbLh* G2~7YLL=eIN literal 0 HcmV?d00001 diff --git a/Output/Themes/Vocaluxe 2024/InfoTile.png b/Output/Themes/Vocaluxe 2024/InfoTile.png new file mode 100644 index 0000000000000000000000000000000000000000..33d5271f228bc29df1d86947d28b1d766cad8303 GIT binary patch literal 951 zcmeAS@N?(olHy`uVBq!ia0y~yU=jkd7jUov$;bt*FBlk@>pWc?Ln>~)y=$1)Y#`E* zsHXRzGuyzhkWo!oK|I6!0;o^*)JgGXMpW%9x(>F zrO{Fk!aP`Z^D}&S5!)3YC3H}Zh2h40i!M$Fnq{MUu4I{ zx!stdVe@U7-HL)d>hIJ%ban zvq0vfs0Votk9t&Z02QLD2L}eS`RMAMX=L4j1Q;9|4cm?+fM~@wmuwJi*5;B7 zqSe}5z8LW^C^+Y|XYqF4b6{xTsRgDe5Ut3|x!s(h;q-RXYjqyZhgPyM6#O(vk`@X~ zw_rHXsF&NG>v3hWc`Osd?_*0v@3kHIrO$WWk+I=z>G=(B+xAWn5N0@#=_1qGGJ}DE zPx+CK%C#9Aj2Riu-|ggZUt1t1^qOheZ5f6Sdu~g9jZ}}}?EF%4$a^)zgWbI8%LSGy zPGob0d{$9sBTlcqB<*rk6@jF|WE>|C)QtSwz1nVIB7(|{S0 N!PC{xWt~$(69DNx^z;A# literal 0 HcmV?d00001 diff --git a/Output/Themes/Vocaluxe 2024/OptionsGroupLarge.png b/Output/Themes/Vocaluxe 2024/OptionsGroupLarge.png new file mode 100644 index 0000000000000000000000000000000000000000..9d94be4e86d2498988b64cf75ba547c50f6cb01d GIT binary patch literal 2223 zcmeAS@N?(olHy`uVBq!ia0y~yV6k9eV07SM1BygOo@rrV;3)HSaSW-r_4ck|-XQ~t zw!~#|3c>3pY6j~)I4OSO%I|o^t*Y*ul(-`8yp~mj9)Z zc9;ps*EiU1_A%svgjsnukjJoo>ifCRc8Htb*~|#!?P>lR_C&xO$ZGg7(fJNY!6Em) zZ1JvL#mqoH$LtD`!<>vI$uBMg+6_Rw+=%<5*$Vds@yytQp8=VAQRBAOWeyOn}u`wiZy# z!6fs&RPBR;F0ktIs>c!*t8RkoAqR%y`zC#jj~AbC1KD#gB9Hg+?E@SChaTO$5y(Ga z9rb(vvO8QdN}y^RLZ-q(opCHPladH}{r>w8gIr8*|=02P$ExyMAld;lqiKXCAmH-MunYw7e7~YCkbL gct%vR#a)ek3?J70Z7BTp9OMB8Pgg&ebxsLQ0Cl8TDgXcg literal 0 HcmV?d00001 diff --git a/Output/Themes/Vocaluxe 2024/OptionsGroupSmall.png b/Output/Themes/Vocaluxe 2024/OptionsGroupSmall.png new file mode 100644 index 0000000000000000000000000000000000000000..9cd19b77ad6e3a20e187014c4e88d7f99d315621 GIT binary patch literal 1652 zcmeAS@N?(olHy`uVBq!ia0y~yV6gzQ?{KgI$*Em}91IL>)}AhoAr-gY-ZjiSWFXO& zxGYW~c-=(JV7&(?#ZO%M9j~}m)qRr^m&uma_^P(_=BLTksc%ki%bl*?b2Ma$lK6a} zNeuj_)@u5!HJpv7cL}xe&-|aA?bJRF(vJkV8e5x&5*eEw74=z<|3yI zkZd>rvQMD^B*Fm^NMr%B9Ug#01VH{|VBrH24i5}K;z%kPnAouiKuiRi1yO-)1y~ER z0Mt%2M~oUh8XzcX4I{~rmO?mW+<-|Hl8_l1K^YE`zFGLdSpg$eVh9ZHWcpviVv`~; zP#O*t@yeVO00mFNO13^IE0|YiF+}#5l*Ov65+G@Zt(h_34s4VF6$u;}FPV=gfOIJ= zSjaCE7Ys_fi#)5ZzhG_;1{Em|J1$EfKM;8K7)XL?#_wf?JTmgGWv3+ zpvnW ScreenSong - 15 + 16 @@ -66,10 +66,274 @@ 60 60 540 - 540 + 825 -2.1 + + + + + 78 + 78 + 96 + 96 + -2.12 + + + + OptionsGroupSmall + + + 60 + 270 + 540 + 110 + -2.105 + + + + OptionsGroupSmall + + + 60 + 390 + 540 + 110 + -2.105 + + + + OptionsGroupSmall + + + 60 + 630 + 540 + 110 + -2.105 + + + + OptionsGroupLarge + + + 60 + 130 + 540 + 160 + -2.105 + + + + OptionsGroupSmall + + + 60 + 300 + 540 + 110 + -2.105 + + + + OptionsGroupLarge + + + 60 + 420 + 540 + 160 + -2.105 + + + + OptionsGroupSmall + + + 60 + 420 + 540 + 110 + -2.105 + + + + OptionsGroupSmall + + + 60 + 590 + 540 + 110 + -2.105 + + + + OptionsGroupSmall + + + 60 + 130 + 540 + 110 + -2.105 + + + + OptionsGroupSmall + + + 60 + 510 + 540 + 110 + -2.105 + + + + DuetIcon + + + 82 + 197 + 50 + 50 + -2.13 + + + + PlayIcon + + + 76 + 276 + 36 + 36 + -2.13 + + + + InstrumentalIcon + + + 76 + 396 + 36 + 36 + -2.13 + + + + ListIcon + + + 76 + 636 + 36 + 36 + -2.13 + + + + SingIcon + + + 76 + 516 + 36 + 36 + -2.13 + + + + Plus + + + 510 + 689 + 30 + 30 + -2.13 + + + + Star + + + 76 + 767 + 36 + 36 + -2.13 + + + + CloseIcon + + + 351 + 767 + 36 + 36 + -2.13 + + + + InfoTile + + + 60 + 615 + 265 + 80 + -0.9 + + + + InfoTile + + + 335 + 615 + 265 + 80 + -0.9 + + + + InfoTile + + + 60 + 705 + 265 + 80 + -0.9 + + + + InfoTile + + + 335 + 705 + 265 + 80 + -0.9 + + + + InfoBar + + + 60 + 795 + 540 + 80 + -0.9 + + @@ -247,7 +511,7 @@ 330 - 60 + 78 -2.11 40 525 @@ -261,24 +525,24 @@ 330 - 155 + 276 -2.11 - 30 - 525 + 36 + 420 Center Center Outline - TR_SCREENSONG_LENGTH + TR_GAMEMODE 330 - 230 + 396 -2.11 - 30 - 525 + 36 + 420 Center @@ -289,10 +553,10 @@ 330 - 305 + 516 -2.11 - 30 - 525 + 36 + 420 Center @@ -303,10 +567,10 @@ 330 - 380 + 636 -2.11 - 30 - 525 + 36 + 420 Center @@ -315,6 +579,194 @@ Outline TR_SCREENSONG_PLAYLIST + + 330 + 136 + -2.11 + 36 + 420 + + + Center + Center + + Outline + TR_SCREENSONG_OPTIONSSELECTION + + + 330 + 306 + -2.11 + 36 + 420 + + + Center + Center + + Outline + TR_SCREENSONG_PLAYLIST + + + 330 + 426 + -2.11 + 36 + 420 + + + Center + Center + + Outline + TR_SCREENSONG_OPTIONSSINGALL + + + 330 + 596 + -2.11 + 36 + 420 + + + Center + Center + + Outline + TR_GAMEMODE_MEDLEY + + + 192 + 88 + -2.12 + 42 + 390 + + + Left + Center + + Outline + + + + 192 + 134 + -2.12 + 32 + 390 + + + Left + Center + + Outline + + + + 78 + 621 + -1.2 + 26 + 230 + + 0.75 + 0.78 + 0.85 + 1 + + + Left + Center + + Outline + TR_SCREENSONG_YEAR + + + 353 + 621 + -1.2 + 26 + 230 + + 0.75 + 0.78 + 0.85 + 1 + + + Left + Center + + Outline + TR_SCREENSONG_LENGTH + + + 78 + 711 + -1.2 + 26 + 230 + + 0.75 + 0.78 + 0.85 + 1 + + + Left + Center + + Outline + TR_SCREENHIGHSCORE_HIGHSCORE + + + 353 + 711 + -1.2 + 26 + 230 + + 0.75 + 0.78 + 0.85 + 1 + + + Left + Center + + Outline + TR_SCREENSONG_TIMESPLAYED + + + 78 + 739 + -1.2 + 38 + 230 + + + Left + Center + + Outline + + + + 353 + 739 + -1.2 + 38 + 230 + + + Left + Center + + Outline + + 60 1050 @@ -537,20 +989,20 @@ SongSelectButton SongSelectButton - 60 - 554 - 540 - 45 + 335 + 755 + 265 + 60 -2.11 - 270 - 2 + 150 + 8 0 - 37.5 - 525 + 44 + 245 Center @@ -564,27 +1016,27 @@ SongSelectButton SongSelectButton - 60 - 451 - 540 - 35 + 466 + 682 + 118 + 44 -2.11 - 270 - 2 + 59 + 4 0 - 35 - 525 + 36 + 98 Center Center Outline - TR_SCREENSONG_BUTTON_PLAYLIST +