// 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 PrintSettings : GLib.Object {

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

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

		public PrintSettings () : base (IntPtr.Zero)
		{
			if (GetType () != typeof (PrintSettings)) {
				CreateNativeObject (Array.Empty<string> (), Array.Empty<GLib.Value> ());
				return;
			}
			Raw = gtk_print_settings_new();
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gtk_print_settings_new_from_file(IntPtr file_name, out IntPtr error);
		static d_gtk_print_settings_new_from_file gtk_print_settings_new_from_file = FuncLoader.LoadFunction<d_gtk_print_settings_new_from_file>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_new_from_file"));

		public unsafe PrintSettings (string file_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_file_name = GLib.Marshaller.StringToFilenamePtr (file_name);
			IntPtr error = IntPtr.Zero;
			Raw = gtk_print_settings_new_from_file(native_file_name, out error);
			GLib.Marshaller.Free (native_file_name);
			if (error != IntPtr.Zero) throw new GLib.GException (error);
		}

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

		public PrintSettings (GLib.Variant variant) : base (IntPtr.Zero)
		{
			if (GetType () != typeof (PrintSettings)) {
				var vals = new List<GLib.Value> ();
				var names = new List<string> ();
				CreateNativeObject (names.ToArray (), vals.ToArray ());
				return;
			}
			Raw = gtk_print_settings_new_from_gvariant(variant == null ? IntPtr.Zero : variant.Handle);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gtk_print_settings_new_from_key_file(IntPtr key_file, IntPtr group_name, out IntPtr error);
		static d_gtk_print_settings_new_from_key_file gtk_print_settings_new_from_key_file = FuncLoader.LoadFunction<d_gtk_print_settings_new_from_key_file>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_new_from_key_file"));

		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);
		}


		// 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 (GLib.Object.class_abi.Fields);

				return _class_abi;
			}
		}


		// End of the ABI representation.

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

		public Gtk.PrintSettings Copy() {
			IntPtr raw_ret = gtk_print_settings_copy(Handle);
			Gtk.PrintSettings ret = GLib.Object.GetObject(raw_ret, true) as Gtk.PrintSettings;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_print_settings_foreach(IntPtr raw, GtkSharp.PrintSettingsFuncNative func, IntPtr user_data);
		static d_gtk_print_settings_foreach gtk_print_settings_foreach = FuncLoader.LoadFunction<d_gtk_print_settings_foreach>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_foreach"));

		public void Foreach(Gtk.PrintSettingsFunc func) {
			GtkSharp.PrintSettingsFuncWrapper func_wrapper = new GtkSharp.PrintSettingsFuncWrapper (func);
			gtk_print_settings_foreach(Handle, func_wrapper.NativeDelegate, IntPtr.Zero);
		}

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

		public string Get(string key) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			IntPtr raw_ret = gtk_print_settings_get(Handle, native_key);
			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
			GLib.Marshaller.Free (native_key);
			return ret;
		}

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

		public bool GetBool(string key) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			bool raw_ret = gtk_print_settings_get_bool(Handle, native_key);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_key);
			return ret;
		}

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

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

		public bool Collate { 
			get {
				bool raw_ret = gtk_print_settings_get_collate(Handle);
				bool ret = raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_collate(Handle, value);
			}
		}

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

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

		public string DefaultSource { 
			get {
				IntPtr raw_ret = gtk_print_settings_get_default_source(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
			set {
				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
				gtk_print_settings_set_default_source(Handle, native_value);
				GLib.Marshaller.Free (native_value);
			}
		}

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

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

		public string Dither { 
			get {
				IntPtr raw_ret = gtk_print_settings_get_dither(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
			set {
				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
				gtk_print_settings_set_dither(Handle, native_value);
				GLib.Marshaller.Free (native_value);
			}
		}

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

		public double GetDouble(string key) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			double raw_ret = gtk_print_settings_get_double(Handle, native_key);
			double ret = raw_ret;
			GLib.Marshaller.Free (native_key);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate double d_gtk_print_settings_get_double_with_default(IntPtr raw, IntPtr key, double def);
		static d_gtk_print_settings_get_double_with_default gtk_print_settings_get_double_with_default = FuncLoader.LoadFunction<d_gtk_print_settings_get_double_with_default>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_get_double_with_default"));

		public double GetDoubleWithDefault(string key, double def) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			double raw_ret = gtk_print_settings_get_double_with_default(Handle, native_key, def);
			double ret = raw_ret;
			GLib.Marshaller.Free (native_key);
			return ret;
		}

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

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

		public Gtk.PrintDuplex Duplex { 
			get {
				int raw_ret = gtk_print_settings_get_duplex(Handle);
				Gtk.PrintDuplex ret = (Gtk.PrintDuplex) raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_duplex(Handle, (int) value);
			}
		}

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

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

		public string Finishings { 
			get {
				IntPtr raw_ret = gtk_print_settings_get_finishings(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
			set {
				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
				gtk_print_settings_set_finishings(Handle, native_value);
				GLib.Marshaller.Free (native_value);
			}
		}

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

		public int GetInt(string key) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			int raw_ret = gtk_print_settings_get_int(Handle, native_key);
			int ret = raw_ret;
			GLib.Marshaller.Free (native_key);
			return ret;
		}

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

		public int GetIntWithDefault(string key, int def) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			int raw_ret = gtk_print_settings_get_int_with_default(Handle, native_key, def);
			int ret = raw_ret;
			GLib.Marshaller.Free (native_key);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate double d_gtk_print_settings_get_length(IntPtr raw, IntPtr key, int unit);
		static d_gtk_print_settings_get_length gtk_print_settings_get_length = FuncLoader.LoadFunction<d_gtk_print_settings_get_length>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_get_length"));

		public double GetLength(string key, Gtk.Unit unit) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			double raw_ret = gtk_print_settings_get_length(Handle, native_key, (int) unit);
			double ret = raw_ret;
			GLib.Marshaller.Free (native_key);
			return ret;
		}

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

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

		public string MediaType { 
			get {
				IntPtr raw_ret = gtk_print_settings_get_media_type(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
			set {
				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
				gtk_print_settings_set_media_type(Handle, native_value);
				GLib.Marshaller.Free (native_value);
			}
		}

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

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

		public int NCopies { 
			get {
				int raw_ret = gtk_print_settings_get_n_copies(Handle);
				int ret = raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_n_copies(Handle, value);
			}
		}

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

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

		public int NumberUp { 
			get {
				int raw_ret = gtk_print_settings_get_number_up(Handle);
				int ret = raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_number_up(Handle, value);
			}
		}

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

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

		public Gtk.NumberUpLayout NumberUpLayout { 
			get {
				int raw_ret = gtk_print_settings_get_number_up_layout(Handle);
				Gtk.NumberUpLayout ret = (Gtk.NumberUpLayout) raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_number_up_layout(Handle, (int) value);
			}
		}

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

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

		public Gtk.PageOrientation Orientation { 
			get {
				int raw_ret = gtk_print_settings_get_orientation(Handle);
				Gtk.PageOrientation ret = (Gtk.PageOrientation) raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_orientation(Handle, (int) value);
			}
		}

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

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

		public string OutputBin { 
			get {
				IntPtr raw_ret = gtk_print_settings_get_output_bin(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
			set {
				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
				gtk_print_settings_set_output_bin(Handle, native_value);
				GLib.Marshaller.Free (native_value);
			}
		}

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

		public Gtk.PageRange GetPageRanges(out int num_ranges) {
			IntPtr raw_ret = gtk_print_settings_get_page_ranges(Handle, out num_ranges);
			Gtk.PageRange ret = Gtk.PageRange.New (raw_ret);
			return ret;
		}

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

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

		public Gtk.PageSet PageSet { 
			get {
				int raw_ret = gtk_print_settings_get_page_set(Handle);
				Gtk.PageSet ret = (Gtk.PageSet) raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_page_set(Handle, (int) value);
			}
		}

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

		public double GetPaperHeight(Gtk.Unit unit) {
			double raw_ret = gtk_print_settings_get_paper_height(Handle, (int) unit);
			double ret = raw_ret;
			return ret;
		}

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

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

		public Gtk.PaperSize PaperSize { 
			get {
				IntPtr raw_ret = gtk_print_settings_get_paper_size(Handle);
				Gtk.PaperSize ret = raw_ret == IntPtr.Zero ? null : (Gtk.PaperSize) GLib.Opaque.GetOpaque (raw_ret, typeof (Gtk.PaperSize), false);
				return ret;
			}
			set {
				gtk_print_settings_set_paper_size(Handle, value == null ? IntPtr.Zero : value.Handle);
			}
		}

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

		public double GetPaperWidth(Gtk.Unit unit) {
			double raw_ret = gtk_print_settings_get_paper_width(Handle, (int) unit);
			double ret = raw_ret;
			return ret;
		}

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

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

		public Gtk.PrintPages PrintPages { 
			get {
				int raw_ret = gtk_print_settings_get_print_pages(Handle);
				Gtk.PrintPages ret = (Gtk.PrintPages) raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_print_pages(Handle, (int) value);
			}
		}

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

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

		public string Printer { 
			get {
				IntPtr raw_ret = gtk_print_settings_get_printer(Handle);
				string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
				return ret;
			}
			set {
				IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
				gtk_print_settings_set_printer(Handle, native_value);
				GLib.Marshaller.Free (native_value);
			}
		}

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

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

		public double PrinterLpi { 
			get {
				double raw_ret = gtk_print_settings_get_printer_lpi(Handle);
				double ret = raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_printer_lpi(Handle, value);
			}
		}

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

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

		public Gtk.PrintQuality Quality { 
			get {
				int raw_ret = gtk_print_settings_get_quality(Handle);
				Gtk.PrintQuality ret = (Gtk.PrintQuality) raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_quality(Handle, (int) value);
			}
		}

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

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

		public int Resolution { 
			get {
				int raw_ret = gtk_print_settings_get_resolution(Handle);
				int ret = raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_resolution(Handle, value);
			}
		}

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

		public int ResolutionX { 
			get {
				int raw_ret = gtk_print_settings_get_resolution_x(Handle);
				int ret = raw_ret;
				return ret;
			}
		}

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

		public int ResolutionY { 
			get {
				int raw_ret = gtk_print_settings_get_resolution_y(Handle);
				int ret = raw_ret;
				return ret;
			}
		}

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

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

		public bool Reverse { 
			get {
				bool raw_ret = gtk_print_settings_get_reverse(Handle);
				bool ret = raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_reverse(Handle, value);
			}
		}

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

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

		public double Scale { 
			get {
				double raw_ret = gtk_print_settings_get_scale(Handle);
				double ret = raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_scale(Handle, value);
			}
		}

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

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

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

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

		public bool UseColor { 
			get {
				bool raw_ret = gtk_print_settings_get_use_color(Handle);
				bool ret = raw_ret;
				return ret;
			}
			set {
				gtk_print_settings_set_use_color(Handle, value);
			}
		}

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

		public bool HasKey(string key) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			bool raw_ret = gtk_print_settings_has_key(Handle, native_key);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_key);
			return ret;
		}

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

		public unsafe bool LoadFile(string file_name) {
			IntPtr native_file_name = GLib.Marshaller.StringToPtrGStrdup (file_name);
			IntPtr error = IntPtr.Zero;
			bool raw_ret = gtk_print_settings_load_file(Handle, native_file_name, out error);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_file_name);
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

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

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

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

		public void Set(string key, string value) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
			gtk_print_settings_set(Handle, native_key, native_value);
			GLib.Marshaller.Free (native_key);
			GLib.Marshaller.Free (native_value);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_print_settings_set_bool(IntPtr raw, IntPtr key, bool value);
		static d_gtk_print_settings_set_bool gtk_print_settings_set_bool = FuncLoader.LoadFunction<d_gtk_print_settings_set_bool>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_set_bool"));

		public void SetBool(string key, bool value) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			gtk_print_settings_set_bool(Handle, native_key, value);
			GLib.Marshaller.Free (native_key);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_print_settings_set_double(IntPtr raw, IntPtr key, double value);
		static d_gtk_print_settings_set_double gtk_print_settings_set_double = FuncLoader.LoadFunction<d_gtk_print_settings_set_double>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_set_double"));

		public void SetDouble(string key, double value) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			gtk_print_settings_set_double(Handle, native_key, value);
			GLib.Marshaller.Free (native_key);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_print_settings_set_int(IntPtr raw, IntPtr key, int value);
		static d_gtk_print_settings_set_int gtk_print_settings_set_int = FuncLoader.LoadFunction<d_gtk_print_settings_set_int>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_set_int"));

		public void SetInt(string key, int value) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			gtk_print_settings_set_int(Handle, native_key, value);
			GLib.Marshaller.Free (native_key);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_print_settings_set_length(IntPtr raw, IntPtr key, double value, int unit);
		static d_gtk_print_settings_set_length gtk_print_settings_set_length = FuncLoader.LoadFunction<d_gtk_print_settings_set_length>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_set_length"));

		public void SetLength(string key, double value, Gtk.Unit unit) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			gtk_print_settings_set_length(Handle, native_key, value, (int) unit);
			GLib.Marshaller.Free (native_key);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_print_settings_set_page_ranges(IntPtr raw, IntPtr page_ranges, int num_ranges);
		static d_gtk_print_settings_set_page_ranges gtk_print_settings_set_page_ranges = FuncLoader.LoadFunction<d_gtk_print_settings_set_page_ranges>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_set_page_ranges"));

		public void SetPageRanges(Gtk.PageRange page_ranges, int num_ranges) {
			IntPtr native_page_ranges = GLib.Marshaller.StructureToPtrAlloc (page_ranges);
			gtk_print_settings_set_page_ranges(Handle, native_page_ranges, num_ranges);
			Marshal.FreeHGlobal (native_page_ranges);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_print_settings_set_paper_height(IntPtr raw, double height, int unit);
		static d_gtk_print_settings_set_paper_height gtk_print_settings_set_paper_height = FuncLoader.LoadFunction<d_gtk_print_settings_set_paper_height>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_set_paper_height"));

		public void SetPaperHeight(double height, Gtk.Unit unit) {
			gtk_print_settings_set_paper_height(Handle, height, (int) unit);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_print_settings_set_paper_width(IntPtr raw, double width, int unit);
		static d_gtk_print_settings_set_paper_width gtk_print_settings_set_paper_width = FuncLoader.LoadFunction<d_gtk_print_settings_set_paper_width>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_set_paper_width"));

		public void SetPaperWidth(double width, Gtk.Unit unit) {
			gtk_print_settings_set_paper_width(Handle, width, (int) unit);
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_print_settings_set_resolution_xy(IntPtr raw, int resolution_x, int resolution_y);
		static d_gtk_print_settings_set_resolution_xy gtk_print_settings_set_resolution_xy = FuncLoader.LoadFunction<d_gtk_print_settings_set_resolution_xy>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_print_settings_set_resolution_xy"));

		public void SetResolutionXy(int resolution_x, int resolution_y) {
			gtk_print_settings_set_resolution_xy(Handle, resolution_x, resolution_y);
		}

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

		public unsafe bool ToFile(string file_name) {
			IntPtr native_file_name = GLib.Marshaller.StringToFilenamePtr (file_name);
			IntPtr error = IntPtr.Zero;
			bool raw_ret = gtk_print_settings_to_file(Handle, native_file_name, out error);
			bool ret = raw_ret;
			GLib.Marshaller.Free (native_file_name);
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}

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

		public GLib.Variant ToGvariant() {
			IntPtr raw_ret = gtk_print_settings_to_gvariant(Handle);
			GLib.Variant ret = new GLib.Variant(raw_ret);
			return ret;
		}

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

		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);
		}

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

		public void Unset(string key) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			gtk_print_settings_unset(Handle, native_key);
			GLib.Marshaller.Free (native_key);
		}


		// 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 (GLib.Object.abi_info.Fields);

				return _abi_info;
			}
		}


		// End of the ABI representation.

#endregion
	}
}
