diff options
Diffstat (limited to 'gtk/gtkscrollable.c')
-rw-r--r-- | gtk/gtkscrollable.c | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/gtk/gtkscrollable.c b/gtk/gtkscrollable.c index 3e19c79ca6..ca0d8a4ea4 100644 --- a/gtk/gtkscrollable.c +++ b/gtk/gtkscrollable.c @@ -63,6 +63,7 @@ #include "config.h" #include "gtkscrollable.h" +#include "gtktypeutils.h" #include "gtkprivate.h" #include "gtkintl.h" @@ -106,6 +107,38 @@ gtk_scrollable_default_init (GtkScrollableInterface *iface) GTK_TYPE_ADJUSTMENT, GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT); g_object_interface_install_property (iface, pspec); + + /** + * GtkScrollable:hscroll-policy: + * + * Determines whether horizontal scrolling should commence once the scrollable + * widget is allocated less than it's minimum width or less than it's natural width. + * + * Since: 3.0 + */ + pspec = g_param_spec_enum ("hscroll-policy", + P_("Horizontal Scrollable Policy"), + P_("How the size of the content should be determined"), + GTK_TYPE_SCROLLABLE_POLICY, + GTK_SCROLL_MINIMUM, + GTK_PARAM_READWRITE); + g_object_interface_install_property (iface, pspec); + + /** + * GtkScrollable:vscroll-policy: + * + * Determines whether vertical scrolling should commence once the scrollable + * widget is allocated less than it's minimum height or less than it's natural height. + * + * Since: 3.0 + */ + pspec = g_param_spec_enum ("vscroll-policy", + P_("Vertical Scrollable Policy"), + P_("How the size of the content should be determined"), + GTK_TYPE_SCROLLABLE_POLICY, + GTK_SCROLL_MINIMUM, + GTK_PARAM_READWRITE); + g_object_interface_install_property (iface, pspec); } /** @@ -203,3 +236,88 @@ gtk_scrollable_set_vadjustment (GtkScrollable *scrollable, g_object_set (scrollable, "vadjustment", vadjustment, NULL); } + + +/** + * gtk_scrollable_get_hscroll_policy: + * @scrollable: a #GtkScrollable + * + * Gets the horizontal #GtkScrollablePolicy. + * + * Return value: The horizontal #GtkScrollablePolicy. + * + * Since: 3.0 + **/ +GtkScrollablePolicy +gtk_scrollable_get_hscroll_policy (GtkScrollable *scrollable) +{ + GtkScrollablePolicy policy; + + g_return_val_if_fail (GTK_IS_SCROLLABLE (scrollable), GTK_SCROLL_MINIMUM); + + g_object_get (scrollable, "hscroll-policy", &policy, NULL); + + return policy; +} + +/** + * gtk_scrollable_set_hscroll_policy: + * @scrollable: a #GtkScrollable + * @policy: the horizontal #GtkScrollablePolicy + * + * Sets the #GtkScrollablePolicy to determine whether + * horizontal scrolling should commence below minimum or + * below natural width. + * + * Since: 3.0 + **/ +void +gtk_scrollable_set_hscroll_policy (GtkScrollable *scrollable, + GtkScrollablePolicy policy) +{ + g_return_if_fail (GTK_IS_SCROLLABLE (scrollable)); + + g_object_set (scrollable, "hscroll-policy", policy, NULL); +} + +/** + * gtk_scrollable_get_vscroll_policy: + * @scrollable: a #GtkScrollable + * + * Gets the vertical #GtkScrollablePolicy. + * + * Return value: The vertical #GtkScrollablePolicy. + * + * Since: 3.0 + **/ +GtkScrollablePolicy +gtk_scrollable_get_vscroll_policy (GtkScrollable *scrollable) +{ + GtkScrollablePolicy policy; + + g_return_val_if_fail (GTK_IS_SCROLLABLE (scrollable), GTK_SCROLL_MINIMUM); + + g_object_get (scrollable, "vscroll-policy", &policy, NULL); + + return policy; +} + +/** + * gtk_scrollable_set_vscroll_policy: + * @scrollable: a #GtkScrollable + * @policy: the vertical #GtkScrollablePolicy + * + * Sets the #GtkScrollablePolicy to determine whether + * vertical scrolling should commence below minimum or + * below natural height. + * + * Since: 3.0 + **/ +void +gtk_scrollable_set_vscroll_policy (GtkScrollable *scrollable, + GtkScrollablePolicy policy) +{ + g_return_if_fail (GTK_IS_SCROLLABLE (scrollable)); + + g_object_set (scrollable, "vscroll-policy", policy, NULL); +} |