取り消す - Tiger の 切り捨て
2008.08.12
iTunesVolume 1.2 で Tiger を切り捨てたが、苦情のメールが来た。
その送り主からは以前 iTunes Gift
の寄付をいただいているので強く言い返す訳にも行かない。自分のペースでリリースしたいからフリーウェアにしていたのだが...
どうしようもないので Tiger をサポートする方針に戻すことにした。
Tiger を切り捨てた理由は前にも書いた通り、
- 1. 環境設定ウインドウの表示に NSViewController を使用
- 2. ZMHUDControls での描画に NSGradient を使用
するためだった。どちらも Leopard で追加されたクラス。
1 に関しては、NSViewController と同じ働きをするクラス "ZMViewController"
を自分で作って対処。意外と簡単にできた。
2、Tiger 以前でグラデーションを実現したければ
CTGradient を使う必要がある。
CTGradient に NSGradient と同じメソッドをカテゴリで実装。
しかし、問題が発生。NSGradient と CTGradient で結果が異なるのだ。
使用する NSColor
の透明度がすべて同じときは問題ないのだが、異なる透明度のものを使用すると互いに違う結果になってしまう。(画像は
[NSColor colorWithDeviceWhite: 1 alpha: 0] と [NSColor
colorWithDeviceWhite: 1 alpha: 1] で作ったグラデーション。)
どうすべきだろうか...
MobileMe のバグ?
2008.08.10
最近アップロードしたページ、Safari で問題なく見れていたのだが Google 検索での結果を見ると
なぜか
ファイルタイプ:不明
と表示されていた。
今日 ZMHUDControls の、ほかの Mac での動作を確認しようとサブマシンの PowerBook
G4 を久々に起動させて ZMHUDControls のページにアクセス(このマシンのみ Safari でなく
Firefox をメインブラウザにしてる)したら
こんなダイアログが表示されて、なぜか HTML ファイルをダウンロードして保存しようとする。
HTML
ファイルのヘッダが間違っているのかと思って文法チェッカでチェックしてみたら、多くのミスを発見。修正してアップロード。
だが、それでも状況は変わらなかった。Safari ではしっかり表示するのに Firefox
はファイルとして保存しようとする。
そういえば、これらのページには共通点が。
いつもは Finder から iDisk を使って Sites
フォルダにアップロードするのだが、問題の起こるファイルだけ MobileMe のページの「iDisk」を使って
Sites フォルダにアップロードしていたのだ。
Finder からアップロードし直してみるとしっかり表示された。
...MobileMe のバグ?
MobileMe のページで転送する方が Finder を使うより速度が速いので直るといいな。
影、復活
2008.08.10
「アプリケーションウインドウ」Exposé を実行したときにウインドウの影が消えてしまう問題の解決法を発見。
fixing an annoying exposé bug with
nswindows / entries / tonyarnold.com
ここによると、NSWindow
のウインドウレベルをデスクトップのレベル(kCGDesktopIconWindowLevel)以下にしたときに発生する問題で、あるウインドウのタグをいじれば解決するらしい。
いつからか自分の Mac でも起こっていてちょっと気になっていた。
zumuya
のソフトでウインドウレベルをデスクトップ以下にしているもの... そう、iTunesVolume。
setLevel: をオーバーライドして簡単に解決できた。
-(void)setLevel: (NSInteger)toLevel
{
[super setLevel: toLevel];
[self CGSetExposeFade: (toLevel >
NSNormalWindowLevel)];
}
-(void)CGSetExposeFade: (BOOL)flag
{
CGSWindow wid = [self windowNumber];
CGSConnection cid = _CGSDefaultConnection();
int tags[2];
tags[0] = tags[1] = 0;
OSStatus retVal = CGSGetWindowTags(cid, wid,
(CGSWindowTag*)tags, 32);
if(!retVal) {
if (flag){
tags[0] = tags[0] | 0x00000002;
retVal = CGSSetWindowTags(cid, wid,
(CGSWindowTag*)tags, 32);
}else{
tags[0] = tags[0] & 0x00000002;
retVal = CGSClearWindowTags(cid, wid,
(CGSWindowTag*)tags, 32);
}
}
}
iTunesVolume 1.2
2008.08.07
iTunesVolume
1.2 をもうすぐリリース。前のバージョンからちょうど一ヶ月。
- Tiger では動かなくなった。切り捨て。
自分もサブマシンの iMac は Tiger なのでちょっと困る。それでも Leopard で追加された
API を使いたかったのだ。
- HUD コントロールに ZMHUDControls
を使うようになった。
これも NSGradient を使っているので Leopard 専用。
- スライダーのつまみをドラッグすることで「次へ」「前へ」が操作できるようになった。
つまみを下の方にドラッグしてからカーソルの進んだ方向によって操作が変わる。
スライダーにできる操作が増えたのは久しぶりだ。
いい加減、これを「音量調節スライダー」と書かれることがなくなるといいな。
- iTunes がアクティブのときフローターを表示しないように設定できるようになった。
曲をいろいろ変えてるときに出てくるのは邪魔だった。iTunes Store
でいろいろ選んで視聴してるときとか。
- アートワークが非表示のときデスクトップがクリックできなくなる問題を修正。
- コンテクストメニューがすっきりした。
プレイリストメニューの階層も浅くなった。長過ぎるプレイリスト名は省略するように。この方法で。Deprecated だって?...キニシナーイ!
- TotalTunes Controls
用スキンをアートワークアピアランスとして使用できるようになった。
でも正直、あまりいいデザインのものがないと思ったり...
全部の iTunes コントローラが一つの形式のものを使うようになればいいのに。
- プラグインを追加できるようになった。詳細は後日。
- フローターで曲の長さを表示できるようになった。
右上にさりげなく表示。(↑このアートワークがフローターで表示したとき一番きれいに見える。)
最近「曲の年を表示できるようにしてほしい」なんて要望があるけど、作者はこれ以上表示項目を増やしたくない。
(このソフトの)フローターは「曲が変わったことを知らせる」ためのインターフェイスであって、「曲の情報を知る」ためのものではない。
作曲者や年など、詳しい情報が知りたいときは情報ウインドウを使ってほしい。
と英語で反論したいのだが英語力が...
- フローターの継続時間を変更できるようになった。
- 環境設定で使われるビューがそれぞれ独立した nib ファイルになった。
きわめて内部的な話。プラグインに対応するしくみをつくるために必要だった。
Leopard で追加された NSViewController
クラスを使ってる。切り替えるビューを作るのにぴったりだ。
調べていて見つけたのでメモ。NSViewController
を発展させたしくみをいろいろ考えてる記事が。英語だけどなかなか読み応えがありそう。アプリケーションはこのままシングルウインドウ化していくのかな...
個人的に Photoshop だけはマルチウインドウのままでいてほしいのだが。
ZMHUDControls 1.0
2008.08.05

とりあえずリリース。
ここからダウンロードできる。
思ったより実用的かも。
ソースコードも含んでいるので、ぜひ参考に。
あまりテストしていないので他の環境で正しく動くかどうか怪しい。
組み込んでみた
2008.08.04
いい感じだと思う。
とりあえず、
ここに
ZMHUDControls の TestApp を置いてみたので気になる人は動作確認を。
この Mac でしかテストしていないので他の Mac で動くかどうか怪しい。
いい感じ
2008.08.02
ZMHUDControls、細かい調整をした。必要な部品はそろっているので、とりあえず
iTunesVolume に組み込んでみる。
ちょっと困る
2008.08.01
このページを作るのに使っている RapidWeaver の仕様のようで、月が変わると RSS
でそれまでの記事が新着として再び登場してしまう。今のところ防ぐ方法をしらない...