Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |   |  Known Implementations

GtkCellLayout

GtkCellLayout Интерфейс для упаковочных ячеек

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

#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() которая вызывается для определения значения атрибута для каждой представленной ячейки.

Детали

GtkCellLayout

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 соответствующее ячейки представления.

cell_layout :

GtkCellLayout

cell :

Ячейка представления чьё значение должно быть установлено

tree_model :

модель

iter :

GtkTreeIter указывает строку для установки значения

data :

Пользовательские данные помещаемые в gtk_cell_layout_set_cell_data_func()


gtk_cell_layout_pack_start ()

void gtk_cell_layout_pack_start (GtkCellLayout *cell_layout, GtkCellRenderer *cell, gboolean expand);

Упаковывает cell в начало cell_layout. Если expand равен FALSE, то cell не занимает больше пространства чем необходимо. Любое свободное пространство распределяется между ячейками для которых expand равен TRUE.

Помните, многократное использование той же самой ячейки представления не поддерживается.

cell_layout :

GtkCellLayout.

cell :

GtkCellRenderer.

expand :

TRUE если cell должна занимать всё доступное пространство cell_layout.

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


gtk_cell_layout_pack_end ()

void gtk_cell_layout_pack_end (GtkCellLayout *cell_layout, GtkCellRenderer *cell, gboolean expand);

Добавляет cell в конец cell_layout. Если expand равен FALSE, то cell занимает пространства не больше чем нужно. Любое свободное пространство распределяется между ячейками для которых expand равен TRUE.

Помните, многократное использование той же самой ячейки представления не поддерживается.

cell_layout :

GtkCellLayout.

cell :

GtkCellRenderer.

expand :

TRUE если cell должна заменять всё свободное пространство cell_layout.

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


gtk_cell_layout_reorder ()

void gtk_cell_layout_reorder (GtkCellLayout *cell_layout, GtkCellRenderer *cell, gint position);

Пере устанавливает cell в position. Помните, cell уже должна быть упакована в cell_layout должным образом.

cell_layout :

GtkCellLayout.

cell :

GtkCellRenderer для переупорядочивания.

position :

Новая позиция для вставленной cell.

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


gtk_cell_layout_clear ()

void        gtk_cell_layout_clear           (GtkCellLayout *cell_layout);

Сбрасывает всё отображаемое на всех представленных в cell_layout и удаляет все представленные из cell_layout.

cell_layout :

GtkCellLayout.

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


gtk_cell_layout_set_attributes ()

void gtk_cell_layout_set_attributes (GtkCellLayout *cell_layout, GtkCellRenderer *cell, ...);

Устанавливает атрибуты в список как атрибуты cell_layout. Атрибуты должны быть в attribute/column порядке, как в gtk_cell_layout_add_attribute(). Все существующие атрибуты удаляются и переписываются новыми атрибутами.

cell_layout :

GtkCellLayout.

cell :

GtkCellRenderer.

... :

NULL-завершенный список атрибутов.

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


gtk_cell_layout_add_attribute ()

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.

cell_layout :

GtkCellLayout.

cell :

GtkCellRenderer.

attribute :

Атрибуты.

column :

Позиция столбца в модели для получения из него атрибутов.

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


gtk_cell_layout_set_cell_data_func ()

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 для удаления старых значений.

cell_layout :

GtkCellLayout.

cell :

GtkCellRenderer.

func :

GtkCellLayoutDataFunc для использования.

func_data :

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

destroy :

Разрушающее уведомление для func_data.

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


gtk_cell_layout_clear_attributes ()

void gtk_cell_layout_clear_attributes (GtkCellLayout *cell_layout, GtkCellRenderer *cell);

Очищает все предварительно установленные с помощью gtk_cell_layout_set_attributes() атрибуты.

cell_layout :

GtkCellLayout.

cell :

GtkCellRenderer для удаления атрибутов отображения.

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