]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/metafile.cpp
Corrected problem related to wxSIZE_ALLOW_MINUS_ONE
[wxWidgets.git] / src / msw / metafile.cpp
index 4a7b28900fcd01cb4e7c4d5c5c8efa167e6c3136..373a1400fd053254a8b832b227d9d07ab9103ea1 100644 (file)
 
 extern bool wxClipboardIsOpen;
 
-#if !USE_SHARED_LIBRARY
 IMPLEMENT_DYNAMIC_CLASS(wxMetafile, wxObject)
 IMPLEMENT_ABSTRACT_CLASS(wxMetafileDC, wxDC)
-#endif
 
 /*
  * Metafiles
@@ -72,7 +70,7 @@ wxMetafile::wxMetafile(const wxString& file)
 
     M_METAFILEDATA->m_windowsMappingMode = wxMM_ANISOTROPIC;
     M_METAFILEDATA->m_metafile = 0;
-    if (!file.IsNull() && (file.Cmp("") == 0))
+    if (!file.IsNull() && (file.Cmp(wxT("")) == 0))
         M_METAFILEDATA->m_metafile = (WXHANDLE) GetMetaFile(file);
 }
 
@@ -146,7 +144,7 @@ wxMetafileDC::wxMetafileDC(const wxString& file)
   if (!file.IsNull() && wxFileExists(file))
     wxRemoveFile(file);
 
-  if (!file.IsNull() && (file != ""))
+  if (!file.IsNull() && (file != wxT("")))
     m_hDC = (WXHDC) CreateMetaFile(file);
   else
     m_hDC = (WXHDC) CreateMetaFile(NULL);
@@ -167,7 +165,7 @@ wxMetafileDC::wxMetafileDC(const wxString& file, int xext, int yext, int xorg, i
   m_minY = 10000;
   m_maxX = -10000;
   m_maxY = -10000;
-  if (file != "" && wxFileExists(file)) wxRemoveFile(file);
+  if (file != wxT("") && wxFileExists(file)) wxRemoveFile(file);
   m_hDC = (WXHDC) CreateMetaFile(file);
 
   m_ok = TRUE;
@@ -197,15 +195,19 @@ void wxMetafileDC::GetTextExtent(const wxString& string, long *x, long *y,
 
   SIZE sizeRect;
   TEXTMETRIC tm;
-  GetTextExtentPoint(dc, (char *)(const char *) string, strlen((char *)(const char *) string), &sizeRect);
+  GetTextExtentPoint(dc, WXSTRINGCAST string, wxStrlen(WXSTRINGCAST string), &sizeRect);
   GetTextMetrics(dc, &tm);
 
   ReleaseDC(NULL, dc);
 
-  *x = XDEV2LOGREL(sizeRect.cx);
-  *y = YDEV2LOGREL(sizeRect.cy);
-  if (descent) *descent = tm.tmDescent;
-  if (externalLeading) *externalLeading = tm.tmExternalLeading;
+  if ( x )
+      *x = sizeRect.cx;
+  if ( y )
+    *y = sizeRect.cy;
+  if ( descent )
+      *descent = tm.tmDescent;
+  if ( externalLeading )
+      *externalLeading = tm.tmExternalLeading;
 }
 
 wxMetafile *wxMetafileDC::Close(void)
@@ -336,12 +338,12 @@ bool wxMakeMetafilePlaceable(const wxString& filename, int x1, int y1, int x2, i
        p < (WORD *)&pMFHead ->checksum; ++p)
        pMFHead ->checksum ^= *p;
 
-  FILE *fd = fopen((char *)(const char *)filename, "rb");
+  FILE *fd = fopen(filename.fn_str(), "rb");
   if (!fd) return FALSE;
   
-  char tempFileBuf[256];
-  wxGetTempFileName("mf", tempFileBuf);
-  FILE *fHandle = fopen(tempFileBuf, "wb");
+  wxChar tempFileBuf[256];
+  wxGetTempFileName(wxT("mf"), tempFileBuf);
+  FILE *fHandle = fopen(wxConvFile.cWX2MB(tempFileBuf), "wb");
   if (!fHandle)
     return FALSE;
   fwrite((void *)&header, sizeof(unsigned char), sizeof(mfPLACEABLEHEADER), fHandle);