GtkListBox
GtkListBox — Контейнер списка
Функции
| gboolean | gtk_list_box_row_get_activatable () |
| void | gtk_list_box_row_set_selectable () |
| gboolean | gtk_list_box_row_get_selectable () |
Свойства
| gboolean | accept-unpaired-release | Чтение / Запись |
| gboolean | activate-on-single-click | Чтение / Запись |
| GtkSelectionMode | selection-mode | Чтение / Запись |
| gboolean | show-separators | Чтение / Запись |
| gboolean | activatable | Чтение / Запись |
| GtkWidget * | child | Чтение / Запись |
| gboolean | selectable | Чтение / Запись |
Сигналы
| void | activate-cursor-row | Действие |
| void | move-cursor | Действие |
| void | row-activated | Выполнить последним |
| void | row-selected | Выполнить последним |
| void | select-all | Действие |
| void | selected-rows-changed | Выполнить первым |
| void | toggle-cursor-row | Действие |
| void | unselect-all | Действие |
| void | activate | Действие |
Типы и Значения
| GtkListBox | |
| struct | GtkListBoxRow |
| struct | GtkListBoxRowClass |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
├── GtkListBox
╰── GtkListBoxRow
Реализованные интерфейсы
GtkListBox реализует GtkAccessible, GtkBuildable и GtkConstraintTarget.
GtkListBoxRow реализует GtkAccessible, GtkBuildable, GtkConstraintTarget и GtkActionable.
Включаемые файлы
#include <gtk/gtk.h>
Описание
GtkListBox — это вертикальный контейнер, содержащий элементы GtkListBoxRow. Эти строки могут динамически сортироваться и фильтроваться, а заголовки могут добавляться динамически в зависимости от содержимого строки. Он также позволяет управлять навигацией и выбором с помощью клавиатуры и мыши, как и в обычном списке.
Использование GtkListBox часто является альтернативой GtkTreeView, особенно когда содержимое списка имеет более сложную структуру, чем та, что допускается GtkCellRenderer, или когда содержимое интерактивное (например, содержит кнопку).
Хотя у GtkListBox должны быть только элементы GtkListBoxRow, вы можете добавить любой виджет с помощью gtk_list_box_prepend(), gtk_list_box_append() и gtk_list_box_insert(), и элемент GtkListBoxRow будет автоматически вставлен между списком и виджетом.
Элементы GtkListBoxRow можно отметить как активируемые или выбираемые. Если строка активируемая, для неё будет выпущен сигнал “row-activated”, когда пользователь пытается её активировать. Если она выбираемая, строка будет помечена как выбранная, когда пользователь пытается её выбрать.
GtkListBox как GtkBuildable
Реализация GtkListBox интерфейса GtkBuildable поддерживает установку элемента-заполнителя, указав «placeholder» в качестве атрибута «type» элемента <child>. См. gtk_list_box_set_placeholder() для получения информации.
CSS-узлы
list[.separators][.rich-list][.navigation-sidebar] ╰── row[.activatable]
GtkListBox использует единственный CSS-узел с именем list. Он может содержать класс стиля .separators, когда свойство “show-separators” установлено. Каждый GtkListBoxRow использует один CSS-узел с именем row. К узлам row добавляется класс стиля .activatable, когда это необходимо.
Основной узел списка также может содержать классы стилей для выбора стиля представления списка: .rich-list, .navigation-sidebar или .data-table.
Универсальный доступ
GtkListBox использует роль GTK_ACCESSIBLE_ROLE_LIST, а GtkListBoxRow использует роль GTK_ACCESSIBLE_ROLE_LIST_ITEM.
Функции
GtkListBoxFilterFunc ()
gboolean (*GtkListBoxFilterFunc) (GtkListBoxRow *row,gpointer user_data);
Будет вызываться каждый раз, когда строка изменяется или добавляется, и позволяет управлять видимостью строки.
Параметры
row | строка, которая может быть отфильтрована | |
user_data | пользовательские данные. | [closure] |
Возвращаемое значение
TRUE если строка должна быть видима, FALSE в противном случае
GtkListBoxSortFunc ()
int (*GtkListBoxSortFunc) (GtkListBoxRow *row1,GtkListBoxRow *row2,gpointer user_data);
Сравнивает две строки, чтобы определить, какая должна быть первой.
Параметры
row1 | первая строка | |
row2 | вторая строка | |
user_data | пользовательские данные. | [closure] |
Возвращаемое значение
< 0 если row1 должна быть перед row2 , 0 если они равны и > 0 в противном случае
GtkListBoxUpdateHeaderFunc ()
void (*GtkListBoxUpdateHeaderFunc) (GtkListBoxRow *row,GtkListBoxRow *before,gpointer user_data);
Всякий раз, когда изменяется row или какая строка идет перед row , вызывается эта функция, которая позволяет обновить заголовок на row . Вы можете удалить или установить новый заголовок с помощью gtk_list_box_row_set_header() или просто изменить состояние текущего виджета заголовка.
Параметры
row | строка для обновления | |
before | строка перед | [allow-none] |
user_data | пользовательские данные. | [closure] |
gtk_list_box_new ()
GtkWidget *
gtk_list_box_new (void); Создает новый контейнер GtkListBox.
Возвращаемое значение
новый GtkListBox
gtk_list_box_prepend ()
void gtk_list_box_prepend (GtkListBox *box,GtkWidget *child);
Добавляет виджет в начало списка. Если задана функция сортировки, виджет будет фактически вставлен в вычисленную позицию.
Параметры
box | ||
child | виджет GtkWidget для добавления |
gtk_list_box_append ()
void gtk_list_box_append (GtkListBox *box,GtkWidget *child);
Добавляет виджет в конец списка. Если задана функция сортировки, виджет будет фактически вставлен в вычисленную позицию.
Параметры
box | ||
child | виджет GtkWidget для добавления |
gtk_list_box_insert ()
void gtk_list_box_insert (GtkListBox *box,GtkWidget *child,int position);
Вставляет child в box на позицию position . Если задана функция сортировки, виджет будет фактически вставлен в вычисленную позицию.
Если position равно -1 или больше, чем общее количество элементов в box , то child будет добавлен в конец.
Параметры
box | ||
child | виджет GtkWidget для добавления | |
position | позиция для вставки |
gtk_list_box_remove ()
void gtk_list_box_remove (GtkListBox *box,GtkWidget *child);
Удаляет дочерний элемент из box .
Параметры
box | ||
child | дочерний элемент для удаления |
gtk_list_box_select_row ()
void gtk_list_box_select_row (GtkListBox *box,GtkListBoxRow *row);
Делает row текущей выбранной строкой.
Параметры
box | ||
row | Строка для выбора или | [allow-none] |
gtk_list_box_unselect_row ()
void gtk_list_box_unselect_row (GtkListBox *box,GtkListBoxRow *row);
Снимает выделение с одной строки box , если это позволяет режим выбора.
Параметры
box | ||
row | строка для снятия выделения |
gtk_list_box_select_all ()
void
gtk_list_box_select_all (GtkListBox *box); Выбирает все дочерние элементы box , если это позволяет режим выбора.
Параметры
box |
gtk_list_box_unselect_all ()
void
gtk_list_box_unselect_all (GtkListBox *box); Снимает выделение со всех дочерних элементов box , если это позволяет режим выбора.
Параметры
box |
gtk_list_box_get_selected_row ()
GtkListBoxRow *
gtk_list_box_get_selected_row (GtkListBox *box); Получает выбранную строку.
Обратите внимание, что поле может допускать множественный выбор, в этом случае следует использовать gtk_list_box_selected_foreach() для поиска всех выбранных строк.
Параметры
box |
Возвращаемое значение
выбранная строка.
[transfer none]
GtkListBoxForeachFunc ()
void (*GtkListBoxForeachFunc) (GtkListBox *box,GtkListBoxRow *row,gpointer user_data);
Функция, используемая gtk_list_box_selected_foreach(). Она будет вызываться для каждого выбранного дочернего элемента box.
Параметры
box | ||
row | ||
user_data | пользовательские данные. | [closure] |
gtk_list_box_selected_foreach ()
void gtk_list_box_selected_foreach (GtkListBox *box,GtkListBoxForeachFunc func,gpointer data);
Вызывает функцию для каждого выбранного дочернего элемента.
Обратите внимание, что выбор нельзя изменять изнутри этой функции.
Параметры
box | ||
func | функция, вызываемая для каждого выбранного дочернего элемента. | [scope call] |
data | пользовательские данные, передаваемые функции |
gtk_list_box_get_selected_rows ()
GList *
gtk_list_box_get_selected_rows (GtkListBox *box); Создаёт список всех выбранных дочерних элементов.
Параметры
box |
Возвращаемое значение
A GList содержащий GtkWidget для каждого выбранного дочернего элемента. Освободите с g_list_free() после завершения работы.
[element-type GtkListBoxRow][transfer container]
gtk_list_box_set_show_separators ()
void gtk_list_box_set_show_separators (GtkListBox *box,gboolean show_separators);
Устанавливает, нужно ли отображать разделители между строками в списке.
Параметры
box | ||
show_separators |
|
gtk_list_box_get_show_separators ()
gboolean
gtk_list_box_get_show_separators (GtkListBox *box); Возвращает, нужно ли отображать разделители между строками в списке.
Параметры
box |
Возвращаемое значение
TRUE если разделители отображаются в списке
gtk_list_box_set_selection_mode ()
void gtk_list_box_set_selection_mode (GtkListBox *box,GtkSelectionMode mode);
Устанавливает, как работает выбор в списке. См. GtkSelectionMode для подробностей.
Параметры
box | ||
mode | The GtkSelectionMode |
gtk_list_box_get_selection_mode ()
GtkSelectionMode
gtk_list_box_get_selection_mode (GtkListBox *box); Получает режим выбора списка.
Параметры
box |
Возвращаемое значение
gtk_list_box_set_activate_on_single_click ()
void gtk_list_box_set_activate_on_single_click (GtkListBox *box,gboolean single);
Если single равно TRUE, строки будут активироваться при одиночном клике, в противном случае потребуется двойной клик.
Параметры
box | ||
single | булево значение |
gtk_list_box_get_activate_on_single_click ()
gboolean
gtk_list_box_get_activate_on_single_click
(GtkListBox *box); Возвращает, активируются ли строки при одиночных кликах.
Параметры
box |
Возвращаемое значение
TRUE если строки активируются при одиночном клике, FALSE в противном случае
gtk_list_box_get_adjustment ()
GtkAdjustment *
gtk_list_box_get_adjustment (GtkListBox *box); Возвращает объект настроек (если таковой имеется), который используется виджетом для вертикальной прокрутки.
Параметры
box |
Возвращаемое значение
объект настроек.
[transfer none]
gtk_list_box_set_adjustment ()
void gtk_list_box_set_adjustment (GtkListBox *box,GtkAdjustment *adjustment);
Устанавливает объект настроек (если таковой имеется), который используется виджетом для вертикальной прокрутки. Например, это используется для получения размера страницы для обработки клавиш PageUp/PageDown.
В обычном случае, когда box упакован внутри GtkScrolledWindow, настройки из него будут автоматически взяты, поэтому нет необходимости делать это вручную.
Параметры
box | ||
adjustment | объект настроек или | [allow-none] |
gtk_list_box_set_placeholder ()
void gtk_list_box_set_placeholder (GtkListBox *box,GtkWidget *placeholder);
Устанавливает виджет-заполнитель, который отображается в списке, когда он не отображает каких-либо видимых дочерних элементов.
Параметры
box | ||
placeholder | a GtkWidget или | [allow-none] |
gtk_list_box_get_row_at_index ()
GtkListBoxRow * gtk_list_box_get_row_at_index (GtkListBox *box,int index_);
Получает n-ый дочерний элемент в списке (без учёта заголовков). Если _index отрицательное или больше, чем количество элементов в списке, возвращается NULL.
Параметры
box | ||
index_ | индекс строки |
gtk_list_box_get_row_at_y ()
GtkListBoxRow * gtk_list_box_get_row_at_y (GtkListBox *box,int y);
Получает строку по позиции y.
Параметры
box | ||
y | позиция |
Возвращаемое значение
строку или NULL в случае, если для данной координаты y нет строки.
[transfer none][nullable]
gtk_list_box_invalidate_filter ()
void
gtk_list_box_invalidate_filter (GtkListBox *box); Обновляет фильтрацию для всех строк. Вызывайте эту функцию, когда результат функции фильтрации для box изменяется по внешним причинам. Например, если функция фильтрации просто ищет определённую строку поиска, и запись со строкой поиска изменилась.
Параметры
box |
gtk_list_box_invalidate_headers ()
void
gtk_list_box_invalidate_headers (GtkListBox *box); Обновляет разделители для всех строк. Вызывайте эту функцию, когда результат функции заголовка для box изменяется по внешним причинам.
Параметры
box |
gtk_list_box_invalidate_sort ()
void
gtk_list_box_invalidate_sort (GtkListBox *box); Обновляет сортировку для всех строк. Вызывайте эту функцию, когда результат функции сортировки для box изменяется по внешним причинам.
Параметры
box |
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 | ||
filter_func | обработчик, позволяющий фильтровать показываемые строки. | [allow-none] |
user_data | пользовательские данные, передаваемые в | [closure] |
destroy | уведомление об удалении для |
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 | ||
update_header | обработчик, позволяющий добавлять заголовки строк. | [allow-none] |
user_data | пользовательские данные, передаваемые в | [closure] |
destroy | уведомление об удалении для |
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 | ||
sort_func | функция сортировки. | [allow-none] |
user_data | данные пользователя, передаваемые в | [closure] |
destroy | уведомление о необходимости удаления |
gtk_list_box_drag_highlight_row ()
void gtk_list_box_drag_highlight_row (GtkListBox *box,GtkListBoxRow *row);
Это вспомогательная функция для реализации перетаскивания в GtkListBox. Переданная row будет выделена, установив состояние GTK_STATE_FLAG_DROP_ACTIVE, а любая ранее выделенная строка будет снята с выделения.
Строка также будет снята с выделения, когда виджет получит событие выхода перетаскивания.
Параметры
box | ||
row |
gtk_list_box_drag_unhighlight_row ()
void
gtk_list_box_drag_unhighlight_row (GtkListBox *box); Если строка была ранее выделена с помощью gtk_list_box_drag_highlight_row(), выделение будет снято.
Параметры
box |
GtkListBoxCreateWidgetFunc ()
GtkWidget * (*GtkListBoxCreateWidgetFunc) (gpointer item,gpointer user_data);
Вызывается для списков, связанных с GListModel с помощью gtk_list_box_bind_model() для каждого элемента, добавляемого в модель.
Параметры
item | элемент из модели, для которого необходимо создать виджет. | [type GObject] |
user_data | данные пользователя. | [closure] |
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()), пока box связан с моделью.
Обратите внимание, что использование модели несовместимо с функциями фильтрации и сортировки в GtkListBox. При использовании модели фильтрация и сортировка должны быть реализованы в самой модели.
Параметры
box | ||
model | the GListModel , который будет привязан к | [nullable] |
create_widget_func | функция, создающая виджеты для элементов или | [nullable] |
user_data | данные пользователя, передаваемые в | [closure] |
user_data_free_func | функция для освобождения |
gtk_list_box_row_new ()
GtkWidget *
gtk_list_box_row_new (void); Создаёт новый GtkListBoxRow, который будет использоваться как дочерний элемент GtkListBox.
Возвращаемое значение
новый GtkListBoxRow
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 |
gtk_list_box_row_is_selected ()
gboolean
gtk_list_box_row_is_selected (GtkListBoxRow *row); Возвращает, выбран ли дочерний элемент в контейнере GtkListBox.
Параметры
row |
Возвращаемое значение
TRUE , если row выбран
gtk_list_box_row_get_child ()
GtkWidget *
gtk_list_box_row_get_child (GtkListBoxRow *row); Получает дочерний виджет row.
Параметры
row | строка GtkListBoxRow |
Возвращает
дочерний виджет row.
[nullable][transfer none]
gtk_list_box_row_set_child ()
void gtk_list_box_row_set_child (GtkListBoxRow *row,GtkWidget *child);
Устанавливает дочерний виджет self.
Параметры
row | строка GtkListBoxRow | |
child | дочерний виджет. | [allow-none] |
gtk_list_box_row_get_header ()
GtkWidget *
gtk_list_box_row_get_header (GtkListBoxRow *row); Возвращает текущее заголовок row. Это может быть использовано в GtkListBoxUpdateHeaderFunc для проверки, установлен ли уже заголовок, и если да, для обновления его состояния.
Параметры
row | строка GtkListBoxRow |
Возвращает
текущий заголовок или NULL, если заголовок отсутствует.
[transfer none][nullable]
gtk_list_box_row_set_header ()
void gtk_list_box_row_set_header (GtkListBoxRow *row,GtkWidget *header);
Устанавливает текущий заголовок row. Это разрешено вызывать только из GtkListBoxUpdateHeaderFunc. Он заменит любой существующий заголовок в строке и будет отображаться перед строкой в listbox.
Параметры
row | строка GtkListBoxRow | |
header | заголовок или | [allow-none] |
gtk_list_box_row_get_index ()
int
gtk_list_box_row_get_index (GtkListBoxRow *row); Получает текущий индекс row в контейнере GtkListBox.
Параметры
row | строка GtkListBoxRow |
Возвращает
индекс row или -1, если row не находится в listbox.
gtk_list_box_row_set_activatable ()
void gtk_list_box_row_set_activatable (GtkListBoxRow *row,gboolean activatable);
Устанавливает свойство “activatable” для этой строки.
Параметры
row | строка GtkListBoxRow | |
activatable |
|
gtk_list_box_row_get_activatable ()
gboolean
gtk_list_box_row_get_activatable (GtkListBoxRow *row); Получает значение свойства “activatable” для этой строки.
Параметры
row | строка GtkListBoxRow |
Возвращает
TRUE если строка может быть активирована.
gtk_list_box_row_set_selectable ()
void gtk_list_box_row_set_selectable (GtkListBoxRow *row,gboolean selectable);
Устанавливает свойство “selectable” для этой строки.
Параметры
row | строка GtkListBoxRow | |
selectable |
|
gtk_list_box_row_get_selectable ()
gboolean
gtk_list_box_row_get_selectable (GtkListBoxRow *row); Получает значение свойства “selectable” для этой строки.
Параметры
row | строка GtkListBoxRow |
Возвращает
TRUE если строка может быть выбрана
Типы и значения
GtkListBox
typedef struct _GtkListBox GtkListBox;
struct GtkListBoxRow
struct GtkListBoxRow;
struct GtkListBoxRowClass
struct GtkListBoxRowClass {
GtkWidgetClass parent_class;
void (* activate) (GtkListBoxRow *row);
};
Члены
|
Подробное описание свойств
Свойство “accept-unpaired-release”
“accept-unpaired-release” gboolean
Принимать одиночные события освобождения.
Владелец: GtkListBox
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “activate-on-single-click”
“activate-on-single-click” gboolean
Активировать строку по одиночному щелчку.
Владелец: GtkListBox
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “selection-mode”
“selection-mode” GtkSelectionMode
Режим выбора.
Владелец: GtkListBox
Флаги: Чтение / Запись
Значение по умолчанию: GTK_SELECTION_SINGLE
Свойство “show-separators”
“show-separators” gboolean
Отображать разделители между строками.
Владелец: GtkListBox
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “activatable”
“activatable” gboolean
Свойство определяет, будет ли генерироваться сигнал “row-activated” для этой строки.
Владелец: GtkListBoxRow
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “child”
“child” GtkWidget *
Дочерний виджет.
Владелец: GtkListBoxRow
Флаги: Чтение / Запись
Свойство “selectable”
“selectable” gboolean
Свойство определяет, может ли эта строка быть выбрана.
Владелец: GtkListBoxRow
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Подробности сигналов
Сигнал “activate-cursor-row”
void user_function (GtkListBox *listbox, gpointer user_data)
Флаги: Действие
Сигнал “move-cursor”
void user_function (GtkListBox *listbox, GtkMovementStep arg1, int arg2, gboolean arg3, gboolean arg4, gpointer user_data)
Флаги: Действие
Сигнал “row-activated”
void user_function (GtkListBox *box, GtkListBoxRow *row, gpointer user_data)
Сигнал ::row-activated генерируется, когда пользователь активирует строку.
Параметры
box | элемент GtkListBox | |
row | активированная строка | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнить последним
Сигнал “row-selected”
void user_function (GtkListBox *box, GtkListBoxRow *row, gpointer user_data)
Сигнал ::row-selected генерируется, когда новая строка выделяется или (при NULL row) при снятии выделения.
Когда box использует GTK_SELECTION_MULTIPLE, этот сигнал не предоставляет полную картину изменений выделения, и вам следует использовать сигнал “selected-rows-changed” вместо этого.
Параметры
box | элемент GtkListBox | |
row | выделенная строка. | [nullable] |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнить последним
Сигнал “select-all”
void user_function (GtkListBox *box, gpointer user_data)
Сигнал ::select-all — это сигнал для привязки клавиш, который генерируется для выделения всех дочерних элементов в списке, если это разрешено режимом выделения.
По умолчанию для этого сигнала установлена привязка Ctrl-a.
Параметры
box | элемент GtkListBox, на котором генерируется сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Действие
Сигнал “selected-rows-changed”
void user_function (GtkListBox *box, gpointer user_data)
Сигнал ::selected-rows-changed генерируется при изменении набора выделенных строк.
Параметры
box | элемент GtkListBox, на котором генерируется сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполнить первым
Сигнал “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 | элемент GtkListBox, на котором генерируется сигнал | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Действие
Сигнал “activate”
void user_function (GtkListBoxRow *listboxrow, gpointer user_data)
Это сигнал для привязки клавиш, который активирует эту строку.
Если вам нужно получить уведомление об активации строки пользователем (с клавиатуры или другими способами), используйте сигнал “row-activated” для родительского элемента GtkListBox.
Параметры
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Действие
См. также
© 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/GtkListBox.html