Mercurial > mplayer.hg
comparison Gui/mplayer/gtk/fs.c @ 6146:b9651eb9749e
fix some gtk bug...
author | pontscho |
---|---|
date | Mon, 20 May 2002 13:56:16 +0000 |
parents | 39c2bfe5c267 |
children | da08877b9512 |
comparison
equal
deleted
inserted
replaced
6145:26cb8736927b | 6146:b9651eb9749e |
---|---|
35 gchar fsFilter[64] = "*"; | 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 | |
41 int gtkVFileSelect = 0; | |
40 | 42 |
41 #define fsNumberOfVideoFilterNames 9 | 43 #define fsNumberOfVideoFilterNames 9 |
42 char * fsVideoFilterNames[fsNumberOfVideoFilterNames+1][2] = | 44 char * fsVideoFilterNames[fsNumberOfVideoFilterNames+1][2] = |
43 { { "MPEG files (*.mpg,*.mpeg)", "*.mpg,*.mpeg" }, | 45 { { "MPEG files (*.mpg,*.mpeg)", "*.mpg,*.mpeg" }, |
44 { "VOB files (*.vob)", "*.vob" }, | 46 { "VOB files (*.vob)", "*.vob" }, |
184 static int FirstInit = 1; | 186 static int FirstInit = 1; |
185 | 187 |
186 void ShowFileSelect( int type ) | 188 void ShowFileSelect( int type ) |
187 { | 189 { |
188 int i; | 190 int i; |
189 FileSelect=create_FileSelect(); | 191 |
192 if ( gtkVFileSelect ) gtkActive( fsFileSelect ); | |
193 else fsFileSelect=create_FileSelect(); | |
190 | 194 |
191 if ( FirstInit ) | 195 if ( FirstInit ) |
192 { | 196 { |
193 fsTopList_items=g_list_append( fsTopList_items,(gchar *)get_current_dir_name() ); | 197 fsTopList_items=g_list_append( fsTopList_items,(gchar *)get_current_dir_name() ); |
194 if ( getenv( "HOME" ) ) fsTopList_items=g_list_append( fsTopList_items,getenv( "HOME" ) ); | 198 if ( getenv( "HOME" ) ) fsTopList_items=g_list_append( fsTopList_items,getenv( "HOME" ) ); |
229 gtk_combo_set_popdown_strings( GTK_COMBO( List ),fsList_items ); | 233 gtk_combo_set_popdown_strings( GTK_COMBO( List ),fsList_items ); |
230 g_list_free( fsList_items ); | 234 g_list_free( fsList_items ); |
231 gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsOtherFilterNames[fsNumberOfOtherFilterNames][0] ); | 235 gtk_entry_set_text( GTK_ENTRY( fsFilterCombo ),fsOtherFilterNames[fsNumberOfOtherFilterNames][0] ); |
232 break; | 236 break; |
233 } | 237 } |
234 gtk_widget_show( FileSelect ); | 238 gtk_widget_show( fsFileSelect ); |
235 } | 239 } |
236 | 240 |
237 void HideFileSelect( void ) | 241 void HideFileSelect( void ) |
238 { gtk_widget_destroy( fsFileSelect ); } | 242 { |
243 gtk_widget_hide( fsFileSelect ); | |
244 gtk_widget_destroy( fsFileSelect ); | |
245 gtkVFileSelect=0; | |
246 } | |
239 | 247 |
240 void fs_fsFileSelect_destroy( GtkObject * object,gpointer user_data ) | 248 void fs_fsFileSelect_destroy( GtkObject * object,gpointer user_data ) |
241 { HideFileSelect(); } | 249 { HideFileSelect(); } |
242 | 250 |
243 void fs_fsFilterCombo_activate( GtkEditable * editable,gpointer user_data ) | 251 void fs_fsFilterCombo_activate( GtkEditable * editable,gpointer user_data ) |
334 CheckDir( fsFNameList,get_current_dir_name() ); | 342 CheckDir( fsFNameList,get_current_dir_name() ); |
335 gtk_entry_set_text( GTK_ENTRY( fsPathCombo ),(unsigned char *)get_current_dir_name() ); | 343 gtk_entry_set_text( GTK_ENTRY( fsPathCombo ),(unsigned char *)get_current_dir_name() ); |
336 return; | 344 return; |
337 } | 345 } |
338 | 346 |
339 HideFileSelect(); | |
340 | |
341 switch( fsPressed ) | 347 switch( fsPressed ) |
342 { | 348 { |
343 case 1: | 349 case 1: |
344 fsSelectedDirectory=(unsigned char *)get_current_dir_name(); | 350 fsSelectedDirectory=(unsigned char *)get_current_dir_name(); |
345 break; | 351 break; |
346 case 2: | 352 case 2: |
347 str=gtk_entry_get_text( GTK_ENTRY( fsPathCombo ) ); | 353 str=gtk_entry_get_text( GTK_ENTRY( fsPathCombo ) ); |
348 fsSelectedFile=str; | 354 fsSelectedFile=str; |
349 if ( !fsFileExist( fsSelectedFile ) ) return; | 355 if ( !fsFileExist( fsSelectedFile ) ) { HideFileSelect(); return; } |
350 fsSelectedDirectory=fsSelectedFile; | 356 fsSelectedDirectory=fsSelectedFile; |
351 size=strlen( fsSelectedDirectory ); | 357 size=strlen( fsSelectedDirectory ); |
352 for ( j=0;j<size;j++ ) | 358 for ( j=0;j<size;j++ ) |
353 { | 359 { |
354 if ( fsSelectedDirectory[ size - j ] == '/' ) | 360 if ( fsSelectedDirectory[ size - j ] == '/' ) |
373 break; | 379 break; |
374 case fsOtherSelector: | 380 case fsOtherSelector: |
375 guiSetDF( guiIntfStruct.Othername,fsSelectedDirectory,fsSelectedFile ); | 381 guiSetDF( guiIntfStruct.Othername,fsSelectedDirectory,fsSelectedFile ); |
376 break; | 382 break; |
377 } | 383 } |
384 | |
385 HideFileSelect(); | |
386 | |
378 item=fsTopList_items; | 387 item=fsTopList_items; |
379 while( item ) | 388 while( item ) |
380 { | 389 { |
381 if ( !strcmp( item->data,fsSelectedDirectory ) ) i=0; | 390 if ( !strcmp( item->data,fsSelectedDirectory ) ) i=0; |
382 item=item->next; | 391 item=item->next; |
410 gtk_button_released( GTK_BUTTON( fsUp ) ); | 419 gtk_button_released( GTK_BUTTON( fsUp ) ); |
411 break; | 420 break; |
412 } | 421 } |
413 return FALSE; | 422 return FALSE; |
414 } | 423 } |
424 | |
425 void fs_FileSelect_show( GtkWidget * widget,gpointer user_data ) | |
426 { gtkVFileSelect=(int)user_data; } | |
415 | 427 |
416 GtkWidget * create_FileSelect( void ) | 428 GtkWidget * create_FileSelect( void ) |
417 { | 429 { |
418 GtkWidget * FSFrame; | 430 GtkWidget * FSFrame; |
419 GtkWidget * frame2; | 431 GtkWidget * frame2; |
637 gtk_container_add( GTK_CONTAINER( hbuttonbox3 ),fsCancel ); | 649 gtk_container_add( GTK_CONTAINER( hbuttonbox3 ),fsCancel ); |
638 gtk_widget_show( fsCancel ); | 650 gtk_widget_show( fsCancel ); |
639 | 651 |
640 gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"destroy",GTK_SIGNAL_FUNC( fs_fsFileSelect_destroy ),NULL ); | 652 gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"destroy",GTK_SIGNAL_FUNC( fs_fsFileSelect_destroy ),NULL ); |
641 gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"key_release_event",GTK_SIGNAL_FUNC( on_FileSelect_key_release_event ),NULL ); | 653 gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"key_release_event",GTK_SIGNAL_FUNC( on_FileSelect_key_release_event ),NULL ); |
654 | |
655 gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"show",GTK_SIGNAL_FUNC( fs_FileSelect_show ),1 ); | |
656 gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"hide",GTK_SIGNAL_FUNC( fs_FileSelect_show ),0 ); | |
657 | |
642 gtk_signal_connect( GTK_OBJECT( fsFilterCombo ),"changed",GTK_SIGNAL_FUNC( fs_fsFilterCombo_changed ),fsFilterCombo ); | 658 gtk_signal_connect( GTK_OBJECT( fsFilterCombo ),"changed",GTK_SIGNAL_FUNC( fs_fsFilterCombo_changed ),fsFilterCombo ); |
643 gtk_signal_connect( GTK_OBJECT( fsFilterCombo ),"activate",GTK_SIGNAL_FUNC( fs_fsFilterCombo_activate ),fsFilterCombo ); | 659 gtk_signal_connect( GTK_OBJECT( fsFilterCombo ),"activate",GTK_SIGNAL_FUNC( fs_fsFilterCombo_activate ),fsFilterCombo ); |
644 gtk_signal_connect( GTK_OBJECT( fsPathCombo ),"changed",GTK_SIGNAL_FUNC( fs_fsPathCombo_changed ),fsPathCombo ); | 660 gtk_signal_connect( GTK_OBJECT( fsPathCombo ),"changed",GTK_SIGNAL_FUNC( fs_fsPathCombo_changed ),fsPathCombo ); |
645 gtk_signal_connect( GTK_OBJECT( fsPathCombo ),"activate",GTK_SIGNAL_FUNC( fs_fsPathCombo_activate ),fsPathCombo ); | 661 gtk_signal_connect( GTK_OBJECT( fsPathCombo ),"activate",GTK_SIGNAL_FUNC( fs_fsPathCombo_activate ),fsPathCombo ); |
646 gtk_signal_connect( GTK_OBJECT( fsUp ),"released",GTK_SIGNAL_FUNC( fs_Up_released ),fsFNameList ); | 662 gtk_signal_connect( GTK_OBJECT( fsUp ),"released",GTK_SIGNAL_FUNC( fs_Up_released ),fsFNameList ); |