static void enable_controls_for_drive_settings(HWND hwnd, int type) { int drive_type = 0; switch (type) { case IDC_SELECT_DRIVE_TYPE_1540: drive_type = DRIVE_TYPE_1540; break; case IDC_SELECT_DRIVE_TYPE_1541: drive_type = DRIVE_TYPE_1541; break; case IDC_SELECT_DRIVE_TYPE_1541II: drive_type = DRIVE_TYPE_1541II; break; case IDC_SELECT_DRIVE_TYPE_1551: drive_type = DRIVE_TYPE_1551; break; case IDC_SELECT_DRIVE_TYPE_1570: drive_type = DRIVE_TYPE_1570; break; case IDC_SELECT_DRIVE_TYPE_1571: drive_type = DRIVE_TYPE_1571; break; case IDC_SELECT_DRIVE_TYPE_1581: drive_type = DRIVE_TYPE_1581; break; case IDC_SELECT_DRIVE_TYPE_2000: drive_type = DRIVE_TYPE_2000; break; case IDC_SELECT_DRIVE_TYPE_4000: drive_type = DRIVE_TYPE_4000; break; } EnableWindow(GetDlgItem(hwnd, IDC_SELECT_DRIVE_EXTEND_NEVER), drive_check_extend_policy(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_SELECT_DRIVE_EXTEND_ASK), drive_check_extend_policy(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_SELECT_DRIVE_EXTEND_ACCESS), drive_check_extend_policy(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_SELECT_DRIVE_IDLE_NO_IDLE), drive_check_idle_method(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_SELECT_DRIVE_IDLE_TRAP_IDLE), drive_check_idle_method(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_SELECT_DRIVE_IDLE_SKIP_CYCLES), drive_check_idle_method(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_DRIVE_PARALLEL_CABLE_LABEL), drive_check_parallel_cable(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_DRIVE_PARALLEL_CABLE), drive_check_parallel_cable(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_TOGGLE_DRIVE_EXPANSION_2000), drive_check_expansion2000(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_TOGGLE_DRIVE_EXPANSION_4000), drive_check_expansion4000(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_TOGGLE_DRIVE_EXPANSION_6000), drive_check_expansion6000(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_TOGGLE_DRIVE_EXPANSION_8000), drive_check_expansion8000(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_TOGGLE_DRIVE_EXPANSION_A000), drive_check_expansionA000(drive_type)); EnableWindow(GetDlgItem(hwnd, IDC_TOGGLE_DRIVE_RTC_SAVE), drive_type == DRIVE_TYPE_2000 || drive_type == DRIVE_TYPE_4000); }
static UI_CALLBACK(parallel_cable_control) { if (!CHECK_MENUS) { ui_update_menus(); } else { int type; resources_get_int_sprintf("Drive%iType", &type, vice_ptr_to_int(UI_MENU_CB_PARAM) + 8); if (drive_check_parallel_cable(type)) { ui_menu_set_sensitive(w, 1); } else { ui_menu_set_sensitive(w, 0); } } }
static TUI_MENU_CALLBACK(toggle_par_callback) { int drive = (int)param; int type = get_drive_type(drive); int par_support = drive_check_parallel_cable(type); int par; if (!par_support || machine_class == VICE_MACHINE_VIC20) { return "N/A"; } if (been_activated) { resources_get_int_sprintf("Drive%iParallelCable", &par, drive); resources_set_int_sprintf("Drive%iParallelCable", !par, drive); ui_update_menus(); } resources_get_int_sprintf("Drive%iParallelCable", &par, drive); return (par) ? "On" : "Off"; }