<   2008年 01月 ( 3 )   > この月の画像一覧

[CoveredCalc] キーコードからキー名称取得

ここんとこほとんど開発がすすんでいませんが、とりあえずキーコードからのキー名称取得の調査段階にいます。
Windows 版の場合は次のようにしてやればいいかなーと考えています。
DWORD virtKey; // ここに仮想キーコードが入っている
TCHAR buf[128];
UINT scanCode = MapVirtualKey(virtKey, MAPVK_VK_TO_VSC);
if (0 != scanCode)
{
    if (0 != GetKeyNameText(scanCode << 16, buf, sizeof(buf)))
    {
        // キー名が取得できた。buf が文字列。
        return;
    }
}

// それでもとれなければキーコードをそのまま表示することにする
// virtKey を "keycode-2f" みたいに
sprintf(buf, "keycode-%02x", virtKey);


BeOS 版の方は問題で、たぶん、キーコードからキー名称を取得するような API はないですね。
キーマッピングでマップされた文字をとったりすると小文字ばっかりとれてしまいそうだし、ファンクションキーとかテンキーとかは思ったようにとれないし。
ということで BeOS 版の方はキーコードとキー名称の対応表みたいなのを XML ファイルで持っておこうかなとか思ってます。これなら楽ちん。

Windows 版の方も同じ XML ファイルを持っておいてもいいですね。特に定義は追加しないで。デフォルトの表記じゃ区別できないキーボードとかそういうのを使ってる人がカスタマイズする最後の手段を残しておくという意味しかありませんが。

ということでまとめると

1. ソフトに添付した XML ファイルに定義があればそのキー名称を使う。
2. (Windowsの場合のみ) GetKeyNameText() API を使ってキー名称を取得。
3. それでもダメなら "keycode-xx"。
[PR]
by hironytic | 2008-01-29 23:30 | 構想

[PonpokoDiff] ベータ版公開 (version 0.1.0)

ベータ版といえる出来には仕上がっていませんが、とりあえず試してみるくらいのことはできると思うので version 0.1.0 として公開しました。
CoveredCalc と同じように Google Code Project Hosting を利用してソースも公開してあります。

プロジェクトサイト:
http://ponpokodiff.googlecode.com/

シンプルすぎる最低限の機能しか持っていません。試してみても、「え?これだけ?」と思うかも。
というか、エラーメッセージが全然出ません。エラーにならないわけじゃなくて単にメッセージを出す部分をまだ実装していないからです^^;
[PR]
by hironytic | 2008-01-12 18:44 | 開発状況

[PonpokoDiff] GUI な diff アプリケーション

あけましておめでとうございます。
本年もよろしくお願いします。

a0011820_0142929.gif

というわけで、CoveredCalc の開発とは別に、BeOS 上の GUI な diff アプリケーションとして「PonpokoDiff」を開発中です。
去年末から diff アルゴリズムを調べたりしていましたが、その成果といえるでしょうか。本当はもともとこのアプリを作りたいがためにアルゴリズムを調べていたわけですが。

とはいうものの、まだメニューなんかは全然動いていなくてなんとか差分抽出の表示ができる程度です。
もう少し実装してメニューが動くレベルになれば、こちらも MIT ライセンスのオープンソースで公開するつもりです。

CoveredCalc を作っていて、差分をとりたいときに自分好みの GUI なアプリケーションを見つけられなかったので、いっそ作ってしまえと思ったのが始まりです。そういう背景なので、目的を満たしてしまえば、それ以上の拡張にはなかなか手を出さないかもです。
フォント設定とか、日本語コード自動判別とか、差分のマージ支援とか、差分表示部分をレプリカント化して他アプリに貼り付けてスクリプティングにより部品として動作させられるようにするとか、いろいろネタはあるのですが‥‥。
[PR]
by hironytic | 2008-01-05 00:16 | 開発状況