]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/imagpng.cpp
Add wxFont::Underlined() and MakeUnderlined() methods.
[wxWidgets.git] / src / common / imagpng.cpp
index 700833b776b4f5a71439ff07dc9dca31494e4bb6..41b13785285edd78ea8ac33f8654613cb6c6b94e 100644 (file)
@@ -522,7 +522,7 @@ wxPNGHandler::LoadFile(wxImage *image,
     png_structp png_ptr = png_create_read_struct
                           (
                             PNG_LIBPNG_VER_STRING,
-                            (voidp) NULL,
+                            NULL,
                             wx_png_error,
                             wx_png_warning
                           );
@@ -649,8 +649,9 @@ error:
 // SaveFile() helpers
 // ----------------------------------------------------------------------------
 
-static int PaletteFind(const png_color& clr,
-    const png_color *pal, int palCount)
+#if wxUSE_PALETTE
+
+static int PaletteFind(const png_color& clr, const png_color *pal, int palCount)
 {
    for (int i = 0; i < palCount; ++i)
    {
@@ -665,6 +666,8 @@ static int PaletteFind(const png_color& clr,
    return wxNOT_FOUND;
 }
 
+#endif // wxUSE_PALETTE
+
 // ----------------------------------------------------------------------------
 // writing PNGs
 // ----------------------------------------------------------------------------
@@ -771,6 +774,15 @@ bool wxPNGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbos
     bool bUsePalette = false;
 #endif // wxUSE_PALETTE
 
+    /*
+    If saving palettised was requested but it was decided we can't use a
+    palette then reset the colour type to RGB.
+    */
+    if (!bUsePalette && iColorType == wxPNG_TYPE_PALETTE)
+    {
+        iColorType = wxPNG_TYPE_COLOUR;
+    }
+
     bool bUseAlpha = !bUsePalette && (bHasAlpha || bHasMask);
 
     png_color mask;
@@ -1004,10 +1016,12 @@ bool wxPNGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbos
                         *pData++ = 0;
                     break;
 
+#if wxUSE_PALETTE
                 case wxPNG_TYPE_PALETTE:
                     *pData++ = (unsigned char) PaletteFind(clr,
                         palette, numPalette);
                     break;
+#endif // wxUSE_PALETTE
             }
 
             if ( bUseAlpha )