X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a4e73390a604cb78d41eacf3e97de48c36aaf8d7..d42e12e8dd707d1fdea957331c9f6a41706b2cb0:/include/wx/graphics.h diff --git a/include/wx/graphics.h b/include/wx/graphics.h old mode 100755 new mode 100644 index 68eb3ca476..e710213c94 --- a/include/wx/graphics.h +++ b/include/wx/graphics.h @@ -17,15 +17,16 @@ #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 @@ -72,7 +73,7 @@ protected : 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 @@ -124,6 +125,10 @@ public : 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; @@ -175,6 +180,10 @@ public : 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(); @@ -387,12 +396,19 @@ public: 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 ) ; static wxGraphicsContext* Create( wxWindow* window ) ; + // create a context that can be used for measuring texts only, no drawing allowed + static wxGraphicsContext * Create(); + wxGraphicsPath CreatePath() const; virtual wxGraphicsPen CreatePen(const wxPen& pen) const; @@ -433,6 +449,12 @@ public: // 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 // @@ -491,6 +513,10 @@ public: 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; @@ -539,6 +565,7 @@ protected : wxGraphicsPen m_pen; wxGraphicsBrush m_brush; wxGraphicsFont m_font; + int m_logicalFunction; private : DECLARE_NO_COPY_CLASS(wxGraphicsContext) @@ -598,13 +625,18 @@ 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; virtual wxGraphicsContext * CreateContext( wxWindow* window ) = 0; + // create a context that can be used for measuring texts only, no drawing allowed + virtual wxGraphicsContext * CreateMeasuringContext() = 0; + // Path virtual wxGraphicsPath CreatePath() = 0;