MailUnreadStatusBar

まぁ長い名前のプログラムですが。プログラムソースをほとんど書き換えて以前のバージョンと同じ機能まで出来たのでリリースしたのですが。10.4 ではクラッシュするらしい。10.5 の新機能は使ってないのに。調べたら、なんと先日投稿した「環境設定ファイルを読む」で使ったユーティリティ(plutil)のオプションパラメータが異なってました。10.5 では標準出力に出せるのですが 10.4 ではその指定が出来ないんです。仕方ないので /tmp に書き出して、それを読み込んで、最後に削除するように変更しました。

0.5.1 としてリリースしたのですが、今度は 10.5 でも動作しない方もいらしたようで。再度見直してファイルを読み込むのを普通の NSString で読むようにしました。今度は大丈夫かなぁ?

それと今回のリリース(0.6.0)はメールサーバ上のメールに対して未読チェックを行う機能を追加しました。まだ POP3 それも SSL 無しだけですけど。APOP は対応したので、まぁ使えるかも。次は IMAP4 です。これは現在色々試行中で、一応目途はついた感じです。認証の問題も残ってますけどね。SSL に関しては結構時間がかかると思われます。何かちょいちょいと出来る様な仕組みは無いのかなぁ…

最近分かった事

NSTableView でのソートがどうしても出来なかったんです。で、ウェブで探して見ると、なんと「IB で設定する」とか書かれてたんで、見てみると。有りましたプロパティウインドウにソートキー取得メソッドと比較メソッドの設定が。NSString とか NSDate とか標準で比較メソッド(compare:)を持っている場合は簡単です。無い場合は自分で書くしか無いのですが、NSArray のソートと同じだろうと思ってます。

MailUnreadStatusBar ですが、なんとか現状のプログラムまで持ってこれました。しかし、相変わらずプログラム内部から NSOutline の親項目を広げてもスクロールバーの表示が変ですけど。これもソートと同じくその内解決して欲しいなぁ。
で、近々バージョン 0.5b でリリースするつもりです。メールサーバをアクセスして未読チェックが出来る様になればバージョン 1.0 にするつもりです。

次は?

QueueMemo , iPalmMemo とバージョンアップして来ました。次は、と言うと。やはり MailUnreadStatusBar でしょう(名前が長い)。

内部での処理方法を大幅に変更する予定です。現状は AppleScript に依ってメールボックスやメールの未読を取得していますが、これを止めて ~/Library/Mail に有るファイルから取得する様に変更する予定。未読をチェックするメールボックスの設定あたりの操作性を変更(もう少し格好良くしたい)。メニューバーに表示するアイコンの追加・削除をユーザが出来るようにしたい。未読メール一覧を表示して送信者と件名を確認出来るようにしたい。最後にメールサーバを参照して未だ Mail.app に読み込んでいないメールをチェックしたい。これが出来ると Mail.app を起動して無くても未読チェックが行えるので。

最後のサーバをチェックするのを除いた部分が完成したらリリースするかも知れません(現状の機能と同等な状態)。

iPalmMemo も Mail.app の様な3ペイン形式にもしたいような、したくないような、迷ってます。1カテゴリにメモが沢山有る場合現状では見にくいと思うんです。カテゴリも別に階層表示する必要も無いですから。

環境設定ファイルを読む

と言っても自分の環境設定ファイルでは無く他のプログラムのです。自分ので有れば NSUSerDefaults で出来ますから。NSString で読み込んで propertyList で NSDictionary にセットしようとプログラムを書いて実行してみると、なんと NSString での読み込み時にエラーとなってしまいます。あれ〜?環境設定ファイルって普通の XML 形式じゃぁ無かったっけ??

調べる為にネットの海へダイブ、じゃ無くサーフィン。10.3 迄は普通のテキスト XML だったらしい、が 10.4 からバイナリ plist だそうな、ふーん。どうすれば良いの??

テキスト形式とバイナリ形式を相互に変換するコマンドが有るそうです。plutil これでバイナリ形式からテキスト形式にして読み込めば当初の目的が実現できる。ただ plutil はコマンドツールなので NSTask と NSPipe を使って plutil の出力を標準出力に指定して実行し NSPipe で標準出力設定した pipe から読み込む、っと。

実際に実行してみると、小さい環境設定ファイルだと NSTask の waitUntilExit で終わるのを待ってから読み込めるのですが、大きい環境設定ファイルだと何時まで経っても処理が帰って来ません。とりあえず waitUntilExit をしないで実行すると読めたんですが、正しくはどうするんだろう?

いい加減なQuickLookの作成方法

iPalmMemo 1.2.0 をリリースしたので、ちょっと気分を変えて以前少しだけ書いた QuickLook の作成方法を書いてみます。ただ、適当な作成方法なので雰囲気を知るくらいです。

Apple のドキュメントに Quick Look Programming と言うのが有りますが、私には読むのは無理なので適当にソースを見ながら作成します。大体サンプルとして Sketch と言うのが難しすぎます。記述自体は少ないのですが、元の Sketch のソースが膨大だし、そんなのを引っ張ってこられても「なんのこってすか?」状態になります。
まぁ愚痴はほどほどにして、まず Xcode で新規プロジェクトを作成します。タイプは「Standard Apple Plug-ins」の「Quick Look Plug-in」を指定します。

続きを読む いい加減なQuickLookの作成方法

I Love Macintosh