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(). Его можно использовать для проверки состояния выделения дерева, а также для выделения и снятия выделения отдельных строк. Выделение выполняется полностью на стороне представления. В результате, у нескольких представлений одного и того же модели могут быть совершенно разные выделения. Кроме того, вы не можете изменить выделение строки в модели, которая в данный момент не отображается представлением, не развернув сначала её родительские элементы.
Важно помнить, что при отслеживании выделения в представлении сигнал «изменён» в основном является подсказкой. То есть, он может генерировать только один сигнал при выделении диапазона строк. Кроме того, он может иногда генерировать сигнал «изменён», когда ничего не произошло (в основном в результате вызова 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 | Объект GtkTreeSelection | |
model | Объект GtkTreeModel, отображаемый в представлении | |
path | Путь GtkTreePath строки | |
path_currently_selected |
| |
data | пользовательские данные. | [closure] |
Возвращаемое значение
TRUE, если состояние выделения строки может быть переключено
GtkTreeSelectionForeachFunc ()
void (*GtkTreeSelectionForeachFunc) (GtkTreeModel *model,GtkTreePath *path,GtkTreeIter *iter,gpointer data);
Функция, используемая gtk_tree_selection_selected_foreach() для обработки всех выделенных строк. Будет вызвана для каждой выделенной строки в представлении.
Параметры
model | Объект GtkTreeModel, отображаемый в представлении | |
path | Путь GtkTreePath выделенной строки | |
iter | Объект GtkTreeIter, указывающий на выделенную строку | |
data | пользовательские данные. | [closure] |
gtk_tree_selection_set_mode ()
void gtk_tree_selection_set_mode (GtkTreeSelection *selection,GtkSelectionMode type);
Устанавливает режим выделения для selection. Если предыдущий тип был GTK_SELECTION_MULTIPLE, то якорная строка сохраняется выделенной, если она была выделена ранее.
Параметры
selection | Объект GtkTreeSelection. | |
type | Режим выделения |
gtk_tree_selection_get_mode ()
GtkSelectionMode
gtk_tree_selection_get_mode (GtkTreeSelection *selection); Получает текущий режим выделения для selection. См. gtk_tree_selection_set_mode().
Параметры
selection | объект GtkTreeSelection |
Возвращаемое значение
текущий режим выделения
gtk_tree_selection_set_select_function ()
void gtk_tree_selection_set_select_function (GtkTreeSelection *selection,GtkTreeSelectionFunc func,gpointer data,GDestroyNotify destroy);
Устанавливает функцию выделения.
Если установлена, эта функция вызывается перед выделением или снятием выделения узла, предоставляя некоторый контроль над тем, какие узлы будут выделены. Функция select должна возвращать TRUE, если состояние узла может быть переключено, и FALSE, если состояние узла должно остаться неизменным.
Параметры
selection | Объект GtkTreeSelection. | |
func | Функция выделения. Может быть | |
data | Данные функции выделения. Может быть | |
destroy | Функция уничтожения пользовательских данных. Может быть |
gtk_tree_selection_get_select_function ()
GtkTreeSelectionFunc
gtk_tree_selection_get_select_function
(GtkTreeSelection *selection); Возвращает текущую функцию выделения.
[skip]
Параметры
selection | Объект GtkTreeSelection. |
Возвращаемое значение
Функция.
Since: 2.14
gtk_tree_selection_get_user_data ()
gpointer
gtk_tree_selection_get_user_data (GtkTreeSelection *selection); Возвращает пользовательские данные для функции выделения.
[skip]
Параметры
selection | Объект GtkTreeSelection. |
Возвращаемое значение
Пользовательские данные.
gtk_tree_selection_get_tree_view ()
GtkTreeView *
gtk_tree_selection_get_tree_view (GtkTreeSelection *selection); Возвращает представление дерева, связанное с selection.
Параметры
selection | Объект GtkTreeSelection |
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 | 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().
Для освобождения возвращаемого значения используйте:
g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free);
Параметры
selection | ||
model | Указатель, который будет устанавливаться на GtkTreeModel, или | [out][allow-none][transfer none] |
Возвращаемое значение
A GList содержащий GtkTreePath для каждой выбранной строки.
[element-type GtkTreePath][transfer full]
С: 2.2
gtk_tree_selection_count_selected_rows ()
gint
gtk_tree_selection_count_selected_rows
(GtkTreeSelection *selection); Возвращает количество строк, которые были выбраны в tree .
Параметры
selection |
Возвращаемое значение
Количество выбранных строк.
С: 2.2
gtk_tree_selection_select_path ()
void gtk_tree_selection_select_path (GtkTreeSelection *selection,GtkTreePath *path);
Выбирает строку по path .
Параметры
selection | ||
path | The GtkTreePath для выбора. |
gtk_tree_selection_unselect-path ()
void gtk_tree_selection_unselect_path (GtkTreeSelection *selection,GtkTreePath *path);
Отменяет выбор строки по path .
Параметры
selection | ||
path | The GtkTreePath для отмены выбора. |
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 для проверки выбора. |
Возвращаемое значение
TRUE, если path выбрано.
gtk_tree_selection_select-iter ()
void gtk_tree_selection_select_iter (GtkTreeSelection *selection,GtkTreeIter *iter);
Выбирает указанный итератор.
Параметры
selection | ||
iter | The GtkTreeIter для выбора. |
gtk_tree_selection_unselect_iter ()
void gtk_tree_selection_unselect_iter (GtkTreeSelection *selection,GtkTreeIter *iter);
Отменяет выбор указанного итератора.
Параметры
selection | Объект GtkTreeSelection. | |
iter | Итератор GtkTreeIter, который нужно отменить. |
gtk_tree_selection_iter_is_selected ()
gboolean gtk_tree_selection_iter_is_selected (GtkTreeSelection *selection,GtkTreeIter *iter);
Возвращает TRUE, если строка по iter в данный момент выбрана.
Параметры
selection | Объект GtkTreeSelection. | |
iter | Действительный итератор GtkTreeIter. |
Возвращает
TRUE, если iter выбран
gtk_tree_selection_select_all ()
void
gtk_tree_selection_select_all (GtkTreeSelection *selection); Выбирает все узлы. selection должен быть установлен в режим GTK_SELECTION_MULTIPLE.
Параметры
selection | Объект GtkTreeSelection. |
gtk_tree_selection_unselect_all ()
void
gtk_tree_selection_unselect_all (GtkTreeSelection *selection); Отменяет выбор всех узлов.
Параметры
selection | Объект GtkTreeSelection. |
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 | Объект GtkTreeSelection. | |
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 | Объект GtkTreeSelection. | |
start_path | Начальный узел диапазона. | |
end_path | Начальный узел диапазона. |
С: 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
С: 3.2
Подробности сигналов
Сигнал “changed”
void user_function (GtkTreeSelection *treeselection, gpointer user_data)
Генерируется при (возможном) изменении выбора. Обратите внимание, что этот сигнал в основном является подсказкой. Он может быть сгенерирован только один раз, когда выделяется диапазон строк, и иногда он генерируется, когда ничего не произошло.
Параметры
treeselection | объект, получивший сигнал. | |
user_data | пользовательские данные, установленные при подключении обработчика сигналов. |
Флаги: Выполнить сначала
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkTreeSelection.html