home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Ken Long / rinth / main.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-04  |  3.0 KB  |  171 lines  |  [TEXT/KAHL]

  1.  
  2.  
  3. Boolean        gDone, wneAvail;
  4. SysEnvRec        theSysEnv;
  5. GDHandle        gMainDev;
  6. EventRecord            gTheEvent;
  7. MenuHandle            gAppleMenu, gFileMenu, gEditMenu;
  8. CWindowPtr        gPictureWindow = 0L;
  9. RGBColor        myWhite, myBlack, myRed, myBlue, myYellow, myGreen, myOrange, myGray, myDkBlue;
  10. Handle            gSolvedSndH;
  11.  
  12. main()
  13. {
  14.     short    tics;
  15.     
  16.     MaxApplZone();
  17.     ToolBoxInit();
  18.     GetDateTime((unsigned long *)&randSeed);
  19.     DrawMenuBar();
  20.     WindowInit();
  21.     LoadSounds();
  22.     InitColors();
  23.     gDone = FALSE;
  24.     wneAvail = FALSE;
  25.     SysEnvirons(1, &theSysEnv);
  26.     if (theSysEnv.machineType >= 1) {
  27.         if (NGetTrapAddress(0xA860, 1) != 0xA89F)
  28.             wneAvail = TRUE;
  29.     } /* if */
  30.     while (!gDone) {
  31.         HandleEvent();
  32.     } /* while */
  33.     ExitAppl();
  34.             
  35. } /* main () */
  36.  
  37. HandleEvent()
  38. {
  39.     char    theChar;
  40.     
  41.     if (!wneAvail) {
  42.         GetNextEvent(everyEvent, &gTheEvent);
  43.         SystemTask();
  44.     } /* if */
  45.     else
  46.         WaitNextEvent(everyEvent, &gTheEvent, 0L, 0L);
  47.     
  48.     switch (gTheEvent.what) {
  49.         case mouseDown:
  50.             HandleMouseDown();
  51.             break;
  52.         case keyDown:
  53.         case autoKey:
  54.             theChar = gTheEvent.message & charCodeMask;
  55.             if ((gTheEvent.modifiers & cmdKey) != 0)
  56.                 HandleMenuChoice(MenuKey(theChar));
  57.             break;
  58.         case updateEvt:
  59.         case nullEvent:
  60.         case mouseUp:
  61.         case keyUp:
  62.         case diskEvt:
  63.         case activateEvt:
  64.         case networkEvt:
  65.         case driverEvt:
  66.         case app1Evt:
  67.         case app2Evt:
  68.         case app3Evt:
  69.             break;
  70.         case app4Evt:
  71.         default:
  72.             break;
  73.     } /* switch */
  74.     
  75. } /* HandleEvent() */
  76.  
  77. HandleMouseDown()
  78. {
  79.     WindowPtr        whichWindow;
  80.     short int        thePart;
  81.     long int            menuChoice, windSize;
  82.     
  83.     thePart = FindWindow(gTheEvent.where, &whichWindow);
  84.     switch (thePart) {
  85.         case inMenuBar:
  86.             menuChoice = MenuSelect(gTheEvent.where);
  87.             HandleMenuChoice(menuChoice);
  88.             break;
  89.         case inSysWindow:
  90.             SystemClick(&gTheEvent, whichWindow);
  91.             break;
  92.         case inDrag:
  93.             break;
  94.         case inGoAway:
  95.             break;
  96.         case inContent:
  97.         case inGrow:
  98.         case inZoomIn:
  99.         case inZoomOut:
  100.         default:
  101.             break;
  102.     } /* switch */
  103.     
  104. } /* HandleMouseDown() */
  105.  
  106. HandleMenuChoice(menuChoice)
  107.     long int        menuChoice;
  108. {
  109.     int    theMenu;
  110.     int    theItem;
  111.     
  112.     if (menuChoice != 0) {
  113.         theMenu = HiWord(menuChoice);
  114.         theItem = LoWord(menuChoice);
  115.         switch (theMenu) {
  116.             case 500:
  117.                 HandleAppleChoice(theItem);
  118.                 break;
  119.             case 501:
  120.                 HandleFileChoice(theItem);
  121.                 break;
  122.         } /* switch */
  123.         HiliteMenu(0);        
  124.     } /* if */
  125.     
  126. } /* HandleMenuChoice() */
  127.  
  128.  
  129. HandleAppleChoice(theItem)
  130.     int        theItem;
  131. {
  132.     Str255        accName;
  133.     int            accNumber;
  134.     GrafPtr        savePort;
  135.     
  136.     switch (theItem) {
  137.         case 1:
  138.             break;
  139.         default:    
  140.             GetPort(&savePort);
  141.             GetItem(gAppleMenu, theItem, accName);
  142.             accNumber = OpenDeskAcc(accName);
  143.             SetPort(savePort);
  144.             break;
  145.     } /* switch */
  146.     
  147. } /* HandleAppleChoice() */
  148.  
  149. HandleFileChoice(theItem)
  150.     int        theItem;
  151. {
  152.     GrafPtr        savePort;
  153.     
  154.     switch (theItem) {
  155.         case 1:
  156.             DisableItem(gAppleMenu, 1);
  157.             DisableItem(gFileMenu, theItem);
  158.             GetPort(&savePort);
  159.             SetPort((GrafPtr)gPictureWindow);
  160.             ShowWindow((WindowPtr)gPictureWindow);
  161.             rinth();
  162.             EnableItem(gFileMenu, theItem);
  163.             EnableItem(gAppleMenu, 1);
  164.             break;
  165.         case 2:
  166.             gDone = TRUE;
  167.             break;
  168.     } /* switch */
  169.     
  170. } /* HandleFileChoice() */
  171.