GtkCellAreaContext
GtkCellAreaContext — Хранит геометрическую информацию для ряда строк в GtkCellArea
Функции
Свойства
| GtkCellArea * | area | Чтение/Запись/Только для создания |
| gint | минимальная-высота | Чтение |
| gint | минимальная-ширина | Чтение |
| gint | естественная-высота | Чтение |
| gint | естественная-ширина | Чтение |
Типы и значения
Иерархия объектов
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.
Параметры
С: 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.
Параметры
С: 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.
Параметры
С: 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.
Параметры
С: 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.
Параметры
С: 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 | ||
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 | ||
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, для которого был создан этот контекст
Флаги: Чтение/Запись/Только для создания
С: 3.0
Свойство “minimum-height”
“minimum-height” gint
Минимальная высота для GtkCellArea в этом контексте для всех строк GtkTreeModel, для которых был запрошен этот контекст с помощью gtk_cell_area_get_preferred_height().
Флаги: Только чтение
Допустимые значения: >= -1
Значение по умолчанию: -1
С: 3.0
Свойство “minimum-width”
“minimum-width” gint
Минимальная ширина для GtkCellArea в этом контексте для всех строк GtkTreeModel, для которых был запрошен этот контекст с помощью gtk_cell_area_get_preferred_width().
Флаги: Только чтение
Допустимые значения: >= -1
Значение по умолчанию: -1
С: 3.0
Свойство “natural-height”
“natural-height” gint
Естественная высота для GtkCellArea в этом контексте для всех строк GtkTreeModel, для которых был запрошен этот контекст с помощью gtk_cell_area_get_preferred_height().
Флаги: Только чтение
Допустимые значения: >= -1
Значение по умолчанию: -1
С: 3.0
Свойство “natural-width”
“natural-width” gint
Естественная ширина для GtkCellArea в этом контексте для всех строк GtkTreeModel, для которых был запрошен этот контекст с помощью gtk_cell_area_get_preferred_width().
Флаги: Только чтение
Допустимые значения: >= -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.20/GtkCellAreaContext.html