From d57c385d707ff86ce69418b945f6e224305f0a43 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz Date: Thu, 29 Oct 2009 19:47:37 +0100 Subject: [PATCH] Implementation of ModestScrollable based on HildonPannableArea --- src/hildon2/Makefile.am | 2 + .../modest-hildon-pannable-area-scrollable.c | 331 ++++++++++++++++++++ .../modest-hildon-pannable-area-scrollable.h | 65 ++++ src/widgets/modest-scrollable.c | 78 ++++- src/widgets/modest-scrollable.h | 10 +- 5 files changed, 478 insertions(+), 8 deletions(-) create mode 100644 src/hildon2/modest-hildon-pannable-area-scrollable.c create mode 100644 src/hildon2/modest-hildon-pannable-area-scrollable.h diff --git a/src/hildon2/Makefile.am b/src/hildon2/Makefile.am index 170cf39..91cbb18 100644 --- a/src/hildon2/Makefile.am +++ b/src/hildon2/Makefile.am @@ -70,6 +70,8 @@ libmodest_ui_la_SOURCES= \ modest-wp-text-view.h \ modest-maemo-security-options-view.c \ modest-hildon-includes.h \ + modest-hildon-pannable-area-scrollable.h \ + modest-hildon-pannable-area-scrollable.c \ modest-hildon2-details-dialog.h \ modest-hildon2-details-dialog.c \ modest-hildon2-sort-dialog.c \ diff --git a/src/hildon2/modest-hildon-pannable-area-scrollable.c b/src/hildon2/modest-hildon-pannable-area-scrollable.c new file mode 100644 index 0000000..d135026 --- /dev/null +++ b/src/hildon2/modest-hildon-pannable-area-scrollable.c @@ -0,0 +1,331 @@ +/* Copyright (c) 2009, Igalia + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the Nokia Corporation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include "modest-hildon-pannable-area-scrollable.h" + +static void modest_hildon_pannable_area_scrollable_class_init (ModestHildonPannableAreaScrollableClass *klass); +static void modest_hildon_pannable_area_scrollable_init (ModestHildonPannableAreaScrollable *self); +static void modest_scrollable_iface_init (gpointer g, gpointer iface_data); + +/* GObject interface */ +static void modest_hildon_pannable_area_scrollable_finalize (GObject *obj); +static void modest_hildon_pannable_area_scrollable_get_property (GObject *obj, + guint prop_id, + GValue *value, + GParamSpec *pspec); +static void modest_hildon_pannable_area_scrollable_set_property (GObject *obj, + guint prop_id, + const GValue *value, + GParamSpec *pspec); + +/* Modest scrollable interface */ +static void modest_hildon_pannable_area_scrollable_add_with_viewport (ModestScrollable *self, GtkWidget *widget); +static void modest_hildon_pannable_area_scrollable_add_with_viewport_default (ModestScrollable *self, GtkWidget *widget); +static GtkAdjustment *modest_hildon_pannable_area_scrollable_get_vadjustment (ModestScrollable *self); +static GtkAdjustment *modest_hildon_pannable_area_scrollable_get_vadjustment_default (ModestScrollable *self); +static GtkAdjustment *modest_hildon_pannable_area_scrollable_get_hadjustment (ModestScrollable *self); +static GtkAdjustment *modest_hildon_pannable_area_scrollable_get_hadjustment_default (ModestScrollable *self); +static void modest_hildon_pannable_area_scrollable_scroll_to (ModestScrollable *self, const gint x, const gint y); +static void modest_hildon_pannable_area_scrollable_scroll_to_default (ModestScrollable *self, const gint x, const gint y); +static void modest_hildon_pannable_area_scrollable_jump_to (ModestScrollable *self, const gint x, const gint y); +static void modest_hildon_pannable_area_scrollable_jump_to_default (ModestScrollable *self, const gint x, const gint y); +static GtkPolicyType modest_hildon_pannable_area_scrollable_get_vertical_policy (ModestScrollable *self); +static GtkPolicyType modest_hildon_pannable_area_scrollable_get_vertical_policy_default (ModestScrollable *self); +static GtkPolicyType modest_hildon_pannable_area_scrollable_get_horizontal_policy (ModestScrollable *self); +static GtkPolicyType modest_hildon_pannable_area_scrollable_get_horizontal_policy_default (ModestScrollable *self); +static void modest_hildon_pannable_area_scrollable_set_horizontal_policy (ModestScrollable *self, GtkPolicyType policy); +static void modest_hildon_pannable_area_scrollable_set_horizontal_policy_default (ModestScrollable *self, GtkPolicyType policy); +static void modest_hildon_pannable_area_scrollable_set_vertical_policy (ModestScrollable *self, GtkPolicyType policy); +static void modest_hildon_pannable_area_scrollable_set_vertical_policy_default (ModestScrollable *self, GtkPolicyType policy); + +/* list properties */ +enum { + PROP_0, + PROP_HORIZONTAL_POLICY, + PROP_VERTICAL_POLICY, +}; + +/* globals */ +static HildonPannableAreaClass *parent_class = NULL; + +G_DEFINE_TYPE_EXTENDED (ModestHildonPannableAreaScrollable, + modest_hildon_pannable_area_scrollable, + HILDON_TYPE_PANNABLE_AREA, + 0, + { + G_IMPLEMENT_INTERFACE (MODEST_TYPE_SCROLLABLE, modest_scrollable_iface_init); + g_type_interface_add_prerequisite (g_define_type_id, GTK_TYPE_BIN); + } + ); + +GtkWidget * +modest_hildon_pannable_area_scrollable_new (void) +{ + GtkWidget *scrollable = g_object_new (MODEST_TYPE_HILDON_PANNABLE_AREA_SCROLLABLE, NULL); + + return scrollable; +} + +static void +modest_hildon_pannable_area_scrollable_class_init (ModestHildonPannableAreaScrollableClass *klass) +{ + GObjectClass *gobject_class; + + parent_class = g_type_class_peek_parent (klass); + gobject_class->finalize = modest_hildon_pannable_area_scrollable_finalize; + gobject_class->set_property = modest_hildon_pannable_area_scrollable_set_property; + gobject_class->get_property = modest_hildon_pannable_area_scrollable_get_property; + + klass->add_with_viewport_func = modest_hildon_pannable_area_scrollable_add_with_viewport_default; + klass->get_vadjustment_func = modest_hildon_pannable_area_scrollable_get_vadjustment_default; + klass->get_hadjustment_func = modest_hildon_pannable_area_scrollable_get_hadjustment_default; + klass->scroll_to_func = modest_hildon_pannable_area_scrollable_scroll_to_default; + klass->jump_to_func = modest_hildon_pannable_area_scrollable_jump_to_default; + klass->get_vertical_policy_func = modest_hildon_pannable_area_scrollable_get_vertical_policy_default; + klass->get_horizontal_policy_func = modest_hildon_pannable_area_scrollable_get_horizontal_policy_default; + klass->set_vertical_policy_func = modest_hildon_pannable_area_scrollable_set_vertical_policy_default; + klass->set_horizontal_policy_func = modest_hildon_pannable_area_scrollable_set_horizontal_policy_default; + + g_object_class_install_property (gobject_class, + PROP_HORIZONTAL_POLICY, + g_param_spec_enum ("horizontal_policy", + _("Horizontal scrollbar policy"), + _("Visual policy of the horizontal scrollbar"), + GTK_TYPE_POLICY_TYPE, + GTK_POLICY_AUTOMATIC, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); + + g_object_class_install_property (gobject_class, + PROP_VERTICAL_POLICY, + g_param_spec_enum ("vertical_policy", + _("Vertical scrollbar policy"), + _("Visual policy of the vertical scrollbar"), + GTK_TYPE_POLICY_TYPE, + GTK_POLICY_AUTOMATIC, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); + +} + +static void +modest_hildon_pannable_area_scrollable_init (ModestHildonPannableAreaScrollable *self) +{ +} + +static void +modest_scrollable_iface_init (gpointer g, gpointer iface_data) +{ + ModestScrollableIface *iface = (ModestScrollableIface *) g; + + iface->jump_to = modest_hildon_pannable_area_scrollable_jump_to; + iface->scroll_to = modest_hildon_pannable_area_scrollable_scroll_to; + iface->add_with_viewport = modest_hildon_pannable_area_scrollable_add_with_viewport; + iface->get_vadjustment = modest_hildon_pannable_area_scrollable_get_vadjustment; + iface->get_hadjustment = modest_hildon_pannable_area_scrollable_get_hadjustment; + iface->get_vertical_policy = modest_hildon_pannable_area_scrollable_get_vertical_policy; + iface->set_vertical_policy = modest_hildon_pannable_area_scrollable_set_vertical_policy; + iface->get_horizontal_policy = modest_hildon_pannable_area_scrollable_get_horizontal_policy; + iface->set_horizontal_policy = modest_hildon_pannable_area_scrollable_set_horizontal_policy; +} + +static void +modest_hildon_pannable_area_scrollable_finalize (GObject *obj) +{ + G_OBJECT_CLASS(parent_class)->finalize (obj); +} + +static void +modest_hildon_pannable_area_scrollable_get_property (GObject *obj, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GtkPolicyType policy; + + switch (prop_id) { + case PROP_VERTICAL_POLICY: + g_object_get (obj, "vscrollbar-policy", &policy, NULL); + g_value_set_enum (value, policy); + break; + case PROP_HORIZONTAL_POLICY: + g_object_get (obj, "hscrollbar-policy", &policy, NULL); + g_value_set_enum (value, policy); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec); + break; + } +} + +static void +modest_hildon_pannable_area_scrollable_set_property (GObject *obj, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GtkPolicyType policy; + + switch (prop_id) { + case PROP_VERTICAL_POLICY: + policy = g_value_get_enum (value); + g_object_set (obj, "vscrollbar-policy", policy, NULL); + break; + case PROP_HORIZONTAL_POLICY: + policy = g_value_get_enum (value); + g_object_set (obj, "hscrollbar-policy", policy, NULL); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec); + break; + } +} + +static void +modest_hildon_pannable_area_scrollable_add_with_viewport (ModestScrollable *self, + GtkWidget *widget) +{ + MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_GET_CLASS (self)->add_with_viewport_func (self, widget); +} + +static void +modest_hildon_pannable_area_scrollable_add_with_viewport_default (ModestScrollable *self, + GtkWidget *widget) +{ + hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA (self), widget); +} + +static GtkAdjustment * +modest_hildon_pannable_area_scrollable_get_vadjustment (ModestScrollable *self) +{ + return MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_GET_CLASS (self)->get_vadjustment_func (self); +} + +static GtkAdjustment * +modest_hildon_pannable_area_scrollable_get_vadjustment_default (ModestScrollable *self) +{ + return hildon_pannable_area_get_vadjustment (HILDON_PANNABLE_AREA (self)); +} + +static GtkAdjustment * +modest_hildon_pannable_area_scrollable_get_hadjustment (ModestScrollable *self) +{ + return MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_GET_CLASS (self)->get_hadjustment_func (self); +} + +static GtkAdjustment * +modest_hildon_pannable_area_scrollable_get_hadjustment_default (ModestScrollable *self) +{ + return hildon_pannable_area_get_hadjustment (HILDON_PANNABLE_AREA (self)); +} + +static void +modest_hildon_pannable_area_scrollable_scroll_to (ModestScrollable *self, + const gint x, const gint y) +{ + MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_GET_CLASS (self)->scroll_to_func (self, x, y); +} + +static void +modest_hildon_pannable_area_scrollable_scroll_to_default (ModestScrollable *self, + const gint x, const gint y) +{ + hildon_pannable_area_scroll_to (HILDON_PANNABLE_AREA (self), x, y); +} + +static void +modest_hildon_pannable_area_scrollable_jump_to (ModestScrollable *self, + const gint x, const gint y) +{ + MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_GET_CLASS (self)->jump_to_func (self, x, y); +} + +static void +modest_hildon_pannable_area_scrollable_jump_to_default (ModestScrollable *self, + const gint x, const gint y) +{ + hildon_pannable_area_jump_to (HILDON_PANNABLE_AREA (self), x, y); +} + +static GtkPolicyType +modest_hildon_pannable_area_scrollable_get_vertical_policy (ModestScrollable *self) +{ + return MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_GET_CLASS (self)->get_vertical_policy_func (self); +} + +static GtkPolicyType +modest_hildon_pannable_area_scrollable_get_vertical_policy_default (ModestScrollable *self) +{ + GtkPolicyType policy; + + g_object_get (G_OBJECT (self), "vscrollbar-policy", &policy, NULL); + return policy; +} + +static GtkPolicyType +modest_hildon_pannable_area_scrollable_get_horizontal_policy (ModestScrollable *self) +{ + return MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_GET_CLASS (self)->get_horizontal_policy_func (self); +} + +static GtkPolicyType +modest_hildon_pannable_area_scrollable_get_horizontal_policy_default (ModestScrollable *self) +{ + GtkPolicyType policy; + + g_object_get (G_OBJECT (self), "hscrollbar-policy", &policy, NULL); + return policy; +} + +static void +modest_hildon_pannable_area_scrollable_set_horizontal_policy (ModestScrollable *self, + GtkPolicyType policy) +{ + MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_GET_CLASS (self)->set_horizontal_policy_func (self, policy); +} + +static void +modest_hildon_pannable_area_scrollable_set_horizontal_policy_default (ModestScrollable *self, + GtkPolicyType policy) +{ + g_object_set (G_OBJECT (self), "hscrollbar-policy", policy, NULL); +} + +static void +modest_hildon_pannable_area_scrollable_set_vertical_policy (ModestScrollable *self, + GtkPolicyType policy) +{ + MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_GET_CLASS (self)->set_vertical_policy_func (self, policy); +} + +static void +modest_hildon_pannable_area_scrollable_set_vertical_policy_default (ModestScrollable *self, + GtkPolicyType policy) +{ + g_object_set (G_OBJECT (self), "vscrollbar-policy", policy, NULL); +} diff --git a/src/hildon2/modest-hildon-pannable-area-scrollable.h b/src/hildon2/modest-hildon-pannable-area-scrollable.h new file mode 100644 index 0000000..01e252d --- /dev/null +++ b/src/hildon2/modest-hildon-pannable-area-scrollable.h @@ -0,0 +1,65 @@ +#ifndef __MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_H__ +#define __MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +#define MODEST_TYPE_HILDON_PANNABLE_AREA_SCROLLABLE \ + (modest_hildon_pannable_area_scrollable_get_type()) + +#define MODEST_HILDON_PANNABLE_AREA_SCROLLABLE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + MODEST_TYPE_HILDON_PANNABLE_AREAS_CROLLABLE, ModestHildonPannableAreaScrollable)) + +#define MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), \ + MODEST_TYPE_HILDON_PANNABLE_AREA_SCROLLABLE, ModestHildonPannableAreaScrollable)) + +#define MODEST_IS_HILDON_PANNABLE_AREA_SCROLLABLE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEST_TYPE_HILDON_PANNABLE_AREA_SCROLLABLE)) + +#define MODEST_IS_HILDON_PANNABLE_AREA_SCROLLABLE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEST_TYPE_HILDON_PANNABLE_AREA_SCROLLABLE)) + +#define MODEST_HILDON_PANNABLE_AREA_SCROLLABLE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + MODEST_TYPE_HILDON_PANNABLE_ARE_SCROLLABLE, ModestHildonPannableAreaScrollableClass)) + +typedef struct _ModestHildonPannableAreaScrollable ModestHildonPannableAreaScrollable; + +typedef struct _ModestHildonPannableAreaScrollableClass ModestHildonPannableAreaScrollableClass; + +struct _ModestHildonPannableAreaScrollableClass +{ + HildonPannableAreaClass parent_class; + + /* ModestScrollable interface */ + void (*add_with_viewport_func) (ModestScrollable *self, GtkWidget *widget); + GtkAdjustment * (*get_vadjustment_func) (ModestScrollable *self); + GtkAdjustment * (*get_hadjustment_func) (ModestScrollable *self); + void (*scroll_to_func) (ModestScrollable *self, const gint x, const gint y); + void (*jump_to_func) (ModestScrollable *self, const gint x, const gint y); + GtkPolicyType (*get_vertical_policy_func) (ModestScrollable *self); + GtkPolicyType (*get_horizontal_policy_func) (ModestScrollable *self); + void (*set_vertical_policy_func) (ModestScrollable *self, GtkPolicyType policy); + void (*set_horizontal_policy_func) (ModestScrollable *self, GtkPolicyType policy); +}; + +struct _ModestHildonPannableAreaScrollable +{ + HildonPannableArea parent; +}; + + +GType +modest_hildon_pannable_area_scrollable_get_type (void) G_GNUC_CONST; + +GtkWidget * +modest_hildon_pannable_area_scrollable_new (void); + +G_END_DECLS + +#endif /* __MODEST_WP_TEXT_VIEW_H__ */ diff --git a/src/widgets/modest-scrollable.c b/src/widgets/modest-scrollable.c index 693b17b..97f4289 100644 --- a/src/widgets/modest-scrollable.c +++ b/src/widgets/modest-scrollable.c @@ -121,7 +121,73 @@ modest_scrollable_jump_to (ModestScrollable *scrollable, } } +/** + * modest_scrollable_get_vertical_policy: + * @scrollable: a #ModestScrollable instance + * + * returns the vertical scroll policy + * + * Returns: a #GtkPolicyType + */ +GtkPolicyType +modest_scrollable_get_vertical_policy (ModestScrollable *scrollable) +{ + if (MODEST_SCROLLABLE_GET_IFACE (scrollable)->get_vertical_policy) { + return MODEST_SCROLLABLE_GET_IFACE (scrollable)->get_vertical_policy (scrollable); + } else { + return GTK_POLICY_NEVER; + } +} + +/** + * modest_scrollable_get_horizontal_policy: + * @scrollable: a #ModestScrollable instance + * + * returns the horizontal scroll policy + * + * Returns: a #GtkPolicyType + */ +GtkPolicyType +modest_scrollable_get_horizontal_policy (ModestScrollable *scrollable) +{ + if (MODEST_SCROLLABLE_GET_IFACE (scrollable)->get_horizontal_policy) { + return MODEST_SCROLLABLE_GET_IFACE (scrollable)->get_horizontal_policy (scrollable); + } else { + return GTK_POLICY_NEVER; + } +} +/** + * modest_scrollable_set_vertical_policy: + * @scrollable: a #ModestScrollable instance + * @policy: a #GtkPolicyType + * + * sets the vertical scroll policy + */ +void +modest_scrollable_set_vertical_policy (ModestScrollable *scrollable, + GtkPolicyType policy) +{ + if (MODEST_SCROLLABLE_GET_IFACE (scrollable)->set_vertical_policy) { + MODEST_SCROLLABLE_GET_IFACE (scrollable)->set_vertical_policy (scrollable, policy); + } +} + +/** + * modest_scrollable_set_horizontal_policy: + * @scrollable: a #ModestScrollable instance + * @policy: a #GtkPolicyType + * + * sets the horizontal scroll policy + */ +void +modest_scrollable_set_horizontal_policy (ModestScrollable *scrollable, + GtkPolicyType policy) +{ + if (MODEST_SCROLLABLE_GET_IFACE (scrollable)->set_horizontal_policy) { + MODEST_SCROLLABLE_GET_IFACE (scrollable)->set_horizontal_policy (scrollable, policy); + } +} static void modest_scrollable_base_init (gpointer g_iface) @@ -133,18 +199,18 @@ modest_scrollable_base_init (gpointer g_iface) initialized = TRUE; g_object_interface_install_property (g_iface, - g_param_spec_enum ("vscrollbar_policy", - "vscrollbar policy", - "Visual policy of the vertical scrollbar", + g_param_spec_enum ("vertical_policy", + "Vertical scroll policy", + "Visual policy of the vertical scroll", GTK_TYPE_POLICY_TYPE, GTK_POLICY_AUTOMATIC, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); g_object_interface_install_property (g_iface, - g_param_spec_enum ("hscrollbar_policy", - "hscrollbar policy", - "Visual policy of the horizontal scrollbar", + g_param_spec_enum ("horizontal_policy", + "Horizontal scroll policy", + "Visual policy of the horizontal scroll", GTK_TYPE_POLICY_TYPE, GTK_POLICY_AUTOMATIC, G_PARAM_READWRITE | diff --git a/src/widgets/modest-scrollable.h b/src/widgets/modest-scrollable.h index e388038..aa95c44 100644 --- a/src/widgets/modest-scrollable.h +++ b/src/widgets/modest-scrollable.h @@ -53,10 +53,13 @@ struct _ModestScrollableIface GtkAdjustment * (*get_hadjustment) (ModestScrollable *self); void (*scroll_to) (ModestScrollable *self, const gint x, const gint y); void (*jump_to) (ModestScrollable *self, const gint x, const gint y); + GtkPolicyType (*get_vertical_policy) (ModestScrollable *self); + GtkPolicyType (*get_horizontal_policy) (ModestScrollable *self); + void (*set_vertical_policy) (ModestScrollable *self, GtkPolicyType policy); + void (*set_horizontal_policy) (ModestScrollable *self, GtkPolicyType policy); /* properties */ /* hscrollbar-policy; */ - /* initial-hint; */ /* vscrollbar-policy; */ }; @@ -67,7 +70,10 @@ GtkAdjustment * modest_scrollable_get_vadjustment (ModestScrollable *self); GtkAdjustment * modest_scrollable_get_hadjustment (ModestScrollable *self); void modest_scrollable_scroll_to (ModestScrollable *self, const gint x, const gint y); void modest_scrollable_jump_to (ModestScrollable *self, const gint x, const gint y); - +GtkPolicyType modest_scrollable_get_vertical_policy (ModestScrollable *self); +GtkPolicyType modest_scrollable_get_horizontal_policy (ModestScrollable *self); +void modest_scrollable_set_vertical_policy (ModestScrollable *self, GtkPolicyType policy); +void modest_scrollable_set_horizontal_policy (ModestScrollable *self, GtkPolicyType policy); G_END_DECLS -- 1.7.9.5