diff options
author | hwthomas <hywel.w.thomas@gmail.com> | 2016-03-07 12:36:04 +0300 |
---|---|---|
committer | hwthomas <hywel.w.thomas@gmail.com> | 2016-03-07 12:36:04 +0300 |
commit | 9edc9a1ad1c96290f7f87d4f7240b487ebf45dc3 (patch) | |
tree | d105babedb59e839e86fac7f827df3e4e166074c /Xwt.Gtk/Xwt.GtkBackend/Gtk3Extensions.cs | |
parent | 46cd5f58118d7ee3d4e0e3761766a577ab7cd5b5 (diff) |
[GtkBackend] Add custom Gtk.MissingIcon for Gtk3
Diffstat (limited to 'Xwt.Gtk/Xwt.GtkBackend/Gtk3Extensions.cs')
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/Gtk3Extensions.cs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Xwt.Gtk/Xwt.GtkBackend/Gtk3Extensions.cs b/Xwt.Gtk/Xwt.GtkBackend/Gtk3Extensions.cs index cb56aeb0..5a021ff7 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/Gtk3Extensions.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/Gtk3Extensions.cs @@ -58,6 +58,20 @@ namespace Xwt.GtkBackend widget.SetStateFlags(Gtk.StateFlags.Normal, true); } + [DllImport (GtkInterop.LIBGDK, CallingConvention = CallingConvention.Cdecl)] + static extern IntPtr gdk_pixbuf_get_from_surface (IntPtr surface, int src_x, int src_y, int width, int height); + + public static Gdk.Pixbuf GetFromSurface (Cairo.Surface surface, int src_x, int src_y, int width, int height) + { + IntPtr raw_ret = gdk_pixbuf_get_from_surface (surface.Handle, src_x, src_y, width, height); + Gdk.Pixbuf ret; + if (raw_ret == IntPtr.Zero) + ret = null; + else + ret = (Gdk.Pixbuf)GLib.Object.GetObject (raw_ret); + return ret; + } + [DllImport (GtkInterop.LIBGDK)] static extern IntPtr gdk_pixbuf_get_from_window(IntPtr win, int src_x, int src_y, int width, int height); |