diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt index 562249dc56..fb93d29a26 100644 --- a/docs/reference/gtk/gtk3-sections.txt +++ b/docs/reference/gtk/gtk3-sections.txt @@ -3096,7 +3096,7 @@ gtk_scrollable_get_hscroll_policy gtk_scrollable_set_hscroll_policy gtk_scrollable_get_vscroll_policy gtk_scrollable_set_vscroll_policy - +gtk_scrollable_get_border GtkScrollableInterface diff --git a/gtk/gtkscrollable.c b/gtk/gtkscrollable.c index 20028782ae..1ac26b625d 100644 --- a/gtk/gtkscrollable.c +++ b/gtk/gtkscrollable.c @@ -312,3 +312,31 @@ gtk_scrollable_set_vscroll_policy (GtkScrollable *scrollable, g_object_set (scrollable, "vscroll-policy", policy, NULL); } + +/** + * gtk_scrollable_get_border: + * @scrollable: a #GtkScrollable + * @border: return location for the results + * + * 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. + * + * Returns: %TRUE if @border has been set + * + * Since: 3.16 + */ +gboolean +gtk_scrollable_get_border (GtkScrollable *scrollable, + GtkBorder *border) +{ + g_return_val_if_fail (GTK_IS_SCROLLABLE (scrollable), FALSE); + g_return_val_if_fail (border != NULL, FALSE); + + if (GTK_SCROLLABLE_GET_IFACE (scrollable)->get_border) + return GTK_SCROLLABLE_GET_IFACE (scrollable)->get_border (scrollable, border); + + return FALSE; +} diff --git a/gtk/gtkscrollable.h b/gtk/gtkscrollable.h index 112301f04d..a4e0af1f5f 100644 --- a/gtk/gtkscrollable.h +++ b/gtk/gtkscrollable.h @@ -25,6 +25,7 @@ #include #include #include +#include G_BEGIN_DECLS @@ -39,6 +40,9 @@ typedef struct _GtkScrollableInterface GtkScrollableInterface; struct _GtkScrollableInterface { GTypeInterface base_iface; + + gboolean (* get_border) (GtkScrollable *scrollable, + GtkBorder *border); }; /* Public API */ @@ -65,6 +69,10 @@ GDK_AVAILABLE_IN_ALL void gtk_scrollable_set_vscroll_policy (GtkScrollable *scrollable, GtkScrollablePolicy policy); +GDK_AVAILABLE_IN_3_16 +gboolean gtk_scrollable_get_border (GtkScrollable *scrollable, + GtkBorder *border); + G_END_DECLS #endif /* __GTK_SCROLLABLE_H__ */