]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/pnghand.cpp
started macosx compliant implementation
[wxWidgets.git] / src / mac / carbon / pnghand.cpp
index 8d6d6544f543f08b6b7c8d35586d0bc87278b569..193676f19550ea1cc0224d8b51427e66e0de8ec3 100644 (file)
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
-#pragma implementation "pngread.h"
-#pragma implementation "pnghand.h"
+#  pragma implementation "pngread.h"
+#  pragma implementation "pnghand.h"
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+#  pragma hdrstop
 #endif
 
 #include <stdlib.h>
 #   include <fstream>
 #endif
 
-#include <windows.h>
-#include <wx/palette.h>
-#include <wx/bitmap.h>
-#include <wx/mac/pnghand.h>
-#include <wx/mac/pngread.h>
+#ifndef __DARWIN__
+#  include <windows.h>
+#endif
+#include "wx/msgdlg.h"
+#include "wx/palette.h"
+#include "wx/bitmap.h"
+#include "wx/mac/pnghand.h"
+#include "wx/mac/pngread.h"
 
 extern "C" {
 #include "png.h"
@@ -47,7 +50,7 @@ extern "C" void png_write_init PNGARG((png_structp png_ptr));
 extern CTabHandle wxMacCreateColorTable( int numColors ) ;
 extern void wxMacDestroyColorTable( CTabHandle colors )  ;
 extern void wxMacSetColorTableEntry( CTabHandle newColors , int index , int red , int green ,  int blue ) ;
-extern GWorldPtr wxMacCreateGWorld( int height , int width , int depth ) ;
+extern GWorldPtr wxMacCreateGWorld( int width , int height , int depth ) ;
 extern void wxMacDestroyGWorld( GWorldPtr gw ) ;
 
 void
@@ -76,7 +79,7 @@ wxPNGReader::wxPNGReader(void)
 
   lpbi = NULL;
   bgindex = -1;
-  Palette = 0;
+  m_palette = 0;
   imageOK = FALSE;
 }
 
@@ -88,7 +91,7 @@ wxPNGReader::wxPNGReader ( char* ImageFileName )
 
   Width = 0; Height = 0;       //  Dimensions
   Depth = 0;           // (bits x pixel)
-  ColorType = 0;        // Bit 1 = Palette used
+  ColorType = 0;        // Bit 1 = m_palette used
                   // Bit 2 = Color used
                   // Bit 3 = Alpha used
 
@@ -96,7 +99,7 @@ wxPNGReader::wxPNGReader ( char* ImageFileName )
 
   lpbi = NULL;
   bgindex = -1;
-  Palette = 0;
+  m_palette = 0;
 
   imageOK = ReadFile (ImageFileName);
 }
@@ -106,16 +109,17 @@ wxPNGReader::Create(int width, int height, int depth, int colortype)
 {
   Width = width; Height = height; Depth = depth;
   ColorType = (colortype>=0) ? colortype: ((Depth>8) ? COLORTYPE_COLOR: 0);
-  delete Palette;
+  delete m_palette;
   delete[] RawImage ;
   RawImage = 0;
-  Palette = 0;
+  m_palette = 0;
 
   if (lpbi)  
   {
        wxMacDestroyGWorld( lpbi ) ;
   }
-  if (lpbi = wxMacCreateGWorld( Width , Height , Depth) )
+  lpbi = wxMacCreateGWorld( Width , Height , Depth);
+  if (lpbi)
   {
     EfeWidth = (long)(((long)Width*Depth + 31) / 32) * 4;
     int bitwidth = width ;
@@ -133,7 +137,7 @@ wxPNGReader::~wxPNGReader ( )
   if (lpbi)  {
        wxMacDestroyGWorld( lpbi ) ;
   }
-  delete Palette;
+  delete m_palette;
 }
 
 
@@ -150,10 +154,10 @@ bool wxPNGReader::GetRGB(int x, int y, byte* r, byte* g, byte* b)
 {
   if (!Inside(x, y)) return FALSE;
 
-  if (Palette) {
-   return Palette->GetRGB(GetIndex(x, y), r, g, b);
+  if (m_palette) {
+   return m_palette->GetRGB(GetIndex(x, y), r, g, b);
 /*   PALETTEENTRY entry;
-   ::GetPaletteEntries((HPALETTE) Palette->GetHPALETTE(), GetIndex(x, y), 1, &entry);
+   ::GetPaletteEntries((HPALETTE) m_palette->GetHPALETTE(), GetIndex(x, y), 1, &entry);
    *r = entry.peRed;
    *g = entry.peGreen;
    *b = entry.peBlue;  */
@@ -183,8 +187,8 @@ bool wxPNGReader::SetRGB(int x, int y, byte r, byte g, byte b)
 
   if (ColorType & COLORTYPE_PALETTE)
   {
-   if (!Palette) return FALSE;
-   SetIndex(x, y, Palette->GetPixel(r, g, b));
+   if (!m_palette) return FALSE;
+   SetIndex(x, y, m_palette->GetPixel(r, g, b));
 
   } else {
    ImagePointerType ImagePointer = RawImage + EfeWidth*y + (x*Depth >> 3);
@@ -198,37 +202,37 @@ bool wxPNGReader::SetRGB(int x, int y, byte r, byte g, byte b)
 
 bool wxPNGReader::SetPalette(wxPalette* colourmap)
 {
-  delete Palette ;
+  delete m_palette ;
   if (!colourmap)
    return FALSE;
   ColorType |= (COLORTYPE_PALETTE | COLORTYPE_COLOR);
-  Palette = new wxPalette( *colourmap );
+  m_palette = new wxPalette( *colourmap );
        return true ;
-//  return (DibSetUsage(lpbi, (HPALETTE) Palette->GetHPALETTE(), WXIMA_COLORS ) != 0);
+//  return (DibSetUsage(lpbi, (HPALETTE) m_palette->GetHPALETTE(), WXIMA_COLORS ) != 0);
 }
 
 bool
 wxPNGReader::SetPalette(int n, byte *r, byte *g, byte *b)
 {
-  delete Palette ;
-  Palette = new wxPalette();
-  if (!Palette)
+  delete m_palette ;
+  m_palette = new wxPalette();
+  if (!m_palette)
    return FALSE;
 
   if (!g) g = r;
   if (!b) b = g;
-  Palette->Create(n, r, g, b);
+  m_palette->Create(n, r, g, b);
   ColorType |= (COLORTYPE_PALETTE | COLORTYPE_COLOR);
        return true ;
-//    return (DibSetUsage(lpbi, (HPALETTE) Palette->GetHPALETTE(), WXIMA_COLORS ) != 0);
+//    return (DibSetUsage(lpbi, (HPALETTE) m_palette->GetHPALETTE(), WXIMA_COLORS ) != 0);
 }
 
 bool
 wxPNGReader::SetPalette(int n, rgb_color_struct *rgb_struct)
 {
-  delete Palette ;
-  Palette = new wxPalette();
-  if (!Palette)
+  delete m_palette ;
+  m_palette = new wxPalette();
+  if (!m_palette)
    return FALSE;
 
   byte r[256], g[256], b[256];
@@ -245,10 +249,10 @@ wxPNGReader::SetPalette(int n, rgb_color_struct *rgb_struct)
   if (bgindex != -1)
     r[bgindex] = g[bgindex] = b[bgindex] = 0;
 
-  Palette->Create(n, r, g, b);
+  m_palette->Create(n, r, g, b);
   ColorType |= (COLORTYPE_PALETTE | COLORTYPE_COLOR);
        return true ;
-//    return (DibSetUsage(lpbi, (HPALETTE) Palette->GetHPALETTE(), WXIMA_COLORS ) != 0);
+//    return (DibSetUsage(lpbi, (HPALETTE) m_palette->GetHPALETTE(), WXIMA_COLORS ) != 0);
 }
 
 void wxPNGReader::NullData()
@@ -256,9 +260,9 @@ void wxPNGReader::NullData()
   if (lpbi)  {
        wxMacDestroyGWorld( lpbi ) ;
   }
-  delete Palette;
+  delete m_palette;
   lpbi = NULL;
-  Palette = NULL;
+  m_palette = NULL;
 }
 
 wxBitmap* wxPNGReader::GetBitmap(void)
@@ -281,8 +285,8 @@ bool wxPNGReader::InstantiateBitmap(wxBitmap *bitmap)
       bitmap->SetWidth(GetWidth());
       bitmap->SetHeight(GetHeight());
       bitmap->SetDepth(GetDepth());
-      if ( GetDepth() > 1 && Palette )
-        bitmap->SetPalette(*Palette);
+      if ( GetDepth() > 1 && m_palette )
+        bitmap->SetPalette(*m_palette);
       bitmap->SetOk(TRUE);
 
 
@@ -313,9 +317,9 @@ bool wxPNGReader::InstantiateBitmap(wxBitmap *bitmap)
         ReleaseDC(NULL, dc2);
         HBITMAP oldBitmap = (HBITMAP) ::SelectObject(dc, tmpBitmap);
 
-        if ( Palette )
+        if ( m_palette )
         {
-            HPALETTE oldPal = ::SelectPalette(dc, (HPALETTE) Palette->GetHPALETTE(), FALSE);
+            HPALETTE oldPal = ::SelectPalette(dc, (HPALETTE) m_palette->GetHPALETTE(), FALSE);
         ::RealizePalette(dc);
         }
 
@@ -333,8 +337,8 @@ bool wxPNGReader::InstantiateBitmap(wxBitmap *bitmap)
           bitmap->SetWidth(GetWidth());
           bitmap->SetHeight(GetHeight());
           bitmap->SetDepth(GetDepth());
-          if ( GetDepth() > 1 && Palette )
-            bitmap->SetPalette(*Palette);
+          if ( GetDepth() > 1 && m_palette )
+            bitmap->SetPalette(*m_palette);
           bitmap->SetOk(TRUE);
 
 
@@ -410,7 +414,8 @@ bool wxPNGReader::ReadFile(char * ImageFileName)
   wxPNGReaderIter iter(this);
 
   /* open the file */
-  fp = fopen(wxUnix2MacFilename( ImageFileName ), "rb");
+  fp = fopen( ImageFileName , "rb" );
+
   if (!fp)
     return FALSE;
 
@@ -818,7 +823,7 @@ bool wxPNGReader::SaveXPM(char *filename, char *name)
     if ( !GetPalette() )
         return FALSE;
 
-    ofstream str(filename);
+    wxSTD ofstream str(filename);
     if ( str.bad() )
         return FALSE;
 
@@ -882,7 +887,7 @@ bool wxPNGFileHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long fla
         return FALSE;
 }
 
-bool wxPNGFileHandler::SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *pal)
+bool wxPNGFileHandler::SaveFile(const wxBitmap *bitmap, const wxString& name, int type, const wxPalette *pal)
 {
     return FALSE;
 }