Spec-Zone.ru › GTK 3.20

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 Выполняется первым

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

GtkTreeSelection
GtkTreeSelectionClass

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

    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

A GtkTreeSelection

model

A GtkTreeModel для отображения

path

The GtkTreePath строки, о которой идёт речь

path_currently_selected

TRUE, если путь в данный момент выделен

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

A GtkTreeSelection.

type

Режим выделения

gtk_tree_selection_get_mode ()

GtkSelectionMode
gtk_tree_selection_get_mode (GtkTreeSelection *selection);

Возвращает режим выделения для selection. См. gtk_tree_selection_set_mode().

Параметры

selection

a 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

A GtkTreeSelection.

func

Функция выделения. Может быть NULL

data

Данные функции выделения. Может быть NULL

destroy

Функция уничтожения пользовательских данных. Может быть NULL

gtk_tree_selection_get_select_function ()

GtkTreeSelectionFunc
gtk_tree_selection_get_select_function
                               (GtkTreeSelection *selection);

Возвращает текущую функцию выделения.

[skip]

Параметры

selection

A GtkTreeSelection.

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

Функция.

Since: 2.14

gtk_tree_selection_get_user_data ()

gpointer
gtk_tree_selection_get_user_data (GtkTreeSelection *selection);

Возвращает данные пользователя для функции выделения.

[skip]

Параметры

selection

A GtkTreeSelection.

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

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

gtk_tree_selection_get_tree_view ()

GtkTreeView *
gtk_tree_selection_get_tree_view (GtkTreeSelection *selection);

Возвращает связанное представление дерева для selection.

Параметры

selection

A GtkTreeSelection

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

A GtkTreeView.

[transfer none]

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

A GtkTreeSelection.

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

A GtkTreeSelection.

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

A GtkTreeSelection.

model

Указатель, который нужно установить на GtkTreeModel, или NULL.

[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

A GtkTreeSelection.

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

Количество выделенных строк.

Since: 2.2

gtk_tree_selection-select-path ()

void
gtk_tree_selection_select_path (GtkTreeSelection *selection,
                                GtkTreePath *path);

Выделить строку по path .

Параметры

selection

A GtkTreeSelection.

path

The GtkTreePath to be selected.

gtk_tree_selection_unselect_path ()

void
gtk_tree_selection_unselect_path (GtkTreeSelection *selection,
                                  GtkTreePath *path);

Снимает выделение со строки по path .

Параметры

selection

A GtkTreeSelection.

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

A GtkTreeSelection.

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

A GtkTreeSelection.

iter

The GtkTreeIter to be selected.

gtk_tree_selection_unselect_iter ()

void
gtk_tree_selection_unselect_iter (GtkTreeSelection *selection,
                                  GtkTreeIter *iter);

Отменяет выделение указанного итератора.

Параметры

selection

A GtkTreeSelection.

iter

The GtkTreeIter для отмены выделения.

gtk_tree_selection_iter_is_selected ()

gboolean
gtk_tree_selection_iter_is_selected (GtkTreeSelection *selection,
                                     GtkTreeIter *iter);

Возвращает TRUE, если строка по адресу iter в данный момент выделена.

Параметры

selection

A GtkTreeSelection

iter

Действительный GtkTreeIter

Возвращает

TRUE, если iter выделен

gtk_tree_selection_select_all ()

void
gtk_tree_selection_select_all (GtkTreeSelection *selection);

Выделяет все узлы. Режим selection должен быть установлен в режим GTK_SELECTION_MULTIPLE.

Параметры

selection

A GtkTreeSelection.

gtk_tree_selection_unselect_all ()

void
gtk_tree_selection_unselect_all (GtkTreeSelection *selection);

Отменяет выделение всех узлов.

Параметры

selection

A 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

A 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

A GtkTreeSelection.

start_path

Начальный узел диапазона.

end_path

Начальный узел диапазона.

Since: 2.2

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

GtkTreeSelection

typedef struct _GtkTreeSelection GtkTreeSelection;

GtkTreeSelectionClass

typedef struct {
  GObjectClass parent_class;


  void (* changed) (GtkTreeSelection *selection);
} GtkTreeSelectionClass;

Члены

changed ()

Сигнал, генерируемый всякий раз, когда выделение (возможно) изменяется.

Подробные сведения о свойствах

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

См. также

GtkTreeView, GtkTreeViewColumn, GtkTreeModel, GtkTreeSortable, GtkTreeModelSort, GtkListStore, GtkTreeStore, GtkCellRenderer, GtkCellEditable, GtkCellRendererPixbuf, GtkCellRendererText, GtkCellRendererToggle, GtkTreeView drag-and-drop

© 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

Spec-Zone.ru

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