* System.Drawing.dll.sources: Add Cairo implementation.
authorDuncan Mak <duncan@mono-cvs.ximian.com>
Sun, 24 Aug 2003 17:15:59 +0000 (17:15 -0000)
committerDuncan Mak <duncan@mono-cvs.ximian.com>
Sun, 24 Aug 2003 17:15:59 +0000 (17:15 -0000)
* cairo-api.cs: New file, replace Cairo.cs and cairo.cs. That
naming thing is just too confusing.

svn path=/trunk/mcs/; revision=17554

mcs/class/System.Drawing/System.Drawing.dll.sources
mcs/class/System.Drawing/System.Drawing/impl/cairo/Cairo.cs [deleted file]
mcs/class/System.Drawing/System.Drawing/impl/cairo/ChangeLog
mcs/class/System.Drawing/System.Drawing/impl/cairo/Image.cs
mcs/class/System.Drawing/System.Drawing/impl/cairo/cairo-api.cs [new file with mode: 0644]
mcs/class/System.Drawing/System.Drawing/impl/cairo/cairo.cs [deleted file]

index 86215cec91a45b384c959e97deb69dd81672081f..a2c2a95f9062edd5b2e4b1d67d29b9aade61ff92 100755 (executable)
@@ -60,13 +60,13 @@ System.Drawing/impl/ItfSolidBrush.cs
 System.Drawing/impl/ItfTextureBrush.cs
 System.Drawing/impl/cairo/Bitmap.cs
 System.Drawing/impl/cairo/Font.cs
-System.Drawing/impl/cairo/Image.cs
-System.Drawing/impl/cairo/gdk-helpers.cs
+System.Drawing/impl/cairo/FontFamily.cs
 System.Drawing/impl/cairo/Graphics.cs
+System.Drawing/impl/cairo/Image.cs
 System.Drawing/impl/cairo/Pen.cs
 System.Drawing/impl/cairo/SolidBrush.cs
-System.Drawing/impl/cairo/cairo.cs
-System.Drawing/impl/cairo/FontFamily.cs
+System.Drawing/impl/cairo/cairo-api.cs
+System.Drawing/impl/cairo/gdk-helpers.cs
 System.Drawing/impl/gtk/Bitmap.cs
 System.Drawing/impl/gtk/Image.cs
 System.Drawing/impl/wine/Bitmap.cs
diff --git a/mcs/class/System.Drawing/System.Drawing/impl/cairo/Cairo.cs b/mcs/class/System.Drawing/System.Drawing/impl/cairo/Cairo.cs
deleted file mode 100644 (file)
index a18b71c..0000000
+++ /dev/null
@@ -1,425 +0,0 @@
-//
-// Cairo.cs
-//
-// Author: Duncan Mak (duncan@ximian.com)
-//
-// (C) Ximian, Inc. 2003
-//
-// This is a simplistic binding of the Cairo API to C#. All functions
-// in cairo.h are transcribed into their C# equivelants and all
-// enumerations are also listed here.
-//
-
-using System;
-using System.Drawing;
-using System.Runtime.InteropServices;
-
-namespace System.Drawing.Cairo {
-
-       public class Cairo
-        {
-                const string CairoImp = "cairo";
-                //
-                // Manipulating state objects
-                //
-               [DllImport (CairoImp)]
-               public static extern IntPtr cairo_create ();
-
-               [DllImport (CairoImp)]
-               public static extern IntPtr cairo_destroy (IntPtr cr);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_save (IntPtr cr);                
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_restore (IntPtr cr);
-
-                //
-                // Modify state
-                //
-                [DllImport (CairoImp)]
-                public static extern void cairo_set_target_surface (IntPtr cr, IntPtr surface);
-                                
-                [DllImport (CairoImp)]
-                public static extern void cairo_set_target_image (
-                        IntPtr cr, string data, Format format, int width, int height, int stride);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_set_target_drawble (IntPtr cr, IntPtr dpy, ulong drawable);
-                
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_operator (IntPtr cr, Operator op);
-
-                       [DllImport (CairoImp)]
-               public static extern void cairo_set_rgb_color (IntPtr cr, double red, double green, double blue);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_alpha (IntPtr cr, double alpha);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_set_pattern (IntPtr cr, IntPtr pattern);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_tolerence (IntPtr cr, double tolerance);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_fill_rule (IntPtr cr, FillRule fill_rule);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_line_width (IntPtr cr, double width);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_line_cap (IntPtr cr, LineCap line_cap);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_line_join (IntPtr cr, LineJoin line_join);
-
-                       [DllImport (CairoImp)]
-               public static extern void cairo_set_dash (IntPtr cr, double [] dashes, int ndash, double offset);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_miter_limit (IntPtr cr, double limit);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_translate (IntPtr cr, double tx, double ty);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_scale (IntPtr cr, double sx, double sy);
-
-                [DllImport (CairoImp)]                
-                public static extern void cairo_rotate (IntPtr cr, double angle);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_concat_matrix (IntPtr cr, IntPtr matrix);                
-                
-                [DllImport (CairoImp)]
-                public static extern void cairo_set_matrix (IntPtr cr, IntPtr matrix);
-                
-                [DllImport (CairoImp)]
-                public static extern void cairo_default_matrix (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_identity_matrix (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_transform_point (IntPtr cr, ref double x, ref double y);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_transform_distance (IntPtr cr, ref double dx, ref double dy);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_inverse_transform_point (IntPtr cr, ref double x, ref double y);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_inverse_transform_distance (IntPtr cr, ref double dx, ref double dy);
-
-                //
-                // Path creation
-                //
-               [DllImport (CairoImp)]
-               public static extern void cairo_new_path (IntPtr cr);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_move_to (IntPtr cr, double x, double y);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_line_to (IntPtr cr, double x, double y);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_curve_to (
-                        IntPtr cr, double x1, double y1, double x2, double y2, double x3, double y3);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_rel_move_to (IntPtr cr, double dx, double dy);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_rel_line_to (IntPtr cr, double dx, double dy);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_rel_curve_to (
-                        IntPtr cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_rectangle (IntPtr cr, double x, double y, double width, double height);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_close_path (IntPtr cr);
-
-                //
-                // Painting
-                //
-                [DllImport (CairoImp)]
-                public static extern void cairo_stroke (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_fill (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_clip (IntPtr cr);
-
-                //
-                // Font / Text
-                //
-                [DllImport (CairoImp)]
-                public static extern void cairo_select_font (IntPtr cr, string key);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_scale_font (IntPtr cr, double scale);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_transform_font (
-                        IntPtr cr, double a, double b, double c, double d);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_text_extents (
-                        IntPtr cr, string utf8,
-                        ref double x, ref double y,
-                        ref double width, ref double height,
-                        ref double dx, ref double dy);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_show_text (IntPtr cr, string utf8);
-
-                //
-                // Image
-                //                
-                [DllImport (CairoImp)]
-                public static extern void cairo_show_surface (IntPtr cr, IntPtr surface, int width, int height);
-
-                //
-                // query
-                //                                
-                [DllImport (CairoImp)]
-               public static extern Operator cairo_get_operator (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_get_rgb_color (
-                        IntPtr cr, out double red, out double green, out double blue);
-
-                [DllImport (CairoImp)]
-                public static extern double cairo_get_alpha (IntPtr cr);
-
-               [DllImport (CairoImp)]
-               public static extern double cairo_get_tolerence (IntPtr cr);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_get_current_point (
-                        IntPtr cr, out double x, out double y);
-
-               [DllImport (CairoImp)]
-               public static extern FillRule cairo_get_fill_rule (IntPtr cr);
-
-                [DllImport (CairoImp)]
-               public static extern double cairo_get_line_width (IntPtr cr);
-
-                [DllImport (CairoImp)]
-               public static extern LineCap cairo_get_line_cap (IntPtr cr);
-
-                       [DllImport (CairoImp)]
-               public static extern LineJoin cairo_get_line_join (IntPtr cr);
-
-               [DllImport (CairoImp)]
-               public static extern double cairo_get_miter_limit (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_get_matrix (
-                        IntPtr cr,
-                        out double a, out double b,
-                        out double c, out double d,
-                        out double tx, out double ty);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_get_target_surface (IntPtr cr);
-
-                //
-                // Error status queries
-                //
-                [DllImport (CairoImp)]
-                public static extern Status cairo_get_status (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern string cairo_get_status_string (IntPtr cr);
-
-                //
-                // Surface Manipulation
-                //
-                
-                [DllImport (CairoImp)]
-                public static extern IntPtr cairo_surface_create_for_drawable (
-                        IntPtr display, ulong drawable, IntPtr visual,
-                        Format format, ulong colormap);
-
-                [DllImport (CairoImp)]                
-                public static extern IntPtr cairo_surface_create_for_image (
-                        string data, Format format, int width, int height, int stride);
-
-                [DllImport (CairoImp)]
-                public static extern IntPtr cairo_surface_create_similar (
-                        IntPtr surface, Format format, int width, int height);
-
-                [DllImport (CairoImp)]                
-                public static extern IntPtr cairo_surface_create_similar_solid (
-                        IntPtr surface, Format format,
-                        int width, int height, double red, double green, double blue, double alpha);
-
-                [DllImport (CairoImp)]                
-                public static extern void cairo_surface_destroy (IntPtr surface);
-
-                [DllImport (CairoImp)]                
-                public static extern Status cairo_surface_put_image (
-                        IntPtr surface, string data, int width, int height, int stride);
-
-                [DllImport (CairoImp)]                
-                public static extern Status cairo_surface_set_repeat (
-                        IntPtr surface, int repeat);
-
-                [DllImport (CairoImp)]                
-                public static extern Status cairo_surface_set_matrix (
-                        IntPtr surface, IntPtr matrix);
-
-                [DllImport (CairoImp)]                
-                public static extern Status cairo_surface_get_matrix (
-                        IntPtr surface, ref IntPtr matrix);
-
-                [DllImport (CairoImp)]                
-                public static extern Status cairo_surface_set_filter (
-                        IntPtr surface, Filter filter);
-
-                //
-                // Matrix
-                //
-
-                [DllImport (CairoImp)]                
-                public static extern IntPtr cairo_matrix_create ();
-
-                [DllImport (CairoImp)]                
-                public static extern void cairo_matrix_destroy (IntPtr matrix);
-
-                [DllImport (CairoImp)]                                
-                public static extern Status cairo_matrix_copy (
-                        IntPtr matrix, out IntPtr other);
-
-                [DllImport (CairoImp)]                                
-                public static extern Status cairo_matrix_set_identity (IntPtr matrix);
-
-                [DllImport (CairoImp)]                                
-                public static extern Status cairo_matrix_set_affine (
-                        IntPtr matrix,
-                        double a, double b, double c, double d, double tx, double ty);
-
-                [DllImport (CairoImp)]                                
-                public static extern Status cairo_matrix_get_affine (
-                        IntPtr matrix,
-                        out double a, out double b, out double c, out double d, out double tx, out double ty);
-
-                [DllImport (CairoImp)]                                
-                public static extern Status cairo_matrix_translate (
-                        IntPtr matrix, double tx, double ty);
-
-                [DllImport (CairoImp)]                                
-                public static extern Status cairo_matrix_scale (
-                        IntPtr matrix, double sx, double sy);
-
-                [DllImport (CairoImp)]                                
-                public static extern Status cairo_matrix_rotate (
-                        IntPtr matrix, double radians);
-
-                [DllImport (CairoImp)]                                
-                public static extern Status cairo_matrix_invert (IntPtr matrix);
-
-                [DllImport (CairoImp)]                                
-                public static extern Status cairo_matrix_multiply (
-                        out IntPtr result, IntPtr a, IntPtr b);
-
-                [DllImport (CairoImp)]                                
-                public static extern Status cairo_matrix_transform_distance (
-                        IntPtr matrix, ref double dx, ref double dy);
-
-                [DllImport (CairoImp)]                                
-                public static extern Status cairo_matrix_transform_point (
-                        IntPtr matrix, ref double x, ref double y);
-        }
-
-        //
-        // Enumerations
-        //
-        public enum Format {
-                ARGB32 = 0,
-                RGB24 = 1,
-                A8 = 2,
-                A1 = 4
-        }
-
-        public enum Operator {
-                Clear = 0,
-                Src = 1,
-                Dst = 2,
-                Over = 3,
-                OverReverse = 4,
-                In = 5,
-                InReverse = 6,
-                Out = 7,
-                OutReverse = 8,
-                Atop = 9,
-                AtopReverse = 10,
-                Xor = 11,
-                Add = 12,
-                Saturate = 13,
-                
-                DisjointClear = 16,
-                DisjointSrc = 17,
-                DisjointDst = 18,
-                DisjointOver = 19,
-                DisjointOverReverse = 20,
-                DisjointIn = 21,
-                DisjointInReverse = 22,
-                DisjointOut = 23,
-                DisjointOutReverse = 24,
-                DisjointAtop = 25,
-                DisjointAtopReverse = 26,
-                DisjointXor = 27,
-
-                ConjointClear = 32,
-                ConjointSrc = 33,
-                ConjointDst = 34,
-                ConjointOver = 35,
-                ConjointOverReverse = 36,
-                ConjointIn = 37,
-                ConjointInReverse = 38,
-                ConjointOut = 39,
-                ConjointOutReverse = 40,
-                ConjointAtop = 41,
-                ConjointAtopReverse = 42,
-                ConjointXor = 43
-        }
-
-        public enum FillRule {
-                Winding,
-                EvenOdd
-        }
-
-        public enum LineCap {
-                Butt, Round, Square
-        }
-
-        public enum LineJoin {
-                Miter, Round, Bevel
-        }
-
-        public enum Status {
-                Success = 0,
-                NoMemory,
-                InvalidRestore,
-                InvalidPopGroup,
-                NoCurrentPoint,
-                InvalidMatrix
-        }
-
-        public enum Filter {
-                Fast,
-                Good,
-                Best,
-                Nearest,
-                Bilinear
-        }
-}
index aed179e7d380dd6324f11a1640ab8926fd27d451..004167c89a67dc46db9aa2b602e32aa78e4266a0 100644 (file)
@@ -1,5 +1,8 @@
 2003-08-24  Duncan Mak  <duncan@ximian.com>            
 
+       * cairo-api.cs: New file, replace Cairo.cs and cairo.cs. That
+       naming thing is just too confusing.
+
        * Cairo.cs: Make all references to the enums (Cairo.Foo) be just
        Foo. This should (hopefully) fix the build on Windows.
 
index ea85c22b51829acc61f259d7179d0256d2d7a8da..92b394a9b8ce38d5d90e2cebe61f64a4ed57a72b 100644 (file)
@@ -23,7 +23,7 @@ namespace System.Drawing.Cairo {
        {
 
                internal IntPtr state;
-               internal Cairo.Format cairo_format;
+               internal Format cairo_format;
                internal System.Drawing.Cairo.Graphics selected_into_graphics = null;
                internal Size size;
                internal PixelFormat pixelFormat;
diff --git a/mcs/class/System.Drawing/System.Drawing/impl/cairo/cairo-api.cs b/mcs/class/System.Drawing/System.Drawing/impl/cairo/cairo-api.cs
new file mode 100644 (file)
index 0000000..c015079
--- /dev/null
@@ -0,0 +1,425 @@
+//
+// Cairo.cs
+//
+// Author: Duncan Mak (duncan@ximian.com)
+//
+// (C) Ximian, Inc. 2003
+//
+// This is a simplistic binding of the Cairo API to C#. All functions
+// in cairo.h are transcribed into their C# equivelants and all
+// enumerations are also listed here.
+//
+
+using System;
+using System.Drawing;
+using System.Runtime.InteropServices;
+
+namespace System.Drawing.Cairo {
+
+       public class Cairo
+        {
+                const string CairoImp = "cairo";
+                //
+                // Manipulating state objects
+                //
+               [DllImport (CairoImp)]
+               public static extern IntPtr cairo_create ();
+
+               [DllImport (CairoImp)]
+               public static extern IntPtr cairo_destroy (IntPtr cr);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_save (IntPtr cr);                
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_restore (IntPtr cr);
+
+                //
+                // Modify state
+                //
+                [DllImport (CairoImp)]
+                public static extern void cairo_set_target_surface (IntPtr cr, IntPtr surface);
+                                
+                [DllImport (CairoImp)]
+                public static extern void cairo_set_target_image (
+                        IntPtr cr, IntPtr data, Format format, int width, int height, int stride);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_set_target_drawble (IntPtr cr, IntPtr dpy, ulong drawable);
+                
+               [DllImport (CairoImp)]
+               public static extern void cairo_set_operator (IntPtr cr, Operator op);
+
+                       [DllImport (CairoImp)]
+               public static extern void cairo_set_rgb_color (IntPtr cr, double red, double green, double blue);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_set_alpha (IntPtr cr, double alpha);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_set_pattern (IntPtr cr, IntPtr pattern);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_set_tolerence (IntPtr cr, double tolerance);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_set_fill_rule (IntPtr cr, FillRule fill_rule);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_set_line_width (IntPtr cr, double width);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_set_line_cap (IntPtr cr, LineCap line_cap);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_set_line_join (IntPtr cr, LineJoin line_join);
+
+                       [DllImport (CairoImp)]
+               public static extern void cairo_set_dash (IntPtr cr, double [] dashes, int ndash, double offset);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_set_miter_limit (IntPtr cr, double limit);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_translate (IntPtr cr, double tx, double ty);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_scale (IntPtr cr, double sx, double sy);
+
+                [DllImport (CairoImp)]                
+                public static extern void cairo_rotate (IntPtr cr, double angle);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_concat_matrix (IntPtr cr, IntPtr matrix);                
+                
+                [DllImport (CairoImp)]
+                public static extern void cairo_set_matrix (IntPtr cr, IntPtr matrix);
+                
+                [DllImport (CairoImp)]
+                public static extern void cairo_default_matrix (IntPtr cr);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_identity_matrix (IntPtr cr);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_transform_point (IntPtr cr, ref double x, ref double y);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_transform_distance (IntPtr cr, ref double dx, ref double dy);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_inverse_transform_point (IntPtr cr, ref double x, ref double y);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_inverse_transform_distance (IntPtr cr, ref double dx, ref double dy);
+
+                //
+                // Path creation
+                //
+               [DllImport (CairoImp)]
+               public static extern void cairo_new_path (IntPtr cr);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_move_to (IntPtr cr, double x, double y);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_line_to (IntPtr cr, double x, double y);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_curve_to (
+                        IntPtr cr, double x1, double y1, double x2, double y2, double x3, double y3);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_rel_move_to (IntPtr cr, double dx, double dy);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_rel_line_to (IntPtr cr, double dx, double dy);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_rel_curve_to (
+                        IntPtr cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_rectangle (IntPtr cr, double x, double y, double width, double height);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_close_path (IntPtr cr);
+
+                //
+                // Painting
+                //
+                [DllImport (CairoImp)]
+                public static extern void cairo_stroke (IntPtr cr);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_fill (IntPtr cr);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_clip (IntPtr cr);
+
+                //
+                // Font / Text
+                //
+                [DllImport (CairoImp)]
+                public static extern void cairo_select_font (IntPtr cr, string key);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_scale_font (IntPtr cr, double scale);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_transform_font (
+                        IntPtr cr, double a, double b, double c, double d);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_text_extents (
+                        IntPtr cr, string utf8,
+                        ref double x, ref double y,
+                        ref double width, ref double height,
+                        ref double dx, ref double dy);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_show_text (IntPtr cr, string utf8);
+
+                //
+                // Image
+                //                
+                [DllImport (CairoImp)]
+                public static extern void cairo_show_surface (IntPtr cr, IntPtr surface, int width, int height);
+
+                //
+                // query
+                //                                
+                [DllImport (CairoImp)]
+               public static extern Operator cairo_get_operator (IntPtr cr);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_get_rgb_color (
+                        IntPtr cr, out double red, out double green, out double blue);
+
+                [DllImport (CairoImp)]
+                public static extern double cairo_get_alpha (IntPtr cr);
+
+               [DllImport (CairoImp)]
+               public static extern double cairo_get_tolerence (IntPtr cr);
+
+               [DllImport (CairoImp)]
+               public static extern void cairo_get_current_point (
+                        IntPtr cr, out double x, out double y);
+
+               [DllImport (CairoImp)]
+               public static extern FillRule cairo_get_fill_rule (IntPtr cr);
+
+                [DllImport (CairoImp)]
+               public static extern double cairo_get_line_width (IntPtr cr);
+
+                [DllImport (CairoImp)]
+               public static extern LineCap cairo_get_line_cap (IntPtr cr);
+
+                       [DllImport (CairoImp)]
+               public static extern LineJoin cairo_get_line_join (IntPtr cr);
+
+               [DllImport (CairoImp)]
+               public static extern double cairo_get_miter_limit (IntPtr cr);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_get_matrix (
+                        IntPtr cr,
+                        out double a, out double b,
+                        out double c, out double d,
+                        out double tx, out double ty);
+
+                [DllImport (CairoImp)]
+                public static extern void cairo_get_target_surface (IntPtr cr);
+
+                //
+                // Error status queries
+                //
+                [DllImport (CairoImp)]
+                public static extern Status cairo_get_status (IntPtr cr);
+
+                [DllImport (CairoImp)]
+                public static extern string cairo_get_status_string (IntPtr cr);
+
+                //
+                // Surface Manipulation
+                //
+                
+                [DllImport (CairoImp)]
+                public static extern IntPtr cairo_surface_create_for_drawable (
+                        IntPtr display, ulong drawable, IntPtr visual,
+                        Format format, ulong colormap);
+
+                [DllImport (CairoImp)]                
+                public static extern IntPtr cairo_surface_create_for_image (
+                        string data, Format format, int width, int height, int stride);
+
+                [DllImport (CairoImp)]
+                public static extern IntPtr cairo_surface_create_similar (
+                        IntPtr surface, Format format, int width, int height);
+
+                [DllImport (CairoImp)]                
+                public static extern IntPtr cairo_surface_create_similar_solid (
+                        IntPtr surface, Format format,
+                        int width, int height, double red, double green, double blue, double alpha);
+
+                [DllImport (CairoImp)]                
+                public static extern void cairo_surface_destroy (IntPtr surface);
+
+                [DllImport (CairoImp)]                
+                public static extern Status cairo_surface_put_image (
+                        IntPtr surface, string data, int width, int height, int stride);
+
+                [DllImport (CairoImp)]                
+                public static extern Status cairo_surface_set_repeat (
+                        IntPtr surface, int repeat);
+
+                [DllImport (CairoImp)]                
+                public static extern Status cairo_surface_set_matrix (
+                        IntPtr surface, IntPtr matrix);
+
+                [DllImport (CairoImp)]                
+                public static extern Status cairo_surface_get_matrix (
+                        IntPtr surface, ref IntPtr matrix);
+
+                [DllImport (CairoImp)]                
+                public static extern Status cairo_surface_set_filter (
+                        IntPtr surface, Filter filter);
+
+                //
+                // Matrix
+                //
+
+                [DllImport (CairoImp)]                
+                public static extern IntPtr cairo_matrix_create ();
+
+                [DllImport (CairoImp)]                
+                public static extern void cairo_matrix_destroy (IntPtr matrix);
+
+                [DllImport (CairoImp)]                                
+                public static extern Status cairo_matrix_copy (
+                        IntPtr matrix, out IntPtr other);
+
+                [DllImport (CairoImp)]                                
+                public static extern Status cairo_matrix_set_identity (IntPtr matrix);
+
+                [DllImport (CairoImp)]                                
+                public static extern Status cairo_matrix_set_affine (
+                        IntPtr matrix,
+                        double a, double b, double c, double d, double tx, double ty);
+
+                [DllImport (CairoImp)]                                
+                public static extern Status cairo_matrix_get_affine (
+                        IntPtr matrix,
+                        out double a, out double b, out double c, out double d, out double tx, out double ty);
+
+                [DllImport (CairoImp)]                                
+                public static extern Status cairo_matrix_translate (
+                        IntPtr matrix, double tx, double ty);
+
+                [DllImport (CairoImp)]                                
+                public static extern Status cairo_matrix_scale (
+                        IntPtr matrix, double sx, double sy);
+
+                [DllImport (CairoImp)]                                
+                public static extern Status cairo_matrix_rotate (
+                        IntPtr matrix, double radians);
+
+                [DllImport (CairoImp)]                                
+                public static extern Status cairo_matrix_invert (IntPtr matrix);
+
+                [DllImport (CairoImp)]                                
+                public static extern Status cairo_matrix_multiply (
+                        out IntPtr result, IntPtr a, IntPtr b);
+
+                [DllImport (CairoImp)]                                
+                public static extern Status cairo_matrix_transform_distance (
+                        IntPtr matrix, ref double dx, ref double dy);
+
+                [DllImport (CairoImp)]                                
+                public static extern Status cairo_matrix_transform_point (
+                        IntPtr matrix, ref double x, ref double y);
+        }
+
+        //
+        // Enumerations
+        //
+        public enum Format {
+                ARGB32 = 0,
+                RGB24 = 1,
+                A8 = 2,
+                A1 = 4
+        }
+
+        public enum Operator {
+                Clear = 0,
+                Src = 1,
+                Dst = 2,
+                Over = 3,
+                OverReverse = 4,
+                In = 5,
+                InReverse = 6,
+                Out = 7,
+                OutReverse = 8,
+                Atop = 9,
+                AtopReverse = 10,
+                Xor = 11,
+                Add = 12,
+                Saturate = 13,
+                
+                DisjointClear = 16,
+                DisjointSrc = 17,
+                DisjointDst = 18,
+                DisjointOver = 19,
+                DisjointOverReverse = 20,
+                DisjointIn = 21,
+                DisjointInReverse = 22,
+                DisjointOut = 23,
+                DisjointOutReverse = 24,
+                DisjointAtop = 25,
+                DisjointAtopReverse = 26,
+                DisjointXor = 27,
+
+                ConjointClear = 32,
+                ConjointSrc = 33,
+                ConjointDst = 34,
+                ConjointOver = 35,
+                ConjointOverReverse = 36,
+                ConjointIn = 37,
+                ConjointInReverse = 38,
+                ConjointOut = 39,
+                ConjointOutReverse = 40,
+                ConjointAtop = 41,
+                ConjointAtopReverse = 42,
+                ConjointXor = 43
+        }
+
+        public enum FillRule {
+                Winding,
+                EvenOdd
+        }
+
+        public enum LineCap {
+                Butt, Round, Square
+        }
+
+        public enum LineJoin {
+                Miter, Round, Bevel
+        }
+
+        public enum Status {
+                Success = 0,
+                NoMemory,
+                InvalidRestore,
+                InvalidPopGroup,
+                NoCurrentPoint,
+                InvalidMatrix
+        }
+
+        public enum Filter {
+                Fast,
+                Good,
+                Best,
+                Nearest,
+                Bilinear
+        }
+}
diff --git a/mcs/class/System.Drawing/System.Drawing/impl/cairo/cairo.cs b/mcs/class/System.Drawing/System.Drawing/impl/cairo/cairo.cs
deleted file mode 100644 (file)
index 7f31bf7..0000000
+++ /dev/null
@@ -1,425 +0,0 @@
-//
-// Cairo.cs
-//
-// Author: Duncan Mak (duncan@ximian.com)
-//
-// (C) Ximian, Inc. 2003
-//
-// This is a simplistic binding of the Cairo API to C#. All functions
-// in cairo.h are transcribed into their C# equivelants and all
-// enumerations are also listed here.
-//
-
-using System;
-using System.Drawing;
-using System.Runtime.InteropServices;
-
-namespace System.Drawing.Cairo {
-
-       public class Cairo
-        {
-                const string CairoImp = "cairo";
-                //
-                // Manipulating state objects
-                //
-               [DllImport (CairoImp)]
-               public static extern IntPtr cairo_create ();
-
-               [DllImport (CairoImp)]
-               public static extern IntPtr cairo_destroy (IntPtr cr);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_save (IntPtr cr);                
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_restore (IntPtr cr);
-
-                //
-                // Modify state
-                //
-                [DllImport (CairoImp)]
-                public static extern void cairo_set_target_surface (IntPtr cr, IntPtr surface);
-                                
-                [DllImport (CairoImp)]
-                public static extern void cairo_set_target_image (
-                        IntPtr cr, IntPtr data, Cairo.Format format, int width, int height, int stride);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_set_target_drawble (IntPtr cr, IntPtr dpy, ulong drawable);
-                
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_operator (IntPtr cr, Cairo.Operator op);
-
-                       [DllImport (CairoImp)]
-               public static extern void cairo_set_rgb_color (IntPtr cr, double red, double green, double blue);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_alpha (IntPtr cr, double alpha);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_set_pattern (IntPtr cr, IntPtr pattern);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_tolerence (IntPtr cr, double tolerance);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_fill_rule (IntPtr cr, Cairo.FillRule fill_rule);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_line_width (IntPtr cr, double width);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_line_cap (IntPtr cr, Cairo.LineCap line_cap);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_line_join (IntPtr cr, Cairo.LineJoin line_join);
-
-                       [DllImport (CairoImp)]
-               public static extern void cairo_set_dash (IntPtr cr, double [] dashes, int ndash, double offset);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_set_miter_limit (IntPtr cr, double limit);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_translate (IntPtr cr, double tx, double ty);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_scale (IntPtr cr, double sx, double sy);
-
-                [DllImport (CairoImp)]                
-                public static extern void cairo_rotate (IntPtr cr, double angle);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_concat_matrix (IntPtr cr, IntPtr matrix);                
-                
-                [DllImport (CairoImp)]
-                public static extern void cairo_set_matrix (IntPtr cr, IntPtr matrix);
-                
-                [DllImport (CairoImp)]
-                public static extern void cairo_default_matrix (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_identity_matrix (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_transform_point (IntPtr cr, ref double x, ref double y);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_transform_distance (IntPtr cr, ref double dx, ref double dy);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_inverse_transform_point (IntPtr cr, ref double x, ref double y);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_inverse_transform_distance (IntPtr cr, ref double dx, ref double dy);
-
-                //
-                // Path creation
-                //
-               [DllImport (CairoImp)]
-               public static extern void cairo_new_path (IntPtr cr);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_move_to (IntPtr cr, double x, double y);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_line_to (IntPtr cr, double x, double y);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_curve_to (
-                        IntPtr cr, double x1, double y1, double x2, double y2, double x3, double y3);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_rel_move_to (IntPtr cr, double dx, double dy);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_rel_line_to (IntPtr cr, double dx, double dy);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_rel_curve_to (
-                        IntPtr cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_rectangle (IntPtr cr, double x, double y, double width, double height);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_close_path (IntPtr cr);
-
-                //
-                // Painting
-                //
-                [DllImport (CairoImp)]
-                public static extern void cairo_stroke (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_fill (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_clip (IntPtr cr);
-
-                //
-                // Font / Text
-                //
-                [DllImport (CairoImp)]
-                public static extern void cairo_select_font (IntPtr cr, string key);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_scale_font (IntPtr cr, double scale);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_transform_font (
-                        IntPtr cr, double a, double b, double c, double d);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_text_extents (
-                        IntPtr cr, string utf8,
-                        ref double x, ref double y,
-                        ref double width, ref double height,
-                        ref double dx, ref double dy);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_show_text (IntPtr cr, string utf8);
-
-                //
-                // Image
-                //                
-                [DllImport (CairoImp)]
-                public static extern void cairo_show_surface (IntPtr cr, IntPtr surface, int width, int height);
-
-                //
-                // query
-                //                                
-                [DllImport (CairoImp)]
-               public static extern Cairo.Operator cairo_get_operator (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_get_rgb_color (
-                        IntPtr cr, out double red, out double green, out double blue);
-
-                [DllImport (CairoImp)]
-                public static extern double cairo_get_alpha (IntPtr cr);
-
-               [DllImport (CairoImp)]
-               public static extern double cairo_get_tolerence (IntPtr cr);
-
-               [DllImport (CairoImp)]
-               public static extern void cairo_get_current_point (
-                        IntPtr cr, out double x, out double y);
-
-               [DllImport (CairoImp)]
-               public static extern Cairo.FillRule cairo_get_fill_rule (IntPtr cr);
-
-                [DllImport (CairoImp)]
-               public static extern double cairo_get_line_width (IntPtr cr);
-
-                [DllImport (CairoImp)]
-               public static extern LineCap cairo_get_line_cap (IntPtr cr);
-
-                       [DllImport (CairoImp)]
-               public static extern LineJoin cairo_get_line_join (IntPtr cr);
-
-               [DllImport (CairoImp)]
-               public static extern double cairo_get_miter_limit (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_get_matrix (
-                        IntPtr cr,
-                        out double a, out double b,
-                        out double c, out double d,
-                        out double tx, out double ty);
-
-                [DllImport (CairoImp)]
-                public static extern void cairo_get_target_surface (IntPtr cr);
-
-                //
-                // Error status queries
-                //
-                [DllImport (CairoImp)]
-                public static extern Cairo.Status cairo_get_status (IntPtr cr);
-
-                [DllImport (CairoImp)]
-                public static extern string cairo_get_status_string (IntPtr cr);
-
-                //
-                // Surface Manipulation
-                //
-                
-                [DllImport (CairoImp)]
-                public static extern IntPtr cairo_surface_create_for_drawable (
-                        IntPtr display, ulong drawable, IntPtr visual,
-                        Cairo.Format format, ulong colormap);
-
-                [DllImport (CairoImp)]                
-                public static extern IntPtr cairo_surface_create_for_image (
-                        string data, Cairo.Format format, int width, int height, int stride);
-
-                [DllImport (CairoImp)]
-                public static extern IntPtr cairo_surface_create_similar (
-                        IntPtr surface, Cairo.Format format, int width, int height);
-
-                [DllImport (CairoImp)]                
-                public static extern IntPtr cairo_surface_create_similar_solid (
-                        IntPtr surface, Cairo.Format format,
-                        int width, int height, double red, double green, double blue, double alpha);
-
-                [DllImport (CairoImp)]                
-                public static extern void cairo_surface_destroy (IntPtr surface);
-
-                [DllImport (CairoImp)]                
-                public static extern Cairo.Status cairo_surface_put_image (
-                        IntPtr surface, string data, int width, int height, int stride);
-
-                [DllImport (CairoImp)]                
-                public static extern Cairo.Status cairo_surface_set_repeat (
-                        IntPtr surface, int repeat);
-
-                [DllImport (CairoImp)]                
-                public static extern Cairo.Status cairo_surface_set_matrix (
-                        IntPtr surface, IntPtr matrix);
-
-                [DllImport (CairoImp)]                
-                public static extern Cairo.Status cairo_surface_get_matrix (
-                        IntPtr surface, ref IntPtr matrix);
-
-                [DllImport (CairoImp)]                
-                public static extern Cairo.Status cairo_surface_set_filter (
-                        IntPtr surface, Cairo.Filter filter);
-
-                //
-                // Matrix
-                //
-
-                [DllImport (CairoImp)]                
-                public static extern IntPtr cairo_matrix_create ();
-
-                [DllImport (CairoImp)]                
-                public static extern void cairo_matrix_destroy (IntPtr matrix);
-
-                [DllImport (CairoImp)]                                
-                public static extern Cairo.Status cairo_matrix_copy (
-                        IntPtr matrix, out IntPtr other);
-
-                [DllImport (CairoImp)]                                
-                public static extern Cairo.Status cairo_matrix_set_identity (IntPtr matrix);
-
-                [DllImport (CairoImp)]                                
-                public static extern Cairo.Status cairo_matrix_set_affine (
-                        IntPtr matrix,
-                        double a, double b, double c, double d, double tx, double ty);
-
-                [DllImport (CairoImp)]                                
-                public static extern Cairo.Status cairo_matrix_get_affine (
-                        IntPtr matrix,
-                        out double a, out double b, out double c, out double d, out double tx, out double ty);
-
-                [DllImport (CairoImp)]                                
-                public static extern Cairo.Status cairo_matrix_translate (
-                        IntPtr matrix, double tx, double ty);
-
-                [DllImport (CairoImp)]                                
-                public static extern Cairo.Status cairo_matrix_scale (
-                        IntPtr matrix, double sx, double sy);
-
-                [DllImport (CairoImp)]                                
-                public static extern Cairo.Status cairo_matrix_rotate (
-                        IntPtr matrix, double radians);
-
-                [DllImport (CairoImp)]                                
-                public static extern Cairo.Status cairo_matrix_invert (IntPtr matrix);
-
-                [DllImport (CairoImp)]                                
-                public static extern Cairo.Status cairo_matrix_multiply (
-                        out IntPtr result, IntPtr a, IntPtr b);
-
-                [DllImport (CairoImp)]                                
-                public static extern Cairo.Status cairo_matrix_transform_distance (
-                        IntPtr matrix, ref double dx, ref double dy);
-
-                [DllImport (CairoImp)]                                
-                public static extern Cairo.Status cairo_matrix_transform_point (
-                        IntPtr matrix, ref double x, ref double y);
-        }
-
-        //
-        // Enumerations
-        //
-        public enum Format {
-                ARGB32 = 0,
-                RGB24 = 1,
-                A8 = 2,
-                A1 = 4
-        }
-
-        public enum Operator {
-                Clear = 0,
-                Src = 1,
-                Dst = 2,
-                Over = 3,
-                OverReverse = 4,
-                In = 5,
-                InReverse = 6,
-                Out = 7,
-                OutReverse = 8,
-                Atop = 9,
-                AtopReverse = 10,
-                Xor = 11,
-                Add = 12,
-                Saturate = 13,
-                
-                DisjointClear = 16,
-                DisjointSrc = 17,
-                DisjointDst = 18,
-                DisjointOver = 19,
-                DisjointOverReverse = 20,
-                DisjointIn = 21,
-                DisjointInReverse = 22,
-                DisjointOut = 23,
-                DisjointOutReverse = 24,
-                DisjointAtop = 25,
-                DisjointAtopReverse = 26,
-                DisjointXor = 27,
-
-                ConjointClear = 32,
-                ConjointSrc = 33,
-                ConjointDst = 34,
-                ConjointOver = 35,
-                ConjointOverReverse = 36,
-                ConjointIn = 37,
-                ConjointInReverse = 38,
-                ConjointOut = 39,
-                ConjointOutReverse = 40,
-                ConjointAtop = 41,
-                ConjointAtopReverse = 42,
-                ConjointXor = 43
-        }
-
-        public enum FillRule {
-                Winding,
-                EvenOdd
-        }
-
-        public enum LineCap {
-                Butt, Round, Square
-        }
-
-        public enum LineJoin {
-                Miter, Round, Bevel
-        }
-
-        public enum Status {
-                Success = 0,
-                NoMemory,
-                InvalidRestore,
-                InvalidPopGroup,
-                NoCurrentPoint,
-                InvalidMatrix
-        }
-
-        public enum Filter {
-                Fast,
-                Good,
-                Best,
-                Nearest,
-                Bilinear
-        }
-}