<!-- ##### SECTION Title ##### -->
GtkTreeSortable

<!-- ##### SECTION Short_Description ##### -->
The interface for sortable models used by GtkTreeView

<!-- ##### SECTION Long_Description ##### -->
<para>
#GtkTreeSortable is an interface to be implemented by tree models which
support sorting. The #GtkTreeView uses the methods provided by this interface
to sort the model.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>
#GtkTreeModel, #GtkTreeView
</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### STRUCT GtkTreeSortable ##### -->
<para>

</para>


<!-- ##### SIGNAL GtkTreeSortable::sort-column-changed ##### -->
<para>

</para>

@treesortable: the object which received the signal.

<!-- ##### STRUCT GtkTreeSortableIface ##### -->
<para>

</para>

@g_iface: 
@sort_column_changed: 
@get_sort_column_id: 
@set_sort_column_id: 
@set_sort_func: 
@set_default_sort_func: 
@has_default_sort_func: 

<!-- ##### USER_FUNCTION GtkTreeIterCompareFunc ##### -->
<para>
A GtkTreeIterCompareFunc should return a negative integer, zero, or a positive
integer if @a sorts before @b, @a sorts with @b, or @a sorts after @b
respectively. If two iters compare as equal, their order in the sorted model 
is undefined. In order to ensure that the #GtkTreeSortable behaves as 
expected, the GtkTreeIterCompareFunc must define a partial order on 
the model, i.e. it must be reflexive, antisymmetric and transitive.
</para>
<para>
For example, if @model is a product catalogue, then a compare function
for the "price" column could be one which returns 
<literal>price_of(@a) - price_of(@b)</literal>.
</para>

@model: The #GtkTreeModel the comparison is within
@a: A #GtkTreeIter in @model
@b: Another #GtkTreeIter in @model
@user_data: Data passed when the compare func is assigned e.g. by
gtk_tree_sortable_set_sort_func()
@Returns: a negative integer, zero or a positive integer depending on whether
    @a sorts before, with or after @b


<!-- ##### FUNCTION gtk_tree_sortable_sort_column_changed ##### -->
<para>

</para>

@sortable: 


<!-- ##### FUNCTION gtk_tree_sortable_get_sort_column_id ##### -->
<para>

</para>

@sortable: 
@sort_column_id: 
@order: 
@Returns: 


<!-- ##### FUNCTION gtk_tree_sortable_set_sort_column_id ##### -->
<para>

</para>

@sortable: 
@sort_column_id: 
@order: 


<!-- ##### FUNCTION gtk_tree_sortable_set_sort_func ##### -->
<para>

</para>

@sortable: 
@sort_column_id: 
@sort_func: 
@user_data: 
@destroy: 


<!-- ##### FUNCTION gtk_tree_sortable_set_default_sort_func ##### -->
<para>

</para>

@sortable: 
@sort_func: 
@user_data: 
@destroy: 


<!-- ##### FUNCTION gtk_tree_sortable_has_default_sort_func ##### -->
<para>

</para>

@sortable: 
@Returns: 


