人気ブログランキング | 話題のタグを見る

BAutolock と Autolock テンプレート

SHINTAさんのとこHaiku Coding Guidelines の中に BAutolock を使うなという記述があることを始めて知りました。でも代わりに使えという Autolock テンプレートがどこにあるのかわからなかったのでググって見ました。せっかく調べたので書いておきます。

結局、Haiku 内で Autolock テンプレートを見つけることはできなかったんですが(どこかにあるのかな?)どうやら Haiku Coding Guidelines は、OpenTracker の Coding Guidelines を元にしているようです。全く同じ表現があります。で、OpenTracker には、AutoLock.h というものがあるのでこれが Autolock テンプレートではないかと思います。ただし、このクラス、もともとは Be Newsletters - Volume 4: 1999 にあるものではないかと思いますが。

んでもって、BAutolock と Autolock テンプレートの違いといえば、

  • BAutolock はテンプレートじゃないので引数に BLocker と BLooper をそれぞれとるバージョンが存在する。一方、Autolock テンプレートは Lock()、Unlock()、IsLocked() を実装するクラスなら何にでも適用できる。(具体的には BBitmap にも適用できる)
  • BAutolock はコンストラクタでロック、デストラクタでアンロックという使い方しかできないが、Autolock テンプレートはコンストラクタでロックせずに必要になったときにロックしたり、任意のタイミングでアンロックができる。
くらいのものみたいです。

BAutolock は「スコープに合わせて自動的にロック・アンロックする」という目的だけを持つ非常にシンプルなユーティリティとして提供されているものだと思うので、サードパーティのアプリケーションが目的に合わせて BAutolock を使うことは特に問題ないと思います。
Haiku Coding Guidelines はあくまで Haiku を作るときのガイドラインなので、Haiku にパッチを送ったりするのでなければ、他のカッコの位置とかのルールと同じ程度に参考にすればいいんじゃないかと思いました。
# by hironytic | 2009-01-06 10:24 | 情報

[CoveredCalc] Haiku 環境の更新とか

休日はこたつプログラミングを再開。寒いもん。
ノートPC は Aspire One に変わっているんですけどね。Aspire One からリモートデスクトップで別の部屋にあるメインマシンにログオンし、そこから VMware を起動して作業したりとか‥‥なんか間違ってますね。

久々に Haiku の環境を更新。r28724 になりました。CoveredCalc の Issue 38 が治ってました。まあ BeOS ではきちんと動いてたから Haiku の互換性の問題だとは思ってましたが、せっかくなので調査してフィードバックしたいと思いつつも、作業する余裕がなくて放置していたら治ってたという次第です。

ちょっと中途半端ではありますが、Windows 版の XML 言語ファイル対応がほぼ終わった状態です。BeOS/Haiku 版がまったくビルド通らなくなっているのでこれから対応を入れていきます。そろそろいったん google のリポジトリにコミットしなきゃいけないなーと思っているところです。
# by hironytic | 2008-11-27 09:36 | 開発状況

[CoveredCalc] v2の状況など

本業の仕事から帰ってきたあとの時間を利用して、コツコツ CoveredCalc のコーディングをしています。先週末から突然仕事が忙しくなったので今週は全然開発できてません。昨日も家に帰ってきたのが午前1時半。6時には起きないといけないので、とても開発に割く時間なんかなし。悲しい‥‥。

ここのところは、Windows 版の言語ファイルをリソース DLL から XML 形式に変更中です。言語ファイルの定義は、(メッセージなどの)文字列、ダイアログのレイアウト、メニューの 3 つなんですが、そのうち文字列については XML 形式に移行できています。リポジトリにはまだコミットしてませんが。現在はダイアログのレイアウトの対応中です。もともと Windows 標準のダイアログリソースを使ってたので何にもコードが必要なかったところを、XML 形式で書かれたレイアウト情報を元に自分でダイアログ内のコントロールを配置していく実装がいるのでそれに手間がかかってます。メニューはまだ手を付けていませんが、XML 形式ではただの文字列定義になる予定で、そこからメニューを作るところを実装する必要があります。

ダイアログについてもう少し詳しく書くと、CoveredCalc には、カバーブラウザ、バージョン情報、カバーの情報、設定、キーマップの 5 つのダイアログがあります。このうち、カバーブラウザ、バージョン情報、カバーの情報については移行完了済み。キーマップも実装はしましたが、設定ダイアログがないと呼び出せないので確認がまだ。設定ダイアログはこれから実装というところです。

まあでも、XML 形式に移行してしまえば、今後、言語ファイルを作るのは楽になりそうです。これまでは英語の言語ファイルを作るときなんか、Virtual PC で英語版 Windows 起動 → VC6 (英語版) 起動 → リソースを変更してビルドという流れだったので。それがエディタだけで済みます。あと、開発環境を Visual C++ 2008 Express Edition にした関係でリソースエディタがなくなっているのでその点も楽になるかもとか。

なお、現時点で BeOS/Haiku 版はビルドが通りません(爆)
まあ、BeOS/Haiku 版の言語ファイルも変更する予定があるので共通部分だけ変更してるからなんですけどね。
# by hironytic | 2008-11-13 08:43 | 開発状況

[CoveredCalc for Windows] Unicode ビルド

CoveredCalc for Windows で Unicode 版としてビルドできるようにしました。
これまでの MBCS 版では、例えば日本語版の Windows なら Shift_JIS で使える文字しか扱えません。
Unicode 版では、Unicode 全部の文字が扱えます。もちろん、フォントが対応していないとダメですが。
代わりに、Windows 98/Me では動作できません。

次バージョンを予定している CoveredCalc v2 では、Unicode 版でリリースする気の方が強くなってます。
Windows 98/Me で動作しないことに不満がある人がもう少ないんじゃないかなあと思うので。

[CoveredCalc for Windows] Unicode ビルド_a0011820_238332.jpg


スクリーンショットはいろんな言語の文字を同時に表示できているところ。
まあ、BeOS 版だと最初からこれが当たり前なわけですが。
# by hironytic | 2008-09-17 23:08 | 開発状況

[CoveredCalc for Haiku] ビルド環境構築

これまで BeOS 版の開発は BeIDE を使って行っていて、Makefile は公開用バイナリ(デバッグ情報なし)を作るために存在していました。Haiku では BeIDE は存在しないので開発スタイルを変更する必要があります。もっとも、BeIDE も相当古い開発環境でそれほど高機能ではなく、さらにプロジェクトファイルがバイナリなので何がどう変わったのかわかりづらいという不満も以前からありました。なので、この機会に BeOS 環境でも BeIDE を使わないようにしようと思ってました。
それから、BeOS 版の Makefile は OS が提供している makefile-engine を使っていたのですが、少なくとも現状の Haiku では makefile-engine がありません。

というわけで、とにかく Makefile を通常ビルドするのに使えるようにする必要があると思い、コツコツ修正していたのですが、ようやく納得のいく状態になりました。また、Haiku 上でもビルドが通るようになりました。これからようやく Haiku 上での開発もできそうです。

ちなみに、エディタは pe を使うことにしました。MPW(Macintosh Programmer's Workshop)の MPW Shell を思い出すような Worksheet がついていてビルドにすごく便利です。‥‥というものの MPW を使ったことはあんまりないんですけどね。もうほとんど覚えてないし。
# by hironytic | 2008-09-01 22:31 | 近況