context: // This file was generated by the Gtk# code generator.
  // Any changes made will be lost if regenerated.
  
  namespace GLib {
  
  	using System;
  	using System.Collections;
  	using System.Collections.Generic;
  	using System.Runtime.InteropServices;
  
  #region Autogenerated code
  	public partial class FileInfo : GLib.Object {
  
  		public FileInfo (IntPtr raw) : base(raw) {}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr g_file_info_new();
  
  		public FileInfo () : base (IntPtr.Zero)
  		{
  			if (GetType () != typeof (FileInfo)) {
  				CreateNativeObject (new string [0], new GLib.Value[0]);
  				return;
  			}
  			Raw = g_file_info_new();
  		}
  
  		[StructLayout (LayoutKind.Sequential)]
  		struct GFileInfoClass {
  		}
  
  		static uint class_offset = ((GLib.GType) typeof (GLib.Object)).GetClassSize ();
  		static Dictionary<GLib.GType, GFileInfoClass> class_structs;
  
  		static GFileInfoClass GetClassStruct (GLib.GType gtype, bool use_cache)
  		{
  			if (class_structs == null)
  				class_structs = new Dictionary<GLib.GType, GFileInfoClass> ();
  
  			if (use_cache && class_structs.ContainsKey (gtype))
  				return class_structs [gtype];
  			else {
  				IntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset);
  				GFileInfoClass class_struct = (GFileInfoClass) Marshal.PtrToStructure (class_ptr, typeof (GFileInfoClass));
  				if (use_cache)
  					class_structs.Add (gtype, class_struct);
  				return class_struct;
  			}
  		}
  
  		static void OverrideClassStruct (GLib.GType gtype, GFileInfoClass class_struct)
  		{
  			IntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset);
  			Marshal.StructureToPtr (class_struct, class_ptr, false);
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void g_file_info_clear_status(IntPtr raw);
  
  		public void ClearStatus() {
  			g_file_info_clear_status(Handle);
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void g_file_info_copy_into(IntPtr raw, IntPtr dest_info);
  
  		public void CopyInto(GLib.FileInfo dest_info) {
  			g_file_info_copy_into(Handle, dest_info == null ? IntPtr.Zero : dest_info.Handle);
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr g_file_info_dup(IntPtr raw);
  
  		public GLib.FileInfo Dup() {
  			IntPtr raw_ret = g_file_info_dup(Handle);
  			GLib.FileInfo ret = GLib.Object.GetObject(raw_ret) as GLib.FileInfo;
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr g_file_info_get_attribute_as_string(IntPtr raw, IntPtr attribute);
  
  		public string GetAttributeAsString(string attribute) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			IntPtr raw_ret = g_file_info_get_attribute_as_string(Handle, native_attribute);
  			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
  			GLib.Marshaller.Free (native_attribute);
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool g_file_info_get_attribute_boolean(IntPtr raw, IntPtr attribute);
  
  		public bool GetAttributeBoolean(string attribute) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			bool raw_ret = g_file_info_get_attribute_boolean(Handle, native_attribute);
  			bool ret = raw_ret;
  			GLib.Marshaller.Free (native_attribute);
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr g_file_info_get_attribute_byte_string(IntPtr raw, IntPtr attribute);
  
  		public string GetAttributeByteString(string attribute) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			IntPtr raw_ret = g_file_info_get_attribute_byte_string(Handle, native_attribute);
  			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  			GLib.Marshaller.Free (native_attribute);
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool g_file_info_get_attribute_data(IntPtr raw, IntPtr attribute, out int type, IntPtr value_pp, out int status);
  
  		public bool GetAttributeData(string attribute, out GLib.FileAttributeType type, IntPtr value_pp, out GLib.FileAttributeStatus status) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			int native_type;
  			int native_status;
  			bool raw_ret = g_file_info_get_attribute_data(Handle, native_attribute, out native_type, value_pp, out native_status);
  			bool ret = raw_ret;
  			GLib.Marshaller.Free (native_attribute);
  			type = (GLib.FileAttributeType) native_type;
  			status = (GLib.FileAttributeStatus) native_status;
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern int g_file_info_get_attribute_int32(IntPtr raw, IntPtr attribute);
  
  		public int GetAttributeInt(string attribute) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			int raw_ret = g_file_info_get_attribute_int32(Handle, native_attribute);
  			int ret = raw_ret;
  			GLib.Marshaller.Free (native_attribute);
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern long g_file_info_get_attribute_int64(IntPtr raw, IntPtr attribute);
  
  		public long GetAttributeLong(string attribute) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			long raw_ret = g_file_info_get_attribute_int64(Handle, native_attribute);
  			long ret = raw_ret;
  			GLib.Marshaller.Free (native_attribute);
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr g_file_info_get_attribute_object(IntPtr raw, IntPtr attribute);
  
  		public GLib.Object GetAttributeObject(string attribute) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			IntPtr raw_ret = g_file_info_get_attribute_object(Handle, native_attribute);
  			GLib.Object ret = GLib.Object.GetObject (raw_ret);
  			GLib.Marshaller.Free (native_attribute);
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern int g_file_info_get_attribute_status(IntPtr raw, IntPtr attribute);
  
  		public GLib.FileAttributeStatus GetAttributeStatus(string attribute) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			int raw_ret = g_file_info_get_attribute_status(Handle, native_attribute);
  			GLib.FileAttributeStatus ret = (GLib.FileAttributeStatus) raw_ret;
  			GLib.Marshaller.Free (native_attribute);
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr g_file_info_get_attribute_string(IntPtr raw, IntPtr attribute);
  
  		public string GetAttributeString(string attribute) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			IntPtr raw_ret = g_file_info_get_attribute_string(Handle, native_attribute);
  			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  			GLib.Marshaller.Free (native_attribute);
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr g_file_info_get_attribute_stringv(IntPtr raw, IntPtr attribute);
  
  		public string GetAttributeStringv(string attribute) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			IntPtr raw_ret = g_file_info_get_attribute_stringv(Handle, native_attribute);
  			string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
  			GLib.Marshaller.Free (native_attribute);
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern int g_file_info_get_attribute_type(IntPtr raw, IntPtr attribute);
  
  		public GLib.FileAttributeType GetAttributeType(string attribute) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			int raw_ret = g_file_info_get_attribute_type(Handle, native_attribute);
  			GLib.FileAttributeType ret = (GLib.FileAttributeType) raw_ret;
  			GLib.Marshaller.Free (native_attribute);
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern uint g_file_info_get_attribute_uint32(IntPtr raw, IntPtr attribute);
  
  		public uint GetAttributeUInt(string attribute) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			uint raw_ret = g_file_info_get_attribute_uint32(Handle, native_attribute);
  			uint ret = raw_ret;
  			GLib.Marshaller.Free (native_attribute);
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern ulong g_file_info_get_attribute_uint64(IntPtr raw, IntPtr attribute);
  
  		public ulong GetAttributeULong(string attribute) {
  			IntPtr native_attribute = GLib.Marshaller.StringToPtrGStrdup (attribute);
  			ulong raw_ret = g_file_info_get_attribute_uint64(Handle, native_attribute);
  			ulong ret = raw_ret;
  			GLib.Marshaller.Free (native_attribute);
  			return ret;
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr g_file_info_get_content_type(IntPtr raw);
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void g_file_info_set_content_type(IntPtr raw, IntPtr content_type);
  
  		public string ContentType { 
  			get {
  				IntPtr raw_ret = g_file_info_get_content_type(Handle);
  				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  				return ret;
  			}
  			set {
  				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
  				g_file_info_set_content_type(Handle, native_value);
  				GLib.Marshaller.Free (native_value);
  			}
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr g_file_info_get_display_name(IntPtr raw);
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void g_file_info_set_display_name(IntPtr raw, IntPtr display_name);
  
  		public string DisplayName { 
  			get {
  				IntPtr raw_ret = g_file_info_get_display_name(Handle);
  				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  				return ret;
  			}
  			set {
  				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
  				g_file_info_set_display_name(Handle, native_value);
  				GLib.Marshaller.Free (native_value);
  			}
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr g_file_info_get_edit_name(IntPtr raw);
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void g_file_info_set_edit_name(IntPtr raw, IntPtr edit_name);
  
  		public string EditName { 
  			get {
  				IntPtr raw_ret = g_file_info_get_edit_name(Handle);
  				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  				return ret;
  			}
  			set {
  				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
  				g_file_info_set_edit_name(Handle, native_value);
  				GLib.Marshaller.Free (native_value);
  			}
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr g_file_info_get_etag(IntPtr raw);
  
  		public string Etag { 
  			get {
  				IntPtr raw_ret = g_file_info_get_etag(Handle);
  				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
  				return ret;
  			}
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern int g_file_info_get_file_type(IntPtr raw);
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void g_file_info_set_file_type(IntPtr raw, int type);
  
  		public GLib.FileType FileType { 
  			get {
  				int raw_ret = g_file_info_get_file_type(Handle);
  				GLib.FileType ret = (GLib.FileType) raw_ret;
  				return ret;
  			}
  			set {
  				g_file_info_set_file_type(Handle, (int) value);
  			}
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr g_file_info_get_icon(IntPtr raw);
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void g_file_info_set_icon(IntPtr raw, IntPtr icon);
  
  		public GLib.IIcon Icon { 
  			get {
  				IntPtr raw_ret = g_file_info_get_icon(Handle);
  				GLib.IIcon ret = GLib.IconAdapter.GetObject (raw_ret, false);
  				return ret;
  			}
  			set {
  				g_file_info_set_icon(Handle, value == null ? IntPtr.Zero : ((value is GLib.Object) ? (value as GLib.Object).Handle : (value as GLib.IconAdapter).Handle));
  			}
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool g_file_info_get_is_backup(IntPtr raw);
  
  		public bool IsBackup { 
  			get {
  				bool raw_ret = g_file_info_get_is_backup(Handle);
  				bool ret = raw_ret;
  				return ret;
  			}
  		}
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool g_file_info_get_is_hidden(IntPtr raw);
  
  		[DllImport("libgio-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void g_file_info_set_is_hidden(IntPtr raw, bool is_hidden);
  
  		public bool IsHidden { 
  			get {
  
gt: 				bool raw_ret = g_file_info_get_is_hidden(Handle);