フリック ジェスチャ
Windows Vista には、8 つの基本的な フリック ジェスチャセットが含まれています。 フリックは、スクロール 操作とコマンドに関連付けられた、すばやく直線的なペンの動きです。
フリックの詳細
フリック機能を使用すると、ペンですばやくジェスチャを行うことで、一般的なアクションを実行できるようにすることで、タブレット PC と対話する新しい方法がユーザーに提供されます。 フリックは、左右のタップ、スクロール、手描き入力などの通常のユーザー 操作と共存し、中断しません。
フリック は、一方向のペン ジェスチャであり、ユーザーはすばやくフリックするモーションでデジタイザーに接続する必要があります。 フリックは高速で直線性が高いのが特徴です。 フリックはその方向によって識別されます。 フリックは、カーディナルおよびセカンダリコンパスの方向に対応する8方向に行うことができます。
アクション または フリックアクション は、フリックに応答して実行されるアクションまたはショートカットです。 フリックはアクションにマップされます。 次の図は、そのフリック アクションに対応する 8 つのペン フリックの図を示しています。
ジェスチャ マップの図
ユーザーがタブレット PC のデジタイザー上でペンを移動すると、ハードウェアはタブレット PC プラットフォームのペン入力サブシステムにルーティングされるペン パケットを生成します。 通常、ペンがマウスの代わりに使用されている場合、ペン入力サブシステムはこれらのペン パケットを受け取り、変更を加えて、マウス入力の処理を担当する Windows コンポーネントである User32 に送信します。 ペンが手描き入力サーフェイスで使用されている場合は、マウス パケットが生成されるのではなく、インクがレンダリングされます。
フリック検出ルーチンは、ペン入力サブシステムに実装されます。 フリック検出はペンダウンで開始され、次のいずれかになるまで続行されます。
受信したパケットのシーケンスは、フリックまたは
ペンアップが発生します。
フリック検出の実行中、ペン パケットは保持され、システムに送信されません。 パケットを送信すると、実行されるフリック アクションに干渉する可能性があるため、これを行う必要があります。 たとえば、コピー アクションにマップされるフリック中にパケットを送信すると、選択されたものが無視されます。つまり、アクションが送信された時点までにコピーするものは何もありません。
パケットがペン入力サブシステムに流れ込むにつれて、フリック検出ルーチンは、実行されるモーションの長さ、速度、時間、および曲率に関するメトリックを計算します。 各パケットが到着すると、検出ルーチンはこれらのメトリックをそれぞれ更新します。 いずれかのメトリックがフリックを構成する範囲外になるとすぐに、フリック検出が終了し、パケットが送信されます。
フリックが検出される場所
フリック ジェスチャは、ドラッグが通常かなりゆっくりと実行されるという事実によって可能になります。 ユーザーは、最初にドラッグの始点をターゲットにし、ドラッグを実行してから終点をターゲットにする必要があります。 通常、これはフリックとして資格を得るには時間がかかりすぎます。 ただし、手描き入力サーフェスでは、フリックが頻繁に行われると見なされるクイック ストロークが発生します。't' の交差は一般的な例です。 したがって、既定では、フリック検出は手描き入力サーフェス上でオフになり、システム全体でオンになります。
フォーカスの問題
フリックが検出されると、一連のイベントが開始され、最終的に発生したフリックに応答して特定のアクションが実行されます。 まず、ペン入力サブシステム内の検出ルーチンによって、フリックの送信先となるウィンドウが決定されます。 これは通常、フォーカスがあるウィンドウですが、例外があります。 スクロールフリックの場合、フリックが発生したウィンドウにフリックが送信されます。 これは必ずしもフォーカスのあるウィンドウではないことに注意してください。 フォーカスのないウィンドウにフリックが送信された場合、フォーカスはそのウィンドウに変更されません。
フリック アクション
ターゲット ウィンドウが特定されると、そのウィンドウは、既定またはプログラムされたイベント動作に応じてフリック自体を処理できます。 アプリケーションは、アプリケーションとフリックの方向と位置に基づいて、最も適切なアクションに応答できます。 たとえば、マッピング アプリケーションでは、上下のフリックは、既定の動作から予想されるように、垂直方向にスクロールする代わりに拡大または縮小する場合があります。
フリックが発生したことをアプリケーションに警告するために、ウィンドウ メッセージが送信されます。 このウィンドウ メッセージには、フリックの開始点とフリックの方向の両方が含まれています。 アプリケーションがこのウィンドウ メッセージを処理する場合、ペン入力サブシステムによってそれ以上のアクションは実行されません。
フリックが検出されると、フリックアクションを表す視覚的フィードバックが画面に表示されます。 このフィードバックは、2 つの目的に役立ちます。 まず、フリックが成功したことをユーザーに確認します。 次に、実行されたアクションをユーザーに通知し、ユーザーがフリック方向を関連付けられたアクションに接続できるようにします。
フリックフィードバックは2つの部分で構成されています。アクションを表すアイコンと、アクションの名前を含むラベル。 ラベルがアイコンの下に表示されます。 フリックが検出された直後にフィードバックが表示されます。 アプリケーションはフリック ウィンドウ メッセージを処理することでフリックに応答して動作をカスタマイズできますが、アプリケーションはフリック フィードバックを無効にしたり変更したりすることはできません。
ほとんどのアプリケーションはフリックに対応しないため、上記のウィンドウ メッセージを処理しないことが予想されます。 メッセージが処理されない場合、ペン入力サブシステムはさらにアクションを実行します。 まず、検出されたフリックの方向に関連付けられたアクションを検索します。 次に、ターゲット ウィンドウにこのアクションを実行させる手順 (以下の表で説明) を実行します。 フリック アクションの多くでは、これはアプリケーション コマンドの送信を伴いますが、実装されている特定のアクションでは送信されません。
アプリケーション コマンドの処理
アプリケーションは、フリック ジェスチャに割り当てられる可能性があるいずれかのアプリケーション コマンドに応答する必要があります。 アプリケーションが WM_TABLET_FLICK メッセージに応答できない場合、Windows Vista は、該当する WM_APPCOMMAND 通知を送信し、その後に WM_KEYDOWN 通知を送信してフォローアップします。
以下に、フリックに割り当てることができるアプリケーション コマンドの一覧と、送信される可能性があるバックアップ キーストローク メッセージを示します。
命令 | バックアップのキーストローク |
---|---|
APPCOMMAND_BROWSER_BACKWARD |
何一つ |
APPCOMMAND_BROWSER_FORWARD |
何一つ |
APPCOMMAND_COPY |
Ctrl + C |
APPCOMMAND_PASTE |
Ctrl + V |
APPCOMMAND_UNDO |
Ctrl + Z |
APPCOMMAND_DELETE |
Del |
APPCOMMAND_CUT |
Ctrl + X |
APPCOMMAND_OPEN |
Ctrl + O |
APPCOMMAND_PRINT |
Ctrl + P |
APPCOMMAND_SAVE |
Ctrl + S |
APPCOMMAND_REDO |
Ctrl + Y |
APPCOMMAND_CLOSE |
コピー、貼り付け、切り取り、削除などの編集コマンドは、選択範囲またはフリック ジェスチャのベースにあるオブジェクトに対して送信される場合があります。 選択されていない場合は、FLICK_POINT 構造 のデータを使用して、編集コマンドのターゲットであった可能性のあるオブジェクトを特定できます。
関連トピック
-
フリック ジェスチャ に応答する