#if wxUSE_IMAGE_LOADING_IN_MSW
wxPalette *palette = NULL;
bool success = wxLoadIntoBitmap(WXSTRINGCAST name, bitmap, &palette) != 0;
+
+#if wxUSE_PALETTE
if ( success && palette )
{
bitmap->SetPalette(*palette);
// it was copied by the bitmap if it was loaded successfully
delete palette;
+#endif // wxUSE_PALETTE
return success;
#else
const wxPalette *pal)
{
#if wxUSE_IMAGE_LOADING_IN_MSW
+
+#if wxUSE_PALETTE
wxPalette *actualPalette = (wxPalette *)pal;
if ( !actualPalette )
actualPalette = bitmap->GetPalette();
+#else
+ wxPalette *actualPalette = NULL;
+#endif // wxUSE_PALETTE
+
return wxSaveBitmap(WXSTRINGCAST name, bitmap, actualPalette) != 0;
#else
return FALSE;
{
HICON hicon;
+ // do we need the icon of the specific size or would any icon do?
+ bool hasSize = desiredWidth != -1 || desiredHeight != -1;
+
+ wxASSERT_MSG( !hasSize || (desiredWidth != -1 && desiredHeight != -1),
+ _T("width and height should be either both -1 or not") );
+
// 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)
#if defined(__WIN32__) && !defined(__SC__)
- if ( desiredWidth != -1 && desiredHeight != -1 )
+ if ( hasSize )
{
hicon = (HICON)::LoadImage(wxGetInstance(), name, IMAGE_ICON,
desiredWidth, desiredHeight,
}
// next check if it's not a standard icon
- if ( !hicon )
+ if ( !hicon && !hasSize )
{
static const struct
{
{
if ( name == stdIcons[nIcon].name )
{
- hicon = (HICON)::LoadImage((HINSTANCE)NULL,
- stdIcons[nIcon].id,
- IMAGE_ICON,
- desiredWidth, desiredHeight,
- LR_DEFAULTCOLOR);
+ hicon = ::LoadIcon((HINSTANCE)NULL, stdIcons[nIcon].id);
}
}
}