あまつぶ

3.18 【PBの限界】

 まず、オンライン版でも少し書いたHideメニューなどが化ける件について。Filesタブの中の、Products→○○.app→Resources→English.lproj→InfoPlist.stringを開くと、メニューが化けている時に出てくる文字列らしきものが出てくる。ここを「Phut」などに変更してやればメニューが正常に表示されるようになった。
 アイコンについては、なぜかPhutではうまくいかないのだが、QT-QではBundle SignatureをBNDLリソースのものと同じにするだけでちゃんと表示された。もちろん、128*128などのアイコンは存在しないのだけど。

 ProjectBuilderのデバッガを使い、PhutやQT-Qがうまく動かない原因を探る。Phutでは、パッケージ化されたアプリケーションが起動しているかどうかの判定がうまくいっていない。また、インスペクタウィンドウが開けない問題や、アイテムをごみ箱にドラッグしても消せないといった問題もある。一部はXでは実現不可能なものもあるが、これらについてはなんとか解決していきたい問題である。
 まず、パッケージ化されたアプリケーションが起動しているかどうかが判定できていない問題について。これもオンライン版で書いたことだが、結論から言えば解決した。プロセスタイプとファイルタイプが一致しているかどうかを調べていたのをやめるとそれだけで正常に動いた。パッケージの場合は勝手に「PACK」というタイプだということにしてあったのだが、プロセスタイプは普通のアプリケーションと同じ「APPL」だったのが原因。ということは、パッケージの場合も「APPL」にしておけばいいような気もするが、面倒なので判定をなしにする方法にしておく。
 インスペクタウィンドウについては、AppleScriptからもうまく開けない(また、開いている状態から参照先を変更しようとしてもできない)ようなので、とりあえずはあきらめる。X対応版のFinderRegistry.hが出てくれれば解決しそうだが……。エイリアスについてはcAliasFileが定義されていない割には正常に動いたりして、それはそれで不思議だ。
 ごみ箱へドラッグした際の処理に関しては、GetDropLocation()で場所が取得できていないことがわかった。普通のフォルダにドラッグした場合には大丈夫なのだが、ごみ箱の場合はデスクリプタのタイプが「null」になってしまう(ProjectBuilderのデバッガではこれが1853189228と表示されてnullだと理解するのに苦労したが)。本当は「alis」が来るはずだが、まだこのあたりは実装されていないのだろうか。

 QT-Qでは、QuickTimeのエフェクトがまったく使えない、AppleScriptも使えない、GetPixMapInfoでエラーが起こっているという問題がある。
 QuickTimeのエフェクトについては、Image Compression ManagerがUnder Evaluationらしいのでおそらくまだ使えないのだろう。AppleScriptについてはSupportedになっているのだが、gestaltAppleScriptAttrを調べると-5551(=gestaltUndefSelectorErr)が返ってきてしまうのでこれもサポート外なのかもしれない。ここを無視して続けてみたらいけるのかもしれないが、どちらにしても正式版になってからの対応になりそうな感じ。
 GetPixMapInfoについては、IconPartyでも問題になっているところなので気になっていたのだが、デバッガで追ってみてもGetPixMapInfoを呼んだところで「GetPixMapInfo hasn't been written.」とエラーメッセージが出てくるだけでさっぱり原因がわからない。他のPictInfo関係のルーチンを試してみるとどれも同じ結果であったので、おそらくPBではまだ対応していないのだろうと思う。ドキュメントではSupportedになっているのだけど。
 JPEG圧縮とPNG圧縮に関してはなんの問題もなく動いてくれているのでそのあたりはよかった。なぜかイメージの一部を選択した時の枠が消えてくれないという問題があったりするけど……。

 結局、デバッガを使ってみてもたいした進展はなかった。コンパイル時の警告レベルが高いのとメモリチェックが厳しいおかげでこれまで見つけられていなかったバグをいくつか発見することができたのはよかったけど、OS自体の仕様が固まっていない状態ではいかんともしがたいところが多い。もう少しちゃんと動くようになったらCarbon Event Managerに手を出してみようと思っていたのだが、現時点では難しそうだ。
 どちらにしても次の更新時には正式版が届いているはずだから、その先の作業になるのかな。


March 11, 2001 ↑ March index → March 20, 2001