X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ed8385818f26035d2f60d3a719250ffab48e6c34..9a7b7798282622e445efc3318b6c85ff0bed9af8:/src/generic/dcpsg.cpp diff --git a/src/generic/dcpsg.cpp b/src/generic/dcpsg.cpp index e978a7dba0..777796b782 100644 --- a/src/generic/dcpsg.cpp +++ b/src/generic/dcpsg.cpp @@ -252,7 +252,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxPostScriptDC, wxDC) //------------------------------------------------------------------------------- -void wxPostScriptDC::SetResolution(int ppi) +void wxPostScriptDC::SetResolution(int WXUNUSED(ppi)) { } @@ -297,7 +297,7 @@ wxPostScriptDC::wxPostScriptDC (const wxPrintData& printData) // this calculates m_pageHeight required for // taking the inverted Y axis into account SetPrintData( printData ); - + m_ok = true; } @@ -446,8 +446,8 @@ void wxPostScriptDC::DoDrawArc (wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, "%f %f lineto\n" "closepath\n" "fill\n", - XLOG2DEV(xc), YLOG2DEV(yc), - XLOG2DEVREL(i_radius), YLOG2DEVREL(i_radius), + XLOG2DEV(xc), YLOG2DEV(yc), + XLOG2DEVREL(i_radius), YLOG2DEVREL(i_radius), alpha1, alpha2, XLOG2DEV(xc), YLOG2DEV(yc) ); buffer.Replace( ",", "." ); @@ -460,15 +460,15 @@ void wxPostScriptDC::DoDrawArc (wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, if (m_pen.GetStyle() != wxTRANSPARENT) { SetPen( m_pen ); - + wxString buffer; buffer.Printf( "newpath\n" "%f %f %f %f %f %f ellipse\n" "%f %f lineto\n" "closepath\n" "stroke\n", - XLOG2DEV(xc), YLOG2DEV(yc), - XLOG2DEVREL(i_radius), YLOG2DEVREL(i_radius), + XLOG2DEV(xc), YLOG2DEV(yc), + XLOG2DEVREL(i_radius), YLOG2DEVREL(i_radius), alpha1, alpha2, XLOG2DEV(xc), YLOG2DEV(yc) ); buffer.Replace( ",", "." ); @@ -721,7 +721,7 @@ void wxPostScriptDC::DoDrawLines (int n, wxPoint points[], wxCoord xoffset, wxCo YLOG2DEV(points[0].y+yoffset) ); buffer.Replace( ",", "." ); PsPrint( buffer ); - + for (i = 1; i < n; i++) { buffer.Printf( "%f %f lineto\n", @@ -738,6 +738,9 @@ void wxPostScriptDC::DoDrawRectangle (wxCoord x, wxCoord y, wxCoord width, wxCoo { wxCHECK_RET( m_ok, wxT("invalid postscript dc") ); + width--; + height--; + if (m_brush.GetStyle () != wxTRANSPARENT) { SetBrush( m_brush ); @@ -789,6 +792,9 @@ void wxPostScriptDC::DoDrawRoundedRectangle (wxCoord x, wxCoord y, wxCoord width { wxCHECK_RET( m_ok, wxT("invalid postscript dc") ); + width--; + height--; + if (radius < 0.0) { // Now, a negative radius is interpreted to mean @@ -868,6 +874,9 @@ void wxPostScriptDC::DoDrawEllipse (wxCoord x, wxCoord y, wxCoord width, wxCoord { wxCHECK_RET( m_ok, wxT("invalid postscript dc") ); + width--; + height--; + if (m_brush.GetStyle () != wxTRANSPARENT) { SetBrush (m_brush); @@ -970,7 +979,7 @@ void wxPostScriptDC::DoDrawBitmap( const wxBitmap& bitmap, wxCoord x, wxCoord y, } *(bufferindex++) = '\n'; *bufferindex = 0; - + if (m_pstream) fwrite( charbuffer, 1, strlen( charbuffer ), m_pstream ); else @@ -1067,7 +1076,7 @@ void wxPostScriptDC::SetFont( const wxFont& font ) PsPrint( name ); PsPrint( " findfont\n" ); - + double size = (double) m_font.GetPointSize(); wxString buffer; buffer.Printf( "%f scalefont setfont\n", size * DEV2PS * m_scaleX ); @@ -1086,7 +1095,7 @@ void wxPostScriptDC::SetPen( const wxPen& pen ) m_pen = pen; double width; - + if (m_pen.GetWidth() <= 0) width = 0.1; else @@ -1232,9 +1241,9 @@ void wxPostScriptDC::DoDrawText( const wxString& text, wxCoord x, wxCoord y ) wxCHECK_RET( m_ok, wxT("invalid postscript dc") ); const wxWX2MBbuf textbuf = text.mb_str(); - if (textbuf.data() == NULL) + if ( !textbuf ) return; - + if (m_textForegroundColour.Ok()) { unsigned char red = m_textForegroundColour.Red(); @@ -1317,7 +1326,7 @@ void wxPostScriptDC::DoDrawText( const wxString& text, wxCoord x, wxCoord y ) if (m_font.GetUnderlined()) { wxCoord uy = (wxCoord)(y + size - m_underlinePosition); - + buffer.Printf( "gsave\n" "%f %f moveto\n" "%f setlinewidth\n" @@ -1377,7 +1386,7 @@ void wxPostScriptDC::DoDrawRotatedText( const wxString& text, wxCoord x, wxCoord buffer.Printf( "%f %f %f setrgbcolor\n", redPS, greenPS, bluePS ); buffer.Replace( ",", "." ); PsPrint( buffer ); - + m_currentRed = red; m_currentBlue = blue; m_currentGreen = green; @@ -1432,7 +1441,7 @@ void wxPostScriptDC::DoDrawRotatedText( const wxString& text, wxCoord x, wxCoord wxCoord w, h; GetTextExtent(text, &w, &h); - buffer.Printf( + buffer.Printf( "gsave\n" "%f %f moveto\n" "%f setlinewidth\n" @@ -1461,7 +1470,7 @@ void wxPostScriptDC::SetLogicalFunction (int WXUNUSED(function)) } #if wxUSE_SPLINES -void wxPostScriptDC::DoDrawSpline( wxList *points ) +void wxPostScriptDC::DoDrawSpline( const wxPointList *points ) { wxCHECK_RET( m_ok, wxT("invalid postscript dc") ); @@ -1472,13 +1481,13 @@ void wxPostScriptDC::DoDrawSpline( wxList *points ) double c, d, x1, y1, x2, y2, x3, y3; wxPoint *p, *q; - wxList::compatibility_iterator node = points->GetFirst(); - p = (wxPoint *)node->GetData(); + wxPointList::compatibility_iterator node = points->GetFirst(); + p = node->GetData(); x1 = p->x; y1 = p->y; node = node->GetNext(); - p = (wxPoint *)node->GetData(); + p = node->GetData(); c = p->x; d = p->y; x3 = @@ -1507,7 +1516,7 @@ void wxPostScriptDC::DoDrawSpline( wxList *points ) node = node->GetNext(); while (node) { - q = (wxPoint *)node->GetData(); + q = node->GetData(); x1 = x3; y1 = y3; @@ -1550,7 +1559,7 @@ wxCoord wxPostScriptDC::GetCharWidth() const void wxPostScriptDC::SetPrintData(const wxPrintData& data) { - m_printData = data; + m_printData = data; wxPaperSize id = m_printData.GetPaperId(); wxPrintPaperType *paper = wxThePrintPaperDatabase->FindPaperType(id); @@ -1644,10 +1653,10 @@ void wxPostScriptDC::DoGetSize(int* width, int* height) const h = tmp; } - if (width) + if (width) *width = wxRound( w * PS2DEV ); - - if (height) + + if (height) *height = wxRound( h * PS2DEV ); } @@ -1713,14 +1722,14 @@ bool wxPostScriptDC::StartDoc( const wxString& message ) wxString buffer; PsPrint( "%!PS-Adobe-2.0\n" ); - + buffer.Printf( "%%%%Title: %s\n", m_title ); PsPrint( buffer ); PsPrint( "%%Creator: wxWidgets PostScript renderer\n" ); - + buffer.Printf( "%%%%CreationDate: %s\n", wxNow() ); PsPrint( buffer ); - + if (m_printData.GetOrientation() == wxLANDSCAPE) PsPrint( "%%Orientation: Landscape\n" ); else @@ -1745,10 +1754,10 @@ bool wxPostScriptDC::StartDoc( const wxString& message ) case wxPAPER_10X14: paper = wxT("10x14"); break; // 10-by-14-inch sheet default: paper = wxT("A4"); } - + buffer.Printf( "%%%%DocumentPaperSizes: %s\n", paper ); PsPrint( buffer ); - + PsPrint( "%%EndComments\n\n" ); PsPrint( "%%BeginProlog\n" ); @@ -1891,23 +1900,23 @@ void wxPostScriptDC::StartPage() buffer.Printf( "%d %d translate\n", translate_x, translate_y ); PsPrint( buffer ); - + double scale_x = data->GetPrinterScaleX(); double scale_y = data->GetPrinterScaleY(); - + buffer.Printf( "%f %f scale\n", scale_x, scale_y ); buffer.Replace( ",", "." ); PsPrint( buffer ); - + #endif // Each page starts with an "initgraphics" which resets the - // transformation and so we need to rotate the page for + // transformation and so we need to rotate the page for // landscape printing) // I copied this one from a PostScript tutorial, but to no avail. RR. // PsPrint( "90 rotate llx neg ury nef translate\n" ); - + if (m_printData.GetOrientation() == wxLANDSCAPE) PsPrint( "90 rotate\n" ); } @@ -2000,9 +2009,9 @@ void wxPostScriptDC::DoGetTextExtent(const wxString& string, // GTK 2.0 const wxWX2MBbuf strbuf = string.mb_str(); - + // conversion failed (non e.g. ISO characters) - if (strbuf.data() == NULL) + if ( !strbuf ) return; #if !wxUSE_AFM_FOR_POSTSCRIPT