[CoveredCalc for BeOS] UI をどうしようかな

ビルドは少し前に通るようになりました。
ビルドが通ったからといって、ウィンドウやビューにやってきたメッセージをハンドリングする部分を実装しないと意味がないのでした。

というわけで、キーボードのハンドリングとマウス右クリックのハンドリングを行うことで、キーボードによる電卓上のキーの入力とマウス右クリックのコンテキストメニューが出るようになりました。
コンテキストメニューの方は、[最小化] と [閉じる] は動きますが、[カバーブラウザ] や [バージョン情報] が動きません。

ここで、カバーブラウザもバージョン情報もウィンドウの UI を作る必要があるので、InterfaceElements などのツールを使いたいところです。さて何を使おうかと…。

さらに、Windows 版のカバーブラウザでは、カバーの一覧部分に列のあるリスト(OS 標準の List-View Control)を使っているんですが、BeOS だと標準では提供されていません。
自分で一から実装するのは大変なので、ググってみると Santa's gift bag の ColumnListView を使うか、Vision のソースに含まれている BColumnListView を使うという選択肢があるようです。
それと、もう一つ、カバー名と説明くらいしか表示してないんだから、幅固定で単なる BListView を使うというのもあります。
ちょっとこのあたりで悩み中…。
[PR]
# by hironytic | 2004-09-06 21:12 | 開発状況

[CoveredCalc for BeOS] ビルドを通すのが大変

BeOS 版の CoveredCalc を Windows 版 (ver 1.00) と同等レベルまで実装しようとしています。
基本的には OS に特化する部分はクラスを切り離して設計してあるので、Windows 版で行った実装が BeOS 版にも適用されます。つまり、OS に特化する部分だけ作ればいいはずです。

ただし、それらのクラスが実装できていない現状でもそれらのクラスを参照するコードは既にあるわけで、ビルドすると大量のエラーが…(まあ、予想していたことですが)。
ビルドが通るようになった頃には、BeOS 版も割とまともに動くようになった頃だということで、ビルドエラーを片っ端からつぶしていく作業が続きそうです。
[PR]
# by hironytic | 2004-08-29 00:55 | 開発状況

BeIDE から rc を使う

前に書いたとおり
BeIDE GenericTranslator (Bison / Flex)
ソースを改造して rc
BeIDE から使えるようにしました。

~事前準備~
・rc はインストールしておいてください。
・rc (/boot/home/config/bin/rc) へのシンボリックリンクを /boot/develop/BeIDE/tools の下に作成しておいてください。

~改造…やったこと~
・Project Settings で出力ファイル名を RcPlugin にする。
・ResHelper.h, ResHelper.cpp をちょこちょこ変えて RcHelper.h, RcHelper.cpp を作る。
  RcHelper.h は、ファイル名と二重読み込み防止の #define 名、それにクラス名を変えたくらい。
  RcHelper.cpp は、ファイル名・クラス名の変更に加えて、
   - RcHelper::GetToolName() で return "rc"; にする
   - RcHelper::MakeOutputFileName() で、outputName.ReplaceLast(".rdef", ".rsrc"); にする。
   - RcHelper::CreateErrorMessage() で、return this->ParseFileLineError(text, "Error! ", ":", ":", " "); にする。
・Plugin.cpp で、不要な Flex, Bison, Res の Helper から Builder を作るのをやめて、RcHelper から Builder を作るだけにする。
・あとはビルド。

~使い方~
・/boot/develop/BeIDE/plugins/Prefs_add_ons に RcPlugin を置く。
・利用するプロジェクトの Project Settings で、Project → Target にて、
  File Type: text/*
  Extension: rdef
  Tool Name: rc
  Flags: Precompile Stage にチェック
・リソース定義ファイル (.rdef) をプロジェクトに追加する。
・いったんビルドして .rsrc ファイルを作る。
・できあがった .rsrc ファイルもプロジェクトに追加する。

できあがる .rsrc ファイルをプロジェクトに追加しないといけないのはちょっと面倒かもしれません。
まあ、一度やってしまえば後は気にしなくていいわけですが。
[PR]
# by hironytic | 2004-08-27 23:35 | 情報

[CoveredCalc] ver 1.00 リリース

CoveredCalc for Windows の ver 1.00 をリリースしました。
会社の仕事が、これから新しいプロジェクトに参加する予定になっていて、どうも忙しくなりそうな感じなので急いでリリースしておきました。
それだけに不具合がいっぱいありそうで不安です(ぉ

不具合や気付いたことなどありましたら、メールを送るなり、このブログのコメントに書くなりしてもらえるとありがたいです。
[PR]
# by hironytic | 2004-08-21 00:10 | 開発状況

BeIDE GenericTranslator

BeBits で BeIDE GenericTranslator (Bison / Flex)なるものを見つけました。BeIDE で様々な外部コンパイルツールに対応させる add-on らしいです。
ソースで提供されていて、対応させるツールに応じて BuildHelper を継承したクラスを作成して、Plugin.cpp にある MakeAddOnBuilder でそれを返すようにすればいいみたい。
(今、手元に BeOS な環境がないのでソースを見て推測で書いてます)

元々は Be の Newsletter に書かれたものみたいです。

で、これを使えば、Haiku OS の rc(リソースコンパイラ)を BeIDE 上から呼び出せるような気がするわけです。
そうなれば、mwbres を使おうとしてたらリソース文字列内に「"」をどう含めたらええんや? とか改行を含めたかったら実際に改行せなあかんのは見にくいぞ、とか文句を言う必要がなくなります。
(実際に rc を使ったことがないので、推測で書いてます)

CoveredCalc の BeOS 版開発には BeIDE GenericTranslator + rc を使おうと思いました。
[PR]
# by hironytic | 2004-08-20 17:29 | 情報

[CoveredCalc] リリース前のバグ

Windows 版の 1.00 リリースの準備(ドキュメント、Webサイトなど)を行おうとするとバグを見つけてしまいました。

一度起動して終了した後に、終了前に使っていたカバーを削除(アンインストール?)した場合、次に起動したときにそのカバーを使おうとして失敗し、カバーが読み込めない旨を表示したエラーメッセージが出てアプリケーションが終了してしまいます。
エラーメッセージ自体はまあいいとして、これでは次に起動してもやはり同じエラーメッセージが出るので起動できなくなってしまいます。

ユーザ側でできる対処は、終了時のカバーは設定ファイルに記述されているだけなので、それを消してやることです。一番簡単なのは、
設定フォルダ(Windows XP なら C:\Documents and Settings\<ユーザ名>\Application Data\Hironytic\CoveredCalc)にある Setting.xml を削除してしまえば起動できます。ウィンドウ位置などの他の設定は残したいなら、Setting.xml 中の /coveredcalcSettings/lastCoverDef タグと /coveredcalcSettings/lastCoverNo タグを削除してやれば OK です。

が、設定ファイルをユーザーが直接いじらないといけないのはよくないので、こういう場合は強制的にデフォルトカバーにすることにしました。デフォルトカバーの読み込みに失敗したら、それはもう失敗です。

簡単に修正できそうに思ってたんですが、ソースを見るとところどころ手直ししないといけないようで、面倒だったので 1.00 リリース後に修正することにしました。
実際、それほど面白みがないスキン電卓を使うユーザがもともと少なそうな上に、カバーが全くそろっていない 1.00 リリースで、それを使ってくれるユーザはほぼいないと思うので、なるべく早めに修正すればそれでいいだろうと思いました。
[PR]
# by hironytic | 2004-08-20 00:57 | 開発状況

[CoveredCalc] 近日公開

そろそろ公開してもいいかなという感じになってきたので、ひろんの倉庫の近況に CoveredCalc 近日公開の旨を書いておきました。
[PR]
# by hironytic | 2004-08-18 00:10 | 開発状況

[CoveredCalc] ビジュアル重視?

a0011820_09827.gif
徐々にどうでもいいようなところを修正中です。

XP ビジュアルスタイルに対応させるために、comctl32.dll のバージョン 6 の利用を明記したマニフェストファイルをリソースに埋め込みました。
さらに、バージョン情報ダイアログにアイコンイメージの大きめの画像を貼り付けました。
[PR]
# by hironytic | 2004-08-06 00:12 | 開発状況

[CoveredCalc] 1.00 リリースに向けて

まだまだ実装したい機能などいっぱいあるのですが、とりあえず電卓として普通の四則演算くらいはできるようになってきたので、いったん 1.00 としてリリースすることにしました。
いきなり 1.00 っていうのもどうかと思いますが、どこまでの機能を実装した段階で 1.00 だというようなプロジェクト管理を行っていない趣味アプリなのでなんでもありです。

Surviveplus.net の SHIN-ICHI さんに依頼していたアイコンの完成版が送られてきたので、そのアイコンを使うようにしてみました。
その他、Windows 95 で動くかどうか動作確認とか(ちなみに動きません)そういうのも行いながら、少しずつ完成に向けて修正してます。

あとはドキュメントも少しずつ作ってます。っていうほどの量はないんですけど。
予定では 7 ~ 8 月公開でしたが、8 月中に公開できるかなぁ?

なお、すべて Windows 版の話です。
[PR]
# by hironytic | 2004-08-01 23:04 | 開発状況

[CoveredCalc] 演算子の直後に =

2 人目の子供ができてから、家が戦場になって開発が全く進みません(汗)

それはそうと、電卓で演算子のボタンを押した直後に = を押すとどうなるか知ってますか?
つまり、「3 + =」というように入力するわけです。
手元にあった 3 つの電卓で試してみました。

(1) 高校くらいからプログラミングのお供として使っているお気に入り電卓
「3 + =」 → 「3.」
「3 - =」 → 「3.」
「3 × =」 → 「9.」
「3 ÷ =」 → 「1.」
加減算については表示は変わりませんが、乗除算では[×]、[÷]を入力した時点で表示されているものがそのまま入力されたと見なしているようです。どうも中途半端な感じで納得いきません。

(2) 100円ショップで購入した電卓(会社で試したので正確な数字を覚えてないのですが)
「3 + =」 → 「3.」
「3 - =」 → 「-3.」
「3 × =」 → 「9.」
「3 ÷ =」 → なにやらややこしそうな小数
全く法則がわかりません…。割り算については、その後、「× 3 =」とすると、3 に近い数字が出るので、3 に近い数字で割られたようです。

(3) Windows の Microsoft 謹製(?)電卓
「3 + =」 → 「6.」
「3 - =」 → 「0.」
「3 × =」 → 「9.」
「3 ÷ =」 → 「1.」
演算子を入力した時点で表示されているものがそのまま入力されたと見なしているようです。統一されていて気持ちがいい仕様です。

というわけで、CoveredCalc は (3) に準拠してみることにしました。
つーか、してみることにしただけで、現在はそういう動きをしてないんですが。
参考までに現在の動き:
「3 + =」 → 「3.」
「3 - =」 → 「3.」
「3 × =」 → 「0.」
「3 ÷ =」 → 演算エラー
単に 0 が入力されたと見なされているだけです。
[PR]
# by hironytic | 2004-05-12 23:15 | 構想