static void finish_prepare_screenshot (GdkRectangle *rectangle) { GdkRectangle rect; GdkWindow *window; window = find_current_window (); screenshot = screenshot_get_pixbuf (window, rectangle); if (screenshot_config->take_window_shot) { switch (screenshot_config->border_effect[0]) { case 's': /* shadow */ screenshot_add_shadow (&screenshot); break; case 'b': /* border */ screenshot_add_border (&screenshot); break; case 'n': /* none */ default: break; } } /* release now the lock, it was acquired when we were finding the window */ screenshot_release_lock (); if (screenshot == NULL) { screenshot_show_error_dialog (NULL, _("Unable to take a screenshot of the current window"), NULL); exit (1); } flash = cheese_flash_new (); if (rectangle != NULL) rect = *rectangle; else screenshot_get_window_rect (window, &rect); cheese_flash_fire (flash, &rect); play_sound_effect (window); g_object_unref (flash); if (screenshot_config->copy_to_clipboard) { screenshot_save_to_clipboard (); gtk_main_quit (); return; } screenshot_ensure_icc_profile (window); screenshot_build_filename_async (screenshot_config->last_save_dir, build_filename_ready_cb, screenshot); }
static void cheese_avatar_widget_init (CheeseAvatarWidget *widget) { CheeseAvatarWidgetPrivate *priv; GtkWidget *frame; GtkWidget *image; priv = cheese_avatar_widget_get_instance_private (widget); priv->flash = cheese_flash_new (GTK_WIDGET (widget)); priv->notebook = gtk_notebook_new (); g_object_set(G_OBJECT (priv->notebook), "margin", 12, NULL); gtk_notebook_set_show_border (GTK_NOTEBOOK (priv->notebook), FALSE); gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), FALSE); gtk_container_add (GTK_CONTAINER (widget), priv->notebook); /* Camera tab */ priv->camera = cheese_widget_new (); g_signal_connect (G_OBJECT (priv->camera), "notify::state", G_CALLBACK (state_change_cb), widget); image = gtk_image_new_from_icon_name ("camera-photo-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR); priv->take_button = gtk_button_new (); gtk_button_set_image (GTK_BUTTON (priv->take_button), image); g_signal_connect (G_OBJECT (priv->take_button), "clicked", G_CALLBACK (take_button_clicked_cb), widget); gtk_widget_set_sensitive (priv->take_button, FALSE); gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook), create_page (priv->camera, priv->take_button), gtk_label_new ("webcam")); /* Image tab */ priv->image = um_crop_area_new (); frame = gtk_frame_new (NULL); gtk_container_add (GTK_CONTAINER (frame), priv->image); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN); priv->take_again_button = gtk_button_new_with_mnemonic (_("_Take Another Picture")); g_signal_connect (G_OBJECT (priv->take_again_button), "clicked", G_CALLBACK (take_again_button_clicked_cb), widget); gtk_widget_set_sensitive (priv->take_again_button, FALSE); gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook), create_page (frame, priv->take_again_button), gtk_label_new ("image")); priv->sizegroup = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); gtk_size_group_add_widget (priv->sizegroup, priv->take_button); gtk_size_group_add_widget (priv->sizegroup, priv->take_again_button); gtk_widget_show_all (GTK_WIDGET (widget)); }
static void screenshot_fallback_fire_flash (GdkWindow *window, GdkRectangle *rectangle) { GdkRectangle rect; CheeseFlash *flash = NULL; if (rectangle != NULL) rect = *rectangle; else screenshot_fallback_get_window_rect_coords (window, screenshot_config->include_border, NULL, &rect); flash = cheese_flash_new (); cheese_flash_fire (flash, &rect); g_object_unref (flash); }