GtkTreeSelection
GtkTreeSelection — Объект выбора для GtkTreeView
Функции
Свойства
| GtkSelectionMode | mode | Чтение / Запись |
Сигналы
Типы и значения
Иерархия объектов
GObject ╰── GtkTreeSelection
Файлы заголовков
#include <gtk/gtk.h>
Описание
Объект GtkTreeSelection — это вспомогательный объект для управления выделением в виджете GtkTreeView. Объект GtkTreeSelection автоматически создается при создании нового виджета GtkTreeView и не может существовать независимо от этого виджета. Основная причина существования объекта GtkTreeSelection заключается в улучшении чистоты кода и API. То есть, нет концептуальных причин, по которым все эти функции не могли быть методами виджета GtkTreeView, а не отдельными функциями.
Объект GtkTreeSelection извлекается из GtkTreeView с помощью вызова gtk_tree_view_get_selection(). Его можно использовать для проверки состояния выделения дерева, а также для выделения и снятия выделения отдельных строк. Выделение выполняется полностью на уровне представления. В результате, несколько представлений одного и того же модели могут иметь совершенно разные выделения. Кроме того, вы не можете изменить выделение строки в модели, которая в данный момент не отображается представлением, не развернув сначала её родительские элементы.
Важно помнить, что при мониторинге выделения представления, сигнал “changed” в основном является подсказкой. То есть, он может генерировать только один сигнал при выделении диапазона строк. Кроме того, он может иногда генерировать сигнал “changed” без каких-либо изменений (в основном из-за вызова select_row на уже выделенной строке).
Функции
GtkTreeSelectionFunc ()
gboolean (*GtkTreeSelectionFunc) (GtkTreeSelection *selection,GtkTreeModel *model,GtkTreePath *path,gboolean path_currently_selected,gpointer data);
Функция, используемая gtk_tree_selection_set_select_function() для фильтрации возможности выделения строки. Она вызывается всякий раз, когда может измениться состояние строки. Возвращаемое значение TRUE указывает selection, что изменение выделения разрешено.
Параметры
selection | ||
model | A GtkTreeModel для отображения | |
path | The GtkTreePath строки, о которой идёт речь | |
path_currently_selected |
| |
data | данные пользователя. | [closure] |
Возвращаемое значение
TRUE, если состояние выделения строки может быть переключено
GtkTreeSelectionForeachFunc ()
void (*GtkTreeSelectionForeachFunc) (GtkTreeModel *model,GtkTreePath *path,GtkTreeIter *iter,gpointer data);
Функция, используемая gtk_tree_selection_selected_foreach() для обработки всех выделенных строк. Она будет вызвана для каждой выделенной строки в представлении.
Параметры
model | The GtkTreeModel для отображения | |
path | The GtkTreePath выделенной строки | |
iter | A GtkTreeIter указывающий на выделенную строку | |
data | данные пользователя. | [closure] |
gtk_tree_selection_set_mode ()
void gtk_tree_selection_set_mode (GtkTreeSelection *selection,GtkSelectionMode type);
Устанавливает режим выделения для selection. Если предыдущий тип был GTK_SELECTION_MULTIPLE, то якорь остаётся выделенным, если он был выделен ранее.
Параметры
selection | ||
type | Режим выделения |
gtk_tree_selection_get_mode ()
GtkSelectionMode
gtk_tree_selection_get_mode (GtkTreeSelection *selection); Возвращает режим выделения для selection. См. gtk_tree_selection_set_mode().
Параметры
selection |
Возвращаемое значение
текущий режим выделения
gtk_tree_selection_set_select_function ()
void gtk_tree_selection_set_select_function (GtkTreeSelection *selection,GtkTreeSelectionFunc func,gpointer data,GDestroyNotify destroy);
Устанавливает функцию выделения.
Если установлена, эта функция вызывается перед выделением или снятием выделения с узла, предоставляя контроль над выделенными узлами. Функция выделения должна возвращать TRUE, если состояние узла может быть переключено, и FALSE, если состояние узла должно остаться неизменным.
gtk_tree_selection_get_select_function ()
GtkTreeSelectionFunc
gtk_tree_selection_get_select_function
(GtkTreeSelection *selection); Возвращает текущую функцию выделения.
[skip]
Параметры
selection |
Возвращаемое значение
Функция.
Since: 2.14
gtk_tree_selection_get_user_data ()
gpointer
gtk_tree_selection_get_user_data (GtkTreeSelection *selection); Возвращает данные пользователя для функции выделения.
[skip]
Параметры
selection |
Возвращаемое значение
Данные пользователя.
gtk_tree_selection_get_tree_view ()
GtkTreeView *
gtk_tree_selection_get_tree_view (GtkTreeSelection *selection); Возвращает связанное представление дерева для selection.
Параметры
selection |
gtk_tree_selection_get_selected ()
gboolean gtk_tree_selection_get_selected (GtkTreeSelection *selection,GtkTreeModel **model,GtkTreeIter *iter);
Устанавливает iter на текущий выбранный узел, если selection установлено в GTK_SELECTION_SINGLE или GTK_SELECTION_BROWSE. iter может быть NULL, если вы хотите только проверить, есть ли у selection выбранные узлы. model заполняется текущей моделью для удобства. Эта функция не будет работать, если вы используете selection как GTK_SELECTION_MULTIPLE.
Параметры
selection | ||
model | Указатель, который нужно установить на GtkTreeModel, или NULL. | [out][allow-none][transfer none] |
iter | The GtkTreeIter, или NULL. | [out][allow-none] |
Возвращаемое значение
TRUE, если есть выбранный узел.
gtk_tree_selection_selected_foreach ()
void gtk_tree_selection_selected_foreach (GtkTreeSelection *selection,GtkTreeSelectionForeachFunc func,gpointer data);
Вызывает функцию для каждого выбранного узла. Обратите внимание, что вы не можете изменить дерево или выбор изнутри этой функции. В результате, gtk_tree_selection_get_selected_rows() может быть более полезным.
Параметры
selection | ||
func | Функция, которая вызывается для каждого выбранного узла. | [scope call] |
data | пользовательские данные, передаваемые в функцию. |
gtk_tree_selection_get_selected_rows ()
GList * gtk_tree_selection_get_selected_rows (GtkTreeSelection *selection,GtkTreeModel **model);
Создаёт список путей всех выделенных строк. Кроме того, если вы планируете изменять модель после вызова этой функции, вы можете преобразовать возвращённый список в список GtkTreeRowReferences. Для этого вы можете использовать gtk_tree_row_reference_new().
Для освобождения возвращаемого значения используйте:
Параметры
selection | ||
model | Указатель, который нужно установить на GtkTreeModel, или | [out][allow-none][transfer none] |
Возвращаемое значение
A GList содержащий GtkTreePath для каждой выделенной строки.
[element-type GtkTreePath][transfer full]
Since: 2.2
gtk_tree_selection_count_selected_rows ()
gint
gtk_tree_selection_count_selected_rows
(GtkTreeSelection *selection); Возвращает количество строк, выделенных в tree .
Параметры
selection |
Возвращаемое значение
Количество выделенных строк.
Since: 2.2
gtk_tree_selection-select-path ()
void gtk_tree_selection_select_path (GtkTreeSelection *selection,GtkTreePath *path);
Выделить строку по path .
Параметры
selection | ||
path | The GtkTreePath to be selected. |
gtk_tree_selection_unselect_path ()
void gtk_tree_selection_unselect_path (GtkTreeSelection *selection,GtkTreePath *path);
Снимает выделение со строки по path .
Параметры
selection | ||
path | The GtkTreePath to be unselected. |
gtk_tree_selection_path_is_selected ()
gboolean gtk_tree_selection_path_is_selected (GtkTreeSelection *selection,GtkTreePath *path);
Возвращает TRUE, если строка, на которую указывает path, в данный момент выделена. Если path не указывает на допустимую позицию, возвращается FALSE.
Параметры
selection | ||
path | A GtkTreePath to check selection on. |
Возвращаемое значение
TRUE, если path выделена.
gtk_tree_selection_select_iter ()
void gtk_tree_selection_select_iter (GtkTreeSelection *selection,GtkTreeIter *iter);
Выделяет указанный итератор.
Параметры
selection | ||
iter | The GtkTreeIter to be selected. |
gtk_tree_selection_unselect_iter ()
void gtk_tree_selection_unselect_iter (GtkTreeSelection *selection,GtkTreeIter *iter);
Отменяет выделение указанного итератора.
Параметры
selection | ||
iter | The GtkTreeIter для отмены выделения. |
gtk_tree_selection_iter_is_selected ()
gboolean gtk_tree_selection_iter_is_selected (GtkTreeSelection *selection,GtkTreeIter *iter);
Возвращает TRUE, если строка по адресу iter в данный момент выделена.
Параметры
selection | ||
iter | Действительный GtkTreeIter |
Возвращает
TRUE, если iter выделен
gtk_tree_selection_select_all ()
void
gtk_tree_selection_select_all (GtkTreeSelection *selection); Выделяет все узлы. Режим selection должен быть установлен в режим GTK_SELECTION_MULTIPLE.
Параметры
selection |
gtk_tree_selection_unselect_all ()
void
gtk_tree_selection_unselect_all (GtkTreeSelection *selection); Отменяет выделение всех узлов.
Параметры
selection |
gtk_tree_selection_select_range ()
void gtk_tree_selection_select_range (GtkTreeSelection *selection,GtkTreePath *start_path,GtkTreePath *end_path);
Выделяет диапазон узлов, определяемый start_path и end_path включительно. Режим selection должен быть установлен в режим GTK_SELECTION_MULTIPLE.
Параметры
selection | ||
start_path | Начальный узел диапазона. | |
end_path | Конечный узел диапазона. |
gtk_tree_selection_unselect_range ()
void gtk_tree_selection_unselect_range (GtkTreeSelection *selection,GtkTreePath *start_path,GtkTreePath *end_path);
Отменяет выделение диапазона узлов, определяемого start_path и end_path включительно.
Параметры
selection | ||
start_path | Начальный узел диапазона. | |
end_path | Начальный узел диапазона. |
Since: 2.2
Типы и значения
GtkTreeSelection
typedef struct _GtkTreeSelection GtkTreeSelection;
GtkTreeSelectionClass
typedef struct {
GObjectClass parent_class;
void (* changed) (GtkTreeSelection *selection);
} GtkTreeSelectionClass;
Члены
| Сигнал, генерируемый всякий раз, когда выделение (возможно) изменяется. |
Подробные сведения о свойствах
Свойство “mode”
“mode” GtkSelectionMode
Режим выделения. См. gtk_tree_selection_set_mode() для получения дополнительной информации об этом свойстве.
Флаги: Чтение/Запись
Значение по умолчанию: GTK_SELECTION_SINGLE
Since: 3.2
Подробные сведения о сигналах
Сигнал “changed”
void user_function (GtkTreeSelection *treeselection, gpointer user_data)
Выдается всякий раз, когда выделение (возможно) изменяется. Обратите внимание, что этот сигнал в основном является подсказкой. Он может быть выдан только один раз, когда выделен диапазон строк, и иногда может быть выдан, когда ничего не произошло.
Параметры
treeselection | объект, который получил сигнал. | |
user_data | пользовательские данные, заданные при подключении обработчика сигналов. |
Флаги: Run First
© 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/GtkTreeSelection.html