JP2013518349A - ジェスチャ認識を制御及び変更するためのデリゲートを有するジェスチャ・レコグナイザ - Google Patents

ジェスチャ認識を制御及び変更するためのデリゲートを有するジェスチャ・レコグナイザ Download PDF

Info

Publication number
JP2013518349A
JP2013518349A JP2012551249A JP2012551249A JP2013518349A JP 2013518349 A JP2013518349 A JP 2013518349A JP 2012551249 A JP2012551249 A JP 2012551249A JP 2012551249 A JP2012551249 A JP 2012551249A JP 2013518349 A JP2013518349 A JP 2013518349A
Authority
JP
Japan
Prior art keywords
individual
gesture
recognizer
event
gesture recognizer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012551249A
Other languages
English (en)
Other versions
JP5497920B2 (ja
Inventor
ジョシュア, エイチ. シェーファー,
ブラッドフォード, アレン ムーア,
ジェイソン, クレイ ビーヴァー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2013518349A publication Critical patent/JP2013518349A/ja
Application granted granted Critical
Publication of JP5497920B2 publication Critical patent/JP5497920B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

ソフトウェア・アプリケーションは、複数のビューとアプリケーション状態とを含む。方法は、1つ以上のビューを表示することを含む。個別のビューは、個別のジェスチャ・レコグナイザに対する対応するデリゲートを有する個別のジェスチャ・レコグナイザを含む。方法は、1つ以上のイベントを検出することと、個別のジェスチャ・レコグナイザを使用して1つ以上のイベントの個別のイベントを処理することとを含む。個別のイベントの処理は、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って個別のジェスチャ・レコグナイザにおいて個別のイベントを処理することと、1つ以上の値を判定するために対応するデリゲートを実行することと、デリゲートにより判定された1つ以上の値に従って個別のイベントに対応する情報をソフトウェア・アプリケーションに条件付きで送信することとを含む。方法は、個別のジェスチャ・レコグナイザから受信された情報に従ってソフトウェア・アプリケーションを実行することを含む。

Description

本発明は一般にジェスチャ入力を認識するための装置及び方法を含むがそれらに限定されないユーザインタフェース処理に関する。
電子デバイスは一般に、計算デバイスと相互作用するために使用されうるユーザインタフェースを含む。ユーザインタフェースは、ユーザインタフェースの種々の態様と相互作用するためのキーボード、マウス及びタッチセンサ面のような表示及び/又は入力デバイスを含む。入力デバイスとしてタッチセンサ面を有する一部のデバイスにおいて、タッチ・ベースのジェスチャの第1集合(例えば、タップ、ダブルタップ、横スワイプ、縦スワイプ、ピンチイン、ピンチアウト、2本指スワイプのうちの2つ以上)は、特定の状況(例えば、第1アプリケーションの特定のモード)において適切な入力として認識され、タッチ・ベースのジェスチャの他の異なる集合は、他の状況(例えば、異なるアプリケーション及び/又は第1アプリケーション内の異なるモード又は状況)において適切な入力として認識される。その結果、タッチ・ベースのジェスチャを認識し、それに応答するのに必要とされるソフトウェア及びロジックは、複雑になる可能性があり、アプリケーションが更新される度又は新しいアプリケーションが計算デバイスに追加される度に修正を必要とする可能性がある。これらの問題及び同様の問題は、タッチ・ベースのジェスチャ以外の入力ソースを利用するユーザインタフェースにおいて発生しうる。
従って、タッチ・ベースのジェスチャ及びイベントだけでなく、他の入力ソースからのジェスチャ及びイベントを認識する総合的なフレームワーク又はメカニズムを有するのが望ましく、これは計算デバイスの全てのアプリケーション・プログラムの事実上全ての状況又はモードに容易に適応可能であり、アプリケーションが更新された場合又は新しいアプリケーションが計算デバイスに追加された場合にほとんど又は全く修正を必要としない。
上述の欠点に対処するために、一部の実施形態によると、1つ以上のイベント・センサを有しており、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを実行するように構成された電子デバイスにおいて方法が実行される。前記方法は、前記複数のビューのうちの1つ以上のビューを表示する工程を含む。前記表示される1つ以上のビューの個別のビューは1つ以上のジェスチャ・レコグナイザを含む。個別のジェスチャ・レコグナイザは対応するデリゲートを有する。前記方法は、1つ以上のイベントを検出する工程と、前記個別のジェスチャ・レコグナイザを用いて前記1つ以上のイベントの個別のイベントを処理する工程とを含む。前記個別のイベントの処理は、前記個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて前記個別のイベントを処理する工程と、前記アプリケーション状態に従って1つ以上の値を判定するために前記個別のジェスチャ・レコグナイザの前記対応するデリゲートを実行する工程と、前記個別のジェスチャ・レコグナイザによる前記個別のイベントの処理の結果に従うとともに前記対応するデリゲートにより判定された前記1つ以上の値に従って、前記個別のイベントに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信する工程とを含む。さらに、前記方法は、前記個別のイベントに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行する工程を含む。
一部の実施形態によると、電子デバイスは、イベントを検出するための1つ以上のイベント・センサと、1つ以上のプロセッサと、メモリと、前記メモリに格納され、前記1つ以上のプロセッサにより実行されるように構成された1つ以上のプログラムとを含む。前記1つ以上のプログラムは、複数のビューとアプリケーション状態とを有するソフトウェア・アプリケーションを含む。前記ソフトウェア・アプリケーションは、前記複数のビューのうちの1つ以上のビューを表示するための命令を含む。前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは対応するデリゲートを有する。前記ソフトウェア・アプリケーションは、1つ以上のイベントを検出するための命令と、前記個別のジェスチャ・レコグナイザを用いて前記検出されたイベントの個別のイベントを処理するための命令とをさらに含む。前記個別のジェスチャ・イベントの処理のための命令は、前記個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて前記個別のイベントを処理するための命令と、前記アプリケーション状態に従って1つ以上の値を判定するために前記対応するデリゲートを実行するための命令と、前記個別のジェスチャ・レコグナイザによる前記個別のイベントの処理の結果に従うとともに前記対応するデリゲートにより判定された前記1つ以上の値に従って、前記個別のイベントに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信するための命令とを含む。さらに、前記ソフトウェア・アプリケーションは、前記個別のイベントに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行するための命令を含む。
一部の実施形態によると、コンピュータ可読記憶媒体は、イベントを検出するための1つ以上のイベント・センサを有する電子デバイスの1つ以上のプロセッサによる実行のための1つ以上のプログラムを格納する。前記1つ以上のプログラムは、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを含む。前記ソフトウェア・アプリケーションは、前記複数のビューのうちの1つ以上のビューを表示するための命令を含む。前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは対応するデリゲートを有する。前記ソフトウェア・アプリケーションは、1つ以上のイベントを検出するための命令と、前記個別のジェスチャ・レコグナイザを用いて前記検出されたイベントの個別のイベントを処理するための命令を含む。前記個別のイベントの処理のための命令は、前記個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて前記個別のイベントを処理するための命令と、前記アプリケーション状態に従って1つ以上の値を判定するために前記対応するデリゲートを実行するための命令と、前記個別のジェスチャ・レコグナイザによる前記個別のイベントの処理の結果に従うとともに前記対応するデリゲートにより判定された前記1つ以上の値に従って、前記個別のイベントに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信するための命令とを含む。さらに、前記ソフトウェア・アプリケーションは、前記個別のイベントに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行するための命令を含む。
一部の実施形態によると、タッチセンサ面を有しており、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを実行するように構成された電子デバイスにおいて方法が実行される。前記方法は、前記複数のビューのうちの1つ以上のビューを表示する工程を含む。前記表示される1つ以上のビューの個別のビューは個別のジェスチャ・レコグナイザを含む。個別のジェスチャ・レコグナイザは対応するデリゲートを有する。前記方法は、前記タッチセンサ面において、前記表示されたビューのうちの1つ以上のビューの範囲に入るタッチ位置をそれぞれが有する1つ以上のタッチを検出する工程をさらに含む。前記方法は、前記1つ以上のタッチの個別のタッチを処理する工程をさらに含む。前記個別のタッチを処理する工程は、前記アプリケーション状態に従って受信タッチ値を取得するために前記個別のジェスチャ・レコグナイザに対応する前記デリゲートを実行する工程と、前記受信タッチ値が所定の基準を満たす場合に前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程とを含む。前記個別のタッチを処理する工程はまた、前記個別のタッチに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信する工程を含む。さらに、前記方法は、前記個別のタッチに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行する工程を含む。
一部の実施形態によると、電子デバイスは、タッチセンサ面と、1つ以上のプロセッサと、メモリと、前記メモリに格納され、前記1つ以上のプロセッサにより実行されるように構成された1つ以上のプログラムとを含む。前記1つ以上のプログラムは、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを含む。前記ソフトウェア・アプリケーションは、前記複数のビューのうちの1つ以上のビューを表示するための命令を含む。前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含む。個別のジェスチャ・レコグナイザは対応するデリゲートを有する。前記ソフトウェア・アプリケーションはまた、前記タッチセンサ面において、前記表示されたビューのうちの1つ以上のビューの範囲に入るタッチ位置をそれぞれが有する1つ以上のタッチを検出するための命令を含む。前記ソフトウェア・アプリケーションはさらに、前記1つ以上のタッチの個別のタッチを処理するための命令を含む。前記個別のタッチを処理するための命令は、前記アプリケーション状態に従って受信タッチ値を取得するために前記個別のジェスチャ・レコグナイザに対応する前記デリゲートを実行するための命令と、前記受信タッチ値が所定の基準を満たす場合に前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理するための命令とを含む。前記個別のタッチを処理するための命令はまた、前記個別のタッチに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信するための命令を含む。さらに、前記ソフトウェア・アプリケーションは、前記個別のタッチに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行するための命令を含む。
一部の実施形態によると、コンピュータ可読記憶媒体は、タッチセンサ面を有する電子デバイスの1つ以上のプロセッサによる実行のための1つ以上のプログラムを格納する。前記1つ以上のプログラムは、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを含む。前記ソフトウェア・アプリケーションは、前記複数のビューのうちの1つ以上のビューを表示するための命令を含む。前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含む。個別のジェスチャ・レコグナイザは対応するデリゲートを有する。前記ソフトウェア・アプリケーションはまた、前記タッチセンサ面において、前記表示されたビューのうちの1つ以上のビューの範囲に入るタッチ位置をそれぞれが有する1つ以上のタッチを検出するための命令を含む。前記ソフトウェア・アプリケーションはさらに、前記1つ以上のタッチの個別のタッチを処理するための命令を含む。前記個別のタッチを処理するための命令は、前記アプリケーション状態に従って受信タッチ値を取得するために前記個別のジェスチャ・レコグナイザに対応する前記デリゲートを実行するための命令と、前記受信タッチ値が所定の基準を満たす場合に前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理するための命令とを含む。前記個別のタッチを処理するための命令はまた、前記個別のタッチに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信するための命令を含む。さらに、前記ソフトウェア・アプリケーションは、前記個別のタッチに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行するための命令を含む。
一部の実施形態によると、タッチセンサ面を有しており、ソフトウェア・アプリケーションを実行するように構成された電子デバイスにおいて方法が実行される。前記方法は、前記ソフトウェア・アプリケーションの1つ以上のビューを表示する工程を含む。前記表示される1つ以上のビューは複数のジェスチャ・レコグナイザを含む。前記複数のジェスチャ・レコグナイザは少なくとも1つの離散ジェスチャ・レコグナイザと、少なくとも1つの連続ジェスチャ・レコグナイザとを含む。前記離散ジェスチャ・レコグナイザは個別のジェスチャに応答して単一の動作メッセージを送信するように構成され、前記連続ジェスチャ・レコグナイザは認識された個別のジェスチャの認識された連続するサブイベントにおいて動作メッセージを送信するように構成される。前記方法はまた、1つ以上のタッチを検出する工程と、前記ジェスチャ・レコグナイザのうちの1つ以上を使用しての前記タッチのそれぞれを処理する工程とを含む。前記個別のタッチを処理する工程は、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて個別のタッチを処理する工程と、前記個別のジェスチャ・レコグナイザにおける前記個別のタッチの処理の結果に従って1つ以上の個別の動作メッセージを前記ソフトウェア・アプリケーションに条件付きで送信する工程とを含む、前記方法はさらに、前記タッチの1つ以上に対応する前記ジェスチャ・レコグナイザの1つ以上から受信された1つ以上の動作メッセージに従って前記ソフトウェア・アプリケーションを実行する工程を含む。
一部の実施形態によると、電子デバイスは、タッチセンサ面と、1つ以上のプロセッサと、メモリと、前記メモリに格納され、前記1つ以上のプロセッサにより実行されるように構成された1つ以上のプログラムとを含む。前記1つ以上のプログラムは、ソフトウェア・アプリケーションを含む。前記ソフトウェア・アプリケーションは、前記ソフトウェア・アプリケーションの1つ以上のビューを表示するための命令を含む。前記表示される1つ以上のビューは複数のジェスチャ・レコグナイザを含む。前記複数のジェスチャ・レコグナイザは、少なくとも1つの離散ジェスチャ・レコグナイザと、少なくとも1つの連続ジェスチャ・レコグナイザとを含む。少なくとも1つの離散ジェスチャ・レコグナイザは個別のジェスチャに応答して単一の動作メッセージを送信するように構成され、少なくとも1つの連続ジェスチャ・レコグナイザは認識された個別のジェスチャの認識された連続するサブイベントにおいて動作メッセージを送信するように構成される。前記ソフトウェア・アプリケーションはまた、1つ以上のタッチを検出するための命令と、前記ジェスチャ・レコグナイザのうちの1つ以上を使用しての前記タッチのそれぞれを処理するための命令とを含む。個別のタッチの処理のための命令は、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて個別のタッチを処理するための命令と、前記個別のジェスチャ・レコグナイザにおける前記個別のタッチの処理の結果に従って1つ以上の個別の動作メッセージを前記ソフトウェア・アプリケーションに条件付きで送信するための命令とを含む。前記ソフトウェア・アプリケーションはさらに、前記タッチの1つ以上に対応する前記ジェスチャ・レコグナイザの1つ以上から受信された1つ以上の動作メッセージに従って前記ソフトウェア・アプリケーションを実行するための命令を含む。
一部の実施形態によると、コンピュータ可読記憶媒体は、タッチセンサ面を有する電子デバイスの1つ以上のプロセッサによる実行のための1つ以上のプログラムを格納する。前記1つ以上のプログラムは、ソフトウェア・アプリケーションを含む。前記ソフトウェア・アプリケーションは、前記ソフトウェア・アプリケーションの1つ以上のビューを表示するための命令を含む。前記表示される1つ以上のビューは複数のジェスチャ・レコグナイザを含む。前記複数のジェスチャ・レコグナイザは、少なくとも1つの離散ジェスチャ・レコグナイザと、少なくとも1つの連続ジェスチャ・レコグナイザとを含む。少なくとも1つの離散ジェスチャ・レコグナイザは個別のジェスチャに応答して単一の動作メッセージを送信するように構成され、少なくとも1つの連続ジェスチャ・レコグナイザは認識された個別のジェスチャの認識された連続するサブイベントにおいて動作メッセージを送信するように構成される。前記ソフトウェア・アプリケーションはまた、1つ以上のタッチを検出するための命令と、前記ジェスチャ・レコグナイザのうちの1つ以上を使用しての前記タッチのそれぞれを処理するための命令とを含む。前記個別のタッチの処理のための命令は、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて個別のタッチを処理するための命令と、前記個別のジェスチャ・レコグナイザにおける前記個別のタッチの処理の結果に従って1つ以上の個別の動作メッセージを前記ソフトウェア・アプリケーションに条件付きで送信するための命令とを含む。前記ソフトウェア・アプリケーションはさらに、前記タッチの1つ以上に対応する前記ジェスチャ・レコグナイザの1つ以上から受信された1つ以上の動作メッセージに従って前記ソフトウェア・アプリケーションを実行するための命令を含む。
一部の実施形態によると、電子デバイスは、1つ以上のイベントを検知するように構成された1つ以上のイベント検知ユニットと、前記1つ以上のイベント検知ユニットに結合された処理ユニットとを含む。前記処理ユニットは、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを実行し、前記複数のビューのうちの1つ以上のビューの表示を可能にするように構成される。前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは対応するデリゲートを有する。前記処理ユニットは、前記1つ以上のイベント検知ユニットにより1つ以上のイベントを検出し、前記個別のジェスチャ・レコグナイザを用いて前記1つ以上のイベントの個別のイベントを処理することを、前記個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて前記個別のイベントを処理し、前記アプリケーション状態に従って1つ以上の値を判定するために前記対応するデリゲートを実行し、前記個別のジェスチャ・レコグナイザによる前記個別のイベントの処理の結果に従うとともに前記対応するデリゲートにより判定された前記1つ以上の値に従って、前記個別のイベントに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信することによって行うように構成される。前記処理ユニットは、前記個別のイベントに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行するように構成される。
一部の実施形態によると、電子デバイスは、1つ以上のタッチを受信するように構成されたタッチセンサ面ユニットと、前記タッチセンサ面ユニットに結合された処理ユニットとを含む。前記処理ユニットは、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを実行し、前記複数のビューのうちの1つ以上のビューの表示を可能にするように構成される。前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは対応するデリゲートを有する。前記処理ユニットは、前記表示されたビューのうちの1つ以上のビューの範囲に入るタッチ位置をそれぞれが有し、前記タッチセンサ面において受信された1つ以上のタッチを検出するように構成される。前記処理ユニットは、前記1つ以上のタッチの個別のタッチを処理することを、前記アプリケーション状態に従って受信タッチ値を取得するために前記個別のジェスチャ・レコグナイザに対応する前記デリゲートを実行し、前記受信タッチ値が所定の基準を満たす場合に前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理し、前記個別のタッチに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信することによって行うように構成される。前記処理ユニットは、前記個別のタッチに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行するように構成される。
一部の実施形態によると、電子デバイスは、1つ以上のタッチを受信するように構成されたタッチセンサ面ユニットと、前記タッチセンサ面ユニットに結合された処理ユニットとを含む。前記処理ユニットは、ソフトウェア・アプリケーションを実行し、前記ソフトウェア・アプリケーションの1つ以上のビューの表示を可能にするように構成される。前記表示される1つ以上のビューは複数のジェスチャ・レコグナイザを含み、前記複数のジェスチャ・レコグナイザは、少なくとも1つの離散ジェスチャ・レコグナイザと、少なくとも1つの連続ジェスチャ・レコグナイザとを含む。少なくとも1つの離散ジェスチャ・レコグナイザは個別のジェスチャに応答して単一の動作メッセージを送信するように構成され、少なくとも1つの連続ジェスチャ・レコグナイザは認識された個別のジェスチャの認識された連続するサブイベントにおいて動作メッセージを送信するように構成される。前記処理ユニットは、前記タッチセンサ面ユニットで受信された1つ以上のタッチを検出し、前記ジェスチャ・レコグナイザのうちの1つ以上を使用しての前記タッチのそれぞれを処理するように構成される。前記処理ユニットは、個別のタッチを処理することを、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて個別のタッチを処理し、前記個別のジェスチャ・レコグナイザにおける前記個別のタッチの処理の結果に従って1つ以上の個別の動作メッセージを前記ソフトウェア・アプリケーションに条件付きで送信することによって行うように構成される。前記処理ユニットは、前記タッチの1つ以上に対応する前記ジェスチャ・レコグナイザの1つ以上から受信された1つ以上の動作メッセージに従って前記ソフトウェア・アプリケーションを実行するように構成される。
一部の実施形態に係る電子デバイスを示すブロック図である。 一部の実施形態に係る例示的な電子デバイスの入出力処理スタックの図である。 一部の実施形態に係る例示的なビュー階層を示す図である。 一部の実施形態に係るイベント処理のための例示的なコンポーネントを示すブロック図である。 一部の実施形態に係るジェスチャ・レコグナイザの例示的なクラス及びインスタンスを示すブロック図である。 一部の実施形態に係る例示的な状態遷移マシンを示すフローチャートである。 一部の実施形態に係るイベント情報のフローを示すブロック図である。 一部の実施形態に係るジェスチャ認識方法を示す高レベル・フローチャートである。 一部の実施形態に係るデリゲートから取得された情報に従って個別のイベントを処理する例示的な方法を示すフローチャートである。 一部の実施形態に係るデリゲートから取得された受信タッチ値に従って個別のタッチを処理する例示的な方法を示すフローチャートである。 一部の実施形態に係る離散ジェスチャ・レコグナイザ及び連続ジェスチャ・レコグナイザを含むソフトウェア・アプリケーションにおいて個別のタッチを処理する例示的な方法を示すフローチャートである。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。 一部の実施形態に係る電子デバイスの機能ブロック図である。
図面を通じて、同様の参照符号は対応する部分を示す。
以下、実施形態を詳細に参照する。実施形態の例を添付の図面に示す。以下の詳細な説明において、本発明を完全な理解を提供するために多くの特定の詳細が説明される。しかし、本発明は、これらの特定の詳細を含まずに実施されてもよいことが当業者には明らかであるだろう。他の例において、実施形態の態様を不必要に曖昧にしないために、周知の方法、手順、コンポーネント、回路及びネットワークについては詳細に記載していない。
種々の要素を記載するために第1、第2などの用語が本明細書において使用されるが、これらの要素はこれらの用語により限定されるべきではないことが理解されるだろう。これらの用語は、1つの要素を別の要素と区別するためだけに使用される。例えば本発明の範囲から逸脱せずに、第1接触が第2接触と呼ばれてもよく、同様に第2接触が第1接触と呼ばれてもよい。第1接触及び第2接触は両方とも接触であるが同一の接触ではない。
本明細書において本発明の説明に使用される専門用語は、特定の実施形態を説明するためのものであり、本発明を限定することを意図しない。本発明の説明及び添付の特許請求の範囲において使用されるように、文脈で別段の明記が無い限り、単数形「a」、「an」及び「the」は複数形を含むことを意図する。本明細書で使用されるような「及び/又は」という用語は、列挙された関連する項目のうちの1つ以上のものの任意且つ全ての可能な組み合わせを参照し、包含することが理解されるだろう。「備える」及び/又は「備えている」という用語は、本明細書において使用される場合に、規定された特徴、数字、ステップ、動作、要素及び/又はコンポーネントの存在を特定するが、1つ以上の他の特徴、数字、ステップ、動作、要素、コンポーネント及び/又はこれらのグループの存在又は追加を除外しないことがさらに理解されるだろう。
本明細書で使用されるように、「ならば」という用語は、状況に応じて「場合に」又は「時に」又は「判定したことに応答して」又は「検出したことに応答して」を意味すると解釈される。同様に、「判定されたならば」又は「[規定された状態又はイベント]が検出されたならば」という句は、状況に応じて「判定すると」又は「判定したことに応答して」又は「(規定された状態又はイベント)を検出した時に」又は「(規定された状態又はイベント)を検出したことに応答して」を意味すると解釈される。
本明細書で使用されるように、「イベント」という用語は、デバイスの1つ以上センサにより検出された入力を示す。特に、「イベント」という用語はタッチセンサ面におけるタッチを含む。イベントは1つ以上のサブイベントを含む。サブイベントは典型的に、イベントに対する変更を示す(例えば、タッチのタッチ・ダウン、タッチ・ムーブ及びリフトオフはサブイベントでありうる)。1つ以上のサブイベントのシーケンスにおけるサブイベントは、とりわけキー押下、キー押下保持、キー押下解放、ボタン押下、ボタン押下保持、ボタン押下解放、ジョイスティック移動、マウス移動、マウスボタン押下、マウスボタン解放、ペンスタイラス・タッチ、ペンスタイラス移動、ペンスタイラス解放、音声命令、検出された眼球運動、バイオメトリック入力及び検出されたユーザの生理学的変化を含むがこれらに限定されない多くの形態を含む。イベントは単一のサブイベント(例えば、デバイスの横方向の短い動き)を含みうるので、本明細書で使用される「サブイベント」という用語はイベントも示す。
本明細書で使用されるように、「イベント・レコグナイザ」及び「ジェスチャ・レコグナイザ」という用語は、ジェスチャ又は他のイベント(例えばデバイスの動き)を認識できるレコグナイザを示すために交換可能に使用される。
上述したように、入力デバイスとしてタッチセンサ面を有する一部のデバイスにおいて、タッチ・ベースのジェスチャの第1集合(例えば、タップ、ダブルタップ、横スワイプ、縦スワイプの2つ以上)は、特定の状況(例えば、第1アプリケーションの特定のモード)において適切な入力として認識され、タッチ・ベースのジェスチャの他の異なる集合は、他の状況(例えば、異なるアプリケーション及び/又は第1アプリケーション内の異なるモード又は状況)において適切な入力として認識される。さらに、2つ以上の適切な入力(又はジェスチャ)は、互いに干渉するか又は矛盾しうる(例えば、シングルタップを検出した後に、シングルタップを完全なシングルタップ・ジェスチャとして認識するか又はダブルタップ・ジェスチャの一部として認識するかを決定する必要がある)。その結果、タッチ・ベースのジェスチャを認識し、それに応答するのに必要とされるソフトウェア及びロジックは複雑になる可能性があり、アプリケーションが更新される度又は新しいアプリケーションが計算デバイスに追加される度に修正を必要としうる。
タッチセンサ面を有するデバイスで実行するアプリケーションを制御するためにタッチ・ベースのジェスチャを使用する場合に、タッチは時間的側面及び空間的側面の両方を有する。フェーズと呼ばれる時間的側面は、いつタッチが始まったか、それが移動しているか又は静止しているか、並びにいつそれが終了したか、すなわちいつ指が画面から持ち上げられたかを示す。タッチの空間的側面は、タッチが発生したビュー又はユーザインタフェース・ウィンドウの集合である。タッチが検出されるビュー又はウィンドウは、ビュー階層のプログラムレベルに対応する。例えば、タッチが検出される最下位レベルのビューはヒット・ビューと呼ばれ、適切な入力として認識されるイベントの集合は、タッチ・ベースのジェスチャを開始する最初のタッチのヒット・ビューに少なくとも部分的に基づいて判定されうる。
図1A及び図1Bは、一部の実施形態に係る電子デバイス102、104の種々の実施形態を示すブロック図である。電子デバイス102又は104は、デスクトップ・コンピュータシステム、ラップトップ・コンピュータシステム、ネットブック・コンピュータシステム、移動体電話機、スマートフォン、携帯情報端末又はナビゲーションシステムを含むがこれらに限定されない任意の電子デバイスであってもよい。電子デバイスはまた、ユーザインタフェースを提示するように構成されたタッチスクリーン・ディスプレイ(例えば、図1Bのタッチセンサ・ディスプレイ156)を有するポータブル電子デバイス、ユーザインタフェースを提示するように構成されたタッチスクリーン・ディスプレイを含むコンピュータ、タッチセンサ面とユーザインタフェースを提示するように構成されたディスプレイとを有するコンピュータ、若しくはコンシューマ電子デバイス、移動体電話機、ビデオゲームシステム、電子音楽プレーヤ、タブレットPC、電子書籍読書システム、電子書籍、PDA、電子オーガナイザ、電子メールデバイス、ラップトップ、ネットブック又は他のコンピュータ、キオスクコンピュータ、自動販売機、スマート機器等を含むがこれらに限定されない任意の他の形態の計算デバイスであってもよい。電子デバイス102又は104はユーザインタフェース113を含む。
一部の実施形態において、電子デバイス104は、タッチスクリーン・ディスプレイを含む。これらの実施形態において、ユーザインタフェース113は、電子デバイス102及び104と相互作用するためにユーザにより使用されるオンスクリーン・キーボード(不図示)を含みうる。これに代えて、キーボードは電子デバイス104(又は電子デバイス102)から分離した別個のものであってもよい。例えばキーボードは、電子デバイス102又は104に結合された有線又は無線キーボードでありうる。
一部の実施形態において、電子デバイス102は、電子デバイス102に結合された、ディスプレイ126と1つ以上の入力デバイス128(例えば、キーボード、マウス、トラックボール、マイク、物理ボタン(群)、タッチパッド等)とを含む。これらの実施形態において、入力デバイス128のうちの1つ以上は、場合によっては電子デバイス102から分離した別個のものであってもよい。例えば、1つ以上の入力デバイスは、場合によっては電子デバイスから分離してもよいキーボード、マウス、トラックパッド、トラックボール及び電子ペンのうちの1つ以上を含みうる。オプションとして、デバイス102又は104は、1つ以上の加速度計、ジャイロスコープ、GPSシステム、スピーカ、赤外線(IR)センサ、バイオメトリック・センサ、カメラ等の1つ以上のセンサ130を含んでもよい。なお、入力デバイス128又はセンサ130である種々の例示的なデバイスの上記説明は、本明細書で説明する実施形態の動作に重要なものではなく、本明細書で入力デバイスとして説明される任意の入力デバイス又はセンサ・デバイスはセンサとして同様に適切に説明され、センサとして説明される任意の入力デバイス又はセンサ・デバイスは入力デバイスとして同様に適切に説明される。一部の実施形態において、1つ以上のセンサ130により生成された信号はイベントを検出する入力ソースとして使用される。
一部の実施形態において、電子デバイス104は、電子デバイス104に結合された、タッチセンサ・ディスプレイ156(すなわち、タッチセンサ面を有するディスプレイ)と、1つ以上の入力デバイス128とを含む。一部の実施形態において、タッチセンサ・ディスプレイ156は、2つ以上の別個の同時(又は部分的に同時)のタッチを検出する機能を有し、これらの実施形態において、ディスプレイ156は、本明細書においてマルチタッチ・ディスプレイ又はマルチタッチセンサ・ディスプレイと呼ばれる場合もある。
本明細書で説明する電子デバイス102又は104の一部の実施形態において、入力デバイス128は電子デバイス102又は104に配置される。他の実施形態において、入力デバイス128のうちの1つ以上は、電子デバイス102又は104から分離した別個のものであり、例えば入力デバイス128のうちの1つ以上は、ケーブル(例えば、USBケーブル)又は無線接続(例えば、Bluetooth(登録商標)接続)により電子デバイス102又は104に結合されうる。
入力デバイス128を使用する場合に、又は電子デバイス104のタッチセンサ・ディスプレイ156においてタッチ・ベースのジェスチャを実行する場合に、ユーザは電子デバイス102又は104の1つ以上のCPU110により処理されるサブイベントのシーケンスを生成する。一部の実施形態において、電子デバイス102又は104の1つ以上のCPU110は、イベントを認識するためにサブイベントのシーケンスを処理する。
電子デバイス102又は104は典型的に、1つ以上のシングルコア又はマルチコア・プロセッシングユニット(「CPU」又は「CPU群」)110だけでなく、1つ以上のネットワーク又は他の通信インタフェース112とをそれぞれ含む。電子デバイス102又は104は、メモリ111と、コンポーネントを相互接続するための1つ以上の通信バス115とをそれぞれ含む。通信バス115は、(本明細書では不図示の)システムコンポーネントを相互接続し、これらの間の通信を制御する(チップセットと呼ばれる場合もある)回路構成を含む。上記で簡単に説明したように、電子デバイス102又は104は、ディスプレイ(例えば、ディスプレイ126又はタッチセンサ・ディスプレイ156)を含むユーザインタフェース113を含む。さらに、電子デバイス102又は104は典型的に、入力デバイス128(例えば、キーボード、マウス、タッチセンサ面、キーパッド等)を含む。一部の実施形態において、入力デバイス128はオンスクリーン入力デバイス(例えば、表示デバイスのタッチセンサ面)を含む。メモリ111は、DRAM、SRAM、DDRRAM又は他のランダムアクセス固体メモリデバイス等の高速ランダムアクセスメモリを含んでもよく、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス又は他の不揮発性固体記憶デバイス等の不揮発性メモリを含んでもよい。メモリ111は、場合によってはCPU(群)110から離れて配置された1つ以上の記憶デバイスを含みうる。メモリ111又はこれに代えてメモリ111内の不揮発性メモリデバイス(群)は、コンピュータ可読記憶媒体を含む。一部の実施形態において、(電子デバイス102又は104の)メモリ111又はメモリ111のコンピュータ可読記憶媒体は、以下のプログラム、モジュール及びデータ構造、若しくはこれらの部分集合を格納する。
●種々の基本システムサービスを処理し、ハードウェア依存のタスクを実行するプロシージャを含むオペレーティングシステム118。
●1つ以上の個別の通信インタフェース112(有線又は無線)と、インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク及びメトロポリタンエリアネットワーク等の1つ以上の通信ネットワークとを介して電子デバイス102又は104を他のデバイスにそれぞれ接続するために使用される通信モジュール120。
●ユーザインタフェース・オブジェクトを含むユーザインタフェースをディスプレイ126又はタッチセンサ・ディスプレイ156に表示するために使用されるユーザインタフェース・モジュール122。
●処理(例えば、ヒット・ビュー判定、スレッド管理及び/又はイベント監視等)を制御するために使用される制御アプリケーション124。一部の実施形態において、制御アプリケーション124はランタイム・アプリケーションを含む。他の実施形態において、ランタイム・アプリケーションは制御アプリケーション124を含む。
●オペレーティングシステム118内の種々の別の実施形態において又はアプリケーション・ソフトウェア132において実装されうるイベント配信システム130。しかし、一部の実施形態において、イベント配信システム130の一部の態様はオペレーティングシステム118において実装され、他の態様(例えば、イベント・ハンドラの少なくとも部分集合)はアプリケーション・ソフトウェア132において実装される。
●1つ以上のソフトウェア・アプリケーション(例えば、電子メール・アプリケーション、ウェブブラウザ・アプリケーション、テキストメッセージング・アプリケーション等)を含むアプリケーション・ソフトウェア132。各ソフトウェア・アプリケーションは典型的に、少なくとも実行時にソフトウェア・アプリケーション及びそのコンポーネント(例えば、ジェスチャ・レコグナイザ及びデリゲート)の状態を示すアプリケーション状態を有する。以下に説明するアプリケーション内部状態317(図3B)を参照。
●ソフトウェア・アプリケーション及びこれらのコンポーネント(例えば、ジェスチャ・レコグナイザ及びデリゲート)の状態を示すアプリケーション状態と、タッチセンサ・ディスプレイ156又はディスプレイ126の種々の領域を占有するアプリケーション、ビュー又は他の情報を示す表示状態と、デバイスの種々のセンサ130、入力デバイス128及び/又はタッチセンサ・ディスプレイ156から取得された情報を含むセンサ状態と、デバイスの位置及び/又は姿勢に関する位置情報とのうちの1つ以上を含むデバイス/グローバル内部状態134。
上記の識別された要素のぞれぞれは、上述したメモリデバイスの1つ以上に格納されてもよく、本明細書で説明する機能を実行する命令の集合に対応する。命令の集合は、1つ以上のプロセッサ(例えば、1つ以上のCPU110)により実行されうる。上記の識別されたモジュール又はプログラム(すなわち、命令の集合)は、別個のソフトウェアプログラム、プロシージャ又はモジュールとして実装される必要がないので、これらのモジュールの種々の部分集合は、種々の実施形態において組み合わされうるか又は他のように再構成されうる。一部の実施形態において、メモリ111は、上記で識別されたモジュール及びデータ構造の部分集合を格納してもよい。さらに、メモリ111は、上述されていない追加のモジュール及びデータ構造を格納してもよい。
図2は、本発明の一部の実施形態に係る例示的な電子デバイス又は装置(例えば、デバイス102又は104)の入出力処理スタック200の図である。デバイスのハードウェア(例えば、電子回路構成)212は、入出力処理スタック200のベース・レベルにある。ハードウェア212は、図1A及び/又は図1Bに示されたコンポーネント等の種々のハードウェア・インタフェース・コンポーネントを含む。ハードウェア212は、上述のセンサ130のうちの1つ以上も含みうる。入出力処理スタック200の他の全ての要素(132、204〜210)は、ハードウェア212から受信した入力を処理し、ハードウェア・ユーザインタフェース(例えば、ディスプレイ、スピーカ、デバイス振動アクチュエータのうちの1つ以上)を介して提示される種々の出力を生成するソフトウェア・プロシージャ又はソフトウェア・プロシージャの一部である。
ドライバ又はドライバの集合210はハードウェア212と通信する。ドライバ210は、ハードウェア212から入力データを受信し、受信した入力データを処理する。コアオペレーティングシステム(「OS」)208はドライバ(群)210と通信できる。コアOS208は、ドライバ(群)210から受信した入力生データを処理する。一部の実施形態において、ドライバ210はコアOS208の一部であるとみなされうる。
OSアプリケーション・プログラミング・インタフェース(「OS API」)の集合206は、コアOS208と通信するソフトウェア・プロシージャである。一部の実施形態において、API206は、デバイスのオペレーティングシステムに含まれるが、コアOS208よりも上のレベルにある。API206は、本明細書で説明する電子デバイス又は装置で実行するアプリケーションにより使用されるように設計される。ユーザインタフェース(UI)API204はOS API206を利用できる。デバイスで実行するアプリケーション・ソフトウェア(「アプリケーション」)132は、ユーザと通信するためにUI API204を利用できる。続いて、UI API204は、下位レベルの要素と通信し、最終的に、例えばマルチタッチ・ディスプレイ156である種々のユーザインタフェース・ハードウェアと通信する。
入出力処理スタック200の各層は自身よりも下の層を利用できるが、これは必ずしも必要とされない。例えば、一部の実施形態において、アプリケーション132はOS API206と通信することもある。一般に、OS API層206以上の層は、プライベートであるとみなされるので、コアOS208、ドライバ(群)210又はハードウェア212に直接にアクセスしなくてもよい。層内のアプリケーション132及びUI API204は、通常、OS API206を直接に呼び出し、続いて、OS API206は、コアOS208、ドライバ(群)210及びハードウェア212の層にアクセスする。
別のように示すと、電子デバイス102又は104の1つ以上のハードウェア要素212と、例えば(図2に示す)ドライバ(群)210、(図2に示す)コアOS(オペレーティングシステム)208、(図2に示す)オペレーティングシステムAPIソフトウェア206及び(図2に示す)アプリケーション・ユーザインタフェースAPIソフトウェア204のような、デバイスで実行するソフトウェアとは、入力デバイス(群)128及び/又はタッチセンサ・ディスプレイ156のうちの1つ以上において、(ジェスチャのサブイベントに対応しうる)入力イベントを検出し、アプリケーション132に配信されるイベントに入力イベントが対応するか及びいつ対応するかを判定するために現在アクティブであるイベント・レコグナイザの集合により使用される(デバイス102又は104のメモリに格納される)種々のデータ構造を生成又は更新する。イベント認識の方法、装置及びコンピュータプログラムの実施形態について、以下にさらに詳細に説明する。
図3Aは、この例では最も外側のビュー302に表示された探索プログラムである例示的なビュー階層300を示す。最も外側のビュー302は一般に、ユーザが直接に相互作用しうるユーザインタフェース全体を包含し、例えば以下のような従属ビューを含む。
●探索結果をグループ化し、縦方向にスクロール可能である探索結果パネル304。
●テキスト入力を受け付ける探索フィールド306。
●迅速なアクセスのためにアプリケーションをグループ化するホーム列310。
この例において、各従属ビューは下位レベルの従属ビューを含む。他の例において、階層300におけるビュー・レベルの個数は、階層の相異なる分岐において異なってもよく、1つ以上の従属ビューは下位レベルの従属ビューを有し、1つ以上の他の従属ビューはそのような下位レベルの従属ビューを全く有さない。図3Aに示す例を引き続き参照すると、探索結果パネル304は、探索結果毎に分離した(パネル304に従属する)従属ビュー305を含む。本明細書において、この例は、地図ビュー305と呼ばれる従属ビューにおける1つの探索結果を示す。探索フィールド306は、本明細書でコンテンツクリア・アイコン・ビュー307と呼ばれる従属ビューを含み、これは、ユーザがビュー307のコンテンツクリア・アイコンに対して特定の動作(例えば、シングルタッチ・ジェスチャ又はシングルタップ・ジェスチャ)を実行した場合に探索フィールドのコンテンツをクリアする。ホーム列310は、連絡先アプリケーション、電子メール・アプリケーション、ウェブブラウザ及びiPod(登録商標)ミュージックインタフェースにそれぞれ対応する従属ビュー310−1、310−2、310−3及び310−4を含む。
タッチ・サブイベント301−1は、最も外側のビュー302において表現される。タッチ・サブイベント301−1の位置が探索結果パネル304及び地図ビュー305の両方の上にあると仮定すると、タッチ・サブイベントは、それぞれ301−2及び301−3としてもこれらのビュー上にさらに表現される。タッチ・サブイベントの能動的関与ビューは、ビュー探索結果パネル304、地図ビュー305及び最も外側のビュー302を含む。図3B及び図3Cを参照して、サブイベント配信及び能動的関与ビューに関する追加の情報を以下に提供する。
ビュー(及び対応するプログラム・レベル)はネストされうる。言い換えると、ビューは他のビューを含みうる。従って、第1ビューに関連するソフトウェア要素(群)(例えば、イベント・レコグナイザ)は、第1ビュー内のビューに関連する1つ以上のソフトウェア要素を含むか又はそれにリンクされうる。アプリケーションに関連するビューもあれば、グラフィカルユーザインタフェース、ウィンドウマネージャ等の上位レベルのOS要素に関連するビューもある。
図3Bは、一部の実施形態に係るイベント処理のための例示的なコンポーネント(例えば、イベント処理コンポーネント390)を示すブロック図である。一部の実施形態において、(図1A及び図1Bの)メモリ111は、(例えば、オペレーティングシステム118における)イベント・レコグナイザ・グローバルメソッド311と、個別のアプリケーション132−1とを含む。
一部の実施形態において、イベント・レコグナイザ・グローバルメソッド311は、イベント・モニタ312と、ヒット・ビュー判定モジュール313と、アクティブイベント・レコグナイザ判定モジュール314と、イベント・ディスパッチャ・モジュール315とを含む。一部の実施形態において、イベント・レコグナイザ・グローバルメソッド311はイベント配信システム130内に配置される。一部の実施形態において、イベント・レコグナイザ・グローバルメソッド311はオペレーティングシステム118において実装される。これに代えて、イベント・レコグナイザ・グローバルメソッド311はアプリケーション132−1において実装される。さらに他の実施形態において、イベント・レコグナイザ・グローバルメソッド311は、スタンドアロン・モジュール又はメモリ111に格納された別のモジュール(例えば、接触/動作モジュール(不図示))の一部として実装される。
イベント・モニタ312は、センサ130、タッチセンサ・ディスプレイ156及び/又は入力デバイス128からイベント情報を受信する。イベント情報は、イベント(例えば、マルチタッチ・ジェスチャ若しくはデバイス102又は104の動きの一部であるタッチセンサ・ディスプレイ156におけるユーザ・タッチ)及び/又はサブイベント(例えば、タッチセンサ・ディスプレイ156にわたるタッチの移動)に関する情報を含む。例えば、タッチ・イベントについてのイベント情報は、タッチの位置及びタイムスタンプのうちの1つ以上を含む。同様に、スワイプ・イベントについてのイベント情報は、スワイプの位置、タイムスタンプ、方向及び速度のうちの2つ以上を含む。センサ130、タッチセンサ・ディスプレイ156及び入力デバイス128は、イベント及びサブイベント情報をイベント・モニタ312に直接又は周辺インタフェースを介して送信し、イベント・モニタ312はイベント情報を読み出し、格納する。センサ130は、近接センサ、加速度計(群)、ジャイロスコープ、マイク及びビデオカメラのうちの1つ以上を含む。一部の実施形態において、センサ130は、入力デバイス128及び/又はタッチセンサ・ディスプレイ156も含む。
一部の実施形態において、イベント・モニタ312は、所定の間隔で、センサ130及び/又は周辺インタフェースに要求を送信する。これに応答して、センサ130及び/又は周辺インタフェースはイベント情報を送信する。他の実施形態において、センサ130及び周辺インタフェースは、重大イベント(例えば、所定の雑音閾値を超え且つ/又は所定の期間よりも長い期間の入力の受信)があった場合にのみイベント情報を送信する。
イベント・モニタ312は、イベント情報を受信し、イベント情報を配信する先のアプリケーション132−1及びアプリケーション132−1のアプリケーション・ビュー316−2を判定する。
一部の実施形態において、イベント・レコグナイザ・グローバルメソッド311は、ヒット・ビュー判定モジュール313及び/又はアクティブイベント・レコグナイザ判定モジュール314も含む。
ヒット・ビュー判定モジュール313は、タッチセンサ・ディスプレイ156が2つ以上のビューを表示する場合にイベント又はサブイベントが行われた1つ以上のビュー内の位置を判定するためのソフトウェア・プロシージャを提供する。ビューは、ユーザがディスプレイ上で見られる制御及び他の要素から構成される。
アプリケーション132−1に関連するユーザインタフェースの別の態様は、本明細書においてアプリケーション・ビュー又はユーザインタフェース・ウィンドウと呼ばれることもあるセット・ビュー316であり、このビューにおいて、情報が表示され、タッチ・ベースのジェスチャが発生する。タッチが検出される(各アプリケーションの)アプリケーション・ビューは、アプリケーションのビュー階層内の特定のビューに対応する。例えば、タッチが検出される最下位レベルのビューはヒット・ビューと呼ばれてもよく、適切な入力として認識されるイベントの集合は、タッチ・ベースのジェスチャを開始する最初のタッチのヒット・ビューに少なくとも部分的に基づいて判定されうる。
ヒット・ビュー判定モジュール313は、イベント及び/又はサブイベントに関連する情報を受信する。アプリケーションが階層に編成された複数のビューを有する場合に、ヒット・ビュー判定モジュール313は、イベント又はサブイベントを処理すべき階層の最下位のビューとしてヒット・ビューを識別する。ほとんどの状況において、ヒット・ビューは、開始イベント又はサブイベント(すなわち、ジェスチャを形成するイベント及び/又はサブイベントのシーケンスの最初のイベント又はサブイベント)が発生する最下位レベルのビューである。ヒット・ビューがヒット・ビュー判定モジュールにより識別されると、ヒット・ビューは典型的に、ヒット・ビューとして識別された同一のタッチ又は入力ソースに関する全てのイベント及び/又はサブイベントを受信する。
アクティブイベント・レコグナイザ判定モジュール314は、イベント及び/又はサブイベントの特定のシーケンスを受信すべきであるビュー階層内の1つ以上のビューを判定する。一部の適用状況において、アクティブイベント・レコグナイザ判定モジュール314は、ヒット・ビューのみがイベント及び/又はサブイベントの特定のシーケンスを受信すべきであることを判定する。他の適用状況において、アクティブイベント・レコグナイザ判定モジュール314は、イベント又はサブイベントの物理的な位置を含む全てのビューが能動的関与ビューであることを判定し、それ故、全ての能動的関与ビューがイベント及び/又はサブイベントの特定のシーケンスを受信すべきであることを判定する。他の適用状況において、タッチ・イベント及び/又はサブイベントが1つの特定のビューに関連する領域に全体的に制限されるとしても、階層の上位レベルのビューは、能動的関与ビューとして依然として存在する。
イベント・ディスパッチャ・モジュール315は、イベント情報を(本明細書では「ジェスチャ・レコグナイザ」とも呼ばれる)イベント・レコグナイザ(例えば、イベント・レコグナイザ320−1)に振り分ける。アクティブイベント・レコグナイザ判定モジュール314を含む実施形態において、イベント・ディスパッチャ・モジュール315は、アクティブイベント・レコグナイザ判定モジュール314により判定されたイベント・レコグナイザにイベント情報を配信する。一部の実施形態において、イベント・ディスパッチャ・モジュール315はイベント情報をイベントキューに格納し、イベント情報は個別のイベント・レコグナイザ320(又は個別のイベント・レコグナイザ320のイベント受信部331)により読み出される。
一部の実施形態において、アプリケーション132−1は、アプリケーションがアクティブであるか又は実行中の場合にタッチセンサ・ディスプレイ156に表示される現在のアプリケーション・ビュー(群)を示すアプリケーション内部状態317を含む。一部の実施形態において、デバイス/グローバル内部状態134は、現在アクティブであるアプリケーション(群)を判定するためにイベント・レコグナイザ・グローバルメソッド311により使用され、アプリケーション内部状態317は、イベント情報を配信する先のアプリケーション・ビュー316を判定するためにイベント・レコグナイザ・グローバルメソッド311により使用される。
一部の実施形態において、アプリケーション内部状態317は、アプリケーション132−1が実行を再開する場合に使用される再開情報と、アプリケーション132−1により表示中の情報を示すか又は表示の準備が整っている情報を示すユーザインタフェース状態情報と、ユーザがアプリケーション132−1の前の状態又はビューに戻ることを可能にする状態キューと、ユーザにより行われた前の動作のリドゥ/アンドゥ・キューとのうちの1つ以上のような追加の情報(例えば、図3Cの344)を含む。一部の実施形態において、アプリケーション内部状態317は、コンテキスト情報/テキスト及びメタデータ318をさらに含む。
一部の実施形態において、アプリケーション132−1は1つ以上のアプリケーション・ビュー316を含み、各アプリケーション・ビューは、アプリケーションのユーザインタフェースの個別のビュー内で発生するタッチ・イベントを処理するための命令を含む。アプリケーション132−1の少なくとも1つのアプリケーション・ビュー316は、1つ以上のイベント・レコグナイザ320と1つ以上のイベント・ハンドラ322とを含む。典型的に、個別のアプリケーション・ビュー316は、複数のイベント・レコグナイザ320と複数のイベント・ハンドラ322とを含む。他の実施形態において、イベント・レコグナイザ320のうちの1つ以上は、ユーザインタフェース・キット(不図示)又はアプリケーション132−1がメソッド及び他の属性を継承する上位レベルのオブジェクトのような、分離したモジュールの一部である。一部の実施形態において、個別のアプリケーション・ビュー316は、データ更新部、オブジェクト更新部、GUI更新部及び/又はイベント・データ受信部のうちの1つ以上も含む。
個別のイベント・レコグナイザ320−1は、イベント・ディスパッチャ・モジュール315からイベント情報を受信し、イベント情報からイベントを識別する。イベント・レコグナイザ320−1は、イベント受信部331とイベント比較部332とを含む。
イベント情報は、イベント(例えば、タッチ)又はサブイベント(例えば、タッチの移動)に関する情報を含む。イベント又はサブイベントに依存して、イベント情報は、イベント又はサブイベントの位置等の追加の情報も含む。イベント又はサブイベントがタッチの動きに関係する場合に、イベント情報は、サブイベントの速度及び方向も含んでもよい。一部の実施形態において、イベントは1つの方向から別の方向(例えば、縦長方向から横長方向又はその逆)へのデバイスの回転を含み、イベント情報は、デバイスの現在の(デバイスの姿勢とも呼ばれる)方向に関する対応する情報を含む。
イベント比較部332は、イベント情報を(本明細書では「イベント定義」とも呼ばれる)1つ以上の所定のジェスチャ定義と比較し、その比較に基づいて、イベント又はサブイベントを判定するか、若しくはイベント又はサブイベントの状態を判定又は更新する。一部の実施形態において、イベント比較部332は、(上述したように、本明細書では「イベント定義」とも呼ばれる)1つ以上のジェスチャ定義333を含む。ジェスチャ定義333は、例えばジェスチャ1(334−1)及びジェスチャ2(334−2)等であるジェスチャ(例えば、イベント及び/又はサブイベントの所定のシーケンス)の定義を含む。一部の実施形態において、ジェスチャ定義333のサブイベントは、例えばタッチ開始、タッチ終了、タッチ移動、タッチ・キャンセル及び複数のタッチを含む。一例において、ジェスチャ1(334−1)の定義は、表示されたオブジェクトに対するダブルタップである。ダブルタップは、例えばジェスチャの所定のフェーズについての表示オブジェクトへの第1タッチ(タッチ開始)と、ジェスチャの次の所定のフェーズについての第1リフトオフ(タッチ終了)と、ジェスチャの後続する所定のフェーズについての表示オブジェクトへの第2タッチ(タッチ開始)と、ジェスチャの最後の所定のフェーズについての第2リフトオフ(タッチ終了)とを含む。別の例において、ジェスチャ2(334−2)の定義は、表示オブジェクトのドラッグである。例えばドラッグは、表示オブジェクトへのタッチ(又は接触)と、タッチセンサ・ディスプレイ156にわたるタッチの移動と、タッチのリフトオフ(タッチ終了)とを含む。
一部の実施形態において、イベント・レコグナイザ320−1はイベント配信335のための情報も含む。イベント配信335のための情報は、対応するイベント・ハンドラ322に対する参照を含む。オプションとして、イベント配信335のための情報は、動作−対象ペア(群)を含む。一部の実施形態において、ジェスチャ(又はジェスチャの一部)の認識に応答して、イベント情報(例えば、動作メッセージ(群))は動作−対象ペア(群)により識別された1つ以上の対象に送信される。他の実施形態において、ジェスチャ(又はジェスチャの一部)の認識に応答して、動作−対象ペアが起動される。
一部の実施形態において、ジェスチャ定義333は、個別のユーザインタフェース・オブジェクトに対するジェスチャの定義を含む。一部の実施形態において、イベント比較部332は、どのユーザインタフェース・オブジェクトがサブイベントに関連するかを判定するためにヒット・テストを実行する。例えば、3つのユーザインタフェース・オブジェクトがタッチセンサ・ディスプレイ156に表示されるアプリケーション・ビューにおいて、タッチセンサ・ディスプレイ156でタッチが検出された場合に、イベント比較部332は、もしあるならば、3つのユーザインタフェース・オブジェクトのうちのどれがタッチ(イベント)に関連するかを判定するためにヒット・テストを実行する。各表示オブジェクトが個別のイベント・ハンドラ322に関連するならば、イベント比較部332は、ヒット・テストの結果を使用して、そのイベント・ハンドラ322が起動されるべきかを判定する。例えばイベント比較部332は、ヒット・テストを始動するイベント及びオブジェクトに関連するイベント・ハンドラ322を選択する。
一部の実施形態において、個別のジェスチャの定義333は、イベント及び/又はサブイベントのシーケンスがイベント・レコグナイザのイベントのタイプに対応するか否かが判定されるまでイベント情報の配信を遅延させる遅延動作も含む。
一連のイベント及び/又はサブイベントがジェスチャ定義333のいずれのイベントとも合致しないことを個別のイベント・レコグナイザ320−1が判定する場合に、個別のイベント・レコグナイザ320−1はイベント失敗状態になり、その後、個別のイベント・レコグナイザ320−1はタッチ・ベースのジェスチャの後続のイベント及び/又はサブイベントを無視する。この状況において、ヒット・ビューに対してアクティブのままである他のイベント・レコグナイザがあるならば、これらのイベント・レコグナイザは実行中のタッチ・ベースのジェスチャのイベント及び/又はサブイベントを追跡及び処理し続ける。
一部の実施形態において、個別のイベント・レコグナイザ320−1はイベント・レコグナイザ状態336を含む。イベント・レコグナイザ状態336は、個別のイベント・レコグナイザ320−1の状態を含む。イベント・レコグナイザ状態の例については、図4A〜図4Dを参照して以下にさらに詳細に説明する。
一部の実施形態において、イベント・レコグナイザ状態336はレコグナイザ・メタデータ及び属性337−1を含む。一部の実施形態において、レコグナイザ・メタデータ及び属性337−1は、A)イベント配信システムが能動的関与イベント・レコグナイザへのイベント及び/又はサブイベント配信をどのように実行すべきかを示す設定可能な属性、フラグ及び/又はリスト、B)イベント・レコグナイザが互いにどのように相互作用するかを示す設定可能な属性、フラグ及び/又はリスト、C)イベント・レコグナイザがイベント情報をどのように受信するかを示す設定可能な属性、フラグ及び/又はリスト、D)イベント・レコグナイザがジェスチャをどのように認識してもよいかを示す設定可能な属性、フラグ及び/又はリスト、E)イベント及び/又はサブイベントがビュー階層の種々のレベルに配信されるかを示す設定可能な属性、フラグ及び/又はリスト、F)対応するイベント・ハンドラ322に対する参照のうちの1つ以上を含む。
一部の実施形態において、イベント・レコグナイザ状態336はイベント/タッチ・メタデータ337−2を含む。イベント/タッチ・メタデータ337−2は、検出された個別のイベント/タッチに関するイベント/タッチ情報を含み、ジェスチャ定義333に対応する。イベント/タッチ情報は、個別のイベント/タッチの位置、タイムスタンプ、速度、方向、距離、倍率(又は倍率の変更)及び角度(又は角度の変更)のうちの1つ以上を含む。
一部の実施形態において、個別のアプリケーション・ビューは1つ以上のデリゲート321を含む。個別のデリゲート321は、個別のイベント・レコグナイザ320に割り当てられる。これに代えて、個別のイベント・レコグナイザ320は対応するデリゲート321を有するが、デリゲート321は必ずしも実行時に個別のレコグナイザ320に割り当てられる必要はなく、イベント・レコグナイザに対するデリゲートはアプリケーションの実行前に確立されてもよい(例えば、イベント・レコグナイザに対するデリゲートは、アプリケーション・ビューのデリゲート属性により示され、対応するアプリケーション・ビュー316が初期化された場合に確立されてもよい)。一部の実施形態において、いくつかのイベント・レコグナイザは割り当てられた(又は対応する)デリゲートを有しない。対応するデリゲートがないイベント・レコグナイザは、イベント認識の排他性を統治するデフォルト規則のようなデフォルト規則に従って実行する。一部の実施形態において、いくつかのイベント・レコグナイザは割り当てられた(又は対応する)デリゲートを複数有する。デリゲートは、対応するイベント・レコグナイザの挙動を変更し、複数のイベント・レコグナイザの挙動を調整するためにも使用可能である。以下に説明する一部の実施形態において、デリゲートは、個別のイベント・レコグナイザに割り当てられた場合に、個別のイベント・レコグナイザの挙動の複数の側面を変更する。
一部の実施形態において、個別のイベント・レコグナイザ320は、ジェスチャの1つ以上の特定のイベント及び/又はサブイベントが認識された場合に、個別のイベント・レコグナイザ320に関連するイベント・ハンドラ322を起動する。一部の実施形態において、個別のイベント・レコグナイザ320は、イベントに関連するイベント情報をイベント・ハンドラ322に配信する。
イベント・ハンドラ322は、起動された場合に、データの作成及び/又は更新と、オブジェクトの作成及び更新と、表示情報の準備及びディスプレイ126又はタッチセンサ・ディスプレイ156に表示するためのその表示情報の送信とのうちの1つ以上を実行する。
一部の実施形態において、個別のアプリケーション・ビュー316−2はビュー・メタデータ323を含む。ビュー・メタデータ323は、ビューに関するデータを含む。オプションとして、ビュー・メタデータは、イベント・レコグナイザに対するイベント及び/又はサブイベントの配信に影響を及ぼす以下の属性を含む。
●ビューに対して設定された場合に、ビューだけでなくビュー階層におけるその先祖に関連するイベント・レコグナイザへのイベント及び/又はサブイベント配信を防止する停止属性324−1。
●ビューに対して設定された場合に、そのビューに関連するイベント・レコグナイザへのイベント及び/又はサブイベント配信を防止するが、ビュー階層におけるそのビューの先祖へのイベント及び/又はサブイベント配信を許可するスキップ属性324−2。
●ビューに対して設定された場合に、ビューがヒット・ビューでない限り、ビューに関連するイベント・レコグナイザへのイベント及び/又はサブイベントの配信を防止するヒット以外スキップ属性324−3。上述したように、ヒット・ビュー判定モジュール313は、サブイベントを処理すべき階層における最下位ビューとしてヒット・ビューを識別する。
●他のビュー・メタデータ324−4。
一部の実施形態において、ビュー階層内の第1能動的関与ビューは、その第1能動的関与ビューに関連するイベント・レコグナイザへの個別のサブイベントの配信を防止するように構成されうる。この挙動は、スキップ属性324−2を実現できる。スキップ属性がアプリケーション・ビューに対して設定された場合に、個別のサブイベントの配信は、ビュー階層の他の能動的関与ビューに関連するイベント・レコグナイザに対して依然として実行される。
これに代えて、ビュー階層内の第1能動的関与ビューは、第1能動的関与ビューがヒット・ビューでない限り、第1能動的関与ビューに関連するイベント・レコグナイザへの個別のサブイベントの配信を防止するように構成される。この挙動は、条件付きのヒット以外スキップ属性324−3を実現できる。
一部の実施形態において、ビュー階層内の第2能動的関与ビューは、第2能動的関与ビューに関連するイベント・レコグナイザ及び第2能動的関与ビューの先祖に関連するイベント・レコグナイザへの個別のサブイベントの配信を防止するように構成される。この挙動は、停止属性324−1を実現できる。
タッチセンサ・ディスプレイにおけるユーザ・タッチのイベント処理に関する上記説明は、入力デバイスを有する電子デバイス102又は104を動作させるための他の形式のユーザ入力にも当てはまり、ユーザ入力の全てがタッチ画面上で開始されるわけではなく、例えば認識されるジェスチャを定義するイベント及び/又はサブイベントに対応する入力として利用されうる単一又は複数のキーボード押下又は保持を伴うか又は伴わないマウス移動及びマウスボタン押下、タッチパッドにおけるユーザ移動、タップ、ドラッグ、クロール等、ペンスタイラス入力、デバイスの移動(例えば、回転)、音声命令、検出された眼球運動、バイオメトリック入力及び/又はこれらの任意の組み合わせを調整することにも当てはまることが理解される。
図3Cは、一部の実施形態に係るジェスチャ・レコグナイザ(例えば、イベント処理コンポーネント390)の例示的なクラス及びインスタンスを示すブロック図である。
ソフトウェア・アプリケーション(例えば、アプリケーション132−1)は、1つ以上のイベント・レコグナイザ340を有する。一部の実施形態において、個別のイベント・レコグナイザ(例えば、340−2)はイベント・レコグナイザクラスである。個別のイベント・レコグナイザ(例えば、340−2)は、イベント・レコグナイザ固有コード341(例えば、イベント・レコグナイザの動作を定義する命令の集合)と、状態マシン342とを含む。
一部の実施形態において、ソフトウェア・アプリケーション(例えば、アプリケーション132−1)のアプリケーション状態317は、イベント・レコグナイザのインスタンスを含む。イベント・レコグナイザの各インスタンスは、状態(例えば、イベント・レコグナイザ状態336)を有するオブジェクトである。個別のイベント・レコグナイザ・インスタンスの「実行」は、対応するイベント・レコグナイザ固有コード(例えば、341)を実行し、イベント・レコグナイザ・インスタンス343の状態336を更新又は維持することにより実現される。イベント・レコグナイザ・インスタンス343の状態336は、イベント・レコグナイザ・インスタンスの状態マシン342の状態338を含む。
一部の実施形態において、アプリケーション状態317は、各々がアプリケーションのビューと結び付けられた(「アタッチされた」とも言われる)イベント・レコグナイザに対応する複数のイベント・レコグナイザ・インスタンス343を含む。一部の実施形態において、アプリケーション状態317は個別のイベント・レコグナイザ(例えば、340−2)の複数のインスタンス(例えば、343−1〜343−L)を含む。一部の実施形態において、アプリケーション状態317は、複数のイベント・レコグナイザ(例えば、340−1〜340−R)のインスタンス343を含む。
一部の実施形態において、ジェスチャ・レコグナイザの個別のインスタンス343−2はイベント・レコグナイザ状態336を含む。上述したように、イベント・レコグナイザ状態336は、レコグナイザ・メタデータ及び属性337−1とイベント/タッチ・メタデータ337−2とを含む。イベント・レコグナイザ状態336は、ジェスチャ・レコグナイザの個別のインスタンス343−2がアタッチされるビューを示すビュー階層参照(群)337−3も含む。
一部の実施形態において、レコグナイザ・メタデータ及び属性337−1は、以下を含むか、又は以下の部分集合又は上位集合を含む。
●イベント・レコグナイザに対して設定された場合に、イベント・レコグナイザがジェスチャを認識した時にイベント配信システムが(例外リスト353に列挙された他の任意のイベント・レコグナイザを除く)能動的関与ビューの他の任意のイベント・レコグナイザへのイベント及び/又はサブイベントの配信を停止すべきであることを示す排他性フラグ339。対応する排他性フラグ339により示されるように、イベント又はサブイベントを受信することにより特定のイベント・レコグナイザが排他的状態になる場合に、後続のイベント及び/又はサブイベントは、排他的状態のイベント・レコグナイザ(だけでなく、例外リスト353に列挙された他の任意のイベント・レコグナイザ)にのみ配信される。
●排他性例外リスト353。個別のイベント・レコグナイザに対するイベント・レコグナイザ状態336に含まれる場合に、このリスト353は、個別のイベント・レコグナイザが排他的状態に入った後でもイベント及び/又はサブイベントを受信し続けるイベント・レコグナイザがある場合にこれらのレコグナイザの集合を示す。例えば、シングルタップ・イベントに対するイベント・レコグナイザが排他的状態になり、現在の関与ビューがダブルタップ・イベントに対するイベント・レコグナイザを含む場合に、リスト353は、シングルタップ・イベントが検出された後でもダブルタップ・イベントが認識されるようにダブルタップ・イベント・レコグナイザを列挙する。従って、排他性例外リスト353は、イベント・レコグナイザがイベント及び/又はサブイベントの共通のシーケンスを共有する相異なるジェスチャを認識することを許可する。例えば、シングルタップ・ジェスチャ認識は、他のイベント・レコグナイザによるダブル又はトリプル・タップジェスチャの後続の認識を排除しない。
●待ちリスト351。個別のイベント・レコグナイザに対するイベント・レコグナイザ状態336に含まれる場合に、このリスト351は、個別のイベント・レコグナイザが個別のイベントを認識できる前にイベント失敗状態又はイベント・キャンセル済状態にならなければならないイベント・レコグナイザがある場合にこれらのレコグナイザの集合を示す。実質的に、列挙されたイベント・レコグナイザは、イベントを認識する優先順位が待ちリスト351を有するイベント・レコグナイザより高い。
●イベント・レコグナイザに対して設定された場合に、イベント及び/又はサブイベントのシーケンスがこのイベント・レコグナイザのジェスチャのタイプに対応しないと判定されるまで、イベント・レコグナイザが(タッチ開始サブイベント又はフィンガーダウン・サブイベント及び後続のイベントを含む)イベント及び/又はサブイベントをイベント・レコグナイザの個別のヒット・ビューに送信するのを遅延させる遅延タッチ開始済フラグ352。このフラグは、ジェスチャが認識される場合にヒット・ビューがイベント及び/又はサブイベントの何れかを参照するのを防止するために使用されうる。イベント・レコグナイザがジェスチャを認識できない場合に、タッチ開始済サブイベント(及び後続のタッチ終了サブイベント)はヒット・ビューに配信されうる。一例において、そのようなサブイベントをヒット・ビューに配信することにより、ユーザインタフェースは、オブジェクトに関連する動作を呼び出すことなく、そのオブジェクトを簡単に強調表示する。
●イベント・レコグナイザに対して設定された場合に、サブイベントのシーケンスがこのイベント・レコグナイザのイベントのタイプに対応しないと判定されるまで、イベント・レコグナイザがサブイベント(例えば、タッチ終了サブイベント)をイベント・レコグナイザの個別のヒット・ビュー又はレベルに送信するのを遅延させる遅延タッチ終了フラグ363。これは、ジェスチャが後で認識される場合にヒット・ビューがタッチ終了サブイベントに作用するのを防止するために使用されうる。タッチ終了サブイベントが送信されない限り、キャンセルされたタッチはヒット・ビュー又はレベルに送信されうる。イベントが認識されるならば、アプリケーションによる対応する動作が実行され、タッチ終了サブイベントはヒット・ビュー又はレベルに配信される。
●イベント・レコグナイザに対して設定された場合に、イベント及び/又はサブイベントのシーケンスがこのイベント・レコグナイザのジェスチャのタイプに対応しないと判定されている場合、イベント・レコグナイザにタッチ又は入力のキャンセルをイベント・レコグナイザの個別のヒット・ビューに送信させるタッチ・キャンセル・フラグ364。ヒット・ビューに送信されたタッチ又は入力のキャンセルは、先のイベント及び/又はサブイベント(例えば、タッチ開始済サブイベント)がキャンセルされたことを示す。タッチ又は入力のキャンセルにより、イベント・レコグナイザの状態は(図4Bの)イベント・キャンセル済状態418に入る。
一部の実施形態において、1つ以上のイベント・レコグナイザは、イベント・レコグナイザがイベントを認識する後までサブイベントのシーケンスのうち1つ以上のサブイベントを配信することを遅延するように適合されうる。この挙動は遅延イベントを反映する。例えば、複数のタップ・ジェスチャが可能であるビューのシングルタップ・ジェスチャを検討する。この場合に、タップ・イベントは「タップ+遅延」レコグナイザになる。実質的に、イベント・レコグナイザがこの挙動を実現する場合に、イベント・レコグナイザは、サブイベントのシーケンスが実際にそのイベント定義に対応することが確実になるまでイベント認識を遅延させる。この挙動は、キャンセルされたイベントに受信者ビューが適切に応答できない場合に適切でありうる。一部の実施形態において、イベント・レコグナイザは、サブイベントのシーケンスがそのイベント定義に対応しないことをイベント・レコグナイザが確信するまでイベント認識状態を個別の能動的関与ビューに更新することを遅延させる。遅延タッチ開始済フラグ352、遅延タッチ終了フラグ363及びタッチ・キャンセル・フラグ364は、サブイベント配信技術だけでなく、イベント・レコグナイザ及びビュー状態情報更新を特定の要望に合わせて調整するために提供される。
一部の実施形態において、レコグナイザ・メタデータ及び属性337−1は、以下を含むか、若しくは以下の部分集合又は上位集合を含む。
●個別のイベント・レコグナイザ・インスタンス(例えば、343−2)に対する状態マシン(例えば、342)の状態を示す状態マシンの状態/フェーズ338。状態マシンの状態/フェーズ338は、以下に説明するように「イベント可能」、「イベント認識済」及び「イベント失敗」等の種々の状態値を有しうる。これに代えて又はこれに加えて、状態マシンの状態/フェーズ338は、タッチ・データ構造が以前のタッチ・データ構造により参照されていない新しいタッチを定義することを示す「タッチ・フェーズ開始済」等の種々のフェーズ値を有しうる。「タッチ・フェーズ移動済」値は、定義されているタッチが以前の位置から移動したことを示す。「タッチ・フェーズ静止」値は、タッチが同一の位置に留まっていることを示しうる。「タッチ・フェーズ終了済」値は、タッチが終了したこと(例えば、ユーザがマルチタッチ・ディスプレイの面から自身の指を離したこと)を示しうる。「タッチ・フェーズ・キャンセル済」値は、タッチがデバイスによりキャンセルされたことを示す。キャンセルされたタッチは、必ずしもユーザにより終了されたわけではないタッチであるが、デバイスはそれを無視することを判定したものである。例えばデバイスは、タッチが意図せずに生成されている(すなわち、ポータブル・マルチタッチ対応デバイスをポケットに入れた結果)と判定し、そのためタッチを無視できる。状態マシンの状態/フェーズ338の各値は本明細書では(「ジェスチャ・レコグナイザ状態値」と呼ばれる)整数であってもよい。
●ジェスチャ又はジェスチャの一部としてイベント又はタッチを認識することに応答して個別のイベント・レコグナイザ・インスタンスが識別された動作メッセージを送信する先の対象を各ペアが識別する動作−対象ペア(群)345。
●デリゲートが個別のイベント・レコグナイザ・インスタンスに割り当てられた場合の対応するデリゲートに対する参照であるデリゲート346。デリゲートが個別のイベント・レコグナイザ・インスタンスに割り当てられない場合に、デリゲート346はヌル値を含む。
●個別のイベント・レコグナイザ・インスタンスが有効にされるかを示す有効属性347。一部の実施形態において、個別のイベント・レコグナイザ・インスタンスが有効でない(例えば、無効である)場合に、個別のイベント・レコグナイザ・インスタンスはイベント又はタッチを処理しない。
一部の実施形態において、例外リスト353はまた、非排他的なイベント・レコグナイザにより使用されうる。特に非排他的イベント・レコグナイザがイベント又はサブイベントを認識した場合に、後続のイベント及び/又はサブイベントは、イベント又はサブイベントを認識したイベント・レコグナイザの例外リスト353に列挙された排他的イベント・レコグナイザを除く現在アクティブなビューに関連する排他的イベント・レコグナイザに配信されない。
一部の実施形態において、イベント・レコグナイザは、不要なイベント及び/又はサブイベントがヒット・ビューに配信されるのを防止するために遅延タッチ終了フラグ363と共にタッチ・キャンセル・フラグ364を利用するように構成されうる。例えば、シングルタップ・ジェスチャの定義とダブルタップ・ジェスチャの前半とは同一である。シングルタップ・イベント・レコグナイザがシングルタップを正常に認識すると、不要な動作が行われうる。遅延タッチ終了フラグが設定されたならば、シングルタップ・イベントが認識されるまで、シングルタップ・イベント・レコグナイザはサブイベントをヒット・ビューに送信しないようにされる。また、シングルタップ・イベント・レコグナイザの待ちリストがダブルタップ・イベント・レコグナイザを識別してもよく、これによって、ダブルタップ・イベント・レコグナイザがイベント不可能状態になるまで、シングルタップ・イベント・レコグナイザがシングルタップを認識しないようにする。待ちリストを使用することにより、ダブルタップ・ジェスチャが実行される場合にシングルタップに関連する動作の実行を回避する。その代わり、ダブルタップ・イベントの認識に応答して、ダブルタップに関連する動作のみが実行される。
タッチセンサ面におけるユーザ・タッチの形式を特に参照すると、上述したように、タッチ及びユーザ・ジェスチャは瞬時である必要がない動作を含んでもよく、例えばタッチは、ある期間ディスプレイに対して指を移動又は保持する動作を含みうる。しかし、タッチ・データ構造は、特定の時刻のタッチの状態(すなわち、より一般的には任意の入力ソースの状態)を定義する。従って、タッチ・データ構造に格納された値はシングルタッチの間に変更されてもよく、それにより異なる時点のシングルタッチの状態がアプリケーションに伝達される。
各タッチ・データ構造は種々のエントリを含みうる。一部の実施形態において、タッチ・データ構造は、以下のような、若しくは以下の部分集合又は上位集合のようなイベント/タッチ・メタデータ337−2のタッチ固有エントリに少なくとも対応するデータを含みうる。
●(ビューがインスタンス化されたため)タッチ・データ構造が特定のビューに対する第1タッチを定義するかを示す「ビューに対する第1タッチ」エントリ348。
●タッチ・データ構造が関連する特定の時刻(例えば、タッチの時刻)を示す「タイムスタンプ」情報を含む「タッチ毎の情報」エントリ349。オプションとして、「タッチ毎の情報」エントリ349は、対応するタッチの位置等の他の情報を含む。
●最初のタッチの位置で連続して実行されたタップ数を示すオプションの「タップ・カウント」エントリ350。タップは、特定の位置でのタッチセンシティブパネルへの迅速な指の押下及び持ち上げとして定義されうる。指がパネルの同一の位置で迅速に連続して再度押下及び解放されるならば、複数の連続したタップが発生しうる。イベント配信システム130は、タップをカウントし、「タップ・カウント」エントリ350を介してこの情報をアプリケーションに中継できる。同一の位置における複数のタップは、タッチ対応インタフェースに対する有用で覚えやすいコマンドとみなされることがある。従って、タップをカウントすることにより、イベント配信システム130は、アプリケーションからの何らかのデータ処理を再度軽減できる。
従って、各タッチ・データ構造は、特定の時刻に個別のタッチ(又は他の入力ソース)により発生していること(例えば、タッチが静止しているか、移動しているか等)だけでなく、タッチに関連する他の情報(位置等)を定義できる。従って、各タッチ・データ構造は、特定の瞬間の特定のタッチの状態を定義できる。同一の時刻を参照する1つ以上のタッチ・データ構造は、特定のビューが瞬間に受信している全てのタッチの状態を定義できるタッチ・イベント・データ構造に追加されうる(上述したように、いくつかのタッチ・データ構造は、終了して、もはや受信されていないタッチも参照してもよい)。複数のタッチ・イベント・データ構造は、ビューで発生しているタッチを記述する連続した情報をソフトウェアに提供するために、時間の経過と共にビューを実現するソフトウェアに送信されうる。
オプションとしてマルチタッチ・ジェスチャを含む複雑なタッチ・ベースのジェスチャを処理する機能は、種々のソフトウェア・アプリケーションをさらに複雑にしうる。いくつかの例において、このような追加の複雑さは、高度な所望のインタフェース機能を実現するのに必要でありうる。例えばゲームは、同時に複数のボタンを押下したり、若しくは加速度計データをタッチセンサ面におけるタッチと組み合わせたりすることを必要とすることが多いので、種々のビューで発生する複数の同時のタッチを処理する機能を必要としうる。しかし、いくつかのより単純なアプリケーション及び/又はビューは、高度なインタフェース機能を要求する必要がない。例えば単純なソフトボタン(すなわち、タッチセンサ・ディスプレイに表示されるボタン)は、マルチタッチ機能ではなくシングルタッチで十分に動作しうる。これらの例において、基礎となるOSは、シングルタッチ(例えば、ソフトボタンへのシングルタッチ又はシングルタップ)のみで動作可能であることが意図されるビューに関連するソフトウェア・コンポーネントに不必要な又は過剰なタッチ・データ(例えば、マルチタッチ・データ)を送信しうる。ソフトウェア・コンポーネントは、このデータを処理する必要がありうるので、シングルタッチのみが関連するビューに関連するとしても、複数のタッチを処理するソフトウェア・アプリケーションの全ての複雑さを特徴とする必要がありうる。従来、マウスインタフェース環境(すなわち、種々のボタン等)でプログラムするのが容易であったソフトウェア・コンポーネントがマルチタッチ環境でかなり複雑になりうるので、これによりデバイスに対してソフトウェアを開発するコストが増加しうる。
複雑なタッチ・ベースのジェスチャを認識する際の複雑さを軽減するために、デリゲートは、一部の実施形態に従ってイベント・レコグナイザの挙動を制御するために使用されうる。以下に説明するように、デリゲートは、例えば対応するイベント・レコグナイザ(又はジェスチャ・レコグナイザ)がイベント(例えば、タッチ)情報を受信できるか、対応するイベント・レコグナイザ(又はジェスチャ・レコグナイザ)が状態マシンの初期状態(例えば、イベント可能状態)から別の状態に遷移できるか、及び/又は他のイベント・レコグナイザ(群)(又はジェスチャ・レコグナイザ(群))がイベントを認識することを阻止せずに又はイベントを認識する他のイベント・レコグナイザ(群)(又はジェスチャ・レコグナイザ(群))により阻止されずに、対応するイベント・レコグナイザ(又はジェスチャ・レコグナイザ)がイベント(例えば、タッチ)を対応するジェスチャとして同時に認識できるかを判定できる。
しかし、タッチセンサ面に対するユーザ・タッチの評価及び処理の複雑さに関する上記説明は、電子デバイス102又は104を動作させるための全ての形式のユーザ入力にも当てはまる。ユーザ入力の全てがタッチ画面上で開始されるわけではなく、例えば認識されるイベントを定義するイベント及び/又はサブイベントに対応する入力として利用されうる単一又は複数のキーボード押下又は保持を伴うか又は伴わないマウス移動及びマウスボタン押下、デバイスの回転又は他の移動、タップ、ドラッグ、スクロール等のユーザの移動、ペンスタイラスの入力、音声命令、検出された眼球運動、バイオメトリック入力、検出されたユーザの生理学的変化及び/又はこれらの任意の組み合わせを調整することにも当てはまることが理解される。
図4A〜図4Dは、一部の実施形態に係る例示的な状態マシンのためのフローチャートである。ジェスチャ・レコグナイザは、離散ジェスチャ・レコグナイザと連続ジェスチャ・レコグナイザとを含む。離散ジェスチャ・レコグナイザは典型的に、所定の期間内に発生する簡単なジェスチャ(例えば、タップ又はスワイプ・ジェスチャ)を認識する際に有用であり、より本質的には、ジェスチャ認識の際に1つの動作メッセージのみ又は動作メッセージの1つの集合のみがアプリケーションに配信される必要があるジェスチャを認識するためのものである。連続ジェスチャ・レコグナイザは、タッチの移動を含む(及び従ってタッチ位置の追跡を必要とする)ジェスチャ(例えば、パン、ピンチ又は回転ジェスチャ)を認識する際に有用であり、より本質的には、動作メッセージのシーケンスがジェスチャの間にアプリケーションに配信される必要があるジェスチャを認識するためのものである。一部の実施形態において、離散イベント・レコグナイザ状態マシン400及び連続イベント・レコグナイザ状態マシン402は異なる状態を有する。
図4Aは、一部の実施形態に係る3つの状態を含む離散イベント・レコグナイザ状態マシン400を示す。受信したイベント及び/又はサブイベントに基づいてイベント・レコグナイザ状態マシン342の状態遷移を管理することにより、イベント・レコグナイザはイベント定義を効果的に表現する。例えば、タップ・ジェスチャは、2つのサブイベント又は場合によっては3つのサブイベントのシーケンスにより効果的に定義されうる。第1に、タッチが検出されるべきであり、これはサブイベント1となる。例えば、タッチ・サブイベントは、イベント・レコグナイザ状態マシン342を有するイベント・レコグナイザを含むビューにおいてユーザの指がタッチセンサ面にタッチしていることでありうる。第2に、タッチがどの所与の方向にも実質的に移動せず(例えば、タッチ位置の任意の移動が所定の閾値よりも小さく、これは例えばディスプレイにおいて距離(例えば、5mm)又は画素数(例えば、5画素)として測定されうる)、遅延が十分に短いオプションの測定済遅延はサブイベント2である。最後に、タッチ終了(例えば、タッチセンサ面からユーザの指を離すこと)はサブイベント3である。これらのサブイベントを受信することに基づいて状態間を遷移するようにイベント・レコグナイザ状態マシン342をコーディングすることにより、イベント・レコグナイザ状態マシン342は、タップ・ジェスチャイベント定義を効果的に表現する。離散イベント・レコグナイザ状態マシン400は、上述したタップ・ジェスチャを認識するように構成されたイベント・レコグナイザ状態マシン342の例示的な実現例である。
イベントのタイプに関係なく、(離散イベント・レコグナイザ状態マシン400として実現されたイベント・レコグナイザ状態マシンを含む)イベント・レコグナイザ状態マシン342は、イベント可能状態410で始まり、これはイベント・レコグナイザ状態マシンの初期状態を示す。イベント・レコグナイザ状態マシン342は、受信されるイベント及び/又はサブイベントに依存して残りのいずれかの状態に進みうる。
イベント可能状態410から始まって、ジェスチャ定義の第1イベント又はサブイベントでないイベント又はサブイベントが受信されたならば、離散イベント・レコグナイザ状態マシン400はイベント失敗状態430に遷移する。
イベント可能状態410から始まって、自身がジェスチャに対するジェスチャ定義を含むイベント又はサブイベントが受信されたならば、離散イベント・レコグナイザ状態マシン400はイベント認識済状態420に遷移する。しかし、受信したイベント又はサブイベントがジェスチャに対するジェスチャ定義を含むとしても、離散イベント・レコグナイザ状態マシン400は対応するイベント・レコグナイザのメタデータ(例えば、属性)、対応するデリゲートにより判定された1つ以上の値及び/又はアプリケーション状態に従ってイベント失敗状態430に遷移しうる。
一部の実施形態において、イベント認識済状態420に遷移した後、対応するイベント・レコグナイザは、遅延フラグ(例えば、遅延タッチ終了フラグ363)をチェックする(441)。遅延フラグがオンであるならば(441においてYES)、対応するイベント・レコグナイザは、遅延フラグがオフにされるまでイベント情報の配信を遅延させる(442)。
一部の実施形態において、対応するイベント・レコグナイザは待ちリスト351を含み、対応するイベント・レコグナイザは所定の状態に到達するために待ちリスト351に列挙されたイベント・レコグナイザを待つ。例えば、ビューがシングルタップ・ジェスチャ・レコグナイザ及びダブルタップ・ジェスチャ・レコグナイザを含む場合に、シングルタップ・ジェスチャ・レコグナイザは、ダブルタップ・ジェスチャ・レコグナイザが失敗するのを待つように構成されうる。実際には、シングルタップ・ジェスチャ・レコグナイザがイベント認識済状態420に遷移するには、ダブルタップ・ジェスチャ・レコグナイザがイベントを認識することに失敗したことが必要である(又はそれを条件としている)。その結果、タップ・イベントがある場合に、タップ・イベントがマルチタップ・ジェスチャの一部でない限り、シングルタップ・ジェスチャ・レコグナイザはタップ・イベントを認識する。
遅延及び待ち(442)の後、存在するならば、対応するジェスチャ・レコグナイザはイベントをアプリケーションに配信する(443)。一部の実施形態において、イベントは動作メッセージの形式で配信される。一部の実施形態において、動作メッセージは動作−対象ペア(群)345に従って配信される。一部の実施形態において、対応するジェスチャ・レコグナイザは動作−対象ペア(群)345を起動する。
図4Bは、一部の実施形態に係る6つの状態を含む連続イベント・レコグナイザ状態マシン402を示す。
上述したように、連続イベント・レコグナイザ状態マシン402は、イベント可能状態410から始まる。
イベント可能状態410から始まって、ジェスチャ定義のイベント及び/又はサブイベントの開始シーケンスの一部でないイベント又はサブイベントが受信されたならば、離散イベント・レコグナイザ状態マシン400はイベント失敗状態430に遷移する。
イベント可能状態410から始まって、所与のジェスチャ定義のイベント(群)及び/又はサブイベント(群)の開始シーケンスの一部であるイベント又はサブイベントが受信されたならば、連続イベント・レコグナイザ状態マシン402はイベント開始済状態412に遷移する。離散ジェスチャ・レコグナイザ400と同様に、受信したイベント又はサブイベントがジェスチャ定義のイベント(群)及び/又はサブイベント(群)の開始シーケンスの一部を含むとしても、連続イベント・レコグナイザ状態マシン402は、対応するイベント・レコグナイザのメタデータ(例えば、属性)、対応するデリゲートにより判定された1つ以上の値及び/又はアプリケーション状態に従ってイベント失敗状態430に遷移しうる。
イベント開始済状態412から、受信された次のイベント又はサブイベントが中間イベント又はサブイベントであるが所与のジェスチャ定義の最後のイベント又はサブイベントでないならば、連続イベント・レコグナイザ状態マシン402はイベント変更済状態414に遷移して留まる。連続イベント・レコグナイザ状態マシン402は、受信したイベント及び/又はサブイベントのシーケンスがジェスチャ定義の一部であり続ける限り、イベント変更済状態414に留まりうる。連続イベント・レコグナイザ状態マシン402は、いずれかの時点でイベント変更済状態414であり、ジェスチャ定義の一部でないイベント又はサブイベントを受信したならば、イベント失敗状態430に遷移し、それにより、(存在する場合に)現在のイベントはこのイベント・レコグナイザ(すなわち、連続イベント・レコグナイザ状態マシン402に対応するイベント・レコグナイザ)に対応するイベントのタイプでないことを判定する。一方、連続イベント・レコグナイザ状態マシン402は、イベント開始済状態412又はイベント変更済状態414であり、ジェスチャ定義の最後のイベント又はサブイベントを受信したならば、イベント終了済状態416に遷移し、それによって、正常なイベント認識を完了する。
一部の実施形態において、各ジェスチャ・レコグナイザ状態はジェスチャ・レコグナイザ状態値を有する。一部の実施形態において、(離散イベント・レコグナイザ状態マシン400に対する)イベント認識済状態420及び(連続イベント・レコグナイザ状態マシン402に対する)イベント終了済状態416は、1つのタイプのジェスチャ・レコグナイザによるジェスチャの認識に応答するように構成されたソフトウェア・コンポーネントが他のタイプのジェスチャ・レコグナイザにも応答できるように、同一のジェスチャ・レコグナイザ状態値を有する。
イベント開始済状態412又はイベント変更済状態414の間、(例えば、着呼等のオペレーティングシステム118又は制御アプリケーション124において事前に定義された)所定の割り込みイベントが発生した場合に、連続イベント・レコグナイザ状態マシン402はイベント・キャンセル済状態418に遷移する。
ジェスチャ・レコグナイザのタイプに関わらず、各ジェスチャ・レコグナイザ(例えば、343)は、対応するイベント・レコグナイザ状態マシン(例えば、342)がイベント可能状態410に戻るように再設定されうる。
図4C及び図4Dは、一部の実施形態に係る状態遷移におけるデリゲートの役割を示す。図4C及び図4Dにおいて、1つ以上のデリゲートによる動作(又は行われる決定)は、陰影付きのボックスにより示される(例えば、450〜456)。
図4Cは、一部の実施形態に係る離散イベント・レコグナイザ状態マシン400の状態遷移におけるデリゲートの役割を示す。以下に説明する例において、状態マシン400は、対応するデリゲートを有する特定の離散イベント・レコグナイザに対応する。
イベント可能状態410から始まって、イベント又はサブイベントが検出されたならば、イベント・レコグナイザに対応するデリゲートは、イベント・レコグナイザがイベント又はサブイベントを受信すべきか(450)を決定する。対応するイベント・レコグナイザがイベント又はサブイベントを受信することを防止する値をデリゲートが返したならば、対応するイベント・レコグナイザは、イベント又はサブイベントを受信しない(か、イベント又はサブイベントを無視する)。その結果、対応するイベント・レコグナイザはイベント可能状態410に留まる。対応するイベント・レコグナイザがイベント又はサブイベントを受信することを防止するデリゲートが存在しないならば、対応するイベント・レコグナイザのデフォルトの挙動は、イベント又はサブイベントを受信することである。
なお、イベント・レコグナイザの集合のデリゲートによる「受信すべきか」の動作450は、どのイベント・レコグナイザがタッチセンサ・ディスプレイ又はタッチセンサ面に対するどのタッチを受信するかを判定するために使用されうる。例えば、個別に且つ同時に2つのオブジェクトの位置を変更するため又は2つの異なるオブジェクトを選択するためにユーザが2つのタッチを使用できるようにするビューにおいて、2つのイベント・レコグナイザのデリゲートは、1つのイベント・レコグナイザが2つのタッチのうちの第1タッチのみを受信することを許可し、第2イベント・レコグナイザが2つのタッチのうちの第2タッチのみを受信することを許可するように構成されうる。従って、2つのタッチの各々に関する全ての情報は、対応するデリゲートによりそのタッチを受信することを許可されたイベント・レコグナイザにのみへ宛てられる。かなり複雑なマルチタッチ入力は、どのタッチがどのイベント・レコグナイザにより処理されるかを判定する複数のイベント・レコグナイザ及び対応するデリゲートを使用することにより認識及び処理されうる。
イベント・レコグナイザがイベント又はサブイベントを受信することを許可されたならば、イベント・レコグナイザに対応するデリゲート(又は制御アプリケーション124又はオペレーティングシステム118)は、イベント・レコグナイザによるイベント又はサブイベントの認識が、イベントを既に認識している別のイベント・レコグナイザにより阻止される(451)。この阻止の初期レベルは、デフォルトの排他性規則に基づき、デリゲートにより上書きされうる。イベント又はサブイベントの認識が阻止されたならば、対応するデリゲート(又はオペレーティングシステム118又は制御アプリケーション124)は、イベント・レコグナイザによるイベントの同時認識がデリゲートにより判定された1つ以上の値に従って許可されるか(452)も決定する。例えば、イベント・レコグナイザがイベントを最初に認識したイベント・レコグナイザの排他性例外リスト353にあるならば、デリゲートは、両方のイベント・レコグナイザによる同時認識を許可する。別の例において、イベント・レコグナイザの排他性フラグ339が設定されないならば、デリゲートは両方のイベント・レコグナイザによる同時認識を許可する。同時認識が許可されないならば、イベント・レコグナイザはイベント失敗状態430に遷移する。
対応するイベント・レコグナイザがイベント又はサブイベントを認識することを阻止されないならば(451においてNO)、若しくは同時認識が許可されるならば(452においてYES)、対応するイベント・レコグナイザは、イベント又はサブイベントが、対応するジェスチャ定義に合致するか(453)を判定する。イベント又はサブイベントが対応するジェスチャ定義に合致しないならば(453においてNO)、対応するジェスチャ・レコグナイザはイベント失敗状態430に遷移する。
イベント又はサブイベントが対応するジェスチャ定義に合致するならば(453においてYES)、対応するデリゲート(又はオペレーティングシステム118又は制御アプリケーション124)は、デリゲートにより判定された1つ以上の値に従ってイベント可能状態410から遷移できるか(「開始すべきか」454)を決定する。イベント・レコグナイザがイベント可能状態410から遷移することをデリゲートにより許可されないならば(454においてNO)、対応するイベント・レコグナイザはイベント失敗状態430になる。イベント・レコグナイザがイベント可能状態410から遷移することを許可されるならば(454においてYES)、対応するイベント・レコグナイザはイベント認識済状態420に遷移する。
対応するイベント・レコグナイザがイベント認識済状態420に遷移する場合に、対応するイベント・レコグナイザ(又はオペレーティングシステム118又は制御アプリケーション124)は、他のイベント・レコグナイザによるイベント又はサブイベントの認識を許可するか(455)も決定する。一部の実施形態において、イベント・レコグナイザのうちの少なくとも1つのイベント・レコグナイザのデリゲート(又はアプリケーション)が同時認識を許可するように属性を設定しない限り、デフォルトは他の全てのイベント・レコグナイザが同一のイベントを認識することを防止することである。イベント又はサブイベントを認識したイベント・レコグナイザに対応するデリゲートが、他のイベント・レコグナイザがイベント又はサブイベントを認識することをデリゲートが許可すること(455においてYES)を判定したならば、デリゲート(又はオペレーティングシステム118又は制御アプリケーション124)は、イベント又はサブイベントを同時に認識できるように他のイベント・レコグナイザの属性を設定する(456)。他のイベント・レコグナイザがイベント又はサブイベントを認識することをデリゲートが許可しないならば、他のイベント・レコグナイザは、イベント又はサブイベントを認識することを防止される。
一部の実施形態において、個別のイベント・レコグナイザがイベント又はサブイベントを認識しないようにする前に、そのイベント・レコグナイザのデリゲートは、イベント又はサブイベントの同時認識を許可するかを確認するために呼び出される(452を参照)。これらの実施形態において、同時認識は、イベントを認識する第1イベント・レコグナイザのデリゲート又は第2イベント・レコグナイザのデリゲートの何れかにより可能になりうる。図4Cの452及び455により示されるように、これらの実施形態において、同時認識を許可するかに関する決定は、イベントが少なくとも1つのイベント・レコグナイザのイベント定義に合致する場合にのみ行われる。
上述したデリゲート動作は、アプリケーション・ビュー(又は同時に表示されたビューの集合)により使用されたイベント・レコグナイザの集合に対するデリゲートにおいて実装される場合に、イベント・レコグナイザの相互作用をカスタマイズするために使用されうる。デリゲートは、デフォルトの排他性規則に対する例外を実装でき、その例外以外では、1つのイベント・レコグナイザのみが受信された同一のイベント(群)に基づいてジェスチャを認識することを許可する。デフォルトの排他性規則に対する例外を実装し、それにより互換性のあるイベント・レコグナイザによる同時イベント認識を許可するデリゲートのユーザは、ソフトウェア・アプリケーションにおける多くの有用な機能の実装を容易にする。イベント・レコグナイザの挙動を変更及び制御するためにデリゲートを使用することにより、相互に互換性のあるジェスチャの相互に排他的な集合等の複雑な関係のコンパクト表現及び実装が可能になる。
図4Dは、一部の実施形態に係る連続イベント・レコグナイザ状態マシン402の状態遷移におけるデリゲートの役割を示す。以下に説明する例において、状態マシン402は、対応するデリゲートを有する特定の連続イベント・レコグナイザに対応する。図4Cに示され、図4Cを参照して上述された全てのデリゲートの動作は、対応するデリゲートを有する連続イベント・レコグナイザに等しく適用可能であり、それ故、図4Dに示すデリゲートの動作は図4Cと同一の参照符号を有する。唯一の相違点は、状態マシンにおける1つの状態の名前が状態マシン400の「イベント認識済」420から状態マシン402の「イベント開始済」412に変更されたことである。
対応するイベント・レコグナイザは、上述したようにイベント開始済状態412から他の状態に遷移する。簡潔にするために、イベント変更済状態414からイベント失敗状態416への遷移は示さない。
以下の表は、上述したイベント・レコグナイザの状態に関する例示的なサブイベント・シーケンス(例えば、シングルタップ)の処理を表形式で提示する。この例において、サブイベント・シーケンスはシングルタップを含み、ビューは2つのタップ・ジェスチャ・レコグナイザ、すなわちシングルタップ・ジェスチャ・レコグナイザ及びダブルタップ・ジェスチャ・レコグナイザを有する。この例においても、両方のジェスチャ・レコグナイザは、サブイベント・シーケンスを同時に受信し認識するように構成される。同時認識は、シングルタップ・ジェスチャ・レコグナイザに割り当てられたデリゲート又は第2タップ・ジェスチャ・レコグナイザに割り当てられたデリゲートにより許可されうる。
Figure 2013518349
サブイベント情報の配信が始まる前(シーケンス番号0)、両方のジェスチャ・レコグナイザはイベント可能状態410である。フィンガーダウン・サブイベントを検出し(シーケンス番号1)、遅延を測定した(シーケンス番号2)後であっても、両方のジェスチャ・レコグナイザはイベント可能状態410に留まる。フィンガーリフトオフを検出したこと(シーケンス番号3)に応答して、シングルタップ・ジェスチャ・レコグナイザはイベント認識済状態420に遷移する。追加の遅延を検出した後、シングルタップ・ジェスチャ・レコグナイザは、リセットされるまでイベント認識済状態420に留まり、リセットされた場合に、シングルタップ・ジェスチャ・レコグナイザはイベント可能状態410に戻る。一方、測定された追加の遅延が所定の期間(例えば、ダブルタップ・ジェスチャ・レコグナイザは第2フィンガーダウン・サブイベントを予想する期間)を超える場合に、ダブルタップ・ジェスチャ・レコグナイザはイベント失敗状態430に遷移する。
以下の表は、1つのジェスチャ・レコグナイザの挙動が変更された場合の例示的なサブイベント・シーケンスの処理を表形式で提示する。この例において、サブイベント・シーケンスはシングルタップを含み、ビューは2つのタップ・ジェスチャ・レコグナイザ、すなわちシングルタップ・ジェスチャ・レコグナイザ及びダブルタップ・ジェスチャ・レコグナイザを有する。この例においても、シングルタップ・ジェスチャ・レコグナイザは、サブイベントを受信することをデリゲートにより許可されない。
Figure 2013518349
シングルタップ・ジェスチャ・レコグナイザは、サブイベントを受信することをデリゲートにより許可されないため、イベント可能状態410に留まる。測定された第2遅延が所定の閾値を超えた場合(シーケンス番号4)に、ダブルタップ・ジェスチャ・レコグナイザはイベント失敗状態430に遷移する。
以下の表は、1つのジェスチャ・レコグナイザの挙動が変更された場合の例示的なサブイベント・シーケンスの処理を表形式で提示する。この例において、サブイベント・シーケンスはシングルタップを含み、ビューは2つのタップ・ジェスチャ・レコグナイザ、すなわちシングルタップ・ジェスチャ・レコグナイザ及びダブルタップ・ジェスチャ・レコグナイザを有する。この例においても、両方のジェスチャ・レコグナイザは、サブイベント・シーケンスを同時に認識することを許可されない。
Figure 2013518349
上述したのと同様に、フィンガーリフトオフの検出(シーケンス番号3)の後、シングルタップ・ジェスチャ・レコグナイザは、イベント可能状態410からイベント認識済状態420に遷移する。一般に、サブイベント・シーケンスを認識する第1ジェスチャ・レコグナイザは、サブイベント・シーケンスをまだ認識していない他のジェスチャ・レコグナイザがサブイベント・シーケンスを認識するのを阻止する。同時認識が許可されない限り、阻止されたジェスチャ・レコグナイザはイベント失敗状態430に遷移する。この場合、同時認識が許可されないので、シングルタップ・ジェスチャ・レコグナイザが(シーケンス番号3において)サブイベント・シーケンスを認識した場合に、ダブルタップ・ジェスチャ・レコグナイザはイベント失敗状態430に遷移し、リセットされるまでその状態に留まる。
以下の表は、1つのジェスチャ・レコグナイザの挙動がデリゲートにより変更され、2つのジェスチャ・レコグナイザの動作が一方又は両方のレコグナイザのデリゲートにより行われた動作に従って調整された場合の例示的なサブイベント・シーケンスの処理を表形式で提示する。この例において、サブイベント・シーケンスはシングルタップを含み、ビューは2つのタップ・ジェスチャ・レコグナイザ、すなわちシングルタップ・ジェスチャ・レコグナイザ及びダブルタップ・ジェスチャ・レコグナイザを有する。この例においても、シングルタップ・ジェスチャ・レコグナイザは、開始すること(すなわち、イベント可能状態410から遷移すること)を許可されない。
Figure 2013518349
フィンガーリフトオフの検出(シーケンス番号3)の後、シングルタップ・ジェスチャ・レコグナイザは、イベント可能状態410からイベント認識済状態420に遷移しようとする。しかし、シングルタップ・ジェスチャ・レコグナイザに割り当てられたデリゲートはイベント認識済状態420への状態遷移を許可せず、その結果、シングルタップ・ジェスチャ・レコグナイザはイベント失敗状態430に遷移する。測定された遅延が所定の閾値を超えた場合(シーケンス番号4)に、ダブルタップ・ジェスチャ・レコグナイザはイベント失敗状態430に遷移する。
以下の表は、1つのジェスチャ・レコグナイザの挙動が変更され、2つのジェスチャ・レコグナイザの動作が一方又は両方のレコグナイザのデリゲートにより行われた動作に従って調整された場合の例示的なサブイベント・シーケンスの処理を表形式で提示する。この例において、サブイベント・シーケンスはシングルタップを含み、ビューは2つのタップ・ジェスチャ・レコグナイザ、すなわちシングルタップ・ジェスチャ・レコグナイザ及びダブルタップ・ジェスチャ・レコグナイザを有する。この例においても、シングルタップ・ジェスチャ・レコグナイザは、ダブルタップ・ジェスチャ・レコグナイザの失敗を待つ(又は必要とする)。
Figure 2013518349
フィンガーリフトオフの検出(シーケンス番号3)の後、シングルタップ・ジェスチャ・レコグナイザは、イベント可能状態410からイベント認識済状態420に遷移しようとする。しかし、「待ち」要件又は(ダブルタップ・ジェスチャ・レコグナイザが失敗するという)失敗要件に起因して、シングルタップ・ジェスチャ・レコグナイザは、イベント認識済状態420への遷移を遅延させる。測定された第2遅延が所定の閾値を超える(シーケンス番号4)ことからダブルタップ・ジェスチャ・レコグナイザが失敗した場合に、シングルタップ・ジェスチャ・レコグナイザは、イベント認識済状態420に遷移する。「待ち」要件及び/又は失敗要件は、デリゲートを使用して実装されてもよく、ジェスチャ・レコグナイザにおいて実装されてもよい。
以下の表は、例示的なサブイベント・シーケンスの処理を表形式で提示する。この例において、サブイベント・シーケンスは、複数の中間サブイベントを含むパン・ジェスチャを含み、ビューは2つのジェスチャ・レコグナイザ、すなわちシングルタップ・ジェスチャ・レコグナイザ及びパン・ジェスチャ・レコグナイザを有する。この例においても、両方のジェスチャ・レコグナイザは、サブイベント・シーケンスを同時に認識することを許可される。
Figure 2013518349
サブイベント情報の配信が始まる前(シーケンス番号0)、両方のジェスチャ・レコグナイザはイベント可能状態410である。フィンガーダウン・サブイベントを検出し(シーケンス番号1)、遅延を測定した(シーケンス番号2)後であっても、シングルタップ・ジェスチャ・レコグナイザはイベント可能状態410に留まるが、その一方で、パン・ジェスチャ・レコグナイザはイベント開始済状態412に遷移する。指の移動の検出(シーケンス番号3)に応答して、サブイベントがシングルタップに対するジェスチャ定義に合致しないので、シングルタップ・ジェスチャ・レコグナイザはイベント失敗状態430に遷移する。その後、シングルタップ・ジェスチャ・レコグナイザは、リセットされるまでイベント失敗状態430に留まる。しかし、パン・ジェスチャ・レコグナイザは、指の移動の検出(シーケンス番号4)に応答してイベント変更済状態414に遷移し、一部の実施形態において、指の接触の新しい位置を含む動作メッセージ(群)を送信する。追加の指の移動を検出した(シーケンス番号4及び5)後、パン・ジェスチャ・レコグナイザはイベント変更済状態414に留まるが、その一方で、指の移動を検出する度に動作メッセージ(群)を送信する。フィンガーリフトオフが検出された(シーケンス番号6)場合に、パン・ジェスチャ・レコグナイザはイベント終了済状態416に遷移する。
イベント情報のフロー及びイベント・レコグナイザ間の相互作用を考慮すると、図5Aは、一部の実施形態に係るイベント情報のフローを示すブロック図である。(例えば、オペレーティングシステム118又は制御アプリケーション124における)イベント・ディスパッチャ・モジュール315はイベント情報を受信し、そのイベント情報をアプリケーション(例えば、132−1)に送信する。一部の実施形態において、アプリケーション132−1は、ビュー階層506の複数のビュー(例えば、ビュー316に対応する508、510及び512)と、複数のビューにおける複数のジェスチャ・レコグナイザ(516−1〜516−6)とを含む。アプリケーション132−1は、対象−動作ペア(例えば、522−1、522−2及び522−3)における対象値に対応する1つ以上のイベント・ハンドラ520も含む。イベント・ディスパッチャ・モジュール315は、ヒット・ビュー判定モジュール313からヒット・ビュー情報を受信し、ヒット・ビュー(例えば、512)又はヒット・ビュー(例えば、512)にアタッチされたイベント・レコグナイザ(群)にイベント情報を送信する。一部の実施形態において、ヒット・ビューにアタッチされたジェスチャ・レコグナイザの部分集合のみがイベント情報(又はタッチ情報)を受信することを許可される(又は受信するように構成される)。イベント情報を受信することを許可されたこれらのジェスチャ・レコグナイザは、本明細書において「受信ジェスチャ・レコグナイザ」と呼ばれる。図5Aにおいて、ジェスチャ・レコグナイザ516−1及び516−2は、受信ジェスチャ・レコグナイザ514の集合内にある。その結果、イベント・ディスパッチャ・モジュール315は、受信ジェスチャ・レコグナイザの集合内のジェスチャ・レコグナイザ516−1及び516−2の両方にイベント情報を送信する。
一部の実施形態において、ジェスチャ・レコグナイザは、他方のジェスチャ・レコグナイザがイベント又はサブイベントを対応するジェスチャとして認識することを阻止又は防止してもよい。この例において、ジェスチャ・レコグナイザ1(516−1)は、ジェスチャ・レコグナイザ2(516−2)がイベント又はサブイベントを対応するジェスチャとして認識することを防止する。その結果、この例において、ジェスチャ・レコグナイザ1(516−1)のみが動作メッセージ(518)を対応する対象−動作ペア(例えば、対象:動作1(522−1))に送信する。
図5B及び図5Cは、一部の実施形態に係るジェスチャ認識方法を示すフローチャートである。図5Bは、ジェスチャ・レコグナイザが対応するデリゲートを呼び出すフローチャートを示し、図5Cは、ソフトウェア・アプリケーションが個別のジェスチャ・レコグナイザに対応するデリゲートを呼び出すフローチャートを示す。図5B及び図5Cにおいて、各列は各エンティティ又は各コンポーネント(例えば、ソフトウェア・アプリケーション、ジェスチャ・レコグナイザ又はデリゲート)において実行される処理を表す。
図5Bにおいて、ソフトウェア・アプリケーション(例えば、アプリケーション132−1)は、複数のビュー(例えば、506、508、510)のうちの1つ以上のビューを表示する(530)。複数のビューは、複数のジェスチャ・レコグナイザ(例えば、516−1〜516−6)を含む。ソフトウェア・アプリケーション(例えば、アプリケーション132−1)は、複数のジェスチャ・レコグナイザの少なくとも部分集合に別個のデリゲートを割り当てる(532)。一部の実施形態において、個別のジェスチャ・レコグナイザは対応するデリゲートに割り当てられる(533−1)。一部の実施形態において、個別のデリゲートは、対応するジェスチャ・レコグナイザに割り当てられる(533−2)。これに代えて、デリゲートとジェスチャ・レコグナイザとの相関性は、実行時前に確立されてもよい。以下の説明を通じて、割り当てられたデリゲートに対する各参照は、対応するデリゲートをも意味してもよく、デリゲートが割り当てられたジェスチャ・レコグナイザに対する各参照は、特定のデリゲートに対応するジェスチャ・レコグナイザをも意味してもよい。
ソフトウェア・アプリケーション(例えば、アプリケーション132−1)は、1つ以上のイベントを検出し(534)、ジェスチャ・レコグナイザ(例えば、320)のうちの1つ以上を使用して各イベントを処理する(536)。
個別のイベントは、(1つ以上のジェスチャ・レコグナイザ(例えば320)の)個別のジェスチャ・レコグナイザにおいて処理される(538)。デリゲートの動作を説明するために、イベントを処理する個別のジェスチャ・レコグナイザが対応するデリゲートを有すると仮定する。個別のジェスチャ・レコグナイザは、割り当てられたデリゲートを呼び出し、割り当てられたデリゲートは、アプリケーション状態に従って1つ以上の値を判定するために実行される(540)。それに応答して、個別のジェスチャ・レコグナイザは、割り当てられたデリゲートにより判定された1つ以上の値に従って、個別のイベントに対応する情報をソフトウェア・アプリケーションに条件付きで送信する(542)。
ソフトウェア・アプリケーションは、イベントのうちの1つ以上に対応するジェスチャ・レコグナイザのうちの1つ以上から受信された情報に従って実行される(544)。
言い換えると、これらの実施形態において、個別のジェスチャ・レコグナイザは、ジェスチャ・レコグナイザの挙動を判定する1つ以上の値を取得するために、割り当てられたデリゲートを呼び出す。上述したように、対応するデリゲートにより変更されるジェスチャ・レコグナイザの挙動は、タッチ/イベント情報を受信するかどうか、イベント可能状態から遷移するかどうか、及び/又は同時認識を許可するかどうかを含む。(場合によっては、他のジェスチャ・レコグナイザのデリゲートの調整された動作を伴う)デリゲートによる動作はまた、どのジェスチャ・レコグナイザがどのタッチを受信するかを制御し、どのジェスチャ・レコグナイザが「イベント認識済」又は「イベント開始済」状態に遷移することを許可されるかを判定し、同時認識を許可又は無効にすることにより、2つ以上のジェスチャ・レコグナイザの動作を調整する。
図5Cにおいて、ソフトウェア・アプリケーション(例えば、アプリケーション132−1)は、複数のビュー(例えば、506、508、510)のうち1つ以上のビューを表示する(530)。複数のビューは、複数のジェスチャ・レコグナイザ(例えば、516−1〜516−6)を含む。ソフトウェア・アプリケーション(例えば、アプリケーション132−1)は、複数のジェスチャ・レコグナイザの少なくとも部分集合に別個のデリゲートを割り当てる(532)。一部の実施形態において、個別のジェスチャ・レコグナイザは対応するデリゲートに割り当てられる(533−1)。一部の実施形態において、個別のデリゲートは、対応するジェスチャ・レコグナイザに割り当てられる(533−2)。これに代えて、デリゲートとジェスチャ・レコグナイザとの相関性は、実行時前に確立されてもよい。
ソフトウェア・アプリケーション(例えば、アプリケーション132−1)は、1つ以上のタッチを検出し(535)、ジェスチャ・レコグナイザのうちの1つ以上を使用して1つ以上のタッチの各々を処理する(546)。1つ以上のタッチの各々を処理する際、ソフトウェア・アプリケーションは、複数のジェスチャ・レコグナイザのうちの候補ジェスチャ・レコグナイザの集合を識別する(548)。一部の実施形態において、候補ジェスチャ・レコグナイザは、ヒット・ビューにアタッチされたジェスチャ・レコグナイザである(例えば、図5Aのジェスチャ・レコグナイザ516−1、516−2及び516−3)。
個別の候補ジェスチャ・レコグナイザに割り当てられたデリゲートは、アプリケーション状態に従って「受信タッチ値」を取得するために実行される(550)。「受信タッチ値」は、個別の候補ジェスチャ・レコグナイザがイベント/タッチ情報を受信できるかどうか(例えば、図4C及び図4Dの「受信すべきか」のステップ450)を判定するために使用される。
個別のデリゲートから取得された受信タッチ値に基づいて、受信ジェスチャ・レコグナイザの集合が識別される(552)。受信ジェスチャ・レコグナイザの集合は、候補ジェスチャ・レコグナイザの部分集合を含む(552)。一部の実施形態において、受信ジェスチャ・レコグナイザの集合は、割り当てられた個別のデリゲートを有しない全ての候補ジェスチャ・レコグナイザを含む。候補ジェスチャ・レコグナイザのうちの2つ以上が対応するデリゲートを有するならば、そのような各候補ジェスチャ・レコグナイザのデリゲートは、候補ジェスチャ・レコグナイザがイベント/タッチ情報を受信できるかを判定するために実行される。候補ジェスチャ・レコグナイザに対応するデリゲートから取得された「受信タッチ値」は、受信ジェスチャ・レコグナイザの集合を識別するために使用される。
個別のタッチは、受信ジェスチャ・レコグナイザの集合において処理される(554)。個別のジェスチャ・レコグナイザによる個別のタッチの処理の結果、イベント又はジェスチャが認識されるならば(図4C及び図4Dの「定義に合致するか」453を参照)、個別のジェスチャ・レコグナイザに対応するデリゲート(存在する場合)は、イベント又はジェスチャの認識が許可されるかを判定するために呼び出される。これは、図4C及び図4Dを参照して上述した「開始すべきか」の動作454に対応する。デリゲートは、状態遷移が許可されるかを示す1つ以上の値を返す。個別のジェスチャ・レコグナイザは、割り当てられたデリゲートにより判定された1つ以上の値に従って、個別のイベントに対応する情報をソフトウェア・アプリケーションに条件付きで送信する(542)。ソフトウェア・アプリケーションは、個別のタッチに対応するジェスチャ・レコグナイザのうちの1つ以上から受信された情報に従って実行される(545)。
言い換えると、これらの実施形態において、ソフトウェア・アプリケーション(又はオペレーティングシステム118又は制御アプリケーション124)は、個別のタッチを処理すべき候補ジェスチャ・レコグナイザ(存在する場合)を示す値を取得するために個別の候補ジェスチャ・レコグナイザに対応するデリゲートを呼び出す。さらに、ジェスチャ・レコグナイザの挙動の他の側面は、割り当てられたデリゲートによりさらに変更されうる。
図6A及び図6Bは、一部の実施形態に係るデリゲートから取得された情報に従って個別のイベントを処理する例示的な方法を示すフローチャートである。
方法600は、1つ以上のイベント・センサ(例えば、130)を有し、複数のビュー(例えば、アプリケーション・ビュー316)とソフトウェア・アプリケーション(例えば、317)のアプリケーション状態とを含むソフトウェア・アプリケーション(例えば、132)を実行するように構成された電子デバイス(例えば、デバイス102又は104)において実行される(602)。
デバイスは、複数のビューのうちの1つ以上のビューを表示する(604)。表示された1つ以上のビューの個別のビューは、1つ以上のジェスチャ・レコグナイザ(例えば、イベント・レコグナイザ320−1)を含む。一部の実施形態において、表示された1つ以上のビューの少なくとも部分集合は1つ以上のジェスチャ・レコグナイザを含み、表示された1つ以上のビューの残りのビューはジェスチャ・レコグナイザを含まない。
1つ以上のジェスチャ・レコグナイザの個別のジェスチャ・レコグナイザは、対応するデリゲートを有する。一部の実施形態において、全てのジェスチャ・レコグナイザが対応するデリゲートを有するわけではない(すなわち、一部の実施形態において、一部のジェスチャ・レコグナイザは対応するデリゲートを有さない)。一部の実施形態において、個別のジェスチャ・レコグナイザは2つ以上のデリゲートに対応し、各デリゲートは、別個の条件に対して対応するジェスチャ・レコグナイザに対する別個の値を判定する(例えば、第1デリゲートは「受信すべきか」450を判定し、第2デリゲートは「認識が阻止されるか」451を判定する等)。一部の実施形態において、2つ以上のジェスチャ・レコグナイザが同一のデリゲートに対応する(例えば、同一のデリゲートを利用する)。
一部の実施形態において、デバイスは個別のデリゲート(例えば、デリゲート321−1)を個別のジェスチャ・レコグナイザ(例えば、320−1)に割り当てる(606)(例えば、図5Bのステップ532の説明を参照)。これに代えて、個別のジェスチャ・レコグナイザは対応するデリゲートを有しており、それ故、デリゲートは実行時に割り当てられる必要はない。本明細書におけるイベント/ジェスチャ・レコグナイザの割り当てられたデリゲートに対する全ての参照は、イベント/ジェスチャ・レコグナイザの対応するデリゲートに同様に適用可能であることが理解され、対応するデリゲートに対する全ての参照は、割り当てられたデリゲートに等しく適用可能であることが理解される。
一部の実施形態において、表示された1つ以上のビューは複数のジェスチャ・レコグナイザを含み(608)、デバイスは複数のジェスチャ・レコグナイザの少なくとも部分集合に別個のデリゲートを割り当てる。言い換えると、一部のジェスチャ・レコグナイザは割り当てられたデリゲートを有しなくてもよいので、デバイスはジェスチャ・レコグナイザの個数より少ないデリゲートを有してもよい。
デバイスは1つ以上のイベントを検出する(610)。一部の実施形態において、デバイスは、センサ130、入力デバイス128及び/又はタッチセンサ・ディスプレイ156を使用して1つ以上のイベントを検出する。
デバイスは、個別のジェスチャ・レコグナイザを使用して1つ以上のイベントの個別のイベントを処理する(612)。個別のイベントの処理は、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って個別のジェスチャ・レコグナイザにおいて個別のイベントを処理すること(例えば、イベント比較部332を使用してイベントとジェスチャ定義333とを比較すること)と、アプリケーション状態に従って1つ以上の値を判定するために対応するデリゲートを実行すること(例えば、図5Bの540)と、個別のジェスチャ・レコグナイザによる個別のイベントの処理の結果に従うとともに対応するデリゲートにより判定された1つ以上の値に従って、個別のイベントに対応する情報(例えば、ジェスチャ・レコグナイザが「タップ・ジェスチャ」又は「スワイプ・ジェスチャ」等のイベントを認識するかどうか、イベントの位置及びタイムスタンプ等の関連イベント情報、並びに/又は他の追加の情報)をソフトウェア・アプリケーションに条件付きで送信することとを含む。
一部の実施形態において、デリゲートは、(「開始すべきか」、「受信すべきか」及び「同時認識」等の)イベント・レコグナイザ属性を判定するための命令を有し、実行された場合に1つ以上の対応する値を返す。一部の実施形態において、イベント・レコグナイザ属性に対する値は、アプリケーション状態に従ってソフトウェア・アプリケーションにより設定されうる。一部の実施形態において、属性に対する値は開発者により事前に定義される。一部の実施形態において、個別のイベント/ジェスチャ・レコグナイザの内部属性はデフォルト値を有し、デフォルト値はイベント/ジェスチャ・レコグナイザに対応するデリゲートにより上書きされうる。
例えば、(例えば、ジェスチャ・レコグナイザの対応するデリゲートにより判定された1つ以上の値であって、ジェスチャ・レコグナイザがイベント可能状態410からイベント認識済状態420又はイベント開始済状態412に遷移できるか、若しくは阻止側のジェスチャ・レコグナイザが存在するにも関わらずジェスチャ・レコグナイザがイベントを同時に認識できるかを示す1つ以上の値に基づいて)ジェスチャ・レコグナイザがイベントを認識することを許可された場合に、デバイスは個別のイベントに対応する情報を送信する。一部の実施形態において、デバイスは、対応するジェスチャ定義又はその一部にイベントが合致する場合にのみ、個別のイベントに対応する情報を送信する。さらに、アプリケーション状態又は他の条件により、個別のジェスチャ・レコグナイザが個別のイベントに対応する情報を送信することが防止されうる。
デバイスは、個別のイベントに対応する、個別のジェスチャ・レコグナイザから受信された情報に従ってソフトウェア・アプリケーション(例えば、132−1)を実行する(614)。例えば、ソフトウェア・アプリケーション(例えば、132−1)は複数のイベント・ハンドラ322を含み、イベント・ハンドラ322のうちの1つ以上は、個別のジェスチャ・レコグナイザから受信された情報に従って起動される(例えば、動作−対象ペア345に列挙されたイベント・ハンドラ322が起動される)。
一部の実施形態において、1つ以上のイベント・センサ(例えば、130)は1つ以上のタッチを検出するように構成されたタッチセンサ面(例えば、156又は分離したタッチセンサ面)を含み、1つ以上のイベントは1つ以上のタッチを含み、個別のイベントを処理することは個別のタッチを処理することを含む(616)。一部の実施形態において、1つ以上のイベント・センサ(例えば、130)は加速度計を含み、1つ以上のイベントは電子デバイスの回転又は他の動きも含む。
一部の実施形態において、デバイスは、割り当てられたデリゲートにより判定された1つ以上の値に従って個別のジェスチャ・レコグナイザにおいて個別のタッチを条件付きで受信する(618)。例えば、個別のジェスチャ・レコグナイザが個別のタッチを受信することを対応するデリゲートにより判定された1つ以上の値(例えば、「受信タッチ値」)が許可する場合にのみ(例えば、図4C及び図4Dにおける「受信すべきか」450)、個別のジェスチャ・レコグナイザは個別のタッチを受信する。
一部の実施形態において、個別のタッチを処理することは、対応するデリゲートにより判定された1つ以上の値が所定のタッチ無視基準に合致する場合に個別のジェスチャ・レコグナイザが個別のタッチを無視することを含む(620)。これらの実施形態において、ステップ618において説明したように個別のタッチを条件付きで受信する代わりに、個別のジェスチャ・レコグナイザは個別のタッチを無視する。
一部の実施形態において、個別のタッチを処理することは、対応するデリゲートにより判定された1つ以上の値が所定のタッチ無視基準に合致する場合に個別のジェスチャ・レコグナイザが個別のタッチを受信することを阻止することを含む(622)。これらの実施形態において、個別のタッチが阻止され、それ故、個別のジェスチャ・レコグナイザに到達しないので、ジェスチャ・レコグナイザは、個別のタッチを条件付きで受信するか又は無視する必要がない。一部の実施形態において、個別のジェスチャ・レコグナイザが個別のタッチを受信することを阻止することは、イベント情報を対応するジェスチャ・レコグナイザに送信しないようにイベント・ディスパッチャ・モジュール315に命令することを含む。
一部の実施形態において、個別のジェスチャ・レコグナイザにおいて個別のタッチを処理することは、検出されたタッチが個別のジェスチャ定義に整合している(例えば、個別のタッチがジェスチャ定義又はその一部に合致する)場合に、個別のジェスチャ・レコグナイザにおける対応する状態遷移を、対応するデリゲートにより状態遷移が可能にされたときに可能にすること(例えば、図4C及び図4Dの「開始すべきか」454)を含む(624)。一部の実施形態において、状態遷移可能値(例えば、「開始すべきか」の値)が状態遷移基準を満たすことを対応するデリゲートにより判定される場合に状態遷移が可能にされる。
一部の実施形態において、個別のジェスチャ・レコグナイザにおいて個別のタッチを処理することは、検出されたタッチが個別のジェスチャ定義に整合している場合に、個別のジェスチャ・レコグナイザにおける対応する状態遷移を、対応するデリゲートにより状態遷移が可能にされたときに条件付きで可能にすることを含む(626)。言い換えると、状態遷移は、対応するデリゲートが遷移を可能にする(例えば、阻止しない)としても、条件付きで可能にされる。例えば、状態遷移の条件は、個別のタッチ/イベントがジェスチャ定義又はその一部に合致するかどうか、個別のジェスチャ・レコグナイザが個別のタッチ/イベントを受信することを許可されるかどうか、及び/又は個別のタッチ/イベントの認識が阻止されるかどうかを含む。
一部の実施形態において、個別のジェスチャ・レコグナイザにおいて個別のタッチを処理することは、検出されたタッチが個別のジェスチャ定義に整合している場合に、個別のジェスチャ・レコグナイザにおける対応する状態遷移を、ジェスチャを認識した別のジェスチャ・レコグナイザにより状態遷移が防止/無効にされたときに(条件付きで)無効にすることを含む。特に、ジェスチャ・レコグナイザは、他のジェスチャ・レコグナイザ(群)がイベント認識済状態420又はイベント開始済状態412に遷移することを1つのジェスチャ・レコグナイザが防止できるようにペアにされうる(又はグループ化されうる)(例えば、第1ジェスチャ・レコグナイザが第2ジェスチャ・レコグナイザを防止するように構成される場合に、第1ジェスチャ・レコグナイザは、イベント/タッチを認識すると、第2ジェスチャ・レコグナイザに対応するデリゲートにより返された値に関わらず第2ジェスチャ・レコグナイザがそのイベント/タッチを認識することを防止する)。
一部の実施形態において、複数のジェスチャ・レコグナイザは優先順位に基づいて(例えば、コードのシーケンス、インスタンス化のシーケンス、個別のジェスチャ・レコグナイザに対応するビュー階層、若しくは開発者又はソフトウェア・アプリケーションにより割り当てられた優先順位に基づいて)列挙される。2つ以上のジェスチャ・レコグナイザが個別のタッチを同時に認識する場合に、優先順位が最も高いジェスチャ・レコグナイザは、他の全てのジェスチャ・レコグナイザが個別のタッチを認識することを阻止する。
一部の実施形態において、個別のジェスチャ・レコグナイザにおいて個別のタッチを処理することは、第2ジェスチャ・レコグナイザに対応するデリゲートにより判定された1つ以上の値に従って第2ジェスチャ・レコグナイザにおいて個別のタッチを同時に処理することを含む(628)。例えば、別のジェスチャ・レコグナイザはイベントの認識を阻止するとしても、第2ジェスチャ・レコグナイザに対応するデリゲートは、第2ジェスチャ・レコグナイザが第2ジェスチャ・レコグナイザにおいてジェスチャを処理することを許可しうる(例えば、図4C及び図4Dのステップ452)。
一部の実施形態において、個別のジェスチャ・レコグナイザにおいて個別のタッチを処理することは、個別のジェスチャ・レコグナイザに対応するデリゲートにより判定された1つ以上の値に従って第2ジェスチャ・レコグナイザにおいて個別のタッチを同時に処理することを含む(630)。例えば、別のジェスチャ・レコグナイザはイベントの認識を阻止するとしても、ジェスチャ・レコグナイザに対応するデリゲートは、第2ジェスチャ・レコグナイザが第2ジェスチャ・レコグナイザにおいてジェスチャを処理することを許可しうる(例えば、図4C及び図4Dのステップ455及び456)。
一部の実施形態において、個別のジェスチャ・レコグナイザにおける個別のタッチを処理することは、第1ジェスチャ・レコグナイザ及び第2ジェスチャ・レコグナイザにそれぞれ対応するデリゲートにより判定された値に従って第2ジェスチャ・レコグナイザにおいて個別のタッチを同時に処理することを含む。
図7A及び図7Bは、一部の実施形態に係るデリゲートから取得された受信タッチ値に従って個別のタッチを処理する例示的な方法を示すフローチャートである。
方法700は、タッチセンサ面(例えば、156)を有し、複数のビュー(例えば、316)とソフトウェア・アプリケーション(例えば、317)のアプリケーション状態とを含むソフトウェア・アプリケーションを実行するように構成された電子デバイス(例えば、デバイス104)において実行される(702)。
デバイスは、複数のビュー(例えば、316)のうちの1つ以上のビューを表示する(704)。表示された1つ以上のビューの個別のビューは1つ以上のジェスチャ・レコグナイザ(例えば、320−1又は343−2)を含み、1つ以上のジェスチャ・レコグナイザの個別のジェスチャ・レコグナイザは対応するデリゲート(例えば、321−1又は346)を有する。
デバイスは、タッチセンサ面(例えば、156又は130)における1つ以上のタッチを検出する(706)。1つ以上のタッチはそれぞれ、表示された1つ以上のビュー内のタッチ位置を有する。
デバイスは、1つ以上のタッチの個別のタッチを処理する(708)(例えば、イベント比較部332を使用して、個別のタッチがジェスチャ定義333に合致するかを判定する(453))。個別のタッチを処理することは、アプリケーション状態に従って受信タッチ値を取得するために個別のジェスチャ・レコグナイザに対応するデリゲートを実行すること(例えば、図5Cの550)と、受信タッチ値が所定の基準(例えば、一部の実施形態において、所定の基準は、個別のジェスチャ・レコグナイザが受信ジェスチャ・レコグナイザ552であるということ)を満たす場合に個別のジェスチャ・レコグナイザにおいて個別のタッチを処理すること(例えば、554)と、個別のタッチに対応する情報をソフトウェア・アプリケーションに条件付きで送信すること(例えば、542)とを含む(710)。
一部の実施形態において、複数のビューは複数のジェスチャ・レコグナイザを含む(712)(例えば、図3Bのアプリケーション・ビュー316及びレコグナイザ320、図5Aのビュー508、510及び512、並びにジェスチャ・レコグナイザ516)。別個のデリゲートは、複数のジェスチャ・レコグナイザの少なくとも部分集合に対応する。オプションとして、デバイスは、複数のジェスチャ・レコグナイザ(例えば、320)の少なくとも部分集合に別個のデリゲート(例えば、321)を割り当てる。1つ以上のタッチの個別のタッチを処理することは、複数のジェスチャ・レコグナイザのうちの候補ジェスチャ・レコグナイザの集合を識別すること(例えば、548)と、対応するデリゲートを有する候補ジェスチャ・レコグナイザ毎に、アプリケーション状態に従って受信タッチ値を取得するために対応するデリゲートを実行すること(例えば、550)と、取得された受信タッチ値に従って候補ジェスチャ・レコグナイザの部分集合を含む1つ以上の受信ジェスチャ・レコグナイザを識別すること(例えば、552)と、受信ジェスチャ・レコグナイザのうちの1つ以上の受信ジェスチャ・レコグナイザの各ジェスチャ・レコグナイザにおいて個別のタッチを処理すること(例えば、554)とを含む。
一部の実施形態において、複数のジェスチャ・レコグナイザのうちの候補ジェスチャ・レコグナイザの集合を識別することは、ヒット・ビューにアタッチされたジェスチャ・レコグナイザの集合を識別することを含む。オプションとして、複数のジェスチャ・レコグナイザのうちの候補ジェスチャ・レコグナイザの集合を識別することは、個別のタッチに対応するジェスチャ定義を含むジェスチャ・レコグナイザの集合を識別することを含む。さらに、一部の実施形態において、受信ジェスチャ・レコグナイザの集合を識別することは、対応するデリゲートが受信タッチ基準を満たす個別の受信タッチ値を提供する候補ジェスチャ・レコグナイザの部分集合を識別することを含む(例えば、受信タッチ値は、対応するジェスチャ・レコグナイザが個別のタッチを受信できることを示す)。
一部の実施形態において、1つ以上の受信ジェスチャ・レコグナイザの各ジェスチャ・レコグナイザにおいて個別のタッチを処理することは、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って対応するデリゲートを有する個別の受信ジェスチャ・レコグナイザにおいて個別のタッチを処理することと、アプリケーション状態に従って1つ以上の値を判定するためにデリゲートを実行することと、個別のジェスチャ・レコグナイザによる個別のタッチの処理の結果に従うとともにデリゲートにより判定された1つ以上の値に従って個別のタッチに対応する情報をソフトウェア・アプリケーションに条件付きで送信することとを含む(718)。デバイスは、1つ以上のタッチに対応する、1つ以上の受信ジェスチャ・レコグナイザから受信された情報に従ってソフトウェア・アプリケーションを実行する。
一部の実施形態において、個別の受信ジェスチャ・レコグナイザにおいて個別のタッチを処理することは、検出されたタッチが個別のジェスチャ定義に整合している(例えば、個別のタッチがジェスチャ定義又はその一部に合致する)場合に、個別のジェスチャ・レコグナイザにおける対応する状態遷移を、対応するデリゲートにより状態遷移が可能にされたときに可能にすること(例えば、図4C及び図4Dの「開始すべきか」454)を含む(720)。
一部の実施形態において、個別の受信ジェスチャ・レコグナイザにおいて個別のタッチを処理することは、検出されたタッチが個別のジェスチャ定義に整合している場合に、個別のジェスチャ・レコグナイザにおける対応する状態遷移を、対応するデリゲートにより状態遷移が可能にされたときに条件付きで可能にすることを含む(722)。例えば、状態遷移のための条件は、個別のタッチ/イベントがジェスチャ定義又はその一部に合致するかどうか、個別のジェスチャ・レコグナイザが個別のタッチ/イベントを受信することを許可されるかどうか、個別のタッチ/イベントの認識が阻止されるかどうか、及び/又はシステムレベルの命令(例えば、シャットダウン処理又はアプリケーションよりも高い優先順位を有する他の処理)が状態遷移を防止するかを含む。
一部の実施形態において、個別の受信ジェスチャ・レコグナイザにおいて個別のタッチを処理することは、第2ジェスチャ・レコグナイザに対応するデリゲートにより判定された1つ以上の値に従って第2ジェスチャ・レコグナイザにおいて個別のタッチを同時に処理することを含む(724)。例えば、第2ジェスチャ・レコグナイザに対応するデリゲートは、第2ジェスチャ・レコグナイザが第2ジェスチャ・レコグナイザにおいてジェスチャを処理することを許可する(例えば、図4C及び図4Dのステップ452)。
一部の実施形態において、個別の受信ジェスチャ・レコグナイザにおいて個別のタッチを処理することは、個別のジェスチャ・レコグナイザに対応するデリゲートにより判定された1つ以上の値に従って第2ジェスチャ・レコグナイザにおいて個別のタッチを同時に処理すること(例えば、図4C及び図4Dのステップ455及び456)を含む(726)。
デバイスは、個別のタッチに対応する、個別のジェスチャ・レコグナイザから受信された情報に従ってソフトウェア・アプリケーションを実行する(例えば、545)(716)。例えば、ソフトウェア・アプリケーション(例えば、132−1)は複数のイベント・ハンドラ322を含み、イベント・ハンドラ322のうちの1つ以上は、個別のジェスチャ・レコグナイザから受信された情報に従って起動される(例えば、動作−対象ペア345に列挙されたイベント・ハンドラ322が起動される)。
図8A及び図8Bは、一部の実施形態に係る離散ジェスチャ・レコグナイザ及び連続ジェスチャ・レコグナイザを含むソフトウェア・アプリケーションにおいて個別のタッチを処理する例示的な方法を示すフローチャートである。
方法800は、タッチセンサ面を有し、ソフトウェア・アプリケーションを実行するように構成された電子デバイス(例えば、デバイス104)において実行される(802)。
デバイスは、ソフトウェア・アプリケーション(例えば、132−1)の1つ以上のビュー(例えば、316)を表示する(804)。表示された1つ以上のビューは、複数のジェスチャ・レコグナイザ(例えば、320)を含む。複数のジェスチャ・レコグナイザは、少なくとも1つの離散ジェスチャ・レコグナイザ(例えば、図4A及び図4C)と、少なくとも1つの連続ジェスチャ・レコグナイザ(例えば、図4B及び図4D)とを含む。
一部の実施形態において、離散ジェスチャ・レコグナイザは個別のジェスチャに応答して単一の動作メッセージを送信するように構成され、連続ジェスチャ・レコグナイザは認識された個別のジェスチャの認識された連続するサブイベントにおいて動作メッセージを送信するように構成される。
一部の実施形態において、離散ジェスチャ・レコグナイザは、個別のジェスチャに応答して動作メッセージの単一の集合を送信するように構成される。複数の対象−動作ペアが個別の離散ジェスチャ・レコグナイザに割り当てられる場合に、動作メッセージの単一の集合は複数の動作メッセージを含む。単一の対象−動作ペアが個別の離散ジェスチャ・レコグナイザに割り当てられる場合に、動作メッセージの単一の集合は単一の動作メッセージを含む。
一部の実施形態において、各ジェスチャ・レコグナイザは、ジェスチャ・レコグナイザ状態(例えば、図4A〜図4D)の集合を有する(822)。
一部の実施形態において、離散ジェスチャ・レコグナイザは、以下を含むジェスチャ・レコグナイザ状態の第1集合を有する(824)。
●離散ジェスチャ・レコグナイザの初期状態に対応するジェスチャ可能状態410。
●個別のジェスチャの認識に対応するジェスチャ認識済状態420。
●離散ジェスチャ・レコグナイザが1つ以上のタッチを個別のジェスチャとして認識することに失敗したことに対応するジェスチャ失敗状態430。
一部の実施形態において、連続ジェスチャ・レコグナイザは、以下を含むジェスチャ・レコグナイザ状態の第2集合を有する。
●連続ジェスチャ・レコグナイザの初期状態に対応するジェスチャ可能状態410。
●個別のジェスチャの初期認識に対応するジェスチャ開始済状態412。
●個別のタッチの位置の個別の変化に対応するジェスチャ変更済状態414。
●認識された個別のジェスチャの完了に対応するジェスチャ終了済状態416。
●個別のジェスチャの認識の割り込みに対応するジェスチャ・キャンセル済状態418。
●連続ジェスチャ・レコグナイザが1つ以上のタッチを個別のジェスチャとして認識することに失敗したことに対応するジェスチャ失敗状態430。
一部の実施形態において、ジェスチャ・レコグナイザ状態は割り当てられた値(例えば、ジェスチャ・レコグナイザ状態値)を有する。一部の実施形態において、ジェスチャ認識済状態及びジェスチャ終了済状態は、同一のジェスチャ・レコグナイザ状態値を有する(826)。
一部の実施形態において、少なくとも1つの離散ジェスチャ・レコグナイザは、タップ・ジェスチャ・レコグナイザ及びスワイプ・ジェスチャ・レコグナイザのうちの1つ以上を含み(828)、少なくとも1つの連続ジェスチャ・レコグナイザは、長押しジェスチャ・レコグナイザ、ピンチ・ジェスチャ・レコグナイザ、パン・ジェスチャ・レコグナイザ、回転ジェスチャ・レコグナイザ及び変換ジェスチャ・レコグナイザのうちの1つ以上を含む。
一部の実施形態において、少なくとも1つの離散ジェスチャ・レコグナイザは、タップ・ジェスチャ・レコグナイザとスワイプ・ジェスチャ・レコグナイザとを含み(830)、少なくとも1つの連続ジェスチャ・レコグナイザは、長押しジェスチャ・レコグナイザと、ピンチ・ジェスチャ・レコグナイザと、パン・ジェスチャ・レコグナイザと、回転ジェスチャ・レコグナイザと、変換ジェスチャ・レコグナイザとを含む。
タップ・ジェスチャ・レコグナイザは、タップ・ジェスチャを認識するように構成される。スワイプ・ジェスチャ・レコグナイザは、スワイプ・ジェスチャ(例えば、タッチセンサ面に対するタッチのフリック)を認識するように構成される。長押しジェスチャ・レコグナイザは、長押しジェスチャ(例えば、押下及びタッチの保持)を認識するように構成される。ピンチ・ジェスチャ・レコグナイザは、ピンチ・ジェスチャ(例えば、2つ以上のタッチの接触及び相対的な移動)を認識するように構成される。パン・ジェスチャ・レコグナイザは、パン・ジェスチャ(例えば、タッチ及び1つ以上のタッチの整合性のある移動)を認識するように構成される。回転ジェスチャ・レコグナイザは、回転(例えば、接触及び2つ以上のタッチの回転移動)を認識するように構成される。変換ジェスチャ・レコグナイザは、変換ジェスチャ(例えば、パン、回転及びピンチを表す2つ以上のタッチの同時移動)を認識するように構成される。
一部の実施形態において、少なくとも1つの離散ジェスチャ・レコグナイザ(例えば上述した離散ジェスチャ・レコグナイザの1つ以上)及び少なくとも1つの連続ジェスチャ・レコグナイザ(例えば、上述した連続ジェスチャ・レコグナイザの1つ以上)は、ソフトウェア開発者がソフトウェアライブラリを使用してこれらをサードパーティ・ソフトウェアに組み込めるようにソフトウェアライブラリに配布される。これと比較して、ビューはビュー・スタイル(例えば、ユーザインタフェース・オブジェクト及びフレームの色、サイズ及び形状)を有する。一部の実施形態において、所定のビュー・スタイルは、ソフトウェア開発者がソフトウェアライブラリ(又はテンプレート)を使用して所定のビュー・スタイルを有するソフトウェア・アプリケーションを開発できるように、UIインタフェースAPI(例えば、図2の204)の一部として配布される。
デバイスは、1つ以上のタッチを検出する(図8Aの808)。一部の実施形態において、デバイスは、センサ130、入力デバイス128及び/又はタッチセンサ・ディスプレイ156を使用して1つ以上のイベントを検出する。
デバイスは、1つ以上のジェスチャ・レコグナイザを使用して各タッチを処理する(810)。個別のタッチの処理は、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って個別のジェスチャ・レコグナイザにおいて個別のタッチを処理すること(例えば、イベント比較部332を使用してイベントとジェスチャ定義333とを比較し、イベントがジェスチャ定義333又はその一部に合致するかを判定すること)と、個別のジェスチャ・レコグナイザにおける個別のタッチの処理の結果に従って1つ以上の動作メッセージの各々をソフトウェア・アプリケーションに条件付きで送信すること(例えば、個別のタッチがジェスチャ定義に合致した場合に動作メッセージを送信すること)とを含む(812)。
一部の実施形態において、ソフトウェア・アプリケーションはアプリケーション状態を有する(814)。1つ以上の個別の動作メッセージを条件付きで送信することは、ソフトウェア・アプリケーションのアプリケーション状態にさらに従って1つ以上の個別の動作メッセージを条件付きで送信することを含む。例えば、ソフトウェア・アプリケーションのアプリケーション状態は、1つ以上の個別の動作メッセージを送信することを遅延又は防止しうる(例えば、システムリソースが過度に使用される場合、優先順位がより高い処理が処理される必要がある場合等)。
デバイスは、タッチのうちの1つに対応するジェスチャ・レコグナイザのうちの1つ以上から受信された1つ以上の動作メッセージに従ってソフトウェア・アプリケーションを実行する(816)。例えば、ソフトウェア・アプリケーション(例えば、132−1)は複数のイベント・ハンドラ322を含み、イベント・ハンドラ322のうちの1つ以上はジェスチャ・レコグナイザのうちの1つ以上から受信された動作メッセージに従って起動される。
一部の実施形態において、デバイスは、個別のジェスチャ・レコグナイザからの追加の情報を要求する(818)。ソフトウェア・アプリケーションを実行することは、追加の情報にさらに従ってソフトウェア・アプリケーションを実行することを含む。例えば、個別のジェスチャ・レコグナイザは追加の情報(例えば、サブイベント毎のタイムスタンプ、ジッタ量、速度、方向、期間、倍率、角度等の詳細情報)を提供できる。
一部の実施形態において、追加の情報は、個別のジェスチャ・レコグナイザにおいて処理された個別のタッチの個数及び位置を含む(820)。
一部の実施形態によると、図9は、上述したような本発明の原理に従って構成された電子デバイス900の機能ブロック図を示す。デバイスの機能ブロックは、本発明の原理を実行するためにハードウェア、ソフトウェア、あるいはハードウェアとソフトウェアとの組み合わせにより実現されうる。図9において説明する機能ブロックは、上述したような本発明の原理を実現するために組み合わされてもよく又はサブブロックに分離されてもよいことが当業者には理解される。従って、本明細書における説明は、本明細書で説明する機能ブロックの任意の可能な組み合わせ、分離又は更なる定義をサポートしうる。
図9に示すように、電子デバイス900は、1つ以上のイベントを検知するように構成された1つ以上のイベント検知ユニット902と、1つ以上のイベント検知ユニット902に結合された処理ユニット906とを含む。一部の実施形態において、電子デバイスは、処理ユニット906に結合された表示ユニット904も含む。一部の実施形態において、処理ユニット906は、実行ユニット908、表示可能ユニット910、検出ユニット912、イベント処理ユニット914、送信ユニット916、レコグナイザ可能ユニット918、阻止ユニット920及び割り当てユニット922を含む。
処理ユニット906は、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを(例えば、実行ユニット908で)実行し、複数のビューのうちの1つ以上のビューの表示を(例えば、表示ユニット904に関する表示可能ユニット910で)可能にするように構成される。表示された1つ以上のビューの個別のビューは個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは対応するデリゲートを有する。処理ユニット906は、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って個別のジェスチャ・レコグナイザにおいて個別のイベントを(例えば、イベント処理ユニット914で)処理し、アプリケーション状態に従って1つ以上の値を判定するために対応するデリゲートを(例えば、実行ユニット908で)実行し、個別のジェスチャ・レコグナイザによる個別のイベントの処理の結果に従うとともに対応するデリゲートにより判定された1つ以上の値に従って個別のイベントに対応する情報をソフトウェア・アプリケーションに(例えば、送信ユニット916で)条件付きで送信することにより、1つ以上のイベント検知ユニット902により検知された1つ以上のイベントを(例えば、検出ユニット912で)検出し、個別のジェスチャ・レコグナイザを使用して1つ以上のイベントの個別のイベントを(例えば、イベント処理ユニット914で)処理するように構成される。処理ユニット906は、個別のイベントに対応する、個別のジェスチャ・レコグナイザから受信された情報に従ってソフトウェア・アプリケーションを(例えば、実行ユニット908で)実行するように構成される。
一部の実施形態において、1つ以上のイベント検知ユニット908は、1つ以上のタッチを検出するように構成されたタッチセンサ面ユニット(例えば、図10のタッチセンサ面ユニット1002)を含み、1つ以上のイベントは1つ以上のタッチを含み、処理ユニット906は個別のタッチを(例えば、イベント処理ユニット914で)処理するように構成される。
一部の実施形態において、処理ユニット906は、個別のジェスチャ・レコグナイザが対応するデリゲートにより判定された1つ以上の値に従って個別のタッチを条件付きで受信することを(例えば、レコグナイザ可能ユニット918で)可能にするように構成される。
一部の実施形態において、処理ユニット906は、対応するデリゲートにより判定された1つ以上の値が所定のタッチ無視基準に合致する場合に個別のジェスチャ・レコグナイザが個別のタッチを無視することを可能にすることにより個別のタッチを(例えば、イベント処理ユニット914及び/又はレコグナイザ可能ユニット918で)処理するように構成される。
一部の実施形態において、処理ユニット906は、対応するデリゲートにより判定された1つ以上の値が所定のタッチ無視基準に合致する場合に個別のジェスチャ・レコグナイザが個別のタッチを受信することを阻止することにより個別のタッチを(例えば、イベント処理ユニット914及び/又は阻止ユニット920で)処理するように構成される。
一部の実施形態において、処理ユニット906は、検出されたタッチが個別のジェスチャ定義に整合している場合に、個別のジェスチャ・レコグナイザにおける対応する状態遷移を、状態遷移が対応するデリゲートにより可能にされたときに可能にすることにより、個別のジェスチャ・レコグナイザにおいて個別のタッチを(例えば、イベント処理ユニット914及び/又はレコグナイザ可能ユニット918で)処理するように構成される。
一部の実施形態において、処理ユニット906は、検出されたタッチが個別のジェスチャ定義に整合している場合に、個別のジェスチャ・レコグナイザにおける対応する状態遷移を、対応するデリゲートにより状態遷移が可能にされたときに条件付きで可能にすることにより、個別のジェスチャ・レコグナイザにおいて個別のタッチを(例えば、イベント処理ユニット914及び/又は可能ユニット918で)処理するように構成される。
一部の実施形態において、処理ユニット906は、第2ジェスチャ・レコグナイザに対応するデリゲートにより判定された1つ以上の値に従って第2ジェスチャ・レコグナイザにおいて個別のタッチを同時に処理することにより、個別のジェスチャ・レコグナイザにおいて個別のタッチを(例えば、イベント処理ユニット914で)処理するように構成される。
一部の実施形態において、処理ユニット906は、個別のジェスチャ・レコグナイザに対応するデリゲートにより判定された1つ以上の値に従って第2ジェスチャ・レコグナイザにおいて個別のタッチを同時に処理することにより、個別のジェスチャ・レコグナイザにおいて個別のタッチを(例えば、イベント処理ユニット914で)処理するように構成される。
一部の実施形態において、表示された1つ以上のビューは複数のジェスチャ・レコグナイザを含み、処理ユニット906は、複数のジェスチャ・レコグナイザの少なくとも部分集合に別個のデリゲートを(例えば、割り当てユニット922で)割り当てるように構成される。
一部の実施形態によると、図10は、上述したような本発明の原理に従って構成された電子デバイス1000の機能ブロック図を示す。デバイスの機能ブロックは、本発明の原理を実行するためにハードウェア、ソフトウェア、あるいはハードウェアとソフトウェアとの組み合わせにより実現されうる。図10において説明する機能ブロックは、上述したような本発明の原理を実現するために組み合わされてもよく又はサブブロックに分離されてもよいことが当業者には理解される。従って、本明細書における説明は、本明細書で説明する機能ブロックの任意の可能な組み合わせ、分離又は更なる定義をサポートしうる。
図10に示すように、電子デバイス1000は、1つ以上のタッチを受信するように構成されたタッチセンサ面ユニット1002と、タッチセンサ面ユニット1002に結合された処理ユニット1006とを含む。一部の実施形態において、電子デバイス1000は、処理ユニット1006に結合された表示ユニット1004も含む。一部の実施形態において、処理ユニット1006は、実行ユニット1008、表示可能ユニット1010、検出ユニット1012、タッチ処理ユニット1014、送信ユニット1016、割り当てユニット1018、識別ユニット1020及びレコグナイザ可能ユニット1022を含む。
処理ユニット1006は、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを(例えば、実行ユニット1008で)実行し、複数のビューのうちの1つ以上のビューの表示を(例えば、表示ユニット1004に関する表示可能ユニット1010で)可能にするように構成される。表示された1つ以上のビューの個別のビューは個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは対応するデリゲートを有する。処理ユニット1006は、タッチセンサ面ユニット1002において受信された1つ以上のタッチを(例えば、検出ユニット1012で)検出するように構成される。各タッチは、表示されたビューのうちの1つ以上のビュー内に入るタッチ位置を有する。処理ユニット1006は、アプリケーション状態に従って受信タッチ値を取得するために個別のジェスチャ・レコグナイザに対応するデリゲートを(例えば、実行ユニット1008で)実行し、個別のタッチ値が所定の基準を満たす場合に個別のジェスチャ・レコグナイザにおいて個別のタッチを(例えば、タッチ処理ユニット1014で)処理し、個別のタッチに対応する情報をソフトウェア・アプリケーションに(例えば、送信ユニット1016で)条件付きで送信することにより1つ以上のタッチの個別のタッチを処理するように構成される。処理ユニット1006は、個別のタッチに対応する、個別のジェスチャ・レコグナイザから受信された情報に従ってソフトウェア・アプリケーションを(例えば、実行ユニット1008で)実行するように構成される。
一部の実施形態において、複数のビューは複数のジェスチャ・レコグナイザを含む。処理ユニット1006は、複数のジェスチャ・レコグナイザのうちの候補ジェスチャ・レコグナイザの集合を(例えば、識別ユニット1020で)識別し、割り当てられたデリゲートを有する候補ジェスチャ・レコグナイザ毎にアプリケーション状態に従って受信タッチ値を取得するために割り当てられたデリゲートを(例えば、実行ユニット1008で)実行し、取得された受信タッチ値に従って候補ジェスチャ・レコグナイザの部分集合を含む1つ以上の受信ジェスチャ・レコグナイザを(例えば、識別ユニット1020で)識別し、受信ジェスチャ・レコグナイザのうちの1つ以上の受信ジェスチャ・レコグナイザの各ジェスチャ・レコグナイザにおいて個別のタッチを(例えば、タッチ処理ユニット1014で)処理することにより、複数のジェスチャ・レコグナイザの少なくとも部分集合に別個のデリゲートを(例えば、割り当てユニット1018で)割り当て、1つ以上のタッチの個別のタッチを処理するように構成される。
一部の実施形態において、処理ユニット1006は、デリゲートが個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って割り当てられた個別の受信ジェスチャ・レコグナイザにおいて個別のタッチを(例えば、タッチ処理ユニット1014で)処理し、アプリケーション状態に従って1つ以上の値を判定するために割り当てられたデリゲートを(例えば、実行ユニット1008で)実行し、個別のジェスチャ・レコグナイザによる個別のタッチの処理の結果に従うとともに割り当てられたデリゲートにより判定された1つ以上の値に従って個別のタッチに対応する情報をソフトウェア・アプリケーションに(例えば、送信ユニット1016で)条件付きで送信することにより1つ以上の受信ジェスチャ・レコグナイザの各ジェスチャ・レコグナイザにおいて個別のタッチを処理するように構成され、タッチの1つ以上に対応する、受信ジェスチャ・レコグナイザの1つ以上から受信された情報に従ってソフトウェア・アプリケーションを(例えば、実行ユニット1008で)実行するように構成される。
一部の実施形態において、処理ユニット1006は、検出されたタッチが個別のジェスチャ定義に整合している場合に、個別のジェスチャ・レコグナイザにおける対応する状態遷移を、状態遷移が割り当てられたデリゲートにより可能にされたときに(例えば、レコグナイザ可能ユニット1022で)可能にすることにより、個別の受信ジェスチャ・レコグナイザにおいて個別のタッチを処理するように構成される。
一部の実施形態において、処理ユニット1006は、検出されたタッチが個別のジェスチャ定義に整合している場合に、個別のジェスチャ・レコグナイザにおける対応する状態遷移を、状態遷移が割り当てられたデリゲートにより可能にされたときに(例えば、レコグナイザ可能ユニット1022で)条件付きで可能にすることにより、個別の受信ジェスチャ・レコグナイザにおいて個別のタッチを処理するように構成される。
一部の実施形態において、処理ユニット1006は、第2ジェスチャ・レコグナイザに割り当てられたデリゲートにより判定された1つ以上の値に従って第2ジェスチャ・レコグナイザにおいて個別のタッチを同時に処理することにより、個別の受信ジェスチャ・レコグナイザにおいて個別のタッチを(例えば、タッチ処理ユニット1014で)処理するように構成される。
一部の実施形態において、処理ユニット1006は、個別のジェスチャ・レコグナイザに割り当てられたデリゲートにより判定された1つ以上の値に従って第2ジェスチャ・レコグナイザにおいて個別のタッチを同時に処理することにより、個別の受信ジェスチャ・レコグナイザにおいて個別のタッチを(例えば、タッチ処理ユニット1014で)処理するように構成される。
一部の実施形態によると、図11は、上述したような本発明の原理に従って構成された電子デバイス1100の機能ブロック図を示す。デバイスの機能ブロックは、本発明の原理を実行するためにハードウェア、ソフトウェア、あるいはハードウェアとソフトウェアとの組み合わせにより実現されうる。図11において説明する機能ブロックは、上述したような本発明の原理を実現するために組み合わされてもよく又はサブブロックに分離されてもよいことが当業者には理解される。従って、本明細書における説明は、本明細書で説明する機能ブロックの任意の可能な組み合わせ、分離又は更なる定義をサポートしうる。
図11に示すように、電子デバイス1100は、1つ以上のタッチを受信するように構成されたタッチセンサ面ユニット1102と、タッチセンサ面ユニット1102に結合された処理ユニット1106とを含む。一部の実施形態において、電子デバイス1100は、処理ユニット1106に結合された表示ユニット1104も含む。一部の実施形態において、処理ユニット1106は、実行ユニット1108、表示可能ユニット1110、検出ユニット1112、タッチ処理ユニット1114、送信ユニット1116及び要求ユニット1118を含む。
処理ユニット1106は、ソフトウェア・アプリケーションを(例えば、実行ユニット1108で)実行し、ソフトウェア・アプリケーションの1つ以上のビューの表示を(例えば、表示ユニット1104に関する表示可能ユニット1110で)可能にするように構成される。表示された1つ以上のビューは複数のジェスチャ・レコグナイザを含み、複数のジェスチャ・レコグナイザは少なくとも1つの離散ジェスチャ・レコグナイザと少なくとも1つの連続ジェスチャ・レコグナイザとを含む。離散ジェスチャ・レコグナイザは、個別のジェスチャに応答して単一の動作メッセージを送信するように構成され、連続ジェスチャ・レコグナイザは、認識された個別のジェスチャの認識された連続するサブイベントにおいて動作メッセージを送信するように構成される。処理ユニット1106は、タッチセンサ面ユニット1102において受信された1つ以上のタッチを(例えば、検出ユニット1112で)検出し、ジェスチャ・レコグナイザのうちの1つ以上を使用して各タッチを(例えば、タッチ処理ユニット1114で)処理するように構成される。処理ユニット1106は、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って個別のジェスチャ・レコグナイザにおいて個別のタッチを(例えば、タッチ処理ユニット1114で)処理し、個別のジェスチャ・レコグナイザにおける個別のタッチの処理の結果に従って1つ以上の個別の動作メッセージをソフトウェア・アプリケーションに(例えば、送信ユニット1116で)条件付きで送信することにより個別のタッチを処理するように構成される。処理ユニット1106は、タッチのうちの1つ以上に対応するジェスチャ・レコグナイザの1つ以上から受信された1つ以上の動作メッセージに従ってソフトウェア・アプリケーションを(例えば、実行ユニット1108で)実行するように構成される。
一部の実施形態において、各ジェスチャ・レコグナイザは、ジェスチャ・レコグナイザ状態の集合を有する。
一部の実施形態において、離散ジェスチャ・レコグナイザは、離散ジェスチャ・レコグナイザの初期状態に対応するジェスチャ可能状態と、個別のジェスチャの認識に対応するジェスチャ認識済状態と、離散ジェスチャ・レコグナイザが1つ以上のタッチを個別のジェスチャとして認識することに失敗したことに対応するジェスチャ失敗状態とを含むジェスチャ・レコグナイザ状態の第1集合を有する。連続ジェスチャ・レコグナイザは、ジェスチャ可能状態と、個別のジェスチャの初期認識に対応するジェスチャ開始済状態と、個別のタッチの位置の個別の変化に対応するジェスチャ変更済状態と、認識された個別のジェスチャの完了に対応するジェスチャ終了済状態と、個別のジェスチャの認識の割り込みに対応するジェスチャ・キャンセル済状態と、連続ジェスチャ・レコグナイザが1つ以上のタッチを個別のジェスチャとして認識することに失敗したことに対応するジェスチャ失敗状態とを含むジェスチャ・レコグナイザ状態の第2集合を有する。
一部の実施形態において、ジェスチャ認識済状態及びジェスチャ終了済状態は、同一のジェスチャ・レコグナイザ状態値を有する。
一部の実施形態において、ソフトウェア・アプリケーションはアプリケーション状態を有し、処理ユニット1106は、ソフトウェア・アプリケーションのアプリケーション状態にさらに従って1つ以上の動作メッセージを(例えば、送信ユニット1116で)条件付きで送信するように構成される。
一部の実施形態において、処理ユニット1106は、個別のジェスチャ・レコグナイザからの追加の情報を(例えば、要求ユニット1118で)要求し、追加の情報にさらに従ってソフトウェア・アプリケーションを(例えば、実行ユニット1108で)実行するように構成される。
一部の実施形態において、追加の情報は、個別のジェスチャ・レコグナイザにおいて処理されたタッチの個数及び位置を含む。
一部の実施形態において、少なくとも1つの離散ジェスチャ・レコグナイザは、タップ・ジェスチャ・レコグナイザとスワイプ・ジェスチャ・レコグナイザとのうちの1つ以上を含む。少なくとも1つの連続ジェスチャ・レコグナイザは、長押しジェスチャ・レコグナイザ、ピンチ・ジェスチャ・レコグナイザ、パン・ジェスチャ・レコグナイザ、回転ジェスチャ・レコグナイザ及び変換ジェスチャ・レコグナイザのうちの1つ以上を含む。
一部の実施形態において、少なくとも1つの離散ジェスチャ・レコグナイザは、タップ・ジェスチャ・レコグナイザとスワイプ・ジェスチャ・レコグナイザとを含む。少なくとも1つの連続ジェスチャ・レコグナイザは、長押しジェスチャ・レコグナイザと、ピンチ・ジェスチャ・レコグナイザと、パン・ジェスチャ・レコグナイザと、回転ジェスチャ・レコグナイザと、変換ジェスチャ・レコグナイザとを含む。
説明の目的で、特定の実施形態を参照して上記説明を行った。しかし、上記の例示的な説明は、本発明を網羅すること又は開示された厳密な形式に限定することを意図しない。多くの変更及び変形が上記教示に鑑みて可能である。本発明の原理及びその実際的な応用例を最適に説明するために実施形態を選択して説明した。これにより、当業者は、考えられる特定の用途に適するような本発明及び種々の変更を含む種々の実施形態を最適に利用できる。

Claims (61)

  1. 1つ以上のイベント・センサを有しており、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを実行するように構成された電子デバイスにおいて、
    前記複数のビューのうちの1つ以上のビューを表示する工程であって、前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは対応するデリゲートを有する、工程と、
    1つ以上のイベントを検出する工程と、
    前記個別のジェスチャ・レコグナイザを用いて前記1つ以上のイベントの個別のイベントを処理する工程であって、前記個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて前記個別のイベントを処理する工程と、前記アプリケーション状態に従って1つ以上の値を判定するために前記対応するデリゲートを実行する工程と、前記個別のジェスチャ・レコグナイザによる前記個別のイベントの処理の結果に従うとともに前記対応するデリゲートにより判定された前記1つ以上の値に従って、前記個別のイベントに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信する工程とを含む、工程と、
    前記個別のイベントに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行する工程とを有することを特徴とする方法。
  2. 前記1つ以上のイベント・センサは1つ以上のタッチを検出するように構成されたタッチセンサ面を含み、前記1つ以上のイベントは前記1つ以上のタッチを含み、前記個別のイベントを処理する工程は個別のタッチを処理する工程を含むことを特徴とする請求項1に記載の方法。
  3. 前記対応するデリゲートにより判定された前記1つ以上の値に従って前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを条件付きで受信する工程をさらに有することを特徴とする請求項2に記載の方法。
  4. 前記個別のタッチを処理する工程は、前記対応するデリゲートにより判定された前記1つ以上の値が所定のタッチ無視基準に合致する場合に、前記個別のジェスチャ・レコグナイザが前記個別のタッチを無視する工程を含むことを特徴とする請求項2又は3に記載の方法。
  5. 前記個別のタッチを処理する工程は、前記対応するデリゲートにより判定された前記1つ以上の値が所定のタッチ無視基準に合致する場合に、前記個別のジェスチャ・レコグナイザが前記個別のタッチを受信することを阻止する工程を含むことを特徴とする請求項2又は3に記載の方法。
  6. 前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程は、前記検出されたタッチが前記個別のジェスチャ定義に整合している場合に、前記個別のジェスチャ・レコグナイザにおける対応する状態遷移を、前記対応するデリゲートにより前記状態遷移が可能にされたときに可能にする工程を含むことを特徴とする請求項2又は3に記載の方法。
  7. 前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程は、前記検出されたタッチが前記個別のジェスチャ定義に整合している場合に、前記個別のジェスチャ・レコグナイザにおける対応する状態遷移を、前記対応するデリゲートにより前記状態遷移が可能にされたときに条件付きで可能にする工程を含むことを特徴とする請求項2又は3に記載の方法。
  8. 前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程は、第2ジェスチャ・レコグナイザに対応するデリゲートにより判定された1つ以上の値に従って前記第2ジェスチャ・レコグナイザにおいて前記個別のタッチを同時に処理する工程を含むことを特徴とする請求項2乃至7の何れか1項に記載の方法。
  9. 前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程は、前記個別のジェスチャ・レコグナイザに対応するデリゲートにより判定された1つ以上の値に従って第2ジェスチャ・レコグナイザにおいて前記個別のタッチを同時に処理する工程を含むことを特徴とする請求項2乃至7の何れか1項に記載の方法。
  10. 前記表示される1つ以上のビューは複数のジェスチャ・レコグナイザを含み、前記方法は、前記複数のジェスチャ・レコグナイザのうちの少なくとも部分集合に別個のデリゲートを割り当てる工程を含むことを特徴とする請求項1乃至9の何れか1項に記載の方法。
  11. イベントを検出するための1つ以上のイベント・センサと、
    1つ以上のプロセッサと、
    メモリと、
    前記メモリに格納され、前記1つ以上のプロセッサにより実行されるように構成された1つ以上のプログラムとを備える電子デバイスであって、
    前記1つ以上のプログラムは、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを含み、
    前記ソフトウェア・アプリケーションは、
    前記複数のビューのうちの1つ以上のビューを表示するための命令であって、前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含み、個別のレコグナイザは個別のデリゲートを有する、命令と、
    前記個別のジェスチャ・レコグナイザを用いて前記1つ以上のイベントの個別のイベントを処理するための命令であって、前記個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて前記個別のイベントを処理するための命令と、前記アプリケーション状態に従って1つ以上の値を判定するために前記個別のデリゲートを実行するための命令と、前記個別のジェスチャ・レコグナイザによる前記個別のイベントの処理の結果に従うとともに前記個別のデリゲートにより判定された前記1つ以上の値に従って、前記個別のイベントに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信するための命令とを含む、命令と、
    前記個別のイベントに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行するための命令とを有することを特徴とする電子デバイス。
  12. 1つ以上のイベント・センサを有する電子デバイスの1つ以上のプロセッサによる実行のための1つ以上のプログラムを格納するコンピュータ可読記憶媒体であって、
    前記1つ以上のプログラムは、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを含み、
    前記ソフトウェア・アプリケーションは、
    前記複数のビューのうちの1つ以上のビューを表示するための命令であって、前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは個別のデリゲートを有する、命令と、
    1つ以上のイベントを検出するための命令と、
    前記個別のジェスチャ・レコグナイザを用いて前記1つ以上のイベントの個別のイベントを処理するための命令であって、前記個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて前記個別のイベントを処理するための命令と、前記アプリケーション状態に従って1つ以上の値を判定するために前記個別のデリゲートを実行するための命令と、前記個別のジェスチャ・レコグナイザによる前記個別のイベントの処理の結果に従うとともに前記個別のデリゲートにより判定された前記1つ以上の値に従って、前記個別のイベントに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信するための命令とを含む、命令と、
    前記個別のイベントに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行するための命令とを有することを特徴とするコンピュータ可読記憶媒体。
  13. タッチセンサ面を有しており、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを実行するように構成された電子デバイスにおいて、
    前記複数のビューのうちの1つ以上のビューを表示する工程であって、前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは対応するデリゲートを有する、工程と、
    前記タッチセンサ面において、前記表示されたビューのうちの1つ以上のビューの範囲に入るタッチ位置をそれぞれが有する1つ以上のタッチを検出する工程と、
    前記1つ以上のタッチの個別のタッチを処理する工程であって、
    前記アプリケーション状態に従って受信タッチ値を取得するために前記個別のジェスチャ・レコグナイザに対応する前記デリゲートを実行する工程と、
    前記受信タッチ値が所定の基準を満たす場合に前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程と、
    前記個別のタッチに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信する工程とを含む、工程と、
    前記個別のタッチに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行する工程とを有することを特徴とする方法。
  14. 前記複数のビューは複数のジェスチャ・レコグナイザを含み、
    前記方法は、前記複数のジェスチャ・レコグナイザの少なくとも部分集合に別個のデリゲートを割り当てる工程を含み、
    前記1つ以上のタッチの前記個別のタッチを処理する工程は、
    前記複数のジェスチャ・レコグナイザのうちの候補ジェスチャ・レコグナイザの集合を識別する工程と、
    割り当てられたデリゲートを有する候補ジェスチャ・レコグナイザ毎に、前記アプリケーション状態に従って受信タッチ値を取得するために前記割り当てられたデリゲートを実行する工程と、
    前記取得された受信タッチ値に従って前記候補ジェスチャ・レコグナイザの部分集合を含む1つ以上の受信ジェスチャ・レコグナイザを識別する工程と、
    受信ジェスチャ・レコグナイザのうちの1つ以上の受信ジェスチャ・レコグナイザの各ジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程とを含むことを特徴とする請求項13に記載の方法。
  15. 前記1つ以上の受信ジェスチャ・レコグナイザの各ジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程は、前記個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って、デリゲートが割り当てられた個別の受信ジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程と、前記アプリケーション状態に従って1つ以上の値を判定するために前記割り当てられたデリゲートを実行する工程と、前記個別のジェスチャ・レコグナイザによる前記個別のタッチの処理の結果に従うとともに前記割り当てられたデリゲートにより判定された前記1つ以上の値に従って前記個別のタッチに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信する工程とを含み、
    前記方法は、前記タッチのうちの1つ以上に対応する、前記受信ジェスチャ・レコグナイザのうちの1つ以上から受信された情報に従って前記ソフトウェア・アプリケーションを実行する工程を含むことを特徴とする請求項14に記載の方法。
  16. 前記個別の受信ジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程は、前記検出されたタッチが前記個別のジェスチャ定義に整合している場合に、前記個別のジェスチャ・レコグナイザにおける対応する状態遷移を、前記割り当てられたデリゲートにより前記状態遷移が可能にされたときに可能にする工程を含むことを特徴とする請求項15に記載の方法。
  17. 前記個別の受信ジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程は、前記検出されたタッチが前記個別のジェスチャ定義に整合している場合に、前記個別のジェスチャ・レコグナイザにおける対応する状態遷移を、前記割り当てられたデリゲートにより前記状態遷移が可能にされたときに条件付きで可能にする工程を含むことを特徴とする請求項15に記載の方法。
  18. 前記個別の受信ジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程は、第2ジェスチャ・レコグナイザに割り当てられた前記デリゲートにより判定された1つ以上の値に従って前記第2ジェスチャ・レコグナイザにおいて前記個別のタッチを同時に処理する工程を含むことを特徴とする請求項15乃至17の何れか1項に記載の方法。
  19. 前記個別の受信ジェスチャ・レコグナイザにおいて前記個別のタッチを処理する工程は、前記個別のジェスチャ・レコグナイザに割り当てられた前記デリゲートにより判定された1つ以上の値に従って第2ジェスチャ・レコグナイザにおいて前記個別のタッチを同時に処理する工程を含むことを特徴とする請求項15乃至17の何れか1項に記載の方法。
  20. タッチセンサ面と、
    1つ以上のプロセッサと、
    メモリと、
    前記メモリに格納され、前記1つ以上のプロセッサにより実行されるように構成された1つ以上のプログラムとを備える電子デバイスであって、
    前記1つ以上のプログラムは、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを含み、
    前記ソフトウェア・アプリケーションは、
    前記複数のビューのうちの1つ以上のビューを表示するための命令であって、前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは対応するデリゲートを有する、命令と、
    前記タッチセンサ面において、前記表示されたビューのうちの1つ以上のビューの範囲に入るタッチ位置をそれぞれが有する1つ以上のタッチを検出するための命令と、
    前記1つ以上のタッチの個別のタッチを処理するための命令であって、
    前記アプリケーション状態に従って受信タッチ値を取得するために前記個別のジェスチャ・レコグナイザに対応する前記デリゲートを実行するための命令と、
    前記受信タッチ値が所定の基準を満たす場合に前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理するための命令と、
    前記個別のタッチに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信するための命令とを含む、命令と、
    前記個別のタッチに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行するための命令とを有することを特徴とする電子デバイス。
  21. タッチセンサ面を有する電子デバイスの1つ以上のプロセッサによる実行のための1つ以上のプログラムを格納するコンピュータ可読記憶媒体であって、
    前記1つ以上のプログラムは、複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを含み、
    前記ソフトウェア・アプリケーションは、
    前記複数のビューのうちの1つ以上のビューを表示するための命令であって、前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは対応するデリゲートを有する、命令と、
    前記タッチセンサ面において、前記表示されたビューのうちの1つ以上のビューの範囲に入るタッチ位置をそれぞれが有する1つ以上のタッチを検出するための命令と、
    前記タッチセンサ面における1つ以上のタッチの個別のタッチを処理するための命令であって、
    前記アプリケーション状態に従って受信タッチ値を取得するために前記個別のジェスチャ・レコグナイザに対応する前記デリゲートを実行するための命令と、
    前記受信タッチ値が所定の基準を満たす場合に前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理するための命令と、
    前記個別のタッチに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信するための命令とを含む、命令と、
    前記個別のタッチに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行するための命令とを有することを特徴とするコンピュータ可読記憶媒体。
  22. タッチセンサ面を有しており、ソフトウェア・アプリケーションを実行するように構成された電子デバイスにおいて、
    前記ソフトウェア・アプリケーションの1つ以上のビューを表示する工程であって、前記表示される1つ以上のビューは複数のジェスチャ・レコグナイザを含み、前記複数のジェスチャ・レコグナイザは、個別のジェスチャに応答して単一の動作メッセージを送信するように構成された少なくとも1つの離散ジェスチャ・レコグナイザと、認識された個別のジェスチャの認識された連続するサブイベントにおいて動作メッセージを送信するように構成された少なくとも1つの連続ジェスチャ・レコグナイザとを含む、工程と、
    1つ以上のタッチを検出する工程と、
    前記ジェスチャ・レコグナイザのうちの1つ以上を使用しての前記タッチのそれぞれを処理する工程であって、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて個別のタッチを処理する工程と、前記個別のジェスチャ・レコグナイザにおける前記個別のタッチの処理の結果に従って1つ以上の個別の動作メッセージを前記ソフトウェア・アプリケーションに条件付きで送信する工程とを含む、工程と、
    前記タッチの1つ以上に対応する前記ジェスチャ・レコグナイザの1つ以上から受信された1つ以上の動作メッセージに従って前記ソフトウェア・アプリケーションを実行する工程とを有することを特徴とする方法。
  23. 各ジェスチャ・レコグナイザはジェスチャ・レコグナイザ状態の集合を有することを特徴とする請求項22に記載の方法。
  24. 前記離散ジェスチャ・レコグナイザは、前記離散ジェスチャ・レコグナイザの初期状態に対応するジェスチャ可能状態と、前記個別のジェスチャの認識に対応するジェスチャ認識済状態と、前記離散ジェスチャ・レコグナイザが前記1つ以上のタッチを前記個別のジェスチャとして認識することに失敗したことに対応するジェスチャ失敗状態とを含むジェスチャ・レコグナイザ状態の第1集合を有し、
    前記連続ジェスチャ・レコグナイザは、ジェスチャ可能状態と、前記個別のジェスチャの初期認識に対応するジェスチャ開始済状態と、前記個別のタッチの位置の個別の変化に対応するジェスチャ変更済状態と、前記認識された個別のジェスチャの完了に対応するジェスチャ終了済状態と、前記個別のジェスチャの認識の割り込みに対応するジェスチャ・キャンセル済状態と、前記連続ジェスチャ・レコグナイザが前記1つ以上のタッチを前記個別のジェスチャとして認識することに失敗したことに対応するジェスチャ失敗状態とを含むジェスチャ・レコグナイザ状態の第2集合を有することを特徴とする請求項23に記載の方法。
  25. 前記ジェスチャ認識済状態及び前記ジェスチャ終了済状態は、同一のジェスチャ・レコグナイザ状態値を有することを特徴とする請求項24に記載の方法。
  26. 前記ソフトウェア・アプリケーションはアプリケーション状態を有し、前記1つ以上の個別の動作メッセージを条件付きで送信する工程は、前記ソフトウェア・アプリケーションの前記アプリケーション状態にさらに従って前記1つ以上の個別の動作メッセージを条件付きで送信する工程を含むことを特徴とする請求項22乃至25の何れか1項に記載の方法。
  27. 前記方法は、前記個別のジェスチャ・レコグナイザからの追加の情報を要求する工程をさらに有し、前記ソフトウェア・アプリケーションを実行する工程は、前記追加の情報にさらに従って前記ソフトウェア・アプリケーションを実行する工程を含むことを特徴とする請求項22乃至26の何れか1項に記載の方法。
  28. 前記追加の情報は、前記個別のジェスチャ・レコグナイザにおいて処理された個別のタッチの個数及び位置を含むことを特徴とする請求項27に記載の方法。
  29. 前記少なくとも1つの離散ジェスチャ・レコグナイザは、タップ・ジェスチャ・レコグナイザと、スワイプ・ジェスチャ・レコグナイザとのうちの1つ以上を含み、前記少なくとも1つの連続ジェスチャ・レコグナイザは、長押しジェスチャ・レコグナイザと、ピンチ・ジェスチャ・レコグナイザと、パン・ジェスチャ・レコグナイザと、回転ジェスチャ・レコグナイザと、変換ジェスチャ・レコグナイザとのうちの1つ以上を含むことを特徴とする請求項22乃至28の何れか1項に記載の方法。
  30. 前記少なくとも1つの離散ジェスチャ・レコグナイザは、タップ・ジェスチャ・レコグナイザと、スワイプ・ジェスチャ・レコグナイザとを含み、前記少なくとも1つの連続ジェスチャ・レコグナイザは、長押しジェスチャ・レコグナイザと、ピンチ・ジェスチャ・レコグナイザと、パン・ジェスチャ・レコグナイザと、回転ジェスチャ・レコグナイザと、変換ジェスチャ・レコグナイザとを含むことを特徴とする請求項22乃至29の何れか1項に記載の方法。
  31. タッチセンサ面と、
    1つ以上のプロセッサと、
    メモリと、
    前記メモリに格納され、前記1つ以上のプロセッサにより実行されるように構成された1つ以上のプログラムとを備える電子デバイスであって、
    前記1つ以上のプログラムは、ソフトウェア・アプリケーションを含み、
    前記ソフトウェア・アプリケーションは、
    前記ソフトウェア・アプリケーションの1つ以上のビューを表示するための命令であって、前記表示される1つ以上のビューは複数のジェスチャ・レコグナイザを含み、前記複数のジェスチャ・レコグナイザは、個別のジェスチャに応答して単一の動作メッセージを送信するように構成された少なくとも1つの離散ジェスチャ・レコグナイザと、認識された個別のジェスチャの認識された連続するサブイベントにおいて動作メッセージを送信するように構成された少なくとも1つの連続ジェスチャ・レコグナイザとを含む、命令と、
    1つ以上のタッチを検出するための命令と、
    前記ジェスチャ・レコグナイザのうちの1つ以上を使用しての前記タッチのそれぞれを処理するための命令であって、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて個別のタッチを処理するための命令と、前記個別のジェスチャ・レコグナイザにおける前記個別のタッチの処理の結果に従って1つ以上の個別の動作メッセージを前記ソフトウェア・アプリケーションに条件付きで送信するための命令とを含む、命令と、
    前記タッチの1つ以上に対応する前記ジェスチャ・レコグナイザの1つ以上から受信された1つ以上の動作メッセージに従って前記ソフトウェア・アプリケーションを実行するための命令とを有することを特徴とする電子デバイス。
  32. タッチセンサ面を有する電子デバイスの1つ以上のプロセッサによる実行のための1つ以上のプログラムを格納するコンピュータ可読記憶媒体であって、
    前記1つ以上のプログラムは、ソフトウェア・アプリケーションを含み、
    前記ソフトウェア・アプリケーションは、
    前記ソフトウェア・アプリケーションの1つ以上のビューを表示するための命令であって、前記表示される1つ以上のビューは複数のジェスチャ・レコグナイザを含み、前記複数のジェスチャ・レコグナイザは、個別のジェスチャに応答して単一の動作メッセージを送信するように構成された少なくとも1つの離散ジェスチャ・レコグナイザと、認識された個別のジェスチャの認識された連続するサブイベントにおいて動作メッセージを送信するように構成された少なくとも1つの連続ジェスチャ・レコグナイザとを含む、命令と、
    1つ以上のタッチを検出するための命令と、
    前記ジェスチャ・レコグナイザのうちの1つ以上を使用しての前記タッチのそれぞれを処理するための命令であって、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて個別のタッチを処理するための命令と、前記個別のジェスチャ・レコグナイザにおける前記個別のタッチの処理の結果に従って1つ以上の個別の動作メッセージを前記ソフトウェア・アプリケーションに条件付きで送信するための命令とを含む、命令と、
    前記タッチの1つ以上に対応する前記ジェスチャ・レコグナイザの1つ以上から受信された1つ以上の動作メッセージに従って前記ソフトウェア・アプリケーションを実行するための命令とを有することを特徴とするコンピュータ可読記憶媒体。
  33. タッチセンサ面と、
    1つ以上のプロセッサと、
    メモリと、
    1つ以上のプログラムとを備える電子デバイスであって、
    前記1つ以上のプログラムは前記メモリに格納され、前記1つ以上のプロセッサにより実行されるように構成され、前記1つ以上のプログラムは請求項1乃至10、13乃至19及び22乃至30の何れか1項に記載の方法を実行するための命令を含むことを特徴とする電子デバイス。
  34. 1つ以上のプログラムを格納するコンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、タッチセンサ面を有する電子デバイスによって実行される場合に、請求項1乃至10、13乃至19及び22乃至30の何れか1項に記載の方法を実行させる命令を含むことを特徴とするコンピュータ可読記憶媒体。
  35. タッチセンサ面と、
    請求項1乃至10、13乃至19及び22乃至30の何れか1項に記載の方法を実行するための手段とを含むことを特徴とする電子デバイス。
  36. タッチセンサ面を有する電子デバイスに用いられる情報処理装置であって、
    請求項1乃至10、13乃至19及び22乃至30の何れか1項に記載の方法を実行するための手段とを含むことを特徴とする情報処理装置。
  37. 1つ以上のタッチを受信するように構成されたタッチセンサ面ユニットと、
    前記タッチセンサ面ユニットに結合された処理ユニットとを備える電子デバイスであって、
    前記処理ユニットは、
    複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを実行し、
    前記複数のビューのうちの1つ以上のビューの表示を可能にし、前記表示される1つ以上のビューの個別のビューは1つ以上の個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは対応するデリゲートを有しており、
    前記表示されたビューのうちの1つ以上のビューの範囲に入るタッチ位置をそれぞれが有し、前記タッチセンサ面において受信された1つ以上のタッチを検出し、
    前記1つ以上のタッチの個別のタッチを処理し、前記個別のタッチについて、
    前記アプリケーション状態に従って受信タッチ値を取得するために前記個別のジェスチャ・レコグナイザに対応する前記デリゲートを実行し、
    前記受信タッチ値が所定の基準を満たす場合に前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理し、
    前記個別のタッチに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信し、
    前記個別のタッチに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行するように構成されることを特徴とする電子デバイス。
  38. 前記複数のビューは複数のジェスチャ・レコグナイザを含み、
    前記処理ユニットは、
    前記複数のジェスチャ・レコグナイザの少なくとも部分集合に別個のデリゲートを割り当て、
    前記1つ以上のタッチの個別のタッチを処理することを、
    前記複数のジェスチャ・レコグナイザのうちの候補ジェスチャ・レコグナイザの集合を識別し、
    割り当てられたデリゲートを有する候補ジェスチャ・レコグナイザ毎に、前記アプリケーション状態に従って受信タッチ値を取得するために前記割り当てられたデリゲートを実行し、
    前記取得された受信タッチ値に従って前記候補ジェスチャ・レコグナイザの部分集合を含む1つ以上の受信ジェスチャ・レコグナイザを識別し、
    受信ジェスチャ・レコグナイザのうちの1つ以上の受信ジェスチャ・レコグナイザの各ジェスチャ・レコグナイザにおいて前記個別のタッチを処理することによって行うように構成されることを特徴とする請求項37に記載の電子デバイス。
  39. 前記処理ユニットは、
    前記1つ以上の受信ジェスチャ・レコグナイザの各ジェスチャ・レコグナイザにおいて前記個別のタッチを処理することを、
    前記個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って、デリゲートが割り当てられた個別の受信ジェスチャ・レコグナイザにおいて前記個別のタッチを処理し、
    前記アプリケーション状態に従って1つ以上の値を判定するために前記割り当てられたデリゲートを実行し、
    前記個別のジェスチャ・レコグナイザによる前記個別のタッチの処理の結果に従うとともに前記割り当てられたデリゲートにより判定された前記1つ以上の値に従って前記個別のタッチに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信することによって行い、
    前記タッチのうちの1つ以上に対応する、前記受信ジェスチャ・レコグナイザのうちの1つ以上から受信された情報に従って前記ソフトウェア・アプリケーションを実行するように構成されることを特徴とする請求項38に記載の電子デバイス。
  40. 前記処理ユニットは、前記個別の受信ジェスチャ・レコグナイザにおいて前記個別のタッチを処理することを、前記検出されたタッチが前記個別のジェスチャ定義に整合している場合に、前記個別のジェスチャ・レコグナイザにおける対応する状態遷移を、前記割り当てられたデリゲートにより前記状態遷移が可能にされたときに可能にすることによって行われるように構成されることを特徴とする請求項39に記載の電子デバイス。
  41. 前記処理ユニットは、前記個別の受信ジェスチャ・レコグナイザにおいて前記個別のタッチを処理することを、第2ジェスチャ・レコグナイザに割り当てられた前記デリゲートにより判定された1つ以上の値に従って前記第2ジェスチャ・レコグナイザにおいて前記個別のタッチを同時に処理することによって行うように構成されることを特徴とする請求項39又は40に記載の電子デバイス。
  42. 前記処理ユニットは、前記個別の受信ジェスチャ・レコグナイザにおいて前記個別のタッチを処理することを、前記個別のジェスチャ・レコグナイザに割り当てられた前記デリゲートにより判定された1つ以上の値に従って第2ジェスチャ・レコグナイザにおいて前記個別のタッチを同時に処理することによって行うように構成されることを特徴とする請求項39又は40に記載の電子デバイス。
  43. 1つ以上のイベントを検知するように構成された1つ以上のイベント検知ユニットと、
    前記1つ以上のイベント検知ユニットに結合された処理ユニットとを備える電子デバイスであって、
    前記処理ユニットは、
    複数のビューとソフトウェア・アプリケーションのアプリケーション状態とを含むソフトウェア・アプリケーションを実行し、
    前記複数のビューのうちの1つ以上のビューの表示を可能にし、前記表示される1つ以上のビューの個別のビューは個別のジェスチャ・レコグナイザを含み、個別のジェスチャ・レコグナイザは対応するデリゲートを有しており、
    前記1つ以上のイベント検知ユニットにより1つ以上のイベントを検出し、
    前記個別のジェスチャ・レコグナイザを用いて前記1つ以上のイベントの個別のイベントを処理することを、
    前記個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて前記個別のイベントを処理し、前記アプリケーション状態に従って1つ以上の値を判定するために前記対応するデリゲートを実行し、前記個別のジェスチャ・レコグナイザによる前記個別のイベントの処理の結果に従うとともに前記対応するデリゲートにより判定された前記1つ以上の値に従って、前記個別のイベントに対応する情報を前記ソフトウェア・アプリケーションに条件付きで送信することによって行い、
    前記個別のイベントに対応する、前記個別のジェスチャ・レコグナイザから受信された情報に従って前記ソフトウェア・アプリケーションを実行するように構成されることを特徴とする電子デバイス。
  44. 前記1つ以上のイベント検知ユニットは1つ以上のタッチを検出するように構成されたタッチセンサ・ユニットを含み、前記1つ以上のイベントは前記1つ以上のタッチを含み、前記処理ユニットは個別のタッチを処理するように構成されることを特徴とする請求項43に記載の電子デバイス。
  45. 前記処理ユニットは、前記対応するデリゲートにより判定された前記1つ以上の値に従って前記個別のジェスチャ・レコグナイザが前記個別のタッチを条件付きで受信することを可能にするように構成されることを特徴とする請求項44に記載の電子デバイス。
  46. 前記処理ユニットは、前記対応するデリゲートにより判定された前記1つ以上の値が所定のタッチ無視基準に合致する場合に、前記個別のジェスチャ・レコグナイザが前記個別のタッチを無視することを可能にするように構成されることを特徴とする請求項44又は45に記載の電子デバイス。
  47. 前記処理ユニットは、前記対応するデリゲートにより判定された前記1つ以上の値が所定のタッチ無視基準に合致する場合に、前記個別のジェスチャ・レコグナイザが前記個別のタッチを受信することを阻止することによって、前記個別のタッチを処理するように構成されることを特徴とする請求項44又は45に記載の電子デバイス。
  48. 前記処理ユニットは、前記検出されたタッチが前記個別のジェスチャ定義に整合している場合に、前記個別のジェスチャ・レコグナイザにおける対応する状態遷移を、前記対応するデリゲートにより前記状態遷移が可能にされたときに可能にすることによって、前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理することを特徴とする請求項44又は45に記載の電子デバイス。
  49. 前記処理ユニットは、前記検出されたタッチが前記個別のジェスチャ定義に整合している場合に、前記個別のジェスチャ・レコグナイザにおける対応する状態遷移を、前記対応するデリゲートにより前記状態遷移が可能にされたときに条件付きで可能にすることによって、前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理するように構成されることを特徴とする請求項44又は45に記載の電子デバイス。
  50. 前記処理ユニットは、第2ジェスチャ・レコグナイザに対応するデリゲートにより判定された1つ以上の値に従って前記第2ジェスチャ・レコグナイザにおいて前記個別のタッチを同時に処理することによって、前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理するように構成されることを特徴とする請求項44乃至49の何れか1項に記載の電子デバイス。
  51. 前記処理ユニットは、前記個別のジェスチャ・レコグナイザに対応するデリゲートにより判定された1つ以上の値に従って第2ジェスチャ・レコグナイザにおいて前記個別のタッチを同時に処理することによって、前記個別のジェスチャ・レコグナイザにおいて前記個別のタッチを処理するように構成されることを特徴とする請求項44乃至49の何れか1項に記載の電子デバイス。
  52. 前記表示される1つ以上のビューは複数のジェスチャ・レコグナイザを含み、前記処理ユニットは、前記複数のジェスチャ・レコグナイザのうちの少なくとも部分集合に別個のデリゲートを割り当てるように構成されることを特徴とする請求項43乃至51の何れか1項に記載の電子デバイス。
  53. 1つ以上のタッチを受信するように構成されたタッチセンサ面ユニットと、
    前記タッチセンサ面ユニットに結合された処理ユニットとを備える電子デバイスであって、
    前記処理ユニットは、
    ソフトウェア・アプリケーションを実行し、
    前記ソフトウェア・アプリケーションの1つ以上のビューの表示を可能にし、前記表示される1つ以上のビューは複数のジェスチャ・レコグナイザを含み、前記複数のジェスチャ・レコグナイザは、個別のジェスチャに応答して単一の動作メッセージを送信するように構成された少なくとも1つの離散ジェスチャ・レコグナイザと、認識された個別のジェスチャの認識された連続するサブイベントにおいて動作メッセージを送信するように構成された少なくとも1つの連続ジェスチャ・レコグナイザとを含み、
    前記タッチセンサ面ユニットで受信された1つ以上のタッチを検出し、
    前記ジェスチャ・レコグナイザのうちの1つ以上を使用しての前記タッチのそれぞれを処理することを、個別のジェスチャ・レコグナイザに対応する個別のジェスチャ定義に従って前記個別のジェスチャ・レコグナイザにおいて個別のタッチを処理し、前記個別のジェスチャ・レコグナイザにおける前記個別のタッチの処理の結果に従って1つ以上の個別の動作メッセージを前記ソフトウェア・アプリケーションに条件付きで送信することによって行い、
    前記タッチの1つ以上に対応する前記ジェスチャ・レコグナイザの1つ以上から受信された1つ以上の動作メッセージに従って前記ソフトウェア・アプリケーションを実行するように構成されることを特徴とする電子デバイス。
  54. 各ジェスチャ・レコグナイザはジェスチャ・レコグナイザ状態の集合を有することを特徴とする請求項53に記載の電子デバイス。
  55. 前記離散ジェスチャ・レコグナイザは、前記離散ジェスチャ・レコグナイザの初期状態に対応するジェスチャ可能状態と、前記個別のジェスチャの認識に対応するジェスチャ認識済状態と、前記離散ジェスチャ・レコグナイザが前記1つ以上のタッチを前記個別のジェスチャとして認識することに失敗したことに対応するジェスチャ失敗状態とを含むジェスチャ・レコグナイザ状態の第1集合を有し、
    前記連続ジェスチャ・レコグナイザは、ジェスチャ可能状態と、前記個別のジェスチャの初期認識に対応するジェスチャ開始済状態と、前記個別のタッチの位置の個別の変化に対応するジェスチャ変更済状態と、前記認識された個別のジェスチャの完了に対応するジェスチャ終了済状態と、前記個別のジェスチャの認識の割り込みに対応するジェスチャ・キャンセル済状態と、前記連続ジェスチャ・レコグナイザが前記1つ以上のタッチを前記個別のジェスチャとして認識することに失敗したことに対応するジェスチャ失敗状態とを含むジェスチャ・レコグナイザ状態の第2集合を有することを特徴とする請求項54に記載の電子デバイス。
  56. 前記ジェスチャ認識済状態及び前記ジェスチャ終了済状態は、同一のジェスチャ・レコグナイザ状態値を有することを特徴とする請求項55に記載の電子デバイス。
  57. 前記ソフトウェア・アプリケーションはアプリケーション状態を有し、前記処理ユニットは、前記ソフトウェア・アプリケーションの前記アプリケーション状態にさらに従って前記1つ以上の個別の動作メッセージを条件付きで送信するように構成されることを特徴とする請求項53乃至56の何れか1項に記載の電子デバイス。
  58. 前記処理ユニットは、
    前記個別のジェスチャ・レコグナイザからの追加の情報を要求し、
    前記追加の情報にさらに従って前記ソフトウェア・アプリケーションを実行するように構成されることを特徴とする請求項53乃至57の何れか1項に記載の電子デバイス。
  59. 前記追加の情報は、前記個別のジェスチャ・レコグナイザにおいて処理された個別のタッチの個数及び位置を含むことを特徴とする請求項58に記載の電子デバイス。
  60. 前記少なくとも1つの離散ジェスチャ・レコグナイザは、タップ・ジェスチャ・レコグナイザと、スワイプ・ジェスチャ・レコグナイザとのうちの1つ以上を含み、前記少なくとも1つの連続ジェスチャ・レコグナイザは、長押しジェスチャ・レコグナイザと、ピンチ・ジェスチャ・レコグナイザと、パン・ジェスチャ・レコグナイザと、回転ジェスチャ・レコグナイザと、変換ジェスチャ・レコグナイザとのうちの1つ以上を含むことを特徴とする請求項53乃至59の何れか1項に記載の電子デバイス。
  61. 前記少なくとも1つの離散ジェスチャ・レコグナイザは、タップ・ジェスチャ・レコグナイザと、スワイプ・ジェスチャ・レコグナイザとを含み、前記少なくとも1つの連続ジェスチャ・レコグナイザは、長押しジェスチャ・レコグナイザと、ピンチ・ジェスチャ・レコグナイザと、パン・ジェスチャ・レコグナイザと、回転ジェスチャ・レコグナイザと、変換ジェスチャ・レコグナイザとを含むことを特徴とする請求項53乃至60の何れか1項に記載の電子デバイス。
JP2012551249A 2010-01-26 2011-01-26 ジェスチャ認識を制御及び変更するためのデリゲートを有するジェスチャ・レコグナイザ Active JP5497920B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US29853110P 2010-01-26 2010-01-26
US61/298,531 2010-01-26
US12/789,695 2010-05-28
US12/789,695 US9684521B2 (en) 2010-01-26 2010-05-28 Systems having discrete and continuous gesture recognizers
PCT/US2011/022516 WO2011094267A1 (en) 2010-01-26 2011-01-26 Gesture recognizers with delegates for controlling and modifying gesture recognition

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014044208A Division JP5938429B2 (ja) 2010-01-26 2014-03-06 ジェスチャ認識を制御及び変更するためのデリゲートを有するジェスチャ・レコグナイザ

Publications (2)

Publication Number Publication Date
JP2013518349A true JP2013518349A (ja) 2013-05-20
JP5497920B2 JP5497920B2 (ja) 2014-05-21

Family

ID=43825308

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2012551249A Active JP5497920B2 (ja) 2010-01-26 2011-01-26 ジェスチャ認識を制御及び変更するためのデリゲートを有するジェスチャ・レコグナイザ
JP2014044208A Active JP5938429B2 (ja) 2010-01-26 2014-03-06 ジェスチャ認識を制御及び変更するためのデリゲートを有するジェスチャ・レコグナイザ
JP2016098113A Active JP6201003B2 (ja) 2010-01-26 2016-05-16 ジェスチャ認識を制御及び変更するためのデリゲートを有するジェスチャ・レコグナイザ

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2014044208A Active JP5938429B2 (ja) 2010-01-26 2014-03-06 ジェスチャ認識を制御及び変更するためのデリゲートを有するジェスチャ・レコグナイザ
JP2016098113A Active JP6201003B2 (ja) 2010-01-26 2016-05-16 ジェスチャ認識を制御及び変更するためのデリゲートを有するジェスチャ・レコグナイザ

Country Status (7)

Country Link
US (3) US9684521B2 (ja)
EP (2) EP3660670B1 (ja)
JP (3) JP5497920B2 (ja)
KR (3) KR101695606B1 (ja)
CN (4) CN103558983B (ja)
AU (3) AU2011209720B2 (ja)
WO (1) WO2011094267A1 (ja)

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US7844915B2 (en) 2007-01-07 2010-11-30 Apple Inc. Application programming interfaces for scrolling operations
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US8416196B2 (en) 2008-03-04 2013-04-09 Apple Inc. Touch event model programming interface
US8375336B2 (en) * 2008-05-23 2013-02-12 Microsoft Corporation Panning content utilizing a drag operation
US8566044B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US9311112B2 (en) 2009-03-16 2016-04-12 Apple Inc. Event recognition
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8638371B2 (en) * 2010-02-12 2014-01-28 Honeywell International Inc. Method of manipulating assets shown on a touch-sensitive display
US20110199386A1 (en) * 2010-02-12 2011-08-18 Honeywell International Inc. Overlay feature to provide user assistance in a multi-touch interactive display environment
US8570286B2 (en) * 2010-02-12 2013-10-29 Honeywell International Inc. Gestures on a touch-sensitive display
US8756522B2 (en) * 2010-03-19 2014-06-17 Blackberry Limited Portable electronic device and method of controlling same
US8552999B2 (en) 2010-06-14 2013-10-08 Apple Inc. Control selection approximation
US8972467B2 (en) 2010-08-31 2015-03-03 Sovanta Ag Method for selecting a data set from a plurality of data sets by means of an input device
US8767019B2 (en) * 2010-08-31 2014-07-01 Sovanta Ag Computer-implemented method for specifying a processing operation
US9870141B2 (en) * 2010-11-19 2018-01-16 Microsoft Technology Licensing, Llc Gesture recognition
US20120131513A1 (en) * 2010-11-19 2012-05-24 Microsoft Corporation Gesture Recognition Training
US20120133579A1 (en) * 2010-11-30 2012-05-31 Microsoft Corporation Gesture recognition management
US8589950B2 (en) * 2011-01-05 2013-11-19 Blackberry Limited Processing user input events in a web browser
US9015641B2 (en) 2011-01-06 2015-04-21 Blackberry Limited Electronic device and method of providing visual notification of a received communication
US9423878B2 (en) 2011-01-06 2016-08-23 Blackberry Limited Electronic device and method of displaying information in response to a gesture
US9471145B2 (en) 2011-01-06 2016-10-18 Blackberry Limited Electronic device and method of displaying information in response to a gesture
US9477311B2 (en) 2011-01-06 2016-10-25 Blackberry Limited Electronic device and method of displaying information in response to a gesture
US9766718B2 (en) 2011-02-28 2017-09-19 Blackberry Limited Electronic device and method of displaying information in response to input
US9465440B2 (en) * 2011-01-06 2016-10-11 Blackberry Limited Electronic device and method of displaying information in response to a gesture
US8978047B2 (en) * 2011-02-03 2015-03-10 Sony Corporation Method and system for invoking an application in response to a trigger event
US8836802B2 (en) 2011-03-21 2014-09-16 Honeywell International Inc. Method of defining camera scan movements using gestures
US9298363B2 (en) 2011-04-11 2016-03-29 Apple Inc. Region activation for touch sensitive surface
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
US20130055164A1 (en) * 2011-08-24 2013-02-28 Sony Ericsson Mobile Communications Ab System and Method for Selecting Objects on a Touch-Sensitive Display of a Mobile Communications Device
US9360940B2 (en) * 2011-11-14 2016-06-07 Google Inc. Multi-pane interface
KR101354234B1 (ko) * 2011-12-05 2014-01-22 (주)이스트소프트 터치 입력 장치에서의 애플리케이션 제공 방법
US9323379B2 (en) * 2011-12-09 2016-04-26 Microchip Technology Germany Gmbh Electronic device with a user interface that has more than two degrees of freedom, the user interface comprising a touch-sensitive surface and contact-free detection means
CN102541603B (zh) * 2011-12-28 2015-12-02 华为终端有限公司 一种应用程序启动方法、系统及终端设备
CA2863824A1 (en) * 2012-02-07 2013-08-15 Blackberry Limited Methods and devices for merging contact records
US9575652B2 (en) * 2012-03-31 2017-02-21 Microsoft Technology Licensing, Llc Instantiable gesture objects
CN105260049B (zh) 2012-05-09 2018-10-23 苹果公司 用于响应于用户接触来显示附加信息的设备、方法和图形用户界面
EP3594797A1 (en) 2012-05-09 2020-01-15 Apple Inc. Device, method, and graphical user interface for providing tactile feedback for operations performed in a user interface
AU2013259630B2 (en) 2012-05-09 2016-07-07 Apple Inc. Device, method, and graphical user interface for transitioning between display states in response to gesture
JP6182207B2 (ja) 2012-05-09 2017-08-16 アップル インコーポレイテッド ユーザインタフェースオブジェクトのアクティブ化状態を変更するためのフィードバックを提供するためのデバイス、方法、及びグラフィカルユーザインタフェース
US8875060B2 (en) * 2012-06-04 2014-10-28 Sap Ag Contextual gestures manager
CN102841804B (zh) * 2012-06-27 2014-12-10 北京三星通信技术研究有限公司 同屏多前台任务处理方法及装置
JP5852928B2 (ja) * 2012-06-27 2016-02-03 株式会社オプティム 所作入力装置、所作入力方法及びプログラム
CN103529976B (zh) * 2012-07-02 2017-09-12 英特尔公司 手势识别系统中的干扰消除
US8874969B2 (en) 2012-07-09 2014-10-28 Microsoft Corporation Independent hit testing
US9021437B2 (en) * 2012-07-13 2015-04-28 Microsoft Technology Licensing, Llc Declarative style rules for default touch behaviors
AU2013290495B2 (en) 2012-07-15 2016-07-07 Apple Inc. Disambiguation of multitouch gesture recognition for 3D interaction
US9507513B2 (en) 2012-08-17 2016-11-29 Google Inc. Displaced double tap gesture
US8782549B2 (en) * 2012-10-05 2014-07-15 Google Inc. Incremental feature-based gesture-keyboard decoding
JP5700020B2 (ja) * 2012-10-10 2015-04-15 コニカミノルタ株式会社 画像処理装置、プログラム及び操作イベント判別方法
US8850350B2 (en) 2012-10-16 2014-09-30 Google Inc. Partial gesture text entry
US9569107B2 (en) * 2012-10-16 2017-02-14 Google Inc. Gesture keyboard with gesture cancellation
US8843845B2 (en) 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
US8701032B1 (en) 2012-10-16 2014-04-15 Google Inc. Incremental multi-word recognition
US8819574B2 (en) 2012-10-22 2014-08-26 Google Inc. Space prediction for text input
WO2014072798A2 (en) 2012-11-08 2014-05-15 Rondish Co., Ltd Bed monitoring pad
US20140141889A1 (en) 2012-11-19 2014-05-22 2343127 Ontario Inc. Systems and Methods for Capture and Use of Local Elements in Gameplay
US20140149916A1 (en) * 2012-11-28 2014-05-29 SoMo Audience Corp. Content manipulation using swipe gesture recognition technology
WO2014105276A1 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for transitioning between touch input to display output relationships
US8832589B2 (en) 2013-01-15 2014-09-09 Google Inc. Touch keyboard using language and spatial models
US9703477B2 (en) * 2013-02-19 2017-07-11 Facebook, Inc. Handling overloaded gestures
JP5862587B2 (ja) 2013-03-25 2016-02-16 コニカミノルタ株式会社 ジェスチャ判別装置、ジェスチャ判別方法、およびコンピュータプログラム
US9207849B2 (en) 2013-03-29 2015-12-08 Microsoft Technology Licensing, Llc Start and application navigation
US9063576B1 (en) 2013-04-04 2015-06-23 Amazon Technologies, Inc. Managing gesture input information
US9081500B2 (en) 2013-05-03 2015-07-14 Google Inc. Alternative hypothesis error correction for gesture typing
US9733716B2 (en) * 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US20140372935A1 (en) * 2013-06-14 2014-12-18 Microsoft Corporation Input Processing based on Input Context
US20140372923A1 (en) * 2013-06-14 2014-12-18 Microsoft Corporation High Performance Touch Drag and Drop
US20140372903A1 (en) * 2013-06-14 2014-12-18 Microsoft Corporation Independent Hit Testing for Touchpad Manipulations and Double-Tap Zooming
WO2015015287A1 (en) * 2013-08-01 2015-02-05 Rondish Co. Ltd Intelligent reset system and method for patient monitoring pad
US9766855B2 (en) 2013-09-10 2017-09-19 Avigilon Corporation Method and apparatus for controlling surveillance system with gesture and/or audio commands
US9582737B2 (en) * 2013-09-13 2017-02-28 Qualcomm Incorporated Context-sensitive gesture classification
DE102014004675A1 (de) * 2014-03-31 2015-10-01 Audi Ag Gestenbewertungssystem, Verfahren zur Gestenbewertung und Fahrzeug
US9430142B2 (en) * 2014-07-17 2016-08-30 Facebook, Inc. Touch-based gesture recognition and application navigation
KR20160029525A (ko) * 2014-09-05 2016-03-15 삼성전자주식회사 사용자 인터페이스를 제어하는 방법 및 이를 제공하는 전자 장치
KR102238535B1 (ko) * 2014-10-01 2021-04-09 엘지전자 주식회사 이동 단말기 및 그 제어 방법
US20160117080A1 (en) * 2014-10-22 2016-04-28 Microsoft Corporation Hit-test to determine enablement of direct manipulations in response to user actions
US10095396B2 (en) 2015-03-08 2018-10-09 Apple Inc. Devices, methods, and graphical user interfaces for interacting with a control object while dragging another object
US9639184B2 (en) 2015-03-19 2017-05-02 Apple Inc. Touch input cursor manipulation
US9860451B2 (en) 2015-06-07 2018-01-02 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US9891811B2 (en) 2015-06-07 2018-02-13 Apple Inc. Devices and methods for navigating between user interfaces
US10235035B2 (en) 2015-08-10 2019-03-19 Apple Inc. Devices, methods, and graphical user interfaces for content navigation and manipulation
US9880735B2 (en) 2015-08-10 2018-01-30 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
KR102468120B1 (ko) * 2016-01-27 2022-11-22 삼성전자 주식회사 뷰 계층(뷰 레이어)들을 이용하여 입력을 처리하는 방법 및 전자장치
JP2017149225A (ja) 2016-02-23 2017-08-31 京セラ株式会社 車両用コントロールユニット
WO2018213414A1 (en) * 2017-05-16 2018-11-22 Apple Inc. Devices, methods, and graphical user interfaces for touch input processing
DK179979B1 (en) 2017-05-16 2019-11-27 Apple Inc. DEVICES, METHODS, AND GRAPHICAL USER INTERFACES FOR TOUCH INPUT PROCESSING
IT201700088977A1 (it) 2017-08-02 2019-02-02 St Microelectronics Srl Procedimento per il riconoscimento di gesti, circuito, dispositivo e prodotto informatico corrispondenti
CN107861683B (zh) * 2017-11-07 2020-08-21 苏州九号电子科技有限公司 无人机无按钮操作方法及装置
CN108379843B (zh) * 2018-03-16 2022-05-31 网易(杭州)网络有限公司 虚拟对象控制方法与装置
CN108833982B (zh) * 2018-05-10 2021-06-11 北京酷我科技有限公司 一种视频滑动快进和页面滚动兼容的方法
US10921975B2 (en) * 2018-06-03 2021-02-16 Apple Inc. Devices, methods, and user interfaces for conveying proximity-based and contact-based input events
CN109144392B (zh) * 2018-08-22 2021-04-16 北京奇艺世纪科技有限公司 一种处理手势冲突的方法、装置及电子设备
WO2020263250A1 (en) 2019-06-26 2020-12-30 Google Llc Radar-based authentication status feedback
CN110362264B (zh) * 2019-06-28 2022-06-10 武汉海微科技有限公司 一种基于触摸板的动态手势识别方法、装置和系统
CN112181265B (zh) 2019-07-04 2022-04-15 北京小米移动软件有限公司 一种触控信号处理方法、装置及介质
CN110490062A (zh) * 2019-07-11 2019-11-22 武汉科技大学 一种基于多视图的双手手势识别方法
US11385722B2 (en) * 2019-07-26 2022-07-12 Google Llc Robust radar-based gesture-recognition by user equipment
EP3966662B1 (en) 2019-07-26 2024-01-10 Google LLC Reducing a state based on imu and radar
EP4004686A1 (en) 2019-07-26 2022-06-01 Google LLC Authentication management through imu and radar
US11868537B2 (en) 2019-07-26 2024-01-09 Google Llc Robust radar-based gesture-recognition by user equipment
US11467672B2 (en) 2019-08-30 2022-10-11 Google Llc Context-sensitive control of radar-based gesture-recognition
WO2021040745A1 (en) 2019-08-30 2021-03-04 Google Llc Input methods for mobile devices
KR102479012B1 (ko) 2019-08-30 2022-12-20 구글 엘엘씨 일시정지된 레이더 제스처에 대한 시각적 표시자
CN110995919B (zh) * 2019-11-08 2021-07-20 维沃移动通信有限公司 一种消息处理方法和电子设备
CN110989888B (zh) * 2019-12-13 2021-03-02 广州方硅信息技术有限公司 一种触摸事件分发方法及设备
CN114327109B (zh) 2020-09-30 2023-12-19 明基智能科技(上海)有限公司 触控操作方法及触控操作系统
CN112286417B (zh) * 2020-11-03 2022-01-18 珠海格力电器股份有限公司 一种终端操控方法、装置、设备和计算机可读存储介质
CN114546145B (zh) 2020-11-24 2024-03-01 明基智能科技(上海)有限公司 游标控制方法及应用其的触控显示装置
CN116166143B (zh) * 2023-04-25 2023-07-04 麒麟软件有限公司 全局触摸手势识别方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006040271A (ja) * 2004-06-28 2006-02-09 Microsoft Corp ソフトウェアアプリケーションと対話するためのジェスチャの認識および使用
JP2006085703A (ja) * 2004-09-13 2006-03-30 Microsoft Corp フリックジェスチャ
US20080168402A1 (en) * 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
WO2009111189A1 (en) * 2008-03-04 2009-09-11 Apple Inc. Touch event model
US20100156804A1 (en) * 2008-12-19 2010-06-24 Cypress Semiconductor Corporation Multi-finger sub-gesture reporting for a user interface device
JP2010524095A (ja) * 2008-03-04 2010-07-15 アップル インコーポレイテッド ウェブページのためのタッチイベント処理
US20110167391A1 (en) * 2010-01-06 2011-07-07 Brian Momeyer User interface methods and systems for providing force-sensitive input

Family Cites Families (566)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1517521A (en) 1975-09-01 1978-07-12 Tilgate Pallets Ltd Pallets
US4455452A (en) * 1982-09-13 1984-06-19 Touch Activated Switch Arrays, Inc. Touch activated controller for generating X-Y output information
US4674066A (en) 1983-02-18 1987-06-16 Houghton Mifflin Company Textual database system using skeletonization and phonetic replacement to retrieve words matching or similar to query words
EP0141576B1 (en) 1983-10-21 1989-10-18 Dijet Industrial Co., Ltd. Cutter blade
JPH02140822A (ja) 1988-11-22 1990-05-30 Nec Corp マルチウインドディスプレイ方式
US5252951A (en) 1989-04-28 1993-10-12 International Business Machines Corporation Graphical user interface with gesture recognition in a multiapplication environment
JP2862626B2 (ja) 1990-03-22 1999-03-03 株式会社東芝 電子辞書及び情報検索方法
US5046434A (en) 1990-05-02 1991-09-10 Penda Corporation Plastic reinforced thermoformed pallet
JP3145735B2 (ja) 1991-07-17 2001-03-12 富士通株式会社 入力制御方式
JPH05197573A (ja) 1991-08-26 1993-08-06 Hewlett Packard Co <Hp> タスク指向パラダイムによるタスク管理システム
JP2827612B2 (ja) 1991-10-07 1998-11-25 富士通株式会社 タッチパネル装置およびタッチパネル装置におけるオブジェクトの表示方法。
US5233547A (en) 1991-11-12 1993-08-03 Ncr Corporation Electronic checking account apparatus and method having a digitizer to receive information as a check is being written
JP2787523B2 (ja) 1992-04-15 1998-08-20 沖電気工業株式会社 キーボード
US5488204A (en) 1992-06-08 1996-01-30 Synaptics, Incorporated Paintbrush stylus for capacitive touch sensor pad
US5880411A (en) 1992-06-08 1999-03-09 Synaptics, Incorporated Object position detector with edge motion feature and gesture recognition
US7084859B1 (en) 1992-09-18 2006-08-01 Pryor Timothy R Programmable tactile touch screen displays and man-machine interfaces for improved vehicle instrumentation and telematics
JP2999335B2 (ja) 1992-11-05 2000-01-17 シャープ株式会社 ジェスチャー処理装置およびジェスチャー処理方法
US5583543A (en) 1992-11-05 1996-12-10 Sharp Kabushiki Kaisha Pen input processing apparatus
US5612719A (en) 1992-12-03 1997-03-18 Apple Computer, Inc. Gesture sensitive buttons for graphical user interfaces
US5463725A (en) 1992-12-31 1995-10-31 International Business Machines Corp. Data processing system graphical user interface which emulates printed material
US5513309A (en) * 1993-01-05 1996-04-30 Apple Computer, Inc. Graphic editor user interface for a pointer-based computer system
JP3147572B2 (ja) 1993-03-22 2001-03-19 株式会社日立製作所 プログラム生成方法
DE4406668C2 (de) * 1993-04-27 1996-09-12 Hewlett Packard Co Verfahren und Vorrichtung zum Betreiben eines berührungsempfindlichen Anzeigegeräts
JP2986047B2 (ja) 1993-04-29 1999-12-06 インターナショナル・ビジネス・マシーンズ・コーポレイション ディジタル入力用表示装置並びに入力処理装置および方法
DE69432199T2 (de) 1993-05-24 2004-01-08 Sun Microsystems, Inc., Mountain View Graphische Benutzerschnittstelle mit Verfahren zur Schnittstellebildung mit fernsteuernden Einrichtungen
US6035343A (en) * 1993-06-11 2000-03-07 Fujitsu Limited Method for executing software formed of software components and a system for executing such software
US5818455A (en) * 1993-07-21 1998-10-06 Xerox Corporation Method and apparatus for operating on the model data structure of an image to produce human perceptible output using a viewing operation region having explicit multiple regions
US5581670A (en) 1993-07-21 1996-12-03 Xerox Corporation User interface having movable sheet with click-through tools
CA2124505C (en) 1993-07-21 2000-01-04 William A. S. Buxton User interface having simultaneously movable tools and cursor
US5627959A (en) * 1993-09-20 1997-05-06 Oracle Corporation Method for manipulating graphic objects
US5564112A (en) 1993-10-14 1996-10-08 Xerox Corporation System and method for generating place holders to temporarily suspend execution of a selected command
US5454960A (en) 1993-11-10 1995-10-03 Advanced Building Technologies, Inc. Oil change and recycling system
US5534893A (en) 1993-12-15 1996-07-09 Apple Computer, Inc. Method and apparatus for using stylus-tablet input in a computer system
US5588072A (en) 1993-12-22 1996-12-24 Canon Kabushiki Kaisha Method and apparatus for selecting blocks of image data from image data having both horizontally- and vertically-oriented blocks
US5686940A (en) * 1993-12-24 1997-11-11 Rohm Co., Ltd. Display apparatus
US5566337A (en) 1994-05-13 1996-10-15 Apple Computer, Inc. Method and apparatus for distributing events in an operating system
JP2939119B2 (ja) 1994-05-16 1999-08-25 シャープ株式会社 手書き文字入力表示装置および方法
US5570113A (en) 1994-06-29 1996-10-29 International Business Machines Corporation Computer based pen system and method for automatically cancelling unwanted gestures and preventing anomalous signals as inputs to such system
US5510061A (en) 1994-07-26 1996-04-23 Norton Chemical Process Products Corp. Non-welded support plate member
CA2154951C (en) 1994-09-12 2004-05-25 John E. Warnock Method and apparatus for viewing electronic documents
ES2115166T3 (es) 1994-11-15 1998-06-16 Uop Inc Separacion por adsorcion mejorada de meta-xileno a partir de hidrocarburos aromaticos.
US5495566A (en) 1994-11-22 1996-02-27 Microsoft Corporation Scrolling contents of a window
JP2944439B2 (ja) * 1994-12-27 1999-09-06 シャープ株式会社 手書き文字入力装置および方法
JPH08307954A (ja) 1995-05-12 1996-11-22 Sony Corp 座標入力装置および方法、並びに情報処理装置
US5708460A (en) * 1995-06-02 1998-01-13 Avi Systems, Inc. Touch screen
US6496182B1 (en) 1995-06-07 2002-12-17 Microsoft Corporation Method and system for providing touch-sensitive screens for the visually impaired
JPH0944285A (ja) 1995-07-28 1997-02-14 Hitachi Ltd 情報処理装置
JPH0969037A (ja) 1995-08-31 1997-03-11 Sharp Corp データ処理装置
US5655094A (en) 1995-09-29 1997-08-05 International Business Machines Corporation Pop up scroll bar
JP3636792B2 (ja) 1995-10-18 2005-04-06 株式会社リコー ペン先座標入力装置
US5676064A (en) 1996-04-22 1997-10-14 Shuert; Lyle H. Pallet and pallet package
JP3839877B2 (ja) 1996-07-05 2006-11-01 キヤノン株式会社 手書きパターン処理装置及び手書きパターン処理方法
US5745116A (en) 1996-09-09 1998-04-28 Motorola, Inc. Intuitive gesture-based graphical user interface
US5903902A (en) 1996-09-09 1999-05-11 Design Intelligence, Inc. Design engine with tree and component structure
US5995083A (en) 1996-11-20 1999-11-30 Alps Electric Co., Ltd. Coordinates input apparatus
JP3889466B2 (ja) 1996-11-25 2007-03-07 ソニー株式会社 文章入力装置及び方法
US5917477A (en) 1997-02-28 1999-06-29 Samsung Electronics Co., Ltd. Touch screen input apparatus for chip mounter, chip mounter including the same and method for controlling the chip mounter
US6141018A (en) 1997-03-12 2000-10-31 Microsoft Corporation Method and system for displaying hypertext documents with visual effects
US5999176A (en) 1997-04-04 1999-12-07 International Business Machines Corporation Method to provide a single scrolling control for a multi-window interface
JPH1185354A (ja) * 1997-09-04 1999-03-30 Internatl Business Mach Corp <Ibm> キーボード組込み型座標指示装置、キーボード・ユニット、及び情報処理機器
US9098297B2 (en) 1997-05-08 2015-08-04 Nvidia Corporation Hardware accelerator for an object-oriented programming language
US6049326A (en) 1997-05-12 2000-04-11 Siemens Information And Communication Networks, Inc. System and method for dual browser modes
US5983190A (en) * 1997-05-19 1999-11-09 Microsoft Corporation Client server animation system for managing interactive user interface characters
FI115689B (fi) 1997-05-21 2005-06-15 Nokia Corp Menetelmä ja järjestely matkaviestimen näytöllä esitettävän tiedon vierittämiseksi
US6028602A (en) 1997-05-30 2000-02-22 Telefonaktiebolaget Lm Ericsson Method for managing contents of a hierarchical data model
JP3968477B2 (ja) 1997-07-07 2007-08-29 ソニー株式会社 情報入力装置及び情報入力方法
US6034688A (en) 1997-09-15 2000-03-07 Sony Corporation Scrolling navigational display system
US6377965B1 (en) 1997-11-07 2002-04-23 Microsoft Corporation Automatic word completion system for partially entered data
IL136465A0 (en) 1997-12-01 2001-06-14 Cedara Software Corp Architecture for an application framework
WO1999031571A1 (en) 1997-12-16 1999-06-24 Microsoft Corporation Soft input panel system and method
EP1717677B1 (en) 1998-01-26 2015-06-17 Apple Inc. Method and apparatus for integrating manual input
US7840912B2 (en) 2006-01-30 2010-11-23 Apple Inc. Multi-touch gesture dictionary
US9292111B2 (en) 1998-01-26 2016-03-22 Apple Inc. Gesturing with a multipoint sensing device
US20070177804A1 (en) 2006-01-30 2007-08-02 Apple Computer, Inc. Multi-touch gesture dictionary
US7834855B2 (en) 2004-08-25 2010-11-16 Apple Inc. Wide touchpad on a portable computer
US7844914B2 (en) * 2004-07-30 2010-11-30 Apple Inc. Activating virtual keys of a touch-screen virtual keyboard
US7614008B2 (en) 2004-07-30 2009-11-03 Apple Inc. Operation of a computer with touch screen interface
US7663607B2 (en) 2004-05-06 2010-02-16 Apple Inc. Multipoint touchscreen
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US20040080541A1 (en) 1998-03-20 2004-04-29 Hisashi Saiga Data displaying device
US7346850B2 (en) 1998-06-12 2008-03-18 Cygnus Systems, Inc. System and method for iconic software environment management
US6429846B2 (en) 1998-06-23 2002-08-06 Immersion Corporation Haptic feedback for touchpads and other touch controls
US6570594B1 (en) * 1998-06-30 2003-05-27 Sun Microsystems, Inc. User interface with non-intrusive display element
US6061063A (en) 1998-06-30 2000-05-09 Sun Microsystems, Inc. Method and apparatus for providing feedback while scrolling
US6188391B1 (en) 1998-07-09 2001-02-13 Synaptics, Inc. Two-layer capacitive touchpad and method of making same
US7559039B2 (en) 1998-07-14 2009-07-07 Brad Ridgley Method and device for finding, collecting and acting upon units of information
CA2244431C (en) 1998-07-30 2002-02-19 Ibm Canada Limited-Ibm Canada Limitee Touchscreen keyboard support for multi-byte character languages
US7036094B1 (en) 1998-08-10 2006-04-25 Cybernet Systems Corporation Behavior recognition system
US6068124A (en) 1998-08-27 2000-05-30 Nanya Plastics Plastic pallet and separator for packaging yarn spools
US6628835B1 (en) 1998-08-31 2003-09-30 Texas Instruments Incorporated Method and system for defining and recognizing complex events in a video sequence
US20020018051A1 (en) 1998-09-15 2002-02-14 Mona Singh Apparatus and method for moving objects on a touchscreen display
US6985178B1 (en) * 1998-09-30 2006-01-10 Canon Kabushiki Kaisha Camera control system, image pick-up server, client, control method and storage medium therefor
JP4159674B2 (ja) 1998-10-22 2008-10-01 富士通株式会社 オブジェクト指向業務システムおよび方法
JP2000163443A (ja) 1998-11-25 2000-06-16 Seiko Epson Corp 携帯情報機器及び情報記憶媒体
JP4542637B2 (ja) 1998-11-25 2010-09-15 セイコーエプソン株式会社 携帯情報機器及び情報記憶媒体
US8938688B2 (en) 1998-12-04 2015-01-20 Nuance Communications, Inc. Contextual prediction of user words and user actions
EA200100654A1 (ru) 1998-12-11 2001-12-24 Паратек Майкровэйв, Инк. Электрически перестраиваемые фильтры с диэлектрическими варакторами
US6963937B1 (en) * 1998-12-17 2005-11-08 International Business Machines Corporation Method and apparatus for providing configurability and customization of adaptive user-input filtration
US6259436B1 (en) 1998-12-22 2001-07-10 Ericsson Inc. Apparatus and method for determining selection of touchable items on a computer touchscreen by an imprecise touch
US6643824B1 (en) 1999-01-15 2003-11-04 International Business Machines Corporation Touch screen region assist for hypertext links
US7469381B2 (en) 2007-01-07 2008-12-23 Apple Inc. List scrolling and document translation, scaling, and rotation on a touch-screen display
JP2000222130A (ja) 1999-02-02 2000-08-11 Toshiba Corp 入力装置および方法および記憶媒体
US20060061551A1 (en) 1999-02-12 2006-03-23 Vega Vista, Inc. Motion detection and tracking system to control navigation and display of portable displays including on-chip gesture detection
US6486896B1 (en) 1999-04-07 2002-11-26 Apple Computer, Inc. Scalable scroll controller
DE60001496T2 (de) 1999-04-21 2003-12-18 Barrie Weatherall Stabilisiervorrichtung für leitern
JP4939682B2 (ja) 1999-04-27 2012-05-30 エーユー オプトロニクス コーポレイション 表示装置
US7164413B2 (en) 1999-05-19 2007-01-16 Digimarc Corporation Enhanced input peripheral
US6714936B1 (en) * 1999-05-25 2004-03-30 Nevin, Iii Rocky Harry W. Method and apparatus for displaying data stored in linked nodes
AUPQ439299A0 (en) 1999-12-01 1999-12-23 Silverbrook Research Pty Ltd Interface system
US7286115B2 (en) 2000-05-26 2007-10-23 Tegic Communications, Inc. Directional input system with automatic correction
US7030863B2 (en) 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US6631501B1 (en) 1999-06-30 2003-10-07 Microsoft Corporation Method and system for automatic type and replace of characters in a sequence of characters
US6639584B1 (en) 1999-07-06 2003-10-28 Chuang Li Methods and apparatus for controlling a portable electronic device using a touchpad
US6335725B1 (en) 1999-07-14 2002-01-01 Hewlett-Packard Company Method of partitioning a touch screen for data input
JP2001027924A (ja) 1999-07-14 2001-01-30 Sharp Corp 表示画面を用いる入力装置
US6636242B2 (en) * 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6448986B1 (en) 1999-09-07 2002-09-10 Spotware Technologies Llc Method and system for displaying graphical objects on a display screen
US6664989B1 (en) 1999-10-18 2003-12-16 Honeywell International Inc. Methods and apparatus for graphical display interaction
KR100747421B1 (ko) 1999-10-20 2007-08-09 코닌클리케 필립스 일렉트로닉스 엔.브이. 영상 콜렉션을 브라우징하는 장치 및 방법
JP2001134382A (ja) 1999-11-04 2001-05-18 Sony Corp 図形処理装置
JP2001167227A (ja) 1999-12-07 2001-06-22 Hitachi Ltd 情報端末装置
US6778992B1 (en) * 1999-12-21 2004-08-17 Lockstream Corporation Flexible and hierarchical user interfaces defined using a data definition language
US6664991B1 (en) 2000-01-06 2003-12-16 Microsoft Corporation Method and apparatus for providing context menus on a pen-based device
US6809724B1 (en) 2000-01-18 2004-10-26 Seiko Epson Corporation Display apparatus and portable information processing apparatus
US6820237B1 (en) 2000-01-21 2004-11-16 Amikanow! Corporation Apparatus and method for context-based highlighting of an electronic document
US6856326B1 (en) 2000-01-28 2005-02-15 International Business Machines Corporation Smooth scrolling system and method
WO2001056007A1 (en) 2000-01-28 2001-08-02 Intersense, Inc. Self-referenced tracking
JP4803883B2 (ja) 2000-01-31 2011-10-26 キヤノン株式会社 位置情報処理装置及びその方法及びそのプログラム。
US7138983B2 (en) 2000-01-31 2006-11-21 Canon Kabushiki Kaisha Method and apparatus for detecting and interpreting path of designated position
US6590595B1 (en) * 2000-02-08 2003-07-08 Sun Microsystems, Inc. Mechanism for providing intuitive scrolling feedback
US6922810B1 (en) 2000-03-07 2005-07-26 Microsoft Corporation Grammar-based automatic data completion and suggestion for user input
CA2402543C (en) * 2000-03-17 2010-10-26 Vizible.Com Inc. A three dimensional spatial user interface
US7142205B2 (en) 2000-03-29 2006-11-28 Autodesk, Inc. Single gesture map navigation graphical user interface for a personal digital assistant
EP1273154A2 (en) 2000-03-30 2003-01-08 QUALCOMM Incorporated Method and apparatus for notifying a mobile station application of specified events
JP4124402B2 (ja) 2000-03-31 2008-07-23 株式会社リコー 画像入力装置
AU2001251202A1 (en) 2000-04-07 2001-10-23 Rsa Security, Inc. System and method for authenticating a user
US6765557B1 (en) 2000-04-10 2004-07-20 Interlink Electronics, Inc. Remote control having touch pad to screen mapping
US7009626B2 (en) 2000-04-14 2006-03-07 Picsel Technologies Limited Systems and methods for generating visual representations of graphical data and digital document processing
US6459770B1 (en) 2000-04-19 2002-10-01 Analogic Corporation Backlash-resistant drive assembly for collimator in a CT scanner
JP2001299733A (ja) 2000-04-27 2001-10-30 Konica Corp Pci放射線画像処理装置、pci放射線画像検出処理装置、pci放射線画像出力装置及びpci画像診断支援装置
US6559869B1 (en) 2000-05-04 2003-05-06 Microsoft Corporation Adaptive auto-scrolling merge for hand written input
EP1285330B1 (en) 2000-05-11 2006-08-30 Nes Stewart Irvine Zeroclick
US6446083B1 (en) * 2000-05-12 2002-09-03 Vastvideo, Inc. System and method for classifying media items
US6912694B1 (en) 2000-06-28 2005-06-28 Intel Corporation Providing a scrolling function for a multiple frame web page
US6677965B1 (en) 2000-07-13 2004-01-13 International Business Machines Corporation Rubber band graphical user interface control
GB0017793D0 (en) 2000-07-21 2000-09-06 Secr Defence Human computer interface
JP2002041242A (ja) 2000-07-27 2002-02-08 Nec Corp 描画フェードアウト機能付き入力装置と方法
US6714221B1 (en) 2000-08-03 2004-03-30 Apple Computer, Inc. Depicting and setting scroll amount
US20020015064A1 (en) 2000-08-07 2002-02-07 Robotham John S. Gesture-based user interface to multi-level and multi-modal sets of bit-maps
US6704024B2 (en) 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
JP2002062983A (ja) 2000-08-21 2002-02-28 Hitachi Ltd ポインティングデバイス
US6791530B2 (en) 2000-08-29 2004-09-14 Mitsubishi Electric Research Laboratories, Inc. Circular graphical user interfaces
US6707449B2 (en) 2000-08-30 2004-03-16 Microsoft Corporation Manual controlled scrolling
US6912462B2 (en) 2000-08-31 2005-06-28 Sony Corporation Information processing apparatus, information processing method and program storage media
US20020138617A1 (en) 2000-09-06 2002-09-26 Jacob Christfort Providing content from multiple services
US6757673B2 (en) 2000-10-09 2004-06-29 Town Compass Llc Displaying hierarchial relationship of data accessed via subject index
US7761541B1 (en) 2000-10-25 2010-07-20 Nortel Networks Limited Service enabling technology
US6735583B1 (en) * 2000-11-01 2004-05-11 Getty Images, Inc. Method and system for classifying and locating media content
US7072501B2 (en) 2000-11-22 2006-07-04 R2 Technology, Inc. Graphical user interface for display of anatomical information
US7184796B2 (en) 2000-12-04 2007-02-27 International Business Machines Corporation Personal communication device having a built in projection display
US7240291B2 (en) 2000-12-21 2007-07-03 Xerox Corporation Methods, systems, and computer program products for display of information relating to a virtual three-dimensional book
US6976172B2 (en) 2000-12-28 2005-12-13 Intel Corporation System and method for protected messaging
US6839721B2 (en) 2001-01-12 2005-01-04 Hewlett-Packard Development Company, L.P. Integration of a database into file management software for protecting, tracking, and retrieving data
US6677932B1 (en) 2001-01-28 2004-01-13 Finger Works, Inc. System and method for recognizing touch typing under limited tactile feedback conditions
US7030861B1 (en) * 2001-02-10 2006-04-18 Wayne Carl Westerman System and method for packing multi-touch gestures onto a hand
US6570557B1 (en) 2001-02-10 2003-05-27 Finger Works, Inc. Multi-touch system and method for emulating modifier keys via fingertip chords
JP3881179B2 (ja) 2001-02-14 2007-02-14 三菱電機株式会社 ユーザインタフェース設計装置
US20040027398A1 (en) * 2001-02-15 2004-02-12 Denny Jaeger Intuitive graphic user interface with universal tools
US6972776B2 (en) 2001-03-20 2005-12-06 Agilent Technologies, Inc. Scrolling method using screen pointing device
GB2373778B (en) 2001-03-30 2003-08-06 Robin Lewis Corner elements for packaging
US6741996B1 (en) 2001-04-18 2004-05-25 Microsoft Corporation Managing user clips
JP2004533641A (ja) 2001-05-02 2004-11-04 ビットストリーム インコーポレーティッド 非線形カラー・バランスを使用して副画素最適化フォント・ビットマップを生成及び表示するための方法、システム、及びプログラム
US20020194589A1 (en) 2001-05-08 2002-12-19 Cristofalo Michael Technique for optimizing the delivery of advertisements and other programming segments by making bandwidth tradeoffs
US20020171675A1 (en) 2001-05-15 2002-11-21 International Business Machines Corporation Method and system for graphical user interface (GUI) widget having user-selectable mass
US20050024341A1 (en) * 2001-05-16 2005-02-03 Synaptics, Inc. Touch screen with user interface enhancement
US7730401B2 (en) 2001-05-16 2010-06-01 Synaptics Incorporated Touch screen with user interface enhancement
US6498590B1 (en) 2001-05-24 2002-12-24 Mitsubishi Electric Research Laboratories, Inc. Multi-user touch surface
TW521205B (en) 2001-06-05 2003-02-21 Compal Electronics Inc Touch screen capable of controlling amplification with pressure
US6868383B1 (en) 2001-07-12 2005-03-15 At&T Corp. Systems and methods for extracting meaning from multimodal inputs using finite-state devices
US6985137B2 (en) * 2001-08-13 2006-01-10 Nokia Mobile Phones Ltd. Method for preventing unintended touch pad input due to accidental touching
US6661409B2 (en) 2001-08-22 2003-12-09 Motorola, Inc. Automatically scrolling handwritten input user interface for personal digital assistants and the like
US6690365B2 (en) 2001-08-29 2004-02-10 Microsoft Corporation Automatic scrolling
US6972749B2 (en) * 2001-08-29 2005-12-06 Microsoft Corporation Touch-sensitive device for scrolling a document on a display
US6907575B2 (en) 2001-09-06 2005-06-14 Danger, Inc. Method of scrolling a display window
JP2003173237A (ja) 2001-09-28 2003-06-20 Ricoh Co Ltd 情報入出力システム、プログラム及び記憶媒体
US7254775B2 (en) 2001-10-03 2007-08-07 3M Innovative Properties Company Touch panel system and method for distinguishing multiple touch inputs
US20030071850A1 (en) * 2001-10-12 2003-04-17 Microsoft Corporation In-place adaptive handwriting input method and system
US7046230B2 (en) 2001-10-22 2006-05-16 Apple Computer, Inc. Touch pad handheld device
US7345671B2 (en) 2001-10-22 2008-03-18 Apple Inc. Method and apparatus for use of rotational user inputs
TW528981B (en) * 2001-10-25 2003-04-21 Compal Electronics Inc Portable computer and related method for preventing input interruption by write-tracking input region
US7009599B2 (en) 2001-11-20 2006-03-07 Nokia Corporation Form factor for portable device
CA2366183A1 (en) 2001-12-21 2003-06-21 Ibm Canada Limited-Ibm Canada Limitee Dynamic status tree facility
US6690387B2 (en) 2001-12-28 2004-02-10 Koninklijke Philips Electronics N.V. Touch-screen image scrolling system and method
US7414616B2 (en) 2002-01-03 2008-08-19 Mahesh Jayachandra User-friendly Brahmi-derived Hindi keyboard
US6957392B2 (en) 2002-01-16 2005-10-18 Laszlo Systems, Inc. Interface engine providing a continuous user interface
GB0201074D0 (en) 2002-01-18 2002-03-06 3G Lab Ltd Graphic user interface for data processing device
US7603627B2 (en) 2002-02-05 2009-10-13 Microsoft Corporation Systems and methods for creating and managing graphical user interface lists
JP3951727B2 (ja) 2002-02-06 2007-08-01 松下電器産業株式会社 情報処理装置
US7075512B1 (en) 2002-02-07 2006-07-11 Palmsource, Inc. Method and system for navigating a display screen for locating a desired item of information
WO2003081458A1 (en) 2002-03-19 2003-10-02 America Online, Inc. Controlling content display
US20030184525A1 (en) 2002-03-29 2003-10-02 Mitac International Corp. Method and apparatus for image processing
JP2003296024A (ja) 2002-04-01 2003-10-17 Nec Engineering Ltd タッチパネル制御方式
US7466307B2 (en) 2002-04-11 2008-12-16 Synaptics Incorporated Closed-loop sensor on a solid-state object position detector
US20030197689A1 (en) 2002-04-23 2003-10-23 May Gregory J. Input device that allows multiple touch key input
TWI238348B (en) 2002-05-13 2005-08-21 Kyocera Corp Portable information terminal, display control device, display control method, and recording media
US7203911B2 (en) 2002-05-13 2007-04-10 Microsoft Corporation Altering a display on a viewing device based upon a user proximity to the viewing device
US8166388B2 (en) 2002-05-14 2012-04-24 Microsoft Corporation Overlaying electronic ink
US20030214553A1 (en) 2002-05-14 2003-11-20 Microsoft Corporation Ink regions in an overlay control
US20030214531A1 (en) 2002-05-14 2003-11-20 Microsoft Corporation Ink input mechanisms
US7158675B2 (en) 2002-05-14 2007-01-02 Microsoft Corporation Interfacing with ink
KR100980902B1 (ko) 2002-05-16 2010-09-07 소니 주식회사 입력 방법 및 입력 장치
US7519918B2 (en) 2002-05-30 2009-04-14 Intel Corporation Mobile virtual desktop
FI20021655A (fi) 2002-06-19 2003-12-20 Nokia Corp Menetelmä lukituksen avaamiseksi ja kannettava elektroninen laite
US7023427B2 (en) 2002-06-28 2006-04-04 Microsoft Corporation Method and system for detecting multiple touches on a touch-sensitive screen
US7062090B2 (en) * 2002-06-28 2006-06-13 Microsoft Corporation Writing guide for a free-form document editor
US11275405B2 (en) 2005-03-04 2022-03-15 Apple Inc. Multi-functional hand-held device
JP4338364B2 (ja) 2002-07-02 2009-10-07 ソニー株式会社 携帯情報通信端末、プログラムおよび該プログラムを記録した記録媒体
TW591488B (en) 2002-08-01 2004-06-11 Tatung Co Window scrolling method and device thereof
EP1394692A1 (en) 2002-08-05 2004-03-03 Alcatel Method, terminal, browser application, and mark-up language for multimodal interaction between a user and a terminal
US20040021698A1 (en) 2002-08-05 2004-02-05 Baldwin Amanda K. Intuitive touchscreen interface for a multifunction device and method therefor
US7263721B2 (en) 2002-08-09 2007-08-28 International Business Machines Corporation Password protection
JP2004084111A (ja) 2002-08-26 2004-03-18 Tsudakoma Corp 織機の情報表示装置
US7739604B1 (en) 2002-09-25 2010-06-15 Apple Inc. Method and apparatus for managing windows
US7002560B2 (en) 2002-10-04 2006-02-21 Human Interface Technologies Inc. Method of combining data entry of handwritten symbols with displayed character data
GB0223883D0 (en) 2002-10-15 2002-11-20 Seamless Display Ltd Visual display screen arrangement
US7281248B2 (en) * 2002-11-19 2007-10-09 Microsoft Corporation Virtualized and realized user interface controls
EP1422599B1 (en) 2002-11-20 2006-07-05 Nokia Corporation Method and user interface for entering characters
CA2414047A1 (en) 2002-12-09 2004-06-09 Corel Corporation System and method of extending scalable vector graphics capabilities
US6903927B2 (en) 2002-12-17 2005-06-07 Nokia Corporation Convertible mobile computing device
US20040125136A1 (en) 2002-12-30 2004-07-01 Jukka Wallenius Provision of services through a display system
US20040135817A1 (en) * 2003-01-14 2004-07-15 Daughtery Joey L. Interface for selecting and performing operations on objects
US7117453B2 (en) 2003-01-21 2006-10-03 Microsoft Corporation Media frame object visualization system
US20040225965A1 (en) 2003-05-06 2004-11-11 Microsoft Corporation Insertion location tracking for controlling a user interface
US7490296B2 (en) 2003-01-31 2009-02-10 Microsoft Corporation Utility object for specialized data entry
US20040155888A1 (en) 2003-02-11 2004-08-12 Padgitt David Gary Method for displaying the contents of a collection of media objects
US20040160419A1 (en) 2003-02-11 2004-08-19 Terradigital Systems Llc. Method for entering alphanumeric characters into a graphical user interface
US7894177B2 (en) 2005-12-29 2011-02-22 Apple Inc. Light activated hold switch
US7088374B2 (en) 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US7187801B2 (en) 2003-03-31 2007-03-06 Microsoft Corporation Multiple handwriting recognition engine selection
KR100465969B1 (ko) 2003-04-11 2005-01-13 (주)모비솔 손가락 표면을 이용한 소형 포인팅 장치
US7098776B2 (en) 2003-04-16 2006-08-29 Massachusetts Institute Of Technology Methods and apparatus for vibrotactile communication
US8484576B2 (en) * 2003-04-17 2013-07-09 Supersonic Aerospace International, Llc System and method for customizing multiple windows of information on a display
US7627343B2 (en) 2003-04-25 2009-12-01 Apple Inc. Media player system
US7102626B2 (en) 2003-04-25 2006-09-05 Hewlett-Packard Development Company, L.P. Multi-function pointing device
GB2424535A (en) * 2003-04-30 2006-09-27 Hewlett Packard Co Editing an image and associating sound with it
US8555165B2 (en) * 2003-05-08 2013-10-08 Hillcrest Laboratories, Inc. Methods and systems for generating a zoomable graphical user interface
US7173623B2 (en) 2003-05-09 2007-02-06 Microsoft Corporation System supporting animation of graphical display elements through animation object instances
CN1742252A (zh) 2003-05-21 2006-03-01 株式会社日立高新技术 内置指纹传感器的便携式终端装置
WO2004111816A2 (en) * 2003-06-13 2004-12-23 University Of Lancaster User interface
US7567239B2 (en) 2003-06-26 2009-07-28 Motorola, Inc. Method and system for message and note composition on small screen devices
US8373660B2 (en) 2003-07-14 2013-02-12 Matt Pallakoff System and method for a portable multimedia client
US20050027666A1 (en) 2003-07-15 2005-02-03 Vente, Inc Interactive online research system and method
KR100522940B1 (ko) 2003-07-25 2005-10-24 삼성전자주식회사 활성영역을 설정 가능한 터치스크린 시스템 및 그 제어방법
JP2005056286A (ja) 2003-08-07 2005-03-03 Nec Engineering Ltd ウェブブラウザにおける拡大表示方法および拡大表示プログラム
EP1656660A4 (en) 2003-08-21 2006-09-13 Microsoft Corp FOCUSING MANAGEMENT USING POINTS IN THE EMPTY
US9024884B2 (en) 2003-09-02 2015-05-05 Apple Inc. Touch-sensitive electronic apparatus for media applications, and methods therefor
JP4360871B2 (ja) 2003-09-10 2009-11-11 富士通テン株式会社 情報端末における入力装置
US20050052427A1 (en) 2003-09-10 2005-03-10 Wu Michael Chi Hung Hand gesture interaction with touch surface
US7411575B2 (en) 2003-09-16 2008-08-12 Smart Technologies Ulc Gesture recognition method and touch system incorporating the same
JP2005092476A (ja) 2003-09-17 2005-04-07 Elo Touchsystems Inc マルチユーザー/マルチポインチングデバイスグラフィカルユーザーインターフェースシステム
US20070124694A1 (en) 2003-09-30 2007-05-31 Koninklijke Philips Electronics N.V. Gesture to define location, size, and/or content of content window on a display
US7034834B2 (en) 2003-10-24 2006-04-25 Microsoft Corporation Communication protocol for synchronizing animation systems
US20050183035A1 (en) * 2003-11-20 2005-08-18 Ringel Meredith J. Conflict resolution for graphic multi-user interface
US7962862B2 (en) 2003-11-24 2011-06-14 International Business Machines Corporation Method and data processing system for providing an improved graphics design tool
US7298367B2 (en) 2003-11-25 2007-11-20 3M Innovative Properties Company Light emitting stylus and user input device using same
US7814419B2 (en) 2003-11-26 2010-10-12 Nokia Corporation Changing an orientation of a user interface via a course of motion
JP3962718B2 (ja) 2003-12-01 2007-08-22 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
US7337412B2 (en) 2003-12-15 2008-02-26 International Business Machines Corporation Methods, systems and computer program products for providing multi-dimensional tree diagram graphical user interfaces
US20050162402A1 (en) 2004-01-27 2005-07-28 Watanachote Susornpol J. Methods of interacting with a computer using a finger(s) touch sensing input device with visual feedback
US7366995B2 (en) 2004-02-03 2008-04-29 Roland Wescott Montague Combination tool that zooms in, zooms out, pans, rotates, draws, or manipulates during a drag
FI117308B (fi) * 2004-02-06 2006-08-31 Nokia Corp Eleohjausjärjestelmä
US7319457B2 (en) 2004-02-12 2008-01-15 Sentelic Corporation Method of scrolling window screen by means of controlling electronic device
US7358965B2 (en) * 2004-02-18 2008-04-15 Microsoft Corporation Tapping to create writing
US20050193015A1 (en) 2004-02-19 2005-09-01 Sandraic Logic, Llc A California Limited Liability Company Method and apparatus for organizing, sorting and navigating multimedia content
GB2411331A (en) 2004-02-19 2005-08-24 Trigenix Ltd Rendering user interface using actor attributes
FR2866726B1 (fr) * 2004-02-23 2006-05-26 Jazzmutant Controleur par manipulation d'objets virtuels sur un ecran tactile multi-contact
US7406696B2 (en) 2004-02-24 2008-07-29 Dialogic Corporation System and method for providing user input information to multiple independent, concurrent applications
JP4438448B2 (ja) 2004-02-26 2010-03-24 セイコーエプソン株式会社 構造化文書表示処理装置、構造化文書表示方法、構造化文書表示プログラム
US7327349B2 (en) 2004-03-02 2008-02-05 Microsoft Corporation Advanced navigation techniques for portable devices
US7301529B2 (en) 2004-03-23 2007-11-27 Fujitsu Limited Context dependent gesture response
JP2005275652A (ja) 2004-03-24 2005-10-06 Canon Inc 入力軌跡処理装置および入力軌跡処理方法
EP1735733A1 (en) 2004-04-02 2006-12-27 Nokia Corporation Apparatus and method for handwriting recognition
US7623119B2 (en) 2004-04-21 2009-11-24 Nokia Corporation Graphical functions by gestures
EP1625513B1 (en) 2004-04-30 2018-04-18 Microsoft Technology Licensing, LLC Rules framework for definition and execution of end-user rules logic
JP4387242B2 (ja) 2004-05-10 2009-12-16 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及びゲーム装置
US7624355B2 (en) 2004-05-27 2009-11-24 Baneth Robin C System and method for controlling a user interface
JP4855654B2 (ja) 2004-05-31 2012-01-18 ソニー株式会社 車載装置、車載装置の情報提供方法、車載装置の情報提供方法のプログラム及び車載装置の情報提供方法のプログラムを記録した記録媒体
US7358962B2 (en) 2004-06-15 2008-04-15 Microsoft Corporation Manipulating association of data with a physical object
US7773950B2 (en) 2004-06-16 2010-08-10 Telefonaktiebolaget Lm Ericsson (Publ) Benign interference suppression for received signal quality estimation
WO2005124526A2 (en) 2004-06-17 2005-12-29 Koninklijke Philips Electronics N.V. Use of a two finger input on touch screens
JP2008505381A (ja) 2004-06-29 2008-02-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 表示装置の汚れを防ぐ方法及び装置
US20080284799A1 (en) 2004-06-29 2008-11-20 Koninklijke Philips Electronics, N.V. Discontinous Zoom
JP4210936B2 (ja) 2004-07-08 2009-01-21 ソニー株式会社 情報処理装置及びこれに用いるプログラム
EP1787281A2 (en) * 2004-07-15 2007-05-23 N-Trig Ltd. Automatic switching for a dual mode digitizer
JP4903371B2 (ja) 2004-07-29 2012-03-28 任天堂株式会社 タッチパネルを用いたゲーム装置およびゲームプログラム
EP2000893B1 (en) 2004-07-30 2016-09-21 Apple Inc. Mode-based graphical user interfaces for touch sensitive input devices
EP1774427A2 (en) 2004-07-30 2007-04-18 Apple Computer, Inc. Mode-based graphical user interfaces for touch sensitive input devices
US7653883B2 (en) * 2004-07-30 2010-01-26 Apple Inc. Proximity detector in handheld device
US7506799B2 (en) * 2004-07-30 2009-03-24 Nokia Corporation Method for the monitoring of system security in electronic devices
US20070046643A1 (en) * 2004-08-06 2007-03-01 Hillis W Daniel State-Based Approach to Gesture Identification
US7724242B2 (en) * 2004-08-06 2010-05-25 Touchtable, Inc. Touch driven method and apparatus to integrate and display multiple image layers forming alternate depictions of same subject matter
US7728821B2 (en) * 2004-08-06 2010-06-01 Touchtable, Inc. Touch detecting interactive display
US7719523B2 (en) 2004-08-06 2010-05-18 Touchtable, Inc. Bounding box gesture recognition on a touch detecting interactive display
US7721197B2 (en) 2004-08-12 2010-05-18 Microsoft Corporation System and method of displaying content on small screen computing devices
US7181373B2 (en) 2004-08-13 2007-02-20 Agilent Technologies, Inc. System and methods for navigating and visualizing multi-dimensional biological data
US7434173B2 (en) 2004-08-30 2008-10-07 Microsoft Corporation Scrolling web pages using direct interaction
US20060055669A1 (en) 2004-09-13 2006-03-16 Mita Das Fluent user interface for text entry on touch-sensitive display
JP4366695B2 (ja) 2004-09-13 2009-11-18 日本ビクター株式会社 メニュー画像表示方法及び電子情報機器
JP4355639B2 (ja) 2004-09-15 2009-11-04 キヤノン株式会社 画像処理装置およびその制御方法
WO2007037806A1 (en) 2005-09-15 2007-04-05 Apple Inc. System and method for processing raw data of track pad device
US7728823B2 (en) * 2004-09-24 2010-06-01 Apple Inc. System and method for processing raw data of track pad device
JP3786669B2 (ja) 2004-10-06 2006-06-14 株式会社バンダイナムコゲームス ゲームシステム、プログラム及び情報記憶媒体
US20060077183A1 (en) 2004-10-08 2006-04-13 Studt Peter C Methods and systems for converting touchscreen events into application formatted data
WO2006045530A2 (en) 2004-10-22 2006-05-04 Novo Nordisk A/S An apparatus and a method of providing information to a user
JP3770499B1 (ja) 2004-11-02 2006-04-26 任天堂株式会社 ゲーム装置及びゲームプログラム
US7925996B2 (en) 2004-11-18 2011-04-12 Microsoft Corporation Method and system for providing multiple input connecting user interface
US7665031B2 (en) 2004-12-08 2010-02-16 Microsoft Corporation Method and system of taskbar button interfaces
US20060136833A1 (en) 2004-12-15 2006-06-22 International Business Machines Corporation Apparatus and method for chaining objects in a pointer drag path
WO2006067711A2 (en) 2004-12-21 2006-06-29 Koninklijke Philips Electronics N.V. Method and device for displaying animated buttons
CN100377055C (zh) 2004-12-22 2008-03-26 盛群半导体股份有限公司 触控感应装置的判读方法
CA2594428A1 (en) 2005-01-05 2006-07-13 Jaewoo Ahn Method and apparatus for inputting character through pointing device
WO2006074267A2 (en) 2005-01-05 2006-07-13 Hillcrest Laboratories, Inc. Distributed software construction for user interfaces
US20060156249A1 (en) 2005-01-12 2006-07-13 Blythe Michael M Rotate a user interface
US20070185876A1 (en) 2005-02-07 2007-08-09 Mendis Venura C Data handling system
GB0503253D0 (en) 2005-02-17 2005-03-23 Univ Northumbria Newcastle User control of a hand-held device
US8819569B2 (en) 2005-02-18 2014-08-26 Zumobi, Inc Single-handed approach for navigation of application tiles using panning and zooming
JP4613078B2 (ja) 2005-03-01 2011-01-12 学校法人 名城大学 半導体基板の製造方法
KR102058832B1 (ko) 2005-03-04 2019-12-23 애플 인크. 다기능 휴대용 장치
CN1841284A (zh) 2005-03-28 2006-10-04 上海桐港信息科技有限公司 触摸屏式移动设备微浏览器页面显示漂移方法
US20060221061A1 (en) 2005-03-31 2006-10-05 Tyco Electronic Corporation Touch sensor and control with random pulse spacing
US7750893B2 (en) * 2005-04-06 2010-07-06 Nintendo Co., Ltd. Storage medium storing input position processing program, and input position processing device
CN1845046A (zh) 2005-04-07 2006-10-11 技嘉科技股份有限公司 具有触控式功能键的键盘和鼠标
US7355595B2 (en) 2005-04-15 2008-04-08 Microsoft Corporation Tactile device for scrolling
US7673255B2 (en) 2005-04-22 2010-03-02 Microsoft Corporation Interface and system for manipulating thumbnails of live windows in a window manager
US7692637B2 (en) 2005-04-26 2010-04-06 Nokia Corporation User input device for electronic device
US7499027B2 (en) 2005-04-29 2009-03-03 Microsoft Corporation Using a light pointer for input on an interactive display surface
JP4490326B2 (ja) 2005-05-09 2010-06-23 株式会社土井製作所 地中埋設ケーブル等に対する地盤変動時の保護方法及びその保護装置
DE112006001209T5 (de) 2005-05-16 2008-04-30 General Motors Global Technology Operations, Inc., Detroit Katalysator für Brennstoffzellenelektrode
US8117540B2 (en) 2005-05-18 2012-02-14 Neuer Wall Treuhand Gmbh Method and device incorporating improved text input mechanism
US20060262104A1 (en) 2005-05-19 2006-11-23 Sullivan Darius M Systems and methods for distinguishing contact-induced plate vibrations from acoustic noise-induced plate vibrations
US20070024646A1 (en) 2005-05-23 2007-02-01 Kalle Saarinen Portable electronic apparatus and associated method
US9785329B2 (en) 2005-05-23 2017-10-10 Nokia Technologies Oy Pocket computer and associated methods
US7487447B1 (en) * 2005-05-25 2009-02-03 Google Inc. Web page zoom feature
US20060271520A1 (en) 2005-05-27 2006-11-30 Ragan Gene Z Content-based implicit search query
US7561159B2 (en) 2005-05-31 2009-07-14 Magnifi Group Inc. Control of animation timeline
US20090049388A1 (en) * 2005-06-02 2009-02-19 Ronnie Bernard Francis Taib Multimodal computer navigation
US7710397B2 (en) 2005-06-03 2010-05-04 Apple Inc. Mouse with improved input mechanisms using touch sensors
US9019209B2 (en) 2005-06-08 2015-04-28 3M Innovative Properties Company Touch location determination involving multiple touch location processes
JP4849300B2 (ja) 2005-06-14 2012-01-11 ソニー株式会社 表示信号処理装置および方法、記録媒体、並びにプログラム
KR20060133389A (ko) 2005-06-20 2006-12-26 엘지전자 주식회사 이동 단말기의 데이터 처리 장치 및 그 방법
TW200701082A (en) 2005-06-23 2007-01-01 Elan Microelectronics Corp Scroll control method used in the touch panel
US20070006078A1 (en) 2005-07-01 2007-01-04 Microsoft Corporation Declaratively responding to state changes in an interactive multimedia environment
US7463263B2 (en) 2005-07-15 2008-12-09 Sap Portals Israel Ltd. Declarative specification of model visualizations
EP1908051A4 (en) 2005-07-22 2012-01-25 Matthew G Pallakoff SYSTEM AND METHOD FOR A THUMB-OPTIMIZED USER INTERFACE OF A TOUCH SCREEN
US7808478B2 (en) 2005-08-22 2010-10-05 Samsung Electronics Co., Ltd. Autonomous handheld device having a drawing tool
US7603143B2 (en) 2005-08-26 2009-10-13 Lg Electronics Inc. Mobile telecommunication handset having touch pad
US7568035B2 (en) * 2005-08-30 2009-07-28 Microsoft Corporation Command binding determination and implementation
US20070061126A1 (en) * 2005-09-01 2007-03-15 Anthony Russo System for and method of emulating electronic input devices
US20070152980A1 (en) 2006-01-05 2007-07-05 Kenneth Kocienda Touch Screen Keyboards for Portable Electronic Devices
US7694231B2 (en) 2006-01-05 2010-04-06 Apple Inc. Keyboards for portable electronic devices
US20070064004A1 (en) * 2005-09-21 2007-03-22 Hewlett-Packard Development Company, L.P. Moving a graphic element
US7633076B2 (en) 2005-09-30 2009-12-15 Apple Inc. Automated response to and sensing of user activity in portable devices
CN1949161B (zh) 2005-10-14 2010-05-26 鸿富锦精密工业(深圳)有限公司 多层次菜单显示装置及显示控制方法
KR100717047B1 (ko) 2005-10-20 2007-05-10 삼성전자주식회사 간편하게 웹 페이지를 표시하는 방법 및 장치
US20070109275A1 (en) 2005-11-16 2007-05-17 Chen-Ting Chuang Method for controlling a touch screen user interface and device thereof
JP2007148927A (ja) 2005-11-29 2007-06-14 Alps Electric Co Ltd 入力装置及びこれを用いたスクロール制御方法
US9069877B2 (en) 2005-12-07 2015-06-30 Ziilabs Inc., Ltd. User interface with variable sized icons
US20070132789A1 (en) * 2005-12-08 2007-06-14 Bas Ording List scrolling in response to moving contact over list of index symbols
WO2007066168A1 (en) 2005-12-08 2007-06-14 Nokia Corporation Improved text entry for electronic devices
US7650137B2 (en) 2005-12-23 2010-01-19 Apple Inc. Account information display for portable communication device
US7657849B2 (en) 2005-12-23 2010-02-02 Apple Inc. Unlocking a device by performing gestures on an unlock image
US7480870B2 (en) 2005-12-23 2009-01-20 Apple Inc. Indication of progress towards satisfaction of a user input condition
US7786975B2 (en) 2005-12-23 2010-08-31 Apple Inc. Continuous scrolling list with acceleration
US7509588B2 (en) 2005-12-30 2009-03-24 Apple Inc. Portable electronic device with interface reconfiguration mode
US7812826B2 (en) 2005-12-30 2010-10-12 Apple Inc. Portable electronic device with multi-touch input
US20070152983A1 (en) 2005-12-30 2007-07-05 Apple Computer, Inc. Touch pad with symbols based on mode
US8018440B2 (en) * 2005-12-30 2011-09-13 Microsoft Corporation Unintentional touch rejection
US7860536B2 (en) 2006-01-05 2010-12-28 Apple Inc. Telephone interface for a portable communication device
US7574672B2 (en) 2006-01-05 2009-08-11 Apple Inc. Text entry interface for a portable communication device
US20070174257A1 (en) 2006-01-18 2007-07-26 Bruce Thomas Howard Systems and methods for providing sorted search results
US20070176903A1 (en) 2006-01-31 2007-08-02 Dahlin Jeffrey J Capacitive touch sensor button activation
US9910497B2 (en) 2006-02-08 2018-03-06 Oblong Industries, Inc. Gestural control of autonomous and semi-autonomous systems
US8312479B2 (en) * 2006-03-08 2012-11-13 Navisense Application programming interface (API) for sensory events
US20070214436A1 (en) 2006-03-13 2007-09-13 Myers Raymond L Jr Positional navigation graphic link system
US7620901B2 (en) 2006-03-21 2009-11-17 Microsoft Corporation Simultaneous input across multiple applications
US8866750B2 (en) 2006-04-10 2014-10-21 Microsoft Corporation Universal user interface device
US8587526B2 (en) * 2006-04-12 2013-11-19 N-Trig Ltd. Gesture recognition feedback for a dual mode digitizer
US20070242607A1 (en) 2006-04-13 2007-10-18 Tellabs Operations, Inc. Method and system for controlling distribution of network topology information
TWI328185B (en) 2006-04-19 2010-08-01 Lg Electronics Inc Touch screen device for potable terminal and method of displaying and selecting menus thereon
KR20070113025A (ko) 2006-05-24 2007-11-28 엘지전자 주식회사 터치스크린 장치 및 이의 작동방법
US8077153B2 (en) * 2006-04-19 2011-12-13 Microsoft Corporation Precise selection techniques for multi-touch screens
US9063647B2 (en) * 2006-05-12 2015-06-23 Microsoft Technology Licensing, Llc Multi-touch uses, gestures, and implementation
US8775820B1 (en) 2006-06-02 2014-07-08 Sprint Communications Company L.P. System and method of enterprise administrative password generation and control
US7844661B2 (en) 2006-06-15 2010-11-30 Microsoft Corporation Composition of local media playback with remotely generated user interface
KR101277256B1 (ko) 2006-06-16 2013-07-05 삼성전자주식회사 사용자 인터페이스를 위한 장치 및 방법
US8169421B2 (en) 2006-06-19 2012-05-01 Cypress Semiconductor Corporation Apparatus and method for detecting a touch-sensor pad gesture
KR100748469B1 (ko) 2006-06-26 2007-08-10 삼성전자주식회사 키패드 터치에 의한 사용자 인터페이스 방법 및 그 휴대단말기
GB0612624D0 (en) 2006-06-26 2006-08-02 Symbian Software Ltd Speed of gesture
US8269725B2 (en) * 2006-06-28 2012-09-18 Microsoft Corporation Input simulation system for touch based devices
US8086971B2 (en) 2006-06-28 2011-12-27 Nokia Corporation Apparatus, methods and computer program products providing finger-based and hand-based gesture commands for portable electronic device applications
RU2008149112A (ru) 2006-06-30 2010-06-20 Теле Атлас Норт Америка, Инк. (Us) Способ и система для сбора пользовательских запросов на обновление относительно географических данных для поддержки автоматизированного анализа, обработки и обновлений географических данных
WO2008007372A2 (en) * 2006-07-12 2008-01-17 N-Trig Ltd. Hover and touch detection for a digitizer
JP4762070B2 (ja) 2006-07-19 2011-08-31 富士通株式会社 手書き入力装置、手書き入力方法、及びコンピュータプログラム
JP4280759B2 (ja) * 2006-07-27 2009-06-17 キヤノン株式会社 情報処理装置およびユーザインタフェース制御方法
DE202007018940U1 (de) 2006-08-15 2009-12-10 N-Trig Ltd. Bewegungserkennung für einen Digitalisierer
US20080043020A1 (en) * 2006-08-18 2008-02-21 Microsoft Corporation User interface for viewing street side imagery
CN101356493A (zh) 2006-09-06 2009-01-28 苹果公司 用于照片管理的便携式电子装置
US7864163B2 (en) 2006-09-06 2011-01-04 Apple Inc. Portable electronic device, method, and graphical user interface for displaying structured electronic documents
US8253695B2 (en) 2006-09-06 2012-08-28 Apple Inc. Email client for a portable multifunction device
US7843427B2 (en) 2006-09-06 2010-11-30 Apple Inc. Methods for determining a cursor position from a finger contact with a touch screen display
US8106856B2 (en) 2006-09-06 2012-01-31 Apple Inc. Portable electronic device for photo management
US7941760B2 (en) 2006-09-06 2011-05-10 Apple Inc. Soft keyboard display for a portable multifunction device
US20080084400A1 (en) 2006-10-10 2008-04-10 Outland Research, Llc Touch-gesture control of video media play on handheld media players
US8056007B2 (en) 2006-11-15 2011-11-08 Yahoo! Inc. System and method for recognizing and storing information and associated context
US20080114614A1 (en) * 2006-11-15 2008-05-15 General Electric Company Methods and systems for healthcare application interaction using gesture-based interaction enhanced with pressure sensitivity
US7694240B2 (en) * 2006-11-22 2010-04-06 General Electric Company Methods and systems for creation of hanging protocols using graffiti-enabled devices
JP5191119B2 (ja) 2006-12-06 2013-04-24 株式会社ジャパンディスプレイウェスト 表示装置、表示装置の制御方法、及びプログラム
CN101206659B (zh) 2006-12-15 2013-09-18 谷歌股份有限公司 自动搜索查询校正
TW200828089A (en) * 2006-12-29 2008-07-01 Inventec Appliances Corp Method for zooming image
US8489783B2 (en) * 2007-01-03 2013-07-16 Apple Inc. Multi buffer asynchronous scheme for processing incoming information
US7777732B2 (en) 2007-01-03 2010-08-17 Apple Inc. Multi-event input system
US7907125B2 (en) * 2007-01-05 2011-03-15 Microsoft Corporation Recognizing multiple input point gestures
US8214768B2 (en) 2007-01-05 2012-07-03 Apple Inc. Method, system, and graphical user interface for viewing multiple application windows
US7924271B2 (en) 2007-01-05 2011-04-12 Apple Inc. Detecting gestures on multi-event sensitive devices
US8656295B2 (en) 2007-01-05 2014-02-18 Apple Inc. Selecting and manipulating web content
US7956847B2 (en) 2007-01-05 2011-06-07 Apple Inc. Gestures for controlling, manipulating, and editing of media files using touch sensitive devices
US8656311B1 (en) * 2007-01-07 2014-02-18 Apple Inc. Method and apparatus for compositing various types of content
US7872652B2 (en) 2007-01-07 2011-01-18 Apple Inc. Application programming interfaces for synchronization
US7671756B2 (en) 2007-01-07 2010-03-02 Apple Inc. Portable electronic device with alert silencing
US7844915B2 (en) 2007-01-07 2010-11-30 Apple Inc. Application programming interfaces for scrolling operations
US20080168395A1 (en) 2007-01-07 2008-07-10 Bas Ording Positioning a Slider Icon on a Portable Multifunction Device
US8665225B2 (en) * 2007-01-07 2014-03-04 Apple Inc. Portable multifunction device, method, and graphical user interface for interpreting a finger gesture
US7903115B2 (en) 2007-01-07 2011-03-08 Apple Inc. Animations
US8091045B2 (en) 2007-01-07 2012-01-03 Apple Inc. System and method for managing lists
US7966578B2 (en) 2007-01-07 2011-06-21 Apple Inc. Portable multifunction device, method, and graphical user interface for translating displayed content
US8519963B2 (en) 2007-01-07 2013-08-27 Apple Inc. Portable multifunction device, method, and graphical user interface for interpreting a finger gesture on a touch screen display
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US7912700B2 (en) 2007-02-08 2011-03-22 Microsoft Corporation Context based word prediction
JP4866262B2 (ja) 2007-02-16 2012-02-01 ソフトバンクモバイル株式会社 操作入力処理方法及び携帯型情報処理装置
JP4793287B2 (ja) 2007-02-28 2011-10-12 ブラザー工業株式会社 通信装置および通信システム
KR101383709B1 (ko) 2007-03-07 2014-04-09 삼성디스플레이 주식회사 표시 장치 및 그의 구동 방법
EP1970799B1 (en) 2007-03-15 2017-08-16 LG Electronics Inc. Electronic device and method of controlling mode thereof and mobile communication terminal
US8436815B2 (en) 2007-05-25 2013-05-07 Microsoft Corporation Selective enabling of multi-input controls
JP5117121B2 (ja) 2007-06-18 2013-01-09 パイオニア株式会社 Av機器の操作制御システム
US8350815B2 (en) 2007-06-20 2013-01-08 Sony Mobile Communications Portable communication device including touch input with scrolling function
US8059101B2 (en) 2007-06-22 2011-11-15 Apple Inc. Swipe gestures for touch screen keyboards
US8171432B2 (en) 2008-01-06 2012-05-01 Apple Inc. Touch screen device, method, and graphical user interface for displaying and selecting application options
JP4836885B2 (ja) * 2007-07-04 2011-12-14 シャープ株式会社 携帯通信端末用の非接触型入力装置、携帯通信端末及びメール作成システム
WO2009018314A2 (en) 2007-07-30 2009-02-05 Perceptive Pixel, Inc. Graphical user interface for large-scale, multi-user, multi-touch systems
WO2009016607A2 (en) 2007-08-01 2009-02-05 Nokia Corporation Apparatus, methods, and computer program products providing context-dependent gesture recognition
US8471823B2 (en) 2007-08-16 2013-06-25 Sony Corporation Systems and methods for providing a user interface
US20090051671A1 (en) * 2007-08-22 2009-02-26 Jason Antony Konstas Recognizing the motion of two or more touches on a touch-sensing surface
US7949516B2 (en) 2007-08-31 2011-05-24 Research In Motion Limited Handheld electronic device and method employing logical proximity of characters in spell checking
KR101348721B1 (ko) 2007-09-03 2014-01-08 엘지전자 주식회사 휴대 단말기 및 그 휴대 단말기의 터치 인식 방법
KR20090024541A (ko) 2007-09-04 2009-03-09 삼성전자주식회사 하이퍼링크 선택 방법 및 이를 이용하는 이동통신 단말기
US20090058820A1 (en) 2007-09-04 2009-03-05 Microsoft Corporation Flick-based in situ search from ink, text, or an empty selection region
US8667412B2 (en) 2007-09-06 2014-03-04 Google Inc. Dynamic virtual input device configuration
WO2009049331A2 (en) 2007-10-08 2009-04-16 Van Der Westhuizen Willem Mork User interface
US7917584B2 (en) * 2007-10-22 2011-03-29 Xcerion Aktiebolag Gesture-based collaboration
JP2009110286A (ja) 2007-10-30 2009-05-21 Toshiba Corp 情報処理装置、ランチャー起動制御プログラムおよびランチャー起動制御方法
AU2008323700B2 (en) 2007-11-09 2014-01-16 Wms Gaming, Inc. Interface for wagering game environments
JP2009169825A (ja) 2008-01-18 2009-07-30 Kyocera Mita Corp 表示入力装置、電子機器及び表示入力制御プログラム
US20090207140A1 (en) 2008-02-19 2009-08-20 Sony Ericsson Mobile Communications Ab Identifying and responding to multiple time-overlapping touches on a touch panel
TWI352924B (en) 2008-02-21 2011-11-21 Wintek Corp Touch panel and driving method of touch panel
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
US8289283B2 (en) 2008-03-04 2012-10-16 Apple Inc. Language input interface on a device
US8416196B2 (en) * 2008-03-04 2013-04-09 Apple Inc. Touch event model programming interface
US8352877B2 (en) 2008-03-06 2013-01-08 Microsoft Corporation Adjustment of range of content displayed on graphical user interface
US20090231281A1 (en) 2008-03-11 2009-09-17 Microsoft Corporation Multi-touch virtual keyboard
US8289289B2 (en) 2008-04-03 2012-10-16 N-trig, Ltd. Multi-touch and single touch detection
KR101513024B1 (ko) 2008-04-22 2015-04-17 엘지전자 주식회사 단말기 및 이것의 이미지 인식 방법
US8261190B2 (en) 2008-04-24 2012-09-04 Burlington Education Ltd. Displaying help sensitive areas of a computer application
JP2010044180A (ja) 2008-08-12 2010-02-25 Victor Co Of Japan Ltd 液晶表示装置及びこれに用いる映像信号処理方法
US8526767B2 (en) * 2008-05-01 2013-09-03 Atmel Corporation Gesture recognition
US20100177053A2 (en) * 2008-05-09 2010-07-15 Taizo Yasutake Method and apparatus for control of multiple degrees of freedom of a display
US20090282332A1 (en) 2008-05-12 2009-11-12 Nokia Corporation Apparatus, method and computer program product for selecting multiple items using multi-touch
US9268483B2 (en) * 2008-05-16 2016-02-23 Microsoft Technology Licensing, Llc Multi-touch input platform
US8584048B2 (en) * 2008-05-29 2013-11-12 Telcordia Technologies, Inc. Method and system for multi-touch-based browsing of media summarizations on a handheld device
US20090309847A1 (en) 2008-06-12 2009-12-17 You I Labs, Inc. Apparatus and method for providing multi-touch interface capability
US7864037B2 (en) * 2008-06-16 2011-01-04 International Business Machines Corporation Pattern-driven communication architecture
US20090322699A1 (en) 2008-06-25 2009-12-31 Sony Ericsson Mobile Communications Ab Multiple input detection for resistive touch panel
US8754855B2 (en) * 2008-06-27 2014-06-17 Microsoft Corporation Virtual touchpad
US20090322700A1 (en) 2008-06-30 2009-12-31 Tyco Electronics Corporation Method and apparatus for detecting two simultaneous touches and gestures on a resistive touchscreen
JP2010015238A (ja) 2008-07-01 2010-01-21 Sony Corp 情報処理装置、及び補助情報の表示方法
US8154428B2 (en) * 2008-07-15 2012-04-10 International Business Machines Corporation Gesture recognition control of electronic devices using a multi-touch device
US8237807B2 (en) 2008-07-24 2012-08-07 Apple Inc. Image capturing device with touch screen for adjusting camera settings
US8390577B2 (en) * 2008-07-25 2013-03-05 Intuilab Continuous recognition of multi-touch gestures
KR101482120B1 (ko) * 2008-08-01 2015-01-21 엘지전자 주식회사 스케줄 관리가 가능한 휴대 단말기 및 그 제어방법
CN101339453B (zh) 2008-08-15 2012-05-23 广东威创视讯科技股份有限公司 基于交互式输入设备的模拟鼠标输入方法
US8135171B2 (en) 2008-08-19 2012-03-13 Au Optronics Corp. Multipoint tracking method and related device
CN101661361A (zh) 2008-08-27 2010-03-03 比亚迪股份有限公司 多点触摸检测系统
US8279241B2 (en) 2008-09-09 2012-10-02 Microsoft Corporation Zooming graphical user interface
US20100088628A1 (en) 2008-10-07 2010-04-08 Sony Ericsson Mobile Communications Ab Live preview of open windows
US20100107116A1 (en) * 2008-10-27 2010-04-29 Nokia Corporation Input on touch user interfaces
JP4853507B2 (ja) 2008-10-30 2012-01-11 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US8732576B2 (en) 2008-12-04 2014-05-20 Nvidia Corporation Operating system providing multi-touch support for applications in a mobile device
TW201023018A (en) 2008-12-12 2010-06-16 Asustek Comp Inc Touch panel with multi-touch function and multi-touch detecting method thereof
WO2010071630A1 (en) 2008-12-15 2010-06-24 Hewlett-Packard Development Company, L.P. Gesture based edit mode
US8869070B2 (en) 2008-12-30 2014-10-21 T-Mobile Usa, Inc. Handwriting manipulation for conducting a search over multiple databases
US8319736B2 (en) 2009-01-19 2012-11-27 Microsoft Corporation Touch sensitive computing device and method
KR101521932B1 (ko) * 2009-01-19 2015-05-20 엘지전자 주식회사 단말기 및 그 제어 방법
US8704767B2 (en) 2009-01-29 2014-04-22 Microsoft Corporation Environmental gesture recognition
JP5009422B2 (ja) 2009-02-10 2012-08-22 シャープ株式会社 認証装置、認証方法及びそれをコンピュータに実行させるためのプログラム
US20100235745A1 (en) 2009-03-10 2010-09-16 Sony Corporation Accessibility system for consumer devices
US9311112B2 (en) 2009-03-16 2016-04-12 Apple Inc. Event recognition
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US8566044B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
KR101510484B1 (ko) 2009-03-31 2015-04-08 엘지전자 주식회사 이동 단말기 및 이동 단말기의 제어 방법
US20100281435A1 (en) * 2009-04-30 2010-11-04 At&T Intellectual Property I, L.P. System and method for multimodal interaction using robust gesture processing
US8427440B2 (en) * 2009-05-05 2013-04-23 Microsoft Corporation Contact grouping and gesture recognition for surface computing
US9524085B2 (en) 2009-05-21 2016-12-20 Sony Interactive Entertainment Inc. Hand-held device with ancillary touch activated transformation of active element
US8493344B2 (en) 2009-06-07 2013-07-23 Apple Inc. Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface
US20110069021A1 (en) 2009-06-12 2011-03-24 Hill Jared C Reducing false touchpad data by ignoring input when area gesture does not behave as predicted
DE102009024656A1 (de) 2009-06-12 2011-03-24 Volkswagen Ag Verfahren zum Steuern einer grafischen Benutzerschnittstelle und Bedienvorrichtung für eine grafische Benutzerschnittstelle
KR101608532B1 (ko) * 2009-08-11 2016-04-01 엘지전자 주식회사 이동 통신 단말기에서의 데이터 표시방법 및 이를 적용한 이동 통신 단말기
US8310459B2 (en) 2009-09-23 2012-11-13 Nokia Corporation Touch detection
US9223590B2 (en) 2010-01-06 2015-12-29 Apple Inc. System and method for issuing commands to applications based on contextual information
TWI400638B (zh) 2009-10-20 2013-07-01 Acer Inc 觸控顯示裝置、觸控顯示系統及其調整觸控區域之方法
KR20110047349A (ko) 2009-10-30 2011-05-09 주식회사 팬택 휴대용 단말기에서 터치와 가압을 이용하는 사용자 인터페이스 장치 및 방법
US8957918B2 (en) * 2009-11-03 2015-02-17 Qualcomm Incorporated Methods for implementing multi-touch gestures on a single-touch touch surface
KR101639383B1 (ko) * 2009-11-12 2016-07-22 삼성전자주식회사 근접 터치 동작 감지 장치 및 방법
US8390600B2 (en) 2009-11-13 2013-03-05 Microsoft Corporation Interactive display system with contact geometry interface
US8436821B1 (en) * 2009-11-20 2013-05-07 Adobe Systems Incorporated System and method for developing and classifying touch gestures
US20100085323A1 (en) 2009-12-04 2010-04-08 Adam Bogue Segmenting a Multi-Touch Input Region by User
US8140570B2 (en) 2010-03-11 2012-03-20 Apple Inc. Automatic discovery of metadata
US8296332B2 (en) 2010-04-01 2012-10-23 Apple Inc. Visual manipulation of database schema
KR20110110940A (ko) 2010-04-02 2011-10-10 삼성전자주식회사 휴대용 단말기의 터치 입력 장치 및 방법
US8839122B2 (en) 2010-04-07 2014-09-16 Apple Inc. Device, method, and graphical user interface for navigation of multiple applications
US9052926B2 (en) 2010-04-07 2015-06-09 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US8131898B2 (en) * 2010-05-27 2012-03-06 Adobe Systems Incorporated Event handling in an integrated execution environment
EP2390766B1 (en) 2010-05-28 2013-09-25 BlackBerry Limited Electronic device including touch-sensitive display and method of controlling same
US8669946B2 (en) 2010-05-28 2014-03-11 Blackberry Limited Electronic device including touch-sensitive display and method of controlling same
US20130120280A1 (en) * 2010-05-28 2013-05-16 Tim Kukulski System and Method for Evaluating Interoperability of Gesture Recognizers
CN102262890A (zh) 2010-05-31 2011-11-30 鸿富锦精密工业(深圳)有限公司 电子装置及其标记方法
CN101853105A (zh) 2010-06-02 2010-10-06 友达光电股份有限公司 一种具有触控屏幕的计算机及其操作方法
US8749499B2 (en) * 2010-06-08 2014-06-10 Sap Ag Touch screen for bridging multi and/or single touch points to applications
US8836643B2 (en) * 2010-06-10 2014-09-16 Qualcomm Incorporated Auto-morphing adaptive user interface device and methods
US8552999B2 (en) 2010-06-14 2013-10-08 Apple Inc. Control selection approximation
JP5663980B2 (ja) 2010-06-29 2015-02-04 ブラザー工業株式会社 画像処理装置
TWI407346B (zh) 2010-07-30 2013-09-01 Ind Tech Res Inst 觸控輸入裝置之軌跡補償方法與系統,及其電腦程式產品
KR20120024247A (ko) 2010-09-06 2012-03-14 삼성전자주식회사 사용자의 제스처를 인식하여 이동 장치를 동작하는 방법 및 그 이동 장치
US20120092286A1 (en) * 2010-10-19 2012-04-19 Microsoft Corporation Synthetic Gesture Trace Generator
US20120133579A1 (en) 2010-11-30 2012-05-31 Microsoft Corporation Gesture recognition management
CN203287883U (zh) 2010-12-20 2013-11-13 苹果公司 电子设备及其信息处理装置
US8438473B2 (en) * 2011-01-05 2013-05-07 Research In Motion Limited Handling of touch events in a browser environment
US20120242584A1 (en) * 2011-03-22 2012-09-27 Nokia Corporation Method and apparatus for providing sight independent activity reports responsive to a touch gesture
US9298363B2 (en) 2011-04-11 2016-03-29 Apple Inc. Region activation for touch sensitive surface
AU2011202182B1 (en) 2011-05-11 2011-10-13 Frequency Ip Holdings, Llc Creation and presentation of selective digital content feeds
TWI467463B (zh) * 2011-05-27 2015-01-01 Asustek Comp Inc 具觸控式螢幕的電腦系統及其手勢的處理方法
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US9389679B2 (en) * 2011-11-30 2016-07-12 Microsoft Technology Licensing, Llc Application programming interface for a multi-pointer indirect touch input device
US9071970B2 (en) 2011-12-05 2015-06-30 Sony Corporation Terminal device
US10983625B2 (en) * 2011-12-22 2021-04-20 Adobe Inc. Systems and methods for measurement of unsupported user interface actions
US8411060B1 (en) 2012-01-13 2013-04-02 Google Inc. Swipe gesture classification
US9046958B2 (en) 2012-03-15 2015-06-02 Nokia Technologies Oy Method, apparatus and computer program product for user input interpretation and input error mitigation
US9626100B2 (en) 2013-04-15 2017-04-18 Microsoft Technology Licensing, Llc Dynamic management of edge inputs by users on a touch device
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
CN105264465B (zh) * 2013-06-18 2018-11-09 松下电器(美国)知识产权公司 输入装置以及输入动作要求的方法
US9430142B2 (en) * 2014-07-17 2016-08-30 Facebook, Inc. Touch-based gesture recognition and application navigation
US9886190B2 (en) * 2014-09-26 2018-02-06 The Florida International University Board Of Trustees Gesture discernment and processing system
KR102374160B1 (ko) * 2014-11-14 2022-03-14 삼성디스플레이 주식회사 스케일링을 사용하여 디스플레이 지연을 감소시키는 방법 및 장치
US9952676B2 (en) * 2015-06-25 2018-04-24 Intel Corporation Wearable device with gesture recognition mechanism
US11029836B2 (en) * 2016-03-25 2021-06-08 Microsoft Technology Licensing, Llc Cross-platform interactivity architecture
US11755146B2 (en) * 2021-06-03 2023-09-12 Apple Inc. Devices and methods for processing touch inputs

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006040271A (ja) * 2004-06-28 2006-02-09 Microsoft Corp ソフトウェアアプリケーションと対話するためのジェスチャの認識および使用
JP2006085703A (ja) * 2004-09-13 2006-03-30 Microsoft Corp フリックジェスチャ
US20080168402A1 (en) * 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
WO2009111189A1 (en) * 2008-03-04 2009-09-11 Apple Inc. Touch event model
JP2009211704A (ja) * 2008-03-04 2009-09-17 Apple Inc タッチイベントモデル
JP2010524095A (ja) * 2008-03-04 2010-07-15 アップル インコーポレイテッド ウェブページのためのタッチイベント処理
US20100156804A1 (en) * 2008-12-19 2010-06-24 Cypress Semiconductor Corporation Multi-finger sub-gesture reporting for a user interface device
US20110167391A1 (en) * 2010-01-06 2011-07-07 Brian Momeyer User interface methods and systems for providing force-sensitive input

Also Published As

Publication number Publication date
JP2014139816A (ja) 2014-07-31
JP2016177828A (ja) 2016-10-06
US20170286131A1 (en) 2017-10-05
JP6201003B2 (ja) 2017-09-20
CN103558983B (zh) 2016-08-31
JP5497920B2 (ja) 2014-05-21
EP2354930B1 (en) 2020-08-26
US10732997B2 (en) 2020-08-04
KR20160095189A (ko) 2016-08-10
JP5938429B2 (ja) 2016-06-22
CN103558983A (zh) 2014-02-05
KR101645839B1 (ko) 2016-08-04
AU2014213525B2 (en) 2016-04-28
KR101519194B1 (ko) 2015-05-11
CN103558984B (zh) 2017-12-05
KR20120123476A (ko) 2012-11-08
AU2016204905A1 (en) 2016-08-04
KR20140134719A (ko) 2014-11-24
AU2011209720B2 (en) 2014-05-15
US9684521B2 (en) 2017-06-20
AU2014213525A1 (en) 2014-09-04
EP3660670B1 (en) 2023-07-05
CN103955341B (zh) 2018-10-30
CN102135858B (zh) 2014-06-11
CN103955341A (zh) 2014-07-30
US20200387389A1 (en) 2020-12-10
US20110181526A1 (en) 2011-07-28
EP3660670A1 (en) 2020-06-03
KR101695606B1 (ko) 2017-01-11
AU2011209720A1 (en) 2012-08-23
EP2354930A1 (en) 2011-08-10
AU2016204905B2 (en) 2018-07-05
CN102135858A (zh) 2011-07-27
CN103558984A (zh) 2014-02-05
WO2011094267A1 (en) 2011-08-04

Similar Documents

Publication Publication Date Title
JP6201003B2 (ja) ジェスチャ認識を制御及び変更するためのデリゲートを有するジェスチャ・レコグナイザ
US11755196B2 (en) Event recognition
US20230244317A1 (en) Proxy Gesture Recognizer
JP6695395B2 (ja) イベント認識
US8566044B2 (en) Event recognition
US9311112B2 (en) Event recognition

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140306

R150 Certificate of patent or registration of utility model

Ref document number: 5497920

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250