// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.

namespace Gdk {

	using System;
	using System.Collections;
	using System.Collections.Generic;
	using System.Runtime.InteropServices;

#region Autogenerated code
	public partial class OffscreenWindow : GLib.Opaque {

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gdk_offscreen_window_get_embedder(IntPtr window);
		static d_gdk_offscreen_window_get_embedder gdk_offscreen_window_get_embedder = FuncLoader.LoadFunction<d_gdk_offscreen_window_get_embedder>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gdk), "gdk_offscreen_window_get_embedder"));

		public static Gdk.Window GetEmbedder(Gdk.Window window) {
			IntPtr raw_ret = gdk_offscreen_window_get_embedder(window == null ? IntPtr.Zero : window.Handle);
			Gdk.Window ret = GLib.Object.GetObject(raw_ret) as Gdk.Window;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gdk_offscreen_window_get_surface(IntPtr window);
		static d_gdk_offscreen_window_get_surface gdk_offscreen_window_get_surface = FuncLoader.LoadFunction<d_gdk_offscreen_window_get_surface>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gdk), "gdk_offscreen_window_get_surface"));

		public static Cairo.Surface GetSurface(Gdk.Window window) {
			IntPtr raw_ret = gdk_offscreen_window_get_surface(window == null ? IntPtr.Zero : window.Handle);
			Cairo.Surface ret = Cairo.Surface.Lookup (raw_ret, true);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gdk_offscreen_window_set_embedder(IntPtr window, IntPtr embedder);
		static d_gdk_offscreen_window_set_embedder gdk_offscreen_window_set_embedder = FuncLoader.LoadFunction<d_gdk_offscreen_window_set_embedder>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gdk), "gdk_offscreen_window_set_embedder"));

		public static void SetEmbedder(Gdk.Window window, Gdk.Window embedder) {
			gdk_offscreen_window_set_embedder(window == null ? IntPtr.Zero : window.Handle, embedder == null ? IntPtr.Zero : embedder.Handle);
		}

		public OffscreenWindow(IntPtr raw) : base(raw) {}


		// Internal representation of the wrapped structure ABI.
		static GLib.AbiStruct _abi_info = null;
		static public unsafe GLib.AbiStruct abi_info {
			get {
				if (_abi_info == null)
					_abi_info = new GLib.AbiStruct (new List<GLib.AbiField>{ 
					});

				return _abi_info;
			}
		}


		// End of the ABI representation.

#endregion
	}
}
