Spec-Zone.ru › GTK 4.0

GtkListBox

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

Функции

gboolean (*GtkListBoxFilterFunc) ()
int (*GtkListBoxSortFunc) ()
void (*GtkListBoxUpdateHeaderFunc) ()
GtkWidget * gtk_list_box_new ()
void gtk_list_box_prepend ()
void gtk_list_box_append ()
void gtk_list_box_insert ()
void gtk_list_box_remove ()
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_show_separators ()
gboolean gtk_list_box_get_show_separators ()
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-child ()
void gtk_list_box_row-set-child ()
GtkWidget * gtk_list_box_row-get-header ()
void gtk_list_box_row-set-header ()
int 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 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

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

[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

a GtkListBox

child

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

gtk_list_box_append ()

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

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

Параметры

box

a GtkListBox

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

a GtkListBox

child

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

position

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

gtk_list_box_remove ()

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

Удаляет дочерний элемент из box .

Параметры

box

a GtkListBox

child

дочерний элемент для удаления

gtk_list_box_select_row ()

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

Делает row текущей выбранной строкой.

Параметры

box

a GtkListBox

row

Строка для выбора или NULL.

[allow-none]

gtk_list_box_unselect_row ()

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

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

Параметры

box

a GtkListBox

row

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

gtk_list_box_select_all ()

void
gtk_list_box_select_all (GtkListBox *box);

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

Параметры

box

a GtkListBox

gtk_list_box_unselect_all ()

void
gtk_list_box_unselect_all (GtkListBox *box);

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

Параметры

box

a GtkListBox

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]

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]

gtk_list_box_selected_foreach ()

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

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

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

Параметры

box

a GtkListBox

func

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

[scope call]

data

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

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]

gtk_list_box_set_show_separators ()

void
gtk_list_box_set_show_separators (GtkListBox *box,
                                  gboolean show_separators);

Устанавливает, нужно ли отображать разделители между строками в списке.

Параметры

box

a GtkListBox

show_separators

TRUE для отображения разделителей

gtk_list_box_get_show_separators ()

gboolean
gtk_list_box_get_show_separators (GtkListBox *box);

Возвращает, нужно ли отображать разделители между строками в списке.

Параметры

box

a GtkListBox

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

TRUE если разделители отображаются в списке

gtk_list_box_set_selection_mode ()

void
gtk_list_box_set_selection_mode (GtkListBox *box,
                                 GtkSelectionMode mode);

Устанавливает, как работает выбор в списке. См. GtkSelectionMode для подробностей.

Параметры

box

a GtkListBox

mode

The GtkSelectionMode

gtk_list_box_get_selection_mode ()

GtkSelectionMode
gtk_list_box_get_selection_mode (GtkListBox *box);

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

Параметры

box

a GtkListBox

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

a GtkSelectionMode

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

булево значение

gtk_list_box_get_activate_on_single_click ()

gboolean
gtk_list_box_get_activate_on_single_click
                               (GtkListBox *box);

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

Параметры

box

a GtkListBox

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

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

gtk_list_box_get_adjustment ()

GtkAdjustment *
gtk_list_box_get_adjustment (GtkListBox *box);

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

Параметры

box

a GtkListBox

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

объект настроек.

[transfer none]

gtk_list_box_set_adjustment ()

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

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

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

Параметры

box

a GtkListBox

adjustment

объект настроек или NULL.

[allow-none]

gtk_list_box_set_placeholder ()

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

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

Параметры

box

a GtkListBox

placeholder

a GtkWidget или NULL.

[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

a GtkListBox

index_

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

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

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

[transfer none][nullable]

gtk_list_box_get_row_at_y ()

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

Получает строку по позиции y.

Параметры

box

a GtkListBox

y

позиция

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

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

[transfer none][nullable]

gtk_list_box_invalidate_filter ()

void
gtk_list_box_invalidate_filter (GtkListBox *box);

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

Параметры

box

a GtkListBox

gtk_list_box_invalidate_headers ()

void
gtk_list_box_invalidate_headers (GtkListBox *box);

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

Параметры

box

a GtkListBox

gtk_list_box_invalidate_sort ()

void
gtk_list_box_invalidate_sort (GtkListBox *box);

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

Параметры

box

a GtkListBox

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

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

[allow-none]

user_data

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

[closure]

destroy

уведомление об удалении для user_data

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

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

[allow-none]

user_data

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

[closure]

destroy

уведомление об удалении для user_data

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

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

[allow-none]

user_data

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

[closure]

destroy

уведомление о необходимости удаления user_data

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

a GtkListBox

row

a GtkListBoxRow

gtk_list_box_drag_unhighlight_row ()

void
gtk_list_box_drag_unhighlight_row (GtkListBox *box);

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

Параметры

box

a GtkListBox

GtkListBoxCreateWidgetFunc ()

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

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

Параметры

item

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

[type GObject]

user_data

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

[closure]

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

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

[transfer full]

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

a GtkListBox

model

the GListModel , который будет привязан к box .

[nullable]

create_widget_func

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

[nullable]

user_data

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

[closure]

user_data_free_func

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

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

a GtkListBoxRow

gtk_list_box_row_is_selected ()

gboolean
gtk_list_box_row_is_selected (GtkListBoxRow *row);

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

Параметры

row

a GtkListBoxRow

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

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

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

[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

TRUE для обозначения строки как активируемой

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

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

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);
};

Члены

activate ()

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

Свойство “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

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

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

См. также

GtkScrolledWindow

© 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

Spec-Zone.ru

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