Spec-Zone.ru › GTK 3.22

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 Run First

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

GtkTreeSelection
GtkTreeSelectionClass

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

    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

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

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

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

data

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

destroy

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

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

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

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

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]

С: 2.2

gtk_tree_selection_count_selected_rows ()

gint
gtk_tree_selection_count_selected_rows
                               (GtkTreeSelection *selection);

Возвращает количество строк, которые были выбраны в tree .

Параметры

selection

A GtkTreeSelection.

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

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

С: 2.2

gtk_tree_selection_select_path ()

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

Выбирает строку по path .

Параметры

selection

A GtkTreeSelection.

path

The GtkTreePath для выбора.

gtk_tree_selection_unselect-path ()

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

Отменяет выбор строки по path .

Параметры

selection

A GtkTreeSelection.

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

A GtkTreeSelection.

path

A GtkTreePath для проверки выбора.

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

TRUE, если path выбрано.

gtk_tree_selection_select-iter ()

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

Выбирает указанный итератор.

Параметры

selection

A GtkTreeSelection.

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;

Члены

changed ()

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

Подробности свойств

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

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

Флаги: Выполнить сначала

См. также

GtkTreeView, GtkTreeViewColumn, GtkTreeModel, GtkTreeSortable, GtkTreeModelSort, GtkListStore, GtkTreeStore, GtkCellRenderer, GtkCellEditable, GtkCellRendererPixbuf, GtkCellRendererText, GtkCellRendererToggle, Перетаскивание и откладывание GtkTreeView

© 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

Spec-Zone.ru

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