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

#region Autogenerated code
	public partial class MenuTrackerItem : GLib.Object, Gtk.IActionObserver {

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

		protected MenuTrackerItem() : base(IntPtr.Zero)
		{
			CreateNativeObject (Array.Empty<string> (), Array.Empty<GLib.Value> ());
		}

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

		[GLib.Property ("is-separator")]
		public bool IsSeparator {
			get  {
				bool raw_ret = gtk_menu_tracker_item_get_is_separator(Handle);
				bool ret = raw_ret;
				return ret;
			}
		}

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

		[GLib.Property ("icon")]
		public GLib.IIcon Icon {
			get  {
				IntPtr raw_ret = gtk_menu_tracker_item_get_icon(Handle);
				GLib.IIcon ret = GLib.IconAdapter.GetObject (raw_ret, false);
				return ret;
			}
		}

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

		[GLib.Property ("sensitive")]
		public bool Sensitive {
			get  {
				bool raw_ret = gtk_menu_tracker_item_get_sensitive(Handle);
				bool ret = raw_ret;
				return ret;
			}
		}

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

		[GLib.Property ("toggled")]
		public bool Toggled {
			get  {
				bool raw_ret = gtk_menu_tracker_item_get_toggled(Handle);
				bool ret = raw_ret;
				return ret;
			}
		}

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

		[GLib.Property ("submenu-shown")]
		public bool SubmenuShown {
			get  {
				bool raw_ret = gtk_menu_tracker_item_get_submenu_shown(Handle);
				bool ret = raw_ret;
				return ret;
			}
		}

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

		public void Activated() {
			gtk_menu_tracker_item_activated(Handle);
		}

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

		public string Accel { 
			get {
				IntPtr raw_ret = gtk_menu_tracker_item_get_accel(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
		}

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

		public string DisplayHint { 
			get {
				IntPtr raw_ret = gtk_menu_tracker_item_get_display_hint(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
		}

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

		public bool GetHasLink(string link_name) {
			IntPtr native_link_name = GLib.Marshaller.StringToPtrGStrdup (link_name);
			bool raw_ret = gtk_menu_tracker_item_get_has_link(Handle, native_link_name);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_link_name);
			return ret;
		}

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

		public bool IsVisible { 
			get {
				bool raw_ret = gtk_menu_tracker_item_get_is_visible(Handle);
				bool ret = raw_ret;
				return ret;
			}
		}

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

		public string Label { 
			get {
				IntPtr raw_ret = gtk_menu_tracker_item_get_label(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
		}

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

		public Gtk.MenuTrackerItemRole Role { 
			get {
				int raw_ret = gtk_menu_tracker_item_get_role(Handle);
				Gtk.MenuTrackerItemRole ret = (Gtk.MenuTrackerItemRole) raw_ret;
				return ret;
			}
		}

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

		public bool ShouldRequestShow { 
			get {
				bool raw_ret = gtk_menu_tracker_item_get_should_request_show(Handle);
				bool ret = raw_ret;
				return ret;
			}
		}

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

		public string Special { 
			get {
				IntPtr raw_ret = gtk_menu_tracker_item_get_special(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
		}

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

		public string TextDirection { 
			get {
				IntPtr raw_ret = gtk_menu_tracker_item_get_text_direction(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
		}

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

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

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

		public GLib.IIcon VerbIcon { 
			get {
				IntPtr raw_ret = gtk_menu_tracker_item_get_verb_icon(Handle);
				GLib.IIcon ret = GLib.IconAdapter.GetObject (raw_ret, false);
				return ret;
			}
		}

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

		public bool MayDisappear() {
			bool raw_ret = gtk_menu_tracker_item_may_disappear(Handle);
			bool ret = raw_ret;
			return ret;
		}

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

		public void RequestSubmenuShown(bool shown) {
			gtk_menu_tracker_item_request_submenu_shown(Handle, shown);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_action_observer_action_added(IntPtr raw, IntPtr observable, IntPtr action_name, IntPtr parameter_type, bool enabled, IntPtr state);
		static d_gtk_action_observer_action_added gtk_action_observer_action_added = FuncLoader.LoadFunction<d_gtk_action_observer_action_added>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_action_observer_action_added"));

		public void ActionAdded(Gtk.IActionObservable observable, string action_name, GLib.VariantType parameter_type, bool enabled, GLib.Variant state) {
			IntPtr native_action_name = GLib.Marshaller.StringToPtrGStrdup (action_name);
			gtk_action_observer_action_added(Handle, observable == null ? IntPtr.Zero : ((observable is GLib.Object) ? (observable as GLib.Object).Handle : (observable as Gtk.ActionObservableAdapter).Handle), native_action_name, parameter_type == null ? IntPtr.Zero : parameter_type.Handle, enabled, state == null ? IntPtr.Zero : state.Handle);
			GLib.Marshaller.Free (native_action_name);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_action_observer_action_enabled_changed(IntPtr raw, IntPtr observable, IntPtr action_name, bool enabled);
		static d_gtk_action_observer_action_enabled_changed gtk_action_observer_action_enabled_changed = FuncLoader.LoadFunction<d_gtk_action_observer_action_enabled_changed>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_action_observer_action_enabled_changed"));

		public void ActionEnabledChanged(Gtk.IActionObservable observable, string action_name, bool enabled) {
			IntPtr native_action_name = GLib.Marshaller.StringToPtrGStrdup (action_name);
			gtk_action_observer_action_enabled_changed(Handle, observable == null ? IntPtr.Zero : ((observable is GLib.Object) ? (observable as GLib.Object).Handle : (observable as Gtk.ActionObservableAdapter).Handle), native_action_name, enabled);
			GLib.Marshaller.Free (native_action_name);
		}

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

		public void ActionRemoved(Gtk.IActionObservable observable, string action_name) {
			IntPtr native_action_name = GLib.Marshaller.StringToPtrGStrdup (action_name);
			gtk_action_observer_action_removed(Handle, observable == null ? IntPtr.Zero : ((observable is GLib.Object) ? (observable as GLib.Object).Handle : (observable as Gtk.ActionObservableAdapter).Handle), native_action_name);
			GLib.Marshaller.Free (native_action_name);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_action_observer_action_state_changed(IntPtr raw, IntPtr observable, IntPtr action_name, IntPtr state);
		static d_gtk_action_observer_action_state_changed gtk_action_observer_action_state_changed = FuncLoader.LoadFunction<d_gtk_action_observer_action_state_changed>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_action_observer_action_state_changed"));

		public void ActionStateChanged(Gtk.IActionObservable observable, string action_name, GLib.Variant state) {
			IntPtr native_action_name = GLib.Marshaller.StringToPtrGStrdup (action_name);
			gtk_action_observer_action_state_changed(Handle, observable == null ? IntPtr.Zero : ((observable is GLib.Object) ? (observable as GLib.Object).Handle : (observable as Gtk.ActionObservableAdapter).Handle), native_action_name, state == null ? IntPtr.Zero : state.Handle);
			GLib.Marshaller.Free (native_action_name);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_action_observer_primary_accel_changed(IntPtr raw, IntPtr observable, IntPtr action_name, IntPtr action_and_target);
		static d_gtk_action_observer_primary_accel_changed gtk_action_observer_primary_accel_changed = FuncLoader.LoadFunction<d_gtk_action_observer_primary_accel_changed>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_action_observer_primary_accel_changed"));

		public void PrimaryAccelChanged(Gtk.IActionObservable observable, string action_name, string action_and_target) {
			IntPtr native_action_name = GLib.Marshaller.StringToPtrGStrdup (action_name);
			IntPtr native_action_and_target = GLib.Marshaller.StringToPtrGStrdup (action_and_target);
			gtk_action_observer_primary_accel_changed(Handle, observable == null ? IntPtr.Zero : ((observable is GLib.Object) ? (observable as GLib.Object).Handle : (observable as Gtk.ActionObservableAdapter).Handle), native_action_name, native_action_and_target);
			GLib.Marshaller.Free (native_action_name);
			GLib.Marshaller.Free (native_action_and_target);
		}

#endregion
	}
}
