Spec-Zone.ru › GTK 4.0

GtkCellArea

GtkCellArea — Абстрактный класс для размещения GtkCellRenderers

Функции

gboolean (*GtkCellCallback) ()
gboolean (*GtkCellAllocCallback) ()
#define GTK_CELL_AREA_WARN_INVALID_CELL_PROPERTY_ID()
void gtk_cell_area_add ()
void gtk_cell_area_remove ()
gboolean gtk_cell_area_has_renderer ()
void gtk_cell_area_foreach ()
void gtk_cell_area_foreach_alloc ()
int gtk_cell_area_event ()
void gtk_cell_area_snapshot ()
void gtk_cell_area_get_cell_allocation ()
GtkCellRenderer * gtk_cell_area_get_cell_at_position ()
GtkCellAreaContext * gtk_cell_area_create_context ()
GtkCellAreaContext * gtk_cell_area_copy_context ()
GtkSizeRequestMode gtk_cell_area_get_request_mode ()
void gtk_cell_area_get_preferred_width ()
void gtk_cell_area_get_preferred_height_for_width ()
void gtk_cell_area_get_preferred_height ()
void gtk_cell_area_get_preferred_width_for_height ()
const char * gtk_cell_area_get_current_path_string ()
void gtk_cell_area_apply_attributes ()
void gtk_cell_area_attribute_connect ()
void gtk_cell_area_attribute_disconnect ()
int gtk_cell_area_attribute_get_column ()
void gtk_cell_area_class_install_cell_property ()
GParamSpec * gtk_cell_area_class_find_cell_property ()
GParamSpec ** gtk_cell_area_class_list_cell_properties ()
void gtk_cell_area_add_with_properties ()
void gtk_cell_area_cell_set ()
void gtk_cell_area_cell_get ()
void gtk_cell_area_cell_set_valist ()
void gtk_cell_area_cell_get_valist ()
void gtk_cell_area_cell_set_property ()
void gtk_cell_area_cell_get_property ()
gboolean gtk_cell_area_is_activatable ()
gboolean gtk_cell_area_activate ()
gboolean gtk_cell_area_focus ()
void gtk_cell_area_set_focus_cell ()
GtkCellRenderer * gtk_cell_area_get_focus_cell ()
void gtk_cell_area_add_focus_sibling ()
void gtk_cell_area_remove_focus_sibling ()
gboolean gtk_cell_area_is_focus_sibling ()
const GList * gtk_cell_area_get_focus_siblings ()
GtkCellRenderer * gtk_cell_area_get_focus_from_sibling ()
GtkCellRenderer * gtk_cell_area_get_edited_cell ()
GtkCellEditable * gtk_cell_area_get_edit_widget ()
gboolean gtk_cell_area_activate_cell ()
void gtk_cell_area_stop_editing ()
void gtk_cell_area_inner_cell_area ()
void gtk_cell_area_request_renderer ()

Свойства

GtkCellEditable * edit-widget Чтение
GtkCellRenderer * edited-cell Чтение
GtkCellRenderer * focus-cell Чтение / Запись

Сигналы

void add-editable Выполняется первым
void apply-attributes Выполняется первым
void focus-changed Выполняется первым
void remove-editable Выполняется первым

Типы и значения

struct GtkCellArea
struct GtkCellAreaClass

Иерархия объектов

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkCellArea
            ╰── GtkCellAreaBox

Реализованные интерфейсы

GtkCellArea реализует GtkCellLayout и GtkBuildable.

Включаемые файлы

#include <gtk/gtk.h>

Описание

Класс GtkCellArea — это абстрактный класс для виджетов GtkCellLayout (также называемых «виджетами размещения»), позволяющий взаимодействовать с произвольным количеством виджетов GtkCellRenderers и взаимодействовать с пользователем для заданной строки GtkTreeModel.

Область ячейки обрабатывает события, навигацию фокуса, отрисовку и запросы размера и выделения для заданной строки данных.

Пользователям обычно не нужно взаимодействовать с классом GtkCellArea напрямую, если они не реализуют сами виджет размещения ячеек.

Запрос размеров области

Как указано в разделе управления геометрией GtkWidget, GTK использует систему управления геометрией «высота для ширины» для вычисления размеров виджетов и пользовательских интерфейсов. GtkCellArea использует те же семантики для расчета размера области для произвольного количества строк GtkTreeModel.

При запросе размера области ячейки необходимо рассчитать размер для нескольких строк, и это будет выполняться по-разному разными виджетами размещения. Например, GtkTreeViewColumn всегда выстраивает области сверху вниз, в то время как GtkIconView может потребовать, чтобы все области имели одинаковую ширину и располагались по окружности, запрашивая высоту для дополнительных областей ячеек, если выделена меньшая ширина.

Также важно, чтобы области поддерживали выравнивание ячеек с областями, отрисованными для смежных строк (ячейки могут отображаться «в столбцы» внутри области, даже если размеры ячеек в каждой строке отличаются). По этой причине GtkCellArea использует объект GtkCellAreaContext для хранения выравниваний и размеров по ходу (а также общий максимальный минимальный и естественный размер для всех строк, которые были рассчитаны с использованием указанного контекста).

Объект GtkCellAreaContext — это непрозрачный объект, специфичный для GtkCellArea, который его создал (см. gtk_cell_area_create_context()). Владеющий виджет размещения ячеек может создавать любое количество контекстов для расчета размеров строк, которые должны получать одинаковый размер по крайней мере в одной ориентации (горизонтально или вертикально). Однако важно, чтобы тот же объект GtkCellAreaContext, который использовался для запроса размеров для заданной строки GtkTreeModel, использовался при отрисовке или обработке событий для этой строки.

Для запроса ширины всех строк на корневом уровне GtkTreeModel необходимо выполнить следующие действия:

Обратите внимание, что в этом примере неважно наблюдать возвращенную минимальную и естественную ширину области для каждой строки, если виджет размещения ячеек не интересуется шириной отдельных строк. Однако общая ширина хранится в сопровождающем объекте GtkCellAreaContext и может быть проконсультирована в любое время.

Это может быть полезно, так как виджеты GtkCellLayout обычно должны поддерживать запрос и отрисовку строк в GtkTreeModel с чрезвычайно большим количеством строк. В этом случае виджет GtkCellLayout вычисляет необходимую ширину строк в источнике холостого хода или таймаута (см. g_timeout_add()) и, когда виджет запрашивает свою фактическую ширину в GtkWidgetClass.measure(), он просто может проконсультироваться с накопленной шириной в объекте GtkCellAreaContext.

Простой пример, где строки отрисовываются сверху вниз и занимают всю ширину виджета размещения, выглядит следующим образом:

В приведенном выше примере виджет Foo должен убедиться, что были рассчитаны размеры некоторых строк (количество строк, которое Foo посчитал подходящим для запроса места в одной итерации таймаута), прежде чем просто вернуть количество места, необходимое для области через GtkCellAreaContext.

Запрос высоты по ширине (или ширины по высоте) области — аналогичная задача, за исключением того, что в этом случае объект GtkCellAreaContext не хранит данные (на самом деле, он не знает, сколько места виджет размещения планирует выделить для каждой строки. За виджетом размещения остается отрисовка каждой строки данных с соответствующей высотой и шириной, которые запросил GtkCellArea).

Для запроса высоты по ширине всех строк на корневом уровне GtkTreeModel необходимо выполнить следующие действия:

Обратите внимание, что в приведенном выше примере нам нужно будет кэшировать возвращенные высоты для каждой строки, чтобы знать, какие размеры отрисовывать для каждой строки. Однако мы будем кэшировать высоты только в том случае, если запрос предназначен для реального выделения виджетов размещения.

В некоторых случаях виджет размещения запрашивает высоту для произвольной ширины, это особый случай для виджетов размещения, которым необходимо запросить размер для десятков тысяч строк. В этом случае важно, чтобы виджет размещения рассчитал один достаточно большой фрагмент строк и вернул эту высоту синхронно. Причина в том, что любой виджет размещения по крайней мере способен синхронно рассчитать достаточную высоту для заполнения высоты экрана (или высоты окна прокрутки) в ответ на единственный вызов GtkWidgetClass.measure(). Возврат идеальной высоты для ширины, которая больше области экрана, не имеет значения, так как после того, как виджет размещения получит выделение от окна прокрутки, он просто продолжает управлять значениями полосы прокрутки, пока все больше и больше высоты требуется для высот строк, которые рассчитываются в фоновом режиме.

Отрисовка областей

После получения размеров областей, по крайней мере, для строк в видимой области виджета размещения, они могут быть отрисованы во время GtkWidgetClass.snapshot().

Приблизительный пример того, как отрисовать все строки на корневом уровне, выполняется следующим образом:

Обратите внимание, что кэшированная высота в этом примере действительно зависит от того, как работает виджет размещения. Виджет размещения может решить предоставить каждой строке ее минимальную или естественную высоту, или, если содержимое модели ожидается вписаться в виджет размещения без прокрутки, было бы целесообразно рассчитать выделение для каждой строки в момент выделения виджета с помощью gtk_distribute_natural_allocation().

Обработка событий и управление клавиатурным фокусом

Передача событий в область такая же простая, как обработка событий в обычном виджете, а затем передача их в API gtk_cell_area_event() по мере их поступления. Обычно GtkCellArea интересуется только событиями кнопок, однако могут быть реализованы некоторые настраиваемые производные области, заинтересованные в обработке других событий. Обработка события может вызвать срабатывание сигнала “focus-changed”, а также “add-editable” в случае, если была нажата редактируемая ячейка и необходимо начать редактирование. Вы можете вызвать gtk_cell_area_stop_editing() в любое время, чтобы отменить любое редактирование ячейки, которое в настоящее время выполняется.

GtkCellArea управляет клавиатурным фокусом от ячейки к ячейке, аналогично GtkWidget. Для виджетов размещения, которые поддерживают предоставление фокуса ячейкам, важно помнить о передаче GTK_CELL_RENDERER_FOCUSED функциям области для строки, у которой есть фокус, и сообщить области о рисовании фокуса во время отрисовки.

Виджеты размещения, которые принимают фокус на ячейках, должны реализовать виртуальный метод GtkWidgetClass.focus(). Виджет размещения всегда отвечает за знание того, где строки GtkTreeModel отрисовываются внутри виджета, поэтому в момент GtkWidgetClass.focus() виджет размещения должен использовать методы GtkCellArea для навигации фокуса внутри области, а затем наблюдать за GtkDirectionType для передачи фокуса соседним строкам и областям.

Базовый пример реализации виртуального метода GtkWidgetClass.focus():

GtkTreeIter iter;
int         minimum_width;
int         natural_width;

valid = gtk_tree_model_get_iter_first (model, &iter);
while (valid)
  {
    gtk_cell_area_apply_attributes (area, model, &iter, FALSE, FALSE);
    gtk_cell_area_get_preferred_width (area, context, widget, NULL, NULL);

    valid = gtk_tree_model_iter_next (model, &iter);
  }
gtk_cell_area_context_get_preferred_width (context, &minimum_width, &natural_width);

Обратите внимание, что виджет размещения отвечает за сопоставление значений GtkDirectionType с тем, как он выстраивает свои ячейки.

Свойства ячейки

Класс GtkCellArea вводит свойства ячеек для GtkCellRenderers. Это предоставляет некоторые общие интерфейсы для определения отношений областей ячеек с их ячейками. Например, в GtkCellAreaBox ячейка может «расширяться» и получать дополнительное пространство, когда область выделяется больше, чем ее полная естественная потребность, или ячейка может быть настроена на «выравнивание» с соседними строками, которые были запрошены и отображены с тем же GtkCellAreaContext.

Используйте gtk_cell_area_class_install_cell_property() для установки свойств ячеек для класса области ячейки и gtk_cell_area_class_find_cell_property() или gtk_cell_area_class_list_cell_properties() для получения информации о существующих свойствах ячеек.

Для установки значения свойства ячейки используйте gtk_cell_area_cell_set_property(), gtk_cell_area_cell_set() или gtk_cell_area_cell_set_valist(). Для получения значения свойства ячейки используйте gtk_cell_area_cell_get_property(), gtk_cell_area_cell_get() или gtk_cell_area_cell_get_valist().

Функции

GtkCellCallback ()

gboolean
(*GtkCellCallback) (GtkCellRenderer *renderer,
                    gpointer data);

Тип обратных функций, используемых для итерации по рендерерам ячеек GtkCellArea, см. gtk_cell_area_foreach().

Параметры

renderer

рендерер ячейки для обработки

data

переданные пользователем данные.

[closure]

Возвращает

TRUE для остановки итерации по ячейкам.

GtkCellAllocCallback ()

gboolean
(*GtkCellAllocCallback) (GtkCellRenderer *renderer,
                         const GdkRectangle *cell_area,
                         const GdkRectangle *cell_background,
                         gpointer data);

Тип обратных функций, используемых для итерации по рендерерам ячеек и выделенным областям внутри GtkCellArea, см. gtk_cell_area_foreach_alloc().

Параметры

renderer

рендерер ячейки для обработки

cell_area

область, выделенная для renderer внутри прямоугольника, предоставленного gtk_cell_area_foreach_alloc().

cell_background

область фона для renderer внутри области фона, предоставленной gtk_cell_area_foreach_alloc().

data

переданные пользователем данные.

[closure]

Возвращает

TRUE для остановки итерации по ячейкам.

GTK_CELL_AREA_WARN_INVALID_CELL_PROPERTY_ID()

#define             GTK_CELL_AREA_WARN_INVALID_CELL_PROPERTY_ID(object, property_id, pspec)

Эта макрокоманда должна использоваться для вывода стандартного предупреждения о непредвиденных свойствах в set_cell_property() и get_cell_property() реализациях.

Параметры

object

объект GObject, для которого был вызван set_cell_property() или get_cell_property()

property_id

числовой идентификатор свойства

pspec

спецификация свойства GParamSpec

gtk_cell_area_add ()

void
gtk_cell_area_add (GtkCellArea *area,
                   GtkCellRenderer *renderer);

Добавляет renderer в area со стандартными свойствами дочерних ячеек.

Параметры

area

объект GtkCellArea

renderer

объект GtkCellRenderer для добавления в area

gtk_cell_area_remove ()

void
gtk_cell_area_remove (GtkCellArea *area,
                      GtkCellRenderer *renderer);

Удаляет renderer из area .

Параметры

area

объект GtkCellArea

renderer

объект GtkCellRenderer для удаления из area

gtk_cell_area_has_renderer ()

gboolean
gtk_cell_area_has_renderer (GtkCellArea *area,
                            GtkCellRenderer *renderer);

Проверяет, содержит ли area объект renderer .

Параметры

area

объект GtkCellArea

renderer

объект GtkCellRenderer для проверки

Возвращает

TRUE если renderer находится в area .

gtk_cell_area_foreach ()

void
gtk_cell_area_foreach (GtkCellArea *area,
                       GtkCellCallback callback,
                       gpointer callback_data);

Вызывает callback для каждой GtkCellRenderer в area .

Параметры

area

объект GtkCellArea

callback

обратный вызов GtkCellCallback для вызова.

[scope call]

callback_data

указатель на данные, предоставленные пользователем

gtk_cell_area_foreach_alloc ()

void
gtk_cell_area_foreach_alloc (GtkCellArea *area,
                             GtkCellAreaContext *context,
                             GtkWidget *widget,
                             const GdkRectangle *cell_area,
                             const GdkRectangle *background_area,
                             GtkCellAllocCallback callback,
                             gpointer callback_data);

Вызывает callback для каждой GtkCellRenderer в area с выделенным прямоугольником внутри cell_area .

Параметры

area

объект GtkCellArea

context

контекст GtkCellAreaContext для этой строки данных.

widget

GtkWidget, в который area рендерит

cell_area

координаты и размер относительно widget для area

background_area

координаты области фона относительно widget

callback

обратный вызов GtkCellAllocCallback для вызова.

[scope call]

callback_data

указатель на данные, предоставленные пользователем

gtk_cell_area_event ()

int
gtk_cell_area_event (GtkCellArea *area,
                     GtkCellAreaContext *context,
                     GtkWidget *widget,
                     GdkEvent *event,
                     const GdkRectangle *cell_area,
                     GtkCellRendererState flags);

Делегирует обработку события GtkCellArea.

Параметры

area

a GtkCellArea

context

the GtkCellAreaContext для этой строки данных.

widget

the GtkWidget, на который area отрисовывается

event

the GdkEvent для обработки

cell_area

the widget относительные координаты для area

flags

the GtkCellRendererState для area в этой строке.

Возвращаемое значение

TRUE если событие было обработано area .

gtk_cell_area_snapshot ()

void
gtk_cell_area_snapshot (GtkCellArea *area,
                        GtkCellAreaContext *context,
                        GtkWidget *widget,
                        GtkSnapshot *snapshot,
                        const GdkRectangle *background_area,
                        const GdkRectangle *cell_area,
                        GtkCellRendererState flags,
                        gboolean paint_focus);

Создаёт моментальную копию ячеек area в соответствии с макетом area в заданных координатах.

Параметры

area

a GtkCellArea

context

the GtkCellAreaContext для этой строки данных.

widget

the GtkWidget, на который area отрисовывается

snapshot

the GtkSnapshot для отрисовки

background_area

the widget относительные координаты для фона area

cell_area

the widget относительные координаты для area

flags

the GtkCellRendererState для area в этой строке.

paint_focus

указывает, нужно ли area рисовать фокус на фокусированных ячейках фокусированных строк.

gtk_cell_area_get_cell_allocation ()

void
gtk_cell_area_get_cell_allocation (GtkCellArea *area,
                                   GtkCellAreaContext *context,
                                   GtkWidget *widget,
                                   GtkCellRenderer *renderer,
                                   const GdkRectangle *cell_area,
                                   GdkRectangle *allocation);

Определяет выделение renderer внутри area, если area должно быть отрисовано в cell_area.

Параметры

area

a GtkCellArea

context

the GtkCellAreaContext, используемый для хранения размеров area.

widget

the GtkWidget, на который area отрисовывается

renderer

the GtkCellRenderer для получения выделения

cell_area

вся область выделения для area в widget для этой строки

allocation

место для хранения выделения для renderer .

[out]

gtk_cell_area_get_cell_at-position ()

GtkCellRenderer *
gtk_cell_area_get_cell_at_position (GtkCellArea *area,
                                    GtkCellAreaContext *context,
                                    GtkWidget *widget,
                                    const GdkRectangle *cell_area,
                                    int x,
                                    int y,
                                    GdkRectangle *alloc_area);

Получает GtkCellRenderer в координатах x и y внутри area и необязательно возвращает полное выделение ячейки внутри cell_area.

Параметры

area

a GtkCellArea

context

the GtkCellAreaContext, используемый для хранения размеров area.

widget

the GtkWidget, на котором area отрисовывается

cell_area

вся область выделения для area в widget для этой строки

x

координата x

y

координата y

alloc_area

место для хранения внутренней области выделения возвращаемого компонента ячейки, или NULL.

[out][allow-none]

Возвращаемое значение

the GtkCellRenderer в координатах x и y .

[transfer none]

gtk_cell_area_create_context ()

GtkCellAreaContext *
gtk_cell_area_create_context (GtkCellArea *area);

Создаёт GtkCellAreaContext, который будет использоваться с area для всех целей. GtkCellAreaContext хранит геометрическую информацию о строках, к которым он применялся. Важно использовать один и тот же контекст для одной и той же строки данных во все время (то есть, необходимо отображать и обрабатывать события с тем же GtkCellAreaContext, который использовался для запроса размера этих строк данных).

Параметры

area

a GtkCellArea

Возвращаемое значение

новый созданный GtkCellAreaContext, который можно использовать с area .

[transfer full]

gtk_cell_area_copy_context ()

GtkCellAreaContext *
gtk_cell_area_copy_context (GtkCellArea *area,
                            GtkCellAreaContext *context);

Иногда это необходимо в случаях, когда строкам требуется совместное выравнивание в одном направлении, но они могут быть сгруппированы по отдельности в противоположном направлении.

Например, GtkIconView создаёт все значки (строки) с одинаковой шириной, а ячейки в них — с одинаковым горизонтальным выравниванием. Однако каждая строка значков может иметь отдельный общий размер высоты. GtkIconView использует это, чтобы запросить высоту каждой строки на основе контекста, который уже использовался для запроса всех отображаемых ширин строк.

Параметры

area

a GtkCellArea

context

the GtkCellAreaContext для копирования

Возвращаемое значение

новый созданный GtkCellAreaContext — копия context .

[transfer full]

gtk_cell_area_get_request_mode ()

GtkSizeRequestMode
gtk_cell_area_get_request_mode (GtkCellArea *area);

Получает, предпочитает ли область макет высоты для ширины или ширины для высоты.

Параметры

area

a GtkCellArea

Возвращаемое значение

GtkSizeRequestMode, предпочитаемый area .

gtk_cell_area_get_preferred_width ()

void
gtk_cell_area_get_preferred_width (GtkCellArea *area,
                                   GtkCellAreaContext *context,
                                   GtkWidget *widget,
                                   int *minimum_width,
                                   int *natural_width);

Получает начальную минимальную и естественную ширину области ячейки.

area будет хранить некоторую геометрическую информацию в context по ходу; при запросе размеров произвольного числа строк, не важно проверять minimum_width и natural_width этого вызова, а лучше обратиться к gtk_cell_area_context_get_preferred_width() после серии запросов.

Параметры

area

a GtkCellArea

context

the GtkCellAreaContext для выполнения этого запроса

widget

the GtkWidget, где area будет отображать

minimum_width

место для хранения минимальной ширины, или NULL.

[out][allow-none]

natural_width

место для хранения естественной ширины, или NULL.

[out][allow-none]

gtk_cell_area_get_preferred_height_for_width ()

void
gtk_cell_area_get_preferred_height_for_width
                               (GtkCellArea *area,
                                GtkCellAreaContext *context,
                                GtkWidget *widget,
                                int width,
                                int *minimum_height,
                                int *natural_height);

Получает минимальную и естественную высоту области ячейки, если ей будет задана указанная width .

area хранит некоторую геометрическую информацию в context во время вызова gtk_cell_area_get_preferred_width(). Важно выполнить серию запросов gtk_cell_area_get_preferred_width() с context сначала, а затем вызвать gtk_cell_area_get_preferred_height_for_width() для каждой области ячеек индивидуально, чтобы получить высоту для ширины каждой полностью запрошенной строки.

Если в какой-то момент ширина одной строки изменяется, её необходимо снова запросить с помощью gtk_cell_area_get_preferred_width(), а затем снова проверить полную ширину запрошенных строк с помощью gtk_cell_area_context_get_preferred_width().

Параметры

area

a GtkCellArea

context

the GtkCellAreaContext, который уже запрашивал ширины.

widget

the GtkWidget, где area будет отображать

width

ширина, для которой нужно проверить высоту этой области

minimum_height

место для хранения минимальной высоты, или NULL.

[out][allow-none]

natural_height

место для хранения естественной высоты, или NULL.

[out][allow-none]

gtk_cell_area_get_preferred_height ()

void
gtk_cell_area_get_preferred_height (GtkCellArea *area,
                                    GtkCellAreaContext *context,
                                    GtkWidget *widget,
                                    int *minimum_height,
                                    int *natural_height);

Получает начальную минимальную и естественную высоту области ячейки.

area будет хранить некоторую геометрическую информацию в context по ходу выполнения; при запросе размеров по произвольному числу строк, неважно проверять minimum_height и natural_height этого вызова, а скорее обратиться к gtk_cell_area_context_get_preferred_height() после серии запросов.

Параметры

area

объект GtkCellArea

context

контекст GtkCellAreaContext для выполнения этого запроса

widget

объект GtkWidget, где area будет отображаться

minimum_height

место для хранения минимальной высоты или NULL.

[out][allow-none]

natural_height

место для хранения естественной высоты или NULL.

[out][allow-none]

gtk_cell_area_get_preferred_width_for_height ()

void
gtk_cell_area_get_preferred_width_for_height
                               (GtkCellArea *area,
                                GtkCellAreaContext *context,
                                GtkWidget *widget,
                                int height,
                                int *minimum_width,
                                int *natural_width);

Получает минимальную и естественную ширину области ячейки, если бы ей была задана указанная height.

area хранит некоторую геометрическую информацию в context по ходу выполнения вызова gtk_cell_area_get_preferred_height(). Важно выполнить серию запросов gtk_cell_area_get_preferred_height() с context сначала, а затем вызвать gtk_cell_area_get_preferred_width_for_height() для каждой области ячейки индивидуально, чтобы получить высоту для ширины каждой полностью запрошенной строки.

Если в какой-то момент высота одной строки изменяется, её следует снова запросить с помощью gtk_cell_area_get_preferred_height(), а затем снова проверить полную высоту запрошенных строк с помощью gtk_cell_area_context_get_preferred_height().

Параметры

area

объект GtkCellArea

context

контекст GtkCellAreaContext, для которого уже запрошены ширины.

widget

объект GtkWidget, где area будет отображаться

height

высота для проверки ширины этой области

minimum_width

место для хранения минимальной ширины или NULL.

[out][allow-none]

natural_width

место для хранения естественной ширины или NULL.

[out][allow-none]

gtk_cell_area_get_current_path_string ()

const char *
gtk_cell_area_get_current_path_string (GtkCellArea *area);

Получает строковое представление текущего GtkTreePath для текущего применённого GtkTreeIter. Оно неявно обновляется при вызове gtk_cell_area_apply_attributes() и может использоваться для взаимодействия с рендерерами из подклассов GtkCellArea.

Параметры

area

объект GtkCellArea

Возвращаемое значение

Строковое представление текущего GtkTreePath для текущих применённых атрибутов к area. Эта строка принадлежит области и не должна освобождаться.

gtk_cell_area_apply_attributes ()

void
gtk_cell_area_apply_attributes (GtkCellArea *area,
                                GtkTreeModel *tree_model,
                                GtkTreeIter *iter,
                                gboolean is_expander,
                                gboolean is_expanded);

Применяет все подключённые атрибуты к рендерерам в area, извлекая значения из tree_model.

Параметры

area

объект GtkCellArea

tree_model

объект GtkTreeModel для извлечения значений

iter

GtkTreeIter в tree_model для применения значений

is_expander

является ли iter родительским элементом

is_expanded

расширена ли iter в представлении, и видны ли дочерние элементы

gtk_cell_area_attribute_connect ()

void
gtk_cell_area_attribute_connect (GtkCellArea *area,
                                 GtkCellRenderer *renderer,
                                 const char *attribute,
                                 int column);

Подключает attribute для применения значений из column для используемого GtkTreeModel.

Параметры

area

объект GtkCellArea

renderer

объект GtkCellRenderer для подключения атрибута

attribute

имя атрибута

column

колонка GtkTreeModel для извлечения значений атрибута

gtk_cell_area_attribute_disconnect ()

void
gtk_cell_area_attribute_disconnect (GtkCellArea *area,
                                    GtkCellRenderer *renderer,
                                    const char *attribute);

Отключает attribute для renderer в area, чтобы атрибут больше не обновлялся значениями из модели.

Параметры

area

объект GtkCellArea

renderer

объект GtkCellRenderer для отключения атрибута

attribute

имя атрибута

gtk_cell_area_attribute_get_column ()

int
gtk_cell_area_attribute_get_column (GtkCellArea *area,
                                    GtkCellRenderer *renderer,
                                    const char *attribute);

Возвращает столбец модели, к которому сопоставлен атрибут, или -1, если атрибут не сопоставлен.

Параметры

area

объект GtkCellArea

renderer

объект GtkCellRenderer

attribute

атрибут на рендерере

Возвращает

столбец модели или -1

gtk_cell_area_class_install_cell_property ()

void
gtk_cell_area_class_install_cell_property
                               (GtkCellAreaClass *aclass,
                                guint property_id,
                                GParamSpec *pspec);

Устанавливает свойство ячейки в классе области ячейки.

Параметры

aclass

объект GtkCellAreaClass

property_id

идентификатор свойства

pspec

объект GParamSpec для свойства

gtk_cell_area_class_find_cell_property ()

GParamSpec *
gtk_cell_area_class_find_cell_property
                               (GtkCellAreaClass *aclass,
                                const char *property_name);

Находит свойство ячейки класса области ячейки по имени.

Параметры

aclass

объект GtkCellAreaClass

property_name

имя дочернего свойства для поиска

Возвращает

объект GParamSpec дочернего свойства или NULL если у aclass нет дочернего свойства с этим именем.

[transfer none]

gtk_cell_area_class_list_cell_properties ()

GParamSpec **
gtk_cell_area_class_list_cell_properties
                               (GtkCellAreaClass *aclass,
                                guint *n_properties);

Возвращает все свойства ячейки класса области ячейки.

Параметры

aclass

объект GtkCellAreaClass

n_properties

место для возвращения количества найденных свойств ячеек.

[out]

Возвращает

новый выделенный массив GParamSpec*, завершенный NULL. Массив необходимо освободить с помощью g_free().

[array length=n_properties][transfer container]

gtk_cell_area_add_with_properties ()

void
gtk_cell_area_add_with_properties (GtkCellArea *area,
                                   GtkCellRenderer *renderer,
                                   const char *first_prop_name,
                                   ...);

Добавляет renderer в area, одновременно устанавливая свойства ячейки. Подробнее см. gtk_cell_area_add() и gtk_cell_area_cell_set().

Параметры

area

объект GtkCellArea

renderer

объект GtkCellRenderer, который будет помещён внутрь area

first_prop_name

имя первого свойства ячейки для установки

...

список имен и значений свойств, завершённый NULL, начиная с first_prop_name

gtk_cell_area_cell_set ()

void
gtk_cell_area_cell_set (GtkCellArea *area,
                        GtkCellRenderer *renderer,
                        const char *first_prop_name,
                        ...);

Устанавливает одно или несколько свойств ячейки для cell в area.

Параметры

...

gtk_cell_area_cell_get ()

void
gtk_cell_area_cell_get (GtkCellArea *area,
                        GtkCellRenderer *renderer,
                        const char *first_prop_name,
                        ...);

Получает значения одного или нескольких свойств ячейки для renderer в area.

Параметры

...

gtk_cell_area_cell_set_valist ()

void
gtk_cell_area_cell_set_valist (GtkCellArea *area,
                               GtkCellRenderer *renderer,
                               const char *first_property_name,
                               va_list var_args);

Устанавливает одно или несколько свойств ячейки для renderer в area.

Параметры

...

gtk_cell_area_cell_get_valist ()

void
gtk_cell_area_cell_get_valist (GtkCellArea *area,
                               GtkCellRenderer *renderer,
                               const char *first_property_name,
                               va_list var_args);

Получает значения одного или нескольких свойств ячейки для renderer в area.

Параметры

area

a GtkCellArea

renderer

a GtkCellRenderer внутри area

first_property_name

имя первого свойства для получения

var_args

местоположение для возврата первого свойства, за которым необязательно следуют пары имя/местоположение для возврата, а затем NULL

gtk_cell_area_cell_set_property ()

void
gtk_cell_area_cell_set_property (GtkCellArea *area,
                                 GtkCellRenderer *renderer,
                                 const char *property_name,
                                 const GValue *value);

Устанавливает свойство ячейки для renderer в area.

Параметры

area

a GtkCellArea

renderer

a GtkCellRenderer внутри area

property_name

имя свойства ячейки для установки

value

значение для установки свойства ячейки

gtk_cell_area_cell_get_property ()

void
gtk_cell_area_cell_get_property (GtkCellArea *area,
                                 GtkCellRenderer *renderer,
                                 const char *property_name,
                                 GValue *value);

Получает значение свойства ячейки для renderer в area.

Параметры

area

a GtkCellArea

renderer

a GtkCellRenderer внутри area

property_name

имя свойства для получения

value

место для возврата значения

gtk_cell_area_is_activatable ()

gboolean
gtk_cell_area_is_activatable (GtkCellArea *area);

Возвращает, может ли область что-то сделать при активации после применения новых атрибутов к area.

Параметры

area

a GtkCellArea

Возвращает

может ли area что-то сделать при активации.

gtk_cell_area_activate ()

gboolean
gtk_cell_area_activate (GtkCellArea *area,
                        GtkCellAreaContext *context,
                        GtkWidget *widget,
                        const GdkRectangle *cell_area,
                        GtkCellRendererState flags,
                        gboolean edit_only);

Активирует area, обычно, активируя текущую ячейку с фокусом, однако некоторые подклассы, которые встраивают виджеты в область, также могут активировать виджет, если у него в данный момент есть фокус.

Параметры

area

a GtkCellArea

context

the GtkCellAreaContext в контексте текущих данных строки

widget

the GtkWidget, на котором area отображает

cell_area

размер и расположение area относительно выделения widget

flags

значения GtkCellRendererState флагов для area для этой строки данных.

edit_only

если TRUE , то только те элементы ячейки-рендерера, которые являются GTK_CELL_RENDERER_MODE_EDITABLE, будут активированы.

Возвращает

Была ли успешно активирована area.

gtk_cell_area_focus ()

gboolean
gtk_cell_area_focus (GtkCellArea *area,
                     GtkDirectionType direction);

Этот метод должен вызываться виджетом-макетом, владеющим area, когда фокус должен передаваться area или перемещаться внутри area для заданных direction и данных строки.

Реализующие классы GtkCellArea должны реализовать этот метод, чтобы получать и навигации по фокусу своим способом, специфичным для их способов компоновки ячеек.

Параметры

area

a GtkCellArea

direction

the GtkDirectionType

Возвращает

TRUE если фокус остаётся внутри area в результате этого вызова.

gtk_cell_area_set_focus_cell ()

void
gtk_cell_area_set_focus_cell (GtkCellArea *area,
                              GtkCellRenderer *renderer);

Явно устанавливает текущую ячейку с фокусом на renderer.

Обычно вызывается реализациями GtkCellAreaClass.focus() или GtkCellAreaClass.event(), но также может использоваться для реализации функций, таких как gtk_tree_view_set_cursor_on_cell().

Параметры

area

a GtkCellArea

renderer

the GtkCellRenderer которому нужно передать фокус

gtk_cell_area_get_focus_cell ()

GtkCellRenderer *
gtk_cell_area_get_focus_cell (GtkCellArea *area);

Получает текущую ячейку с фокусом для area.

Параметры

area

a GtkCellArea

Возвращает

текущую ячейку с фокусом в area .

[transfer none]

gtk_cell_area_add_focus_sibling ()

void
gtk_cell_area_add_focus_sibling (GtkCellArea *area,
                                 GtkCellRenderer *renderer,
                                 GtkCellRenderer *sibling);

Добавляет sibling в область фокуса renderer. Фокус будет нарисован вокруг renderer и всех его соседей, если renderer может получить фокус для данной строки.

События, обрабатываемые фокусными соседями, также могут активировать указанный фокусируемый renderer.

Параметры

area

a GtkCellArea

renderer

the GtkCellRenderer ожидающий фокус

sibling

the GtkCellRenderer для добавления в область фокуса renderer

gtk_cell_area_remove_focus_sibling ()

void
gtk_cell_area_remove_focus_sibling (GtkCellArea *area,
                                    GtkCellRenderer *renderer,
                                    GtkCellRenderer *sibling);

Удаляет sibling из списка фокусных соседей renderer (см. gtk_cell_area_add_focus_sibling()).

Параметры

area

a GtkCellArea

renderer

the GtkCellRenderer ожидающий фокус

sibling

the GtkCellRenderer для удаления из области фокуса renderer

gtk_cell_area_is_focus_sibling ()

gboolean
gtk_cell_area_is_focus_sibling (GtkCellArea *area,
                                GtkCellRenderer *renderer,
                                GtkCellRenderer *sibling);

Возвращает, является ли sibling одним из фокусных соседей renderer (см. gtk_cell_area_add_focus_sibling()).

Параметры

area

a GtkCellArea

renderer

the GtkCellRenderer ожидающий фокус

sibling

the GtkCellRenderer для проверки против списка соседей renderer

Возвращает

TRUE если sibling является фокусным соседом renderer

gtk_cell_area_get_focus_siblings ()

const GList *
gtk_cell_area_get_focus_siblings (GtkCellArea *area,
                                  GtkCellRenderer *renderer);

Получает фокусные соседние элементы рендеринга ячеек для renderer.

Параметры

area

a GtkCellArea

renderer

the GtkCellRenderer ожидающий фокус

Возвращает

A GList из GtkCellRenderers. Возвращенный список внутренний и не должен освобождаться.

[element-type GtkCellRenderer][transfer none]

gtk_cell_area_get_focus_from_sibling ()

GtkCellRenderer *
gtk_cell_area_get_focus_from_sibling (GtkCellArea *area,
                                      GtkCellRenderer *renderer);

Получает GtkCellRenderer, который ожидается для фокусирования, для которого renderer является, или может быть, соседом.

Это удобно для подклассов GtkCellArea при обработке событий, после определения рендера в месте события, он может затем выбрать активацию ячейки фокуса, для которой ячейка события может быть соседом.

Параметры

area

a GtkCellArea

renderer

the GtkCellRenderer

Возвращает

the GtkCellRenderer для которого renderer является соседом, или NULL.

[nullable][transfer none]

gtk_cell_area_get_edited_cell ()

GtkCellRenderer *
gtk_cell_area_get_edited_cell (GtkCellArea *area);

Получает GtkCellRenderer в area, который в настоящее время редактируется.

Параметры

area

a GtkCellArea

Возвращает

В настоящее время редактируемый GtkCellRenderer.

[transfer none]

gtk_cell_area_get_edit_widget ()

GtkCellEditable *
gtk_cell_area_get_edit_widget (GtkCellArea *area);

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

Параметры

area

a GtkCellArea

Возвращает

Текущий активный виджет GtkCellEditable.

[transfer none]

gtk_cell_area_activate_cell ()

gboolean
gtk_cell_area_activate_cell (GtkCellArea *area,
                             GtkWidget *widget,
                             GtkCellRenderer *renderer,
                             GdkEvent *event,
                             const GdkRectangle *cell_area,
                             GtkCellRendererState flags);

Этот метод используется подклассами GtkCellArea при обработке событий для активации ячеек. Базовый класс GtkCellArea активирует ячейки для событий клавиатуры самостоятельно в своей реализации GtkCellArea->activate().

Параметры

area

объект GtkCellArea

widget

объект GtkWidget, на котором area отрисовывается

renderer

объект GtkCellRenderer, который area необходимо активировать

event

объект GdkEvent, для которого должна произойти активация ячейки

cell_area

объект GdkRectangle с координатами в widget, относительными к renderer для текущей строки.

flags

состояние GtkCellRendererState для renderer

Возвращаемое значение

успешность активации ячейки

gtk_cell_area_stop_editing ()

void
gtk_cell_area_stop_editing (GtkCellArea *area,
                            gboolean canceled);

Явно останавливает редактирование текущей ячейки.

Если canceled имеет значение TRUE, текущий редактируемый элемент отображения ячейки вызовет сигнал ::editing-canceled, в противном случае будет вызван сигнал ::editing-done на текущем элементе редактирования.

См. gtk_cell_area_get_edited_cell() и gtk_cell_area_get_edit_widget().

Параметры

area

объект GtkCellArea

canceled

указывающий, было ли редактирование отменено.

gtk_cell_area_inner_cell_area ()

void
gtk_cell_area_inner_cell_area (GtkCellArea *area,
                               GtkWidget *widget,
                               const GdkRectangle *cell_area,
                               GdkRectangle *inner_area);

Эта вспомогательная функция для реализаций GtkCellArea позволяет получить внутреннюю область, где будет отрисовываться заданный GtkCellRenderer. Она удаляет любой отступ, добавленный ранее функцией gtk_cell_area_request_renderer().

Параметры

area

объект GtkCellArea

widget

объект GtkWidget, на котором area отрисовывается

cell_area

координаты в widget, относительные к месту, где должна быть размещена одна из ячеек area

inner_area

место для возврата внутренней области ячейки.

[out]

gtk_cell_area_request-renderer ()

void
gtk_cell_area_request_renderer (GtkCellArea *area,
                                GtkCellRenderer *renderer,
                                GtkOrientation orientation,
                                GtkWidget *widget,
                                int for_size,
                                int *minimum_size,
                                int *natural_size);

Эта вспомогательная функция для реализаций GtkCellArea позволяет запросить размер для элементов отображения ячеек. Важно использовать эту функцию для запроса размера, а затем использовать gtk_cell_area_inner_cell_area() во время отрисовки и обработки событий, так как эта функция добавляет отступы вокруг ячейки для отрисовки фокуса.

Параметры

area

объект GtkCellArea

renderer

объект GtkCellRenderer, для которого запрашивается размер

orientation

направление GtkOrientation, для которого запрашивается размер

widget

объект GtkWidget, на котором area отрисовывается

for_size

контекстный размер выделения для запроса, или -1, если необходимо вернуть базовый запрос для направления.

minimum_size

место для хранения минимального размера, или NULL.

[out][allow-none]

natural_size

место для хранения естественного размера, или NULL.

[out][allow-none]

Типы и значения

struct GtkCellArea

struct GtkCellArea;

struct GtkCellAreaClass

struct GtkCellAreaClass {
  /* Basic methods */
  void               (* add)                             (GtkCellArea             *area,
                                                          GtkCellRenderer         *renderer);
  void               (* remove)                          (GtkCellArea             *area,
                                                          GtkCellRenderer         *renderer);
  void               (* foreach)                         (GtkCellArea             *area,
                                                          GtkCellCallback          callback,
                                                          gpointer                 callback_data);
  void               (* foreach_alloc)                   (GtkCellArea             *area,
                                                          GtkCellAreaContext      *context,
                                                          GtkWidget               *widget,
                                                          const GdkRectangle      *cell_area,
                                                          const GdkRectangle      *background_area,
                                                          GtkCellAllocCallback     callback,
                                                          gpointer                 callback_data);
  int                (* event)                           (GtkCellArea             *area,
                                                          GtkCellAreaContext      *context,
                                                          GtkWidget               *widget,
                                                          GdkEvent                *event,
                                                          const GdkRectangle      *cell_area,
                                                          GtkCellRendererState     flags);
  void               (* snapshot)                        (GtkCellArea             *area,
                                                          GtkCellAreaContext      *context,
                                                          GtkWidget               *widget,
                                                          GtkSnapshot             *snapshot,
                                                          const GdkRectangle      *background_area,
                                                          const GdkRectangle      *cell_area,
                                                          GtkCellRendererState     flags,
                                                          gboolean                 paint_focus);
  void               (* apply_attributes)                (GtkCellArea             *area,
                                                          GtkTreeModel            *tree_model,
                                                          GtkTreeIter             *iter,
                                                          gboolean                 is_expander,
                                                          gboolean                 is_expanded);

  /* Geometry */
  GtkCellAreaContext *(* create_context)                 (GtkCellArea             *area);
  GtkCellAreaContext *(* copy_context)                   (GtkCellArea             *area,
                                                          GtkCellAreaContext      *context);
  GtkSizeRequestMode (* get_request_mode)                (GtkCellArea             *area);
  void               (* get_preferred_width)             (GtkCellArea             *area,
                                                          GtkCellAreaContext      *context,
                                                          GtkWidget               *widget,
                                                          int                     *minimum_width,
                                                          int                     *natural_width);
  void               (* get_preferred_height_for_width)  (GtkCellArea             *area,
                                                          GtkCellAreaContext      *context,
                                                          GtkWidget               *widget,
                                                          int                      width,
                                                          int                     *minimum_height,
                                                          int                     *natural_height);
  void               (* get_preferred_height)            (GtkCellArea             *area,
                                                          GtkCellAreaContext      *context,
                                                          GtkWidget               *widget,
                                                          int                     *minimum_height,
                                                          int                     *natural_height);
  void               (* get_preferred_width_for_height)  (GtkCellArea             *area,
                                                          GtkCellAreaContext      *context,
                                                          GtkWidget               *widget,
                                                          int                      height,
                                                          int                     *minimum_width,
                                                          int                     *natural_width);

  /* Cell Properties */
  void               (* set_cell_property)               (GtkCellArea             *area,
                                                          GtkCellRenderer         *renderer,
                                                          guint                    property_id,
                                                          const GValue            *value,
                                                          GParamSpec              *pspec);
  void               (* get_cell_property)               (GtkCellArea             *area,
                                                          GtkCellRenderer         *renderer,
                                                          guint                    property_id,
                                                          GValue                  *value,
                                                          GParamSpec              *pspec);

  /* Focus */
  gboolean           (* focus)                           (GtkCellArea             *area,
                                                          GtkDirectionType         direction);
  gboolean           (* is_activatable)                  (GtkCellArea             *area);
  gboolean           (* activate)                        (GtkCellArea             *area,
                                                          GtkCellAreaContext      *context,
                                                          GtkWidget               *widget,
                                                          const GdkRectangle      *cell_area,
                                                          GtkCellRendererState     flags,
                                                          gboolean                 edit_only);
};

Члены

add ()

добавляет GtkCellRenderer в область.

remove ()

удаляет GtkCellRenderer из области.

foreach ()

вызывает функцию GtkCellCallback для каждого GtkCellRenderer в области с предоставленными пользовательскими данными, пока обратный вызов не вернет TRUE.

foreach_alloc ()

Вызывает функцию GtkCellAllocCallback для каждого GtkCellRenderer в области с выделенной областью для ячейки и предоставленными пользовательскими данными, пока обратный вызов не вернет TRUE.

event ()

Обрабатывает событие в области, это обычно используется для активации ячейки в местоположении события для событий кнопки, но также может использоваться для общего прохождения событий к GtkWidgets, нарисованным на области.

snapshot ()

Фактически создает снимок ячеек области в указанный прямоугольник, background_area должны быть правильно распределены по соответствующим фоновым областям ячеек.

apply_attributes ()

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

create_context ()

Создает и возвращает специфичный для класса GtkCellAreaContext для хранения данных выравнивания и распределения ячеек для данного класса GtkCellArea.

copy_context ()

Создает новый GtkCellAreaContext в том же состоянии, что и переданный context, со всеми данными выравнивания ячеек и распределениями неповрежденными.

get_request_mode ()

Это позволяет области сообщить своему виджету компоновки, предпочитает ли она быть распределенной в режиме GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH или GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT.

get_preferred_width ()

Вычисляет минимальную и естественную ширину ячеек областей с примененными текущими атрибутами, учитывая особенности компоновки данной GtkCellArea. Хотя запросы выполняются по ряду строк, выравнивания и общие минимальные и естественные размеры должны храниться в соответствующем GtkCellAreaContext.

get_preferred_height_for_width ()

Вычисляет минимальную и естественную высоту для области, если переданному context будет выделена заданная ширина. При реализации этого виртуального метода можно считать, что context уже хранит выровненные ширины ячеек для каждой строки GtkTreeModel, для которой будет выделен context, поскольку эта информация была сохранена во время GtkCellAreaClass.get_preferred_width(). Этот виртуальный метод также должен хранить любые необходимые выравнивания высот ячеек на тот случай, если контексту будет назначена высота.

get_preferred_height ()

Вычисляет минимальную и естественную высоту ячеек областей с примененными текущими атрибутами. По сути, это то же самое, что и GtkCellAreaClass.get_preferred_width(), только для областей, которые запрашиваются как GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT.

get_preferred_width_for_height ()

Вычисляет минимальную и естественную ширину для области, если переданному context будет выделена заданная высота. То же самое, что и GtkCellAreaClass.get_preferred_height_for_width(), только для обработки запросов в режиме GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT.

set_cell_property ()

Это должно быть реализовано для обработки изменений в свойствах дочерних ячеек для данного GtkCellRenderer, которые ранее были установлены на GtkCellAreaClass с помощью gtk_cell_area_class_install_cell_property().

get_cell_property ()

Это должно быть реализовано для сообщения значений свойств дочерних ячеек для данного дочернего GtkCellRenderer.

focus ()

Этот виртуальный метод должен быть реализован для навигации фокуса от ячейки к ячейке внутри GtkCellArea. GtkCellArea должен перемещать фокус от ячейки к ячейке внутри области и возвращать FALSE, если фокус логически выходит за пределы области со следующими исключениями: когда область не содержит активируемых ячеек, вся область получает фокус. Фокус не должен передаваться ячейкам, которые фактически являются «последовательными фокусными» другими последовательными ячейками (см. gtk_cell_area_get_focus_from_sibling()). Фокус устанавливается вызовом gtk_cell_area_set_focus_cell().

is_activatable ()

Возвращает, может ли GtkCellArea реагировать на GtkCellAreaClass.activate(), обычно это не нужно реализовывать, поскольку базовый класс этим занимается, однако его можно улучшить, если подкласс GtkCellArea может обрабатывать активацию другими способами, чем активация его GtkCellRenderers.

activate ()

Вызывается, когда виджет компоновки, отображающий GtkCellArea, активирует фокусную ячейку (см. gtk_cell_area_get_focus_cell()).

Подробное описание свойств

Свойство “edit-widget”

  “edit-widget”              GtkCellEditable *

Виджет, в данный момент редактирующий ячейку.

Это свойство является только для чтения и изменяется только в результате вызова gtk_cell_area_activate_cell().

Владелец: GtkCellArea

Флаги: Только чтение

Свойство “edited-cell”

  “edited-cell”              GtkCellRenderer *

Ячейка в области, которая в данный момент редактируется.

Это свойство является только для чтения и изменяется только в результате вызова gtk_cell_area_activate_cell().

Владелец: GtkCellArea

Флаги: Только чтение

Свойство “focus-cell”

  “focus-cell”               GtkCellRenderer *

Ячейка в области, которая в данный момент имеет фокус.

Владелец: GtkCellArea

Флаги: Чтение / Запись

Подробное описание сигналов

Сигнал “add-editable”

void
user_function (GtkCellArea     *area,
               GtkCellRenderer *renderer,
               GtkCellEditable *editable,
               GdkRectangle    *cell_area,
               char            *path,
               gpointer         user_data)

Указывает, что началось редактирование в renderer и что editable должно быть добавлено в владеющий виджет компоновки ячеек в cell_area.

Параметры

area

the GtkCellArea где началось редактирование

renderer

the GtkCellRenderer который инициировал редактирование

editable

the GtkCellEditable виджет для добавления

cell_area

the GtkWidget относительные координаты GdkRectangle куда editable должно быть добавлено

path

the GtkTreePath строка, для которой было инициировано это редактирование

user_data

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Выполняется первым

Сигнал “apply-attributes”

void
user_function (GtkCellArea  *area,
               GtkTreeModel *model,
               GtkTreeIter  *iter,
               gboolean      is_expander,
               gboolean      is_expanded,
               gpointer      user_data)

Этот сигнал генерируется всякий раз, когда применяются атрибуты к area из model

Параметры

area

the GtkCellArea к которому применяются атрибуты

model

the GtkTreeModel откуда применяются атрибуты

iter

the GtkTreeIter указывающий на строку, к которой применять атрибуты

is_expander

является ли это строка с расширителем

is_expanded

отображает ли представление дочерние элементы для этой строки

user_data

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Выполняется первым

Сигнал “focus-changed”

void
user_function (GtkCellArea     *area,
               GtkCellRenderer *renderer,
               char            *path,
               gpointer         user_data)

Указывает, что фокус изменился на area. Этот сигнал генерируется либо в результате обработки фокуса, либо обработки событий.

Возможен случай, когда сигнал генерируется, даже если рендерер, получивший фокус, не изменился. Это происходит, так как фокус может перейти на тот же рендерер в той же области ячеек для другой строки данных.

Параметры

area

the GtkCellArea где изменился фокус

renderer

the GtkCellRenderer у которого есть фокус

path

текущая GtkTreePath строка, установленная для area

user_data

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Выполняется первым

Сигнал “remove-editable”

void
user_function (GtkCellArea     *area,
               GtkCellRenderer *renderer,
               GtkCellEditable *editable,
               gpointer         user_data)

Указывает, что редактирование завершено в renderer и что editable должно быть удалено из владеющего виджета компоновки ячеек.

Параметры

area

the GtkCellArea где редактирование завершено

renderer

the GtkCellRenderer который завершил редактирование

editable

the GtkCellEditable виджет для удаления

user_data

пользовательские данные, установленные при подключении обработчика сигнала.

Флаги: Выполняется первым

© 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/GtkCellArea.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API