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 );