板 1- 前 次 新 レス
管理人の雑記
[75]管理人 ★:2007/10/15(月) 04:14:03
マウスジェスチャスクリプト作り直し
5ボタンマウスを全然活用していないことに気付いたので、
3年近く前に作ったマウスジェスチャスクリプトを作り直してみることに。
4コアCPUの高性能PCを導入したので、処理の高速化にこだわるのは止めて、機能性を重視する。
核となる移動認識処理は基本的にそのままだが、
3年のうちに追加された数式などの機能を利用することで大分様変わりした。
ボタン操作に応答する部分、登録ジェスチャと照合する部分は関数として分離。
更に、全ボタン共通処理とボタン固有処理に分割した。
これで、タッチパッドの2指タッチなど、ボタン類の拡張も簡単にできるだろう。
ジェスチャとして使用可能な動作はかなり増えた。
開始トリガーには、右ボタンだけでなく全てのボタンが使用可能に。
さらに、複数のボタンを同時押しして行うジェスチャも定義可能になった。
また、移動が検出された時点でトリガーボタンを放さなくても発動するジェスチャも可能に。
発動後は、移動内容を初期化して移動認識が続行され、同じジェスチャの連続発動も可能。
「右ボタンを押しつつ上に一定以上動かすごとにPageUpを送信」のような割り当てに使う。
従来は、同じ方向にいくら動かしても同じ1ストロークとみなされていたが、
十分に長い距離を移動した場合は長距離ストロークとして認識されるようにした。
距離の閾値は、縦と横で別個に設定できる。
そんな感じで色々と柔軟な割り当てが可能になったが、仕様がややこしくなってしまったのが難点だ。
アプリケーションの条件判定は、関数として定義しておくことにした。
ジェスチャ開始時にMouseGetPosで位置とウィンドウ・コントロールのハンドルを取得しておく。
それらのウィンドウ・コントロールのクラスやタイトルなどを返す関数も用意。
「MG_CClass()="Internet Explorer_Server"」で「IEコンポーネント上」、
「MG_Y<100」で「画面の上の方から開始したとき」と言った条件も使用可能になった。
そんな感じで、だいぶ高機能になったような気がする。
軽く動作確認しただけで、設定用GUIも出来ていないが、とりあえずα版として公開。
投稿ファイル名: MouseGesture.zip
lukewarm.s101.xrea
サイズ: 7648 bytes
前 次