From: Sergei Chernyadyev serg.cherniadjev@gmail.com
Added 32x32 icons for TTI_INFO_LARGE, TTI_WARNING_LARGE and TTI_ERROR_LARGE. User-defined icons passed through TTM_SETTITLE message are still drawn as 16x16 icons. --- dlls/comctl32/comctl32.h | 3 +++ dlls/comctl32/comctl32.rc | 9 ++++++++ dlls/comctl32/idi_tt_error_md.ico | Bin 0 -> 766 bytes dlls/comctl32/idi_tt_info_md.ico | Bin 0 -> 766 bytes dlls/comctl32/idi_tt_warn_md.ico | Bin 0 -> 766 bytes dlls/comctl32/tooltips.c | 35 ++++++++++++++++++++++-------- 6 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 dlls/comctl32/idi_tt_error_md.ico create mode 100644 dlls/comctl32/idi_tt_info_md.ico create mode 100644 dlls/comctl32/idi_tt_warn_md.ico
diff --git a/dlls/comctl32/comctl32.h b/dlls/comctl32/comctl32.h index 51f4337add2..f44b4ae132f 100644 --- a/dlls/comctl32/comctl32.h +++ b/dlls/comctl32/comctl32.h @@ -101,6 +101,9 @@ extern HBRUSH COMCTL32_hPattern55AABrush; #define IDI_TT_INFO_SM 22 #define IDI_TT_WARN_SM 25 #define IDI_TT_ERROR_SM 28 +#define IDI_TT_INFO_MD 20 +#define IDI_TT_WARN_MD 23 +#define IDI_TT_ERROR_MD 26
/* Taskdialog strings */ #define IDS_BUTTON_YES 3000 diff --git a/dlls/comctl32/comctl32.rc b/dlls/comctl32/comctl32.rc index c9aa1ba6253..e89ab0ee4d1 100644 --- a/dlls/comctl32/comctl32.rc +++ b/dlls/comctl32/comctl32.rc @@ -170,3 +170,12 @@ IDI_TT_WARN_SM ICON idi_tt_warn_sm.ico
/* @makedep: idi_tt_error_sm.ico */ IDI_TT_ERROR_SM ICON idi_tt_error_sm.ico + +/* @makedep: idi_tt_info_md.ico */ +IDI_TT_INFO_MD ICON idi_tt_info_md.ico + +/* @makedep: idi_tt_warn_md.ico */ +IDI_TT_WARN_MD ICON idi_tt_warn_md.ico + +/* @makedep: idi_tt_error_md.ico */ +IDI_TT_ERROR_MD ICON idi_tt_error_md.ico diff --git a/dlls/comctl32/idi_tt_error_md.ico b/dlls/comctl32/idi_tt_error_md.ico new file mode 100644 index 0000000000000000000000000000000000000000..1c5a347f31c956e7dfb4313c69616cd149fa4695 GIT binary patch literal 766 zcmZ{iF>b;@5Jmq6OEgG$6%k5ImqQ?+aG4uW<s1~4f&(DR6dWQFiL#B0ls*JyO3D<# z<j*W7jv^L~ci+yR?_s@w<1fonJ`;T10S^Ek85v{B(EZz^U`j9=3C3eVQ50CM1nae6 zvk`2!g40QGJ_|(TpG_4<p65@OB`1=Odgn7|S;CErVhZnlids-QA_q52pjjPhVh*Jr zMjoanaJ`)|Cl!=#7M^v36O`{mcq8^hcumR9&w~nPAuL%yW@hJmA-wy@Ca^TQjHMsZ zBsErnR<otZbkOQ6`<D>b4W>C?@tdEKt;tx=^4eefv)1M&NR+KLYUp6hYQEb9N%i;t z@q|k^x7H|FLeJ0jtu@c7que+@#j3iVZ^w`h+A7aKA}iwesgX0kU#EeMr5xKLB^FX( z!rL)81KlIg{svkHUcLP#N?O!WaD5{jHFdQ1^kH=AGoasuz6<(`6fKd%fY(vv2ToE8 A*Z=?k
literal 0 HcmV?d00001
diff --git a/dlls/comctl32/idi_tt_info_md.ico b/dlls/comctl32/idi_tt_info_md.ico new file mode 100644 index 0000000000000000000000000000000000000000..566b81190820b11f0b5242c986df1b187d74b82e GIT binary patch literal 766 zcmbu7JyOFk5QSf4W>Oj&T7+mQg>?Y98NLBm$_==JOUjffGFiTr?ZgI#0-ondeygX| z>POn}#duA7rH>%pN_vD5zCe%v24k@Adzty)ACbPyqmBiF);cyT9aL62HcOqNO38_? zBB&`~+@DD73gpR9M?IkAe&o{)AmD2R`dQ~FJ-9Q~VGJ>>w4&QD<N2Ge_VfHQPXDj& z?x%W6sOz6~PGdc_C>rV+3z!02x$Ew-pSs^!XFm`ObH2d-MTSX_=cP0y>+130NOg_* z_<c$O^uX+$XY*!uYR!)D0QXROJ;8%?2irXyr0tI9*e^(mAJG$q)w`n~xJYtrJ=als KHf_v?);<A_(q^mx
literal 0 HcmV?d00001
diff --git a/dlls/comctl32/idi_tt_warn_md.ico b/dlls/comctl32/idi_tt_warn_md.ico new file mode 100644 index 0000000000000000000000000000000000000000..3f88bedd79dd6bea908e0df53c7f0bb056fa84da GIT binary patch literal 766 zcmaKqu};G<5QhIIR247)66%^v6;DCo4Pfb9ft1%s_6}v{6_5}+3|aaLfLQ2+U?M`5 znxWMEcX3=>mAL4)^Pm0sPKkjIpENz>xP#9K=mR*RQtFJ7{J+sZ=H>*^`6;5y3*hP+ zC~{yj0q*aBr$<Dy8RF*`;Pnmo`T!O`fH6Q8#+DBXM;RF}x)}~UTMfpIUmoR>u0~@i z!j~pZyzzFu%VqBX!2>^{Rp1xzJVkN!HKz26E3m+jMHE+GVqdB&F2D_T9qzov1(5Y> zV7Irv#R<r|t*#x3cQ_BA-{ABQ*mKndSR(guV14`T;nIPRtKU@DiUH1!0-QTs^Rk-} z;=ow5+e68esEvZxt!xx??#-!+4Ot~MkgR~ARlb(b>C`c%h#Qrh%bqcFUJy|wN{p%b Kr&gleNc;f@wCn=_
literal 0 HcmV?d00001
diff --git a/dlls/comctl32/tooltips.c b/dlls/comctl32/tooltips.c index 2353d4018ac..1d8ac3463ab 100644 --- a/dlls/comctl32/tooltips.c +++ b/dlls/comctl32/tooltips.c @@ -105,7 +105,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(tooltips);
-static HICON hTooltipIcons[TTI_ERROR+1]; +static HICON hTooltipIcons[TTI_ERROR_LARGE+1];
typedef struct { @@ -146,6 +146,8 @@ typedef struct BOOL bToolBelow; LPWSTR pszTitle; HICON hTitleIcon; + int iconWidth; + int iconHeight;
TTTOOL_INFO *tools; } TOOLTIPS_INFO; @@ -169,8 +171,6 @@ typedef struct
#define BALLOON_ICON_TITLE_SPACING 8 /* horizontal spacing between icon and title */ #define BALLOON_TITLE_TEXT_SPACING 8 /* vertical spacing between icon/title and main text */ -#define ICON_HEIGHT 16 -#define ICON_WIDTH 16
#define MAX_TEXT_SIZE_A 80 /* maximum retrieving text size by ANSI message */
@@ -312,11 +312,11 @@ TOOLTIPS_Refresh (const TOOLTIPS_INFO *infoPtr, HDC hdc) /* draw icon */ icon_present = infoPtr->hTitleIcon && DrawIconEx(hdc, rc.left, rc.top, infoPtr->hTitleIcon, - ICON_WIDTH, ICON_HEIGHT, 0, NULL, DI_NORMAL); + infoPtr->iconWidth, infoPtr->iconHeight, 0, NULL, DI_NORMAL); if (icon_present) - rcTitle.left += ICON_WIDTH + BALLOON_ICON_TITLE_SPACING; + rcTitle.left += infoPtr->iconWidth + BALLOON_ICON_TITLE_SPACING;
- rcTitle.bottom = rc.top + ICON_HEIGHT; + rcTitle.bottom = rc.top + infoPtr->iconHeight;
/* draw title text */ prevFont = SelectObject (hdc, infoPtr->hTitleFont); @@ -537,8 +537,8 @@ TOOLTIPS_CalcTipSize (const TOOLTIPS_INFO *infoPtr, LPSIZE lpSize) TRACE("title %s\n", debugstr_w(infoPtr->pszTitle)); if (infoPtr->hTitleIcon) { - title.cx = ICON_WIDTH; - title.cy = ICON_HEIGHT; + title.cx = infoPtr->iconWidth; + title.cy = infoPtr->iconHeight; } if (title.cx != 0) title.cx += BALLOON_ICON_TITLE_SPACING; hOldFont = SelectObject (hdc, infoPtr->hTitleFont); @@ -1660,7 +1660,18 @@ TOOLTIPS_SetTitleT (TOOLTIPS_INFO *infoPtr, UINT_PTR uTitleIcon, LPCWSTR pszTitl else infoPtr->pszTitle = NULL;
- if (uTitleIcon <= TTI_ERROR) + if (uTitleIcon >= TTI_INFO_LARGE && uTitleIcon <= TTI_ERROR_LARGE) + { + infoPtr->iconWidth = GetSystemMetrics(SM_CXICON); + infoPtr->iconHeight = GetSystemMetrics(SM_CYICON); + } + else + { + infoPtr->iconWidth = GetSystemMetrics(SM_CXSMICON); + infoPtr->iconHeight = GetSystemMetrics(SM_CYSMICON); + } + + if (uTitleIcon <= TTI_ERROR_LARGE) infoPtr->hTitleIcon = hTooltipIcons[uTitleIcon]; else infoPtr->hTitleIcon = CopyIcon((HICON)uTitleIcon); @@ -2302,6 +2313,12 @@ TOOLTIPS_Register (void) (LPCWSTR)MAKEINTRESOURCE(IDI_TT_WARN_SM), IMAGE_ICON, 0, 0, 0); hTooltipIcons[TTI_ERROR] = LoadImageW(COMCTL32_hModule, (LPCWSTR)MAKEINTRESOURCE(IDI_TT_ERROR_SM), IMAGE_ICON, 0, 0, 0); + hTooltipIcons[TTI_INFO_LARGE] = LoadImageW(COMCTL32_hModule, + (LPCWSTR)MAKEINTRESOURCE(IDI_TT_INFO_MD), IMAGE_ICON, 0, 0, 0); + hTooltipIcons[TTI_WARNING_LARGE] = LoadImageW(COMCTL32_hModule, + (LPCWSTR)MAKEINTRESOURCE(IDI_TT_WARN_MD), IMAGE_ICON, 0, 0, 0); + hTooltipIcons[TTI_ERROR_LARGE] = LoadImageW(COMCTL32_hModule, + (LPCWSTR)MAKEINTRESOURCE(IDI_TT_ERROR_MD), IMAGE_ICON, 0, 0, 0); }