top

TOP  RSS  Login

Perl - Mac::Growl

perldoc Mac::Growl の邦訳。


名前

Mac::Growl - Mac OS X 上で Growl 通知の登録と送信を行うための Perl モジュール

書式

use Mac::Growl ':all';

RegisterNotifications("MyPerlApp", \@allNotifications,
  \@defaultNotifications[, $iconOfApp]);

PostNotification("MyPerlApp", $notificationName, $notificationTitle,
  $notificationDescription[, $sticky, $priority, $image_path]);

概要

Mac::Growl は、Mac OS X の通知アプリケーションである Growl へ登録と通知を行うための単純な通知方法を perl アプリケーションに提供する。

Mac::Growl は二つのメソッドを定義している:

RegisterNotifications(appname, allNotifications, defaultNotifications[, iconOfApp])
RegisterNotifications は通知の送信を行うアプリケーションの名前、アプリケーションが送信する全ての通知リストへのリファレンス、デフォルトで有効な通知の配列へのリファレンスを受け取る。また、アプリケーションでデフォルトで使われるアイコンの名前も任意で受け取る。
PostNotification(appname, name, title, description[, sticky, priority, image_path])
PostNotification は、送信を行うアプリケーションの名前(通常は Register 呼び出しに渡したものと同じ)、通知名(Register に渡された allNotification リストに含まれているべきもの)、Growl で表示されるタイトルおよび概要を受け取る。また、"sticky" フラグ(真ならば通知を消去するまで表示させたままにする)、"priority" フラグ(低いものから高いものまで -2 から 2 の値)、およびイメージパス(通知に利用されるイメージを含んだファイルへのパス)を任意で受け取る。

その他の情報を得るには、http://growl.info/documentation/applescript-support.php を参照すること。Growl とどのように協調を行うか詳述されている。AppleScript 特有の記述であるが、概念はこのモジュールにも当てはまるものである(ただしイメージのファイルパスには URL を用いず Unix パスを用いる)。

Unicode

Mac::Growl は渡される文字列が高いビットを持つものである場合、それが UTF-8 であることを想定されている。文字はユーザ側で適切にエンコードされなければならない。これは utf8 や Encode モジュールで可能である。例:

use utf8;
utf8::encode($string);

あるいは:

require Encode;
$string = Encode::encode('utf8', $string);

文字列が "Perl の内部表現" 以外の表現に含まれないものを扱う場合 ― 例えば、他のソースから MacRoman 文字列を渡す場合 ― Encode を使用して行うことができる:

require Encode;
Encode::from_to($string, 'MacRoman', 'utf8');

注意

アーキテクチャ

このモジュールは、Mac OS X に含まれておりデフォルトでシステムにインストールされているおそらく唯一利用可能なモジュールである Foundation を使用するように設計されている。(ユーザ自身でビルドされた perl を利用するなどで)Foundation が利用できない場合、このモジュールは Cocoa API の代わりに Apple Events を使用して Growl と通信を行う。

そのために様々な perl モジュール、優先順に Mac::Glue, Mac::OSA::Simple, MacPerl("DoAppleScript" が定義されている), Mac::AppleScript が利用可能であるか試みる。どれも利用可能でない場合は、osascript(1) を利用する。これは全ての Mac OS X マシンで利用可能であるはずのコマンドラインプログラムである。

メソッドは、テキストを UTF-8 で通す代わりに MacRoman へ変換するいくつかの AppleScript メソッド(Foundation と Mac::Glue 以外のもの全て)を除いて全て同様に機能する。また Foundation を使用する方法では、現在のユーザではなく全てのログインユーザに通知が送信される。

アーキテクチャの高度な選択

ユーザはどのアーキテクチャを利用するか、モジュールをロードするよりも前に $Mac::Growl::base を定義することで指定することができる。例:

BEGIN { $Mac::Growl::base = 'Mac::Glue' }
use Mac::Growl;

この変数の値として取り得るものは以下の通り: Foundation, Mac::Glue, Mac::OSA::Simple, MacPerl, Mac::AppleScript, osascript 注意: 通常はこれを行ってはならない。ほとんど全ての場合において、デフォルトのものを利用することが賢明である。これを行うことが必要となる確認されている唯一の場合として、X-Chat がある(X-Chat は Foundation がロードされると落ちてしまう)。

エクスポート

デフォルトでは何もエクスポートされない。

SEE ALSO

著者

Nelson Elhage, Chris Nandor

COPYRIGHT AND LICENSE

Copyright (C) 2004−2006 The Growl Project. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


リンク

Last modified:2009/03/23 12:59:42

xb

0.799104