/* * GUIGetFileName - get a file name from the user */ int GUIGetFileName( gui_window *gui, open_file_name *ofn ) { char olddir[_MAX_PATH]; dlg_info dlg; if( !ControlsInitialized ) { InitDlgControls(); ControlsInitialized = true; } dlg.currOFN = ofn; dlg.currExt = NULL; dlg.currExtIndex = ofn->filter_index; dlg.dialogRC = OFN_RC_NO_FILE_SELECTED; #if !defined( __UNIX__ ) && !defined( __NETWARE__ ) dlgControls[DRIVE_LIST_INDEX].text = buildDriveList(); if( dlgControls[DRIVE_LIST_INDEX].text == NULL ) { return( OFN_RC_FAILED_TO_INITIALIZE ); } #endif dlgControls[FILE_TYPES_INDEX].text = buildFileTypes( &dlg, ofn->filter_list ); if( dlgControls[FILE_TYPES_INDEX].text == NULL || dlg.fileExtensions == NULL ) { return( OFN_RC_FAILED_TO_INITIALIZE ); } getcwd( olddir, sizeof( olddir ) ); goToDir( gui, ofn->initial_dir ); GUIModalDlgOpen( gui, ofn->title, DLG_FILE_ROWS, DLG_FILE_COLS, dlgControls, NUM_CONTROLS, &GetFileNameEvent, &dlg ); if( !(ofn->flags & OFN_CHANGEDIR) ) { goToDir( gui, olddir ); } #if !defined( __UNIX__ ) && !defined( __NETWARE__ ) freeStringList( &dlgControls[DRIVE_LIST_INDEX].text ); #endif freeStringList( &dlgControls[FILE_TYPES_INDEX].text ); freeStringList( &dlg.fileExtensions ); GUIMemFree( dlg.currExt ); return( dlg.dialogRC ); } /* GUIGetFileName */
/* * GUIGetFileName - get a file name from the user */ int GUIGetFileName( gui_window *gui, open_file_name *ofn ) { char olddir[_MAX_PATH]; dlg_info dlg; bool ok; if( !ControlsInitialized ) { InitDlgControls(); ControlsInitialized = true; } #if !defined( __UNIX__ ) && !defined( __NETWARE__ ) if( !buildDriveList() ) { return( OFN_RC_FAILED_TO_INITIALIZE ); } #endif ok = buildFileTypesExts( &dlg, ofn->filter_list ); if( !ok ) { dlg.currExt = NULL; dlg.dialogRC = OFN_RC_FAILED_TO_INITIALIZE; } else { dlg.currOFN = ofn; dlg.currExt = NULL; dlg.currExtIndex = ofn->filter_index; dlg.dialogRC = OFN_RC_NO_FILE_SELECTED; getcwd( olddir, sizeof( olddir ) ); goToDir( gui, ofn->initial_dir ); GUIModalDlgOpen( gui, ofn->title, DLG_FILE_ROWS, DLG_FILE_COLS, dlgControls, NUM_CONTROLS, &GetFileNameEvent, &dlg ); if( !(ofn->flags & OFN_CHANGEDIR) ) { goToDir( gui, olddir ); } } #if !defined( __UNIX__ ) && !defined( __NETWARE__ ) freeDriveTextList(); #endif freeFileTypesTextList(); freeFileExtsTextList(); GUIMemFree( dlg.currExt ); return( dlg.dialogRC ); } /* GUIGetFileName */