⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hwconfig.c

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
    char                buf[25];
    MemWndConfig        info;

    utoa( LSortType, buf, 10 );
    WritePrivateProfileString( SECT_NAME, LSORT, buf, WATCOM_INI );
    utoa( GSortType, buf, 10 );
    WritePrivateProfileString( SECT_NAME, GSORT, buf, WATCOM_INI );
    utoa( HeapType, buf, 10 );
    WritePrivateProfileString( SECT_NAME, DISP_TYPE, buf, WATCOM_INI );
    if( Config.save_glob_pos || save_all_values ) {
        itoa( Config.glob_xpos, buf, 10 );
        WritePrivateProfileString( SECT_NAME, GLOB_XPOS, buf, WATCOM_INI );
        itoa( Config.glob_ypos, buf, 10 );
        WritePrivateProfileString( SECT_NAME, GLOB_YPOS, buf, WATCOM_INI );
        utoa( Config.glob_xsize, buf, 10 );
        WritePrivateProfileString( SECT_NAME, GLOB_XSIZE, buf, WATCOM_INI );
        utoa( Config.glob_ysize, buf, 10 );
        WritePrivateProfileString( SECT_NAME, GLOB_YSIZE, buf, WATCOM_INI );
    }
    PutProfileBool( DISP_RES, Config.disp_res );
    PutProfileBool( SAVE_GLOB_POS, Config.save_glob_pos );
    PutProfileBool( SAVE_MW_POS, Config.save_mem_pos );
    WritePrivateProfileString( SECT_NAME, GSAVE, Config.gfname, WATCOM_INI );
    WritePrivateProfileString( SECT_NAME, LSAVE, Config.lfname, WATCOM_INI );

    /* save information about the memory window */
    GetMemWndConfig( &info );
    if( Config.save_mem_pos || save_all_values ) {
        itoa( info.xpos, buf, 10 );
        WritePrivateProfileString( SECT_NAME, MW_XPOS, buf, WATCOM_INI );
        itoa( info.ypos, buf, 10 );
        WritePrivateProfileString( SECT_NAME, MW_YPOS, buf, WATCOM_INI );
        utoa( info.xsize, buf, 10 );
        WritePrivateProfileString( SECT_NAME, MW_XSIZE, buf, WATCOM_INI );
        utoa( info.ysize, buf, 10 );
        WritePrivateProfileString( SECT_NAME, MW_YSIZE, buf, WATCOM_INI );
    }
    WritePrivateProfileString( SECT_NAME, MW_FNAME, info.fname,
                               WATCOM_INI );
    PutProfileBool( MW_MAX, info.maximized );
    PutProfileBool( MW_DISP_INFO, info.disp_info );
    PutProfileBool( MW_AUTOPOS, info.autopos_info );
    PutProfileBool( MW_NO_UPDT, info.forget_pos );
    utoa( info.allowmult, buf, 10 );
    WritePrivateProfileString( SECT_NAME, MW_1_WND, buf, WATCOM_INI );
    utoa( info.disp_type, buf, 10 );
    WritePrivateProfileString( SECT_NAME, MW_DISP_TYPE, buf, WATCOM_INI );
    utoa( info.code_disp_type, buf, 10 );
    WritePrivateProfileString( SECT_NAME, MW_CODE_TYPE, buf, WATCOM_INI );
    SaveMonoFont( SECT_NAME, WATCOM_INI );
}/* SaveConfigFile */

/*
 * SetupConfigDlg - set the fields in the configuration dialog to
 *                  reflect the values in 'heap' and 'mem'
 */
static void SetupConfigDlg( HeapConfigInfo *heap, MemWndConfig *mem, HWND hwnd ) {

    SetDlgItemText( hwnd, CONFIG_GNAME, heap->gfname  );
    SetDlgItemText( hwnd, CONFIG_LNAME, heap->lfname  );
    SetDlgItemText( hwnd, CONFIG_MNAME, mem->fname );
    if( mem->autopos_info ) {
        CheckDlgButton( hwnd, CONFIG_AUTOPOS, TRUE );
    }
    if( mem->disp_info ) {
        CheckDlgButton( hwnd, CONFIG_DISP_MEM_INFO, TRUE );
    }
    if( mem->allowmult == WND_MULTI ) {
        CheckDlgButton( hwnd, CONFIG_MULT_MEM_WND, TRUE );
    }
    if( heap->disp_res ) {
        CheckDlgButton( hwnd, CONFIG_DISP_RES, TRUE );
    }
    if( heap->save_glob_pos ) {
        CheckDlgButton( hwnd, CONFIG_SAVE_MAIN_POS, TRUE );
    }
    if( heap->save_mem_pos ) {
        CheckDlgButton( hwnd, CONFIG_SAVE_MEM_POS, TRUE );
    }
} /* SetupConfigDlg */


static void doFileBrowse( HWND hwnd, WORD id ) {

    char        buf[_MAX_PATH];

    if( GetSaveFName( hwnd, buf ) ) {
        SetDlgItemText( hwnd, id, buf );
    }
}


/*
 * ConfigDlgProc - handle messages from the configure dialog
 */
BOOL __export FAR PASCAL ConfigDlgProc( HWND hwnd, WORD msg, WORD wparam,
                                    DWORD lparam )
{
    MemWndConfig        info;
    HeapConfigInfo      heapdef;
    char                buf[_MAX_PATH];

    lparam = lparam;
    switch( msg ) {
    case WM_INITDIALOG:
        GetMemWndConfig( &info );
        SetupConfigDlg( &Config, &info, hwnd );
        break;
    case WM_SYSCOLORCHANGE:
        Ctl3dColorChange();
        break;
    case WM_COMMAND:
        switch( wparam ) {
        case CONFIG_GLOB_BROWSE:
            doFileBrowse( hwnd, CONFIG_GNAME );
            break;
        case CONFIG_LOCAL_BROWSE:
            doFileBrowse( hwnd, CONFIG_LNAME );
            break;
        case CONFIG_MEM_BROWSE:
            doFileBrowse( hwnd, CONFIG_MNAME );
            break;
        case CONFIG_DEFAULT:
            GetMemWndDefault( &info );
            GetDefaults( &heapdef );
            SetupConfigDlg( &heapdef, &info, hwnd );
            break;
        case CONFIG_OK:
            GetDlgItemText( hwnd, CONFIG_GNAME, buf, _MAX_PATH );
            if( !ValidateFName( buf ) ) {
                GetWindowText( hwnd, buf, sizeof( buf ) );
                RCMessageBox( hwnd, STR_INVALID_GLOB_FNAME,
                              buf, MB_OK | MB_ICONEXCLAMATION );
                break;
            }
            GetDlgItemText( hwnd, CONFIG_LNAME, buf, _MAX_PATH );
            if( !ValidateFName( buf ) ) {
                GetWindowText( hwnd, buf, sizeof( buf ) );
                RCMessageBox( hwnd, STR_INVALID_LCL_FNAME, buf,
                            MB_OK | MB_ICONEXCLAMATION );
                break;
            }
            GetDlgItemText( hwnd, CONFIG_MNAME, buf, _MAX_PATH );
            if( !ValidateFName( buf ) ) {
                GetWindowText( hwnd, buf, sizeof( buf ) );
                RCMessageBox( hwnd, STR_INVALID_MEM_FNAME, buf,
                            MB_OK | MB_ICONEXCLAMATION );
                break;
            }
            GetMemWndConfig( &info );
            info.autopos_info = IsDlgButtonChecked( hwnd, CONFIG_AUTOPOS );
            info.disp_info = IsDlgButtonChecked( hwnd, CONFIG_DISP_MEM_INFO );
            if( IsDlgButtonChecked( hwnd, CONFIG_MULT_MEM_WND ) ) {
                info.allowmult = WND_MULTI;
            } else {
                info.allowmult = WND_REPLACE;
            }
            Config.disp_res = IsDlgButtonChecked( hwnd, CONFIG_DISP_RES );
            Config.save_glob_pos = IsDlgButtonChecked( hwnd,
                                                       CONFIG_SAVE_MAIN_POS );
            Config.save_mem_pos = IsDlgButtonChecked( hwnd,
                                                       CONFIG_SAVE_MEM_POS );
            GetDlgItemText( hwnd, CONFIG_GNAME, Config.gfname, _MAX_PATH );
            GetDlgItemText( hwnd, CONFIG_LNAME, Config.lfname, _MAX_PATH );
            GetDlgItemText( hwnd, CONFIG_MNAME, info.fname, _MAX_PATH );
            SetMemWndConfig( &info );
            /* fall through */
        case CONFIG_CANCEL:
            EndDialog( hwnd, FALSE );
            break;
        default:
            return( FALSE );
        }
        break;
    case WM_CLOSE:
        EndDialog( hwnd, 0 );
        break;
    default:
        return( FALSE );
    }
    return( TRUE );
} /* ConfigDlgProc */

/*
 * HWConfigure - get configuration information from the user
 */
void HWConfigure( void ) {

    FARPROC             fp;

    fp = MakeProcInstance( (FARPROC)ConfigDlgProc, Instance );
    JDialogBox( Instance, "HEAP_CONFIG", HeapWalkMainWindow, (DLGPROC)fp );
    FreeProcInstance( fp );
} /* HWConfigure */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -