| |
|
GTK+ Reference Manual |
||||
|---|---|---|---|---|
|
Top | Description | Object Hierarchy | | Known Implementations |
||||
GtkCellLayoutGtkCellLayout Интерфейс для упаковочных ячеек |
#include <gtk/gtk.h>
GtkCellLayout;
GtkCellLayoutIface;
void (*GtkCellLayoutDataFunc) (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
GtkTreeModel *tree_model,
GtkTreeIter *iter,
gpointer data);
void gtk_cell_layout_pack_start (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
gboolean expand);
void gtk_cell_layout_pack_end (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
gboolean expand);
void gtk_cell_layout_reorder (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
gint position);
void gtk_cell_layout_clear (GtkCellLayout *cell_layout);
void gtk_cell_layout_set_attributes (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
...);
void gtk_cell_layout_add_attribute (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
const gchar *attribute,
gint column);
void gtk_cell_layout_set_cell_data_func
(GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
GtkCellLayoutDataFunc func,
gpointer func_data,
GDestroyNotify destroy);
void gtk_cell_layout_clear_attributes
(GtkCellLayout *cell_layout,
GtkCellRenderer *cell);
GInterface +----GtkCellLayout
GtkCellLayout требует GObject.
GtkCellLayout реализован GtkCellView, GtkEntryCompletion, GtkTreeViewColumn, GtkComboBox, GtkIconView и GtkComboBoxEntry.
GtkCellLayout это интерфейс для реализации всех объектов которые хотят обеспечить GtkTreeViewColumn-подобный API для упаковочных ячеек, установки атрибутов и данных функций.
Одной из известных особенностей
реализации GtkCellLayout являются атрибуты
(attributes). Атрибуты позволяют вам
устанавливать свойства разными способами.
Они могут просто устанавливать значения
констант как обычные свойства. А так же
они могут отображать столбцы основной
древовидной модели с помощью
gtk_cell_layout_set_attributes(),
это значит что значение атрибута может
изменяться от ячейки к ячейке, поскольку
они представлены ячейкой представления.
Наконец, можно определить функцию с
помощью gtk_cell_layout_set_cell_data_func()
которая вызывается для определения
значения атрибута для каждой представленной
ячейки.
typedef struct _GtkCellLayout GtkCellLayout;
typedef struct {
GTypeInterface g_iface;
/* Виртуальная таблица */
void (* pack_start) (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
gboolean expand);
void (* pack_end) (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
gboolean expand);
void (* clear) (GtkCellLayout *cell_layout);
void (* add_attribute) (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
const gchar *attribute,
gint column);
void (* set_cell_data_func) (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
GtkCellLayoutDataFunc func,
gpointer func_data,
GDestroyNotify destroy);
void (* clear_attributes) (GtkCellLayout *cell_layout,
GtkCellRenderer *cell);
void (* reorder) (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
gint position);
} GtkCellLayoutIface;
void (*GtkCellLayoutDataFunc) (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
GtkTreeModel *tree_model,
GtkTreeIter *iter,
gpointer data);
Функция которая должна установить
значение cell_layout's соответствующее
ячейки представления.
|
|
|
|
|
Ячейка представления чьё значение должно быть установлено |
|
|
модель |
|
|
GtkTreeIter указывает строку для установки значения |
|
|
Пользовательские данные помещаемые
в |
void gtk_cell_layout_pack_start (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
gboolean expand);
Упаковывает cell в начало
cell_layout. Если expand
равен FALSE,
то cell не занимает больше
пространства чем необходимо. Любое
свободное пространство распределяется
между ячейками для которых expand
равен TRUE.
Помните, многократное использование той же самой ячейки представления не поддерживается.
|
|
|
|
|
|
|
|
|
Начиная с версии 2.4
void gtk_cell_layout_pack_end (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
gboolean expand);
Добавляет cell в конец
cell_layout. Если expand
равен FALSE,
то cell занимает пространства
не больше чем нужно. Любое свободное
пространство распределяется между
ячейками для которых expand
равен TRUE.
Помните, многократное использование той же самой ячейки представления не поддерживается.
|
|
|
|
|
|
|
|
|
Начиная с версии 2.4
void gtk_cell_layout_reorder (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
gint position);
Пере устанавливает cell в
position. Помните, cell
уже должна быть упакована в cell_layout
должным образом.
|
|
|
|
|
GtkCellRenderer для переупорядочивания. |
|
|
Новая позиция для вставленной |
Начиная с версии 2.4
void gtk_cell_layout_clear (GtkCellLayout *cell_layout);
Сбрасывает всё отображаемое на всех
представленных в cell_layout и
удаляет все представленные из cell_layout.
|
|
Начиная с версии 2.4
void gtk_cell_layout_set_attributes (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
...);
Устанавливает атрибуты в список как
атрибуты cell_layout. Атрибуты
должны быть в attribute/column порядке, как в
gtk_cell_layout_add_attribute().
Все существующие атрибуты удаляются и
переписываются новыми атрибутами.
|
|
|
|
|
|
|
|
|
Начиная с версии 2.4
void gtk_cell_layout_add_attribute (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
const gchar *attribute,
gint column);
Добавляет атрибут отображения для
списка в cell_layout. Параметр
column это столбец в модели из
которого получается значение, а attribute
это параметр cell для получения
значения. Так например, если столбец 2
в модели содержит строки, вы могли бы
иметь "text" атрибут GtkCellRendererText
получив его значение из столбца 2.
|
|
|
|
|
|
|
|
Атрибуты. |
|
|
Позиция столбца в модели для получения из него атрибутов. |
Начиная с версии 2.4
void gtk_cell_layout_set_cell_data_func
(GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
GtkCellLayoutDataFunc func,
gpointer func_data,
GDestroyNotify destroy);
Устанавливает GtkCellLayoutDataFunc
для использования в cell_layout.
Эта функция используется вместо
стандартных атрибутов отображения для
установки значения столбца, и должна
устанавливать значение cell_layout's
соответствующее ячейки представления.
func может быть NULL
для удаления старых значений.
|
|
|
|
|
|
|
|
GtkCellLayoutDataFunc для использования. |
|
|
Пользовательские данные для |
|
|
Разрушающее уведомление для |
Начиная с версии 2.4
void gtk_cell_layout_clear_attributes
(GtkCellLayout *cell_layout,
GtkCellRenderer *cell);
Очищает все предварительно установленные
с помощью gtk_cell_layout_set_attributes()
атрибуты.
|
|
|
|
|
GtkCellRenderer для удаления атрибутов отображения. |
Начиная с версии 2.4
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |