static void
setup_dialog (GladeXML *dialog, GConfChangeSet *changeset)
{
	GObject *peditor;
	GtkSizeGroup *combobox_size_group;
	GtkSizeGroup *label_size_group;

	gconf_client_add_dir (gconf_client, GST_GCONF_DIR,
			      GCONF_CLIENT_PRELOAD_RECURSIVE, NULL);

	combobox_size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
	label_size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);

	gtk_size_group_add_widget (label_size_group, WID ("sounds_playback_label"));
	gtk_size_group_add_widget (label_size_group, WID ("music_playback_label"));
	gtk_size_group_add_widget (label_size_group, WID ("chat_audio_playback_label"));
	gtk_size_group_add_widget (label_size_group, WID ("chat_audio_capture_label"));
	gtk_size_group_add_widget (label_size_group, WID ("mixer_device_label"));
	gtk_size_group_add_widget (combobox_size_group, WID ("sounds_playback_device"));
	gtk_size_group_add_widget (combobox_size_group, WID ("music_playback_device"));
	gtk_size_group_add_widget (combobox_size_group, WID ("chat_audio_playback_device"));
	gtk_size_group_add_widget (combobox_size_group, WID ("chat_audio_capture_device"));

	setup_device_chooser ("", AUDIO_PLAYBACK, WID ("sounds_playback_device"),
			      WID ("sounds_playback_test"),
			      AUDIO_TEST_SOURCE AUDIO_TEST_IN_BETWEEN "gconfaudiosink");
	setup_device_chooser ("music", AUDIO_PLAYBACK, WID ("music_playback_device"),
			      WID ("music_playback_test"),
			      AUDIO_TEST_SOURCE AUDIO_TEST_IN_BETWEEN "gconfaudiosink profile=music");
	setup_device_chooser ("chat", AUDIO_PLAYBACK, WID ("chat_audio_playback_device"),
			      WID ("chat_audio_playback_test"),
			      AUDIO_TEST_SOURCE AUDIO_TEST_IN_BETWEEN "gconfaudiosink profile=chat");
	setup_device_chooser ("", AUDIO_CAPTURE, WID ("chat_audio_capture_device"),
			      WID ("chat_audio_capture_test"),
			      "gconfaudiosrc" AUDIO_TEST_IN_BETWEEN "gconfaudiosink profile=chat");

#ifdef HAVE_ESD
	peditor = gconf_peditor_new_boolean (NULL, ENABLE_ESD_KEY, WID ("enable_toggle"), NULL);
	gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("events_toggle"));
	gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("events_vbox"));
#else
	gtk_widget_hide (WID ("enable_toggle"));
#endif
	gconf_peditor_new_boolean (NULL, EVENT_SOUNDS_KEY, WID ("events_toggle"), NULL);

	gconf_peditor_new_boolean (NULL, AUDIO_BELL_KEY, WID ("bell_audible_toggle"), NULL);

	peditor = gconf_peditor_new_boolean (NULL, VISUAL_BELL_KEY, WID ("bell_visual_toggle"), NULL);
	gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("bell_flash_vbox"));

	/* peditor not so convenient for the radiobuttons */
	gconf_peditor_new_select_radio (NULL,
					VISUAL_BELL_TYPE_KEY,
					gtk_radio_button_get_group (GTK_RADIO_BUTTON (WID ("bell_flash_window_radio"))),
					"conv-to-widget-cb", bell_flash_to_widget,
					"conv-from-widget-cb", bell_flash_from_widget,
					NULL);

	setup_default_mixer (dialog);
}
Ejemplo n.º 2
0
static void
setup_dialog (GladeXML *dialog, GConfChangeSet *changeset)
{
	GObject *peditor;
	gint corner;
	
	for (corner = REGION_FIRST_CORNER; REGION_IS_CORNER (corner); 
			++corner) {
		GtkWidget *toggle = WID (corners[corner].enabled_toggle_id);
		GtkWidget *menu = WID (corners[corner].action_menu_id);
		peditor = gconf_peditor_new_boolean (NULL, 
				(gchar *) corners[corner].enabled_key,
				toggle, NULL);
		g_signal_connect (GTK_OBJECT (toggle), "toggled", 
				G_CALLBACK (update_widgets_sensitive_cb),
				dialog);
		gconf_peditor_new_select_menu (NULL,
				(gchar *) corners[corner].action_key, menu, 
				"conv-to-widget-cb", action_to_widget,
				"conv-from-widget-cb", action_from_widget,
				NULL);
		g_signal_connect (GTK_OBJECT (menu), "changed", 
			G_CALLBACK (corner_action_changed_cb), 
			GINT_TO_POINTER (corner));
	}
	gconf_peditor_new_select_radio (NULL,
			CORNER_FLIP_KEY, gtk_radio_button_get_group (
				GTK_RADIO_BUTTON (WID ("corners_flip"))),
			"conv-to-widget-cb", corner_flip_to_widget,
			"conv-from-widget-cb", corner_flip_from_widget,
			NULL);
	g_signal_connect (GTK_OBJECT (WID ("corners_flip")), "toggled", 
			G_CALLBACK (update_widgets_sensitive_cb), dialog);
	g_signal_connect (GTK_OBJECT (WID ("edge_flip_enabled")), "toggled", 
			G_CALLBACK (update_widgets_sensitive_cb), dialog);
	/* call callback to set delay slider sensitive state */
	update_widgets_sensitive_cb (NULL, dialog);
	gconf_peditor_new_numeric_range (NULL, CORNER_DELAY_KEY, 
			WID ("corner_delay_scale"), NULL);

	peditor = gconf_peditor_new_boolean (NULL, ENABLE_EDGE_FLIP_KEY, 
			WID ("edge_flip_enabled"), NULL);
	gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor),
			WID ("edge_delay_scale"));
	gconf_peditor_new_numeric_range (NULL, EDGE_DELAY_KEY, 
			WID ("edge_delay_scale"), NULL);
	gconf_peditor_new_boolean (NULL, EDGE_WRAP_KEY, 
			WID ("edge_wrap_enabled"), NULL);
}