Spec-Zone.ru › GTK 4.0

GtkFilter

GtkFilter — Фильтрация элементов

Функции

gboolean gtk_filter_match ()
GtkFilterMatch gtk_filter_get_strictness ()
void gtk_filter_changed ()

Сигналы

void changed Run Last

Типы и значения

GtkFilter
перечисление GtkFilterMatch
перечисление GtkFilterChange

Иерархия объектов

    GObject
    ╰── GtkFilter
        ├── GtkMultiFilter
        ├── GtkBoolFilter
        ├── GtkCustomFilter
        ├── GtkFileFilter
        ╰── GtkStringFilter

Файлы заголовков

#include <gtk/gtk.h>

Описание

Объект GtkFilter описывает фильтрацию, выполняемую объектом GtkFilterListModel.

Модель будет использовать фильтр для определения, следует ли включать элементы или нет, вызывая gtk_filter_match() для каждого элемента и сохраняя только те, для которых функция возвращает TRUE.

Фильтры могут изменять сопоставляемые элементы в течение своего жизненного цикла. В этом случае они будут излучать сигнал «changed», чтобы уведомить о том, что предыдущие результаты фильтрации больше недействительны, и что элементы следует проверять снова с помощью gtk_filter_match().

GTK предоставляет различные готовые реализации фильтров для общих операций фильтрации. Эти фильтры часто включают свойства, которые могут быть связаны с различными виджетами, чтобы легко разрешить поиск.

Однако, особенно для больших списков или сложных методов поиска, также можно наследоваться от GtkFilter и предоставить свой собственный фильтр.

Функции

gtk_filter_match ()

gboolean
gtk_filter_match (GtkFilter *self,
                  gpointer item);

Проверяет, соответствует ли заданный item фильтру.

Параметры

self

объект GtkFilter

item

Элемент для проверки.

[type GObject][transfer none]

Возвращаемое значение

TRUE , если фильтр соответствует элементу, и модель фильтра должна его сохранить, FALSE , если нет.

gtk_filter_get_strictness ()

GtkFilterMatch
gtk_filter_get_strictness (GtkFilter *self);

Получает известную строгость filters. Если строгость неизвестна, возвращается GTK_FILTER_MATCH_SOME.

Это значение может измениться после излучения сигнала «changed».

Эта функция предназначена исключительно для оптимизации. Фильтры могут выбрать не реализовывать её, но GtkFilterListModel её использует.

Параметры

self

объект GtkFilter

Возвращаемое значение

строгость self

gtk_filter_changed ()

void
gtk_filter_changed (GtkFilter *self,
                    GtkFilterChange change);

Излучает сигнал «changed», чтобы уведомить всех пользователей фильтра о том, что фильтр изменился. Пользователи фильтра должны затем снова проверить элементы с помощью gtk_filter_match().

В зависимости от параметра change, не все элементы нужно изменять, а только некоторые. Обратитесь к документации GtkFilterChange для получения подробностей.

Эта функция предназначена для разработчиков подклассов GtkFilter и не должна вызываться из других функций.

Параметры

self

объект GtkFilter

change

Как изменился фильтр

Типы и значения

GtkFilter

typedef struct _GtkFilter GtkFilter;

Объект, описывающий фильтр.

перечисление GtkFilterMatch

Описывает известную строгость фильтра.

Обратите внимание, что для фильтров, где строгость неизвестна, GTK_FILTER_MATCH_SOME всегда является допустимым значением, даже если фильтр соответствует всем или ни одному элементу.

Элементы

GTK_FILTER_MATCH_SOME

Фильтр соответствует некоторым элементам, gtk_filter_match() может вернуть TRUE или FALSE

GTK_FILTER_MATCH_NONE

Фильтр не соответствует ни одному элементу, gtk_filter_match() всегда вернёт FALSE.

GTK_FILTER_MATCH_ALL

Фильтр соответствует всем элементам, gtk_filter_match() всегда вернёт TRUE.

перечисление GtkFilterChange

Подробно описывает изменения в фильтре и позволяет объектам, использующим фильтр, оптимизировать повторную фильтрацию элементов.

Если вы пишете реализацию и не уверены, какое значение передать, GTK_FILTER_CHANGE_DIFFERENT всегда является правильным выбором.

Элементы

GTK_FILTER_CHANGE_DIFFERENT

Изменение фильтра не может быть описано ни одним из других значений перечисления.

GTK_FILTER_CHANGE_LESS_STRICT

Фильтр менее строгий, чем раньше: Все элементы, для которых он раньше возвращал TRUE , по-прежнему возвращают TRUE, другие теперь тоже могут.

GTK_FILTER_CHANGE_MORE_STRICT

Фильтр более строгий, чем раньше: Все элементы, для которых он раньше возвращал FALSE , по-прежнему возвращают FALSE, другие теперь тоже могут.

Подробности сигнала

Сигнал “changed”

void
user_function (GtkFilter      *self,
               GtkFilterChange change,
               gpointer        user_data)

Этот сигнал генерируется всякий раз, когда фильтр изменяется. Пользователи фильтра должны повторно проверить элементы с помощью gtk_filter_match().

GtkFilterListModel обрабатывает этот сигнал автоматически.

В зависимости от параметра change, не все элементы должны быть изменены, а только некоторые. Подробности см. в документации GtkFilterChange.

Параметры

self

Фильтр GtkFilter

change

как изменился фильтр

user_data

данные пользователя, заданные при подключении обработчика сигнала.

Флаги: Выполнить последним

См. также

GtkFilterListModel

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkFilter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API