1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/gtk1/dcclient.h 
   4 // Author:      Robert Roebling 
   6 // Copyright:   (c) 1998 Robert Roebling 
   7 // Licence:     wxWindows licence 
   8 ///////////////////////////////////////////////////////////////////////////// 
  10 #ifndef __GTKDCCLIENTH__ 
  11 #define __GTKDCCLIENTH__ 
  14 #include "wx/window.h" 
  16 //----------------------------------------------------------------------------- 
  18 //----------------------------------------------------------------------------- 
  20 class WXDLLIMPEXP_CORE wxWindowDC
; 
  21 class WXDLLIMPEXP_CORE wxPaintDC
; 
  22 class WXDLLIMPEXP_CORE wxClientDC
; 
  24 //----------------------------------------------------------------------------- 
  26 //----------------------------------------------------------------------------- 
  28 class WXDLLIMPEXP_CORE wxWindowDC 
: public wxDC
 
  32     wxWindowDC( wxWindow 
*win 
); 
  34     virtual ~wxWindowDC(); 
  36     virtual bool CanDrawBitmap() const { return true; } 
  37     virtual bool CanGetTextExtent() const { return true; } 
  40     virtual void DoGetSize(int *width
, int *height
) const; 
  41     virtual bool DoFloodFill( wxCoord x
, wxCoord y
, const wxColour
& col
, int style
=wxFLOOD_SURFACE 
); 
  42     virtual bool DoGetPixel( wxCoord x1
, wxCoord y1
, wxColour 
*col 
) const; 
  44     virtual void DoDrawLine( wxCoord x1
, wxCoord y1
, wxCoord x2
, wxCoord y2 
); 
  45     virtual void DoCrossHair( wxCoord x
, wxCoord y 
); 
  46     virtual void DoDrawArc( wxCoord x1
, wxCoord y1
, wxCoord x2
, wxCoord y2
, 
  47                             wxCoord xc
, wxCoord yc 
); 
  48     virtual void DoDrawEllipticArc( wxCoord x
, wxCoord y
, wxCoord width
, wxCoord height
, 
  49                                     double sa
, double ea 
); 
  50     virtual void DoDrawPoint( wxCoord x
, wxCoord y 
); 
  52     virtual void DoDrawLines(int n
, wxPoint points
[], 
  53                              wxCoord xoffset
, wxCoord yoffset
); 
  54     virtual void DoDrawPolygon(int n
, wxPoint points
[], 
  55                                wxCoord xoffset
, wxCoord yoffset
, 
  56                                int fillStyle 
= wxODDEVEN_RULE
); 
  58     virtual void DoDrawRectangle( wxCoord x
, wxCoord y
, wxCoord width
, wxCoord height 
); 
  59     virtual void DoDrawRoundedRectangle( wxCoord x
, wxCoord y
, wxCoord width
, wxCoord height
, double radius 
= 20.0 ); 
  60     virtual void DoDrawEllipse( wxCoord x
, wxCoord y
, wxCoord width
, wxCoord height 
); 
  62     virtual void DoDrawIcon( const wxIcon 
&icon
, wxCoord x
, wxCoord y 
); 
  63     virtual void DoDrawBitmap( const wxBitmap 
&bitmap
, wxCoord x
, wxCoord y
, 
  64                                bool useMask 
= false ); 
  66     virtual bool DoBlit( wxCoord xdest
, wxCoord ydest
, wxCoord width
, wxCoord height
, 
  67                          wxDC 
*source
, wxCoord xsrc
, wxCoord ysrc
, 
  68                          int logical_func 
= wxCOPY
, bool useMask 
= false, wxCoord xsrcMask 
= -1, wxCoord ysrcMask 
= -1 ); 
  70     virtual void DoDrawText( const wxString 
&text
, wxCoord x
, wxCoord y 
); 
  71     virtual void DoDrawRotatedText(const wxString
& text
, wxCoord x
, wxCoord y
, 
  73     virtual void DoGetTextExtent( const wxString 
&string
, 
  74                                 wxCoord 
*width
, wxCoord 
*height
, 
  75                                 wxCoord 
*descent 
= (wxCoord 
*) NULL
, 
  76                                 wxCoord 
*externalLeading 
= (wxCoord 
*) NULL
, 
  77                                 wxFont 
*theFont 
= (wxFont 
*) NULL
) const; 
  80     virtual wxCoord 
GetCharWidth() const; 
  81     virtual wxCoord 
GetCharHeight() const; 
  85     virtual void SetFont( const wxFont 
&font 
); 
  86     virtual void SetPen( const wxPen 
&pen 
); 
  87     virtual void SetBrush( const wxBrush 
&brush 
); 
  88     virtual void SetBackground( const wxBrush 
&brush 
); 
  89     virtual void SetLogicalFunction( int function 
); 
  90     virtual void SetTextForeground( const wxColour 
&col 
); 
  91     virtual void SetTextBackground( const wxColour 
&col 
); 
  92     virtual void SetBackgroundMode( int mode 
); 
  93     virtual void SetPalette( const wxPalette
& palette 
); 
  95     virtual void DoSetClippingRegion( wxCoord x
, wxCoord y
, wxCoord width
, wxCoord height 
); 
  96     virtual void DestroyClippingRegion(); 
  97     virtual void DoSetClippingRegionAsRegion( const wxRegion 
®ion  
); 
  99     // Resolution in pixels per logical inch 
 100     virtual wxSize 
GetPPI() const; 
 101     virtual int GetDepth() const; 
 115     wxRegion      m_currentClippingRegion
; 
 116     wxRegion      m_paintClippingRegion
; 
 120     virtual void ComputeScaleAndOrigin(); 
 122     GdkWindow 
*GetWindow() { return m_window
; } 
 125     DECLARE_DYNAMIC_CLASS(wxWindowDC
) 
 128 //----------------------------------------------------------------------------- 
 130 //----------------------------------------------------------------------------- 
 132 class WXDLLIMPEXP_CORE wxClientDC 
: public wxWindowDC
 
 136     wxClientDC( wxWindow 
*win 
); 
 139     virtual void DoGetSize(int *width
, int *height
) const; 
 142     DECLARE_DYNAMIC_CLASS(wxClientDC
) 
 145 //----------------------------------------------------------------------------- 
 147 //----------------------------------------------------------------------------- 
 149 class WXDLLIMPEXP_CORE wxPaintDC 
: public wxClientDC
 
 153     wxPaintDC( wxWindow 
*win 
); 
 156     DECLARE_DYNAMIC_CLASS(wxPaintDC
) 
 159 #endif // __GTKDCCLIENTH__