From 1574afef9e64bd598fc386d754ef8d46795cdbb0 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Fri, 4 May 2012 21:29:20 +0200 Subject: use GtkBuilder for UI, more sophisticated UI default UI file is installed (/usr/share/experiment-player/default.ui) but the actually used file may be changed via --with-default-ui=... (useful for windows where it should read --with-default-ui=default.ui) --- src/Makefile.am | 4 +- src/default.ui | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main.c | 33 +++++++++--- 3 files changed, 187 insertions(+), 9 deletions(-) create mode 100644 src/default.ui (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index f5c53cc..6fa4307 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -4,7 +4,7 @@ bin_PROGRAMS = experiment-player experiment_player_SOURCES = main.c experiment_player_CFLAGS = -experiment_player_CPPFLAGS = +experiment_player_CPPFLAGS = -DDEFAULT_UI='"@DEFAULT_UI@"' experiment_player_LDFLAGS = experiment_player_LDADD = @@ -16,3 +16,5 @@ experiment_player_LDADD += @LIBGTK_LIBS@ experiment_player_CFLAGS += @GTKAPP_CFLAGS@ experiment_player_LDFLAGS += @GTKAPP_LDFLAGS@ + +dist_player_data_DATA = default.ui diff --git a/src/default.ui b/src/default.ui new file mode 100644 index 0000000..6854bcd --- /dev/null +++ b/src/default.ui @@ -0,0 +1,159 @@ + + + + + + + Experiment Player + 400 + 300 + + + True + + + True + + + True + _File + True + + + True + + + Open _Movie... + True + True + image1 + False + + + + + Open _Transcript... + True + True + image2 + False + + + + + True + + + + + gtk-quit + True + True + True + + + + + + + + + True + _Help + True + + + True + + + gtk-about + True + True + True + + + + + + + + + False + 0 + + + + + True + + + 1 + + + + + True + False + True + False + + + False + False + 2 + + + + + True + 6 + start + + + gtk-media-play + True + True + True + True + + + + False + False + 0 + + + + + gtk-media-stop + True + True + True + True + + + + False + False + 1 + + + + + False + False + 3 + + + + + + + True + gtk-open + + + True + gtk-open + + diff --git a/src/main.c b/src/main.c index df2f9ef..e57d175 100644 --- a/src/main.c +++ b/src/main.c @@ -9,9 +9,29 @@ #include #include +/* + * GtkBuilder signal callbacks + */ + +void +playpause_button_clicked_cb(GtkWidget *widget, + gpointer data __attribute__((unused))) +{ + gtk_vlc_player_toggle(GTK_VLC_PLAYER(widget)); +} + +void +stop_button_clicked_cb(GtkWidget *widget, + gpointer data __attribute__((unused))) +{ + gtk_vlc_player_stop(GTK_VLC_PLAYER(widget)); +} + + int main(int argc, char *argv[]) { + GtkBuilder *builder; GtkWidget *window, *player; /* init threads */ @@ -23,20 +43,17 @@ main(int argc, char *argv[]) gtk_init(&argc, &argv); -#if 0 - GtkBuilder *builder = gtk_builder_new(); + builder = gtk_builder_new(); - gtk_builder_add_from_file(builder, file, NULL); + gtk_builder_add_from_file(builder, DEFAULT_UI, NULL); gtk_builder_connect_signals(builder, NULL); -#endif - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + window = GTK_WIDGET(gtk_builder_get_object(builder, "player_window")); + player = GTK_WIDGET(gtk_builder_get_object(builder, "player_widget")); - player = gtk_vlc_player_new(); - gtk_container_add(GTK_CONTAINER(window), player); + g_object_unref(builder); gtk_vlc_player_load(GTK_VLC_PLAYER(player), argv[1]); - gtk_vlc_player_play(GTK_VLC_PLAYER(player)); gtk_widget_show_all(window); -- cgit v1.2.3