#include "wx/geometry.h"
#include "wx/dynarray.h"
-class WXDLLIMPEXP_CORE wxWindowDC;
-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 wxObjectRefData* CreateRefData() const;
virtual wxObjectRefData* CloneRefData(const wxObjectRefData* data) const;
- DECLARE_DYNAMIC_CLASS(wxGraphicsObject);
+ DECLARE_DYNAMIC_CLASS(wxGraphicsObject)
} ;
class WXDLLIMPEXP_CORE wxGraphicsPen : public wxGraphicsObject
virtual void Set(wxDouble a=1.0, wxDouble b=0.0, wxDouble c=0.0, wxDouble d=1.0,
wxDouble tx=0.0, wxDouble ty=0.0) = 0;
+ // gets the component valuess of the matrix
+ virtual void Get(wxDouble* a=NULL, wxDouble* b=NULL, wxDouble* c=NULL,
+ wxDouble* d=NULL, wxDouble* tx=NULL, wxDouble* ty=NULL) const = 0;
+
// makes this the inverse matrix
virtual void Invert() = 0;
virtual void Set(wxDouble a=1.0, wxDouble b=0.0, wxDouble c=0.0, wxDouble d=1.0,
wxDouble tx=0.0, wxDouble ty=0.0);
+ // gets the component valuess of the matrix
+ virtual void Get(wxDouble* a=NULL, wxDouble* b=NULL, wxDouble* c=NULL,
+ wxDouble* d=NULL, wxDouble* tx=NULL, wxDouble* ty=NULL) const;
+
// makes this the inverse matrix
virtual void Invert();
static wxGraphicsContext* Create( const wxWindowDC& dc) ;
+#ifdef __WXMSW__
+ static wxGraphicsContext * Create( const wxMemoryDC& dc) ;
+#endif
+
static wxGraphicsContext* CreateFromNative( void * context ) ;
static wxGraphicsContext* CreateFromNativeWindow( void * window ) ;
// returns the native context
virtual void * GetNativeContext() = 0;
+ // returns the current logical function
+ virtual int GetLogicalFunction() const { return m_logicalFunction; }
+
+ // sets the current logical function, returns true if it supported
+ virtual bool SetLogicalFunction(int function) ;
+
//
// transformation : changes the current transformation matrix CTM of the context
//
virtual void DrawText( const wxString &str, wxDouble x, wxDouble y, wxDouble angle );
+ virtual void DrawText( const wxString &str, wxDouble x, wxDouble y, const wxGraphicsBrush& backgroundBrush ) ;
+
+ virtual void DrawText( const wxString &str, wxDouble x, wxDouble y, wxDouble angle, const wxGraphicsBrush& backgroundBrush );
+
virtual void GetTextExtent( const wxString &text, wxDouble *width, wxDouble *height,
wxDouble *descent, wxDouble *externalLeading ) const = 0;
wxGraphicsPen m_pen;
wxGraphicsBrush m_brush;
wxGraphicsFont m_font;
+ int m_logicalFunction;
private :
DECLARE_NO_COPY_CLASS(wxGraphicsContext)
// 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;