/* * take_button_clicked_cb: * @button: the #GtkButton that was clicked * @widget: the #CheeseAvatarWidget * * Take a photo with the #CheeseCamera of @widget. When the photo has been * taken, call cheese_widget_photo_taken_cb(). */ static void take_button_clicked_cb (GtkButton *button, CheeseAvatarWidget *widget) { CheeseAvatarWidgetPrivate *priv; GObject *camera; priv = cheese_avatar_widget_get_instance_private (widget); camera = cheese_widget_get_camera (CHEESE_WIDGET (priv->camera)); if (priv->photo_taken_id == 0) { gtk_widget_set_sensitive (priv->take_button, FALSE); priv->photo_taken_id = g_signal_connect (G_OBJECT (camera), "photo-taken", G_CALLBACK (cheese_widget_photo_taken_cb), widget); } if (cheese_camera_take_photo_pixbuf (CHEESE_CAMERA (camera))) { cheese_flash_fire (CHEESE_FLASH (priv->flash)); ca_gtk_play_for_widget (GTK_WIDGET (widget), 0, CA_PROP_EVENT_ID, "camera-shutter", CA_PROP_MEDIA_ROLE, "event", CA_PROP_EVENT_DESCRIPTION, _("Shutter sound"), NULL); } else { g_assert_not_reached (); } }
static void play_button_clicked(GtkWidget *widget, gpointer data) { ca_gtk_play_for_widget (widget, 0, CA_PROP_EVENT_ID, "camera-shutter", CA_PROP_MEDIA_ROLE, "event", CA_PROP_EVENT_DESCRIPTION, "Shutter sound", NULL); }
static void play_sound (SoundID id) { const gchar *name = NULL; if (!p.do_sound) return; switch (id) { case SOUND_DROP: name = "slide"; break; case SOUND_I_WIN: name = "reverse"; break; case SOUND_YOU_WIN: name = "bonus"; break; case SOUND_PLAYER_WIN: name = "bonus"; break; case SOUND_DRAWN_GAME: name = "reverse"; break; case SOUND_COLUMN_FULL: name = "bad"; break; } if (name) { gchar *filename, *path; filename = g_strdup_printf ("%s.ogg", name); path = g_build_filename (SOUND_DIRECTORY, filename, NULL); g_free (filename); ca_gtk_play_for_widget (drawarea, 0, CA_PROP_MEDIA_NAME, name, CA_PROP_MEDIA_FILENAME, path, NULL); g_free (path); } }
static void overshot (GtkScrolledWindow *sw, GtkPositionType pos, GtkWidget *widget) { GtkWidget *box, *row, *label, *swatch; GdkRGBA rgba; const gchar *color; gchar *text; GtkWidget *silver; GtkWidget *gold; silver = GTK_WIDGET (g_object_get_data (G_OBJECT (widget), "Silver")); gold = GTK_WIDGET (g_object_get_data (G_OBJECT (widget), "Gold")); if (pos == GTK_POS_TOP) { if (silver) { gtk_container_remove (GTK_CONTAINER (widget), silver); g_object_set_data (G_OBJECT (widget), "Silver", NULL); } if (gold) { gtk_container_remove (GTK_CONTAINER (widget), gold); g_object_set_data (G_OBJECT (widget), "Gold", NULL); } #ifdef HAVE_LIBCANBERRA if (silver || gold) ca_gtk_play_for_widget (widget, 0, "event.id", "message", NULL); #endif return; } if (gold) return; else if (silver) color = "Gold"; else color = "Silver"; row = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 20); text = g_strconcat ("<b>", color, "</b>", NULL); label = gtk_label_new (text); g_free (text); g_object_set (label, "use-markup", TRUE, "halign", GTK_ALIGN_START, "valign", GTK_ALIGN_CENTER, "margin", 6, "xalign", 0.0, NULL); gtk_box_pack_start (GTK_BOX (row), label, TRUE, TRUE, 0); gdk_rgba_parse (&rgba, color); swatch = g_object_new (g_type_from_name ("GtkColorSwatch"), "rgba", &rgba, "selectable", FALSE, "halign", GTK_ALIGN_END, "valign", GTK_ALIGN_CENTER, "margin", 6, "height-request", 24, NULL); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_add (GTK_CONTAINER (box), swatch); gtk_box_pack_start (GTK_BOX (row), box, FALSE, FALSE, 0); gtk_widget_show_all (row); gtk_list_box_insert (GTK_LIST_BOX (widget), row, -1); row = gtk_widget_get_parent (row); gtk_list_box_row_set_activatable (GTK_LIST_BOX_ROW (row), FALSE); g_object_set_data (G_OBJECT (widget), color, row); #ifdef HAVE_LIBCANBERRA ca_gtk_play_for_widget (widget, 0, "event.id", "complete", NULL); #endif }
static void play_preview_for_path (GvcSoundThemeChooser *chooser, GtkTreePath *path) { GtkTreeModel *model; GtkTreeIter iter; GtkTreeIter theme_iter; gchar *id = NULL; gchar *parent_theme = NULL; model = gtk_tree_view_get_model (GTK_TREE_VIEW (chooser->priv->treeview)); if (gtk_tree_model_get_iter (model, &iter, path) == FALSE) return; gtk_tree_model_get (model, &iter, ALERT_IDENTIFIER_COL, &id, -1); if (id == NULL) return; if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (chooser->priv->combo_box), &theme_iter)) { GtkTreeModel *theme_model; gchar *theme_id = NULL; gchar *parent_id = NULL; theme_model = gtk_combo_box_get_model (GTK_COMBO_BOX (chooser->priv->combo_box)); gtk_tree_model_get (theme_model, &theme_iter, THEME_IDENTIFIER_COL, &theme_id, THEME_PARENT_ID_COL, &parent_id, -1); if (theme_id && strcmp (theme_id, CUSTOM_THEME_NAME) == 0) parent_theme = g_strdup (parent_id); g_free (theme_id); g_free (parent_id); } /* special case: for the default item on custom themes * play the alert for the parent theme */ if (strcmp (id, DEFAULT_ALERT_ID) == 0) { if (parent_theme != NULL) { ca_gtk_play_for_widget (GTK_WIDGET (chooser), 0, CA_PROP_APPLICATION_NAME, _("Sound Preferences"), CA_PROP_EVENT_ID, "bell-window-system", CA_PROP_CANBERRA_XDG_THEME_NAME, parent_theme, CA_PROP_EVENT_DESCRIPTION, _("Testing event sound"), CA_PROP_CANBERRA_CACHE_CONTROL, "never", CA_PROP_APPLICATION_ID, "org.mate.VolumeControl", #ifdef CA_PROP_CANBERRA_ENABLE CA_PROP_CANBERRA_ENABLE, "1", #endif NULL); } else { ca_gtk_play_for_widget (GTK_WIDGET (chooser), 0, CA_PROP_APPLICATION_NAME, _("Sound Preferences"), CA_PROP_EVENT_ID, "bell-window-system", CA_PROP_EVENT_DESCRIPTION, _("Testing event sound"), CA_PROP_CANBERRA_CACHE_CONTROL, "never", CA_PROP_APPLICATION_ID, "org.mate.VolumeControl", #ifdef CA_PROP_CANBERRA_ENABLE CA_PROP_CANBERRA_ENABLE, "1", #endif NULL); } } else { ca_gtk_play_for_widget (GTK_WIDGET (chooser), 0, CA_PROP_APPLICATION_NAME, _("Sound Preferences"), CA_PROP_MEDIA_FILENAME, id, CA_PROP_EVENT_DESCRIPTION, _("Testing event sound"), CA_PROP_CANBERRA_CACHE_CONTROL, "never", CA_PROP_APPLICATION_ID, "org.mate.VolumeControl", #ifdef CA_PROP_CANBERRA_ENABLE CA_PROP_CANBERRA_ENABLE, "1", #endif NULL); } g_free (parent_theme); g_free (id); }