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

namespace Gtk {

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

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

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_gtk_widget_path_append_for_widget(IntPtr raw, IntPtr widget);
		static d_gtk_widget_path_append_for_widget gtk_widget_path_append_for_widget = FuncLoader.LoadFunction<d_gtk_widget_path_append_for_widget>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_append_for_widget"));

		public int AppendForWidget(Gtk.Widget widget) {
			int raw_ret = gtk_widget_path_append_for_widget(Handle, widget == null ? IntPtr.Zero : widget.Handle);
			int ret = raw_ret;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_gtk_widget_path_append_type(IntPtr raw, IntPtr type);
		static d_gtk_widget_path_append_type gtk_widget_path_append_type = FuncLoader.LoadFunction<d_gtk_widget_path_append_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_append_type"));

		public int AppendType(GLib.GType type) {
			int raw_ret = gtk_widget_path_append_type(Handle, type.Val);
			int ret = raw_ret;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_gtk_widget_path_append_with_siblings(IntPtr raw, IntPtr siblings, uint sibling_index);
		static d_gtk_widget_path_append_with_siblings gtk_widget_path_append_with_siblings = FuncLoader.LoadFunction<d_gtk_widget_path_append_with_siblings>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_append_with_siblings"));

		public int AppendWithSiblings(Gtk.WidgetPath siblings, uint sibling_index) {
			int raw_ret = gtk_widget_path_append_with_siblings(Handle, siblings == null ? IntPtr.Zero : siblings.Handle, sibling_index);
			int ret = raw_ret;
			return ret;
		}

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

		public Gtk.WidgetPath Copy() {
			IntPtr raw_ret = gtk_widget_path_copy(Handle);
			Gtk.WidgetPath ret = raw_ret == IntPtr.Zero ? null : (Gtk.WidgetPath) GLib.Opaque.GetOpaque (raw_ret, typeof (Gtk.WidgetPath), true);
			return ret;
		}

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

		public GLib.GType ObjectType { 
			get {
				IntPtr raw_ret = gtk_widget_path_get_object_type(Handle);
				GLib.GType ret = new GLib.GType(raw_ret);
				return ret;
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gtk_widget_path_get_type();
		static d_gtk_widget_path_get_type gtk_widget_path_get_type = FuncLoader.LoadFunction<d_gtk_widget_path_get_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_get_type"));

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

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_widget_path_has_parent(IntPtr raw, IntPtr type);
		static d_gtk_widget_path_has_parent gtk_widget_path_has_parent = FuncLoader.LoadFunction<d_gtk_widget_path_has_parent>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_has_parent"));

		public bool HasParent(GLib.GType type) {
			bool raw_ret = gtk_widget_path_has_parent(Handle, type.Val);
			bool ret = raw_ret;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_widget_path_is_type(IntPtr raw, IntPtr type);
		static d_gtk_widget_path_is_type gtk_widget_path_is_type = FuncLoader.LoadFunction<d_gtk_widget_path_is_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_is_type"));

		public bool IsType(GLib.GType type) {
			bool raw_ret = gtk_widget_path_is_type(Handle, type.Val);
			bool ret = raw_ret;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_iter_add_class(IntPtr raw, int pos, IntPtr name);
		static d_gtk_widget_path_iter_add_class gtk_widget_path_iter_add_class = FuncLoader.LoadFunction<d_gtk_widget_path_iter_add_class>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_add_class"));

		public void IterAddClass(int pos, string name) {
			IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
			gtk_widget_path_iter_add_class(Handle, pos, native_name);
			GLib.Marshaller.Free (native_name);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_iter_add_region(IntPtr raw, int pos, IntPtr name, int flags);
		static d_gtk_widget_path_iter_add_region gtk_widget_path_iter_add_region = FuncLoader.LoadFunction<d_gtk_widget_path_iter_add_region>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_add_region"));

		[Obsolete]
		public void IterAddRegion(int pos, string name, Gtk.RegionFlags flags) {
			IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
			gtk_widget_path_iter_add_region(Handle, pos, native_name, (int) flags);
			GLib.Marshaller.Free (native_name);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_iter_clear_classes(IntPtr raw, int pos);
		static d_gtk_widget_path_iter_clear_classes gtk_widget_path_iter_clear_classes = FuncLoader.LoadFunction<d_gtk_widget_path_iter_clear_classes>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_clear_classes"));

		public void IterClearClasses(int pos) {
			gtk_widget_path_iter_clear_classes(Handle, pos);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_iter_clear_regions(IntPtr raw, int pos);
		static d_gtk_widget_path_iter_clear_regions gtk_widget_path_iter_clear_regions = FuncLoader.LoadFunction<d_gtk_widget_path_iter_clear_regions>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_clear_regions"));

		[Obsolete]
		public void IterClearRegions(int pos) {
			gtk_widget_path_iter_clear_regions(Handle, pos);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gtk_widget_path_iter_get_name(IntPtr raw, int pos);
		static d_gtk_widget_path_iter_get_name gtk_widget_path_iter_get_name = FuncLoader.LoadFunction<d_gtk_widget_path_iter_get_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_get_name"));

		public string IterGetName(int pos) {
			IntPtr raw_ret = gtk_widget_path_iter_get_name(Handle, pos);
			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gtk_widget_path_iter_get_object_name(IntPtr raw, int pos);
		static d_gtk_widget_path_iter_get_object_name gtk_widget_path_iter_get_object_name = FuncLoader.LoadFunction<d_gtk_widget_path_iter_get_object_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_get_object_name"));

		public string IterGetObjectName(int pos) {
			IntPtr raw_ret = gtk_widget_path_iter_get_object_name(Handle, pos);
			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gtk_widget_path_iter_get_object_type(IntPtr raw, int pos);
		static d_gtk_widget_path_iter_get_object_type gtk_widget_path_iter_get_object_type = FuncLoader.LoadFunction<d_gtk_widget_path_iter_get_object_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_get_object_type"));

		public GLib.GType IterGetObjectType(int pos) {
			IntPtr raw_ret = gtk_widget_path_iter_get_object_type(Handle, pos);
			GLib.GType ret = new GLib.GType(raw_ret);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate uint d_gtk_widget_path_iter_get_sibling_index(IntPtr raw, int pos);
		static d_gtk_widget_path_iter_get_sibling_index gtk_widget_path_iter_get_sibling_index = FuncLoader.LoadFunction<d_gtk_widget_path_iter_get_sibling_index>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_get_sibling_index"));

		public uint IterGetSiblingIndex(int pos) {
			uint raw_ret = gtk_widget_path_iter_get_sibling_index(Handle, pos);
			uint ret = raw_ret;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gtk_widget_path_iter_get_siblings(IntPtr raw, int pos);
		static d_gtk_widget_path_iter_get_siblings gtk_widget_path_iter_get_siblings = FuncLoader.LoadFunction<d_gtk_widget_path_iter_get_siblings>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_get_siblings"));

		public Gtk.WidgetPath IterGetSiblings(int pos) {
			IntPtr raw_ret = gtk_widget_path_iter_get_siblings(Handle, pos);
			Gtk.WidgetPath ret = raw_ret == IntPtr.Zero ? null : (Gtk.WidgetPath) GLib.Opaque.GetOpaque (raw_ret, typeof (Gtk.WidgetPath), false);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_gtk_widget_path_iter_get_state(IntPtr raw, int pos);
		static d_gtk_widget_path_iter_get_state gtk_widget_path_iter_get_state = FuncLoader.LoadFunction<d_gtk_widget_path_iter_get_state>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_get_state"));

		public Gtk.StateFlags IterGetState(int pos) {
			int raw_ret = gtk_widget_path_iter_get_state(Handle, pos);
			Gtk.StateFlags ret = (Gtk.StateFlags) raw_ret;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_widget_path_iter_has_class(IntPtr raw, int pos, IntPtr name);
		static d_gtk_widget_path_iter_has_class gtk_widget_path_iter_has_class = FuncLoader.LoadFunction<d_gtk_widget_path_iter_has_class>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_has_class"));

		public bool IterHasClass(int pos, string name) {
			IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
			bool raw_ret = gtk_widget_path_iter_has_class(Handle, pos, native_name);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_name);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_widget_path_iter_has_name(IntPtr raw, int pos, IntPtr name);
		static d_gtk_widget_path_iter_has_name gtk_widget_path_iter_has_name = FuncLoader.LoadFunction<d_gtk_widget_path_iter_has_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_has_name"));

		public bool IterHasName(int pos, string name) {
			IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
			bool raw_ret = gtk_widget_path_iter_has_name(Handle, pos, native_name);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_name);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_widget_path_iter_has_qclass(IntPtr raw, int pos, int qname);
		static d_gtk_widget_path_iter_has_qclass gtk_widget_path_iter_has_qclass = FuncLoader.LoadFunction<d_gtk_widget_path_iter_has_qclass>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_has_qclass"));

		public bool IterHasQclass(int pos, int qname) {
			bool raw_ret = gtk_widget_path_iter_has_qclass(Handle, pos, qname);
			bool ret = raw_ret;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_widget_path_iter_has_qname(IntPtr raw, int pos, int qname);
		static d_gtk_widget_path_iter_has_qname gtk_widget_path_iter_has_qname = FuncLoader.LoadFunction<d_gtk_widget_path_iter_has_qname>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_has_qname"));

		public bool IterHasQname(int pos, int qname) {
			bool raw_ret = gtk_widget_path_iter_has_qname(Handle, pos, qname);
			bool ret = raw_ret;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_widget_path_iter_has_qregion(IntPtr raw, int pos, int qname, out int flags);
		static d_gtk_widget_path_iter_has_qregion gtk_widget_path_iter_has_qregion = FuncLoader.LoadFunction<d_gtk_widget_path_iter_has_qregion>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_has_qregion"));

		[Obsolete]
		public bool IterHasQregion(int pos, int qname, out Gtk.RegionFlags flags) {
			int native_flags;
			bool raw_ret = gtk_widget_path_iter_has_qregion(Handle, pos, qname, out native_flags);
			bool ret = raw_ret;
			flags = (Gtk.RegionFlags) native_flags;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_widget_path_iter_has_region(IntPtr raw, int pos, IntPtr name, out int flags);
		static d_gtk_widget_path_iter_has_region gtk_widget_path_iter_has_region = FuncLoader.LoadFunction<d_gtk_widget_path_iter_has_region>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_has_region"));

		[Obsolete]
		public bool IterHasRegion(int pos, string name, out Gtk.RegionFlags flags) {
			IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
			int native_flags;
			bool raw_ret = gtk_widget_path_iter_has_region(Handle, pos, native_name, out native_flags);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_name);
			flags = (Gtk.RegionFlags) native_flags;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gtk_widget_path_iter_list_classes(IntPtr raw, int pos);
		static d_gtk_widget_path_iter_list_classes gtk_widget_path_iter_list_classes = FuncLoader.LoadFunction<d_gtk_widget_path_iter_list_classes>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_list_classes"));

		public string[] IterListClasses(int pos) {
			IntPtr raw_ret = gtk_widget_path_iter_list_classes(Handle, pos);
			string[] ret = GLib.Marshaller.SListPtrToArray<string, string> (raw_ret, true, false);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gtk_widget_path_iter_list_regions(IntPtr raw, int pos);
		static d_gtk_widget_path_iter_list_regions gtk_widget_path_iter_list_regions = FuncLoader.LoadFunction<d_gtk_widget_path_iter_list_regions>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_list_regions"));

		[Obsolete]
		public string[] IterListRegions(int pos) {
			IntPtr raw_ret = gtk_widget_path_iter_list_regions(Handle, pos);
			string[] ret = GLib.Marshaller.SListPtrToArray<string, string> (raw_ret, true, false);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_iter_remove_class(IntPtr raw, int pos, IntPtr name);
		static d_gtk_widget_path_iter_remove_class gtk_widget_path_iter_remove_class = FuncLoader.LoadFunction<d_gtk_widget_path_iter_remove_class>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_remove_class"));

		public void IterRemoveClass(int pos, string name) {
			IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
			gtk_widget_path_iter_remove_class(Handle, pos, native_name);
			GLib.Marshaller.Free (native_name);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_iter_remove_region(IntPtr raw, int pos, IntPtr name);
		static d_gtk_widget_path_iter_remove_region gtk_widget_path_iter_remove_region = FuncLoader.LoadFunction<d_gtk_widget_path_iter_remove_region>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_remove_region"));

		[Obsolete]
		public void IterRemoveRegion(int pos, string name) {
			IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
			gtk_widget_path_iter_remove_region(Handle, pos, native_name);
			GLib.Marshaller.Free (native_name);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_iter_set_name(IntPtr raw, int pos, IntPtr name);
		static d_gtk_widget_path_iter_set_name gtk_widget_path_iter_set_name = FuncLoader.LoadFunction<d_gtk_widget_path_iter_set_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_set_name"));

		public void IterSetName(int pos, string name) {
			IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
			gtk_widget_path_iter_set_name(Handle, pos, native_name);
			GLib.Marshaller.Free (native_name);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_iter_set_object_name(IntPtr raw, int pos, IntPtr name);
		static d_gtk_widget_path_iter_set_object_name gtk_widget_path_iter_set_object_name = FuncLoader.LoadFunction<d_gtk_widget_path_iter_set_object_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_set_object_name"));

		public void IterSetObjectName(int pos, string name) {
			IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
			gtk_widget_path_iter_set_object_name(Handle, pos, native_name);
			GLib.Marshaller.Free (native_name);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_iter_set_object_type(IntPtr raw, int pos, IntPtr type);
		static d_gtk_widget_path_iter_set_object_type gtk_widget_path_iter_set_object_type = FuncLoader.LoadFunction<d_gtk_widget_path_iter_set_object_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_set_object_type"));

		public void IterSetObjectType(int pos, GLib.GType type) {
			gtk_widget_path_iter_set_object_type(Handle, pos, type.Val);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_iter_set_state(IntPtr raw, int pos, int state);
		static d_gtk_widget_path_iter_set_state gtk_widget_path_iter_set_state = FuncLoader.LoadFunction<d_gtk_widget_path_iter_set_state>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_iter_set_state"));

		public void IterSetState(int pos, Gtk.StateFlags state) {
			gtk_widget_path_iter_set_state(Handle, pos, (int) state);
		}

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

		public int Length() {
			int raw_ret = gtk_widget_path_length(Handle);
			int ret = raw_ret;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_prepend_type(IntPtr raw, IntPtr type);
		static d_gtk_widget_path_prepend_type gtk_widget_path_prepend_type = FuncLoader.LoadFunction<d_gtk_widget_path_prepend_type>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_prepend_type"));

		public void PrependType(GLib.GType type) {
			gtk_widget_path_prepend_type(Handle, type.Val);
		}

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

		public override string ToString() {
			IntPtr raw_ret = gtk_widget_path_to_string(Handle);
			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
			return ret;
		}

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

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gtk_widget_path_new();
		static d_gtk_widget_path_new gtk_widget_path_new = FuncLoader.LoadFunction<d_gtk_widget_path_new>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_new"));

		public WidgetPath () 
		{
			Raw = gtk_widget_path_new();
		}

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

		protected override void Ref (IntPtr raw)
		{
			if (!Owned) {
				gtk_widget_path_ref (raw);
				Owned = true;
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_unref(IntPtr raw);
		static d_gtk_widget_path_unref gtk_widget_path_unref = FuncLoader.LoadFunction<d_gtk_widget_path_unref>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_unref"));

		protected override void Unref (IntPtr raw)
		{
			if (Owned) {
				gtk_widget_path_unref (raw);
				Owned = false;
			}
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_widget_path_free(IntPtr raw);
		static d_gtk_widget_path_free gtk_widget_path_free = FuncLoader.LoadFunction<d_gtk_widget_path_free>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_widget_path_free"));

		protected override void Free (IntPtr raw)
		{
			gtk_widget_path_free (raw);
		}

		class FinalizerInfo {
			IntPtr handle;
			public uint timeoutHandlerId;

			public FinalizerInfo (IntPtr handle)
			{
				this.handle = handle;
			}

			public bool Handler ()
			{
				gtk_widget_path_free (handle);
				GLib.Timeout.Remove(timeoutHandlerId);
				return false;
			}
		}

		~WidgetPath ()
		{
			if (!Owned)
				return;
			FinalizerInfo info = new FinalizerInfo (Handle);
			info.timeoutHandlerId = GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler));
		}


		// 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
	}
}
