// 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;
	using static GLib.AbiStructExtension;

#region Autogenerated code
	public partial class PixbufAnimation : GLib.Object {

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

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gdk_pixbuf_animation_new_from_stream(IntPtr stream, IntPtr cancellable, out IntPtr error);
		static d_gdk_pixbuf_animation_new_from_stream gdk_pixbuf_animation_new_from_stream = FuncLoader.LoadFunction<d_gdk_pixbuf_animation_new_from_stream>(FuncLoader.GetProcAddress(GLibrary.Load(Library.GdkPixbuf), "gdk_pixbuf_animation_new_from_stream"));

		public unsafe PixbufAnimation (GLib.InputStream stream, GLib.Cancellable cancellable) : base (IntPtr.Zero)
		{
			if (GetType () != typeof (PixbufAnimation)) {
				var vals = new List<GLib.Value> ();
				var names = new List<string> ();
				CreateNativeObject (names.ToArray (), vals.ToArray ());
				return;
			}
			IntPtr error = IntPtr.Zero;
			Raw = gdk_pixbuf_animation_new_from_stream(stream == null ? IntPtr.Zero : stream.Handle, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			if (error != IntPtr.Zero) throw new GLib.GException (error);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gdk_pixbuf_animation_new_from_stream_async(IntPtr stream, IntPtr cancellable, GLibSharp.AsyncReadyCallbackNative cb, IntPtr user_data);
		static d_gdk_pixbuf_animation_new_from_stream_async gdk_pixbuf_animation_new_from_stream_async = FuncLoader.LoadFunction<d_gdk_pixbuf_animation_new_from_stream_async>(FuncLoader.GetProcAddress(GLibrary.Load(Library.GdkPixbuf), "gdk_pixbuf_animation_new_from_stream_async"));

		public PixbufAnimation (GLib.InputStream stream, GLib.Cancellable cancellable, GLib.AsyncReadyCallback cb) : base (IntPtr.Zero)
		{
			if (GetType () != typeof (PixbufAnimation)) {
				var vals = new List<GLib.Value> ();
				var names = new List<string> ();
				CreateNativeObject (names.ToArray (), vals.ToArray ());
				return;
			}
			GLibSharp.AsyncReadyCallbackWrapper cb_wrapper = new GLibSharp.AsyncReadyCallbackWrapper (cb);
			Raw = gdk_pixbuf_animation_new_from_stream_async(stream == null ? IntPtr.Zero : stream.Handle, cancellable == null ? IntPtr.Zero : cancellable.Handle, cb_wrapper.NativeDelegate, IntPtr.Zero);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gdk_pixbuf_animation_new_from_stream_finish(IntPtr async_result, out IntPtr error);
		static d_gdk_pixbuf_animation_new_from_stream_finish gdk_pixbuf_animation_new_from_stream_finish = FuncLoader.LoadFunction<d_gdk_pixbuf_animation_new_from_stream_finish>(FuncLoader.GetProcAddress(GLibrary.Load(Library.GdkPixbuf), "gdk_pixbuf_animation_new_from_stream_finish"));

		public unsafe PixbufAnimation (GLib.IAsyncResult async_result) : base (IntPtr.Zero)
		{
			if (GetType () != typeof (PixbufAnimation)) {
				var vals = new List<GLib.Value> ();
				var names = new List<string> ();
				CreateNativeObject (names.ToArray (), vals.ToArray ());
				return;
			}
			IntPtr error = IntPtr.Zero;
			Raw = gdk_pixbuf_animation_new_from_stream_finish(async_result == null ? IntPtr.Zero : ((async_result is GLib.Object) ? (async_result as GLib.Object).Handle : (async_result as GLib.AsyncResultAdapter).Handle), out error);
			if (error != IntPtr.Zero) throw new GLib.GException (error);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_gdk_pixbuf_animation_get_height(IntPtr raw);
		static d_gdk_pixbuf_animation_get_height gdk_pixbuf_animation_get_height = FuncLoader.LoadFunction<d_gdk_pixbuf_animation_get_height>(FuncLoader.GetProcAddress(GLibrary.Load(Library.GdkPixbuf), "gdk_pixbuf_animation_get_height"));

		public int Height { 
			get {
				int raw_ret = gdk_pixbuf_animation_get_height(Handle);
				int ret = raw_ret;
				return ret;
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gdk_pixbuf_animation_get_iter(IntPtr raw, IntPtr start_time);
		static d_gdk_pixbuf_animation_get_iter gdk_pixbuf_animation_get_iter = FuncLoader.LoadFunction<d_gdk_pixbuf_animation_get_iter>(FuncLoader.GetProcAddress(GLibrary.Load(Library.GdkPixbuf), "gdk_pixbuf_animation_get_iter"));

		public Gdk.PixbufAnimationIter GetIter(IntPtr start_time) {
			IntPtr raw_ret = gdk_pixbuf_animation_get_iter(Handle, start_time);
			Gdk.PixbufAnimationIter ret = GLib.Object.GetObject(raw_ret) as Gdk.PixbufAnimationIter;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gdk_pixbuf_animation_get_static_image(IntPtr raw);
		static d_gdk_pixbuf_animation_get_static_image gdk_pixbuf_animation_get_static_image = FuncLoader.LoadFunction<d_gdk_pixbuf_animation_get_static_image>(FuncLoader.GetProcAddress(GLibrary.Load(Library.GdkPixbuf), "gdk_pixbuf_animation_get_static_image"));

		public Gdk.Pixbuf StaticImage { 
			get {
				IntPtr raw_ret = gdk_pixbuf_animation_get_static_image(Handle);
				Gdk.Pixbuf ret = GLib.Object.GetObject(raw_ret) as Gdk.Pixbuf;
				return ret;
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gdk_pixbuf_animation_get_type();
		static d_gdk_pixbuf_animation_get_type gdk_pixbuf_animation_get_type = FuncLoader.LoadFunction<d_gdk_pixbuf_animation_get_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.GdkPixbuf), "gdk_pixbuf_animation_get_type"));

		public static new GLib.GType GType { 
			get {
				IntPtr raw_ret = gdk_pixbuf_animation_get_type();
				GLib.GType ret = new GLib.GType(raw_ret);
				return ret;
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_gdk_pixbuf_animation_get_width(IntPtr raw);
		static d_gdk_pixbuf_animation_get_width gdk_pixbuf_animation_get_width = FuncLoader.LoadFunction<d_gdk_pixbuf_animation_get_width>(FuncLoader.GetProcAddress(GLibrary.Load(Library.GdkPixbuf), "gdk_pixbuf_animation_get_width"));

		public int Width { 
			get {
				int raw_ret = gdk_pixbuf_animation_get_width(Handle);
				int ret = raw_ret;
				return ret;
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gdk_pixbuf_animation_is_static_image(IntPtr raw);
		static d_gdk_pixbuf_animation_is_static_image gdk_pixbuf_animation_is_static_image = FuncLoader.LoadFunction<d_gdk_pixbuf_animation_is_static_image>(FuncLoader.GetProcAddress(GLibrary.Load(Library.GdkPixbuf), "gdk_pixbuf_animation_is_static_image"));

		public bool IsStaticImage { 
			get {
				bool raw_ret = gdk_pixbuf_animation_is_static_image(Handle);
				bool ret = raw_ret;
				return ret;
			}
		}

#endregion
	}
}
