|
|
1.1 ! root 1: /* ! 2: Hatari - dlgTosGem.c ! 3: ! 4: This file is distributed under the GNU Public License, version 2 or at ! 5: your option any later version. Read the file gpl.txt for details. ! 6: */ ! 7: char DlgTosGem_rcsid[] = "Hatari $Id: dlgTosGem.c,v 1.5 2004/06/11 12:48:49 thothy Exp $"; ! 8: ! 9: #include "main.h" ! 10: #include "configuration.h" ! 11: #include "dialog.h" ! 12: #include "sdlgui.h" ! 13: #include "file.h" ! 14: #include "memAlloc.h" ! 15: #include "screen.h" ! 16: #include "vdi.h" ! 17: ! 18: ! 19: #define DLGTOSGEM_ROMNAME 4 ! 20: #define DLGTOSGEM_ROMBROWSE 5 ! 21: #define DLGTOSGEM_GEMRES 8 ! 22: #define DLGTOSGEM_RES640 10 ! 23: #define DLGTOSGEM_RES800 11 ! 24: #define DLGTOSGEM_RES1024 12 ! 25: #define DLGTOSGEM_BPP1 14 ! 26: #define DLGTOSGEM_BPP2 15 ! 27: #define DLGTOSGEM_BPP4 16 ! 28: #define DLGTOSGEM_EXIT 17 ! 29: ! 30: ! 31: /* The TOS/GEM dialog: */ ! 32: static SGOBJ tosgemdlg[] = ! 33: { ! 34: { SGBOX, 0, 0, 0,0, 40,24, NULL }, ! 35: { SGBOX, 0, 0, 1,1, 38,8, NULL }, ! 36: { SGTEXT, 0, 0, 16,2, 9,1, "TOS setup" }, ! 37: { SGTEXT, 0, 0, 2,5, 25,1, "ROM image (needs reset!):" }, ! 38: { SGTEXT, 0, 0, 2,7, 34,1, NULL }, ! 39: { SGBUTTON, 0, 0, 30,5, 8,1, "Browse" }, ! 40: { SGBOX, 0, 0, 1,10, 38,10, NULL }, ! 41: { SGTEXT, 0, 0, 16,11, 9,1, "GEM setup" }, ! 42: { SGCHECKBOX, 0, 0, 2,13, 25,1, "Use extended resolution" }, ! 43: { SGTEXT, 0, 0, 2,15, 11,1, "Resolution:" }, ! 44: { SGRADIOBUT, 0, 0, 4,16, 9,1, "640x480" }, ! 45: { SGRADIOBUT, 0, 0, 16,16, 9,1, "800x600" }, ! 46: { SGRADIOBUT, 0, 0, 28,16, 10,1, "1024x768" }, ! 47: { SGTEXT, 0, 0, 2,18, 6,1, "Depth:" }, ! 48: { SGRADIOBUT, 0, 0, 11,18, 6,1, "1bpp" }, ! 49: { SGRADIOBUT, 0, 0, 20,18, 6,1, "2bpp" }, ! 50: { SGRADIOBUT, 0, 0, 29,18, 6,1, "4bpp" }, ! 51: { SGBUTTON, 0, 0, 10,22, 20,1, "Back to main menu" }, ! 52: { -1, 0, 0, 0,0, 0,0, NULL } ! 53: }; ! 54: ! 55: ! 56: /*-----------------------------------------------------------------------*/ ! 57: /* ! 58: Show and process the TOS/GEM dialog. ! 59: */ ! 60: void Dialog_TosGemDlg(void) ! 61: { ! 62: char *tmpname; ! 63: char dlgromname[35]; ! 64: int but; ! 65: int i; ! 66: ! 67: tmpname = Memory_Alloc(FILENAME_MAX); ! 68: ! 69: SDLGui_CenterDlg(tosgemdlg); ! 70: File_ShrinkName(dlgromname, DialogParams.TOSGEM.szTOSImageFileName, 34); ! 71: tosgemdlg[DLGTOSGEM_ROMNAME].txt = dlgromname; ! 72: ! 73: if( DialogParams.TOSGEM.bUseExtGEMResolutions ) ! 74: tosgemdlg[DLGTOSGEM_GEMRES].state |= SG_SELECTED; ! 75: else ! 76: tosgemdlg[DLGTOSGEM_GEMRES].state &= ~SG_SELECTED; ! 77: ! 78: for(i=0; i<3; i++) ! 79: { ! 80: tosgemdlg[DLGTOSGEM_RES640 + i].state &= ~SG_SELECTED; ! 81: tosgemdlg[DLGTOSGEM_BPP1 + i].state &= ~SG_SELECTED; ! 82: } ! 83: tosgemdlg[DLGTOSGEM_RES640+DialogParams.TOSGEM.nGEMResolution-GEMRES_640x480].state |= SG_SELECTED; ! 84: tosgemdlg[DLGTOSGEM_BPP1+DialogParams.TOSGEM.nGEMColours-GEMCOLOUR_2].state |= SG_SELECTED; ! 85: ! 86: do ! 87: { ! 88: but = SDLGui_DoDialog(tosgemdlg); ! 89: switch( but ) ! 90: { ! 91: case DLGTOSGEM_ROMBROWSE: ! 92: strcpy(tmpname, DialogParams.TOSGEM.szTOSImageFileName); ! 93: File_MakeAbsoluteName(tmpname); ! 94: if( SDLGui_FileSelect(tmpname, NULL, FALSE) ) /* Show and process the file selection dlg */ ! 95: { ! 96: strcpy(DialogParams.TOSGEM.szTOSImageFileName, tmpname); ! 97: File_ShrinkName(dlgromname, DialogParams.TOSGEM.szTOSImageFileName, 34); ! 98: } ! 99: break; ! 100: } ! 101: } ! 102: while(but!=DLGTOSGEM_EXIT && !bQuitProgram); ! 103: ! 104: DialogParams.TOSGEM.bUseExtGEMResolutions = (tosgemdlg[DLGTOSGEM_GEMRES].state & SG_SELECTED); ! 105: for(i=0; i<3; i++) ! 106: { ! 107: if(tosgemdlg[DLGTOSGEM_RES640 + i].state & SG_SELECTED) ! 108: DialogParams.TOSGEM.nGEMResolution = GEMRES_640x480 + i; ! 109: if(tosgemdlg[DLGTOSGEM_BPP1 + i].state & SG_SELECTED) ! 110: DialogParams.TOSGEM.nGEMColours = GEMCOLOUR_2 + i; ! 111: } ! 112: ! 113: Memory_Free(tmpname); ! 114: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.