[SYSSETUP] Add a theme chooser that can handle multiple styles 1456/head
authorMark Jansen <mark.jansen@reactos.org>
Tue, 2 Apr 2019 22:44:02 +0000 (00:44 +0200)
committerMark Jansen <mark.jansen@reactos.org>
Fri, 5 Apr 2019 19:56:31 +0000 (21:56 +0200)
33 files changed:
dll/win32/syssetup/lang/bg-BG.rc
dll/win32/syssetup/lang/cs-CZ.rc
dll/win32/syssetup/lang/da-DK.rc
dll/win32/syssetup/lang/de-DE.rc
dll/win32/syssetup/lang/el-GR.rc
dll/win32/syssetup/lang/en-US.rc
dll/win32/syssetup/lang/es-ES.rc
dll/win32/syssetup/lang/et-EE.rc
dll/win32/syssetup/lang/fi-FI.rc
dll/win32/syssetup/lang/fr-FR.rc
dll/win32/syssetup/lang/he-IL.rc
dll/win32/syssetup/lang/hi-IN.rc
dll/win32/syssetup/lang/hu-HU.rc
dll/win32/syssetup/lang/id-ID.rc
dll/win32/syssetup/lang/it-IT.rc
dll/win32/syssetup/lang/ja-JP.rc
dll/win32/syssetup/lang/lt-LT.rc
dll/win32/syssetup/lang/nl-NL.rc
dll/win32/syssetup/lang/no-NO.rc
dll/win32/syssetup/lang/pl-PL.rc
dll/win32/syssetup/lang/pt-BR.rc
dll/win32/syssetup/lang/ro-RO.rc
dll/win32/syssetup/lang/ru-RU.rc
dll/win32/syssetup/lang/sk-SK.rc
dll/win32/syssetup/lang/sq-AL.rc
dll/win32/syssetup/lang/sv-SE.rc
dll/win32/syssetup/lang/th-TH.rc
dll/win32/syssetup/lang/tr-TR.rc
dll/win32/syssetup/lang/uk-UA.rc
dll/win32/syssetup/lang/zh-CN.rc
dll/win32/syssetup/lang/zh-TW.rc
dll/win32/syssetup/resource.h
dll/win32/syssetup/wizard.c

index 0716e8b..1ed71ab 100644 (file)
@@ -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
index 5ecd4c0..341b935 100644 (file)
@@ -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
index 547b30d..be23699 100644 (file)
@@ -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
index d7366c0..bc80914 100644 (file)
@@ -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
index 5fc14d9..99b5f70 100644 (file)
@@ -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
index f44d6a3..531dd8f 100644 (file)
@@ -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
index 4736edf..52c8141 100644 (file)
@@ -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
index be7b959..a65e9fa 100644 (file)
@@ -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
index 1f19102..fa3b956 100644 (file)
@@ -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
index 5aa51a1..c60e249 100644 (file)
@@ -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
index de2b023..c62d47b 100644 (file)
@@ -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
index 9ae9d97..65a1be8 100644 (file)
@@ -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
index aad93e1..323f818 100644 (file)
@@ -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
index 2d960f1..d6cfa73 100644 (file)
@@ -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
index 2f18ce4..9e999a0 100644 (file)
@@ -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
index 4cda9d3..3ef3bec 100644 (file)
@@ -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
index d19f2d5..817a01b 100644 (file)
@@ -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
index e7c1588..57f7aea 100644 (file)
@@ -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
index 3e86a61..0d2ce42 100644 (file)
@@ -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
index b4fb97e..e942a82 100644 (file)
@@ -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
index 78302db..9857df3 100644 (file)
@@ -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
index 97da219..d7f82b3 100644 (file)
@@ -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
index 53dcccd..a2cd4fd 100644 (file)
@@ -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
index 5c66a19..1f6198f 100644 (file)
@@ -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
index aa738bb..60fbbbd 100644 (file)
@@ -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
index 2292123..a1609d3 100644 (file)
@@ -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
index 67da58c..5ae89a6 100644 (file)
@@ -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
index ba80522..ee17829 100644 (file)
@@ -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
index d1dc031..0c9ffb6 100644 (file)
@@ -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
index f54c9f3..515e594 100644 (file)
@@ -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
index cc6b118..6da4da4 100644 (file)
@@ -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
index c9dcb3a..030a5c2 100644 (file)
@@ -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
 #define IDS_LOOKFORWHEEL      3701
 #define IDS_ASSUMEPRESENT     3702
 
+#define IDS_CLASSIC 3800
+#define IDS_LAUTUS  3801
+
 #define IDR_GPL 4000
index 06219b9..5255b82 100644 (file)
@@ -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);