add multiple filter types

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5787 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
pontscho 2002-04-22 15:39:45 +00:00
parent ee340fe3aa
commit 5633329d6c
1 changed files with 43 additions and 22 deletions

View File

@ -32,32 +32,36 @@
gchar * fsSelectedFile = NULL;
gchar * fsSelectedDirectory = NULL;
unsigned char * fsThatDir = ".";
gchar fsFilter[8] = "*";
gchar fsFilter[64] = "*";
int fsPressed = 0;
int fsMessage = -1;
int fsType = 0;
#define fsNumberOfVideoFilterNames 6
#define fsNumberOfVideoFilterNames 9
char * fsVideoFilterNames[fsNumberOfVideoFilterNames+1][2] =
{ { "MPEG files ( *.mpg )", "*.mpg" },
{ "VOB files ( *.vob )", "*.vob" },
{ "AVI files ( *.avi )", "*.avi" },
{ "QT files ( *.mov )", "*.mov" },
{ "ASF files ( *.asf )", "*.asf" },
{ "VIVO files ( *.viv )", "*.viv" },
{ "All files ( * )", "*" } };
{ { "MPEG files (*.mpg)", "*.mpg" },
{ "VOB files (*.vob)", "*.vob" },
{ "AVI files (*.avi)", "*.avi" },
{ "QT files (*.mov)", "*.mov" },
{ "ASF files (*.asf)", "*.asf" },
{ "VIVO files (*.viv)", "*.viv" },
{ "Windows Media Video (*.wmv)", "*.wmv" },
{ "Audio files (*.mp2,*.mp3,*.wma)", "*.mp2,*.mp3,*.wma" },
{ "Video files (*.mpg,*.vob,*.avi,*.mov,*.asf,*.viv,*.wmv)", "*.mpg,*.vob,*.avi,*.mov,*.asf,*.viv,*.wmv" },
{ "All files (*)", "*" } };
#define fsNumberOfSubtitleFilterNames 8
#define fsNumberOfSubtitleFilterNames 9
char * fsSubtitleFilterNames[fsNumberOfSubtitleFilterNames+1][2] =
{ { "UTF ( *.utf )", "*.utf" },
{ "SUB ( *.sub )", "*.sub" },
{ "SRT ( *.srt )", "*.str" },
{ "SMI ( *.smi )", "*.smi" },
{ "RT ( *.rt )", "*.rt" },
{ "TXT ( *.txt )", "*.txt" },
{ "SSA ( *.ssa )", "*.ssa" },
{ "AQT ( *.aqt )", "*.aqt" },
{ { "UTF (*.utf)", "*.utf" },
{ "SUB (*.sub)", "*.sub" },
{ "SRT (*.srt)", "*.str" },
{ "SMI (*.smi)", "*.smi" },
{ "RT (*.rt) ", "*.rt" },
{ "TXT (*.txt)", "*.txt" },
{ "SSA (*.ssa)", "*.ssa" },
{ "AQT (*.aqt)", "*.aqt" },
{ "Subtitles (*.utf,*.sub,*.srt,*.smi,*.rt,*.txt,*.ssa,*.aqt)", "*.utf,*.sub,*.srt,*.smi,*.rt,*.txt,*.ssa,*.aqt" },
{ "All files ( * )", "*" } };
#define fsNumberOfOtherFilterNames 0
@ -122,7 +126,24 @@ void CheckDir( GtkWidget * list,char * directory )
}
globfree( &gg );
glob( fsFilter,0,NULL,&gg );
//printf( "fsFiler: '%s'\n",fsFilter );
if ( strchr( fsFilter,',' ) )
{
char tmp[8];
int i,c,glob_param = 0;
//printf( "sub item detected.\n" );
for ( i=0,c=0;i<(int)strlen( fsFilter ) + 1;i++,c++ )
{
tmp[c]=fsFilter[i];
if ( ( tmp[c] == ',' )||( tmp[c] == '\0' ) )
{
tmp[c]=0; c=-1;
// printf( "substr: %s\n",tmp );
glob( tmp,glob_param,NULL,&gg );
glob_param=GLOB_APPEND;
}
}
} else glob( fsFilter,0,NULL,&gg );
#if 0
if ( !strcmp( fsFilter,"*" ) )
@ -175,7 +196,7 @@ void ShowFileSelect( int type )
fsList_items=g_list_append( fsList_items,fsVideoFilterNames[i][0] );
gtk_combo_set_popdown_strings( GTK_COMBO( List ),fsList_items );
g_list_free( fsList_items );
gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames][0] );
gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames - 1][0] );
break;
case fsSubtitleSelector:
gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_SubtitleSelect );
@ -184,7 +205,7 @@ void ShowFileSelect( int type )
fsList_items=g_list_append( fsList_items,fsSubtitleFilterNames[i][0] );
gtk_combo_set_popdown_strings( GTK_COMBO( List ),fsList_items );
g_list_free( fsList_items );
gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsSubtitleFilterNames[fsNumberOfSubtitleFilterNames][0] );
gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsSubtitleFilterNames[fsNumberOfSubtitleFilterNames - 1][0] );
break;
case fsOtherSelector:
gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_OtherSelect );
@ -596,7 +617,7 @@ GtkWidget * create_FileSelect( void )
( GtkDestroyNotify ) gtk_widget_unref );
gtk_widget_show( fsFilterCombo );
gtk_entry_set_editable (GTK_ENTRY( fsFilterCombo ),FALSE );
gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames][0] );
gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames - 1][0] );
hseparator3=gtk_hseparator_new();
gtk_widget_set_name( hseparator3,"hseparator3" );