class Gtk::ColumnViewSorter

Overview

Sorts Gtk::ColumnView columns.

The sorter returned by Gtk::ColumnView#sorter is a Gtk::ColumnViewSorter.

In column views, sorting can be configured by associating sorters with columns, and users can invert sort order by clicking on column headers. The API of Gtk::ColumnViewSorter is designed to allow saving and restoring this configuration.

If you are only interested in the primary sort column (i.e. the column where a sort indicator is shown in the header), then you can just look at [property@Gtk.ColumnViewSorter:primary-sort-column] and [property@Gtk.ColumnViewSorter:primary-sort-order].

If you want to store the full sort configuration, including secondary sort columns that are used for tie breaking, then you can use Gtk::ColumnViewSorter#nth_sort_column. To get notified about changes, use Gtk::Sorter::#changed.

To restore a saved sort configuration on a Gtk::ColumnView, use code like:

sorter = gtk_column_view_get_sorter (view);
for (i = gtk_column_view_sorter_get_n_sort_columns (sorter) - 1; i >= 0; i--)
  {
    column = gtk_column_view_sorter_get_nth_sort_column (sorter, i, &order);
    gtk_column_view_sort_by_column (view, column, order);
  }

Defined in:

lib/gi-crystal/src/auto/gtk-4.0/column_view_sorter.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class Gtk::Sorter

==(other : self) ==, changed(change : Gtk::SorterChange) : Nil changed, changed_signal changed_signal, compare(item1 : GObject::Object, item2 : GObject::Object) : Gtk::Ordering compare, hash(hasher) hash, order : Gtk::SorterOrder order

Constructor methods inherited from class Gtk::Sorter

new new

Class methods inherited from class Gtk::Sorter

g_type : UInt64 g_type

Instance methods inherited from class GObject::Object

==(other : self) ==, bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding bind_property, bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding bind_property_full, data(key : String) : Pointer(Void) | Nil data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, hash(hasher) hash, notify(property_name : String) : Nil notify, notify_by_pspec(pspec : GObject::ParamSpec) : Nil notify_by_pspec, notify_signal notify_signal, property(property_name : String, value : _) : Nil property, qdata(quark : UInt32) : Pointer(Void) | Nil qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void) | Nil) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void) | Nil steal_data, steal_qdata(quark : UInt32) : Pointer(Void) | Nil steal_qdata, thaw_notify : Nil thaw_notify, to_unsafe : Pointer(Void) to_unsafe, watch_closure(closure : GObject::Closure) : Nil watch_closure

Constructor methods inherited from class GObject::Object

cast(obj : GObject::Object) : self cast, new(pointer : Pointer(Void), transfer : GICrystal::Transfer)
new
new
, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv

Class methods inherited from class GObject::Object

cast?(obj : GObject::Object) : self | Nil cast?, compat_control(what : UInt64, data : Pointer(Void) | Nil) : UInt64 compat_control, g_type : UInt64 g_type, interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec interface_find_property, interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec) interface_list_properties

Macros inherited from class GObject::Object

previous_vfunc(*args) previous_vfunc, previous_vfunc!(*args) previous_vfunc!, signal(signature) signal

Constructor Detail

def self.new #

Initialize a new ColumnViewSorter.


def self.new(*, primary_sort_column : Gtk::ColumnViewColumn | Nil = nil, primary_sort_order : Gtk::SortType | Nil = nil) #

Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def n_sort_columns : UInt32 #

Returns the number of columns by which the sorter sorts.

If the sorter of the primary sort column does not determine a total order, then the secondary sorters are consulted to break the ties.

Use the Gtk::Sorter::#changed signal to get notified when the number of sort columns changes.


def nth_sort_column(position : UInt32, sort_order : Gtk::SortType) : Gtk::ColumnViewColumn | Nil #

Gets the position'th sort column and its associated sort order.

Use the Gtk::Sorter::#changed signal to get notified when sort columns change.


def primary_sort_column : Gtk::ColumnViewColumn | Nil #

Returns the primary sort column.

The primary sort column is the one that displays the triangle in a column view header.


def primary_sort_order : Gtk::SortType #

Returns the primary sort order.

The primary sort order determines whether the triangle displayed in the column view header of the primary sort column points upwards or downwards.

If there is no primary sort column, then this function returns GTK_SORT_ASCENDING.