Spec-Zone.ru › GTK 3.24

GtkListBox

GtkListBox — Контейнер списка

Функции

gboolean (*GtkListBoxFilterFunc) ()
gint (*GtkListBoxSortFunc) ()
void (*GtkListBoxUpdateHeaderFunc) ()
GtkWidget * gtk_list_box_new ()
void gtk_list_box_prepend ()
void gtk_list_box_insert ()
void gtk_list_box_select_row ()
void gtk_list_box_unselect_row ()
void gtk_list_box_select_all ()
void gtk_list_box_unselect_all ()
GtkListBoxRow * gtk_list_box_get_selected_row ()
void (*GtkListBoxForeachFunc) ()
void gtk_list_box_selected_foreach ()
GList * gtk_list_box_get_selected_rows ()
void gtk_list_box_set_selection_mode ()
GtkSelectionMode gtk_list_box_get_selection_mode ()
void gtk_list_box_set_activate_on_single_click ()
gboolean gtk_list_box_get_activate_on_single_click ()
GtkAdjustment * gtk_list_box_get_adjustment ()
void gtk_list_box_set_adjustment ()
void gtk_list_box_set_placeholder ()
GtkListBoxRow * gtk_list_box_get_row_at_index ()
GtkListBoxRow * gtk_list_box_get_row_at_y ()
void gtk_list_box_invalidate_filter ()
void gtk_list_box_invalidate_headers ()
void gtk_list_box_invalidate_sort ()
void gtk_list_box_set_filter_func ()
void gtk_list_box_set_header_func ()
void gtk_list_box_set_sort_func ()
void gtk_list_box_drag_highlight_row ()
void gtk_list_box_drag_unhighlight_row ()
GtkWidget * (*GtkListBoxCreateWidgetFunc) ()
void gtk_list_box_bind_model ()
GtkWidget * gtk_list_box_row_new ()
void gtk_list_box_row_changed ()
gboolean gtk_list_box_row_is_selected ()
GtkWidget * gtk_list_box_row_get_header ()
void gtk_list_box_row_set_header ()
gint gtk_list_box_row_get_index ()
void gtk_list_box_row_set_activatable ()
gboolean gtk_list_box_row_get_activatable ()
void gtk_list_box_row_set_selectable ()
gboolean gtk_list_box_row_get_selectable ()

Свойства

gboolean активировать-при-одиночном-щелчке Чтение / Запись
GtkSelectionMode режим-выбора Чтение / Запись
gboolean активируемый Чтение / Запись
gboolean выбираемый Чтение / Запись

Сигналы

void активировать-строку-курсора Действие
void переместить-курсор Действие
void строка-активирована Выполнить последним
void строка-выбрана Выполнить последним
void выбрать-все Действие
void изменены-выбранные-строки Выполнить первым
void переключить-строку-курсора Действие
void отменить-выбор-всех Действие
void активировать Действие

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

struct GtkListBox
struct GtkListBoxClass
struct GtkListBoxRow
struct GtkListBoxRowClass

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

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ├── GtkBin
                │   ╰── GtkListBoxRow
                ╰── GtkListBox

Реализованные интерфейсы

GtkListBox реализует AtkImplementorIface и GtkBuildable.

GtkListBoxRow реализует AtkImplementorIface, GtkBuildable и GtkActionable.

Файлы

#include <gtk/gtk.h>

Описание

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

Использование GtkListBox часто является альтернативой GtkTreeView, особенно когда содержимое списка имеет более сложную структуру, чем та, что допускается GtkCellRenderer, или когда содержимое является интерактивным (т.е. содержит кнопку).

Хотя GtkListBox должен содержать только элементы GtkListBoxRow, вы можете добавить любой виджет с помощью gtk_container_add(), и элемент GtkListBoxRow будет автоматически вставлен между списком и виджетом.

Элементы GtkListBoxRow можно пометить как активируемые или выбираемые. Если строка активируемая, сигнал “строка-активирована” будет выпущен для нее, когда пользователь пытается ее активировать. Если она выбираемая, строка будет помечена как выбранная, когда пользователь пытается ее выбрать.

Виджет GtkListBox был добавлен в GTK+ 3.10.

GtkListBox как GtkBuildable

Реализация GtkListBox интерфейса GtkBuildable поддерживает установку дочернего элемента в качестве местазаполнителя путём указания “placeholder” в качестве атрибута “type” элемента <child>. См. gtk_list_box_set_placeholder() для информации.

Узлы CSS

list
╰── row[.activatable]

GtkListBox использует один узел CSS с именем list. Каждый GtkListBoxRow использует один узел CSS с именем row. К узлам row добавляется класс стиля .activatable при необходимости.

Функции

GtkListBoxFilterFunc ()

gboolean
(*GtkListBoxFilterFunc) (GtkListBoxRow *row,
                         gpointer user_data);

Вызывается всякий раз, когда меняется строка или она добавляется, позволяя контролировать, должна ли строка отображаться.

Параметры

строка

строка, которая может быть отфильтрована

user_data

данные пользователя.

[closure]

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

TRUE , если строка должна отображаться, FALSE в противном случае

С версии: 3.10

GtkListBoxSortFunc ()

gint
(*GtkListBoxSortFunc) (GtkListBoxRow *row1,
                       GtkListBoxRow *row2,
                       gpointer user_data);

Сравнивает две строки, чтобы определить, какая должна стоять первой.

Параметры

строка1

первая строка

строка2

вторая строка

user_data

данные пользователя.

[closure]

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

< 0, если row1 должна стоять перед row2, 0, если они равны, и > 0 в противном случае

С версии: 3.10

GtkListBoxUpdateHeaderFunc ()

void
(*GtkListBoxUpdateHeaderFunc) (GtkListBoxRow *row,
                               GtkListBoxRow *before,
                               gpointer user_data);

Вызывается всякий раз, когда меняется row или меняется порядок строк, позволяя обновить заголовок в row. Можно удалить или установить новый заголовок с помощью gtk_list_box_row_set_header() или просто изменить состояние текущего виджета заголовка.

Параметры

строка

строка для обновления

перед

строка перед row или NULL, если это первая строка.

[allow-none]

user_data

данные пользователя.

[closure]

С версии: 3.10

gtk_list_box_new ()

GtkWidget *
gtk_list_box_new (void);

Создаёт новый контейнер GtkListBox.

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

новый GtkListBox

С версии: 3.10

gtk_list_box_prepend ()

void
gtk_list_box_prepend (GtkListBox *box,
                      GtkWidget *child);

Добавляет виджет в начало списка. Если задана функция сортировки, виджет будет фактически вставлен в рассчитанную позицию, и эта функция имеет тот же эффект, что и gtk_container_add().

Параметры

box

объект GtkListBox

child

виджет GtkWidget для добавления

С версии: 3.10

gtk_list_box_insert ()

void
gtk_list_box_insert (GtkListBox *box,
                     GtkWidget *child,
                     gint position);

Вставляет child в box на позиции position. Если задана функция сортировки, виджет будет фактически вставлен в рассчитанную позицию, и эта функция имеет тот же эффект, что и gtk_container_add().

Если position равно -1 или больше, чем общее количество элементов в box, то child будет добавлен в конец.

Параметры

box

объект GtkListBox

child

виджет GtkWidget для добавления

позиция

позиция для вставки child

С версии: 3.10

gtk_list_box_select_row ()

void
gtk_list_box_select_row (GtkListBox *box,
                         GtkListBoxRow *row);

Устанавливает row в качестве выделенной строки.

Параметры

box

объект GtkListBox

строка

выделяемая строка или NULL.

[allow-none]

С версии: 3.10

gtk_list_box_unselect_row ()

void
gtk_list_box_unselect_row (GtkListBox *box,
                           GtkListBoxRow *row);

Снимает выделение с единственной строки box, если режим выделения позволяет это.

Параметры

box

объект GtkListBox

строка

строка, с которой нужно снять выделение

С версии: 3.14

gtk_list_box_select_all ()

void
gtk_list_box_select_all (GtkListBox *box);

Выделяет все дочерние элементы box, если режим выделения позволяет это.

Параметры

box

объект GtkListBox

С версии: 3.14

gtk_list_box_unselect_all ()

void
gtk_list_box_unselect_all (GtkListBox *box);

Снимает выделение со всех дочерних элементов box, если режим выделения позволяет это.

Параметры

box

объект GtkListBox

С версии: 3.14

gtk_list_box_get_selected_row ()

GtkListBoxRow *
gtk_list_box_get_selected_row (GtkListBox *box);

Получает выбранную строку.

Обратите внимание, что список может допускать множественный выбор, в этом случае вам следует использовать gtk_list_box_selected_foreach() для поиска всех выбранных строк.

Параметры

box

a GtkListBox

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

выбранная строка.

[transfer none]

С: 3.10

GtkListBoxForeachFunc ()

void
(*GtkListBoxForeachFunc) (GtkListBox *box,
                          GtkListBoxRow *row,
                          gpointer user_data);

Функция, используемая gtk_list_box_selected_foreach(). Она будет вызываться для каждого выбранного дочернего элемента box.

Параметры

box

a GtkListBox

row

a GtkListBoxRow

user_data

пользовательские данные.

[closure]

С: 3.14

gtk_list_box_selected_foreach ()

void
gtk_list_box_selected_foreach (GtkListBox *box,
                               GtkListBoxForeachFunc func,
                               gpointer data);

Вызывает функцию для каждого выбранного дочернего элемента.

Обратите внимание, что выбор внутри этой функции изменить нельзя.

Параметры

box

a GtkListBox

func

функция, вызываемая для каждого выбранного дочернего элемента.

[scope call]

data

пользовательские данные, передаваемые функции

С: 3.14

gtk_list_box_get_selected_rows ()

GList *
gtk_list_box_get_selected_rows (GtkListBox *box);

Создаёт список всех выбранных дочерних элементов.

Параметры

box

a GtkListBox

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

A GList содержащий GtkWidget каждого выбранного дочернего элемента. Освободите с помощью g_list_free() по завершении.

[element-type GtkListBoxRow][transfer container]

С: 3.14

gtk_list_box_set_selection_mode ()

void
gtk_list_box_set_selection_mode (GtkListBox *box,
                                 GtkSelectionMode mode);

Устанавливает режим работы выбора в списке. Подробности см. в GtkSelectionMode.

Параметры

box

a GtkListBox

mode

The GtkSelectionMode

С: 3.10

gtk_list_box_get_selection_mode ()

GtkSelectionMode
gtk_list_box_get_selection_mode (GtkListBox *box);

Получает режим выбора списка.

Параметры

box

a GtkListBox

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

a GtkSelectionMode

С: 3.10

gtk_list_box_set_activate_on_single_click ()

void
gtk_list_box_set_activate_on_single_click
                               (GtkListBox *box,
                                gboolean single);

Если single равно TRUE, строки будут активироваться при нажатии, иначе требуется двойной щелчок.

Параметры

box

a GtkListBox

single

boolean

С: 3.10

gtk_list_box_get_activate_on_single_click ()

gboolean
gtk_list_box_get_activate_on_single_click
                               (GtkListBox *box);

Возвращает, активируются ли строки при одиночном щелчке.

Параметры

box

a GtkListBox

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

TRUE если строки активируются при одиночном щелчке, FALSE в противном случае

С: 3.10

gtk_list_box_get_adjustment ()

GtkAdjustment *
gtk_list_box_get_adjustment (GtkListBox *box);

Получает настройку (если есть), используемую виджетом для вертикальной прокрутки.

Параметры

box

a GtkListBox

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

настройка.

[transfer none]

С: 3.10

gtk_list_box_set_adjustment ()

void
gtk_list_box_set_adjustment (GtkListBox *box,
                             GtkAdjustment *adjustment);

Устанавливает настройку (если есть), используемую виджетом для вертикальной прокрутки. Например, это используется для получения размера страницы для обработки клавиш PageUp/Down.

В нормальном случае, когда box упакован внутри GtkScrolledWindow, настройка из неё будет автоматически получена, поэтому нет необходимости делать это вручную.

Параметры

box

a GtkListBox

adjustment

настройка или NULL.

[allow-none]

С: 3.10

gtk_list_box_set_placeholder ()

void
gtk_list_box_set_placeholder (GtkListBox *box,
                              GtkWidget *placeholder);

Устанавливает виджет-заполнитель, который отображается в списке, когда он не отображает видимых дочерних элементов.

Параметры

box

a GtkListBox

placeholder

a GtkWidget или NULL.

[allow-none]

С: 3.10

gtk_list_box_get_row_at_index ()

GtkListBoxRow *
gtk_list_box_get_row_at_index (GtkListBox *box,
                               gint index_);

Возвращает n-ый дочерний элемент в списке (не считая заголовков). Если _index отрицательное или больше, чем количество элементов в списке, возвращается NULL.

Параметры

box

a GtkListBox

index_

индекс строки

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

дочерний GtkWidget или NULL.

[transfer none][nullable]

С: 3.10

gtk_list_box_get_row_at_y ()

GtkListBoxRow *
gtk_list_box_get_row_at_y (GtkListBox *box,
                           gint y);

Возвращает строку по позиции y.

Параметры

box

a GtkListBox

y

позиция

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

строку или NULL в случае, если для данной координаты y нет строки.

[transfer none][nullable]

С: 3.10

gtk_list_box_invalidate_filter ()

void
gtk_list_box_invalidate_filter (GtkListBox *box);

Обновляет фильтрацию всех строк. Вызывайте эту функцию, когда результат функции фильтрации по box изменяется по внешним причинам. Например, это используется, если функция фильтрации просто ищет определённую строку поиска, и запись со строкой поиска изменилась.

Параметры

box

a GtkListBox

С: 3.10

gtk_list_box_invalidate_headers ()

void
gtk_list_box_invalidate_headers (GtkListBox *box);

Обновляет разделители для всех строк. Вызывайте эту функцию, когда результат функции заголовка по box изменяется по внешним причинам.

Параметры

box

a GtkListBox

С: 3.10

gtk_list_box_invalidate_sort ()

void
gtk_list_box_invalidate_sort (GtkListBox *box);

Обновляет сортировку всех строк. Вызывайте эту функцию, когда результат функции сортировки по box изменяется по внешним причинам.

Параметры

box

a GtkListBox

С: 3.10

gtk_list_box_set_filter_func ()

void
gtk_list_box_set_filter_func (GtkListBox *box,
                              GtkListBoxFilterFunc filter_func,
                              gpointer user_data,
                              GDestroyNotify destroy);

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

Функция filter_func будет вызываться для каждой строки после вызова, а также каждый раз, когда изменяется строка (через gtk_list_box_row_changed()) или когда вызывается gtk_list_box_invalidate_filter().

Обратите внимание, что использование функции фильтрации несовместимо с использованием модели (см. gtk_list_box_bind_model()).

Параметры

box

a GtkListBox

filter_func

обратный вызов, позволяющий фильтровать отображаемые строки.

[closure user_data][allow-none]

user_data

пользовательские данные, переданные в filter_func

destroy

утилизатор уведомлений для user_data

С: 3.10

gtk_list_box_set_header_func ()

void
gtk_list_box_set_header_func (GtkListBox *box,
                              GtkListBoxUpdateHeaderFunc update_header,
                              gpointer user_data,
                              GDestroyNotify destroy);

Установкой функции заголовка для box можно динамически добавлять заголовки перед строками, в зависимости от содержимого строки и её позиции в списке. Например, можно использовать её для добавления заголовков перед первым элементом нового типа в списке, отсортированном по типу.

Функция update_header может получить текущий виджет заголовка с помощью gtk_list_box_row_get_header() и либо обновить состояние виджета по мере необходимости, либо установить новый с помощью gtk_list_box_row_set_header(). Если заголовок не нужен, установите заголовок в NULL.

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

Функция update_header будет вызываться для каждой строки после вызова, и она будет продолжать вызываться каждый раз, когда строка меняется (через gtk_list_box_row_changed()) и когда строка перед ней меняется (либо из-за gtk_list_box_row_changed() в предыдущей строке, либо когда предыдущая строка становится другой). Она также вызывается для всех строк при вызове gtk_list_box_invalidate_headers().

Параметры

box

a GtkListBox

update_header

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

[closure user_data][allow-none]

user_data

данные пользователя, передаваемые в update_header

destroy

уведомление об уничтожении для user_data

С: 3.10

gtk_list_box_set_sort_func ()

void
gtk_list_box_set_sort_func (GtkListBox *box,
                            GtkListBoxSortFunc sort_func,
                            gpointer user_data,
                            GDestroyNotify destroy);

Установкой функции сортировки для box можно динамически переупорядочить строки в списке, основываясь на содержимом строк.

Функция sort_func будет вызываться для каждой строки после вызова и будет продолжать вызываться каждый раз, когда строка изменяется (через gtk_list_box_row_changed()) и когда вызывается gtk_list_box_invalidate_sort().

Обратите внимание, что использование функции сортировки несовместимо с использованием модели (см. gtk_list_box_bind_model()).

Параметры

box

a GtkListBox

sort_func

функция сортировки.

[closure user_data][allow-none]

user_data

данные пользователя, передаваемые в sort_func

destroy

уведомление об уничтожении для user_data

С: 3.10

gtk_list_box_drag_highlight_row ()

void
gtk_list_box_drag_highlight_row (GtkListBox *box,
                                 GtkListBoxRow *row);

Это вспомогательная функция для реализации перетаскивания на GtkListBox. Переданная row строка будет выделена с помощью gtk_drag_highlight(), а любая ранее выделенная строка будет снята с выделения.

Строка также будет снята с выделения при получении события drag leave виджетом.

Параметры

box

a GtkListBox

row

a GtkListBoxRow

С: 3.10

gtk_list_box_drag_unhighlight_row ()

void
gtk_list_box_drag_unhighlight_row (GtkListBox *box);

Если строка была ранее выделена с помощью gtk_list_box_drag_highlight_row(), выделение будет снято.

Параметры

box

a GtkListBox

С: 3.10

GtkListBoxCreateWidgetFunc ()

GtkWidget *
(*GtkListBoxCreateWidgetFunc) (gpointer item,
                               gpointer user_data);

Вызывается для списков, привязанных к GListModel с помощью gtk_list_box_bind_model() для каждого добавляемого в модель элемента.

Версии GTK+ до 3.18 вызывали gtk_widget_show_all() для созданных GtkListBoxCreateWidgetFunc строк, но это принудительно отображало все виджеты внутри строки, и этого больше нет. Приложения должны быть обновлены для отображения необходимых виджетов строк.

Параметры

item

элемент из модели, для которого необходимо создать виджет.

[type GObject]

user_data

данные пользователя.

[closure]

Возвращает

a GtkWidget, представляющий item .

[transfer full]

С: 3.16

gtk_list_box_bind_model ()

void
gtk_list_box_bind_model (GtkListBox *box,
                         GListModel *model,
                         GtkListBoxCreateWidgetFunc create_widget_func,
                         gpointer user_data,
                         GDestroyNotify user_data_free_func);

Связывает model с box.

Если box уже было связано с моделью, то предыдущая привязка уничтожается.

Содержимое box очищается и затем заполняется виджетами, представляющими элементы из model. box обновляется всякий раз, когда model изменяется. Если model равно NULL, box остается пустым.

Не определено прямо добавлять или удалять виджеты (например, с помощью gtk_list_box_insert() или gtk_container_add()), пока box связано с моделью.

Обратите внимание, что использование модели несовместимо с функциями фильтрации и сортировки в GtkListBox. При использовании модели фильтрация и сортировка должны быть реализованы в самой модели.

Параметры

box

a GtkListBox

model

the GListModel to be bound to box .

[nullable]

create_widget_func

функция, создающая виджеты для элементов или NULL в случае, если вы также передали NULL как model .

[nullable]

user_data

переданные пользовательские данные для create_widget_func

user_data_free_func

функция для освобождения user_data

Since: 3.16

gtk_list_box_row_new ()

GtkWidget *
gtk_list_box_row_new (void);

Создает новый GtkListBoxRow, который будет использоваться в качестве дочернего элемента GtkListBox.

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

новый GtkListBoxRow

Since: 3.10

gtk_list_box_row_changed ()

void
gtk_list_box_row_changed (GtkListBoxRow *row);

Помечает row как изменённый, вызывая обновление любого состояния, зависящего от этого. Это влияет на сортировку, фильтрацию и заголовки.

Обратите внимание, что вызовы этого метода должны синхронизироваться с данными, используемыми для функций строки. Например, если список отражает какой-то внешний набор данных, и *две* строки изменились во внешнем наборе данных, тогда когда вы вызываете gtk_list_box_row_changed() для первой строки, функция сортировки должна считывать только новые данные для первой из двух изменённых строк, иначе пересортировка строк будет неверной.

Это обычно означает, что если вы не полностью контролируете модель данных, вам нужно дублировать данные, которые влияют на функции строки listbox, в сами виджеты строк. Другой альтернативой является вызов gtk_list_box_invalidate_sort() при любом изменении модели, но это дороже.

Параметры

row

a GtkListBoxRow

Since: 3.10

gtk_list_box_row_is_selected ()

gboolean
gtk_list_box_row_is_selected (GtkListBoxRow *row);

Возвращает, выбрана ли дочерняя строка в контейнере GtkListBox.

Параметры

row

a GtkListBoxRow

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

TRUE если row выбрана

Since: 3.14

gtk_list_box_row_get_header ()

GtkWidget *
gtk_list_box_row_get_header (GtkListBoxRow *row);

Возвращает текущий заголовок row. Это можно использовать в GtkListBoxUpdateHeaderFunc, чтобы проверить, установлен ли заголовок, и если да, то обновить его состояние.

Параметры

row

a GtkListBoxRow

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

текущий заголовок, или NULL если нет.

[transfer none][nullable]

Since: 3.10

gtk_list_box_row_set_header ()

void
gtk_list_box_row_set_header (GtkListBoxRow *row,
                             GtkWidget *header);

Устанавливает текущий заголовок row. Это разрешается вызывать только из GtkListBoxUpdateHeaderFunc. Он заменит любой существующий заголовок в строке и будет отображаться перед строкой в listbox.

Параметры

row

a GtkListBoxRow

header

заголовок, или NULL.

[allow-none]

Since: 3.10

gtk_list_box_row_get_index ()

gint
gtk_list_box_row_get_index (GtkListBoxRow *row);

Получает текущий индекс row в контейнере GtkListBox.

Параметры

row

a GtkListBoxRow

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

индекс row, или -1, если row не в listbox

Since: 3.10

gtk_list_box_row_set_activatable ()

void
gtk_list_box_row_set_activatable (GtkListBoxRow *row,
                                  gboolean activatable);

Установите свойство “activatable” для этой строки.

Параметры

row

a GtkListBoxRow

activatable

TRUE для того, чтобы отметить строку как активируемую

Since: 3.14

gtk_list_box_row_get_activatable ()

gboolean
gtk_list_box_row_get_activatable (GtkListBoxRow *row);

Получает значение свойства “activatable” для этой строки.

Параметры

row

строка GtkListBoxRow

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

TRUE если строка активируема

С версии: 3.14

gtk_list_box_row_set_selectable ()

void
gtk_list_box_row_set_selectable (GtkListBoxRow *row,
                                 gboolean selectable);

Устанавливает свойство “selectable” для этой строки.

Параметры

row

строка GtkListBoxRow

selectable

TRUE для маркировки строки как выбираемой

С версии: 3.14

gtk_list_box_row_get_selectable ()

gboolean
gtk_list_box_row_get_selectable (GtkListBoxRow *row);

Получает значение свойства “selectable” для этой строки.

Параметры

row

строка GtkListBoxRow

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

TRUE если строка выбираема

С версии: 3.14

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

struct GtkListBox

struct GtkListBox;

struct GtkListBoxClass

struct GtkListBoxClass {
  GtkContainerClass parent_class;

  void (*row_selected)        (GtkListBox      *box,
                               GtkListBoxRow   *row);
  void (*row_activated)       (GtkListBox      *box,
                               GtkListBoxRow   *row);
  void (*activate_cursor_row) (GtkListBox      *box);
  void (*toggle_cursor_row)   (GtkListBox      *box);
  void (*move_cursor)         (GtkListBox      *box,
                               GtkMovementStep  step,
                               gint             count);
  void (*selected_rows_changed) (GtkListBox    *box);
  void (*select_all)            (GtkListBox    *box);
  void (*unselect_all)          (GtkListBox    *box);
};

Члены

row_selected ()

Обработчик класса для сигнала “row-selected”

row_activated ()

Обработчик класса для сигнала “row-activated”

activate_cursor_row ()

Обработчик класса для сигнала “activate-cursor-row”

toggle_cursor_row ()

Обработчик класса для сигнала “toggle-cursor-row”

move_cursor ()

Обработчик класса для сигнала “move-cursor”

selected_rows_changed ()

Обработчик класса для сигнала “selected-rows-changed”

select_all ()

Обработчик класса для сигнала “select-all”

unselect_all ()

Обработчик класса для сигнала “unselect-all”

struct GtkListBoxRow

struct GtkListBoxRow;

struct GtkListBoxRowClass

struct GtkListBoxRowClass {
  GtkBinClass parent_class;

  void (* activate) (GtkListBoxRow *row);
};

Члены

activate ()

Подробное описание свойств

Свойство “activate-on-single-click”

  “activate-on-single-click” gboolean

Активировать строку по одному клику.

Владелец: GtkListBox

Флаги: Чтение/Запись

Значение по умолчанию: ИСТИНА

Свойство “selection-mode”

  “selection-mode”           GtkSelectionMode

Режим выбора.

Владелец: GtkListBox

Флаги: Чтение/Запись

Значение по умолчанию: GTK_SELECTION_SINGLE

Свойство “activatable”

  “activatable”              gboolean

Свойство определяет, будет ли испускаться сигнал “row-activated” для этой строки.

Владелец: GtkListBoxRow

Флаги: Чтение/Запись

Значение по умолчанию: ИСТИНА

С версии: 3.14

Свойство “selectable”

  “activatable”              gboolean

Свойство определяет, можно ли выбрать эту строку.

Владелец: GtkListBoxRow

Флаги: Чтение/Запись

Значение по умолчанию: ИСТИНА

С версии: 3.14

Подробные сведения о сигналах

Сигнал “activate-cursor-row”

void
user_function (GtkListBox *listbox,
               gpointer    user_data)

Флаги: Действие

Сигнал “move-cursor”

void
user_function (GtkListBox     *listbox,
               GtkMovementStep arg1,
               int             arg2,
               gpointer        user_data)

Флаги: Действие

Сигнал “row-activated”

void
user_function (GtkListBox    *box,
               GtkListBoxRow *row,
               gpointer       user_data)

Сигнал ::row-activated генерируется, когда пользователь активировал строку.

Параметры

box

the GtkListBox

row

активированная строка

user_data

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

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

С версии: 3.10

Сигнал “row-selected”

void
user_function (GtkListBox    *box,
               GtkListBoxRow *row,
               gpointer       user_data)

Сигнал ::row-selected генерируется, когда выбрана новая строка или (при NULL row) при снятии выделения.

Когда box использует GTK_SELECTION_MULTIPLE, этот сигнал не предоставит полную картину изменений выделения, и вместо него следует использовать сигнал “selected-rows-changed”.

Параметры

box

the GtkListBox

row

выбранная строка.

[nullable]

user_data

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

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

С версии: 3.10

Сигнал “select-all”

void
user_function (GtkListBox *box,
               gpointer    user_data)

Сигнал ::select-all — это сигнал для привязки клавиш, который генерируется для выделения всех дочерних элементов виджета, если это разрешено режимом выделения.

По умолчанию для этого сигнала назначена комбинация Ctrl-a.

Параметры

box

the GtkListBox, на котором генерируется сигнал

user_data

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

Флаги: Действие

С версии: 3.14

Сигнал “selected-rows-changed”

void
user_function (GtkListBox *box,
               gpointer    user_data)

Сигнал ::selected-rows-changed генерируется при изменении набора выделенных строк.

Параметры

box

the GtkListBox на котором генерируется сигнал

user_data

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

Флаги: Выполнить первым

С версии: 3.14

Сигнал “toggle-cursor-row”

void
user_function (GtkListBox *listbox,
               gpointer    user_data)

Флаги: Действие

Сигнал “unselect-all”

void
user_function (GtkListBox *box,
               gpointer    user_data)

Сигнал ::unselect-all — это сигнал для привязки клавиш, который генерируется для снятия выделения со всех дочерних элементов виджета, если это разрешено режимом выделения.

По умолчанию для этого сигнала назначена комбинация Ctrl-Shift-a.

Параметры

box

the GtkListBox on which the signal is emitted

user_data

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

Флаги: Действие

С версии: 3.14

Сигнал “activate”

void
user_function (GtkListBoxRow *listboxrow,
               gpointer       user_data)

Это сигнал для привязки клавиш, который активирует эту строку.

Если вам нужно получать уведомления об активации строки пользователем (клавишей или другим способом), используйте сигнал “row-activated” родительского элемента GtkListBox.

Параметры

user_data

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

Флаги: Действие

С версии: 3.10

См. также

GtkScrolledWindow

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkListBox.html

Spec-Zone.ru

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