Split configuration pages for CD/DVD and IOMEGA.

This commit is contained in:
2020-03-28 03:17:49 +00:00
parent 4a92780901
commit 3682eae8c4
4 changed files with 191 additions and 138 deletions

View File

@@ -563,7 +563,7 @@ BEGIN
BS_AUTOCHECKBOX | WS_TABSTOP,196,86,64,10
END
DLG_CFG_RMV_DEVICES DIALOG 97, 0, 267, 221
DLG_CFG_MMC_DEVICES DIALOG 97, 0, 267, 221
STYLE DS_CONTROL | WS_CHILD
FONT 9, FONT_NAME
BEGIN
@@ -591,29 +591,34 @@ BEGIN
LTEXT STR_3576,IDT_1761,7,107,34,8
COMBOBOX IDC_COMBO_CD_SPEED,43,105,80,120,
CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END
LTEXT STR_3577,IDT_1762,7,127,80,8
DLG_CFG_IOMEGA_DEVICES DIALOG 97, 0, 267, 221
STYLE DS_CONTROL | WS_CHILD
FONT 9, FONT_NAME
BEGIN
LTEXT STR_3577,IDT_1762,7,7,80,8
CONTROL "List2",IDC_LIST_ZIP_DRIVES,"SysListView32",
LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL |
WS_BORDER | WS_TABSTOP,7,137,253,60
WS_BORDER | WS_TABSTOP,7,18,253,60
CONTROL STR_3578,IDC_CHECK250,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,7,204,34,10
BS_AUTOCHECKBOX | WS_TABSTOP,7,85,34,10
LTEXT STR_BUS,IDT_1753,50,206,25,8
COMBOBOX IDC_COMBO_ZIP_BUS,80,204,70,120,
LTEXT STR_BUS,IDT_1753,50,87,25,8
COMBOBOX IDC_COMBO_ZIP_BUS,80,85,70,120,
CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT STR_CHANNEL,IDT_1756,170,206,30,8
COMBOBOX IDC_COMBO_ZIP_CHANNEL_IDE,210,204,50,120,
LTEXT STR_CHANNEL,IDT_1756,170,87,30,8
COMBOBOX IDC_COMBO_ZIP_CHANNEL_IDE,210,85,50,120,
CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT STR_ID,IDT_1754,165,206,20,8
COMBOBOX IDC_COMBO_ZIP_ID,185,204,20,120,
LTEXT STR_ID,IDT_1754,165,87,20,8
COMBOBOX IDC_COMBO_ZIP_ID,185,85,20,120,
CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT STR_LUN,IDT_1755,210,206,20,8
COMBOBOX IDC_COMBO_ZIP_LUN,235,204,20,120,
LTEXT STR_LUN,IDT_1755,210,87,20,8
COMBOBOX IDC_COMBO_ZIP_LUN,235,85,20,120,
CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END

View File

@@ -56,8 +56,8 @@
#define DLG_CFG_DISK 1038 /* sub-dialog of config */
#define DLG_CFG_DISK_ADD 1039 /* sub-dialog of config */
#define DLG_CFG_FLOPPY 1040 /* sub-dialog of config */
#define DLG_CFG_RMV_DEVICES 1041 /* sub-dialog of config */
#define DLG_CFG_MMC_DEVICES 1041 /* sub-dialog of config */
#define DLG_CFG_IOMEGA_DEVICES 1042 /* sub-dialog of config */
/* Static text label IDs. */
#define IDT_1700 1700 /* Language: */

View File

@@ -257,8 +257,10 @@ settings_save(void)
#define PAGE_PERIPHERALS 6
#define PAGE_HARD_DISKS 7
#define PAGE_FLOPPY_DRIVES 8
#define PAGE_OTHER_REMOVABLE_DEVICES 9
#define PAGE_MAX 10
#define PAGE_MULTIMEDIA_DEVICES 9
#define PAGE_IOMEGA_DEVICES 10
#define PAGE_MAGNETO_OPTICAL_DEVICES 11
#define PAGE_MAX 12
/* Icon, Bus, File, C, H, S, Size. */
#define C_COLUMNS_HARD_DISKS 6
@@ -330,10 +332,22 @@ show_child(HWND hwndParent, DWORD child_id)
hwndParent, floppy_proc);
break;
case PAGE_OTHER_REMOVABLE_DEVICES:
case PAGE_MULTIMEDIA_DEVICES:
hwndChildDialog = CreateDialog(plat_lang_dll(),
(LPCWSTR)DLG_CFG_RMV_DEVICES,
hwndParent, rmv_devices_proc);
(LPCWSTR)DLG_CFG_MMC_DEVICES,
hwndParent, mmc_devices_proc);
break;
case PAGE_IOMEGA_DEVICES:
hwndChildDialog = CreateDialog(plat_lang_dll(),
(LPCWSTR)DLG_CFG_IOMEGA_DEVICES,
hwndParent, iomega_devices_proc);
break;
case PAGE_MAGNETO_OPTICAL_DEVICES:
hwndChildDialog = CreateDialog(plat_lang_dll(),
(LPCWSTR)DLG_CFG_IOMEGA_DEVICES,
hwndParent, iomega_devices_proc);
break;
default:
@@ -358,6 +372,8 @@ image_list_init(HWND hwndList)
ICON_PERIPH,
ICON_DISK,
ICON_FLOPPY,
ICON_REMOV,
ICON_REMOV,
ICON_REMOV
};
HICON hiconItem;

View File

@@ -721,7 +721,7 @@ zip_track_all(void)
static WIN_RESULT CALLBACK
rmv_devices_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
mmc_devices_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND h = NULL;
int old_sel = 0;
@@ -744,22 +744,6 @@ rmv_devices_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
SendMessage(h, CB_SETCURSEL, b, 0);
cdrom_recalc_location_controls(hdlg, 0);
zdlv_current_sel = 0;
h = GetDlgItem(hdlg, IDC_LIST_ZIP_DRIVES);
zip_init_columns(h);
zip_image_list_init(h);
zip_recalc_list(h);
zip_add_locations(hdlg);
h = GetDlgItem(hdlg, IDC_COMBO_ZIP_BUS);
b = temp_zip_drives[zdlv_current_sel].bus_type;
SendMessage(h, CB_SETCURSEL, b, 0);
zip_recalc_location_controls(hdlg, 0);
h = GetDlgItem(hdlg, IDC_CHECK250);
SendMessage(h, BM_SETCHECK,
temp_zip_drives[zdlv_current_sel].is_250, 0);
rd_ignore_change = 0;
return TRUE;
case WM_NOTIFY:
if (rd_ignore_change)
return FALSE;
@@ -783,29 +767,6 @@ rmv_devices_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
b = temp_cdrom_drives[cdlv_current_sel].bus_type;
SendMessage(h, CB_SETCURSEL, b, 0);
cdrom_recalc_location_controls(hdlg, 0);
} else if ((((LPNMHDR)lParam)->code == LVN_ITEMCHANGED) && (((LPNMHDR)lParam)->idFrom == IDC_LIST_ZIP_DRIVES)) {
old_sel = zdlv_current_sel;
h = GetDlgItem(hdlg, IDC_LIST_ZIP_DRIVES);
zdlv_current_sel = zip_get_selected(hdlg);
if (zdlv_current_sel == old_sel)
return FALSE;
if (zdlv_current_sel == -1) {
rd_ignore_change = 1;
zdlv_current_sel = old_sel;
ListView_SetItemState(h, zdlv_current_sel, LVIS_FOCUSED | LVIS_SELECTED, 0x000F);
rd_ignore_change = 0;
return FALSE;
}
rd_ignore_change = 1;
h = GetDlgItem(hdlg, IDC_COMBO_ZIP_BUS);
b = temp_zip_drives[zdlv_current_sel].bus_type;
SendMessage(h, CB_SETCURSEL, b, 0);
zip_recalc_location_controls(hdlg, 0);
h = GetDlgItem(hdlg, IDC_CHECK250);
SendMessage(h, BM_SETCHECK,
temp_zip_drives[zdlv_current_sel].is_250, 0);
}
rd_ignore_change = 0;
break;
@@ -892,6 +853,77 @@ cdrom_bus_skip:
rd_ignore_change = 0;
return FALSE;
}
return FALSE;
default:
break;
}
return FALSE;
}
static WIN_RESULT CALLBACK
iomega_devices_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND h = NULL;
int old_sel = 0;
int assign = 0;
int b;
switch (message) {
case WM_INITDIALOG:
rd_ignore_change = 1;
zdlv_current_sel = 0;
h = GetDlgItem(hdlg, IDC_LIST_ZIP_DRIVES);
zip_init_columns(h);
zip_image_list_init(h);
zip_recalc_list(h);
zip_add_locations(hdlg);
h = GetDlgItem(hdlg, IDC_COMBO_ZIP_BUS);
b = temp_zip_drives[zdlv_current_sel].bus_type;
SendMessage(h, CB_SETCURSEL, b, 0);
zip_recalc_location_controls(hdlg, 0);
h = GetDlgItem(hdlg, IDC_CHECK250);
SendMessage(h, BM_SETCHECK,
temp_zip_drives[zdlv_current_sel].is_250, 0);
rd_ignore_change = 0;
return TRUE;
case WM_NOTIFY:
if (rd_ignore_change)
return FALSE;
if ((((LPNMHDR)lParam)->code == LVN_ITEMCHANGED) && (((LPNMHDR)lParam)->idFrom == IDC_LIST_ZIP_DRIVES)) {
old_sel = zdlv_current_sel;
h = GetDlgItem(hdlg, IDC_LIST_ZIP_DRIVES);
zdlv_current_sel = zip_get_selected(hdlg);
if (zdlv_current_sel == old_sel)
return FALSE;
if (zdlv_current_sel == -1) {
rd_ignore_change = 1;
zdlv_current_sel = old_sel;
ListView_SetItemState(h, zdlv_current_sel, LVIS_FOCUSED | LVIS_SELECTED, 0x000F);
rd_ignore_change = 0;
return FALSE;
}
rd_ignore_change = 1;
h = GetDlgItem(hdlg, IDC_COMBO_ZIP_BUS);
b = temp_zip_drives[zdlv_current_sel].bus_type;
SendMessage(h, CB_SETCURSEL, b, 0);
zip_recalc_location_controls(hdlg, 0);
h = GetDlgItem(hdlg, IDC_CHECK250);
SendMessage(h, BM_SETCHECK,
temp_zip_drives[zdlv_current_sel].is_250, 0);
}
rd_ignore_change = 0;
break;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_COMBO_ZIP_BUS:
if (rd_ignore_change)
return FALSE;
@@ -908,7 +940,7 @@ cdrom_bus_skip:
zip_track(zdlv_current_sel);
h = GetDlgItem(hdlg, IDC_LIST_ZIP_DRIVES);
zip_update_item(h, zdlv_current_sel);
zip_bus_skip:
zip_bus_skip:
rd_ignore_change = 0;
return FALSE;