goo blog サービス終了のお知らせ 

Hironytic Status

ひろんの開発日誌

[CoveredCalc for Windows] 開発再開してます

2006-01-18 13:03:41 | 開発状況
ファイルサーバを使用不能にしてしまった件は、年末年始休暇の間に復旧しました。
その後、ほんのちょっとずつ開発を続けています。

一応、韓国語版 Windows 上でも、それらしく動くようなのは確認できましたが、実はこのスクリーンショットに見えている部分しか韓国語リソースを作っていないので、本当にちゃんと動くのかどうかは微妙です。
あ、スクリーンショット内の韓国語は、韓国語のできないぼくがインターネット上の翻訳サイトとかを使って作ったものなので、かなりおかしいかもしれません。
誰か韓国語に翻訳してくれる人が出るまで、韓国語リソースのリリースはありませんので、誤解なきよう。

[CoveredCalc for Windows] 韓国語版 Windows をインストールしてみた

2005-12-21 13:35:25 | 開発状況
Windows 版 CoveredCalc、内部がネイティブ Unicode なアプリではないので、ほんとに英語圏以外の文字コード(エンコーディング)でも正しく動くのかちょっと不安。
そこで、韓国語(文字コードは EUC-KR か?)版 Windows で動作を確認してみようと思って Windows XP Home(韓国語版)をインストールしてみました。

当然ですが、インストール中の選択肢がほとんどハングル表記だったので、韓国語わからないぼくは翻訳サイトで翻訳しながらの作業になりました。
えらく時間がかかりました。おかげで、ハングルの各構成部分(母音と子音…これなんていう用語なんだろ)を入力するのが多少はやくなりました(あくまで多少…ね)。

肝心の CoveredCalc は韓国語言語リソースを作ってないので、てきとーにそれを作ってみてから試します。
誰か韓国語に翻訳してくれる人がいるといいのですが…。

[CoveredCalc for Windows] Windows 版多言語対応

2005-12-06 10:00:07 | 開発状況
とりあえず、1.4.0 では多言語対応として、ZETA 版だけ Locale Kit に対応させるつもりだったのですが、せっかくなので Windows 版にも多言語対応の仕組みを入れてみることにしました。
こんなことをやっていると、BeOS 版にも仕組みを入れなきゃいけなくなりそうで、自分の首を絞めている感じがしないでもないですが…。まあ、その辺は初期の段階から考慮してプログラム組んであったのでそんなに大変ではないとは思うんですが。
でも、少なくとも、1.4.0 は今年中にはリリースできませんね。(^^;

それで、Windows 版の多言語対応は専用の「言語ファイル」を各言語ごとに用意します。
言語ファイルの形式はただの DLL です。ただし、ダイアログ、メニュー、メッセージの 3 つをリソースに持ちます。あと、CoveredCalc 用にいくつか公開関数を作成します。
言語ファイルを作成するのにコンパイラが必要になる点で、ZETA に比べて手軽さに欠けますが、ダイアログなんかは単なる文字列の置き換えだけじゃなく配置まで調整しなきゃダメだと思っているので...。
まだ公開関数なんかの仕様はきちんと決まっていないんですけど。

まずは、テスト用に英語(アメリカ)の言語ファイルを作ってみて、それを使うようにしてみました。
ちなみに、ZETA みたいに、言語を動的に切り替えるのはサポートしないつもりです。というかできません。
CoveredCalc の再起動が必要になります。まあ…、そんなに頻繁に言語を変える必要のあるアプリでもありませんしね…。
今のところ、--language-file 引数を付けて強制的に言語ファイルを指定できるようにだけしてありますが、言語を選択する UI を用意する必要がありますね。

[CoveredCalc for ZETA] ロケールキット対応

2005-11-28 11:35:17 | 開発状況
昼すぎから嫁さんと子供たちが実家へ行ったのをいいことに開発続行。
週に 1 回より少ないペースで開発している気がする。

Koki さんから CoveredCalc のメッセージ等をを英語に翻訳してもらいました。まだドラフトですが。
それを使って、オリジナル言語を英語にした CoveredCalc for ZETA を作成しました。

ZETA 版開発用に makefile を修正していなかったので修正しました。
ZETA で makefile-engine のバージョンが変わっていて、リリース版を作る make でやたらと警告が出まくりますがなんとかビルドはできました。もうこれでいいや。
次のバージョン (1.4.0) では、CoveredCalc for BeOS (ZETA向け) ではなく、CoveredCalc for ZETA になりますよん。ちなみに、そうなると、dano では動かなくなります。

まだリリースには遠いですが、とりあえずできあがったものを Koki さんに見てもらう予定。
嫁さんたちが返ってきたのでそこで作業中断。

夜に Koki さんにメールしようと思っていたのに、子供たちと一緒に寝てしまった(汗)
すみません。今晩こそ送ります。また寝てしまわない限り…。> Koki さん

[CoveredCalc] バグ修正版 1.3.1 リリース

2005-11-24 16:18:33 | 開発状況
バージョン 1.3.0 で見つかった不具合を修正したバージョン 1.3.1 をリリースしました。
おそらく、1.0.0 から存在したのではないかと思うバグです…。
演算結果が負になる場合で、小数点以下の桁数が多くて表示領域に収まりきらないときに先頭のマイナス符号が表示されないというものです。
結果の正負が異なるわけなので、これは一大事です。
実際に被害にあった人がいるのか(っていうか、そもそも計算に使われているのか?)どうかわかりませんが、とりあえず申し訳ありません。

小数点以下の桁を何桁残してカットするかを計算する際に、マイナス符号分が考慮されていませんでした。
いや、そうじゃなくて、わざわざマイナス符号を判定して考慮から外していました。なぜだ!?
これは電卓のエンジン部分になるんですが、このあたりはおそらく 2003 年の春頃に最初に作り始めた部分です。その後でカバー(スキン)部分などを作り始めてバージョン 1.0として初回リリースを行ったのが 2004年の夏。
その初回リリースのちょっと手前で、カバーのフォント画像に「-」記号が入っていないことに気づいてあわてたりとかした記憶がぼやっとあります。そのときも、なんでだ!?とか思ったわけですが、もしかしたら初期の頃の構想では、マイナス符号は別の部分に表示する予定だったのかも。表示領域の最左端(ここには数字は入らない)に表示される電卓とかあるじゃないですか。そういう感じで。だからわざわざマイナス符号は表示桁数から除いていたのかもしれません。
とはいえ、そんな構想はドキュメントとして残っているわけでもないので、今となってはわからないのですが。

なお、既にメインの開発は 1.4.0 に向けて機能をいろいろ追加しています。
今回の修正は、1.3.0 のソースに対して行った修正で、メインの開発ラインとは別のところでやりました。
その関係もあって、ソースの公開作業(というか zip に固めるやつ)が面倒なので、1.3.1 相当のソース公開はしていません。公開パッケージング用のスクリプトがそのまま使えないんです。
欲しいという声があれば、パッケージングを手動で行うつもりです。欲しい人はメールしてください。

[CoveredCalc for BeOS, ZETA] 不具合の修正

2005-11-21 13:49:18 | 開発状況
BeOS 版、ZETA 版で、「常に手前に表示」をしたときに最小化(隠す)できなくなってしまう問題に対処するのを忘れていたので対処しました。
具体的には、最小化(隠す)するときに、Feel を B_NORMAL_WINDOW_FEEL に戻し、ダミーウィンドウを非表示にします。で、メインウィンドウの WindowActivated() で、アクティブになったときに B_FLOATING_ALL_WINDOW_FEEL の Feel にしたり、ダミーウィンドウを表示したりします。

それから、カバーブラウザのリスト部分で項目をダブルクリックしてカバーを切り替えられるようにしました。
これは BeOS (および ZETA) 版で実装し忘れていたものです。

実はこの 2 つの修正をしている間、ものすご~く眠くて、実際、ビルドを待っているときはウトウトしてたりしたので、直したと思ってるんですが抜けがあったりしないかとちょっと不安 (^^;

[CoveredCalc] コマンドラインオプション

2005-11-18 23:46:45 | 開発状況
全 OS 共通で、コマンドラインオプションを指定してやることで利用する設定ファイルのパスを渡せるようにしました。
次のどちらかの書式で設定ファイルのパス(なるべくフルパス)を渡します。

CoveredCalc -f <設定ファイルのパス>
CoveredCalc --setting-file <設定ファイルのパス>

設定ファイルには最後に使ったカバーや電卓の座標などの情報が記録されます。
利用目的に応じて、これらの情報を切り替えて起動することができるようになります。

それから、BeOS 版で、ウィンドウをロックせずに処理を行っていた場所が 2 箇所あったのを修正。

あと、BeOS 版の「常に手前に表示」をしているときに最小化できない問題に対処するのを忘れていたことに気づきました。
これはまだ直せていません。

[CoveredCalc for ZETA] カバー定義の多言語対応

2005-11-07 09:07:39 | 開発状況
本体だけ多言語対応しましたが、カバーのタイトル、説明文、著作権情報、ツールチップが日本語のままになってしまいます。
カバー定義に日本語しか書いてないのだから当然です。
そこで、カバー定義を多言語対応できるようにしました。

具体的には次のようにします。

<coverDef>
    :
<title id="Title">Have You Never Been Mellow</title>
    :
<language lang="jaJP">
    <altText textId="Title">そよ風の誘惑</altText>
        :
</language>
</coverDef>

テキストを含むタグに id 属性を付加します。
そして、<language> タグで囲んだ中に <altText> タグを入れて、その textId 属性が id 属性を指すようにします。
すると、現在の言語が <language> の lang 属性で指定したものと同じだったときに、元のタグ中のテキストではなく、<altText> 内のテキストが使われるようになります。

この実装を終えました。
Windows 版、BeOS 版では今のところ常に「現在の言語」が "jaJP" になります。
ZETA では LocaleKit の設定に合わせて「現在の言語」が変わりますが、作りの都合上、言語設定を変更したあとカバーを再読み込みしないと現在の言語は反映されません。これは制限事項ということで。

[CoveredCalc for ZETA] ロケールキット

2005-11-04 09:03:08 | 開発状況
ZETA 版にロケールキットに対応するためのコードを実装してみました。
今は、ベースとなる言語が日本語のままなので、とりあえず動作確認する程度に、一部の文言を英語に翻訳するロケールファイルを作って試してみましたが、いい感じで動きました。

あと、多言語対応の問題としては、カバー自身の多言語対応ですね。
現状の仕様では、どう考えても1言語にしか対応できませんから。

[CoveredCalc for ZETA] ネイティブビルド

2005-11-02 09:01:16 | 開発状況
ZETA に CoveredCalc をビルドできる環境を作ってみました。
まあ、環境というか、単純に次のものを用意しただけ。

別にコンパイルとかしたわけではなく、R5 からバイナリを持ってきただけだけど。
本当は BeIDE エディタのフォントとして使う小夏も必要だが、まあこれはなくてもビルドできるのでとりあえず後回し。

この状態で CoveredCalc をビルドしてみたところ、リンクエラーが……。
あ、libzeta を追加せにゃいかんのか。
すると、何の問題もなくビルドできてしまいした。

でも、libzeta を追加したので、BeIDE のプロジェクトファイルを R5 用と分けることになりました。
今後、ソースを追加したら、両方に反映しないとあかんのでしょ。
BeIDE が複数のプロジェクトオプション(ターゲット設定?)を持てたらなあ、とげんなりしました。
あ、そういえば、リリースビルド用の makefile に libzeta を追加するのを忘れたな…。