Skip to content

Commit 3b3741c

Browse files
authored
[NTUSER] Enable SM_CXICON etc. settings from registry (reactos#7679)
Improve usability. JIRA issue: CORE-12905 - Add nIconSize and nSmallIconSize values to SPIVALUES structure. - Load "Shell Icon Size" and "Shell Small Icon Size" values from registry. - Enable changing of SM_CXICON, SM_CYICON, SM_CXSMICON, and SM_CYSMICON settings.
1 parent a8da29e commit 3b3741c

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

win32ss/user/ntuser/metric.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* FILE: win32ss/user/ntuser/metric.c
66
* PROGRAMER: Casper S. Hornstrup ([email protected])
77
* Timo Kreuzer ([email protected])
8+
* Katayama Hirofumi MZ ([email protected])
89
*/
910

1011
#include <win32k.h>
@@ -130,10 +131,10 @@ InitMetrics(VOID)
130131
piSysMet[SM_CXHTHUMB] = gspv.ncm.iScrollHeight; // 16;
131132
piSysMet[SM_CYVSCROLL] = gspv.ncm.iScrollHeight; // 16
132133
piSysMet[SM_CXHSCROLL] = gspv.ncm.iScrollHeight; // 16;
133-
piSysMet[SM_CXICON] = 32;
134-
piSysMet[SM_CYICON] = 32;
135-
piSysMet[SM_CXSMICON] = 16;
136-
piSysMet[SM_CYSMICON] = 16;
134+
piSysMet[SM_CXICON] = gspv.nIconSize; // 32
135+
piSysMet[SM_CYICON] = gspv.nIconSize; // 32
136+
piSysMet[SM_CXSMICON] = gspv.nSmallIconSize; // 16
137+
piSysMet[SM_CYSMICON] = gspv.nSmallIconSize; // 16
137138
piSysMet[SM_CXICONSPACING] = gspv.im.iHorzSpacing; // 64;
138139
piSysMet[SM_CYICONSPACING] = gspv.im.iVertSpacing; // 64;
139140
piSysMet[SM_CXCURSOR] = 32;

win32ss/user/ntuser/sysparams.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* PURPOSE: System parameters functions
55
* FILE: win32ss/user/ntuser/sysparams.c
66
* PROGRAMER: Timo Kreuzer ([email protected])
7+
* Katayama Hirofumi MZ ([email protected])
78
*/
89

910
// TODO:
@@ -205,6 +206,11 @@ SpiFixupValues(VOID)
205206
// gspv.tmMenuFont.tmExternalLeading);
206207
if (gspv.iDblClickTime == 0) gspv.iDblClickTime = 500;
207208

209+
if (gspv.nIconSize <= 0)
210+
gspv.nIconSize = 32;
211+
if (gspv.nSmallIconSize <= 0)
212+
gspv.nSmallIconSize = 16;
213+
208214
// FIXME: Hack!!!
209215
gspv.tmMenuFont.tmHeight = 11;
210216
gspv.tmMenuFont.tmExternalLeading = 2;
@@ -296,6 +302,10 @@ SpiUpdatePerUserSystemParameters(VOID)
296302
gspv.im.iTitleWrap = SpiLoadMetric(VAL_ITWRAP, 1);
297303
SpiLoadFont(&gspv.im.lfFont, L"IconFont", &lf1);
298304

305+
/* Load icon size */
306+
gspv.nIconSize = SpiLoadInt(KEY_METRIC, L"Shell Icon Size", 32);
307+
gspv.nSmallIconSize = SpiLoadInt(KEY_METRIC, L"Shell Small Icon Size", 16);
308+
299309
/* Load desktop settings */
300310
gspv.bDragFullWindows = SpiLoadInt(KEY_DESKTOP, VAL_DRAG, 0);
301311
gspv.iWheelScrollLines = SpiLoadInt(KEY_DESKTOP, VAL_SCRLLLINES, 3);

win32ss/user/ntuser/sysparams.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,9 @@ typedef struct _SPIVALUES
157157
DWORD dwForegroundFlashCount;
158158
DWORD dwCaretWidth;
159159

160+
INT nIconSize;
161+
INT nSmallIconSize;
162+
160163
// SPI_LANGDRIVER
161164
// SPI_SETDESKPATTERN
162165
// SPI_SETPENWINDOWS

0 commit comments

Comments
 (0)