]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/gdiimage.cpp
don't use -q option with egrep, Solaris doesn't have it (bug 517145)
[wxWidgets.git] / src / msw / gdiimage.cpp
index 64ad5b730ca56b7590a8cd23b56b96967d3d5411..ba859915999b9de46105bef72eb6df4653bf608f 100644 (file)
@@ -175,10 +175,10 @@ private:
 // wxWin macros
 // ----------------------------------------------------------------------------
 
-    IMPLEMENT_DYNAMIC_CLASS(wxBMPFileHandler, wxBitmapHandler)
-    IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler)
-    IMPLEMENT_DYNAMIC_CLASS(wxICOFileHandler, wxGDIImageHandler)
-    IMPLEMENT_DYNAMIC_CLASS(wxICOResourceHandler, wxGDIImageHandler)
+IMPLEMENT_DYNAMIC_CLASS(wxBMPFileHandler, wxBitmapHandler)
+IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler)
+IMPLEMENT_DYNAMIC_CLASS(wxICOFileHandler, wxObject)
+IMPLEMENT_DYNAMIC_CLASS(wxICOResourceHandler, wxObject)
 
 // ----------------------------------------------------------------------------
 // private functions
@@ -355,6 +355,8 @@ bool wxBMPFileHandler::LoadFile(wxBitmap *bitmap,
 #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);
@@ -362,6 +364,7 @@ bool wxBMPFileHandler::LoadFile(wxBitmap *bitmap,
 
     // it was copied by the bitmap if it was loaded successfully
     delete palette;
+#endif // wxUSE_PALETTE
 
     return success;
 #else
@@ -375,9 +378,15 @@ bool wxBMPFileHandler::SaveFile(wxBitmap *bitmap,
                                 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;
@@ -503,18 +512,21 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon,
     // 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 ( hasSize )
+    if ( !hasSize )
     {
-        hicon = (HICON)::LoadImage(wxGetInstance(), name, IMAGE_ICON,
-                                    desiredWidth, desiredHeight,
-                                    LR_DEFAULTCOLOR);
-    }
-    else
-#endif // Win32
-    {
-        hicon = ::LoadIcon(wxGetInstance(), name);
+        // 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);
+#else // !Win32
+    hicon = ::LoadIcon(wxGetInstance(), name);
+#endif // Win32/!Win32
+
     // next check if it's not a standard icon
     if ( !hicon && !hasSize )
     {
@@ -543,7 +555,7 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon,
     icon->SetSize(size.x, size.y);
 
     // Override the found values with desired values
-    if ( desiredWidth > -1 && desiredHeight > -1 )
+    if ( hasSize )
     {
         icon->SetSize(desiredWidth, desiredHeight);
     }