// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.

namespace Poppler {

	using System;
	using System.Collections;
	using System.Runtime.InteropServices;

#region Autogenerated code
	public class FontsIter : GLib.Opaque {

		[DllImport("poppler-glib")]
		static extern IntPtr poppler_fonts_iter_get_name(IntPtr raw);

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

		[DllImport("poppler-glib")]
		static extern bool poppler_fonts_iter_is_embedded(IntPtr raw);

		public bool IsEmbedded { 
			get {
				bool raw_ret = poppler_fonts_iter_is_embedded(Handle);
				bool ret = raw_ret;
				return ret;
			}
		}

		[DllImport("poppler-glib")]
		static extern int poppler_fonts_iter_get_font_type(IntPtr raw);

		public Poppler.FontType FontType { 
			get {
				int raw_ret = poppler_fonts_iter_get_font_type(Handle);
				Poppler.FontType ret = (Poppler.FontType) raw_ret;
				return ret;
			}
		}

		[DllImport("poppler-glib")]
		static extern bool poppler_fonts_iter_is_subset(IntPtr raw);

		public bool IsSubset { 
			get {
				bool raw_ret = poppler_fonts_iter_is_subset(Handle);
				bool ret = raw_ret;
				return ret;
			}
		}

		[DllImport("poppler-glib")]
		static extern bool poppler_fonts_iter_next(IntPtr raw);

		public bool Next() {
			bool raw_ret = poppler_fonts_iter_next(Handle);
			bool ret = raw_ret;
			return ret;
		}

		[DllImport("poppler-glib")]
		static extern IntPtr poppler_fonts_iter_get_full_name(IntPtr raw);

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

		[DllImport("poppler-glib")]
		static extern IntPtr poppler_fonts_iter_get_file_name(IntPtr raw);

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

		[DllImport("poppler-glib")]
		static extern IntPtr poppler_fonts_iter_get_type();

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

		[DllImport("poppler-glib")]
		static extern IntPtr poppler_fonts_iter_copy(IntPtr raw);

		public Poppler.FontsIter Copy() {
			IntPtr raw_ret = poppler_fonts_iter_copy(Handle);
			Poppler.FontsIter ret = raw_ret == IntPtr.Zero ? null : (Poppler.FontsIter) GLib.Opaque.GetOpaque (raw_ret, typeof (Poppler.FontsIter), true);
			return ret;
		}

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

		[DllImport("poppler-glib")]
		static extern void poppler_fonts_iter_free(IntPtr raw);

		protected override void Free (IntPtr raw)
		{
			poppler_fonts_iter_free (raw);
		}

		class FinalizerInfo {
			IntPtr handle;

			public FinalizerInfo (IntPtr handle)
			{
				this.handle = handle;
			}

			public bool Handler ()
			{
				poppler_fonts_iter_free (handle);
				return false;
			}
		}

		~FontsIter ()
		{
			if (!Owned)
				return;
			FinalizerInfo info = new FinalizerInfo (Handle);
			GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler));
		}

#endregion
	}
}
