GtkCellAreaContext
GtkCellAreaContext — Хранит геометрическую информацию для серии строк в GtkCellArea
Функции
Свойства
| GtkCellArea * | area | Чтение/Запись/Только для создания |
| int | минимальная-высота | Только для чтения |
| int | минимальная-ширина | Только для чтения |
| int | естественная-высота | Только для чтения |
| int | естественная-ширина | Только для чтения |
Типы и значения
Иерархия объектов
GObject
╰── GtkCellAreaContext
Включаемые файлы
#include <gtk/gtk.h>
Описание
Объект GtkCellAreaContext создается реализацией GtkCellArea через виртуальный метод GtkCellAreaClass.create_context() и используется для хранения размеров и выравнивания ячеек для серии строк GtkTreeModel, которые запрашиваются и отображаются в одном контексте.
Элементы GtkCellLayout могут создавать любое количество контекстов для запроса и отображения групп строк данных. Однако важно, чтобы один и тот же контекст, который использовался для запроса размеров для данной строки GtkTreeModel, также использовался для этой же строки при вызове других API GtkCellArea, таких как gtk_cell_area_render() и gtk_cell_area_event().
Функции
gtk_cell_area_context_get_area ()
GtkCellArea *
gtk_cell_area_context_get_area (GtkCellAreaContext *context); Возвращает GtkCellArea, для которого был создан данный context.
Обычно для компоновки виджетов это не требуется; однако, для самой реализации контекста важно получить информацию о том, для какой области он используется.
Например, во время GtkCellAreaContextClass.allocate() важно знать детали отступов ячеек, которые настроены в GtkCellArea, чтобы вычислить правильное размещение.
Параметры
context |
С: 3.0
gtk_cell_area_context_allocate ()
void gtk_cell_area_context_allocate (GtkCellAreaContext *context,gint width,gint height);
Выделяет ширину и/или высоту для всех строк, которые должны быть отрисованы с помощью context .
Обычно выделение выполняется только по горизонтали или иногда по вертикали, так как группа строк обычно отображается друг под другом или рядом и разделяет либо одинаковую ширину, либо одинаковую высоту. Иногда они выделяются как по горизонтали, так и по вертикали, создавая однородный эффект строк. Это обычно имеет место для GtkTreeView, когда включен режим “fixed-height-mode”.
С 3.0
Параметры
context | ||
width | выделенная ширина для всех строк GtkTreeModel, отрисованных с помощью | |
height | выделенная высота для всех строк GtkTreeModel, отрисованных с помощью |
gtk_cell_area_context_reset ()
void
gtk_cell_area_context_reset (GtkCellAreaContext *context); Сбрасывает любые предварительно кэшированные запросы и данные выделения.
При изменении данных GtkTreeModel, важно сбросить контекст, если размер содержимого может уменьшаться. Если размер содержимого может только увеличиваться (это обычно опция для представлений, отображающих большие хранилища данных в качестве меры оптимизации), то только строка, которая изменилась или была вставлена, должна быть (пере)запрошена с помощью gtk_cell_area_get_preferred_width().
Если новый общий размер контекста требует изменения размера выделения (или если это выделение вообще изменяется), то переменные размеры строк нужно перезапрашивать для каждой строки.
Например, если строки отображаются с одинаковой шириной сверху вниз, то изменение выделенной ширины требует перерасчета всех высот отображаемых строк с помощью gtk_cell_area_get_preferred_height_for_width().
С 3.0
Параметры
context |
gtk_cell_area_context_get_preferred_width ()
void gtk_cell_area_context_get_preferred_width (GtkCellAreaContext *context,gint *minimum_width,gint *natural_width);
Получает суммарную предпочтительную ширину для всех строк, которые были запрошены с помощью этого контекста.
После вызова gtk_cell_area_context_reset() и/или перед запросом размера GtkCellArea возвращаемые значения равны 0.
Параметры
context | ||
minimum_width | место для хранения минимальной ширины, или | [out][allow-none] |
natural_width | место для хранения естественной ширины, или | [out][allow-none] |
С: 3.0
gtk_cell_area_context_get_preferred_height ()
void gtk_cell_area_context_get_preferred_height (GtkCellAreaContext *context,gint *minimum_height,gint *natural_height);
Получает суммарную предпочтительную высоту для всех строк, которые были запрошены с помощью этого контекста.
После вызова gtk_cell_area_context_reset() и/или перед запросом размера GtkCellArea возвращаемые значения равны 0.
Параметры
context | ||
minimum_height | место для хранения минимальной высоты, или | [out][allow-none] |
natural_height | место для хранения естественной высоты, или | [out][allow-none] |
С: 3.0
gtk_cell_area_context_get_preferred_height_for_width ()
void gtk_cell_area_context_get_preferred_height_for_width (GtkCellAreaContext *context,gint width,gint *minimum_height,gint *natural_height);
Получает суммарную предпочтительную высоту для width для всех строк, запрошенных для того же самого width с данным контекстом.
После вызова gtk_cell_area_context_reset() и/или перед запросом размера GtkCellArea, возвращаемые значения равны -1.
Параметры
context | контекст GtkCellAreaContext | |
width | предлагаемая ширина для выделения | |
minimum_height | место для хранения минимальной высоты или | [out][allow-none] |
natural_height | место для хранения естественной высоты или | [out][allow-none] |
С момента: 3.0
gtk_cell_area_context_get_preferred_width_for_height ()
void gtk_cell_area_context_get_preferred_width_for_height (GtkCellAreaContext *context,gint height,gint *minimum_width,gint *natural_width);
Получает суммарную предпочтительную ширину для height для всех строк, запрошенных для того же самого height с данным контекстом.
После вызова gtk_cell_area_context_reset() и/или перед запросом размера GtkCellArea, возвращаемые значения равны -1.
Параметры
context | контекст GtkCellAreaContext | |
height | предлагаемая высота для выделения | |
minimum_width | место для хранения минимальной ширины или | [out][allow-none] |
natural_width | место для хранения естественной ширины или | [out][allow-none] |
С момента: 3.0
gtk_cell_area_context_get_allocation ()
void gtk_cell_area_context_get_allocation (GtkCellAreaContext *context,gint *width,gint *height);
Получает текущий размер выделения для context .
Если контекст не был выделен по ширине или высоте, или если контекст был недавно сброшен с помощью gtk_cell_area_context_reset(), возвращаемое значение будет -1.
Параметры
context | контекст GtkCellAreaContext | |
width | место для хранения выделенной ширины или | [out][allow-none] |
height | место для хранения выделенной высоты или | [out][allow-none] |
С момента: 3.0
gtk_cell_area_context_push_preferred_width ()
void gtk_cell_area_context_push_preferred_width (GtkCellAreaContext *context,gint minimum_width,gint natural_width);
Приводит к увеличению минимальной и/или естественной ширины, если новые предлагаемые размеры превышают текущую минимальную и естественную ширину.
Используется реализациями GtkCellAreaContext во время процесса запроса по серии строк GtkTreeModel, чтобы постепенно увеличивать запрашиваемую ширину над серией запросов gtk_cell_area_get_preferred_width().
Параметры
context | контекст GtkCellAreaContext | |
minimum_width | предлагаемая новая минимальная ширина для | |
natural_width | предлагаемая новая естественная ширина для |
С момента: 3.0
gtk_cell_area_context_push_preferred_height ()
void gtk_cell_area_context_push_preferred_height (GtkCellAreaContext *context,gint minimum_height,gint natural_height);
Приводит к увеличению минимальной и/или естественной высоты, если новые предлагаемые размеры превышают текущую минимальную и естественную высоту.
Используется реализациями GtkCellAreaContext во время процесса запроса по серии строк GtkTreeModel, чтобы постепенно увеличивать запрашиваемую высоту над серией запросов gtk_cell_area_get_preferred_height().
Параметры
context | контекст GtkCellAreaContext | |
minimum_height | предлагаемая новая минимальная высота для | |
natural_height | предлагаемая новая естественная высота для |
С момента: 3.0
Типы и значения
struct GtkCellAreaContextClass
struct GtkCellAreaContextClass {
void (* allocate) (GtkCellAreaContext *context,
gint width,
gint height);
void (* reset) (GtkCellAreaContext *context);
void (* get_preferred_height_for_width) (GtkCellAreaContext *context,
gint width,
gint *minimum_height,
gint *natural_height);
void (* get_preferred_width_for_height) (GtkCellAreaContext *context,
gint height,
gint *minimum_width,
gint *natural_width);
};
Члены
| Это сообщает контексту, что ширина или высота (или оба) выделения были определены для группы строк. Контекст должен сохранить все выделения для внутренне выровненных ячеек на этом этапе, чтобы их не нужно было пересчитывать во время | |
| Очистить все ранее сохранённые данные о запрошенных и выделенных размерах для контекста. | |
| Возвращает выровненную высоту для заданной ширины, которую контекст должен сохранить при сборе размеров для своих строк. | |
| Возвращает выровненную ширину для заданной высоты, которую контекст должен сохранить при сборе размеров для своих строк. |
GtkCellAreaContext
typedef struct _GtkCellAreaContext GtkCellAreaContext;
Подробное описание свойств
Свойство “area”
“area” GtkCellArea *
Объект GtkCellArea, для которого был создан этот контекст.
Владелец: GtkCellAreaContext
Флаги: Чтение / Запись / Только для создания
С версии: 3.0
Свойство “minimum-height”
“minimum-height” int
Минимальная высота для GtkCellArea в этом контексте для всех строк GtkTreeModel, для которых этот контекст был запрошен с помощью gtk_cell_area_get_preferred_height().
Владелец: GtkCellAreaContext
Флаги: Чтение
Допустимые значения: >= -1
Значение по умолчанию: -1
С версии: 3.0
Свойство “minimum-width”
“minimum-width” int
Минимальная ширина для GtkCellArea в этом контексте для всех строк GtkTreeModel, для которых этот контекст был запрошен с помощью gtk_cell_area_get_preferred_width().
Владелец: GtkCellAreaContext
Флаги: Чтение
Допустимые значения: >= -1
Значение по умолчанию: -1
С версии: 3.0
Свойство “natural-height”
“natural-height” int
Естественная высота для GtkCellArea в этом контексте для всех строк GtkTreeModel, для которых этот контекст был запрошен с помощью gtk_cell_area_get_preferred_height().
Владелец: GtkCellAreaContext
Флаги: Чтение
Допустимые значения: >= -1
Значение по умолчанию: -1
С версии: 3.0
Свойство “natural-width”
“natural-width” int
Естественная ширина для GtkCellArea в этом контексте для всех строк GtkTreeModel, для которых этот контекст был запрошен с помощью gtk_cell_area_get_preferred_width().
Владелец: GtkCellAreaContext
Флаги: Чтение
Допустимые значения: >= -1
Значение по умолчанию: -1
С версии: 3.0
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkCellAreaContext.html