Class
GtkScrolledWindow
Description [src]
final class Gtk.ScrolledWindow : Gtk.Widget
implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
/* 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,
it will be automatically removed when you unset the child.
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.
Shortcuts and Gestures
The following signals have default keybindings:
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
Until GTK 4.10, GtkScrolledWindow
used the GTK_ACCESSIBLE_ROLE_GROUP
role.
Starting from GTK 4.12, GtkScrolledWindow
uses the GTK_ACCESSIBLE_ROLE_GENERIC
role.
Instance methods
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_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_unset_placement
Unsets the placement of the contents with respect to the scrollbars.
Methods inherited from GtkAccessible (19)
gtk_accessible_announce
Requests the user’s screen reader to announce the given message.
since: 4.14
gtk_accessible_get_accessible_parent
Retrieves the accessible parent for an accessible object.
since: 4.10
gtk_accessible_get_accessible_role
Retrieves the accessible role of an accessible object.
gtk_accessible_get_at_context
Retrieves the accessible implementation for the given GtkAccessible
.
since: 4.10
gtk_accessible_get_bounds
Queries the coordinates and dimensions of this accessible.
since: 4.10
gtk_accessible_get_first_accessible_child
Retrieves the first accessible child of an accessible object.
since: 4.10
gtk_accessible_get_next_accessible_sibling
Retrieves the next accessible sibling of an accessible object.
since: 4.10
gtk_accessible_get_platform_state
Query a platform state, such as focus.
since: 4.10
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_set_accessible_parent
Sets the parent and sibling of an accessible object.
since: 4.10
gtk_accessible_update_next_accessible_sibling
Updates the next accessible sibling of self
.
since: 4.10
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)
Properties
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.
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)
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.
Signals inherited from GtkWidget (13)
GtkWidget::destroy
Signals that all holders of a reference to the widget should release the reference that they hold.
GtkWidget::direction-changed
Emitted when the text direction of a widget changes.
GtkWidget::hide
Emitted when widget
is hidden.
GtkWidget::keynav-failed
Emitted if keyboard navigation fails.
GtkWidget::map
Emitted when widget
is going to be mapped.
GtkWidget::mnemonic-activate
Emitted when a widget is activated via a mnemonic.
GtkWidget::move-focus
Emitted when the focus is moved.
GtkWidget::query-tooltip
Emitted when the widget’s tooltip is about to be shown.
GtkWidget::realize
Emitted when widget
is associated with a GdkSurface
.
GtkWidget::show
Emitted when widget
is shown.
GtkWidget::state-flags-changed
Emitted when the widget state changes.
GtkWidget::unmap
Emitted when widget
is going to be unmapped.
GtkWidget::unrealize
Emitted when the GdkSurface
associated with widget
is destroyed.
Signals inherited from GObject (1)
GObject::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.