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

namespace Gtk {

	using System;

#region Autogenerated code
	public partial interface ITreeModel : GLib.IWrapper {

		event Gtk.RowInsertedHandler RowInserted;
		event Gtk.RowHasChildToggledHandler RowHasChildToggled;
		event Gtk.RowChangedHandler RowChanged;
		event Gtk.RowDeletedHandler RowDeleted;
		void Foreach(Gtk.TreeModelForeachFunc func);
		GLib.GType GetColumnType(int index_);
		Gtk.TreeModelFlags Flags { 
			get;
		}
		bool GetIter(out Gtk.TreeIter iter, Gtk.TreePath path);
		bool GetIterFirst(out Gtk.TreeIter iter);
		bool GetIterFromString(out Gtk.TreeIter iter, string path_string);
		int NColumns { 
			get;
		}
		Gtk.TreePath GetPath(Gtk.TreeIter iter);
		string GetStringFromIter(Gtk.TreeIter iter);
		void GetValist(Gtk.TreeIter iter, IntPtr var_args);
		void GetValue(Gtk.TreeIter iter, int column, ref GLib.Value value);
		bool IterChildren(out Gtk.TreeIter iter, Gtk.TreeIter parent);
		bool IterHasChild(Gtk.TreeIter iter);
		int IterNChildren(Gtk.TreeIter iter);
		bool IterNext(ref Gtk.TreeIter iter);
		bool IterNthChild(out Gtk.TreeIter iter, Gtk.TreeIter parent, int n);
		bool IterParent(out Gtk.TreeIter iter, Gtk.TreeIter child);
		bool IterPrevious(ref Gtk.TreeIter iter);
		void RefNode(Gtk.TreeIter iter);
		void EmitRowChanged(Gtk.TreePath path, Gtk.TreeIter iter);
		void EmitRowDeleted(Gtk.TreePath path);
		void EmitRowHasChildToggled(Gtk.TreePath path, Gtk.TreeIter iter);
		void EmitRowInserted(Gtk.TreePath path, Gtk.TreeIter iter);
		void EmitRowsReordered(Gtk.TreePath path, Gtk.TreeIter iter, int[] new_order);
		int RowsReorderedWithLength(Gtk.TreePath path, Gtk.TreeIter iter, int length);
		void UnrefNode(Gtk.TreeIter iter);
	}

	[GLib.GInterface (typeof (TreeModelAdapter))]
	public partial interface ITreeModelImplementor : GLib.IWrapper {

		Gtk.TreeModelFlags Flags { get; }
		int NColumns { get; }
		GLib.GType GetColumnType (int index_);
		bool GetIter (out Gtk.TreeIter iter, Gtk.TreePath path);
		Gtk.TreePath GetPath (Gtk.TreeIter iter);
		void GetValue (Gtk.TreeIter iter, int column, ref GLib.Value value);
		bool IterNext (ref Gtk.TreeIter iter);
		bool IterPrevious (ref Gtk.TreeIter iter);
		bool IterChildren (out Gtk.TreeIter iter, Gtk.TreeIter parent);
		bool IterHasChild (Gtk.TreeIter iter);
		int IterNChildren (Gtk.TreeIter iter);
		bool IterNthChild (out Gtk.TreeIter iter, Gtk.TreeIter parent, int n);
		bool IterParent (out Gtk.TreeIter iter, Gtk.TreeIter child);
		void RefNode (Gtk.TreeIter iter);
		void UnrefNode (Gtk.TreeIter iter);
	}
#endregion
}
