void DlgOpen( const char *title, int rows, int cols, gui_control_info *ctl, int num_controls, GUICALLBACK *rtn, void *extra ) { gui_window *parent; parent = DlgGetParent(); Routines[Nested + 1] = rtn; GUIModalDlgOpen( parent, title, rows, cols, ctl, num_controls, DlgEventProc, extra ); }
/* * 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 */
extern dlg_state GenericDialog( gui_window *parent, a_dialog_header *curr_dialog ) /********************************************************************************/ { char *title; DLG_WINDOW_SET result; int width; int height; char buff[MAXBUF]; if( curr_dialog == NULL ) { return( DLG_CAN ); } AdjustDialogControls( curr_dialog ); result.state = DLG_CAN; result.current_dialog = curr_dialog; if( curr_dialog->title != NULL ) { title = curr_dialog->title; } else { ReplaceVars( buff, GetVariableStrVal( "Appname" ) ); title = buff; } width = curr_dialog->cols; height = curr_dialog->rows; #if defined( __OS2__ ) && !defined( _UI ) height -= 1; #endif if( width < strlen(title) + WIDTH_BORDER + 2 ) { width = strlen(title) + WIDTH_BORDER + 2; } GUIRefresh(); GUIModalDlgOpen( parent == NULL ? MainWnd : parent, title, height, width, curr_dialog->controls, curr_dialog->num_controls, &GenericEventProc, &result ); ResetDriveInfo(); return( result.state ); }