Spec-Zone.ru › GTK 3.24

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

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

Устанавливает функцию выбора.

Если задана, эта функция вызывается перед выделением или снятием выделения с любого узла, предоставляя некоторый контроль над тем, какие узлы выделены. Функция выбора должна возвращать TRUE если состояние узла может быть переключено и FALSE если состояние узла должно остаться неизменным.

Параметры

selection

Объект GtkTreeSelection.

func

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

[nullable]

data

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

destroy

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

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

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

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

Parameters

selection

A GtkTreeSelection.

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

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);

Parameters

selection

A GtkTreeSelection.

model

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

[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

A GtkTreeSelection.

Returns

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

Since: 2.2

gtk_tree_selection_select_path ()

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

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

Parameters

selection

A GtkTreeSelection.

path

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

gtk_tree_selection_unselect_path ()

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

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

Parameters

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

Parameters

selection

A GtkTreeSelection.

path

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

Returns

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

gtk_tree_selection_select_iter ()

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

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

Parameters

selection

A GtkTreeSelection.

iter

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

gtk_tree_selection_unselect_iter ()

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

Снимает выбор указанного итератора.

Parameters

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

A valid 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

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

С: 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().

Владелец: GtkTreeSelection

Флаги: Чтение / Запись

Значение по умолчанию: 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.24/GtkTreeSelection.html

Spec-Zone.ru

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