#ifndef _WX_GRAPHICS_H_
#define _WX_GRAPHICS_H_
+#include "wx/defs.h"
+
#if wxUSE_GRAPHICS_CONTEXT
#include "wx/geometry.h"
#include "wx/dynarray.h"
-class WXDLLIMPEXP_CORE wxWindowDC;
-class WXDLLIMPEXP_CORE wxMemoryDC;
-class WXDLLIMPEXP_CORE wxGraphicsContext;
-class WXDLLIMPEXP_CORE wxGraphicsPath;
-class WXDLLIMPEXP_CORE wxGraphicsMatrix;
-class WXDLLIMPEXP_CORE wxGraphicsFigure;
-class WXDLLIMPEXP_CORE wxGraphicsRenderer;
-class WXDLLIMPEXP_CORE wxGraphicsPen;
-class WXDLLIMPEXP_CORE wxGraphicsBrush;
-class WXDLLIMPEXP_CORE wxGraphicsFont;
+class WXDLLIMPEXP_FWD_CORE wxWindowDC;
+class WXDLLIMPEXP_FWD_CORE wxMemoryDC;
+class WXDLLIMPEXP_FWD_CORE wxGraphicsContext;
+class WXDLLIMPEXP_FWD_CORE wxGraphicsPath;
+class WXDLLIMPEXP_FWD_CORE wxGraphicsMatrix;
+class WXDLLIMPEXP_FWD_CORE wxGraphicsFigure;
+class WXDLLIMPEXP_FWD_CORE wxGraphicsRenderer;
+class WXDLLIMPEXP_FWD_CORE wxGraphicsPen;
+class WXDLLIMPEXP_FWD_CORE wxGraphicsBrush;
+class WXDLLIMPEXP_FWD_CORE wxGraphicsFont;
/*
* notes about the graphics context apis
virtual ~wxGraphicsContext();
static wxGraphicsContext* Create( const wxWindowDC& dc) ;
-
-#ifdef __WXMSW__
static wxGraphicsContext * Create( const wxMemoryDC& dc) ;
-#endif
static wxGraphicsContext* CreateFromNative( void * context ) ;
// create a context that can be used for measuring texts only, no drawing allowed
static wxGraphicsContext * Create();
+ // begin a new document (relevant only for printing / pdf etc) if there is a progress dialog, message will be shown
+ virtual bool StartDoc( const wxString& message ) ;
+
+ // done with that document (relevant only for printing / pdf etc)
+ virtual void EndDoc();
+
+ // opens a new page (relevant only for printing / pdf etc) with the given size in points
+ // (if both are null the default page size will be used)
+ virtual void StartPage( wxDouble width = 0, wxDouble height = 0 );
+
+ // ends the current page (relevant only for printing / pdf etc)
+ virtual void EndPage();
+
+ // make sure that the current content of this context is immediately visible
+ virtual void Flush();
+
wxGraphicsPath CreatePath() const;
virtual wxGraphicsPen CreatePen(const wxPen& pen) const;
// pops a stored state from the stack
virtual void PopState() = 0;
- // clips drawings to the region, combined to current clipping region
+ // clips drawings to the region intersected with the current clipping region
virtual void Clip( const wxRegion ®ion ) = 0;
- // clips drawings to the rect
+ // clips drawings to the rect intersected with the current clipping region
virtual void Clip( wxDouble x, wxDouble y, wxDouble w, wxDouble h ) = 0;
// resets the clipping to original extent
// sets the current logical function, returns true if it supported
virtual bool SetLogicalFunction(int function) ;
+ // returns the size of the graphics context in device coordinates
+ virtual void GetSize( wxDouble* width, wxDouble* height);
+
+ // returns the resolution of the graphics context in device points per inch
+ virtual void GetDPI( wxDouble* dpiX, wxDouble* dpiY);
+
+#if 0
+ // sets the current alpha on this context
+ virtual void SetAlpha( wxDouble alpha );
+
+ // returns the alpha on this context
+ virtual wxDouble GetAlpha() const;
+#endif
//
// transformation : changes the current transformation matrix CTM of the context
//
// Context
virtual wxGraphicsContext * CreateContext( const wxWindowDC& dc) = 0 ;
-#ifdef __WXMSW__
virtual wxGraphicsContext * CreateContext( const wxMemoryDC& dc) = 0 ;
-#endif
+
virtual wxGraphicsContext * CreateContextFromNativeContext( void * context ) = 0;
virtual wxGraphicsContext * CreateContextFromNativeWindow( void * window ) = 0;