タイトル【Carbon化シリーズ】Carbon化するプログラムは?カテゴリーCarbon/CF, Carbon化
作成日2000/4/29 11:49:38作成者新居雅行
Carbon化を行うアプリケーションは、筆者が以前に出版した「Macintoshアプリケーションプログラミング」(ディー・アート刊)で紹介した、TextDrawというプログラムだ。自分でソースコードを作ったものだけに、いちおう隅々まで知りつくし…と言いたいところだが、この書籍は、実は5年も前に書いたものだ。その後は、実のところ、JavaやAppleScript、Perl、PHPあたりを中心にやってきたこともあって、自分で1からCで作ったいちばん最近のものがTextDrawだったりもする。その意味では、自分で作ったプログラムながら、自分でも怪しい。もっと他のプログラムをベースにしてもいいのだが、ひととおりいろいろな機能が入っている方が、問題点も出てきやすいと考えて、TextDrawを使うことにする。書籍では、TextDraw IIIというバージョンだが、Carbon化するのはTextDraw IVにしよう。実はこの書籍は、絶版寸前で、入手が困難かもしれない。上下の2巻なのだが、バランス良く売れるわけではなく、下巻が入手しづらい状況だったが、1999年中ごろに増刷されているので、注文すれば入手できないわけではないと思われる。定価は各巻\3,689だ。中途半端な値段に消費税率が3%だった時代を懐かしんでしまう。
TextDrawについて、概要を紹介しておこう。マルチウインドウやメニューといったアプリケーションの基本をまずクリアしているのは言うまでもない。名前の由来は、TextEditのオブジェクトを、ドローソフトのようにウインドウ内に自由に配置できるようにしたところから来ている。もちろん、TextEdit内での文字列編集は可能だし、マルチスタイルであり、さらにインラインまで可能である。オブジェクトとしてはリストも埋め込めるようになっており、リストのセルをインラインで編集できる。Drag Managerを使って、たとえばFinderからPICTファイルをドラッグして、オブジェクトとして埋め込めるなどしている。AppleScriptに対応しており、配置したオブジェクトをスクリプトコントロールが可能だ。ただし、当時のシステムの制約から、パレットなど、今時のアプリケーションでは当たり前な機能は省略されている。
それではいきなりCarbonLibをリンクして…と言いたいところだが、まず、現状のUniversal Header 3.3.1(CarbonLib SDK 1.0.2に付属)で、きちんとコンパイルできるかをチェックすることにした。また、TextDrawIIIは、FATバイナリ(こういう言葉も数年後には死語だろうな…)ではあるが、CarbonはPowerPCのみなので、PowerPCアプリケーションの生成だけでかまわない。プロジェクトも、PowerPCの生成だけに変更する。Carbon化する前に、まずはコンパイルを通すようにするという作業を行ってみた。果たして、そのままうまく行くか…何とエラーが出る。スクロールバーを生成する部分でエラーが出る。TextDrawIIIは漢字Talk時代のアプリケーションであり、旧来のスクロールバーを利用する部分でエラーが出てしまう。スクロールバーのコントロールプロシージャを指定する定数が、いままでインクルードしていたヘッダでは定義されていないのである。
もちろん、なんとかするという手もあるが、ここは少し欲張ってみた。コントロール類はMac OS 8で大きく変化をし、現状のMac OS 9ではAppearance Managerベースのスクロールバーを使うのが一般的だ。スクロールバーのつまみの大きさが状態に合わせて変化するやつだ。とりあえず、スクロールバー関連のエラーしか出ていないので、Carbon化にとりかかる前に、Appearance対応のスクロールバーにすることにした。
(続く)
関連リンク