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

namespace Pango {

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

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

		[DllImport("libpango-1.0-0.dll")]
		static extern void pango_attr_list_insert(IntPtr raw, ref Pango.Attribute attr);

		public void Insert(Pango.Attribute attr) {
			pango_attr_list_insert(Handle, ref attr);
		}

		[DllImport("libpango-1.0-0.dll")]
		static extern void pango_attr_list_ref(IntPtr raw);

		public void Ref() {
			pango_attr_list_ref(Handle);
		}

		[DllImport("libpango-1.0-0.dll")]
		static extern void pango_attr_list_splice(IntPtr raw, IntPtr other, int pos, int len);

		public void Splice(Pango.AttrList other, int pos, int len) {
			pango_attr_list_splice(Handle, other.Handle, pos, len);
		}

		[DllImport("libpango-1.0-0.dll")]
		static extern void pango_attr_list_unref(IntPtr raw);

		public void Unref() {
			pango_attr_list_unref(Handle);
		}

		[DllImport("libpango-1.0-0.dll")]
		static extern void pango_attr_list_insert_before(IntPtr raw, ref Pango.Attribute attr);

		public void InsertBefore(Pango.Attribute attr) {
			pango_attr_list_insert_before(Handle, ref attr);
		}

		[DllImport("libpango-1.0-0.dll")]
		static extern IntPtr pango_attr_list_get_iterator(IntPtr raw);

		public Pango.AttrIterator Iterator { 
			get {
				IntPtr raw_ret = pango_attr_list_get_iterator(Handle);
				Pango.AttrIterator ret;
				if (raw_ret == IntPtr.Zero)
					ret = null;
				else
					ret = new Pango.AttrIterator(raw_ret);
				return ret;
			}
		}

		[DllImport("libpango-1.0-0.dll")]
		static extern IntPtr pango_attr_list_filter(IntPtr raw, PangoSharpPangoSharp.AttrFilterFuncNative func, IntPtr data);

		public Pango.AttrList Filter(Pango.AttrFilterFunc func) {
			PangoSharp.AttrFilterFuncWrapper func_wrapper = null;
			func_wrapper = new PangoSharp.AttrFilterFuncWrapper (func, this);
			IntPtr raw_ret = pango_attr_list_filter(Handle, func_wrapper.NativeDelegate, IntPtr.Zero);
			Pango.AttrList ret;
			if (raw_ret == IntPtr.Zero)
				ret = null;
			else
				ret = new Pango.AttrList(raw_ret);
			return ret;
		}

		[DllImport("libpango-1.0-0.dll")]
		static extern void pango_attr_list_change(IntPtr raw, ref Pango.Attribute attr);

		public void Change(Pango.Attribute attr) {
			pango_attr_list_change(Handle, ref attr);
		}

		[DllImport("libpango-1.0-0.dll")]
		static extern IntPtr pango_attr_list_get_type();

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

		[DllImport("libpango-1.0-0.dll")]
		static extern IntPtr pango_attr_list_copy(IntPtr raw);

		public Pango.AttrList Copy() {
			IntPtr raw_ret = pango_attr_list_copy(Handle);
			Pango.AttrList ret;
			if (raw_ret == IntPtr.Zero)
				ret = null;
			else
				ret = new Pango.AttrList(raw_ret);
			return ret;
		}

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

		[DllImport("libpango-1.0-0.dll")]
		static extern IntPtr pango_attr_list_new();

		public AttrList () 
		{
			Raw = pango_attr_list_new();
		}

#endregion
	}
}
