]> git.sesse.net Git - vlc/blobdiff - plugins/gnome/gnome_callbacks.c
* Everything in place for the 0.2.63 release.
[vlc] / plugins / gnome / gnome_callbacks.c
index 072bced4a1b7a4af07f75e385424e787f985ce7f..e69f419c56c7a2e31447dcf74f48c94b1bdf1466 100644 (file)
@@ -20,6 +20,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
  *****************************************************************************/
 
+#define MODULE_NAME gnome
+#include "modules_inner.h"
+
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
@@ -438,7 +441,8 @@ on_hscale_button_release_event         (GtkWidget       *widget,
 
     if( p_intf->p_input != NULL )
     {
-        i_seek = (p_adj->value * p_intf->p_input->stream.i_size) / 100;
+        i_seek = (p_adj->value *
+                  p_intf->p_input->stream.p_selected_area->i_size) / 100;
         input_Seek( p_intf->p_input, i_seek );
     }
     p_intf->p_sys->b_scale_isfree = 1;
@@ -580,3 +584,188 @@ on_intf_window_drag_data_received      (GtkWidget       *widget,
     }
 }
 
+
+void
+on_menubar_audio_activate              (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+
+}
+
+
+void
+on_menubar_subtitles_activate          (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+
+}
+
+
+void
+on_popup_title_activate                (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+
+}
+
+
+void
+on_popup_chapter_activate              (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+
+}
+
+
+void
+on_popup_audio_activate                (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+
+}
+
+
+void
+on_popup_subtitle_activate             (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+
+}
+
+
+void
+on_menubar_disc_activate               (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+    intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_window" );
+
+    if( !GTK_IS_WIDGET( p_intf->p_sys->p_disc ) )
+    {
+        p_intf->p_sys->p_disc = create_intf_disc();
+        gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_disc ),
+                             "p_intf", p_intf );
+    }
+    gtk_widget_show( p_intf->p_sys->p_disc );
+    gdk_window_raise( p_intf->p_sys->p_disc->window );
+}
+
+
+void
+on_toolbar_disc_clicked                (GtkButton       *button,
+                                        gpointer         user_data)
+{
+    intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_window" );
+
+    if( !GTK_IS_WIDGET( p_intf->p_sys->p_disc ) )
+    {
+        p_intf->p_sys->p_disc = create_intf_disc();
+        gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_disc ),
+                             "p_intf", p_intf );
+    }
+    gtk_widget_show( p_intf->p_sys->p_disc );
+    gdk_window_raise( p_intf->p_sys->p_disc->window );
+}
+
+
+void
+on_disc_ok_clicked                     (GtkButton       *button,
+                                        gpointer         user_data)
+{
+    intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_disc" );
+    char *psz_device, *psz_source, *psz_method;
+
+    psz_device = gtk_entry_get_text( GTK_ENTRY( lookup_widget(
+                                         GTK_WIDGET(button), "disc_name" ) ) );
+
+    /* "dvd:foo" has size 5 + strlen(foo) */
+    psz_source = malloc( 5 + strlen( psz_device ) );
+    if( psz_source == NULL )
+    {
+        return;
+    }
+
+    /* Check which method was activated */
+    if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button),
+                                          "disc_dvd" ) )->active )
+    {
+        psz_method = "dvd";
+    }
+    else if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button),
+                                               "disc_vcd" ) )->active )
+    {
+        psz_method = "vcd";
+    }
+    else
+    {
+        intf_ErrMsg( "intf error: unknown toggle button configuration" );
+        free( psz_source );
+        return;
+    }
+    
+    /* Select title and chapter */
+    main_PutIntVariable( INPUT_TITLE_VAR, gtk_spin_button_get_value_as_int(
+                              GTK_SPIN_BUTTON( lookup_widget(
+                                  GTK_WIDGET(button), "disc_title" ) ) ) );
+
+    main_PutIntVariable( INPUT_CHAPTER_VAR, gtk_spin_button_get_value_as_int(
+                              GTK_SPIN_BUTTON( lookup_widget(
+                                  GTK_WIDGET(button), "disc_chapter" ) ) ) );
+
+    /* Build source name and add it to playlist */
+    sprintf( psz_source, "%s:%s", psz_method, psz_device );
+    intf_PlstAdd( p_main->p_playlist, PLAYLIST_END, psz_source );
+
+    gtk_widget_hide( p_intf->p_sys->p_disc );
+}
+
+
+void
+on_disc_cancel_clicked                 (GtkButton       *button,
+                                        gpointer         user_data)
+{
+    intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_disc" );
+
+    gtk_widget_hide( p_intf->p_sys->p_disc );
+}
+
+
+void
+on_disc_dvd_toggled                    (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+    if( togglebutton->active )
+    {
+        gtk_entry_set_text( GTK_ENTRY( lookup_widget(
+            GTK_WIDGET(togglebutton), "disc_name" ) ), "/dev/dvd" );
+    }
+}
+
+
+void
+on_disc_vcd_toggled                    (GtkToggleButton *togglebutton,
+                                        gpointer         user_data)
+{
+    if( togglebutton->active )
+    {
+        gtk_entry_set_text( GTK_ENTRY( lookup_widget(
+            GTK_WIDGET(togglebutton), "disc_name" ) ), "/dev/cdrom" );
+    }
+}
+
+
+void
+on_popup_disc_activate                 (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+    intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_popup" );
+
+    if( !GTK_IS_WIDGET( p_intf->p_sys->p_disc ) )
+    {
+        p_intf->p_sys->p_disc = create_intf_disc();
+        gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_disc ),
+                             "p_intf", p_intf );
+    }
+    gtk_widget_show( p_intf->p_sys->p_disc );
+    gdk_window_raise( p_intf->p_sys->p_disc->window );
+}
+