JP2016224970A - 事象認識 - Google Patents

事象認識 Download PDF

Info

Publication number
JP2016224970A
JP2016224970A JP2016146769A JP2016146769A JP2016224970A JP 2016224970 A JP2016224970 A JP 2016224970A JP 2016146769 A JP2016146769 A JP 2016146769A JP 2016146769 A JP2016146769 A JP 2016146769A JP 2016224970 A JP2016224970 A JP 2016224970A
Authority
JP
Japan
Prior art keywords
event
gesture
touch inputs
sequence
views
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
JP2016146769A
Other languages
English (en)
Other versions
JP6785082B2 (ja
Inventor
ジョシュア, エイチ. シェファー,
H Shaffer Joshua
ジョシュア, エイチ. シェファー,
ケニス, エル. コシエンダ,
L Kocienda Kenneth
ケニス, エル. コシエンダ,
イムラン チャウダリ,
Chaudhri Imran
イムラン チャウダリ,
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
Priority claimed from US13/077,524 external-priority patent/US9244606B2/en
Priority claimed from US13/077,925 external-priority patent/US8566044B2/en
Priority claimed from US13/077,927 external-priority patent/US8566045B2/en
Priority claimed from US13/077,931 external-priority patent/US9311112B2/en
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2016224970A publication Critical patent/JP2016224970A/ja
Application granted granted Critical
Publication of JP6785082B2 publication Critical patent/JP6785082B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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
    • 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/04886Interaction 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 by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Position Input By Displaying (AREA)

Abstract

【課題】タッチ入力等の事象認識をする方法を提供する。【解決手段】ビュー階層の1つ以上のビューを表示することと、特定のビューと関連付けられたソフトウェア要素を実行することとを備える。特定のビューの各々は事象レコグナイザを含み、1つ以上の事象定義と、対象に対する動作を規定する事象ハンドラとを有し、事象認識に応答して動作を対象に送出するように構成される。サブ事象のシーケンスを検出することと、ビュー階層のビューのうちの1つをどのビューが能動的に関わるビューであるかを明らかにするヒットビューとして識別することとを備える。能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信することを備える。各ジェスチャレコグナイザは複数の事象定義を有し、そのうちの1つが内部状態に基づいて選択される。各事象レコグナイザは、サブ事象のシーケンスにおける次のサブ事象を処理する前に各サブ事象を処理する。【選択図】図6A

Description

本発明は、一般に、タッチ入力を認識する装置及び方法を含むがこれらに限定されないユーザインタフェース処理に関する。
一般に電子デバイスは、コンピューティングデバイスと対話するために使用されるユーザインタフェースを含む。ユーザインタフェースは、ユーザインタフェースの種々の態様と対話するキーボード、マウス、並びにタッチセンシティブ面等のディスプレイ及び/又は入力装置を含んでもよい。入力装置としてタッチセンシティブ面を備えるいくつかのデバイスにおいて、タッチジェスチャの第1のセット(例えば、タップ、ダブルタップ、横スワイプ、縦スワイプ、ピンチ、非ピンチ、2本の指のスワイプのうちの2つ以上)は、特定の状況(例えば、第1のアプリケーションの特定のモード)で適切な入力として認識され、タッチジェスチャの他の異なるセットは、他の状況(例えば、第1のアプリケーション内の異なるアプリケーション及び/あるいは異なるモード又は状況)で適切な入力として認識される。その結果、タッチジェスチャを認識し且つそれに応答するのに必要なソフトウェア及び論理は、複雑になり、アプリケーションが更新される度に又は新しいアプリケーションがコンピューティングデバイスに追加される度に改訂が必要となるだろう。これらの同様の問題は、タッチジェスチャ以外の入力ソースを利用するユーザインタフェースにおいて生じる可能性がある。
従って、タッチジェスチャ及びタッチ事象、並びに他の入力ソースからのジェスチャ及び事象を認識する総合的なフレームワーク又は機構を有することが望ましい。総合的なフレームワーク又は機構は、コンピューティングデバイス上の全てのアプリケーションプログラムのほぼ全ての状況又はモードに容易に適応可能であり、アプリケーションが更新される場合、あるいは新しいアプリケーションがコンピューティングデバイスに追加される場合でも殆ど又は全く改訂を必要としない。
上述の欠点に対処するために、いくつかの実施形態は、タッチセンシティブディスプレイを備えた電子デバイスにおいて実行される方法を提供する。電子デバイスは、少なくとも第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションを実行するように構成される。第1のソフトウェアアプリケーションは、1つ以上のジェスチャレコグナイザの第1のセットを含み、第2のソフトウェアアプリケーションは、1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。方法は、第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを表示することと、第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを表示している間にタッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出することとを備える。タッチ入力のシーケンスは、1つ以上のタッチ入力の第1の部分及び第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む。方法は、タッチ入力のシーケンスを検出する第1の段階の間、1つ以上のタッチ入力の第1の部分を第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションに配信することと、1つ以上のタッチ入力の第1の部分を認識する1つ以上のマッチングジェスチャレコグナイザを第1のセットのジェスチャレコグナイザから識別することと、1つ以上のマッチングジェスチャレコグナイザに対応する1つ以上のジェスチャハンドラにより1つ以上のタッチ入力の第1の部分を処理することとを更に備える。
いくつかの実施形態によると、方法は、タッチセンシティブディスプレイを備えた電子デバイスにおいて実行される。電子デバイスは、少なくとも第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションを実行するように構成される。第1のソフトウェアアプリケーションは、1つ以上のジェスチャレコグナイザの第1のセットを含み、第2のソフトウェアアプリケーションは、1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。方法は、1つ以上のビューの第1のセットを表示することを備える。1つ以上のビューの第1のセットは、第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを含む。方法は、1つ以上のビューの第1のセットを表示している間にタッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出することを更に備える。タッチ入力のシーケンスは、1つ以上のタッチ入力の第1の部分及び第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む。方法は、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識するかを判定することを備える。方法は、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識すると判定することに従って、タッチ入力のシーケンスを第2のソフトウェアアプリケーションに配信することなく第1のソフトウェアアプリケーションに配信することと、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定することとを更に備える。方法は、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理することを更に備える。方法は、1つ以上のジェスチャレコグナイザの第1のセットのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識しないと判定することに従って、タッチ入力のシーケンスを第2のソフトウェアアプリケーションに配信することと、1つ以上のジェスチャレコグナイザの第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定することとを更に備える。方法は、1つ以上のジェスチャレコグナイザの第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する1つ以上のジェスチャレコグナイザの第2のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理することを更に備える。
いくつかの実施形態によると、方法は、ある内部状態の電子デバイスにおいて実行される。電子デバイスは、複数のビューを有するビュー階層を含むソフトウェアを実行するように構成される。方法は、ビュー階層の1つ以上のビューを表示することと、1つ以上のソフトウェア要素を実行することとを備える。各ソフトウェア要素は特定のビューと関連付けられ、特定のビューの各々は1つ以上の事象レコグナイザを含む。各事象レコグナイザは、1つ以上のサブ事象に基づく1つ以上の事象定義と、対象に対する動作を規定する事象ハンドラとを有し、1つ以上の事象定義の特定の事象定義に対応する事象を検出する事象レコグナイザに応答して動作を対象に送出するように構成される。方法は、1つ以上のサブ事象のシーケンスを検出することと、ビュー階層のビューのうちの1つをヒットビューとして識別することとを更に備える。ヒットビューは、ビュー階層のどのビューが能動的に関わるビューであるかを明らかにする。方法は、ビュー階層内の能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信することを更に備える。ビュー階層における能動的に関わるビューに対する少なくとも1つのジェスチャレコグナイザは複数の事象定義を有し、そのうちの1つが電子デバイスの内部状態に従って選択される。少なくとも1つの事象レコグナイザは、選択された事象定義に従ってサブ事象のシーケンスにおける次のサブ事象を処理する前に各サブ事象を処理する。
いくつかの実施形態によると、コンピュータ可読記憶媒体は、電子デバイスのより多くのプロセッサのうちの1つが実行するための1つ以上のプログラムを格納する。1つ以上のプログラムは、電子デバイスにより実行された時に上述の方法のうちのいずれかをデバイスにより実行する1つ以上の命令を含む。
いくつかの実施形態によると、タッチセンシティブディスプレイを備えた電子デバイスは、1つ以上のプロセッサと、1つ以上のプロセッサが実行するための1つ以上のプログラムを格納するメモリとを備える。1つ以上のプログラムは、上述の方法のうちのいずれかを実現する命令を含む。
いくつかの実施形態によると、タッチセンシティブディスプレイを備えた電子デバイスは、上述の方法のうちのいずれかを実現する手段を備える。
いくつかの実施形態によると、タッチセンシティブディスプレイを備えた多機能デバイスの情報処理装置は、上述の方法のうちのいずれかを実現する手段を備える。
いくつかの実施形態によると、電子デバイスは、タッチ入力を受信するように構成されたタッチセンシティブディスプレイユニットと、タッチセンシティブディスプレイユニットに結合された処理ユニットとを備える。処理ユニットは、少なくとも第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションを実行するように構成される。第1のソフトウェアアプリケーションは1つ以上のジェスチャレコグナイザの第1のセットを含み、第2のソフトウェアアプリケーションは、1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。処理ユニットは、第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットの表示を有効にし、且つ第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットの表示している間にタッチセンシティブディスプレイユニットに対するタッチ入力のシーケンスを検出するように構成される。タッチ入力のシーケンスは、1つ以上のタッチ入力の第1の部分及び第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む。処理ユニットは、タッチ入力のシーケンスを検出する第1の段階の間、1つ以上のタッチ入力の第1の部分を第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションに配信し、1つ以上のタッチ入力の第1の部分を認識する1つ以上のマッチングジェスチャレコグナイザを第1のセットのジェスチャレコグナイザから識別し、且つ1つ以上のマッチングジェスチャレコグナイザに対応する1つ以上のジェスチャハンドラにより1つ以上のタッチ入力の第1の部分を処理するように構成される。
いくつかの実施形態によると、電子デバイスは、タッチ入力を受信するように構成されたタッチセンシティブディスプレイユニットと、タッチセンシティブディスプレイユニットに結合された処理ユニットとを備える。処理ユニットは、少なくとも第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションを実行するように構成される。第1のソフトウェアアプリケーションは1つ以上のジェスチャレコグナイザの第1のセットを含み、第2のソフトウェアアプリケーションは、1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。処理ユニットは、1つ以上のビューの第1のセットの表示を有効にするように構成される。1つ以上のビューの第1のセットは、第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを含む。処理ユニットは、1つ以上のビューの第1のセットを表示している間、タッチセンシティブディスプレイユニットに対するタッチ入力のシーケンスを検出し(タッチ入力のシーケンスは、1つ以上のタッチ入力の第1の部分及び第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む)、且つ1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識するかを判定するように構成される。処理ユニットは、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識すると判定することに従って、タッチ入力のシーケンスを第2のソフトウェアアプリケーションに配信することなく第1のソフトウェアアプリケーションに配信し、且つ1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定するように構成される。処理ユニットは、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理するように構成される。処理ユニットは、1つ以上のジェスチャレコグナイザの第1のセットのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識しないと判定することに従ってタッチ入力のシーケンスを第2のソフトウェアアプリケーションに配信し、1つ以上のジェスチャレコグナイザの第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定し、且つ1つ以上のジェスチャレコグナイザの第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従ってタッチ入力のシーケンスを認識する1つ以上のジェスチャレコグナイザの第2のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理するように構成される。
いくつかの実施形態によると、電子デバイスは、1つ以上のビューを表示するように構成された表示ユニットと、内部状態を格納するように構成されたメモリユニットと、表示ユニット及びメモリユニットに結合された処理ユニットとを備える。処理ユニットは、複数のビューを有するビュー階層を含むソフトウェアを実行し、ビュー階層の1つ以上のビューの表示を有効にし、且つ1つ以上のソフトウェア要素を実行するように構成される。各ソフトウェア要素は特定のビューと関連付けられ、特定のビューの各々は1つ以上の事象レコグナイザを含む。各事象レコグナイザは、1つ以上のサブ事象に基づく1つ以上の事象定義と、事象ハンドラとを有する。事象ハンドラは、対象に対する動作を規定し、1つ以上の事象定義のうちの特定の事象定義に対応する事象を検出する事象レコグナイザに応答して動作を対象に送出するように構成される。処理ユニットは、1つ以上のサブ事象のシーケンスを検出し、且つビュー階層のビューのうちの1つをヒットビューとして識別するように構成される。ヒットビューは、ビュー階層のどのビューが能動的に関わるビューであるかを明らかにする。処理ユニットは、ビュー階層内の能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信するように構成される。ビュー階層における能動的に関わるビューに対する少なくとも1つのジェスチャレコグナイザは複数の事象定義を有し、そのうちの1つが電子デバイスの内部状態に従って選択され、少なくとも1つのジェスチャレコグナイザは、選択された事象定義に従ってサブ事象のシーケンスにおける次のサブ事象を処理する前に各サブ事象を処理する。
いくつかの実施形態に係る電子デバイスを示すブロック図。 いくつかの実施形態に係る電子デバイスを示すブロック図。 いくつかの実施形態に係る電子デバイスを示すブロック図。 いくつかの実施形態に係る例示的な電子デバイスの入出力処理スタックを示す図。 いくつかの実施形態に係る例示的なビュー階層を示す図。 いくつかの実施形態に係る例示的な事象レコグナイザの方法及びデータ構造を示すブロック図。 いくつかの実施形態に係る例示的な事象レコグナイザの方法及びデータ構造を示すブロック図。 いくつかの実施形態に係る事象処理のための例示的な構成要素を示すブロック図。 いくつかの実施形態に係るジェスチャレコグナイザの例示的なクラス及びインスタンスを示すブロック図。 いくつかの実施形態に係る事象情報の流れを示すブロック図。 いくつかの実施形態に係る例示的な状態遷移マシンを示すフローチャート。 いくつかの実施形態に係る例示的な状態遷移マシンを示すフローチャート。 いくつかの実施形態に係る例示的なサブ事象のセットに対する図4A及び図4Bの例示的な状態遷移マシンを示す図。 いくつかの実施形態に係る例示的な事象レコグナイザ状態遷移マシンを含む例示的なサブ事象シーケンスを示す図。 いくつかの実施形態に係る例示的な事象レコグナイザ状態遷移マシンを含む例示的なサブ事象シーケンスを示す図。 いくつかの実施形態に係る例示的な事象レコグナイザ状態遷移マシンを含む例示的なサブ事象シーケンスを示す図。 いくつかの実施形態に係る事象認識方法を示すフローチャート。 いくつかの実施形態に係る事象認識方法を示すフローチャート。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。 いくつかの実施形態に係る事象認識方法を示すフローチャート。 いくつかの実施形態に係る事象認識方法を示すフローチャート。 いくつかの実施形態に係る事象認識方法を示すフローチャート。 いくつかの実施形態に係る事象認識方法を示すフローチャート。 いくつかの実施形態に係る事象認識方法を示すフローチャート。 いくつかの実施形態に係る事象認識方法を示すフローチャート。 いくつかの実施形態に係る事象認識方法を示すフローチャート。 いくつかの実施形態に係る電子デバイスを示す機能ブロック図。 いくつかの実施形態に係る電子デバイスを示す機能ブロック図。 いくつかの実施形態に係る電子デバイスを示す機能ブロック図。
図中、同一の図中符号は対応する部分を示す。
小型画面を備えた電子デバイス(例えば、スマートフォン及びタブレット)は、一般に、多数のアプリケーションがデバイス上で実行している可能性のある場合でも一度に単一のアプリケーションを表示する。これらのデバイスの多くは、タッチ入力としてジェスチャを受信するように構成されたタッチセンシティブディスプレイを有する。そのようなデバイスを使用する場合、ユーザは、非表示アプリケーション(例えば、バックグラウンドで実行するアプリケーションランチャソフトウェアアプリケーション等のバックグラウンドで実行しており且つ電子デバイスのディスプレイに現在表示されていないアプリケーション)により提供される動作を実行したいと思うだろう。非表示アプリケーションにより提供された動作を実行する既存の方法は、一般に、最初に非表示アプリケーションを表示し、次に現在表示されているアプリケーションにタッチ入力を提供することを必要とする。従って、既存の方法は更なるステップを必要とする。更にユーザは、非表示アプリケーションを見たくないかもしれないが、依然として非表示アプリケーションにより提供された動作を実行したいと思うだろう。以下に説明する実施形態において、非表示アプリケーションと対話する改善された方法は、タッチ入力を非表示アプリケーションに配信し、且つ非表示アプリケーションを表示することなく非表示アプリケーションによりタッチ入力を処理することにより実現される。従って、これらの方法は、ジェスチャ入力に基づいて非表示アプリケーションを制御し且つそれと対話する機能を提供する一方で、非表示アプリケーションとの対話を合理化することにより、非表示アプリケーションを表示するために余分な別個のステップは必要なくなる。
更にいくつかの実施形態において、そのような電子デバイスは、複数のジェスチャ定義を含む少なくとも1つのジェスチャレコグナイザを有する。これにより、ジェスチャレコグナイザが種々の別個の動作モードで動作しやすくする。例えばデバイスは、通常の動作モード及びアクセシビリティ動作モード(例えば、視覚障碍者のための)を有してもよい。通常の動作モードにおいて、次のアプリケーションジェスチャは、アプリケーション間を移動するために使用され、3本の指の左スワイプジェスチャとして定義される。アクセシビリティ動作モードにおいて、3本の指の左スワイプジェスチャは、異なる機能を実行するために使用される。従って、3本の指の左スワイプとは異なるジェスチャは、次のアプリケーションジェスチャ(例えば、アクセシビリティ動作モードでの4本の指の左スワイプジェスチャ)に対応するためにアクセシビリティ動作モードで必要とされる。次のアプリケーションジェスチャと関連付けられた多数のジェスチャ定義を有することにより、デバイスは、現在の動作モードに依存して次のアプリケーションジェスチャのジェスチャ定義のうちの1つを選択できる。これにより、種々の動作モードでジェスチャレコグナイザを使用する際に柔軟性を提供する。いくつかの実施形態において、多数のジェスチャ定義を含む複数のジェスチャレコグナイザは、動作モードに依存して調整される(例えば、通常の動作モードで3本の指により実行されたジェスチャは、アクセシビリティ動作モードで4本の指により実行される)。
以下において、図1A〜図1C及び図2は、例示的なデバイスを説明する。図3A〜図3Fは、事象処理のための構成要素及びそのような構成要素の動作(例えば、事象情報の流れ)を説明する。図4A〜図4C及び図5A〜図5Cは、事象レコグナイザの動作を更に詳細に説明する。図6A及び図6Bは、事象認識方法を示すフローチャートである。図7A〜図7Sは、図8A及び図8B、図9A〜図9C、並びに図10の事象認識方法を使用する動作を示す例示的なユーザインタフェースである。図8A及び図8Bは、開いている非表示アプリケーションのジェスチャハンドラにより事象情報を処理する事象認識方法を示すフローチャートである。図9A〜図9Cは、開いている非表示アプリケーション又は表示されたアプリケーションのジェスチャレコグナイザにより事象情報を条件付きで処理する事象認識方法を示すフローチャートである。図10は、単一の事象レコグナイザの複数の事象定義のうちの1つを選択する事象認識方法を示すフローチャートである。
実施形態を詳細に参照する。実施形態の例を添付の図面に示す。以下の詳細な説明において、本発明を完全に理解するために多くの特定の詳細を示す。しかし、本発明は、それら特定の詳細を含まずに実施されてもよいことが当業者には明らかとなるだろう。他の例において、実施形態の態様を不必要に曖昧にしないために、周知の方法、手順、構成要素、回路及びネットワークについては詳細に説明していない。
本明細書において第1、第2等の用語が種々の要素を説明するために使用されてもよいが、それらの要素はこれらの用語により限定されるべきではないことが理解されるだろう。これらの用語は、1つの要素を別の要素と区別するためだけに使用される。例えば本発明の範囲から逸脱せずに、第1のコンタクトが第2のコンタクトと呼ばれてよく、同様に第2のコンタクトが第1のコンタクトと呼ばれてよい。第1のコンタクト及び第2のコンタクトは、双方ともコンタクトであるが同一のコンタクトではない。
本明細書の本発明の説明において使用される専門用語は、特定の実施形態を説明するためだけのものであり、本発明を限定することを意図しない。本発明の説明及び添付の特許請求の範囲において使用されるように、特に指定のない限り、単数形は複数形も含むことを意図する。本明細書で使用されるような「及び/又は」という用語は、一覧表示された関連する項目の1つ以上のあらゆる全ての可能な組合せを参照し且つ含むことが理解されるだろう。「含む」及び/又は「備える」という用語は、本明細書で使用される場合、記載される特徴、数字、ステップ、動作、要素及び/又は構成要素の存在を特定するが、1つ以上の他の特徴、数字、ステップ、動作、要素、構成要素及び/又はそれらのセットの存在又は追加を除外しないことが更に理解されるだろう。
本明細書で使用されるように、「場合」という用語は、状況に応じて「時」、あるいは「判定することに応答して」又は「検出することに応答して」を意味すると解釈されてもよい。同様に、「判定された場合」又は「[明示された状態又は事象]が検出された場合」という句は、状況に応じて「判定した時」又は「判定することに応答して」、あるいは「[明示された状態又は事象]を検出した時」又は「[明示された状態又は事象]を検出することに応答して」を意味すると解釈されてもよい。
本明細書で使用されるように、「事象」(イベント)という用語は、デバイスの1つ以上のセンサにより検出された入力を示す。特に、「事象」という用語は、タッチセンシティブ面に対するタッチを含む。事象は1つ以上のサブ事象を含む。一般にサブ事象は、事象(例えば、タッチダウン、タッチの移動及びタッチのリフトオフはサブ事象でありうる)への変化を示す。1つ以上のサブ事象のシーケンスのサブ事象は、特に、キー押下、キー押下保持、キー押下解放、ボタン押下、ボタン押下保持、ボタン押下解放、ジョイスティック移動、マウスの移動、マウスボタンの押下、マウスボタンの解放、ペンスタイラスのタッチ、ペンスタイラスの移動、ペンスタイラスの解放、音声命令、検出された眼球運動、生体情報認識入力及び検出されたユーザの生理学的変化を含むがそれらに限定されない多くの形態を含んでもよい。事象が単一のサブ事象(例えば、デバイスの短い水平の動き)を含んでもよいため、本明細書で使用されるような「サブ事象」という用語は事象も示す。
本明細書で使用されるように、「事象レコグナイザ」及び「ジェスチャレコグナイザ」という用語は、ジェスチャ又は他の事象(例えば、デバイスの動き)を認識できるレコグナイザを示すために同義で使用される。本明細書で使用されるように、「事象ハンドラ」及び「ジェスチャハンドラ」は、事象/サブ事象又はジェスチャの認識に応答して事前定義済みの動作のセット(例えば、データの更新、オブジェクトの更新及び/又はディスプレイの更新)を実行するハンドラを示すために同義で使用される。
上述したように、入力装置としてタッチセンシティブ面を備えるいくつかのデバイスにおいて、タッチジェスチャの第1のセット(例えば、タップ、ダブルタップ、横スワイプ、縦スワイプのうちの2つ以上)は、特定の状況(例えば、第1のアプリケーションの特定のモード)で適切な入力として認識され、タッチジェスチャの他の異なるセットは、他の状況(例えば、第1のアプリケーション内の異なるアプリケーション及び/あるいは異なるモード又は状況)で適切な入力として認識される。その結果、タッチジェスチャを認識し且つそれに応答するのに必要なソフトウェア及び論理は、複雑になり、アプリケーションが更新される度に又は新しいアプリケーションがコンピューティングデバイスに追加される度に改訂が必要となるだろう。本明細書で説明する実施形態は、事象及び/又はジェスチャ入力を処理する総合的なフレームワークを提供することでこれらの問題に対処する。
以下に説明する実施形態において、タッチジェスチャは事象である。事前定義済みの事象、例えばアプリケーションの現在の状況での適切な入力に対応する事象を認識すると、事象に関する情報はアプリケーションに配信される。また、各事象はサブ事象のシーケンスとして定義される。マルチタッチ表示装置(本明細書では「画面」と呼ばれることが多い)又は他のマルチタッチセンシティブ面を有し、且つマルチタッチジェスチャを受け入れるデバイスにおいて、マルチタッチ事象を定義するサブ事象は、マルチタッチサブ事象(2本以上の指がデバイスのタッチセンシティブ面に同時に接触することを必要とする)を含んでもよい。例えば、マルチタッチセンシティブディスプレイを有するデバイスにおいて、サブ事象のそれぞれのマルチタッチシーケンスは、ユーザの指が最初に画面に触れる際に開始してもよい。1本以上の更なる指が後続して又は同時に画面に触れる際に更なるサブ事象が発生してもよく、画面に触れている全ての指が画面にわたり移動する際に更に他のサブ事象が発生してもよい。ユーザの指が最後に画面から離れた時にシーケンスは終了する。
タッチセンシティブ面を有するデバイスにおいて実行するアプリケーションを制御するためにタッチジェスチャを使用する場合、タッチは時間的側面及び空間的側面の双方を有する。段階と呼ばれる時間的側面は、タッチがちょうど開始した時、タッチが移動しているかあるいは静止しているか及びタッチが終了する時、すなわち指が画面から離れる時を示す。タッチの空間的側面は、タッチが発生するビュー又はユーザインタフェースウィンドウのセットである。タッチが検出されるビュー又はウィンドウは、プログラム階層又はビュー階層内のプログラムレベルに対応してもよい。例えば、タッチが検出される最下位レベルのビューはヒットビューと呼ばれてもよく、適切な入力として認識される事象のセットは、タッチジェスチャを開始する初期タッチのヒットビューに少なくとも部分的に基づいて判定されてもよい。あるいは又は更に、事象は、プログラム階層における1つ以上のソフトウェアプログラム(すなわち、ソフトウェアアプリケーション)に少なくとも部分的に基づいて適切な入力として認識される。例えば、5本の指のピンチジェスチャは、5本の指のピンチジェスチャレコグナイザを有するアプリケーションランチャでは適切な入力として認識されるが、5本の指のピンチジェスチャレコグナイザを有さないウェブブラウザアプリケーションではそのように認識されない。
図1A〜図1Cは、いくつかの実施形態に係る電子デバイス102の種々の実施形態を示すブロック図である。電子デバイス102は、デスクトップコンピュータシステム、ラップトップコンピュータシステム、移動電話、スマートフォン、パーソナルデジタルアシスタント又はナビゲーションシステムを含むがそれに限定されないあらゆる電子デバイスであってもよい。更に電子デバイス102は、ユーザインタフェースを示すように構成されたタッチスクリーンディスプレイ(例えば、図1Bのタッチセンシティブディスプレイ156)を備えたポータブル電子デバイス、ユーザインタフェースを示すように構成されたタッチスクリーンディスプレイを備えたコンピュータ、タッチセンシティブ面を備えたコンピュータ及びユーザインタフェースを示すように構成されたディスプレイ、あるいは消費者電子デバイス、移動電話、テレビゲームシステム、電子音楽プレーヤ、タブレットPC、電子書籍読取りシステム、電子書籍、PDA、電子手帳、電子メールデバイス、ラップトップ又は他のコンピュータ、キオスクコンピュータ、自動販売機、スマート家電等を含むがそれらに限定されない他のあらゆる形態のコンピューティングデバイスであってもよい。電子デバイス102はユーザインタフェース113を含む。
いくつかの実施形態において、電子デバイス102は、タッチセンシティブディスプレイ156(図1B)を含む。これらの実施形態において、ユーザインタフェース113は、電子デバイス102と対話するためにユーザにより使用されるオンスクリーンキーボード(不図示)を含んでもよい。いくつかの実施形態において、電子デバイス102は、1つ以上の入力装置128(例えば、キーボード、マウス、トラックボール、マイク、物理的なボタン、タッチパッド等)を更に備える。いくつかの実施形態において、タッチセンシティブディスプレイ156は、2つ以上の別個の同時の(又は部分的に同時の)タッチを検出する機能を有し、これらの実施形態において、ディスプレイ156は、本明細書でマルチタッチディスプレイ又はマルチタッチセンシティブディスプレイと呼ばれることもある。いくつかの実施形態において、1つ以上の入力装置128のキーボードは、電子デバイス102から独立し且つそれらとは別個であってもよい。例えばキーボードは、電子デバイス102に結合された有線又は無線のキーボードであってもよい。
いくつかの実施形態において、電子デバイス102は、電子デバイス102に結合されるディスプレイ126及び1つ以上の入力装置128(例えば、キーボード、マウス、トラックボール、マイク、物理ボタン、タッチパッド、トラックパッド等)を含む。これらの実施形態において、入力装置128のうちの1つ以上は、オプションとして電子デバイス102から独立し且つそれとは別個であってもよい。例えば1つ以上の入力装置は、キーボード、マウス、トラックパッド、トラックボール及び電子ペンのうちの1つ以上を含んでもよく、それらのうちのいずれかは、オプションとして電子デバイスから独立してもよい。オプションとして、デバイス102は、1つ以上のセンサ116、例えば1つ以上の加速度計、ジャイロスコープ、GPSシステム、スピーカ、赤外線(IR)センサ、生体情報認識センサ、カメラ等を含んでもよい。尚、入力装置128又はセンサ116等の種々の例示的なデバイスの上記の説明は、本明細書で説明する実施形態の動作に対して全く重要ではなく、入力装置として本明細書で説明されるあらゆる入力装置又はセンサデバイスは、センサとしても適切に説明されてもよく、逆も同様である。いくつかの実施形態において、1つ以上のセンサ116により生成された信号は、事象を検出するために入力ソースとして使用される。
いくつかの実施形態において、電子デバイス102は、電子デバイス102(図1B)に結合されるタッチセンシティブディスプレイ156(すなわち、タッチセンシティブ面を有するディスプレイ)及び1つ以上の入力装置128を含む。いくつかの実施形態において、タッチセンシティブディスプレイ156は、2つ以上の別個の同時の(又は部分的に同時の)タッチを検出する機能を有し、これらの実施形態において、ディスプレイ156は、本明細書でマルチタッチディスプレイ又はマルチタッチセンシティブディスプレイと呼ばれることもある。
本明細書で説明される電子デバイス102のいくつかの実施形態において、入力装置128は電子デバイス102に配設される。他の実施形態において、入力装置128のうちの1つ以上は、電子デバイス102から独立し且つそれとは別個である。例えば、入力装置128のうちの1つ以上は、ケーブル(例えば、USBケーブル)、あるいは無線接続(例えば、Bluetooth接続)により電子デバイス102に結合されてもよい。
入力装置128を使用する場合又は電子デバイス102のタッチセンシティブディスプレイ156上でタッチジェスチャを実行する場合、ユーザは、電子デバイス102の1つ以上のCPU110により処理されるサブ事象のシーケンスを生成する。いくつかの実施形態において、電子デバイス102の1つ以上のCPU110は、事象を認識するようにサブ事象のシーケンスを処理する。
一般に電子デバイス102は、1つ以上のシングルコア処理ユニット又はマルチコア処理ユニット(1つ又は複数の「CPU」)110及び1つ以上のネットワーク、あるいは他の通信インタフェース112を含む。電子デバイス102は、メモリ111及びこれらの構成要素を相互接続する1つ以上の通信バス115を含む。通信バス115は、システム構成要素(本明細書では不図示)間の通信を相互接続し且つ制御する回路網(チップセットと呼ばれることもある)を含んでもよい。上述したように、電子デバイス102は、ディスプレイ(ディスプレイ126又はマルチタッチディスプレイ156)を含むユーザインタフェース113を含む。また、一般に電子デバイス102は、入力装置128(例えば、キーボード、マウス、タッチセンシティブ面、キーパッド等)を含む。いくつかの実施形態において、入力装置128は、オンスクリーン入力装置(例えば、表示装置のタッチセンシティブ面)を含む。メモリ111は、DRAM、SRAM、DDR RAM又は他のランダムアクセス固体メモリ素子等の高速ランダムアクセスメモリを含んでもよく、1つ以上の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ素子又は他の不揮発性固体記憶装置等の不揮発性メモリを含んでもよい。メモリ111は、オプションとしてCPU110からリモートで配置された1つ以上の記憶装置を含んでもよい。メモリ111又はメモリ111内の不揮発性メモリ素子は、コンピュータ可読記憶媒体を含む。いくつかの実施形態において、メモリ111又はメモリ111内の不揮発性メモリ素子は、非一時的なコンピュータ可読記憶媒体を含む。いくつかの実施形態において、メモリ111(電子デバイス102の)又はメモリ111のコンピュータ可読記憶媒体は、以下のプログラム、モジュール及びデータ構造又はそれらのサブセットを格納する。
・種々の基本システムサービスを処理し且つハードウェア依存タスクを実行する手順を含むオペレーティングシステム118。
・アプリケーションソフトウェア124の1つ以上のソフトウェアアプリケーションの挙動、あるいはタッチセンシティブディスプレイ156又は入力装置128からのデータを変更してアプリケーションソフトウェア124の1つ以上のソフトウェアアプリケーションのアクセシビリティ又はそこに表示されたコンテンツ(例えば、ウェブページ)へのアクセシビリティを改善するために使用されるアクセシビリティモジュール127(図1C)(例えば、視覚障害者又は運動能力が限られた人のための)。
・電子デバイス102を1つ以上のそれぞれの通信インタフェース112(有線又は無線)、並びに1つ以上の通信ネットワーク、例えばインターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク及びメトロポリタンエリアネットワーク等を介して他のデバイスに接続するために使用される通信モジュール120。
・ディスプレイ126又はタッチセンシティブディスプレイ156にユーザインタフェースオブジェクトを含むユーザインタフェースを表示するために使用されるユーザインタフェースモジュール123(図1C)。
・処理(例えば、ヒットビュー判定、スレッド管理及び/又は事象監視等)を制御するために使用される制御アプリケーション132(図1C)。いくつかの実施形態において、制御アプリケーション132はランタイムアプリケーションを含み、他の実施形態において、ランタイムアプリケーションは制御アプリケーション132を含む。
・オペレーティングシステム118内の種々の別の実施形態において又はアプリケーションソフトウェア124で実現されてもよい事象配信システム122(電子デバイス102のそれぞれにおける)。しかし、いくつかの実施形態において、事象配信システム122のいくつかの態様がオペレーティングシステム118において実現されてもよいのに対し、他の態様はアプリケーションソフトウェア124で実現される。
・1つ以上のソフトウェアアプリケーション(例えば、各々が電子メールアプリケーション、ウェブブラウザアプリケーション、メモアプリケーション、テキストメッセージングアプリケーション等のうちの1つでありうる図1Cのアプリケーション133−1、133−2及び133−3)を含むアプリケーションソフトウェア124。それぞれのソフトウェアアプリケーションは、一般に、少なくとも実行中にそれぞれのソフトウェアアプリケーション及びその構成要素(例えば、ジェスチャレコグナイザ)の状態を示すアプリケーション状態を有する。以下に説明するアプリケーション内部状態321(図3D)を参照されたい。
・ソフトウェアアプリケーション及びそれらの構成要素(例えば、ジェスチャレコグナイザ及びデリゲート)の状態を示すアプリケーション状態と、タッチスクリーンディスプレイ156又はディスプレイ126の種々の領域を占有するアプリケーション、ビュー又は他の情報を示す表示状態と、デバイスの種々のセンサ116、入力装置128及び/又はタッチセンシティブディスプレイ156から取得された情報を含むセンサ状態と、デバイスの場所及び/又は姿勢に関する場所情報と、他の状態とのうちの1つ以上を含むデバイス/グローバル内部状態134(図1C)。
明細書及び特許請求の範囲において使用されるように、「開いているアプリケーション」という用語は、保存された状態の情報(例えば、デバイス/グローバル内部状態134及び/又はアプリケーション内部状態321(図3D)の一部として)を含むソフトウェアアプリケーションを示す。開いているアプリケーションは、以下の種類のアプリケーションのうちのいずれか1つである。
・ディスプレイ126又はタッチセンシティブディスプレイ156上に現在表示されているアクティブなアプリケーション(あるいは、対応するアプリケーションビューがディスプレイ上に現在表示されている)
・ディスプレイ126又はタッチセンシティブディスプレイ156上に現在表示されていないバックグラウンドアプリケーション(又はバックグラウンド処理)。しかし、対応するアプリケーションに対する1つ以上のアプリケーション処理(例えば、命令)は、1つ以上のプロセッサ110により処理されている(すなわち、実行している)
・現在実行していない中断されたアプリケーションであり、揮発性メモリ(例えば、DRAM、SRAM、DDR RAM又はメモリ111の他の揮発性ランダムアクセス固体メモリ素子)に格納される
・実行していない休止状態のアプリケーションであり、不揮発性メモリ(例えば、1つ以上の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ素子又はメモリ111の他の不揮発性ランダムアクセス固体メモリ素子)に格納される
本明細書で使用されるように、「閉じられたアプリケーション」という用語は、保存された状態の情報を含まないソフトウェアアプリケーションを示す(例えば、閉じられたアプリケーションに対する状態情報は、デバイスのメモリに格納されない)。従って、アプリケーションを閉じることは、アプリケーションに対するアプリケーション処理を停止及び/又は除去すること、並びにアプリケーションに対する状態情報をデバイスのメモリから除去することを含む。一般に、第1のアプリケーションにある間に第2のアプリケーションを開いても第1のアプリケーションは閉じない。第2のアプリケーションが表示され且つ第1のアプリケーションの表示を中止する場合、表示された時にアクティブなアプリケーションであった第1のアプリケーションは、バックグラウンドアプリケーション、中断されたアプリケーション又は休止状態のアプリケーションになってもよいが、その状態情報がデバイスにより保存される間は開いているアプリケーションのままである。
先に識別された要素の各々は、上述のメモリ素子のうちの1つ以上に格納されてもよく、本明細書で説明する機能を実行する命令のセットに対応する。命令のセットは、1つ以上のプロセッサ(例えば、1つ以上のCPU110)により実行される。先に識別されたモジュール又はプログラム(すなわち、命令のセット)が別個のソフトウェアプログラム、手順又はモジュールとして実現される必要はないため、これらのモジュールの種々のサブセットは、種々の実施形態において組み合わされてもよくあるいは再配置されてもよい。いくつかの実施形態において、メモリ111は、先に識別されたモジュール及びデータ構造のサブセットを格納してもよい。更にメモリ111は、上述されていない更なるモジュール及びデータ構造を格納してもよい。
図2は、本発明のいくつかの実施形態に係る例示的な電子デバイス又は電子装置(例えば、デバイス102)の入出力処理スタック200を示す図である。デバイスのハードウェア(例えば、電子回路網)212は、入出力処理スタック200のベースレベルにある。ハードウェア212は、図1A及び/又は図1Bに示された構成要素等の種々のハードウェアインタフェース構成要素を含むことができる。ハードウェア212は、上述のセンサ116のうちの1つ以上を更に含むことができる。入出力処理スタック200の他の要素(202〜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を利用できる。デバイス上で実行するアプリケーションソフトウェア(「アプリケーション」)202は、ユーザと通信するためにUI API204を利用できる。その結果、UI API204は、より低いレベルの要素と通信でき、最終的にはマルチタッチディスプレイ156等の種々のユーザインタフェースハードウェアと通信する。いくつかの実施形態において、アプリケーションソフトウェア202は、アプリケーションソフトウェア124(図1A)のアプリケーションを含む。
入出力処理スタック200の各層は、必ずしも必要とされない入出力処理スタック200より下の層を利用できる。例えば、いくつかの実施形態において、アプリケーション202はOS API206と直接通信してもよい。一般にOS API層206以上の層は、専用であると考えられるため、コアOS208、ドライバ210又はハードウェア212に直接アクセスしなくてもよい。アプリケーション202及びUI API204の層は、通常、OS API206に対して直接呼び出すことにより、コアOS208、ドライバ210及びハードウェア212の層にアクセスする。
換言すると、電子デバイス102の1つ以上のハードウェア要素212及びデバイス上で実行するソフトウェアは、入力装置128のうちの1つ以上及び/又はタッチセンシティブディスプレイ156で入力事象(ジェスチャのサブ事象に対応してもよい)を検出し、入力事象がアプリケーション124に配信される事象に対応するか及びいつ対応するかを判定するために現在アクティブな事象レコグナイザのセットにより使用された種々のデータ構造(デバイス102のメモリに格納された)を生成又は更新する。事象認識の技法、装置及びコンピュータプログラムの実施形態を以下に更に詳細に説明する。
図3Aは、本例では最も外側のビュー302に表示された検索プログラムである例示的なビュー階層300を示す。最も外側のビュー302は、一般に、ユーザが直接対話してもよいユーザインタフェース全体を含み、例えば以下のような従属ビューを含む。
・検索結果をグループ化し且つ縦方向にスクロール可能な検索結果パネル304
・文字入力を受け入れる検索フィールド306
・迅速にアクセスするためにアプリケーションをグループ化するホームキー列310
本例において、各従属ビューは下位レベルの従属ビューを含む。他の例において、階層300におけるビューレベルの数は、階層の種々の分岐で異なってもよく、1つ以上の従属ビューは下位レベルの従属ビューを有し、1つ以上の他の従属ビューはそのような下位レベルの従属ビューを全く有さない。引き続き図3Aに示された例を参照すると、検索結果パネル304は、検索結果毎に別個の従属ビュー305(パネル304に従属する)を含む。本明細書において、この例は、マップビュー305と呼ばれた従属ビューにおいて1つの検索結果を示す。検索フィールド306は、本明細書でクリアコンテンツアイコンビュー307と呼ばれる従属ビューを含む。クリアコンテンツアイコンビュー307は、ユーザがビューのクリアコンテンツアイコン307上で特定の動作(例えば、シングルタッチジェスチャ又はシングルタップジェスチャ)を実行する場合に検索フィールドのコンテンツをクリアする。ホームキー列310は、それぞれ、連絡先アプリケーション、電子メールアプリケーション、ウェブブラウザ及びiPodミュージックインタフェースに対応する従属ビュー310−1、310−2、310−3及び310−4を含む。
タッチサブ事象301−1は最も外側のビュー302示される。検索結果パネル304及びマップビュー305の双方の上にタッチサブ事象301−1の場所が与えられたとすると、タッチサブ事象は、それぞれ、301−2及び301−3としてこれらのビュー上に更に示される。タッチサブ事象の能動的に関わるビューは、ビュー検索結果パネル304、マップビュー305及び最も外側のビュー302を含む。図3B及び図3Cを参照して、サブ事象配信及び能動的に関わるビューに関する更なる情報を以下に提供する。
ビュー(及び対応するプログラムレベル)はネストされる。換言すると、ビューは他のビューを含むことができる。その結果、第1のビューと関連付けられたソフトウェア要素(例えば、事象レコグナイザ)は、第1のビュー内のビューと関連付けられた1つ以上のソフトウェア要素を含むことができるか、あるいはそれにリンクされる。アプリケーションと関連付けられるビューもあれば、高レベルのOS要素、例えばグラフィカルユーザインタフェース、ウィンドウマネージャ等と関連付けられるビューもある。
後続の説明を簡略化するために、一般にビュー及びビュー階層のみを参照するが、いくつかの実施形態において、方法は、複数のプログラム層を有するプログラム階層及び/又はビュー階層で動作してもよいことが理解されるべきである。いくつかの実施形態において、いくつかのビューは他のOS要素と関連付けられる。いくつかの実施形態において、ビュー階層は、複数のソフトウェアアプリケーションからのビューを含む。例えばビュー階層は、アプリケーションランチャからのビュー(例えば、ホーム画面)及びウェブブラウザアプリケーションからのビュー(例えば、ウェブページのコンテンツを含むビュー)を含んでもよい。
プログラム階層は、階層における1つ以上のソフトウェア要素又はソフトウェアアプリケーションを含む。後続の説明を簡略化するために、一般にビュー及びビュー階層のみを参照するが、いくつかの実施形態において、方法は、複数のプログラム層を有するプログラム階層及び/又はビュー階層で動作してもよいことが理解されるべきである。
図3B及び図3Cは、事象レコグナイザに関連した例示的な方法及び構造を示す。図3Bは、事象ハンドラがビューの階層内の特定のビューと関連付けられる場合の事象処理の方法及びデータ構造を示す。図3Cは、事象ハンドラがプログラムレベルの階層内の特定のレベルと関連付けられる場合の事象処理の方法及びデータ構造を示す。事象レコグナイザグローバルメソッド312及び350は、それぞれ、ヒットビュー判定モジュール314及びヒットレベル判定モジュール352と、アクティブ事象レコグナイザ判定モジュール316及び354と、サブ事象配信モジュール318及び356とを含む。
いくつかの実施形態において、電子デバイス102は、事象レコグナイザグローバルメソッド312及び350のうちの1つ以上を含む。いくつかの実施形態において、電子デバイス102は、ヒットビュー判定モジュール314及びヒットレベル判定モジュール352のうちの1つ以上を含む。いくつかの実施形態において、電子デバイス102は、アクティブ事象レコグナイザ判定モジュール316及び354のうちの1つ以上を含む。いくつかの実施形態において、電子デバイス102は、サブ事象配信モジュール318及び356のうちの1つ以上を含む。いくつかの実施形態において、これらの方法及びモジュールのうちの1つ以上は、より少ない方法及びモジュール又はより多い方法及びモジュールに含まれる。例えば、いくつかの実施形態において、電子デバイス102は、ヒットビュー判定モジュール314及びヒットレベル判定モジュール352の機能性を含むヒットビュー/レベル判定モジュールを含む。いくつかの実施形態において、電子デバイス102は、アクティブ事象レコグナイザ判定モジュール316及び354の機能性を含むアクティブ事象レコグナイザ判定モジュールを含む。
ヒットビュー判定モジュール314及びヒットレベル判定モジュール352は、それぞれ、1つ以上のビュー(例えば3つの主な分岐を有する図3Aに示された例示的なビュー階層300)及び/又はサブ事象に対応するプログラム階層における1つ以上のソフトウェア要素(例えば、図1Cのアプリケーション133のうちの1つ以上)内でサブ事象が発生した場所を判定するソフトウェア手順を提供する。
図3Bのヒットビュー判定モジュール314は、最も外側のビュー302、検索結果(マップビュー305)及び検索結果パネルビュー304上に301−1として示されたユーザタッチ等のサブ事象に関連した情報を受信する。ヒットビュー判定モジュール314は、サブ事象を処理すべき階層における最下位レベルのビューとしてヒットビューを識別する。殆どの状況において、ヒットビューは、初期サブ事象(すなわち、事象又は潜在的な事象を形成するサブ事象のシーケンスの第1のサブ事象)が発生する最下位レベルのビューである。いくつかの実施形態において、ヒットビューは、識別されると、ヒットビューが識別された同一のタッチ又は入力ソースに関連した全てのサブ事象を受信する。いくつかの実施形態において、1つ以上の他のビュー(例えば、デフォルト又は事前定義済みのビュー)は、ヒットビューが受信するサブ事象のうちの少なくともいくつかを受信する。
いくつかの実施形態において、図3Cのヒットレベル判定モジュール352は、類似の処理を利用してもよい。例えば、いくつかの実施形態において、ヒットレベル判定モジュール352は、サブ事象を処理すべきプログラム階層における最下位レベルであるヒットレベル(又はプログラム階層における最下位プログラムレベルのソフトウェアアプリケーション)を識別する。いくつかの実施形態において、ヒットレベルが識別されると、ヒットレベル又はヒットレベルのソフトウェアアプリケーションは、ヒットレベルが識別された同一のタッチ又は入力ソースに関連した全てのサブ事象を受信する。いくつかの実施形態において、1つ以上の他のレベル又はソフトウェアアプリケーション(例えば、デフォルト又は事前定義済みのソフトウェアアプリケーション)は、ヒットビューが受信するサブ事象のうちの少なくともいくつかを受信する。
事象レコグナイザグローバルメソッド312及び350のアクティブ事象レコグナイザ判定モジュール316及び354は、それぞれ、ビュー階層及び/又はプログラム階層内の1つ又は複数のビューがサブ事象の特定のシーケンスを受信すべきかを判定する。図3Aは、サブ事象301を受信する例示的なアクティブなビュー302、304及び305のセットを示す。図3Aの例において、アクティブ事象レコグナイザ判定モジュール316は、最も外側のビュー302、検索結果パネル304及びマップビュー305がサブ事象301により示されたタッチの物理的位置を含むため、これらのビューが能動的に関わるビューであると判定するだろう。尚、タッチサブ事象301がマップビュー305と関連付けられた領域に全体的に限定されたとしても、検索結果パネル304及び最も外側のビュー302は、マップビュー305の祖先であるため、能動的に関わるビューに依然として存在するだろう。
いくつかの実施形態において、アクティブ事象レコグナイザ判定モジュール316及び354は類似の処理を利用してもよい。図3Aの例において、マップアプリケーションのビューが表示され且つ/あるいはサブ事象301により示されたタッチの物理的な場所を含むため、アクティブ事象レコグナイザ判定モジュール350は、マップアプリケーションが能動的に関わると判定する。尚、タッチサブ事象301がマップアプリケーションと関連付けられた領域に全体的に制限される場合でも、プログラム階層における他のアプリケーションは、能動的に関わるアプリケーション(又は能動的に関わるプログラムレベルのアプリケーション)のままであってもよい。
サブ事象配信モジュール318は、能動的に関わるビューに対する事象レコグナイザにサブ事象を配信する。図3Aの例を使用して、タッチマーク301−1、301−2及び301−3によりユーザのタッチを階層の種々のビューに示す。いくつかの実施形態において、このユーザのタッチを示すサブ事象データは、能動的に関わるビュー、すなわち最上位レベルのビュー302、検索結果パネル304及びマップビュー305において、サブ事象配信モジュール318により事象レコグナイザに配信される。また、ビューの事象レコグナイザは、ビュー内で開始する事象の後続のサブ事象を受信できる(例えば、初期サブ事象がビュー内で発生する場合)。換言すると、ビューは、ビューの外側に継続する場合でも、ビューで開始するユーザ対話と関連付けられたサブ事象を受信できる。
いくつかの実施形態において、サブ事象配信モジュール356は、サブ事象配信モジュール318により使用された処理に類似する処理において、能動的に関わるプログラムレベルに対する事象レコグナイザにサブ事象を配信する。例えばサブ事象配信モジュール356は、能動的に関わるアプリケーションに対する事象レコグナイザにサブ事象を配信する。図3Aの例を使用して、ユーザのタッチ301は、能動的に関わるビュー(例えば、プログラム階層におけるマップアプリケーション及び他のあらゆる能動的に関わるアプリケーション)において、サブ事象配信モジュール356により事象レコグナイザに配信される。いくつかの実施形態において、デフォルト又は事前定義済みのソフトウェアアプリケーションは、デフォルトによりプログラム階層に含まれる。
いくつかの実施形態において、別個の事象レコグナイザ構造320又は360は、能動的に関わる事象レコグナイザ毎に生成され且つデバイスのメモリに格納される。一般に事象レコグナイザ構造320及び360は、それぞれ、事象レコグナイザ状態334、374(図4A及び図4Bを参照する際に以下に更に詳細に説明する)、それぞれが状態遷移マシン340、380を有する事象レコグナイザ専用コード338、378を含む。事象レコグナイザ構造320はビュー階層基準336を更に含み、事象レコグナイザ構造360はプログラム階層基準376を含む。特定の事象レコグナイザの各例は、厳密に1つのビュー又はプログラムレベルを参照する。ビュー階層基準336又はプログラム階層基準376(特定の事象レコグナイザに対する)は、各事象レコグナイザに論理的に結合されるビュー又はプログラムレベルを明らかにするために使用される。
ビューメタデータ341及びレベルメタデータ381は、それぞれ、ビュー又はレベルに関するデータを含んでもよい。ビューメタデータ又はレベルメタデータは、事象レコグナイザへのサブ事象配信に影響を及ぼす可能性のある少なくとも以下のプロパティを含んでもよい。
・ビュー又はプログラムレベルに対して設定された場合、ビュー又はプログラムレベル及びビュー又はプログラム階層における祖先と関連付けられた事象レコグナイザへのサブ事象配信を防止する停止プロパティ342、382。
・ビュー又はプログラムレベルに対して設定された場合、ビュー又はプログラムレベルと関連付けられた事象レコグナイザへのサブ事象配信を防止するが、ビュー又はプログラム階層における祖先へのサブ事象配信を可能にするスキッププロパティ343、383。
・ビューに対して設定された場合、ビューがヒットビューでない限り、ビューと関連付けられた事象レコグナイザへのサブ事象の配信を防止するNoHitスキッププロパティ344、384。上述したように、ヒットビュー判定モジュール314は、サブ事象を処理すべき階層における最下位レベルのビューとしてヒットビュー(又はヒットレベル判定モジュール352の場合はヒットレベル)を識別する。
事象レコグナイザ構造320及び360は、それぞれ、メタデータ322、362を含んでもよい。いくつかの実施形態において、メタデータ322、362は、事象配信システムが能動的に関わる事象レコグナイザへのサブ事象配信を実行すべき方法を示す設定可能なプロパティ、フラグ及びリストを含む。いくつかの実施形態において、メタデータ322、362は、事象レコグナイザが互いに対話してもよい方法を示す設定可能なプロパティ、フラグ及びリストを含んでもよい。いくつかの実施形態において、メタデータ322、362は、ビュー又はプログラム階層における変動レベルにサブ事象が配信されるかを示す設定可能なプロパティ、フラグ及びリストを含んでもよい。いくつかの実施形態において、事象レコグナイザメタデータ322、362とビューメタデータ又はレベルメタデータ(341、381のそれぞれ)との組合せは、双方とも、a)能動的に関わる事象レコグナイザへのサブ事象配信を実行し、b)事象レコグナイザが互いに対話してもよい方法を示し、且つc)サブ事象がビュー又はプログラム階層において種々のレベルに配信されるか及び配信される時を示すように事象配信システムを設定するために使用される。
尚、いくつかの実施形態において、各事象レコグナイザは、事象レコグナイザの構造320、360のフィールドにより規定されたように、事象認識動作333、373をそれぞれの対象335、375に送出する。動作を対象に送出することは、サブ事象をそれぞれのヒットビュー又はヒットレベルに送出(及び遅延送出)することとは異なる。
対応する事象レコグナイザのそれぞれの事象レコグナイザ構造320、360に格納されたメタデータプロパティは、以下のうちの1つ以上を含む。
・事象レコグナイザに対して設定された場合、事象レコグナイザにより事象を認識すると、事象配信システムが、能動的に関わるビュー又はプログラムレベルの他のあらゆる事象レコグナイザ(例外リスト326、366に列挙された他のあらゆる事象レコグナイザを除く)へのサブ事象の配信を停止すべきことを示す排他的フラグ324、364。対応する排他的フラグ324又は364により示されたように、サブ事象を受信することにより特定の事象レコグナイザが排他的状態になる場合、後続のサブ事象は、排他的状態の事象レコグナイザ(及び例外リスト326、366に列挙された他のあらゆる事象レコグナイザ)にのみ配信される。
・いくつかの事象レコグナイザ構造320、360は、排他的例外リスト326、366を含んでもよい。このリスト326、366は、各事象レコグナイザに対する事象レコグナイザ構造320、360に含まれる場合、各事象レコグナイザが排他的状態になった後もサブ事象を受信し続ける事象レコグナイザのセットを示す。例えば、シングルタップ事象に対する事象レコグナイザが排他的状態になり、且つ現在含まれているビューがダブルタップ事象に対する事象レコグナイザを含む場合、リスト320、360は、シングルタップ事象が検出された後もダブルタップ事象を認識できるように、ダブルタップ事象レコグナイザを列挙するだろう。従って、排他的例外リスト326、366により、事象レコグナイザは、サブ事象の共通のシーケンスを共有する種々の事象を認識できる。例えばシングルタップ事象認識は、他の事象レコグナイザによるダブルタップ事象又はトリプルタップ事象の後続認識を排除しない。
・いくつかの事象レコグナイザ構造320、360は、待ちリスト327、367を含んでもよい。このリスト327、367は、各事象レコグナイザに対する事象レコグナイザ構造320、360に含まれる場合、各事象レコグナイザがそれぞれの事象を認識できる前に事象不可能状態又は事象取り消し状態になるべきである事象レコグナイザのセットを示す。実質的に、列挙された事象レコグナイザは、事象を認識するための優先順位が待ちリスト327、367を含む事象レコグナイザより高い。
・事象レコグナイザに対して設定された場合、サブ事象のシーケンスがこの事象レコグナイザの事象の種類に対応しないと判定されるまで、事象レコグナイザがサブ事象(タッチ開始サブ事象又はフィンガーダウンサブ事象及び後続の事象を含む)を事象レコグナイザのそれぞれのヒットビュー又はヒットレベルに送出するのを遅延させる遅延タッチ開始済フラグ328、368。このフラグは、ジェスチャが認識される場合にヒットビュー又はヒットレベルがいずれかのサブ事象を参照するのを防止するために使用可能である。事象レコグナイザが事象を認識できない場合、タッチ開始済サブ事象(及びサブ後続タッチ終了サブ事象)は、ヒットビュー又はヒットレベルに配信される。一例において、そのようなサブ事象をヒットビュー又はヒットレベルに配信することにより、ユーザインタフェースは、オブジェクトと関連付けられた動作を呼び出すことなく、そのオブジェクトを簡単に強調表示する。
・事象レコグナイザに対して設定された場合、サブ事象のシーケンスがこの事象レコグナイザの事象の種類に対応しないと判定されるまで、事象レコグナイザがサブ事象(例えば、タッチ終了サブ事象)を事象レコグナイザのそれぞれのヒットビュー又はヒットレベルに送出するのを遅延させる遅延タッチ終了フラグ330、370。これは、ジェスチャが後で認識される場合にヒットビュー又はヒットレベルがタッチ終了サブ事象に影響を及ぼすのを防止するために使用可能である。タッチ終了サブ事象が送出されない限り、取り消されたタッチをヒットビュー又はヒットレベルに送出できる。事象が認識される場合、アプリケーションにより対応する動作が実行され、タッチ終了サブ事象はヒットビュー又はヒットレベルに配信される。
・事象レコグナイザに対して設定された場合、サブ事象のシーケンスがこの事象レコグナイザの事象の種類に対応しないと判定されている際、事象レコグナイザにタッチ取り消し又は入力取り消しを事象レコグナイザのそれぞれのヒットビュー又はヒットレベルに送出させるタッチ取り消しフラグ332、372。ヒットビュー又はヒットレベルに送出されたタッチ取り消し又は入力取り消しは、先行するサブ事象(例えば、タッチ開始済サブ事象)が取り消されたことを示す。タッチ取り消し又は入力取り消しにより、入力ソースハンドラの状態(図4Bを参照)は入力シーケンス取り消し済状態460(以下に説明する)になってもよい。
いくつかの実施形態において、非排他的事象レコグナイザは、例外リスト326、366を更に使用できる。特に、非排他的事象レコグナイザが事象を認識する場合、後続のサブ事象は、事象を認識した事象レコグナイザの例外リスト326、366に列挙された排他的事象レコグナイザを除いて、現在アクティブなビューと関連付けられた排他的事象レコグナイザに配信されない。
いくつかの実施形態において、事象レコグナイザは、望ましくないサブ事象がヒットビューに配信されるのを防止するために、遅延タッチ終了フラグと組み合わせてタッチ取り消しフラグを利用するように構成されてもよい。例えば、シングルタップジェスチャの定義とダブルタップジェスチャの前半とは同一である。シングルタップ事象レコグナイザがシングルタップを正常に認識すると、望ましくない動作が起こるだろう。遅延タッチ終了フラグが設定される場合、シングルタップ事象が認識されるまで、シングルタップ事象レコグナイザがサブ事象をヒットビューに送出するのを防止する。また、シングルタップ事象レコグナイザの待ちリストがダブルタップ事象レコグナイザを識別できるため、ダブルタップ事象レコグナイザが事象不可能状態になるまで、シングルタップ事象レコグナイザがシングルタップを認識するのを防止する。待ちリストを使用することにより、ダブルタップジェスチャが実行される際にシングルタップと関連付けられた動作の実行を回避する。その代わり、ダブルタップ事象の認識に応答して、ダブルタップと関連付けられた動作のみが実行される。
タッチセンシティブ面上のユーザタッチの形態を特に参照すると、上述したように、タッチ及びユーザジェスチャは瞬時でなくてもよい動作を含んでもよく、例えばタッチは、ある期間ディスプレイに対して指を移動又は保持する動作を含んでよい。しかし、タッチデータ構造は、特定の時間のタッチの状態(すなわち、より一般的にはあらゆる入力ソースの状態)を定義する。従って、タッチデータ構造に格納された値がシングルタッチのコースを変更する可能性があるため、異なる時点のシングルタッチの状態をアプリケーションに搬送できるようになる。
各タッチデータ構造は種々のフィールドを含むことができる。いくつかの実施形態において、タッチデータ構造は、少なくとも図3Bのタッチ専用フィールド339又は図3Cの入力ソース専用フィールド379に対応するデータを含んでもよい。
例えば、図3Bの「ビューに対する第1のタッチ」フィールド345(図3Cの「レベルに対する第1のタッチ」385)は、タッチデータ構造が特定のビューに対する第1のタッチを定義するかを示すことができる(ビューを実現するソフトウェア要素がインスタンス化されたため)。「タイムスタンプ」フィールド346、386は、タッチデータ構造が関連する特定の時間を示すことができる。
オプションとして、「情報」フィールド347、387は、タッチが基本的なジェスチャであるかを示すために使用可能である。例えば「情報」フィールド347、387は、タッチがスワイプであるか及びスワイプである場合にはスワイプが向けられる方向を示すことができる。スワイプとは、1本以上の指を直線方向に迅速にドラッグすることである。APIの実現例(以下に説明する)は、タッチがスワイプであるかを判定し且つその情報を「情報」フィールド347、387を介してアプリケーションに渡すことにより、タッチがスワイプであった場合に必要であったと考えられるあるデータ処理のアプリケーションを減少させることができる。
オプションとして、図3Bの「タップカウント」フィールド348(図3Cの「事象カウント」フィールド388)は、初期タッチの位置で順次実行されたタップの数を示すことができる。タップは、特定の位置でタッチセンシティブパネルに対して指を迅速に押下し且つ離すものとして定義される。指がパネルの同一の位置で迅速に継続して再度押下され且つ解放される場合、複数の連続したタップが発生する。事象配信システム122は、タップをカウントし、且つ「タップカウント」フィールド348を介してこの情報をアプリケーションに中継できる。同一の場所における多数のタップは、有用であり且つタッチ対応インタフェースに対する覚えやすいコマンドであると考えられることもある。従って、タップをカウントすることにより、事象配信システム122は、アプリケーションからのあるデータ処理を再度減少させることができる。
「段階」フィールド349、389は、タッチジェスチャが現在ある特定の段階を示すことができる。段階フィールド349、389は、タッチデータ構造が先行するタッチデータ構造により参照されていない新しいタッチを定義することを示すことができる「タッチ段階開始済」等の種々の値を有することができる。「タッチ段階移動済」値は、定義されているタッチが従来の位置から移動したことを示すことができる。「タッチ段階静止」値は、タッチが同一の位置に留まっていることを示すことができる。「タッチ段階終了済」値は、タッチが終了した(例えば、ユーザがマルチタッチディスプレイの表面から指を離した)ことを示すことができる。「タッチ段階取り消し済」値は、タッチがデバイスにより取り消されたことを示すことができる。取り消されたタッチは、ユーザにより必ずしも終了されなくてもよいが、デバイスが無視することを決定したタッチである。例えばデバイスは、タッチが意図せず(すなわち、ポータブルマルチタッチ対応デバイスをポケットに入れた結果)生成されていると判定し、且つその理由によりタッチを無視できる。「段階フィールド」349、389の各値は整数であってよい。
従って、各タッチデータ構造は、特定の時間にそれぞれのタッチ(又は他の入力ソース)で発生していること(例えば、タッチが静止しているか、移動しているか等)及びタッチと関連付けられた他の情報(位置等)を定義できる。従って、各タッチデータ構造は、特定の瞬間の特定のタッチの状態を定義できる。同一の時間を参照する1つ以上のタッチデータ構造は、特定のビューが瞬間に受信している全てのタッチの状態を定義できるタッチ事象データ構造に追加される(上述したように、いくつかのタッチデータ構造は、終了し且つもはや受信されていないタッチを更に参照してもよい)。多数のタッチ事象データ構造は、ビューで発生しているタッチを示す連続した情報をソフトウェアに提供するために、時間が経つにつれビューを実現するソフトウェアに送出される。
図3Dは、いくつかの実施形態に係る事象処理のための例示的な構成要素(例えば、事象処理構成要素390)を示すブロック図である。いくつかの実施形態において、メモリ111(図1A)は、事象レコグナイザグローバルメソッド312及び1つ以上のアプリケーション(例えば、133−1〜133−3)を含む。
いくつかの実施形態において、事象レコグナイザグローバルメソッド312は、事象モニタ311と、ヒットビュー判定モジュール314と、アクティブ事象レコグナイザ判定モジュール316と、事象ディスパッチャモジュール315とを含む。いくつかの実施形態において、事象レコグナイザグローバルメソッド312は、事象配信システム122(図1A)内に配置される。いくつかの実施形態において、事象レコグナイザグローバルメソッド312は、オペレーティングシステム118(図1A)において実現される。あるいは、事象レコグナイザグローバルメソッド312は、それぞれのアプリケーション133−1において実現される。更に他の実施形態において、事象レコグナイザグローバルメソッド312は、スタンドアロンモジュール又はメモリ111に格納された別のモジュール(例えば、接触/動きモジュール(不図示))の一部として実現される。
事象モニタ311は、1つ以上のセンサ116、タッチセンシティブディスプレイ156及び/又は1つ以上の入力装置128から事象情報を受信する。事象情報は、事象(例えば、マルチタッチジェスチャ又はデバイス102の動きの一部であるタッチセンシティブディスプレイ156に対するユーザタッチ)及び/又はサブ事象(例えば、タッチセンシティブディスプレイ156にわたるタッチの移動)に関する情報を含む。例えば、タッチ事象に対する事象情報は、タッチの場所及びタイムスタンプのうちの1つ以上を含む。同様に、スワイプ事象に対する事象情報は、スワイプの場所、タイムスタンプ、方向及び速度のうちの2つ以上を含む。センサ116、タッチセンシティブディスプレイ156及び入力装置128は、直接又は事象情報を検索及び格納する周辺インタフェースを介して、情報事象及びサブ事象情報を事象モニタ311に送信する。センサ116は、近接センサ、加速度計、ジャイロスコープ、マイク及びビデオカメラのうちの1つ以上を含む。いくつかの実施形態において、センサ116は、入力装置128及び/又はタッチセンシティブディスプレイ156を更に含む。
いくつかの実施形態において、事象モニタ311は、所定の間隔でセンサ116及び/又は周辺インタフェースに要求を送出する。それに応答して、センサ116及び/又は周辺インタフェースは事象情報を送信する。他の実施形態において、センサ116及び/又は周辺インタフェース118は、重要な事象(例えば、所定の雑音閾値を超え且つ/又は所定の期間より長い期間の入力の受信)があった時にのみ事象情報を送信する。
事象モニタ311は、事象情報を受信して事象ディスパッチャモジュール315に中継する。いくつかの実施形態において、事象モニタ311は、事象情報の配信先となる1つ以上のそれぞれのアプリケーション(例えば、133−1)を判定する。いくつかの実施形態において、事象モニタ311は、事象情報の配信先となる1つ以上のそれぞれのアプリケーションの1つ以上のそれぞれのアプリケーションビュー317を更に判定する。
いくつかの実施形態において、事象レコグナイザグローバルメソッド312は、ヒットビュー判定モジュール314及び/又はアクティブ事象レコグナイザ判定モジュール316を更に含む。
ヒットビュー判定モジュール314は、存在する場合に、タッチセンシティブディスプレイ156が2つ以上のビューを表示した時に1つ以上のビュー内で事象又はサブ事象が行われた場所を判定するソフトウェア手順を提供する。ビューは、ユーザがディスプレイ上で見られる制御及び他の要素から構成される。
それぞれのアプリケーションと関連付けられたユーザインタフェースの別の態様は、本明細書においてアプリケーションビュー又はユーザインタフェースウィンドウと呼ばれることもあるビュー317のセットであり、このビューにおいて、情報が表示され且つタッチジェスチャが発生する。タッチが検出されるアプリケーションビュー(それぞれのアプリケーションの)は、アプリケーションのビュー階層内の特定のビューに対応してもよい。例えばタッチが検出される最下位レベルのビューはヒットビューと呼ばれてもよく、適切な入力として認識される事象のセットは、タッチジェスチャを開始する最初のタッチのヒットビューに少なくとも部分的に基づいて判定されてもよい。
ヒットビュー判定モジュール314は、事象及び/又はサブ事象に関連する情報を受信する。アプリケーションが階層に編成された多数のビューを有する場合、ヒットビュー判定モジュール314は、事象又はサブ事象を処理すべき階層の最下位のビューとしてヒットビューを識別する。殆どの状況において、ヒットビューは、開始事象又は開始サブ事象(すなわち、ジェスチャを形成する事象及び/又はサブ事象のシーケンスの第1の事象又はサブ事象)が発生する最下位レベルのビューである。ヒットビューは、ヒットビュー判定モジュールにより識別されると、一般に、ヒットビューとして識別された同一のタッチ又は入力ソースに関連する全ての事象及び/又はサブ事象を受信する。しかし、ヒットビューは、ヒットビューとして識別された同一のタッチ又は入力ソースに関連する全ての事象及び/又はサブ事象を受信する唯一のビューであるとは限らない。換言すると、いくつかの実施形態において、別のアプリケーション(例えば、133−2)又は同一のアプリケーションの別のビューは、ヒットビューがタッチ又は入力ソースに対して判定されているかどうかにかかわらず、同一のタッチ又は入力ソースに関連する事象及び/又はサブ事象の少なくともサブセットを更に受信する。
アクティブ事象レコグナイザ判定モジュール316は、事象及び/又はサブ事象の特定のシーケンスを受信すべきであるビュー階層内の1つ以上のビューを判定する。いくつかのアプリケーションコンテキストにおいて、アクティブ事象レコグナイザ判定モジュール316は、ヒットビューのみが事象及び/又はサブ事象の特定のシーケンスを受信すべきであると判定する。他のアプリケーションコンテキストにおいて、アクティブ事象レコグナイザ判定モジュール316は、事象又はサブ事象の物理的な場所を含む全てのビューが能動的に関わるビューであると判定するため、能動的に関わる全てのビューが事象及び/又はサブ事象の特定のシーケンスを受信すべきであると判定する。他のアプリケーションコンテキストにおいて、タッチ事象及び/又はサブ事象が1つの特定のビューと関連付けられた領域に全体的に制限される場合でも、階層における上位レベルのビューは、能動的に関わるビューとして留まるため、事象及び/又はサブ事象の特定のシーケンスを受信すべきである。更に又はあるいは、アクティブ事象レコグナイザ判定モジュール316は、事象及び/又はサブ事象の特定のシーケンスを受信すべきプログラム階層におけるアプリケーションを判定する。従って、いくつかの実施形態において、アクティブ事象レコグナイザ判定モジュール316は、プログラム階層におけるそれぞれのアプリケーションのみが事象及び/又はサブ事象の特定のシーケンスを受信すべきであると判定する。いくつかの実施形態において、アクティブ事象レコグナイザ判定モジュール316は、プログラム階層における複数のアプリケーションが事象及び/又はサブ事象の特定のシーケンスを受信すべきであると判定する。
事象ディスパッチャモジュール315は、事象情報を事象レコグナイザ(例えば、本明細書において「ジェスチャレコグナイザ」とも呼ばれる)(例えば、事象レコグナイザ325−1)にディスパッチする。アクティブ事象レコグナイザ判定モジュール316を含む実施形態において、事象ディスパッチャモジュール315は、アクティブ事象レコグナイザ判定モジュール316により判定された事象レコグナイザに事象情報を配信する。いくつかの実施形態において、事象ディスパッチャモジュール315は、各事象レコグナイザ325(又は各事象レコグナイザ325における事象受信部3031)により検索される事象情報を事象キューに格納する。
いくつかの実施形態において、それぞれのアプリケーション(例えば、133−1)は、アプリケーション内部状態321を含み、これは、アプリケーションがアクティブであるか又は実行している時にタッチセンシティブディスプレイ156に表示される現在のアプリケーションビューを示す。いくつかの実施形態において、デバイス/グローバル内部状態134(図1C)は、現在アクティブであるアプリケーションを判定するために事象レコグナイザグローバルメソッド312により使用され、アプリケーション内部状態321は、事象情報の配信先となるアプリケーションビュー317を判定するために事象レコグナイザグローバルメソッド312により使用される。
いくつかの実施形態において、アプリケーション内部状態321は、例えば、アプリケーション133−1が実行を再開する時に使用される再開情報と、表示されている情報を示すか又はアプリケーション133−1による表示の準備が整っているユーザインタフェース状態情報と、ユーザがアプリケーション133−1の前の状態又はビューに戻ることを可能にする状態キューと、ユーザにより行われた前の動作のリドゥ/アンドゥキューとのうちの1つ以上の追加の情報を含む。いくつかの実施形態において、アプリケーション内部状態321は、コンテキスト情報/テキスト及びメタデータ323を更に含む。
いくつかの実施形態において、アプリケーション133−1は、各々がアプリケーションのユーザインタフェースのそれぞれのビュー内で発生するタッチ事象を処理する命令を有する1つ以上のアプリケーションビュー317(例えば、対応する事象ハンドラ319)を含む。アプリケーション133−1の少なくとも1つのアプリケーションビュー317は、1つ以上の事象レコグナイザ325を含む。一般に、それぞれのアプリケーションビュー317は複数の事象レコグナイザ325を含む。他の実施形態において、1つ以上の事象レコグナイザ325は、ユーザインタフェースキット(不図示)又はアプリケーション133−1がメソッド及び他のプロパティを継承する上位レベルのオブジェクト等の独立したモジュールの一部である。いくつかの実施形態において、それぞれのアプリケーションビュー317は、データ更新部、オブジェクト更新部、GUI更新部及び/又は受信した事象データのうちの1つ以上を更に含む。
それぞれのアプリケーション(例えば、133−1)は、1つ以上の事象ハンドラ319を更に含む。一般に、それぞれのアプリケーション(例えば、133−1)は複数の事象ハンドラ319を含む。
各事象レコグナイザ325−1は、事象ディスパッチャモジュール315から事象情報を受信し(直接又はアプリケーション133−1を介して間接的に)、その事象情報から事象を識別する。事象レコグナイザ325−1は、事象受信部3031と事象比較部3033とを含む。
事象情報は、事象(例えばタッチ)又はサブ事象(例えば、タッチの移動)に関する情報を含む。事象又はサブ事象に依存して、事象情報は、事象又はサブ事象の場所等の追加の情報を更に含む。事象又はサブ事象がタッチの動きに関係する場合、事象情報は、サブ事象の速度及び方向を更に含んでもよい。いくつかの実施形態において、事象は1つの向きから別の向き(例えば、縦向きから横向き又は横向きから縦向き)へのデバイスの回転を含み、事象情報は、デバイスの現在の向き(デバイスの態勢とも呼ばれる)に関する対応する情報を含む。
事象比較部3033は、事象情報を1つ以上の事前定義済みのジェスチャ定義(本明細書において「事象定義」とも呼ばれる)と比較し、その比較に基づいて、事象又はサブ事象を判定するか、あるいは事象又はサブ事象の状態を判定又は更新する。いくつかの実施形態において、事象比較部3033は、1つ以上のジェスチャ定義3035(上述したように、本明細書において「事象定義」とも呼ばれる)を含む。ジェスチャ定義3035は、例えば事象1(3037−1)及び事象2(3037−2)等である事象(例えば、事前定義済みの事象及び/又はサブ事象のシーケンス)の定義を含む。いくつかの実施形態において、ジェスチャ定義3035におけるサブ事象は、例えばタッチの開始、タッチの終了、タッチの移動、タッチの取り消し及びマルチタッチを含む。一例において、事象1(3037−1)の定義は、表示されたオブジェクトに対するダブルタップである。例えばダブルタップは、ジェスチャの所定のフェーズに対して表示されたオブジェクトに対する第1のタッチ(タッチの開始)と、ジェスチャの次の所定のフェーズに対する第1のリフトオフ(タッチの終了)と、ジェスチャの後続の所定のフェーズに対する表示されたオブジェクトに対する第2のタッチ(タッチの開始)と、ジェスチャの最後の所定のフェーズに対する第2のリフトオフ(タッチの終了)とを含む。別の例において、事象2(3037−2)の定義は、表示されたオブジェクトに対するドラッグを含む。例えばドラッグは、表示されたオブジェクトに対するタッチ(又は接触)と、タッチセンシティブディスプレイ156にわたるタッチの移動と、タッチのリフトオフ(タッチの終了)とを含む。
いくつかの実施形態において、事象レコグナイザ325−1は、事象配信3039のための情報を更に含む。事象配信3039のための情報は、対応する事象ハンドラ319に対する参照を含む。オプションとして、事象配信3039のための情報は動作−対象の対を含む。いくつかの実施形態において、ジェスチャ(又はジェスチャの一部)の認識に応答して、事象情報(例えば、動作メッセージ)は、動作−対象の対により識別された1つ以上の対象に送出される。他の実施形態において、ジェスチャ(又はジェスチャの一部)の認識に応答して、動作−対象の対が起動される。
いくつかの実施形態において、ジェスチャ定義3035は、それぞれのユーザインタフェースオブジェクトに対するジェスチャの定義を含む。いくつかの実施形態において、事象比較部3033は、サブ事象と関連付けられるユーザインタフェースオブジェクトを判定するためにヒットテストを行う。例えば3つのユーザインタフェースオブジェクトがタッチセンシティブディスプレイ156に表示されるアプリケーションビューにおいて、タッチがタッチセンシティブディスプレイ156で検出された時、事象比較部3033は、3つのユーザインタフェースオブジェクトのうちどのユーザインタフェースオブジェクトがタッチ(事象)と関連付けられるかを判定するためにヒットテストを行う。表示されたオブジェクトの各々がそれぞれの事象ハンドラ319と関連付けられる場合、事象比較部3033は、ヒットテストの結果を使用して起動されるべき事象ハンドラ319を判定する。例えば事象比較部3033は、ヒットテストをトリガするオブジェクト及び事象と関連付けられた事象ハンドラ319を選択する。
いくつかの実施形態において、それぞれのジェスチャの各ジェスチャ定義3037は、事象及び/又はサブ事象のシーケンスが事象レコグナイザの事象の種類に対応するか否かを判定するまで事象情報の配信を遅延させる遅延動作を更に含む。
各事象レコグナイザ325−1は、一連の事象及び/又はサブ事象がジェスチャ定義3035のいずれの事象とも一致しないと判定した場合、事象失敗状態になり、その後、タッチジェスチャの後続の事象及び/又はサブ事象を無視する。この状況において、ヒットビューに対してアクティブのままである他の事象レコグナイザがある場合、それらの事象レコグナイザは実行中のタッチジェスチャの事象及び/又はサブ事象を追跡及び処理し続ける。
いくつかの実施形態において、ビューに対する事象レコグナイザが残っていない場合、事象情報は、ビュー階層のより高いビューにおける1つ以上の事象レコグナイザに送出される。あるいは、ビューに対する事象レコグナイザが残っていない場合、事象情報は無視される。いくつかの実施形態において、ビュー階層におけるビューに対する事象レコグナイザが残っていない場合、事象情報は、プログラム階層におけるより高いプログラムレベルの1つ以上の事象レコグナイザに送出される。あるいは、ビュー階層におけるビューに対する事象レコグナイザが残っていない場合、事象情報は無視される。
いくつかの実施形態において、各事象レコグナイザ325−1は事象レコグナイザ状態334を含む。事象レコグナイザ状態334は、各事象レコグナイザ325−1の状態を含む。図4A及び図4B、並びに図5A〜図5Cを参照して、事象レコグナイザ状態の例を以下に更に詳細に説明する。
いくつかの実施形態において、事象レコグナイザ状態334は、レコグナイザのメタデータ及びプロパティ3043を含む。いくつかの実施形態において、レコグナイザのメタデータ及びプロパティ3043は、A)事象配信システムが能動的に関わる事象レコグナイザに事象及び/又はサブ事象を配信すべき方法を示す設定可能なプロパティ、フラグ並びに/あるいはリスト、B)事象レコグナイザが互いに対話する方法を示す設定可能なプロパティ、フラグ及び/あるいはリスト、C)事象レコグナイザが事象情報を受信する方法を示す設定可能なプロパティ、フラグ及び/あるいはリスト、D)事象レコグナイザがジェスチャを認識してもよい方法を示す設定可能なプロパティ、フラグ及び/あるいはリスト、E)事象及び/又はサブ事象がビュー階層における種々のレベルに配信されるかを示す設定可能なプロパティ、フラグ並びに/あるいはリスト、並びにF)対応する事象ハンドラ319に対する参照のうちの1つ以上を含む。
いくつかの実施形態において、事象レコグナイザ状態334は事象/タッチメタデータ3045を含む。事象/タッチメタデータ3045は、検出されているそれぞれの事象/タッチに関する事象/タッチ情報を含み、ジェスチャ定義3035の各ジェスチャ定義3037に対応する。事象/タッチ情報は、それぞれの事象/タッチの場所、タイムスタンプ、速度、方向、距離、寸法(又は寸法の変化)及び角度(又は角度の変化)のうちの1つ以上を含む。
いくつかの実施形態において、各事象レコグナイザ325は、ジェスチャの1つ以上の特定の事象及び/又はサブ事象が認識された時に各事象レコグナイザ325と関連付けられた事象ハンドラ319を起動する。いくつかの実施形態において、各事象レコグナイザ325は、事象と関連付けられた事象情報を事象ハンドラ319に配信する。
事象ハンドラ319は、起動された時にデータを作成及び/又は更新することと、オブジェクトを作成及び更新することと、表示情報を準備してディスプレイ126又はタッチセンシティブディスプレイ156に表示するためにその情報を送出することとのうちの1つ以上を実行する。
いくつかの実施形態において、それぞれのアプリケーションビュー317−2はビューメタデータ341を含む。図3Bに関して上述したように、ビューメタデータ341はビューに関するデータを含む。オプションとして、ビューメタデータ341は、停止プロパティ342、スキッププロパティ343、NoHitスキッププロパティ344及び他のビューメタデータ329のうちの1つ以上を含む。
いくつかの実施形態において、ビュー階層内の第1の能動的に関わるビューは、その第1の能動的に関わるビューと関連付けられた事象レコグナイザへのそれぞれのサブ事象の配信を防止するように構成されてもよい。この挙動により、スキッププロパティ343を実現できる。スキッププロパティがアプリケーションビューに対して設定される場合、それぞれのサブ事象の配信は、ビュー階層で他の能動的に関わるビューと関連付けられた事象レコグナイザに対して依然として実行される。
あるいは、ビュー階層内の第1の能動的に関わるビューは、第1の能動的に関わるビューがヒットビューでない限り、その第1の能動的に関わるビューと関連付けられた事象レコグナイザへのそれぞれのサブ事象の配信を防止するように構成されてもよい。この挙動により、条件付きNoHitスキッププロパティ344を実現できる。
いくつかの実施形態において、ビュー階層内の第2の能動的に関わるビューは、第2の能動的に関わるビューと関連付けられた事象レコグナイザ及び第2の能動的に関わるビューの祖先と関連付けられた事象レコグナイザへのそれぞれのサブ事象の配信を防止するように構成される。この挙動により、停止プロパティ342を実現できる。
図3Eは、いくつかの実施形態に係るジェスチャレコグナイザ(例えば、事象処理構成要素390)の例示的なクラス及びインスタンスを示すブロック図である。
ソフトウェアアプリケーション(例えば、アプリケーション133−1)は、1つ以上の事象レコグナイザ3040を有する。いくつかの実施形態において、各事象レコグナイザ(例えば、3040−2)は事象レコグナイザのクラスである。各事象レコグナイザ(例えば、3040−2)は、事象レコグナイザ専用コード338(例えば、事象レコグナイザの動作を定義する命令のセット)及び状態遷移マシン340を含む。
いくつかの実施形態において、ソフトウェアアプリケーション(例えば、アプリケーション133−1)のアプリケーション状態321は、事象レコグナイザのインスタンスを含む。事象レコグナイザの各インスタンスは、状態(例えば、事象レコグナイザ状態334)を有するオブジェクトである。各事象レコグナイザの「実行」は、対応する事象レコグナイザ専用コード(例えば、338)を実行すること及び事象レコグナイザのインスタンス3047の状態334を更新又は維持することで実現される。事象レコグナイザのインスタンス3047の状態334は、事象レコグナイザのインスタンスの状態遷移マシン340の状態3038を含む。
いくつかの実施形態において、アプリケーション状態321は、複数の事象レコグナイザのインスタンス3047を含む。各事象レコグナイザのインスタンス3047は、一般に、アプリケーションのビューに結合(「接続」とも呼ばれる)されている事象レコグナイザに対応する。いくつかの実施形態において、1つ以上の事象レコグナイザのインスタンス3047は、それぞれのアプリケーションの特定のビューを全く参照することなくプログラム階層におけるそれぞれのアプリケーションに結合される。いくつかの実施形態において、アプリケーション状態321は、各事象レコグナイザ(例えば、3040−2)の複数のインスタンス(例えば、3047−1〜3047−L)を含む。いくつかの実施形態において、アプリケーション状態321は、複数の事象レコグナイザ(例えば、3040−1〜3040−R)のインスタンス3047を含む。
いくつかの実施形態において、ジェスチャレコグナイザ3040のそれぞれのインスタンス3047−2は事象レコグナイザ状態334を含む。上述したように、いくつかの実施形態において、事象レコグナイザ状態334は、レコグナイザのメタデータ及びプロパティ3043、並びに事象/タッチメタデータ3045を含む。いくつかの実施形態において、事象レコグナイザ状態334は、ジェスチャレコグナイザ3040−2のそれぞれのインスタンス3047−2が接続されるビューを示すビュー階層基準336を更に含む。
いくつかの実施形態において、レコグナイザのメタデータ及びプロパティ3043は、以下のもの、あるいはそれらのサブセット又は上位セットを含む。
・排他的フラグ324
・排他的除外リスト326
・待ちリスト
・遅延タッチ開始済フラグ328
・遅延タッチ終了フラグ330
・タッチ取り消しフラグ332
いくつかの実施形態において、1つ以上の事象レコグナイザは、事象レコグナイザが事象を認識するまでサブ事象のシーケンスの1つ以上のサブ事象を送出するのを遅延させるように構成されてもよい。この挙動は遅延した事象を反映する。例えば、複数のタップジェスチャが可能であるビューのシングルタップジェスチャを考える。その場合、タップ事象は「タップ+遅延」レコグナイザになる。本質的に、事象レコグナイザは、この挙動を実現する場合、サブ事象のシーケンスが実際に事象定義に対応することを確定するまで事象認識を遅延させる。受信側ビューが取り消された事象に適切に応答できない場合、この挙動は適切だろう。いくつかの実施形態において、事象レコグナイザは、サブ事象のシーケンスが事象定義に対応しないことを確定するまで、事象認識ステータスをそれぞれの能動的に関わるビューに更新するのを遅延させる。遅延タッチ開始済フラグ328、遅延タッチ終了フラグ330及びタッチ取り消しフラグ332は、サブ事象配信技術を調節するために提供され、事象レコグナイザ及びビューステータス情報は特定のニーズに更新される。
いくつかの実施形態において、レコグナイザのメタデータ及びプロパティ3043は、以下のもの、あるいはそれらのサブセット又は上位セットを含む。
・各事象レコグナイザのインスタンス(例えば、3047−2)に対する状態遷移マシン(例えば、340)の状態を示す状態遷移マシンの状態/段階3038は、以下に説明するように、例えば「事象可能」、「事象認識済」及び「事象失敗済」等の種々の状態値を有することができ、あるいは又は更に、タッチデータ構造が先行するタッチデータ構造により参照されていない新しいタッチを定義することを示すことができる「タッチ段階開始済」、定義されているタッチが従来の位置から移動したことを示すことができる「タッチ段階移動済」値、タッチが同一の位置に留まっていることを示すことができる「タッチ段階静止」値、タッチが終了した(例えば、ユーザがマルチタッチディスプレイの表面から指を離した)ことを示すことができる「タッチ段階終了済」値、タッチがデバイスにより取り消されたことを示すことができる「タッチ段階取り消し済」値等の種々の段階値を有することができ、取り消されたタッチは、ユーザにより必ずしも終了されなくてもよいが、デバイスが無視することを決定したタッチであってよく、例えばデバイスは、タッチが意図せず(すなわち、ポータブルマルチタッチ対応デバイスをポケットに入れた結果)生成されていると判定し、且つその理由によりタッチを無視でき、状態遷移マシンの状態/段階3038の各値は整数(本明細書において「ジェスチャレコグナイザ状態値」と呼ぶ)であってよい。
・各々が事象又はタッチをジェスチャ又はジェスチャの一部として認識することに応答して各事象レコグナイザのインスタンスが識別された動作メッセージを送出する対象を識別する動作−対象の対3051。
・対応するデリゲートに対する参照であるデリゲート3053であり、デリゲートが各事象レコグナイザのインスタンスに割り当てられる時、デリゲートが各事象レコグナイザのインスタンスに割り当てられていない時にデリゲート346はヌル値を含む。
・各事象レコグナイザのインスタンスが使用可能にされるかを示す使用可能プロパティ3055であり、いくつかの実施形態において、各事象レコグナイザのインスタンスは、使用可能にされない(例えば、使用不可にされる)場合に事象又はタッチを処理しない。
いくつかの実施形態において、例外リスト326は、非排他的事象レコグナイザにより更に使用可能である。特に、非排他的事象レコグナイザが事象又はサブ事象を認識する場合、後続の事象及び/又はサブ事象は、事象又はサブ事象を認識した事象レコグナイザの例外リスト326に列挙された排他的事象レコグナイザを除いて、現在アクティブなビューと関連付けられた排他的事象レコグナイザに配信されない。
いくつかの実施形態において、事象レコグナイザは、望ましくない事象及び/又はサブ事象がヒットビューに配信されるのを防止するために、遅延タッチ終了フラグ330と組み合わせてタッチ取り消しフラグ332を利用するように構成されてもよい。例えば、シングルタップジェスチャの定義とダブルタップジェスチャの前半とは同一である。シングルタップ事象レコグナイザがシングルタップを正常に認識すると、望ましくない動作が起こるだろう。遅延タッチ終了フラグが設定される場合、シングルタップ事象が認識されるまで、シングルタップ事象レコグナイザがサブ事象をヒットビューに送出するのを防止する。また、シングルタップ事象レコグナイザの待ちリストがダブルタップ事象レコグナイザを識別できるため、ダブルタップ事象レコグナイザが事象不可能状態になるまで、シングルタップ事象レコグナイザがシングルタップを認識するのを防止する。待ちリストを使用することにより、ダブルタップジェスチャが実行される際にシングルタップと関連付けられた動作の実行を回避する。その代わり、ダブルタップ事象の認識に応答して、ダブルタップと関連付けられた動作のみが実行される。
タッチセンシティブ面上のユーザタッチの形態を特に参照すると、上述したように、タッチ及びユーザジェスチャは瞬時でなくてもよい動作を含んでもよく、例えばタッチは、ある期間ディスプレイに対して指を移動又は保持する動作を含んでよい。しかし、タッチデータ構造は、特定の時間のタッチの状態(すなわち、より一般的にはあらゆる入力ソースの状態)を定義する。従って、タッチデータ構造に格納された値がシングルタッチのコースを変更することにより、異なる時点のシングルタッチの状態をアプリケーションに搬送できる。
各タッチデータ構造は種々のエントリを含むことができる。いくつかの実施形態において、タッチデータ構造は、少なくとも事象/タッチメタデータ3045におけるタッチ専用エントリに対応するデータ、例えば以下のもの、あるいはそれらのサブセット又は上位セットを含んでもよい。
・「ビューに対する第1のタッチ」エントリ345
・タッチデータ構造が関連する特定の時間(例えば、タッチの時間)を示す「タイムスタップ」情報を含む「タッチ毎の情報」エントリ3051であり、「タッチ毎の情報」エントリ3051は、対応するタッチの場所等の他の情報を含む
・オプションの「タップカウント」エントリ348
従って、各タッチデータ構造は、特定の時間にタッチ(又は他の入力ソース)で発生していること(例えば、タッチが静止しているか、移動しているか等)及びタッチと関連付けられた他の情報(位置等)を定義できる。従って、各タッチデータ構造は、特定の瞬間の特定のタッチの状態を定義できる。同一の時間を参照する1つ以上のタッチデータ構造は、特定のビューが瞬間に受信している全てのタッチの状態を定義できるタッチ事象データ構造に追加される(上述したように、いくつかのタッチデータ構造は、終了し且つもはや受信されていないタッチを更に参照してもよい)。多数のタッチ事象データ構造は、ビューで発生しているタッチを示す連続した情報をソフトウェアに提供するために、時間が経つにつれビューを実現するソフトウェアに送出される。
オプションとしてマルチタッチジェスチャを含む複雑なタッチジェスチャを処理する機能は、種々のソフトウェアアプリケーションを複雑にしうる。いくつかの例において、そのように複雑になることにより、高度な所望のインタフェース機能を実現する必要があるだろう。例えばゲームは、同時に複数のボタンを押下したり、あるいは加速度計データをタッチセンシティブ面上のタッチと組み合わせたりすることを必要とする場合が多いため、種々のビューで発生する複数の同時のタッチを処理する機能を必要とするだろう。しかし、いくつかのより単純なアプリケーション及び/又はビューは、高度なインタフェース機能を必要としなくてもよい。例えば単純なソフトボタン(すなわち、タッチセンシティブディスプレイに表示されるボタン)は、マルチタッチ機能性ではなくシングルタッチで十分に動作できる。これらの場合、基礎となるOSは、シングルタッチ(例えば、ソフトボタン上のシングルタッチ又はシングルタップ)のみにより動作可能であることを意図するビューと関連付けられたソフトウェアコンポーネントに不必要なタッチデータ又は過剰なタッチデータ(例えば、マルチタッチデータ)を送出してもよい。ソフトウェアコンポーネントは、このデータを処理する必要があってもよいため、シングルタッチのみが関連するビューと関連付けられても、マルチタッチを処理するソフトウェアアプリケーションの全ての複雑さを備える必要があるだろう。従来マウスインタフェース環境(すなわち、種々のボタン等)でプログラムするのが容易であったソフトウェアコンポーネントがマルチタッチ環境で非常により複雑になる可能性があるため、これによりデバイスに対してソフトウェアを開発するコストが増加しうる。
複雑なタッチジェスチャを認識する複雑さを軽減するために、デリゲートを使用していくつかの実施形態に係る事象レコグナイザの挙動を制御できる。以下に説明するように、デリゲートは、例えば対応する事象レコグナイザ(又はジェスチャレコグナイザ)が、事象(例えば、タッチ)情報を受信できるか、状態遷移マシンの初期状態(例えば、事象可能状態)から別の状態に遷移できるか、且つ/あるいは他の事象レコグナイザ(又はジェスチャレコグナイザが事象(例えば、タッチ)を認識するのを阻止することなくあるいは事象を認識する他の事象レコグナイザ(又はジェスチャレコグナイザ)によりブロックされることなく、事象を対応するジェスチャとして同時に認識できるかを判定できる。
しかし、タッチセンシティブ面上でユーザタッチを評価し且つ処理する複雑さに関する上記の説明は、入力装置128を備える電子デバイス102を操作する全ての形態のユーザ入力に更に当てはまり、ユーザ入力の全てがタッチスクリーン上で開始されるわけではなく、例えば、認識される事象を定義する事象及び/又はサブ事象に対応する入力として利用されてもよい一回又は複数回のキーボード押下又はキーボード保持を含むかあるいは含まないマウスの移動及びマウスボタンの押下、タッチパッド上の例えばタップ、ドラッグ、スクロール等のデバイスの回転又は他の移動、ユーザ移動、ペンスタイラスの入力、音声命令、検出された眼球運動、生体情報認識入力、検出されたユーザの生理学的変化、並びに/あるいはそれらのあらゆる組合せを連係することが理解されるだろう。
事象情報の流れを参照すると、図3Fは、いくつかの実施形態に係る事象情報の流れを示すブロック図である。事象ディスパッチャモジュール315(例えば、オペレーティングシステム118又はアプリケーションソフトウェア124における)は、事象情報を受信し、その事象情報を1つ以上のアプリケーション(例えば、133−1及び133−2)に送出する。いくつかの実施形態において、アプリケーション133−1は、ビュー階層506における複数のビュー(例えば、図3Dのビュー317に対応する508、510及び512)、並びに複数のビューにおける複数のジェスチャレコグナイザ(516−1〜516−3)を含む。アプリケーション133−1は、対象−動作の対(例えば、552−1及び552−2)における対象値に対応する1つ以上のジェスチャハンドラ550を更に含む。いくつかの実施形態において、事象ディスパッチャモジュール315は、ヒットビュー判定モジュール314からヒットビュー情報を受信し、ヒットビュー(例えば、512)又はヒットビュー(例えば、516−1及び516−2)に接続された事象レコグナイザに事象情報を送出する。更に又はあるいは、事象ディスパッチャモジュール315は、ヒットレベル判定モジュール352からヒットレベル情報を受信し、ヒットレベルのアプリケーション(例えば、133−1及び133−2)又はヒットレベルアプリケーションの1つ以上の事象レコグナイザ(例えば、516−4)に事象情報を送出する。いくつかの実施形態において、事象情報を受信するアプリケーションのうちの1つは、デフォルトアプリケーションである(例えば、133−2はデフォルトアプリケーションであってもよい)。いくつかの実施形態において、受信側アプリケーションの各々におけるジェスチャレコグナイザのサブセットのみが事象情報を受信することを許可される(又はそのように構成される。例えば、アプリケーション133−1のジェスチャレコグナイザ516−3は事象情報を受信しない。本明細書において、事象情報を受信するジェスチャレコグナイザを受信側ジェスチャレコグナイザと呼ぶ。図3Fにおいて、受信側ジェスチャレコグナイザ516−1、516−2及び516−4は、事象情報を受信し、受信した事象情報を受信側ジェスチャレコグナイザにおける各ジェスチャ定義3037(図3D)と比較する。図3Fにおいて、ジェスチャレコグナイザ516−1及び516−4は、受信した事象情報と一致する各ジェスチャ定義を有し、それぞれの動作メッセージ(例えば、518−1及び518−2)を対応するジェスチャハンドラ(例えば、552−1及び552−3)に送出する。
図4Aは、4つの状態を含む事象レコグナイザ状態遷移マシン400を示す。受信したサブ事象に基づいて事象レコグナイザ状態遷移マシン400の状態遷移を管理することにより、事象レコグナイザは事象定義を効率的に表す。例えばタップジェスチャは、2つ又はオプションとして3つのサブ事象のシーケンスにより効率的に定義されてもよい。第1に、タッチは検出されるべきであり、これはサブ事象1となる。例えばタッチサブ事象は、状態遷移マシン400を有する事象レコグナイザを含むビューでタッチセンシティブ面に触れるユーザの指であってもよい。第2に、タッチが実質的に所定の方向に全く移動しないオプションの測定された遅延(例えばタッチ位置のあらゆる移動は、ディスプレイ上で距離(例えば、5mm)又は画素数(例えば、5画素)として測定されてもよい事前定義済みの閾値より小さい)及び遅延は、十分に短く、サブ事象2として提供される。最後に、タッチの終了(例えば、タッチセンシティブ面からのユーザの指のリフトオフ)は、サブ事象3として提供される。これらのサブ事象を受信することに基づいて事象レコグナイザ状態遷移マシン400を状態間の遷移に符号化することにより、事象レコグナイザ状態遷移マシン400は、タップジェスチャ事象定義を効率的に表す。尚、図4Aに示された状態は例示的な状態であり、事象レコグナイザ状態遷移マシン400は、より多くの状態又はより少ない状態を含んでもよく、且つ/あるいは事象レコグナイザ状態遷移マシン400における各状態は、示された状態又は他のあらゆる状態のうちの1つに対応してもよい。
いくつかの実施形態において、事象の種類にかかわらず、事象レコグナイザ状態遷移マシン400は、事象認識開始状態405から開始し、受信するサブ事象に依存して残りの状態のうちのいずれかに進んでもよい。事象レコグナイザ状態遷移マシン400の説明を容易にするために、事象可能状態410からの経路を説明した後、事象認識開始状態405から事象認識済状態415、事象可能状態410及び事象不可能状態420への直接経路を説明する。
事象認識開始状態405から開始し、単独で事象の事象定義を含むサブ事象が受信される場合、事象レコグナイザ状態遷移マシン400は事象認識済状態415に遷移する。
状態事象認識開始405から開始し、事象定義の第1のサブ事象ではないサブ事象が受信される場合、事象レコグナイザ状態遷移マシン400は事象不可能状態420に遷移する。
事象認識開始状態405から開始し、所定の事象定義の第1のサブ事象であり且つ最後のサブ事象ではないサブ事象が受信される場合、事象レコグナイザ状態遷移マシン400は事象可能状態410に遷移する。受信する次のサブ事象が所定の事象定義の第2のサブ事象であるが、最後のサブ事象ではない場合、事象レコグナイザ状態遷移マシン400は状態事象可能410のままである。受信したサブ事象のシーケンスが事象定義の一部であり続ける限り、事象レコグナイザ状態遷移マシン400は状態事象可能410のままであってよい。事象レコグナイザ状態遷移マシン400は、常に事象可能状態410であり且つ事象定義の一部ではないサブ事象を受信する場合、状態事象不可能420に遷移することにより、現在の事象(もしあれば)がこの事象レコグナイザ(すなわち、状態400に対応する事象レコグナイザ)に対応する事象の種類ではないと判定する。一方、事象レコグナイザ状態遷移マシン400は、事象可能状態410であり且つ事象定義の最後のサブ事象を受信する場合、事象認識済状態415に遷移することにより、正常な事象認識を完了する。
図4Bは、ビューがそれぞれの入力に関する情報を受信する方法を示す有限の状態遷移マシンを有する入力ソース処理440の一実施形態を示す。尚、デバイスのタッチセンシティブ面上にマルチタッチがある場合、各タッチは、自身の有限の状態遷移マシンを有する別個の入力ソースである。本実施形態において、入力ソース処理440は、入力シーケンス開始445、入力シーケンス継続450、入力シーケンス終了済455及び入力シーケンス取り消し済460の4つの状態を含む。入力ソース処理440は、例えば入力シーケンスの完了が検出された後で初めて入力がアプリケーションに配信される場合、各事象レコグナイザにより使用されてもよい。入力ソース処理440は、アプリケーションに配信された入力シーケンスに応答して実行された変化を取り消せないかあるいは解除できないアプリケーションで使用可能である。尚、図4Bに示された状態は例示的な状態であり、入力ソース処理440は、より多くの状態又はより少ない状態を含んでもよく、且つ/あるいは入力ソース処理440における各状態は、示された状態又は他のあらゆる状態のうちの1つに対応してもよい。
入力シーケンス開始445から開始し、単独で入力シーケンスを完了する入力が受信される場合、入力ソース処理440は入力シーケンス終了済455に遷移する。
入力シーケンス開始445から開始し、終了した入力シーケンスを示す入力が受信される場合、入力ソース処理440は入力シーケンス取り消し済460に遷移する。
入力シーケンス開始445から開始し、入力シーケンスの第1の入力であり且つ最後の入力ではない入力が受信される場合、入力ソース処理440は、状態入力シーケンス継続450に遷移する。受信する次の入力が入力シーケンスの第2の入力である場合、入力処理440は状態入力シーケンス継続450のままである。配信されるサブ事象のシーケンスが所定の入力シーケンスの一部であり続ける限り、入力ソース処理440は状態入力シーケンス継続450のままであってよい。入力ソース処理440は、常に状態入力シーケンス継続450であり且つ入力シーケンスの一部ではない入力を受信する場合、状態入力シーケンス取り消し済460に遷移する。一方、入力ソース処理440は、入力シーケンス継続450であり且つ所定の入力定義の最後の入力を受信する場合、入力シーケンス終了済455に遷移することにより、サブ事象のグループを正常に受信する。
いくつかの実施形態において、入力ソース処理440は、特定のビュー又はプログラムレベルに対して実現されてもよい。その場合、サブ事象の特定のシーケンスは、結果として状態入力取り消し済460に遷移してもよい。
一例として、能動的に関わるビュー入力ソースハンドラ480(以下、「ビュー480」)のみで表された能動的に関わるビューを想定する図4Cを考える。ビュー480は、事象レコグナイザのうちの1つとして縦スワイプ事象レコグナイザ468(以下、「レコグナイザ468」)のみで表された縦スワイプ事象レコグナイザを含む。この場合、レコグナイザ468は、1)フィンガーダウン465−1、2)オプションのわずかな遅延465−2、3)少なくともN画素の縦スワイプ465−3及び4)フィンガーリフトオフ465−4を検出することを定義の一部として必要としてもよい。
例えばレコグナイザ468は、設定された遅延タッチ開始済フラグ328及びタッチ取り消しフラグ332を更に有する。次に、レコグナイザ468及びビュー480への以下のサブ事象のシーケンスの配信を考える。
・サブ事象シーケンス465−1:レコグナイザ468の事象定義に対応するフィンガーダウン検出
・サブ事象シーケンス465−2:レコグナイザ468の事象定義に対応する遅延測定
・サブ事象シーケンス465−3:指は、縦方向のスクローリングと互換性のある縦スワイプ移動を実行するがN画素より小さいため、レコグナイザ468の事象定義に対応しない
・サブ事象シーケンス465−4:レコグナイザ468の事象定義に対応するフィンガーリフトオフ検出
次にレコグナイザ468は、事象定義の一部としてサブ事象1及び2を正常に認識することにより、サブ事象3の配信の直前に状態事象可能472になるだろう。レコグナイザ468が設定された遅延タッチ開始済フラグ328を有するため、初期タッチサブ事象はヒットビューに送出されない。従って、ビュー480の入力ソース処理440は、サブ事象3の配信の直前に依然として状態入力シーケンス開始のままだろう。
レコグナイザ468へのサブ事象3の配信が完了すると、レコグナイザ468の状態は事象不可能476に遷移し、次にレコグナイザ468が、サブ事象のシーケンスが特定の縦スワイプジェスチャ事象の種類に対応しないと判定した(すなわち、レコグナイザ468は、事象が縦スワイプではないと判断した。換言すると、縦スワイプとしての認識474はこの例では発生しない)ことが重要である。ビュー入力ソースハンドラ480に対する入力ソース処理システム440は、その状態を更に更新する。いくつかの実施形態において、事象レコグナイザが事象を認識し始めたことを示すステータス情報を送出する場合、ビュー入力ソースハンドラ480の状態は、入力シーケンス開始状態482から入力シーケンス継続状態484に進むだろう。事象レコグナイザのタッチ取り消しフラグ322が設定されたために事象が認識されずにタッチ又は入力が終了する場合、ビュー入力ソースハンドラ480は入力シーケンス取り消し済状態488になる。あるいは、事象レコグナイザのタッチ取り消しフラグ322が設定されていない場合、ビュー入力ソースハンドラ480は、入力のタッチが終了する際に入力シーケンス終了済状態486になる。
事象レコグナイザ468のタッチ取り消しフラグ332が設定されるため、事象レコグナイザ468が事象不可能状態476に遷移する場合、レコグナイザは、タッチ取り消しのサブ事象又はメッセージを事象レコグナイザに対応するヒットビューに送出する。その結果、ビュー入力ソースハンドラ480は状態入力シーケンス取り消し済488に遷移する。
いくつかの実施形態において、ビュー入力ソースハンドラ480の他の事象レコグナイザがある場合は、サブ事象のシーケンスを解析し続けてもよいが、サブ事象465−4の配信は、レコグナイザ468により判断されたいずれの事象認識にも密接に関連しない。
以下の表は、ビュー入力ソースハンドラ480の状態と共に、上述した事象レコグナイザ468の状態に関連するようなこの例示的なサブ事象シーケンス465の処理を要約した表形式で示す。この例において、レコグナイザ468のタッチ取り消しフラグ332が設定されたため、ビュー入力ソースハンドラ480の状態は入力シーケンス開始445から入力シーケンス取り消し済488に進む。
図5Aを参照し、複数の事象レコグナイザを含むビューにより受信されているサブ事象シーケンス520の一例に注目する。例えば、2つの事象レコグナイザ、すなわちスクローリング事象レコグナイザ580及びタップ事象レコグナイザ590を図5Aに示す。説明のために、図3Aのビュー検索結果パネル304は、サブ事象シーケンス520の受信、並びにスクローリング事象レコグナイザ580及びタップ事象レコグナイザ590における状態変遷に関連する。尚、この例において、サブ事象520のシーケンスは、タッチセンシティブディスプレイ又はトラックパッドに対するタップフィンガージェスチャを定義するが、同一の事象認識技術が、マウスボタンの押下を検出する等の無数の状況及び/又はプログラムレベルのプログラム階層を利用する実施形態で適用可能である。
第1のサブ事象がビュー検索結果パネル304に配信される前、事象レコグナイザ580及び590は、それぞれ、事象認識開始状態582及び592である。タッチサブ事象301−2としてビュー検索結果パネル304に対して能動的に関わる事象レコグナイザ(及びタッチサブ事象301−3としてマップビュー305に対して能動的に関わる事象レコグナイザ)にフィンガーダウン検出521−1サブ事象として配信されるタッチ301に続き、スクローリング事象レコグナイザ580は状態事象可能584に遷移し、同様にタップ事象レコグナイザ590は状態事象可能594に遷移する。これは、タッチ及びスクロールの双方の事象定義が、タッチセンシティブ面でフィンガーダウンを検出すること等のタッチで開始するためである。
タップジェスチャ及びスクロールジェスチャのいくつかの定義は、オプションとして、初期タッチと何らかの次のステップとの間の遅延を含んでもよい。本明細書で説明する全ての例において、タップジェスチャ及びスクロールジェスチャの双方に対する事象定義は、第1のタッチサブ事象(フィンガーダウン検出)に後続する遅延サブ事象を認識する。
従って、測定遅延521−2サブ事象が事象レコグナイザ580及び590に配信されるため、双方は、それぞれ、事象可能状態584及び594のままである。
最後に、フィンガーリフトオフ検出521−3サブ事象は、事象レコグナイザ580及び590に配信される。この場合、タップ及びスクロールの事象定義が異なるため、事象レコグナイザ580及び590の状態遷移は異なる。スクローリング事象レコグナイザ580の場合、状態事象可能のままである次のサブ事象は移動を検出するサブ事象だろう。しかし、配信されたサブ事象がフィンガーリフトオフ検出521−3であるため、スクローリング事象レコグナイザ580は状態事象不可能588に遷移する。しかし、タップ事象定義はフィンガーリフトオフサブ事象で終了する。従って、タップ事象レコグナイザ590は、フィンガーリフトオフ検出521−3サブ事象が配信された後で状態事象認識済596に遷移する。
尚、いくつかの実施形態において、図4B及び図4Cに関連して上述したように、図4Bで説明された入力ソース処理440は、ビューレベルで種々の目的のために使用されてもよい。以下の表は、事象レコグナイザ580、590に関連するようなサブ事象シーケンス520の配信及び入力ソース処理440を要約した表形式で示す。
図5Bを参照し、複数の事象レコグナイザを含むビューにより受信されているサブ事象シーケンス530の別の例に注目する。例えば、2つの事象レコグナイザ、すなわちスクローリング事象レコグナイザ580及びタップ事象レコグナイザ590を図5Bに示す。説明のために、図3Aのビュー検索結果パネル304は、サブ事象シーケンス530の受信、並びにスクローリング事象レコグナイザ580及びタップ事象レコグナイザ590における状態変遷に関連する。尚、この例において、サブ事象530のシーケンスは、タッチセンシティブディスプレイに対するスクロールフィンガージェスチャを定義するが、同一の事象認識技術が、マウスボタンの押下、マウスの移動及びマウスボタンの解放を検出する等の無数の状況、並びに/又はプログラムレベルのプログラム階層を利用する実施形態で適用可能である。
第1のサブ事象がビュー検索結果パネル304に対して能動的に関わる事象レコグナイザに配信される前、事象レコグナイザ580及び590は、それぞれ、事象認識開始状態582及び592である。タッチ301に対応するサブ事象の配信(上述したような)に続き、スクローリング事象レコグナイザ580は状態事象可能584に遷移し、同様にタップ事象レコグナイザ590は状態事象可能594に遷移する。
測定遅延531−2サブ事象が事象レコグナイザ580及び590に配信されるため、双方は、それぞれ、事象可能状態584及び594に遷移する。
次に、フィンガー移動検出531−3サブ事象は事象レコグナイザ580及び590に配信される。この場合、タップ及びスクロールの事象定義が異なるため、事象レコグナイザ580及び590の状態遷移は異なる。スクローリング事象レコグナイザ580の場合、状態事象可能のままである次のサブ事象は移動を検出するサブ事象であるため、スクローリング事象レコグナイザ580は、フィンガー移動検出531−3サブ事象を受信する場合に事象可能状態584のままである。しかし、上述したように、タップの定義がフィンガーリフトオフサブ事象で終了するため、タップ事象レコグナイザ590は状態事象不可能598に遷移する。
最後に、フィンガーリフトオフ検出531−4サブ事象は事象レコグナイザ580及び590に配信される。タップ事象レコグナイザは既に事象不可能状態598であり、状態遷移は発生しない。スクローリング事象レコグナイザ580の事象定義は、フィンガーリフトオフを検出して終了する。配信されたサブ事象がフィンガーリフトオフ検出531−4であるため、スクローリング事象レコグナイザ580は状態事象認識済586に遷移する。尚、タッチセンシティブ面上のフィンガー移動が多数の移動サブ事象を生成してもよいため、スクロールは、リフトオフの前に認識され且つリフトオフまで継続してもよい。
以下の表は、事象レコグナイザ580、590に関連するようなサブ事象シーケンス530の配信及び入力ソース処理440を要約した表形式で示す。
図5Cを参照し、複数の事象レコグナイザを含むビューにより受信されているサブ事象シーケンス540の別の例に注目する。例えば、2つの事象レコグナイザ、すなわちダブルタップ事象レコグナイザ570及びタップ事象レコグナイザ590を図5Cに示す。説明のために、図3Aのマップビュー305は、サブ事象シーケンス540の受信、並びにダブルタップ事象レコグナイザ570及びタップ事象レコグナイザ590における状態変遷に関連する。尚、この例において、サブ事象540のシーケンスは、タッチセンシティブディスプレイに対するダブルタップジェスチャを定義するが、同一の事象認識技術が、マウスダブルクリックを検出する等の無数の状況及び/又はプログラムレベルのプログラム階層を利用する実施形態で適用可能である。
第1のサブ事象がマップビュー305に対して能動的に関わる事象レコグナイザに配信される前、事象レコグナイザ570及び590は、それぞれ、事象認識開始状態572及び592である。タッチサブ事象301に関連したサブ事象のマップビュー304への配信(上述したような)に続き、ダブルタップ事象レコグナイザ570及びタップ事象レコグナイザ590は、それぞれ、状態事象可能574及び594に遷移する。これは、タップ及びダブルタップの双方の事象定義がタッチセンシティブ面上でフィンガーダウン541−1を検出する等のタッチで開始するためである。
測定遅延541−2サブ事象が事象レコグナイザ570及び590に配信されるため、双方は、それぞれ、状態事象可能574及び594のままである。
次に、フィンガーリフトオフ検出541−3サブ事象は事象レコグナイザ570及び590に配信される。この場合、タップ及びダブルタップの事象定義が異なるため、事象レコグナイザ580及び590の状態遷移は異なる。タップ事象レコグナイザ590の場合、事象定義の最後のサブ事象がフィンガーリフトオフを検出するサブ事象であるため、タップ事象レコグナイザ590は事象認識済状態596に遷移する。
しかし、ユーザが最終的に実行する可能性があることに関係なく遅延が開始しているため、ダブルタップレコグナイザ570は状態事象可能574のままである。完全なタップサブ事象シーケンスが後続するが、ダブルタップの完全な事象認識定義は別の遅延を必要とする。これにより、既に状態事象認識済576であるタップ事象レコグナイザ590と依然として状態事象可能574のままであるダブルタップレコグナイザ570との間のような曖昧な状況が発生する。
従って、いくつかの実施形態において、事象レコグナイザは、図3B及び図3Cに関連して上述したような排他的フラグ及び排他的例外リストを実現してもよい。本明細書において、タップ事象レコグナイザ590に対する排他的フラグ324が設定され、更にタップ事象レコグナイザ590に対する排他的例外リスト326は、タップ事象レコグナイザ590が状態事象認識済596になった後にいくつかの事象レコグナイザ(ダブルタップ事象レコグナイザ570等)へのサブ事象の配信を許可し続けるように構成されるだろう。
タップ事象レコグナイザ590は状態事象認識済596のままであり、サブ事象シーケンス540はダブルタップサブ事象レコグナイザ570に配信され続ける。遅延測定541−4サブ事象、フィンガーダウン検出541−5サブ事象及び遅延測定541−6サブ事象はダブルタップレコグナイザ570を状態事象可能574に維持し、最後のシーケンスのサブ事象540、すなわちフィンガーリフトオフ検出541−7の配信により、ダブルタップレコグナイザ570は状態事象認識済576に遷移する。
この時点で、マップビュー305は、タップ事象レコグナイザ590により認識されたシングルタップ事象ではなく、事象レコグナイザ570により認識されたような事象ダブルタップを選択する。ダブルタップ事象を選択するという判断は、設定されるタップ事象レコグナイザ590の排他的フラグ324、ダブルタップ事象を含むタップ事象レコグナイザ590の排他的例外リスト326、並びにタップ事象レコグナイザ590及びダブルタップレコグナイザ570の双方がそれぞれの事象の種類を正常に認識したという事実の組合せを考慮して行われる。
以下の表は、事象レコグナイザ570及び590に関連するようなサブ事象シーケンス540の配信、並びにサブ事象処理440を要約した表形式で示す。
別の実施形態において、図5Cの事象の例では、シングルタップ事象レコグナイザがダブルタップ事象レコグナイザを識別する待ちリストを有するため、シングルタップジェスチャは識別されない。その結果、(実行されたとしても)ダブルタップ事象レコグナイザが事象不可能状態になるまで、シングルタップジェスチャは認識されない。ダブルタップジェスチャが認識されるこの例において、ダブルタップジェスチャが認識されるまで、シングルタップ事象レコグナイザは事象可能状態のままだろう。その時点で、シングルタップ事象レコグナイザは事象不可能状態に遷移するだろう。
次に、いくつかの実施形態に係る事象認識方法を示すフローチャートである図6A及び図6Bに注目する。上述したように、いくつかの実施形態において電子デバイス102であってもよい電子デバイスで方法600を実行する。いくつかの実施形態において、電子デバイスは、マルチタッチジェスチャを検出するように構成されたタッチセンシティブ面を含んでもよい。あるいは、電子デバイスは、マルチタッチジェスチャを検出するように構成されたタッチスクリーンを含んでもよい。
方法600は、複数のビューを有するビュー階層を含むソフトウェアを実行するように構成される。方法600は、ビュー階層の1つ以上のビューを表示し(608)、1つ以上のソフトウェア要素を実行する(610)。各ソフトウェア要素は特定のビューと関連付けられ、各特定のビューは、それぞれ、事象レコグナイザ構造320及び360として図3B及び図3Cで説明されたような1つ以上の事象レコグナイザを含む。
一般に各事象レコグナイザは、1つ以上のサブ事象に基づいて状態遷移マシンとして実現されてもよい事象定義を含む。状態遷移マシンについては、例えば図3Bの状態遷移マシン340を参照する。更に事象レコグナイザは、一般に、対象に対する動作を規定する事象ハンドラを含み、事象定義に対応する事象を検出する事象レコグナイザに応答して動作を対象に送出するように構成される。
いくつかの実施形態において、図6Aのステップ612に示されたように、複数の事象レコグナイザのうちの少なくとも1つは、ジェスチャ定義及びジェスチャハンドラを有するジェスチャレコグナイザである。
いくつかの実施形態において、図6Aのステップ614に示されたように、事象定義はユーザジェスチャを定義する。
あるいは、事象レコグナイザは事象認識状態のセットを有する(616)。これらの事象認識状態は、少なくとも事象可能状態、事象不可能状態及び事象認識済状態を含んでもよい。
いくつかの実施形態において、事象ハンドラは、事象レコグナイザが事象可能状態になる場合に対象に配信するための対応する動作の準備を開始する(618)。図4A及び図5A〜図5Cの例に関連して上述したように、事象レコグナイザ毎に実現された状態遷移マシンは、一般に状態事象認識開始405等の初期状態を含む。事象定義の初期部分を形成するサブ事象を受信することにより、事象可能状態410への状態変化をトリガする。従って、いくつかの実施形態において、事象レコグナイザが状態事象認識開始405から状態事象可能410に遷移するのに伴い、事象レコグナイザの事象ハンドラは、事象が正常に認識された後で事象レコグナイザの対象へ配信するための特定の動作を準備し始めてもよい。
一方、いくつかの実施形態において、事象ハンドラは、事象レコグナイザが状態事象不可能420になる場合に対応する動作の準備を終了してもよい(620)。いくつかの実施形態において、対応する動作を終了することは、事象ハンドラの対応する動作のあらゆる準備を取り消すことを含む。
タップ事象レコグナイザ590が動作の準備を開始していてもよい(618)ため、図5Bの例は本実施形態とって有益である。しかし、フィンガー移動検出531−3サブ事象がタップ事象レコグナイザ590に配信されると、レコグナイザ590は事象不可能状態598、578に遷移する。その時点で、タップ事象レコグナイザ590は、準備を開始した(618)動作の準備を終了してもよい(620)。
いくつかの実施形態において、事象ハンドラは、事象レコグナイザが事象認識済状態になる場合に対象に配信するための対応する動作の準備を完了する(622)。マップビュー305に対して能動的に関わる事象レコグナイザによりダブルタップが認識されるため、図5Cの例は本実施形態を示す。それは、いくつかの実現例において、マップビュー305により示された検索結果を選択し且つ/あるいは実行する義務がある事象である。本明細書において、ダブルタップ事象レコグナイザ570がサブ事象シーケンス540から構成されるダブルタップ事象を正常に認識した後、マップビュー305の事象ハンドラは、動作、すなわち起動コマンドを受信したことを示す動作の準備を完了する(622)。
いくつかの実施形態において、事象ハンドラは、対応する動作を事象レコグナイザと関連付けられた対象に配信する(624)。引き続き図5Cの例を参照すると、準備された動作、すなわちマップビュー305の起動コマンドは、マップビュー305と関連付けられた特定の対象に配信される。これは、あらゆる適切なプログラムの方法又は目的であってもよい。
あるいは、複数の事象レコグナイザは、1つ以上のサブ事象のシーケンスを並列に個別に処理してもよい(626)。
いくつかの実施形態において、それぞれ、図3B及び図3Cの排他的フラグ324及び364に関連して上述したように、1つ以上の事象レコグナイザは排他的事象レコグナイザ628として構成されてもよい。事象レコグナイザが排他的事象レコグナイザとして構成される場合、事象配信システムは、排他的事象レコグナイザが事象を認識した後、ビュー階層で能動的に関わるビューに対する他のあらゆる事象レコグナイザ(事象を認識する事象レコグナイザの例外リスト326、366に列挙されたものを除く)が後続のサブ事象(サブ事象の同一のシーケンスの)を受信するのを防止する。また、非排他的事象レコグナイザが事象を認識する場合、事象配信システムは、事象を認識する事象レコグナイザの例外リスト326、366に列挙されたもの(もしあれば)を除き、ビュー階層で能動的に関わるビューに対するあらゆる排他的事象レコグナイザが後続のサブ事象を受信するのを防止する。
いくつかの実施形態において、それぞれ、図3B及び図3Cの排他的例外リスト326及び366に関連して上述したように、排他的事象レコグナイザは事象例外リストを含んでもよい(630)。上記の図5Cの説明で示されたように、事象レコグナイザの排他的例外リストは、各事象定義を構成するサブ事象のシーケンスが重なり合う場合でも事象レコグナイザが事象認識を継続できるようにするために使用可能である。従って、いくつかの実施形態において、事象例外リストは、対応する事象定義が反復サブ事象、例えば図5Cのシンブルタップ/ダブルタップ事象の例を有する事象を含む(632)。
あるいは、事象定義はユーザ入力動作を定義してもよい(634)。
いくつかの実施形態において、1つ以上の事象レコグナイザは、事象が認識されるまでサブ事象のシーケンスの全てのサブ事象を配信するのを遅延させるように構成されてもよい。
方法600は1つ以上のサブ事象のシーケンスを検出し(636)、いくつかの実施形態において、1つ以上のサブ事象のシーケンスは基本のタッチ事象を含んでもよい(638)。基本のタッチ事象は、タッチセンシティブ面上のタッチジェスチャの基本構成要素、例えば最初のフィンガータッチダウン又はスタイラスタッチダウンに関連したデータ、タッチセンシティブ面にわたる複数の指又はスタイラスの移動の開始に関連したデータ、逆方向の2本の指の移動、タッチセンシティブ面からのスタイラスリフトオフ等を含んでもよいがそれらに限定されない。
1つ以上のサブ事象のシーケンスのサブ事象は、特に、キー押下、キー押下保持、キー押下解放、ボタン押下、ボタン押下保持、ボタン押下解放、ジョイスティックの移動、マウスの移動、マウスボタンの押下、マウスボタンの解放、ペンスタイラスのタッチ、ペンスタイラスの移動、ペンスタイラスの解放、音声命令、検出された眼球運動、生体情報認識入力及び検出されたユーザの生理学的変化を含むがそれらに限定されない多くの形態を含んでよい。
方法600は、ビュー階層のビューのうちの1つをヒットビューとして識別する(640)。ヒットビューは、ビュー階層のどのビューが能動的に関わるビューであるかを明らかにする。能動的に関わるビュー303が、タッチサブ事象301がマップビュー305と関連付けられた領域に接触したためにマップビュー305及び検索結果パネル304を含む一例を図3Aに示す。
いくつかの実施形態において、ビュー階層内の第1の能動的に関わるビューは、その第1の能動的に関わるビューと関連付けられた事象レコグナイザへのそれぞれのサブ事象の配信を防止するように構成されてもよい(642)。この挙動により、図3B及び図3Cに関連して上述したスキッププロパティ(それぞれ、330及び370)を実現できる。スキッププロパティが事象レコグナイザに対して設定される場合、それぞれのサブ事象の配信は、ビュー階層で他の能動的に関わるビューと関連付けられた事象レコグナイザに対して依然として実行される。
あるいは、ビュー階層内の第1の能動的に関わるビューは、第1の能動的に関わるビューがヒットビューでない限り、第1の能動的に関わるビューと関連付けられた事象レコグナイザへのそれぞれのサブ事象の配信を防止するように構成されてもよい(644)。この挙動により、図3B及び図3Cに関連して上述した条件付きスキッププロパティ(それぞれ、332及び372)を実現できる。
いくつかの実施形態において、ビュー階層内の第2の能動的に関わるビューは、第2の能動的に関わるビューと関連付けられた事象レコグナイザ及び第2の能動的に関わるビューの祖先と関連付けられた事象レコグナイザへのそれぞれのサブ事象の配信を防止するように構成される(646)。この挙動により、図3B及び図3Cに関連して上述した停止プロパティ(それぞれ、328及び368)を実現できる。
方法600は、ビュー階層内で能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信する(648)。いくつかの実施形態において、ビュー階層で能動的に関わるビューに対する事象レコグナイザは、サブ事象のシーケンスの次のサブ事象を処理する前に各サブ事象を処理する。あるいは、ビュー階層で能動的に関わるビューに対する事象レコグナイザは、各サブ事象を処理しつつサブ事象認識を判断する。
いくつかの実施形態において、ビュー階層で能動的に関わるビューに対する事象レコグナイザは、1つ以上のサブ事象のシーケンスを同時に処理してもよい(650)。あるいは、ビュー階層で能動的に関わるビューに対する事象レコグナイザは、1つ以上のサブ事象のシーケンスを並列に処理してもよい。
いくつかの実施形態において、1つ以上の事象レコグナイザは、事象レコグナイザが事象を認識するまでサブ事象のシーケンスの1つ以上のサブ事象を配信するのを遅延させるように構成されてもよい(652)。この挙動は遅延した事象を反映する。例えば、多数のタップジェスチャが可能であるビューのシングルタップジェスチャを考える。その場合、タップ事象は「タップ+遅延」レコグナイザになる。本質的に、事象レコグナイザは、この挙動を実現する場合、サブ事象のシーケンスが実際に事象定義に対応することを確定するまで事象認識を遅延させる。受信側ビューが取り消された事象に適切に応答できない場合、この挙動は適切だろう。いくつかの実施形態において、事象レコグナイザは、サブ事象のシーケンスが事象定義に対応しないことを確定するまで、事象認識ステータスをそれぞれの能動的に関わるビューに更新するのを遅延させる。図3B及び図3Cに関連して上述したように、遅延タッチ開始済フラグ328、368、遅延タッチ終了フラグ330、370及びタッチ取り消しフラグ332、372は、サブ事象配信技術を調節するために提供され、事象レコグナイザ及びビューステータス情報は特定のニーズに更新される。
図7A〜図7Sは、いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す。これらの図におけるユーザインタフェースは、図8A及び図8B、図9A〜図9C、並びに図10A及び図10Bにおける処理を含む以下に説明する処理を示すために使用される。
以下の多くの例がタッチスクリーンディスプレイ156(タッチセンシティブ面及びディスプレイが組み合わされる)に対する入力を参照して与えられるが、いくつかの実施形態において、デバイスはディスプレイ(例えば、タッチパッド又はトラックパッド)とは別個のタッチセンシティブ面に対する入力を検出する。いくつかの実施形態において、タッチセンシティブ面は、ディスプレイにおける主軸に対応する主軸を有する。これらの実施形態によると、デバイスは、ディスプレイ上のそれぞれの場所に対応する場所におけるタッチセンシティブ面との接触を検出する。このように、タッチセンシティブ面においてデバイスにより検出されたユーザ入力は、タッチセンシティブ面がディスプレイとは別個である場合に電子デバイスのディスプレイ上のユーザインタフェースを操作するためにデバイスにより使用される。本明細書で説明される他のユーザインタフェースに対して同様の方法が使用されてもよいことが理解されるべきである。
図7Aは、いくつかの実施形態に係る電子デバイス102上の例示的なユーザインタフェース(「ホーム画面」708)を示す。同様のユーザインタフェースは、電子デバイス102上で実現されてもよい。いくつかの実施形態において、ホーム画面708は、スプリングボードと呼ばれることもあるアプリケーションランチャソフトウェアアプリケーションにより表示される。いくつかの実施形態において、タッチスクリーン156上のユーザインタフェースは、以下の要素、あるいはそれらのサブセット又は上位セットを含む。
・セルラ信号及びWi−Fi信号等の無線通信に対する信号強度標識702
・時間704
・バッテリ状態標識706
例示的なユーザインタフェースは、複数のアプリケーションアイコン5002(例えば、5002−25〜5002−38)を含む。ホーム画面708から、フィンガージェスチャは、アプリケーションを起動するために使用可能である。例えば、アプリケーションアイコン5002−36に対応する場所におけるタップフィンガージェスチャ701は、電子メールアプリケーションの起動を開始する。
図7Bにおいて、アプリケーションアイコン5002−36に対するフィンガージェスチャ701の検出に応答して、電子メールアプリケーションが起動され、電子メールアプリケーションビュー712−1がタッチスクリーン156に表示される。ユーザは、他のアプリケーションを同様に起動してもよい。例えばユーザは、あらゆるアプリケーションビュー712からホームボタン710を押下し、ホーム画面708(図7A)に戻ってホーム画面708上のそれぞれのアプリケーションアイコン5002に対するフィンガージェスチャにより他のアプリケーションを起動してもよい。
図7C〜図7Gは、ホーム画面708上のそれぞれのアプリケーションアイコン5002に対応する場所におけるそれぞれのフィンガージェスチャを検出することに応答してそれぞれのアプリケーションが順次起動されることと、その結果それぞれのユーザインタフェース(すなわち、それぞれのアプリケーションビュー)が表示されることとを示す。特に、図7Cは、アプリケーションアイコン5002−32に対するフィンガージェスチャに応答してメディアストアアプリケーションビュー712−2が表示されることを示す。図7Dにおいて、アプリケーションアイコン5002−30に対するフィンガージェスチャに応答してメモアプリケーションビュー712−3が表示される。図7Eは、アプリケーションアイコン5002−27に対するフィンガージェスチャに応答してマップアプリケーションビュー712−4が表示されることを示す。図7Fにおいて、アプリケーションアイコン5002−28に対するフィンガージェスチャに応答して天気アプリケーションビュー712−5が表示される。図7Gは、アプリケーションアイコン5002−37に対するフィンガージェスチャに応答してウェブブラウザアプリケーションビュー712−6が表示されることを示す。いくつかの実施形態において、開いているアプリケーションのシーケンスは、電子メールアプリケーション、メディアストアアプリケーション、メモアプリケーション、マップアプリケーション、天気アプリケーション及びウェブブラウザアプリケーションの起動に対応する。
図7Gは、ユーザインタフェースオブジェクト(例えば、お気に入りアイコン)に対するフィンガージェスチャ703(例えば、タップジェスチャ)を更に示す。いくつかの実施形態において、お気に入りアイコンに対するフィンガージェスチャ703の検出に応答して、ウェブブラウザアプリケーションは、お気に入りのリストをタッチスクリーン156に表示する。同様に、ユーザは、他のジェスチャ(例えば、ユーザが一般にオンスクリーンキーボードを用いて新しいアドレスをタイプするかあるいは表示されたアドレスを変更できるようにするアドレスユーザインタフェースオブジェクトに対するタップジェスチャ、選択されたリンクに対応するウェブページへのナビゲートを開始する表示されたウェブページにおけるリンクのうちのいずれかに対するタップジェスチャ等)により、表示されたアプリケーション(例えば、ウェブブラウザアプリケーション)と対話してもよい。
図7Gにおいて、第1の事前定義済み入力(例えば、ホームボタン710に対するダブルクリック705)が検出される。あるいは、複数の指のスワイプジェスチャ(例えば、指の接触707、709及び711の移動により示されるような3本の指のスワイプアップジェスチャ)がタッチスクリーン156で検出される。
図7Hは、第1の事前定義済み入力(例えば、ダブルクリック705又は指の接触707、709及び711を含む複数の指のスワイプジェスチャ)の検出に応答して、ウェブブラウザアプリケーションビュー712−6及びアプリケーションアイコン領域716の一部が同時に表示されることを示す。いくつかの実施形態において、第1の事前定義済み入力の検出に応答して、デバイスは、同時に開いているアプリケーションのうちの1つを選択するアプリケーションビュー選択モードを開始し、ウェブブラウザアプリケーションビュー712−6及びアプリケーションアイコン領域716の一部は、アプリケーションビュー選択モードの一部として同時に表示される。アプリケーションアイコン領域716は、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループを含む。この例において、ポータブル電子デバイスは、同時に開いている複数のアプリケーション(例えば、電子メールアプリケーション、メディアストアアプリケーション、メモアプリケーション、マップアプリケーション、天気アプリケーション及びウェブブラウザアプリケーション)を有するが、それら全てが同時に表示されない。図7Hに示されるように、アプリケーションアイコン領域506は、天気アプリケーション、マップアプリケーション、メモアプリケーション及びメディアストアアプリケーション(すなわち、開いているアプリケーションのシーケンスにおける現在表示されているアプリケーションの直後の4つのアプリケーション、ウェブブラウザアプリケーション)に対するアプリケーションアイコン(例えば、5004−2、5004−4、5004−6及び5004−8)を含む。いくつかの実施形態において、アプリケーションアイコン領域716に表示された、開いているアプリケーションアイコンのシーケンス又は順序は、所定のシーケンスにおける開いているアプリケーション(例えば、天気アプリケーション、マップアプリケーション、メモアプリケーション及びメディアストアアプリケーション)のシーケンスに対応する。
図7Hは、ジェスチャ713(例えば、タップジェスチャ)が開いているアプリケーションアイコン5004−8に対して検出されることを更に示す。いくつかの実施形態において、ジェスチャ713の検出に応答して、対応するアプリケーションビュー(例えば、図7Cのメディアストアアプリケーションビュー712−2)が表示される。
図7Hは、左スワイプジェスチャ715がアプリケーションアイコン領域716に対応する場所において検出されることを示す。図7Iにおいて、左スワイプジェスチャ715の検出に応答して、アプリケーションアイコン領域716におけるアプリケーションアイコン(例えば、5004−2、5004−4、5004−6及び5004−8)がスクロールされる。スクロールの結果、電子メールアプリケーションに対するアプリケーションアイコン5004−12は、前に表示されたアプリケーションアイコン(例えば、5004−2、5004−4、5004−6及び5004−8)の代わりにアプリケーションアイコン領域506に表示される。
図7Jにおいて、第1の種類のジェスチャ(例えば、指の接触717、719及び721の移動を含む複数の指の左スワイプジェスチャ)は、ウェブブラウザアプリケーションビュー712−6に対して検出される。図7Kは、第1の種類のジェスチャの検出に応答して、天気アプリケーションビュー712−5がタッチスクリーン156に表示されることを示す。尚、天気アプリケーションは、開いているアプリケーションのシーケンスにおいてウェブブラウザアプリケーションに隣接する。
図7Kは、第1の種類の第2のジェスチャ(例えば、指の接触723、725及び727の移動を含む複数の指の左スワイプジェスチャ)が天気アプリケーションビュー712−5に対して検出されることを更に示す。図7Lは、第1の種類の第2のジェスチャの検出に応答して、マップアプリケーションビュー712−4がタッチスクリーン156に表示されることを示す。尚、マップアプリケーションは、開いているアプリケーションのシーケンスにおいて天気アプリケーションに隣接する。
図7Lは、第1の種類の第3のジェスチャ(例えば、指の接触729、731及び733の移動を含む複数の指の左スワイプジェスチャ)がマップアプリケーションビュー712−4に対して検出されることを更に示す。図7Mは、第1の種類の第3のジェスチャの検出に応答して、メモアプリケーションビュー712−3がタッチスクリーン156に表示されることを示す。尚、メモアプリケーションは、開いているアプリケーションのシーケンスにおいてマップアプリケーションに隣接する。
図7Mは、第1の種類の第4のジェスチャ(例えば、指の接触735、737及び739の移動を含む複数の指の左スワイプジェスチャ)がメモアプリケーションビュー712−3に対して検出されることを更に示す。図7Nは、第1の種類の第4のジェスチャの検出に応答して、メディアストアアプリケーションビュー712−2がタッチスクリーン156に表示されることを示す。尚、メディアストアアプリケーションは、開いているアプリケーションのシーケンスにおいてメモアプリケーションに隣接する。
図7Nは、第1の種類の第5のジェスチャ(例えば、指の接触741、743及び745の移動を含む複数の指の左スワイプジェスチャ)がメディアストアアプリケーションビュー712−2に対して検出されることを更に示す。図7Oは、第1の種類の第5のジェスチャの検出に応答して、電子メールアプリケーションビュー712−1がタッチスクリーン156に表示されることを示す。尚、電子メールアプリケーションは、開いているアプリケーションのシーケンスにおいてメディアストアアプリケーションに隣接する。
図7Oは、第1の種類の第6のジェスチャ(例えば、指の接触747、749及び751の移動を含む複数の指の左スワイプジェスチャ)が電子メールアプリケーションビュー712−1に対して検出されることを更に示す。図7Pは、第1の種類の第6のジェスチャの検出に応答して、ウェブブラウザアプリケーションビュー712−6がタッチスクリーン156に表示されることを示す。尚、ウェブブラウザアプリケーションは、開いているアプリケーションのシーケンスの一方の端部上にあり、電子メールアプリケーションは開いているアプリケーションのシーケンスの反対側の端部上にある。
図7Pは、第2の種類のジェスチャ(例えば、指の接触753、755及び757の移動を含む複数の指の右スワイプジェスチャ)がウェブブラウザアプリケーションビュー712−6に対して検出されることを更に示す。図7Qは、いくつかの実施形態において、第2の種類のジェスチャの検出に応答して、電子メールアプリケーションビュー712−1がタッチスクリーン156に表示されることを示す。
図7Rを参照すると、複数の指のジェスチャ(例えば、指の接触759、761、763、765及び767の移動を含む5本の指のピンチジェスチャ)は、ウェブブラウザアプリケーションビュー712−6に対して検出される。図7Sは、タッチスクリーン156に対する複数の指のジェスチャを検出している間に、ウェブブラウザアプリケーションビュー712−6及びホーム画面708の少なくとも一部が同時に表示されることを示す。示されるように、ウェブブラウザアプリケーションビュー712−6は縮小表示される。複数の指のジェスチャがタッチスクリーン156で検出されている間、縮小率は複数の指のジェスチャに従って調整される。例えば縮小率は、指の接触759、761、763、765及び767を更にピンチすることで減少する(すなわち、ウェブブラウザアプリケーションビュー712−6は更に縮小表示される)。あるいは、縮小率は、指の接触759、761、763、765及び767を非ピンチすることで増加する(すなわち、ウェブブラウザアプリケーションビュー712−6は、前より大きな寸法で表示される)。
いくつかの実施形態において、複数の指のジェスチャの検出が中止される際、ウェブブラウザアプリケーションビュー712−6の表示が中止され、ホーム画面708全体が表示される。あるいは、複数の指のジェスチャの検出が中止される際、ホーム画面708全体が表示されるか又はウェブブラウザアプリケーションビュー712−6がフルスクリーン寸法で表示されるかが判定される。いくつかの実施形態において、複数の指のジェスチャの表示が中止される際、縮小率に基づいて判定が行われる(例えば、複数の指のジェスチャの検出が中止される際にアプリケーションビューが事前定義済みの閾値より小さな寸法で表示される場合、ホーム画面708全体が表示され、複数の指のジェスチャの検出が中止される際にアプリケーションビューが事前定義済みの閾値より大きな寸法で表示される場合、アプリケーションビューは、ホーム画面708を表示することなくフルスクリーン寸法で表示される)。いくつかの実施形態において、更に複数の指のジェスチャの速度に基づいて判定が行われる。
図8A及び図8Bは、いくつかの実施形態に係る事象認識方法800を示すフローチャートである。方法800は、タッチセンシティブディスプレイを備えた電子デバイス(例えば、図1Bのデバイス102)において実行される(802)。電子デバイスは、少なくとも第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションを実行するように構成される。第1のソフトウェアアプリケーションは、1つ以上のジェスチャレコグナイザの第1のセットを含み、第2のソフトウェアアプリケーションは、1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含む(例えば図3Fにおいて、アプリケーション133−2はジェスチャレコグナイザ516−4を有し、アプリケーション133−1は、ジェスチャレコグナイザ516−1〜561−3、並びにビュー508、510及び512を有する)。各ジェスチャレコグナイザは、対応するジェスチャハンドラ(例えば、ジェスチャハンドラ552−1はジェスチャレコグナイザ516−1に対応し、ジェスチャハンドラ552−3はジェスチャレコグナイザ516−4に対応する)を有する。1つ以上のジェスチャレコグナイザの第1のセットは、一般に、1つ以上のジェスチャレコグナイザの第2のセットとは異なる。
方法800により、ユーザは、バックグラウンドアプリケーション、中断されたアプリケーション又は休止状態のアプリケーション等の電子デバイスのディスプレイに現在表示されていない、開いている非表示アプリケーション(例えば、第1のソフトウェアアプリケーション)をジェスチャにより制御できる。従って、ユーザは、電子デバイスのディスプレイに現在表示されているアプリケーション(例えば、第2のソフトウェアアプリケーション)により提供されないが、現在開いているアプリケーションのうちの1つにより提供される動作(例えば、非表示アプリケーションランチャソフトウェアアプリケーションに対するジェスチャを使用してホーム画面を表示すること又は次のソフトウェアアプリケーションに切り替わること)を実行できる。
いくつかの実施形態において、第1のソフトウェアアプリケーションは、アプリケーションランチャ(例えば、スプリングボード)である(804)。例えば、図7Aに示されたように、アプリケーションランチャは、複数のアプリケーションに対応する複数のアプリケーションアイコン5002を表示する。アプリケーションランチャは、アプリケーションアイコン5002のユーザ選択を受信し(例えば、タッチスクリーン156に対するフィンガージェスチャに基づいて)、ユーザ選択の受信に応答して、選択されたアプリケーションアイコン5002に対応するアプリケーションを起動する。
第2のソフトウェアアプリケーションは、一般に、アプリケーションランチャにより起動されたソフトウェアアプリケーションである。図7A及び図7Bに示されたように、アプリケーションランチャは、電子メールアプリケーションアイコン5002−36に対するタップジェスチャ701に関する情報を受信し、電子メールアプリケーションを起動する。それに応答して、電子メールアプリケーションは、電子メールアプリケーションビュー712−1をタッチスクリーン156に表示する。第2のアプリケーションは、アプリケーションアイコン5002(図7A)に対応するあらゆるアプリケーション又はアプリケーションランチャにより起動可能な他のあらゆるアプリケーション(例えば、図7Cのメディアストアアプリケーション、図7Dのメモアプリケーション、図7Eのマップアプリケーション、7Fの天気アプリケーション、図7Gのウェブブラウザアプリケーション等)であってもよい。方法800の以下の説明において、アプリケーションランチャは、例示的な第1のソフトウェアアプリケーションとして使用され、ウェブブラウザアプリケーションは、例示的な第2のソフトウェアアプリケーションとして使用される。
いくつかの実施形態において、電子デバイスは、プログラム階層における2つのソフトウェアアプリケーション、すなわちアプリケーションランチャ及び他の1つのソフトウェアアプリケーション(一般に、電子デバイス102のタッチスクリーン156に表示された1つ以上のビューに対応するソフトウェアアプリケーション)しか有さない。
いくつかの実施形態において、第1のソフトウェアアプリケーションはオペレーティングシステムアプリケーションである(806)。本明細書で使用されるように、オペレーティングシステムアプリケーションは、オペレーティングシステム118(図1A〜図1C)と統合されるアプリケーションを示す。オペレーティングシステムアプリケーションは、一般に、図2のコアOSレベル208又はオペレーティングシステムAPIソフトウェア206に常駐する。オペレーティングシステムアプリケーションが、一般にユーザにより取り外し不可であるのに対し、他のアプリケーションは、一般にユーザによりインストール又は削除されてもよい。いくつかの実施形態において、オペレーティングシステムアプリケーションはアプリケーションランチャを含む。いくつかの実施形態において、オペレーティングシステムアプリケーションは、設定アプリケーション(例えば、図1Cのデバイス/グローバル内部状態134においてシステム設定又は1つ以上の値を表示/変更するアプリケーション)を含む。いくつかの実施形態において、オペレーティングシステムアプリケーションはアクセシビリティモジュール127を含む。いくつかの実施形態において、電子デバイスは、プログラム階層における3つのソフトウェアアプリケーション、すなわちアプリケーションランチャ、設定アプリケーション及び他の1つのアプリケーション(一般に、電子デバイス102のタッチスクリーン156に表示された1つ以上のビューに対応するソフトウェアアプリケーション)しか有さない。
電子デバイスは、第2のソフトウェアアプリケーションの1つ以上のビュー(例えば、図7Gのウェブブラウザアプリケーションビュー712−6)の少なくともサブセットを表示する(808)。
いくつかの実施形態において、表示することは、第1のソフトウェアアプリケーションのビューを全く表示することなく第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを表示することを含む(810)。例えば図7Gにおいて、アプリケーションランチャのビュー(例えば、ホーム画面708)は表示されない。
いくつかの実施形態において、表示することは、他のいずれかのアプリケーションのビューを表示することなく第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを表示することを含む(812)。例えば図7Gにおいて、ウェブブラウザアプリケーションの1つ以上のビューしか表示されない。
第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを表示している間、電子デバイスは、タッチセンシティブディスプレイに対するタッチ入力(例えば、タッチダウン事象及びタッチアップ事象を含むジェスチャ703、指の接触707、709及び711のタッチダウン、タッチスクリーン156にわたる指の接触707、709及び711の移動、並びに指の接触707、709及び711のリフトオフを含む別のジェスチャ)のシーケンスを検出する(814)。タッチ入力のシーケンスは、1つ以上のタッチ入力の第1の部分及び第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む。本明細書で使用されるように、「シーケンス」という用語は、1つ以上のタッチ事象が発生する順序を示す。例えば、指の接触707、709及び711を含むタッチ入力のシーケンスにおいて、第1の部分は、指の接触707、709及び711のタッチダウンを含んでもよく、第2の部分は、指の接触707、709及び711の移動、並びに指の接触707、709及び711のリフトオフを含んでもよい。
いくつかの実施形態において、1つ以上のタッチ入力の第1の部分におけるタッチ入力が第2のソフトウェアアプリケーションの表示されたビューのうちの少なくとも1つに少なくとも部分的に重なり合っている間に検出が行われる(816)。いくつかの実施形態において、タッチ入力が第2のソフトウェアアプリケーションの表示されたビューのうちの少なくとも1つに少なくとも部分的に重なり合うが、第1のソフトウェアアプリケーションは、1つ以上のタッチ入力の第1の部分を受信する。例えばアプリケーションランチャは、表示されないが、ウェブブラウザ(図7G)の表示されたビューに対するタッチ入力の第1の部分を受信する。
タッチ入力のシーケンスを検出する第1の段階の間(818)、電子デバイスは、1つ以上のタッチ入力の第1の部分を第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションに配信し(820)(例えば、図3Dの事象ディスパッチャモジュール315を使用して)、1つ以上のタッチ入力の第1の部分を認識する1つ以上のマッチングジェスチャレコグナイザを第1のセットのジェスチャレコグナイザから識別し(822)(例えば、図3Dの第1のセットの各ジェスチャレコグナイザ(一般に、各受信側ジェスチャレコグナイザ)の事象比較部3033を使用して)、1つ以上のマッチングジェスチャレコグナイザに対応する(例えば、図3Dの対応する事象ハンドラ319を起動する)1つ以上のジェスチャハンドラにより1つ以上のタッチ入力の第1の部分を処理する(824)。
いくつかの実施形態において、タッチ入力のシーケンスを検出する第1の段階は、1つ以上のタッチ入力の第1の部分を検出する段階である。
配信動作(820)に関して、いくつかの実施形態において、第1のソフトウェアアプリケーションは、1つ以上の入力の第1の部分を受信した後に1つ以上のタッチ入力の第1の部分を第1のセットのジェスチャレコグナイザの少なくともサブセットに配信し、第2のソフトウェアアプリケーションは、1つ以上の入力の第1の部分を受信した後に1つ以上のタッチ入力の第1の部分を第2のセットのジェスチャレコグナイザの少なくともサブセットに配信する。いくつかの実施形態において、電子デバイス又は電子デバイスの事象ディスパッチャモジュール(例えば、図3Dの315)は、1つ以上のタッチ入力の第1の部分を第1のセット及び第2のセットのジェスチャレコグナイザの少なくともサブセットに配信する(例えば図3Fにおいて、事象ディスパッチャモジュール315は、1つ以上のタッチ入力の第1の部分をジェスチャレコグナイザ516−1、516−2及び516−4に配信する)。
例えば、指の接触707、709及び711を含むフィンガージェスチャがタッチスクリーン156で検出される(図7G)場合、タッチダウン事象は、アプリケーションランチャの1つ以上のジェスチャレコグナイザ及びウェブブラウザアプリケーションの1つ以上のジェスチャレコグナイザに配信される。別の例において、タップジェスチャ703(図7G)のタッチダウン事象は、アプリケーションランチャの1つ以上のジェスチャレコグナイザ及びウェブブラウザアプリケーションの1つ以上のジェスチャレコグナイザに配信される。
いくつかの実施形態において、第1のセットのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識しない(例えば、検出された事象とジェスチャ定義又はジェスチャとの不一致が完成しない)場合、1つ以上のタッチ入力の第1の部分を処理することは、ヌル操作を実行することを含む(例えばデバイスは、表示されたユーザインタフェースを更新しない)。
いくつかの実施形態において、電子デバイスは、1つ以上のタッチ入力の第1の部分をレコグナイザ1つ以上のマッチングジェスチャレコグナイザを第2のセットのジェスチャレコグナイザから識別する。電子デバイスは、1つ以上のマッチングジェスチャレコグナイザに対応する1つ以上のジェスチャハンドラにより1つ以上のタッチ入力の第1の部分を処理する。例えば、ウェブブラウザアプリケーションの1つ以上のジェスチャレコグナイザに配信されたタップジェスチャ703(図7G)に応答して、ウェブブラウザアプリケーションのマッチングジェスチャレコグナイザ(例えば、図7Gのお気に入りアイコンに対するタップジェスチャを認識するジェスチャレコグナイザ)は、タッチスクリーン156にお気に入りのリストを表示することでタップジェスチャ703を処理する。
いくつかの実施形態において、第1の段階に後続するタッチ入力のシーケンスを検出する第2の段階の間、電子デバイスは、1つ以上のタッチ入力の第2の部分を第2のソフトウェアアプリケーションに配信することなく第1のソフトウェアアプリケーションに配信し(図8Bの826)(例えば、図3Dの事象ディスパッチャモジュール315を使用して)、タッチ入力のシーケンスを認識する第2のマッチングジェスチャレコグナイザを1つ以上のマッチングジェスチャレコグナイザから識別し(例えば、図3Dの各マッチングジェスチャレコグナイザの事象比較部3033を使用して)、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する。いくつかの実施形態において、タッチ入力のシーケンスを検出する第2の段階は、1つ以上のタッチ入力の第2の部分を検出する段階である。
例えば、指の接触707、709及び711を含むフィンガージェスチャがタッチスクリーン156で検出される(図7G)場合、タッチの移動及びリフトオフの事象は、タッチ事象をウェブブラウザアプリケーションに配信することなくアプリケーションランチャの1つ以上のジェスチャレコグナイザに配信される。電子デバイスは、アプリケーションランチャのマッチングジェスチャレコグナイザ(例えば、3本の指のスワイプアップジェスチャレコグナイザ)を識別し、3本の指のスワイプアップジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する。
一般に、第1のソフトウェアアプリケーションが第2のソフトウェアアプリケーションより優先される(例えば、プログラム階層において)ため、第2のソフトウェアアプリケーションは、第2の段階の間に1つ以上のタッチ入力の第2の部分を受信しない。従って、いくつかの実施形態において、第1のソフトウェアアプリケーションのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識する場合、第1のソフトウェアアプリケーションの1つ以上のジェスチャレコグナイザは、1つ以上のタッチ入力の第2の後続部分を排他的に受信する。また、第2のソフトウェアアプリケーションのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分に一致しないため、第2のソフトウェアアプリケーションは、第2の段階の間に1つ以上のタッチ入力の第2の部分を受信しなくてもよい。
いくつかの実施形態において、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理することは、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループをタッチセンシティブディスプレイの第1の事前定義済み領域に表示することと、第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを同時に表示することとを含む(834)。例えば図7Hにおいて、事前定義済み領域716におけるアプリケーションアイコン5004は、電子デバイスの同時に開いているアプリケーションに対応する。いくつかの実施形態において、事前定義済み領域716におけるアプリケーションアイコン5004は、開いているアプリケーションのシーケンスに従って表示される。図7Hにおいて、電子デバイスは、事前定義済み領域716及びウェブブラウザアプリケーションビュー712−6のサブセットを同時に表示する。
いくつかの実施形態において、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理することは、第1のソフトウェアアプリケーションの1つ以上のビューを表示することを含む(828)。例えば、複数の指のピンチジェスチャ(図7R)に応答して、電子デバイスはホーム画面708(図7A)を表示する。いくつかの実施形態において、第1のソフトウェアアプリケーションの1つ以上のビューを表示することは、他のいずれかのソフトウェアアプリケーション(例えば、図7A)に対応するビューを同時に表示することなく第1のソフトウェアアプリケーションの1つ以上のビューを表示することを含む。
いくつかの実施形態において、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理することは、第2のソフトウェアアプリケーションの1つ以上のビューの表示を第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換する(例えば、図7Aのホーム画面708を表示する)ことを含む(830)。従って、第2のソフトウェアアプリケーションの1つ以上のビューの表示は、第1のソフトウェアアプリケーションの1つ以上のビューが表示された後に中止される。いくつかの実施形態において、第2のソフトウェアアプリケーションの1つ以上のビューの表示を第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換することは、他のいずれかのソフトウェアアプリケーション(図7A)に対応するビューを同時に表示することなく第1のソフトウェアアプリケーションの1つ以上のビューを表示することを含む。
いくつかの実施形態において、電子デバイスは、第1のソフトウェアアプリケーション、第2のソフトウェアアプリケーション及び第3のソフトウェアアプリケーションを同時に実行する(832)。いくつかの実施形態において、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理することは、第2のソフトウェアアプリケーションの表示された1つ以上のビューを第3のソフトウェアアプリケーションの1つ以上のビューに置換することを含む。例えば、複数の指のスワイプジェスチャに応答して、電子デバイスは、ウェブブラウザアプリケーションビュー712−6の表示を天気アプリケーションビュー712−5の表示に置換する(図7J及び図7K)。いくつかの実施形態において、第2のソフトウェアアプリケーションの表示された1つ以上のビューを第3のソフトウェアアプリケーションの1つ以上のビューに置換することは、他のいずれかのソフトウェアアプリケーションに対応するビューを同時に表示することなく第3のソフトウェアアプリケーションの1つ以上のビューを表示することを含む。いくつかの実施形態において、第3のソフトウェアアプリケーションは、開いているアプリケーションのシーケンスにおいて第2のソフトウェアアプリケーションに隣接する。
いくつかの実施形態において、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理することは、設定アプリケーションを起動することを含む。例えば、10本の指のタップジェスチャに応答して、電子デバイスは設定アプリケーションを起動する。
尚、方法800に関して上述した処理の詳細は、以下に説明する方法900にも同様に適用可能である。簡潔にするために、以下においてこれら詳細は繰り返さない。
図9A〜図9Cは、事象認識方法900を示すフローチャートである。方法900は、タッチセンシティブディスプレイを備えた電子デバイスにおいて実行される(902)。電子デバイスは、少なくとも第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションを実行するように構成される。第1のソフトウェアアプリケーションは、1つ以上のジェスチャレコグナイザの第1のセットを含み、第2のソフトウェアアプリケーションは、1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。いくつかの実施形態において、1つ以上のジェスチャレコグナイザの第1のセットは、1つ以上のジェスチャレコグナイザの第2のセットとは異なる。
方法900により、ユーザは、バックグラウンドアプリケーション、中断されたアプリケーション又は休止状態のアプリケーション等の電子デバイスのディスプレイに現在表示されていない、開いている非表示アプリケーション(例えば、第1のソフトウェアアプリケーション)をジェスチャにより制御できる。従って、ユーザは、電子デバイスのディスプレイに現在表示されているアプリケーション(例えば、第2のソフトウェアアプリケーション)により提供されないが、現在開いているアプリケーションのうちの1つにより提供される動作(例えば、非表示アプリケーションランチャソフトウェアアプリケーションに対するジェスチャを使用してホーム画面を表示すること又は次のソフトウェアアプリケーションに切り替わること)を実行できる。
いくつかの実施形態において、第1のソフトウェアアプリケーションはアプリケーションランチャ(例えば、スプリングボード)である(904)。いくつかの実施形態において、第1のソフトウェアアプリケーションはオペレーティングシステムアプリケーションである(906)。方法900の以下の説明において、アプリケーションランチャは、例示的な第1のソフトウェアアプリケーションとして使用され、ウェブブラウザアプリケーションは、例示的な第2のソフトウェアアプリケーションとして使用される。
電子デバイスは、1つ以上のビュー(例えば、図7Gのウェブブラウザアプリケーションビュー712−6)の第1のセットを表示する(908)。1つ以上のビューの第1のセットは、第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを含む。例えば、第2のソフトウェアアプリケーションは、複数のアプリケーションビュー(例えば、図3Dのアプリケーション133−1のアプリケーションビュー317)を有してもよく、電子デバイスは、複数のアプリケーションビューのうちの少なくとも1つのビューを表示する。いくつかの実施形態において、サブセットは、第2のソフトウェアアプリケーションの1つ以上のビュー全体を含む。
いくつかの実施形態において、1つ以上のビューの第1のセットを表示することは、第1のソフトウェアアプリケーションのビュー(例えば、図7Gのウェブブラウザアプリケーションビュー712−6)を全く表示することなく1つ以上のビューの第1のセットを表示することを含む(910)。
いくつかの実施形態において、1つ以上のビューの第1のセットを表示することは、他のいずれかのソフトウェアアプリケーションのビューを表示することなく1つ以上のビューの第1のセットを表示することを含む(912)。例えば図7Gにおいて、ウェブブラウザアプリケーションの1つ以上のビューしか表示されない。
1つ以上のビューの第1のセットを表示している間、電子デバイスは、タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出し(914)、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識するかを判定する(920)。例えば、ウェブブラウザアプリケーションビュー712−6(図7G)を表示している間、デバイスは、アプリケーションランチャに対するジェスチャレコグナイザがタッチ入力の第1の部分を認識するかを判定する。タッチ入力のシーケンスは、1つ以上のタッチ入力の第1の部分及び第1の部分に後続する1つ以上のタッチ入力の第2の部分(すなわち、第2の部分は第1の部分の後である)を含む。
いくつかの実施形態において、タッチ入力のシーケンスは、第2のソフトウェアアプリケーションの表示された1つ以上のビューのうちの少なくとも1つに少なくとも部分的に重なり合う(916)。例えば、アプリケーションランチャは、表示されないが、ウェブブラウザアプリケーションビュー712−6(図7G)に対するタッチ入力の第1の部分を受信する。
いくつかの実施形態において、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識すると判定する前に、電子デバイスは、1つ以上のタッチ入力の第1の部分を第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションに同時に配信する(918)。例えば、アプリケーションランチャ及びウェブブラウザアプリケーションの双方は、アプリケーションランチャの少なくとも1つのジェスチャレコグナイザがタッチダウン事象を認識すると判定する前に、指の接触707、709及び711(図7G)のタッチダウン事象を受信する。
1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識すると判定することに従って(図9Bの922)、電子デバイスは、タッチ入力のシーケンスを第2のソフトウェアアプリケーションに配信することなく第1のソフトウェアアプリケーションに配信し(924)、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定し(926)、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する(928)。
例えば、3本の指の接触707、709及び711のタッチダウン及びタッチの移動がタッチスクリーン156で検出される(図7G)場合、電子デバイスは、アプリケーションランチャの少なくとも3本の指のスワイプアップジェスチャレコグナイザがタッチ入力を認識することを識別する。その後、電子デバイスは、後続のタッチ事象(例えば、指の接触707、709及び711のリフトオフ)をウェブブラウザアプリケーションに配信することなくアプリケーションランチャに配信する。電子デバイスは、3本の指のスワイプアップジェスチャレコグナイザがタッチ入力のシーケンスを認識することを更に識別し、3本の指のスワイプアップジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する。
いくつかの実施形態において、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理することは、第1のソフトウェアアプリケーションの1つ以上のビューを表示することを含む(930)。例えば、複数の指のピンチジェスチャ(図7R)の検出に応答して、電子デバイスはホーム画面708(図7A)を表示する。
いくつかの実施形態において、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理することは、1つ以上のビューの第1のセットの表示を第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換する(例えば、アプリケーションランチャソフトウェアアプリケーションの一部である図7Aのホーム画面708を表示する)ことを含む(932)。
いくつかの実施形態において、電子デバイスは、第1のソフトウェアアプリケーション、第2のソフトウェアアプリケーション及び第3のソフトウェアアプリケーションを同時に実行し、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理することは、1つ以上のビューの第1のセットを第3のソフトウェアアプリケーションの1つ以上のビューに置換することを含む(934)。いくつかの実施形態において、1つ以上のビューの第1のセットを第3のソフトウェアアプリケーションの1つ以上のビューに置換することは、他のいずれかのソフトウェアアプリケーションに対応するビューを同時に表示することなく第3のソフトウェアアプリケーションの1つ以上のビューを表示することを含む。例えば、複数の指のスワイプジェスチャに応答して、電子デバイスは、ウェブブラウザアプリケーションビュー712−6の表示を天気アプリケーションビュー712−5の表示に置換する(図7J及び図7K)。
いくつかの実施形態において、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理することは、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループをタッチセンシティブディスプレイの第1の事前定義済み領域に表示することと、1つ以上のビューの少なくともサブセットを同時に表示することとを含む(936)。例えば図7Hにおいて、事前定義済み領域716におけるアプリケーションアイコン5004は、電子デバイスの同時に開いているアプリケーションに対応する。いくつかの実施形態において、事前定義済み領域716におけるアプリケーションアイコン5004は、開いているアプリケーションのシーケンスに従って表示される。図7Hにおいて、電子デバイスは、事前定義済み領域716及びウェブブラウザアプリケーションビュー712−6のサブセットを同時に表示する。
1つ以上のジェスチャレコグナイザの第1のセットのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識しないと判定することに従って(図9Cの938)、電子デバイスは、タッチ入力のシーケンスを第2のソフトウェアアプリケーションに配信し(940)、1つ以上のジェスチャレコグナイザの第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定し(942)、1つ以上のジェスチャレコグナイザの第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する1つ以上のジェスチャレコグナイザの第2のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する(944)。
例えば、1つ以上のタッチ入力の第1の部分がタッチジェスチャ(例えば、図7Gの703)であり、且つアプリケーションランチャのジェスチャレコグナイザがタップジェスチャを認識しない場合、電子デバイスは、タップジェスチャをウェブブラウザアプリケーションに配信し、ウェブブラウザアプリケーションの少なくとも1つのジェスチャレコグナイザがタップジェスチャを認識するかを判定する。ウェブブラウザアプリケーション(又はウェブブラウザアプリケーションのジェスチャレコグナイザ)がお気に入りアイコンに対するタップジェスチャ703を認識する場合、電子デバイスは、対応するジェスチャハンドラによりタップジェスチャ703を処理する。
図10A及び図10Bは、いくつかの実施形態に係る事象認識方法を示すフローチャートである。尚、方法600、800及び900に関して上述した処理の詳細は、以下に説明する方法1000にも同様に適用可能である。簡潔にするために、以下においてこれら詳細は繰り返さない。
方法1000は、ある内部状態(例えば、図1Cのデバイス/グローバル内部状態134)の電子デバイスにおいて実行される(1002)。電子デバイスは、複数のビューを有するビュー階層を含むソフトウェアを実行するように構成される。
方法1000において、少なくとも1つのジェスチャレコグナイザは複数のジェスチャ定義を有する。これにより、ジェスチャレコグナイザが種々の別個の動作モードで動作しやすくする。例えばデバイスは、通常の動作モード及びアクセシビリティ動作モードを有してもよい。通常の動作モードにおいて、次のアプリケーションジェスチャは、アプリケーション間を移動するために使用され、3本の指の左スワイプジェスチャとして定義される。アクセシビリティ動作モードにおいて、3本の指の左スワイプジェスチャは、異なる機能を実行するために使用される。従って、3本の指の左スワイプとは異なるジェスチャは、次のアプリケーションジェスチャ(例えば、アクセシビリティ動作モードでの4本の指の左スワイプジェスチャ)に対応するためにアクセシビリティ動作モードで必要とされる。次のアプリケーションジェスチャと関連付けられた多数のジェスチャ定義を有することにより、デバイスは、現在の動作モードに依存して次のアプリケーションジェスチャのジェスチャ定義のうちの1つを選択できる。これにより、種々の動作モードでジェスチャレコグナイザを使用する際に柔軟性を提供する。いくつかの実施形態において、多数のジェスチャ定義を含む複数のジェスチャレコグナイザは、動作モードに依存して調整される(例えば、通常の動作モードで3本の指により実行されたジェスチャは、アクセシビリティ動作モードで4本の指により実行される)。
いくつかの実施形態において、内部状態は、アクセシビリティ動作モード用の1つ以上の設定を含む(1016)(例えば内部状態は、デバイスがアクセシビリティ動作モードで動作しているかを示す)。
いくつかの実施形態において、ソフトウェアは、アプリケーションランチャ(例えば、スプリングボード)である(1018)か、あるいはそれを含む。
いくつかの実施形態において、ソフトウェアは、オペレーティングシステムアプリケーション(例えば、デバイスのオペレーティングシステムと統合されたアプリケーション)である(1020)か、あるいはそれを含む。
電子デバイスは、ビュー階層の1つ以上のビューを表示する(1004)。
電子デバイスは、1つ以上のソフトウェア要素を実行する(1006)。各ソフトウェア要素は、特定のビューと関連付けられ(例えば図3Dにおいて、アプリケーション133−1は1つ以上のアプリケーションビュー317を有する)、特定のビューの各々は、1つ以上の事象レコグナイザ(例えば、図3Dの事象レコグナイザ325)を含む。各事象レコグナイザは、1つ以上のサブ事象に基づく1つ以上の事象定義と、事象ハンドラ(例えば、図3Dのジェスチャ定義3035及び事象配信情報3039における対応する事象ハンドラに対する参照)とを有する。事象ハンドラは、対象に対する動作を規定し、1つ以上の事象定義のうちの特定の事象定義(例えば、事象レコグナイザが多数の事象定義を有する場合に1つ以上の事象定義から選択された事象定義又は事象レコグナイザが1つの事象定義しか有さない場合の唯一の事象定義)に対応する事象を検出する事象レコグナイザに応答して動作を対象に送出するように構成される。
電子デバイスは、1つ以上のサブ事象のシーケンスを検出する(1008)。
電子デバイスは、ビュー階層のビューのうちの1つをヒットビューとして識別する(1010)。ヒットビューは、ビュー階層のどのビューが能動的に関わるビューであるかを明らかにする。
電子デバイスは、ビュー階層内で能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信する(1012)。いくつかの実施形態において、ビュー階層における1つ以上の能動的に関わるビューはヒットビューを含む。いくつかの実施形態において、ビュー階層における1つ以上の能動的に関わるビューは、デフォルトビュー(例えば、アプリケーションランチャのホーム画面708)を含む。
ビュー階層における能動的に関わるビューに対する少なくとも1つの事象レコグナイザは複数の事象定義を有し、そのうちの1つが電子デバイスの内部状態に従って選択される(1014)。例えば事象レコグナイザ325−1は、複数の事象定義(例えば、図3Dの3037−1及び3037−2)を有する。いくつかの実施形態において、事象レコグナイザ325−1は、デバイス/グローバル内部状態134(図1C)における1つ以上の値に基づいて事象レコグナイザ325−1における複数のジェスチャ定義のうちの1つを選択する。その後、少なくとも1つの事象レコグナイザは、選択された事象定義に従ってサブ事象のシーケンスにおける次のサブ事象を処理する前に各サブ事象を処理する。いくつかの実施形態において、ビュー階層における能動的に関わるビューに対する2つ以上の事象レコグナイザの各々は複数の事象定義を有し、そのうちの1つが電子デバイスの内部状態に従って選択される。そのような実施形態において、2つ以上の事象レコグナイザのうちの少なくとも1つは、選択された事象定義に従ってサブ事象のシーケンスにおける次のサブ事象を処理する前に各サブ事象を処理する。
例えば図7J及び図7Kは、次のアプリケーションのアプリケーションビューの表示を開始する次のアプリケーションジェスチャを示す。いくつかの実施形態において、アプリケーションランチャは、3本の指の左スワイプジェスチャに一致するジェスチャ定義を含む次のアプリケーションジェスチャレコグナイザを含む。この例のために、次のアプリケーションジェスチャレコグナイザが4本の指の左スワイプジェスチャに対応するジェスチャ定義を更に含むと仮定する。デバイス/グローバル内部状態134における1つ以上の値がデフォルト値に設定される場合、次のアプリケーションジェスチャレコグナイザは、3本の指の左スワイプジェスチャ定義を使用し、4本の指の左スワイプジェスチャ定義を使用しない。デバイス/グローバル内部状態134における1つ以上の値が変更される(例えば、図1Cのアクセシビリティモジュール127を使用することで)場合、次のアプリケーションジェスチャレコグナイザは、4本の指の左スワイプジェスチャ定義を使用し、3本の指の左スワイプジェスチャ定義を使用しない。従って、この例において、デバイス/グローバル内部状態134における1つ以上の値が変更される場合、4本の指の左スワイプジェスチャは、次のアプリケーションのアプリケーションビューの表示を開始する。
同様に、図7R及び図7Sは、ウェブブラウザアプリケーションビュー712−6を縮小表示することと、5本の指のピンチジェスチャの検出に応答してホーム画面708の少なくとも一部を表示することとをホーム画面ジェスチャが開始することを示す。デバイス/グローバル内部状態134及びホーム画面ジェスチャレコグナイザにおけるジェスチャ定義に基づいて、4本の指のピンチジェスチャ、3本の指のピンチジェスチャ又は他のあらゆる適切なジェスチャは、ウェブブラウザアプリケーションビュー712−6を縮小表示することと、ホーム画面708の少なくとも一部を表示することとを開始するために使用されてもよい。
いくつかの実施形態において、複数の事象定義は、第1の数の指による第1のスワイプジェスチャに対応する第1の事象定義及び第1の数の指とは異なる第2の数の指による第2のスワイプジェスチャに対応する第2の事象定義を含む(1020)。例えば、各ジェスチャレコグナイザの複数の事象定義は、3本の指のスワイプジェスチャ及び4本の指のスワイプジェスチャを含んでもよい。
いくつかの実施形態において、複数の事象定義は、第1の数の指による第1の種類の第1のジェスチャに対応する第1の事象定義及び第1の数の指とは異なる第2の数の指による第1の種類の第2のジェスチャに対応する第2の事象定義(例えば、1本の指のタップジェスチャ及び2本の指のタップジェスチャ、2本の指のピンチジェスチャ及び3本の指のピンチジェスチャ等)を含む。
いくつかの実施形態において、複数の事象定義は、第1のジェスチャに対応する第1の事象定義及び第1のジェスチャとは異なる第2のジェスチャに対応する第2の事象定義(例えば、スワイプジェスチャ及びピンチジェスチャ、スワイプジェスチャ及びタップジェスチャ等)を含む。
いくつかの実施形態において、複数の事象定義の各定義は、各事象定義が各事象レコグナイザ以外の能動的に関わるビューに対するいずれかの事象レコグナイザの事象定義に対応しないと判定すること(電子デバイスにより)と電子デバイスの内部状態とに従って各事象レコグナイザに対して選択される(1022)。
例えば各事象レコグナイザは、2つの事象定義、すなわち一般に通常の動作モードに対して使用される3本の指の左スワイプジェスチャに対応する第1の事象定義と、一般にアクセシビリティ動作モードに対して使用される4本の指の左スワイプジェスチャに対応する第2の事象定義とを有してもよい。電子デバイスがアクセシビリティ動作モードで動作するように電子デバイスの内部状態が設定される場合、電子デバイスは、第2の事象定義に対する4本の指の左スワイプジェスチャが能動的に関わるビューに対する他のあらゆる事象レコグナイザにより使用されるかを判定する。4本の指の左スワイプジェスチャは、能動的に関わるビューに対する他のあらゆる事象レコグナイザにより使用されない場合、アクセシビリティ動作モードで各ジェスチャレコグナイザに対して選択される。一方、4本の指の左スワイプジェスチャが能動的に関わるビューに対する他のあらゆる事象レコグナイザにより使用される場合、3本の指の左スワイプジェスチャは、アクセシビリティ動作モードでも各ジェスチャレコグナイザに対して使用される。これにより、2つ以上の事象レコグナイザが望ましくなく同一のジェスチャに応答することを防止する。
いくつかの実施形態において、複数の事象定義の各定義は、各事象定義が各事象レコグナイザ以外の事象レコグナイザ(能動的に関わるビュー及び他のあらゆるビューに対する事象レコグナイザを含む)の事象定義に対応しないと判定すること(電子デバイスにより)と電子デバイスの内部状態とに従って各事象レコグナイザに対して選択される。
いくつかの実施形態において、ビュー階層における能動的に関わるビューに対する2つ以上の事象レコグナイザの各々は、複数の事象定義を有し、複数の事象定義の各事象定義は、各事象定義が各事象レコグナイザ以外の2つ以上の事象定義を含むいずれかの事象レコグナイザに対して選択されたいずれかの事象定義に対応しないと判定すること(電子デバイスにより)と電子デバイスの内部状態とに従って各事象レコグナイザに対して選択される(1024)。
例えば能動的に関わるビューは、第1のジェスチャレコグナイザ及び第2のジェスチャレコグナイザを有してもよい。この例において、第1のジェスチャレコグナイザは、一般に通常の動作モードに対して使用される3本の指の左スワイプジェスチャに対応する第1の事象定義と、一般にアクセシビリティ動作モードに対して使用される4本の指の左スワイプジェスチャに対応する第2の事象定義とを有してもよい。第2のジェスチャレコグナイザは、一般に通常の動作モードに対して使用される2本の指の左スワイプジェスチャに対応する第3の事象定義と、一般にアクセシビリティ動作モードに対して使用される4本の指の左スワイプジェスチャに対応する第4の事象定義とを有する。電子デバイスがアクセシビリティモードで動作するように電子デバイスの内部状態が設定される場合、電子デバイスは、第2の事象定義を満たす4本の指の左スワイプジェスチャが2つ以上の事象定義を含む他のいずれかの事象レコグナイザ(例えば、第2の事象ジェスチャレコグナイザ)に対して選択されるかを判定する。4本の指の左スワイプジェスチャは、2つ以上の事象定義を含む他のいずれかの事象レコグナイザに対して選択されない場合、アクセシビリティ動作モードで第1のジェスチャレコグナイザに対して選択される。その結果、4本の指の左スワイプジェスチャは、第1のジェスチャレコグナイザに対して既に選択されているため、第2のジェスチャレコグナイザに対して選択されない。その代わりに、2本の指の左スワイプジェスチャは、第1のジェスチャレコグナイザを含む2つ以上の事象定義を含む他のいずれかのジェスチャレコグナイザに対して選択されないため、第2のジェスチャレコグナイザに対して選択される。別の例において、能動的に関わるビューは、第2のジェスチャレコグナイザを有さずに第1のジェスチャレコグナイザ及び第3のジェスチャレコグナイザを有する。第3のジェスチャレコグナイザは、一般に通常の動作モードに対して使用される第3の事象定義(2本の指の左スワイプジェスチャに対応する)と、一般にアクセシビリティ動作モードに対して使用される3本の指の左スワイプジェスチャに対応する第5の事象定義とを有する。アクセシビリティ動作モードにおいて、3本の指の左スワイプジェスチャは、2つ以上の事象定義を含む他のいずれかのジェスチャレコグナイザに対して選択されないため、第3のジェスチャレコグナイザに対して選択可能である。
上述の例は複数の指の左スワイプジェスチャに対して説明されたが、上述の方法は、あらゆる方向のスワイプジェスチャ(例えば、右スワイプジェスチャ、スワイプアップジェスチャ、スワイプダウンジェスチャ及び/又はあらゆる斜めのスワイプジェスチャ)、あるいは他のあらゆる種類のジェスチャ(例えば、タップジェスチャ、ピンチジェスチャ、非ピンチジェスチャ等)に当てはまる。
いくつかの実施形態において、選択された事象定義に従って各サブ事象を処理することは、ビュー階層を含むソフトウェアとは異なる第1のソフトウェアアプリケーションの1つ以上のビューを表示する(例えば図7Sにおいて、ソフトウェアの1つ以上のビュー及びホーム画面708の一部を含むユーザインタフェース712−6の少なくとも一部を同時に表示する)ことを含む(1026)。
いくつかの実施形態において、少なくとも1つの事象レコグナイザは、ビュー階層の1つ以上のビューの表示をビュー階層を含むソフトウェアとは異なる第1のソフトウェアアプリケーションの1つ以上のビュー(例えば、図7Aのホーム画面708)の表示に置換することで各サブ事象を処理する(1028)。
いくつかの実施形態において、少なくとも1つの事象レコグナイザは、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループを電子デバイスのディスプレイの第1の事前定義済み領域に表示することと、ビュー階層の1つ以上のビュー(例えば、図7Hの開いているアプリケーションアイコン5004及びユーザインタフェース712−6の少なくとも一部)の少なくともサブセットを同時に表示することとにより各サブ事象を処理する(1030)。例えば電子デバイスは、通常の動作モードでの3本の指のスワイプアップジェスチャ及びアクセシビリティ動作モードでの4本の指の左スワイプアップジェスチャに応答して、開いているアプリケーションアイコンのグループ及びビュー階層の1つ以上のビューの少なくともサブセットを同時に表示する。
いくつかの実施形態によると、図11は、上述の本発明の原理に従って構成された電子デバイス1100を示す機能ブロック図である。デバイスの機能ブロックは、本発明の原理を実行するようにハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組合せにより実現されてもよい。図11に示される機能ブロックは、上述の本発明の原理を実現するように組み合わされるかあるいはサブブロックに分割されてもよいことが当業者により理解される。従って、本明細書の説明は、本明細書で説明される機能ブロックのあらゆる可能な組合せ又は分割、あるいは更なる定義を支持してもよい。
図11に示されるように、電子デバイス1100は、タッチ入力を受信するように構成されたタッチセンシティブディスプレイユニット1102と、タッチセンシティブディスプレイユニット1102に結合された処理ユニット1106とを備える。いくつかの実施形態において、処理ユニット1106は、実行ユニット1108と、表示有効ユニット1110と、検出ユニット1112と、配信ユニット1114と、識別ユニット1116と、タッチ入力処理ユニット1118とを備える。
処理ユニット1106は、少なくとも第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションを実行する(例えば、実行ユニット1108により)ように構成される。第1のソフトウェアアプリケーションは、1つ以上のジェスチャレコグナイザの第1のセットを含み、第2のソフトウェアアプリケーションは、1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。処理ユニット1106は、第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットの表示を有効にする(例えば、タッチセンシティブディスプレイユニット1102に対する表示有効ユニット1110により)ように構成される。処理ユニット1106は、第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを表示している間、タッチセンシティブディスプレイユニット1102に対するタッチ入力のシーケンスを検出する(例えば、検出ユニット1112により)ように構成される。タッチ入力のシーケンスは、1つ以上のタッチ入力の第1の部分及び第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む。処理ユニット1106は、タッチ入力のシーケンスを検出する第1の段階の間、1つ以上のタッチ入力の第1の部分を第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションに配信し(例えば、配信ユニット1114により)、1つ以上のタッチ入力の第1の部分を認識する1つ以上のマッチングジェスチャレコグナイザを第1のセットのジェスチャレコグナイザから識別し(例えば、識別ユニット1116により)、且つ1つ以上のマッチングジェスチャレコグナイザに対応する1つ以上のジェスチャハンドラにより1つ以上のタッチ入力の第1の部分を処理する(例えば、タッチ入力処理ユニット1118により)ように構成される。
いくつかの実施形態において、処理ユニット1106は、1つ以上のタッチ入力の第1の部分におけるタッチ入力が第2のソフトウェアアプリケーションの表示されたビューのうちの少なくとも1つに少なくとも部分的に重なり合っている間、タッチ入力のシーケンスを検出する(例えば、検出ユニット1112により)ように構成される。
いくつかの実施形態において、処理ユニット1106は、第1のソフトウェアアプリケーションのビューを全く表示することなく第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットの表示を有効にする(例えば、タッチセンシティブディスプレイユニット1102に対する表示有効ユニット1110により)ように構成される。
いくつかの実施形態において、処理ユニット1106は、他のいずれかのアプリケーションのビューを表示することなく第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットの表示を有効にする(例えば、タッチセンシティブディスプレイユニット1102に対する表示有効ユニット1110により)ように構成される。
いくつかの実施形態において、処理ユニット1106は、第1の段階に後続するタッチ入力のシーケンスを検出する第2の段階の間、1つ以上のタッチ入力の第2の部分を第2のソフトウェアアプリケーションに配信することなく第1のソフトウェアアプリケーションに配信し(例えば、配信ユニット1114により)、タッチ入力のシーケンスを認識する第2のマッチングジェスチャレコグナイザを1つ以上のマッチングジェスチャレコグナイザから識別し(例えば、識別ユニット1116により)、且つ各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する(例えば、タッチ入力処理ユニット1118により)ように構成される。
いくつかの実施形態において、処理ユニット1106は、第1のソフトウェアアプリケーションの1つ以上のビューの表示を有効にすることにより、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する(例えば、タッチセンシティブディスプレイユニット1102に対する表示有効ユニット1110により)ように構成される。
いくつかの実施形態において、処理ユニット1106は、第2のソフトウェアアプリケーションの1つ以上のビューの表示を第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換することにより、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する(例えば、タッチセンシティブディスプレイユニット1102に対する表示有効ユニット1110により)ように構成される。
いくつかの実施形態において、処理ユニット1106は、第1のソフトウェアアプリケーション、第2のソフトウェアアプリケーション及び第3のソフトウェアアプリケーションを同時に実行し(例えば、実行ユニット1108により)、且つ第2のソフトウェアアプリケーションの表示された1つ以上のビューを第3のソフトウェアアプリケーションの1つ以上のビューに置換することにより、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する(例えば、タッチセンシティブディスプレイユニット1102に対する表示有効ユニット1110により)ように構成される。
いくつかの実施形態において、処理ユニット1106は、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループの表示をタッチセンシティブディスプレイユニット1102の第1の事前定義済み領域において有効にし(例えば、表示有効ユニット1110により)、且つ第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットの同時表示を有効にする(例えば、表示有効ユニット1110により)ように構成される。
いくつかの実施形態において、第1のソフトウェアアプリケーションはアプリケーションランチャである。
いくつかの実施形態において、第1のソフトウェアアプリケーションはオペレーティングシステムアプリケーションである。
いくつかの実施形態によると、図12は、上述の本発明の原理に従って構成された電子デバイス1200を示す機能ブロック図である。デバイスの機能ブロックは、本発明の原理を実行するようにハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組合せにより実現されてもよい。図12に示される機能ブロックは、上述の本発明の原理を実現するように組み合わされるかあるいはサブブロックに分割されてもよいことが当業者により理解される。従って、本明細書の説明は、本明細書で説明される機能ブロックのあらゆる可能な組合せ又は分割、あるいは更なる定義を支持してもよい。
図12に示されるように、電子デバイス1200は、タッチ入力を受信するように構成されたタッチセンシティブディスプレイユニット1202と、タッチセンシティブディスプレイユニット1202に結合された処理ユニット1206とを備える。いくつかの実施形態において、処理ユニット1206は、実行ユニット1208と、表示有効ユニット1210と、検出ユニット1212と、判定ユニット1214と、配信ユニット1216と、タッチ入力処理ユニット1218とを備える。
処理ユニット1206は、少なくとも第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションを実行する(例えば、実行ユニット1208により)ように構成される。第1のソフトウェアアプリケーションは、1つ以上のジェスチャレコグナイザの第1のセットを含み、第2のソフトウェアアプリケーションは、1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。処理ユニット1206は、1つ以上のビューの第1のセットの表示を有効にする(例えば、タッチセンシティブディスプレイユニット1202に対する表示有効ユニット1210により)ように構成される。1つ以上のビューの第1のセットは、第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを含む。処理ユニット1206は、1つ以上のビューの第1のセットを表示している間、タッチセンシティブディスプレイユニットに対するタッチ入力のシーケンスを検出する(例えば、検出ユニット1212により)ように構成される。タッチ入力のシーケンスは、1つ以上のタッチ入力の第1の部分及び第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む。処理ユニット1206は、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識するかを判定する(例えば、判定ユニット1214により)ように構成される。処理ユニット1206は、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識すると判定することに従って、タッチ入力のシーケンスを第2のソフトウェアアプリケーションに配信することなく第1のソフトウェアアプリケーションに配信し(例えば、配信ユニット1216により)、且つ1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定する(例えば、判定ユニット1214により)ように構成される。処理ユニット1206は、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する(例えば、タッチ入力処理ユニット1218により)ように構成される。処理ユニット1206は、1つ以上のジェスチャレコグナイザの第1のセットのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識しないと判定することに従って、タッチ入力のシーケンスを第2のソフトウェアアプリケーションに配信し(例えば、配信ユニット1216により)、且つ1つ以上のジェスチャレコグナイザの第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定する(例えば、判定ユニット1214により)ように構成される。処理ユニット1206は、1つ以上のジェスチャレコグナイザの第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する1つ以上のジェスチャレコグナイザの第2のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する(例えば、タッチ入力処理ユニット1218により)ように構成される。
いくつかの実施形態において、タッチ入力のシーケンスは、第2のソフトウェアアプリケーションの表示された1つ以上のビューのうちの少なくとも1つに少なくとも部分的に重なり合う。
いくつかの実施形態において、処理ユニット1206は、第1のソフトウェアアプリケーションを全く表示することなく1つ以上のビューの第1のセットの表示を有効にする(例えば、タッチセンシティブディスプレイユニット1202に対する表示有効ユニット1210により)ように構成される。
いくつかの実施形態において、処理ユニット1206は、他のいずれかのアプリケーションのビューを表示することなく1つ以上のビューの第1のセットの表示を有効にする(例えば、タッチセンシティブディスプレイユニット1202に対する表示有効ユニット1210により)ように構成される。
いくつかの実施形態において、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の第1の部分を認識すると判定する前に、処理ユニット1206は、1つ以上のタッチ入力の第1の部分を第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションに同時に配信する(例えば、配信ユニット1216により)ように構成される。
いくつかの実施形態において、第1のソフトウェアアプリケーションはアプリケーションランチャである。
いくつかの実施形態において、第1のソフトウェアアプリケーションはオペレーティングシステムアプリケーションである。
いくつかの実施形態において、処理ユニット1206は、第1のソフトウェアアプリケーションの1つ以上のビューを表示することを有効にすることにより、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する(例えば、タッチセンシティブディスプレイユニット1202に対する表示有効ユニット1208により)ように構成される。
いくつかの実施形態において、処理ユニット1206は、1つ以上のビューの第1のセットの表示を第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換することにより、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する(例えば、タッチセンシティブディスプレイユニット1202に対する表示有効ユニット1208により)ように構成される。
いくつかの実施形態において、処理ユニット1206は、第1のソフトウェアアプリケーション、第2のソフトウェアアプリケーション及び第3のソフトウェアアプリケーションを同時に実行する(例えば、実行ユニット1208により)ように構成される。処理ユニット1206は、1つ以上のビューの第1のセットを第3のソフトウェアアプリケーションの1つ以上のビューに置換することにより、1つ以上のジェスチャレコグナイザの第1のセットの少なくとも1つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する(例えば、タッチセンシティブディスプレイユニット1202に対する表示有効ユニット1210により)ように構成される。
いくつかの実施形態において、処理ユニット1206は、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループの表示をタッチセンシティブディスプレイユニット1202の第1の事前定義済み領域において有効にし(例えば、表示有効ユニット1210により)、且つ1つ以上のビューの第1のセットの少なくともサブセットを同時に表示する(例えば、表示有効ユニット1210により)ように構成される。
いくつかの実施形態によると、図13は、上述の本発明の原理に従って構成された電子デバイス1300を示す機能ブロック図である。デバイスの機能ブロックは、本発明の原理を実行するようにハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組合せにより実現されてもよい。図13に示される機能ブロックは、上述の本発明の原理を実現するように組み合わされるかあるいはサブブロックに分割されてもよいことが当業者により理解される。従って、本明細書の説明は、本明細書で説明される機能ブロックのあらゆる可能な組合せ又は分割、あるいは更なる定義を支持してもよい。
図13に示されるように、電子デバイス1300は、1つ以上のビューを表示するように構成された表示ユニット1302と、内部状態を格納するように構成されたメモリユニット1304と、表示ユニット1302及びメモリユニット1304に結合された処理ユニット1306とを備える。いくつかの実施形態において、処理ユニット1306は、実行ユニット1308と、表示有効ユニット1310と、検出ユニット1312と、識別ユニット1314と、配信ユニット1316と、事象/サブ事象処理ユニット1318とを備える。いくつかの実施形態において、処理ユニット1306はメモリユニット1304を備える。
処理ユニット1306は、複数のビューを有するビュー階層を含むソフトウェアを実行し(例えば、実行ユニット1308により)、ビュー階層の1つ以上のビューの表示を有効にし(例えば、表示ユニット1302に対する表示有効ユニット1310により)、且つ1つ以上のソフトウェア要素を実行する(例えば、実行ユニット1308により)ように構成される。各ソフトウェア要素は特定のビューと関連付けられ、特定のビューの各々は1つ以上の事象レコグナイザを含む。各事象レコグナイザは、1つ以上のサブ事象に基づく1つ以上の事象定義と、事象ハンドラとを有する。事象ハンドラは、対象に対する動作を規定し、1つ以上の事象定義のうちの特定の事象定義に対応する事象を検出する事象レコグナイザに応答して動作を対象に送出するように構成される。処理ユニット1306は、1つ以上のサブ事象のシーケンスを検出し(例えば、検出ユニット1312により)、且つビュー階層のビューのうちの1つをヒットビューとして識別する(例えば、識別ユニット1314により)ように構成される。ヒットビューは、ビュー階層のどのビューが能動的に関わるビューであるかを明らかにする。処理ユニット1306は、ビュー階層内の能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信する(例えば、配信ユニット1316により)ように構成される。ビュー階層における能動的に関わるビューに対する少なくとも1つの事象レコグナイザは複数の事象定義を有し、そのうちの1つが電子デバイスの内部状態に従って選択され、少なくとも1つの事象レコグナイザは、選択された事象定義に従ってサブ事象のシーケンスにおける次のサブ事象を処理する前に各サブ事象を処理する(例えば、事象/サブ事象処理ユニット1318により)。
いくつかの実施形態において、複数の事象定義は、第1の数の指による第1のスワイプジェスチャに対応する第1の事象定義及び第1の数の指とは異なる第2の数の指による第2のスワイプジェスチャに対応する第2の事象定義を含む。
いくつかの実施形態において、内部状態は、アクセシビリティ動作モードに対する1つ以上の設定を含む。
いくつかの実施形態において、複数の事象定義の各定義は、各事象定義が各事象レコグナイザ以外の能動的に関わるビューに対するいずれかの事象レコグナイザの事象定義に対応しないと判定することと電子デバイスの内部状態とに従って各事象レコグナイザに対して選択される。
いくつかの実施形態において、ビュー階層における能動的に関わるビューに対する2つ以上の事象レコグナイザの各々は、複数の事象定義を有し、複数の事象定義の各定義は、各事象定義が各事象レコグナイザ以外の2つ以上の事象定義を含むいずれかの事象レコグナイザに対して選択されたいずれかの事象定義に対応しないと判定することと電子デバイスの内部状態とに従って各事象レコグナイザに対して選択される。
いくつかの実施形態において、処理ユニット1306は、ビュー階層を含むソフトウェアとは異なる第1のソフトウェアアプリケーションの1つ以上のビューの表示を有効にすることにより、選択された事象定義に従って各サブ事象を処理する(例えば、表示ユニット1302に対する表示有効ユニット1310により)ように構成される。
いくつかの実施形態において、処理ユニット1306は、ビュー階層の1つ以上のビューの表示を、ビュー階層を含むソフトウェアとは異なる第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換することにより、各サブ事象を処理する(例えば、表示ユニット1302に対する表示有効ユニット1310により)ように構成される。
いくつかの実施形態において、処理ユニット1306は、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループの表示を表示ユニット1302の第1の事前定義済み領域において有効にし(例えば、表示有効ユニット1310により)、且つビュー階層の1つ以上のビューの少なくともサブセットの同時表示を有効にする(例えば、表示有効ユニット1310により)ように構成される。
いくつかの実施形態において、ソフトウェアはアプリケーションランチャである。
いくつかの実施形態において、ソフトウェアはオペレーティングシステムアプリケーションである。
説明の目的で、特定の実施形態を参照して上記説明を行った。しかし、上記の例示的な説明は、本発明を網羅すること又は開示された厳密な形式に限定することを意図しない。多くの変更及び変形が上記教示に鑑みて可能である。本発明の原理及びその実際的な応用例を最適に説明するために実施形態を選択して説明した。これにより、当業者は、考えられる特定の用途に適するような本発明及び種々の変更を含む種々の実施形態を最適に利用できる。

Claims (75)

  1. タッチセンシティブディスプレイを備えた電子デバイスであって、
    前記電子デバイスは、少なくとも第1のソフトウェアアプリケーション及び第2のソフトウェアアプリケーションを実行するように構成され、
    前記第1のソフトウェアアプリケーションは、1つ以上のジェスチャレコグナイザの第1のセットを含み、
    前記第2のソフトウェアアプリケーションは、1つ以上のビューと、1つ以上のジェスチャレコグナイザの第2のセットと、を含み、
    各ジェスチャレコグナイザは、対応するジェスチャハンドらを有し、
    前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを表示することと、
    前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくとも前記サブセットを表示している間、1つ以上のタッチ入力の第1の部分及び前記第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む、前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出することと、
    タッチ入力の前記シーケンスを検出する第1の段階の間、
    1つ以上のタッチ入力の前記第1の部分を前記第1のソフトウェアアプリケーション及び前記第2のソフトウェアアプリケーションに配信し、
    1つ以上のタッチ入力の前記第1の部分を認識する1つ以上のマッチングジェスチャレコグナイザを、前記第1のセットのジェスチャレコグナイザから識別し、
    前記1つ以上のマッチングジェスチャレコグナイザに対応する1つ以上のジェスチャハンドラにより1つ以上のタッチ入力の前記第1の部分を処理することと、
    を含むことを特徴とする方法。
  2. 前記シーケンスを検出することは、1つ以上のタッチ入力の前記第1の部分におけるタッチ入力が、前記第2のソフトウェアアプリケーションの前記表示されたビューのうちの少なくとも1つに少なくとも部分的に重なり合っている間に行われることを特徴とする請求項1に記載の方法。
  3. 前記サブセットを表示することは、前記第1のソフトウェアアプリケーションのいずれのビューも表示することなく前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを表示することを含むことを特徴とする請求項1又は2に記載の方法。
  4. 前記サブセットを表示することは、他のいずれかのアプリケーションのビューを表示することなく前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを表示することを含むことを特徴とする請求項1又は2に記載の方法。
  5. 前記第1の段階に後続するタッチ入力の前記シーケンスを検出する第2の段階の間、
    1つ以上のタッチ入力の前記第2の部分を前記第2のソフトウェアアプリケーションに配信することなく前記第1のソフトウェアアプリケーションに配信し、
    タッチ入力の前記シーケンスを認識する第2のマッチングジェスチャレコグナイザを、前記1つ以上のマッチングジェスチャレコグナイザから識別し、
    前記各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力の前記シーケンスを処理することを含むことを特徴とする請求項1から4のいずれか1項に記載の方法。
  6. 前記各マッチングジェスチャレコグナイザに対応する前記ジェスチャハンドラによりタッチ入力の前記シーケンスを処理することは、前記第1のソフトウェアアプリケーションの1つ以上のビューを表示することを含むことを特徴とする請求項5に記載の方法。
  7. 前記各マッチングジェスチャレコグナイザに対応する前記ジェスチャハンドラによりタッチ入力の前記シーケンスを処理することは、前記第2のソフトウェアアプリケーションの前記1つ以上のビューの前記表示を前記第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換することを含むことを特徴とする請求項5に記載の方法。
  8. 前記電子デバイスは、前記第1のソフトウェアアプリケーション、前記第2のソフトウェアアプリケーション及び第3のソフトウェアアプリケーションを同時に実行し、
    前記各マッチングジェスチャレコグナイザに対応する前記ジェスチャハンドラによりタッチ入力の前記シーケンスを処理することは、前記第2のソフトウェアアプリケーションの前記表示された1つ以上のビューを前記第3のソフトウェアアプリケーションの1つ以上のビューに置換することを含むことを特徴とする請求項5に記載の方法。
  9. 前記各マッチングジェスチャレコグナイザに対応する前記ジェスチャハンドラによりタッチ入力の前記シーケンスを処理することは、
    同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループを前記タッチセンシティブディスプレイの第1の事前定義済み領域に表示することと、
    前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを同時に表示することと、を含むことを特徴とする請求項5に記載の方法。
  10. 前記第1のソフトウェアアプリケーションはアプリケーションランチャであることを特徴とする請求項1から9のいずれか1項に記載の方法。
  11. 前記第1のソフトウェアアプリケーションはオペレーティングシステムアプリケーションであることを特徴とする請求項1から10のいずれか1項に記載の方法。
  12. 少なくとも、それぞれが対応するジェスチャハンドラを有する1つ以上のジェスチャレコグナイザの第1のセットを含む第1のソフトウェアアプリケーション、並びに1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含む第2のソフトウェアアプリケーションを実行するように構成されたタッチセンシティブディスプレイを備えた電子デバイスにおいて、
    前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを含む1つ以上のビューの第1のセットを表示することと、
    前記1つ以上のビューの前記第1のセットを表示している間、1つ以上のタッチ入力の第1の部分及び前記第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出することと、
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識するかを判定することと、
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識すると判定することに従って、
    タッチ入力の前記シーケンスを前記第2のソフトウェアアプリケーションに配信することなく前記第1のソフトウェアアプリケーションに配信し、
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定し、
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って、タッチ入力の前記シーケンスを認識する1つ以上のジェスチャレコグナイザの前記第1のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することと、
    1つ以上のジェスチャレコグナイザの前記第1のセットのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識しないと判定することに従って、
    タッチ入力の前記シーケンスを前記第2のソフトウェアアプリケーションに配信し、
    1つ以上のジェスチャレコグナイザの前記第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定し、
    1つ以上のジェスチャレコグナイザの前記第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って、タッチ入力の前記シーケンスを認識する1つ以上のジェスチャレコグナイザの前記第2のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することと、
    を含むことを特徴とする方法。
  13. タッチ入力の前記シーケンスは、前記第2のソフトウェアアプリケーションの前記表示された1つ以上のビューのうちの少なくとも1つに少なくとも部分的に重なり合うことを特徴とする請求項12に記載の方法。
  14. 1つ以上のビューの前記第1のセットを表示することは、前記第1のソフトウェアアプリケーションのビューを全く表示することなく1つ以上のビューの前記第1のセットを表示することを含むことを特徴とする請求項12又は13に記載の方法。
  15. 1つ以上のビューの前記第1のセットを表示することは、他のいずれかのソフトウェアアプリケーションのビューを表示することなく1つ以上のビューの前記第1のセットを表示することを含むことを特徴とする請求項12又は13に記載の方法。
  16. 1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識すると判定する前に、1つ以上のタッチ入力の前記第1の部分を前記第1のソフトウェアアプリケーション及び前記第2のソフトウェアアプリケーションに同時に配信することを更に備えることを特徴とする請求項12から15のいずれか1項に記載の方法。
  17. 前記第1のソフトウェアアプリケーションはアプリケーションランチャであることを特徴とする請求項12から16のいずれか1項に記載の方法。
  18. 前記第1のソフトウェアアプリケーションはオペレーティングシステムアプリケーションであることを特徴とする請求項12から17のいずれか1項に記載の方法。
  19. 1つ以上のジェスチャレコグナイザの前記第1のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することは、前記第1のソフトウェアアプリケーションの1つ以上のビューを表示することを含むことを特徴とする請求項12から18のいずれか1項に記載の方法。
  20. 1つ以上のジェスチャレコグナイザの前記第1のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することは、1つ以上のビューの前記第1のセットの前記表示を前記第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換することを含むことを特徴とする請求項12から18のいずれか1項に記載の方法。
  21. 前記電子デバイスは、前記第1のソフトウェアアプリケーション、前記第2のソフトウェアアプリケーション及び第3のソフトウェアアプリケーションを同時に実行し、1つ以上のジェスチャレコグナイザの前記第1のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することは、1つ以上のビューの前記第1のセットを前記第3のソフトウェアアプリケーションの1つ以上のビューに置換することを含むことを特徴とする請求項12から20のいずれか1項に記載の方法。
  22. 1つ以上のジェスチャレコグナイザの前記第1のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することは、
    同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループを前記タッチセンシティブディスプレイの第1の事前定義済み領域に表示することと、
    1つ以上のビューの前記第1のセットの少なくともサブセットを同時に表示することと、を含むことを特徴とする請求項12から21のいずれか1項に記載の方法。
  23. 複数のビューを有するビュー階層を含むソフトウェアを実行するように構成されたある内部状態の電子デバイスにおいて、
    前記ビュー階層の1つ以上のビューを表示することと、
    各々が1つ以上の事象レコグナイザを含む特定のビューと各々が関連付けられる1つ以上のソフトウェア要素を実行することであり、各事象レコグナイザが1つ以上のサブ事象に基づく1つ以上の事象定義と事象ハンドラとを有し、前記事象ハンドラが対象に対する動作を規定し且つ前記事象定義に対応する事象を検出する前記事象レコグナイザに応答して前記動作を前記対象に送出するように構成されることと、
    1つ以上のサブ事象のシーケンスを検出することと、
    前記ビュー階層の前記ビューのうちの1つを前記ビュー階層のどのビューが能動的に関わるビューであるかを明らかにするヒットビューとして識別することと、
    前記ビュー階層内の能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信することと、を備える方法であって、
    前記ビュー階層における能動的に関わるビューに対する少なくとも1つのジェスチャレコグナイザは複数の事象定義を有し、そのうちの1つが前記電子デバイスの前記内部状態に従って選択され、前記少なくとも1つの事象レコグナイザは、前記選択された事象定義に従ってサブ事象の前記シーケンスにおける次のサブ事象を処理する前に前記各サブ事象を処理することを特徴とする方法。
  24. 前記複数の事象定義は、第1の数の指による第1のスワイプジェスチャに対応する第1の事象定義及び前記第1の数の指とは異なる第2の数の指による第2のスワイプジェスチャに対応する第2の事象定義を含むことを特徴とする請求項23に記載の方法。
  25. 前記内部状態は、アクセシビリティ動作モードに対する1つ以上の設定を含むことを特徴とする請求項23又は24に記載の方法。
  26. 前記複数の事象定義の各定義は、前記各事象定義が各事象レコグナイザ以外の前記能動的に関わるビューに対するいずれかの事象レコグナイザの事象定義に対応しないと判定することと前記電子デバイスの前記内部状態とに従って前記各事象レコグナイザに対して選択されることを特徴とする請求項23から25のいずれか1項に記載の方法。
  27. 前記ビュー階層における能動的に関わるビューに対する2つ以上の事象レコグナイザの各々は、複数の事象定義を有し、前記複数の事象定義の各事象定義は、前記各事象定義が各事象レコグナイザ以外の2つ以上の事象定義を含むいずれかの事象レコグナイザに対して選択されたいずれかの事象定義に対応しないと判定することと前記電子デバイスの前記内部状態とに従って前記各事象レコグナイザに対して選択されることを特徴とする請求項23から25のいずれか1項に記載の方法。
  28. 前記選択された事象定義に従って前記各サブ事象を処理することは、前記ビュー階層を含む前記ソフトウェアとは異なる第1のソフトウェアアプリケーションの1つ以上のビューを表示することを含むことを特徴とする請求項23から27のいずれか1項に記載の方法。
  29. 前記少なくとも1つの事象レコグナイザは、前記ビュー階層の前記1つ以上のビューの前記表示を前記ビュー階層を含む前記ソフトウェアとは異なる第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換することで前記各サブ事象を処理することを特徴とする請求項23から27のいずれか1項に記載の方法。
  30. 前記少なくとも1つの事象レコグナイザは、
    同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループを前記電子デバイスのディスプレイの第1の事前定義済み領域に表示することと、
    前記ビュー階層の前記1つ以上のビューの少なくともサブセットを同時に表示することと、により前記各サブ事象を処理することを特徴とする請求項23から27のいずれか1項に記載の方法。
  31. 前記ソフトウェアはアプリケーションランチャであることを特徴とする請求項23から30のいずれか1項に記載の方法。
  32. 前記ソフトウェアはオペレーティングシステムアプリケーションであることを特徴とする請求項23から31のいずれか1項に記載の方法。
  33. 1つ以上のプロセッサと、前記1つ以上のプロセッサが実行するための請求項1から32のいずれか1項に記載の方法を実行する命令を含む1つ以上のプログラムを格納するメモリとを備えることを特徴とする電子デバイス。
  34. コンピュータシステムの1つ以上のプロセッサが実行するための請求項1から32のいずれか1項に記載の方法を実行する命令を含む1つ以上のプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
  35. タッチセンシティブディスプレイと、
    1つ以上のプロセッサと、
    前記1つ以上のプロセッサが実行するための1つ以上のプログラムを格納するメモリと、
    を備える電子デバイスであって、
    前記1つ以上のプログラムは、少なくとも第1のソフトウェアアプリケーションと第2のソフトウェアアプリケーションを含み、
    前記第1のソフトウェアアプリケーションは、1つ以上のジェスチャレコグナイザの第1のセットを含み、
    前記第2のソフトウェアアプリケーションは、1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含み、
    各ジェスチャレコグナイザは、対応するジェスチャハンドラを有し、
    前記1つ以上のプログラムは、
    前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを表示する命令と、
    前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくとも前記サブセットを表示している間、
    1つ以上のタッチ入力の第1の部分及び前記第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む、前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出する命令と、
    タッチ入力の前記シーケンスを検出する第1の段階の間、1つ以上のタッチ入力の前記第1の部分を前記第1のソフトウェアアプリケーション及び前記第2のソフトウェアアプリケーションに配信し、1つ以上のタッチ入力の前記第1の部分を認識する1つ以上のマッチングジェスチャレコグナイザを前記第1のセットのジェスチャレコグナイザから識別し、前記1つ以上のマッチングジェスチャレコグナイザに対応する1つ以上のジェスチャハンドラにより1つ以上のタッチ入力の前記第1の部分を処理する命令と、
    を含むことを特徴とする電子デバイス。
  36. 前記検出する命令は、1つ以上のタッチ入力の前記第1の部分におけるタッチ入力が前記第2のソフトウェアアプリケーションの前記表示されたビューのうちの少なくとも1つに少なくとも部分的に重なり合っている間に行われることを特徴とする請求項35に記載の電子デバイス。
  37. 前記表示する命令は、前記第1のソフトウェアアプリケーションのいずれのビューも表示することなく前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを表示する命令を含むことを特徴とする請求項35又は36に記載の電子デバイス。
  38. 前記1つ以上のプログラムは、
    前記第1の段階に後続するタッチ入力の前記シーケンスを検出する第2の段階の間、
    1つ以上のタッチ入力の前記第2の部分を前記第2のソフトウェアアプリケーションに配信することなく前記第1のソフトウェアアプリケーションに配信する命令と、
    タッチ入力の前記シーケンスを認識する第2のマッチングジェスチャレコグナイザを前記1つ以上のマッチングジェスチャレコグナイザから識別する命令と、
    前記各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力の前記シーケンスを処理する命令と、
    を含むことを特徴とする請求項35又は36に記載の方法。
  39. 前記各マッチングジェスチャレコグナイザに対応する前記ジェスチャハンドラによりタッチ入力の前記シーケンスを前記処理する命令は、
    同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループを前記タッチセンシティブディスプレイの第1の事前定義済み領域に表示する命令と、
    前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを同時に表示する命令と、を含むことを特徴とする請求項38に記載の電子デバイス。
  40. タッチセンシティブディスプレイを備えた電子デバイスの1つ以上のプロセッサが実行するための少なくとも、それぞれが対応するジェスチャハンドラを有する1つ以上のジェスチャレコグナイザの第1のセットを含む第1のソフトウェアアプリケーション、並びに1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含む第2のソフトウェアアプリケーションを含む1つ以上のプログラムを格納するコンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、
    前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを表示する命令と、
    前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくとも前記サブセットを表示している間、1つ以上のタッチ入力の第1の部分及び前記第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出する命令と、
    タッチ入力の前記シーケンスを検出する第1の段階の間、
    1つ以上のタッチ入力の前記第1の部分を前記第1のソフトウェアアプリケーション及び前記第2のソフトウェアアプリケーションに配信する命令、
    1つ以上のタッチ入力の前記第1の部分を認識する1つ以上のマッチングジェスチャレコグナイザを前記第1のセットのジェスチャレコグナイザから識別する命令、並びに
    前記1つ以上のマッチングジェスチャレコグナイザに対応する1つ以上のジェスチャハンドラにより1つ以上のタッチ入力の前記第1の部分を処理する命令と、を含むことを特徴とするコンピュータ可読記憶媒体。
  41. 前記検出する命令は、1つ以上のタッチ入力の前記第1の部分におけるタッチ入力が前記第2のソフトウェアアプリケーションの前記表示されたビューのうちの少なくとも1つに少なくとも部分的に重なり合っている間にタッチ入力の前記シーケンスを検出する命令を含むことを特徴とする請求項40に記載のコンピュータ可読記憶媒体。
  42. 前記表示する命令は、前記第1のソフトウェアアプリケーションのビューを全く表示することなく前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを表示する命令を含むことを特徴とする請求項40又は41に記載のコンピュータ可読記憶媒体。
  43. 前記1つ以上のプログラムは、
    前記第1の段階に後続するタッチ入力の前記シーケンスを検出する第2の段階の間、
    1つ以上のタッチ入力の前記第2の部分を前記第2のソフトウェアアプリケーションに配信することなく前記第1のソフトウェアアプリケーションに配信する命令と、
    タッチ入力の前記シーケンスを認識する第2のマッチングジェスチャレコグナイザを前記1つ以上のマッチングジェスチャレコグナイザから識別する命令と、
    前記各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力の前記シーケンスを処理する命令と、を含むことを特徴とする請求項40から42のいずれか1項に記載のコンピュータ可読記憶媒体。
  44. タッチセンシティブディスプレイと、
    1つ以上のプロセッサと、
    前記1つ以上のプロセッサが実行するための少なくとも、それぞれが対応するジェスチャハンドラを有する1つ以上のジェスチャレコグナイザの第1のセットを含む第1のソフトウェアアプリケーション、並びに1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含む第2のソフトウェアアプリケーションを含む1つ以上のプログラムを格納するメモリと、を備える電子デバイスであって、前記1つ以上のプログラムは、
    前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを含む1つ以上のビューの第1のセットを表示する命令と、
    前記1つ以上のビューの前記第1のセットを表示している間、1つ以上のタッチ入力の第1の部分及び前記第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出する命令と、
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識するかを判定する命令と、
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識すると判定することに従って、
    タッチ入力の前記シーケンスを前記第2のソフトウェアアプリケーションに配信することなく前記第1のソフトウェアアプリケーションに配信する命令、及び
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定する命令と、
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って、タッチ入力の前記シーケンスを認識する1つ以上のジェスチャレコグナイザの前記第1のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する命令と、
    1つ以上のジェスチャレコグナイザの前記第1のセットのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識しないと判定することに従って、
    タッチ入力の前記シーケンスを前記第2のソフトウェアアプリケーションに配信する命令、及び
    1つ以上のジェスチャレコグナイザの前記第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定する命令と、
    1つ以上のジェスチャレコグナイザの前記第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って、タッチ入力の前記シーケンスを認識する1つ以上のジェスチャレコグナイザの前記第2のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する命令とを含むことを特徴とする電子デバイス。
  45. タッチ入力の前記シーケンスは、前記第2のソフトウェアアプリケーションの前記表示された1つ以上のビューのうちの少なくとも1つに少なくとも部分的に重なり合うことを特徴とする請求項44に記載の電子デバイス。
  46. 1つ以上のビューの前記第1のセットを前記表示する命令は、前記第1のソフトウェアアプリケーションのビューを全く表示することなく1つ以上の前記第1のセットを表示する命令を含むことを特徴とする請求項44又は45に記載の電子デバイス。
  47. 1つ以上のジェスチャレコグナイザの前記第1のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを前記処理する命令は、1つ以上のビューの前記第1のセットの前記表示を前記第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換する命令を含むことを特徴とする請求項44から46のいずれか1項に記載の電子デバイス。
  48. 1つ以上のジェスチャレコグナイザの前記第1のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを前記処理する命令は、
    同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションのグループを前記タッチセンシティブディスプレイの第1の事前定義済み領域に表示する命令と、
    1つ以上のビューの前記第1のセットの少なくともサブセットを同時に表示する命令と、を含むことを特徴とする請求項44から47のいずれか1項に記載の電子デバイス。
  49. タッチセンシティブディスプレイを備えた電子デバイスの1つ以上のプロセッサが実行するための少なくとも、それぞれが対応するジェスチャハンドラを有する1つ以上のジェスチャレコグナイザの第1のセットを含む第1のソフトウェアアプリケーション、並びに1つ以上のビュー及び1つ以上のジェスチャレコグナイザの第2のセットを含む第2のソフトウェアアプリケーションを含む1つ以上のプログラムを格納するコンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、
    前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを含む1つ以上のビューの第1のセットを表示する命令と、
    前記1つ以上のビューの前記第1のセットを表示している間、1つ以上のタッチ入力の第1の部分及び前記第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出する命令と、
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識するかを判定する命令と、
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識すると判定することに従って、
    タッチ入力の前記シーケンスを前記第2のソフトウェアアプリケーションに配信することなく前記第1のソフトウェアアプリケーションに配信する命令、及び
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定する命令と、
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って、タッチ入力の前記シーケンスを認識する1つ以上のジェスチャレコグナイザの前記第1のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する命令と、
    1つ以上のジェスチャレコグナイザの前記第1のセットのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識しないと判定することに従って、
    タッチ入力の前記シーケンスを前記第2のソフトウェアアプリケーションに配信する命令、及び
    1つ以上のジェスチャレコグナイザの前記第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定する命令と、
    1つ以上のジェスチャレコグナイザの前記第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って、タッチ入力の前記シーケンスを認識する1つ以上のジェスチャレコグナイザの前記第2のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する命令とを含むことを特徴とするコンピュータ可読記憶媒体。
  50. タッチ入力の前記シーケンスは、前記第2のソフトウェアアプリケーションの前記表示された1つ以上のビューのうちの少なくとも1つに少なくとも部分的に重なり合うことを特徴とする請求項49記載のコンピュータ可読記憶媒体。
  51. 1つ以上のビューの前記第1のセットを前記表示する命令は、前記第1のソフトウェアアプリケーションのビューを全く表示することなく1つ以上の前記第1のセットを表示する命令を含むことを特徴とする請求項49又は50記載のコンピュータ可読記憶媒体。
  52. 1つ以上のジェスチャレコグナイザの前記第1のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを前記処理する命令は、1つ以上のビューの前記第1のセットの前記表示を前記第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換する命令を含むことを特徴とする請求項49から51のいずれか1項に記載のコンピュータ可読記憶媒体。
  53. ディスプレイと、
    1つ以上のプロセッサと、
    前記1つ以上のプロセッサが実行するための複数のビューを有するビュー階層を含むソフトウェアを含む1つ以上のプログラムを格納するメモリと、を備える電子デバイスであって、前記1つ以上のプログラムは、
    前記ビュー階層の1つ以上のビューを表示する命令と、
    各々が1つ以上の事象レコグナイザを含む特定のビューと各々が関連付けられる1つ以上のソフトウェア要素を実行する命令であり、各事象レコグナイザが1つ以上のサブ事象に基づく1つ以上の事象定義と事象ハンドラを有し、前記事象ハンドラが対象に対する動作を規定し且つ前記事象定義に対応する事象を検出する前記事象レコグナイザに応答して前記動作を前記対象に送出するように構成される命令と、
    1つ以上のサブ事象のシーケンスを検出する命令と、
    前記ビュー階層の前記ビューのうちの1つを前記ビュー階層のどのビューが能動的に関わるビューであるかを明らかにするヒットビューとして識別する命令と、
    前記ビュー階層内の能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信する命令と、を含み、
    前記ビュー階層における能動的に関わるビューに対する少なくとも1つのジェスチャレコグナイザは複数の事象定義を有し、そのうちの1つが前記電子デバイスの内部状態に従って選択され、前記少なくとも1つの事象レコグナイザは、前記選択された事象定義に従ってサブ事象の前記シーケンスにおける次のサブ事象を処理する前に前記各サブ事象を処理することを特徴とする電子デバイス。
  54. 前記複数の事象定義は、第1の数の指による第1のスワイプジェスチャに対応する第1の事象定義及び前記第1の数の指とは異なる第2の数の指による第2のスワイプジェスチャに対応する第2の事象定義を含むことを特徴とする請求項53に記載の電子デバイス。
  55. 前記複数の事象定義の各定義は、前記各事象定義が各事象レコグナイザ以外の前記能動的に関わるビューに対するいずれかの事象レコグナイザの事象定義に対応しないと判定することと前記電子デバイスの前記内部状態とに従って前記各事象レコグナイザに対して選択されることを特徴とする請求項53又は54に記載の電子デバイス。
  56. 前記ビュー階層における能動的に関わるビューに対する2つ以上の事象レコグナイザの各々は、複数の事象定義を有し、前記複数の事象定義の各事象定義は、前記各事象定義が各事象レコグナイザ以外の2つ以上の事象定義を含むいずれかの事象レコグナイザに対して選択されたいずれかの事象定義に対応しないと判定することと前記電子デバイスの前記内部状態とに従って前記各事象レコグナイザに対して選択されることを特徴とする請求項53又は54に記載の電子デバイス。
  57. 前記各サブ事象を前記処理する命令は、前記ビュー階層の前記1つ以上のビューの前記表示を、前記ビュー階層を含む前記ソフトウェアとは異なる第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換する命令を含むことを特徴とする請求項53から56のいずれか1項に記載の電子デバイス。
  58. ある内部状態の電子デバイスの1つ以上のプロセッサが実行するための複数のビューを有するビュー階層を含むソフトウェアを含む1つ以上のプログラムを格納するコンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、
    前記ビュー階層の1つ以上のビューを表示する命令と、
    各々が1つ以上の事象レコグナイザを含む特定のビュー各々と関連付けられる1つ以上のソフトウェア要素を実行する命令であり、各事象レコグナイザが1つ以上のサブ事象に基づく1つ以上の事象定義と事象ハンドラを有し、前記事象ハンドラが対象に対する動作を規定し且つ前記事象定義に対応する事象を検出する前記事象レコグナイザに応答して前記動作を前記対象に送出するように構成される命令と、
    1つ以上のサブ事象のシーケンスを検出する命令と、
    前記ビュー階層の前記ビューのうちの1つを前記ビュー階層のどのビューが能動的に関わるビューであるかを明らかにするヒットビューとして識別する命令と、
    前記ビュー階層内の能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信する命令と、を含み、
    前記ビュー階層における能動的に関わるビューに対する少なくとも1つのジェスチャレコグナイザは複数の事象定義を有し、そのうちの1つが前記電子デバイスの前記内部状態に従って選択され、前記少なくとも1つの事象レコグナイザは、前記選択された事象定義に従ってサブ事象の前記シーケンスにおける次のサブ事象を処理する前に前記各サブ事象を処理することを特徴とするコンピュータ可読記憶媒体。
  59. 前記複数の事象定義は、第1の数の指による第1のスワイプジェスチャに対応する第1の事象定義及び前記第1の数の指とは異なる第2の数の指による第2のスワイプジェスチャに対応する第2の事象定義を含むことを特徴とする請求項58に記載のコンピュータ可読記憶媒体。
  60. 前記複数の事象定義の各定義は、前記各事象定義が各事象レコグナイザ以外の前記能動的に関わるビューに対するいずれかの事象レコグナイザの事象定義に対応しないと判定することと前記電子デバイスの前記内部状態とに従って前記各事象レコグナイザに対して選択されることを特徴とする請求項58又は59に記載のコンピュータ可読記憶媒体。
  61. 前記ビュー階層における能動的に関わるビューに対する2つ以上の事象レコグナイザの各々は、複数の事象定義を有し、前記複数の事象定義の各事象定義は、前記各事象定義が各事象レコグナイザ以外の2つ以上の事象定義を含むいずれかの事象レコグナイザに対して選択されたいずれかの事象定義に対応しないと判定することと前記電子デバイスの前記内部状態とに従って前記各事象レコグナイザに対して選択されることを特徴とする請求項58又は59に記載のコンピュータ可読記憶媒体。
  62. 前記各サブ事象を前記処理する命令は、前記ビュー階層の前記1つ以上のビューの前記表示を、前記ビュー階層を含む前記ソフトウェアとは異なる第1のソフトウェアアプリケーションの1つ以上のビューの表示に置換する命令を含むことを特徴とする請求項58から61のいずれか1項に記載のコンピュータ可読記憶媒体。
  63. タッチセンシティブディスプレイと、
    少なくとも、それぞれが対応するジェスチャハンドラを有する1つ以上のジェスチャレコグナイザの第2のセットを含む第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを表示する手段と、
    1つ以上のタッチ入力の第1の部分及び前記第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出する手段を含む前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくとも前記サブセットを表示している間に使用可能な手段と、
    1つ以上のタッチ入力の前記第1の部分を1つ以上のジェスチャレコグナイザの第1のセットを含む第1のソフトウェアアプリケーション及び前記第2のソフトウェアアプリケーションに配信する手段、
    1つ以上のタッチ入力の前記第1の部分を認識する1つ以上のマッチングジェスチャレコグナイザを前記第1のセットのジェスチャレコグナイザから識別する手段、並びに
    前記1つ以上のマッチングジェスチャレコグナイザに対応する1つ以上のジェスチャハンドラにより1つ以上のタッチ入力の前記第1の部分を処理する手段を含むタッチ入力の前記シーケンスを検出する第1の段階の間に使用可能な手段と、
    を備えることを特徴とする電子デバイス。
  64. 前記検出する手段は、1つ以上のタッチ入力の前記第1の部分におけるタッチ入力が前記第2のソフトウェアアプリケーションの前記表示されたビューのうちの少なくとも1つに少なくとも部分的に重なり合っている間にタッチ入力の前記シーケンスを検出する手段を含むことを特徴とする請求項63に記載の電子デバイス。
  65. 前記表示する手段は、前記第1のソフトウェアアプリケーションのビューを全く表示することなく前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを表示する手段を含むことを特徴とする請求項63又は64に記載の電子デバイス。
  66. 1つ以上のタッチ入力の前記第2の部分を前記第2のソフトウェアアプリケーションに配信することなく前記第1のソフトウェアアプリケーションに配信する手段と、
    タッチ入力の前記シーケンスを認識する第2のマッチングジェスチャレコグナイザを前記1つ以上のマッチングジェスチャレコグナイザから識別する手段と、
    前記各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力の前記シーケンスを処理する手段と、を含む前記第1の段階に後続するタッチ入力の前記シーケンスを検出する第2の段階の間に使用可能な手段を備えることを特徴とする請求項63から65のいずれか1項に記載の電子デバイス。
  67. 前記各マッチングジェスチャレコグナイザに対応する前記ジェスチャハンドラによりタッチ入力の前記シーケンスを前記処理する手段は、
    同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループを前記タッチセンシティブディスプレイの第1の事前定義済み領域に表示する手段と、
    前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを同時に表示する手段と、を含むことを特徴とする請求項66に記載の電子デバイス。
  68. タッチセンシティブディスプレイを備えた電子デバイス用の情報処理装置であって、
    少なくとも、それぞれが対応するジェスチャハンドラを有する1つ以上のジェスチャレコグナイザの第2のセットを含む第2のソフトウェアアプリケーションの1つ以上のビューの少なくともサブセットを表示する手段と、
    1つ以上のタッチ入力の第1の部分及び前記第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出する手段を含む前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくとも前記サブセットを表示している間に使用可能な手段と、
    1つ以上のタッチ入力の前記第1の部分を1つ以上のジェスチャレコグナイザの第1のセットを含む前記第1のソフトウェアアプリケーション及び前記第2のソフトウェアアプリケーションに配信する手段、
    1つ以上のタッチ入力の前記第1の部分を認識する1つ以上のマッチングジェスチャレコグナイザを前記第1のセットのジェスチャレコグナイザから識別する手段、並びに
    前記1つ以上のマッチングジェスチャレコグナイザに対応する1つ以上のジェスチャハンドラにより1つ以上のタッチ入力の前記第1の部分を処理する手段を含むタッチ入力の前記シーケンスを検出する第1の段階の間に使用可能な手段と、
    を備えることを特徴とする情報処理装置。
  69. 前記検出する手段は、1つ以上のタッチ入力の前記第1の部分におけるタッチ入力が前記第2のソフトウェアアプリケーションの前記表示されたビューのうちの少なくとも1つに少なくとも部分的に重なり合っている間にタッチ入力の前記シーケンスを検出する手段を含むことを特徴とする請求項68に記載の情報処理装置。
  70. 前記表示する手段は、前記第1のソフトウェアアプリケーションのビューを全く表示することなく前記第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを表示する手段を含むことを特徴とする請求項68又は69に記載の情報処理装置。
  71. 1つ以上のタッチ入力の前記第2の部分を前記第2のソフトウェアアプリケーションに配信することなく前記第1のソフトウェアアプリケーションに配信する手段と、
    タッチ入力の前記シーケンスを認識する第2のマッチングジェスチャレコグナイザを前記1つ以上のマッチングジェスチャレコグナイザから識別する手段と、
    前記各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力の前記シーケンスを処理する手段と、を含む前記第1の段階に後続するタッチ入力の前記シーケンスを検出する第2の段階の間に使用可能な手段を備えることを特徴とする請求項68から70のいずれか1項に記載の情報処理装置。
  72. タッチセンシティブディスプレイと、
    1つ以上のプロセッサと、
    少なくとも、1つ以上のビュー及びそれぞれが対応するジェスチャハンドラを有する1つ以上のジェスチャレコグナイザの第2のセットを含む第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを含む1つ以上のビューの第1のセットを表示する手段と、
    1つ以上のタッチ入力の第1の部分及び前記第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出する手段を含む前記1つ以上のビューの前記第1のセットを表示している間に使用可能な手段と、
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識するかを判定する手段と、
    タッチ入力の前記シーケンスを前記第2のソフトウェアアプリケーションに配信することなく1つ以上のジェスチャレコグナイザの第1のセットを含む前記第1のソフトウェアアプリケーションに配信する手段、及び
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定する手段を含む1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識すると判定することに従って使用可能な手段と、
    タッチ入力の前記シーケンスを認識する1つ以上のジェスチャレコグナイザの前記第1のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って使用可能な手段と、
    タッチ入力の前記シーケンスを前記第2のソフトウェアアプリケーションに配信する手段、及び
    1つ以上のジェスチャレコグナイザの前記第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定する手段を含む1つ以上のジェスチャレコグナイザの前記第1のセットのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識しないと判定することに従って使用可能な手段と、
    タッチ入力の前記シーケンスを認識する1つ以上のジェスチャレコグナイザの前記第2のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する1つ以上のジェスチャレコグナイザの前記第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って使用可能な手段と、
    を備えることを特徴とする電子デバイス。
  73. タッチセンシティブディスプレイを備えた電子デバイス用の情報処理装置であって、
    少なくとも、1つ以上のビュー及びそれぞれが対応するジェスチャハンドラを有する1つ以上のジェスチャレコグナイザの第2のセットを含む第2のソフトウェアアプリケーションの前記1つ以上のビューの少なくともサブセットを含む1つ以上のビューの第1のセットを表示する手段と、
    1つ以上のタッチ入力の第1の部分及び前記第1の部分に後続する1つ以上のタッチ入力の第2の部分を含む前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出する手段を含む前記1つ以上のビューの前記第1のセットを表示している間に使用可能な手段と、
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識するかを判定する手段と、
    タッチ入力の前記シーケンスを前記第2のソフトウェアアプリケーションに配信することなく1つ以上のジェスチャレコグナイザの第1のセットを含む前記第1のソフトウェアアプリケーションに配信する手段、及び
    1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定する手段を含む1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識すると判定することに従って使用可能な手段と、
    タッチ入力の前記シーケンスを認識する1つ以上のジェスチャレコグナイザの前記第1のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する1つ以上のジェスチャレコグナイザの前記第1のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って使用可能な手段と、
    タッチ入力の前記シーケンスを前記第2のソフトウェアアプリケーションに配信する手段、及び
    1つ以上のジェスチャレコグナイザの前記第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定する手段を含む1つ以上のジェスチャレコグナイザの前記第1のセットのジェスチャレコグナイザが1つ以上のタッチ入力の前記第1の部分を認識しないと判定することに従って使用可能な手段と、
    タッチ入力の前記シーケンスを認識する1つ以上のジェスチャレコグナイザの前記第2のセットの前記少なくとも1つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する1つ以上のジェスチャレコグナイザの前記第2のセットの少なくとも1つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って使用可能な手段と、
    を備えることを特徴とする情報処理装置。
  74. 電子デバイスであり、
    ディスプレイと、
    前記電子デバイスに格納された複数のビューを有するビュー階層を含むソフトウェアの1つ以上のビューを表示する手段と、
    各々が1つ以上の事象レコグナイザを含む特定のビューと各々が関連付けられる1つ以上のソフトウェア要素を実行する手段であり、各事象レコグナイザが1つ以上のサブ事象に基づく1つ以上の事象定義と事象ハンドラを有し、前記事象ハンドラが対象に対する動作を規定し且つ前記事象定義に対応する事象を検出する前記事象レコグナイザに応答して前記動作を前記対象に送出するように構成される手段と、
    1つ以上のサブ事象のシーケンスを検出する手段と、
    前記ビュー階層の前記ビューのうちの1つを前記ビュー階層のどのビューが能動的に関わるビューであるかを明らかにするヒットビューとして識別する手段と、
    前記ビュー階層内の能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信する手段と、を備える電子デバイスであって、
    前記ビュー階層における能動的に関わるビューに対する少なくとも1つのジェスチャレコグナイザは複数の事象定義を有し、そのうちの1つが前記電子デバイスの内部状態に従って選択され、前記少なくとも1つの事象レコグナイザは、前記選択された事象定義に従ってサブ事象の前記シーケンスにおける次のサブ事象を処理する前に前記各サブ事象を処理することを特徴とする電子デバイス。
  75. 電子デバイス用の情報処理装置であって、
    前記電子デバイスに格納された複数のビューを有するビュー階層を含むソフトウェアの1つ以上のビューを表示する手段と、
    各々が1つ以上の事象レコグナイザを含む特定のビューと各々が関連付けられる1つ以上のソフトウェア要素を実行する手段であり、各事象レコグナイザが1つ以上のサブ事象に基づく1つ以上の事象定義と事象ハンドラを有し、前記事象ハンドラが対象に対する動作を規定し且つ前記事象定義に対応する事象を検出する前記事象レコグナイザに応答して前記動作を前記対象に送出するように構成される手段と、
    1つ以上のサブ事象のシーケンスを検出する手段と、
    前記ビュー階層の前記ビューのうちの1つを前記ビュー階層のどのビューが能動的に関わるビューであるかを明らかにするヒットビューとして識別する手段と、
    前記ビュー階層内の能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信する手段と、を備える情報処理装置であって、
    前記ビュー階層における能動的に関わるビューに対する少なくとも1つのジェスチャレコグナイザは事象定義を有し、そのうちの1つが前記電子デバイスの内部状態に従って選択され、前記少なくとも1つの事象レコグナイザは、前記選択された事象定義に従ってサブ事象の前記シーケンスにおける次のサブ事象を処理する前に前記各サブ事象を処理することを特徴とする情報処理装置。
JP2016146769A 2010-12-20 2016-07-26 事象認識 Active JP6785082B2 (ja)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201061425222P 2010-12-20 2010-12-20
US61/425,222 2010-12-20
US13/077,524 2011-03-31
US13/077,524 US9244606B2 (en) 2010-12-20 2011-03-31 Device, method, and graphical user interface for navigation of concurrently open software applications
US13/077,925 US8566044B2 (en) 2009-03-16 2011-03-31 Event recognition
US13/077,931 2011-03-31
US13/077,927 US8566045B2 (en) 2009-03-16 2011-03-31 Event recognition
US13/077,925 2011-03-31
US13/077,927 2011-03-31
US13/077,931 US9311112B2 (en) 2009-03-16 2011-03-31 Event recognition

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015077922A Division JP5980368B2 (ja) 2010-12-20 2015-04-06 事象認識

Publications (2)

Publication Number Publication Date
JP2016224970A true JP2016224970A (ja) 2016-12-28
JP6785082B2 JP6785082B2 (ja) 2020-11-18

Family

ID=45491795

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2013546284A Active JP5747235B2 (ja) 2010-12-20 2011-12-19 事象認識
JP2015077922A Active JP5980368B2 (ja) 2010-12-20 2015-04-06 事象認識
JP2016146769A Active JP6785082B2 (ja) 2010-12-20 2016-07-26 事象認識

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2013546284A Active JP5747235B2 (ja) 2010-12-20 2011-12-19 事象認識
JP2015077922A Active JP5980368B2 (ja) 2010-12-20 2015-04-06 事象認識

Country Status (7)

Country Link
EP (3) EP3982242B1 (ja)
JP (3) JP5747235B2 (ja)
KR (4) KR101854582B1 (ja)
AU (1) AU2011349513B2 (ja)
NL (1) NL2007993C2 (ja)
TW (2) TWI470537B (ja)
WO (1) WO2012087939A1 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101956082B1 (ko) 2012-05-09 2019-03-11 애플 인크. 사용자 인터페이스 객체를 선택하는 디바이스, 방법, 및 그래픽 사용자 인터페이스
WO2013169849A2 (en) 2012-05-09 2013-11-14 Industries Llc Yknots Device, method, and graphical user interface for displaying user interface objects corresponding to an application
DE202013012233U1 (de) 2012-05-09 2016-01-18 Apple Inc. Vorrichtung und grafische Benutzerschnittstelle zum Anzeigen zusätzlicher Informationen in Antwort auf einen Benutzerkontakt
WO2013169851A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for facilitating user interaction with controls in a user interface
DE112013002387T5 (de) 2012-05-09 2015-02-12 Apple Inc. Vorrichtung, Verfahren und grafische Benutzeroberfläche für die Bereitstellung taktiler Rückkopplung für Operationen in einer Benutzerschnittstelle
WO2013169842A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for selecting object within a group of objects
WO2013169865A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for moving a user interface object based on an intensity of a press input
WO2013169882A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for moving and dropping a user interface object
WO2013169843A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for manipulating framed graphical objects
KR101823288B1 (ko) 2012-05-09 2018-01-29 애플 인크. 제스처에 응답하여 디스플레이 상태들 사이를 전이하기 위한 디바이스, 방법, 및 그래픽 사용자 인터페이스
CN104471521B (zh) 2012-05-09 2018-10-23 苹果公司 用于针对改变用户界面对象的激活状态来提供反馈的设备、方法和图形用户界面
WO2013191028A1 (ja) 2012-06-22 2013-12-27 ソニー株式会社 検知装置、検知方法、及びプログラム
CN103529976B (zh) * 2012-07-02 2017-09-12 英特尔公司 手势识别系统中的干扰消除
JP6188288B2 (ja) * 2012-07-20 2017-08-30 キヤノン株式会社 情報処理装置及びその制御方法
JP5700020B2 (ja) * 2012-10-10 2015-04-15 コニカミノルタ株式会社 画像処理装置、プログラム及び操作イベント判別方法
WO2014105277A2 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for moving a cursor according to a change in an appearance of a control icon with simulated three-dimensional characteristics
CN107832003B (zh) 2012-12-29 2021-01-22 苹果公司 用于放大内容的方法和设备、电子设备和介质
AU2013368441B2 (en) 2012-12-29 2016-04-14 Apple Inc. Device, method, and graphical user interface for forgoing generation of tactile output for a multi-contact gesture
US9703477B2 (en) * 2013-02-19 2017-07-11 Facebook, Inc. Handling overloaded gestures
JP6155869B2 (ja) 2013-06-11 2017-07-05 ソニー株式会社 表示制御装置、表示制御方法およびプログラム
US9292186B2 (en) * 2014-01-31 2016-03-22 3M Innovative Properties Company Note capture and recognition with manual assist
EP4365725A2 (en) 2014-05-30 2024-05-08 Apple Inc. Continuity
KR20160046695A (ko) 2014-10-21 2016-04-29 유홍준 소프트웨어 요소 부분인식 처리 방법 및 시스템
US9645732B2 (en) 2015-03-08 2017-05-09 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
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
US10048757B2 (en) 2015-03-08 2018-08-14 Apple Inc. Devices and methods for controlling media presentation
US9632664B2 (en) 2015-03-08 2017-04-25 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
US9639184B2 (en) 2015-03-19 2017-05-02 Apple Inc. Touch input cursor manipulation
US20170045981A1 (en) 2015-08-10 2017-02-16 Apple Inc. Devices and Methods for Processing Touch Inputs Based on Their Intensities
US9733823B2 (en) 2015-04-01 2017-08-15 Microsoft Technology Licensing, Llc View activation via hit testing in an asynchronous windowing system
US10200598B2 (en) 2015-06-07 2019-02-05 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US10346030B2 (en) 2015-06-07 2019-07-09 Apple Inc. Devices and methods for navigating between user interfaces
US9891811B2 (en) 2015-06-07 2018-02-13 Apple Inc. Devices and methods for navigating between user interfaces
US9830048B2 (en) 2015-06-07 2017-11-28 Apple Inc. Devices and methods for processing touch inputs with instructions in a web page
US9860451B2 (en) 2015-06-07 2018-01-02 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US10235035B2 (en) 2015-08-10 2019-03-19 Apple Inc. Devices, methods, and graphical user interfaces for content navigation and manipulation
US10416800B2 (en) 2015-08-10 2019-09-17 Apple Inc. Devices, methods, and graphical user interfaces for adjusting user interface objects
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
DK201670728A1 (en) * 2016-09-06 2018-03-19 Apple Inc Devices, Methods, and Graphical User Interfaces for Providing Feedback During Interaction with an Intensity-Sensitive Button
CN108388393B (zh) 2018-01-02 2020-08-28 阿里巴巴集团控股有限公司 移动终端点击事件的识别方法和装置
US10921975B2 (en) * 2018-06-03 2021-02-16 Apple Inc. Devices, methods, and user interfaces for conveying proximity-based and contact-based input events
US10877660B2 (en) * 2018-06-03 2020-12-29 Apple Inc. Devices and methods for processing inputs using gesture recognizers
US11131967B2 (en) 2019-05-06 2021-09-28 Apple Inc. Clock faces for an electronic device
KR20220121408A (ko) 2021-02-25 2022-09-01 주식회사 수앤그린테크 수생식물을 이용한 녹조 방지시스템 및 그 방법
US20220368548A1 (en) 2021-05-15 2022-11-17 Apple Inc. Shared-content session user interfaces
US11907605B2 (en) 2021-05-15 2024-02-20 Apple Inc. Shared-content session user interfaces
KR20240034452A (ko) * 2022-09-07 2024-03-14 쿠팡 주식회사 로그 정보를 관리하는 방법 및 이를 지원하는 전자 장치

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5612719A (en) * 1992-12-03 1997-03-18 Apple Computer, Inc. Gesture sensitive buttons for graphical user interfaces
JP2008508600A (ja) * 2004-07-30 2008-03-21 アップル インコーポレイテッド タッチ・センシティブ入力デバイスのためのモード・ベースのグラフィカル・ユーザ・インタフェース
JP2009110286A (ja) * 2007-10-30 2009-05-21 Toshiba Corp 情報処理装置、ランチャー起動制御プログラムおよびランチャー起動制御方法
US20100020025A1 (en) * 2008-07-25 2010-01-28 Intuilab Continuous recognition of multi-touch gestures
WO2010041155A1 (en) * 2008-10-07 2010-04-15 Sony Ericsson Mobile Communications Ab Live preview of open windows
WO2010107669A2 (en) * 2009-03-16 2010-09-23 Apple Inc. Event recognition
WO2010144201A2 (en) * 2009-06-07 2010-12-16 Apple Inc. Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292111B2 (en) * 1998-01-26 2016-03-22 Apple Inc. Gesturing with a multipoint sensing device
US7030861B1 (en) * 2001-02-10 2006-04-18 Wayne Carl Westerman System and method for packing multi-touch gestures onto a hand
KR100593982B1 (ko) * 2003-11-06 2006-06-30 삼성전자주식회사 가상 그래피티를 제공하는 장치 및 방법과 그에 따른기록매체
WO2007037806A1 (en) * 2005-09-15 2007-04-05 Apple Inc. System and method for processing raw data of track pad device
TWI316196B (en) * 2004-11-01 2009-10-21 Ibm Apparatus method and system for improved feedback of pointing device event processing
US9002342B2 (en) * 2005-12-02 2015-04-07 Nokia Corporation System, apparatus, and method for dynamically customizing and configuring applications
US8296684B2 (en) * 2008-05-23 2012-10-23 Hewlett-Packard Development Company, L.P. Navigating among activities in a computing device
US7890299B2 (en) * 2007-05-21 2011-02-15 Qualcomm, Incorporated Providing event-controlled continuous logging for a mobile operating environment
WO2009017125A1 (ja) * 2007-07-30 2009-02-05 Kyocera Corporation 入力装置
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
US9268483B2 (en) * 2008-05-16 2016-02-23 Microsoft Technology Licensing, Llc Multi-touch input platform
US8375336B2 (en) * 2008-05-23 2013-02-12 Microsoft Corporation Panning content utilizing a drag operation
JP2010015238A (ja) * 2008-07-01 2010-01-21 Sony Corp 情報処理装置、及び補助情報の表示方法
US8466879B2 (en) * 2008-10-26 2013-06-18 Microsoft Corporation Multi-touch manipulation of application objects
JP4853507B2 (ja) * 2008-10-30 2012-01-11 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
KR101019335B1 (ko) * 2008-11-11 2011-03-07 주식회사 팬택 제스처를 이용한 이동단말의 어플리케이션 제어 방법 및 시스템
KR101521932B1 (ko) * 2009-01-19 2015-05-20 엘지전자 주식회사 단말기 및 그 제어 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5612719A (en) * 1992-12-03 1997-03-18 Apple Computer, Inc. Gesture sensitive buttons for graphical user interfaces
JP2008508600A (ja) * 2004-07-30 2008-03-21 アップル インコーポレイテッド タッチ・センシティブ入力デバイスのためのモード・ベースのグラフィカル・ユーザ・インタフェース
JP2009110286A (ja) * 2007-10-30 2009-05-21 Toshiba Corp 情報処理装置、ランチャー起動制御プログラムおよびランチャー起動制御方法
US20100020025A1 (en) * 2008-07-25 2010-01-28 Intuilab Continuous recognition of multi-touch gestures
WO2010041155A1 (en) * 2008-10-07 2010-04-15 Sony Ericsson Mobile Communications Ab Live preview of open windows
WO2010107669A2 (en) * 2009-03-16 2010-09-23 Apple Inc. Event recognition
WO2010144201A2 (en) * 2009-06-07 2010-12-16 Apple Inc. Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface

Also Published As

Publication number Publication date
JP2015158931A (ja) 2015-09-03
TW201512962A (zh) 2015-04-01
NL2007993A (en) 2012-06-25
EP3982242A3 (en) 2022-06-22
KR101854582B1 (ko) 2018-05-03
TWI520044B (zh) 2016-02-01
JP5980368B2 (ja) 2016-08-31
TW201237735A (en) 2012-09-16
TWI470537B (zh) 2015-01-21
EP2656192B1 (en) 2017-08-16
KR20170081293A (ko) 2017-07-11
KR101523866B1 (ko) 2015-05-28
NL2007993C2 (en) 2012-08-14
JP2014504419A (ja) 2014-02-20
EP3258366B1 (en) 2021-12-08
AU2011349513B2 (en) 2015-04-02
JP5747235B2 (ja) 2015-07-08
KR20160097377A (ko) 2016-08-17
AU2011349513A1 (en) 2013-05-09
EP2656192A1 (en) 2013-10-30
KR20130111615A (ko) 2013-10-10
KR101754908B1 (ko) 2017-07-07
KR20150012313A (ko) 2015-02-03
EP3982242B1 (en) 2024-05-01
KR101645685B1 (ko) 2016-08-04
WO2012087939A1 (en) 2012-06-28
EP3258366A1 (en) 2017-12-20
JP6785082B2 (ja) 2020-11-18
EP3982242A2 (en) 2022-04-13

Similar Documents

Publication Publication Date Title
JP5980368B2 (ja) 事象認識
US20220107728A1 (en) Event Recognition
CN110362414B (zh) 代理手势识别器
US9311112B2 (en) Event recognition
US8566044B2 (en) Event recognition
AU2021290380B2 (en) Event recognition

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160810

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170602

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180223

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180517

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190527

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20190603

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20190621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201026

R150 Certificate of patent or registration of utility model

Ref document number: 6785082

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250