home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 15 / BBS in a box XV-2.iso / Files II / Prog / B-C / cdev Shell.sit / cdev Shell ƒ / cdev Shell.c next >
Encoding:
Text File  |  1991-05-14  |  2.5 KB  |  151 lines  |  [TEXT/KAHL]

  1.  
  2. /*
  3.     cdev Shell  --  Version 0.90  --  May 14, 1991
  4.     
  5.     Copyright (c) 1990,91 by Neal E. Trautman
  6.     
  7.     'ShareWare' -- Please send $5 contribution to:
  8.  
  9.         Neal Trautman
  10.         3700 Clinton Parkway, #1412
  11.         Lawrence, KS  66047
  12.     
  13.     This is a Control Panel cdev Shell.
  14. */
  15.  
  16.  
  17. enum {
  18.     cursorDev = 14
  19. };
  20.  
  21. #define    NULL            0L
  22.  
  23. typedef struct cdevStorageRec {
  24.     TEHandle    myTE;
  25. } cdevStorageRec, *cdevStorageRecPtr, **cdevStorageRecHnd;
  26.     
  27.  
  28. static void DoHit (item,numitems,CPDialog,cdevStorage)
  29.     int            item,numitems;
  30.     DialogPtr    CPDialog;
  31.     Handle        cdevStorage;
  32. {
  33. }
  34.  
  35. static void DoEdit (message,CPDialog)
  36.     int            message;
  37.     DialogPtr    CPDialog;
  38. {
  39.     switch (message)
  40.         {
  41.         case cutDev:
  42.             DlgCut(CPDialog);
  43.             break;
  44.         case copyDev:
  45.             DlgCopy(CPDialog);
  46.             break;
  47.         case pasteDev:
  48.             DlgPaste(CPDialog);
  49.             break;
  50.         case clearDev:
  51.             DlgDelete(CPDialog);
  52.             break;
  53.         }
  54. }
  55.  
  56. pascal long main (
  57.             int message,
  58.             int item,
  59.             int numItems,
  60.             int CPanelID,
  61.             EventRecord *theEvent,
  62.             Handle cdevStorage,
  63.             DialogPtr CPDialog
  64.     );
  65. pascal long main (message,item,numitems,CPanelID,theEvent,cdevStorage,CPDialog)
  66.     int            message,item,numitems,CPanelID;
  67.     EventRecord    *theEvent;
  68.     Handle        cdevStorage;
  69.     DialogPtr    CPDialog;
  70. {
  71.     if ((cdevStorage != NULL) && ((long)cdevStorage != 1L) && ((long)cdevStorage != -1L))
  72.         {
  73.         switch (message)
  74.             {
  75.             case initDev:
  76.                 {
  77.                 cdevStorage = NewHandle(sizeof(cdevStorageRec));
  78.                 if (cdevStorage != NULL)
  79.                     {
  80.                     DoHit(item,numitems,CPDialog,cdevStorage);
  81.                     }
  82.                 break;
  83.                 }
  84.             case hitDev:
  85.                 {
  86.                 DoHit(item,numitems,CPDialog,cdevStorage);
  87.                 break;
  88.                 }
  89.             case closeDev:
  90.                 {
  91.                 if (cdevStorage != NULL)
  92.                     DisposHandle(cdevStorage);
  93.                 cdevStorage = NULL;
  94.                 break;
  95.                 }
  96.             case nulDev:
  97.             case updateDev:
  98.             case activDev:
  99.             case deactivDev:
  100.             case cursorDev:
  101.                 {
  102.                 break;
  103.                 }
  104.             case keyEvtDev:
  105.                 {
  106.                 if (theEvent->modifiers & cmdKey)
  107.                     {
  108.                     message = nulDev;
  109.                     switch (theEvent->message & charCodeMask)
  110.                         {
  111.                         case 'z':
  112.                         case 'Z':
  113.                             message = undoDev;
  114.                             break;
  115.                         case 'x':
  116.                         case 'X':
  117.                             message = cutDev;
  118.                             break;
  119.                         case 'c':
  120.                         case 'C':
  121.                             message = copyDev;
  122.                             break;
  123.                         case 'v':
  124.                         case 'V':
  125.                             message = pasteDev;
  126.                             break;
  127.                         }
  128.                     if (message != nulDev)
  129.                         DoEdit (message,CPDialog);
  130.                     }
  131.                 break;
  132.                 }
  133.             case macDev:
  134.                 {
  135.                 return (true);
  136.                 break;
  137.                 }
  138.             case undoDev:
  139.             case cutDev:
  140.             case copyDev:
  141.             case pasteDev:
  142.             case clearDev:
  143.                 {
  144.                 DoEdit (message,CPDialog);
  145.                 break;
  146.                 }
  147.             }
  148.         }
  149.     return((long)cdevStorage);
  150. }
  151.