1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxPostScriptDC class
4 // Author: Julian Smart and others
7 // Copyright: (c) Julian Smart, Robert Roebling and Markus Holzem
8 // Licence: wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
22 #include "wx/dialog.h"
23 #include "wx/module.h"
27 //-----------------------------------------------------------------------------
29 //-----------------------------------------------------------------------------
33 //-----------------------------------------------------------------------------
35 //-----------------------------------------------------------------------------
37 class WXDLLEXPORT wxPostScriptDC
: public wxDC
39 DECLARE_DYNAMIC_CLASS(wxPostScriptDC
)
44 wxPostScriptDC(const wxString
& output
, bool interactive
= TRUE
, wxWindow
*parent
= (wxWindow
*) NULL
);
48 bool Create(const wxString
& output
, bool interactive
= TRUE
, wxWindow
*parent
= (wxWindow
*) NULL
);
50 virtual bool Ok() const;
52 virtual bool PrinterDialog(wxWindow
*parent
= (wxWindow
*) NULL
);
54 virtual void BeginDrawing() {}
55 virtual void EndDrawing() {}
57 void FloodFill(long x1
, long y1
, const wxColour
&col
, int style
=wxFLOOD_SURFACE
) ;
58 bool GetPixel(long x1
, long y1
, wxColour
*col
) const;
60 void DrawLine(long x1
, long y1
, long x2
, long y2
);
61 void CrossHair(long x
, long y
) ;
62 void DrawArc(long x1
,long y1
,long x2
,long y2
,long xc
,long yc
);
63 void DrawEllipticArc(long x
,long y
,long w
,long h
,double sa
,double ea
);
64 void DrawPoint(long x
, long y
);
65 // Avoid compiler warning
66 void DrawPoint(wxPoint
& point
) { wxDC::DrawPoint(point
); }
67 void DrawLines(int n
, wxPoint points
[], long xoffset
= 0, long yoffset
= 0);
68 // Avoid compiler warning
69 void DrawLines(wxList
*lines
, long xoffset
= 0, long yoffset
= 0)
70 { wxDC::DrawLines(lines
, xoffset
, yoffset
); }
71 void DrawPolygon(int n
, wxPoint points
[], long xoffset
= 0, long yoffset
= 0, int fillStyle
=wxODDEVEN_RULE
);
72 // Avoid compiler warning
73 void DrawPolygon(wxList
*lines
, long xoffset
= 0, long yoffset
= 0, int fillStyle
=wxODDEVEN_RULE
)
74 { wxDC::DrawPolygon(lines
, xoffset
, yoffset
, fillStyle
); }
75 void DrawRectangle(long x
, long y
, long width
, long height
);
76 void DrawRoundedRectangle(long x
, long y
, long width
, long height
, double radius
= 20);
77 void DrawEllipse(long x
, long y
, long width
, long height
);
79 void DrawSpline(wxList
*points
);
81 bool Blit(long xdest
, long ydest
, long width
, long height
,
82 wxDC
*source
, long xsrc
, long ysrc
, int rop
= wxCOPY
, bool useMask
= FALSE
);
83 inline bool CanDrawBitmap(void) const { return TRUE
; }
85 void DrawIcon( const wxIcon
& icon
, long x
, long y
);
86 void DrawBitmap( const wxBitmap
& bitmap
, long x
, long y
, bool useMask
=FALSE
);
88 void DrawText(const wxString
& text
, long x
, long y
, bool use16
= FALSE
);
91 void SetFont( const wxFont
& font
);
92 void SetPen( const wxPen
& pen
);
93 void SetBrush( const wxBrush
& brush
);
94 void SetLogicalFunction( int function
);
95 void SetBackground( const wxBrush
& brush
);
97 void SetClippingRegion(long x
, long y
, long width
, long height
);
98 void SetClippingRegion( const wxRegion
®ion
);
99 void DestroyClippingRegion();
101 bool StartDoc(const wxString
& message
);
106 long GetCharHeight();
108 inline bool CanGetTextExtent(void) const { return FALSE
; }
109 void GetTextExtent(const wxString
& string
, long *x
, long *y
,
110 long *descent
= (long *) NULL
,
111 long *externalLeading
= (long *) NULL
,
112 wxFont
*theFont
= (wxFont
*) NULL
, bool use16
= FALSE
);
114 void GetSize(int* width
, int* height
) const;
115 void GetSizeMM(long *width
, long *height
) const;
117 void SetAxisOrientation( bool xLeftRight
, bool yBottomUp
);
118 void SetDeviceOrigin( long x
, long y
);
120 inline void SetBackgroundMode(int WXUNUSED(mode
)) {}
121 inline void SetPalette(const wxPalette
& WXUNUSED(palette
)) {}
123 inline ofstream
*GetStream(void) const { return m_pstream
; }
127 ofstream
* m_pstream
; // PostScript output stream
129 unsigned char m_currentRed
;
130 unsigned char m_currentGreen
;
131 unsigned char m_currentBlue
;
134 double m_underlinePosition
;
135 double m_underlineThickness
;