]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/dcpsg.cpp
* Big memory bug fixed in socket/getline fixed.
[wxWidgets.git] / src / generic / dcpsg.cpp
index 55ba6d7768e28dfa69ad0bddcf441d62899bfebe..f592a769c82274f4324b9a050b8cbc5fc4f683fe 100644 (file)
@@ -1465,20 +1465,32 @@ void wxPostScriptDC::EndPage ()
     *m_pstream << "showpage\n";
 }
 
-bool wxPostScriptDC::Blit( long WXUNUSED(xdest), long WXUNUSED(ydest)
-                           long WXUNUSED(fwidth), long WXUNUSED(fheight),
-                           wxDC *WXUNUSED(source)
-               long WXUNUSED(xsrc), long WXUNUSED(ysrc)
-               int WXUNUSED(rop), bool WXUNUSED(useMask) )
+bool wxPostScriptDC::Blit( long xdest, long ydest
+                           long fwidth, long fheight,
+                           wxDC *source
+                           long xsrc, long ysrc
+                           int rop, bool WXUNUSED(useMask) )
 {
     wxCHECK_MSG( m_ok && m_pstream, FALSE, "invalid postscript dc" );
     
-    wxFAIL_MSG( "wxPostScriptDC::Blit no yet implemented." );
+    wxCHECK_MSG( source, FALSE, "invalid source dc" );
+    
+    /* blit into a bitmap */
+  
+    wxBitmap bitmap( fwidth, fheight );
+    wxMemoryDC memDC;
+    memDC.SelectObject(bitmap);
+    memDC.Blit(0, 0, fwidth, fheight, source, xsrc, ysrc, rop); /* TODO: Blit transparently? */
+    memDC.SelectObject(wxNullBitmap);
+
+    /* draw bitmap. scaling and positioning is done there */
+
+    DrawBitmap( bitmap, xdest, ydest );
     
     return TRUE;
 }
 
-long wxPostScriptDC::GetCharHeight ()
+long wxPostScriptDC::GetCharHeight()
 {
     if (m_font.Ok())
         return  m_font.GetPointSize();
@@ -1486,9 +1498,9 @@ long wxPostScriptDC::GetCharHeight ()
         return 12;
 }
 
-void wxPostScriptDC::GetTextExtent (const wxString& string, long *x, long *y,
-           long *descent, long *externalLeading, wxFont *theFont,
-                    bool WXUNUSED(use16))
+void wxPostScriptDC::GetTextExtentconst wxString& string, long *x, long *y,
+                                    long *descent, long *externalLeading, wxFont *theFont,
+                                    bool WXUNUSED(use16) )
 {
     wxFont *fontToUse = theFont;
   
@@ -1600,7 +1612,7 @@ void wxPostScriptDC::GetTextExtent (const wxString& string, long *x, long *y,
                     if ((Style == wxITALIC) && (Weight == wxBOLD)) name = "HelvBoO";
                else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = "HelvBo";
                else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = "Helv0";
-               else if ((Style != wxITALIC) && (Weight != wxBOLD)) name = "Helv";
+               else name = "Helv";
            }
            break;
        }