#include #include #include #include "footer.h" static GtkWidget *controls = NULL; static GtkWidget *progress = NULL; static GtkWidget *make_buttons() { GtkWidget *buttons = gtk_hbox_new(FALSE, 0); gtk_widget_show(buttons); box_pack_end(buttons, make_volume_button(), FALSE, FALSE, 0); box_pack_end(buttons, make_stop_button(), FALSE, FALSE, 0); box_pack_end(buttons, make_pause_button(), FALSE, FALSE, 0); box_pack_end(buttons, make_play_button(), FALSE, FALSE, 0); box_pack_end(buttons, make_forward_button(), FALSE, FALSE, 0); box_pack_end(buttons, make_rewind_button(), FALSE, FALSE, 0); box_pack_end(buttons, make_open_button(), FALSE, FALSE, 0); return buttons; } static gboolean update_progress(gpointer data) { gtk_range_set_value(GTK_RANGE(progress), libsaria::audio::get_progress()); return TRUE; } static GtkWidget *make_progress() { progress = gtk_hscale_new_with_range(0, 101, 1); gtk_scale_set_draw_value(GTK_SCALE(progress), FALSE); gtk_widget_show(progress); gtk_timeout_add(500, update_progress, NULL); return progress; } static void make_controls() { controls = gtk_vbox_new(FALSE, 0); gtk_widget_show(controls); box_pack_start(controls, make_buttons(), FALSE, FALSE, 0); box_pack_start(controls, make_progress(), FALSE, FALSE, 0); } GtkWidget *get_controls() { if (controls == NULL) make_controls(); return controls; }