Spec-Zone.ru › GTK 3.20

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 activate-on-single-click Чтение / Запись
GtkSelectionMode selection-mode Чтение / Запись
gboolean activatable Чтение / Запись
gboolean selectable Чтение / Запись

Сигналы

void activate-cursor-row Действие
void move-cursor Действие
void row-activated Run Last
void row-selected Run Last
void select-all Действие
void selected-rows-changed Run First
void toggle-cursor-row Действие
void unselect-all Действие
void activate Действие

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

struct GtkListBox
struct GtkListBoxClass
struct GtkListBoxRow
struct GtkListBoxRowClass

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

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

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

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

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

Включаемые файлы

#include <gtk/gtk.h>

Описание

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

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

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

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

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

CSS узлы

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 для добавления

position

позиция для вставки 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/PageDown.

В обычном случае, когда 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().

Parameters

box

a GtkListBox

update_header

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

[closure user_data][allow-none]

user_data

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

destroy

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

Since: 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()).

Parameters

box

a GtkListBox

sort_func

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

[closure user_data][allow-none]

user_data

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

destroy

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

Since: 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.

Parameters

box

a GtkListBox

row

a GtkListBoxRow

Since: 3.10

gtk_list_box_drag_unhighlight_row ()

void
gtk_list_box_drag_unhighlight_row (GtkListBox *box);

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

Parameters

box

a GtkListBox

Since: 3.10

GtkListBoxCreateWidgetFunc ()

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

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

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

Parameters

item

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

[type GObject]

user_data

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

[closure]

Returns

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

[transfer full]

Since: 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

объект GtkListBox

model

модель GListModel, которая должна быть связана с box .

[nullable]

create_widget_func

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

[nullable]

user_data

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

user_data_free_func

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

С: 3.16

gtk_list_box_row_new ()

GtkWidget *
gtk_list_box_row_new (void);

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

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

новый GtkListBoxRow

С: 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

объект GtkListBoxRow

С: 3.10

gtk_list_box_row_is_selected ()

gboolean
gtk_list_box_row_is_selected (GtkListBoxRow *row);

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

Параметры

row

объект GtkListBoxRow

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

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

С: 3.14

gtk_list_box_row_get_header ()

GtkWidget *
gtk_list_box_row_get_header (GtkListBoxRow *row);

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

Параметры

row

объект GtkListBoxRow

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

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

[transfer none][nullable]

С: 3.10

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]

С: 3.10

gtk_list_box_row_get_index ()

gint
gtk_list_box_row_get_index (GtkListBoxRow *row);

Возвращает текущий индекс row в контейнере GtkListBox.

Параметры

row

объект GtkListBoxRow

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

индекс row или -1, если row не находится в listbox

С: 3.10

gtk_list_box_row_set_activatable ()

void
gtk_list_box_row_set_activatable (GtkListBoxRow *row,
                                  gboolean activatable);

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

Параметры

row

строка GtkListBoxRow

activatable

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

С момента: 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 ()

Обработчик класса для сигнала “activate-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

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

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

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

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

  “selection-mode”           GtkSelectionMode

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

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

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

Свойство “activatable”

  “activatable”              gboolean

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

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

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

С момента: 3.14

Свойство “selectable”

  “selectable”               gboolean

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

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

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

С момента: 3.14

Подробное описание сигналов

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

void
user_function (GtkListBox *listbox,
               gpointer    user_data)

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

Сигнал “move-cursor”

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

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

Сигнал “row-activated”

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

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

Параметры

box

объект GtkListBox

row

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

user_data

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

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

С версии: 3.10

Сигнал “row-selected”

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

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

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

Параметры

box

объект GtkListBox

row

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

[nullable]

user_data

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

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

С версии: 3.10

Сигнал “select-all”

void
user_function (GtkListBox *box,
               gpointer    user_data)

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

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

Параметры

box

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

user_data

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

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

С версии: 3.14

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

void
user_function (GtkListBox *box,
               gpointer    user_data)

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

Параметры

box

объект 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

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

user_data

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

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

С версии: 3.14

Сигнал “activate”

void
user_function (GtkListBoxRow *listboxrow,
               gpointer       user_data)

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

См. также

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.20/GtkListBox.html

Spec-Zone.ru

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