板 1- 前 次 新 レス
管理人の雑記
[78]管理人 ★:2007/10/18(木) 08:46:03
新マウスジェスチャスクリプトβ
lukewarm.s101.xrea
8方向ストローク、ホイール単独への割り当て、ダブルジェスチャを追加。
斜めストロークを認識する8方向ジェスチャを実現するには、ややこしい条件分岐が必要である。
パフォーマンスには目をつぶって、「?:」演算子で3回分岐させることに。
最初にAbs()関数とATan()関数とπ/4、π/8を駆使して斜めかどうかを判別すれば、後は単純である。
8方向モードと通常モードを選択できるようにして、両モードの処理を一つの式に
まとめてしまったため、40組み以上の括弧が使われる糞ややこしい条件式が出来てしまった。
8方向モードのストロークを表す文字は、テンキーの方向に対応した数字にすることに。
とりあえず動作しているはずだが、正確な入力が難しくてあまり使いやすくない気がする。
従来は他のボタンを押している間しか有効化できなかったマウスホイールなどは、
ボタンと同様に扱われるようにした。
これにより、ホイール単独への割り当てもこのスクリプトでまかなえるように。
従来は最初のボタンが押された時点で前回入力されたジェスチャが破棄されていたが、
前回入力終了時から一定時間以内だったら追記して認識されるという機能も付けてみた。
「X1B__X1B__」でダブルクリックに割り当てとか、「X1B_R_X1B_D_」のような複雑なジェスチャも可能に。
そんな感じで、必要以上にややこしくなってきた。
readme.txtが10キロバイトを超えている。スクリプト本体より多い……。
自分では使わなそうな機能ばかりだが、ボタンを放さずに連続実行できるジェスチャは意外と重宝している。
第4ボタンを押しながら左右に動かすと、同じクラス名のウィンドウを次々切り替え、
第4ボタンを押しながら上下に動かすと、F3,Shift+F3で次々検索を行うようにしている。
前 次