comparison Gui/mplayer/gtk/fs.c @ 5786:a0e8ae26de14

add multiple filter types
author pontscho
date Mon, 22 Apr 2002 15:39:45 +0000
parents effab9f7da71
children 153fc4ed86ad
comparison
equal deleted inserted replaced
5785:784b0f168791 5786:a0e8ae26de14
30 #endif 30 #endif
31 31
32 gchar * fsSelectedFile = NULL; 32 gchar * fsSelectedFile = NULL;
33 gchar * fsSelectedDirectory = NULL; 33 gchar * fsSelectedDirectory = NULL;
34 unsigned char * fsThatDir = "."; 34 unsigned char * fsThatDir = ".";
35 gchar fsFilter[8] = "*"; 35 gchar fsFilter[64] = "*";
36 36
37 int fsPressed = 0; 37 int fsPressed = 0;
38 int fsMessage = -1; 38 int fsMessage = -1;
39 int fsType = 0; 39 int fsType = 0;
40 40
41 #define fsNumberOfVideoFilterNames 6 41 #define fsNumberOfVideoFilterNames 9
42 char * fsVideoFilterNames[fsNumberOfVideoFilterNames+1][2] = 42 char * fsVideoFilterNames[fsNumberOfVideoFilterNames+1][2] =
43 { { "MPEG files ( *.mpg )", "*.mpg" }, 43 { { "MPEG files (*.mpg)", "*.mpg" },
44 { "VOB files ( *.vob )", "*.vob" }, 44 { "VOB files (*.vob)", "*.vob" },
45 { "AVI files ( *.avi )", "*.avi" }, 45 { "AVI files (*.avi)", "*.avi" },
46 { "QT files ( *.mov )", "*.mov" }, 46 { "QT files (*.mov)", "*.mov" },
47 { "ASF files ( *.asf )", "*.asf" }, 47 { "ASF files (*.asf)", "*.asf" },
48 { "VIVO files ( *.viv )", "*.viv" }, 48 { "VIVO files (*.viv)", "*.viv" },
49 { "All files ( * )", "*" } }; 49 { "Windows Media Video (*.wmv)", "*.wmv" },
50 50 { "Audio files (*.mp2,*.mp3,*.wma)", "*.mp2,*.mp3,*.wma" },
51 #define fsNumberOfSubtitleFilterNames 8 51 { "Video files (*.mpg,*.vob,*.avi,*.mov,*.asf,*.viv,*.wmv)", "*.mpg,*.vob,*.avi,*.mov,*.asf,*.viv,*.wmv" },
52 { "All files (*)", "*" } };
53
54 #define fsNumberOfSubtitleFilterNames 9
52 char * fsSubtitleFilterNames[fsNumberOfSubtitleFilterNames+1][2] = 55 char * fsSubtitleFilterNames[fsNumberOfSubtitleFilterNames+1][2] =
53 { { "UTF ( *.utf )", "*.utf" }, 56 { { "UTF (*.utf)", "*.utf" },
54 { "SUB ( *.sub )", "*.sub" }, 57 { "SUB (*.sub)", "*.sub" },
55 { "SRT ( *.srt )", "*.str" }, 58 { "SRT (*.srt)", "*.str" },
56 { "SMI ( *.smi )", "*.smi" }, 59 { "SMI (*.smi)", "*.smi" },
57 { "RT ( *.rt )", "*.rt" }, 60 { "RT (*.rt) ", "*.rt" },
58 { "TXT ( *.txt )", "*.txt" }, 61 { "TXT (*.txt)", "*.txt" },
59 { "SSA ( *.ssa )", "*.ssa" }, 62 { "SSA (*.ssa)", "*.ssa" },
60 { "AQT ( *.aqt )", "*.aqt" }, 63 { "AQT (*.aqt)", "*.aqt" },
64 { "Subtitles (*.utf,*.sub,*.srt,*.smi,*.rt,*.txt,*.ssa,*.aqt)", "*.utf,*.sub,*.srt,*.smi,*.rt,*.txt,*.ssa,*.aqt" },
61 { "All files ( * )", "*" } }; 65 { "All files ( * )", "*" } };
62 66
63 #define fsNumberOfOtherFilterNames 0 67 #define fsNumberOfOtherFilterNames 0
64 char * fsOtherFilterNames[fsNumberOfOtherFilterNames+1][2] = 68 char * fsOtherFilterNames[fsNumberOfOtherFilterNames+1][2] =
65 { { "All files ( * )", "*" } }; 69 { { "All files ( * )", "*" } };
120 gtk_clist_set_pixmap( GTK_CLIST( list ),c++,0,pixmap,mask ); 124 gtk_clist_set_pixmap( GTK_CLIST( list ),c++,0,pixmap,mask );
121 free( str[0][1] ); 125 free( str[0][1] );
122 } 126 }
123 globfree( &gg ); 127 globfree( &gg );
124 128
125 glob( fsFilter,0,NULL,&gg ); 129 //printf( "fsFiler: '%s'\n",fsFilter );
130 if ( strchr( fsFilter,',' ) )
131 {
132 char tmp[8];
133 int i,c,glob_param = 0;
134 //printf( "sub item detected.\n" );
135 for ( i=0,c=0;i<(int)strlen( fsFilter ) + 1;i++,c++ )
136 {
137 tmp[c]=fsFilter[i];
138 if ( ( tmp[c] == ',' )||( tmp[c] == '\0' ) )
139 {
140 tmp[c]=0; c=-1;
141 // printf( "substr: %s\n",tmp );
142 glob( tmp,glob_param,NULL,&gg );
143 glob_param=GLOB_APPEND;
144 }
145 }
146 } else glob( fsFilter,0,NULL,&gg );
126 147
127 #if 0 148 #if 0
128 if ( !strcmp( fsFilter,"*" ) ) 149 if ( !strcmp( fsFilter,"*" ) )
129 { 150 {
130 char * f = strdup( fsFilter ); 151 char * f = strdup( fsFilter );
173 fsList_items=NULL; 194 fsList_items=NULL;
174 for( i=0;i<fsNumberOfVideoFilterNames + 1;i++ ) 195 for( i=0;i<fsNumberOfVideoFilterNames + 1;i++ )
175 fsList_items=g_list_append( fsList_items,fsVideoFilterNames[i][0] ); 196 fsList_items=g_list_append( fsList_items,fsVideoFilterNames[i][0] );
176 gtk_combo_set_popdown_strings( GTK_COMBO( List ),fsList_items ); 197 gtk_combo_set_popdown_strings( GTK_COMBO( List ),fsList_items );
177 g_list_free( fsList_items ); 198 g_list_free( fsList_items );
178 gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames][0] ); 199 gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames - 1][0] );
179 break; 200 break;
180 case fsSubtitleSelector: 201 case fsSubtitleSelector:
181 gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_SubtitleSelect ); 202 gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_SubtitleSelect );
182 fsList_items=NULL; 203 fsList_items=NULL;
183 for( i=0;i<fsNumberOfSubtitleFilterNames + 1;i++ ) 204 for( i=0;i<fsNumberOfSubtitleFilterNames + 1;i++ )
184 fsList_items=g_list_append( fsList_items,fsSubtitleFilterNames[i][0] ); 205 fsList_items=g_list_append( fsList_items,fsSubtitleFilterNames[i][0] );
185 gtk_combo_set_popdown_strings( GTK_COMBO( List ),fsList_items ); 206 gtk_combo_set_popdown_strings( GTK_COMBO( List ),fsList_items );
186 g_list_free( fsList_items ); 207 g_list_free( fsList_items );
187 gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsSubtitleFilterNames[fsNumberOfSubtitleFilterNames][0] ); 208 gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsSubtitleFilterNames[fsNumberOfSubtitleFilterNames - 1][0] );
188 break; 209 break;
189 case fsOtherSelector: 210 case fsOtherSelector:
190 gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_OtherSelect ); 211 gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_OtherSelect );
191 fsList_items=NULL; 212 fsList_items=NULL;
192 for( i=0;i<fsNumberOfSubtitleFilterNames + 1;i++ ) 213 for( i=0;i<fsNumberOfSubtitleFilterNames + 1;i++ )
594 gtk_widget_ref( fsFilterCombo ); 615 gtk_widget_ref( fsFilterCombo );
595 gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"fsFilterCombo",fsFilterCombo, 616 gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"fsFilterCombo",fsFilterCombo,
596 ( GtkDestroyNotify ) gtk_widget_unref ); 617 ( GtkDestroyNotify ) gtk_widget_unref );
597 gtk_widget_show( fsFilterCombo ); 618 gtk_widget_show( fsFilterCombo );
598 gtk_entry_set_editable (GTK_ENTRY( fsFilterCombo ),FALSE ); 619 gtk_entry_set_editable (GTK_ENTRY( fsFilterCombo ),FALSE );
599 gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames][0] ); 620 gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsVideoFilterNames[fsNumberOfVideoFilterNames - 1][0] );
600 621
601 hseparator3=gtk_hseparator_new(); 622 hseparator3=gtk_hseparator_new();
602 gtk_widget_set_name( hseparator3,"hseparator3" ); 623 gtk_widget_set_name( hseparator3,"hseparator3" );
603 gtk_widget_ref( hseparator3 ); 624 gtk_widget_ref( hseparator3 );
604 gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"hseparator3",hseparator3, 625 gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"hseparator3",hseparator3,