static void child_vadjustment_notify_cb (GObject *gobject, GParamSpec *arg1, gpointer user_data) { MxAdjustment *vadjust; ClutterActor *actor = CLUTTER_ACTOR (gobject); MxScrollViewPrivate *priv = MX_SCROLL_VIEW (user_data)->priv; vadjust = mx_scroll_bar_get_adjustment (MX_SCROLL_BAR(priv->vscroll)); if (vadjust) g_signal_handlers_disconnect_by_func (vadjust, child_adjustment_changed_cb, priv->vscroll); mx_scrollable_get_adjustments (MX_SCROLLABLE(actor), NULL, &vadjust); if (vadjust) { mx_scroll_bar_set_adjustment (MX_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 mx_scroll_bar_dispose (GObject *gobject) { MxScrollBar *bar = MX_SCROLL_BAR (gobject); MxScrollBarPrivate *priv = bar->priv; if (priv->adjustment) mx_scroll_bar_set_adjustment (bar, NULL); if (priv->handle) { g_signal_handlers_disconnect_by_func (priv->handle, G_CALLBACK (handle_button_press_event_cb), bar); clutter_actor_unparent (priv->handle); priv->handle = NULL; } if (priv->bw_stepper) { clutter_actor_unparent (priv->bw_stepper); priv->bw_stepper = NULL; } if (priv->fw_stepper) { clutter_actor_unparent (priv->fw_stepper); priv->fw_stepper = NULL; } if (priv->trough) { clutter_actor_unparent (priv->trough); priv->trough = NULL; } G_OBJECT_CLASS (mx_scroll_bar_parent_class)->dispose (gobject); }
static void mx_scroll_bar_set_property (GObject *gobject, guint prop_id, const GValue *value, GParamSpec *pspec) { MxScrollBar *bar = MX_SCROLL_BAR (gobject); switch (prop_id) { case PROP_ADJUSTMENT: mx_scroll_bar_set_adjustment (bar, g_value_get_object (value)); break; case PROP_ORIENTATION: mx_scroll_bar_set_orientation (bar, g_value_get_enum (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); break; } }