Fix various minor PS issues
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -465,8 +465,8 @@ void wxPostScriptDC::DoDrawArc (wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2,
|
|||||||
buffer.Printf( "newpath\n"
|
buffer.Printf( "newpath\n"
|
||||||
"%f %f %f %f %f %f ellipse\n"
|
"%f %f %f %f %f %f ellipse\n"
|
||||||
"%f %f lineto\n"
|
"%f %f lineto\n"
|
||||||
"stroke\n"
|
"closepath\n"
|
||||||
"fill\n",
|
"stroke\n",
|
||||||
XLOG2DEV(xc), YLOG2DEV(yc),
|
XLOG2DEV(xc), YLOG2DEV(yc),
|
||||||
XLOG2DEVREL(i_radius), YLOG2DEVREL(i_radius),
|
XLOG2DEVREL(i_radius), YLOG2DEVREL(i_radius),
|
||||||
alpha1, alpha2,
|
alpha1, alpha2,
|
||||||
@@ -524,7 +524,7 @@ void wxPostScriptDC::DoDrawEllipticArc(wxCoord x,wxCoord y,wxCoord w,wxCoord h,d
|
|||||||
"%f %f %f %f %f %f false ellipticarc\n",
|
"%f %f %f %f %f %f false ellipticarc\n",
|
||||||
XLOG2DEV(x+w/2), YLOG2DEV(y+h/2),
|
XLOG2DEV(x+w/2), YLOG2DEV(y+h/2),
|
||||||
XLOG2DEVREL(w/2), YLOG2DEVREL(h/2),
|
XLOG2DEVREL(w/2), YLOG2DEVREL(h/2),
|
||||||
wxRound(sa), wxRound(ea) );
|
sa, ea );
|
||||||
buffer.Replace( ",", "." );
|
buffer.Replace( ",", "." );
|
||||||
PsPrint( buffer );
|
PsPrint( buffer );
|
||||||
|
|
||||||
@@ -933,14 +933,14 @@ void wxPostScriptDC::DoDrawBitmap( const wxBitmap& bitmap, wxCoord x, wxCoord y,
|
|||||||
wxString buffer;
|
wxString buffer;
|
||||||
buffer.Printf( "/origstate save def\n"
|
buffer.Printf( "/origstate save def\n"
|
||||||
"20 dict begin\n"
|
"20 dict begin\n"
|
||||||
"/pix %f string def\n"
|
"/pix %d string def\n"
|
||||||
"/grays %f string def\n"
|
"/grays %d string def\n"
|
||||||
"/npixels 0 def\n"
|
"/npixels 0 def\n"
|
||||||
"/rgbindx 0 def\n"
|
"/rgbindx 0 def\n"
|
||||||
"%f %f translate\n"
|
"%f %f translate\n"
|
||||||
"%f %f scale\n"
|
"%f %f scale\n"
|
||||||
"%f %f 8\n"
|
"%d %d 8\n"
|
||||||
"[%f 0 0 %f 0 %f]\n"
|
"[%d 0 0 %d 0 %d]\n"
|
||||||
"{currentfile pix readhexstring pop}\n"
|
"{currentfile pix readhexstring pop}\n"
|
||||||
"false 3 colorimage\n",
|
"false 3 colorimage\n",
|
||||||
w, w, xx, yy, ww, hh, w, h, w, -h, h );
|
w, w, xx, yy, ww, hh, w, h, w, -h, h );
|
||||||
@@ -970,7 +970,11 @@ void wxPostScriptDC::DoDrawBitmap( const wxBitmap& bitmap, wxCoord x, wxCoord y,
|
|||||||
}
|
}
|
||||||
*(bufferindex++) = '\n';
|
*(bufferindex++) = '\n';
|
||||||
*bufferindex = 0;
|
*bufferindex = 0;
|
||||||
PsPrint( charbuffer );
|
|
||||||
|
if (m_pstream)
|
||||||
|
fwrite( charbuffer, 1, strlen( charbuffer ), m_pstream );
|
||||||
|
else
|
||||||
|
PsPrint( charbuffer );
|
||||||
}
|
}
|
||||||
|
|
||||||
PsPrint( "end\n" );
|
PsPrint( "end\n" );
|
||||||
@@ -1272,11 +1276,6 @@ void wxPostScriptDC::DoDrawText( const wxString& text, wxCoord x, wxCoord y )
|
|||||||
|
|
||||||
GetTextExtent(text, &text_w, &text_h, &text_descent);
|
GetTextExtent(text, &text_w, &text_h, &text_descent);
|
||||||
|
|
||||||
// VZ: this seems to be unnecessary, so taking it out for now, if it
|
|
||||||
// doesn't create any problems, remove this comment entirely
|
|
||||||
//SetFont( m_font );
|
|
||||||
|
|
||||||
|
|
||||||
int size = m_font.GetPointSize();
|
int size = m_font.GetPointSize();
|
||||||
|
|
||||||
// wxCoord by = y + (wxCoord)floor( double(size) * 2.0 / 3.0 ); // approximate baseline
|
// wxCoord by = y + (wxCoord)floor( double(size) * 2.0 / 3.0 ); // approximate baseline
|
||||||
@@ -1603,6 +1602,25 @@ void wxPostScriptDC::SetDeviceOrigin(wxCoord x, wxCoord y)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void wxPostScriptDC::ComputeScaleAndOrigin()
|
||||||
|
{
|
||||||
|
const wxRealPoint origScale(m_scaleX, m_scaleY);
|
||||||
|
|
||||||
|
#if wxUSE_NEW_DC
|
||||||
|
wxImplDC::ComputeScaleAndOrigin();
|
||||||
|
#else
|
||||||
|
wxDC::ComputeScaleAndOrigin();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// If scale has changed call SetPen to recalulate the line width
|
||||||
|
// and SetFont to recalculate font size
|
||||||
|
if ( wxRealPoint(m_scaleX, m_scaleY) != origScale && m_pen.IsOk() )
|
||||||
|
{
|
||||||
|
SetPen( m_pen );
|
||||||
|
SetFont( m_font );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void wxPostScriptDC::DoGetSize(int* width, int* height) const
|
void wxPostScriptDC::DoGetSize(int* width, int* height) const
|
||||||
{
|
{
|
||||||
wxPaperSize id = m_printData.GetPaperId();
|
wxPaperSize id = m_printData.GetPaperId();
|
||||||
|
Reference in New Issue
Block a user