- standard log options now present in the runtime dialog box

- dialog control identifiers renamed
This commit is contained in:
Volker Ruppert 2004-02-01 19:22:41 +00:00
parent 278c6e9f38
commit 6827709ea0
3 changed files with 139 additions and 52 deletions

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: win32dialog.cc,v 1.14 2004-02-01 01:40:14 vruppert Exp $
// $Id: win32dialog.cc,v 1.15 2004-02-01 19:22:41 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
#include "config.h"
@ -274,18 +274,65 @@ void RuntimeDlgSetTab(HWND hDlg, int tabnum)
ShowWindow(GetDlgItem(hDlg, IDSTATUS2), (tabnum == 0) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDSTATUS3), (tabnum == 0) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDSTATUS4), (tabnum == 0) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDINFO), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGOPT1), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGOPT2), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLABEL5), (tabnum == 2) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLABEL6), (tabnum == 2) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLABEL7), (tabnum == 2) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGLBL1), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGLBL2), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGLBL3), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGLBL4), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGLBL5), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGEVT1), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGEVT2), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGEVT3), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGEVT4), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGEVT5), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDLOGINFO), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDADVLOGOPT), (tabnum == 1) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDMISCLBL1), (tabnum == 2) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDMISCLBL2), (tabnum == 2) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDMISCLBL3), (tabnum == 2) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDVGAUPDATE), (tabnum == 2) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDMOUSE), (tabnum == 2) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDKBDPASTE), (tabnum == 2) ? SW_SHOW : SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDUSERBTN), (tabnum == 2) ? SW_SHOW : SW_HIDE);
}
void RuntimeDlgInitLogOpt(HWND hDlg)
{
char choices[5][16] = {"ignore", "log", "ask user", "end simulation", "no change"};
int level, idx;
int defchoice[5];
for (level=0; level<5; level++) {
int mod = 0;
int first = SIM->get_log_action (mod, level);
BOOL consensus = true;
// now compare all others to first. If all match, then use "first" as
// the initial value.
for (mod=1; mod<SIM->get_n_log_modules (); mod++) {
if (first != SIM->get_log_action (mod, level)) {
consensus = false;
break;
}
}
if (consensus)
defchoice[level] = first;
else
defchoice[level] = 4;
}
for (level=0; level<5; level++) {
idx = 0;
for (int action=0; action<5; action++) {
if (((level > 1) && (action > 0)) || ((level < 2) && ((action < 2) || (action > 3)))) {
SendMessage(GetDlgItem(hDlg, IDLOGEVT1+level), CB_ADDSTRING, 0, (LPARAM)choices[action]);
SendMessage(GetDlgItem(hDlg, IDLOGEVT1+level), CB_SETITEMDATA, idx, action);
if (action == defchoice[level]) {
SendMessage(GetDlgItem(hDlg, IDLOGEVT1+level), CB_SETCURSEL, idx, 0);
}
idx++;
}
}
}
}
static BOOL CALLBACK RuntimeDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
TC_ITEM tItem;
@ -295,7 +342,7 @@ static BOOL CALLBACK RuntimeDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
long noticode;
static BOOL changed;
BOOL old_changed;
int value;
int idx, level, value;
char buffer[32];
static bx_atadevice_options cdromop[4];
static char origpath[4][MAX_PATH];
@ -333,6 +380,7 @@ static BOOL CALLBACK RuntimeDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
devcount++;
}
}
RuntimeDlgInitLogOpt(hDlg);
SetDlgItemInt(hDlg, IDVGAUPDATE, SIM->get_param_num(BXP_VGA_UPDATE_INTERVAL)->get(), FALSE);
SetDlgItemInt(hDlg, IDKBDPASTE, SIM->get_param_num(BXP_KBD_PASTE_DELAY)->get(), FALSE);
if (SIM->get_param_num(BXP_MOUSE_ENABLED)->get()) {
@ -378,10 +426,16 @@ static BOOL CALLBACK RuntimeDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
SendMessage(GetDlgItem(hDlg, IDSTATUS1+device), BM_SETCHECK, BST_CHECKED, 0);
}
break;
case IDLOGOPT1:
EndDialog(hDlg, 8);
case IDLOGEVT1:
case IDLOGEVT2:
case IDLOGEVT3:
case IDLOGEVT4:
case IDLOGEVT5:
if (HIWORD(wParam) == CBN_SELCHANGE) {
changed = TRUE;
}
break;
case IDLOGOPT2:
case IDADVLOGOPT:
EndDialog(hDlg, 9);
break;
case IDSTATUS2:
@ -406,6 +460,16 @@ static BOOL CALLBACK RuntimeDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
}
cdromop[device].Opath->set(path);
}
for (level=0; level<5; level++) {
idx = SendMessage(GetDlgItem(hDlg, IDLOGEVT1+level), CB_GETCURSEL, 0, 0);
value = SendMessage(GetDlgItem(hDlg, IDLOGEVT1+level), CB_GETITEMDATA, idx, 0);
if (value < 4) {
// set new default
SIM->set_default_log_action (level, value);
// apply that action to all modules (devices)
SIM->set_log_action (-1, level, value);
}
}
value = GetDlgItemInt(hDlg, IDVGAUPDATE, NULL, FALSE);
SIM->get_param_num(BXP_VGA_UPDATE_INTERVAL)->set(value);
value = GetDlgItemInt(hDlg, IDKBDPASTE, NULL, FALSE);

View File

@ -19,34 +19,43 @@
#define CDROM1_DLG 2300
#define RUNTIME_DLG 2400
#define IDRTOTAB 2401
#define IDGROUP1 2402
#define IDGROUP2 2403
#define IDGROUP3 2404
#define IDGROUP4 2405
#define IDLABEL1 2406
#define IDLABEL2 2407
#define IDLABEL3 2408
#define IDLABEL4 2409
#define IDLABEL5 2410
#define IDLABEL6 2411
#define IDLABEL7 2412
#define IDCDROM1 2413
#define IDCDROM2 2414
#define IDCDROM3 2415
#define IDCDROM4 2416
#define IDBROWSE1 2417
#define IDBROWSE2 2418
#define IDBROWSE3 2419
#define IDBROWSE4 2420
#define IDSTATUS1 2421
#define IDSTATUS2 2422
#define IDSTATUS3 2423
#define IDSTATUS4 2424
#define IDLOGOPT1 2430
#define IDLOGOPT2 2435
#define IDVGAUPDATE 2440
#define IDMOUSE 2445
#define IDKBDPASTE 2450
#define IDUSERBTN 2455
#define IDAPPLY 2460
#define IDINFO 2470
#define IDGROUP1 2411
#define IDGROUP2 2412
#define IDGROUP3 2413
#define IDGROUP4 2414
#define IDLABEL1 2421
#define IDLABEL2 2422
#define IDLABEL3 2423
#define IDLABEL4 2424
#define IDCDROM1 2431
#define IDCDROM2 2432
#define IDCDROM3 2433
#define IDCDROM4 2434
#define IDBROWSE1 2441
#define IDBROWSE2 2442
#define IDBROWSE3 2443
#define IDBROWSE4 2444
#define IDSTATUS1 2451
#define IDSTATUS2 2452
#define IDSTATUS3 2453
#define IDSTATUS4 2454
#define IDLOGLBL1 2461
#define IDLOGLBL2 2462
#define IDLOGLBL3 2463
#define IDLOGLBL4 2464
#define IDLOGLBL5 2465
#define IDLOGEVT1 2471
#define IDLOGEVT2 2472
#define IDLOGEVT3 2473
#define IDLOGEVT4 2474
#define IDLOGEVT5 2475
#define IDLOGINFO 2480
#define IDADVLOGOPT 2481
#define IDMISCLBL1 2491
#define IDMISCLBL2 2492
#define IDMISCLBL3 2493
#define IDVGAUPDATE 2510
#define IDMOUSE 2520
#define IDKBDPASTE 2530
#define IDUSERBTN 2540
#define IDAPPLY 2550

View File

@ -79,16 +79,30 @@ BEGIN
EDITTEXT IDCDROM4, 55, 140, 120, 14, ES_AUTOHSCROLL
PUSHBUTTON "Browse...", IDBROWSE4, 183, 140, 50, 14
AUTOCHECKBOX "Inserted", IDSTATUS4, 23, 155, 41, 14, BS_LEFTTEXT | WS_TABSTOP
LTEXT "The log options are still present on the console", IDINFO, 30, 37, 150, 14
PUSHBUTTON "Standard", IDLOGOPT1, 65, 55, 70, 14
PUSHBUTTON "Advanced", IDLOGOPT2, 65, 75, 70, 14
LTEXT "VGA update interval", IDLABEL5, 20, 37, 70, 14
EDITTEXT IDVGAUPDATE, 90, 35, 70, 14, ES_NUMBER
AUTOCHECKBOX "Mouse", IDMOUSE, 18, 55, 81, 14, BS_LEFTTEXT | WS_TABSTOP
LTEXT "Keyboard paste delay", IDLABEL6, 20, 77, 70, 14
EDITTEXT IDKBDPASTE, 90, 75, 70, 14, ES_NUMBER
LTEXT "Userbutton shortcut", IDLABEL7, 20, 97, 70, 14
EDITTEXT IDUSERBTN, 90, 95, 70, 14
LTEXT "Debug events", IDLOGLBL1, 20, 37, 70, 14
COMBOBOX IDLOGEVT1, 95, 35, 65, 56, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL |
WS_VSCROLL | WS_TABSTOP
LTEXT "Info events", IDLOGLBL2, 20, 57, 70, 14
COMBOBOX IDLOGEVT2, 95, 55, 65, 56, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL |
WS_VSCROLL | WS_TABSTOP
LTEXT "Error events", IDLOGLBL3, 20, 77, 70, 14
COMBOBOX IDLOGEVT3, 95, 75, 65, 56, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL |
WS_VSCROLL | WS_TABSTOP
LTEXT "Panic events", IDLOGLBL4, 20, 97, 70, 14
COMBOBOX IDLOGEVT4, 95, 95, 65, 56, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL |
WS_VSCROLL | WS_TABSTOP
LTEXT "Pass events", IDLOGLBL5, 20, 117, 70, 14
COMBOBOX IDLOGEVT5, 95, 115, 65, 56, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL |
WS_VSCROLL | WS_TABSTOP
LTEXT "The advanced log options are still present on the console", IDLOGINFO, 35, 137, 180, 14
PUSHBUTTON "Advanced", IDADVLOGOPT, 95, 155, 60, 14
LTEXT "VGA update interval", IDMISCLBL1, 20, 37, 70, 14
EDITTEXT IDVGAUPDATE, 95, 35, 70, 14, ES_NUMBER
AUTOCHECKBOX "Mouse", IDMOUSE, 18, 55, 86, 14, BS_LEFTTEXT | WS_TABSTOP
LTEXT "Keyboard paste delay", IDMISCLBL2, 20, 77, 70, 14
EDITTEXT IDKBDPASTE, 95, 75, 70, 14, ES_NUMBER
LTEXT "Userbutton shortcut", IDMISCLBL3, 20, 97, 70, 14
EDITTEXT IDUSERBTN, 95, 95, 70, 14
DEFPUSHBUTTON "Continue simulation", IDOK, 15, 190, 70, 14
PUSHBUTTON "Quit simulation", IDCANCEL, 95, 190, 70, 14
PUSHBUTTON "Apply", IDAPPLY, 175, 190, 70, 14