| |
GTK+ Reference Manual |
||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Style Properties | Signals |
GtkScrolledWindowGtkScrolledWindow Добавляет полосы прокрутки к своему дочернему виджету |
#include <gtk/gtk.h> GtkScrolledWindow; GtkWidget* gtk_scrolled_window_new (GtkAdjustment *hadjustment, GtkAdjustment *vadjustment); GtkAdjustment* gtk_scrolled_window_get_hadjustment (GtkScrolledWindow *scrolled_window); GtkAdjustment* gtk_scrolled_window_get_vadjustment (GtkScrolledWindow *scrolled_window); GtkWidget* gtk_scrolled_window_get_hscrollbar (GtkScrolledWindow *scrolled_window); GtkWidget* gtk_scrolled_window_get_vscrollbar (GtkScrolledWindow *scrolled_window); void gtk_scrolled_window_set_policy (GtkScrolledWindow *scrolled_window, GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy); void gtk_scrolled_window_add_with_viewport (GtkScrolledWindow *scrolled_window, GtkWidget *child); void gtk_scrolled_window_set_placement (GtkScrolledWindow *scrolled_window, GtkCornerType window_placement); void gtk_scrolled_window_unset_placement (GtkScrolledWindow *scrolled_window); void gtk_scrolled_window_set_shadow_type (GtkScrolledWindow *scrolled_window, GtkShadowType type); void gtk_scrolled_window_set_hadjustment (GtkScrolledWindow *scrolled_window, GtkAdjustment *hadjustment); void gtk_scrolled_window_set_vadjustment (GtkScrolledWindow *scrolled_window, GtkAdjustment *vadjustment); GtkCornerType gtk_scrolled_window_get_placement (GtkScrolledWindow *scrolled_window); void gtk_scrolled_window_get_policy (GtkScrolledWindow *scrolled_window, GtkPolicyType *hscrollbar_policy, GtkPolicyType *vscrollbar_policy); GtkShadowType gtk_scrolled_window_get_shadow_type (GtkScrolledWindow *scrolled_window);
GObject +----GInitiallyUnowned +----GtkObject +----GtkWidget +----GtkContainer +----GtkBin +----GtkScrolledWindow
GtkScrolledWindow осуществляет AtkImplementorIface.
"hadjustment" GtkAdjustment : Read / Write / Construct "hscrollbar-policy" GtkPolicyType : Read / Write "shadow-type" GtkShadowType : Read / Write "vadjustment" GtkAdjustment : Read / Write / Construct "vscrollbar-policy" GtkPolicyType : Read / Write "window-placement" GtkCornerType : Read / Write "window-placement-set" gboolean : Read / Write
"scrollbar-spacing" gint : Read
"move-focus-out" void user_function (GtkScrolledWindow *scrolledwindow, GtkDirectionType *arg1, gpointer user_data) : Run last / Action "scroll-child" void user_function (GtkScrolledWindow *scrolledwindow, GtkScrollType *arg1, gboolean arg2, gpointer user_data) : Run last / Action
GtkScrolledWindow это подкласс GtkBin: этот контейнер принимает один дочерний виджет. GtkScrolledWindow добавляет полосы прокрутки к дочернему виджету и опционально рисует скошенную рамку вокруг дочернего виджета.
Прокручиваемое окно может работать в двух направлениях. Некоторые виджеты уже имеют свою поддержку прокручивания; эти виджеты имеют ''слоты'' ("slots") для объектов GtkAdjustment. [5] Виджеты, изначально поддерживающие прокрутку (native scroll support), включают GtkTreeView, GtkTextView, и GtkLayout.
Для виджетов не имеющих изначально поддержки прокручивания, виджет GtkViewport действует как адаптирующий класс осуществления прокрутки. Используйте GtkViewport для прокручивания дочерних виджетов таких как GtkTable, GtkBox, и так далее.
Если виджет имеет изначальные
возможности прокручивания, он может
быть добавлен к GtkScrolledWindow
с помощью gtk_container_add()
.
Если возможности прокручивания у виджета
нет, вы должны сначала добавить виджет
к GtkViewport, затем добавить
GtkViewport к прокручиваемому
окну. Функция удобства
gtk_scrolled_window_add_with_viewport()
делает тоже самое, таким образом вы
можете игнорировать присутствие области
просмотра (viewport).
Позиция полосы прокручивания контролируется настройками прокручивания. Смотрите GtkAdjustment для полей регулировок - для GtkScrollbar, используемого GtkScrolledWindow, поле "value" представляет позицию полосы прокрутки, которое должно быть между полем "lower" и "upper - page_size." Поле "page_size" размер видимой прокручиваемой области. Поля "step_increment" и "page_increment" используются когда пользователь запрашивает пошаговое прокручивание (используя небольшие пошаговые стрелки) или переход в конец страницы (используя например клавишу PageDown).
Если GtkScrolledWindow ведёт себя не так как вам нужно, или имеет неправильное расположение, возможно установить вашу собственную прокрутку с GtkScrollbar например GtkTable.
typedef struct {
GtkWidget *hscrollbar;
GtkWidget *vscrollbar;
} GtkScrolledWindow;
Поля структуры GtkScrolledWindow не являются общими; они должны использоваться толь функциями приведёнными ниже.
GtkWidget* gtk_scrolled_window_new (GtkAdjustment *hadjustment, GtkAdjustment *vadjustment);
Создаёт новое прокручиваемое окно. Два
аргумента являются настройками окна
прокручивания; они будут общими для
полос прокручивания и дочернего виджета
сохраняя синхронизацию. Обычно вы можете
поместить NULL
для регулировок, что заставит окно
прокручивания создать их для вас.
|
Горизонтальная регулировка. |
|
Вертикальная регулировка. |
Возвращает : |
Новое окно прокручивания. |
GtkAdjustment* gtk_scrolled_window_get_hadjustment (GtkScrolledWindow *scrolled_window);
Возвращает настройку горизонтальной полосы прокручивания, используется для подключения горизонтальной полосы прокручивания к дочернему виджету с функциональностью горизонтальной прокрутки.
|
|
Возвращает : |
Горизонтальный GtkAdjustment. |
GtkAdjustment* gtk_scrolled_window_get_vadjustment (GtkScrolledWindow *scrolled_window);
Возвращает настройку вертикальной полосы прокручивания, используется для подключения вертикальной полосы прокручивание к дочернему виджету с вертикальной функциональностью прокручивания.
|
|
Возвращает : |
Вертикальный GtkAdjustment. |
GtkWidget* gtk_scrolled_window_get_hscrollbar (GtkScrolledWindow *scrolled_window);
Возвращает горизонтальную полосу
прокручивания scrolled_window
.
|
|
Возвращает : |
Горизонтальная полоса прокручивания
окна, или |
Начиная с версии 2.8
GtkWidget* gtk_scrolled_window_get_vscrollbar (GtkScrolledWindow *scrolled_window);
Возвращает вертикальную полосу
прокручивания scrolled_window
.
|
|
Возвращает : |
Вертикальная полоса прокручивания
окна, или |
Начиная с версии 2.8
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
,
полоса прокрутки отображается по
необходимости (то есть когда часть
отображаемого больше чем область
просмотра).
|
|
|
Политика для горизонтальной полосы. |
|
Политика для вертикальной полосы. |
void gtk_scrolled_window_add_with_viewport (GtkScrolledWindow *scrolled_window, GtkWidget *child);
Используется для добавления дочерних
виджетов с отсутствием изначальной
поддержки прокручивания. Это простая
функция удобства; она эквивалентна
добавлению не прокручиваемого дочернего
виджета к области просмотра, после чего
область просмотра (viewport) добавляется к
прокручиваемому окну. Если дочерний
виджет имеет встроенное прокручивание,
используйте gtk_container_add()
вместо этой функции.
Область просмотра прокручивает дочерний виджет перемещением его GdkWindow, и берет размер дочернего виджета как размер его вышестоящего GdkWindow. Это очень неправильно для большинства виджетов поддерживающих встроенное прокручивание; например, если вы добавили виджет, такой как GtkTreeView, к области просмотра, весь виджет будет прокручен, включая заголовки столбцов. Поэтому, виджеты с встроенной поддержкой прокручивания не должны использовать GtkViewport полномочия.
Виджет поддерживает прокручивание изначально если поле set_scroll_adjustments_signal в GtkWidgetClass не ноль, то есть была заполнена существующим идентификатором сигнала.
|
|
|
Виджет который вы хотите прокручивать. |
void gtk_scrolled_window_set_placement (GtkScrolledWindow *scrolled_window, GtkCornerType window_placement);
Устанавливает размещение контекста относительно полос прокручивания для прокручиваемого окна.
Смотрите также gtk_scrolled_window_get_placement()
и gtk_scrolled_window_unset_placement()
.
Определяет положение дочернего виджета
относительно полос прокручивания. По
умолчанию GTK_CORNER_TOP_LEFT
,
означает что дочерний виджет находится
вверху слева, с полосой прокручивания
снизу справа. Другими значениями
GtkCornerType
могут быть GTK_CORNER_TOP_RIGHT
,
GTK_CORNER_BOTTOM_LEFT
и GTK_CORNER_BOTTOM_RIGHT
.
|
|
|
Позиция дочернего окна. |
void gtk_scrolled_window_unset_placement (GtkScrolledWindow *scrolled_window);
Отменяет установку контекста размещения относительно полос прокручивания в прокручиваемом окне. Если никакого размещения не установлено для прокручиваемого окна, руководствуется "gtk-scrolled-window-placement" XSETTING.
Смотрите также gtk_scrolled_window_set_placement()
и gtk_scrolled_window_get_placement()
.
|
Начиная с версии 2.10
void gtk_scrolled_window_set_shadow_type (GtkScrolledWindow *scrolled_window, GtkShadowType type);
Изменяет тип тени рисуемой вокруг
содержимого scrolled_window
.
|
|
|
Класс тени рисуемой вокруг содержимого прокручиваемого окна |
void gtk_scrolled_window_set_hadjustment (GtkScrolledWindow *scrolled_window, GtkAdjustment *hadjustment);
Устанавливает GtkAdjustment для горизонтальной полосы прокручивания.
|
|
|
Горизонтальная регулировка прокручивания. |
void gtk_scrolled_window_set_vadjustment (GtkScrolledWindow *scrolled_window, GtkAdjustment *vadjustment);
Устанавливает GtkAdjustment для вертикальной полосы прокручивания.
|
|
|
Вертикальная регулировка прокручивания. |
GtkCornerType gtk_scrolled_window_get_placement (GtkScrolledWindow *scrolled_window);
Получает размещение содержимого
относительно полос прокручивания для
прокручиваемого окна. Смотрите
gtk_scrolled_window_set_placement()
.
|
|
Возвращает : |
Текущее значение размещения. Смотрите
также |
void gtk_scrolled_window_get_policy (GtkScrolledWindow *scrolled_window, GtkPolicyType *hscrollbar_policy, GtkPolicyType *vscrollbar_policy);
Возвращает текущеме значение политики
для горизонтальной и вертикальной
полосы прокручивания. Смотрите
gtk_scrolled_window_set_policy()
.
|
|
|
Размещение сохраняемой политики
для горизонтальной полосы прокручивания,
или |
|
Размещение сохраняемой политики
для вертикальной полосы прокручивания,
или |
GtkShadowType gtk_scrolled_window_get_shadow_type (GtkScrolledWindow *scrolled_window);
Получает тип тени прокручиваемого окна.
Смотрите gtk_scrolled_window_set_shadow_type()
.
|
|
Возвращает : |
Текущий тип тени |
hadjustment
""hadjustment" GtkAdjustment : Read / Write / Construct
GtkAdjustment для горизонтальной позиции.
hscrollbar-policy
""hscrollbar-policy" GtkPolicyType : Read / Write
Когда отображается горизонтальная полоса прокручивания.
Значение по умолчанию: GTK_POLICY_ALWAYS
shadow-type
""shadow-type" GtkShadowType : Read / Write
Стиль скоса вокруг содержимого.
Значение по умолчанию: GTK_SHADOW_NONE
vadjustment
""vadjustment" GtkAdjustment : Read / Write / Construct
GtkAdjustment для вертикальной позиции.
vscrollbar-policy
""vscrollbar-policy" GtkPolicyType : Read / Write
Когда отображается вертикальная полоса прокручивания.
Значение по умолчанию: GTK_POLICY_ALWAYS
window-placement
""window-placement" GtkCornerType : Read / Write
Где располагается содержимое относительно полос прокручивания. Это свойство имеет эффект только если "window-placement-set" равно TRUE.
Значение по умолчанию: GTK_CORNER_TOP_LEFT
window-placement-set
""window-placement-set" gboolean : Read / Write
Должно ли использоваться "window-placement" для определения расположения содержимого относительно полос прокручивания.
Значение по умолчанию: FALSE
scrollbar-spacing
""scrollbar-spacing" gint : Read
Количество пикселей между полосами прокручивания и прокручиваемым окном.
Допустимые значения: >= 0
Значение по умолчанию: 3
void user_function (GtkScrolledWindow *scrolledwindow, GtkDirectionType *arg1, gpointer user_data) : Run last / Action
|
Объект получающий сигнал. |
|
|
|
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkScrolledWindow *scrolledwindow, GtkScrollType *arg1, gboolean arg2, gpointer user_data) : Run last / Action
|
Объект получающий сигнал. |
|
|
|
|
|
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
GtkViewport, GtkAdjustment, GtkWidgetClass
[5] Прокручиваемое окно устанавливает GtkAdjustment объекты в слоты дочерних виджетов используя set_scroll_adjustments_signal, найденный в GtkWidgetClass. (Концептуально, эти виджеты осуществляют "Scrollable" интерфейс; потому что GTK+ 1.2 недоставало интерфейса поддержки объектной системы, этот интерфейс плохо осуществим как сигнал в GtkWidgetClass. Объектная система GTK+ 2.0 позволяла бы более чистое осуществление, но не стоило нарушать API.)
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |