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 |
gtk_cell_area_context_allocate ()
void gtk_cell_area_context_allocate (GtkCellAreaContext *context,int width,int height);
Выделяет ширину и/или высоту для всех строк, которые должны быть отрисованы с помощью context.
Обычно выделение выполняется только по горизонтали или иногда по вертикали, так как группа строк обычно отрисовывается рядом друг с другом по вертикали или горизонтали и делит либо одинаковую ширину, либо одинаковую высоту. Иногда они выделяются по горизонтали и вертикали, создавая однородный эффект строк. Это обычно происходит для GtkTreeView, когда включен режим “fixed-height-mode”.
Параметры
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().
Параметры
context |
gtk_cell_area_context_get_preferred_width ()
void gtk_cell_area_context_get_preferred_width (GtkCellAreaContext *context,int *minimum_width,int *natural_width);
Получает кумулятивную предпочтительную ширину для всех строк, которые были запрошены с помощью этого контекста.
После вызова gtk_cell_area_context_reset() и/или до запроса размера GtkCellArea, возвращаемые значения равны 0.
Параметры
context | ||
minimum_width | место для хранения минимальной ширины, или | [out][allow-none] |
natural_width | место для хранения естественной ширины, или | [out][allow-none] |
gtk_cell_area_context_get_preferred_height ()
void gtk_cell_area_context_get_preferred_height (GtkCellAreaContext *context,int *minimum_height,int *natural_height);
Получает кумулятивную предпочтительную высоту для всех строк, которые были запрошены с помощью этого контекста.
После вызова gtk_cell_area_context_reset() и/или до запроса размера GtkCellArea, возвращаемые значения равны 0.
Параметры
context | ||
minimum_height | место для хранения минимальной высоты, или | [out][allow-none] |
natural_height | место для хранения естественной высоты, или | [out][allow-none] |
gtk_cell_area_context_get_preferred_height_for_width ()
void gtk_cell_area_context_get_preferred_height_for_width (GtkCellAreaContext *context,int width,int *minimum_height,int *natural_height);
Получает кумулятивную предпочтительную высоту для width для всех строк, которые были запрошены для указанного width с помощью этого контекста.
После вызова gtk_cell_area_context_reset() и/или до запроса размера GtkCellArea, возвращаемые значения равны -1.
Параметры
context | ||
width | предлагаемая ширина для выделения | |
minimum_height | место для хранения минимальной высоты, или | [out][allow-none] |
natural_height | место для хранения естественной высоты, или | [out][allow-none] |
gtk_cell_area_context_get_preferred_width_for_height ()
void gtk_cell_area_context_get_preferred_width_for_height (GtkCellAreaContext *context,int height,int *minimum_width,int *natural_width);
Получение суммарной предпочтительной ширины для height для всех строк, которые были запрошены для указанной height с этим контекстом.
После вызова gtk_cell_area_context_reset() и/или перед любым запросом размера GtkCellArea, возвращаемые значения равны -1.
Параметры
context | контекст GtkCellAreaContext | |
height | предлагаемая высота для выделения | |
minimum_width | место для хранения минимальной ширины или | [out][allow-none] |
natural_width | место для хранения естественной ширины или | [out][allow-none] |
gtk_cell_area_context_get_allocation ()
void gtk_cell_area_context_get_allocation (GtkCellAreaContext *context,int *width,int *height);
Получение текущего размера выделения для context .
Если контекст не был выделен по ширине или высоте, или если контекст был недавно сброшен с помощью gtk_cell_area_context_reset(), возвращаемое значение будет -1.
Параметры
context | контекст GtkCellAreaContext | |
width | место для хранения выделенной ширины или | [out][allow-none] |
height | место для хранения выделенной высоты или | [out][allow-none] |
gtk_cell_area_context_push_preferred_width ()
void gtk_cell_area_context_push_preferred_width (GtkCellAreaContext *context,int minimum_width,int natural_width);
Приводит к увеличению минимальной и/или естественной ширины, если новые предлагаемые размеры превышают текущую минимальную и естественную ширину.
Это используется реализациями GtkCellAreaContext во время процесса запроса по ряду строк GtkTreeModel для постепенного увеличения запрошенной ширины по ряду запросов gtk_cell_area_get_preferred_width().
Параметры
context | контекст GtkCellAreaContext | |
minimum_width | предлагаемая новая минимальная ширина для | |
natural_width | предлагаемая новая естественная ширина для |
gtk_cell_area_context_push_preferred_height ()
void gtk_cell_area_context_push_preferred_height (GtkCellAreaContext *context,int minimum_height,int natural_height);
Приводит к увеличению минимальной и/или естественной высоты, если новые предлагаемые размеры превышают текущую минимальную и естественную высоту.
Это используется реализациями GtkCellAreaContext во время процесса запроса по ряду строк GtkTreeModel для постепенного увеличения запрошенной высоты по ряду запросов gtk_cell_area_get_preferred_height().
Параметры
context | контекст GtkCellAreaContext | |
minimum_height | предлагаемая новая минимальная высота для | |
natural_height | предлагаемая новая естественная высота для |
Типы и значения
struct GtkCellAreaContextClass
struct GtkCellAreaContextClass {
void (* allocate) (GtkCellAreaContext *context,
int width,
int height);
void (* reset) (GtkCellAreaContext *context);
void (* get_preferred_height_for_width) (GtkCellAreaContext *context,
int width,
int *minimum_height,
int *natural_height);
void (* get_preferred_width_for_height) (GtkCellAreaContext *context,
int height,
int *minimum_width,
int *natural_width);
};
Члены
| Уведомляет контекст о том, что ширина или высота выделения (или оба) определены для группы строк. В этом месте контекст должен сохранить любые выделения для внутренних выровненных ячеек, чтобы они не нуждались в перерасчете во время | |
| Очистить любую ранее сохраненную информацию о запрошенных и выделенных размерах для контекста. | |
| Возвращает выровненную высоту для заданной ширины, которую контекст должен сохранить при сборе размеров для своих строк. | |
| Возвращает выровненную ширину для заданной высоты, которую контекст должен сохранить при сборе размеров для своих строк. |
GtkCellAreaContext
typedef struct _GtkCellAreaContext GtkCellAreaContext;
Подробное описание свойств
Свойство “area”
“area” GtkCellArea *
Объект GtkCellArea, для которого был создан данный контекст.
Владелец: GtkCellAreaContext
Флаги: Чтение / Запись / Только для построения
Свойство “minimum-height”
“minimum-height” int
Минимальная высота для GtkCellArea в этом контексте для всех строк GtkTreeModel, для которых был запрошен этот контекст с помощью gtk_cell_area_get_preferred_height().
Владелец: GtkCellAreaContext
Флаги: Чтение
Допустимые значения: >= -1
Значение по умолчанию: -1
Свойство “minimum-width”
“minimum-width” int
Минимальная ширина для GtkCellArea в этом контексте для всех строк GtkTreeModel, для которых был запрошен этот контекст с помощью gtk_cell_area_get_preferred_width().
Владелец: GtkCellAreaContext
Флаги: Чтение
Допустимые значения: >= -1
Значение по умолчанию: -1
Свойство “natural-height”
“natural-height” int
Естественная высота для GtkCellArea в этом контексте для всех строк GtkTreeModel, для которых был запрошен этот контекст с помощью gtk_cell_area_get_preferred_height().
Владелец: GtkCellAreaContext
Флаги: Чтение
Допустимые значения: >= -1
Значение по умолчанию: -1
Свойство “natural-width”
“natural-width” int
Естественная ширина для GtkCellArea в этом контексте для всех строк GtkTreeModel, для которых был запрошен этот контекст с помощью gtk_cell_area_get_preferred_width().
Владелец: GtkCellAreaContext
Флаги: Чтение
Допустимые значения: >= -1
Значение по умолчанию: -1
© 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/GtkCellAreaContext.html