GtkTreeSelection
GtkTreeSelection — Объект выбора для GtkTreeView
Функции
| gboolean | (*GtkTreeSelectionFunc) () |
| void | (*GtkTreeSelectionForeachFunc) () |
| void | gtk_tree_selection_set_mode () |
| GtkSelectionMode | gtk_tree_selection_get_mode () |
| void | gtk_tree_selection_set_select_function () |
| GtkTreeSelectionFunc | gtk_tree_selection_get_select_function () |
| gpointer | gtk_tree_selection_get_user_data () |
| GtkTreeView * | gtk_tree_selection_get_tree_view () |
| gboolean | gtk_tree_selection_get_selected () |
| void | gtk_tree_selection_selected_foreach () |
| GList * | gtk_tree_selection_get_selected_rows () |
| gint | gtk_tree_selection_count_selected_rows () |
| void | gtk_tree_selection_select_path () |
| void | gtk_tree_selection_unselect_path () |
| gboolean | gtk_tree_selection_path_is_selected () |
| void | gtk_tree_selection_select_iter () |
| void | gtk_tree_selection_unselect_iter () |
| gboolean | gtk_tree_selection_iter_is_selected () |
| void | gtk_tree_selection_select_all () |
| void | gtk_tree_selection_unselect_all () |
| void | gtk_tree_selection_select_range () |
| void | gtk_tree_selection_unselect_range () |
Свойства
| GtkSelectionMode | mode | Чтение / Запись |
Сигналы
| void | changed | Выполняется первым |
Типы и значения
Иерархия объектов
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 | Объект 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);
Устанавливает функцию выбора.
Если задана, эта функция вызывается перед выделением или снятием выделения с любого узла, предоставляя некоторый контроль над тем, какие узлы выделены. Функция выбора должна возвращать TRUE если состояние узла может быть переключено и FALSE если состояние узла должно остаться неизменным.
Параметры
selection | Объект GtkTreeSelection. | |
func | Функция выбора. Может быть | [nullable] |
data | Данные функции выбора. Может быть | |
destroy | Функция удаления данных пользователя. Может быть |
gtk_tree_selection_get_select_function ()
GtkTreeSelectionFunc
gtk_tree_selection_get_select_function
(GtkTreeSelection *selection); Возвращает текущую функцию выбора.
[skip]
Параметры
selection | Объект GtkTreeSelection. |
Возвращаемое значение
Функция.
С: 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.
Parameters
selection | ||
model | Указатель, который будет установлен на GtkTreeModel, или NULL. | [out][allow-none][transfer none] |
iter | The GtkTreeIter, или NULL. | [out][allow-none] |
Returns
TRUE, если есть выбранный узел.
gtk_tree_selection_selected_foreach ()
void gtk_tree_selection_selected_foreach (GtkTreeSelection *selection,GtkTreeSelectionForeachFunc func,gpointer data);
Вызывает функцию для каждого выбранного узла. Обратите внимание, что вы не можете изменять дерево или выбор в этой функции. В результате, gtk_tree_selection_get_selected_rows() может быть более полезным.
Parameters
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);
Parameters
selection | ||
model | Указатель, который будет установлен на GtkTreeModel, или | [out][allow-none][transfer none] |
Returns
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 .
Parameters
selection |
Returns
Количество выбранных строк.
Since: 2.2
gtk_tree_selection_select_path ()
void gtk_tree_selection_select_path (GtkTreeSelection *selection,GtkTreePath *path);
Выбрать строку по path .
Parameters
selection | ||
path | The GtkTreePath для выбора. |
gtk_tree_selection_unselect_path ()
void gtk_tree_selection_unselect_path (GtkTreeSelection *selection,GtkTreePath *path);
Снимает выбор строки по path .
Parameters
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
Parameters
selection | ||
path | A GtkTreePath для проверки выбора. |
Returns
TRUE если path выбран.
gtk_tree_selection_select_iter ()
void gtk_tree_selection_select_iter (GtkTreeSelection *selection,GtkTreeIter *iter);
Выбирает указанный итератор.
Parameters
selection | ||
iter | The GtkTreeIter для выбора. |
gtk_tree_selection_unselect_iter ()
void gtk_tree_selection_unselect_iter (GtkTreeSelection *selection,GtkTreeIter *iter);
Снимает выбор указанного итератора.
Parameters
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 | A valid 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 | Конечный узел диапазона. |
С: 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().
Владелец: GtkTreeSelection
Флаги: Чтение / Запись
Значение по умолчанию: 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.24/GtkTreeSelection.html