« 多言語対応のその後 | トップページ | ノイズが出るのは… »

2014年8月13日 (水)

キーボード操作実装の準備をしましょう…

Brynhildrの作者さんから操作系通信のサンプルソースを頂いたので、ぼちぼちとまずキーボード操作の実装を始めました。

最終的には、iOS, Android, Surface Proなどタッチパネル系のデバイスも対応したいのですが、まずはWindows/Linuxなどのキーボード/マウスデバイスへの対応を進めます。確認が容易なので…(*^-^)

通信内容の概要としては、Windowsの仮想キーコード(実際はマウスも含まれたりしてますが…)を送ればよいようです。Windowのメッセージ通信をトラップして、内容をバッファリングして、適宜送り出すようですね。

QtではWindowsの仮想キーコードに依存しないデータ構造を使っているので、うまく変換してやる必要があります。Qt AssistantでKey_Upとかで検索するとQtというヘッダでキーボード関係のデータ構造が定義されていますね。

ただ、予想通りWindowsの仮想キーコードとQtのイベントで渡されるデータとは一対一対応しないようです。
例えば、ダブルクォート(")はQtではSHIFTキーのデータの後ダブルクォート(")の情報が送られてきますが、WindowsではSHIFTキーのデータの後2キー(日本語キーボードの場合)のデータが送られてきます。Qtでは入力された文字の情報そのものが来ますが、Windowsでは実際の操作が送られてくるので、受け取ってから、それを解釈する必要があるということです。

このため、Qtから受け取ったデータを1つ以上のWindows仮想キーコードに変換してやる必要があります。日本語キーボードだけなら、やっつけコーディングでもいいのですが他の言語用キーボードも考慮する必要があるので、少しデータ構造を検討する必要がありそうです。今日はとりあえずここまでにしておきます。

P.S.
Nexus 7 (2013:Wi-Fi Only Model) を購入しましたが、中々楽しいですね…
KitKat(4.4.2)にバージョンアップしてしまいましたが、大丈夫かな…

« 多言語対応のその後 | トップページ | ノイズが出るのは… »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: キーボード操作実装の準備をしましょう…:

« 多言語対応のその後 | トップページ | ノイズが出るのは… »