2007-01-05 Alp Toker <alp@atoker.com>
authorAlp Toker <alp@mono-cvs.ximian.com>
Fri, 5 Jan 2007 07:01:16 +0000 (07:01 -0000)
committerAlp Toker <alp@mono-cvs.ximian.com>
Fri, 5 Jan 2007 07:01:16 +0000 (07:01 -0000)
* Mono.Cairo/Context.cs:
* Mono.Cairo/Surface.cs: Generalize to Surface.LookupSurface()
This method will be useful elsewhere.

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

mcs/class/Mono.Cairo/ChangeLog
mcs/class/Mono.Cairo/Mono.Cairo/Context.cs
mcs/class/Mono.Cairo/Mono.Cairo/Surface.cs

index e1613f36f45887ed64b21fe348fffa2d0742efc0..8b3224abe59603d8ec58da00910acf5f29e5e7bf 100644 (file)
@@ -1,3 +1,9 @@
+2007-01-05  Alp Toker  <alp@atoker.com>
+
+       * Mono.Cairo/Context.cs:
+       * Mono.Cairo/Surface.cs: Generalize to Surface.LookupSurface()
+       This method will be useful elsewhere.
+
 2007-01-04  Miguel de Icaza  <miguel@novell.com>
 
        * Mono.Cairo/Context.cs (FromGlyphToUnManagedMemory): Deal with
index c14368048a2d2c7ae6c849fd3dfa1f758b8f8a75..65494a0a7e68deed5fd386764ebf229afd8a29f6 100644 (file)
@@ -609,31 +609,7 @@ namespace Cairo {
                public Surface GroupTarget {
                        get {
                                IntPtr surface = CairoAPI.cairo_get_group_target (state);
-                               SurfaceType st = CairoAPI.cairo_surface_get_type (surface);
-                               switch (st) {
-                                       case SurfaceType.Image:
-                                               return new ImageSurface (surface, true);
-                                       case SurfaceType.XLib:
-                                               return new XlibSurface (surface, true);
-                                       case SurfaceType.Xcb:
-                                               return new XcbSurface (surface, true);
-                                       case SurfaceType.Glitz:
-                                               return new GlitzSurface (surface, true);
-                                       case SurfaceType.Win32:
-                                               return new Win32Surface (surface, true);
-#if CAIRO_1_2
-                                       case SurfaceType.Pdf:
-                                               return new PdfSurface (surface, true);
-                                       case SurfaceType.PS:
-                                               return new PSSurface (surface, true);
-                                       case SurfaceType.DirectFB:
-                                               return new DirectFBSurface (surface, true);
-                                       case SurfaceType.Svg:
-                                               return new SvgSurface (surface, true);
-#endif
-                                       default:
-                                               return Surface.LookupExternalSurface (surface);
-                               }
+                               return Surface.LookupSurface (surface);
                        }
                }
 #endif
index 307a23010d0c6b429cc4f4f7f169e71fffb6898f..527ffe621414ebc3ada331cf46ee694656f082c5 100644 (file)
@@ -66,7 +66,36 @@ namespace Cairo {
                                return (Surface) o;
                        }
                }               
-               
+
+               static internal Surface LookupSurface (IntPtr surface)
+               {
+                               SurfaceType st = CairoAPI.cairo_surface_get_type (surface);
+                               switch (st) {
+                                       case SurfaceType.Image:
+                                               return new ImageSurface (surface, true);
+                                       case SurfaceType.XLib:
+                                               return new XlibSurface (surface, true);
+                                       case SurfaceType.Xcb:
+                                               return new XcbSurface (surface, true);
+                                       case SurfaceType.Glitz:
+                                               return new GlitzSurface (surface, true);
+                                       case SurfaceType.Win32:
+                                               return new Win32Surface (surface, true);
+#if CAIRO_1_2
+                                       case SurfaceType.Pdf:
+                                               return new PdfSurface (surface, true);
+                                       case SurfaceType.PS:
+                                               return new PSSurface (surface, true);
+                                       case SurfaceType.DirectFB:
+                                               return new DirectFBSurface (surface, true);
+                                       case SurfaceType.Svg:
+                                               return new SvgSurface (surface, true);
+#endif
+                                       default:
+                                               return Surface.LookupExternalSurface (surface);
+                               }
+               }
+
                [Obsolete ("Use an ImageSurface constructor instead.")]
                 public static Cairo.Surface CreateForImage (
                         ref byte[] data, Cairo.Format format, int width, int height, int stride)