class Gtk::Sorter
- Gtk::Sorter
- GObject::Object
- Reference
- Object
Overview
Gtk::Sorter
is an object to describe sorting criteria.
Its primary user is Gtk::SortListModel
The model will use a sorter to determine the order in which
its items should appear by calling Gtk::Sorter#compare
for pairs of items.
Sorters may change their sorting behavior through their lifetime.
In that case, they will emit the Gtk::Sorter::#changed
signal
to notify that the sort order is no longer valid and should be updated
by calling gtk_sorter_compare() again.
GTK provides various pre-made sorter implementations for common sorting
operations. Gtk::ColumnView
has built-in support for sorting lists
via the Gtk::ColumnViewColumn#sorter
property, where the user can
change the sorting by clicking on list headers.
Of course, in particular for large lists, it is also possible to subclass
Gtk::Sorter
and provide one's own sorter.
Direct Known Subclasses
Defined in:
lib/gi-crystal/src/auto/gtk-4.0/sorter.crConstructors
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#changed(change : Gtk::SorterChange) : Nil
Notifies all users of the sorter that it has changed.
- #changed_signal
-
#compare(item1 : GObject::Object, item2 : GObject::Object) : Gtk::Ordering
Compares two given items according to the sort order implemented by the sorter.
-
#order : Gtk::SorterOrder
Gets the order that @self conforms to.
Instance methods inherited from class GObject::Object
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)?
data,
finalize
finalize,
freeze_notify : Nil
freeze_notify,
getv(names : Enumerable(String), values : Enumerable(_)) : Nil
getv,
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)?
qdata,
ref_count : UInt32
ref_count,
run_dispose : Nil
run_dispose,
set_data(key : String, data : Pointer(Void)?) : Nil
set_data,
set_property(property_name : String, value : _) : Nil
set_property,
steal_data(key : String) : Pointer(Void)?
steal_data,
steal_qdata(quark : UInt32) : Pointer(Void)?
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,
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
compat_control(what : UInt64, data : Pointer(Void)?) : 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
Constructor Detail
Class Method Detail
Instance Method Detail
Notifies all users of the sorter that it has changed.
This emits the Gtk::Sorter::#changed
signal. Users
of the sorter should then update the sort order via
Gtk::Sorter#compare
.
Depending on the @change parameter, it may be possible to
update the sort order without a full resorting. Refer to
the Gtk::SorterChange
documentation for details.
This function is intended for implementors of Gtk::Sorter
subclasses and should not be called from other functions.
Compares two given items according to the sort order implemented by the sorter.
Sorters implement a partial order:
- It is reflexive, ie a = a
- It is antisymmetric, ie if a < b and b < a, then a = b
- It is transitive, ie given any 3 items with a ≤ b and b ≤ c, then a ≤ c
The sorter may signal it conforms to additional constraints
via the return value of Gtk::Sorter#order
.
Gets the order that @self conforms to.
See Gtk::SorterOrder
for details
of the possible return values.
This function is intended to allow optimizations.