GtkScrollable

GtkScrollable — An interface for scrollable widgets

Properties

GtkAdjustment * hadjustment Read / Write / Construct
GtkScrollablePolicy hscroll-policy Read / Write
GtkAdjustment * vadjustment Read / Write / Construct
GtkScrollablePolicy vscroll-policy Read / Write

Types and Values

Object Hierarchy

    GInterface
    ╰── GtkScrollable

Prerequisites

GtkScrollable requires GObject.

Known Implementations

GtkScrollable is implemented by GtkIconView, GtkLayout, GtkTextView, GtkToolPalette, GtkTreeView and GtkViewport.

Includes

#include <gtk/gtk.h>

Description

GtkScrollable is an interface that is implemented by widgets with native scrolling ability.

To implement this interface you should override the “hadjustment” and “vadjustment” properties.

Creating a scrollable widget

All scrollable widgets should do the following.

  • When a parent widget sets the scrollable child widget’s adjustments, the widget should populate the adjustments’ “lower”, “upper”, “step-increment”, “page-increment” and “page-size” properties and connect to the “value-changed” signal.

  • Because its preferred size is the size for a fully expanded widget, the scrollable widget must be able to cope with underallocations. This means that it must accept any value passed to its GtkWidgetClass.size_allocate() function.

  • When the parent allocates space to the scrollable child widget, the widget should update the adjustments’ properties with new values.

  • When any of the adjustments emits the “value-changed” signal, the scrollable widget should scroll its contents.

Functions

gtk_scrollable_get_hadjustment ()

GtkAdjustment *
gtk_scrollable_get_hadjustment (GtkScrollable *scrollable);

Retrieves the GtkAdjustment used for horizontal scrolling.

Parameters

scrollable

a GtkScrollable

 

Returns

horizontal GtkAdjustment.

[transfer none]

Since: 3.0


gtk_scrollable_set_hadjustment ()

void
gtk_scrollable_set_hadjustment (GtkScrollable *scrollable,
                                GtkAdjustment *hadjustment);

Sets the horizontal adjustment of the GtkScrollable.

Parameters

scrollable

a GtkScrollable

 

hadjustment

a GtkAdjustment.

[allow-none]

Since: 3.0


gtk_scrollable_get_vadjustment ()

GtkAdjustment *
gtk_scrollable_get_vadjustment (GtkScrollable *scrollable);

Retrieves the GtkAdjustment used for vertical scrolling.

Parameters

scrollable

a GtkScrollable

 

Returns

vertical GtkAdjustment.

[transfer none]

Since: 3.0


gtk_scrollable_set_vadjustment ()

void
gtk_scrollable_set_vadjustment (GtkScrollable *scrollable,
                                GtkAdjustment *vadjustment);

Sets the vertical adjustment of the GtkScrollable.

Parameters

scrollable

a GtkScrollable

 

vadjustment

a GtkAdjustment.

[allow-none]

Since: 3.0


gtk_scrollable_get_hscroll_policy ()

GtkScrollablePolicy
gtk_scrollable_get_hscroll_policy (GtkScrollable *scrollable);

Gets the horizontal GtkScrollablePolicy.

Parameters

scrollable

a GtkScrollable

 

Returns

The horizontal GtkScrollablePolicy.

Since: 3.0


gtk_scrollable_set_hscroll_policy ()

void
gtk_scrollable_set_hscroll_policy (GtkScrollable *scrollable,
                                   GtkScrollablePolicy policy);

Sets the GtkScrollablePolicy to determine whether horizontal scrolling should start below the minimum width or below the natural width.

Parameters

scrollable

a GtkScrollable

 

policy

the horizontal GtkScrollablePolicy

 

Since: 3.0


gtk_scrollable_get_vscroll_policy ()

GtkScrollablePolicy
gtk_scrollable_get_vscroll_policy (GtkScrollable *scrollable);

Gets the vertical GtkScrollablePolicy.

Parameters

scrollable

a GtkScrollable

 

Returns

The vertical GtkScrollablePolicy.

Since: 3.0


gtk_scrollable_set_vscroll_policy ()

void
gtk_scrollable_set_vscroll_policy (GtkScrollable *scrollable,
                                   GtkScrollablePolicy policy);

Sets the GtkScrollablePolicy to determine whether vertical scrolling should start below the minimum height or below the natural height.

Parameters

scrollable

a GtkScrollable

 

policy

the vertical GtkScrollablePolicy

 

Since: 3.0


gtk_scrollable_get_border ()

gboolean
gtk_scrollable_get_border (GtkScrollable *scrollable,
                           GtkBorder *border);

Returns the size of a non-scrolling border around the outside of the scrollable. An example for this would be treeview headers. GTK+ can use this information to display overlayed graphics, like the overshoot indication, at the right position.

Parameters

scrollable

a GtkScrollable

 

border

return location for the results.

[out caller-allocates]

Returns

TRUE if border has been set

Since: 3.16

Types and Values

GtkScrollable

typedef struct _GtkScrollable GtkScrollable;

enum GtkScrollablePolicy

Defines the policy to be used in a scrollable widget when updating the scrolled window adjustments in a given orientation.

Members

GTK_SCROLL_MINIMUM

Scrollable adjustments are based on the minimum size

 

GTK_SCROLL_NATURAL

Scrollable adjustments are based on the natural size

 

Property Details

The “hadjustment” property

  “hadjustment”              GtkAdjustment *

Horizontal GtkAdjustment of the scrollable widget. This adjustment is shared between the scrollable widget and its parent.

Flags: Read / Write / Construct

Since: 3.0


The “hscroll-policy” property

  “hscroll-policy”           GtkScrollablePolicy

Determines whether horizontal scrolling should start once the scrollable widget is allocated less than its minimum width or less than its natural width.

Flags: Read / Write

Default value: GTK_SCROLL_MINIMUM

Since: 3.0


The “vadjustment” property

  “vadjustment”              GtkAdjustment *

Verical GtkAdjustment of the scrollable widget. This adjustment is shared between the scrollable widget and its parent.

Flags: Read / Write / Construct

Since: 3.0


The “vscroll-policy” property

  “vscroll-policy”           GtkScrollablePolicy

Determines whether vertical scrolling should start once the scrollable widget is allocated less than its minimum height or less than its natural height.

Flags: Read / Write

Default value: GTK_SCROLL_MINIMUM

Since: 3.0