// 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 FileChooserWidget : Gtk.Box, Gtk.IFileChooser {

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

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

		public FileChooserWidget (Gtk.FileChooserAction action) : base (IntPtr.Zero)
		{
			if (GetType () != typeof (FileChooserWidget)) {
				var vals = new List<GLib.Value> ();
				var names = new List<string> ();
				names.Add ("action");
				vals.Add (new GLib.Value (action));
				CreateNativeObject (names.ToArray (), vals.ToArray ());
				return;
			}
			Raw = gtk_file_chooser_widget_new((int) action);
		}

		[GLib.Property ("search-mode")]
		public bool SearchMode {
			get {
				GLib.Value val = GetProperty ("search-mode");
				bool ret = (bool) val;
				val.Dispose ();
				return ret;
			}
			set {
				GLib.Value val = new GLib.Value(value);
				SetProperty("search-mode", val);
				val.Dispose ();
			}
		}

		[GLib.Property ("subtitle")]
		public string Subtitle {
			get {
				GLib.Value val = GetProperty ("subtitle");
				string ret = (string) val;
				val.Dispose ();
				return ret;
			}
		}

		[GLib.Signal("location-toggle-popup")]
		public event System.EventHandler LocationTogglePopup {
			add {
				this.AddSignalHandler ("location-toggle-popup", value);
			}
			remove {
				this.RemoveSignalHandler ("location-toggle-popup", value);
			}
		}

		[GLib.Signal("search-shortcut")]
		public event System.EventHandler SearchShortcut {
			add {
				this.AddSignalHandler ("search-shortcut", value);
			}
			remove {
				this.RemoveSignalHandler ("search-shortcut", value);
			}
		}

		[GLib.Signal("location-popup")]
		public event Gtk.LocationPopupHandler LocationPopup {
			add {
				this.AddSignalHandler ("location-popup", value, typeof (Gtk.LocationPopupArgs));
			}
			remove {
				this.RemoveSignalHandler ("location-popup", value);
			}
		}

		[GLib.Signal("location-popup-on-paste")]
		public event System.EventHandler LocationPopupOnPaste {
			add {
				this.AddSignalHandler ("location-popup-on-paste", value);
			}
			remove {
				this.RemoveSignalHandler ("location-popup-on-paste", value);
			}
		}

		[GLib.Signal("up-folder")]
		public event System.EventHandler UpFolder {
			add {
				this.AddSignalHandler ("up-folder", value);
			}
			remove {
				this.RemoveSignalHandler ("up-folder", value);
			}
		}

		[GLib.Signal("down-folder")]
		public event System.EventHandler DownFolder {
			add {
				this.AddSignalHandler ("down-folder", value);
			}
			remove {
				this.RemoveSignalHandler ("down-folder", value);
			}
		}

		[GLib.Signal("quick-bookmark")]
		public event Gtk.QuickBookmarkHandler QuickBookmark {
			add {
				this.AddSignalHandler ("quick-bookmark", value, typeof (Gtk.QuickBookmarkArgs));
			}
			remove {
				this.RemoveSignalHandler ("quick-bookmark", value);
			}
		}

		[GLib.Signal("recent-shortcut")]
		public event System.EventHandler RecentShortcut {
			add {
				this.AddSignalHandler ("recent-shortcut", value);
			}
			remove {
				this.RemoveSignalHandler ("recent-shortcut", value);
			}
		}

		[GLib.Signal("desktop-folder")]
		public event System.EventHandler DesktopFolder {
			add {
				this.AddSignalHandler ("desktop-folder", value);
			}
			remove {
				this.RemoveSignalHandler ("desktop-folder", value);
			}
		}

		[GLib.Signal("places-shortcut")]
		public event System.EventHandler PlacesShortcut {
			add {
				this.AddSignalHandler ("places-shortcut", value);
			}
			remove {
				this.RemoveSignalHandler ("places-shortcut", value);
			}
		}

		[GLib.Signal("show-hidden")]
		public event System.EventHandler ShowedHidden {
			add {
				this.AddSignalHandler ("show-hidden", value);
			}
			remove {
				this.RemoveSignalHandler ("show-hidden", value);
			}
		}

		[GLib.Signal("home-folder")]
		public event System.EventHandler HomeFolder {
			add {
				this.AddSignalHandler ("home-folder", value);
			}
			remove {
				this.RemoveSignalHandler ("home-folder", value);
			}
		}

		static LocationPopupNativeDelegate LocationPopup_cb_delegate;
		static LocationPopupNativeDelegate LocationPopupVMCallback {
			get {
				if (LocationPopup_cb_delegate == null)
					LocationPopup_cb_delegate = new LocationPopupNativeDelegate (LocationPopup_cb);
				return LocationPopup_cb_delegate;
			}
		}

		static void OverrideLocationPopup (GLib.GType gtype)
		{
			OverrideLocationPopup (gtype, LocationPopupVMCallback);
		}

		static void OverrideLocationPopup (GLib.GType gtype, LocationPopupNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "location-popup", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void LocationPopupNativeDelegate (IntPtr inst, IntPtr p0);

		static void LocationPopup_cb (IntPtr inst, IntPtr p0)
		{
			try {
				FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as FileChooserWidget;
				__obj.OnLocationPopup (GLib.Marshaller.PtrToStringGFree(p0));
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideLocationPopup")]
		protected virtual void OnLocationPopup (string p0)
		{
			InternalLocationPopup (p0);
		}

		private void InternalLocationPopup (string p0)
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (2);
			GLib.Value[] vals = new GLib.Value [2];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			vals [1] = new GLib.Value (p0);
			inst_and_params.Append (vals [1]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static LocationPopupOnPasteNativeDelegate LocationPopupOnPaste_cb_delegate;
		static LocationPopupOnPasteNativeDelegate LocationPopupOnPasteVMCallback {
			get {
				if (LocationPopupOnPaste_cb_delegate == null)
					LocationPopupOnPaste_cb_delegate = new LocationPopupOnPasteNativeDelegate (LocationPopupOnPaste_cb);
				return LocationPopupOnPaste_cb_delegate;
			}
		}

		static void OverrideLocationPopupOnPaste (GLib.GType gtype)
		{
			OverrideLocationPopupOnPaste (gtype, LocationPopupOnPasteVMCallback);
		}

		static void OverrideLocationPopupOnPaste (GLib.GType gtype, LocationPopupOnPasteNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "location-popup-on-paste", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void LocationPopupOnPasteNativeDelegate (IntPtr inst);

		static void LocationPopupOnPaste_cb (IntPtr inst)
		{
			try {
				FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as FileChooserWidget;
				__obj.OnLocationPopupOnPaste ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideLocationPopupOnPaste")]
		protected virtual void OnLocationPopupOnPaste ()
		{
			InternalLocationPopupOnPaste ();
		}

		private void InternalLocationPopupOnPaste ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static LocationTogglePopupNativeDelegate LocationTogglePopup_cb_delegate;
		static LocationTogglePopupNativeDelegate LocationTogglePopupVMCallback {
			get {
				if (LocationTogglePopup_cb_delegate == null)
					LocationTogglePopup_cb_delegate = new LocationTogglePopupNativeDelegate (LocationTogglePopup_cb);
				return LocationTogglePopup_cb_delegate;
			}
		}

		static void OverrideLocationTogglePopup (GLib.GType gtype)
		{
			OverrideLocationTogglePopup (gtype, LocationTogglePopupVMCallback);
		}

		static void OverrideLocationTogglePopup (GLib.GType gtype, LocationTogglePopupNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "location-toggle-popup", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void LocationTogglePopupNativeDelegate (IntPtr inst);

		static void LocationTogglePopup_cb (IntPtr inst)
		{
			try {
				FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as FileChooserWidget;
				__obj.OnLocationTogglePopup ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideLocationTogglePopup")]
		protected virtual void OnLocationTogglePopup ()
		{
			InternalLocationTogglePopup ();
		}

		private void InternalLocationTogglePopup ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static UpFolderNativeDelegate UpFolder_cb_delegate;
		static UpFolderNativeDelegate UpFolderVMCallback {
			get {
				if (UpFolder_cb_delegate == null)
					UpFolder_cb_delegate = new UpFolderNativeDelegate (UpFolder_cb);
				return UpFolder_cb_delegate;
			}
		}

		static void OverrideUpFolder (GLib.GType gtype)
		{
			OverrideUpFolder (gtype, UpFolderVMCallback);
		}

		static void OverrideUpFolder (GLib.GType gtype, UpFolderNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "up-folder", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void UpFolderNativeDelegate (IntPtr inst);

		static void UpFolder_cb (IntPtr inst)
		{
			try {
				FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as FileChooserWidget;
				__obj.OnUpFolder ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideUpFolder")]
		protected virtual void OnUpFolder ()
		{
			InternalUpFolder ();
		}

		private void InternalUpFolder ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static DownFolderNativeDelegate DownFolder_cb_delegate;
		static DownFolderNativeDelegate DownFolderVMCallback {
			get {
				if (DownFolder_cb_delegate == null)
					DownFolder_cb_delegate = new DownFolderNativeDelegate (DownFolder_cb);
				return DownFolder_cb_delegate;
			}
		}

		static void OverrideDownFolder (GLib.GType gtype)
		{
			OverrideDownFolder (gtype, DownFolderVMCallback);
		}

		static void OverrideDownFolder (GLib.GType gtype, DownFolderNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "down-folder", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void DownFolderNativeDelegate (IntPtr inst);

		static void DownFolder_cb (IntPtr inst)
		{
			try {
				FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as FileChooserWidget;
				__obj.OnDownFolder ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideDownFolder")]
		protected virtual void OnDownFolder ()
		{
			InternalDownFolder ();
		}

		private void InternalDownFolder ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static HomeFolderNativeDelegate HomeFolder_cb_delegate;
		static HomeFolderNativeDelegate HomeFolderVMCallback {
			get {
				if (HomeFolder_cb_delegate == null)
					HomeFolder_cb_delegate = new HomeFolderNativeDelegate (HomeFolder_cb);
				return HomeFolder_cb_delegate;
			}
		}

		static void OverrideHomeFolder (GLib.GType gtype)
		{
			OverrideHomeFolder (gtype, HomeFolderVMCallback);
		}

		static void OverrideHomeFolder (GLib.GType gtype, HomeFolderNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "home-folder", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void HomeFolderNativeDelegate (IntPtr inst);

		static void HomeFolder_cb (IntPtr inst)
		{
			try {
				FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as FileChooserWidget;
				__obj.OnHomeFolder ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideHomeFolder")]
		protected virtual void OnHomeFolder ()
		{
			InternalHomeFolder ();
		}

		private void InternalHomeFolder ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static DesktopFolderNativeDelegate DesktopFolder_cb_delegate;
		static DesktopFolderNativeDelegate DesktopFolderVMCallback {
			get {
				if (DesktopFolder_cb_delegate == null)
					DesktopFolder_cb_delegate = new DesktopFolderNativeDelegate (DesktopFolder_cb);
				return DesktopFolder_cb_delegate;
			}
		}

		static void OverrideDesktopFolder (GLib.GType gtype)
		{
			OverrideDesktopFolder (gtype, DesktopFolderVMCallback);
		}

		static void OverrideDesktopFolder (GLib.GType gtype, DesktopFolderNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "desktop-folder", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void DesktopFolderNativeDelegate (IntPtr inst);

		static void DesktopFolder_cb (IntPtr inst)
		{
			try {
				FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as FileChooserWidget;
				__obj.OnDesktopFolder ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideDesktopFolder")]
		protected virtual void OnDesktopFolder ()
		{
			InternalDesktopFolder ();
		}

		private void InternalDesktopFolder ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static QuickBookmarkNativeDelegate QuickBookmark_cb_delegate;
		static QuickBookmarkNativeDelegate QuickBookmarkVMCallback {
			get {
				if (QuickBookmark_cb_delegate == null)
					QuickBookmark_cb_delegate = new QuickBookmarkNativeDelegate (QuickBookmark_cb);
				return QuickBookmark_cb_delegate;
			}
		}

		static void OverrideQuickBookmark (GLib.GType gtype)
		{
			OverrideQuickBookmark (gtype, QuickBookmarkVMCallback);
		}

		static void OverrideQuickBookmark (GLib.GType gtype, QuickBookmarkNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "quick-bookmark", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void QuickBookmarkNativeDelegate (IntPtr inst, int p0);

		static void QuickBookmark_cb (IntPtr inst, int p0)
		{
			try {
				FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as FileChooserWidget;
				__obj.OnQuickBookmark (p0);
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideQuickBookmark")]
		protected virtual void OnQuickBookmark (int p0)
		{
			InternalQuickBookmark (p0);
		}

		private void InternalQuickBookmark (int p0)
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (2);
			GLib.Value[] vals = new GLib.Value [2];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			vals [1] = new GLib.Value (p0);
			inst_and_params.Append (vals [1]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static ShowedHiddenNativeDelegate ShowedHidden_cb_delegate;
		static ShowedHiddenNativeDelegate ShowedHiddenVMCallback {
			get {
				if (ShowedHidden_cb_delegate == null)
					ShowedHidden_cb_delegate = new ShowedHiddenNativeDelegate (ShowedHidden_cb);
				return ShowedHidden_cb_delegate;
			}
		}

		static void OverrideShowedHidden (GLib.GType gtype)
		{
			OverrideShowedHidden (gtype, ShowedHiddenVMCallback);
		}

		static void OverrideShowedHidden (GLib.GType gtype, ShowedHiddenNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "show-hidden", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void ShowedHiddenNativeDelegate (IntPtr inst);

		static void ShowedHidden_cb (IntPtr inst)
		{
			try {
				FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as FileChooserWidget;
				__obj.OnShowedHidden ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideShowedHidden")]
		protected virtual void OnShowedHidden ()
		{
			InternalShowedHidden ();
		}

		private void InternalShowedHidden ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static SearchShortcutNativeDelegate SearchShortcut_cb_delegate;
		static SearchShortcutNativeDelegate SearchShortcutVMCallback {
			get {
				if (SearchShortcut_cb_delegate == null)
					SearchShortcut_cb_delegate = new SearchShortcutNativeDelegate (SearchShortcut_cb);
				return SearchShortcut_cb_delegate;
			}
		}

		static void OverrideSearchShortcut (GLib.GType gtype)
		{
			OverrideSearchShortcut (gtype, SearchShortcutVMCallback);
		}

		static void OverrideSearchShortcut (GLib.GType gtype, SearchShortcutNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "search-shortcut", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void SearchShortcutNativeDelegate (IntPtr inst);

		static void SearchShortcut_cb (IntPtr inst)
		{
			try {
				FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as FileChooserWidget;
				__obj.OnSearchShortcut ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideSearchShortcut")]
		protected virtual void OnSearchShortcut ()
		{
			InternalSearchShortcut ();
		}

		private void InternalSearchShortcut ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static RecentShortcutNativeDelegate RecentShortcut_cb_delegate;
		static RecentShortcutNativeDelegate RecentShortcutVMCallback {
			get {
				if (RecentShortcut_cb_delegate == null)
					RecentShortcut_cb_delegate = new RecentShortcutNativeDelegate (RecentShortcut_cb);
				return RecentShortcut_cb_delegate;
			}
		}

		static void OverrideRecentShortcut (GLib.GType gtype)
		{
			OverrideRecentShortcut (gtype, RecentShortcutVMCallback);
		}

		static void OverrideRecentShortcut (GLib.GType gtype, RecentShortcutNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "recent-shortcut", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void RecentShortcutNativeDelegate (IntPtr inst);

		static void RecentShortcut_cb (IntPtr inst)
		{
			try {
				FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as FileChooserWidget;
				__obj.OnRecentShortcut ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideRecentShortcut")]
		protected virtual void OnRecentShortcut ()
		{
			InternalRecentShortcut ();
		}

		private void InternalRecentShortcut ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static PlacesShortcutNativeDelegate PlacesShortcut_cb_delegate;
		static PlacesShortcutNativeDelegate PlacesShortcutVMCallback {
			get {
				if (PlacesShortcut_cb_delegate == null)
					PlacesShortcut_cb_delegate = new PlacesShortcutNativeDelegate (PlacesShortcut_cb);
				return PlacesShortcut_cb_delegate;
			}
		}

		static void OverridePlacesShortcut (GLib.GType gtype)
		{
			OverridePlacesShortcut (gtype, PlacesShortcutVMCallback);
		}

		static void OverridePlacesShortcut (GLib.GType gtype, PlacesShortcutNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "places-shortcut", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void PlacesShortcutNativeDelegate (IntPtr inst);

		static void PlacesShortcut_cb (IntPtr inst)
		{
			try {
				FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as FileChooserWidget;
				__obj.OnPlacesShortcut ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverridePlacesShortcut")]
		protected virtual void OnPlacesShortcut ()
		{
			InternalPlacesShortcut ();
		}

		private void InternalPlacesShortcut ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}


		// Internal representation of the wrapped structure ABI.
		static GLib.AbiStruct _class_abi = null;
		static public unsafe new GLib.AbiStruct class_abi {
			get {
				if (_class_abi == null)
					_class_abi = new GLib.AbiStruct (new List<GLib.AbiField>{ 
						new GLib.AbiField("_gtk_reserved1"
							, Gtk.Box.class_abi.Fields
							, (uint) sizeof( IntPtr ) // _gtk_reserved1
							, null
							, "_gtk_reserved2"
							, (uint) sizeof(IntPtr)
							, 0
							),
						new GLib.AbiField("_gtk_reserved2"
							, -1
							, (uint) sizeof( IntPtr ) // _gtk_reserved2
							, "_gtk_reserved1"
							, "_gtk_reserved3"
							, (uint) sizeof(IntPtr)
							, 0
							),
						new GLib.AbiField("_gtk_reserved3"
							, -1
							, (uint) sizeof( IntPtr ) // _gtk_reserved3
							, "_gtk_reserved2"
							, "_gtk_reserved4"
							, (uint) sizeof(IntPtr)
							, 0
							),
						new GLib.AbiField("_gtk_reserved4"
							, -1
							, (uint) sizeof( IntPtr ) // _gtk_reserved4
							, "_gtk_reserved3"
							, null
							, (uint) sizeof(IntPtr)
							, 0
							),
					});

				return _class_abi;
			}
		}


		// End of the ABI representation.

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

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

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_file_chooser_add_choice(IntPtr raw, IntPtr id, IntPtr label, IntPtr options, IntPtr option_labels);
		static d_gtk_file_chooser_add_choice gtk_file_chooser_add_choice = FuncLoader.LoadFunction<d_gtk_file_chooser_add_choice>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_file_chooser_add_choice"));

		public void AddChoice(string id, string label, string options, string option_labels) {
			IntPtr native_id = GLib.Marshaller.StringToPtrGStrdup (id);
			IntPtr native_label = GLib.Marshaller.StringToPtrGStrdup (label);
			IntPtr native_options = GLib.Marshaller.StringToPtrGStrdup (options);
			IntPtr native_option_labels = GLib.Marshaller.StringToPtrGStrdup (option_labels);
			gtk_file_chooser_add_choice(Handle, native_id, native_label, native_options, native_option_labels);
			GLib.Marshaller.Free (native_id);
			GLib.Marshaller.Free (native_label);
			GLib.Marshaller.Free (native_options);
			GLib.Marshaller.Free (native_option_labels);
		}

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

		public void AddFilter(Gtk.FileFilter filter) {
			gtk_file_chooser_add_filter(Handle, filter == null ? IntPtr.Zero : filter.Handle);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_file_chooser_add_shortcut_folder(IntPtr raw, IntPtr folder, out IntPtr error);
		static d_gtk_file_chooser_add_shortcut_folder gtk_file_chooser_add_shortcut_folder = FuncLoader.LoadFunction<d_gtk_file_chooser_add_shortcut_folder>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_file_chooser_add_shortcut_folder"));

		public bool AddShortcutFolder(string folder) {
			IntPtr native_folder = GLib.Marshaller.StringToFilenamePtr (folder);
			IntPtr error = IntPtr.Zero;
			bool raw_ret = gtk_file_chooser_add_shortcut_folder(Handle, native_folder, out error);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_folder);
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_file_chooser_add_shortcut_folder_uri(IntPtr raw, IntPtr uri, out IntPtr error);
		static d_gtk_file_chooser_add_shortcut_folder_uri gtk_file_chooser_add_shortcut_folder_uri = FuncLoader.LoadFunction<d_gtk_file_chooser_add_shortcut_folder_uri>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_file_chooser_add_shortcut_folder_uri"));

		public bool AddShortcutFolderUri(string uri) {
			IntPtr native_uri = GLib.Marshaller.StringToPtrGStrdup (uri);
			IntPtr error = IntPtr.Zero;
			bool raw_ret = gtk_file_chooser_add_shortcut_folder_uri(Handle, native_uri, out error);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_uri);
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

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

		public string GetChoice(string id) {
			IntPtr native_id = GLib.Marshaller.StringToPtrGStrdup (id);
			IntPtr raw_ret = gtk_file_chooser_get_choice(Handle, native_id);
			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
			GLib.Marshaller.Free (native_id);
			return ret;
		}

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

		public string CurrentFolder { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_current_folder(Handle);
				string ret = GLib.Marshaller.FilenamePtrToStringGFree(raw_ret);
				return ret;
			}
		}

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

		public GLib.IFile CurrentFolderFile { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_current_folder_file(Handle);
				GLib.IFile ret = GLib.FileAdapter.GetObject (raw_ret, false);
				return ret;
			}
		}

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

		public string CurrentFolderUri { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_current_folder_uri(Handle);
				string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
				return ret;
			}
		}

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

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

		public string CurrentName { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_current_name(Handle);
				string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
				return ret;
			}
			set {
				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
				gtk_file_chooser_set_current_name(Handle, native_value);
				GLib.Marshaller.Free (native_value);
			}
		}

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

		public GLib.IFile File { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_file(Handle);
				GLib.IFile ret = GLib.FileAdapter.GetObject (raw_ret, false);
				return ret;
			}
		}

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

		public string Filename { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_filename(Handle);
				string ret = GLib.Marshaller.FilenamePtrToStringGFree(raw_ret);
				return ret;
			}
		}

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

		public string[] Filenames { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_filenames(Handle);
				string[] ret = GLib.Marshaller.SListPtrToArray<string, GLib.ListBase.FilenameString> (raw_ret, true, true);
				return ret;
			}
		}

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

		public GLib.IFile[] Files { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_files(Handle);
				GLib.IFile[] ret = GLib.Marshaller.SListPtrToArray<GLib.IFile, GLib.IFile> (raw_ret, false, false);
				return ret;
			}
		}

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

		public GLib.IFile PreviewFile { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_preview_file(Handle);
				GLib.IFile ret = GLib.FileAdapter.GetObject (raw_ret, false);
				return ret;
			}
		}

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

		public string PreviewFilename { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_preview_filename(Handle);
				string ret = GLib.Marshaller.FilenamePtrToStringGFree(raw_ret);
				return ret;
			}
		}

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

		public string PreviewUri { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_preview_uri(Handle);
				string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
				return ret;
			}
		}

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

		public string Uri { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_uri(Handle);
				string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
				return ret;
			}
		}

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

		public string[] Uris { 
			get {
				IntPtr raw_ret = gtk_file_chooser_get_uris(Handle);
				string[] ret = GLib.Marshaller.SListPtrToArray<string, string> (raw_ret, true, true);
				return ret;
			}
		}

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

		public Gtk.FileFilter[] Filters { 
			get {
				IntPtr raw_ret = gtk_file_chooser_list_filters(Handle);
				Gtk.FileFilter[] ret = GLib.Marshaller.SListPtrToArray<Gtk.FileFilter, Gtk.FileFilter> (raw_ret, true, false);
				return ret;
			}
		}

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

		public string[] ShortcutFolderUris { 
			get {
				IntPtr raw_ret = gtk_file_chooser_list_shortcut_folder_uris(Handle);
				string[] ret = GLib.Marshaller.SListPtrToArray<string, string> (raw_ret, true, true);
				return ret;
			}
		}

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

		public string[] ShortcutFolders { 
			get {
				IntPtr raw_ret = gtk_file_chooser_list_shortcut_folders(Handle);
				string[] ret = GLib.Marshaller.SListPtrToArray<string, GLib.ListBase.FilenameString> (raw_ret, true, true);
				return ret;
			}
		}

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

		public void RemoveChoice(string id) {
			IntPtr native_id = GLib.Marshaller.StringToPtrGStrdup (id);
			gtk_file_chooser_remove_choice(Handle, native_id);
			GLib.Marshaller.Free (native_id);
		}

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

		public void RemoveFilter(Gtk.FileFilter filter) {
			gtk_file_chooser_remove_filter(Handle, filter == null ? IntPtr.Zero : filter.Handle);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_file_chooser_remove_shortcut_folder(IntPtr raw, IntPtr folder, out IntPtr error);
		static d_gtk_file_chooser_remove_shortcut_folder gtk_file_chooser_remove_shortcut_folder = FuncLoader.LoadFunction<d_gtk_file_chooser_remove_shortcut_folder>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_file_chooser_remove_shortcut_folder"));

		public bool RemoveShortcutFolder(string folder) {
			IntPtr native_folder = GLib.Marshaller.StringToFilenamePtr (folder);
			IntPtr error = IntPtr.Zero;
			bool raw_ret = gtk_file_chooser_remove_shortcut_folder(Handle, native_folder, out error);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_folder);
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_file_chooser_remove_shortcut_folder_uri(IntPtr raw, IntPtr uri, out IntPtr error);
		static d_gtk_file_chooser_remove_shortcut_folder_uri gtk_file_chooser_remove_shortcut_folder_uri = FuncLoader.LoadFunction<d_gtk_file_chooser_remove_shortcut_folder_uri>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_file_chooser_remove_shortcut_folder_uri"));

		public bool RemoveShortcutFolderUri(string uri) {
			IntPtr native_uri = GLib.Marshaller.StringToPtrGStrdup (uri);
			IntPtr error = IntPtr.Zero;
			bool raw_ret = gtk_file_chooser_remove_shortcut_folder_uri(Handle, native_uri, out error);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_uri);
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

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

		public void SelectAll() {
			gtk_file_chooser_select_all(Handle);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_file_chooser_select_file(IntPtr raw, IntPtr file, out IntPtr error);
		static d_gtk_file_chooser_select_file gtk_file_chooser_select_file = FuncLoader.LoadFunction<d_gtk_file_chooser_select_file>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_file_chooser_select_file"));

		public bool SelectFile(GLib.IFile file) {
			IntPtr error = IntPtr.Zero;
			bool raw_ret = gtk_file_chooser_select_file(Handle, file == null ? IntPtr.Zero : ((file is GLib.Object) ? (file as GLib.Object).Handle : (file as GLib.FileAdapter).Handle), out error);
			bool ret = raw_ret;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

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

		public bool SelectFilename(string filename) {
			IntPtr native_filename = GLib.Marshaller.StringToFilenamePtr (filename);
			bool raw_ret = gtk_file_chooser_select_filename(Handle, native_filename);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_filename);
			return ret;
		}

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

		public bool SelectUri(string uri) {
			IntPtr native_uri = GLib.Marshaller.StringToPtrGStrdup (uri);
			bool raw_ret = gtk_file_chooser_select_uri(Handle, native_uri);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_uri);
			return ret;
		}

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

		public void SetChoice(string id, string option) {
			IntPtr native_id = GLib.Marshaller.StringToPtrGStrdup (id);
			IntPtr native_option = GLib.Marshaller.StringToPtrGStrdup (option);
			gtk_file_chooser_set_choice(Handle, native_id, native_option);
			GLib.Marshaller.Free (native_id);
			GLib.Marshaller.Free (native_option);
		}

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

		public bool SetCurrentFolder(string filename) {
			IntPtr native_filename = GLib.Marshaller.StringToFilenamePtr (filename);
			bool raw_ret = gtk_file_chooser_set_current_folder(Handle, native_filename);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_filename);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_file_chooser_set_current_folder_file(IntPtr raw, IntPtr file, out IntPtr error);
		static d_gtk_file_chooser_set_current_folder_file gtk_file_chooser_set_current_folder_file = FuncLoader.LoadFunction<d_gtk_file_chooser_set_current_folder_file>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_file_chooser_set_current_folder_file"));

		public bool SetCurrentFolderFile(GLib.IFile file) {
			IntPtr error = IntPtr.Zero;
			bool raw_ret = gtk_file_chooser_set_current_folder_file(Handle, file == null ? IntPtr.Zero : ((file is GLib.Object) ? (file as GLib.Object).Handle : (file as GLib.FileAdapter).Handle), out error);
			bool ret = raw_ret;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

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

		public bool SetCurrentFolderUri(string uri) {
			IntPtr native_uri = GLib.Marshaller.StringToPtrGStrdup (uri);
			bool raw_ret = gtk_file_chooser_set_current_folder_uri(Handle, native_uri);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_uri);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_file_chooser_set_file(IntPtr raw, IntPtr file, out IntPtr error);
		static d_gtk_file_chooser_set_file gtk_file_chooser_set_file = FuncLoader.LoadFunction<d_gtk_file_chooser_set_file>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_file_chooser_set_file"));

		public bool SetFile(GLib.IFile file) {
			IntPtr error = IntPtr.Zero;
			bool raw_ret = gtk_file_chooser_set_file(Handle, file == null ? IntPtr.Zero : ((file is GLib.Object) ? (file as GLib.Object).Handle : (file as GLib.FileAdapter).Handle), out error);
			bool ret = raw_ret;
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

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

		public bool SetFilename(string filename) {
			IntPtr native_filename = GLib.Marshaller.StringToFilenamePtr (filename);
			bool raw_ret = gtk_file_chooser_set_filename(Handle, native_filename);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_filename);
			return ret;
		}

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

		public bool SetUri(string uri) {
			IntPtr native_uri = GLib.Marshaller.StringToPtrGStrdup (uri);
			bool raw_ret = gtk_file_chooser_set_uri(Handle, native_uri);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_uri);
			return ret;
		}

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

		public void UnselectAll() {
			gtk_file_chooser_unselect_all(Handle);
		}

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

		public void UnselectFile(GLib.IFile file) {
			gtk_file_chooser_unselect_file(Handle, file == null ? IntPtr.Zero : ((file is GLib.Object) ? (file as GLib.Object).Handle : (file as GLib.FileAdapter).Handle));
		}

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

		public void UnselectFilename(string filename) {
			IntPtr native_filename = GLib.Marshaller.StringToFilenamePtr (filename);
			gtk_file_chooser_unselect_filename(Handle, native_filename);
			GLib.Marshaller.Free (native_filename);
		}

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

		public void UnselectUri(string uri) {
			IntPtr native_uri = GLib.Marshaller.StringToPtrGStrdup (uri);
			gtk_file_chooser_unselect_uri(Handle, native_uri);
			GLib.Marshaller.Free (native_uri);
		}

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

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

		[GLib.Property ("action")]
		public Gtk.FileChooserAction Action {
			get  {
				int raw_ret = gtk_file_chooser_get_action(Handle);
				Gtk.FileChooserAction ret = (Gtk.FileChooserAction) raw_ret;
				return ret;
			}
			set  {
				gtk_file_chooser_set_action(Handle, (int) value);
			}
		}

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

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

		[GLib.Property ("filter")]
		public Gtk.FileFilter Filter {
			get  {
				IntPtr raw_ret = gtk_file_chooser_get_filter(Handle);
				Gtk.FileFilter ret = GLib.Object.GetObject(raw_ret) as Gtk.FileFilter;
				return ret;
			}
			set  {
				gtk_file_chooser_set_filter(Handle, value == null ? IntPtr.Zero : value.Handle);
			}
		}

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

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

		[GLib.Property ("local-only")]
		public bool LocalOnly {
			get  {
				bool raw_ret = gtk_file_chooser_get_local_only(Handle);
				bool ret = raw_ret;
				return ret;
			}
			set  {
				gtk_file_chooser_set_local_only(Handle, value);
			}
		}

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

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

		[GLib.Property ("preview-widget")]
		public Gtk.Widget PreviewWidget {
			get  {
				IntPtr raw_ret = gtk_file_chooser_get_preview_widget(Handle);
				Gtk.Widget ret = GLib.Object.GetObject(raw_ret) as Gtk.Widget;
				return ret;
			}
			set  {
				gtk_file_chooser_set_preview_widget(Handle, value == null ? IntPtr.Zero : value.Handle);
			}
		}

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

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

		[GLib.Property ("preview-widget-active")]
		public bool PreviewWidgetActive {
			get  {
				bool raw_ret = gtk_file_chooser_get_preview_widget_active(Handle);
				bool ret = raw_ret;
				return ret;
			}
			set  {
				gtk_file_chooser_set_preview_widget_active(Handle, value);
			}
		}

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

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

		[GLib.Property ("use-preview-label")]
		public bool UsePreviewLabel {
			get  {
				bool raw_ret = gtk_file_chooser_get_use_preview_label(Handle);
				bool ret = raw_ret;
				return ret;
			}
			set  {
				gtk_file_chooser_set_use_preview_label(Handle, value);
			}
		}

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

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

		[GLib.Property ("extra-widget")]
		public Gtk.Widget ExtraWidget {
			get  {
				IntPtr raw_ret = gtk_file_chooser_get_extra_widget(Handle);
				Gtk.Widget ret = GLib.Object.GetObject(raw_ret) as Gtk.Widget;
				return ret;
			}
			set  {
				gtk_file_chooser_set_extra_widget(Handle, value == null ? IntPtr.Zero : value.Handle);
			}
		}

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

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

		[GLib.Property ("select-multiple")]
		public bool SelectMultiple {
			get  {
				bool raw_ret = gtk_file_chooser_get_select_multiple(Handle);
				bool ret = raw_ret;
				return ret;
			}
			set  {
				gtk_file_chooser_set_select_multiple(Handle, value);
			}
		}

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

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

		[GLib.Property ("show-hidden")]
		public bool ShowHidden {
			get  {
				bool raw_ret = gtk_file_chooser_get_show_hidden(Handle);
				bool ret = raw_ret;
				return ret;
			}
			set  {
				gtk_file_chooser_set_show_hidden(Handle, value);
			}
		}

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

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

		[GLib.Property ("do-overwrite-confirmation")]
		public bool DoOverwriteConfirmation {
			get  {
				bool raw_ret = gtk_file_chooser_get_do_overwrite_confirmation(Handle);
				bool ret = raw_ret;
				return ret;
			}
			set  {
				gtk_file_chooser_set_do_overwrite_confirmation(Handle, value);
			}
		}

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

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

		[GLib.Property ("create-folders")]
		public bool CreateFolders {
			get  {
				bool raw_ret = gtk_file_chooser_get_create_folders(Handle);
				bool ret = raw_ret;
				return ret;
			}
			set  {
				gtk_file_chooser_set_create_folders(Handle, value);
			}
		}

		[GLib.Signal("update-preview")]
		public event System.EventHandler UpdatePreview {
			add {
				this.AddSignalHandler ("update-preview", value);
			}
			remove {
				this.RemoveSignalHandler ("update-preview", value);
			}
		}

		[GLib.Signal("file-activated")]
		public event System.EventHandler FileActivated {
			add {
				this.AddSignalHandler ("file-activated", value);
			}
			remove {
				this.RemoveSignalHandler ("file-activated", value);
			}
		}

		[GLib.Signal("confirm-overwrite")]
		public event Gtk.ConfirmOverwriteHandler ConfirmOverwrite {
			add {
				this.AddSignalHandler ("confirm-overwrite", value, typeof (Gtk.ConfirmOverwriteArgs));
			}
			remove {
				this.RemoveSignalHandler ("confirm-overwrite", value);
			}
		}

		[GLib.Signal("current-folder-changed")]
		public event System.EventHandler CurrentFolderChanged {
			add {
				this.AddSignalHandler ("current-folder-changed", value);
			}
			remove {
				this.RemoveSignalHandler ("current-folder-changed", value);
			}
		}

		[GLib.Signal("selection-changed")]
		public event System.EventHandler SelectionChanged {
			add {
				this.AddSignalHandler ("selection-changed", value);
			}
			remove {
				this.RemoveSignalHandler ("selection-changed", value);
			}
		}

		static CurrentFolderChangedNativeDelegate CurrentFolderChanged_cb_delegate;
		static CurrentFolderChangedNativeDelegate CurrentFolderChangedVMCallback {
			get {
				if (CurrentFolderChanged_cb_delegate == null)
					CurrentFolderChanged_cb_delegate = new CurrentFolderChangedNativeDelegate (CurrentFolderChanged_cb);
				return CurrentFolderChanged_cb_delegate;
			}
		}

		static void OverrideCurrentFolderChanged (GLib.GType gtype)
		{
			OverrideCurrentFolderChanged (gtype, CurrentFolderChangedVMCallback);
		}

		static void OverrideCurrentFolderChanged (GLib.GType gtype, CurrentFolderChangedNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "current-folder-changed", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void CurrentFolderChangedNativeDelegate (IntPtr inst);

		static void CurrentFolderChanged_cb (IntPtr inst)
		{
			try {
				Gtk.FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as Gtk.FileChooserWidget;
				__obj.OnCurrentFolderChanged ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideCurrentFolderChanged")]
		protected virtual void OnCurrentFolderChanged ()
		{
			InternalCurrentFolderChanged ();
		}

		private void InternalCurrentFolderChanged ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static SelectionChangedNativeDelegate SelectionChanged_cb_delegate;
		static SelectionChangedNativeDelegate SelectionChangedVMCallback {
			get {
				if (SelectionChanged_cb_delegate == null)
					SelectionChanged_cb_delegate = new SelectionChangedNativeDelegate (SelectionChanged_cb);
				return SelectionChanged_cb_delegate;
			}
		}

		static void OverrideSelectionChanged (GLib.GType gtype)
		{
			OverrideSelectionChanged (gtype, SelectionChangedVMCallback);
		}

		static void OverrideSelectionChanged (GLib.GType gtype, SelectionChangedNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "selection-changed", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void SelectionChangedNativeDelegate (IntPtr inst);

		static void SelectionChanged_cb (IntPtr inst)
		{
			try {
				Gtk.FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as Gtk.FileChooserWidget;
				__obj.OnSelectionChanged ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideSelectionChanged")]
		protected virtual void OnSelectionChanged ()
		{
			InternalSelectionChanged ();
		}

		private void InternalSelectionChanged ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static UpdatePreviewNativeDelegate UpdatePreview_cb_delegate;
		static UpdatePreviewNativeDelegate UpdatePreviewVMCallback {
			get {
				if (UpdatePreview_cb_delegate == null)
					UpdatePreview_cb_delegate = new UpdatePreviewNativeDelegate (UpdatePreview_cb);
				return UpdatePreview_cb_delegate;
			}
		}

		static void OverrideUpdatePreview (GLib.GType gtype)
		{
			OverrideUpdatePreview (gtype, UpdatePreviewVMCallback);
		}

		static void OverrideUpdatePreview (GLib.GType gtype, UpdatePreviewNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "update-preview", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void UpdatePreviewNativeDelegate (IntPtr inst);

		static void UpdatePreview_cb (IntPtr inst)
		{
			try {
				Gtk.FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as Gtk.FileChooserWidget;
				__obj.OnUpdatePreview ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideUpdatePreview")]
		protected virtual void OnUpdatePreview ()
		{
			InternalUpdatePreview ();
		}

		private void InternalUpdatePreview ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static FileActivatedNativeDelegate FileActivated_cb_delegate;
		static FileActivatedNativeDelegate FileActivatedVMCallback {
			get {
				if (FileActivated_cb_delegate == null)
					FileActivated_cb_delegate = new FileActivatedNativeDelegate (FileActivated_cb);
				return FileActivated_cb_delegate;
			}
		}

		static void OverrideFileActivated (GLib.GType gtype)
		{
			OverrideFileActivated (gtype, FileActivatedVMCallback);
		}

		static void OverrideFileActivated (GLib.GType gtype, FileActivatedNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "file-activated", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void FileActivatedNativeDelegate (IntPtr inst);

		static void FileActivated_cb (IntPtr inst)
		{
			try {
				Gtk.FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as Gtk.FileChooserWidget;
				__obj.OnFileActivated ();
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, false);
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideFileActivated")]
		protected virtual void OnFileActivated ()
		{
			InternalFileActivated ();
		}

		private void InternalFileActivated ()
		{
			GLib.Value ret = GLib.Value.Empty;
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
		}

		static ConfirmOverwriteNativeDelegate ConfirmOverwrite_cb_delegate;
		static ConfirmOverwriteNativeDelegate ConfirmOverwriteVMCallback {
			get {
				if (ConfirmOverwrite_cb_delegate == null)
					ConfirmOverwrite_cb_delegate = new ConfirmOverwriteNativeDelegate (ConfirmOverwrite_cb);
				return ConfirmOverwrite_cb_delegate;
			}
		}

		static void OverrideConfirmOverwrite (GLib.GType gtype)
		{
			OverrideConfirmOverwrite (gtype, ConfirmOverwriteVMCallback);
		}

		static void OverrideConfirmOverwrite (GLib.GType gtype, ConfirmOverwriteNativeDelegate callback)
		{
			OverrideVirtualMethod (gtype, "confirm-overwrite", callback);
		}
		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int ConfirmOverwriteNativeDelegate (IntPtr inst);

		static int ConfirmOverwrite_cb (IntPtr inst)
		{
			try {
				Gtk.FileChooserWidget __obj = GLib.Object.GetObject (inst, false) as Gtk.FileChooserWidget;
				Gtk.FileChooserConfirmation __result;
				__result = __obj.OnConfirmOverwrite ();
				return (int) __result;
			} catch (Exception e) {
				GLib.ExceptionManager.RaiseUnhandledException (e, true);
				// NOTREACHED: above call does not return.
				throw;
			}
		}

		[GLib.DefaultSignalHandler(Type=typeof(Gtk.FileChooserWidget), ConnectionMethod="OverrideConfirmOverwrite")]
		protected virtual Gtk.FileChooserConfirmation OnConfirmOverwrite ()
		{
			return InternalConfirmOverwrite ();
		}

		private Gtk.FileChooserConfirmation InternalConfirmOverwrite ()
		{
			GLib.Value ret = new GLib.Value (Gtk.FileChooserConfirmationGType.GType);
			GLib.ValueArray inst_and_params = new GLib.ValueArray (1);
			GLib.Value[] vals = new GLib.Value [1];
			vals [0] = new GLib.Value (this);
			inst_and_params.Append (vals [0]);
			g_signal_chain_from_overridden (inst_and_params.ArrayPtr, ref ret);
			foreach (GLib.Value v in vals)
				v.Dispose ();
			Gtk.FileChooserConfirmation result = (Gtk.FileChooserConfirmation) (Enum) ret;
			ret.Dispose ();
			return result;
		}


		// Internal representation of the wrapped structure ABI.
		static GLib.AbiStruct _abi_info = null;
		static public unsafe new GLib.AbiStruct abi_info {
			get {
				if (_abi_info == null)
					_abi_info = new GLib.AbiStruct (new List<GLib.AbiField>{ 
						new GLib.AbiField("priv"
							, Gtk.Box.abi_info.Fields
							, (uint) sizeof( IntPtr ) // priv
							, null
							, null
							, (uint) sizeof(IntPtr)
							, 0
							),
					});

				return _abi_info;
			}
		}


		// End of the ABI representation.

#endregion
	}
}
