]> git.saurik.com Git - wxWidgets.git/blame - include/wx/gtk1/dcps.h
Fixed nasty bug wxFont
[wxWidgets.git] / include / wx / gtk1 / dcps.h
CommitLineData
ed880dd4
RR
1/////////////////////////////////////////////////////////////////////////////
2// Name: dcps.h
3// Purpose: wxPostScriptDC class
4// Author: Julian Smart and others
5// Modified by:
6// RCS-ID: $Id$
7// Copyright: (c) Julian Smart, Robert Roebling and Markus Holzem
8// Licence: wxWindows licence
9/////////////////////////////////////////////////////////////////////////////
10
f04371f0
RR
11#ifndef __GTKDCPSH__
12#define __GTKDCPSNH__
ed880dd4
RR
13
14#ifdef __GNUG__
15#pragma interface
16#endif
17
18#include "wx/dc.h"
19#include "wx/dialog.h"
20#include "wx/module.h"
21#include <fstream.h>
22
23#if wxUSE_POSTSCRIPT
24
25//-----------------------------------------------------------------------------
26// classes
27//-----------------------------------------------------------------------------
28
ed880dd4 29class wxPostScriptDC;
ed880dd4
RR
30
31//-----------------------------------------------------------------------------
32// wxPostScriptDC
33//-----------------------------------------------------------------------------
34
35class WXDLLEXPORT wxPostScriptDC: public wxDC
36{
37 DECLARE_DYNAMIC_CLASS(wxPostScriptDC)
38
39public:
40
41 wxPostScriptDC();
42 wxPostScriptDC(const wxString& output, bool interactive = TRUE, wxWindow *parent = (wxWindow *) NULL);
43
44 ~wxPostScriptDC();
45
46 bool Create(const wxString& output, bool interactive = TRUE, wxWindow *parent = (wxWindow *) NULL);
47
4bc67cc5
RR
48 virtual bool Ok() const;
49
ed880dd4
RR
50 virtual bool PrinterDialog(wxWindow *parent = (wxWindow *) NULL);
51
4bc67cc5
RR
52 virtual void BeginDrawing() {}
53 virtual void EndDrawing() {}
ed880dd4
RR
54
55 void FloodFill(long x1, long y1, const wxColour &col, int style=wxFLOOD_SURFACE) ;
56 bool GetPixel(long x1, long y1, wxColour *col) const;
57
58 void DrawLine(long x1, long y1, long x2, long y2);
59 void CrossHair(long x, long y) ;
60 void DrawArc(long x1,long y1,long x2,long y2,long xc,long yc);
61 void DrawEllipticArc(long x,long y,long w,long h,double sa,double ea);
62 void DrawPoint(long x, long y);
63 // Avoid compiler warning
64 void DrawPoint(wxPoint& point) { wxDC::DrawPoint(point); }
65 void DrawLines(int n, wxPoint points[], long xoffset = 0, long yoffset = 0);
66 // Avoid compiler warning
67 void DrawLines(wxList *lines, long xoffset = 0, long yoffset = 0)
68 { wxDC::DrawLines(lines, xoffset, yoffset); }
69 void DrawPolygon(int n, wxPoint points[], long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE);
70 // Avoid compiler warning
71 void DrawPolygon(wxList *lines, long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE)
72 { wxDC::DrawPolygon(lines, xoffset, yoffset, fillStyle); }
73 void DrawRectangle(long x, long y, long width, long height);
74 void DrawRoundedRectangle(long x, long y, long width, long height, double radius = 20);
75 void DrawEllipse(long x, long y, long width, long height);
76
77 void DrawSpline(wxList *points);
78
79 bool Blit(long xdest, long ydest, long width, long height,
80 wxDC *source, long xsrc, long ysrc, int rop = wxCOPY, bool useMask = FALSE);
81 inline bool CanDrawBitmap(void) const { return TRUE; }
82
83 void DrawIcon( const wxIcon& icon, long x, long y );
84 void DrawBitmap( const wxBitmap& bitmap, long x, long y, bool useMask=FALSE );
8bbe427f 85
ed880dd4
RR
86 void DrawText(const wxString& text, long x, long y, bool use16 = FALSE);
87
88 void Clear();
89 void SetFont( const wxFont& font );
90 void SetPen( const wxPen& pen );
91 void SetBrush( const wxBrush& brush );
92 void SetLogicalFunction( int function );
93 void SetBackground( const wxBrush& brush );
8bbe427f 94
ed880dd4
RR
95 void SetClippingRegion(long x, long y, long width, long height);
96 void SetClippingRegion( const wxRegion &region );
97 void DestroyClippingRegion();
98
99 bool StartDoc(const wxString& message);
100 void EndDoc();
101 void StartPage();
102 void EndPage();
103
104 long GetCharHeight();
105 long GetCharWidth();
106 inline bool CanGetTextExtent(void) const { return FALSE; }
107 void GetTextExtent(const wxString& string, long *x, long *y,
108 long *descent = (long *) NULL,
109 long *externalLeading = (long *) NULL,
110 wxFont *theFont = (wxFont *) NULL, bool use16 = FALSE);
8bbe427f 111
ed880dd4
RR
112 void GetSize(int* width, int* height) const;
113 void GetSizeMM(long *width, long *height) const;
114
115 void SetAxisOrientation( bool xLeftRight, bool yBottomUp );
116 void SetDeviceOrigin( long x, long y );
8bbe427f 117
4bc67cc5 118 inline void SetBackgroundMode(int WXUNUSED(mode)) {}
ed880dd4 119 inline void SetPalette(const wxPalette& WXUNUSED(palette)) {}
8bbe427f 120
ed880dd4
RR
121 inline ofstream *GetStream(void) const { return m_pstream; }
122
123protected:
124
125 ofstream * m_pstream; // PostScript output stream
126 wxString m_title;
127 unsigned char m_currentRed;
128 unsigned char m_currentGreen;
129 unsigned char m_currentBlue;
130 int m_pageNumber;
131 bool m_clipping;
132 double m_underlinePosition;
133 double m_underlineThickness;
134};
135
8bbe427f 136#endif
ed880dd4
RR
137 // wxUSE_POSTSCRIPT
138
139#endif
f04371f0 140 // __GTKDCPSH__