Skip to content

Commit a236c39

Browse files
authored
[RAPPS] Added option to display small application icons (reactos#7723)
1 parent 46d01bc commit a236c39

31 files changed

+252
-110
lines changed

base/applications/rapps/appview.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ using namespace Gdiplus;
1515

1616
HICON g_hDefaultPackageIcon = NULL;
1717
static int g_DefaultPackageIconILIdx = I_IMAGENONE;
18+
UINT g_IconSize = 0;
1819

1920
// **** Menu helpers ****
2021

@@ -1063,9 +1064,11 @@ AsyncLoadIconProc(LPVOID Param)
10631064
if (task->TaskId == g_AsyncIconTaskId)
10641065
{
10651066
HICON hIcon;
1067+
HICON *phBigIcon = SettingsInfo.bSmallIcons ? NULL : &hIcon;
1068+
HICON *phSmallIcon = phBigIcon ? NULL : &hIcon;
10661069
if (!task->Parse)
1067-
hIcon = (HICON)LoadImageW(NULL, task->Location, IMAGE_ICON, 0, 0, LR_LOADFROMFILE | LR_DEFAULTSIZE);
1068-
else if (!ExtractIconExW(task->Location, PathParseIconLocationW(task->Location), &hIcon, NULL, 1))
1070+
hIcon = (HICON)LoadImageW(NULL, task->Location, IMAGE_ICON, g_IconSize, g_IconSize, LR_LOADFROMFILE);
1071+
else if (!ExtractIconExW(task->Location, PathParseIconLocationW(task->Location), phBigIcon, phSmallIcon, 1))
10691072
hIcon = NULL;
10701073

10711074
if (hIcon)
@@ -1392,13 +1395,14 @@ CAppsListView::SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
13921395
if (!g_hDefaultPackageIcon)
13931396
{
13941397
ImageList_Destroy(m_hImageListView);
1395-
UINT IconSize = GetSystemMetrics(SM_CXICON);
1398+
g_IconSize = GetSystemMetrics(SettingsInfo.bSmallIcons ? SM_CXSMICON : SM_CXICON);
1399+
g_IconSize = max(g_IconSize, 8);
13961400
UINT ilc = GetSystemColorDepth() | ILC_MASK;
1397-
m_hImageListView = ImageList_Create(IconSize, IconSize, ilc, 0, 1);
1401+
m_hImageListView = ImageList_Create(g_IconSize, g_IconSize, ilc, 0, 1);
13981402
SetImageList(m_hImageListView, LVSIL_SMALL);
13991403
SetImageList(m_hImageListView, LVSIL_NORMAL);
14001404
g_hDefaultPackageIcon = (HICON)LoadImageW(hInst, MAKEINTRESOURCEW(IDI_MAIN),
1401-
IMAGE_ICON, IconSize, IconSize, LR_SHARED);
1405+
IMAGE_ICON, g_IconSize, g_IconSize, LR_SHARED);
14021406
}
14031407
ImageList_RemoveAll(m_hImageListView);
14041408

base/applications/rapps/include/resource.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#pragma once
2+
#define LVCHECKSTYLES LVS_REPORT | LVS_NOCOLUMNHEADER | LVS_SINGLESEL | LVS_SORTASCENDING
23

34
/* Icons */
45
#define IDI_MAIN 10
@@ -40,11 +41,11 @@
4041
#define IDC_STATUSBAR 1000
4142
#define IDC_DOWNLOAD_PROGRESS 1001
4243
#define IDC_DOWNLOAD_STATUS 1002
43-
#define IDC_SAVE_WINDOW_POS 1003
44-
#define IDC_UPDATE_AVLIST 1004
44+
#define IDC_GENERALLIST 1003
45+
4546
#define IDC_DOWNLOAD_DIR_EDIT 1005
4647
#define IDC_DEL_AFTER_INSTALL 1006
47-
#define IDC_LOG_ENABLED 1007
48+
4849
#define IDC_CHOOSE 1008
4950
#define IDC_DEFAULT_SETTINGS 1009
5051
#define IDC_INSTALL_TEXT 1010
@@ -127,6 +128,10 @@
127128
#define IDS_APP_DISPLAY_LIST 136
128129
#define IDS_APP_DISPLAY_TILE 137
129130
#define IDS_NO_SEARCH_RESULTS 138
131+
#define IDS_CFG_SAVE_WINDOW_POS 139
132+
#define IDS_CFG_UPDATE_AVLIST 140
133+
#define IDS_CFG_LOG_ENABLED 141
134+
#define IDS_CFG_SMALL_ICONS 142
130135

131136
/* Tooltips */
132137
#define IDS_TOOLTIP_INSTALL 200

base/applications/rapps/include/settings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ struct SETTINGS_INFO
99
BOOL bLogEnabled;
1010
WCHAR szDownloadDir[MAX_PATH];
1111
BOOL bDelInstaller;
12+
BOOL bSmallIcons;
1213
/* Window Pos */
1314
BOOL Maximized;
1415
INT Left;

base/applications/rapps/lang/bg-BG.rc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,7 @@ CAPTION "Настройки"
4949
FONT 8, "MS Shell Dlg"
5050
BEGIN
5151
GROUPBOX "Общи", -1, 4, 2, 244, 61
52-
AUTOCHECKBOX "&Съхраняване разположението на прозореца", IDC_SAVE_WINDOW_POS, 15, 12, 223, 12
53-
AUTOCHECKBOX "Об&новяване на списъка с достъпните приложения при пускане", IDC_UPDATE_AVLIST, 15, 29, 227, 12
54-
AUTOCHECKBOX "&Вписване на слаганията и маханията на приложения", IDC_LOG_ENABLED, 15, 46, 223, 12
52+
CONTROL "", IDC_GENERALLIST, "SysListView32", WS_TABSTOP | LVCHECKSTYLES, 15, 12, 219, 46, WS_EX_STATICEDGE
5553
GROUPBOX "Сваляне", -1, 4, 65, 244, 51
5654
LTEXT "Папка за свалените файлове", -1, 16, 75, 100, 9
5755
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL
@@ -212,6 +210,10 @@ BEGIN
212210
IDS_APP_DISPLAY_LIST "List"
213211
IDS_APP_DISPLAY_TILE "Tile"
214212
IDS_NO_SEARCH_RESULTS "No search results"
213+
IDS_CFG_SAVE_WINDOW_POS "Съхраняване разположението на прозореца"
214+
IDS_CFG_UPDATE_AVLIST "Обновяване на списъка с достъпните приложения при пускане"
215+
IDS_CFG_LOG_ENABLED "Вписване на слаганията и маханията на приложения"
216+
IDS_CFG_SMALL_ICONS "Малки значета"
215217
END
216218

217219
STRINGTABLE

base/applications/rapps/lang/cs-CZ.rc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@ CAPTION "Nastavení"
5050
FONT 8, "MS Shell Dlg"
5151
BEGIN
5252
GROUPBOX "Obecné", -1, 4, 2, 240, 61
53-
AUTOCHECKBOX "&Uložit pozici okna", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
54-
AUTOCHECKBOX "&Aktualizovat seznam dostupných programů při startu programu", IDC_UPDATE_AVLIST, 15, 29, 222, 12
55-
AUTOCHECKBOX "Ukládat &záznam instalací a odstranění programů", IDC_LOG_ENABLED, 15, 46, 219, 12
53+
CONTROL "", IDC_GENERALLIST, "SysListView32", WS_TABSTOP | LVCHECKSTYLES, 15, 12, 219, 46, WS_EX_STATICEDGE
5654
GROUPBOX "Stahování", -1, 4, 65, 240, 51
5755
LTEXT "Složka se staženými soubory:", -1, 16, 75, 100, 9
5856
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL
@@ -213,6 +211,10 @@ BEGIN
213211
IDS_APP_DISPLAY_LIST "Seznam"
214212
IDS_APP_DISPLAY_TILE "Dlaždice"
215213
IDS_NO_SEARCH_RESULTS "Žádné výsledky"
214+
IDS_CFG_SAVE_WINDOW_POS "Uložit pozici okna"
215+
IDS_CFG_UPDATE_AVLIST "Aktualizovat seznam dostupných programů při startu programu"
216+
IDS_CFG_LOG_ENABLED "Ukládat záznam instalací a odstranění programů"
217+
IDS_CFG_SMALL_ICONS "Malé ikony"
216218
END
217219

218220
STRINGTABLE

base/applications/rapps/lang/de-DE.rc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,7 @@ CAPTION "Einstellungen"
5252
FONT 8, "MS Shell Dlg"
5353
BEGIN
5454
GROUPBOX "Allgemein", -1, 4, 2, 240, 61
55-
AUTOCHECKBOX "Fensterposition &speichern", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
56-
AUTOCHECKBOX "Beim Start Liste der verfügbaren Programme &aktualisieren", IDC_UPDATE_AVLIST, 15, 29, 222, 12
57-
AUTOCHECKBOX "Hinzufügen und Entfernen von Programmen mit&loggen", IDC_LOG_ENABLED, 15, 46, 219, 12
55+
CONTROL "", IDC_GENERALLIST, "SysListView32", WS_TABSTOP | LVCHECKSTYLES, 15, 12, 219, 46, WS_EX_STATICEDGE
5856
GROUPBOX "Download", -1, 4, 65, 240, 51
5957
LTEXT "Ordner für Downloads:", -1, 16, 75, 100, 9
6058
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL
@@ -215,6 +213,10 @@ BEGIN
215213
IDS_APP_DISPLAY_LIST "Liste"
216214
IDS_APP_DISPLAY_TILE "Kacheln"
217215
IDS_NO_SEARCH_RESULTS "No search results"
216+
IDS_CFG_SAVE_WINDOW_POS "Fensterposition speichern"
217+
IDS_CFG_UPDATE_AVLIST "Beim Start Liste der verfügbaren Programme aktualisieren"
218+
IDS_CFG_LOG_ENABLED "Hinzufügen und Entfernen von Programmen mitloggen"
219+
IDS_CFG_SMALL_ICONS "Kleine symbole"
218220
END
219221

220222
STRINGTABLE

base/applications/rapps/lang/en-US.rc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,7 @@ CAPTION "Settings"
5252
FONT 8, "MS Shell Dlg"
5353
BEGIN
5454
GROUPBOX "General", -1, 4, 2, 240, 61
55-
AUTOCHECKBOX "&Save window position", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
56-
AUTOCHECKBOX "&Update the list of accessible programs at start", IDC_UPDATE_AVLIST, 15, 29, 222, 12
57-
AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
55+
CONTROL "", IDC_GENERALLIST, "SysListView32", WS_TABSTOP | LVCHECKSTYLES, 15, 12, 219, 46, WS_EX_STATICEDGE
5856
GROUPBOX "Downloading", -1, 4, 65, 240, 51
5957
LTEXT "Downloads folder:", -1, 16, 75, 100, 9
6058
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL
@@ -215,6 +213,10 @@ BEGIN
215213
IDS_APP_DISPLAY_LIST "List"
216214
IDS_APP_DISPLAY_TILE "Tile"
217215
IDS_NO_SEARCH_RESULTS "No search results"
216+
IDS_CFG_SAVE_WINDOW_POS "Save window position"
217+
IDS_CFG_UPDATE_AVLIST "Update the list of accessible programs at start"
218+
IDS_CFG_LOG_ENABLED "Log of installation and removal of programs"
219+
IDS_CFG_SMALL_ICONS "Small icons"
218220
END
219221

220222
STRINGTABLE

base/applications/rapps/lang/es-ES.rc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@ CAPTION "Ajustes"
5151
FONT 8, "MS Shell Dlg"
5252
BEGIN
5353
GROUPBOX "General", -1, 4, 2, 240, 61
54-
AUTOCHECKBOX "&Guardar posición de la ventana", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
55-
AUTOCHECKBOX "&Actualizar la lista de programas accesibles al comenzar", IDC_UPDATE_AVLIST, 15, 29, 222, 12
56-
AUTOCHECKBOX "&Registro de programas instalados y desinstalados", IDC_LOG_ENABLED, 15, 46, 219, 12
54+
CONTROL "", IDC_GENERALLIST, "SysListView32", WS_TABSTOP | LVCHECKSTYLES, 15, 12, 219, 46, WS_EX_STATICEDGE
5755
GROUPBOX "Descargas", -1, 4, 65, 240, 51
5856
LTEXT "Carpeta de descargas:", -1, 16, 75, 100, 9
5957
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL
@@ -214,6 +212,10 @@ BEGIN
214212
IDS_APP_DISPLAY_LIST "Lista"
215213
IDS_APP_DISPLAY_TILE "Título"
216214
IDS_NO_SEARCH_RESULTS "Búsqueda sin resultados."
215+
IDS_CFG_SAVE_WINDOW_POS "Guardar posición de la ventana"
216+
IDS_CFG_UPDATE_AVLIST "Actualizar la lista de programas accesibles al comenzar"
217+
IDS_CFG_LOG_ENABLED "Registro de programas instalados y desinstalados"
218+
IDS_CFG_SMALL_ICONS "Iconos pequeños"
217219
END
218220

219221
STRINGTABLE

base/applications/rapps/lang/et-EE.rc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,7 @@ CAPTION "Sätted"
4949
FONT 8, "MS Shell Dlg"
5050
BEGIN
5151
GROUPBOX "Üldine", -1, 4, 2, 240, 61
52-
AUTOCHECKBOX "&Salvesta akna asukoht", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
53-
AUTOCHECKBOX "&Värskenda kättesaadavate programmide nimekirja käivitusel", IDC_UPDATE_AVLIST, 15, 29, 222, 12
54-
AUTOCHECKBOX "Installeerimiste ja eemalduste &logi", IDC_LOG_ENABLED, 15, 46, 219, 12
52+
CONTROL "", IDC_GENERALLIST, "SysListView32", WS_TABSTOP | LVCHECKSTYLES, 15, 12, 219, 46, WS_EX_STATICEDGE
5553
GROUPBOX "Allalaadimine", -1, 4, 65, 240, 51
5654
LTEXT "Allalaadimiste kaust:", -1, 16, 75, 100, 9
5755
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL
@@ -212,6 +210,10 @@ BEGIN
212210
IDS_APP_DISPLAY_LIST "List"
213211
IDS_APP_DISPLAY_TILE "Tile"
214212
IDS_NO_SEARCH_RESULTS "No search results"
213+
IDS_CFG_SAVE_WINDOW_POS "Salvesta akna asukoht"
214+
IDS_CFG_UPDATE_AVLIST "Värskenda kättesaadavate programmide nimekirja käivitusel"
215+
IDS_CFG_LOG_ENABLED "Installeerimiste ja eemalduste logi"
216+
IDS_CFG_SMALL_ICONS "Väikesed ikoonid"
215217
END
216218

217219
STRINGTABLE

base/applications/rapps/lang/fr-FR.rc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,7 @@ CAPTION "Configuration"
5252
FONT 8, "MS Shell Dlg"
5353
BEGIN
5454
GROUPBOX "Général", -1, 4, 2, 240, 61
55-
AUTOCHECKBOX "&Enregistrer la position de la fenêtre", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
56-
AUTOCHECKBOX "&Mettre à jour la liste des programmes accessibles au démarrage", IDC_UPDATE_AVLIST, 15, 29, 222, 12
57-
AUTOCHECKBOX "&Journal de l'installation et de la suppression des programmes", IDC_LOG_ENABLED, 15, 46, 219, 12
55+
CONTROL "", IDC_GENERALLIST, "SysListView32", WS_TABSTOP | LVCHECKSTYLES, 15, 12, 219, 46, WS_EX_STATICEDGE
5856
GROUPBOX "Téléchargement", -1, 4, 65, 240, 51
5957
LTEXT "Dossier des téléchargements :", -1, 16, 75, 100, 9
6058
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL
@@ -215,6 +213,10 @@ BEGIN
215213
IDS_APP_DISPLAY_LIST "Liste"
216214
IDS_APP_DISPLAY_TILE "Tuile"
217215
IDS_NO_SEARCH_RESULTS "Aucun résultat"
216+
IDS_CFG_SAVE_WINDOW_POS "Enregistrer la position de la fenêtre"
217+
IDS_CFG_UPDATE_AVLIST "Mettre à jour la liste des programmes accessibles au démarrage"
218+
IDS_CFG_LOG_ENABLED "Journal de l'installation et de la suppression des programmes"
219+
IDS_CFG_SMALL_ICONS "Petites icônes"
218220
END
219221

220222
STRINGTABLE

0 commit comments

Comments
 (0)