class Gtk::Filter


A Gtk::Filter object describes the filtering to be performed by a Gtk::FilterListModel.

The model will use the filter to determine if it should include items or not by calling Gtk::Filter#match for each item and only keeping the ones that the function returns true for.

Filters may change what items they match through their lifetime. In that case, they will emit the Gtk::Filter::#changed signal to notify that previous filter results are no longer valid and that items should be checked again via Gtk::Filter#match.

GTK provides various pre-made filter implementations for common filtering operations. These filters often include properties that can be linked to various widgets to easily allow searches.

However, in particular for large lists or complex search methods, it is also possible to subclass Gtk::Filter and provide one's own filter.

Direct Known Subclasses

Defined in:



Class Method Summary

Instance Method Summary

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)
, 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

def #

Initialize a new Filter.

Class Method Detail

def self.g_type : UInt64 #

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

Instance Method Detail

def changed(change : Gtk::FilterChange) : Nil #

Notifies all users of the filter that it has changed.

This emits the Gtk::Filter::#changed signal. Users of the filter should then check items again via Gtk::Filter#match.

Depending on the @change parameter, not all items need to be changed, but only some. Refer to the Gtk::FilterChange documentation for details.

This function is intended for implementors of Gtk::Filter subclasses and should not be called from other functions.

def changed_signal #

def match(item : GObject::Object) : Bool #

Checks if the given @item is matched by the filter or not.

def strictness : Gtk::FilterMatch #

Gets the known strictness of @filters.

If the strictness is not known, %GTK_FILTER_MATCH_SOME is returned.

This value may change after emission of the Gtk::Filter::#changed signal.

This function is meant purely for optimization purposes, filters can choose to omit implementing it, but Gtk::FilterListModel uses it.