| 1 | ///////////////////////////////////////////////////////////////////////////// |
| 2 | // Name: dcclient.h |
| 3 | // Purpose: wxClientDC, wxPaintDC and wxWindowDC classes |
| 4 | // Author: AUTHOR |
| 5 | // Modified by: |
| 6 | // Created: ??/??/98 |
| 7 | // RCS-ID: $Id$ |
| 8 | // Copyright: (c) AUTHOR |
| 9 | // Licence: wxWindows licence |
| 10 | ///////////////////////////////////////////////////////////////////////////// |
| 11 | |
| 12 | #ifndef _WX_DCCLIENT_H_ |
| 13 | #define _WX_DCCLIENT_H_ |
| 14 | |
| 15 | #ifdef __GNUG__ |
| 16 | #pragma interface "dcclient.h" |
| 17 | #endif |
| 18 | |
| 19 | #include "wx/dc.h" |
| 20 | |
| 21 | //----------------------------------------------------------------------------- |
| 22 | // classes |
| 23 | //----------------------------------------------------------------------------- |
| 24 | |
| 25 | class WXDLLEXPORT wxPaintDC; |
| 26 | class WXDLLEXPORT wxWindow; |
| 27 | |
| 28 | // Under Windows, wxClientDC, wxPaintDC and wxWindowDC are implemented differently. |
| 29 | // On many platforms, however, they will be the same. |
| 30 | |
| 31 | class WXDLLEXPORT wxWindowDC: public wxDC |
| 32 | { |
| 33 | DECLARE_DYNAMIC_CLASS(wxWindowDC) |
| 34 | |
| 35 | public: |
| 36 | |
| 37 | wxWindowDC(void); |
| 38 | wxWindowDC( wxWindow *win ); |
| 39 | |
| 40 | ~wxWindowDC(void); |
| 41 | |
| 42 | virtual void FloodFill( long x1, long y1, const wxColour& col, int style=wxFLOOD_SURFACE ); |
| 43 | virtual bool GetPixel( long x1, long y1, wxColour *col ) const; |
| 44 | |
| 45 | virtual void DrawLine( long x1, long y1, long x2, long y2 ); |
| 46 | virtual void CrossHair( long x, long y ); |
| 47 | virtual void DrawArc( long x1, long y1, long x2, long y2, long xc, long yc ); |
| 48 | virtual void DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ); |
| 49 | virtual void DrawPoint( long x, long y ); |
| 50 | |
| 51 | virtual void DrawLines( int n, wxPoint points[], long xoffset = 0, long yoffset = 0 ); |
| 52 | virtual void DrawLines( wxList *points, long xoffset = 0, long yoffset = 0 ); |
| 53 | virtual void DrawPolygon( int n, wxPoint points[], long xoffset = 0, long yoffset = 0, |
| 54 | int fillStyle=wxODDEVEN_RULE ); |
| 55 | virtual void DrawPolygon( wxList *lines, long xoffset = 0, long yoffset = 0, |
| 56 | int fillStyle=wxODDEVEN_RULE ); |
| 57 | |
| 58 | virtual void DrawRectangle( long x, long y, long width, long height ); |
| 59 | virtual void DrawRoundedRectangle( long x, long y, long width, long height, double radius = 20.0 ); |
| 60 | virtual void DrawEllipse( long x, long y, long width, long height ); |
| 61 | |
| 62 | virtual bool CanDrawBitmap(void) const; |
| 63 | virtual void DrawIcon( const wxIcon &icon, long x, long y, bool useMask=FALSE ); |
| 64 | virtual bool Blit( long xdest, long ydest, long width, long height, |
| 65 | wxDC *source, long xsrc, long ysrc, int logical_func = wxCOPY, bool useMask=FALSE ); |
| 66 | |
| 67 | virtual void DrawText( const wxString &text, long x, long y, bool use16 = FALSE ); |
| 68 | virtual bool CanGetTextExtent(void) const; |
| 69 | virtual void GetTextExtent( const wxString &string, long *width, long *height, |
| 70 | long *descent = NULL, long *externalLeading = NULL, |
| 71 | wxFont *theFont = NULL, bool use16 = FALSE ); |
| 72 | virtual long GetCharWidth(void); |
| 73 | virtual long GetCharHeight(void); |
| 74 | |
| 75 | virtual void Clear(void); |
| 76 | |
| 77 | virtual void SetFont( const wxFont &font ); |
| 78 | virtual void SetPen( const wxPen &pen ); |
| 79 | virtual void SetBrush( const wxBrush &brush ); |
| 80 | virtual void SetBackground( const wxBrush &brush ); |
| 81 | virtual void SetLogicalFunction( int function ); |
| 82 | virtual void SetTextForeground( const wxColour &col ); |
| 83 | virtual void SetTextBackground( const wxColour &col ); |
| 84 | virtual void SetBackgroundMode( int mode ); |
| 85 | virtual void SetPalette( const wxPalette& palette ); |
| 86 | |
| 87 | virtual void SetClippingRegion( long x, long y, long width, long height ); |
| 88 | virtual void SetClippingRegion( const wxRegion& region ) ; |
| 89 | virtual void DestroyClippingRegion(void); |
| 90 | |
| 91 | virtual void DrawSpline( wxList *points ); |
| 92 | }; |
| 93 | |
| 94 | //----------------------------------------------------------------------------- |
| 95 | // wxPaintDC |
| 96 | //----------------------------------------------------------------------------- |
| 97 | |
| 98 | class WXDLLEXPORT wxPaintDC: public wxWindowDC |
| 99 | { |
| 100 | DECLARE_DYNAMIC_CLASS(wxPaintDC) |
| 101 | |
| 102 | public: |
| 103 | |
| 104 | wxPaintDC(void):wxWindowDC() {}; |
| 105 | wxPaintDC( wxWindow *win ): wxWindowDC(win) {}; |
| 106 | |
| 107 | }; |
| 108 | |
| 109 | //----------------------------------------------------------------------------- |
| 110 | // wxClientDC |
| 111 | //----------------------------------------------------------------------------- |
| 112 | |
| 113 | class WXDLLEXPORT wxClientDC: public wxWindowDC |
| 114 | { |
| 115 | DECLARE_DYNAMIC_CLASS(wxClientDC) |
| 116 | |
| 117 | public: |
| 118 | |
| 119 | wxClientDC(void):wxWindowDC() {}; |
| 120 | wxClientDC( wxWindow *win ): wxWindowDC(win) {}; |
| 121 | |
| 122 | }; |
| 123 | |
| 124 | #endif |
| 125 | // _WX_DCCLIENT_H_ |