GtkLayout
GtkLayout — Бесконечно прокручиваемая область, содержащая дочерние виджеты и/или пользовательское рисование
Функции
| GtkWidget * | gtk_layout_new () |
| void | gtk_layout_put () |
| void | gtk_layout_move () |
| void | gtk_layout_set_size () |
| void | gtk_layout_get_size () |
| GtkAdjustment * | gtk_layout_get_hadjustment () |
| GtkAdjustment * | gtk_layout_get_vadjustment () |
| void | gtk_layout_set_hadjustment () |
| void | gtk_layout_set_vadjustment () |
| GdkWindow * | gtk_layout_get_bin_window () |
Типы и значения
| struct | GtkLayout |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkContainer
╰── GtkLayout
Реализованные интерфейсы
GtkLayout реализует AtkImplementorIface, GtkBuildable и GtkScrollable.
Включаемые файлы
#include <gtk/gtk.h>
Описание
GtkLayout похож на GtkDrawingArea тем, что это «чистый лист» и по умолчанию ничего не делает, кроме рисования пустого фона. Он отличается тем, что поддерживает прокрутку по умолчанию, реализуя GtkScrollable, и может содержать дочерние виджеты, так как это GtkContainer.
Если вам просто нужно рисовать, GtkDrawingArea — лучший выбор, так как он имеет меньшую нагрузку. Если вам просто нужно расположить дочерние виджеты в определённых точках, то GtkFixed предоставляет эту функциональность самостоятельно.
При обработке событий expose на GtkLayout вы должны рисовать на GdkWindow, возвращаемом gtk_layout_get_bin_window(), а не на том, который возвращает gtk_widget_get_window(), как вы бы делали для GtkDrawingArea.
Функции
gtk_layout_new ()
GtkWidget * gtk_layout_new (GtkAdjustment *hadjustment,GtkAdjustment *vadjustment);
Создаёт новый GtkLayout. Если у вас нет конкретного настроек скроллинга для макета, передайте NULL для hadjustment и vadjustment .
Параметры
hadjustment | горизонтальная настройка прокрутки, или | [allow-none] |
vadjustment | вертикальная настройка прокрутки, или | [allow-none] |
Возвращаемое значение
новый GtkLayout
gtk_layout_put ()
void gtk_layout_put (GtkLayout *layout,GtkWidget *child_widget,gint x,gint y);
Добавляет child_widget к layout в позиции (x ,y ). layout становится новым контейнером родителя для child_widget .
Параметры
layout | ||
child_widget | дочерний виджет | |
x | Позиция X дочернего виджета | |
y | Позиция Y дочернего виджета |
gtk_layout_move ()
void gtk_layout_move (GtkLayout *layout,GtkWidget *child_widget,gint x,gint y);
Перемещает текущего дочернего элемента layout в новое положение.
Параметры
layout | ||
child_widget | текущий дочерний элемент | |
x | Позиция X для перемещения | |
y | Позиция Y для перемещения |
gtk_layout_set_size ()
void gtk_layout_set_size (GtkLayout *layout,guint width,guint height);
Устанавливает размер области прокрутки макета.
Параметры
layout | ||
width | ширина всей области прокрутки | |
height | высота всей области прокрутки |
gtk_layout_get_size ()
void gtk_layout_get_size (GtkLayout *layout,guint *width,guint *height);
Получает размер, установленный в макете, который определяет общие границы области полосы прокрутки макета. См. gtk_layout_set_size().
Параметры
layout | ||
width | место для хранения ширины, установленной для | [out][allow-none] |
height | место для хранения высоты, установленной для | [out][allow-none] |
gtk_layout_get_hadjustment ()
GtkAdjustment *
gtk_layout_get_hadjustment (GtkLayout *layout); gtk_layout_get_hadjustment устарело с версии 3.0 и не должно использоваться в новых кодах.
Используйте gtk_scrollable_get_hadjustment()
Эта функция должна вызываться только после размещения макета в GtkScrolledWindow или при другой конфигурации для прокрутки. Она возвращает GtkAdjustment, используемый для связи между горизонтальной полосой прокрутки и layout .
См. GtkScrolledWindow, GtkScrollbar, GtkAdjustment для получения подробностей.
Параметры
layout |
Возвращаемое значение
горизонтальная настройка прокрутки.
[transfer none]
gtk_layout_get_vadjustment ()
GtkAdjustment *
gtk_layout_get_vadjustment (GtkLayout *layout); gtk_layout_get_vadjustment устарело с версии 3.0 и не должно использоваться в новых кодах.
Используйте gtk_scrollable_get_vadjustment()
Эта функция должна вызываться только после размещения макета в GtkScrolledWindow или при другой конфигурации для прокрутки. Она возвращает GtkAdjustment, используемый для связи между вертикальной полосой прокрутки и layout .
См. GtkScrolledWindow, GtkScrollbar, GtkAdjustment для получения подробностей.
Параметры
layout |
Возвращаемое значение
вертикальная настройка прокрутки.
[transfer none]
gtk_layout_set_hadjustment ()
void gtk_layout_set_hadjustment (GtkLayout *layout,GtkAdjustment *adjustment);
gtk_layout_set_hadjustment устарело с версии 3.0 и не должно использоваться в новых кодах.
Используйте gtk_scrollable_set_hadjustment()
Устанавливает горизонтальную настройку прокрутки для макета.
См. GtkScrolledWindow, GtkScrollbar, GtkAdjustment для получения подробностей.
Параметры
layout | ||
adjustment | новая настройка прокрутки. | [allow-none] |
gtk_layout_set_vadjustment ()
void gtk_layout_set_vadjustment (GtkLayout *layout,GtkAdjustment *adjustment);
gtk_layout_set_vadjustment устарело с версии 3.0 и не должно использоваться в новом коде.
Используйте gtk_scrollable_set_vadjustment()
Устанавливает вертикальную прокрутку для макета.
См. GtkScrolledWindow, GtkScrollbar, GtkAdjustment для получения подробностей.
Параметры
layout | ||
adjustment | новая настройка прокрутки. | [allow-none] |
Типы и значения
struct GtkLayout
struct GtkLayout;
Подробное описание свойств
Свойство “height”
“height” guint
Высота макета.
Владелец: GtkLayout
Флаги: Чтение / Запись
Разрешенные значения: <= G_MAXINT
Значение по умолчанию: 100
Свойство “width”
“width” guint
Ширина макета.
Владелец: GtkLayout
Флаги: Чтение / Запись
Разрешенные значения: <= G_MAXINT
Значение по умолчанию: 100
Подробное описание свойств дочерних элементов
Свойство “x” дочернего элемента
“x” int
Позиция X дочернего виджета.
Владелец: GtkLayout
Флаги: Чтение / Запись
Значение по умолчанию: 0
Свойство “y” дочернего элемента
“y” int
Позиция Y дочернего виджета.
Владелец: GtkLayout
Флаги: Чтение / Запись
Значение по умолчанию: 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/GtkLayout.html