/* * take_again_button_clicked_cb: * @button: the #GtkButton that was clicked * @widget: the #CheeseAvatarWidget * * Switch the @widget back to the camera view, ready to take another photo. */ static void take_again_button_clicked_cb (GtkButton *button, CheeseAvatarWidget *widget) { CheeseAvatarWidgetPrivate *priv; priv = cheese_avatar_widget_get_instance_private (widget); gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook), WIDGET_PAGE); um_crop_area_set_picture (UM_CROP_AREA (priv->image), NULL); g_object_notify_by_pspec (G_OBJECT (widget), properties[PROP_PIXBUF]); }
/* * cheese_widget_photo_taken_cb: * @camera: a #CheeseCamera * @pixbuf: the #GdkPixbuf of the image that was just taken * @choose: a #CheeseAvatarWidget * * Show the image that was just taken from the camera (as @pixbuf) in the * cropping tool. */ static void cheese_widget_photo_taken_cb (CheeseCamera *camera, GdkPixbuf *pixbuf, CheeseAvatarWidget *widget) { CheeseAvatarWidgetPrivate *priv; GtkAllocation allocation; priv = cheese_avatar_widget_get_instance_private (widget); gtk_widget_get_allocation (priv->camera, &allocation); gtk_widget_set_size_request (priv->image, allocation.width, allocation.height); um_crop_area_set_picture (UM_CROP_AREA (priv->image), pixbuf); gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook), IMAGE_PAGE); gtk_widget_set_sensitive (priv->take_button, TRUE); g_object_notify_by_pspec (G_OBJECT (widget), properties[PROP_PIXBUF]); }
static void um_photo_dialog_crop (UmPhotoDialog *um, GdkPixbuf *pixbuf) { GtkWidget *dialog; GtkWidget *frame; dialog = gtk_dialog_new_with_buttons ("", GTK_WINDOW (gtk_widget_get_toplevel (um->popup_button)), 0, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, _("Select"), GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gtk_window_set_icon_name (GTK_WINDOW (dialog), "system-users"); g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (crop_dialog_response), um); /* Content */ um->crop_area = um_crop_area_new (); um_crop_area_set_min_size (UM_CROP_AREA (um->crop_area), 48, 48); um_crop_area_set_constrain_aspect (UM_CROP_AREA (um->crop_area), TRUE); um_crop_area_set_picture (UM_CROP_AREA (um->crop_area), pixbuf); frame = gtk_frame_new (NULL); gtk_container_add (GTK_CONTAINER (frame), um->crop_area); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), frame, TRUE, TRUE, 8); gtk_window_set_default_size (GTK_WINDOW (dialog), 400, 300); gtk_widget_show_all (dialog); }