Mercurial > mplayer.hg
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, |