public void ToKeyFile(GLib.KeyFile key_file, string group_name)
        {
            IntPtr native_group_name = GLib.Marshaller.StringToPtrGStrdup(group_name);

            gtk_print_settings_to_key_file(Handle, key_file == null ? IntPtr.Zero : key_file.Handle, native_group_name);
            GLib.Marshaller.Free(native_group_name);
        }
        public unsafe PaperSize(GLib.KeyFile key_file, string group_name)
        {
            IntPtr native_group_name = GLib.Marshaller.StringToPtrGStrdup(group_name);
            IntPtr error             = IntPtr.Zero;

            Raw = gtk_paper_size_new_from_key_file(key_file == null ? IntPtr.Zero : key_file.Handle, native_group_name, out error);
            GLib.Marshaller.Free(native_group_name);
            if (error != IntPtr.Zero)
            {
                throw new GLib.GException(error);
            }
        }
        public unsafe bool LoadKeyFile(GLib.KeyFile key_file, string group_name)
        {
            IntPtr native_group_name = GLib.Marshaller.StringToPtrGStrdup(group_name);
            IntPtr error             = IntPtr.Zero;
            bool   raw_ret           = gtk_print_settings_load_key_file(Handle, key_file == null ? IntPtr.Zero : key_file.Handle, native_group_name, out error);
            bool   ret = raw_ret;

            GLib.Marshaller.Free(native_group_name);
            if (error != IntPtr.Zero)
            {
                throw new GLib.GException(error);
            }
            return(ret);
        }
        public unsafe PrintSettings(GLib.KeyFile key_file, string group_name) : base(IntPtr.Zero)
        {
            if (GetType() != typeof(PrintSettings))
            {
                var vals  = new List <GLib.Value> ();
                var names = new List <string> ();
                CreateNativeObject(names.ToArray(), vals.ToArray());
                return;
            }
            IntPtr native_group_name = GLib.Marshaller.StringToPtrGStrdup(group_name);
            IntPtr error             = IntPtr.Zero;

            Raw = gtk_print_settings_new_from_key_file(key_file == null ? IntPtr.Zero : key_file.Handle, native_group_name, out error);
            GLib.Marshaller.Free(native_group_name);
            if (error != IntPtr.Zero)
            {
                throw new GLib.GException(error);
            }
        }
 AppConfiguration()
 {
     settings = (System.IO.File.Exists(fileName)) ?
                new GLib.KeyFile(fileName, GLib.KeyFileFlags.KeepComments) :
                new GLib.KeyFile();
 }