スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 仮想キーボードの微修正とか | トップページ | パスワードは入力不可 »

強調表示の追加

今はTiExtenderの開発フェーズで、バイナリは完成したので、Readme.txtを書いたりしていたのだが、スクリーンキーボードをMirror-DTCクライアントの入力用に使用してみると、マウスカーソルが非表示になり、入力が困難になったので、強調表示もオプションで追加した。

TiExtenderのスクリーンキーボードは特殊なウインドウで、最前面に表示されるのだが、フォーカスは取得しない。

なので、スクリーンキーボードを操作して、別のフォーカスがあるウインドウにキー入力を行う事が可能なのだが、OS Xの場合、フォーカスが無いウインドウは、プログラム開発者的には、少し不便な感じだ。

具体的には、マウスのMovedイベントも、やって来なくて、そのイベントは下のウインドウが受け取っている感じだ。

で、Mirror-DTCクライアントでは、接続先のマウスポインタ形状に合わせて、表示するマウスポインタ形状を変化させているのだが、拡大表示時には、OSが表示可能なマウスポインタの最大サイズを超える可能性がある。

なので、Mirror-DTCクライアントはOS標準のマウスポインタではなく、画像として、マウスポインタを表示しているのだが、この場合、OS標準のマウスポインタは二重表示になって邪魔なので、透明にしてある。

そして、マウスポインタの形状は、マウスMovedイベントに同期して更新されるので、Mirror-DTCクライアントにフォーカスがあり、そこにマウスMovedイベントが発生すると、マウスポインタは透明化されて見えなくなるのだが、この状況は、TiExtenderのスクリーンキーボードが最前面に表示されていても、変化しない訳だ。

と、いう事で、TiExtenderのスクリーンキーボードをMirror-DTCクライアントのウインドウ上で使おうとすると、マウスカーソルが消えてしまうので、目的とするキートップをクリックする事が出来なかった訳だ。

このため、TiExtenderのスクリーンキーボードでも、クリック対象になっているキートップを強調表示できるオプションを追加した。

このオプションを適用すれば、マウスカーソルが非表示化されるウインドウの上で、スクリーンキーボードを使う場合にも、カーソルは見えないのだが、入力対象のキートップはマウスの移動に合わせて変って行くので、キー入力は可能になる。

まあ、実際問題としては、Mirror-DTCクライアントには専用のスクリーンキーボードが付属しているので、TiExtenderのスクリーンキーボードを使う必要は無いかもしれないのだが、前述の様な状況は、OSの仕様から来ているので、Mirror-DTCクライアント以外のソフトの利用時にも、発生する可能性はある訳だ。

なので、そういう場合の対処方法として、強調表示を可能にするオプションを追加したのだが、マウスカーソルが表示されている通常時でも、強調表示を選択しておくと、現在の入力対象が判りやすくはなる筈だ。

にも関わらず、デフォルト状態では、非選択にしたのだが、これは、OS X付属のキーボードビューアに合わせたからなのだが、強調表示を行わせる場合、マウスポインタ移動に合わせてキートップの再描画が必要になるからでもある。

つまり、必須でも無い場合には、強調表示を選択しない方が、CPU使用率を抑えられるので、節電効果がある訳だ。

と、いう事で、これで、もう変更は無いと思われるので、明日は新しいホームページを作り、問題なければ、明後日には、Vectorにバイナリの変更申請をしようと思っている。

ホームページは、Vectorで新しいバイナリが公開されてから更新する予定なのだが、バイナリの公開は来週の半ばあたりになるかもしれない。

= この記事に関連する公開中ソフト =

TiExtender

TiExtender

(2016/10/25追加)

« 仮想キーボードの微修正とか | トップページ | パスワードは入力不可 »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/63848508

この記事へのトラックバック一覧です: 強調表示の追加:

« 仮想キーボードの微修正とか | トップページ | パスワードは入力不可 »

2017年12月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google