Class
GtkScrolledWindow
Description [src]
final class Gtk.ScrolledWindow : Gtk.Widget {
/* No available fields */
}
GtkScrolledWindow
is a container that makes its child scrollable.
It does so using either internally added scrollbars or externally associated adjustments, and optionally draws a frame around the child.
Widgets with native scrolling support, i.e. those whose classes implement
the GtkScrollable
interface, are added directly. For other types
of widget, the class GtkViewport
acts as an adaptor, giving
scrollability to other widgets. gtk_scrolled_window_set_child()
intelligently accounts for whether or not the added child is a GtkScrollable
.
If it isn’t, then it wraps the child in a GtkViewport
. Therefore, you can
just add any child widget and not worry about the details.
If gtk_scrolled_window_set_child()
has added a GtkViewport
for you,
you can remove both your added child widget from the GtkViewport
, and the
GtkViewport
from the GtkScrolledWindow
, like this:
GtkWidget *scrolled_window = gtk_scrolled_window_new ();
GtkWidget *child_widget = gtk_button_new ();
// GtkButton is not a GtkScrollable, so GtkScrolledWindow will automatically
// add a GtkViewport.
gtk_box_append (GTK_BOX (scrolled_window), child_widget);
// Either of these will result in child_widget being unparented:
gtk_box_remove (GTK_BOX (scrolled_window), child_widget);
// or
gtk_box_remove (GTK_BOX (scrolled_window),
gtk_bin_get_child (GTK_BIN (scrolled_window)));
Unless GtkScrolledWindow:hscrollbar-policy
and
GtkScrolledWindow:vscrollbar-policy
are GTK_POLICY_NEVER
or
GTK_POLICY_EXTERNAL
, GtkScrolledWindow
adds internal GtkScrollbar
widgets
around its child. The scroll position of the child, and if applicable the
scrollbars, is controlled by the GtkScrolledWindow:hadjustment
and GtkScrolledWindow:vadjustment
that are associated with the
GtkScrolledWindow
. See the docs on GtkScrollbar
for the details,
but note that the “step_increment” and “page_increment” fields are only
effective if the policy causes scrollbars to be present.
If a GtkScrolledWindow
doesn’t behave quite as you would like, or
doesn’t have exactly the right layout, it’s very possible to set up
your own scrolling with GtkScrollbar
and for example a GtkGrid
.
Touch support
GtkScrolledWindow
has built-in support for touch devices. When a
touchscreen is used, swiping will move the scrolled window, and will
expose ‘kinetic’ behavior. This can be turned off with the
GtkScrolledWindow:kinetic-scrolling
property if it is undesired.
GtkScrolledWindow
also displays visual ‘overshoot’ indication when
the content is pulled beyond the end, and this situation can be
captured with the GtkScrolledWindow::edge-overshot
signal.
If no mouse device is present, the scrollbars will overlaid as
narrow, auto-hiding indicators over the content. If traditional
scrollbars are desired although no mouse is present, this behaviour
can be turned off with the GtkScrolledWindow:overlay-scrolling
property.
CSS nodes
GtkScrolledWindow
has a main CSS node with name scrolledwindow.
It gets a .frame style class added when GtkScrolledWindow:has-frame
is TRUE
.
It uses subnodes with names overshoot and undershoot to draw the overflow and underflow indications. These nodes get the .left, .right, .top or .bottom style class added depending on where the indication is drawn.
GtkScrolledWindow
also sets the positional style classes (.left, .right,
.top, .bottom) and style classes related to overlay scrolling
(.overlay-indicator, .dragging, .hovering) on its scrollbars.
If both scrollbars are visible, the area where they meet is drawn with a subnode named junction.
Accessibility
GtkScrolledWindow
uses the GTK_ACCESSIBLE_ROLE_GROUP
role.
Constructors
gtk_scrolled_window_new
Creates a new scrolled window.
Instance methods
gtk_scrolled_window_get_child
Gets the child widget of scrolled_window
.
gtk_scrolled_window_get_hadjustment
Returns the horizontal scrollbar’s adjustment.
gtk_scrolled_window_get_has_frame
Gets whether the scrolled window draws a frame.
gtk_scrolled_window_get_hscrollbar
Returns the horizontal scrollbar of scrolled_window
.
gtk_scrolled_window_get_kinetic_scrolling
Returns the specified kinetic scrolling behavior.
gtk_scrolled_window_get_max_content_height
Returns the maximum content height set.
gtk_scrolled_window_get_max_content_width
Returns the maximum content width set.
gtk_scrolled_window_get_min_content_height
Gets the minimal content height of scrolled_window
.
gtk_scrolled_window_get_min_content_width
Gets the minimum content width of scrolled_window
.
gtk_scrolled_window_get_overlay_scrolling
Returns whether overlay scrolling is enabled for this scrolled window.
gtk_scrolled_window_get_placement
Gets the placement of the contents with respect to the scrollbars.
gtk_scrolled_window_get_policy
Retrieves the current policy values for the horizontal and vertical scrollbars.
gtk_scrolled_window_get_propagate_natural_height
Reports whether the natural height of the child will be calculated and propagated through the scrolled window’s requested natural height.
gtk_scrolled_window_get_propagate_natural_width
Reports whether the natural width of the child will be calculated and propagated through the scrolled window’s requested natural width.
gtk_scrolled_window_get_vadjustment
Returns the vertical scrollbar’s adjustment.
gtk_scrolled_window_get_vscrollbar
Returns the vertical scrollbar of scrolled_window
.
gtk_scrolled_window_set_child
Sets the child widget of scrolled_window
.
gtk_scrolled_window_set_hadjustment
Sets the GtkAdjustment
for the horizontal scrollbar.
gtk_scrolled_window_set_has_frame
Changes the frame drawn around the contents of scrolled_window
.
gtk_scrolled_window_set_kinetic_scrolling
Turns kinetic scrolling on or off.
gtk_scrolled_window_set_max_content_height
Sets the maximum height that scrolled_window
should keep visible.
gtk_scrolled_window_set_max_content_width
Sets the maximum width that scrolled_window
should keep visible.
gtk_scrolled_window_set_min_content_height
Sets the minimum height that scrolled_window
should keep visible.
gtk_scrolled_window_set_min_content_width
Sets the minimum width that scrolled_window
should keep visible.
gtk_scrolled_window_set_overlay_scrolling
Enables or disables overlay scrolling for this scrolled window.
gtk_scrolled_window_set_placement
Sets the placement of the contents with respect to the scrollbars for the scrolled window.
gtk_scrolled_window_set_policy
Sets the scrollbar policy for the horizontal and vertical scrollbars.
gtk_scrolled_window_set_propagate_natural_height
Sets whether the natural height of the child should be calculated and propagated through the scrolled window’s requested natural height.
gtk_scrolled_window_set_propagate_natural_width
Sets whether the natural width of the child should be calculated and propagated through the scrolled window’s requested natural width.
gtk_scrolled_window_set_vadjustment
Sets the GtkAdjustment
for the vertical scrollbar.
gtk_scrolled_window_unset_placement
Unsets the placement of the contents with respect to the scrollbars.
Methods inherited from GtkAccessible (10)
gtk_accessible_get_accessible_role
Retrieves the GtkAccessibleRole
for the given GtkAccessible
.
gtk_accessible_reset_property
Resets the accessible property
to its default value.
gtk_accessible_reset_relation
Resets the accessible relation
to its default value.
gtk_accessible_reset_state
Resets the accessible state
to its default value.
gtk_accessible_update_property
Updates a list of accessible properties.
gtk_accessible_update_property_value
Updates an array of accessible properties.
gtk_accessible_update_relation
Updates a list of accessible relations.
gtk_accessible_update_relation_value
Updates an array of accessible relations.
gtk_accessible_update_state
Updates a list of accessible states. See the GtkAccessibleState
documentation for the value types of accessible states.
gtk_accessible_update_state_value
Updates an array of accessible states.
Methods inherited from GtkBuildable (1)
gtk_buildable_get_buildable_id
Gets the ID of the buildable
object.
Properties
Gtk.ScrolledWindow:child
The child widget.
Gtk.ScrolledWindow:hadjustment
Gtk.ScrolledWindow:has-frame
Whether to draw a frame around the contents.
Gtk.ScrolledWindow:hscrollbar-policy
When the horizontal scrollbar is displayed.
Gtk.ScrolledWindow:kinetic-scrolling
Whether kinetic scrolling is enabled or not.
Gtk.ScrolledWindow:max-content-height
The maximum content height of scrolled_window
.
Gtk.ScrolledWindow:max-content-width
The maximum content width of scrolled_window
.
Gtk.ScrolledWindow:min-content-height
The minimum content height of scrolled_window
.
Gtk.ScrolledWindow:min-content-width
The minimum content width of scrolled_window
.
Gtk.ScrolledWindow:overlay-scrolling
Whether overlay scrolling is enabled or not.
Gtk.ScrolledWindow:propagate-natural-height
Whether the natural height of the child should be calculated and propagated through the scrolled window’s requested natural height.
Gtk.ScrolledWindow:propagate-natural-width
Whether the natural width of the child should be calculated and propagated through the scrolled window’s requested natural width.
Gtk.ScrolledWindow:vadjustment
Gtk.ScrolledWindow:vscrollbar-policy
When the vertical scrollbar is displayed.
Gtk.ScrolledWindow:window-placement
Where the contents are located with respect to the scrollbars.
Properties inherited from GtkWidget (34)
Gtk.Widget:can-focus
Whether the widget or any of its descendents can accept the input focus.
Gtk.Widget:can-target
Whether the widget can receive pointer events.
Gtk.Widget:css-classes
A list of css classes applied to this widget.
Gtk.Widget:css-name
The name of this widget in the CSS tree.
Gtk.Widget:cursor
The cursor used by widget
.
Gtk.Widget:focus-on-click
Whether the widget should grab focus when it is clicked with the mouse.
Gtk.Widget:focusable
Whether this widget itself will accept the input focus.
Gtk.Widget:halign
How to distribute horizontal space if widget gets extra space.
Gtk.Widget:has-default
Whether the widget is the default widget.
Gtk.Widget:has-focus
Whether the widget has the input focus.
Gtk.Widget:has-tooltip
Enables or disables the emission of the ::query-tooltip signal on widget
.
Gtk.Widget:height-request
Override for height request of the widget.
Gtk.Widget:hexpand
Whether to expand horizontally.
Gtk.Widget:hexpand-set
Whether to use the hexpand
property.
Gtk.Widget:layout-manager
The GtkLayoutManager
instance to use to compute the preferred size
of the widget, and allocate its children.
Gtk.Widget:margin-bottom
Margin on bottom side of widget.
Gtk.Widget:margin-end
Margin on end of widget, horizontally.
Gtk.Widget:margin-start
Margin on start of widget, horizontally.
Gtk.Widget:margin-top
Margin on top side of widget.
Gtk.Widget:name
The name of the widget.
Gtk.Widget:opacity
The requested opacity of the widget.
Gtk.Widget:overflow
How content outside the widget’s content area is treated.
Gtk.Widget:parent
The parent widget of this widget.
Gtk.Widget:receives-default
Whether the widget will receive the default action when it is focused.
Gtk.Widget:root
The GtkRoot
widget of the widget tree containing this widget.
Gtk.Widget:scale-factor
The scale factor of the widget.
Gtk.Widget:sensitive
Whether the widget responds to input.
Gtk.Widget:tooltip-markup
Sets the text of tooltip to be the given string, which is marked up with Pango markup.
Gtk.Widget:tooltip-text
Sets the text of tooltip to be the given string.
Gtk.Widget:valign
How to distribute vertical space if widget gets extra space.
Gtk.Widget:vexpand
Whether to expand vertically.
Gtk.Widget:vexpand-set
Whether to use the vexpand
property.
Gtk.Widget:visible
Whether the widget is visible.
Gtk.Widget:width-request
Override for width request of the widget.
Properties inherited from GtkAccessible (1)
Gtk.Accessible:accessible-role
The accessible role of the given GtkAccessible
implementation.
Signals
Gtk.ScrolledWindow::edge-overshot
Emitted whenever user initiated scrolling makes the scrolled window firmly surpass the limits defined by the adjustment in that orientation.
Gtk.ScrolledWindow::edge-reached
Emitted whenever user-initiated scrolling makes the scrolled window exactly reach the lower or upper limits defined by the adjustment in that orientation.
Gtk.ScrolledWindow::move-focus-out
Emitted when focus is moved away from the scrolled window by a keybinding.
Gtk.ScrolledWindow::scroll-child
Emitted when a keybinding that scrolls is pressed.
Signals inherited from GtkWidget (13)
Gtk.Widget::destroy
Signals that all holders of a reference to the widget should release the reference that they hold.
Gtk.Widget::direction-changed
Emitted when the text direction of a widget changes.
Gtk.Widget::hide
Emitted when widget
is hidden.
Gtk.Widget::keynav-failed
Emitted if keyboard navigation fails.
Gtk.Widget::map
Emitted when widget
is going to be mapped.
Gtk.Widget::mnemonic-activate
Emitted when a widget is activated via a mnemonic.
Gtk.Widget::move-focus
Emitted when the focus is moved.
Gtk.Widget::query-tooltip
Emitted when the widgets tooltip is about to be shown.
Gtk.Widget::realize
Emitted when widget
is associated with a GdkSurface
.
Gtk.Widget::show
Emitted when widget
is shown.
Gtk.Widget::state-flags-changed
Emitted when the widget state changes.
Gtk.Widget::unmap
Emitted when widget
is going to be unmapped.
Gtk.Widget::unrealize
Emitted when the GdkSurface
associated with widget
is destroyed.
Signals inherited from GObject (1)
GObject.Object::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.