summaryrefslogtreecommitdiffstats
path: root/Mac/Contrib/BBPy/source/BBPy_launch.c
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Contrib/BBPy/source/BBPy_launch.c')
-rw-r--r--Mac/Contrib/BBPy/source/BBPy_launch.c94
1 files changed, 0 insertions, 94 deletions
diff --git a/Mac/Contrib/BBPy/source/BBPy_launch.c b/Mac/Contrib/BBPy/source/BBPy_launch.c
deleted file mode 100644
index f9b964c..0000000
--- a/Mac/Contrib/BBPy/source/BBPy_launch.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Launch the PythonSlave.py script.
- * This works exactly as if you'd double clicked on the file in the Finder, which
- * not surprisingly is how its implemented (via the AppleEvents route of course).
- *
- * Largely based on code submitted by Mark Roseman <roseman@cpsc.ucalgary.ca>
- * Thanks!
- */
-
-#include "BBPy.h"
-
-pascal Boolean MyFileFilter(CInfoPBPtr PB);
-FileFilterUPP gMyFileFilterUPP = NULL;
-
-Boolean GetPythonSlaveSpec(FSSpec * docSpec) {
- StandardFileReply reply;
- SFTypeList typeList;
-
- typeList[0] = 'TEXT';
-
- //if (!gMyFileFilterUPP)
- gMyFileFilterUPP = NewFileFilterProc( MyFileFilter );
-
- StandardGetFile(gMyFileFilterUPP, 0, typeList, &reply);
-
- DisposePtr((Ptr)gMyFileFilterUPP);
-
- if(!reply.sfGood)
- return 0; /* user cancelled */
-
- docSpec->vRefNum = reply.sfFile.vRefNum;
- docSpec->parID = reply.sfFile.parID;
- BlockMove(reply.sfFile.name, docSpec->name, 64);
- return 1;
-}
-
-pascal Boolean MyFileFilter(CInfoPBPtr PB) {
- OSType fType; /* file type */
- OSType fCreator; /* file creator */
-
- fType =((HParmBlkPtr)PB)->fileParam.ioFlFndrInfo.fdType;
- fCreator = ((HParmBlkPtr)PB)->fileParam.ioFlFndrInfo.fdCreator;
-
- if (fType == 'TEXT' &&
- fCreator == 'Pyth')
- return 0;
- return 1;
-}
-
-OSErr LaunchPythonSlave(FSSpec * docSpec) {
- OSErr err;
- FSSpec dirSpec;
- AEAddressDesc finderAddress;
- AppleEvent theEvent, theReply;
- OSType finderSig = 'MACS';
- AliasHandle DirAlias, FileAlias;
- AEDesc fileList;
- AEDesc aeDirDesc, listElem;
-
- err = AECreateDesc(typeApplSignature, (Ptr)&finderSig, 4, &finderAddress);
- if(err != noErr) return err;
-
- err = AECreateAppleEvent('FNDR', 'sope', &finderAddress,
- kAutoGenerateReturnID, kAnyTransactionID, &theEvent);
- if(err != noErr) return err;
-
- FSMakeFSSpec(docSpec->vRefNum, docSpec->parID, NULL, &dirSpec);
- NewAlias(NULL, &dirSpec, &DirAlias);
- NewAlias(NULL, docSpec, &FileAlias);
- err = AECreateList(NULL, 0, 0, &fileList);
- HLock((Handle)DirAlias);
- AECreateDesc(typeAlias, (Ptr)*DirAlias, GetHandleSize((Handle)DirAlias), &aeDirDesc);
- HUnlock((Handle)DirAlias);
- if ((err = AEPutParamDesc(&theEvent, keyDirectObject, &aeDirDesc)) == noErr) {
- AEDisposeDesc(&aeDirDesc);
- HLock((Handle)FileAlias);
- AECreateDesc(typeAlias, (Ptr)*FileAlias, GetHandleSize((Handle)FileAlias), &listElem);
- HLock((Handle)FileAlias);
- err = AEPutDesc(&fileList, 0, &listElem);
- }
- AEDisposeDesc(&listElem);
- err = AEPutParamDesc(&theEvent, 'fsel', &fileList);
- AEDisposeDesc(&fileList);
-
- err = AESend(&theEvent, &theReply, kAENoReply+kAENeverInteract,
- kAENormalPriority, kAEDefaultTimeout, 0L, 0L);
- if(err != noErr) return err;
-
- err = AEDisposeDesc(&theEvent);
- if(err != noErr) return err;
-
- err = AEDisposeDesc(&theReply);
- return err;
-}