]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/graphics.h
changing colour derivation
[wxWidgets.git] / include / wx / graphics.h
index 5ac221018b55aacca3b2a22f7f91ab22f9932c3c..cfdf01e1b000671232b8050a3225e4a73c4c3cfb 100644 (file)
 #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
@@ -395,10 +397,7 @@ public:
     virtual ~wxGraphicsContext();
     
     static wxGraphicsContext* Create( const wxWindowDC& dc) ;
-    
-#ifdef __WXMSW__
     static wxGraphicsContext * Create( const wxMemoryDC& dc) ;
-#endif    
 
     static wxGraphicsContext* CreateFromNative( void * context ) ;
 
@@ -409,6 +408,22 @@ public:
     // 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;
@@ -437,10 +452,10 @@ public:
     // 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 &region ) = 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
@@ -455,6 +470,19 @@ public:
     // 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
     //
@@ -625,9 +653,8 @@ public :
     // 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;