]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/graphics.h
remove file containing many obsolete defines, if anyone wants to revive MicroWindows...
[wxWidgets.git] / include / wx / graphics.h
old mode 100755 (executable)
new mode 100644 (file)
index 68eb3ca..e710213
 #include "wx/geometry.h"
 #include "wx/dynarray.h"
 
 #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
 
 /*
  * notes about the graphics context apis
@@ -72,7 +73,7 @@ protected :
     virtual wxObjectRefData* CreateRefData() const;
     virtual wxObjectRefData* CloneRefData(const wxObjectRefData* data) const;
 
     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
 } ;
 
 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;
 
        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;
 
        // 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);
 
     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();
 
     // makes this the inverse matrix
     virtual void Invert();
 
@@ -387,12 +396,19 @@ public:
     
     static wxGraphicsContext* Create( const wxWindowDC& dc) ;
     
     
     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 ) ;
 
     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;
     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 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
     //
     //
     // 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, 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;
 
     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;
     wxGraphicsPen m_pen;
     wxGraphicsBrush m_brush;
     wxGraphicsFont m_font;
+    int m_logicalFunction;
 
 private :
     DECLARE_NO_COPY_CLASS(wxGraphicsContext)
 
 private :
     DECLARE_NO_COPY_CLASS(wxGraphicsContext)
@@ -598,13 +625,18 @@ public :
     // Context
 
     virtual wxGraphicsContext * CreateContext( const wxWindowDC& dc) = 0 ;
     // 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;
 
     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;
     // Path
     
     virtual wxGraphicsPath CreatePath() = 0;