あまつぶ

2.18 【続Xへの移行】

 IconParty carbonで気になっていた問題をいくつか修正(1.20b4)。
 まずは、デスクトップから色を得る機能から。ふと、画面イメージを取り込むソフトがあるならばその一部から色を得ることくらい簡単にできるはずだと思いつく。だけど、問題は、画面の任意の場所をクリックされるとアプリケーションが切り替わってしまうことだ。Classic版では、それを回避するためにイベントを一切無視するという方法をとっていたが、Xで動かすアプリケーションではそれはまずい。
 Skecthっていう最初からついているアプリケーションには、画面の任意の場所から色を得る機能がある。これと同じことをしてやればいいのだろうけど、どうやればいいのかさっぱりわからない。結局、サンプルコードのSuper SnapshotとFullScreenを組み合わせて、画面イメージと同じフルスクリーンのウィンドウを作ってみることにした。
 最初ウィンドウを作ってから画面イメージを取り込むというコーディングをしてしまい、画面の内容が一切つかめなかったのだが(当たり前)、先にGWorldにいれておいてからやってみたらあっさり成功。サンプルコードにあるようにPixMapを用意するだけの方法とどちらがいいのかわからないけど、どうなんだろ。それから、8.5では、EndFullScreenを呼んだあとにメニューバーがちゃんと表示されないという問題が起きた。しかたがないので、HideMenuBarとShowMenuBarを呼ぶことで回避。Xではどうなのかわからないけど、同じコードで問題なく動いたのでよしとしておこう(汗)。
 Xでは、画面下のドックがフルスクリーンのウィンドウより前に表示されてしまうため他のアプリケーションを隠しても切り替えができてしまう。そうするとちょっと問題があるわけだけど、戻ってきてクリックすれば復帰できるからとりあえずはよしとしよう。そういえば戻った時にカーソルを変更する必要があったかな。ま、それは次のバージョンで。

 Opt+Oでマスクを表示する機能についてはオンライン版で書いたようにQDFlushPortBufferで見事に解決した。が、その副作用か、キーをはなした時に一瞬点滅してしまうことが判明。別になにをしているというわけでもないのだが、謎だ。
 他の細かい問題も徐々に対処しているところ。「Carbon版での制限・問題点」もだんだん減ってきているが、解決しなければいけないところはまだまだある。がんばろ。

 QT-Qは進展なし。GetResourceのあとにResErrorやMemErrorをチェックしてみたけどどちらもnoErrが帰ってくるだけ。なんで……? あとは他のリソースをチェックするくらいしかやることがないんだけど。うーん。
 ひょっとして、リソースチェーンに入ってないのかもしれないと思い、InsertResourceFileを呼んでみたりしたけど、これは8.5ではデバッガに落ち、Xでは異常終了するだけだった。

 Carbon版のドキュメントを試験的にRTFで作ってみようかなと思っているのだが、RTFを扱うことができるソフトがない。クラリスワークスで開ける書類のリストにRTFってあるんだけど、開いてみたらEOFがおかしいとかなんとか言われてしまった。フォーマットが違うのかなぁ。あー、unicodeだから?? WindowsのWord2000で開いてみたらこれはあっさり開けた。フォントが変わってしまうけど、ちゃんと読める。しかし、Winでドキュメントを書くってのも変な話だし、まいったな。
 8.5でも動いてX用のドキュメントを作ることができるソフトってあるのかな……。

 2.12にFTPソフトがあるかどうかわからないと書いたが、FetchのX対応版があるみたい。ベータ版を落としてみて動かしてみたら、初期設定ファイルやショートカットも互換性があってそのまま使うことができた。ここは移行もすんなりといけそうな感じだ。

 UDFのボリュームでのリソースの扱いがどうなるのか気になっていたのだけど、ファイル名の違う不可視ファイルに保存されてちゃんとサポートされるという話を聞いた。ってことは、これまでのソフトをUDFのボリュームに入れた場合なども同じように問題なく動くってことか。これは朗報だ。


February 12, 2001 ↑ February index → February 24, 2001