aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-05-07 02:11:22 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-05-07 02:11:22 +0200
commit65da91482b50e158712cbb9e39f3e44068d9274a (patch)
tree4780328ada4d4c3ec2afbfdb1402f5606a22e801
parentf72c61e0a3afc364ab6f60e42f2d7e0ff5574a3c (diff)
downloadgtk-vlc-player-65da91482b50e158712cbb9e39f3e44068d9274a.tar.gz
open movie menu and prepared quick open feature
-rw-r--r--src/default.ui33
-rw-r--r--src/main.c51
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>
diff --git a/src/main.c b/src/main.c
index 26e3a40..49042ff 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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();