#include "orxonox_gui.h" void audio_check_button_change(GtkWidget *widget, int* data) { *data = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (widget)); orxonox_flags_update (); if (verbose >=1) printf ("%s changed to %i.\n", gtk_button_get_label(GTK_BUTTON(widget)), *data); return; } void audio_slider_change(GtkWidget *widget, int* data) { *data = gtk_range_get_value ( GTK_RANGE (widget)); orxonox_flags_update (); if (verbose >=1) printf ("Changed slider to %i.\n", *data); return; } GtkWidget *orxonox_gui_audio_frame (struct settings *orxonox_settings) { GtkWidget *frame; GtkWidget *enable_sound_button; GtkWidget *label; GtkWidget *music_volume_slider; GtkWidget *effects_volume_slider; frame = gtk_frame_new ( "Audio-Options:"); gtk_container_set_border_width (GTK_CONTAINER (frame), 5); { GtkWidget *orxonox_gui_audio_vbox; orxonox_gui_audio_vbox = gtk_vbox_new (FALSE, 0); { enable_sound_button = gtk_check_button_new_with_label ("Enable Sound"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enable_sound_button), orxonox_settings->audio_enable_sound); g_signal_connect(GTK_TOGGLE_BUTTON(enable_sound_button), "clicked", G_CALLBACK(audio_check_button_change), &(orxonox_settings->audio_enable_sound)); gtk_box_pack_start(GTK_BOX (orxonox_gui_audio_vbox), enable_sound_button, TRUE, TRUE, 0); label=gtk_label_new ("Music Volume"); gtk_box_pack_start (GTK_BOX(orxonox_gui_audio_vbox), label, TRUE, TRUE, 0); music_volume_slider = gtk_hscale_new_with_range (0,100,5); gtk_range_set_value ( GTK_RANGE (music_volume_slider), orxonox_settings->audio_music_volume); gtk_range_set_update_policy ( GTK_RANGE (music_volume_slider), GTK_UPDATE_DISCONTINUOUS); g_signal_connect (GTK_RANGE (music_volume_slider), "value_changed", G_CALLBACK (audio_slider_change), &(orxonox_settings->audio_music_volume) ); gtk_box_pack_start ( GTK_BOX (orxonox_gui_audio_vbox), music_volume_slider, TRUE, TRUE, 0); label=gtk_label_new ("Effects Volume"); gtk_box_pack_start (GTK_BOX(orxonox_gui_audio_vbox), label, TRUE, TRUE, 0); effects_volume_slider = gtk_hscale_new_with_range (0,100,5); gtk_range_set_value ( GTK_RANGE (effects_volume_slider), orxonox_settings->audio_effects_volume); gtk_range_set_update_policy ( GTK_RANGE (effects_volume_slider), GTK_UPDATE_DISCONTINUOUS); g_signal_connect (GTK_RANGE (effects_volume_slider), "value_changed", G_CALLBACK (audio_slider_change), &(orxonox_settings->audio_effects_volume) ); gtk_box_pack_start ( GTK_BOX (orxonox_gui_audio_vbox), effects_volume_slider, TRUE, TRUE, 0); } gtk_container_add(GTK_CONTAINER(frame), orxonox_gui_audio_vbox); } return frame; }