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

Hironytic Status

ひろんの開発日誌

[CoveredCalc] いろいろ変更してます

2006-11-06 16:36:07 | 開発状況
この数週間でやったことなど。
こまめにここを更新するべきなのはわかっているんですが‥‥すみません。

■ ビットマップファイル取り扱いの改善
驚いたことに、ビットマップファイルを読み込むときに、ハイカラーやフルカラーのビットマップであっても(存在するはずのない)カラーパレットを読み込むようになっていました。
まあ、実際はピクセルデータ部分を利用もしないカラーパレットとして読み込んでいただけで、ピクセル部分はピクセル部分としてちゃんと読み込んでいたので問題なかったようです。
が、おそらく、ビットマップの面積にして 256 ピクセルより小さいビットマップは読み込みに失敗していたと思います。16x16 より小さいビットマップなので、CoveredCalc では使うことはないかもですが。
それから、ハイカラーや 32 ビットカラーの場合、ビットマップの仕様からすると、R, G, B にそれぞれ何ビットを割り当てるかを決められるようになっているんですが、これを常にデフォルト(ハイカラーなら 5-5-5、32ビットなら 8-8-8)とみなしていたのを修正。
このあたり、かなり昔に作ったコードを CoveredCalc にコピーして持ってきてしまっていたようです。
なお、圧縮ビットマップ (RLE) には、相変わらず対応していません。対応する気もありません。

■ ビットマップファイル読み込みの改善
例えば、カバー定義で、非アクティブ時のイメージとアクティブ時のイメージを同じにした場合(非アクティブ時のイメージ定義を省略した場合を含む)、どちらのイメージも同じビットマップファイルを読み込むことになりますが、これまでは実際に 2 回別々に読み込んでいました。
今回の修正で、そのカバー内で既に読み込んでいる画像があれば、再度読み込みはしない、というように修正しました。同じイメージを使い回したカバーはメモリの使用量を抑えられることになります。

■ その他
内部実装の修正がいくつか‥‥。
ColorCodedSkin クラスで「コマンド」と呼んでいたものが以前からどうにもしっくり来なかったので「エリア」に変えた、とか。
UIManager クラスはこれまで UITask を 1 つしか持てなかったのを複数持てるようにした、とか。

[CoveredCalc] カバーの作り方ドキュメント更新

2006-10-01 15:48:29 | 開発状況
[CoveredCalc] カバーの作り方ドキュメント更新

最近、やっと自分の時間がとれるようになってきました。
おかげで、ずっと放置していた(いや、少しずつ作業を続けていた)「カバーの作り方」ドキュメントをリリースできました。
デザインや構成も見直したので、前より見やすくなっていると‥‥思うんですが、どうでしょう。

さて、これから 1.6.0 に向けて少しずつ作業を行っていこうと思っているわけですが、いったい自分は次に何をしたかったのやら(^^;
とりあえず、BeOS 版のバグ(Bug-14)を見てみないといけないかな。
その後、ホバー動作カバー上の部品からの基数切り替えとかかなあと思ってます。

[CoveredCalc] 1.5.0 リリース

2006-05-29 12:00:53 | 開発状況
CoveredCalc バージョン 1.5.0 を リリースしました。
今回の変更点は、これまでの 10 進数に加え、16 進数、8 進数、2 進数での演算(とその相互変換)ができるようになったことです。

とりあえず、できるようになったというだけで使い勝手は非常に悪い状態です。
カバー上に切り替え用のボタンなどを用意して、そこから切り替えられるようにするのは、次バージョン以降ってことで。

なお、2/8/16 進数は 32 ビット整数演算のみです。
なので、2 進数は、最大 32 桁まで演算できるはずなのですが、そんなディスプレイ領域が長いカバーはあまりみないですねぇ…。10 進数の場合は有効数字 14 桁までしか計算できないので、32 桁とってあっても、2 進数以外では表示領域をほとんど使わないんですよね。
2 進数の時だけフォントが変えられたりするといいんですが、今の作りではそれも難しいので。
何か対策が必要でしょうか。

[CoveredCalc for BeOS] 基数対応

2006-05-26 09:35:26 | 開発状況
家に帰ってもずっと PC を起動しない生活が続いていて、前回ブログに書いた以降、開発作業を行っていませんでした。
でもって、今回、BeOS 版の基数対応を行いました。
といっても、前回書いたように、基本的な部分は Windows 版とソースが共通なので、必要だったのはメニューなどの整備だけですけど。

それよりも、作業中、かなり眠くて、ビルドしている間にうとうとしてしまったりとか、言語ファイルを更新したのに、その言語ファイルを使わずに確認したりとか、わけのわからないことを何度もやって非常に効率が悪いというかヤバいというか。
高校生のころ、こういう状態でプログラミングしていて、ぼーっとしたままその日作成したソースファイルを削除するという失態をおかした経験があるので、この状態は危ないです。

寝ぼけてて何を行っていたのか記憶にないんですが、あるタイミングで右クリックメニューから何かのコマンドを選択しようとして「このタイミングでこのコマンドを実行したらプログラムが落ちそうやな~」とか考えながら実行したらやっぱり落ちた。
「ほら、落ちた‥‥‥‥って、ええっ!? Σ(゜Д゜;; 」
なんつーか、プログラムが落ちるような修正は行ってないし、どんなタイミングで何を実行したのかもわからないし。でも、確実に落ちているし。
しかも、このバグ、再現しません…。
見つけた方、なにとぞ再現パターンをご連絡ください。

※ メインウィンドウが非アクティブな状態で、ウィンドウを右クリックでアクティブ化したとき、非アクティブなままメニューが表示されます。この状態で「常に手前に表示」を選ぶと落ちはしませんが固まるようです。これかな?

[CoveredCalc] 基数対応

2006-05-17 10:24:18 | 開発状況
ここんとこ、3~4 日くらいで基数対応を行いました。2進数、8進数、16進数でも表示できるというやつです。
ここに書いてあるようにまずは右クリックメニューからの基数切り替えの実装を(Windows 版については)終えました。
もともと、その仕組みは作りかけで、ところどころ処理を実装していないという状態だったので、思ったより簡単にできました。
Windows 版の実装を終えたとはいっても、ほとんどの処理は BeOS/ZETA 版と共通なので、BeOS/ZETA ではメニューなどの UI まわりを整備するだけの予定です。
あ、言語ファイルも更新しなきゃいかんのか。
前回のバージョンアップにえらく時間がかかったこともあるので、今回は BeOS/ZETA で基数対応したら、1.5.0 としてさっさとリリースします。

#なお、ここ 3~4 日の作業のうち、デフォルトカバー「Adams」に A~F ボタンを付ける作業に結構時間をとりました‥‥。

[CoveredCalc] 次バージョンに向けての作業

2006-05-11 09:38:16 | 開発状況
[CoveredCalc] 次バージョンに向けての作業

ちょこちょこ合間を見てやっていたのですが、Windows 版のコンパイラを Visual Studio 2005 の Visual C++ に変更しました(これまでは Visual Studio .net 2003 でした)。
コンパイラが変わったことで、ちょこちょこソースの修正など。
あと、これまでシングルスレッドモデルの C ランタイムライブラリを使っていたのですが、VS 2005 ではマルチスレッドモデルだけになってしまいました。
それ自体は問題ないのですが、静的にリンクしていた expat のライブラリもシングルスレッドモデルの C ランタイムを使うようにしていたので、こちらもマルチスレッド版のライブラリを用意する必要がありました。
せっかくの機会なので、expat を最新バージョンに。
これまでは 1.95.7 を使っていたのですが、2.0.0 に変わりました。
この状態で Windows 版についてはうまく動くようになったのですが、そのままでは BeOS/ZETA 環境の expat のバージョンが異なります。
それはいろいろやっかいなことが起こりそうなので、BeOS/ZETA 環境でも、expat 2.0.0 をビルドしてこっちを使うようにしました。

‥‥という、ユーザー様にとってはほとんどメリットのない作業をしていました。

なお、カバーの作り方ドキュメントの更新が滞っていますが、忘れているわけではありません。もうしばらくお待ちください。

[CoveredCalc] 1.4.0 リリース

2006-04-13 10:03:52 | 開発状況
長らくお待たせしましたが、CoveredCalc の 1.4.0 をリリースしました。
Windows 版、BeOS 版、に加え、今回新しく ZETA 版もリリースしました。
なお、以前公開していた「BeOS 版 (ZETA 向け)」(旧Dano版)というのはなくなりました。

まだ「カバーの作り方ドキュメント」を修正できていませんが、カバー定義の多言語対応の方法については、1.4.0 付属のデフォルトカバー (Adams) の CoverDef.xml を見てもらえれば、勘のいい人ならすぐわかるんじゃないかと思います。
もちろん、後ほどドキュメントは公開しますが。

あと、ソースのリリースがまだできていません。
実は今、風邪ひいてしんどい状態です。会社に行くのがやっとで夜は早々に寝るつもりでいますので、気長にお待ちください。

世間では ZETA の開発元である yT が破産とかいうニュースが流れてるのがちょっと気になりますが…。

[CoveredCalc] 1.3.1 → 1.4.0 の変更点(予定)

2006-03-28 15:52:27 | 開発状況
バージョン 1.3.1 → 1.4.0 の変更点(予定)です。

■ CoveredCalc 本体
・常に手前に表示(
・位置を固定(ONにしている間、マウスドラッグでウィンドウを移動できなくなる)(
・設定ダイアログ追加(言語の選択)
・UI の多言語対応(言語ファイルの利用)(
・[ZETA] Locale Kit 対応(
・コマンドラインパラメータで、利用する設定ファイル(Setting.xml)を指定できるように。(
・コマンドラインパラメータで、利用する言語ファイルを指定できるように。
・[BeOS、ZETA] ダイアログの項目を Tab キーで移動できるように。
・[BeOS、ZETA] ダイアログのデフォルトボタンを設定。
・バグ修正
   - BeOS 版でカバーブラウザを Lock() せずにメソッド呼び出ししてたところがあったとか。
   - BeOS 版でカバーブラウザのリスト部分のダブルクリックでアイテムが適用できない件 (Bug-11)
   - BeOS 版でカバーブラウザの前回の位置が記憶・復帰されない件 (Bug-13)

■デフォルトカバー Adams
・多言語対応(日本語・英語;ツールチップなどの文字列を言語設定に応じて切り替え)

■言語ファイル
・[Windows] 英語用言語ファイル(※本体に内蔵されている言語は日本語)
・[BeOS、ZETA] 日本語用言語ファイル(※本体に内蔵されている言語は英語)
・[ZETA] Locale Kit 辞書ファイル(日本語用)(※本体に内蔵されている言語は英語)
※ ZETA では、言語ファイルと Locale Kit の利用は、どちらか一方の排他オプションです。

[CoveredCalc] 1.4.0 開発状況

2006-03-24 09:47:01 | 開発状況
[CoveredCalc] 1.4.0 開発状況

長いこと、ここを放置してしまってましたが、開発自体はのろのろと進めていました。
ここんとこ、23 時過ぎてから帰宅、それから晩ご飯というような生活なので、週に 4~5 時間くらいの開発時間しか割けていないのが現状です。

バージョン 1.4.0 の開発状況ですが:

【BeOS 版】
言語ファイル対応がほぼ終わりました。
ただし、肝心の言語ファイルができあがっていません。
言語ファイルが存在しなかったときは、実行ファイルに内蔵している文字列等を使うのですが、BeOS 版については内蔵する言語は英語で、日本語の言語ファイルを外付けする予定です。
初回起動時は内蔵言語を用いるので、そこが日本語になってしまうと、非日本語圏のユーザーは言語を切り替えること自体が難しくなると思われるためです。

【Windows 版】
Windows 版の言語ファイル対応は BeOS 版より前に終わっています。
前のエセ韓国語版スクリーンショットのメニューの時点ではなかった「設定(P)...」が増えていて、そこから言語ファイルを選択することができます。(といっても、前のスクリーンショットはエセ韓国語なので、わかりにくいのですが)
Windows 版の場合は、日本語を内蔵し、英語の言語ファイルを外付けします。
Windows 版では、初回起動時に OS のロケールを見て適切な言語ファイルを選択する仕組みを入れてあるので BeOS 版のようなことは起こらないはずです。

【ZETA 版】
バージョン 1.3.1 の「BeOS 版 ZETA 向け」とは異なり、ZETA 専用バージョンになります。(BeOS 版 ZETA 向けは Dano でも動作しますが、今度リリースする ZETA 版は Dano では動作しません。また、今後の Dano 版のリリースは予定していません)
基本的には BeOS 版とソースが共通なので、言語ファイル対応が終わったところですが、ZETA 版では LocaleKit にも対応します。
LocaleKit 対応はすでに行っていますが、言語ファイルによる言語切り替えもそのままできるようにしようと思っているので、仕様のすりあわせが必要です。

どの OS 版についても、ぼくは日本語しか話せないので、英語への翻訳を Koki さんに手伝ってもらっています。
なお、英語の部分は、Koki さんに最終チェックをお願いしている段階です。

リリースはもう少し先になりますが、1.3.1 → 1.4.0 の更新点をここに予告しておこう‥‥と思ったのですが、資料を持ってくるのを忘れたのでまた今度(笑)
こうも、のろのろと開発していると何を更新したのか既に忘れてしまっているのです。