Interface Scrollable

All Superinterfaces:
Proxy
All Known Implementing Classes:
ClampScrollable, ColumnView, GridView, IconView, ListBase, ListBase.ListBase$Impl, ListView, Map, Scrollable.Scrollable$Impl, TextView, TreeView, View, Viewport

@Generated("org.javagi.JavaGI") public interface Scrollable extends Proxy

An interface for widgets with native scrolling ability.

To implement this interface you should override the Gtk.Scrollable:hadjustment and Gtk.Scrollable: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 connect to the Gtk.Adjustment::value-changed signal. The child widget should then populate the adjustments’ properties as soon as possible, which usually means queueing an allocation right away and populating the properties in the Widget.sizeAllocate(Allocation, int) implementation.

  • 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 Widget.sizeAllocate(Allocation, int) implementation.

  • When the parent allocates space to the scrollable child widget, the widget must ensure the adjustments’ property values are correct and up to date, for example using Adjustment.configure(double, double, double, double, double, double).

  • When any of the adjustments emits the Gtk.Adjustment::value-changed signal, the scrollable widget should scroll its contents.

  • Method Details

    • getType

      static @Nullable Type getType()
      Get the GType of the Scrollable class.
      Returns:
      the GType
    • getBorder

      default boolean getBorder(Border 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 overlaid graphics, like the overshoot indication, at the right position.

      Parameters:
      border - return location for the results
      Returns:
      true if border has been set
    • getHadjustment

      default @Nullable Adjustment getHadjustment()
      Retrieves the GtkAdjustment used for horizontal scrolling.
      Returns:
      horizontal GtkAdjustment.
    • getHscrollPolicy

      default ScrollablePolicy getHscrollPolicy()
      Gets the horizontal GtkScrollablePolicy.
      Returns:
      The horizontal GtkScrollablePolicy.
    • getVadjustment

      default @Nullable Adjustment getVadjustment()
      Retrieves the GtkAdjustment used for vertical scrolling.
      Returns:
      vertical GtkAdjustment.
    • getVscrollPolicy

      default ScrollablePolicy getVscrollPolicy()
      Gets the vertical GtkScrollablePolicy.
      Returns:
      The vertical GtkScrollablePolicy.
    • setHadjustment

      default void setHadjustment(@Nullable Adjustment hadjustment)
      Sets the horizontal adjustment of the GtkScrollable.
      Parameters:
      hadjustment - a GtkAdjustment
    • setHscrollPolicy

      default void setHscrollPolicy(ScrollablePolicy policy)

      Sets the GtkScrollablePolicy.

      The policy determines whether horizontal scrolling should start below the minimum width or below the natural width.

      Parameters:
      policy - the horizontal GtkScrollablePolicy
    • setVadjustment

      default void setVadjustment(@Nullable Adjustment vadjustment)
      Sets the vertical adjustment of the GtkScrollable.
      Parameters:
      vadjustment - a GtkAdjustment
    • setVscrollPolicy

      default void setVscrollPolicy(ScrollablePolicy policy)

      Sets the GtkScrollablePolicy.

      The policy determines whether vertical scrolling should start below the minimum height or below the natural height.

      Parameters:
      policy - the vertical GtkScrollablePolicy