git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3278 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			200 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			200 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        dc.h
 | |
| // Purpose:     wxDC class
 | |
| // Author:      AUTHOR
 | |
| // Modified by:
 | |
| // Created:     ??/??/98
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) AUTHOR
 | |
| // Licence:   	wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_DC_H_
 | |
| #define _WX_DC_H_
 | |
| 
 | |
| #ifdef __GNUG__
 | |
| #pragma interface "dc.h"
 | |
| #endif
 | |
| 
 | |
| #include "wx/window.h"
 | |
| #include "wx/pen.h"
 | |
| #include "wx/brush.h"
 | |
| #include "wx/icon.h"
 | |
| #include "wx/font.h"
 | |
| #include "wx/gdicmn.h"
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // constants
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| #ifndef MM_TEXT
 | |
| #define MM_TEXT               0
 | |
| #define MM_ISOTROPIC          1
 | |
| #define MM_ANISOTROPIC        2
 | |
| #define MM_LOMETRIC           3
 | |
| #define MM_HIMETRIC           4
 | |
| #define MM_TWIPS              5
 | |
| #define MM_POINTS             6
 | |
| #define MM_METRIC             7
 | |
| #endif
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // global variables
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| extern int wxPageNumber;
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // wxDC
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| class WXDLLEXPORT wxDC: public wxDCBase
 | |
| {
 | |
|   DECLARE_ABSTRACT_CLASS(wxDC)
 | |
| 
 | |
|   public:
 | |
| 
 | |
|     wxDC(void);
 | |
|     ~wxDC(void);
 | |
| 
 | |
|     virtual void BeginDrawing(void) { };
 | |
|     virtual void EndDrawing(void) { };
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // Pure virtuals from wxDCBase that need defining
 | |
| //-----------------------------------------------------------------------------
 | |
|     virtual bool   CanDrawBitmap(void) const { return TRUE; };
 | |
|     virtual bool   CanGetTextExtent(void) const { return TRUE; };
 | |
|     virtual int    GetDepth(void) const;
 | |
|     virtual wxSize GetPPI(void) const;
 | |
|     virtual void   GetTextExtent( const wxString& string
 | |
|                                  ,long*           width
 | |
|                                  ,long*           height
 | |
|                                  ,long*           descent = NULL
 | |
|                                  ,long*           externalLeading = NULL
 | |
|                                  ,wxFont*         theFont = NULL
 | |
|                                 ) const;
 | |
|     virtual long   GetCharWidth(void) const;
 | |
|     virtual long   GetCharHeight(void) const;
 | |
|     virtual void   Clear(void);
 | |
|     virtual void   SetFont(const wxFont& font);
 | |
|     virtual void   SetPen(const wxPen& pen);
 | |
|     virtual void   SetBrush(const wxBrush& brush);
 | |
|     virtual void   SetBackground(const wxBrush& brush);
 | |
|     virtual void   SetLogicalFunction(int function);
 | |
|     virtual void   SetBackgroundMode(int mode);
 | |
|     virtual void   SetPalette(const wxPalette& palette);
 | |
|     virtual void   SetMapMode(int mode);
 | |
|     virtual void   DestroyClippingRegion(void);
 | |
|     virtual void   SetUserScale(double x, double y);
 | |
|     virtual void   SetLogicalOrigin(long x, long y);
 | |
|     virtual void   SetDeviceOrigin(long x, long y);
 | |
|     virtual void   SetAxisOrientation(bool xLeftRight, bool yBottomUp);
 | |
| 
 | |
|     virtual void   DoFloodFill( long x
 | |
|                                ,long y
 | |
|                                ,const wxColour& col
 | |
|                                ,int style = wxFLOOD_SURFACE
 | |
|                               );
 | |
|     virtual bool   DoGetPixel(long x, long y, wxColour *col) const;
 | |
|     virtual void   DoDrawPoint(long x, long y);
 | |
|     virtual void   DoDrawLine(long x1, long y1, long x2, long y2);
 | |
|     virtual void   DoDrawArc(long x1, long y1,
 | |
|                              long x2, long y2,
 | |
|                              long xc, long yc
 | |
|                             );
 | |
|     virtual void   DoDrawEllipticArc( long x, long y
 | |
|                                      ,long w, long h
 | |
|                                      ,double sa, double ea
 | |
|                                     );
 | |
|     virtual void   DoDrawRectangle(long x, long y, long width, long height);
 | |
|     virtual void   DoDrawRoundedRectangle( long x, long y
 | |
|                                           ,long width, long height
 | |
|                                           ,double radius
 | |
|                                          );
 | |
|     virtual void   DoDrawEllipse(long x, long y, long width, long height);
 | |
|     virtual void   DoCrossHair(long x, long y);
 | |
|     virtual void   DoDrawIcon(const wxIcon& icon, long x, long y);
 | |
|     virtual void   DoDrawBitmap( const wxBitmap &bmp
 | |
|                                 ,long x, long y
 | |
|                                 ,bool useMask = FALSE
 | |
|                                );
 | |
|     virtual void   DoDrawText(const wxString& text, long x, long y);
 | |
|     virtual bool   DoBlit( long xdest, long ydest
 | |
|                           ,long width, long height
 | |
|                           ,wxDC *source
 | |
|                           ,long xsrc, long ysrc
 | |
|                           ,int rop = wxCOPY, bool useMask = FALSE
 | |
|                          );
 | |
|     virtual void   DoGetSize(int *width, int *height) const;
 | |
|     virtual void   DoGetSizeMM(int* width, int* height) const;
 | |
|     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   DoSetClippingRegionAsRegion(const wxRegion& region);
 | |
|     virtual void   DoSetClippingRegion( long x, long y
 | |
|                                        ,long width, long height
 | |
|                                       );
 | |
| #if wxUSE_SPLINES
 | |
|     virtual void DoDrawSpline(wxList *points);
 | |
| #endif
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // Other virtuals from wxDCBase that are overridden here
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
|     virtual void SetLogicalScale( double x, double y );
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // Our own new stuff
 | |
| //-----------------------------------------------------------------------------
 | |
|     virtual void SetInternalDeviceOrigin( long x, long y );
 | |
|     virtual void GetInternalDeviceOrigin( long *x, long *y );
 | |
| 
 | |
| private:
 | |
| 
 | |
| #if WXWIN_COMPATIBILITY
 | |
|     // function hiding warning supression
 | |
|     virtual void   GetTextExtent( const wxString& string
 | |
|                                  ,long*           width
 | |
|                                  ,long*           height
 | |
|                                  ,long*           descent = NULL
 | |
|                                  ,long*           externalLeading = NULL
 | |
|                                  ,wxFont*         theFont = NULL
 | |
|                                  ,bool            use16 = FALSE
 | |
|                                 ) const
 | |
|     { wxDCBase::GetTextExtent(string, width, height, descent, externalLeading, theFont, use16); };
 | |
| #endif
 | |
| 
 | |
| protected:
 | |
| 
 | |
|     // ------------------------------------------------------------------------
 | |
|     // Some additional data we need
 | |
|     // ------------------------------------------------------------------------
 | |
| 
 | |
|     // Owner canvas and selected in bitmap (if bitmap is GDI object selected)
 | |
|     wxWindow*         m_owner;
 | |
|     wxBitmap*         m_bitmap;
 | |
| 
 | |
|     // our HDC and its usage count: we only free it when the usage count drops
 | |
|     // to 0
 | |
|     WXHDC             m_hDC;
 | |
|     int               m_hDCCount;
 | |
| 
 | |
|     // Store all old GDI objects when do a SelectObject, so we can select them
 | |
|     // back in (this unselecting user's objects) so we can safely delete the
 | |
|     // DC.
 | |
|     WXHBITMAP         m_oldBitmap;
 | |
|     WXHPEN            m_oldPen;
 | |
|     WXHBRUSH          m_oldBrush;
 | |
|     WXHFONT           m_oldFont;
 | |
|     WXHPALETTE        m_oldPalette;
 | |
| };
 | |
| 
 | |
| #endif
 | |
|     // _WX_DC_H_
 |