« CodeWarriorからXcodeへ | メイン | TMPGEnc 3.0 XPress Ver.3.3.1.101 »
2005年7月18日
CodeWarriorからXcodeへ 2
昨日の続きです。今までリソースベースだったScrubDelete Xの設定ダイアログをInterface BuilderのNibベースに変更してみました。結論から言うと、Interface Builderで各コントロールにSignatureとIDを設定しておいて、プログラムからGetControlID()で取得するという方法でやりました。Carbon Eventには以前から対応してあったので、これで最小限の変更で済みました。見た目は以前とほとんど変わりませんが、古くさいリソースとおさらばできてなんだか気持ちがいいですね(笑)
ところで、このSignatureとIDってどういうふうに使い分けるべきなんですかね。自由に使えばいいんでしょうか。悩んだ挙げ句、とりあえずSignatureは使わずにIDのほうに以前の'DITL'リソースのアイテム番号を入れました。リソースからの移植の場合は、これでヘッダファイルの修正が最小限で済みますね。
他にもまだ分からないことがあります。Interface Builderには複数のラジオボタンが連なったラジオグループというオブジェクトがあります。便利そうなのでぜひこれを使いたかったのですが、これってボタンの数が奇数の場合はどうするんですかね。ScrubDelete Xには5個のグループがあるんですよね(^^;) Cocoa用(?)の場合はダブルクリックで選択して非表示にできますが、Carbon用ではだめなようです。結局どうやるのか分からなかったので、とりあえず単独のラジオボタンで(つまり従来どおり)やってしまいました。
また、例えばあるチェックボックスをオフにしときに他のコントロールをDeactivateControl()するような処理がうまくいきません。単純なミスはしてないと思うのですが、変化しないんですよね。この件はまだあまり調べていないんですが、今日は時間切れ。また今度。
関連リンク
・CodeWarriorからXcodeへ (2005年07月17日)
・CodeWarriorからXcodeへ 2 (2005年07月18日)
・CodeWarriorからXcodeへ 3 (2005年07月25日)
・CodeWarriorからXcodeへ 4 (2005年07月26日)
コメント
よろしければコメントしてください。
※メールアドレス以外の項目はこのページ上に公開されます。個人情報などの入力にはご注意ください。