# HG changeset patch # User pontscho # Date 1035198699 0 # Node ID 1efdf16883a0506693c5c14bd36115973f85021c # Parent 125515a0c8edc60e1efda452b8ab3025ed22350c add and extended Gregory Kovriga's patch diff -r 125515a0c8ed -r 1efdf16883a0 Gui/mplayer/gtk/menu.c --- a/Gui/mplayer/gtk/menu.c Mon Oct 21 01:57:23 2002 +0000 +++ b/Gui/mplayer/gtk/menu.c Mon Oct 21 11:11:39 2002 +0000 @@ -5,11 +5,13 @@ #include "../../../config.h" #include "../../../help_mp.h" +#include "../../../mplayer.h" #include "../../events.h" #include "menu.h" #include "../widgets.h" +#include "../app.h" void ActivateMenuItem( int Item ) { @@ -19,6 +21,19 @@ mplEventHandling( Item & 0x0000ffff,Item >> 16 ); } +GtkWidget * AddMenuCheckItem(GtkWidget* Menu,char* label, gboolean state, int Number) +{ + GtkWidget * Item = NULL; + Item=gtk_check_menu_item_new_with_label( label ); + gtk_menu_append( GTK_MENU( Menu ),Item ); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(Item),state); + gtk_signal_connect_object( GTK_OBJECT(Item),"activate", + GTK_SIGNAL_FUNC(ActivateMenuItem),(gpointer)Number ); + gtk_widget_show( Item ); + return Item; +} + + GtkWidget * AddMenuItem( GtkWidget * Menu,char * label,int Number ) { GtkWidget * Item = NULL; @@ -328,10 +343,12 @@ if ( guiIntfStruct.DVD.titles ) { char tmp[32]; int i; - for ( i=0;i < guiIntfStruct.DVD.titles;i++ ) + for ( i=1 ; i<= guiIntfStruct.DVD.titles;i++ ) { - snprintf( tmp,32,MSGTR_MENU_Title,i+1 ); - AddMenuItem( DVDTitleMenu,tmp,( (i+1) << 16 ) + evSetDVDTitle ); + snprintf( tmp,32,MSGTR_MENU_Title,i); + AddMenuCheckItem( DVDTitleMenu,tmp, + guiIntfStruct.DVD.current_title == i, + (i << 16) + evSetDVDTitle ); } } else @@ -343,10 +360,11 @@ if ( guiIntfStruct.DVD.chapters ) { char tmp[32]; int i; - for ( i=0;i < guiIntfStruct.DVD.chapters;i++ ) + for ( i=1;i <= guiIntfStruct.DVD.chapters;i++ ) { - snprintf( tmp,32,MSGTR_MENU_Chapter,i+1 ); - AddMenuItem( DVDChapterMenu,tmp,( (i+1) << 16 ) + evSetDVDChapter ); + snprintf( tmp,32,MSGTR_MENU_Chapter,i ); + AddMenuCheckItem( DVDChapterMenu,tmp,guiIntfStruct.DVD.current_chapter == i, + ( i << 16 ) + evSetDVDChapter ); } } else @@ -363,7 +381,9 @@ snprintf( tmp,64,"%s - %s %s",GetLanguage( guiIntfStruct.DVD.audio_streams[i].language ), ChannelTypes[ guiIntfStruct.DVD.audio_streams[i].type ], ChannelNumbers[ guiIntfStruct.DVD.audio_streams[i].channels ] ); - AddMenuItem( DVDAudioLanguageMenu,tmp,( guiIntfStruct.DVD.audio_streams[i].id << 16 ) + evSetDVDAudio ); + AddMenuCheckItem( DVDAudioLanguageMenu,tmp, + audio_id == guiIntfStruct.DVD.audio_streams[i].id, + ( guiIntfStruct.DVD.audio_streams[i].id << 16 ) + evSetDVDAudio ); } } else @@ -375,11 +395,13 @@ if ( guiIntfStruct.DVD.nr_of_subtitles ) { char tmp[64]; int i; - AddMenuItem( DVDSubtitleLanguageMenu,"None",( (unsigned short)-1 << 16 ) + evSetDVDSubtitle ); + AddMenuItem( DVDSubtitleLanguageMenu,MSGTR_MENU_None,( (unsigned short)-1 << 16 ) + evSetDVDSubtitle ); for ( i=0;i < guiIntfStruct.DVD.nr_of_subtitles;i++ ) { snprintf( tmp,64,"%s",GetLanguage( guiIntfStruct.DVD.subtitles[i].language ) ); - AddMenuItem( DVDSubtitleLanguageMenu,tmp,( guiIntfStruct.DVD.subtitles[i].id << 16 ) + evSetDVDSubtitle ); + AddMenuCheckItem( DVDSubtitleLanguageMenu,tmp, + dvdsub_id == guiIntfStruct.DVD.subtitles[i].id, + ( guiIntfStruct.DVD.subtitles[i].id << 16 ) + evSetDVDSubtitle ); } } else @@ -388,22 +410,37 @@ gtk_widget_set_sensitive( MenuItem,FALSE ); } #endif - AspectMenu=AddSubMenu( Menu,"Aspect ratio" ); - AddMenuItem( AspectMenu,"Original",( 1 << 16 ) + evSetAspect ); + AspectMenu=AddSubMenu( Menu,MSGTR_MENU_AspectRatio ); + AddMenuItem( AspectMenu,MSGTR_MENU_Original,( 1 << 16 ) + evSetAspect ); AddMenuItem( AspectMenu,"16:9",( 2 << 16 ) + evSetAspect ); AddMenuItem( AspectMenu,"4:3",( 3 << 16 ) + evSetAspect ); AddMenuItem( AspectMenu,"2.35",( 4 << 16 ) + evSetAspect ); AddSeparator( Menu ); - AddMenuItem( Menu,"Mute", evMute ); + AddMenuItem( Menu,MSGTR_MENU_Mute, evMute ); AddMenuItem( Menu,MSGTR_MENU_PlayList, evPlayList ); AddMenuItem( Menu,MSGTR_MENU_SkinBrowser, evSkinBrowser ); AddMenuItem( Menu,MSGTR_MENU_Preferences, evPreferences ); AddMenuItem( Menu,MSGTR_Equalizer, evEqualizer ); AddSeparator( Menu ); +#if 0 AddMenuItem( Menu,MSGTR_MENU_NormalSize" ", evNormalSize ); AddMenuItem( Menu,MSGTR_MENU_DoubleSize, evDoubleSize ); AddMenuItem( Menu,MSGTR_MENU_FullScreen, evFullScreen ); +#else + { + int b1 = 0, b2 = 0; + if ( !appMPlayer.subWindow.isFullScreen && guiIntfStruct.Playing ) + { + if ( ( appMPlayer.subWindow.Width == guiIntfStruct.MovieWidth * 2 )&& + ( appMPlayer.subWindow.Height == guiIntfStruct.MovieHeight * 2 ) ) b2=1; + else b1=1; + } else b1=!appMPlayer.subWindow.isFullScreen; + AddMenuCheckItem( Menu,MSGTR_MENU_NormalSize" ",b1,evNormalSize ); + AddMenuCheckItem( Menu,MSGTR_MENU_DoubleSize,b2,evDoubleSize ); + } + AddMenuCheckItem( Menu,MSGTR_MENU_FullScreen,appMPlayer.subWindow.isFullScreen,evFullScreen ); +#endif AddSeparator( Menu ); AddMenuItem( Menu,MSGTR_MENU_Exit, evExit ); diff -r 125515a0c8ed -r 1efdf16883a0 help/help_mp-en.h --- a/help/help_mp-en.h Mon Oct 21 01:57:23 2002 +0000 +++ b/help/help_mp-en.h Mon Oct 21 11:11:39 2002 +0000 @@ -382,6 +382,9 @@ #define MSGTR_MENU_SkinBrowser "Skin browser" #define MSGTR_MENU_Preferences "Preferences" #define MSGTR_MENU_Exit "Exit ..." +#define MSGTR_MENU_Mute "Mute" +#define MSGTR_MENU_Original "Original" +#define MSGTR_MENU_AspectRatio "Aspect ratio" // --- equalizer #define MSGTR_EQU_Audio "Audio" diff -r 125515a0c8ed -r 1efdf16883a0 mplayer.h --- a/mplayer.h Mon Oct 21 01:57:23 2002 +0000 +++ b/mplayer.h Mon Oct 21 11:11:39 2002 +0000 @@ -47,6 +47,10 @@ extern int auto_quality; +extern int audio_id; +extern int video_id; +extern int dvdsub_id; + extern void exit_player(char* how); #endif