## GtkMultiSorter GtkMultiSorter — Combining multiple sorters |

## Functions

GtkMultiSorter * | gtk_multi_sorter_new ()
void | gtk_multi_sorter_append ()
void | gtk_multi_sorter_remove ()

## Types and Values

| GtkMultiSorter

## Object Hierarchy

        GObject
        ╰── GtkSorter
            ╰── GtkMultiSorter

## Implemented Interfaces

GtkMultiSorter implements GListModel and GtkBuildable.

## Includes

    #include <gtk/gtk.h>

## Description

GtkMultiSorter combines multiple sorters by trying them in turn. If the first sorter compares two items as equal, the second is tried next, and so on.

## Functions

### gtk_multi_sorter_new ()

    GtkMultiSorter *
    gtk_multi_sorter_new (void);

Creates a new multi sorter.

This sorter compares items by trying each of the sorters in turn, until one returns non-zero. In particular, if no sorter has been added to it, it will always compare items as equal.

#### Returns

a new GtkMultiSorter

### gtk_multi_sorter_append ()

    void
    gtk_multi_sorter_append (GtkMultiSorter *self,
                             GtkSorter *sorter);

Add `sorter` to `self` to use for sorting at the end. `self` will consult all existing sorters before it will sort with the given `sorter` .

#### Parameters

self | a GtkMultiSorter |
sorter | a sorter to add. | [transfer full]

### gtk_multi_sorter_remove ()

    void
    gtk_multi_sorter_remove (GtkMultiSorter *self,
                             guint position);

Removes the sorter at the given `position` from the list of sorter used by `self` .

If `position` is larger than the number of sorters, nothing happens.

#### Parameters

self | a GtkMultiSorter |
position | position of sorter to remove |

## Types and Values

### GtkMultiSorter

    typedef struct _GtkMultiSorter GtkMultiSorter;