From 59e3376f8ce63c312583155bdf2d861e1041a61a Mon Sep 17 00:00:00 2001 From: Dietrich Epp Date: Sun, 7 May 2023 21:46:55 -0400 Subject: [PATCH] Handle open document Apple Event Double-clicking on a project in the Finder will now open that project. --- macos/main.c | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/macos/main.c b/macos/main.c index 35491df..35d7872 100644 --- a/macos/main.c +++ b/macos/main.c @@ -301,10 +301,40 @@ static pascal OSErr HandleOpenApplication(const AppleEvent *event, static pascal OSErr HandleOpenDocuments(const AppleEvent *event, AppleEvent *reply, unsigned long refCon) { - (void)event; + OSErr err; + AEDescList docList; + long count, i; + FSSpec file; + Size size; + AEKeyword keyword; + DescType type; + (void)reply; (void)refCon; - return 0; + err = AEGetParamDesc(event, keyDirectObject, typeAEList, &docList); + if (err != 0) { + return err; + } + err = CheckRequiredParams(event); + if (err != 0) { + goto done; + } + err = AECountItems(&docList, &count); + if (err != 0) { + goto done; + } + for (i = 1; i <= count; i++) { + err = AEGetNthPtr(&docList, i, typeFSS, &keyword, &type, &file, + sizeof(file), &size); + if (err != 0) { + goto done; + } + ProjectOpen(&file, smSystemScript); + } + +done: + AEDisposeDesc(&docList); + return err; } static pascal OSErr HandlePrintDocuments(const AppleEvent *event,