#pragma hdrstop
#endif
-#ifndef WX_PRECOMP
-#endif // WX_PRECOMP
-
-#if wxUSE_PRINTING_ARCHITECTURE
+#if wxUSE_PRINTING_ARCHITECTURE && wxUSE_POSTSCRIPT
-#if wxUSE_POSTSCRIPT
+#include "wx/generic/dcpsg.h"
-#include "wx/setup.h"
+#ifndef WX_PRECOMP
+ #include "wx/intl.h"
+ #include "wx/log.h"
+#endif // WX_PRECOMP
#include "wx/dcmemory.h"
#include "wx/utils.h"
-#include "wx/intl.h"
#include "wx/app.h"
#include "wx/image.h"
-#include "wx/log.h"
-#include "wx/generic/dcpsg.h"
#include "wx/prntbase.h"
#include "wx/generic/prntdlgg.h"
#include "wx/paper.h"
unsigned char* data = image.GetData();
- /* buffer = line = width*rgb(3)*hexa(2)+'\n'(1)+null(1) */
- char* buffer = new char[ w*6+2 ];
+ // size of the buffer = width*rgb(3)*hexa(2)+'\n'
+ wxCharBuffer buffer(w*6 + 1);
int firstDigit, secondDigit;
//rows
for (int j = 0; j < h; j++)
{
- char* bufferindex = buffer;
+ char* bufferindex = buffer.data();
//cols
for (int i = 0; i < w*3; i++)
case wxSHORT_DASH: psdash = short_dashed; break;
case wxLONG_DASH: psdash = wxCoord_dashed; break;
case wxDOT_DASH: psdash = dotted_dashed; break;
+ case wxUSER_DASH:
+ {
+ wxDash *dashes;
+ int nDashes = m_pen.GetDashes (&dashes);
+ PsPrint ("[");
+ for (int i = 0; i < nDashes; ++i)
+ {
+ sprintf( buffer, "%d ", dashes [i] );
+ PsPrint( buffer );
+ }
+ PsPrint ("] 0 setdash\n");
+ psdash = 0;
+ }
+ break;
case wxSOLID:
case wxTRANSPARENT:
default: psdash = "[] 0"; break;
}
- if ( (oldStyle != m_pen.GetStyle()) )
+ if ( psdash && (oldStyle != m_pen.GetStyle()) )
{
PsPrint( psdash );
PsPrint( " setdash\n" );
double bluePS = (double)(blue) / 255.0;
double greenPS = (double)(green) / 255.0;
- char buffer[100];
sprintf( buffer,
"%.8f %.8f %.8f setrgbcolor\n",
redPS, greenPS, bluePS );
}
CalcBoundingBox( x, y );
- CalcBoundingBox( x + size * text.Length() * 2/3 , y );
+ CalcBoundingBox( x + size * text.length() * 2/3 , y );
}
void wxPostScriptDC::DoDrawRotatedText( const wxString& text, wxCoord x, wxCoord y, double angle )
{
wxCoord uy = (wxCoord)(y + size - m_underlinePosition);
wxCoord w, h;
- char buffer[100];
GetTextExtent(text, &w, &h);
sprintf( buffer,
}
CalcBoundingBox( x, y );
- CalcBoundingBox( x + size * text.Length() * 2/3 , y );
+ CalcBoundingBox( x + size * text.length() * 2/3 , y );
}
void wxPostScriptDC::SetBackground (const wxBrush& brush)
// it just crashes
#ifndef __WIN32__
wxPostScriptPrintNativeData *data =
- (wxPostScriptPrintNativeData *) m_printData.GetNativeData();
+ wxDynamicCast(m_printData.GetNativeData(), wxPostScriptPrintNativeData);
- if (!data->GetFontMetricPath().empty())
+ if (data && !data->GetFontMetricPath().empty())
{
afmName = data->GetFontMetricPath();
afmName << wxFILE_SEP_PATH << name;
if ( !afmName.empty() )
afmFile = wxFopen(afmName, wxT("r"));
- if ( !afmFile )
- {
- }
-
if ( !afmFile )
{
#if defined(__UNIX__) && !defined(__VMS__)
}
}
-#endif
- // wxUSE_POSTSCRIPT
-
-#endif
- // wxUSE_PRINTING_ARCHITECTURE
-
+#endif // wxUSE_PRINTING_ARCHITECTURE && wxUSE_POSTSCRIPT
// vi:sts=4:sw=4:et