OpenKitハンドラ一覧
以下のようなスクリプトでOpenKitを親プロパティとして組み込むと,そのスクリプトの内部ではOpenKitのルーチン(ハンドラ)を透過的に利用することができます。
なお、すべてのファイルパスは旧タイプの書式を用いて下さい。POSIXパスの場合の動作は保証できません。
なお、すべてのファイルパスは旧タイプの書式を用いて下さい。POSIXパスの場合の動作は保証できません。
property parent : script ":CoreObj"
--実行するスクリプトをこの後に記述する
必須イベント
Appleによって定められた,アプリケーションが受け取るべき必須イベントです。OpenKitはアプリケーションではないので,対応する必要がありません。OpenKitを使用してアプリケーションを開発する際には必要に応じて実装して下さい。
- run
- 一応定義されていますが、実際には何もしません。
- open
- 特にサポートしません。
- 特にサポートしません。
- quit
- 特にサポートしません。
droplet作成用ハンドラ
OpenKitをparentに設定してdropletを開発するためのルーチンです。
- openFinderItem(aFileList)
- アプリケーションのopenハンドラに与えられたファイルのリストをOpenKitのこのハンドラに渡すと、ファイルとフォルダに分類して全体の数を数え上げ、二つ以上の項目を処理するときはprogress barを表示します。
- openFile(aFile)
- ファイルへの処理を行います。OpenKitにはダミーで空のハンドラが用意されているので、それを各アプリケーションのスクリプトの中で再定義して上書きします。
- openFolder(aFolder)
- フォルダへの処理を行います。OpenKitのハンドラはフォルダの中身を再帰的にリスト化してフォルダはopenFolderへ、ファイルはopenFileへ渡します。フォルダの中の再帰的処理を回避するためには、このハンドラと次のcountFolderハンドラを空のダミーハンドラで上書きして下さい。
- countFolder(i)
- OpenKitがフォルダの中身を再帰的に数え上げるために使用しています。
|
スクリプトオブジェクト共有ライブラリ規格対応ルーチン
MacLab.独自のスクリプトオブジェクト共有ライブラリ規格で規定された必須ルーチンです。OpenKitは独自にこれらのルーチンを実装していますが、アプリケーションを開発する際には同名のルーチンを組み込み,そのアプリケーション独自のデータを返すようにして下さい。
- returnName()
- スクリプトの名称を文字列で返す。
- returnVer()
- バージョン番号を実数で返す。
- returnInfo()
- スクリプトについての簡単な紹介を文字列で返す。
- returnCR()
- 著作権情報を文字列で返す。
スクリプトオブジェクト共有ライブラリ読み込みルーチン
スクリプト共有ライブラリ規格のページで提供されている他のライブラリを読み込みます。このルーチンから,他の多くのスクリプト共有ライブラリの持つ機能にアクセスすることができます。
- loadObj(ObjName)
- アプリケーションパッケージ内のScriptフォルダ、システムやユーザーのScript Libraryフォルダなどから指定した名称のスクリプトオブジェクト共有ライブラリを読み込んで返す。読み込んだライブラリの機能はtellブロックなどを用いて利用することができる。アップルがOS X Mavericksで同様の機能を作成する以前から、MacLab.のスクリプトは漢字Talk上でこれを実現していました。
環境情報を判定するルーチン
- checkX()
- Mac OS Xであればtrueが、Classic Mac OSであればfalseが返ります。
- checkPanther()
- Mac OS X Panther以降であればtrueが返ります。同様に、checkTiger〜checkSnowLeopard〜checkMtLion〜checkElCapitan〜checkSierraまで利用可能です。
- myApp()
- 実行中のアプリケーションを返す。
- myAppName()
- 実行中のアプリケーションの名称を返す。
- myAppPath
- 実行中のアプリケーションへのパスを返す。
ファイル操作に関するルーチン
- writeText(aFile, msg)
- テキストファイルを書き出す。パラメータは,aFile はファイルの場所,msg は保存する文字列。文字コードは自動判定されます。
- readText(aFile)
- テキストファイル(ファイルのデータフォーク,バイナリデータ)を読み出す。文字コードは自動判定されます。
文字列を処理するルーチン
- replaceText(msg, pre, post)
- 文字列置換ルーチン。AppleScriptが得意とするリストによる文字列の高速置換処理はよく知られていますが、データが大きくなるとクラッシュの原因となることがわかっています。このルーチンはこの問題を避けるため、やや低速ではありますがより安定した文字列置換ルーチンを提供します。
- myFolder(thePath)
- 指定したファイルパスを含むフォルダのパスを返す。たとえば、「Macintosh HD:Documents:test.txt」に対して「Documents」と返す。
- myName(thePath)
- 指定したファイル名またはファイルパスの拡張子を除いたファイル名を返す。たとえば、「Macintosh HD:Documents:test.txt」に対して「test」と返す。
ユーザーインターフェースを簡単に記述するためのルーチン
- smartSay(msg)
- msgの内容が日本語が英語か判別し、適切な音声で読み上げる。
- dDialog(msg, theIcon)
-
display dialog msg with icon theIcon buttons {"OK"} default button 1
を毎回書くのが面倒だったので作ったルーチン。指定した文字列とアイコンでボタンがひとつだけのダイアログを表示する。15秒で自動的にタイムアウトする。 - errorObj(msg, eStr, eNum)
-
煩雑なエラー処理を自動的に行うスクリプト。try制御文と組み合わせて以下のように利用する。
try
-- Script to be done
on error eStr number eNum
errorObj("Error in reading file.", eStr, eNum)
end try - notification(aTitle, aSubtitle, aMessage)
- 通知センターに簡単に通知を表示します。Maverick以降では通知センターに通知、それ以前ではGrowがあればそれを使用し、なければそれなりに処理します。
- notify(msg)
- もっと簡単に通知センターを利用します。
- ChooseList(msg, theList)
- 標準のリスト選択ダイアログはキャンセルボタンの振る舞いなどがいろいろおかしいので、かわりにこれを使用。
クリップボード関連のルーチン
MacOS 8.5以降は標準でクリップボード関連の命令が組み込まれていたが、それ以前からクリップボードを利用するための試みがあり、過去との互換性のためのルーチン。
- getClip()
- クリップボードの中身を取得する。MacOS 8.5以降の標準機能追加のクリップボード関連の命令のかわりにこのルーチンを使用すると,MacOS 8.1以前でも動作するスクリプトアプリケーションを作成できる。MacOS 8.5以上またはJon's Commandインストール下ではそのままシステムの命令を呼び出すが、MacOS 8.1以前ではClipboard Objectの持つ同名のルーチンを呼び出す。
- setClip(anyData)
- 指定されたデータをクリップボードに入れる。MacOS 8.5以上またはJon's Commandインストール下ではシステムの命令を利用するが、MacOS 8.1以前ではClipboard Objectの持つ同名のルーチンを呼び出す。
DataCompObj形式の読み書き
AppleScriptで変数に格納することができるいかなるデータでもバイナリデータに読み書きすることができる命令。MacLab.独自のDataCompObjファイルフォーマットになります。
- readDataFile(thePath)
- DataCompObj形式で保存されたファイルのデータを標準モードで読み込む。MacBinary化されている場合など、標準的な動作では読み込めなかった場合、DataCompObjの同名のルーチンが呼ばれるようになっている。
- writeDataFile(thePath, theData)
- データを指定したファイルに保存する。実行にはDataCompObjがインストールされている必要がある。DataCompObjの読み込み動作をいちいち記述しなくてもこのハンドラを呼ぶだけでいい。