このページは過去に掲載していたものをそのまま使用しています。
DiaはC言語で作成するのが無理だと言わんばかりの 構造を持っているように感じます。素直(かな…?)にC++で作成すればいいのに なぁ、と思います。そんなDiaの構造を読むのに参考になりそうな事というより、 むしろメモに近いことを残すことにします。
附属のREADMには、「lib/object.hを読むべし」とあります。 このObjectという構造体がDiaでの描画、内部データ構造を理解する上で 重要になってきます。その他にもfont.hやrender.hは描画とEPS出力の 部分を理解する上で重要です。
しかし実際は、app/app_procs.cから処理が始まっているので、 処理の全体を知りたい場合には、ここを基点にすると良いでしょう。
makeをすると作成される、app/diaというのはシェルスクリプトなので このファイルをeidtorで開いて、最後のほうに次のような仕掛を入れておきます。 (赤字になっているところを追加)
PATH="$progdir:$PATH" export PATH exec gdb $program ${1+"$@"} $echo "$0: cannot exec $program ${1+"$@"}" exit 1 fi
まぁgdbが使えないとどうしようもないですが、これでrender_eps.cや text.cなどにブレークポイントを仕掛けることでだいたいの処理の流れを 見る事はできます。
実行するときにはapp/run_dia.shを実行してください。 app/diaを実行するために必要な環境変数の定義などを行なって います。
こんな事を参考にしながら、自由気ままにdiaを改造してみてください。
dia-0.83.tar.gzを展開すると、dia-0.83というディレクトリの下に いくつかのサブディレクトリが展開されます。
日本語化に関係のありそうなディレクトリはこれぐらいですね。 それぞれについて簡単な説明をします。
文字通りアプリケーションのsourceが入っています。処理の最初は main.cよりもapp_procs.cに書いてあります。処理の流れを読みたいなら ここから読むと良いでしょう。またgtk, gnomeに独特な書式については それぞれの関係するwebサイトのチュートリアルなどが参考になります。
app/で使われる基本的なデータ構造が定義されています。その他にも 基本的な部品である線やテキストといったものもここにあります。 READMEを読にも書いてありますが、object.hの内容をまず読むと良いでしょう。
この中にはUMLや回路図用の部品のためのsourceが入っています。
いわずとしれたgettextに対応したアプリケーションにあるディレクトリです。 この中にあるdia.potというファイルをja.poなどの名前に変更してmstidに対応する 日本語の文字をmsgstrに入れておけば自動的に日本語化されます。
実際はおおよそ日本語化されたja.poファイルが、あらかじめ附属するので これを元に追加をしたり自分の言葉でメッセージを入れたりすることができます。