mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-14 06:10:21 +00:00
Add a gtk_scrollable_get_border
Add a vfunc to return a non-scrollable border around scrollables. This would be nicer as a property, but we can't add properties to an interface without breaking 3rd party implementations, so make this an optional vfunc, and handle it not being set.
This commit is contained in:
parent
691c96db2a
commit
6f2fff56fb
@ -3096,7 +3096,7 @@ gtk_scrollable_get_hscroll_policy
|
|||||||
gtk_scrollable_set_hscroll_policy
|
gtk_scrollable_set_hscroll_policy
|
||||||
gtk_scrollable_get_vscroll_policy
|
gtk_scrollable_get_vscroll_policy
|
||||||
gtk_scrollable_set_vscroll_policy
|
gtk_scrollable_set_vscroll_policy
|
||||||
|
gtk_scrollable_get_border
|
||||||
|
|
||||||
<SUBSECTION Standard>
|
<SUBSECTION Standard>
|
||||||
GtkScrollableInterface
|
GtkScrollableInterface
|
||||||
|
@ -312,3 +312,31 @@ gtk_scrollable_set_vscroll_policy (GtkScrollable *scrollable,
|
|||||||
|
|
||||||
g_object_set (scrollable, "vscroll-policy", policy, NULL);
|
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;
|
||||||
|
}
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include <gdk/gdk.h>
|
#include <gdk/gdk.h>
|
||||||
#include <gtk/gtkenums.h>
|
#include <gtk/gtkenums.h>
|
||||||
#include <gtk/gtktypes.h>
|
#include <gtk/gtktypes.h>
|
||||||
|
#include <gtk/gtkborder.h>
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
@ -39,6 +40,9 @@ typedef struct _GtkScrollableInterface GtkScrollableInterface;
|
|||||||
struct _GtkScrollableInterface
|
struct _GtkScrollableInterface
|
||||||
{
|
{
|
||||||
GTypeInterface base_iface;
|
GTypeInterface base_iface;
|
||||||
|
|
||||||
|
gboolean (* get_border) (GtkScrollable *scrollable,
|
||||||
|
GtkBorder *border);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Public API */
|
/* Public API */
|
||||||
@ -65,6 +69,10 @@ GDK_AVAILABLE_IN_ALL
|
|||||||
void gtk_scrollable_set_vscroll_policy (GtkScrollable *scrollable,
|
void gtk_scrollable_set_vscroll_policy (GtkScrollable *scrollable,
|
||||||
GtkScrollablePolicy policy);
|
GtkScrollablePolicy policy);
|
||||||
|
|
||||||
|
GDK_AVAILABLE_IN_3_16
|
||||||
|
gboolean gtk_scrollable_get_border (GtkScrollable *scrollable,
|
||||||
|
GtkBorder *border);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GTK_SCROLLABLE_H__ */
|
#endif /* __GTK_SCROLLABLE_H__ */
|
||||||
|
Loading…
Reference in New Issue
Block a user