| 
 | |
|  | 
| 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
                                 +----GtkScrolledWindowGtkScrolledWindow осуществляет 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 / ActionGtkScrolledWindow это подкласс 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-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |