]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/imagpcx.cpp
added xpmdecod.cpp
[wxWidgets.git] / src / common / imagpcx.cpp
index 3b806c35f487a521ecb391236ac3625bcb64cb44..d03735e4c5ec0b851221d9684e6e43844bd3fef5 100644 (file)
@@ -23,7 +23,7 @@
 #  include "wx/defs.h"
 #endif
 
-#if wxUSE_STREAMS && wxUSE_PCX
+#if wxUSE_IMAGE && wxUSE_STREAMS && wxUSE_PCX
 
 #include "wx/imagpcx.h"
 #include "wx/wfstream.h"
@@ -276,6 +276,18 @@ int ReadPCX(wxImage *image, wxInputStream& stream)
             *(p++) = pal[3 * index + 1];
             *(p++) = pal[3 * index + 2];
         }
+
+        unsigned char* r = new unsigned char[256];
+        unsigned char* g = new unsigned char[256];
+        unsigned char* b = new unsigned char[256];
+        for (i = 0; i < 256; i++)
+        {
+            r[i] = pal[3*i + 0];
+            g[i] = pal[3*i + 1];
+            b[i] = pal[3*i + 2];
+        }
+        image->SetPalette(wxPalette(256, r, g, b));
+        delete[] r; delete[] g; delete[] b;
     }
 
     return wxPCX_OK;
@@ -444,10 +456,10 @@ bool wxPCXHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose
         {
             switch (error)
             {
-                case wxPCX_INVFORMAT: wxLogError(_("wxPCXHandler: image format unsupported")); break;
-                case wxPCX_MEMERR:    wxLogError(_("wxPCXHandler: couldn't allocate memory")); break;
-                case wxPCX_VERERR:    wxLogError(_("wxPCXHandler: version number too low")); break;
-                default:              wxLogError(_("wxPCXHandler: unknown error !!!"));
+                case wxPCX_INVFORMAT: wxLogError(_("PCX: image format unsupported")); break;
+                case wxPCX_MEMERR:    wxLogError(_("PCX: couldn't allocate memory")); break;
+                case wxPCX_VERERR:    wxLogError(_("PCX: version number too low")); break;
+                default:              wxLogError(_("PCX: unknown error !!!"));
             }
         }
         image->Destroy();
@@ -467,9 +479,9 @@ bool wxPCXHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbos
         {
             switch (error)
             {
-                case wxPCX_INVFORMAT: wxLogError(_("wxPCXHandler: invalid image")); break;
-                case wxPCX_MEMERR:    wxLogError(_("wxPCXHandler: couldn't allocate memory")); break;
-                default:              wxLogError(_("wxPCXHandler: unknown error !!!"));
+                case wxPCX_INVFORMAT: wxLogError(_("PCX: invalid image")); break;
+                case wxPCX_MEMERR:    wxLogError(_("PCX: couldn't allocate memory")); break;
+                default:              wxLogError(_("PCX: unknown error !!!"));
             }
         }
     }