--- previous/src/gui-sdl/dlgDimension.c 2018/04/24 19:30:53 1.1 +++ previous/src/gui-sdl/dlgDimension.c 2018/04/24 19:34:44 1.1.1.3 @@ -15,65 +15,45 @@ const char DlgDimension_fileid[] = "Prev #include "file.h" -#define DLGND_ENABLE 4 #define DLGND_CUSTOMIZE 5 -#define DLGND_COLOR 7 -#define DLGND_MONOCHROME 8 -#define DLGND_BOTH 9 -#define DLGND_MEMSIZE 16 -#define DLGND_BROWSE 21 -#define DLGND_NAME 22 -#define DLGND_EXIT 24 +#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); - -#define ENABLE_DUAL_SCREEN 1 - +void print_nd_overview(int slot); +void get_nd_default_values(int slot); static SGOBJ dimensiondlg[] = { - { SGBOX, 0, 0, 0,0, 58,26, NULL }, - { SGTEXT, 0, 0, 18,1, 21,1, "NeXTdimension options" }, + { SGBOX, 0, 0, 0, 0, 58, 22, NULL }, + { SGTEXT, 0, 0, 18, 1, 21, 1, "NeXTdimension options" }, - { SGBOX, 0, 0, 2,3, 26,10, 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" }, - - { SGTEXT, 0, 0, 3,9, 7,1, "System display" }, - { SGRADIOBUT, 0, 0, 4,11, 7,1, "Color" }, -#if ENABLE_DUAL_SCREEN - { SGRADIOBUT, 0, 0, 12,11, 6,1, "Mono" }, - { SGRADIOBUT, 0, 0, 19,11, 6,1, "Both" }, -#else - { SGRADIOBUT, 0, 0, 12,11, 12,1, "Monochrome" }, - { SGTEXT, 0, 0, 19,11, 6,1, "" }, -#endif - - { 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, "i860 XR" }, - { 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" }, - - { SGBOX, 0, 0, 2,14, 54,5, NULL }, - { SGTEXT, 0, 0, 3,15, 22,1, "ROM for NeXTdimension:" }, - { SGBUTTON, 0, 0, 27,15, 8,1, "Browse" }, - { SGTEXT, 0, 0, 4,17, 50,1, NULL }, - - { SGTEXT, 0, 0, 3,20, 52,1, "Note: NeXTdimension does not work with NeXTstations." }, + { 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, 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 }, - { SGBUTTON, SG_DEFAULT, 0, 18,23, 21,1, "Back to main menu" }, + { SGBUTTON, SG_DEFAULT, 0, 24,19, 10,1, "Done" }, { -1, 0, 0, 0,0, 0,0, NULL } }; @@ -83,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; } } @@ -108,67 +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; - } - - dimensiondlg[DLGND_COLOR].state &= ~SG_SELECTED; - dimensiondlg[DLGND_MONOCHROME].state &= ~SG_SELECTED; - dimensiondlg[DLGND_BOTH].state &= ~SG_SELECTED; - - switch (ConfigureParams.Screen.nMonitorType) { -#if ENABLE_DUAL_SCREEN - case MONITOR_TYPE_DUAL: - dimensiondlg[DLGND_BOTH].state |= SG_SELECTED; - break; -#endif - 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: @@ -178,21 +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)?true:false; - 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; -#if ENABLE_DUAL_SCREEN - } else if (dimensiondlg[DLGND_BOTH].state&SG_SELECTED) { - ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_DUAL; -#endif - } else { - ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_CPU; - } + return true; }