GtkCellRenderer
GtkCellRenderer — Объект для отрисовки одной ячейки
Функции
Свойства
| char * | cell-background | Запись |
| GdkRGBA * | cell-background-rgba | Чтение/Запись |
| gboolean | cell-background-set | Чтение/Запись |
| gboolean | editing | Чтение |
| int | height | Чтение/Запись |
| gboolean | is-expanded | Чтение/Запись |
| gboolean | is-expander | Чтение/Запись |
| GtkCellRendererMode | mode | Чтение/Запись |
| gboolean | sensitive | Чтение/Запись |
| gboolean | visible | Чтение/Запись |
| int | width | Чтение/Запись |
| float | xalign | Чтение/Запись |
| guint | xpad | Чтение/Запись |
| float | yalign | Чтение/Запись |
| guint | ypad | Чтение/Запись |
Сигналы
| void | editing-canceled | Выполнять первым |
| void | editing-started | Выполнять первым |
Типы и значения
| перечисление | GtkCellRendererState |
| перечисление | GtkCellRendererMode |
| структура | GtkCellRenderer |
| структура | GtkCellRendererClass |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkCellRenderer
├── GtkCellRendererText
├── GtkCellRendererPixbuf
├── GtkCellRendererProgress
├── GtkCellRendererSpinner
╰── GtkCellRendererToggle
Файлы заголовков
#include <gtk/gtk.h>
Описание
Класс GtkCellRenderer является базовым классом набора объектов, используемых для отрисовки ячейки на cairo_t. Эти объекты в основном используются виджетом GtkTreeView, хотя они не привязаны к ним каким-либо специфическим образом. Стоит отметить, что GtkCellRenderer не является GtkWidget и не может быть обработан как таковой.
Основное назначение GtkCellRenderer — рисование определённых графических элементов на cairo_t. Обычно один рендерер ячейки используется для отрисовки многих ячеек на экране. В связи с этим не ожидается, что рендерер ячейки будет сохранять какое-либо постоянное состояние. Вместо этого любое состояние устанавливается непосредственно перед использованием с помощью системы свойств GObjects. Затем ячейка измеряется с помощью gtk_cell_renderer_get_preferred_size(). Наконец, ячейка отрисовывается в нужном месте с помощью gtk_cell_renderer_snapshot().
При написании нового GtkCellRenderer необходимо соблюдать ряд правил. Прежде всего, важно, чтобы определённый набор свойств всегда давал рендерер ячейки одного и того же размера, за исключением изменения стиля. GtkCellRenderer также имеет ряд общих свойств, которые должны соблюдаться всеми дочерними классами.
Помимо простой отрисовки ячейки, рендереры ячеек могут по желанию предоставлять активные элементы пользовательского интерфейса. Рендерер ячейки может быть «активируемым», как GtkCellRendererToggle, который переключается при активации щелчком мыши, или «редактируемым», как GtkCellRendererText, который позволяет пользователю редактировать текст с помощью виджета, реализующего интерфейс GtkCellEditable, например, GtkEntry. Чтобы сделать рендерер ячейки активируемым или редактируемым, необходимо реализовать виртуальные функции GtkCellRendererClass.activate или GtkCellRendererClass.start_editing соответственно.
Многие свойства GtkCellRenderer и его подклассов имеют соответствующее свойство «установки», например, «cell-background-set» соответствует «cell-background». Эти свойства «установки» отражают, установлено ли свойство или нет. Не следует устанавливать их независимо.
Функции
gtk_cell_renderer_get_aligned_area ()
void gtk_cell_renderer_get_aligned_area (GtkCellRenderer *cell,GtkWidget *widget,GtkCellRendererState flags,const GdkRectangle *cell_area,GdkRectangle *aligned_area);
Получает выровненную область, используемую cell внутри cell_area. Используется для поиска подходящей области редактирования и фокусировки.
Параметры
cell | экземпляр GtkCellRenderer | |
widget | GtkWidget, в который будет рендериться ячейка | |
flags | флаги рендеринга | |
cell_area | область ячейки, которая будет передана в | |
aligned_area | место возврата для пространства внутри | [out] |
gtk_cell_renderer_snapshot ()
void gtk_cell_renderer_snapshot (GtkCellRenderer *cell,GtkSnapshot *snapshot,GtkWidget *widget,const GdkRectangle *background_area,const GdkRectangle *cell_area,GtkCellRendererState flags);
Вызывает виртуальную функцию рендеринга GtkCellRenderer. Три переданные прямоугольника — области в cr. Большинство рендереров будут рисовать внутри cell_area; поля xalign, yalign, xpad и ypad GtkCellRenderer должны учитываться относительно cell_area. background_area включает пустое пространство вокруг ячейки и область, содержащую раскрывающийся элемент дерева; поэтому прямоугольники background_area всех ячеек чередуются, чтобы покрыть всю window.
Параметры
cell | ||
snapshot | GtkSnapshot для рисования | |
widget | виджет, владеющий | |
background_area | вся область ячейки (включая раскрывающие элементы дерева и, возможно, отступы по сторонам) | |
cell_area | область, обычно рендерящаяся ячейкой | |
flags | флаги, влияющие на рендеринг |
gtk_cell_renderer_activate ()
gboolean gtk_cell_renderer_activate (GtkCellRenderer *cell,GdkEvent *event,GtkWidget *widget,const char *path,const GdkRectangle *background_area,const GdkRectangle *cell_area,GtkCellRendererState flags);
Передаёт событие активации ячейному рендереру для возможной обработки. Некоторые ячейные рендеры могут использовать события; например, GtkCellRendererToggle переключается при нажатии мыши.
Параметры
cell | ||
event | ||
widget | виджет, получивший событие | |
path | зависимая от виджета строковая запись местоположения события; например, для GtkTreeView, строковое представление GtkTreePath | |
background_area | область фона, переданная в | |
cell_area | область ячейки, переданная в | |
flags | флаги рендеринга |
Возвращаемое значение
TRUE если событие было обработано/поглощено
gtk_cell_renderer_start_editing ()
GtkCellEditable * gtk_cell_renderer_start_editing (GtkCellRenderer *cell,GdkEvent *event,GtkWidget *widget,const char *path,const GdkRectangle *background_area,const GdkRectangle *cell_area,GtkCellRendererState flags);
Начинает редактирование содержимого этой cell с помощью нового виджета GtkCellEditable, созданного виртуальной функцией GtkCellRendererClass.start_editing.
Параметры
cell | ||
event | [nullable] | |
widget | виджет, получивший событие | |
path | зависимая от виджета строковая запись местоположения события; например, для GtkTreeView, строковое представление GtkTreePath | |
background_area | область фона, переданная в | |
cell_area | область ячейки, переданная в | |
flags | флаги рендеринга |
Возвращаемое значение
Новый GtkCellEditable для редактирования этой cell или NULL если редактирование невозможно.
[nullable][transfer none]
gtk_cell_renderer_stop_editing ()
void gtk_cell_renderer_stop_editing (GtkCellRenderer *cell,gboolean canceled);
Сообщает ячейному рендереру, что редактирование остановлено. Если canceled равно TRUE, ячейный рендерер выпустит сигнал “editing-canceled”.
Эта функция должна вызываться реализациями ячейных рендеров в ответ на сигнал “editing-done” GtkCellEditable.
Параметры
cell | ||
canceled |
|
gtk_cell_renderer_get_fixed_size ()
void gtk_cell_renderer_get_fixed_size (GtkCellRenderer *cell,int *width,int *height);
Заполняет width и height соответствующими размерами cell.
Параметры
cell | ||
width | место для заполнения фиксированной ширины ячейки, или | [out][allow-none] |
height | место для заполнения фиксированной высоты ячейки, или | [out][allow-none] |
gtk_cell_renderer_set_fixed_size ()
void gtk_cell_renderer_set_fixed_size (GtkCellRenderer *cell,int width,int height);
Устанавливает размер рендерера ячейки в явном виде, независимо от установленных свойств.
Параметры
cell | ||
width | ширина рендерера ячейки, или -1 | |
height | высота рендерера ячейки, или -1 |
gtk_cell_renderer_get_visible ()
gboolean
gtk_cell_renderer_get_visible (GtkCellRenderer *cell); Возвращает видимость рендерера ячейки.
Параметры
cell |
Возвращает
TRUE если рендерер ячейки видимый
gtk_cell_renderer_set_visible ()
void gtk_cell_renderer_set_visible (GtkCellRenderer *cell,gboolean visible);
Устанавливает видимость рендерера ячейки.
Параметры
cell | ||
visible | видимость ячейки |
gtk_cell_renderer_get_sensitive ()
gboolean
gtk_cell_renderer_get_sensitive (GtkCellRenderer *cell); Возвращает чувствительность рендерера ячейки.
Параметры
cell |
Возвращает
TRUE если рендерер ячейки чувствителен
gtk_cell-renderer-set-sensitive ()
void gtk_cell_renderer_set_sensitive (GtkCellRenderer *cell,gboolean sensitive);
Устанавливает чувствительность рендерера ячейки.
Параметры
cell | ||
sensitive | чувствительность ячейки |
gtk_cell_renderer_get_alignment ()
void gtk_cell_renderer_get_alignment (GtkCellRenderer *cell,float *xalign,float *yalign);
Заполняет xalign и yalign соответствующими значениями cell.
Параметры
cell | ||
xalign | место для заполнения x-выравнивания ячейки, или | [out][allow-none] |
yalign | место для заполнения y-выравнивания ячейки, или | [out][allow-none] |
gtk_cell_renderer_set_alignment ()
void gtk_cell_renderer_set_alignment (GtkCellRenderer *cell,float xalign,float yalign);
Устанавливает выравнивание рендерера внутри доступного пространства.
Параметры
cell | ||
xalign | x-выравнивание рендерера ячейки | |
yalign | y-выравнивание рендерера ячейки |
gtk_cell_renderer_get_padding ()
void gtk_cell_renderer_get_padding (GtkCellRenderer *cell,int *xpad,int *ypad);
Заполняет xpad и ypad соответствующими значениями cell.
Параметры
cell | ||
xpad | место для заполнения x-отступа ячейки, или | [out][allow-none] |
ypad | место для заполнения y-отступа ячейки, или | [out][allow-none] |
gtk_cell_renderer_set_padding ()
void gtk_cell_renderer_set_padding (GtkCellRenderer *cell,int xpad,int ypad);
Устанавливает отступы рендерера.
Параметры
cell | ||
xpad | x-отступ рендерера ячейки | |
ypad | y-отступ рендерера ячейки |
gtk_cell_renderer_get_state ()
GtkStateFlags gtk_cell_renderer_get_state (GtkCellRenderer *cell,GtkWidget *widget,GtkCellRendererState cell_state);
Преобразует состояние ячейки-рендерера в GtkStateFlags, основываясь на состоянии ячейки-рендерера, чувствительности виджета и заданном GtkCellRendererState.
Параметры
cell | a GtkCellRenderer, или | [nullable] |
widget | a GtkWidget, или | [nullable] |
cell_state | состояние ячейки-рендерера |
Возвращаемое значение
флаги состояния виджета, относящиеся к cell
gtk_cell_renderer_is_activatable ()
gboolean
gtk_cell_renderer_is_activatable (GtkCellRenderer *cell); Проверяет, может ли ячейка-рендерер выполнить действие при активации.
Параметры
cell |
Возвращаемое значение
TRUE , если ячейка-рендерер может выполнить действие при активации
gtk_cell_renderer_get_is_expanded ()
gboolean
gtk_cell_renderer_get_is_expanded (GtkCellRenderer *cell); Проверяет, расширена ли данная GtkCellRenderer.
Параметры
cell |
Возвращаемое значение
TRUE , если ячейка-рендерер расширена
gtk_cell_renderer_get_is_expander ()
gboolean
gtk_cell_renderer_get_is_expander (GtkCellRenderer *cell); Проверяет, является ли данная GtkCellRenderer расширителем.
Параметры
cell |
Возвращаемое значение
TRUE , если cell является расширителем, и FALSE в противном случае
gtk_cell_renderer_set_is_expanded ()
void gtk_cell_renderer_set_is_expanded (GtkCellRenderer *cell,gboolean is_expanded);
Устанавливает, расширена ли данная GtkCellRenderer.
Параметры
cell | ||
is_expanded | должен ли |
gtk_cell_renderer_set_is_expander ()
void gtk_cell_renderer_set_is_expander (GtkCellRenderer *cell,gboolean is_expander);
Устанавливает, является ли данная GtkCellRenderer расширителем.
Параметры
cell | ||
is_expander | является ли |
gtk_cell_renderer_get_preferred_height ()
void gtk_cell_renderer_get_preferred_height (GtkCellRenderer *cell,GtkWidget *widget,int *minimum_size,int *natural_size);
Возвращает естественный размер рендерера при отрисовке в widget .
Параметры
cell | экземпляр GtkCellRenderer | |
widget | виджет GtkWidget, в который будет отрисовываться ячейка | |
minimum_size | место для хранения минимального размера, или | [out][allow-none] |
natural_size | место для хранения естественного размера, или | [out][allow-none] |
gtk_cell_renderer_get_preferred_height_for_width ()
void gtk_cell_renderer_get_preferred_height_for_width (GtkCellRenderer *cell,GtkWidget *widget,int width,int *minimum_height,int *natural_height);
Возвращает минимальную и естественную высоту ячейки-рендерера, если она была бы отрисована в widget с указанной width шириной.
Параметры
cell | экземпляр GtkCellRenderer | |
widget | виджет GtkWidget, в который будет отрисовываться ячейка | |
width | доступная ширина для размещения | |
minimum_height | место для хранения минимального размера, или | [out][allow-none] |
natural_height | место для хранения предпочтительного размера, или | [out][allow-none] |
gtk_cell_renderer_get_preferred_size ()
void gtk_cell_renderer_get_preferred_size (GtkCellRenderer *cell,GtkWidget *widget,GtkRequisition *minimum_size,GtkRequisition *natural_size);
Возвращает минимальный и естественный размер ячейки с учётом предпочтения виджета к управлению высотой относительно ширины.
Параметры
cell | экземпляр GtkCellRenderer | |
widget | виджет GtkWidget, в который будет отрисовываться ячейка | |
minimum_size | место для хранения минимального размера, или | [out][allow-none] |
natural_size | место для хранения естественного размера, или | [out][allow-none] |
gtk_cell_renderer_get_preferred_width ()
void gtk_cell_renderer_get_preferred_width (GtkCellRenderer *cell,GtkWidget *widget,int *minimum_size,int *natural_size);
Возвращает естественный размер рендерера при рендеринге в widget.
Параметры
cell | экземпляр GtkCellRenderer | |
widget | элемент GtkWidget, на который будет рендериться ячейка | |
minimum_size | место для хранения минимального размера, или | [out][allow-none] |
natural_size | место для хранения естественного размера, или | [out][allow-none] |
gtk_cell_renderer_get_preferred_width_for_height ()
void gtk_cell_renderer_get_preferred_width_for_height (GtkCellRenderer *cell,GtkWidget *widget,int height,int *minimum_width,int *natural_width);
Возвращает минимальную и естественную ширину ячейки-рендерера, если она была бы отрисована в widget с заданной height высотой.
Параметры
cell | экземпляр GtkCellRenderer | |
widget | элемент GtkWidget, на который будет рендериться ячейка | |
height | размер, который доступен для размещения | |
minimum_width | место для хранения минимального размера, или | [out][allow-none] |
natural_width | место для хранения предпочтительного размера, или | [out][allow-none] |
gtk_cell_renderer_get_request_mode ()
GtkSizeRequestMode
gtk_cell_renderer_get_request_mode (GtkCellRenderer *cell); Получает, предпочитает ли ячейка-рендерер макет «высота для ширины» или «ширина для высоты».
Параметры
cell | экземпляр GtkCellRenderer |
Возвращает
GtkSizeRequestMode, предпочитаемый этим рендерером.
Типы и значения
перечисление GtkCellRendererState
Указывает, как отображать ячейку.
Члены
GTK_CELL_RENDERER_SELECTED | Ячейка в данный момент выбрана и, вероятно, имеет цвет фона выделения. | |
GTK_CELL_RENDERER_PRELIT | Над ячейкой наведён курсор. | |
GTK_CELL_RENDERER_INSENSITIVE | Ячейка отображается в неактивном режиме. | |
GTK_CELL_RENDERER_SORTED | Ячейка в строке, отсортированной по определенному полю. | |
GTK_CELL_RENDERER_FOCUSED | Ячейка в строке фокуса. | |
GTK_CELL_RENDERER_EXPANDABLE | Ячейка в строке, которую можно развернуть. | |
GTK_CELL_RENDERER_EXPANDED | Ячейка в развернутой строке. |
перечисление GtkCellRendererMode
Определяет, как пользователь может взаимодействовать с конкретной ячейкой.
Члены
GTK_CELL_RENDERER_MODE_INERT | Ячейка предназначена только для отображения и с ней нельзя взаимодействовать. Обратите внимание, что это не означает, что, например, строка, которая рисуется, не может быть выбрана — просто конкретный элемент в ней не может быть изменен индивидуально. | |
GTK_CELL_RENDERER_MODE_ACTIVATABLE | Ячейку можно нажать. | |
GTK_CELL_RENDERER_MODE_EDITABLE | Ячейку можно редактировать или иным образом изменять. |
структура GtkCellRenderer
struct GtkCellRenderer;
структура GtkCellRendererClass
struct GtkCellRendererClass {
/* vtable - not signals */
GtkSizeRequestMode (* get_request_mode) (GtkCellRenderer *cell);
void (* get_preferred_width) (GtkCellRenderer *cell,
GtkWidget *widget,
int *minimum_size,
int *natural_size);
void (* get_preferred_height_for_width) (GtkCellRenderer *cell,
GtkWidget *widget,
int width,
int *minimum_height,
int *natural_height);
void (* get_preferred_height) (GtkCellRenderer *cell,
GtkWidget *widget,
int *minimum_size,
int *natural_size);
void (* get_preferred_width_for_height) (GtkCellRenderer *cell,
GtkWidget *widget,
int height,
int *minimum_width,
int *natural_width);
void (* get_aligned_area) (GtkCellRenderer *cell,
GtkWidget *widget,
GtkCellRendererState flags,
const GdkRectangle *cell_area,
GdkRectangle *aligned_area);
void (* snapshot) (GtkCellRenderer *cell,
GtkSnapshot *snapshot,
GtkWidget *widget,
const GdkRectangle *background_area,
const GdkRectangle *cell_area,
GtkCellRendererState flags);
gboolean (* activate) (GtkCellRenderer *cell,
GdkEvent *event,
GtkWidget *widget,
const char *path,
const GdkRectangle *background_area,
const GdkRectangle *cell_area,
GtkCellRendererState flags);
GtkCellEditable * (* start_editing) (GtkCellRenderer *cell,
GdkEvent *event,
GtkWidget *widget,
const char *path,
const GdkRectangle *background_area,
const GdkRectangle *cell_area,
GtkCellRendererState flags);
/* Signals */
void (* editing_canceled) (GtkCellRenderer *cell);
void (* editing_started) (GtkCellRenderer *cell,
GtkCellEditable *editable,
const char *path);
};
Члены
| Вызывается для получения того, какой макет ячейки предпочитает рендерер — высота по ширине или ширина по высоте. | |
| Вызывается для получения естественной ширины рендерера. | |
| Вызывается для получения естественной высоты рендерера для заданной ширины. | |
| Вызывается для получения естественной высоты рендерера. | |
| Вызывается для получения естественной ширины рендерера для заданной высоты. | |
| Вызывается для получения выровненной области, используемой | |
| Вызывается для создания снимка содержимого GtkCellRenderer. | |
| Вызывается для активации содержимого GtkCellRenderer. | |
| Вызывается для начала редактирования содержимого GtkCellRenderer. | |
| Сигнал генерируется, когда пользователь отменяет процесс редактирования ячейки. | |
| Сигнал генерируется, когда ячейка начинает редактироваться. |
Подробное описание свойств
Свойство “cell-background”
“cell-background” char *
Цвет фона ячейки в виде строки.
Владелец: GtkCellRenderer
Флаги: Запись
Значение по умолчанию: NULL
Свойство “cell-background-rgba”
“cell-background-rgba” GdkRGBA *
Фон ячейки в виде GdkRGBA.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Свойство “cell-background-set”
“cell-background-set” gboolean
Установлен ли цвет фона ячейки.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “editing”
“editing” gboolean
Находится ли рендерер ячейки в режиме редактирования.
Владелец: GtkCellRenderer
Флаги: Чтение
Значение по умолчанию: FALSE
Свойство “height”
“height” int
Фиксированная высота.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
Свойство “is-expanded”
“is-expanded” gboolean
Строка — это строка раскрытия, и она раскрыта.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “is-expander”
“is-expander” gboolean
Строка имеет дочерние элементы.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “mode”
“mode” GtkCellRendererMode
Режим редактирования CellRenderer.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Значение по умолчанию: GTK_CELL_RENDERER_MODE_INERT
Свойство “sensitive”
“sensitive” gboolean
Отображать ячейку в активном состоянии.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “visible”
“visible” gboolean
Отображать ячейку.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “width”
“width” int
Фиксированная ширина.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
Свойство “xalign”
“xalign” float
Выравнивание по горизонтали.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Допустимые значения: [0,1]
Значение по умолчанию: 0.5
Свойство “xpad”
“xpad” guint
Отступ по горизонтали.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Значение по умолчанию: 0
Свойство “yalign”
“yalign” float
Выравнивание по вертикали.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Допустимые значения: [0,1]
Значение по умолчанию: 0.5
Свойство “ypad”
“ypad” guint
Отступ по вертикали.
Владелец: GtkCellRenderer
Флаги: Чтение / Запись
Значение по умолчанию: 0
Подробности сигналов
Сигнал “editing-canceled”
void user_function (GtkCellRenderer *renderer, gpointer user_data)
Этот сигнал генерируется, когда пользователь отменяет процесс редактирования ячейки. Например, рендерер редактируемой ячейки может быть написан так, чтобы отменять редактирование при нажатии клавиши Escape.
См. также: gtk_cell_renderer_stop_editing().
Параметры
renderer | объект, получивший сигнал | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Флаги: Run First
Сигнал “editing-started”
void user_function (GtkCellRenderer *renderer, GtkCellEditable *editable, char *path, gpointer user_data)
Этот сигнал генерируется, когда ячейка начинает редактироваться. Целевое использование этого сигнала заключается в выполнении специальной настройки editable, например, добавление GtkEntryCompletion или настройка дополнительных столбцов в GtkComboBox.
См. gtk_cell_editable_start_editing() для получения информации о жизненном цикле editable и способе выполнения настройки, который не зависит от renderer.
Обратите внимание, что GTK не гарантирует, что рендереры ячеек будут продолжать использовать тот же виджет для редактирования в будущих выпусках, поэтому вы должны проверить тип editable перед выполнением любой специальной настройки, как показано в следующем примере:
static void
text_editing_started (GtkCellRenderer *cell,
GtkCellEditable *editable,
const char *path,
gpointer data)
{
if (GTK_IS_ENTRY (editable))
{
GtkEntry *entry = GTK_ENTRY (editable);
// ... create a GtkEntryCompletion
gtk_entry_set_completion (entry, completion);
}
}Параметры
renderer | объект, получивший сигнал | |
editable | объект GtkCellEditable | |
path | путь, идентифицирующий редактируемую ячейку | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Флаги: Run First
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkCellRenderer.html