The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Signals

GtkTreeSelection

GtkTreeSelection Объект выбора для GtkTreeView

Краткое описание

#include <gtk/gtk.h>


            GtkTreeSelection;
gboolean    (*GtkTreeSelectionFunc)         (GtkTreeSelection *selection,
                                             GtkTreeModel *model,
                                             GtkTreePath *path,
                                             gboolean path_currently_selected,
                                             gpointer data);
void        (*GtkTreeSelectionForeachFunc)  (GtkTreeModel *model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter,
                                             gpointer data);
void        gtk_tree_selection_set_mode     (GtkTreeSelection *selection,
                                             GtkSelectionMode type);
GtkSelectionMode gtk_tree_selection_get_mode
                                            (GtkTreeSelection *selection);
void        gtk_tree_selection_set_select_function
                                            (GtkTreeSelection *selection,
                                             GtkTreeSelectionFunc func,
                                             gpointer data,
                                             GtkDestroyNotify destroy);
gpointer    gtk_tree_selection_get_user_data
                                            (GtkTreeSelection *selection);
GtkTreeView* gtk_tree_selection_get_tree_view
                                            (GtkTreeSelection *selection);
gboolean    gtk_tree_selection_get_selected (GtkTreeSelection *selection,
                                             GtkTreeModel **model,
                                             GtkTreeIter *iter);
void        gtk_tree_selection_selected_foreach
                                            (GtkTreeSelection *selection,
                                             GtkTreeSelectionForeachFunc func,
                                             gpointer data);
GList*      gtk_tree_selection_get_selected_rows
                                            (GtkTreeSelection *selection,
                                             GtkTreeModel **model);
gint        gtk_tree_selection_count_selected_rows
                                            (GtkTreeSelection *selection);
void        gtk_tree_selection_select_path  (GtkTreeSelection *selection,
                                             GtkTreePath *path);
void        gtk_tree_selection_unselect_path
                                            (GtkTreeSelection *selection,
                                             GtkTreePath *path);
gboolean    gtk_tree_selection_path_is_selected
                                            (GtkTreeSelection *selection,
                                             GtkTreePath *path);
void        gtk_tree_selection_select_iter  (GtkTreeSelection *selection,
                                             GtkTreeIter *iter);
void        gtk_tree_selection_unselect_iter
                                            (GtkTreeSelection *selection,
                                             GtkTreeIter *iter);
gboolean    gtk_tree_selection_iter_is_selected
                                            (GtkTreeSelection *selection,
                                             GtkTreeIter *iter);
void        gtk_tree_selection_select_all   (GtkTreeSelection *selection);
void        gtk_tree_selection_unselect_all (GtkTreeSelection *selection);
void        gtk_tree_selection_select_range (GtkTreeSelection *selection,
                                             GtkTreePath *start_path,
                                             GtkTreePath *end_path);
void        gtk_tree_selection_unselect_range
                                            (GtkTreeSelection *selection,
                                             GtkTreePath *start_path,
                                             GtkTreePath *end_path);

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

  GObject
   +----GtkTreeSelection

Сигналы

"changed"   void        user_function      (GtkTreeSelection *treeselection,
                                            gpointer          user_data)          : Run first

Описание

GtkTreeSelection объект это вспомогательный объект для управления выбором в GtkTreeView виджете. GtkTreeSelection объект создаётся автоматически при создании нового GtkTreeView виджета и не существует независимо от этого виджета. Первопричина существования объекта GtkTreeSelection это чистота кода и API. То есть, нет концептуального основания, все эти функции не могут быть методами в GtkTreeView виджете вместо отдельной функции.

GtkTreeSelection объект получается из GtkTreeView вызовом gtk_tree_view_get_selection(). Им можно управлять для проверки статуса выбора в дереве, так же как выделить или снять выделение с отдельной строки. Выделение происходит полностью на стороне просмотра (view). Как результат, множество полей просмотра одной и той же модели могут иметь полностью отличающиеся выделения. Дополнительно вы можете изменить выделение строк в модели которая в данный момент не отображается для просмотра и не расширяя предварительно её родителей.

Важно помнить что сигнал "changed" является подсказкой при контроле выбора в поле просмотра. Может издаться только один сигнал когда выбран диапазон строк. Дополнительно в некоторых случаях может издаться сигнал "changed" когда ничего не происходило (в основном как результат запрограммированного вызова select_row на уже выбранной строке).

Детали

GtkTreeSelection

typedef struct _GtkTreeSelection GtkTreeSelection;

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 :

Пользовательские данные

Возвращает :

TRUE, если состояние выбора строки может быть переключено


GtkTreeSelectionForeachFunc ()

void        (*GtkTreeSelectionForeachFunc)  (GtkTreeModel *model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter,
                                             gpointer data);

Функция используемая gtk_tree_selection_selected_foreach() для отображения всех выделенных строк. Она вызывается для каждой выделенной строки в поле просмотра.

model :

Рассматриваемая GtkTreeModel

path :

GtkTreePath выбранной строки

iter :

GtkTreeIter указатель на выбранную строку

data :

Пользовательские данные


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,
                                             GtkDestroyNotify destroy);

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

selection :

GtkTreeSelection.

func :

Функция выделения.

data :

Данные функции выделения.

destroy :

Разрушающая функция для пользовательских данных. Может быть NULL.


gtk_tree_selection_get_user_data ()

gpointer    gtk_tree_selection_get_user_data
                                            (GtkTreeSelection *selection);

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

selection :

GtkTreeSelection.

Возвращает :

Пользовательские данные.


gtk_tree_selection_get_tree_view ()

GtkTreeView* gtk_tree_selection_get_tree_view
                                            (GtkTreeSelection *selection);

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

selection :

GtkTreeSelection

Возвращает :

GtkTreeView


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 :

GtkTreeSelection.

model :

Указатель на установленную GtkTreeModel, или NULL.

iter :

GtkTreeIter, или NULL.

Возвращает :

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 :

GtkTreeSelection.

func :

Функция вызываемая для каждого выбранного элемента.

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_foreach (list, gtk_tree_path_free, NULL);
g_list_free (list);

selection :

GtkTreeSelection.

model :

Указатель на установленную GtkTreeModel, или NULL.

Возвращает :

GList содержащий GtkTreePath для каждой выбранной строки.

Начиная с версии 2.2


gtk_tree_selection_count_selected_rows ()

gint        gtk_tree_selection_count_selected_rows
                                            (GtkTreeSelection *selection);

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

selection :

GtkTreeSelection.

Возвращает :

Число выбранных строк.

Начиная с версии 2.2


gtk_tree_selection_select_path ()

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

Выделяет строку указанную в path.

selection :

GtkTreeSelection.

path :

GtkTreePath для выделения.


gtk_tree_selection_unselect_path ()

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

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

selection :

GtkTreeSelection.

path :

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


gtk_tree_selection_path_is_selected ()

gboolean    gtk_tree_selection_path_is_selected
                                            (GtkTreeSelection *selection,
                                             GtkTreePath *path);

Возвращает TRUE если строка указанная в path является выделенной. Если path указывает на не допустимое положение, возвращается FALSE.

selection :

GtkTreeSelection.

path :

GtkTreePath для проверки выделения.

Возвращает :

TRUE если path это текущеме выделение.


gtk_tree_selection_select_iter ()

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

Выделяет определенный итератор.

selection :

GtkTreeSelection.

iter :

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

Детали сигнала

Сигнал "changed"

void        user_function                  (GtkTreeSelection *treeselection,
                                            gpointer          user_data)          : Run first

Издаётся каждый раз при изменении выделения. Он может издаться только один раз при выделении диапазона элементов, а может издаться когда ничего не происходит.

treeselection :

Объект получающий сигнал.

user_data :

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

Смотрите также

GtkTreeView, GtkTreeViewColumn, GtkTreeDnd, GtkTreeMode, GtkTreeSortable, GtkTreeModelSort, GtkListStore, GtkTreeStore, GtkCellRenderer, GtkCellEditable, GtkCellRendererPixbuf, GtkCellRendererText, GtkCellRendererToggle




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру