8.18 16:00
成章高校、ベスト8進出おめでとう。京都に住んでいるだけにやっぱり京都の高校が勝つとうれしい。あとはどっちかというと関西の高校を応援してしまうな(笑)。
久々に新しいソフトを書いた。Diabloで接続するサーバを選ぶソフト。Windows版があって、Mac版がほしいという要望があって作ってみたもの。Windows版の作者の方に連絡しているところなのでまだ公開はしていないが、今のところsent'sで公開する予定。その後たぶんここでも公開すると思うけど、未定。
Windowsでは、初期設定のたぐいはレジストリというところに書き込まれる(ほかに〜.iniというファイルもあるが)。Diabloの設定(というよりBattle.Netの設定だが)もここに書き込まれている。Windows版のサーバ選択ソフトではこの部分を書き換えて特定のサーバにだけつながるようにしているというわけ。このソフトを手に入れる前も、うまく希望のサーバに繋がらないときはレジストリをいじったりしたもんだ。
Macでは初期設定は初期設定フォルダ内に初期設定ファイルを作ってそこに書き込むというのが流儀になっている。Diabloの場合は「Diablo
Prefs」というファイルに設定が書き込まれている。設定はだいたいリソースとして書き込むのが一般的で、Diabloでもそうなっている。HKEYというリソースを開くとWindowsのレジストリと同じような名前のついたリソースが並んでいる。このなかのサーバリストを開けばサーバのリストが入っている。ここをいじってやれば接続サーバを選択できるという仕掛けだ。
やることがわかっていればあとは簡単だ。まあイベント処理やらなにやらを書いてやらないといけないからそのあたりはめんどくさいんだけど(笑)、まあ2時間くらいあればできるかなと。結局2時間半くらいかかったけど、一応完成。コンパイルが通ってリンクできて実行してみるとなんと一発でうまくいった。それからアピアランスに対応させたりして…って感じかな。
サーバを選んだあとにDiabloを立ち上げてくれる機能をつけようかなと思っているけどまだそのあたりは未定。実装自体は簡単なんだけどどうしようかなぁ。
Appearanceの続き。ダイアログをAppearanceで設定されている背景色で塗るようにするにはどうしたらいいのかなと思ってドキュメントを読んでみたらdlgxリソース(アラートの場合はalrxリソース)を追加してやればいいらしい。さっそくやってみるとちゃんと表示されるようになった。これでなんとかAppearance対応ということにしてリリースできるかなと思ったのだけどちょっとあまかったらしい。ほとんどのダイアログはこれでうまくいったのだけど設定追加/編集ダイアログがちょっと妙な感じになってしまった。
どう変かというと、上のようにテキストを入力する部分がちょっと変なのだ。周りの枠が妙に太い。また、枠の内部に黒い部分ができてしまっている。本来なら
こんなふうになって欲しいのだが…黒い枠が出てしまうのはひょっとしたらテキスト入力の部分が小さすぎるからかもしれない。周りの枠の太さというのはたぶんなんらかの方法で変えられるのではないかと思うのだがこれはリソースでは無理なのかな…。
ここを直すことができてポップアップメニューの絵を変更して…というところまでできたら初期設定が読み込みしかできない場合の処理を追加して1.2にしようと思う。全自動モードについては1.3以降の課題か。1.3ではAppleScript関係もなんとかしようかなと思っているけどどうなることやら。それからAppearanceを使うかどうかというのを選ぶことができる方がいいのかなという気もする。どんなもんかな?
関係ないけどImageReadyのトライアウト版の使用期限が切れてしまったので最近のgifファイルはclip2gifで作っている。色数の調整とかサイズの確認がやりにくいけど買うお金もないししばらくはまたこのソフトでいくつもり。
8.18 21:00
やっぱり違和感があるので同じ日の話題は新しいものを下に書いていくことに変更。これまでのものと統一制がなくなるがこれから全部変更するのも面倒なのでいいや。
前回書いたAppearanceの件。なぜか枠が太くなってしまっていた原因はしょうもないバグのせいだった。Apperance
Managerを使わない場合にはダイアログのデフォルトボタンの枠が自動的に表示されてくれないので、自分で枠を表示するルーチンを作ってそれを使っていたのだが、ここでペンの太さを変更したままにしてしまっていた。最初それに気付かず、Appearance
Managerが有効な場合にはこのルーチンを通さないようにして解決したのだが、この部分のソースをよく見てみたら原因を発見。
バグを修正したからこのルーチンを呼ぶようにしていても別に構わないのだけど意味のないルーチンを呼んでいるのも気持ちが悪いので通さないままにしておいた。しかしペンのサイズを変更していると枠が太くなるというのはなんか驚いた。
ポップアップメニューの絵が浮いてしまっているのは、別に絵を作って一応解決。うまく絵の部分だけ置き換えてダイアログは共有できないかなと思ったのだけどスッキリした方法が思いつかなかったのでダイアログのリソース自体別にしてしまった。なんか方法があるのではないかと思うけどま、いいや。Appearance
Managerを使えばポップアップメニューを表示するボタンが使えるからそれを使うように書き換えようかと思ったのだけどインタフェースがちょっと変わってしまうので保留。
これで無事1.20をリリース。しかしまあいつものように1.21とか1.22とかをリリースすることになりそうな気もする(笑)。ま、20日から暇があまりなくなるのでなかなかバージョンアップしないと思うけど。
|