https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5d4d48a85030b7e1aa24a414b3c48e9ac56cf3a9

commit 5d4d48a85030b7e1aa24a414b3c48e9ac56cf3a9
Author:     Mark Jansen <[email protected]>
AuthorDate: Wed Apr 3 00:44:02 2019 +0200
Commit:     Mark Jansen <[email protected]>
CommitDate: Fri Apr 5 21:56:31 2019 +0200

    [SYSSETUP] Add a theme chooser that can handle multiple styles
---
 dll/win32/syssetup/lang/bg-BG.rc |  9 +++-
 dll/win32/syssetup/lang/cs-CZ.rc |  9 +++-
 dll/win32/syssetup/lang/da-DK.rc |  9 +++-
 dll/win32/syssetup/lang/de-DE.rc |  9 +++-
 dll/win32/syssetup/lang/el-GR.rc |  9 +++-
 dll/win32/syssetup/lang/en-US.rc |  9 +++-
 dll/win32/syssetup/lang/es-ES.rc |  9 +++-
 dll/win32/syssetup/lang/et-EE.rc |  9 +++-
 dll/win32/syssetup/lang/fi-FI.rc |  9 +++-
 dll/win32/syssetup/lang/fr-FR.rc |  9 +++-
 dll/win32/syssetup/lang/he-IL.rc |  9 +++-
 dll/win32/syssetup/lang/hi-IN.rc |  9 +++-
 dll/win32/syssetup/lang/hu-HU.rc |  9 +++-
 dll/win32/syssetup/lang/id-ID.rc |  9 +++-
 dll/win32/syssetup/lang/it-IT.rc |  9 +++-
 dll/win32/syssetup/lang/ja-JP.rc |  9 +++-
 dll/win32/syssetup/lang/lt-LT.rc |  9 +++-
 dll/win32/syssetup/lang/nl-NL.rc |  9 +++-
 dll/win32/syssetup/lang/no-NO.rc |  9 +++-
 dll/win32/syssetup/lang/pl-PL.rc |  9 +++-
 dll/win32/syssetup/lang/pt-BR.rc |  9 +++-
 dll/win32/syssetup/lang/ro-RO.rc |  9 +++-
 dll/win32/syssetup/lang/ru-RU.rc |  9 +++-
 dll/win32/syssetup/lang/sk-SK.rc |  9 +++-
 dll/win32/syssetup/lang/sq-AL.rc |  9 +++-
 dll/win32/syssetup/lang/sv-SE.rc |  9 +++-
 dll/win32/syssetup/lang/th-TH.rc |  9 +++-
 dll/win32/syssetup/lang/tr-TR.rc |  9 +++-
 dll/win32/syssetup/lang/uk-UA.rc |  9 +++-
 dll/win32/syssetup/lang/zh-CN.rc |  9 +++-
 dll/win32/syssetup/lang/zh-TW.rc |  9 +++-
 dll/win32/syssetup/resource.h    |  6 ++-
 dll/win32/syssetup/wizard.c      | 94 ++++++++++++++++++++++++++++------------
 33 files changed, 288 insertions(+), 91 deletions(-)

diff --git a/dll/win32/syssetup/lang/bg-BG.rc b/dll/win32/syssetup/lang/bg-BG.rc
index 0716e8b0c4..1ed71abcf2 100644
--- a/dll/win32/syssetup/lang/bg-BG.rc
+++ b/dll/win32/syssetup/lang/bg-BG.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/cs-CZ.rc b/dll/win32/syssetup/lang/cs-CZ.rc
index 5ecd4c0fc2..341b935f05 100644
--- a/dll/win32/syssetup/lang/cs-CZ.rc
+++ b/dll/win32/syssetup/lang/cs-CZ.rc
@@ -94,8 +94,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -223,3 +222,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/da-DK.rc b/dll/win32/syssetup/lang/da-DK.rc
index 547b30d0ca..be23699f38 100644
--- a/dll/win32/syssetup/lang/da-DK.rc
+++ b/dll/win32/syssetup/lang/da-DK.rc
@@ -107,8 +107,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE 
| WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -236,3 +235,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/de-DE.rc b/dll/win32/syssetup/lang/de-DE.rc
index d7366c05a5..bc80914a8c 100644
--- a/dll/win32/syssetup/lang/de-DE.rc
+++ b/dll/win32/syssetup/lang/de-DE.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus Theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Klassisches Theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Rad suchen"
     IDS_ASSUMEPRESENT "Annehmen, dass Rad vorhanden ist"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/el-GR.rc b/dll/win32/syssetup/lang/el-GR.rc
index 5fc14d94d4..99b5f706d3 100644
--- a/dll/win32/syssetup/lang/el-GR.rc
+++ b/dll/win32/syssetup/lang/el-GR.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/en-US.rc b/dll/win32/syssetup/lang/en-US.rc
index f44d6a3dc8..531dd8fa3e 100644
--- a/dll/win32/syssetup/lang/en-US.rc
+++ b/dll/win32/syssetup/lang/en-US.rc
@@ -107,8 +107,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE 
| WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -237,3 +236,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/es-ES.rc b/dll/win32/syssetup/lang/es-ES.rc
index 4736edf504..52c8141536 100644
--- a/dll/win32/syssetup/lang/es-ES.rc
+++ b/dll/win32/syssetup/lang/es-ES.rc
@@ -96,8 +96,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "Instalación de ReactOS"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Estilo Lautus", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Estilo Clásico", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -225,3 +224,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Detectar rueda"
     IDS_ASSUMEPRESENT "Asumir que la rueda está presente"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/et-EE.rc b/dll/win32/syssetup/lang/et-EE.rc
index be7b959a08..a65e9fa2b2 100644
--- a/dll/win32/syssetup/lang/et-EE.rc
+++ b/dll/win32/syssetup/lang/et-EE.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS'i paigaldus"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus teema", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Klassikaline teema", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Otsi rullikut"
     IDS_ASSUMEPRESENT "Eelda rullik on olemas"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/fi-FI.rc b/dll/win32/syssetup/lang/fi-FI.rc
index 1f19102619..fa3b9569c2 100644
--- a/dll/win32/syssetup/lang/fi-FI.rc
+++ b/dll/win32/syssetup/lang/fi-FI.rc
@@ -107,8 +107,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE 
| WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -236,3 +235,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/fr-FR.rc b/dll/win32/syssetup/lang/fr-FR.rc
index 5aa51a1478..c60e249083 100644
--- a/dll/win32/syssetup/lang/fr-FR.rc
+++ b/dll/win32/syssetup/lang/fr-FR.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "Installation de ReactOS"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Thème Lautus", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Thème Classique", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/he-IL.rc b/dll/win32/syssetup/lang/he-IL.rc
index de2b023800..c62d47b2a0 100644
--- a/dll/win32/syssetup/lang/he-IL.rc
+++ b/dll/win32/syssetup/lang/he-IL.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/hi-IN.rc b/dll/win32/syssetup/lang/hi-IN.rc
index 9ae9d9722b..65a1be8532 100644
--- a/dll/win32/syssetup/lang/hi-IN.rc
+++ b/dll/win32/syssetup/lang/hi-IN.rc
@@ -95,8 +95,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "रिऐक्ट ओएस सेटअप"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "लौटस थीम", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "क्लासिक थीम", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -225,3 +224,9 @@ BEGIN
     IDS_LOOKFORWHEEL "पहिया के लिए देखो"
     IDS_ASSUMEPRESENT "मान लें कि पहिया मौजूद है"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/hu-HU.rc b/dll/win32/syssetup/lang/hu-HU.rc
index aad93e168a..323f818234 100644
--- a/dll/win32/syssetup/lang/hu-HU.rc
+++ b/dll/win32/syssetup/lang/hu-HU.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/id-ID.rc b/dll/win32/syssetup/lang/id-ID.rc
index 2d960f130d..d6cfa7337b 100644
--- a/dll/win32/syssetup/lang/id-ID.rc
+++ b/dll/win32/syssetup/lang/id-ID.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/it-IT.rc b/dll/win32/syssetup/lang/it-IT.rc
index 2f18ce4051..9e999a0ae0 100644
--- a/dll/win32/syssetup/lang/it-IT.rc
+++ b/dll/win32/syssetup/lang/it-IT.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Tema Lautus", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Tema Classico", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/ja-JP.rc b/dll/win32/syssetup/lang/ja-JP.rc
index 4cda9d3e3c..3ef3bec17c 100644
--- a/dll/win32/syssetup/lang/ja-JP.rc
+++ b/dll/win32/syssetup/lang/ja-JP.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS セットアップ"
 FONT 9, "MS UI Gothic"
 BEGIN
-    PUSHBUTTON "Lautus テーマ", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "クラシック テーマ", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/lt-LT.rc b/dll/win32/syssetup/lang/lt-LT.rc
index d19f2d5a88..817a01bd61 100644
--- a/dll/win32/syssetup/lang/lt-LT.rc
+++ b/dll/win32/syssetup/lang/lt-LT.rc
@@ -107,8 +107,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE 
| WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -236,3 +235,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/nl-NL.rc b/dll/win32/syssetup/lang/nl-NL.rc
index e7c15889b6..57f7aea1dc 100644
--- a/dll/win32/syssetup/lang/nl-NL.rc
+++ b/dll/win32/syssetup/lang/nl-NL.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/no-NO.rc b/dll/win32/syssetup/lang/no-NO.rc
index 3e86a61548..0d2ce42677 100644
--- a/dll/win32/syssetup/lang/no-NO.rc
+++ b/dll/win32/syssetup/lang/no-NO.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/pl-PL.rc b/dll/win32/syssetup/lang/pl-PL.rc
index b4fb97ef00..e942a82d61 100644
--- a/dll/win32/syssetup/lang/pl-PL.rc
+++ b/dll/win32/syssetup/lang/pl-PL.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "Instalator systemu ReactOS"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Klasyczny", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Szukaj kółka"
     IDS_ASSUMEPRESENT "Przyjmij obecność kółka"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/pt-BR.rc b/dll/win32/syssetup/lang/pt-BR.rc
index 78302db084..9857df3dea 100644
--- a/dll/win32/syssetup/lang/pt-BR.rc
+++ b/dll/win32/syssetup/lang/pt-BR.rc
@@ -88,8 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -217,3 +216,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/ro-RO.rc b/dll/win32/syssetup/lang/ro-RO.rc
index 97da2193d9..d7f82b3f16 100644
--- a/dll/win32/syssetup/lang/ro-RO.rc
+++ b/dll/win32/syssetup/lang/ro-RO.rc
@@ -97,8 +97,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "Asistent de instalare ReactOS"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Tema Lautus", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Tema clasică", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -226,3 +225,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Caută rotiță"
     IDS_ASSUMEPRESENT "Consideră roatiță prezentă"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/ru-RU.rc b/dll/win32/syssetup/lang/ru-RU.rc
index 53dcccd398..a2cd4fde35 100644
--- a/dll/win32/syssetup/lang/ru-RU.rc
+++ b/dll/win32/syssetup/lang/ru-RU.rc
@@ -90,8 +90,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "Установка ReactOS"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Тема ""Lautus""", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Классическая тема", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -219,3 +218,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/sk-SK.rc b/dll/win32/syssetup/lang/sk-SK.rc
index 5c66a19f2c..1f6198f969 100644
--- a/dll/win32/syssetup/lang/sk-SK.rc
+++ b/dll/win32/syssetup/lang/sk-SK.rc
@@ -94,8 +94,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -223,3 +222,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/sq-AL.rc b/dll/win32/syssetup/lang/sq-AL.rc
index aa738bb99f..60fbbbd3c6 100644
--- a/dll/win32/syssetup/lang/sq-AL.rc
+++ b/dll/win32/syssetup/lang/sq-AL.rc
@@ -107,8 +107,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE 
| WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -236,3 +235,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/sv-SE.rc b/dll/win32/syssetup/lang/sv-SE.rc
index 22921236ce..a1609d3007 100644
--- a/dll/win32/syssetup/lang/sv-SE.rc
+++ b/dll/win32/syssetup/lang/sv-SE.rc
@@ -107,8 +107,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE 
| WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -236,3 +235,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/th-TH.rc b/dll/win32/syssetup/lang/th-TH.rc
index 67da58c030..5ae89a6edb 100644
--- a/dll/win32/syssetup/lang/th-TH.rc
+++ b/dll/win32/syssetup/lang/th-TH.rc
@@ -107,8 +107,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE 
| WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -236,3 +235,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/tr-TR.rc b/dll/win32/syssetup/lang/tr-TR.rc
index ba8052219a..ee17829e90 100644
--- a/dll/win32/syssetup/lang/tr-TR.rc
+++ b/dll/win32/syssetup/lang/tr-TR.rc
@@ -90,8 +90,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS Setup"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -219,3 +218,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/uk-UA.rc b/dll/win32/syssetup/lang/uk-UA.rc
index d1dc031d86..0c9ffb6f65 100644
--- a/dll/win32/syssetup/lang/uk-UA.rc
+++ b/dll/win32/syssetup/lang/uk-UA.rc
@@ -96,8 +96,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "Встановлення ReactOS"
 FONT 8, "MS Shell Dlg"
 BEGIN
-    PUSHBUTTON "Тема ""Lautus""", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "Класична тема", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -225,3 +224,9 @@ BEGIN
     IDS_LOOKFORWHEEL "Look for wheel"
     IDS_ASSUMEPRESENT "Assume wheel is present"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/zh-CN.rc b/dll/win32/syssetup/lang/zh-CN.rc
index f54c9f3250..515e594111 100644
--- a/dll/win32/syssetup/lang/zh-CN.rc
+++ b/dll/win32/syssetup/lang/zh-CN.rc
@@ -90,8 +90,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
WS_CAPTION | WS_SYS
 CAPTION "ReactOS 安装程序"
 FONT 9, "宋体"
 BEGIN
-    PUSHBUTTON "Lautus 主题", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "经典主题", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -222,3 +221,9 @@ BEGIN
     IDS_LOOKFORWHEEL "寻找滚轮"
     IDS_ASSUMEPRESENT "假设存在滚轮"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/lang/zh-TW.rc b/dll/win32/syssetup/lang/zh-TW.rc
index cc6b118859..6da4da4437 100644
--- a/dll/win32/syssetup/lang/zh-TW.rc
+++ b/dll/win32/syssetup/lang/zh-TW.rc
@@ -110,8 +110,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE 
| WS_CAPTION | WS_SYS
 CAPTION "ReactOS 安裝程式"
 FONT 9, "新細明體"
 BEGIN
-    PUSHBUTTON "Lautus 主題", IDC_THEMEDSTYLE, 18,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
-    PUSHBUTTON "傳統主題", IDC_CLASSICSTYLE, 175,7,130,130, 
BS_AUTORADIOBUTTON|BS_PUSHLIKE
+    CONTROL "", IDC_THEMEPICKER, "SysListView32", LVS_SINGLESEL | 
LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_TABSTOP, 18, 8, 288, 130
 END
 
 IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143
@@ -244,3 +243,9 @@ BEGIN
     IDS_LOOKFORWHEEL "搜尋滾輪"
     IDS_ASSUMEPRESENT "假設滾輪已存在"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_CLASSIC "Classic"
+    IDS_LAUTUS "Lautus"
+END
diff --git a/dll/win32/syssetup/resource.h b/dll/win32/syssetup/resource.h
index c9dcb3a0aa..030a5c2eed 100644
--- a/dll/win32/syssetup/resource.h
+++ b/dll/win32/syssetup/resource.h
@@ -69,8 +69,7 @@
 #define IDC_RESTART_PROGRESS 1072
 
 #define IDD_THEMEPAGE        1080
-#define IDC_THEMEDSTYLE      1081
-#define IDC_CLASSICSTYLE     1082
+#define IDC_THEMEPICKER      1081
 
 #define IDD_GPL      2100
 #define IDC_GPL_TEXT 2101
@@ -140,4 +139,7 @@
 #define IDS_LOOKFORWHEEL      3701
 #define IDS_ASSUMEPRESENT     3702
 
+#define IDS_CLASSIC 3800
+#define IDS_LAUTUS  3801
+
 #define IDR_GPL 4000
diff --git a/dll/win32/syssetup/wizard.c b/dll/win32/syssetup/wizard.c
index 06219b941e..5255b82a0c 100644
--- a/dll/win32/syssetup/wizard.c
+++ b/dll/win32/syssetup/wizard.c
@@ -1593,6 +1593,16 @@ DateTimePageDlgProc(HWND hwndDlg,
     return FALSE;
 }
 
+static struct ThemeInfo
+{
+    LPCWSTR PreviewBitmap;
+    UINT DisplayName;
+    LPCWSTR ThemeFile;
+
+} Themes[] = {
+    { MAKEINTRESOURCE(IDB_CLASSIC), IDS_CLASSIC, NULL },
+    { MAKEINTRESOURCE(IDB_LAUTUS), IDS_LAUTUS, 
L"themes\\lautus\\lautus.msstyles" },
+};
 
 static INT_PTR CALLBACK
 ThemePageDlgProc(HWND hwndDlg,
@@ -1601,6 +1611,7 @@ ThemePageDlgProc(HWND hwndDlg,
                     LPARAM lParam)
 {
     PSETUPDATA SetupData;
+    LPNMLISTVIEW pnmv;
 
     /* Retrieve pointer to the global setup data */
     SetupData = (PSETUPDATA)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
@@ -1609,46 +1620,75 @@ ThemePageDlgProc(HWND hwndDlg,
     {
         case WM_INITDIALOG:
         {
-            BUTTON_IMAGELIST imldata = {0, {0,10,0,10}, 
BUTTON_IMAGELIST_ALIGN_TOP};
+            HWND hListView;
+            HIMAGELIST himl;
+            DWORD n;
+            LVITEM lvi = {0};
 
             /* Save pointer to the global setup data */
             SetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam;
             SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (DWORD_PTR)SetupData);
 
-            imldata.himl = ImageList_LoadImage(hDllInstance, 
MAKEINTRESOURCE(IDB_CLASSIC), 0, 0, 0x00FF00FF, IMAGE_BITMAP, 
LR_CREATEDIBSECTION);
-            SendDlgItemMessage(hwndDlg, IDC_CLASSICSTYLE, BCM_SETIMAGELIST, 0, 
(LPARAM)&imldata);
+            hListView = GetDlgItem(hwndDlg, IDC_THEMEPICKER);
 
-            imldata.himl = ImageList_LoadImage(hDllInstance, 
MAKEINTRESOURCE(IDB_LAUTUS), 0, 0, 0x00FF00FF , IMAGE_BITMAP, 
LR_CREATEDIBSECTION);
-            SendDlgItemMessage(hwndDlg, IDC_THEMEDSTYLE, BCM_SETIMAGELIST, 0, 
(LPARAM)&imldata);
+            /* Common */
+            himl = ImageList_Create(180, 163, ILC_COLOR32 | ILC_MASK, 
ARRAYSIZE(Themes), 1);
+            lvi.mask = LVIF_TEXT | LVIF_IMAGE |LVIF_STATE;
 
-            SendDlgItemMessage(hwndDlg, IDC_CLASSICSTYLE, BM_SETCHECK, 
BST_CHECKED, 0);
-            break;
-        }
-        case WM_COMMAND:
-            if (HIWORD(wParam) == BN_CLICKED)
+            for (n = 0; n < ARRAYSIZE(Themes); ++n)
             {
-                switch (LOWORD(wParam))
-                {
-                    case IDC_THEMEDSTYLE:
-                    {
-                        WCHAR wszParams[1024];
-                        WCHAR wszTheme[MAX_PATH];
-                        WCHAR* format = L"desk.cpl desk,@Appearance 
/Action:ActivateMSTheme /file:\"%s\"";
-
-                        SHGetFolderPathAndSubDirW(0, CSIDL_RESOURCES, NULL, 
SHGFP_TYPE_DEFAULT, L"themes\\lautus\\lautus.msstyles", wszTheme);
-                        swprintf(wszParams, format, wszTheme);
-                        RunControlPanelApplet(hwndDlg, wszParams);
-                        break;
-                    }
-                    case IDC_CLASSICSTYLE:
-                        RunControlPanelApplet(hwndDlg, L"desk.cpl 
desk,@Appearance /Action:ActivateMSTheme");
-                        break;
-                }
+                WCHAR DisplayName[100] = {0};
+                /* Load the bitmap */
+                HANDLE image = LoadImageW(hDllInstance, 
Themes[n].PreviewBitmap, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
+                ImageList_AddMasked(himl, image, RGB(255,0,255));
+
+                /* Load the string */
+                LoadStringW(hDllInstance, Themes[n].DisplayName, DisplayName, 
ARRAYSIZE(DisplayName));
+                DisplayName[ARRAYSIZE(DisplayName)-1] = UNICODE_NULL;
+
+                /* Add the listview item */
+                lvi.iItem  = n;
+                lvi.iImage = n;
+                lvi.pszText = DisplayName;
+                ListView_InsertItem(hListView, &lvi);
             }
+
+            /* Register the imagelist */
+            ListView_SetImageList(hListView, himl, LVSIL_NORMAL);
+            /* Transparant background */
+            ListView_SetBkColor(hListView, CLR_NONE);
+            ListView_SetTextBkColor(hListView, CLR_NONE);
+            /* Reduce the size between the items */
+            ListView_SetIconSpacing(hListView, 190, 173);
             break;
+        }
         case WM_NOTIFY:
             switch (((LPNMHDR)lParam)->code)
             {
+                //case LVN_ITEMCHANGING:
+                case LVN_ITEMCHANGED:
+                    pnmv = (LPNMLISTVIEW)lParam;
+                    if ((pnmv->uChanged & LVIF_STATE) && (pnmv->uNewState & 
LVIS_SELECTED))
+                    {
+                        int iTheme = pnmv->iItem;
+                        DPRINT1("Selected theme: %S\n", 
Themes[iTheme].DisplayName);
+
+                        if (Themes[iTheme].ThemeFile)
+                        {
+                            WCHAR wszParams[1024];
+                            WCHAR wszTheme[MAX_PATH];
+                            WCHAR* format = L"desk.cpl desk,@Appearance 
/Action:ActivateMSTheme /file:\"%s\"";
+
+                            SHGetFolderPathAndSubDirW(0, CSIDL_RESOURCES, 
NULL, SHGFP_TYPE_DEFAULT, Themes[iTheme].ThemeFile, wszTheme);
+                            swprintf(wszParams, format, wszTheme);
+                            RunControlPanelApplet(hwndDlg, wszParams);
+                        }
+                        else
+                        {
+                            RunControlPanelApplet(hwndDlg, L"desk.cpl 
desk,@Appearance /Action:ActivateMSTheme");
+                        }
+                    }
+                    break;
                 case PSN_SETACTIVE:
                     /* Enable the Back and Next buttons */
                     PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_BACK | 
PSWIZB_NEXT);

Reply via email to