X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fea2b62e8ef6d1dbaeea1d5506630ead9ccc23d0..e3dbf5934e997729c6f4f5154b1b7f29d5d22149:/src/msw/gdiimage.cpp diff --git a/src/msw/gdiimage.cpp b/src/msw/gdiimage.cpp index ba85991599..26e9292110 100644 --- a/src/msw/gdiimage.cpp +++ b/src/msw/gdiimage.cpp @@ -511,21 +511,21 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon, // try to load the icon from this program first to allow overriding the // standard icons (although why one would want to do it considering that // we already have wxApp::GetStdIcon() is unclear) + + // note that we can't just always call LoadImage() because it seems to do + // some icon rescaling internally which results in very ugly 16x16 icons #if defined(__WIN32__) && !defined(__SC__) - if ( !hasSize ) + if ( hasSize ) { - // use the actual size of the resource (as we don't specify - // LR_DEFAULTSIZE) - desiredWidth = - desiredHeight = 0; + hicon = (HICON)::LoadImage(wxGetInstance(), name, IMAGE_ICON, + desiredWidth, desiredHeight, + LR_DEFAULTCOLOR); } - - hicon = (HICON)::LoadImage(wxGetInstance(), name, IMAGE_ICON, - desiredWidth, desiredHeight, - LR_DEFAULTCOLOR); -#else // !Win32 - hicon = ::LoadIcon(wxGetInstance(), name); + else #endif // Win32/!Win32 + { + hicon = ::LoadIcon(wxGetInstance(), name); + } // next check if it's not a standard icon if ( !hicon && !hasSize ) @@ -539,7 +539,7 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon, { wxT("wxICON_QUESTION"), IDI_QUESTION }, { wxT("wxICON_WARNING"), IDI_EXCLAMATION }, { wxT("wxICON_ERROR"), IDI_HAND }, - { wxT("wxICON_INFO"), IDI_ASTERISK }, + { wxT("wxICON_INFORMATION"), IDI_ASTERISK }, }; for ( size_t nIcon = 0; !hicon && nIcon < WXSIZEOF(stdIcons); nIcon++ ) @@ -554,12 +554,6 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon, wxSize size = GetHiconSize(hicon); icon->SetSize(size.x, size.y); - // Override the found values with desired values - if ( hasSize ) - { - icon->SetSize(desiredWidth, desiredHeight); - } - icon->SetHICON((WXHICON)hicon); return icon->Ok();