From 3342fc6633eba51d5faa77aa0e1dd48a14a21ee6 Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Thu, 22 Jan 2026 08:24:21 +0900 Subject: [PATCH] [SYSSETUP][SDK] Set arrow to current task (#8598) Follow-up of #8596. JIRA issue: N/A - Add IDI_ARROWICON (arrow-16x16.ico) icon and IDI_CROSSICON (cross-16x16.ico). - Retrieve normal font from control. - Set arrow icon to the current task. - Set bold font to the current task. - Set normal font to done tasks. --- dll/win32/syssetup/resource.h | 2 ++ dll/win32/syssetup/resources/arrow-16x16.ico | Bin 0 -> 318 bytes dll/win32/syssetup/resources/cross-16x16.ico | Bin 0 -> 318 bytes dll/win32/syssetup/syssetup.rc | 2 ++ dll/win32/syssetup/wizard.c | 18 +++++++++++++----- sdk/include/reactos/libs/syssetup/syssetup.h | 1 - 6 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 dll/win32/syssetup/resources/arrow-16x16.ico create mode 100644 dll/win32/syssetup/resources/cross-16x16.ico diff --git a/dll/win32/syssetup/resource.h b/dll/win32/syssetup/resource.h index e8a8597e814..b17997f0306 100644 --- a/dll/win32/syssetup/resource.h +++ b/dll/win32/syssetup/resource.h @@ -33,6 +33,8 @@ #define IDI_ICON4 13 #define IDI_ICON5 14 #define IDI_CHECKICON 15 +#define IDI_ARROWICON 16 +#define IDI_CROSSICON 17 #define IDC_STATIC -1 diff --git a/dll/win32/syssetup/resources/arrow-16x16.ico b/dll/win32/syssetup/resources/arrow-16x16.ico new file mode 100644 index 0000000000000000000000000000000000000000..c0847dad95eb8081cb4333b1cd0dae42acb06349 GIT binary patch literal 318 zcmZvYK^DRw5JS_a@3|~&+~Tsg@Mv;0j#MuI{=n!;Xc8tFrhSz*c1j7p>e!^aqyr@I z0QSA=^s&CTmb)JE~{&N=d;iK-1Fyu0Ao}+MgRZ+ literal 0 HcmV?d00001 diff --git a/dll/win32/syssetup/resources/cross-16x16.ico b/dll/win32/syssetup/resources/cross-16x16.ico new file mode 100644 index 0000000000000000000000000000000000000000..b2d6a15fac7e2591708ec5f79d0555b32d642ff0 GIT binary patch literal 318 zcmZvXyAi`65JXoa&p3q0u|t(f<{F693LU5gy8~t%5#hJUI5M!y-R>P9X<^0~;fuCK zx=GqV1b1NFBMtsXI5tx{H<%D4l~OSJSnAyoU|Jf4Kpt|HspVaQTFy1(yc>?u7?0lLwC}m|p79XqcuS9$v=;uEcr*VmtMt4|HJos4&7Nyq>mK)h08?#X A761SM literal 0 HcmV?d00001 diff --git a/dll/win32/syssetup/syssetup.rc b/dll/win32/syssetup/syssetup.rc index d31667ca7bc..8a2ab2a9e6c 100644 --- a/dll/win32/syssetup/syssetup.rc +++ b/dll/win32/syssetup/syssetup.rc @@ -31,6 +31,8 @@ IDI_ICON3 ICON "resources/3.ico" IDI_ICON4 ICON "resources/4.ico" IDI_ICON5 ICON "resources/5.ico" IDI_CHECKICON ICON "resources/check-16x16.ico" +IDI_ARROWICON ICON "resources/arrow-16x16.ico" +IDI_CROSSICON ICON "resources/cross-16x16.ico" STRINGTABLE BEGIN diff --git a/dll/win32/syssetup/wizard.c b/dll/win32/syssetup/wizard.c index ae01ea6ea90..46c79016f0a 100644 --- a/dll/win32/syssetup/wizard.c +++ b/dll/win32/syssetup/wizard.c @@ -2440,6 +2440,8 @@ ProcessPageDlgProc(HWND hwndDlg, { PSETUPDATA SetupData; PREGISTRATIONNOTIFY RegistrationNotify; + static HICON s_hCheckIcon, s_hArrowIcon, s_hCrossIcon; + static HFONT s_hNormalFont; /* Retrieve pointer to the global setup data */ SetupData = (PSETUPDATA)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); @@ -2454,13 +2456,16 @@ ProcessPageDlgProc(HWND hwndDlg, ShowWindow(GetDlgItem(hwndDlg, IDC_TASKTEXT4), SW_HIDE); ShowWindow(GetDlgItem(hwndDlg, IDC_CHECK3), SW_HIDE); ShowWindow(GetDlgItem(hwndDlg, IDC_CHECK4), SW_HIDE); - SetupData->hCheckIcon = LoadImageW(hDllInstance, MAKEINTRESOURCEW(IDI_CHECKICON), - IMAGE_ICON, 16, 16, 0); + s_hCheckIcon = LoadImageW(hDllInstance, MAKEINTRESOURCEW(IDI_CHECKICON), IMAGE_ICON, 16, 16, 0); + s_hArrowIcon = LoadImageW(hDllInstance, MAKEINTRESOURCEW(IDI_ARROWICON), IMAGE_ICON, 16, 16, 0); + s_hCrossIcon = LoadImageW(hDllInstance, MAKEINTRESOURCEW(IDI_CROSSICON), IMAGE_ICON, 16, 16, 0); + s_hNormalFont = (HFONT)SendDlgItemMessage(hwndDlg, IDC_TASKTEXT1, WM_GETFONT, 0, 0); break; case WM_DESTROY: - DestroyIcon(SetupData->hCheckIcon); - SetupData->hCheckIcon = NULL; + DestroyIcon(s_hCheckIcon); + DestroyIcon(s_hArrowIcon); + DestroyIcon(s_hCrossIcon); break; case WM_NOTIFY: @@ -2492,16 +2497,19 @@ ProcessPageDlgProc(HWND hwndDlg, SendDlgItemMessage(hwndDlg, IDC_PROCESSPROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0, (ULONG)lParam)); SendDlgItemMessage(hwndDlg, IDC_PROCESSPROGRESS, PBM_SETPOS, 0, 0); SendDlgItemMessage(hwndDlg, IDC_TASKTEXT1 + wParam, WM_SETFONT, (WPARAM)SetupData->hBoldFont, (LPARAM)TRUE); - SendDlgItemMessage(hwndDlg, IDC_CHECK1 + wParam, STM_SETIMAGE, IMAGE_ICON, (LPARAM)SetupData->hCheckIcon); + SendDlgItemMessage(hwndDlg, IDC_CHECK1 + wParam, STM_SETIMAGE, IMAGE_ICON, (LPARAM)s_hArrowIcon); break; case PM_ITEM_END: DPRINT("PM_ITEM_END\n"); + SendDlgItemMessage(hwndDlg, IDC_TASKTEXT1 + wParam, WM_SETFONT, (WPARAM)s_hNormalFont, (LPARAM)TRUE); if (lParam == ERROR_SUCCESS) { + SendDlgItemMessage(hwndDlg, IDC_CHECK1 + wParam, STM_SETIMAGE, IMAGE_ICON, (LPARAM)s_hCheckIcon); } else { + SendDlgItemMessage(hwndDlg, IDC_CHECK1 + wParam, STM_SETIMAGE, IMAGE_ICON, (LPARAM)s_hCrossIcon); ShowItemError(hwndDlg, (DWORD)lParam); } break; diff --git a/sdk/include/reactos/libs/syssetup/syssetup.h b/sdk/include/reactos/libs/syssetup/syssetup.h index 53434392aca..1eb5e2ab75c 100644 --- a/sdk/include/reactos/libs/syssetup/syssetup.h +++ b/sdk/include/reactos/libs/syssetup/syssetup.h @@ -59,7 +59,6 @@ typedef struct _SETUPDATA UINT uPostNetworkWizardPage; PRODUCT_OPTION ProductOption; - HICON hCheckIcon; } SETUPDATA, *PSETUPDATA;