Class Filter

All Implemented Interfaces:
PointerInterface
Direct Known Subclasses:
BoolFilter, CustomFilter, FileFilter, MultiFilter, StringFilter

public class Filter extends Object
A `GtkFilter` object describes the filtering to be performed by a
[class@Gtk.FilterListModel].

The model will use the filter to determine if it should include items
or not by calling [method@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 [signal@Gtk.Filter::changed] signal to notify
that previous filter results are no longer valid and that items should
be checked again via [method@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 `GtkFilter` and provide one's own filter.

https://docs.gtk.org/gtk4/class.Filter.html

  • Field Details

  • Constructor Details

  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • changed

      public void changed(int change)
      Notifies all users of the filter that it has changed.

      This emits the [signal@Gtk.Filter::changed] signal. Users
      of the filter should then check items again via
      [method@Gtk.Filter.match].

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

      This function is intended for implementors of `GtkFilter`
      subclasses and should not be called from other functions.
      Parameters:
      change - How the filter changed
    • getStrictness

      public int getStrictness()
      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 [signal@Gtk.Filter::changed]
      signal.

      This function is meant purely for optimization purposes, filters can
      choose to omit implementing it, but `GtkFilterListModel` uses it.
      Returns:
      the strictness of @self
    • match

      public boolean match(@Nonnull Pointer item)
      Checks if the given @item is matched by the filter or not.
      Parameters:
      item - The item to check
      Returns:
      %TRUE if the filter matches the item and a filter model should keep it, %FALSE if not.
    • onChanged

      public SignalHandler onChanged(Filter.OnChanged signal)
      Connect to signal "changed".
      See Filter.OnChanged.onChanged(int) for signal description.
      Field SIGNAL_ON_CHANGED contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()