Commit eddfb25c authored by Stéphane Borel's avatar Stéphane Borel

*Allow 0 for title selection as it is the area for first play pgc in DVDs

parent ba3401fa
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* gnome.c : Gnome plugin for vlc * gnome.c : Gnome plugin for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2000 VideoLAN * Copyright (C) 2000 VideoLAN
* $Id: gnome.c,v 1.30 2002/07/15 20:09:31 sam Exp $ * $Id: gnome.c,v 1.31 2002/07/23 19:28:25 stef Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* *
...@@ -477,12 +477,15 @@ static gint GnomeManage( gpointer p_data ) ...@@ -477,12 +477,15 @@ static gint GnomeManage( gpointer p_data )
/* Otherwise, send message to the input if the user has /* Otherwise, send message to the input if the user has
* finished dragging the slider */ * finished dragging the slider */
else if( p_intf->p_sys->b_slider_free ) else if( p_intf->p_sys->b_slider_free )
{
if( newvalue > 0. && newvalue < 100. )
{ {
off_t i_seek = ( newvalue * p_area->i_size ) / 100; off_t i_seek = ( newvalue * p_area->i_size ) / 100;
vlc_mutex_unlock( &p_input->stream.stream_lock ); vlc_mutex_unlock( &p_input->stream.stream_lock );
input_Seek( p_input, i_seek, INPUT_SEEK_SET ); input_Seek( p_input, i_seek, INPUT_SEEK_SET );
vlc_mutex_lock( &p_input->stream.stream_lock ); vlc_mutex_lock( &p_input->stream.stream_lock );
}
/* Update the old value */ /* Update the old value */
p_intf->p_sys->f_adj_oldvalue = newvalue; p_intf->p_sys->f_adj_oldvalue = newvalue;
......
...@@ -619,6 +619,7 @@ create_intf_window (void) ...@@ -619,6 +619,7 @@ create_intf_window (void)
gtk_widget_show (button_title_prev); gtk_widget_show (button_title_prev);
gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_prev, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_prev, FALSE, FALSE, 0);
gtk_tooltips_set_tip (tooltips, button_title_prev, _("Select previous title"), NULL); gtk_tooltips_set_tip (tooltips, button_title_prev, _("Select previous title"), NULL);
gtk_button_set_relief (GTK_BUTTON (button_title_prev), GTK_RELIEF_NONE);
button_title_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT); button_title_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT);
gtk_widget_ref (button_title_next); gtk_widget_ref (button_title_next);
...@@ -626,6 +627,7 @@ create_intf_window (void) ...@@ -626,6 +627,7 @@ create_intf_window (void)
(GtkDestroyNotify) gtk_widget_unref); (GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (button_title_next); gtk_widget_show (button_title_next);
gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_next, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_next, FALSE, FALSE, 0);
gtk_button_set_relief (GTK_BUTTON (button_title_next), GTK_RELIEF_NONE);
vseparator1 = gtk_vseparator_new (); vseparator1 = gtk_vseparator_new ();
gtk_widget_ref (vseparator1); gtk_widget_ref (vseparator1);
...@@ -662,6 +664,7 @@ create_intf_window (void) ...@@ -662,6 +664,7 @@ create_intf_window (void)
gtk_widget_show (button_chapter_prev); gtk_widget_show (button_chapter_prev);
gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_prev, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_prev, FALSE, FALSE, 0);
gtk_tooltips_set_tip (tooltips, button_chapter_prev, _("Select previous chapter"), NULL); gtk_tooltips_set_tip (tooltips, button_chapter_prev, _("Select previous chapter"), NULL);
gtk_button_set_relief (GTK_BUTTON (button_chapter_prev), GTK_RELIEF_NONE);
button_chapter_next = gnome_stock_button (GNOME_STOCK_BUTTON_UP); button_chapter_next = gnome_stock_button (GNOME_STOCK_BUTTON_UP);
gtk_widget_ref (button_chapter_next); gtk_widget_ref (button_chapter_next);
...@@ -670,6 +673,7 @@ create_intf_window (void) ...@@ -670,6 +673,7 @@ create_intf_window (void)
gtk_widget_show (button_chapter_next); gtk_widget_show (button_chapter_next);
gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_next, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_next, FALSE, FALSE, 0);
gtk_tooltips_set_tip (tooltips, button_chapter_next, _("Select next chapter"), NULL); gtk_tooltips_set_tip (tooltips, button_chapter_next, _("Select next chapter"), NULL);
gtk_button_set_relief (GTK_BUTTON (button_chapter_next), GTK_RELIEF_NONE);
network_box = gtk_hbox_new (TRUE, 0); network_box = gtk_hbox_new (TRUE, 0);
gtk_widget_ref (network_box); gtk_widget_ref (network_box);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* gtk_callbacks.c : Callbacks for the Gtk+ plugin. * gtk_callbacks.c : Callbacks for the Gtk+ plugin.
***************************************************************************** *****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN * Copyright (C) 2000, 2001 VideoLAN
* $Id: gtk_callbacks.c,v 1.49 2002/07/15 20:09:31 sam Exp $ * $Id: gtk_callbacks.c,v 1.50 2002/07/23 19:28:25 stef Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* Stphane Borel <stef@via.ecp.fr> * Stphane Borel <stef@via.ecp.fr>
...@@ -212,8 +212,7 @@ void GtkTitlePrev( GtkButton * button, gpointer user_data ) ...@@ -212,8 +212,7 @@ void GtkTitlePrev( GtkButton * button, gpointer user_data )
i_id = p_intf->p_sys->p_input->stream.p_selected_area->i_id - 1; i_id = p_intf->p_sys->p_input->stream.p_selected_area->i_id - 1;
/* Disallow area 0 since it is used for video_ts.vob */ if( i_id >= 0 )
if( i_id > 0 )
{ {
p_area = p_intf->p_sys->p_input->stream.pp_areas[i_id]; p_area = p_intf->p_sys->p_input->stream.pp_areas[i_id];
input_ChangeArea( p_intf->p_sys->p_input, (input_area_t*)p_area ); input_ChangeArea( p_intf->p_sys->p_input, (input_area_t*)p_area );
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* gtk_menu.c : functions to handle menu items. * gtk_menu.c : functions to handle menu items.
***************************************************************************** *****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN * Copyright (C) 2000, 2001 VideoLAN
* $Id: gtk_menu.c,v 1.27 2002/07/11 19:28:13 sam Exp $ * $Id: gtk_menu.c,v 1.28 2002/07/23 19:28:25 stef Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* Stphane Borel <stef@via.ecp.fr> * Stphane Borel <stef@via.ecp.fr>
...@@ -59,7 +59,7 @@ void GtkPopupSubtitleToggle ( GtkCheckMenuItem *, gpointer ); ...@@ -59,7 +59,7 @@ void GtkPopupSubtitleToggle ( GtkCheckMenuItem *, gpointer );
static gint GtkTitleMenu( gpointer, GtkWidget *, static gint GtkTitleMenu( gpointer, GtkWidget *,
void(*pf_toggle )( GtkCheckMenuItem *, gpointer ) ); void(*pf_toggle )( GtkCheckMenuItem *, gpointer ) );
static gint GtkRadioMenu( intf_thread_t *, GtkWidget *, GSList *, static gint GtkRadioMenu( intf_thread_t *, GtkWidget *, GSList *,
char *, int, int, char *, int, int, int,
void( *pf_toggle )( GtkCheckMenuItem *, gpointer ) ); void( *pf_toggle )( GtkCheckMenuItem *, gpointer ) );
gint GtkSetupMenus( intf_thread_t * p_intf ); gint GtkSetupMenus( intf_thread_t * p_intf );
...@@ -277,7 +277,7 @@ void GtkMenubarChapterToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) ...@@ -277,7 +277,7 @@ void GtkMenubarChapterToggle( GtkCheckMenuItem * menuitem, gpointer user_data )
static gint GtkRadioMenu( intf_thread_t * p_intf, static gint GtkRadioMenu( intf_thread_t * p_intf,
GtkWidget * p_root, GSList * p_menu_group, GtkWidget * p_root, GSList * p_menu_group,
char * psz_item_name, char * psz_item_name,
int i_nb, int i_selected, int i_start, int i_end, int i_selected,
void( *pf_toggle )( GtkCheckMenuItem *, gpointer ) ) void( *pf_toggle )( GtkCheckMenuItem *, gpointer ) )
{ {
char psz_name[ GTK_MENU_LABEL_SIZE ]; char psz_name[ GTK_MENU_LABEL_SIZE ];
...@@ -306,12 +306,12 @@ static gint GtkRadioMenu( intf_thread_t * p_intf, ...@@ -306,12 +306,12 @@ static gint GtkRadioMenu( intf_thread_t * p_intf,
p_menu = gtk_menu_new(); p_menu = gtk_menu_new();
gtk_object_set_data( GTK_OBJECT( p_menu ), "p_intf", p_intf ); gtk_object_set_data( GTK_OBJECT( p_menu ), "p_intf", p_intf );
for( i_item = 0 ; i_item < i_nb ; i_item++ ) for( i_item = i_start ; i_item <= i_end ; i_item++ )
{ {
/* we group chapters in packets of ten for small screens */ /* we group chapters in packets of ten for small screens */
if( ( i_item % 10 == 0 ) && ( i_nb > 20 ) ) if( ( i_item % 10 == i_start ) && ( i_end > 20 ) )
{ {
if( i_item != 0 ) if( i_item != i_start )
{ {
gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_item_group ), gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_item_group ),
p_submenu ); p_submenu );
...@@ -319,7 +319,7 @@ static gint GtkRadioMenu( intf_thread_t * p_intf, ...@@ -319,7 +319,7 @@ static gint GtkRadioMenu( intf_thread_t * p_intf,
} }
snprintf( psz_name, GTK_MENU_LABEL_SIZE, snprintf( psz_name, GTK_MENU_LABEL_SIZE,
"%ss %d to %d", psz_item_name, i_item + 1, i_item + 10); "%ss %d to %d", psz_item_name, i_item, i_item + 9 );
psz_name[ GTK_MENU_LABEL_SIZE - 1 ] = '\0'; psz_name[ GTK_MENU_LABEL_SIZE - 1 ] = '\0';
p_item_group = gtk_menu_item_new_with_label( psz_name ); p_item_group = gtk_menu_item_new_with_label( psz_name );
gtk_widget_show( p_item_group ); gtk_widget_show( p_item_group );
...@@ -328,13 +328,13 @@ static gint GtkRadioMenu( intf_thread_t * p_intf, ...@@ -328,13 +328,13 @@ static gint GtkRadioMenu( intf_thread_t * p_intf,
} }
snprintf( psz_name, GTK_MENU_LABEL_SIZE, "%s %d", snprintf( psz_name, GTK_MENU_LABEL_SIZE, "%s %d",
psz_item_name, i_item + 1 ); psz_item_name, i_item );
psz_name[ GTK_MENU_LABEL_SIZE - 1 ] = '\0'; psz_name[ GTK_MENU_LABEL_SIZE - 1 ] = '\0';
p_item = gtk_radio_menu_item_new_with_label( p_group, psz_name ); p_item = gtk_radio_menu_item_new_with_label( p_group, psz_name );
p_group = gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_item ) ); p_group = gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_item ) );
if( i_selected == i_item + 1 ) if( i_selected == i_item )
{ {
p_item_selected = p_item; p_item_selected = p_item;
} }
...@@ -345,9 +345,9 @@ static gint GtkRadioMenu( intf_thread_t * p_intf, ...@@ -345,9 +345,9 @@ static gint GtkRadioMenu( intf_thread_t * p_intf,
gtk_signal_connect( GTK_OBJECT( p_item ), gtk_signal_connect( GTK_OBJECT( p_item ),
"toggled", "toggled",
GTK_SIGNAL_FUNC( pf_toggle ), GTK_SIGNAL_FUNC( pf_toggle ),
(gpointer)((long)(i_item + 1)) ); (gpointer)((long)(i_item)) );
if( i_nb > 20 ) if( i_end > 20 )
{ {
gtk_menu_append( GTK_MENU( p_submenu ), p_item ); gtk_menu_append( GTK_MENU( p_submenu ), p_item );
} }
...@@ -357,7 +357,7 @@ static gint GtkRadioMenu( intf_thread_t * p_intf, ...@@ -357,7 +357,7 @@ static gint GtkRadioMenu( intf_thread_t * p_intf,
} }
} }
if( i_nb > 20 ) if( i_end > 20 )
{ {
gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_item_group ), p_submenu ); gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_item_group ), p_submenu );
gtk_menu_append( GTK_MENU( p_menu ), p_item_group ); gtk_menu_append( GTK_MENU( p_menu ), p_item_group );
...@@ -375,7 +375,7 @@ static gint GtkRadioMenu( intf_thread_t * p_intf, ...@@ -375,7 +375,7 @@ static gint GtkRadioMenu( intf_thread_t * p_intf,
} }
/* be sure that menu is sensitive, if there are several items */ /* be sure that menu is sensitive, if there are several items */
if( i_nb > 1 ) if( i_end > i_start )
{ {
gtk_widget_set_sensitive( p_root, TRUE ); gtk_widget_set_sensitive( p_root, TRUE );
} }
...@@ -655,12 +655,12 @@ static gint GtkTitleMenu( gpointer p_data, ...@@ -655,12 +655,12 @@ static gint GtkTitleMenu( gpointer p_data,
gtk_object_set_data( GTK_OBJECT( p_title_menu ), "p_intf", p_intf ); gtk_object_set_data( GTK_OBJECT( p_title_menu ), "p_intf", p_intf );
/* loop on titles */ /* loop on titles */
for( i_title = 1 ; i_title < i_title_nb ; i_title++ ) for( i_title = 0 ; i_title < i_title_nb ; i_title++ )
{ {
/* we group titles in packets of ten for small screens */ /* we group titles in packets of ten for small screens */
if( ( i_title % 10 == 1 ) && ( i_title_nb > 20 ) ) if( ( i_title % 10 == 0 ) && ( i_title_nb > 20 ) )
{ {
if( i_title != 1 ) if( i_title != 0 )
{ {
gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_title_menu_item ), gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_title_menu_item ),
p_title_submenu ); p_title_submenu );
...@@ -798,7 +798,7 @@ static gint GtkTitleMenu( gpointer p_data, ...@@ -798,7 +798,7 @@ static gint GtkTitleMenu( gpointer p_data,
#else #else
GtkRadioMenu( p_intf, p_title_item, p_chapter_group, _("Chapter"), GtkRadioMenu( p_intf, p_title_item, p_chapter_group, _("Chapter"),
p_intf->p_sys->p_input->stream.pp_areas[i_title]->i_part_nb, p_intf->p_sys->p_input->stream.pp_areas[i_title]->i_part_nb,
i_title * 100, 1, i_title * 100,
p_intf->p_sys->p_input->stream.p_selected_area->i_part + p_intf->p_sys->p_input->stream.p_selected_area->i_part +
p_intf->p_sys->p_input->stream.p_selected_area->i_id *100, p_intf->p_sys->p_input->stream.p_selected_area->i_id *100,
pf_toggle ); pf_toggle );
...@@ -901,7 +901,7 @@ gint GtkSetupMenus( intf_thread_t * p_intf ) ...@@ -901,7 +901,7 @@ gint GtkSetupMenus( intf_thread_t * p_intf )
p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
p_intf->p_sys->p_window ), "menubar_title" ) ); p_intf->p_sys->p_window ), "menubar_title" ) );
GtkRadioMenu( p_intf, p_menubar_menu, NULL, _("Title"), GtkRadioMenu( p_intf, p_menubar_menu, NULL, _("Title"), 0,
p_intf->p_sys->p_input->stream.i_area_nb - 1, p_intf->p_sys->p_input->stream.i_area_nb - 1,
p_intf->p_sys->p_input->stream.p_selected_area->i_id, p_intf->p_sys->p_input->stream.p_selected_area->i_id,
GtkMenubarTitleToggle ); GtkMenubarTitleToggle );
...@@ -922,7 +922,7 @@ gint GtkSetupMenus( intf_thread_t * p_intf ) ...@@ -922,7 +922,7 @@ gint GtkSetupMenus( intf_thread_t * p_intf )
p_intf->p_sys->p_popup ), "popup_navigation" ) ); p_intf->p_sys->p_popup ), "popup_navigation" ) );
GtkTitleMenu( p_intf, p_popup_menu, GtkPopupNavigationToggle ); GtkTitleMenu( p_intf, p_popup_menu, GtkPopupNavigationToggle );
#if 0 #if 0
GtkRadioMenu( p_intf, p_menubar_menu, NULL, _("Title"), GtkRadioMenu( p_intf, p_menubar_menu, NULL, _("Title"), 0,
p_intf->p_sys->p_input->stream.i_area_nb - 1, p_intf->p_sys->p_input->stream.i_area_nb - 1,
p_intf->p_sys->p_input->stream.p_selected_area->i_id, p_intf->p_sys->p_input->stream.p_selected_area->i_id,
on_menubar_chapter_toggle ); on_menubar_chapter_toggle );
...@@ -931,7 +931,7 @@ gint GtkSetupMenus( intf_thread_t * p_intf ) ...@@ -931,7 +931,7 @@ gint GtkSetupMenus( intf_thread_t * p_intf )
p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
p_intf->p_sys->p_window ), "menubar_chapter" ) ); p_intf->p_sys->p_window ), "menubar_chapter" ) );
GtkRadioMenu( p_intf, p_menubar_menu, NULL, _("Chapter"), GtkRadioMenu( p_intf, p_menubar_menu, NULL, _("Chapter"), 1,
p_intf->p_sys->p_input->stream.p_selected_area->i_part_nb, p_intf->p_sys->p_input->stream.p_selected_area->i_part_nb,
p_intf->p_sys->p_input->stream.p_selected_area->i_part, p_intf->p_sys->p_input->stream.p_selected_area->i_part,
GtkMenubarChapterToggle ); GtkMenubarChapterToggle );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment