]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/ogl/mfutils.cpp
Increased a buffer size
[wxWidgets.git] / contrib / src / ogl / mfutils.cpp
index b2684836a161bc4030b4f9c26074f540773bda61..229895912ba653c2e864aecb31d0795be17cec08 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     12/07/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
 // Created:     12/07/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -14,7 +14,7 @@
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
-#include <wx/wxprec.h>
+#include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
 #pragma hdrstop
 
 #ifdef __BORLANDC__
 #pragma hdrstop
 #include <wx/metafile.h>
 #include <wx/utils.h>
 
 #include <wx/metafile.h>
 #include <wx/utils.h>
 
-#include <wx/ogl/mfutils.h>
+#include "wx/ogl/ogl.h"
+
 #include <stdio.h>
 
 #include <stdio.h>
 
-static char hexArray[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B',
-  'C', 'D', 'E', 'F' };
+static char _buf[1024]; // a temp buffer to use inplace of wxBuffer, which is deprecated.
 
 
-static void DecToHex(int dec, char *buf)
-{
-  int firstDigit = (int)(dec/16.0);
-  int secondDigit = (int)(dec - (firstDigit*16.0));
-  buf[0] = hexArray[firstDigit];
-  buf[1] = hexArray[secondDigit];
-  buf[2] = 0;
-}
 // 16-bit unsigned integer
 static unsigned int getshort(FILE *fp)
 {
 // 16-bit unsigned integer
 static unsigned int getshort(FILE *fp)
 {
@@ -56,9 +47,12 @@ static int getsignedshort(FILE *fp)
 {
   int c, c1;
   c = getc(fp);  c1 = getc(fp);
 {
   int c, c1;
   c = getc(fp);  c1 = getc(fp);
+#if 0
+   // this is not used value, no need to execute it
   int testRes = ((unsigned int) c) + (((unsigned int) c1) << 8);
   int testRes = ((unsigned int) c) + (((unsigned int) c1) << 8);
+#endif
   unsigned long res1 = ((unsigned int) c) + (((unsigned int) c1) << 8);
   unsigned long res1 = ((unsigned int) c) + (((unsigned int) c1) << 8);
-  int res = 0;
+  int res;
   if (res1 > 32767)
     res = (int)(res1 - 65536);
   else
   if (res1 > 32767)
     res = (int)(res1 - 65536);
   else
@@ -72,21 +66,21 @@ static long getint(FILE *fp)
   int c, c1, c2, c3;
   c = getc(fp);  c1 = getc(fp);  c2 = getc(fp);  c3 = getc(fp);
   long res = (long)((long) c) +
   int c, c1, c2, c3;
   c = getc(fp);  c1 = getc(fp);  c2 = getc(fp);  c3 = getc(fp);
   long res = (long)((long) c) +
-         (((long) c1) << 8) + 
-        (((long) c2) << 16) +
-        (((long) c3) << 24);
+         (((long) c1) << 8) +
+         (((long) c2) << 16) +
+         (((long) c3) << 24);
   return res;
 }
 
 
 /* Placeable metafile header
 struct mfPLACEABLEHEADER {
   return res;
 }
 
 
 /* Placeable metafile header
 struct mfPLACEABLEHEADER {
-       DWORD   key;         // 32-bit
-       HANDLE  hmf;         // 16-bit
-       RECT    bbox;        // 4x16 bit
-       WORD    inch;        // 16-bit
-       DWORD   reserved;    // 32-bit
-       WORD    checksum;    // 16-bit
+    DWORD  key;         // 32-bit
+    HANDLE hmf;         // 16-bit
+    RECT   bbox;        // 4x16 bit
+    WORD   inch;        // 16-bit
+    DWORD  reserved;    // 32-bit
+    WORD   checksum;    // 16-bit
 };
 */
 
 };
 */
 
@@ -96,14 +90,14 @@ wxMetaRecord::~wxMetaRecord(void)
   if (stringParam) delete[] stringParam;
 }
 
   if (stringParam) delete[] stringParam;
 }
 
-wxXMetaFile::wxXMetaFile(char *file)
+wxXMetaFile::wxXMetaFile(const wxChar *file)
 {
 {
-  ok = FALSE;
+  ok = false;
   top = 0.0;
   bottom = 0.0;
   left = 0.0;
   right = 0.0;
   top = 0.0;
   bottom = 0.0;
   left = 0.0;
   right = 0.0;
-  
+
   if (file)
     ok = ReadFile(file);
 }
   if (file)
     ok = ReadFile(file);
 }
@@ -115,7 +109,7 @@ wxXMetaFile::wxXMetaFile(char *file)
   [1]----param2---     wxBrush
   [2]             |    wxFont
   [3]             | -> wxPen
   [1]----param2---     wxBrush
   [2]             |    wxFont
   [3]             | -> wxPen
-  
+
  The handle table works as follows.
  When a GDI object is created whilst reading in the
  metafile, the (e.g.) createpen record is added to the
  The handle table works as follows.
  When a GDI object is created whilst reading in the
  metafile, the (e.g.) createpen record is added to the
@@ -123,7 +117,7 @@ wxXMetaFile::wxXMetaFile(char *file)
  record's param1 is a pointer to the actual wxPen, and
  its param2 is the index into the gdiObjects list, which only
  grows and never shrinks (unlike the handle table.)
  record's param1 is a pointer to the actual wxPen, and
  its param2 is the index into the gdiObjects list, which only
  grows and never shrinks (unlike the handle table.)
+
  When SelectObject(index) is found, the index in the file
  refers to the position in the handle table. BUT we then
  set param2 to be the position of the wxPen in gdiObjects,
  When SelectObject(index) is found, the index in the file
  refers to the position in the handle table. BUT we then
  set param2 to be the position of the wxPen in gdiObjects,
@@ -135,7 +129,7 @@ wxXMetaFile::wxXMetaFile(char *file)
  allows us to create all GDI objects in advance of playing the
  metafile).
 */
  allows us to create all GDI objects in advance of playing the
  metafile).
 */
+
 
 static wxMetaRecord *HandleTable[100];
 static int HandleTableSize = 0;
 
 static wxMetaRecord *HandleTable[100];
 static int HandleTableSize = 0;
@@ -154,25 +148,25 @@ int AddMetaRecordHandle(wxMetaRecord *record)
       return i;
     }
   // No free spaces in table, so append.
       return i;
     }
   // No free spaces in table, so append.
-  
+
   HandleTable[HandleTableSize] = record;
   HandleTableSize ++;
   return (HandleTableSize - 1);
 }
 
   HandleTable[HandleTableSize] = record;
   HandleTableSize ++;
   return (HandleTableSize - 1);
 }
 
-bool wxXMetaFile::ReadFile(char *file)
+bool wxXMetaFile::ReadFile(const wxChar *file)
 {
   HandleTableSize = 0;
 {
   HandleTableSize = 0;
-  
-  FILE *handle = fopen(file, "rb");
-  if (!handle) return FALSE;
+
+  FILE *handle = wxFopen(file, wxT("rb"));
+  if (!handle) return false;
 
   // Read placeable metafile header, if any
   long key = getint(handle);
 
   // Read placeable metafile header, if any
   long key = getint(handle);
-    
+
   if (key == (long) 0x9AC6CDD7)
   {
   if (key == (long) 0x9AC6CDD7)
   {
-    long hmf = getshort(handle);
+    /* long hmf = */ getshort(handle);
     int iLeft, iTop, iRight, iBottom;
     iLeft = getsignedshort(handle);
     iTop = getsignedshort(handle);
     int iLeft, iTop, iRight, iBottom;
     iLeft = getsignedshort(handle);
     iTop = getsignedshort(handle);
@@ -184,9 +178,9 @@ bool wxXMetaFile::ReadFile(char *file)
     right = (double)iRight;
     bottom = (double)iBottom;
 
     right = (double)iRight;
     bottom = (double)iBottom;
 
-    int inch = getshort(handle);
-    long reserved = getint(handle);
-    int checksum = getshort(handle);
+    /* int inch = */ getshort(handle);
+    /* long reserved = */ getint(handle);
+    /* int checksum = */ getshort(handle);
 /*
       double widthInUnits = (double)right - left;
       double heightInUnits = (double)bottom - top;
 /*
       double widthInUnits = (double)right - left;
       double heightInUnits = (double)bottom - top;
@@ -202,22 +196,22 @@ bool wxXMetaFile::ReadFile(char *file)
   if (mtType != 1 && mtType != 2)
   {
     fclose(handle);
   if (mtType != 1 && mtType != 2)
   {
     fclose(handle);
-    return FALSE;
+    return false;
   }
 
   }
 
-  int mtHeaderSize = getshort(handle);
+  /* int mtHeaderSize = */ getshort(handle);
   int mtVersion = getshort(handle);
 
   if (mtVersion != 0x0300 && mtVersion != 0x0100)
   {
     fclose(handle);
   int mtVersion = getshort(handle);
 
   if (mtVersion != 0x0300 && mtVersion != 0x0100)
   {
     fclose(handle);
-    return FALSE;
+    return false;
   }
   }
-  
-  long mtSize = getint(handle);
-  int mtNoObjects = getshort(handle);
-  long mtMaxRecord = getint(handle);
-  int mtNoParameters = getshort(handle);
+
+  /* long mtSize = */ getint(handle);
+  /* int mtNoObjects = */ getshort(handle);
+  /* long mtMaxRecord = */ getint(handle);
+  /* int mtNoParameters = */ getshort(handle);
 
   while (!feof(handle))
   {
 
   while (!feof(handle))
   {
@@ -379,8 +373,8 @@ bool wxXMetaFile::ReadFile(char *file)
       {
         wxMetaRecord *rec = new wxMetaRecord(META_TEXTOUT);
         int count = getshort(handle);
       {
         wxMetaRecord *rec = new wxMetaRecord(META_TEXTOUT);
         int count = getshort(handle);
-        rec->stringParam = new char[count+1];
-        fread((void *)rec->stringParam, sizeof(char), count, handle);
+        rec->stringParam = new wxChar[count+1];
+        fread((void *)rec->stringParam, sizeof(wxChar), count, handle);
         rec->stringParam[count] = 0;
         rec->param2 = getshort(handle); // Y
         rec->param1 = getshort(handle); // X
         rec->stringParam[count] = 0;
         rec->param2 = getshort(handle); // Y
         rec->param1 = getshort(handle); // X
@@ -420,7 +414,7 @@ bool wxXMetaFile::ReadFile(char *file)
           rec->points[i].x = getshort(handle);
           rec->points[i].y = getshort(handle);
         }
           rec->points[i].x = getshort(handle);
           rec->points[i].y = getshort(handle);
         }
-        
+
         metaRecords.Append(rec);
         break;
       }
         metaRecords.Append(rec);
         break;
       }
@@ -434,7 +428,7 @@ bool wxXMetaFile::ReadFile(char *file)
           rec->points[i].x = getshort(handle);
           rec->points[i].y = getshort(handle);
         }
           rec->points[i].x = getshort(handle);
           rec->points[i].y = getshort(handle);
         }
-        
+
         metaRecords.Append(rec);
         break;
       }
         metaRecords.Append(rec);
         break;
       }
@@ -472,12 +466,12 @@ bool wxXMetaFile::ReadFile(char *file)
       case META_DIBCREATEPATTERNBRUSH:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_DIBCREATEPATTERNBRUSH);
       case META_DIBCREATEPATTERNBRUSH:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_DIBCREATEPATTERNBRUSH);
-        fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle);
-        
+        fread((void *)_buf, sizeof(char), (int)((2*rdSize) - 6), handle);
+
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
-        rec->param2 = (long)(gdiObjects.Number() - 1);
+        rec->param2 = (long)(gdiObjects.GetCount() - 1);
         break;
       }
 //      case META_STRETCHDIB:
         break;
       }
 //      case META_STRETCHDIB:
@@ -497,32 +491,32 @@ bool wxXMetaFile::ReadFile(char *file)
       case META_CREATEPALETTE:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEPALETTE);
       case META_CREATEPALETTE:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEPALETTE);
-        fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle);
-        
+        fread((void *)_buf, sizeof(char), (int)((2*rdSize) - 6), handle);
+
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
-        rec->param2 = (long)(gdiObjects.Number() - 1);
+        rec->param2 = (long)(gdiObjects.GetCount() - 1);
         break;
       }
       case META_CREATEBRUSH:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEBRUSH);
         break;
       }
       case META_CREATEBRUSH:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEBRUSH);
-        fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle);
+        fread((void *)_buf, sizeof(char), (int)((2*rdSize) - 6), handle);
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
-        rec->param2 = (long)(gdiObjects.Number() - 1);
+        rec->param2 = (long)(gdiObjects.GetCount() - 1);
         break;
       }
       case META_CREATEPATTERNBRUSH:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEPATTERNBRUSH);
         break;
       }
       case META_CREATEPATTERNBRUSH:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEPATTERNBRUSH);
-        fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle);
+        fread((void *)_buf, sizeof(char), (int)((2*rdSize) - 6), handle);
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
-        rec->param2 = (long)(gdiObjects.Number() - 1);
+        rec->param2 = (long)(gdiObjects.GetCount() - 1);
         break;
       }
       case META_CREATEPENINDIRECT:
         break;
       }
       case META_CREATEPENINDIRECT:
@@ -530,7 +524,7 @@ bool wxXMetaFile::ReadFile(char *file)
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEPENINDIRECT);
         int msStyle = getshort(handle); // Style: 2 bytes
         int x = getshort(handle); // X:     2 bytes
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEPENINDIRECT);
         int msStyle = getshort(handle); // Style: 2 bytes
         int x = getshort(handle); // X:     2 bytes
-        int y = getshort(handle); // Y:     2 bytes
+        /* int y = */ getshort(handle); // Y:     2 bytes
         long colorref = getint(handle); // COLORREF 4 bytes
 
         int style;
         long colorref = getint(handle); // COLORREF 4 bytes
 
         int style;
@@ -548,8 +542,8 @@ bool wxXMetaFile::ReadFile(char *file)
         gdiObjects.Append(rec);
 
         AddMetaRecordHandle(rec);
         gdiObjects.Append(rec);
 
         AddMetaRecordHandle(rec);
-        rec->param2 = (long)(gdiObjects.Number() - 1);
-        
+        rec->param2 = (long)(gdiObjects.GetCount() - 1);
+
         // For some reason, the size of this record is sometimes 9 words!!!
         // instead of the usual 8. So read 2 characters extra.
         if (rdSize == 9)
         // For some reason, the size of this record is sometimes 9 words!!!
         // instead of the usual 8. So read 2 characters extra.
         if (rdSize == 9)
@@ -562,17 +556,17 @@ bool wxXMetaFile::ReadFile(char *file)
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEFONTINDIRECT);
         int lfHeight = getshort(handle);    // 2 bytes
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEFONTINDIRECT);
         int lfHeight = getshort(handle);    // 2 bytes
-        int lfWidth = getshort(handle);     // 2 bytes
-        int lfEsc = getshort(handle);       // 2 bytes
-        int lfOrient = getshort(handle);    // 2 bytes
+        /* int lfWidth = */ getshort(handle);     // 2 bytes
+        /* int lfEsc = */ getshort(handle);       // 2 bytes
+        /* int lfOrient = */ getshort(handle);    // 2 bytes
         int lfWeight = getshort(handle);    // 2 bytes
         char lfItalic = getc(handle);       // 1 byte
         char lfUnderline = getc(handle);    // 1 byte
         int lfWeight = getshort(handle);    // 2 bytes
         char lfItalic = getc(handle);       // 1 byte
         char lfUnderline = getc(handle);    // 1 byte
-        char lfStrikeout = getc(handle);    // 1 byte
-        char lfCharSet = getc(handle);      // 1 byte
-        char lfOutPrecision = getc(handle); // 1 byte
-        char lfClipPrecision = getc(handle); // 1 byte
-        char lfQuality = getc(handle);      // 1 byte
+        /* char lfStrikeout = */ getc(handle);    // 1 byte
+        /* char lfCharSet = */ getc(handle);      // 1 byte
+        /* char lfOutPrecision = */ getc(handle); // 1 byte
+        /* char lfClipPrecision = */ getc(handle); // 1 byte
+        /* char lfQuality = */ getc(handle);      // 1 byte
         char lfPitchAndFamily = getc(handle);   // 1 byte (18th)
         char lfFacename[32];
         // Read the rest of the record, which is total record size
         char lfPitchAndFamily = getc(handle);   // 1 byte (18th)
         char lfFacename[32];
         // Read the rest of the record, which is total record size
@@ -620,7 +614,7 @@ bool wxXMetaFile::ReadFile(char *file)
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
-        rec->param2 = (long)(gdiObjects.Number() - 1);
+        rec->param2 = (long)(gdiObjects.GetCount() - 1);
         break;
       }
       case META_CREATEBRUSHINDIRECT:
         break;
       }
       case META_CREATEBRUSHINDIRECT:
@@ -659,95 +653,103 @@ bool wxXMetaFile::ReadFile(char *file)
             }
             break;
           }
             }
             break;
           }
+#if PS_DOT != BS_HATCHED
+          /* ABX 30.12.2003                                   */
+          /* in microsoft/include/wingdi.h  both are the same */
+          /* in fact I'm not sure  why pen related PS_XXX and */
+          /* BS_XXX constants are all mixed into single style */
+          case PS_DOT:
+            style = wxDOT;
+            break;
+#endif
+          case PS_DASH:
+            style = wxSHORT_DASH;
+            break;
+          case PS_NULL:
+            style = wxTRANSPARENT;
+            break;
           case BS_SOLID:
           default:
             style = wxSOLID;
             break;
         }
           case BS_SOLID:
           default:
             style = wxSOLID;
             break;
         }
-        if (msStyle == PS_DOT)
-          style = wxDOT;
-        else if (msStyle == PS_DASH)
-          style = wxSHORT_DASH;
-        else if (msStyle == PS_NULL)
-          style = wxTRANSPARENT;
-        else style = wxSOLID;
 
         wxColour colour(GetRValue(colorref), GetGValue(colorref), GetBValue(colorref));
         rec->param1 = (long)wxTheBrushList->FindOrCreateBrush(colour, style);
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
 
         wxColour colour(GetRValue(colorref), GetGValue(colorref), GetBValue(colorref));
         rec->param1 = (long)wxTheBrushList->FindOrCreateBrush(colour, style);
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
-        rec->param2 = (long)(gdiObjects.Number() - 1);
+        rec->param2 = (long)(gdiObjects.GetCount() - 1);
         break;
       }
       case META_CREATEBITMAPINDIRECT:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEBITMAPINDIRECT);
         break;
       }
       case META_CREATEBITMAPINDIRECT:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEBITMAPINDIRECT);
-        fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle);
-        
+        fread((void *)_buf, sizeof(char), (int)((2*rdSize) - 6), handle);
+
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
-        rec->param2 = (long)(gdiObjects.Number() - 1);
+        rec->param2 = (long)(gdiObjects.GetCount() - 1);
         break;
       }
       case META_CREATEBITMAP:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEBITMAP);
         break;
       }
       case META_CREATEBITMAP:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEBITMAP);
-        fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle);
-        
+        fread((void *)_buf, sizeof(char), (int)((2*rdSize) - 6), handle);
+
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
-        rec->param2 = (long)(gdiObjects.Number() - 1);
+        rec->param2 = (long)(gdiObjects.GetCount() - 1);
         break;
       }
       case META_CREATEREGION:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEREGION);
         break;
       }
       case META_CREATEREGION:
       {
         wxMetaRecord *rec = new wxMetaRecord(META_CREATEREGION);
-        fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle);
+        fread((void *)_buf, sizeof(char), (int)((2*rdSize) - 6), handle);
 
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
 
         metaRecords.Append(rec);
         gdiObjects.Append(rec);
         AddMetaRecordHandle(rec);
-        rec->param2 = (long)(gdiObjects.Number() - 1);
+        rec->param2 = (long)(gdiObjects.GetCount() - 1);
         break;
       }
       default:
       {
         break;
       }
       default:
       {
-        fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle);
+        fread((void *)_buf, sizeof(char), (int)((2*rdSize) - 6), handle);
         break;
       }
     }
   }
   fclose(handle);
         break;
       }
     }
   }
   fclose(handle);
-  return TRUE;
+  return true;
 }
 
 wxXMetaFile::~wxXMetaFile(void)
 {
 }
 
 wxXMetaFile::~wxXMetaFile(void)
 {
-  wxNode *node = metaRecords.First();
+  wxObjectList::compatibility_iterator node = metaRecords.GetFirst();
   while (node)
   {
   while (node)
   {
-    wxMetaRecord *rec = (wxMetaRecord *)node->Data();
+    wxMetaRecord *rec = (wxMetaRecord *)node->GetData();
     delete rec;
     delete rec;
-    wxNode *next = node->Next();
-    delete node;
+    wxObjectList::compatibility_iterator next = node->GetNext();
+    metaRecords.Erase(node);
     node = next;
   }
 }
 
     node = next;
   }
 }
 
-bool wxXMetaFile::SetClipboard(int width, int height)
+bool wxXMetaFile::SetClipboard(int WXUNUSED(width), int WXUNUSED(height))
 {
 {
-  return FALSE;
+  return false;
 }
 
 bool wxXMetaFile::Play(wxDC *dc)
 {
 }
 
 bool wxXMetaFile::Play(wxDC *dc)
 {
-  wxNode *node = metaRecords.First();
+  wxObjectList::compatibility_iterator node = metaRecords.GetFirst();
   while (node)
   {
   while (node)
   {
-    wxMetaRecord *rec = (wxMetaRecord *)node->Data();
+    wxMetaRecord *rec = (wxMetaRecord *)node->GetData();
     int rdFunction = rec->metaFunction;
 
     switch (rdFunction)
     int rdFunction = rec->metaFunction;
 
     switch (rdFunction)
@@ -865,7 +867,7 @@ bool wxXMetaFile::Play(wxDC *dc)
           rec->points[i].x = getshort(handle);
           rec->points[i].y = getshort(handle);
         }
           rec->points[i].x = getshort(handle);
           rec->points[i].y = getshort(handle);
         }
-*/        
+*/
         break;
       }
       case META_POLYLINE:
         break;
       }
       case META_POLYLINE:
@@ -879,7 +881,7 @@ bool wxXMetaFile::Play(wxDC *dc)
           rec->points[i].x = getshort(handle);
           rec->points[i].y = getshort(handle);
         }
           rec->points[i].x = getshort(handle);
           rec->points[i].y = getshort(handle);
         }
-*/        
+*/
         break;
       }
 //      case META_ESCAPE:
         break;
       }
 //      case META_ESCAPE:
@@ -915,7 +917,7 @@ bool wxXMetaFile::Play(wxDC *dc)
       {
 /*
         fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle);
       {
 /*
         fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle);
-*/        
+*/
         break;
       }
 //      case META_STRETCHDIB:
         break;
       }
 //      case META_STRETCHDIB:
@@ -1055,14 +1057,14 @@ bool wxXMetaFile::Play(wxDC *dc)
       {
 /*
         fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle);
       {
 /*
         fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle);
-*/        
+*/
         break;
       }
       case META_CREATEBITMAP:
       {
 /*
         fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle);
         break;
       }
       case META_CREATEBITMAP:
       {
 /*
         fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle);
-*/        
+*/
         break;
       }
       case META_CREATEREGION:
         break;
       }
       case META_CREATEREGION:
@@ -1078,8 +1080,8 @@ bool wxXMetaFile::Play(wxDC *dc)
         break;
       }
     }
         break;
       }
     }
-    node = node->Next();
+    node = node->GetNext();
   }
   }
-  return TRUE;
+  return true;
 }
 
 }