+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
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
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)