#endif
#include "wx/metafile.h"
+#include "wx/filename.h"
#if wxUSE_METAFILE && !defined(wxMETAFILE_IS_ENH)
wxMetafileRefData::wxMetafileRefData()
{
m_metafile = 0;
- m_windowsMappingMode = wxMM_ANISOTROPIC;
+ m_windowsMappingMode = MM_ANISOTROPIC;
m_width = m_height = 0;
}
{
m_refData = new wxMetafileRefData;
- M_METAFILEDATA->m_windowsMappingMode = wxMM_ANISOTROPIC;
+ M_METAFILEDATA->m_windowsMappingMode = MM_ANISOTROPIC;
M_METAFILEDATA->m_metafile = 0;
if (!file.empty())
M_METAFILEDATA->m_metafile = (WXHANDLE) GetMetaFile(file);
if ( !::PlayMetaFile(GetHdcOf(*dc), (HMETAFILE)
M_METAFILEDATA->m_metafile) )
{
- wxLogLastError(_T("PlayMetaFile"));
+ wxLogLastError(wxT("PlayMetaFile"));
}
}
m_maxY = -10000;
// m_title = NULL;
- if (!file.IsNull() && wxFileExists(file))
+ if ( wxFileExists(file) )
wxRemoveFile(file);
- if (!file.IsNull() && (file != wxEmptyString))
- m_hDC = (WXHDC) CreateMetaFile(file);
- else
+ if ( file.empty() )
m_hDC = (WXHDC) CreateMetaFile(NULL);
+ else
+ m_hDC = (WXHDC) CreateMetaFile(file);
m_ok = (m_hDC != (WXHDC) 0) ;
m_maxY = -10000;
if ( !file.empty() && wxFileExists(file) )
wxRemoveFile(file);
- m_hDC = (WXHDC) CreateMetaFile(file.empty() ? NULL : file.wx_str());
+ m_hDC = (WXHDC) CreateMetaFile(file.empty() ? NULL : wxMSW_CONV_LPCTSTR(file));
m_ok = true;
::SetWindowExtEx((HDC) m_hDC,xext,yext, NULL);
// Actual Windows mapping mode, for future reference.
- m_windowsMappingMode = wxMM_ANISOTROPIC;
+ m_windowsMappingMode = MM_ANISOTROPIC;
SetMapMode(wxMM_TEXT); // NOTE: does not set HDC mapmode (this is correct)
}
void wxMetafileDCImpl::DoGetSize(int *width, int *height) const
{
- wxCHECK_RET( m_refData, _T("invalid wxMetafileDC") );
+ wxCHECK_RET( m_refData, wxT("invalid wxMetafileDC") );
if ( width )
*width = M_METAFILEDATA->m_width;
return NULL;
}
-void wxMetafileDCImpl::SetMapMode(int mode)
+void wxMetafileDCImpl::SetMapMode(wxMappingMode mode)
{
m_mappingMode = mode;
p < (WORD *)&pMFHead ->checksum; ++p)
pMFHead ->checksum ^= *p;
- FILE *fd = wxFopen(filename.fn_str(), _T("rb"));
+ FILE *fd = wxFopen(filename.fn_str(), wxT("rb"));
if (!fd) return false;
- wxChar tempFileBuf[256];
- wxGetTempFileName(wxT("mf"), tempFileBuf);
- FILE *fHandle = wxFopen(wxFNCONV(tempFileBuf), _T("wb"));
+ wxString tempFileBuf = wxFileName::CreateTempFileName(wxT("mf"));
+ if (tempFileBuf.empty())
+ return false;
+
+ FILE *fHandle = wxFopen(tempFileBuf.fn_str(), wxT("wb"));
if (!fHandle)
return false;
- fwrite((void *)&header, sizeof(unsigned char), sizeof(mfPLACEABLEHEADER), fHandle);
+ fwrite((void *)&header, 1, sizeof(mfPLACEABLEHEADER), fHandle);
// Calculate origin and extent
int originX = x1;
// Read metafile header and write
METAHEADER metaHeader;
- fread((void *)&metaHeader, sizeof(unsigned char), sizeof(metaHeader), fd);
+ fread((void *)&metaHeader, 1, sizeof(metaHeader), fd);
if (useOriginAndExtent)
metaHeader.mtSize += 15;
else
metaHeader.mtSize += 5;
- fwrite((void *)&metaHeader, sizeof(unsigned char), sizeof(metaHeader), fHandle);
+ fwrite((void *)&metaHeader, 1, sizeof(metaHeader), fHandle);
// Write SetMapMode, SetWindowOrigin and SetWindowExt records
char modeBuffer[8];
extentRecord->rdParm[0] = extentY;
extentRecord->rdParm[1] = extentX;
- fwrite((void *)modeBuffer, sizeof(char), 8, fHandle);
+ fwrite((void *)modeBuffer, 1, 8, fHandle);
if (useOriginAndExtent)
{
- fwrite((void *)originBuffer, sizeof(char), 10, fHandle);
- fwrite((void *)extentBuffer, sizeof(char), 10, fHandle);
+ fwrite((void *)originBuffer, 1, 10, fHandle);
+ fwrite((void *)extentBuffer, 1, 10, fHandle);
}
int ch = -2;
METAFILEPICT *mfpict = (METAFILEPICT *)buf;
const wxMetafile& mf = GetMetafile();
- wxCHECK_MSG( mf.GetHMETAFILE(), false, _T("copying invalid metafile") );
+ wxCHECK_MSG( mf.GetHMETAFILE(), false, wxT("copying invalid metafile") );
// doesn't seem to work with any other mapping mode...
mfpict->mm = MM_ANISOTROPIC; //mf.GetWindowsMappingMode();
mf.SetHeight(h);
mf.SetHMETAFILE((WXHANDLE)mfpict->hMF);
- wxCHECK_MSG( mfpict->hMF, false, _T("pasting invalid metafile") );
+ wxCHECK_MSG( mfpict->hMF, false, wxT("pasting invalid metafile") );
SetMetafile(mf);