static void scroll_frame_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ScrollFrame *frame = SCROLL_FRAME (object); switch (prop_id) { case PROP_HADJUST: scrollable_set_adjustments (TIDY_SCROLLABLE (object), g_value_get_object (value), frame->priv->vadj); break; case PROP_VADJUST: scrollable_set_adjustments (TIDY_SCROLLABLE (object), frame->priv->hadj, g_value_get_object (value)); break; default: break; } }
static void child_vadjustment_notify_cb (GObject *gobject, GParamSpec *arg1, gpointer user_data) { TidyAdjustment *vadjust; ClutterActor *actor = CLUTTER_ACTOR (gobject); TidyScrollViewPrivate *priv = TIDY_SCROLL_VIEW (user_data)->priv; vadjust = tidy_scroll_bar_get_adjustment (TIDY_SCROLL_BAR(priv->vscroll)); if (vadjust) g_signal_handlers_disconnect_by_func (vadjust, child_adjustment_changed_cb, priv->vscroll); tidy_scrollable_get_adjustments (TIDY_SCROLLABLE(actor), NULL, &vadjust); if (vadjust) { tidy_scroll_bar_set_adjustment (TIDY_SCROLL_BAR(priv->vscroll), vadjust); g_signal_connect (vadjust, "changed", G_CALLBACK ( child_adjustment_changed_cb), priv->vscroll); child_adjustment_changed_cb (vadjust, priv->vscroll); } }
static void scroll_frame_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ScrollFrame *frame = SCROLL_FRAME (object); TidyAdjustment *adj; switch (prop_id) { case PROP_HADJUST: scrollable_get_adjustments (TIDY_SCROLLABLE (object), &adj, NULL); g_value_set_object (value, adj); break; case PROP_VADJUST: scrollable_get_adjustments (TIDY_SCROLLABLE (object), NULL, &adj); g_value_set_object (value, adj); break; default: break; } }