]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/metafile.cpp
Make Home and End keys work as expected in wxGrid.
[wxWidgets.git] / src / os2 / metafile.cpp
index 797b023742c5eb9a9bf4e9c04d1e27ca86e0e169..755d4658ccb9c4fa46e13c5dd2a2fc40df4da784 100644 (file)
@@ -15,8 +15,8 @@
 #if wxUSE_METAFILE
 
 #ifndef WX_PRECOMP
 #if wxUSE_METAFILE
 
 #ifndef WX_PRECOMP
-#include "wx/utils.h"
-#include "wx/app.h"
+    #include "wx/utils.h"
+    #include "wx/app.h"
 #endif
 
 #include "wx/metafile.h"
 #endif
 
 #include "wx/metafile.h"
@@ -40,7 +40,7 @@ IMPLEMENT_ABSTRACT_CLASS(wxMetafileDC, wxDC)
 wxMetafileRefData::wxMetafileRefData(void)
 {
     m_metafile = 0;
 wxMetafileRefData::wxMetafileRefData(void)
 {
     m_metafile = 0;
-    m_windowsMappingMode = wxMM_ANISOTROPIC;
+    m_windowsMappingMode = MM_ANISOTROPIC;
 }
 
 wxMetafileRefData::~wxMetafileRefData(void)
 }
 
 wxMetafileRefData::~wxMetafileRefData(void)
@@ -56,7 +56,7 @@ wxMetafile::wxMetafile(const wxString& file)
 {
     m_refData = new wxMetafileRefData;
 
 {
     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)0; // TODO: GetMetaFile(file);
     M_METAFILEDATA->m_metafile = 0;
     if (!file.empty())
         M_METAFILEDATA->m_metafile = (WXHANDLE)0; // TODO: GetMetaFile(file);
@@ -66,6 +66,16 @@ wxMetafile::~wxMetafile(void)
 {
 }
 
 {
 }
 
+wxGDIRefData *wxMetafile::CreateGDIRefData() const
+{
+    return new wxMetafileRefData;
+}
+
+wxGDIRefData *wxMetafile::CloneGDIRefData(const wxGDIRefData *data) const
+{
+    return new wxMetafileRefData(*static_cast<const wxMetafileRefData *>(data));
+}
+
 bool wxMetafile::SetClipboard(int width, int height)
 {
 #if !wxUSE_CLIPBOARD
 bool wxMetafile::SetClipboard(int width, int height)
 {
 #if !wxUSE_CLIPBOARD
@@ -80,7 +90,7 @@ bool wxMetafile::SetClipboard(int width, int height)
     if (!alreadyOpen)
     {
         wxOpenClipboard();
     if (!alreadyOpen)
     {
         wxOpenClipboard();
-        if (!wxEmptyClipboard()) return FALSE;
+        if (!wxEmptyClipboard()) return false;
     }
     bool success = wxSetClipboardData(wxDF_METAFILE, this, width,height);
     if (!alreadyOpen) wxCloseClipboard();
     }
     bool success = wxSetClipboardData(wxDF_METAFILE, this, width,height);
     if (!alreadyOpen) wxCloseClipboard();
@@ -91,7 +101,7 @@ bool wxMetafile::SetClipboard(int width, int height)
 bool wxMetafile::Play(wxDC *dc)
 {
     if (!m_refData)
 bool wxMetafile::Play(wxDC *dc)
 {
     if (!m_refData)
-        return FALSE;
+        return false;
 
  //   if (dc->GetHDC() && M_METAFILEDATA->m_metafile)
  //       PlayMetaFile((HDC) dc->GetHDC(), (HMETAFILE) M_METAFILEDATA->m_metafile);
 
  //   if (dc->GetHDC() && M_METAFILEDATA->m_metafile)
  //       PlayMetaFile((HDC) dc->GetHDC(), (HMETAFILE) M_METAFILEDATA->m_metafile);
@@ -122,7 +132,8 @@ void wxMetafile::SetWindowsMappingMode(int mm)
 
 // Original constructor that does not takes origin and extent. If you use this,
 // *DO* give origin/extent arguments to wxMakeMetafilePlaceable.
 
 // Original constructor that does not takes origin and extent. If you use this,
 // *DO* give origin/extent arguments to wxMakeMetafilePlaceable.
-wxMetafileDC::wxMetafileDC(const wxString& file)
+wxMetafileDCImpl::wxMetafileDCImpl(wxDC *owner, const wxString& file)
+    : wxPMDCImpl(owner)
 {
   m_metaFile = NULL;
   m_minX = 10000;
 {
   m_metaFile = NULL;
   m_minX = 10000;
@@ -152,11 +163,12 @@ wxMetafileDC::wxMetafileDC(const wxString& file)
 
 // New constructor that takes origin and extent. If you use this, don't
 // give origin/extent arguments to wxMakeMetafilePlaceable.
 
 // New constructor that takes origin and extent. If you use this, don't
 // give origin/extent arguments to wxMakeMetafilePlaceable.
-wxMetafileDC::wxMetafileDC( const wxString& file,
-                            int WXUNUSED(xext),
-                            int WXUNUSED(yext),
-                            int WXUNUSED(xorg),
-                            int WXUNUSED(yorg) )
+wxMetafileDCImpl::wxMetafileDCImpl( wxDC *owner, const wxString& file,
+                                    int WXUNUSED(xext),
+                                    int WXUNUSED(yext),
+                                    int WXUNUSED(xorg),
+                                    int WXUNUSED(yorg) )
+    : wxPMDCImpl(owner)
 {
     m_minX = 10000;
     m_minY = 10000;
 {
     m_minX = 10000;
     m_minY = 10000;
@@ -173,27 +185,26 @@ wxMetafileDC::wxMetafileDC( const wxString& file,
 //  ::SetWindowExtEx((HDC) m_hDC,xext,yext, NULL);
 
     // Actual Windows mapping mode, for future reference.
 //  ::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)
 }
 
 
     SetMapMode(wxMM_TEXT); // NOTE: does not set HDC mapmode (this is correct)
 }
 
-wxMetafileDC::~wxMetafileDC(void)
+wxMetafileDCImpl::~wxMetafileDCImpl(void)
 {
   m_hDC = 0;
 }
 
 {
   m_hDC = 0;
 }
 
-void wxMetafileDC::GetTextExtent(const wxString& WXUNUSED(string),
-                                 long *WXUNUSED(x),
-                                 long *WXUNUSED(y),
-                                 long *WXUNUSED(descent),
-                                 long *WXUNUSED(externalLeading),
-                                 wxFont *theFont,
-                                 bool WXUNUSED(use16bit) ) const
+void wxMetafileDCImpl::DoGetTextExtent(const wxString& WXUNUSED(string),
+                                     wxCoord *WXUNUSED(x),
+                                     wxCoord *WXUNUSED(y),
+                                     wxCoord *WXUNUSED(descent),
+                                     wxCoord *WXUNUSED(externalLeading),
+                                     const wxFont *theFont) const
 {
 {
-    wxFont *fontToUse = theFont;
+    const wxFont *fontToUse = theFont;
     if (!fontToUse)
     if (!fontToUse)
-        fontToUse = (wxFont*) &m_font;
+        fontToUse = &m_font;
 
     // TODO:
 /*
 
     // TODO:
 /*
@@ -217,7 +228,7 @@ void wxMetafileDC::GetTextExtent(const wxString& WXUNUSED(string),
 */
 }
 
 */
 }
 
-wxMetafile *wxMetafileDC::Close(void)
+wxMetafile *wxMetafileDCImpl::Close(void)
 {
   SelectOldObjects(m_hDC);
   HANDLE mf = 0; // TODO: CloseMetaFile((HDC) m_hDC);
 {
   SelectOldObjects(m_hDC);
   HANDLE mf = 0; // TODO: CloseMetaFile((HDC) m_hDC);
@@ -232,7 +243,7 @@ wxMetafile *wxMetafileDC::Close(void)
   return NULL;
 }
 
   return NULL;
 }
 
-void wxMetafileDC::SetMapMode(int mode)
+void wxMetafileDCImpl::SetMapMode(wxMappingMode mode)
 {
   m_mappingMode = mode;
 
 {
   m_mappingMode = mode;
 
@@ -354,13 +365,13 @@ bool wxMakeMetafilePlaceable(const wxString& WXUNUSED(filename),
 
     FILE *fd = fopen(filename.fn_str(), "rb");
     if (!fd)
 
     FILE *fd = fopen(filename.fn_str(), "rb");
     if (!fd)
-        return FALSE;
+        return false;
 
     wxChar tempFileBuf[256];
     wxGetTempFileName(wxT("mf"), tempFileBuf);
     FILE *fHandle = fopen(wxConvFile.cWX2MB(tempFileBuf), "wb");
     if (!fHandle)
 
     wxChar tempFileBuf[256];
     wxGetTempFileName(wxT("mf"), tempFileBuf);
     FILE *fHandle = fopen(wxConvFile.cWX2MB(tempFileBuf), "wb");
     if (!fHandle)
-        return FALSE;
+        return false;
     fwrite((void *)&header, sizeof(unsigned char), sizeof(mfPLACEABLEHEADER), fHandle);
 
     // Calculate origin and extent
     fwrite((void *)&header, sizeof(unsigned char), sizeof(mfPLACEABLEHEADER), fHandle);
 
     // Calculate origin and extent