X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=sources%2Freadseq%2Fmacinit.c;fp=sources%2Freadseq%2Fmacinit.c;h=5a049ade08caf56aa60dcfbe483e4fd295c12ad0;hb=81362e35a140cd040e948b921053e74267f8a6e3;hp=0000000000000000000000000000000000000000;hpb=2cf032f4b987ba747c04159965aed78e3820d942;p=jpred.git diff --git a/sources/readseq/macinit.c b/sources/readseq/macinit.c new file mode 100644 index 0000000..5a049ad --- /dev/null +++ b/sources/readseq/macinit.c @@ -0,0 +1,302 @@ +/* + macinit.c + -- Macintosh initializations, then call real main + +Note: compile this segment as Main for generic 68000 processor, so it won't + fail on generic mac + +*/ + +#pragma segment Main + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +//#include + + +Boolean StopKey() +{ +EventRecord ev; + + if (EventAvail( keyDownMask+autoKeyMask, &ev)) { + if ( (ev.modifiers & cmdKey) + && ((char)(ev.message & charCodeMask) == '.') ) { + SysBeep(1); + (void) GetNextEvent( keyDownMask+autoKeyMask, &ev); + return true; + } + } + return false; +} + +Boolean cmdKeyIsDown() +{ KeyMap kmap; + GetKeys(&kmap); + return BitTst(kmap, (sizeof(KeyMap)*8) - 55); +} + +Boolean shiftKeyIsDown() +{ KeyMap kmap; + GetKeys(&kmap); + return BitTst(kmap, (sizeof(KeyMap)*8) - 56); +} + +Boolean capsLockIsDown() +{ KeyMap kmap; + GetKeys(&kmap); + return BitTst(kmap, (sizeof(KeyMap)*8) - 57); +} + +Boolean optionKeyIsDown() +{ KeyMap kmap; + GetKeys(&kmap); + return BitTst(kmap, (sizeof(KeyMap)*8) - 58); +} + +Boolean MouseButton() +{ + return Button(); +} + +Boolean Keypress() +{ EventRecord ev; + return EventAvail( keyDownMask+keyUpMask+autoKeyMask, &ev); +} + + + +char *StdGetFile( + char* prompt, + OSType fileTypes[], + int nFileTypes) +{ + Point wher; /*where to display dialog*/ + SFReply reply; /*reply record*/ + short len; + static char filename[80] = "\0"; + + wher.h = 80; + wher.v = 90; + if (optionKeyIsDown()) nFileTypes=0; + + SFGetFile(wher, prompt, nil, nFileTypes, fileTypes, nil, &reply); + + if (reply.good) { + len = SetVol(nil, reply.vRefNum); + len = reply.fName[0]; + strncpy(filename, (char *)(&reply.fName[1]), len); + filename[len]= '\0'; + return filename; + } + else + return NULL; +} + + +int readCmdOptions(FILE *cl, char *progname, char ***argv) +/* command line reader for Mac/MPW -- dgg */ +{ +#define MAXS 255 +#define addarg(sptr) if (strlen(sptr)>0) { \ + targv = (char **) realloc( targv, (argc+1) * sizeof(char *)); \ + targv[argc] = (char *) malloc(1+strlen(sptr) * sizeof(char)); \ + strcpy( targv[argc], sptr); \ + argc++; } + + char *pword, st[MAXS]; + int argc = 0; + char **targv; + + targv = (char **) malloc(1); + if (progname==NULL) progname = "program"; + addarg( progname); + fgets( st, MAXS, cl); + if (!feof(cl) && st!=NULL && *st!=0) { + pword = strtok( st, "\ \n"); + while (pword!=NULL) { + addarg( pword); + pword = strtok( NULL, "\ \n"); + } + } + + *argv = targv; + return argc; +} + +int ccommand(char ***argv) +{ + int argc; + char **targv; + + argc = readCmdOptions(stdin, *argv[0], &targv); + *argv = targv; + return argc; +} + + + + +extern _DataInit(); + +//#define VERSION curSysEnvVers +#define nocolorID 130 +#define no68020 133 +#define no68881 132 +#define no256 134 +#define nosys6 135 + +void MacInit() +{ +SysEnvRec theWorld; +OSErr OSys; +DialogPtr crashDia; +long tick; + + UnloadSeg(_DataInit); + + InitGraf((Ptr)&qd.thePort); + //InitFonts(); + InitWindows(); + //InitMenus(); + //TEInit(); + InitDialogs(nil); + InitCursor(); + +/*______________________________________________________*/ +/* If not right Machine then stop */ +/*______________________________________________________*/ + OSys = SysEnvirons( curSysEnvVers,&theWorld); + + /*if(!theWorld.hasColorQD) { + crashDia = GetNewDialog (nocolorID, nil, (WindowPtr) -1); + DrawDialog (crashDia); + Delay (300, &tick); + ExitToShell(); + }*/ + /*if(theWorld.processor < env68020) { + crashDia = GetNewDialog (no68020, nil, (WindowPtr) -1); + DrawDialog (crashDia); + Delay (300, &tick); + ExitToShell(); + }*/ + /*if(!theWorld.hasFPU) { + crashDia = GetNewDialog (no68881, nil, (WindowPtr) -1); + DrawDialog (crashDia); + Delay (300, &tick); + ExitToShell(); + } + if(theWorld.systemVersion < 0x0600) { + crashDia = GetNewDialog (nosys6, nil, (WindowPtr) -1); + DrawDialog (crashDia); + Delay (300, &tick); + ExitToShell(); + }*/ + +#ifdef UnDeFineD +/*______________________________________________________*/ +/* Set Rects */ +/*______________________________________________________*/ + screenRect = qd.screenBits.bounds; + offLeft = 0; + offTop = 0; + offRight = screenRect.right; + offBottom = screenRect.bottom; + SetRect(&BaseRect, 40, 60, 472, 282); + tempRgn = GetGrayRgn(); + HLock ((Handle) tempRgn); + TotalRect = (**tempRgn).rgnBBox; + SetRect(&minRect, 80, 80, (**tempRgn).rgnBBox.right - 40, + (**tempRgn).rgnBBox.bottom - 40); + HUnlock ((Handle) tempRgn); + +/*______________________________________________________*/ +/* Open Window & set Palette & Picture */ +/*______________________________________________________*/ + theGDevice = GetMainDevice(); + HLock ((Handle) theGDevice); + mycolors = (**(**theGDevice).gdPMap).pmTable; + numcolor = (**(**theGDevice).gdPMap).pixelSize; + HUnlock((Handle) theGDevice); + switch (numcolor) { + case 1: + numcolor = 2; + break; + case 2: + numcolor = 4; + break; + case 4: + numcolor = 16; + break; + case 8: + numcolor = 256; + break; + } + + myWindow = NewCWindow(nil, &BaseRect, "", true, zoomDocProc, + (WindowPtr) -1, true, 150); + SetPort((WindowPtr) myWindow); + DrawGrowIcon (myWindow); + + srcPalette = NewPalette (numcolor, mycolors, pmCourteous, 0); + SetPalette ((WindowPtr) myWindow, srcPalette, true); + +/*______________________________________________________*/ +/* Set menus */ +/*______________________________________________________*/ + mymenu0 = GetMenu(appleID); + AddResMenu(mymenu0, 'DRVR'); + InsertMenu(mymenu0,0); + mymenu1 = newmenu(129,"File"); + appendmenu(mymenu1,"Start;Quit"); + InsertMenu(mymenu1,0); + mymenu2 = newmenu(130,"Edit"); + InsertMenu(mymenu2,0); + DrawMenuBar(); + +/*______________________________________________________*/ +/* Init variables */ +/*______________________________________________________*/ + DoneFlag = false; + yieldTime = 0; + return; +#endif + +} + + + + +main(int argc, char *argv[]) +{ + Boolean loop = true; + char **myargv; + int myargc; + + /* MacInit(); -- SIOW library handles this */ + do { + fprintf(stderr,"\nEnter command line for %s [cmd-Q to quit]\n", argv[0]); + fprintf(stderr,"-> %s ",argv[0]); + myargv = argv; + myargc = ccommand(&myargv); + + siow_main(myargc, myargv); + fflush(stdout); + + } while (true); + exit(0); +} +