static gboolean glide_image_button_press (ClutterActor *actor, ClutterButtonEvent *event) { GlideStageManager *m; GlideActor *ga = GLIDE_ACTOR (actor); GlideImage *image = GLIDE_IMAGE (actor); gfloat ax, ay; m = glide_actor_get_stage_manager (ga); glide_stage_manager_set_selection (m, ga); clutter_actor_get_position (actor, &ax, &ay); image->priv->drag_center_x = event->x - ax; image->priv->drag_center_y = event->y - ay; image->priv->dragging = TRUE; image->priv->motion_since_press = FALSE; clutter_grab_pointer (actor); glide_undo_manager_start_actor_action (glide_actor_get_undo_manager (GLIDE_ACTOR (actor)), GLIDE_ACTOR (actor), "Move object"); return TRUE; }
static void glide_slide_button_clicked (GlideSlideButton *button, gpointer user_data) { GlideStageManager *m = glide_actor_get_stage_manager (GLIDE_ACTOR (button->priv->slide)); glide_stage_manager_set_current_slide (m, glide_slide_get_index (button->priv->slide)); }
/** * glide_slide_button_set_slide: * @button: A #GlideSlideButton * @slide: The #GlideSlide to set for @button * * Sets the slide displayed for @button to @slide. * */ void glide_slide_button_set_slide (GlideSlideButton *button, GlideSlide *slide) { g_return_if_fail (GLIDE_IS_SLIDE_BUTTON (button)); g_return_if_fail (GLIDE_IS_SLIDE (slide)); button->priv->manager = (GlideUndoManager *)g_object_ref (G_OBJECT (glide_stage_manager_get_undo_manager (glide_actor_get_stage_manager (GLIDE_ACTOR (slide))))); button->priv->slide = slide; g_object_notify (G_OBJECT (button), "slide"); button->priv->position_changed_id = g_signal_connect (button->priv->manager, "position-changed", G_CALLBACK (glide_slide_button_undo_position_changed), button); }
static gboolean glide_undo_delete_actor_redo_callback (GlideUndoManager *undo_manager, GlideUndoInfo *info) { GlideUndoDeleteActorData *data = (GlideUndoDeleteActorData *)info->user_data; GlideStageManager *manager; manager = glide_actor_get_stage_manager (GLIDE_ACTOR (data->actor)); if (glide_stage_manager_get_selection (manager) == (GlideActor *)data->actor) glide_stage_manager_set_selection (manager, NULL); clutter_container_remove_actor (CLUTTER_CONTAINER (data->parent), data->actor); return TRUE; }