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
-
#==(other : self)
Returns
true
if this reference is the same as other. -
#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.
-
#hash(hasher)
See
Object#hash(hasher)
-
#order : Gtk::SorterOrder
Gets the order that self conforms to.
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
Class Method Detail
Returns the type id (GType) registered in GLib type system.
Instance Method Detail
Returns true
if this reference is the same as other. Invokes same?
.
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.