--- previous/src/gui-sdl/dlgDimension.c 2018/04/24 19:32:58 1.1.1.2 +++ previous/src/gui-sdl/dlgDimension.c 2018/04/24 19:34:44 1.1.1.3 @@ -15,62 +15,45 @@ const char DlgDimension_fileid[] = "Prev #include "file.h" -#define DLGND_ENABLE 4 #define DLGND_CUSTOMIZE 5 -#define DLGND_I860THREAD 6 -#define DLGND_MEMSIZE 13 -#define DLGND_BROWSE 18 -#define DLGND_NAME 19 -#define DLGND_COLOR 22 -#define DLGND_MONOCHROME 23 -#define DLGND_BOTH 24 -#define DLGND_DISPLAY 25 -#define DLGND_EXIT 27 +#define DLGND_MEMSIZE 12 +#define DLGND_BROWSE 16 +#define DLGND_NAME 17 +#define DLGND_EXIT 18 /* Variable strings */ char dimension_memory[16] = "64 MB"; +char dimension_slot[16] = "2:"; /* Additional functions */ -void print_nd_overview(void); -void update_monitor_selection(void); -void get_nd_default_values(void); +void print_nd_overview(int slot); +void get_nd_default_values(int slot); static SGOBJ dimensiondlg[] = { - { SGBOX, 0, 0, 0, 0, 58, 30, NULL }, + { SGBOX, 0, 0, 0, 0, 58, 22, NULL }, { SGTEXT, 0, 0, 18, 1, 21, 1, "NeXTdimension options" }, - { SGBOX, 0, 0, 2, 3, 26, 8, NULL }, - { SGTEXT, 0, 0, 3, 4, 19, 1, "NeXTdimension board" }, - { SGCHECKBOX, 0, 0, 4, 6, 9, 1, "Enabled" }, - { SGBUTTON, 0, 0, 15, 6, 11, 1, "Customize" }, - { SGCHECKBOX, 0, 0, 6, 8, 21, 1, "Run separate thread" }, + { SGBOX, 0, 0, 2, 3, 54, 8, NULL }, + { SGTEXT, 0, 0, 3, 4, 28, 1, "NeXTdimension board at slot " }, + { SGTEXT, 0, 0, 31, 4, 2, 1, dimension_slot }, + { SGBUTTON, 0, 0, 35, 4, 11, 1, "Customize" }, - { SGTEXT, 0, 0, 30,4, 13,1, "System overview:" }, - { SGTEXT, 0, 0, 30,6, 13,1, "CPU type:" }, - { SGTEXT, 0, 0, 44,6, 13,1, "i860XR" }, - { SGTEXT, 0, 0, 30,7, 13,1, "CPU clock:" }, - { SGTEXT, 0, 0, 44,7, 13,1, "33 MHz" }, - { SGTEXT, 0, 0, 30,8, 13,1, "Memory size:" }, - { SGTEXT, 0, 0, 44,8, 13,1, dimension_memory }, - { SGTEXT, 0, 0, 30,9, 13,1, "NBIC:" }, - { SGTEXT, 0, 0, 44,9, 13,1, "present" }, + { SGTEXT, 0, 0, 4 ,6, 13,1, "CPU type:" }, + { SGTEXT, 0, 0, 18,6, 13,1, "i860XR" }, + { SGTEXT, 0, 0, 4 ,7, 13,1, "CPU clock:" }, + { SGTEXT, 0, 0, 18,7, 13,1, "33 MHz" }, + { SGTEXT, 0, 0, 4 ,8, 13,1, "Memory size:" }, + { SGTEXT, 0, 0, 18,8, 13,1, dimension_memory }, + { SGTEXT, 0, 0, 4 ,9, 13,1, "NBIC:" }, + { SGTEXT, 0, 0, 18,9, 13,1, "present" }, { SGBOX, 0, 0, 2,12, 54,5, NULL }, { SGTEXT, 0, 0, 3,13, 22,1, "ROM for NeXTdimension:" }, { SGBUTTON, 0, 0, 27,13, 8,1, "Browse" }, { SGTEXT, 0, 0, 4,15, 50,1, NULL }, - - { SGBOX, 0, 0, 2,18, 54,5, NULL }, - { SGTEXT, 0, 0, 3,19, 13,1, "Show display:" }, - { SGRADIOBUT, 0, 0, 18, 19, 7, 1, "Color" }, - { SGRADIOBUT, 0, 0, 26, 19, 12, 1, "Monochrome" }, - { SGRADIOBUT, 0, 0, 39, 19, 6, 1, "Both" }, - { SGCHECKBOX, 0, 0, 5,21, 33,1, "System display on NeXTdimension" }, - - { SGTEXT, 0, 0, 3,24, 52,1, "Note: NeXTdimension does not work with NeXTstations." }, - { SGBUTTON, SG_DEFAULT, 0, 18,27, 21,1, "Back to main menu" }, + { SGBUTTON, SG_DEFAULT, 0, 24,19, 10,1, "Done" }, { -1, 0, 0, 0,0, 0,0, NULL } }; @@ -80,23 +63,16 @@ static SGOBJ dimensiondlg[] = void Dialog_NDMemDlg(int *membank); /* Function to print system overview */ -void print_nd_overview(void) { - sprintf(dimension_memory, "%i MB", Configuration_CheckDimensionMemory(ConfigureParams.Dimension.nMemoryBankSize)); - - update_monitor_selection(); -} - -/* Function to select and unselect system options */ -void update_monitor_selection(void) { - +void print_nd_overview(int n) { + sprintf(dimension_memory, "%i MB", Configuration_CheckDimensionMemory(ConfigureParams.Dimension.board[n].nMemoryBankSize)); } /* Function to get default values for each system */ -void get_nd_default_values(void) { +void get_nd_default_values(int n) { int i; for (i = 0; i < 4; i++) { - ConfigureParams.Dimension.nMemoryBankSize[i] = 4; + ConfigureParams.Dimension.board[n].nMemoryBankSize[i] = 4; } } @@ -105,66 +81,45 @@ void get_nd_default_values(void) { /** * Show and process the "System" dialog (specific to winUAE cpu). */ -void Dialog_DimensionDlg(void) +bool Dialog_DimensionDlg(int n) { int but; char dlgname_ndrom[64]; + + if (ConfigureParams.Dimension.board[n].bEnabled) { + ConfigureParams.Dimension.board[n].bEnabled = false; + return false; + } SDLGui_CenterDlg(dimensiondlg); /* Set up dialog from actual values: */ - if (ConfigureParams.Dimension.bEnabled) dimensiondlg[DLGND_ENABLE].state |= SG_SELECTED; - else dimensiondlg[DLGND_ENABLE].state &= ~SG_SELECTED; - - if (ConfigureParams.Dimension.bI860Thread) dimensiondlg[DLGND_I860THREAD].state |= SG_SELECTED; - else dimensiondlg[DLGND_I860THREAD].state &= ~SG_SELECTED; - - dimensiondlg[DLGND_COLOR].state &= ~SG_SELECTED; - dimensiondlg[DLGND_MONOCHROME].state &= ~SG_SELECTED; - dimensiondlg[DLGND_BOTH].state &= ~SG_SELECTED; - - if (ConfigureParams.Dimension.bMainDisplay) dimensiondlg[DLGND_DISPLAY].state |= SG_SELECTED; - else dimensiondlg[DLGND_DISPLAY].state &= ~SG_SELECTED; - - switch (ConfigureParams.Screen.nMonitorType) { - case MONITOR_TYPE_DUAL: - dimensiondlg[DLGND_BOTH].state |= SG_SELECTED; - break; - case MONITOR_TYPE_CPU: - dimensiondlg[DLGND_MONOCHROME].state |= SG_SELECTED; - break; - case MONITOR_TYPE_DIMENSION: - dimensiondlg[DLGND_COLOR].state |= SG_SELECTED; - break; - - default: - break; - } + sprintf(dimension_slot, "%i:", n*2+2); - File_ShrinkName(dlgname_ndrom, ConfigureParams.Dimension.szRomFileName, + File_ShrinkName(dlgname_ndrom, ConfigureParams.Dimension.board[n].szRomFileName, dimensiondlg[DLGND_NAME].w); dimensiondlg[DLGND_NAME].txt = dlgname_ndrom; /* System overview */ - print_nd_overview(); + print_nd_overview(n); /* Draw and process the dialog: */ - - do{ + + do { but = SDLGui_DoDialog(dimensiondlg, NULL); switch (but) { case DLGND_BROWSE: SDLGui_FileConfSelect(dlgname_ndrom, - ConfigureParams.Dimension.szRomFileName, + ConfigureParams.Dimension.board[n].szRomFileName, dimensiondlg[DLGND_NAME].w, false); break; case DLGND_CUSTOMIZE: - Dialog_NDMemDlg(ConfigureParams.Dimension.nMemoryBankSize); - print_nd_overview(); + Dialog_NDMemDlg(ConfigureParams.Dimension.board[n].nMemoryBankSize); + print_nd_overview(n); break; default: @@ -174,17 +129,10 @@ void Dialog_DimensionDlg(void) while (but != DLGND_EXIT && but != SDLGUI_QUIT && but != SDLGUI_ERROR && !bQuitProgram); - /* Read values from dialog */ - ConfigureParams.Dimension.bEnabled = (dimensiondlg[DLGND_ENABLE]. state&SG_SELECTED) != 0; - ConfigureParams.Dimension.bI860Thread = (dimensiondlg[DLGND_I860THREAD].state&SG_SELECTED) != 0; - ConfigureParams.Dimension.bMainDisplay = (dimensiondlg[DLGND_DISPLAY].state&SG_SELECTED) != 0; - - if (ConfigureParams.Dimension.bEnabled) - ConfigureParams.System.bNBIC = true; + ConfigureParams.Dimension.board[n].bEnabled = true; + ConfigureParams.System.bNBIC = true; - if (dimensiondlg[DLGND_COLOR].state&SG_SELECTED) ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_DIMENSION; - else if (dimensiondlg[DLGND_BOTH]. state&SG_SELECTED) ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_DUAL; - else ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_CPU; + return true; }