home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Mark Pilgrim / Kant Generator Pro 1.0.1 / source / Shell ƒ / generic open.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-30  |  2.0 KB  |  91 lines  |  [TEXT/MMCC]

  1. #include "generic open.h"
  2. #include "kant load-save.h"
  3. #include "kant build files.h"
  4. #include "environment.h"
  5. #include "error.h"
  6. #include "print meat.h"
  7. #include "file utilities.h"
  8. #include "graphics.h"
  9. #include "window layer.h"
  10. #include "program globals.h"
  11.  
  12. void OpenTheFile(FSSpec *myFSS)
  13. {
  14.     OSErr            oe;
  15.     
  16.     switch (GetFileType(myFSS))
  17.     {
  18.         case SAVE_TYPE:
  19.             if (IndWindowExistsQQ(kMainWindow))
  20.             {
  21.                 if (!CloseTheWindow(GetIndWindowPtr(kMainWindow)))
  22.                     HandleError(kMustCloseDocument, FALSE, TRUE);
  23.             }
  24.             
  25.             if (!IndWindowExistsQQ(kMainWindow))
  26.             {
  27.                 GetTheFile(myFSS);
  28.                 gNeedToOpenWindow=FALSE;
  29.             }
  30.             break;
  31.         case BUILD_TYPE:
  32.             if (IndWindowExistsQQ(kBuildWindow))
  33.                 CloseTheWindow(GetIndWindowPtr(kBuildWindow));
  34.             oe=OpenTheModule(myFSS, FALSE, TRUE);
  35.             if ((oe!=noErr) && (oe!=-1))    /* -1 = user cancel */
  36.             {
  37.                 if (oe==-2)
  38.                     HandleError(kModuleTooLarge, FALSE, FALSE);
  39.                 else
  40.                     HandleError(kCantOpenModule, FALSE, FALSE);
  41.             }
  42.             if (oe==noErr)
  43.                 gNeedToOpenWindow=FALSE;
  44.             break;
  45.     }
  46. }
  47.  
  48. void PrintTheFile(FSSpec *myFSS)
  49. {
  50.     WindowPtr        theWindow;
  51.     OSErr            oe;
  52.     
  53.     switch (GetFileType(myFSS))
  54.     {
  55.         case SAVE_TYPE:
  56.             if (IndWindowExistsQQ(kMainWindow))
  57.             {
  58.                 if (!CloseTheWindow(GetIndWindowPtr(kMainWindow)))
  59.                     HandleError(kCloseDocBeforePrinting, FALSE, TRUE);
  60.             }
  61.             
  62.             if (!IndWindowExistsQQ(kMainWindow))
  63.             {
  64.                 GetTheFile(myFSS);
  65.                 theWindow=GetIndWindowPtr(kMainWindow);
  66.                 PrintText(GetWindowTE(theWindow));
  67.                 CloseTheWindow(theWindow);
  68.             }
  69.             break;
  70.         case BUILD_TYPE:
  71.             if (IndWindowExistsQQ(kBuildWindow))
  72.                 CloseTheWindow(GetIndWindowPtr(kBuildWindow));
  73.             oe=OpenTheModule(myFSS, FALSE, TRUE);
  74.             if ((oe!=noErr) && (oe!=-1))    /* -1 = user cancel */
  75.             {
  76.                 if (oe==-2)
  77.                     HandleError(kModuleTooLarge, FALSE, FALSE);
  78.                 else
  79.                     HandleError(kCantOpenModule, FALSE, FALSE);
  80.             }
  81.             
  82.             if (oe==noErr)
  83.             {
  84.                 theWindow=GetIndWindowPtr(kBuildWindow);
  85.                 PrintText(GetWindowTE(theWindow));
  86.                 CloseTheWindow(theWindow);
  87.             }
  88.             break;
  89.     }
  90. }
  91.