| 
 | |
|  | 
| GTK+ Reference Manual | ||||
|---|---|---|---|---|
| GtkTreeSelectionGtkTreeSelection Объект выбора для 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 firstGtkTreeSelection объект это вспомогательный объект для управления выбором в GtkTreeView виджете. GtkTreeSelection объект создаётся автоматически при создании нового GtkTreeView виджета и не существует независимо от этого виджета. Первопричина существования объекта GtkTreeSelection это чистота кода и API. То есть, нет концептуального основания, все эти функции не могут быть методами в GtkTreeView виджете вместо отдельной функции.
GtkTreeSelection объект получается из GtkTreeView вызовом gtk_tree_view_get_selection(). Им можно управлять для проверки статуса выбора в дереве, так же как выделить или снять выделение с отдельной строки. Выделение происходит полностью на стороне просмотра (view). Как результат, множество полей просмотра одной и той же модели могут иметь полностью отличающиеся выделения. Дополнительно вы можете изменить выделение строк в модели которая в данный момент не отображается для просмотра и не расширяя предварительно её родителей.
Важно помнить что сигнал "changed" является подсказкой при контроле выбора в поле просмотра. Может издаться только один сигнал когда выбран диапазон строк. Дополнительно в некоторых случаях может издаться сигнал "changed" когда ничего не происходило (в основном как результат запрограммированного вызова select_row на уже выбранной строке).
typedef struct _GtkTreeSelection GtkTreeSelection;
gboolean    (*GtkTreeSelectionFunc)         (GtkTreeSelection *selection,
                                             GtkTreeModel *model,
                                             GtkTreePath *path,
                                             gboolean path_currently_selected,
                                             gpointer data);Функция используемая gtk_tree_selection_set_select_function() для определения может ли строка быть выбрана. Она вызывается каждый раз когда изменяется состояние строки. Возвращаемое значение TRUE указывает для selection что изменение выбора выполнено.
| selection : | |
| model : | GtkTreeModel которая рассматривается | 
| path : | GtkTreePath запрашиваемой строки | 
| path_currently_selected : | TRUE, если путь это текущеме выделение | 
| data : | Пользовательские данные | 
| Возвращает : | TRUE, если состояние выбора строки может быть переключено | 
void        (*GtkTreeSelectionForeachFunc)  (GtkTreeModel *model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter,
                                             gpointer data);Функция используемая gtk_tree_selection_selected_foreach() для отображения всех выделенных строк. Она вызывается для каждой выделенной строки в поле просмотра.
| model : | Рассматриваемая GtkTreeModel | 
| path : | GtkTreePath выбранной строки | 
| iter : | GtkTreeIter указатель на выбранную строку | 
| data : | Пользовательские данные | 
void        gtk_tree_selection_set_mode     (GtkTreeSelection *selection,
                                             GtkSelectionMode type);Устанавливает режим выбора selection. Если первичный тип был GTK_SELECTION_MULTIPLE, то когда якорь сохраняется выделенным, если он предварительно был выделен.
| selection : | |
| type : | Режим выделения | 
GtkSelectionMode gtk_tree_selection_get_mode
                                            (GtkTreeSelection *selection);Выдаёт режим выделения для selection. Смотрите gtk_tree_selection_set_mode().
| selection : | |
| Возвращает : | Текущий режим выделения | 
void        gtk_tree_selection_set_select_function
                                            (GtkTreeSelection *selection,
                                             GtkTreeSelectionFunc func,
                                             gpointer data,
                                             GtkDestroyNotify destroy);Устанавливает функцию выделения. Если установлена, эта функция вызывается перед выделением или снятием выделения любого элемента, создавая некоторый контроль выделения. Функция выбора должна возвращать TRUE если состояние элемента может быть переключено, а FALSE если состояние элемента должно быть выставлено неизменяемым.
| selection : | |
| func : | Функция выделения. | 
| data : | Данные функции выделения. | 
| destroy : | Разрушающая функция для пользовательских данных. Может быть NULL. | 
gpointer    gtk_tree_selection_get_user_data
                                            (GtkTreeSelection *selection);Возвращает пользовательские данные для функции выбора.
| selection : | |
| Возвращает : | Пользовательские данные. | 
GtkTreeView* gtk_tree_selection_get_tree_view
                                            (GtkTreeSelection *selection);Возвращает дерево просмотра связанное с selection.
| selection : | |
| Возвращает : | 
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 : | |
| model : | Указатель на установленную GtkTreeModel, или NULL. | 
| iter : | GtkTreeIter, или NULL. | 
| Возвращает : | TRUE, если есть выбранные элементы. | 
void        gtk_tree_selection_selected_foreach
                                            (GtkTreeSelection *selection,
                                             GtkTreeSelectionForeachFunc func,
                                             gpointer data);Взывает функцию для каждого выбранного элемента. Помните что вы не можете модифицировать дерево или выделение внутри этой функции. Как результат, gtk_tree_selection_get_selected_rows() может быть более полезна.
| selection : | |
| func : | Функция вызываемая для каждого выбранного элемента. | 
| data : | Пользовательские данные помещаемые в функцию. | 
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 : | |
| model : | Указатель на установленную GtkTreeModel, или NULL. | 
| Возвращает : | GList содержащий GtkTreePath для каждой выбранной строки. | 
Начиная с версии 2.2
gint        gtk_tree_selection_count_selected_rows
                                            (GtkTreeSelection *selection);Возвращает число строк выделенных в дереве tree.
| selection : | |
| Возвращает : | Число выбранных строк. | 
Начиная с версии 2.2
void        gtk_tree_selection_select_path  (GtkTreeSelection *selection,
                                             GtkTreePath *path);Выделяет строку указанную в path.
| selection : | |
| path : | GtkTreePath для выделения. | 
void        gtk_tree_selection_unselect_path
                                            (GtkTreeSelection *selection,
                                             GtkTreePath *path);Снимает выделение строки указанной в path.
| selection : | |
| path : | GtkTreePath для отмены выделения. | 
gboolean    gtk_tree_selection_path_is_selected
                                            (GtkTreeSelection *selection,
                                             GtkTreePath *path);Возвращает TRUE если строка указанная в path является выделенной. Если path указывает на не допустимое положение, возвращается FALSE.
| selection : | |
| path : | GtkTreePath для проверки выделения. | 
| Возвращает : | TRUE если path это текущеме выделение. | 
void        gtk_tree_selection_select_iter  (GtkTreeSelection *selection,
                                             GtkTreeIter *iter);Выделяет определенный итератор.
| selection : | |
| iter : | GtkTreeIter для выделения. | 
void        gtk_tree_selection_unselect_iter
                                            (GtkTreeSelection *selection,
                                             GtkTreeIter *iter);Отменяет выделение определенного итератора.
| selection : | |
| iter : | GtkTreeIter для отмены выделения. | 
gboolean    gtk_tree_selection_iter_is_selected
                                            (GtkTreeSelection *selection,
                                             GtkTreeIter *iter);Возвращает TRUE если строка iter является текущим выделением.
| selection : | |
| iter : | Допустимый GtkTreeIter | 
| Возвращает : | TRUE, если iter это текущеме выделение. | 
void gtk_tree_selection_select_all (GtkTreeSelection *selection);
Выделяет все элементы. selection должно быть установлено в режим GTK_SELECTION_MULTIPLE.
| selection : | 
void gtk_tree_selection_unselect_all (GtkTreeSelection *selection);
Отменяет выделение всех элементов.
| selection : | 
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 : | Конец диапазона элементов. | 
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
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
| Закладки на сайте Проследить за страницей | Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |