]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/dcpsg.cpp
GTK+ 2.0 can't compile egg tray code
[wxWidgets.git] / src / generic / dcpsg.cpp
index 8286033876beb020de4b4e5fbac0372382d4c31f..9c0b4eaab1654730ad93fe7b5ce03614c18ffb0a 100644 (file)
@@ -613,7 +613,7 @@ void wxPostScriptDC::DoDrawPolygon (int n, wxPoint points[], wxCoord xoffset, wx
     }
 }
 
-void wxPostScriptDC::DoDrawPolyPolygon (int n, int start[], wxPoint points[], wxCoord xoffset, wxCoord yoffset, int fillStyle)
+void wxPostScriptDC::DoDrawPolyPolygon (int n, int count[], wxPoint points[], wxCoord xoffset, wxCoord yoffset, int fillStyle)
 {
     wxCHECK_RET( m_ok, wxT("invalid postscript dc") );
 
@@ -626,7 +626,7 @@ void wxPostScriptDC::DoDrawPolyPolygon (int n, int start[], wxPoint points[], wx
         PsPrint( "newpath\n" );
 
         int ofs = 0;
-        for (int i = 0; i < n; ofs += start[i++])
+        for (int i = 0; i < n; ofs += count[i++])
         {
             wxCoord xx = LogicalToDeviceX(points[ofs].x + xoffset);
             wxCoord yy = LogicalToDeviceY(points[ofs].y + yoffset);
@@ -635,7 +635,7 @@ void wxPostScriptDC::DoDrawPolyPolygon (int n, int start[], wxPoint points[], wx
 
             CalcBoundingBox( points[ofs].x + xoffset, points[ofs].y + yoffset );
 
-            for (int j = 1; j < start[i]; j++)
+            for (int j = 1; j < count[i]; j++)
             {
                 xx = LogicalToDeviceX(points[ofs+j].x + xoffset);
                 yy = LogicalToDeviceY(points[ofs+j].y + yoffset);
@@ -655,7 +655,7 @@ void wxPostScriptDC::DoDrawPolyPolygon (int n, int start[], wxPoint points[], wx
         PsPrint( "newpath\n" );
 
         int ofs = 0;
-        for (int i = 0; i < n; ofs += start[i++])
+        for (int i = 0; i < n; ofs += count[i++])
         {
             wxCoord xx = LogicalToDeviceX(points[ofs].x + xoffset);
             wxCoord yy = LogicalToDeviceY(points[ofs].y + yoffset);
@@ -664,7 +664,7 @@ void wxPostScriptDC::DoDrawPolyPolygon (int n, int start[], wxPoint points[], wx
 
             CalcBoundingBox( points[ofs].x + xoffset, points[ofs].y + yoffset );
 
-            for (int j = 1; j < start[i]; j++)
+            for (int j = 1; j < count[i]; j++)
             {
                 xx = LogicalToDeviceX(points[ofs+j].x + xoffset);
                 yy = LogicalToDeviceY(points[ofs+j].y + yoffset);
@@ -695,8 +695,8 @@ void wxPostScriptDC::DoDrawLines (int n, wxPoint points[], wxCoord xoffset, wxCo
         CalcBoundingBox( LogicalToDeviceX(points[i].x+xoffset), LogicalToDeviceY(points[i].y+yoffset));
     }
 
-    PsPrintf( wxT("newpath\n"
-                  "%d %d moveto\n"),
+    PsPrintf( wxT("newpath\n")
+              wxT("%d %d moveto\n"),
               LogicalToDeviceX(points[0].x+xoffset),
               LogicalToDeviceY(points[0].y+yoffset) );
     
@@ -1011,6 +1011,10 @@ void wxPostScriptDC::SetFont( const wxFont& font )
         }
     }
 
+    // We may legitimately call SetFont before BeginDoc
+    if (!m_pstream)
+        return;
+    
     PsPrint( name );
     PsPrint( " reencodeISO def\n" );
     PsPrint( name );
@@ -1178,6 +1182,9 @@ void wxPostScriptDC::SetBrush( const wxBrush& brush )
 #include "wx/x11/private.h"
 #endif
 
+#include <ft2build.h>
+#include FT_FREETYPE_H
+
 #include "wx/fontutil.h"
 #include <pango/pangoft2.h>
 #include <freetype/ftglyph.h>
@@ -1673,8 +1680,8 @@ void wxPostScriptDC::DoDrawSpline( wxList *points )
        next-to-last and last point respectively, in the point list
      */
 
-    PsPrintf( wxT("%d %d lineto\n"
-                  "stroke\n"),
+    PsPrintf( wxT("%d %d lineto\n")
+              wxT("stroke\n"),
             LogicalToDeviceX((wxCoord)c), LogicalToDeviceY((wxCoord)d) );
 }
 
@@ -1775,7 +1782,7 @@ bool wxPostScriptDC::StartDoc( const wxString& message )
 {
     wxCHECK_MSG( m_ok, FALSE, wxT("invalid postscript dc") );
 
-    if ( m_printData.GetPrintMode() == wxPRINT_MODE_FILE )
+    if ( m_printData.GetPrintMode() != wxPRINT_MODE_STREAM )
     {
         if (m_printData.GetFilename() == wxT(""))
         {
@@ -1799,7 +1806,7 @@ bool wxPostScriptDC::StartDoc( const wxString& message )
 
     PsPrint( "%!PS-Adobe-2.0\n" );
     PsPrintf( wxT("%%%%Title: %s\n"), m_title.c_str() );
-    PsPrint( "%%Creator: wxWindows PostScript renderer\n" );
+    PsPrint( "%%Creator: wxWidgets PostScript renderer\n" );
     PsPrintf( wxT("%%%%CreationDate: %s\n"), wxNow().c_str() );
     if (m_printData.GetOrientation() == wxLANDSCAPE)
         PsPrint( "%%Orientation: Landscape\n" );