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;
GtkCellLayoutIface
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;
GtkCellLayoutDataFunc ()
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