Пример #1
0
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 );
}
Пример #2
0
/*
 * 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 */
Пример #3
0
/*
 * 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 */
Пример #4
0
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 );
}