NSTextFieldという文字入力用のGUI部品をAppleScriptから角度変更ができることを見付け、その日のうちに試作品を作り上げたのが「TextField Clock」こと「記入欄時計」だ。
このソフトに実用性はない。絶対にない。
……友人筋から即座にツッコミがきた。
「NSTextFieldであることを強調するために、文字は編集できたほうがいい」
「時刻を文字で併記するのは、言い訳がましい。男らしくやめてしまえ」
前者は1分ぐらいで対応。後者についてはなかなか判断が難しかった。とりあえず針が動くところだけ分ればよいと思っていたので、文字による時刻表示なしで現在時刻がどの程度分るかといえば……かなりつらい。
そこで、Rounded Buttonで12時、3時、6時、9時を作成し、ほかはラジオボタン用の小さい部品で表現してみた。
しかし、色が異なるためにラジオボタンとRounded Buttonが合わない。当初予定よりも全体のサイズが大きくなることを覚悟の上で、Rounded ButtonのNormalとSmallの2種類を使うことにした。これなら、色は同じだ。
しばらく実行させたまま観察していると、どうやら普通の時計と同様の位置に文字盤にあたるRounded Buttonを置くと、時間を把握しづらくなるようだった。すべて、実際に針を動かして「ちゃんと時刻を一目で見て分る」位置に文字盤を動かした。2〜3度傾いた時計といった趣だ。
デフォルトで文字盤の表示はオンにしたが、オフにできたほうがよいという声もあるに違いないと考え、メニューから表示の切り換えができるようにした。
さらに、表示の透明度についてもミニサイズのスライダーを設置して変更できるようにした。
よく考えてみたら、どこのOSでも標準装備されている時計アプリケーションなんてMac用に作ったことがなかった。自分が時計を作ることになるとは……!
昔作った時計アプリケーションといえば、ポケットコンピュータ用の「でぃじたる和時計」というもので、現在時刻を昔の時刻表示で随時表示するというもの。時計のアプリケーションは実にそれ以来だ。
話を元に戻す。「記入欄時計」の機能についてである。
どうせ冗談ソフトなので、それほど機能を突っ込んでも仕方がない。本気のソフトかどうかというのは、自分としてはUser Defaultを使うかどうかで区分けしている。ちょっとしたアイデアを形にした程度のものではUser Defaultを使わないのだ。
このまま機能を増やしていくと、
・短針、長針、秒針のカラー変更
・バックグラウンドカラー変更
・時報機能
・アラーム機能(iTunesの曲で指定)
・キッチンタイマー機能(別名、ラーメンタイマー)
・iCalと連携したスケジュール表示機能(秒針などのNSTextFieldに予定を流す)
・メールの着信表示。秒針に着信したメールのSubjectを表示
という感じのソフトになるだろう。PowerMateと連携させてもいいかもしれない。カラー変更用のドロワーまで作り込んで、はたと気づいた。
「そんな本気で作り込んではいけない……!」
冗談アプリにそんな豊富な機能があってはいけないのである。
思えば、NSTextFieldというのは本来以外の用途に使うことの多いGUI部品だ。ただの文字入力用フィールドだったりするが、影の描画をキャンセルして引き延ばしてウィンドウの地に敷いてみたりする。グラフ代わりに使ったこともあるかもしれない。
その代わりといっては何だが、当初はこのアプリケーションに作るつもりがなかったアイコンを作ってみた。Interface BuilderのインスペクタでNSTextFieldの情報を表示させているところを抜き出したアイコンだ。
また、AppleScriptセミナーの告知を終了時に表示するようにした。このぐらいはやってもよいだろう。ただし、このメッセージは10月1日を過ぎると出ないようになる。