--- BasiliskII/src/BeOS/prefs_editor_beos.cpp 1999/10/28 09:31:39 1.4 +++ BasiliskII/src/BeOS/prefs_editor_beos.cpp 2001/02/02 20:52:57 1.9 @@ -1,7 +1,7 @@ /* * prefs_editor_beos.cpp - Preferences editor, BeOS implementation * - * Basilisk II (C) 1997-1999 Christian Bauer + * Basilisk II (C) 1997-2001 Christian Bauer * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -84,7 +84,11 @@ const uint32 MSG_ETHER = 'ethr'; const uint32 MSG_RAMSIZE = 'rmsz'; // "Memory/Misc" pane const uint32 MSG_MODELID_5 = 'mi05'; const uint32 MSG_MODELID_14 = 'mi14'; -const uint32 MSG_FPU = 'fpu '; +const uint32 MSG_CPU_68020 = 'cpu2'; +const uint32 MSG_CPU_68020_FPU = 'cpf2'; +const uint32 MSG_CPU_68030 = 'cpu3'; +const uint32 MSG_CPU_68030_FPU = 'cpf3'; +const uint32 MSG_CPU_68040 = 'cpu4'; // RAM size slider class @@ -298,7 +302,7 @@ PrefsWindow::PrefsWindow(uint32 msg) : B bar->AddItem(menu); AddChild(bar); SetKeyMenuBar(bar); - int mbar_height = bar->Bounds().bottom + 1; + int mbar_height = int(bar->Bounds().bottom) + 1; // Resize window to fit menu bar ResizeBy(0, mbar_height); @@ -421,12 +425,12 @@ BView *PrefsWindow::create_volumes_pane( menu->AddItem(new BMenuItem(GetString(STR_BOOT_ANY_LAB), new BMessage(MSG_BOOT_ANY))); menu->AddItem(new BMenuItem(GetString(STR_BOOT_CDROM_LAB), new BMessage(MSG_BOOT_CDROM))); pane->AddChild(menu_field); - int16 i16 = PrefsFindInt16("bootdriver"); + int32 i32 = PrefsFindInt32("bootdriver"); BMenuItem *item; - if (i16 == 0) { + if (i32 == 0) { if ((item = menu->FindItem(GetString(STR_BOOT_ANY_LAB))) != NULL) item->SetMarked(true); - } else if (i16 == CDROMRefNum) { + } else if (i32 == CDROMRefNum) { if ((item = menu->FindItem(GetString(STR_BOOT_CDROM_LAB))) != NULL) item->SetMarked(true); } @@ -708,14 +712,32 @@ BView *PrefsWindow::create_memory_pane(v item->SetMarked(true); pane->AddChild(menu_field); - rom_control = new PathControl(false, BRect(10, 82, right, 97), "rom", GetString(STR_ROM_FILE_CTRL), PrefsFindString("rom"), NULL); + int cpu = PrefsFindInt32("cpu"); + bool fpu = PrefsFindBool("fpu"); + menu = new BPopUpMenu(""); + menu_field = new BMenuField(BRect(10, 82, right, 97), "cpu", GetString(STR_CPU_CTRL), menu); + menu_field->SetDivider(120); + menu->AddItem(item = new BMenuItem(GetString(STR_CPU_68020_LAB), new BMessage(MSG_CPU_68020))); + if (cpu == 2 && !fpu) + item->SetMarked(true); + menu->AddItem(item = new BMenuItem(GetString(STR_CPU_68020_FPU_LAB), new BMessage(MSG_CPU_68020_FPU))); + if (cpu == 2 && fpu) + item->SetMarked(true); + menu->AddItem(item = new BMenuItem(GetString(STR_CPU_68030_LAB), new BMessage(MSG_CPU_68030))); + if (cpu == 3 && !fpu) + item->SetMarked(true); + menu->AddItem(item = new BMenuItem(GetString(STR_CPU_68030_FPU_LAB), new BMessage(MSG_CPU_68030_FPU))); + if (cpu == 3 && fpu) + item->SetMarked(true); + menu->AddItem(item = new BMenuItem(GetString(STR_CPU_68040_LAB), new BMessage(MSG_CPU_68040))); + if (cpu == 4) + item->SetMarked(true); + pane->AddChild(menu_field); + + rom_control = new PathControl(false, BRect(10, 104, right, 119), "rom", GetString(STR_ROM_FILE_CTRL), PrefsFindString("rom"), NULL); rom_control->SetDivider(117); pane->AddChild(rom_control); - fpu_checkbox = new BCheckBox(BRect(10, 100, right, 115), "fpu", GetString(STR_FPU_CTRL), new BMessage(MSG_FPU)); - pane->AddChild(fpu_checkbox); - fpu_checkbox->SetValue(PrefsFindBool("fpu") ? B_CONTROL_ON : B_CONTROL_OFF); - return pane; } @@ -853,11 +875,11 @@ void PrefsWindow::MessageReceived(BMessa } case MSG_BOOT_ANY: - PrefsReplaceInt16("bootdriver", 0); + PrefsReplaceInt32("bootdriver", 0); break; case MSG_BOOT_CDROM: - PrefsReplaceInt16("bootdriver", CDROMRefNum); + PrefsReplaceInt32("bootdriver", CDROMRefNum); break; case MSG_NOCDROM: @@ -933,8 +955,29 @@ void PrefsWindow::MessageReceived(BMessa PrefsReplaceInt32("modelid", 14); break; - case MSG_FPU: - PrefsReplaceBool("fpu", fpu_checkbox->Value() == B_CONTROL_ON); + case MSG_CPU_68020: + PrefsReplaceInt32("cpu", 2); + PrefsReplaceBool("fpu", false); + break; + + case MSG_CPU_68020_FPU: + PrefsReplaceInt32("cpu", 2); + PrefsReplaceBool("fpu", true); + break; + + case MSG_CPU_68030: + PrefsReplaceInt32("cpu", 3); + PrefsReplaceBool("fpu", false); + break; + + case MSG_CPU_68030_FPU: + PrefsReplaceInt32("cpu", 3); + PrefsReplaceBool("fpu", true); + break; + + case MSG_CPU_68040: + PrefsReplaceInt32("cpu", 4); + PrefsReplaceBool("fpu", true); break; default: {