Spec-Zone.ru › GTK 3.24

GtkScrolledWindow

GtkScrolledWindow — Добавляет полосы прокрутки к дочернему виджету

Функции

GtkWidget * gtk_scrolled_window_new ()
GtkAdjustment * gtk_scrolled_window_get_hadjustment ()
void gtk_scrolled_window_set_hadjustment ()
GtkAdjustment * gtk_scrolled_window_get_vadjustment ()
void gtk_scrolled_window_set_vadjustment ()
GtkWidget * gtk_scrolled_window_get_hscrollbar ()
GtkWidget * gtk_scrolled_window_get_vscrollbar ()
void gtk_scrolled_window_get_policy ()
void gtk_scrolled_window_set_policy ()
void gtk_scrolled_window_add_with_viewport ()
GtkCornerType gtk_scrolled_window_get_placement ()
void gtk_scrolled_window_set_placement ()
void gtk_scrolled_window_unset_placement ()
GtkShadowType gtk_scrolled_window_get_shadow_type ()
void gtk_scrolled_window_set_shadow_type ()
gboolean gtk_scrolled_window_get_kinetic_scrolling ()
void gtk_scrolled_window_set_kinetic_scrolling ()
gboolean gtk_scrolled_window_get_capture_button_press ()
void gtk_scrolled_window_set_capture_button_press ()
gboolean gtk_scrolled_window_get_overlay_scrolling ()
void gtk_scrolled_window_set_overlay_scrolling ()
gint gtk_scrolled_window_get_min_content_width ()
void gtk_scrolled_window_set_min_content_width ()
gint gtk_scrolled_window_get_min_content_height ()
void gtk_scrolled_window_set_min_content_height ()
gint gtk_scrolled_window_get_max_content_width ()
void gtk_scrolled_window_set_max_content_width ()
gint gtk_scrolled_window_get_max_content_height ()
void gtk_scrolled_window_set_max_content_height ()
gboolean gtk_scrolled_window_get_propagate_natural_width ()
void gtk_scrolled_window_set_propagate_natural_width ()
gboolean gtk_scrolled_window_get_propagate_natural_height ()
void gtk_scrolled_window_set_propagate_natural_height ()

Свойства

GtkAdjustment * hadjustment Чтение / Запись / Создание
GtkPolicyType hscrollbar-policy Чтение / Запись
gboolean kinetic-scrolling Чтение / Запись
int max-content-height Чтение / Запись
int max-content-width Чтение / Запись
int min-content-height Чтение / Запись
int min-content-width Чтение / Запись
gboolean overlay-scrolling Чтение / Запись
gboolean propagate-natural-height Чтение / Запись
gboolean propagate-natural-width Чтение / Запись
GtkShadowType shadow-type Чтение / Запись
GtkAdjustment * vadjustment Чтение / Запись / Создание
GtkPolicyType vscrollbar-policy Чтение / Запись
GtkCornerType window-placement Чтение / Запись
gboolean window-placement-set Чтение / Запись

Стилизованные свойства

int scrollbar-spacing Чтение
gboolean scrollbars-within-bevel Чтение

Сигналы

void edge-overshot Выполнить последним
void edge-reached Выполнить последним
void move-focus-out Действие
gboolean scroll-child Действие

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

struct GtkScrolledWindow
struct GtkScrolledWindowClass
enum GtkPolicyType
enum GtkCornerType

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

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkScrolledWindow
                        ╰── GtkPlacesSidebar

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

GtkScrolledWindow реализует AtkImplementorIface и GtkBuildable.

Файлы

#include <gtk/gtk.h>

Описание

GtkScrolledWindow — это контейнер, принимающий один дочерний виджет, делающий этот дочерний виджет прокручиваемым с помощью встроенных полос прокрутки или внешних настроек, а также, по желанию, рисующий рамку вокруг дочернего виджета.

Виджеты с собственной поддержкой прокрутки, то есть виджеты, чьи классы реализуют интерфейс GtkScrollable, добавляются напрямую. Для других типов виджетов класс GtkViewport служит адаптером, обеспечивающим возможность прокрутки других виджетов. Реализация GtkScrolledWindow метода gtk_container_add() разумно учитывает, является ли добавляемый дочерний элемент GtkScrollable. Если нет, GtkScrolledWindow оборачивает дочерний элемент в GtkViewport и добавляет его за вас. Поэтому вы можете просто добавить любой дочерний виджет, не беспокоясь о деталях.

Если gtk_container_add() добавил за вас GtkViewport, вы можете удалить как ваш добавленный дочерний виджет из GtkViewport, так и GtkViewport из GtkScrolledWindow следующим образом:

GtkWidget *scrolled_window = gtk_scrolled_window_new (NULL, NULL);
GtkWidget *child_widget = gtk_button_new ();

// GtkButton is not a GtkScrollable, so GtkScrolledWindow will automatically
// add a GtkViewport.
gtk_container_add (GTK_CONTAINER (scrolled_window),
                   child_widget);

// Either of these will result in child_widget being unparented:
gtk_container_remove (GTK_CONTAINER (scrolled_window),
                      child_widget);
// or
gtk_container_remove (GTK_CONTAINER (scrolled_window),
                      gtk_bin_get_child (GTK_BIN (scrolled_window)));

Если “policy” не равен GTK_POLICY_NEVER или GTK_POLICY_EXTERNAL, GtkScrolledWindow добавляет внутренние виджеты GtkScrollbar вокруг своего дочернего элемента. Положение прокрутки дочернего элемента, а также, применительно к полосам прокрутки, управляется “hadjustment” и “vadjustment”, которые связаны с GtkScrolledWindow. См. документацию по GtkScrollbar для получения подробностей, но обратите внимание, что поля «step_increment» и «page_increment» эффективны только в том случае, если политика приводит к наличию полос прокрутки.

Если GtkScrolledWindow ведет себя не так, как вам хотелось бы, или имеет не совсем нужную компоновку, вы можете самостоятельно настроить прокрутку с помощью GtkScrollbar и, например, GtkGrid.

Поддержка сенсорных устройств

GtkScrolledWindow имеет встроенную поддержку сенсорных устройств. При использовании сенсорного экрана перетаскивание будет перемещать окно прокрутки и покажет кинетическое поведение. Это можно отключить с помощью свойства “kinetic-scrolling”, если оно не нужно.

GtkScrolledWindow также отображает визуальное индикатор «перескока» при выходе контента за пределы, и это состояние можно захватить с помощью сигнала “edge-overshot”.

Если устройство мыши отсутствует, полосы прокрутки будут наложены в виде узких автоматически скрывающихся индикаторов над содержимым. Если требуются традиционные полосы прокрутки, хотя мыши нет, это поведение можно отключить с помощью свойства “overlay-scrolling”.

Узлы CSS

GtkScrolledWindow имеет основной узел CSS с именем scrolledwindow.

Он использует подузлы с именами overshoot и undershoot для рисования индикаторов переполнения и недополнения. Эти узлы получают добавление стилей .left, .right, .top или .bottom в зависимости от того, где отображается индикатор.

GtkScrolledWindow также устанавливает стили позиционирования (.left, .right, .top, .bottom) и стили, связанные с прокруткой с наложением (.overlay-indicator, .dragging, .hovering), на свои полосы прокрутки.

Если обе полосы прокрутки видны, область их пересечения рисуется под узлом с именем junction.

Функции

gtk_scrolled_window_new ()

GtkWidget *
gtk_scrolled_window_new (GtkAdjustment *hadjustment,
                         GtkAdjustment *vadjustment);

Создаёт новое окно со скроллом.

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

Параметры

hadjustment

горизонтальная настройка.

[nullable]

vadjustment

вертикальная настройка.

[nullable]

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

новое окно со скроллом

gtk_scrolled_window_get_hadjustment ()

GtkAdjustment *
gtk_scrolled_window_get_hadjustment (GtkScrolledWindow *scrolled_window);

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

Параметры

scrolled_window

окно GtkScrolledWindow

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

горизонтальная настройка GtkAdjustment.

[transfer none]

gtk_scrolled_window_set_hadjustment ()

void
gtk_scrolled_window_set_hadjustment (GtkScrolledWindow *scrolled_window,
                                     GtkAdjustment *hadjustment);

Устанавливает GtkAdjustment для горизонтальной полосы прокрутки.

Параметры

scrolled_window

окно GtkScrolledWindow

hadjustment

используемая настройка GtkAdjustment, или NULL для создания новой.

[nullable]

gtk_scrolled_window_get_vadjustment ()

GtkAdjustment *
gtk_scrolled_window_get_vadjustment (GtkScrolledWindow *scrolled_window);

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

Параметры

scrolled_window

окно GtkScrolledWindow

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

вертикальная настройка GtkAdjustment.

[transfer none]

gtk_scrolled_window_set_vadjustment ()

void
gtk_scrolled_window_set_vadjustment (GtkScrolledWindow *scrolled_window,
                                     GtkAdjustment *vadjustment);

Устанавливает GtkAdjustment для вертикальной полосы прокрутки.

Параметры

scrolled_window

окно GtkScrolledWindow

vadjustment

используемая настройка GtkAdjustment, или NULL для создания новой.

[nullable]

gtk_scrolled_window_get_hscrollbar ()

GtkWidget *
gtk_scrolled_window_get_hscrollbar (GtkScrolledWindow *scrolled_window);

Возвращает горизонтальную полосу прокрутки scrolled_window.

Параметры

scrolled_window

окно GtkScrolledWindow

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

горизонтальная полоса прокрутки окна со скроллом.

[transfer none]

С: 2.8

gtk_scrolled_window_get_vscrollbar ()

GtkWidget *
gtk_scrolled_window_get_vscrollbar (GtkScrolledWindow *scrolled_window);

Возвращает вертикальную полосу прокрутки scrolled_window.

Параметры

scrolled_window

окно GtkScrolledWindow

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

вертикальная полоса прокрутки окна со скроллом.

[transfer none]

С: 2.8

gtk_scrolled_window_get_policy ()

void
gtk_scrolled_window_get_policy (GtkScrolledWindow *scrolled_window,
                                GtkPolicyType *hscrollbar_policy,
                                GtkPolicyType *vscrollbar_policy);

Получает текущие значения политики для горизонтальной и вертикальной полос прокрутки. См. gtk_scrolled_window_set_policy().

Параметры

scrolled_window

окно GtkScrolledWindow

hscrollbar_policy

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

[out][optional]

vscrollbar_policy

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

[out][optional]

gtk_scrolled_window_set_policy ()

void
gtk_scrolled_window_set_policy (GtkScrolledWindow *scrolled_window,
                                GtkPolicyType hscrollbar_policy,
                                GtkPolicyType vscrollbar_policy);

Устанавливает политику полос прокрутки для горизонтальной и вертикальной полос прокрутки.

Политика определяет, когда должна отображаться полоса прокрутки; это значение из перечисления GtkPolicyType. Если GTK_POLICY_ALWAYS, полоса прокрутки всегда отображается; если GTK_POLICY_NEVER, полоса прокрутки никогда не отображается; если GTK_POLICY_AUTOMATIC, полоса прокрутки отображается только при необходимости (то есть, если область ползунка полосы будет меньше, чем желоб — отображение больше, чем размер страницы).

Параметры

scrolled_window

окно GtkScrolledWindow

hscrollbar_policy

политика для горизонтальной полосы

vscrollbar_policy

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

gtk_scrolled_window_add_with_viewport ()

void
gtk_scrolled_window_add_with_viewport (GtkScrolledWindow *scrolled_window,
                                       GtkWidget *child);

gtk_scrolled_window_add_with_viewport устарело начиная с версии 3.8 и не должно использоваться в новом коде.

gtk_container_add() автоматически добавит GtkViewport, если дочерний элемент не реализует GtkScrollable.

Используется для добавления дочерних элементов без встроенной возможности прокрутки. Это просто удобная функция; она эквивалентна добавлению неподдерживающего прокрутку дочернего элемента в область просмотра, а затем добавлению области просмотра в окно прокрутки. Если дочерний элемент имеет встроенную прокрутку, используйте gtk_container_add() вместо этой функции.

Область просмотра прокручивает дочерний элемент, перемещая его GdkWindow, и принимает размер дочернего элемента как размер его верхнего GdkWindow. Это будет неправильно для большинства виджетов, поддерживающих встроенную прокрутку; например, если вы добавите виджет, такой как GtkTreeView с областью просмотра, весь виджет будет прокручиваться, включая заголовки столбцов. Таким образом, виджеты с поддержкой встроенной прокрутки не должны использоваться с прокси-объектом GtkViewport.

Виджет поддерживает прокрутку встроено, если он реализует интерфейс GtkScrollable.

Параметры

scrolled_window

объект GtkScrolledWindow

child

виджет, который вы хотите прокручивать

gtk_scrolled_window_get_placement ()

GtkCornerType
gtk_scrolled_window_get_placement (GtkScrolledWindow *scrolled_window);

Получает расположение содержимого по отношению к полосам прокрутки для окна прокрутки. См. gtk_scrolled_window_set_placement().

Параметры

scrolled_window

объект GtkScrolledWindow

Возвращает

текущее значение расположения.

См. также gtk_scrolled_window_set_placement() и gtk_scrolled_window_unset_placement().

gtk_scrolled_window_set_placement ()

void
gtk_scrolled_window_set_placement (GtkScrolledWindow *scrolled_window,
                                   GtkCornerType window_placement);

Устанавливает расположение содержимого относительно полос прокрутки для окна прокрутки.

По умолчанию GTK_CORNER_TOP_LEFT, что означает, что дочерний элемент находится в левом верхнем углу, полосы прокрутки находятся под ним и справа. Другие значения в GtkCornerType — GTK_CORNER_TOP_RIGHT, GTK_CORNER_BOTTOM_LEFT и GTK_CORNER_BOTTOM_RIGHT.

См. также gtk_scrolled_window_get_placement() и gtk_scrolled_window_unset_placement().

Параметры

scrolled_window

объект GtkScrolledWindow

window_placement

положение дочернего окна

gtk_scrolled_window_unset_placement ()

void
gtk_scrolled_window_unset_placement (GtkScrolledWindow *scrolled_window);

Снимает установку расположения содержимого по отношению к полосам прокрутки для окна прокрутки. Если для окна прокрутки не установлено расположение окна, оно по умолчанию GTK_CORNER_TOP_LEFT.

См. также gtk_scrolled_window_set_placement() и gtk_scrolled_window_get_placement().

Параметры

scrolled_window

объект GtkScrolledWindow

С: 2.10

gtk_scrolled_window_get_shadow_type ()

GtkShadowType
gtk_scrolled_window_get_shadow_type (GtkScrolledWindow *scrolled_window);

Получает тип тени окна прокрутки. См. gtk_scrolled_window_set_shadow_type().

Параметры

scrolled_window

объект GtkScrolledWindow

Возвращает

текущий тип тени

gtk_scrolled_window_set_shadow_type ()

void
gtk_scrolled_window_set_shadow_type (GtkScrolledWindow *scrolled_window,
                                     GtkShadowType type);

Изменяет тип тени, нарисованной вокруг содержимого scrolled_window .

Параметры

scrolled_window

объект GtkScrolledWindow

type

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

gtk_scrolled_window_get_kinetic_scrolling ()

gboolean
gtk_scrolled_window_get_kinetic_scrolling
                               (GtkScrolledWindow *scrolled_window);

Возвращает указанное кинетическое поведение прокрутки.

Параметры

scrolled_window

объект GtkScrolledWindow

Возвращает

флаги поведения прокрутки.

С: 3.4

gtk_scrolled_window_set_kinetic_scrolling ()

void
gtk_scrolled_window_set_kinetic_scrolling
                               (GtkScrolledWindow *scrolled_window,
                                gboolean kinetic_scrolling);

Включает или выключает кинетическую прокрутку. Кинетическая прокрутка применяется только к устройствам с источником GDK_SOURCE_TOUCHSCREEN.

Параметры

scrolled_window

объект GtkScrolledWindow

kinetic_scrolling

TRUE для включения кинетической прокрутки

С: 3.4

gtk_scrolled_window_get_capture_button_press ()

gboolean
gtk_scrolled_window_get_capture_button_press
                               (GtkScrolledWindow *scrolled_window);

Возвращает, захватываются ли нажатия кнопок во время кинетической прокрутки. См. gtk_scrolled_window_set_capture_button_press().

Параметры

scrolled_window

объект GtkScrolledWindow

Возвращает

TRUE если нажатия кнопок захватываются во время кинетической прокрутки

С: 3.4

gtk_scrolled_window_set_capture_button_press ()

void
gtk_scrolled_window_set_capture_button_press
                               (GtkScrolledWindow *scrolled_window,
                                gboolean capture_button_press);

Изменяет поведение scrolled_window в отношении начального события, которое потенциально запускает кинетическое прокручивание. Когда capture_button_press установлено в TRUE, событие перехватывается окном прокрутки, а затем повторно воспроизводится, если оно должно быть передано дочернему виджету.

Это следует включить, если какие-либо дочерние виджеты выполняют необратимые действия при “button-press-event”. Если они этого не делают, и дополнительно обрабатывают “grab-broken-event”, возможно, лучше установить capture_button_press в FALSE.

Эта настройка действует только в случае включенного кинетического прокручивания.

Параметры

scrolled_window

окно прокрутки GtkScrolledWindow

capture_button_press

значение для перехвата нажатий кнопок

С: 3.4

gtk_scrolled_window_get_overlay_scrolling ()

gboolean
gtk_scrolled_window_get_overlay_scrolling
                               (GtkScrolledWindow *scrolled_window);

Возвращает, включена ли функция наложения прокрутки для этого окна прокрутки.

Параметры

scrolled_window

окно прокрутки GtkScrolledWindow

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

TRUE если наложение прокрутки включено

С: 3.16

gtk_scrolled_window_set_overlay_scrolling ()

void
gtk_scrolled_window_set_overlay_scrolling
                               (GtkScrolledWindow *scrolled_window,
                                gboolean overlay_scrolling);

Включает или выключает наложение прокрутки для этого окна прокрутки.

Параметры

scrolled_window

окно прокрутки GtkScrolledWindow

overlay_scrolling

включить или выключить наложение прокрутки

С: 3.16

gtk_scrolled_window_get_min_content_width ()

gint
gtk_scrolled_window_get_min_content_width
                               (GtkScrolledWindow *scrolled_window);

Получает минимальную ширину содержимого scrolled_window, или -1, если не установлена.

Параметры

scrolled_window

окно прокрутки GtkScrolledWindow

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

минимальная ширина содержимого

С: 3.0

gtk_scrolled_window_set_min_content_width ()

void
gtk_scrolled_window_set_min_content_width
                               (GtkScrolledWindow *scrolled_window,
                                gint width);

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

Ошибка программирования — установка минимальной ширины содержимого на значение, большее, чем “max-content-width”.

Параметры

scrolled_window

окно прокрутки GtkScrolledWindow

width

минимальная ширина содержимого

С: 3.0

gtk_scrolled_window_get_min_content_height ()

gint
gtk_scrolled_window_get_min_content_height
                               (GtkScrolledWindow *scrolled_window);

Получает минимальную высоту содержимого scrolled_window, или -1, если не установлена.

Параметры

scrolled_window

окно прокрутки GtkScrolledWindow

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

минимальная высота содержимого

С: 3.0

gtk_scrolled_window_set_min_content_height ()

void
gtk_scrolled_window_set_min_content_height
                               (GtkScrolledWindow *scrolled_window,
                                gint height);

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

Ошибка программирования — установка минимальной высоты содержимого на значение, большее, чем “max-content-height”.

Параметры

scrolled_window

окно прокрутки GtkScrolledWindow

height

минимальная высота содержимого

С: 3.0

gtk_scrolled_window_get_max_content_width ()

gint
gtk_scrolled_window_get_max_content_width
                               (GtkScrolledWindow *scrolled_window);

Возвращает установленную максимальную ширину содержимого.

Параметры

scrolled_window

окно прокрутки GtkScrolledWindow

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

максимальная ширина содержимого или -1

С: 3.22

gtk_scrolled_window_set_max_content_width ()

void
gtk_scrolled_window_set_max_content_width
                               (GtkScrolledWindow *scrolled_window,
                                gint width);

Устанавливает максимальную ширину, которую scrolled_window должно поддерживать видимой. scrolled_window будет увеличиваться до этой ширины, прежде чем начать прокручивать содержимое.

Ошибка программирования — установка максимальной ширины содержимого на значение, меньшее, чем “min-content-width”.

Параметры

scrolled_window

окно прокрутки GtkScrolledWindow

width

максимальная ширина содержимого

С: 3.22

gtk_scrolled_window_get_max_content_height ()

gint
gtk_scrolled_window_get_max_content_height
                               (GtkScrolledWindow *scrolled_window);

Возвращает установленную максимальную высоту содержимого.

Параметры

scrolled_window

окно прокрутки GtkScrolledWindow

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

максимальная высота содержимого или -1

С: 3.22

gtk_scrolled_window_set_max_content_height ()

void
gtk_scrolled_window_set_max_content_height
                               (GtkScrolledWindow *scrolled_window,
                                gint height);

Устанавливает максимальную высоту, которую scrolled_window должно держать видимой. scrolled_window будет увеличиваться до этой высоты, прежде чем начать прокручивать содержимое.

Установка максимальной высоты содержимого меньше, чем “минимальная высота содержимого” — это ошибка программирования.

Параметры

scrolled_window

объект GtkScrolledWindow

height

максимальная высота содержимого

С: 3.22

gtk_scrolled_window_get_propagate_natural_width ()

gboolean
gtk_scrolled_window_get_propagate_natural_width
                               (GtkScrolledWindow *scrolled_window);

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

Параметры

scrolled_window

объект GtkScrolledWindow

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

активирована ли передача естественной ширины.

С: 3.22

gtk_scrolled_window_set_propagate_natural_width ()

void
gtk_scrolled_window_set_propagate_natural_width
                               (GtkScrolledWindow *scrolled_window,
                                gboolean propagate);

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

Параметры

scrolled_window

объект GtkScrolledWindow

propagate

необходимо ли передавать естественную ширину

С: 3.22

gtk_scrolled_window_get_propagate_natural_height ()

gboolean
gtk_scrolled_window_get_propagate_natural_height
                               (GtkScrolledWindow *scrolled_window);

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

Параметры

scrolled_window

объект GtkScrolledWindow

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

активирована ли передача естественной высоты.

С: 3.22

gtk_scrolled_window_set_propagate_natural_height ()

void
gtk_scrolled_window_set_propagate_natural_height
                               (GtkScrolledWindow *scrolled_window,
                                gboolean propagate);

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

Параметры

scrolled_window

объект GtkScrolledWindow

propagate

необходимо ли передавать естественную высоту

С: 3.22

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

struct GtkScrolledWindow

struct GtkScrolledWindow;

struct GtkScrolledWindowClass

struct GtkScrolledWindowClass {
  GtkBinClass parent_class;

  gint scrollbar_spacing;

  /* Action signals for keybindings. Do not connect to these signals
   */

  /* Unfortunately, GtkScrollType is deficient in that there is
   * no horizontal/vertical variants for GTK_SCROLL_START/END,
   * so we have to add an additional boolean flag.
   */
  gboolean (*scroll_child) (GtkScrolledWindow *scrolled_window,
	  		    GtkScrollType      scroll,
			    gboolean           horizontal);

  void (* move_focus_out) (GtkScrolledWindow *scrolled_window,
			   GtkDirectionType   direction);
};

Члены

gint scrollbar_spacing;

scroll_child ()

Сигнал привязки клавиш, который генерируется при нажатии комбинации клавиш для прокрутки.

move_focus_out ()

Сигнал привязки клавиш, который генерируется при перемещении фокуса из окна с прокруткой с помощью комбинации клавиш.

перечисление GtkPolicyType

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

Члены

GTK_POLICY_ALWAYS

Полоса прокрутки всегда отображается. Размер представления не зависит от содержимого.

GTK_POLICY_AUTOMATIC

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

GTK_POLICY_NEVER

Полоса прокрутки никогда не должна отображаться. В этом режиме размер определяется содержимым.

GTK_POLICY_EXTERNAL

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

перечисление GtkCornerType

Указывает, в каком углу должен размещаться дочерний виджет при размещении в GtkScrolledWindow. Это фактически противоположная сторона размещения полос прокрутки.

Члены

GTK_CORNER_TOP_LEFT

Размещает полосы прокрутки справа и снизу виджета (по умолчанию).

GTK_CORNER_BOTTOM_LEFT

Размещает полосы прокрутки сверху и справа от виджета.

GTK_CORNER_TOP_RIGHT

Размещает полосы прокрутки слева и снизу от виджета.

GTK_CORNER_BOTTOM_RIGHT

Размещает полосы прокрутки сверху и слева от виджета.

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

Свойство “hadjustment”

  “hadjustment”              GtkAdjustment *

GtkAdjustment для горизонтальной позиции.

Владелец: GtkScrolledWindow

Флаги: Чтение / Запись / Создание

Свойство “hscrollbar-policy”

  “hscrollbar-policy”        GtkPolicyType

Отображение горизонтальной полосы прокрутки.

Владелец: GtkScrolledWindow

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

Значение по умолчанию: GTK_POLICY_AUTOMATIC

Свойство “kinetic-scrolling”

  “kinetic-scrolling”        gboolean

Включена ли кинетическая прокрутка. Кинетическая прокрутка применяется только к устройствам с источником GDK_SOURCE_TOUCHSCREEN.

Владелец: GtkScrolledWindow

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

Значение по умолчанию: TRUE

С версии: 3.4

Свойство “max-content-height”

  “max-content-height”       int

Максимальная высота содержимого scrolled_window, или -1, если не задано.

Владелец: GtkScrolledWindow

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

Допустимые значения: >= -1

Значение по умолчанию: -1

С версии: 3.22

Свойство “max-content-width”

  “max-content-width”        int

Максимальная ширина содержимого scrolled_window, или -1, если не задано.

Владелец: GtkScrolledWindow

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

Допустимые значения: >= -1

Значение по умолчанию: -1

С версии: 3.22

Свойство “min-content-height”

  “min-content-height”       int

Минимальная высота содержимого scrolled_window, или -1, если не задано.

Владелец: GtkScrolledWindow

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

Допустимые значения: >= -1

Значение по умолчанию: -1

С версии: 3.0

Свойство “min-content-width”

  “min-content-width”        int

Минимальная ширина содержимого scrolled_window, или -1, если не задано.

Владелец: GtkScrolledWindow

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

Допустимые значения: >= -1

Значение по умолчанию: -1

С версии: 3.0

Свойство “overlay-scrolling”

  “overlay-scrolling”        gboolean

Включена ли прокрутка наложением. Если включена, полосы прокрутки добавляются только как традиционные виджеты при наличии мыши. В противном случае они накладываются поверх содержимого в виде узких индикаторов.

Обратите внимание, что прокрутка наложением может быть глобально отключена с помощью настройки “gtk-overlay-scrolling”.

Владелец: GtkScrolledWindow

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

Значение по умолчанию: TRUE

С версии: 3.16

Свойство “propagate-natural-height”

  “propagate-natural-height” gboolean

Вычисляется ли естественная высота дочернего элемента и передаётся ли она через запрошенную естественную высоту окна прокрутки.

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

Владелец: GtkScrolledWindow

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

Значение по умолчанию: FALSE

С версии: 3.22

Свойство “propagate-natural-width”

  “propagate-natural-width”  gboolean

Вычисляется ли естественная ширина дочернего элемента и передаётся ли она через запрошенную естественную ширину окна прокрутки.

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

Владелец: GtkScrolledWindow

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

Значение по умолчанию: FALSE

С версии: 3.22

Свойство “shadow-type”

  “shadow-type”              GtkShadowType

Стиль фаски вокруг содержимого.

Владелец: GtkScrolledWindow

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

Значение по умолчанию: GTK_SHADOW_NONE

Свойство “vadjustment”

  “vadjustment”              GtkAdjustment *

GtkAdjustment для вертикальной позиции.

Владелец: GtkScrolledWindow

Флаги: Чтение / Запись / Создание

Свойство “vscrollbar-policy”

  “vscrollbar-policy”        GtkPolicyType

Отображение вертикальной полосы прокрутки.

Владелец: GtkScrolledWindow

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

Значение по умолчанию: GTK_POLICY_AUTOMATIC

Свойство “window-placement”

  “window-placement”         GtkCornerType

Расположение содержимого относительно полос прокрутки.

Владелец: GtkScrolledWindow

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

Значение по умолчанию: GTK_CORNER_TOP_LEFT

Свойство “window-placement-set”

  “window-placement-set”     gboolean

Использование свойства "window-placement" для определения расположения содержимого относительно полос прокрутки.

GtkScrolledWindow:window-placement-set устарело с версии 3.10 и не должно использоваться в новом коде.

Это значение игнорируется, и значение “window-placement” всегда учитывается.

Владелец: GtkScrolledWindow

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

Значение по умолчанию: TRUE

С версии: 2.10

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

Свойство стиля “scrollbar-spacing”

  “scrollbar-spacing”        int

Количество пикселей между полосами прокрутки и окном прокрутки.

Владелец: GtkScrolledWindow

Флаги: Чтение

Допустимые значения: >= 0

Значение по умолчанию: 3

Свойство стиля “scrollbars-within-bevel”

  “scrollbars-within-bevel”  gboolean

Размещение полос прокрутки внутри фаски окна прокрутки.

GtkScrolledWindow:scrollbars-within-bevel устарело с версии 3.20 и не должно использоваться в новом коде.

Значение этого свойства стиля игнорируется.

Владелец: GtkScrolledWindow

Флаги: Чтение

Значение по умолчанию: FALSE

С версии: 2.12

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

Сигнал “edge-overshot”

void
user_function (GtkScrolledWindow *scrolled_window,
               GtkPositionType    pos,
               gpointer           user_data)

Сигнал ::edge-overshot генерируется всякий раз, когда пользовательское прокручивание приводит к тому, что область просмотра уверенно выходит за пределы нижнего или верхнего пределов, определённых настройкой в данном направлении.

Аналогичное поведение без сопротивления при достижении края предоставляет сигнал “edge-reached”.

Примечание: Аргумент pos учитывает LTR/RTL, поэтому вызывающие стороны должны учитывать это при реализации поведения по горизонтали.

Параметры

scrolled_window

объект GtkScrolledWindow

pos

сторона края, которая была достигнута

user_data

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

Флаги: Run Last

С: 3.16

Сигнал “edge-reached”

void
user_function (GtkScrolledWindow *scrolled_window,
               GtkPositionType    pos,
               gpointer           user_data)

Сигнал ::edge-reached генерируется всякий раз, когда пользовательская прокрутка приводит к тому, что область просмотра точно достигает нижнего или верхнего пределов, определённых настройкой в данном направлении.

Аналогичное поведение с сопротивлением при достижении края предоставляет сигнал “edge-overshot”.

Примечание: Аргумент pos учитывает LTR/RTL, поэтому вызывающие стороны должны учитывать это при реализации поведения по горизонтали.

Параметры

scrolled_window

объект GtkScrolledWindow

pos

сторона края, которая была достигнута

user_data

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

Флаги: Run Last

С: 3.16

Сигнал “move-focus-out”

void
user_function (GtkScrolledWindow *scrolled_window,
               GtkDirectionType   direction_type,
               gpointer           user_data)

Сигнал ::move-focus-out — это сигнал переназначения клавиш, который генерируется, когда фокус перемещается из области прокрутки клавишей. Сигнал “move-focus” генерируется с direction_type для родительского окна области прокрутки в иерархии контейнеров. Стандартные переназначения клавиш для этого сигнала — Ctrl + Tab для перехода вперёд и Ctrl + Shift + Tab для перехода назад.

Параметры

scrolled_window

объект GtkScrolledWindow

direction_type

либо GTK_DIR_TAB_FORWARD, либо GTK_DIR_TAB_BACKWARD

user_data

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

Флаги: Action

Сигнал “scroll-child”

gboolean
user_function (GtkScrolledWindow *scrolled_window,
               GtkScrollType      scroll,
               gboolean           horizontal,
               gpointer           user_data)

Сигнал ::scroll-child — это сигнал переназначения клавиш, который генерируется при нажатии переназначенной клавиши, вызывающей прокрутку. Горизонтальная или вертикальная настройка обновляется, что вызывает сигнал, на который может реагировать дочерний элемент области прокрутки, производя прокрутку.

Параметры

scrolled_window

объект GtkScrolledWindow

scroll

значение GtkScrollType, описывающее степень прокрутки

horizontal

определяет, прокручивает ли переназначенная клавиша дочерний элемент по горизонтали

user_data

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

Флаги: Action

См. также

GtkScrollable, GtkViewport, GtkAdjustment

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

Spec-Zone.ru

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