X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dfad0599246651d4994e348d868a3e65613c7379..5724671379e0aa45299e9a9a2e3aa6474e83c29a:/include/wx/gtk/dcclient.h diff --git a/include/wx/gtk/dcclient.h b/include/wx/gtk/dcclient.h index d9c316aa34..b3b0439b4a 100644 --- a/include/wx/gtk/dcclient.h +++ b/include/wx/gtk/dcclient.h @@ -2,13 +2,11 @@ // Name: dcclient.h // Purpose: // Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence +// Id: $Id$ +// Copyright: (c) 1998 Robert Roebling +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - #ifndef __GTKDCCLIENTH__ #define __GTKDCCLIENTH__ @@ -23,60 +21,67 @@ // classes //----------------------------------------------------------------------------- +class wxWindowDC; class wxPaintDC; -typedef wxPaintDC wxClientDC; -typedef wxPaintDC wxWindowDC; +class wxClientDC; //----------------------------------------------------------------------------- -// wxPaintDC +// wxWindowDC //----------------------------------------------------------------------------- -class wxPaintDC: public wxDC +class wxWindowDC : public wxDC { - DECLARE_DYNAMIC_CLASS(wxPaintDC) + DECLARE_DYNAMIC_CLASS(wxWindowDC) - public: +public: + wxWindowDC(); + wxWindowDC( wxWindow *win ); + + ~wxWindowDC(); + + virtual bool CanDrawBitmap() const { return TRUE; } + virtual bool CanGetTextExtent() const { return TRUE; } + + virtual void DoFloodFill( long x, long y, const wxColour& col, int style=wxFLOOD_SURFACE ); + virtual bool DoGetPixel( long x1, long y1, wxColour *col ) const; + + virtual void DoDrawLine( long x1, long y1, long x2, long y2 ); + virtual void DoCrossHair( long x, long y ); + virtual void DoDrawArc( long x1, long y1, long x2, long y2, + long xc, long yc ); + virtual void DoDrawEllipticArc( long x, long y, long width, long height, + double sa, double ea ); + virtual void DoDrawPoint( long x, long y ); + + virtual void DoDrawLines(int n, wxPoint points[], + long xoffset, long yoffset); + virtual void DoDrawPolygon(int n, wxPoint points[], + long xoffset, long yoffset, + int fillStyle = wxODDEVEN_RULE); + + virtual void DoDrawRectangle( long x, long y, long width, long height ); + virtual void DoDrawRoundedRectangle( long x, long y, long width, long height, double radius = 20.0 ); + virtual void DoDrawEllipse( long x, long y, long width, long height ); + + virtual void DoDrawIcon( const wxIcon &icon, long x, long y ); + virtual void DoDrawBitmap( const wxBitmap &bitmap, long x, long y, + bool useMask = FALSE ); + + virtual bool DoBlit( long xdest, long ydest, long width, long height, + wxDC *source, long xsrc, long ysrc, + int logical_func = wxCOPY, bool useMask = FALSE ); + + virtual void DoDrawText( const wxString &text, long x, long y ); + virtual void GetTextExtent( const wxString &string, + long *width, long *height, + long *descent = (long *) NULL, + long *externalLeading = (long *) NULL, + wxFont *theFont = (wxFont *) NULL) const; + virtual long GetCharWidth() const; + virtual long GetCharHeight() const; + + virtual void Clear(); - wxPaintDC(void); - wxPaintDC( wxWindow *win ); - - ~wxPaintDC(void); - - virtual void FloodFill( long x1, long y1, wxColour *col, int style=wxFLOOD_SURFACE ); - virtual bool GetPixel( long x1, long y1, wxColour *col ) const; - - virtual void DrawLine( long x1, long y1, long x2, long y2 ); - virtual void CrossHair( long x, long y ); - virtual void DrawArc( long x1, long y1, long x2, long y2, double xc, double yc ); - virtual void DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ); - virtual void DrawPoint( long x, long y ); - - virtual void DrawLines( int n, wxPoint points[], long xoffset = 0, long yoffset = 0 ); - virtual void DrawLines( wxList *points, long xoffset = 0, long yoffset = 0 ); - virtual void DrawPolygon( int n, wxPoint points[], long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ); - virtual void DrawPolygon( wxList *lines, long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ); - - virtual void DrawRectangle( long x, long y, long width, long height ); - virtual void DrawRoundedRectangle( long x, long y, long width, long height, double radius = 20.0 ); - virtual void DrawEllipse( long x, long y, long width, long height ); - - virtual bool CanDrawBitmap(void) const; - virtual void DrawIcon( const wxIcon &icon, long x, long y, bool useMask=FALSE ); - virtual bool Blit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int logical_func = wxCOPY, bool useMask=FALSE ); - - virtual void DrawText( const wxString &text, long x, long y, bool use16 = FALSE ); - virtual bool CanGetTextExtent(void) const; - virtual void GetTextExtent( const wxString &string, long *width, long *height, - long *descent = (long *) NULL, long *externalLeading = (long *) NULL, - wxFont *theFont = (wxFont *) NULL, bool use16 = FALSE ); - virtual long GetCharWidth(void); - virtual long GetCharHeight(void); - - virtual void Clear(void); - virtual void SetFont( const wxFont &font ); virtual void SetPen( const wxPen &pen ); virtual void SetBrush( const wxBrush &brush ); @@ -86,24 +91,63 @@ class wxPaintDC: public wxDC virtual void SetTextBackground( const wxColour &col ); virtual void SetBackgroundMode( int mode ); virtual void SetPalette( const wxPalette& palette ); - - virtual void SetClippingRegion( long x, long y, long width, long height ); - virtual void DestroyClippingRegion(void); - - virtual void DrawSpline( wxList *points ); - - public: // shouldn't be public - + + virtual void DoSetClippingRegion( long x, long y, long width, long height ); + virtual void DestroyClippingRegion(); + virtual void DoSetClippingRegionAsRegion( const wxRegion ®ion ); + +#if wxUSE_SPLINES + virtual void DoDrawSpline( wxList *points ); +#endif + + // Resolution in pixels per logical inch + virtual wxSize GetPPI() const; + virtual int GetDepth() const; + + // implementation + // -------------- + GdkWindow *m_window; GdkGC *m_penGC; GdkGC *m_brushGC; GdkGC *m_textGC; GdkGC *m_bgGC; GdkColormap *m_cmap; - bool m_isDrawable; - - void SetUpDC(void); - GdkWindow *GetWindow(void); + bool m_isMemDC; + wxWindow *m_owner; + + void SetUpDC(); + void Destroy(); + void ComputeScaleAndOrigin(); + + GdkWindow *GetWindow() { return m_window; } }; +//----------------------------------------------------------------------------- +// wxPaintDC +//----------------------------------------------------------------------------- + +class wxPaintDC : public wxWindowDC +{ + DECLARE_DYNAMIC_CLASS(wxPaintDC) + +public: + wxPaintDC(); + wxPaintDC( wxWindow *win ); +}; + +//----------------------------------------------------------------------------- +// wxClientDC +//----------------------------------------------------------------------------- + +class wxClientDC : public wxWindowDC +{ + DECLARE_DYNAMIC_CLASS(wxClientDC) + +public: + wxClientDC(); + wxClientDC( wxWindow *win ); +}; + + #endif // __GTKDCCLIENTH__