diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-05-07 02:11:22 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-05-07 02:11:22 +0200 |
commit | 65da91482b50e158712cbb9e39f3e44068d9274a (patch) | |
tree | 4780328ada4d4c3ec2afbfdb1402f5606a22e801 | |
parent | f72c61e0a3afc364ab6f60e42f2d7e0ff5574a3c (diff) | |
download | gtk-vlc-player-65da91482b50e158712cbb9e39f3e44068d9274a.tar.gz |
open movie menu and prepared quick open feature
-rw-r--r-- | src/default.ui | 33 | ||||
-rw-r--r-- | src/main.c | 51 |
2 files changed, 77 insertions, 7 deletions
diff --git a/src/default.ui b/src/default.ui index 6854bcd..ac000e6 100644 --- a/src/default.ui +++ b/src/default.ui @@ -28,6 +28,7 @@ <property name="use_underline">True</property> <property name="image">image1</property> <property name="use_stock">False</property> + <signal name="activate" handler="file_menu_openmovie_item_activate_cb" object="player_window"/> </object> </child> <child> @@ -37,6 +38,7 @@ <property name="use_underline">True</property> <property name="image">image2</property> <property name="use_stock">False</property> + <signal name="activate" handler="file_menu_opentranscript_item_activate_cb" object="player_window"/> </object> </child> <child> @@ -57,6 +59,33 @@ </object> </child> <child> + <object class="GtkMenuItem" id="quickopen_item"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Quick Open</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="quickopen_menu"> + <property name="visible">True</property> + <child> + <object class="GtkSeparatorMenuItem" id="quickopen_menu_separator_item"> + <property name="visible">True</property> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="quickopen_menu_choosedir_item"> + <property name="label" translatable="yes">Choose _Directory...</property> + <property name="visible">True</property> + <property name="use_underline">True</property> + <property name="image">image3</property> + <property name="use_stock">False</property> + <signal name="activate" handler="quickopen_menu_choosedir_item_activate_cb" object="player_window"/> + </object> + </child> + </object> + </child> + </object> + </child> + <child> <object class="GtkMenuItem" id="help_item"> <property name="visible">True</property> <property name="label" translatable="yes">_Help</property> @@ -156,4 +185,8 @@ <property name="visible">True</property> <property name="stock">gtk-open</property> </object> + <object class="GtkImage" id="image3"> + <property name="visible">True</property> + <property name="stock">gtk-directory</property> + </object> </interface> @@ -9,11 +9,15 @@ #include <gtk/gtk.h> #include <gtk-vlc-player.h> +static GtkWidget *window, + *player, + *scale; + /* * GtkBuilder signal callbacks + * NOTE: for some strange reason the parameters are switched */ -/* NOTE: for some strange reason the parameters are switched */ void playpause_button_clicked_cb(GtkWidget *widget, gpointer data) { @@ -23,7 +27,6 @@ playpause_button_clicked_cb(GtkWidget *widget, gpointer data) : "gtk-media-pause"); } -/* NOTE: for some strange reason the parameters are switched */ void stop_button_clicked_cb(GtkWidget *widget, gpointer data __attribute__((unused))) @@ -31,11 +34,49 @@ stop_button_clicked_cb(GtkWidget *widget, gtk_vlc_player_stop(GTK_VLC_PLAYER(widget)); } +void +file_menu_openmovie_item_activate_cb(GtkWidget *widget, + gpointer data __attribute__((unused))) +{ + GtkWidget *dialog; + + dialog = gtk_file_chooser_dialog_new("Open Movie...", GTK_WINDOW(widget), + GTK_FILE_CHOOSER_ACTION_OPEN, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, + NULL); + + if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { + gchar *uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(dialog)); + + if (gtk_vlc_player_load(GTK_VLC_PLAYER(player), uri)) { + /* TODO */ + } else { + gtk_widget_set_sensitive(scale, TRUE); + } + + g_free(uri); + } + + gtk_widget_destroy(dialog); +} + +void +file_menu_opentranscript_item_activate_cb(GtkWidget *widget, gpointer data) +{ + /* TODO */ +} + +void +quickopen_menu_choosedir_item_activate_cb(GtkWidget *widget, gpointer data) +{ + /* TODO */ +} + int main(int argc, char *argv[]) { GtkBuilder *builder; - GtkWidget *window, *player, *scale; /* init threads */ #ifdef HAVE_X11_XLIB_H @@ -61,10 +102,6 @@ main(int argc, char *argv[]) gtk_range_set_adjustment(GTK_RANGE(scale), gtk_vlc_player_get_time_adjustment(GTK_VLC_PLAYER(player))); - gtk_vlc_player_load(GTK_VLC_PLAYER(player), argv[1]); - - gtk_widget_set_sensitive(GTK_WIDGET(scale), TRUE); - gtk_widget_show_all(window); gdk_threads_enter(); |