Sample codes of AppleEvent
using appleEvent!
"openDocument!"
| aFile aSignature application |"choose file"aFile := FileSpecifier getFile. aSignature := 'YoED'."define application from signature"application := AEDescriptor newFrom:aSignature type:'sign'."create AppleEventObject"theEvent := AppleEvent newClass: 'aevt' selector: 'odoc' target: application returnID: nil transactionID: nil. theEvent atParameter: '----' putData: aFile asFSSpec type: 'fss '."send!"theEvent sendMode: 1 priority: nil timeout: nil.
"openDocument with YoEdit"
| aSignature application finder |"signature of YooEdit"aSignature := 'YoED'."find YooEdit Application in SyastemVolume"application := (DTPB fromVolume: (VolumeSpecifier systemVolume)) getApplication: aSignature."define Mac Finder"finder := AEDescriptor newFrom:'MACS' type:'sign'."AppleEvent instance for open Application"theEvent := AppleEvent newClass: 'aevt' selector: 'odoc' target: finder returnID: nil transactionID: nil."send appleEvent"theEvent atParameter: '----' putData: application asFSSpec type: 'fss '."wait until starts"theEvent sendMode: 3 priority: nil timeout: nil.
AppleEventHandlerを用いてアイコンのDrag&Dropで起動するSTA Applicationをつくること ができます。手順は以下です。説明だけではわかりにくいと思われるので、後日、 sampleを紹介します。
1)AppleEventHandlerのサブクラス作成 2)例えばodoc,quit等の他にselectorを定義する場合は、StartingUp (ClassMethod)を再定義する。 3)handleAppleEvent: theAppleEventParam reply: replyParamの Switch文の分岐部分を再定義する。 4)自分のModuleをlaunchするときに作成したAppleEventHandlerの サブクラスをStartingUpするよう定義する。 5)ResEditで、TypeとCreatorを再定義する。