(57)【特許請求の範囲】
【請求項１】
１つ以上のジェスチャレコグナイザの第１のセットを含む第１のソフトウェアアプリケーションと、１つ以上のジェスチャレコグナイザの第２のセットを含む第２のソフトウェアアプリケーションとを少なくとも実行するように構成された、タッチセンシティブディスプレイを備えた電子デバイスにおいて、
前記第２のソフトウェアアプリケーションの１つ以上のビューを表示することと、
前記１つ以上のビューを表示している間、
前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出することと、
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの部分を認識するかを判定することと、
１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの前記部分を認識しないと判定することに従って、
タッチ入力の前記シーケンスを前記第２のソフトウェアアプリケーションに配信し、
前記第２のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定し、
１つ以上のジェスチャレコグナイザの前記第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って、タッチ入力の前記シーケンスを認識する前記第２のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第２のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することと、
を含むことを特徴とする方法。
【請求項２】
タッチ入力の前記シーケンスは、前記第２のソフトウェアアプリケーションの前記表示された１つ以上のビューのうちの少なくとも１つに少なくとも部分的に重なり合うことを特徴とする請求項１に記載の方法。
【請求項３】
前記第２のソフトウェアアプリケーションの前記１つ以上のビューを表示することは、前記第１のソフトウェアアプリケーションのビューを全く表示することなく前記第２のソフトウェアアプリケーションの前記１つ以上のビューを表示することを含むことを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記第２のソフトウェアアプリケーションの前記１つ以上のビューを表示することは、他のいずれかのソフトウェアアプリケーションのビューを表示することなく前記第２のソフトウェアアプリケーションの前記１つ以上のビューを表示することを含むことを特徴とする請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの前記部分を認識すると判定する前に、タッチ入力の前記シーケンスの前記部分を前記第１のソフトウェアアプリケーション及び前記第２のソフトウェアアプリケーションに同時に配信することを特徴とする請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記第１のソフトウェアアプリケーションはアプリケーションランチャであることを特徴とする請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記第１のソフトウェアアプリケーションはオペレーティングシステムアプリケーションであることを特徴とする請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの前記部分を認識すると判定することに従って、及び、前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの全体を認識すると判定することに従って、タッチ入力の前記シーケンスを認識する前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することをさらに含み、 前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することは、前記第１のソフトウェアアプリケーションの１つ以上のビューを表示することを含むことを特徴とする請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの前記部分を認識すると判定することに従って、及び、前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの全体を認識すると判定することに従って、タッチ入力の前記シーケンスを認識する前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することをさらに含み、
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することは、前記第２のソフトウェアアプリケーションの前記１つ以上のビューの前記表示を前記第１のソフトウェアアプリケーションの１つ以上のビューの表示に置換することを含むことを特徴とする請求項１から８のいずれか１項に記載の方法。
【請求項１０】
前記電子デバイスは、前記第１のソフトウェアアプリケーション、前記第２のソフトウェアアプリケーション及び第３のソフトウェアアプリケーションを同時に実行し、
前記方法は、
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの前記部分を認識すると判定することに従って、及び、前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの全体を認識すると判定することに従って、タッチ入力の前記シーケンスを認識する前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することをさらに含み、
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することは、前記第２のソフトウェアアプリケーションの前記１つ以上のビューを前記第３のソフトウェアアプリケーションの１つ以上のビューに置換することを含むことを特徴とする請求項１から７のいずれか１項に記載の方法。
【請求項１１】
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの前記部分を認識すると判定することに従って、及び、前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの全体を認識すると判定することに従って、タッチ入力の前記シーケンスを認識する前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することをさらに含み、
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理することは、
同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループを前記タッチセンシティブディスプレイの第１の事前定義済み領域に表示することと、
前記第２のソフトウェアアプリケーションの前記１つ以上のビューの少なくともサブセットを同時に表示することと、を含むことを特徴とする請求項１から７のいずれか１項に記載の方法。
【請求項１２】
タッチセンシティブディスプレイと、
１つ以上のプロセッサと、
前記１つ以上のプロセッサが実行するための１つ以上のプログラムを格納するメモリであって、前記１つ以上のプログラムは、１つ以上のジェスチャレコグナイザの第１のセットを含む第１のソフトウェアアプリケーションと、１つ以上のジェスチャレコグナイザの第２のセットを含む第２のソフトウェアアプリケーションとを少なくとも含む、メモリと、を備える電子デバイスであって、
前記１つ以上のプログラムは、
前記第２のソフトウェアアプリケーションの１つ以上のビューを表示する命令と、
前記１つ以上のビューを表示している間、
前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出する命令と、
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの部分を認識するかを判定する命令と、
１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの前記部分を認識しないと判定することに従って、
タッチ入力の前記シーケンスを前記第２のソフトウェアアプリケーションに配信する命令と、
前記第２のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定する命令と、
１つ以上のジェスチャレコグナイザの前記第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って、タッチ入力の前記シーケンスを認識する前記第２のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第２のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する命令と、
を含むことを特徴とする電子デバイス。
【請求項１３】
タッチ入力の前記シーケンスは、前記第２のソフトウェアアプリケーションの前記表示された１つ以上のビューのうちの少なくとも１つに少なくとも部分的に重なり合うことを特徴とする請求項１２に記載の電子デバイス。
【請求項１４】
前記第２のソフトウェアアプリケーションの前記１つ以上のビューを表示する前記命令は、前記第１のソフトウェアアプリケーションのビューを全く表示することなく前記第２のソフトウェアアプリケーションの前記１つ以上のビューを表示する命令を含むことを特徴とする請求項１２又は１３に記載の電子デバイス。
【請求項１５】
前記１つ以上のプログラムは、
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの前記部分を認識すると判定することに従って、及び、前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの全体を認識すると判定することに従って、タッチ入力の前記シーケンスを認識する前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する命令を含み、
１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する前記命令は、前記第２のソフトウェアアプリケーションの前記１つ以上のビューの前記表示を前記第１のソフトウェアアプリケーションの１つ以上のビューの表示に置換する命令を含むことを特徴とする請求項１２から１４のいずれか１項に記載の電子デバイス。
【請求項１６】
前記１つ以上のプログラムは、
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの前記部分を認識すると判定することに従って、及び、前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの全体を認識すると判定することに従って、タッチ入力の前記シーケンスを認識する前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する命令をさらに含み、
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する前記命令は、
同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループを前記タッチセンシティブディスプレイの第１の事前定義済み領域に表示する命令と、
前記第２のソフトウェアアプリケーションの前記１つ以上のビューの少なくともサブセットを同時に表示する命令と、を含むことを特徴とする請求項１２から１４のいずれか１項に記載の電子デバイス。
【請求項１７】
タッチセンシティブディスプレイを備えた電子デバイスの１つ以上のプロセッサが実行するための１つ以上のプログラムを格納するコンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、１つ以上のジェスチャレコグナイザの第１のセットを含む第１のソフトウェアアプリケーションと、１つ以上のジェスチャレコグナイザの第２のセットを含む第２のソフトウェアアプリケーションとを少なくとも含み、
前記１つ以上のプログラムは、
前記第２のソフトウェアアプリケーションの１つ以上のビューを表示する命令と、
前記１つ以上のビューを表示している間、
前記タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出する命令と、
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの部分を認識するかを判定する命令と、
１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの前記部分を認識しないと判定することに従って、
タッチ入力の前記シーケンスを前記第２のソフトウェアアプリケーションに配信する命令と、
前記第２のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識するかを判定する命令と、
１つ以上のジェスチャレコグナイザの前記第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスを認識すると判定することに従って、タッチ入力の前記シーケンスを認識する前記第２のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第２のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する命令と、
を含むことを特徴とするコンピュータ可読記憶媒体。
【請求項１８】
タッチ入力の前記シーケンスは、前記第２のソフトウェアアプリケーションの前記表示された１つ以上のビューのうちの少なくとも１つに少なくとも部分的に重なり合うことを特徴とする請求項１７に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記第２のソフトウェアアプリケーションの前記１つ以上のビューを表示する前記命令は、前記第１のソフトウェアアプリケーションのビューを全く表示することなく前記第２のソフトウェアアプリケーションの前記１つ以上のビューを表示する命令を含むことを特徴とする請求項１７又は１８に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記１つ以上のプログラムは、
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの前記部分を認識すると判定することに従って、及び、前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力の前記シーケンスの全体を認識すると判定することに従って、タッチ入力の前記シーケンスを認識する前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する命令を含み、
前記第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザの前記第１のセットの前記少なくとも１つのジェスチャレコグナイザによりタッチ入力の前記シーケンスを処理する前記命令は、前記第２のソフトウェアアプリケーションの前記１つ以上のビューの前記表示を前記第１のソフトウェアアプリケーションの１つ以上のビューの表示に置換する命令を含むことを特徴とする請求項１７から１９のいずれか１項に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、タッチ入力を認識する装置及び方法を含むがこれらに限定されないユーザインタフェース処理に関する。
【背景技術】
【０００２】
一般に電子デバイスは、コンピューティングデバイスと対話するために使用されるユーザインタフェースを含む。ユーザインタフェースは、ユーザインタフェースの種々の態様と対話するキーボード、マウス、並びにタッチセンシティブ面等のディスプレイ及び／又は入力装置を含んでもよい。入力装置としてタッチセンシティブ面を備えるいくつかのデバイスにおいて、タッチジェスチャの第１のセット（例えば、タップ、ダブルタップ、横スワイプ、縦スワイプ、ピンチ、非ピンチ、２本の指のスワイプのうちの２つ以上）は、特定の状況（例えば、第１のアプリケーションの特定のモード）で適切な入力として認識され、タッチジェスチャの他の異なるセットは、他の状況（例えば、第１のアプリケーション内の異なるアプリケーション及び／あるいは異なるモード又は状況）で適切な入力として認識される。その結果、タッチジェスチャを認識し且つそれに応答するのに必要なソフトウェア及び論理は、複雑になり、アプリケーションが更新される度に又は新しいアプリケーションがコンピューティングデバイスに追加される度に改訂が必要となるだろう。これらの同様の問題は、タッチジェスチャ以外の入力ソースを利用するユーザインタフェースにおいて生じる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従って、タッチジェスチャ及びタッチ事象、並びに他の入力ソースからのジェスチャ及び事象を認識する総合的なフレームワーク又は機構を有することが望ましい。総合的なフレームワーク又は機構は、コンピューティングデバイス上の全てのアプリケーションプログラムのほぼ全ての状況又はモードに容易に適応可能であり、アプリケーションが更新される場合、あるいは新しいアプリケーションがコンピューティングデバイスに追加される場合でも殆ど又は全く改訂を必要としない。
【課題を解決するための手段】
【０００４】
上述の欠点に対処するために、いくつかの実施形態は、タッチセンシティブディスプレイを備えた電子デバイスにおいて実行される方法を提供する。電子デバイスは、少なくとも第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションを実行するように構成される。第１のソフトウェアアプリケーションは、１つ以上のジェスチャレコグナイザの第１のセットを含み、第２のソフトウェアアプリケーションは、１つ以上のビュー及び１つ以上のジェスチャレコグナイザの第２のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。方法は、第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットを表示することと、第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットを表示している間にタッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出することとを備える。タッチ入力のシーケンスは、１つ以上のタッチ入力の第１の部分及び第１の部分に後続する１つ以上のタッチ入力の第２の部分を含む。方法は、タッチ入力のシーケンスを検出する第１の段階の間、１つ以上のタッチ入力の第１の部分を第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションに配信することと、１つ以上のタッチ入力の第１の部分を認識する１つ以上のマッチングジェスチャレコグナイザを第１のセットのジェスチャレコグナイザから識別することと、１つ以上のマッチングジェスチャレコグナイザに対応する１つ以上のジェスチャハンドラにより１つ以上のタッチ入力の第１の部分を処理することとを更に備える。
【０００５】
いくつかの実施形態によると、方法は、タッチセンシティブディスプレイを備えた電子デバイスにおいて実行される。電子デバイスは、少なくとも第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションを実行するように構成される。第１のソフトウェアアプリケーションは、１つ以上のジェスチャレコグナイザの第１のセットを含み、第２のソフトウェアアプリケーションは、１つ以上のビュー及び１つ以上のジェスチャレコグナイザの第２のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。方法は、１つ以上のビューの第１のセットを表示することを備える。１つ以上のビューの第１のセットは、第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットを含む。方法は、１つ以上のビューの第１のセットを表示している間にタッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出することを更に備える。タッチ入力のシーケンスは、１つ以上のタッチ入力の第１の部分及び第１の部分に後続する１つ以上のタッチ入力の第２の部分を含む。方法は、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識するかを判定することを備える。方法は、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識すると判定することに従って、タッチ入力のシーケンスを第２のソフトウェアアプリケーションに配信することなく第１のソフトウェアアプリケーションに配信することと、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定することとを更に備える。方法は、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理することを更に備える。方法は、１つ以上のジェスチャレコグナイザの第１のセットのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識しないと判定することに従って、タッチ入力のシーケンスを第２のソフトウェアアプリケーションに配信することと、１つ以上のジェスチャレコグナイザの第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定することとを更に備える。方法は、１つ以上のジェスチャレコグナイザの第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する１つ以上のジェスチャレコグナイザの第２のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理することを更に備える。
【０００６】
いくつかの実施形態によると、方法は、ある内部状態の電子デバイスにおいて実行される。電子デバイスは、複数のビューを有するビュー階層を含むソフトウェアを実行するように構成される。方法は、ビュー階層の１つ以上のビューを表示することと、１つ以上のソフトウェア要素を実行することとを備える。各ソフトウェア要素は特定のビューと関連付けられ、特定のビューの各々は１つ以上の事象レコグナイザを含む。各事象レコグナイザは、１つ以上のサブ事象に基づく１つ以上の事象定義と、対象に対する動作を規定する事象ハンドラとを有し、１つ以上の事象定義の特定の事象定義に対応する事象を検出する事象レコグナイザに応答して動作を対象に送出するように構成される。方法は、１つ以上のサブ事象のシーケンスを検出することと、ビュー階層のビューのうちの１つをヒットビューとして識別することとを更に備える。ヒットビューは、ビュー階層のどのビューが能動的に関わるビューであるかを明らかにする。方法は、ビュー階層内の能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信することを更に備える。ビュー階層における能動的に関わるビューに対する少なくとも１つのジェスチャレコグナイザは複数の事象定義を有し、そのうちの１つが電子デバイスの内部状態に従って選択される。少なくとも１つの事象レコグナイザは、選択された事象定義に従ってサブ事象のシーケンスにおける次のサブ事象を処理する前に各サブ事象を処理する。
【０００７】
いくつかの実施形態によると、コンピュータ可読記憶媒体は、電子デバイスのより多くのプロセッサのうちの１つが実行するための１つ以上のプログラムを格納する。１つ以上のプログラムは、電子デバイスにより実行された時に上述の方法のうちのいずれかをデバイスにより実行する１つ以上の命令を含む。
【０００８】
いくつかの実施形態によると、タッチセンシティブディスプレイを備えた電子デバイスは、１つ以上のプロセッサと、１つ以上のプロセッサが実行するための１つ以上のプログラムを格納するメモリとを備える。１つ以上のプログラムは、上述の方法のうちのいずれかを実現する命令を含む。
【０００９】
いくつかの実施形態によると、タッチセンシティブディスプレイを備えた電子デバイスは、上述の方法のうちのいずれかを実現する手段を備える。
【００１０】
いくつかの実施形態によると、タッチセンシティブディスプレイを備えた多機能デバイスの情報処理装置は、上述の方法のうちのいずれかを実現する手段を備える。
【００１１】
いくつかの実施形態によると、電子デバイスは、タッチ入力を受信するように構成されたタッチセンシティブディスプレイユニットと、タッチセンシティブディスプレイユニットに結合された処理ユニットとを備える。処理ユニットは、少なくとも第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションを実行するように構成される。第１のソフトウェアアプリケーションは１つ以上のジェスチャレコグナイザの第１のセットを含み、第２のソフトウェアアプリケーションは、１つ以上のビュー及び１つ以上のジェスチャレコグナイザの第２のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。処理ユニットは、第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットの表示を有効にし、且つ第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットの表示している間にタッチセンシティブディスプレイユニットに対するタッチ入力のシーケンスを検出するように構成される。タッチ入力のシーケンスは、１つ以上のタッチ入力の第１の部分及び第１の部分に後続する１つ以上のタッチ入力の第２の部分を含む。処理ユニットは、タッチ入力のシーケンスを検出する第１の段階の間、１つ以上のタッチ入力の第１の部分を第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションに配信し、１つ以上のタッチ入力の第１の部分を認識する１つ以上のマッチングジェスチャレコグナイザを第１のセットのジェスチャレコグナイザから識別し、且つ１つ以上のマッチングジェスチャレコグナイザに対応する１つ以上のジェスチャハンドラにより１つ以上のタッチ入力の第１の部分を処理するように構成される。
【００１２】
いくつかの実施形態によると、電子デバイスは、タッチ入力を受信するように構成されたタッチセンシティブディスプレイユニットと、タッチセンシティブディスプレイユニットに結合された処理ユニットとを備える。処理ユニットは、少なくとも第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションを実行するように構成される。第１のソフトウェアアプリケーションは１つ以上のジェスチャレコグナイザの第１のセットを含み、第２のソフトウェアアプリケーションは、１つ以上のビュー及び１つ以上のジェスチャレコグナイザの第２のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。処理ユニットは、１つ以上のビューの第１のセットの表示を有効にするように構成される。１つ以上のビューの第１のセットは、第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットを含む。処理ユニットは、１つ以上のビューの第１のセットを表示している間、タッチセンシティブディスプレイユニットに対するタッチ入力のシーケンスを検出し（タッチ入力のシーケンスは、１つ以上のタッチ入力の第１の部分及び第１の部分に後続する１つ以上のタッチ入力の第２の部分を含む）、且つ１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識するかを判定するように構成される。処理ユニットは、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識すると判定することに従って、タッチ入力のシーケンスを第２のソフトウェアアプリケーションに配信することなく第１のソフトウェアアプリケーションに配信し、且つ１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定するように構成される。処理ユニットは、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理するように構成される。処理ユニットは、１つ以上のジェスチャレコグナイザの第１のセットのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識しないと判定することに従ってタッチ入力のシーケンスを第２のソフトウェアアプリケーションに配信し、１つ以上のジェスチャレコグナイザの第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定し、且つ１つ以上のジェスチャレコグナイザの第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従ってタッチ入力のシーケンスを認識する１つ以上のジェスチャレコグナイザの第２のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理するように構成される。
【００１３】
いくつかの実施形態によると、電子デバイスは、１つ以上のビューを表示するように構成された表示ユニットと、内部状態を格納するように構成されたメモリユニットと、表示ユニット及びメモリユニットに結合された処理ユニットとを備える。処理ユニットは、複数のビューを有するビュー階層を含むソフトウェアを実行し、ビュー階層の１つ以上のビューの表示を有効にし、且つ１つ以上のソフトウェア要素を実行するように構成される。各ソフトウェア要素は特定のビューと関連付けられ、特定のビューの各々は１つ以上の事象レコグナイザを含む。各事象レコグナイザは、１つ以上のサブ事象に基づく１つ以上の事象定義と、事象ハンドラとを有する。事象ハンドラは、対象に対する動作を規定し、１つ以上の事象定義のうちの特定の事象定義に対応する事象を検出する事象レコグナイザに応答して動作を対象に送出するように構成される。処理ユニットは、１つ以上のサブ事象のシーケンスを検出し、且つビュー階層のビューのうちの１つをヒットビューとして識別するように構成される。ヒットビューは、ビュー階層のどのビューが能動的に関わるビューであるかを明らかにする。処理ユニットは、ビュー階層内の能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信するように構成される。ビュー階層における能動的に関わるビューに対する少なくとも１つのジェスチャレコグナイザは複数の事象定義を有し、そのうちの１つが電子デバイスの内部状態に従って選択され、少なくとも１つのジェスチャレコグナイザは、選択された事象定義に従ってサブ事象のシーケンスにおける次のサブ事象を処理する前に各サブ事象を処理する。
【図面の簡単な説明】
【００１４】
【図１Ａ】いくつかの実施形態に係る電子デバイスを示すブロック図。
【図１Ｂ】いくつかの実施形態に係る電子デバイスを示すブロック図。
【図１Ｃ】いくつかの実施形態に係る電子デバイスを示すブロック図。
【図２】いくつかの実施形態に係る例示的な電子デバイスの入出力処理スタックを示す図。
【図３Ａ】いくつかの実施形態に係る例示的なビュー階層を示す図。
【図３Ｂ】いくつかの実施形態に係る例示的な事象レコグナイザの方法及びデータ構造を示すブロック図。
【図３Ｃ】いくつかの実施形態に係る例示的な事象レコグナイザの方法及びデータ構造を示すブロック図。
【図３Ｄ】いくつかの実施形態に係る事象処理のための例示的な構成要素を示すブロック図。
【図３Ｅ】いくつかの実施形態に係るジェスチャレコグナイザの例示的なクラス及びインスタンスを示すブロック図。
【図３Ｆ】いくつかの実施形態に係る事象情報の流れを示すブロック図。
【図４Ａ】いくつかの実施形態に係る例示的な状態遷移マシンを示すフローチャート。
【図４Ｂ】いくつかの実施形態に係る例示的な状態遷移マシンを示すフローチャート。
【図４Ｃ】いくつかの実施形態に係る例示的なサブ事象のセットに対する図４Ａ及び図４Ｂの例示的な状態遷移マシンを示す図。
【図５Ａ】いくつかの実施形態に係る例示的な事象レコグナイザ状態遷移マシンを含む例示的なサブ事象シーケンスを示す図。
【図５Ｂ】いくつかの実施形態に係る例示的な事象レコグナイザ状態遷移マシンを含む例示的なサブ事象シーケンスを示す図。
【図５Ｃ】いくつかの実施形態に係る例示的な事象レコグナイザ状態遷移マシンを含む例示的なサブ事象シーケンスを示す図。
【図６Ａ】いくつかの実施形態に係る事象認識方法を示すフローチャート。
【図６Ｂ】いくつかの実施形態に係る事象認識方法を示すフローチャート。
【図７Ａ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｂ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｃ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｄ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｅ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｆ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｇ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｈ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｉ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｊ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｋ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｌ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｍ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｎ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｏ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｐ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｑ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｒ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図７Ｓ】いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す図。
【図８Ａ】いくつかの実施形態に係る事象認識方法を示すフローチャート。
【図８Ｂ】いくつかの実施形態に係る事象認識方法を示すフローチャート。
【図９Ａ】いくつかの実施形態に係る事象認識方法を示すフローチャート。
【図９Ｂ】いくつかの実施形態に係る事象認識方法を示すフローチャート。
【図９Ｃ】いくつかの実施形態に係る事象認識方法を示すフローチャート。
【図１０Ａ】いくつかの実施形態に係る事象認識方法を示すフローチャート。
【図１０Ｂ】いくつかの実施形態に係る事象認識方法を示すフローチャート。
【図１１】いくつかの実施形態に係る電子デバイスを示す機能ブロック図。
【図１２】いくつかの実施形態に係る電子デバイスを示す機能ブロック図。
【図１３】いくつかの実施形態に係る電子デバイスを示す機能ブロック図。
【発明を実施するための形態】
【００１５】
図中、同一の図中符号は対応する部分を示す。
【００１６】
小型画面を備えた電子デバイス（例えば、スマートフォン及びタブレット）は、一般に、多数のアプリケーションがデバイス上で実行している可能性のある場合でも一度に単一のアプリケーションを表示する。これらのデバイスの多くは、タッチ入力としてジェスチャを受信するように構成されたタッチセンシティブディスプレイを有する。そのようなデバイスを使用する場合、ユーザは、非表示アプリケーション（例えば、バックグラウンドで実行するアプリケーションランチャソフトウェアアプリケーション等のバックグラウンドで実行しており且つ電子デバイスのディスプレイに現在表示されていないアプリケーション）により提供される動作を実行したいと思うだろう。非表示アプリケーションにより提供された動作を実行する既存の方法は、一般に、最初に非表示アプリケーションを表示し、次に現在表示されているアプリケーションにタッチ入力を提供することを必要とする。従って、既存の方法は更なるステップを必要とする。更にユーザは、非表示アプリケーションを見たくないかもしれないが、依然として非表示アプリケーションにより提供された動作を実行したいと思うだろう。以下に説明する実施形態において、非表示アプリケーションと対話する改善された方法は、タッチ入力を非表示アプリケーションに配信し、且つ非表示アプリケーションを表示することなく非表示アプリケーションによりタッチ入力を処理することにより実現される。従って、これらの方法は、ジェスチャ入力に基づいて非表示アプリケーションを制御し且つそれと対話する機能を提供する一方で、非表示アプリケーションとの対話を合理化することにより、非表示アプリケーションを表示するために余分な別個のステップは必要なくなる。
【００１７】
更にいくつかの実施形態において、そのような電子デバイスは、複数のジェスチャ定義を含む少なくとも１つのジェスチャレコグナイザを有する。これにより、ジェスチャレコグナイザが種々の別個の動作モードで動作しやすくする。例えばデバイスは、通常の動作モード及びアクセシビリティ動作モード（例えば、視覚障碍者のための）を有してもよい。通常の動作モードにおいて、次のアプリケーションジェスチャは、アプリケーション間を移動するために使用され、３本の指の左スワイプジェスチャとして定義される。アクセシビリティ動作モードにおいて、３本の指の左スワイプジェスチャは、異なる機能を実行するために使用される。従って、３本の指の左スワイプとは異なるジェスチャは、次のアプリケーションジェスチャ（例えば、アクセシビリティ動作モードでの４本の指の左スワイプジェスチャ）に対応するためにアクセシビリティ動作モードで必要とされる。次のアプリケーションジェスチャと関連付けられた多数のジェスチャ定義を有することにより、デバイスは、現在の動作モードに依存して次のアプリケーションジェスチャのジェスチャ定義のうちの１つを選択できる。これにより、種々の動作モードでジェスチャレコグナイザを使用する際に柔軟性を提供する。いくつかの実施形態において、多数のジェスチャ定義を含む複数のジェスチャレコグナイザは、動作モードに依存して調整される（例えば、通常の動作モードで３本の指により実行されたジェスチャは、アクセシビリティ動作モードで４本の指により実行される）。
【００１８】
以下において、図１Ａ〜図１Ｃ及び図２は、例示的なデバイスを説明する。図３Ａ〜図３Ｆは、事象処理のための構成要素及びそのような構成要素の動作（例えば、事象情報の流れ）を説明する。図４Ａ〜図４Ｃ及び図５Ａ〜図５Ｃは、事象レコグナイザの動作を更に詳細に説明する。図６Ａ及び図６Ｂは、事象認識方法を示すフローチャートである。図７Ａ〜図７Ｓは、図８Ａ及び図８Ｂ、図９Ａ〜図９Ｃ、並びに図１０の事象認識方法を使用する動作を示す例示的なユーザインタフェースである。図８Ａ及び図８Ｂは、開いている非表示アプリケーションのジェスチャハンドラにより事象情報を処理する事象認識方法を示すフローチャートである。図９Ａ〜図９Ｃは、開いている非表示アプリケーション又は表示されたアプリケーションのジェスチャレコグナイザにより事象情報を条件付きで処理する事象認識方法を示すフローチャートである。図１０は、単一の事象レコグナイザの複数の事象定義のうちの１つを選択する事象認識方法を示すフローチャートである。
【００１９】
実施形態を詳細に参照する。実施形態の例を添付の図面に示す。以下の詳細な説明において、本発明を完全に理解するために多くの特定の詳細を示す。しかし、本発明は、それら特定の詳細を含まずに実施されてもよいことが当業者には明らかとなるだろう。他の例において、実施形態の態様を不必要に曖昧にしないために、周知の方法、手順、構成要素、回路及びネットワークについては詳細に説明していない。
【００２０】
本明細書において第１、第２等の用語が種々の要素を説明するために使用されてもよいが、それらの要素はこれらの用語により限定されるべきではないことが理解されるだろう。これらの用語は、１つの要素を別の要素と区別するためだけに使用される。例えば本発明の範囲から逸脱せずに、第１のコンタクトが第２のコンタクトと呼ばれてよく、同様に第２のコンタクトが第１のコンタクトと呼ばれてよい。第１のコンタクト及び第２のコンタクトは、双方ともコンタクトであるが同一のコンタクトではない。
【００２１】
本明細書の本発明の説明において使用される専門用語は、特定の実施形態を説明するためだけのものであり、本発明を限定することを意図しない。本発明の説明及び添付の特許請求の範囲において使用されるように、特に指定のない限り、単数形は複数形も含むことを意図する。本明細書で使用されるような「及び／又は」という用語は、一覧表示された関連する項目の１つ以上のあらゆる全ての可能な組合せを参照し且つ含むことが理解されるだろう。「含む」及び／又は「備える」という用語は、本明細書で使用される場合、記載される特徴、数字、ステップ、動作、要素及び／又は構成要素の存在を特定するが、１つ以上の他の特徴、数字、ステップ、動作、要素、構成要素及び／又はそれらのセットの存在又は追加を除外しないことが更に理解されるだろう。
【００２２】
本明細書で使用されるように、「場合」という用語は、状況に応じて「時」、あるいは「判定することに応答して」又は「検出することに応答して」を意味すると解釈されてもよい。同様に、「判定された場合」又は「［明示された状態又は事象］が検出された場合」という句は、状況に応じて「判定した時」又は「判定することに応答して」、あるいは「［明示された状態又は事象］を検出した時」又は「［明示された状態又は事象］を検出することに応答して」を意味すると解釈されてもよい。
【００２３】
本明細書で使用されるように、「事象」（イベント）という用語は、デバイスの１つ以上のセンサにより検出された入力を示す。特に、「事象」という用語は、タッチセンシティブ面に対するタッチを含む。事象は１つ以上のサブ事象を含む。一般にサブ事象は、事象（例えば、タッチダウン、タッチの移動及びタッチのリフトオフはサブ事象でありうる）への変化を示す。１つ以上のサブ事象のシーケンスのサブ事象は、特に、キー押下、キー押下保持、キー押下解放、ボタン押下、ボタン押下保持、ボタン押下解放、ジョイスティック移動、マウスの移動、マウスボタンの押下、マウスボタンの解放、ペンスタイラスのタッチ、ペンスタイラスの移動、ペンスタイラスの解放、音声命令、検出された眼球運動、生体情報認識入力及び検出されたユーザの生理学的変化を含むがそれらに限定されない多くの形態を含んでもよい。事象が単一のサブ事象（例えば、デバイスの短い水平の動き）を含んでもよいため、本明細書で使用されるような「サブ事象」という用語は事象も示す。
【００２４】
本明細書で使用されるように、「事象レコグナイザ」及び「ジェスチャレコグナイザ」という用語は、ジェスチャ又は他の事象（例えば、デバイスの動き）を認識できるレコグナイザを示すために同義で使用される。本明細書で使用されるように、「事象ハンドラ」及び「ジェスチャハンドラ」は、事象／サブ事象又はジェスチャの認識に応答して事前定義済みの動作のセット（例えば、データの更新、オブジェクトの更新及び／又はディスプレイの更新）を実行するハンドラを示すために同義で使用される。
【００２５】
上述したように、入力装置としてタッチセンシティブ面を備えるいくつかのデバイスにおいて、タッチジェスチャの第１のセット（例えば、タップ、ダブルタップ、横スワイプ、縦スワイプのうちの２つ以上）は、特定の状況（例えば、第１のアプリケーションの特定のモード）で適切な入力として認識され、タッチジェスチャの他の異なるセットは、他の状況（例えば、第１のアプリケーション内の異なるアプリケーション及び／あるいは異なるモード又は状況）で適切な入力として認識される。その結果、タッチジェスチャを認識し且つそれに応答するのに必要なソフトウェア及び論理は、複雑になり、アプリケーションが更新される度に又は新しいアプリケーションがコンピューティングデバイスに追加される度に改訂が必要となるだろう。本明細書で説明する実施形態は、事象及び／又はジェスチャ入力を処理する総合的なフレームワークを提供することでこれらの問題に対処する。
【００２６】
以下に説明する実施形態において、タッチジェスチャは事象である。事前定義済みの事象、例えばアプリケーションの現在の状況での適切な入力に対応する事象を認識すると、事象に関する情報はアプリケーションに配信される。また、各事象はサブ事象のシーケンスとして定義される。マルチタッチ表示装置（本明細書では「画面」と呼ばれることが多い）又は他のマルチタッチセンシティブ面を有し、且つマルチタッチジェスチャを受け入れるデバイスにおいて、マルチタッチ事象を定義するサブ事象は、マルチタッチサブ事象（２本以上の指がデバイスのタッチセンシティブ面に同時に接触することを必要とする）を含んでもよい。例えば、マルチタッチセンシティブディスプレイを有するデバイスにおいて、サブ事象のそれぞれのマルチタッチシーケンスは、ユーザの指が最初に画面に触れる際に開始してもよい。１本以上の更なる指が後続して又は同時に画面に触れる際に更なるサブ事象が発生してもよく、画面に触れている全ての指が画面にわたり移動する際に更に他のサブ事象が発生してもよい。ユーザの指が最後に画面から離れた時にシーケンスは終了する。
【００２７】
タッチセンシティブ面を有するデバイスにおいて実行するアプリケーションを制御するためにタッチジェスチャを使用する場合、タッチは時間的側面及び空間的側面の双方を有する。段階と呼ばれる時間的側面は、タッチがちょうど開始した時、タッチが移動しているかあるいは静止しているか及びタッチが終了する時、すなわち指が画面から離れる時を示す。タッチの空間的側面は、タッチが発生するビュー又はユーザインタフェースウィンドウのセットである。タッチが検出されるビュー又はウィンドウは、プログラム階層又はビュー階層内のプログラムレベルに対応してもよい。例えば、タッチが検出される最下位レベルのビューはヒットビューと呼ばれてもよく、適切な入力として認識される事象のセットは、タッチジェスチャを開始する初期タッチのヒットビューに少なくとも部分的に基づいて判定されてもよい。あるいは又は更に、事象は、プログラム階層における１つ以上のソフトウェアプログラム（すなわち、ソフトウェアアプリケーション）に少なくとも部分的に基づいて適切な入力として認識される。例えば、５本の指のピンチジェスチャは、５本の指のピンチジェスチャレコグナイザを有するアプリケーションランチャでは適切な入力として認識されるが、５本の指のピンチジェスチャレコグナイザを有さないウェブブラウザアプリケーションではそのように認識されない。
【００２８】
図１Ａ〜図１Ｃは、いくつかの実施形態に係る電子デバイス１０２の種々の実施形態を示すブロック図である。電子デバイス１０２は、デスクトップコンピュータシステム、ラップトップコンピュータシステム、移動電話、スマートフォン、パーソナルデジタルアシスタント又はナビゲーションシステムを含むがそれに限定されないあらゆる電子デバイスであってもよい。更に電子デバイス１０２は、ユーザインタフェースを示すように構成されたタッチスクリーンディスプレイ（例えば、図１Ｂのタッチセンシティブディスプレイ１５６）を備えたポータブル電子デバイス、ユーザインタフェースを示すように構成されたタッチスクリーンディスプレイを備えたコンピュータ、タッチセンシティブ面を備えたコンピュータ及びユーザインタフェースを示すように構成されたディスプレイ、あるいは消費者電子デバイス、移動電話、テレビゲームシステム、電子音楽プレーヤ、タブレットＰＣ、電子書籍読取りシステム、電子書籍、ＰＤＡ、電子手帳、電子メールデバイス、ラップトップ又は他のコンピュータ、キオスクコンピュータ、自動販売機、スマート家電等を含むがそれらに限定されない他のあらゆる形態のコンピューティングデバイスであってもよい。電子デバイス１０２はユーザインタフェース１１３を含む。
【００２９】
いくつかの実施形態において、電子デバイス１０２は、タッチセンシティブディスプレイ１５６（図１Ｂ）を含む。これらの実施形態において、ユーザインタフェース１１３は、電子デバイス１０２と対話するためにユーザにより使用されるオンスクリーンキーボード（不図示）を含んでもよい。いくつかの実施形態において、電子デバイス１０２は、１つ以上の入力装置１２８（例えば、キーボード、マウス、トラックボール、マイク、物理的なボタン、タッチパッド等）を更に備える。いくつかの実施形態において、タッチセンシティブディスプレイ１５６は、２つ以上の別個の同時の（又は部分的に同時の）タッチを検出する機能を有し、これらの実施形態において、ディスプレイ１５６は、本明細書でマルチタッチディスプレイ又はマルチタッチセンシティブディスプレイと呼ばれることもある。いくつかの実施形態において、１つ以上の入力装置１２８のキーボードは、電子デバイス１０２から独立し且つそれらとは別個であってもよい。例えばキーボードは、電子デバイス１０２に結合された有線又は無線のキーボードであってもよい。
【００３０】
いくつかの実施形態において、電子デバイス１０２は、電子デバイス１０２に結合されるディスプレイ１２６及び１つ以上の入力装置１２８（例えば、キーボード、マウス、トラックボール、マイク、物理ボタン、タッチパッド、トラックパッド等）を含む。これらの実施形態において、入力装置１２８のうちの１つ以上は、オプションとして電子デバイス１０２から独立し且つそれとは別個であってもよい。例えば１つ以上の入力装置は、キーボード、マウス、トラックパッド、トラックボール及び電子ペンのうちの１つ以上を含んでもよく、それらのうちのいずれかは、オプションとして電子デバイスから独立してもよい。オプションとして、デバイス１０２は、１つ以上のセンサ１１６、例えば１つ以上の加速度計、ジャイロスコープ、ＧＰＳシステム、スピーカ、赤外線（ＩＲ）センサ、生体情報認識センサ、カメラ等を含んでもよい。尚、入力装置１２８又はセンサ１１６等の種々の例示的なデバイスの上記の説明は、本明細書で説明する実施形態の動作に対して全く重要ではなく、入力装置として本明細書で説明されるあらゆる入力装置又はセンサデバイスは、センサとしても適切に説明されてもよく、逆も同様である。いくつかの実施形態において、１つ以上のセンサ１１６により生成された信号は、事象を検出するために入力ソースとして使用される。
【００３１】
いくつかの実施形態において、電子デバイス１０２は、電子デバイス１０２（図１Ｂ）に結合されるタッチセンシティブディスプレイ１５６（すなわち、タッチセンシティブ面を有するディスプレイ）及び１つ以上の入力装置１２８を含む。いくつかの実施形態において、タッチセンシティブディスプレイ１５６は、２つ以上の別個の同時の（又は部分的に同時の）タッチを検出する機能を有し、これらの実施形態において、ディスプレイ１５６は、本明細書でマルチタッチディスプレイ又はマルチタッチセンシティブディスプレイと呼ばれることもある。
【００３２】
本明細書で説明される電子デバイス１０２のいくつかの実施形態において、入力装置１２８は電子デバイス１０２に配設される。他の実施形態において、入力装置１２８のうちの１つ以上は、電子デバイス１０２から独立し且つそれとは別個である。例えば、入力装置１２８のうちの１つ以上は、ケーブル（例えば、ＵＳＢケーブル）、あるいは無線接続（例えば、Ｂｌｕｅｔｏｏｔｈ接続）により電子デバイス１０２に結合されてもよい。
【００３３】
入力装置１２８を使用する場合又は電子デバイス１０２のタッチセンシティブディスプレイ１５６上でタッチジェスチャを実行する場合、ユーザは、電子デバイス１０２の１つ以上のＣＰＵ１１０により処理されるサブ事象のシーケンスを生成する。いくつかの実施形態において、電子デバイス１０２の１つ以上のＣＰＵ１１０は、事象を認識するようにサブ事象のシーケンスを処理する。
【００３４】
一般に電子デバイス１０２は、１つ以上のシングルコア処理ユニット又はマルチコア処理ユニット（１つ又は複数の「ＣＰＵ」）１１０及び１つ以上のネットワーク、あるいは他の通信インタフェース１１２を含む。電子デバイス１０２は、メモリ１１１及びこれらの構成要素を相互接続する１つ以上の通信バス１１５を含む。通信バス１１５は、システム構成要素（本明細書では不図示）間の通信を相互接続し且つ制御する回路網（チップセットと呼ばれることもある）を含んでもよい。上述したように、電子デバイス１０２は、ディスプレイ（ディスプレイ１２６又はマルチタッチディスプレイ１５６）を含むユーザインタフェース１１３を含む。また、一般に電子デバイス１０２は、入力装置１２８（例えば、キーボード、マウス、タッチセンシティブ面、キーパッド等）を含む。いくつかの実施形態において、入力装置１２８は、オンスクリーン入力装置（例えば、表示装置のタッチセンシティブ面）を含む。メモリ１１１は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ又は他のランダムアクセス固体メモリ素子等の高速ランダムアクセスメモリを含んでもよく、１つ以上の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ素子又は他の不揮発性固体記憶装置等の不揮発性メモリを含んでもよい。メモリ１１１は、オプションとしてＣＰＵ１１０からリモートで配置された１つ以上の記憶装置を含んでもよい。メモリ１１１又はメモリ１１１内の不揮発性メモリ素子は、コンピュータ可読記憶媒体を含む。いくつかの実施形態において、メモリ１１１又はメモリ１１１内の不揮発性メモリ素子は、非一時的なコンピュータ可読記憶媒体を含む。いくつかの実施形態において、メモリ１１１（電子デバイス１０２の）又はメモリ１１１のコンピュータ可読記憶媒体は、以下のプログラム、モジュール及びデータ構造又はそれらのサブセットを格納する。
【００３５】
・種々の基本システムサービスを処理し且つハードウェア依存タスクを実行する手順を含むオペレーティングシステム１１８。
・アプリケーションソフトウェア１２４の１つ以上のソフトウェアアプリケーションの挙動、あるいはタッチセンシティブディスプレイ１５６又は入力装置１２８からのデータを変更してアプリケーションソフトウェア１２４の１つ以上のソフトウェアアプリケーションのアクセシビリティ又はそこに表示されたコンテンツ（例えば、ウェブページ）へのアクセシビリティを改善するために使用されるアクセシビリティモジュール１２７（図１Ｃ）（例えば、視覚障害者又は運動能力が限られた人のための）。
・電子デバイス１０２を１つ以上のそれぞれの通信インタフェース１１２（有線又は無線）、並びに１つ以上の通信ネットワーク、例えばインターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク及びメトロポリタンエリアネットワーク等を介して他のデバイスに接続するために使用される通信モジュール１２０。
・ディスプレイ１２６又はタッチセンシティブディスプレイ１５６にユーザインタフェースオブジェクトを含むユーザインタフェースを表示するために使用されるユーザインタフェースモジュール１２３（図１Ｃ）。
・処理（例えば、ヒットビュー判定、スレッド管理及び／又は事象監視等）を制御するために使用される制御アプリケーション１３２（図１Ｃ）。いくつかの実施形態において、制御アプリケーション１３２はランタイムアプリケーションを含み、他の実施形態において、ランタイムアプリケーションは制御アプリケーション１３２を含む。
・オペレーティングシステム１１８内の種々の別の実施形態において又はアプリケーションソフトウェア１２４で実現されてもよい事象配信システム１２２（電子デバイス１０２のそれぞれにおける）。しかし、いくつかの実施形態において、事象配信システム１２２のいくつかの態様がオペレーティングシステム１１８において実現されてもよいのに対し、他の態様はアプリケーションソフトウェア１２４で実現される。
・１つ以上のソフトウェアアプリケーション（例えば、各々が電子メールアプリケーション、ウェブブラウザアプリケーション、メモアプリケーション、テキストメッセージングアプリケーション等のうちの１つでありうる図１Ｃのアプリケーション１３３−１、１３３−２及び１３３−３）を含むアプリケーションソフトウェア１２４。それぞれのソフトウェアアプリケーションは、一般に、少なくとも実行中にそれぞれのソフトウェアアプリケーション及びその構成要素（例えば、ジェスチャレコグナイザ）の状態を示すアプリケーション状態を有する。以下に説明するアプリケーション内部状態３２１（図３Ｄ）を参照されたい。
・ソフトウェアアプリケーション及びそれらの構成要素（例えば、ジェスチャレコグナイザ及びデリゲート）の状態を示すアプリケーション状態と、タッチスクリーンディスプレイ１５６又はディスプレイ１２６の種々の領域を占有するアプリケーション、ビュー又は他の情報を示す表示状態と、デバイスの種々のセンサ１１６、入力装置１２８及び／又はタッチセンシティブディスプレイ１５６から取得された情報を含むセンサ状態と、デバイスの場所及び／又は姿勢に関する場所情報と、他の状態とのうちの１つ以上を含むデバイス／グローバル内部状態１３４（図１Ｃ）。
【００３６】
明細書及び特許請求の範囲において使用されるように、「開いているアプリケーション」という用語は、保存された状態の情報（例えば、デバイス／グローバル内部状態１３４及び／又はアプリケーション内部状態３２１（図３Ｄ）の一部として）を含むソフトウェアアプリケーションを示す。開いているアプリケーションは、以下の種類のアプリケーションのうちのいずれか１つである。
【００３７】
・ディスプレイ１２６又はタッチセンシティブディスプレイ１５６上に現在表示されているアクティブなアプリケーション（あるいは、対応するアプリケーションビューがディスプレイ上に現在表示されている）
・ディスプレイ１２６又はタッチセンシティブディスプレイ１５６上に現在表示されていないバックグラウンドアプリケーション（又はバックグラウンド処理）。しかし、対応するアプリケーションに対する１つ以上のアプリケーション処理（例えば、命令）は、１つ以上のプロセッサ１１０により処理されている（すなわち、実行している）
・現在実行していない中断されたアプリケーションであり、揮発性メモリ（例えば、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ又はメモリ１１１の他の揮発性ランダムアクセス固体メモリ素子）に格納される
・実行していない休止状態のアプリケーションであり、不揮発性メモリ（例えば、１つ以上の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ素子又はメモリ１１１の他の不揮発性ランダムアクセス固体メモリ素子）に格納される
【００３８】
本明細書で使用されるように、「閉じられたアプリケーション」という用語は、保存された状態の情報を含まないソフトウェアアプリケーションを示す（例えば、閉じられたアプリケーションに対する状態情報は、デバイスのメモリに格納されない）。従って、アプリケーションを閉じることは、アプリケーションに対するアプリケーション処理を停止及び／又は除去すること、並びにアプリケーションに対する状態情報をデバイスのメモリから除去することを含む。一般に、第１のアプリケーションにある間に第２のアプリケーションを開いても第１のアプリケーションは閉じない。第２のアプリケーションが表示され且つ第１のアプリケーションの表示を中止する場合、表示された時にアクティブなアプリケーションであった第１のアプリケーションは、バックグラウンドアプリケーション、中断されたアプリケーション又は休止状態のアプリケーションになってもよいが、その状態情報がデバイスにより保存される間は開いているアプリケーションのままである。
【００３９】
先に識別された要素の各々は、上述のメモリ素子のうちの１つ以上に格納されてもよく、本明細書で説明する機能を実行する命令のセットに対応する。命令のセットは、１つ以上のプロセッサ（例えば、１つ以上のＣＰＵ１１０）により実行される。先に識別されたモジュール又はプログラム（すなわち、命令のセット）が別個のソフトウェアプログラム、手順又はモジュールとして実現される必要はないため、これらのモジュールの種々のサブセットは、種々の実施形態において組み合わされてもよくあるいは再配置されてもよい。いくつかの実施形態において、メモリ１１１は、先に識別されたモジュール及びデータ構造のサブセットを格納してもよい。更にメモリ１１１は、上述されていない更なるモジュール及びデータ構造を格納してもよい。
【００４０】
図２は、本発明のいくつかの実施形態に係る例示的な電子デバイス又は電子装置（例えば、デバイス１０２）の入出力処理スタック２００を示す図である。デバイスのハードウェア（例えば、電子回路網）２１２は、入出力処理スタック２００のベースレベルにある。ハードウェア２１２は、図１Ａ及び／又は図１Ｂに示された構成要素等の種々のハードウェアインタフェース構成要素を含むことができる。ハードウェア２１２は、上述のセンサ１１６のうちの１つ以上を更に含むことができる。入出力処理スタック２００の他の要素（２０２〜２１０）のうちの少なくともいくつかは、ハードウェア２１２から受信した入力を処理し且つハードウェアユーザインタフェース（例えば、ディスプレイ、スピーカ、デバイス振動アクチュエータ等のうちの１つ以上）を介して示される種々の出力を生成するソフトウェア手順又はソフトウェア手順の一部である。
【００４１】
ドライバ又はドライバ２１０のセットはハードウェア２１２と通信する。ドライバ２１０は、ハードウェア２１２から入力データを受信し、且つ受信した入力データを処理できる。コアオペレーティングシステム（「ＯＳ」）２０８はドライバ２１０と通信できる。コアＯＳ２０８は、ドライバ２１０から受信した生の入力データを処理できる。いくつかの実施形態において、ドライバ２１０はコアＯＳ２０８の一部であると考えることができる。
【００４２】
ＯＳアプリケーションプログラミングインタフェース（「ＯＳ  ＡＰＩ）」２０６のセットは、コアＯＳ２０８と通信するソフトウェア手順である。いくつかの実施形態において、ＡＰＩ２０６は、デバイスのオペレーティングシステムに含まれるが、コアＯＳ２０８の上のレベルにある。ＡＰＩ２０６は、本明細書で説明する電子デバイス又は電子装置上で実行するアプリケーションにより使用されるように設計される。ユーザインタフェース（ＵＩ）ＡＰＩ２０４はＯＳ  ＡＰＩ２０６を利用できる。デバイス上で実行するアプリケーションソフトウェア（「アプリケーション」）２０２は、ユーザと通信するためにＵＩ  ＡＰＩ２０４を利用できる。その結果、ＵＩ  ＡＰＩ２０４は、より低いレベルの要素と通信でき、最終的にはマルチタッチディスプレイ１５６等の種々のユーザインタフェースハードウェアと通信する。いくつかの実施形態において、アプリケーションソフトウェア２０２は、アプリケーションソフトウェア１２４（図１Ａ）のアプリケーションを含む。
【００４３】
入出力処理スタック２００の各層は、必ずしも必要とされない入出力処理スタック２００より下の層を利用できる。例えば、いくつかの実施形態において、アプリケーション２０２はＯＳ  ＡＰＩ２０６と直接通信してもよい。一般にＯＳ  ＡＰＩ層２０６以上の層は、専用であると考えられるため、コアＯＳ２０８、ドライバ２１０又はハードウェア２１２に直接アクセスしなくてもよい。アプリケーション２０２及びＵＩ  ＡＰＩ２０４の層は、通常、ＯＳ  ＡＰＩ２０６に対して直接呼び出すことにより、コアＯＳ２０８、ドライバ２１０及びハードウェア２１２の層にアクセスする。
【００４４】
換言すると、電子デバイス１０２の１つ以上のハードウェア要素２１２及びデバイス上で実行するソフトウェアは、入力装置１２８のうちの１つ以上及び／又はタッチセンシティブディスプレイ１５６で入力事象（ジェスチャのサブ事象に対応してもよい）を検出し、入力事象がアプリケーション１２４に配信される事象に対応するか及びいつ対応するかを判定するために現在アクティブな事象レコグナイザのセットにより使用された種々のデータ構造（デバイス１０２のメモリに格納された）を生成又は更新する。事象認識の技法、装置及びコンピュータプログラムの実施形態を以下に更に詳細に説明する。
【００４５】
図３Ａは、本例では最も外側のビュー３０２に表示された検索プログラムである例示的なビュー階層３００を示す。最も外側のビュー３０２は、一般に、ユーザが直接対話してもよいユーザインタフェース全体を含み、例えば以下のような従属ビューを含む。
【００４６】
・検索結果をグループ化し且つ縦方向にスクロール可能な検索結果パネル３０４
・文字入力を受け入れる検索フィールド３０６
・迅速にアクセスするためにアプリケーションをグループ化するホームキー列３１０
【００４７】
本例において、各従属ビューは下位レベルの従属ビューを含む。他の例において、階層３００におけるビューレベルの数は、階層の種々の分岐で異なってもよく、１つ以上の従属ビューは下位レベルの従属ビューを有し、１つ以上の他の従属ビューはそのような下位レベルの従属ビューを全く有さない。引き続き図３Ａに示された例を参照すると、検索結果パネル３０４は、検索結果毎に別個の従属ビュー３０５（パネル３０４に従属する）を含む。本明細書において、この例は、マップビュー３０５と呼ばれた従属ビューにおいて１つの検索結果を示す。検索フィールド３０６は、本明細書でクリアコンテンツアイコンビュー３０７と呼ばれる従属ビューを含む。クリアコンテンツアイコンビュー３０７は、ユーザがビューのクリアコンテンツアイコン３０７上で特定の動作（例えば、シングルタッチジェスチャ又はシングルタップジェスチャ）を実行する場合に検索フィールドのコンテンツをクリアする。ホームキー列３１０は、それぞれ、連絡先アプリケーション、電子メールアプリケーション、ウェブブラウザ及びｉＰｏｄミュージックインタフェースに対応する従属ビュー３１０−１、３１０−２、３１０−３及び３１０−４を含む。
【００４８】
タッチサブ事象３０１−１は最も外側のビュー３０２示される。検索結果パネル３０４及びマップビュー３０５の双方の上にタッチサブ事象３０１−１の場所が与えられたとすると、タッチサブ事象は、それぞれ、３０１−２及び３０１−３としてこれらのビュー上に更に示される。タッチサブ事象の能動的に関わるビューは、ビュー検索結果パネル３０４、マップビュー３０５及び最も外側のビュー３０２を含む。図３Ｂ及び図３Ｃを参照して、サブ事象配信及び能動的に関わるビューに関する更なる情報を以下に提供する。
【００４９】
ビュー（及び対応するプログラムレベル）はネストされる。換言すると、ビューは他のビューを含むことができる。その結果、第１のビューと関連付けられたソフトウェア要素（例えば、事象レコグナイザ）は、第１のビュー内のビューと関連付けられた１つ以上のソフトウェア要素を含むことができるか、あるいはそれにリンクされる。アプリケーションと関連付けられるビューもあれば、高レベルのＯＳ要素、例えばグラフィカルユーザインタフェース、ウィンドウマネージャ等と関連付けられるビューもある。
後続の説明を簡略化するために、一般にビュー及びビュー階層のみを参照するが、いくつかの実施形態において、方法は、複数のプログラム層を有するプログラム階層及び／又はビュー階層で動作してもよいことが理解されるべきである。いくつかの実施形態において、いくつかのビューは他のＯＳ要素と関連付けられる。いくつかの実施形態において、ビュー階層は、複数のソフトウェアアプリケーションからのビューを含む。例えばビュー階層は、アプリケーションランチャからのビュー（例えば、ホーム画面）及びウェブブラウザアプリケーションからのビュー（例えば、ウェブページのコンテンツを含むビュー）を含んでもよい。
【００５０】
プログラム階層は、階層における１つ以上のソフトウェア要素又はソフトウェアアプリケーションを含む。後続の説明を簡略化するために、一般にビュー及びビュー階層のみを参照するが、いくつかの実施形態において、方法は、複数のプログラム層を有するプログラム階層及び／又はビュー階層で動作してもよいことが理解されるべきである。
【００５１】
図３Ｂ及び図３Ｃは、事象レコグナイザに関連した例示的な方法及び構造を示す。図３Ｂは、事象ハンドラがビューの階層内の特定のビューと関連付けられる場合の事象処理の方法及びデータ構造を示す。図３Ｃは、事象ハンドラがプログラムレベルの階層内の特定のレベルと関連付けられる場合の事象処理の方法及びデータ構造を示す。事象レコグナイザグローバルメソッド３１２及び３５０は、それぞれ、ヒットビュー判定モジュール３１４及びヒットレベル判定モジュール３５２と、アクティブ事象レコグナイザ判定モジュール３１６及び３５４と、サブ事象配信モジュール３１８及び３５６とを含む。
【００５２】
いくつかの実施形態において、電子デバイス１０２は、事象レコグナイザグローバルメソッド３１２及び３５０のうちの１つ以上を含む。いくつかの実施形態において、電子デバイス１０２は、ヒットビュー判定モジュール３１４及びヒットレベル判定モジュール３５２のうちの１つ以上を含む。いくつかの実施形態において、電子デバイス１０２は、アクティブ事象レコグナイザ判定モジュール３１６及び３５４のうちの１つ以上を含む。いくつかの実施形態において、電子デバイス１０２は、サブ事象配信モジュール３１８及び３５６のうちの１つ以上を含む。いくつかの実施形態において、これらの方法及びモジュールのうちの１つ以上は、より少ない方法及びモジュール又はより多い方法及びモジュールに含まれる。例えば、いくつかの実施形態において、電子デバイス１０２は、ヒットビュー判定モジュール３１４及びヒットレベル判定モジュール３５２の機能性を含むヒットビュー／レベル判定モジュールを含む。いくつかの実施形態において、電子デバイス１０２は、アクティブ事象レコグナイザ判定モジュール３１６及び３５４の機能性を含むアクティブ事象レコグナイザ判定モジュールを含む。
【００５３】
ヒットビュー判定モジュール３１４及びヒットレベル判定モジュール３５２は、それぞれ、１つ以上のビュー（例えば３つの主な分岐を有する図３Ａに示された例示的なビュー階層３００）及び／又はサブ事象に対応するプログラム階層における１つ以上のソフトウェア要素（例えば、図１Ｃのアプリケーション１３３のうちの１つ以上）内でサブ事象が発生した場所を判定するソフトウェア手順を提供する。
【００５４】
図３Ｂのヒットビュー判定モジュール３１４は、最も外側のビュー３０２、検索結果（マップビュー３０５）及び検索結果パネルビュー３０４上に３０１−１として示されたユーザタッチ等のサブ事象に関連した情報を受信する。ヒットビュー判定モジュール３１４は、サブ事象を処理すべき階層における最下位レベルのビューとしてヒットビューを識別する。殆どの状況において、ヒットビューは、初期サブ事象（すなわち、事象又は潜在的な事象を形成するサブ事象のシーケンスの第１のサブ事象）が発生する最下位レベルのビューである。いくつかの実施形態において、ヒットビューは、識別されると、ヒットビューが識別された同一のタッチ又は入力ソースに関連した全てのサブ事象を受信する。いくつかの実施形態において、１つ以上の他のビュー（例えば、デフォルト又は事前定義済みのビュー）は、ヒットビューが受信するサブ事象のうちの少なくともいくつかを受信する。
【００５５】
いくつかの実施形態において、図３Ｃのヒットレベル判定モジュール３５２は、類似の処理を利用してもよい。例えば、いくつかの実施形態において、ヒットレベル判定モジュール３５２は、サブ事象を処理すべきプログラム階層における最下位レベルであるヒットレベル（又はプログラム階層における最下位プログラムレベルのソフトウェアアプリケーション）を識別する。いくつかの実施形態において、ヒットレベルが識別されると、ヒットレベル又はヒットレベルのソフトウェアアプリケーションは、ヒットレベルが識別された同一のタッチ又は入力ソースに関連した全てのサブ事象を受信する。いくつかの実施形態において、１つ以上の他のレベル又はソフトウェアアプリケーション（例えば、デフォルト又は事前定義済みのソフトウェアアプリケーション）は、ヒットビューが受信するサブ事象のうちの少なくともいくつかを受信する。
【００５６】
事象レコグナイザグローバルメソッド３１２及び３５０のアクティブ事象レコグナイザ判定モジュール３１６及び３５４は、それぞれ、ビュー階層及び／又はプログラム階層内の１つ又は複数のビューがサブ事象の特定のシーケンスを受信すべきかを判定する。図３Ａは、サブ事象３０１を受信する例示的なアクティブなビュー３０２、３０４及び３０５のセットを示す。図３Ａの例において、アクティブ事象レコグナイザ判定モジュール３１６は、最も外側のビュー３０２、検索結果パネル３０４及びマップビュー３０５がサブ事象３０１により示されたタッチの物理的位置を含むため、これらのビューが能動的に関わるビューであると判定するだろう。尚、タッチサブ事象３０１がマップビュー３０５と関連付けられた領域に全体的に限定されたとしても、検索結果パネル３０４及び最も外側のビュー３０２は、マップビュー３０５の祖先であるため、能動的に関わるビューに依然として存在するだろう。
【００５７】
いくつかの実施形態において、アクティブ事象レコグナイザ判定モジュール３１６及び３５４は類似の処理を利用してもよい。図３Ａの例において、マップアプリケーションのビューが表示され且つ／あるいはサブ事象３０１により示されたタッチの物理的な場所を含むため、アクティブ事象レコグナイザ判定モジュール３５０は、マップアプリケーションが能動的に関わると判定する。尚、タッチサブ事象３０１がマップアプリケーションと関連付けられた領域に全体的に制限される場合でも、プログラム階層における他のアプリケーションは、能動的に関わるアプリケーション（又は能動的に関わるプログラムレベルのアプリケーション）のままであってもよい。
【００５８】
サブ事象配信モジュール３１８は、能動的に関わるビューに対する事象レコグナイザにサブ事象を配信する。図３Ａの例を使用して、タッチマーク３０１−１、３０１−２及び３０１−３によりユーザのタッチを階層の種々のビューに示す。いくつかの実施形態において、このユーザのタッチを示すサブ事象データは、能動的に関わるビュー、すなわち最上位レベルのビュー３０２、検索結果パネル３０４及びマップビュー３０５において、サブ事象配信モジュール３１８により事象レコグナイザに配信される。また、ビューの事象レコグナイザは、ビュー内で開始する事象の後続のサブ事象を受信できる（例えば、初期サブ事象がビュー内で発生する場合）。換言すると、ビューは、ビューの外側に継続する場合でも、ビューで開始するユーザ対話と関連付けられたサブ事象を受信できる。
【００５９】
いくつかの実施形態において、サブ事象配信モジュール３５６は、サブ事象配信モジュール３１８により使用された処理に類似する処理において、能動的に関わるプログラムレベルに対する事象レコグナイザにサブ事象を配信する。例えばサブ事象配信モジュール３５６は、能動的に関わるアプリケーションに対する事象レコグナイザにサブ事象を配信する。図３Ａの例を使用して、ユーザのタッチ３０１は、能動的に関わるビュー（例えば、プログラム階層におけるマップアプリケーション及び他のあらゆる能動的に関わるアプリケーション）において、サブ事象配信モジュール３５６により事象レコグナイザに配信される。いくつかの実施形態において、デフォルト又は事前定義済みのソフトウェアアプリケーションは、デフォルトによりプログラム階層に含まれる。
【００６０】
いくつかの実施形態において、別個の事象レコグナイザ構造３２０又は３６０は、能動的に関わる事象レコグナイザ毎に生成され且つデバイスのメモリに格納される。一般に事象レコグナイザ構造３２０及び３６０は、それぞれ、事象レコグナイザ状態３３４、３７４（図４Ａ及び図４Ｂを参照する際に以下に更に詳細に説明する）、それぞれが状態遷移マシン３４０、３８０を有する事象レコグナイザ専用コード３３８、３７８を含む。事象レコグナイザ構造３２０はビュー階層基準３３６を更に含み、事象レコグナイザ構造３６０はプログラム階層基準３７６を含む。特定の事象レコグナイザの各例は、厳密に１つのビュー又はプログラムレベルを参照する。ビュー階層基準３３６又はプログラム階層基準３７６（特定の事象レコグナイザに対する）は、各事象レコグナイザに論理的に結合されるビュー又はプログラムレベルを明らかにするために使用される。
【００６１】
ビューメタデータ３４１及びレベルメタデータ３８１は、それぞれ、ビュー又はレベルに関するデータを含んでもよい。ビューメタデータ又はレベルメタデータは、事象レコグナイザへのサブ事象配信に影響を及ぼす可能性のある少なくとも以下のプロパティを含んでもよい。
【００６２】
・ビュー又はプログラムレベルに対して設定された場合、ビュー又はプログラムレベル及びビュー又はプログラム階層における祖先と関連付けられた事象レコグナイザへのサブ事象配信を防止する停止プロパティ３４２、３８２。
・ビュー又はプログラムレベルに対して設定された場合、ビュー又はプログラムレベルと関連付けられた事象レコグナイザへのサブ事象配信を防止するが、ビュー又はプログラム階層における祖先へのサブ事象配信を可能にするスキッププロパティ３４３、３８３。
・ビューに対して設定された場合、ビューがヒットビューでない限り、ビューと関連付けられた事象レコグナイザへのサブ事象の配信を防止するＮｏＨｉｔスキッププロパティ３４４、３８４。上述したように、ヒットビュー判定モジュール３１４は、サブ事象を処理すべき階層における最下位レベルのビューとしてヒットビュー（又はヒットレベル判定モジュール３５２の場合はヒットレベル）を識別する。
【００６３】
事象レコグナイザ構造３２０及び３６０は、それぞれ、メタデータ３２２、３６２を含んでもよい。いくつかの実施形態において、メタデータ３２２、３６２は、事象配信システムが能動的に関わる事象レコグナイザへのサブ事象配信を実行すべき方法を示す設定可能なプロパティ、フラグ及びリストを含む。いくつかの実施形態において、メタデータ３２２、３６２は、事象レコグナイザが互いに対話してもよい方法を示す設定可能なプロパティ、フラグ及びリストを含んでもよい。いくつかの実施形態において、メタデータ３２２、３６２は、ビュー又はプログラム階層における変動レベルにサブ事象が配信されるかを示す設定可能なプロパティ、フラグ及びリストを含んでもよい。いくつかの実施形態において、事象レコグナイザメタデータ３２２、３６２とビューメタデータ又はレベルメタデータ（３４１、３８１のそれぞれ）との組合せは、双方とも、ａ）能動的に関わる事象レコグナイザへのサブ事象配信を実行し、ｂ）事象レコグナイザが互いに対話してもよい方法を示し、且つｃ）サブ事象がビュー又はプログラム階層において種々のレベルに配信されるか及び配信される時を示すように事象配信システムを設定するために使用される。
【００６４】
尚、いくつかの実施形態において、各事象レコグナイザは、事象レコグナイザの構造３２０、３６０のフィールドにより規定されたように、事象認識動作３３３、３７３をそれぞれの対象３３５、３７５に送出する。動作を対象に送出することは、サブ事象をそれぞれのヒットビュー又はヒットレベルに送出（及び遅延送出）することとは異なる。
【００６５】
対応する事象レコグナイザのそれぞれの事象レコグナイザ構造３２０、３６０に格納されたメタデータプロパティは、以下のうちの１つ以上を含む。
【００６６】
・事象レコグナイザに対して設定された場合、事象レコグナイザにより事象を認識すると、事象配信システムが、能動的に関わるビュー又はプログラムレベルの他のあらゆる事象レコグナイザ（例外リスト３２６、３６６に列挙された他のあらゆる事象レコグナイザを除く）へのサブ事象の配信を停止すべきことを示す排他的フラグ３２４、３６４。対応する排他的フラグ３２４又は３６４により示されたように、サブ事象を受信することにより特定の事象レコグナイザが排他的状態になる場合、後続のサブ事象は、排他的状態の事象レコグナイザ（及び例外リスト３２６、３６６に列挙された他のあらゆる事象レコグナイザ）にのみ配信される。
・いくつかの事象レコグナイザ構造３２０、３６０は、排他的例外リスト３２６、３６６を含んでもよい。このリスト３２６、３６６は、各事象レコグナイザに対する事象レコグナイザ構造３２０、３６０に含まれる場合、各事象レコグナイザが排他的状態になった後もサブ事象を受信し続ける事象レコグナイザのセットを示す。例えば、シングルタップ事象に対する事象レコグナイザが排他的状態になり、且つ現在含まれているビューがダブルタップ事象に対する事象レコグナイザを含む場合、リスト３２０、３６０は、シングルタップ事象が検出された後もダブルタップ事象を認識できるように、ダブルタップ事象レコグナイザを列挙するだろう。従って、排他的例外リスト３２６、３６６により、事象レコグナイザは、サブ事象の共通のシーケンスを共有する種々の事象を認識できる。例えばシングルタップ事象認識は、他の事象レコグナイザによるダブルタップ事象又はトリプルタップ事象の後続認識を排除しない。
・いくつかの事象レコグナイザ構造３２０、３６０は、待ちリスト３２７、３６７を含んでもよい。このリスト３２７、３６７は、各事象レコグナイザに対する事象レコグナイザ構造３２０、３６０に含まれる場合、各事象レコグナイザがそれぞれの事象を認識できる前に事象不可能状態又は事象取り消し状態になるべきである事象レコグナイザのセットを示す。実質的に、列挙された事象レコグナイザは、事象を認識するための優先順位が待ちリスト３２７、３６７を含む事象レコグナイザより高い。
・事象レコグナイザに対して設定された場合、サブ事象のシーケンスがこの事象レコグナイザの事象の種類に対応しないと判定されるまで、事象レコグナイザがサブ事象（タッチ開始サブ事象又はフィンガーダウンサブ事象及び後続の事象を含む）を事象レコグナイザのそれぞれのヒットビュー又はヒットレベルに送出するのを遅延させる遅延タッチ開始済フラグ３２８、３６８。このフラグは、ジェスチャが認識される場合にヒットビュー又はヒットレベルがいずれかのサブ事象を参照するのを防止するために使用可能である。事象レコグナイザが事象を認識できない場合、タッチ開始済サブ事象（及びサブ後続タッチ終了サブ事象）は、ヒットビュー又はヒットレベルに配信される。一例において、そのようなサブ事象をヒットビュー又はヒットレベルに配信することにより、ユーザインタフェースは、オブジェクトと関連付けられた動作を呼び出すことなく、そのオブジェクトを簡単に強調表示する。
・事象レコグナイザに対して設定された場合、サブ事象のシーケンスがこの事象レコグナイザの事象の種類に対応しないと判定されるまで、事象レコグナイザがサブ事象（例えば、タッチ終了サブ事象）を事象レコグナイザのそれぞれのヒットビュー又はヒットレベルに送出するのを遅延させる遅延タッチ終了フラグ３３０、３７０。これは、ジェスチャが後で認識される場合にヒットビュー又はヒットレベルがタッチ終了サブ事象に影響を及ぼすのを防止するために使用可能である。タッチ終了サブ事象が送出されない限り、取り消されたタッチをヒットビュー又はヒットレベルに送出できる。事象が認識される場合、アプリケーションにより対応する動作が実行され、タッチ終了サブ事象はヒットビュー又はヒットレベルに配信される。
・事象レコグナイザに対して設定された場合、サブ事象のシーケンスがこの事象レコグナイザの事象の種類に対応しないと判定されている際、事象レコグナイザにタッチ取り消し又は入力取り消しを事象レコグナイザのそれぞれのヒットビュー又はヒットレベルに送出させるタッチ取り消しフラグ３３２、３７２。ヒットビュー又はヒットレベルに送出されたタッチ取り消し又は入力取り消しは、先行するサブ事象（例えば、タッチ開始済サブ事象）が取り消されたことを示す。タッチ取り消し又は入力取り消しにより、入力ソースハンドラの状態（図４Ｂを参照）は入力シーケンス取り消し済状態４６０（以下に説明する）になってもよい。
【００６７】
いくつかの実施形態において、非排他的事象レコグナイザは、例外リスト３２６、３６６を更に使用できる。特に、非排他的事象レコグナイザが事象を認識する場合、後続のサブ事象は、事象を認識した事象レコグナイザの例外リスト３２６、３６６に列挙された排他的事象レコグナイザを除いて、現在アクティブなビューと関連付けられた排他的事象レコグナイザに配信されない。
【００６８】
いくつかの実施形態において、事象レコグナイザは、望ましくないサブ事象がヒットビューに配信されるのを防止するために、遅延タッチ終了フラグと組み合わせてタッチ取り消しフラグを利用するように構成されてもよい。例えば、シングルタップジェスチャの定義とダブルタップジェスチャの前半とは同一である。シングルタップ事象レコグナイザがシングルタップを正常に認識すると、望ましくない動作が起こるだろう。遅延タッチ終了フラグが設定される場合、シングルタップ事象が認識されるまで、シングルタップ事象レコグナイザがサブ事象をヒットビューに送出するのを防止する。また、シングルタップ事象レコグナイザの待ちリストがダブルタップ事象レコグナイザを識別できるため、ダブルタップ事象レコグナイザが事象不可能状態になるまで、シングルタップ事象レコグナイザがシングルタップを認識するのを防止する。待ちリストを使用することにより、ダブルタップジェスチャが実行される際にシングルタップと関連付けられた動作の実行を回避する。その代わり、ダブルタップ事象の認識に応答して、ダブルタップと関連付けられた動作のみが実行される。
【００６９】
タッチセンシティブ面上のユーザタッチの形態を特に参照すると、上述したように、タッチ及びユーザジェスチャは瞬時でなくてもよい動作を含んでもよく、例えばタッチは、ある期間ディスプレイに対して指を移動又は保持する動作を含んでよい。しかし、タッチデータ構造は、特定の時間のタッチの状態（すなわち、より一般的にはあらゆる入力ソースの状態）を定義する。従って、タッチデータ構造に格納された値がシングルタッチのコースを変更する可能性があるため、異なる時点のシングルタッチの状態をアプリケーションに搬送できるようになる。
【００７０】
各タッチデータ構造は種々のフィールドを含むことができる。いくつかの実施形態において、タッチデータ構造は、少なくとも図３Ｂのタッチ専用フィールド３３９又は図３Ｃの入力ソース専用フィールド３７９に対応するデータを含んでもよい。
【００７１】
例えば、図３Ｂの「ビューに対する第１のタッチ」フィールド３４５（図３Ｃの「レベルに対する第１のタッチ」３８５）は、タッチデータ構造が特定のビューに対する第１のタッチを定義するかを示すことができる（ビューを実現するソフトウェア要素がインスタンス化されたため）。「タイムスタンプ」フィールド３４６、３８６は、タッチデータ構造が関連する特定の時間を示すことができる。
【００７２】
オプションとして、「情報」フィールド３４７、３８７は、タッチが基本的なジェスチャであるかを示すために使用可能である。例えば「情報」フィールド３４７、３８７は、タッチがスワイプであるか及びスワイプである場合にはスワイプが向けられる方向を示すことができる。スワイプとは、１本以上の指を直線方向に迅速にドラッグすることである。ＡＰＩの実現例（以下に説明する）は、タッチがスワイプであるかを判定し且つその情報を「情報」フィールド３４７、３８７を介してアプリケーションに渡すことにより、タッチがスワイプであった場合に必要であったと考えられるあるデータ処理のアプリケーションを減少させることができる。
【００７３】
オプションとして、図３Ｂの「タップカウント」フィールド３４８（図３Ｃの「事象カウント」フィールド３８８）は、初期タッチの位置で順次実行されたタップの数を示すことができる。タップは、特定の位置でタッチセンシティブパネルに対して指を迅速に押下し且つ離すものとして定義される。指がパネルの同一の位置で迅速に継続して再度押下され且つ解放される場合、複数の連続したタップが発生する。事象配信システム１２２は、タップをカウントし、且つ「タップカウント」フィールド３４８を介してこの情報をアプリケーションに中継できる。同一の場所における多数のタップは、有用であり且つタッチ対応インタフェースに対する覚えやすいコマンドであると考えられることもある。従って、タップをカウントすることにより、事象配信システム１２２は、アプリケーションからのあるデータ処理を再度減少させることができる。
【００７４】
「段階」フィールド３４９、３８９は、タッチジェスチャが現在ある特定の段階を示すことができる。段階フィールド３４９、３８９は、タッチデータ構造が先行するタッチデータ構造により参照されていない新しいタッチを定義することを示すことができる「タッチ段階開始済」等の種々の値を有することができる。「タッチ段階移動済」値は、定義されているタッチが従来の位置から移動したことを示すことができる。「タッチ段階静止」値は、タッチが同一の位置に留まっていることを示すことができる。「タッチ段階終了済」値は、タッチが終了した（例えば、ユーザがマルチタッチディスプレイの表面から指を離した）ことを示すことができる。「タッチ段階取り消し済」値は、タッチがデバイスにより取り消されたことを示すことができる。取り消されたタッチは、ユーザにより必ずしも終了されなくてもよいが、デバイスが無視することを決定したタッチである。例えばデバイスは、タッチが意図せず（すなわち、ポータブルマルチタッチ対応デバイスをポケットに入れた結果）生成されていると判定し、且つその理由によりタッチを無視できる。「段階フィールド」３４９、３８９の各値は整数であってよい。
【００７５】
従って、各タッチデータ構造は、特定の時間にそれぞれのタッチ（又は他の入力ソース）で発生していること（例えば、タッチが静止しているか、移動しているか等）及びタッチと関連付けられた他の情報（位置等）を定義できる。従って、各タッチデータ構造は、特定の瞬間の特定のタッチの状態を定義できる。同一の時間を参照する１つ以上のタッチデータ構造は、特定のビューが瞬間に受信している全てのタッチの状態を定義できるタッチ事象データ構造に追加される（上述したように、いくつかのタッチデータ構造は、終了し且つもはや受信されていないタッチを更に参照してもよい）。多数のタッチ事象データ構造は、ビューで発生しているタッチを示す連続した情報をソフトウェアに提供するために、時間が経つにつれビューを実現するソフトウェアに送出される。
【００７６】
図３Ｄは、いくつかの実施形態に係る事象処理のための例示的な構成要素（例えば、事象処理構成要素３９０）を示すブロック図である。いくつかの実施形態において、メモリ１１１（図１Ａ）は、事象レコグナイザグローバルメソッド３１２及び１つ以上のアプリケーション（例えば、１３３−１〜１３３−３）を含む。
【００７７】
いくつかの実施形態において、事象レコグナイザグローバルメソッド３１２は、事象モニタ３１１と、ヒットビュー判定モジュール３１４と、アクティブ事象レコグナイザ判定モジュール３１６と、事象ディスパッチャモジュール３１５とを含む。いくつかの実施形態において、事象レコグナイザグローバルメソッド３１２は、事象配信システム１２２（図１Ａ）内に配置される。いくつかの実施形態において、事象レコグナイザグローバルメソッド３１２は、オペレーティングシステム１１８（図１Ａ）において実現される。あるいは、事象レコグナイザグローバルメソッド３１２は、それぞれのアプリケーション１３３−１において実現される。更に他の実施形態において、事象レコグナイザグローバルメソッド３１２は、スタンドアロンモジュール又はメモリ１１１に格納された別のモジュール（例えば、接触／動きモジュール（不図示））の一部として実現される。
【００７８】
事象モニタ３１１は、１つ以上のセンサ１１６、タッチセンシティブディスプレイ１５６及び／又は１つ以上の入力装置１２８から事象情報を受信する。事象情報は、事象（例えば、マルチタッチジェスチャ又はデバイス１０２の動きの一部であるタッチセンシティブディスプレイ１５６に対するユーザタッチ）及び／又はサブ事象（例えば、タッチセンシティブディスプレイ１５６にわたるタッチの移動）に関する情報を含む。例えば、タッチ事象に対する事象情報は、タッチの場所及びタイムスタンプのうちの１つ以上を含む。同様に、スワイプ事象に対する事象情報は、スワイプの場所、タイムスタンプ、方向及び速度のうちの２つ以上を含む。センサ１１６、タッチセンシティブディスプレイ１５６及び入力装置１２８は、直接又は事象情報を検索及び格納する周辺インタフェースを介して、情報事象及びサブ事象情報を事象モニタ３１１に送信する。センサ１１６は、近接センサ、加速度計、ジャイロスコープ、マイク及びビデオカメラのうちの１つ以上を含む。いくつかの実施形態において、センサ１１６は、入力装置１２８及び／又はタッチセンシティブディスプレイ１５６を更に含む。
【００７９】
いくつかの実施形態において、事象モニタ３１１は、所定の間隔でセンサ１１６及び／又は周辺インタフェースに要求を送出する。それに応答して、センサ１１６及び／又は周辺インタフェースは事象情報を送信する。他の実施形態において、センサ１１６及び／又は周辺インタフェース１１８は、重要な事象（例えば、所定の雑音閾値を超え且つ／又は所定の期間より長い期間の入力の受信）があった時にのみ事象情報を送信する。
【００８０】
事象モニタ３１１は、事象情報を受信して事象ディスパッチャモジュール３１５に中継する。いくつかの実施形態において、事象モニタ３１１は、事象情報の配信先となる１つ以上のそれぞれのアプリケーション（例えば、１３３−１）を判定する。いくつかの実施形態において、事象モニタ３１１は、事象情報の配信先となる１つ以上のそれぞれのアプリケーションの１つ以上のそれぞれのアプリケーションビュー３１７を更に判定する。
【００８１】
いくつかの実施形態において、事象レコグナイザグローバルメソッド３１２は、ヒットビュー判定モジュール３１４及び／又はアクティブ事象レコグナイザ判定モジュール３１６を更に含む。
【００８２】
ヒットビュー判定モジュール３１４は、存在する場合に、タッチセンシティブディスプレイ１５６が２つ以上のビューを表示した時に１つ以上のビュー内で事象又はサブ事象が行われた場所を判定するソフトウェア手順を提供する。ビューは、ユーザがディスプレイ上で見られる制御及び他の要素から構成される。
【００８３】
それぞれのアプリケーションと関連付けられたユーザインタフェースの別の態様は、本明細書においてアプリケーションビュー又はユーザインタフェースウィンドウと呼ばれることもあるビュー３１７のセットであり、このビューにおいて、情報が表示され且つタッチジェスチャが発生する。タッチが検出されるアプリケーションビュー（それぞれのアプリケーションの）は、アプリケーションのビュー階層内の特定のビューに対応してもよい。例えばタッチが検出される最下位レベルのビューはヒットビューと呼ばれてもよく、適切な入力として認識される事象のセットは、タッチジェスチャを開始する最初のタッチのヒットビューに少なくとも部分的に基づいて判定されてもよい。
【００８４】
ヒットビュー判定モジュール３１４は、事象及び／又はサブ事象に関連する情報を受信する。アプリケーションが階層に編成された多数のビューを有する場合、ヒットビュー判定モジュール３１４は、事象又はサブ事象を処理すべき階層の最下位のビューとしてヒットビューを識別する。殆どの状況において、ヒットビューは、開始事象又は開始サブ事象（すなわち、ジェスチャを形成する事象及び／又はサブ事象のシーケンスの第１の事象又はサブ事象）が発生する最下位レベルのビューである。ヒットビューは、ヒットビュー判定モジュールにより識別されると、一般に、ヒットビューとして識別された同一のタッチ又は入力ソースに関連する全ての事象及び／又はサブ事象を受信する。しかし、ヒットビューは、ヒットビューとして識別された同一のタッチ又は入力ソースに関連する全ての事象及び／又はサブ事象を受信する唯一のビューであるとは限らない。換言すると、いくつかの実施形態において、別のアプリケーション（例えば、１３３−２）又は同一のアプリケーションの別のビューは、ヒットビューがタッチ又は入力ソースに対して判定されているかどうかにかかわらず、同一のタッチ又は入力ソースに関連する事象及び／又はサブ事象の少なくともサブセットを更に受信する。
【００８５】
アクティブ事象レコグナイザ判定モジュール３１６は、事象及び／又はサブ事象の特定のシーケンスを受信すべきであるビュー階層内の１つ以上のビューを判定する。いくつかのアプリケーションコンテキストにおいて、アクティブ事象レコグナイザ判定モジュール３１６は、ヒットビューのみが事象及び／又はサブ事象の特定のシーケンスを受信すべきであると判定する。他のアプリケーションコンテキストにおいて、アクティブ事象レコグナイザ判定モジュール３１６は、事象又はサブ事象の物理的な場所を含む全てのビューが能動的に関わるビューであると判定するため、能動的に関わる全てのビューが事象及び／又はサブ事象の特定のシーケンスを受信すべきであると判定する。他のアプリケーションコンテキストにおいて、タッチ事象及び／又はサブ事象が１つの特定のビューと関連付けられた領域に全体的に制限される場合でも、階層における上位レベルのビューは、能動的に関わるビューとして留まるため、事象及び／又はサブ事象の特定のシーケンスを受信すべきである。更に又はあるいは、アクティブ事象レコグナイザ判定モジュール３１６は、事象及び／又はサブ事象の特定のシーケンスを受信すべきプログラム階層におけるアプリケーションを判定する。従って、いくつかの実施形態において、アクティブ事象レコグナイザ判定モジュール３１６は、プログラム階層におけるそれぞれのアプリケーションのみが事象及び／又はサブ事象の特定のシーケンスを受信すべきであると判定する。いくつかの実施形態において、アクティブ事象レコグナイザ判定モジュール３１６は、プログラム階層における複数のアプリケーションが事象及び／又はサブ事象の特定のシーケンスを受信すべきであると判定する。
【００８６】
事象ディスパッチャモジュール３１５は、事象情報を事象レコグナイザ（例えば、本明細書において「ジェスチャレコグナイザ」とも呼ばれる）（例えば、事象レコグナイザ３２５−１）にディスパッチする。アクティブ事象レコグナイザ判定モジュール３１６を含む実施形態において、事象ディスパッチャモジュール３１５は、アクティブ事象レコグナイザ判定モジュール３１６により判定された事象レコグナイザに事象情報を配信する。いくつかの実施形態において、事象ディスパッチャモジュール３１５は、各事象レコグナイザ３２５（又は各事象レコグナイザ３２５における事象受信部３０３１）により検索される事象情報を事象キューに格納する。
【００８７】
いくつかの実施形態において、それぞれのアプリケーション（例えば、１３３−１）は、アプリケーション内部状態３２１を含み、これは、アプリケーションがアクティブであるか又は実行している時にタッチセンシティブディスプレイ１５６に表示される現在のアプリケーションビューを示す。いくつかの実施形態において、デバイス／グローバル内部状態１３４（図１Ｃ）は、現在アクティブであるアプリケーションを判定するために事象レコグナイザグローバルメソッド３１２により使用され、アプリケーション内部状態３２１は、事象情報の配信先となるアプリケーションビュー３１７を判定するために事象レコグナイザグローバルメソッド３１２により使用される。
【００８８】
いくつかの実施形態において、アプリケーション内部状態３２１は、例えば、アプリケーション１３３−１が実行を再開する時に使用される再開情報と、表示されている情報を示すか又はアプリケーション１３３−１による表示の準備が整っているユーザインタフェース状態情報と、ユーザがアプリケーション１３３−１の前の状態又はビューに戻ることを可能にする状態キューと、ユーザにより行われた前の動作のリドゥ／アンドゥキューとのうちの１つ以上の追加の情報を含む。いくつかの実施形態において、アプリケーション内部状態３２１は、コンテキスト情報／テキスト及びメタデータ３２３を更に含む。
【００８９】
いくつかの実施形態において、アプリケーション１３３−１は、各々がアプリケーションのユーザインタフェースのそれぞれのビュー内で発生するタッチ事象を処理する命令を有する１つ以上のアプリケーションビュー３１７（例えば、対応する事象ハンドラ３１９）を含む。アプリケーション１３３−１の少なくとも１つのアプリケーションビュー３１７は、１つ以上の事象レコグナイザ３２５を含む。一般に、それぞれのアプリケーションビュー３１７は複数の事象レコグナイザ３２５を含む。他の実施形態において、１つ以上の事象レコグナイザ３２５は、ユーザインタフェースキット（不図示）又はアプリケーション１３３−１がメソッド及び他のプロパティを継承する上位レベルのオブジェクト等の独立したモジュールの一部である。いくつかの実施形態において、それぞれのアプリケーションビュー３１７は、データ更新部、オブジェクト更新部、ＧＵＩ更新部及び／又は受信した事象データのうちの１つ以上を更に含む。
【００９０】
それぞれのアプリケーション（例えば、１３３−１）は、１つ以上の事象ハンドラ３１９を更に含む。一般に、それぞれのアプリケーション（例えば、１３３−１）は複数の事象ハンドラ３１９を含む。
【００９１】
各事象レコグナイザ３２５−１は、事象ディスパッチャモジュール３１５から事象情報を受信し（直接又はアプリケーション１３３−１を介して間接的に）、その事象情報から事象を識別する。事象レコグナイザ３２５−１は、事象受信部３０３１と事象比較部３０３３とを含む。
【００９２】
事象情報は、事象（例えばタッチ）又はサブ事象（例えば、タッチの移動）に関する情報を含む。事象又はサブ事象に依存して、事象情報は、事象又はサブ事象の場所等の追加の情報を更に含む。事象又はサブ事象がタッチの動きに関係する場合、事象情報は、サブ事象の速度及び方向を更に含んでもよい。いくつかの実施形態において、事象は１つの向きから別の向き（例えば、縦向きから横向き又は横向きから縦向き）へのデバイスの回転を含み、事象情報は、デバイスの現在の向き（デバイスの態勢とも呼ばれる）に関する対応する情報を含む。
【００９３】
事象比較部３０３３は、事象情報を１つ以上の事前定義済みのジェスチャ定義（本明細書において「事象定義」とも呼ばれる）と比較し、その比較に基づいて、事象又はサブ事象を判定するか、あるいは事象又はサブ事象の状態を判定又は更新する。いくつかの実施形態において、事象比較部３０３３は、１つ以上のジェスチャ定義３０３５（上述したように、本明細書において「事象定義」とも呼ばれる）を含む。ジェスチャ定義３０３５は、例えば事象１（３０３７−１）及び事象２（３０３７−２）等である事象（例えば、事前定義済みの事象及び／又はサブ事象のシーケンス）の定義を含む。いくつかの実施形態において、ジェスチャ定義３０３５におけるサブ事象は、例えばタッチの開始、タッチの終了、タッチの移動、タッチの取り消し及びマルチタッチを含む。一例において、事象１（３０３７−１）の定義は、表示されたオブジェクトに対するダブルタップである。例えばダブルタップは、ジェスチャの所定のフェーズに対して表示されたオブジェクトに対する第１のタッチ（タッチの開始）と、ジェスチャの次の所定のフェーズに対する第１のリフトオフ（タッチの終了）と、ジェスチャの後続の所定のフェーズに対する表示されたオブジェクトに対する第２のタッチ（タッチの開始）と、ジェスチャの最後の所定のフェーズに対する第２のリフトオフ（タッチの終了）とを含む。別の例において、事象２（３０３７−２）の定義は、表示されたオブジェクトに対するドラッグを含む。例えばドラッグは、表示されたオブジェクトに対するタッチ（又は接触）と、タッチセンシティブディスプレイ１５６にわたるタッチの移動と、タッチのリフトオフ（タッチの終了）とを含む。
【００９４】
いくつかの実施形態において、事象レコグナイザ３２５−１は、事象配信３０３９のための情報を更に含む。事象配信３０３９のための情報は、対応する事象ハンドラ３１９に対する参照を含む。オプションとして、事象配信３０３９のための情報は動作−対象の対を含む。いくつかの実施形態において、ジェスチャ（又はジェスチャの一部）の認識に応答して、事象情報（例えば、動作メッセージ）は、動作−対象の対により識別された１つ以上の対象に送出される。他の実施形態において、ジェスチャ（又はジェスチャの一部）の認識に応答して、動作−対象の対が起動される。
【００９５】
いくつかの実施形態において、ジェスチャ定義３０３５は、それぞれのユーザインタフェースオブジェクトに対するジェスチャの定義を含む。いくつかの実施形態において、事象比較部３０３３は、サブ事象と関連付けられるユーザインタフェースオブジェクトを判定するためにヒットテストを行う。例えば３つのユーザインタフェースオブジェクトがタッチセンシティブディスプレイ１５６に表示されるアプリケーションビューにおいて、タッチがタッチセンシティブディスプレイ１５６で検出された時、事象比較部３０３３は、３つのユーザインタフェースオブジェクトのうちどのユーザインタフェースオブジェクトがタッチ（事象）と関連付けられるかを判定するためにヒットテストを行う。表示されたオブジェクトの各々がそれぞれの事象ハンドラ３１９と関連付けられる場合、事象比較部３０３３は、ヒットテストの結果を使用して起動されるべき事象ハンドラ３１９を判定する。例えば事象比較部３０３３は、ヒットテストをトリガするオブジェクト及び事象と関連付けられた事象ハンドラ３１９を選択する。
【００９６】
いくつかの実施形態において、それぞれのジェスチャの各ジェスチャ定義３０３７は、事象及び／又はサブ事象のシーケンスが事象レコグナイザの事象の種類に対応するか否かを判定するまで事象情報の配信を遅延させる遅延動作を更に含む。
【００９７】
各事象レコグナイザ３２５−１は、一連の事象及び／又はサブ事象がジェスチャ定義３０３５のいずれの事象とも一致しないと判定した場合、事象失敗状態になり、その後、タッチジェスチャの後続の事象及び／又はサブ事象を無視する。この状況において、ヒットビューに対してアクティブのままである他の事象レコグナイザがある場合、それらの事象レコグナイザは実行中のタッチジェスチャの事象及び／又はサブ事象を追跡及び処理し続ける。
【００９８】
いくつかの実施形態において、ビューに対する事象レコグナイザが残っていない場合、事象情報は、ビュー階層のより高いビューにおける１つ以上の事象レコグナイザに送出される。あるいは、ビューに対する事象レコグナイザが残っていない場合、事象情報は無視される。いくつかの実施形態において、ビュー階層におけるビューに対する事象レコグナイザが残っていない場合、事象情報は、プログラム階層におけるより高いプログラムレベルの１つ以上の事象レコグナイザに送出される。あるいは、ビュー階層におけるビューに対する事象レコグナイザが残っていない場合、事象情報は無視される。
【００９９】
いくつかの実施形態において、各事象レコグナイザ３２５−１は事象レコグナイザ状態３３４を含む。事象レコグナイザ状態３３４は、各事象レコグナイザ３２５−１の状態を含む。図４Ａ及び図４Ｂ、並びに図５Ａ〜図５Ｃを参照して、事象レコグナイザ状態の例を以下に更に詳細に説明する。
【０１００】
いくつかの実施形態において、事象レコグナイザ状態３３４は、レコグナイザのメタデータ及びプロパティ３０４３を含む。いくつかの実施形態において、レコグナイザのメタデータ及びプロパティ３０４３は、Ａ）事象配信システムが能動的に関わる事象レコグナイザに事象及び／又はサブ事象を配信すべき方法を示す設定可能なプロパティ、フラグ並びに／あるいはリスト、Ｂ）事象レコグナイザが互いに対話する方法を示す設定可能なプロパティ、フラグ及び／あるいはリスト、Ｃ）事象レコグナイザが事象情報を受信する方法を示す設定可能なプロパティ、フラグ及び／あるいはリスト、Ｄ）事象レコグナイザがジェスチャを認識してもよい方法を示す設定可能なプロパティ、フラグ及び／あるいはリスト、Ｅ）事象及び／又はサブ事象がビュー階層における種々のレベルに配信されるかを示す設定可能なプロパティ、フラグ並びに／あるいはリスト、並びにＦ）対応する事象ハンドラ３１９に対する参照のうちの１つ以上を含む。
【０１０１】
いくつかの実施形態において、事象レコグナイザ状態３３４は事象／タッチメタデータ３０４５を含む。事象／タッチメタデータ３０４５は、検出されているそれぞれの事象／タッチに関する事象／タッチ情報を含み、ジェスチャ定義３０３５の各ジェスチャ定義３０３７に対応する。事象／タッチ情報は、それぞれの事象／タッチの場所、タイムスタンプ、速度、方向、距離、寸法（又は寸法の変化）及び角度（又は角度の変化）のうちの１つ以上を含む。
【０１０２】
いくつかの実施形態において、各事象レコグナイザ３２５は、ジェスチャの１つ以上の特定の事象及び／又はサブ事象が認識された時に各事象レコグナイザ３２５と関連付けられた事象ハンドラ３１９を起動する。いくつかの実施形態において、各事象レコグナイザ３２５は、事象と関連付けられた事象情報を事象ハンドラ３１９に配信する。
【０１０３】
事象ハンドラ３１９は、起動された時にデータを作成及び／又は更新することと、オブジェクトを作成及び更新することと、表示情報を準備してディスプレイ１２６又はタッチセンシティブディスプレイ１５６に表示するためにその情報を送出することとのうちの１つ以上を実行する。
【０１０４】
いくつかの実施形態において、それぞれのアプリケーションビュー３１７−２はビューメタデータ３４１を含む。図３Ｂに関して上述したように、ビューメタデータ３４１はビューに関するデータを含む。オプションとして、ビューメタデータ３４１は、停止プロパティ３４２、スキッププロパティ３４３、ＮｏＨｉｔスキッププロパティ３４４及び他のビューメタデータ３２９のうちの１つ以上を含む。
【０１０５】
いくつかの実施形態において、ビュー階層内の第１の能動的に関わるビューは、その第１の能動的に関わるビューと関連付けられた事象レコグナイザへのそれぞれのサブ事象の配信を防止するように構成されてもよい。この挙動により、スキッププロパティ３４３を実現できる。スキッププロパティがアプリケーションビューに対して設定される場合、それぞれのサブ事象の配信は、ビュー階層で他の能動的に関わるビューと関連付けられた事象レコグナイザに対して依然として実行される。
【０１０６】
あるいは、ビュー階層内の第１の能動的に関わるビューは、第１の能動的に関わるビューがヒットビューでない限り、その第１の能動的に関わるビューと関連付けられた事象レコグナイザへのそれぞれのサブ事象の配信を防止するように構成されてもよい。この挙動により、条件付きＮｏＨｉｔスキッププロパティ３４４を実現できる。
【０１０７】
いくつかの実施形態において、ビュー階層内の第２の能動的に関わるビューは、第２の能動的に関わるビューと関連付けられた事象レコグナイザ及び第２の能動的に関わるビューの祖先と関連付けられた事象レコグナイザへのそれぞれのサブ事象の配信を防止するように構成される。この挙動により、停止プロパティ３４２を実現できる。
【０１０８】
図３Ｅは、いくつかの実施形態に係るジェスチャレコグナイザ（例えば、事象処理構成要素３９０）の例示的なクラス及びインスタンスを示すブロック図である。
【０１０９】
ソフトウェアアプリケーション（例えば、アプリケーション１３３−１）は、１つ以上の事象レコグナイザ３０４０を有する。いくつかの実施形態において、各事象レコグナイザ（例えば、３０４０−２）は事象レコグナイザのクラスである。各事象レコグナイザ（例えば、３０４０−２）は、事象レコグナイザ専用コード３３８（例えば、事象レコグナイザの動作を定義する命令のセット）及び状態遷移マシン３４０を含む。
【０１１０】
いくつかの実施形態において、ソフトウェアアプリケーション（例えば、アプリケーション１３３−１）のアプリケーション状態３２１は、事象レコグナイザのインスタンスを含む。事象レコグナイザの各インスタンスは、状態（例えば、事象レコグナイザ状態３３４）を有するオブジェクトである。各事象レコグナイザの「実行」は、対応する事象レコグナイザ専用コード（例えば、３３８）を実行すること及び事象レコグナイザのインスタンス３０４７の状態３３４を更新又は維持することで実現される。事象レコグナイザのインスタンス３０４７の状態３３４は、事象レコグナイザのインスタンスの状態遷移マシン３４０の状態３０３８を含む。
【０１１１】
いくつかの実施形態において、アプリケーション状態３２１は、複数の事象レコグナイザのインスタンス３０４７を含む。各事象レコグナイザのインスタンス３０４７は、一般に、アプリケーションのビューに結合（「接続」とも呼ばれる）されている事象レコグナイザに対応する。いくつかの実施形態において、１つ以上の事象レコグナイザのインスタンス３０４７は、それぞれのアプリケーションの特定のビューを全く参照することなくプログラム階層におけるそれぞれのアプリケーションに結合される。いくつかの実施形態において、アプリケーション状態３２１は、各事象レコグナイザ（例えば、３０４０−２）の複数のインスタンス（例えば、３０４７−１〜３０４７−Ｌ）を含む。いくつかの実施形態において、アプリケーション状態３２１は、複数の事象レコグナイザ（例えば、３０４０−１〜３０４０−Ｒ）のインスタンス３０４７を含む。
【０１１２】
いくつかの実施形態において、ジェスチャレコグナイザ３０４０のそれぞれのインスタンス３０４７−２は事象レコグナイザ状態３３４を含む。上述したように、いくつかの実施形態において、事象レコグナイザ状態３３４は、レコグナイザのメタデータ及びプロパティ３０４３、並びに事象／タッチメタデータ３０４５を含む。いくつかの実施形態において、事象レコグナイザ状態３３４は、ジェスチャレコグナイザ３０４０−２のそれぞれのインスタンス３０４７−２が接続されるビューを示すビュー階層基準３３６を更に含む。
【０１１３】
いくつかの実施形態において、レコグナイザのメタデータ及びプロパティ３０４３は、以下のもの、あるいはそれらのサブセット又は上位セットを含む。
【０１１４】
・排他的フラグ３２４
・排他的除外リスト３２６
・待ちリスト
・遅延タッチ開始済フラグ３２８
・遅延タッチ終了フラグ３３０
・タッチ取り消しフラグ３３２
【０１１５】
いくつかの実施形態において、１つ以上の事象レコグナイザは、事象レコグナイザが事象を認識するまでサブ事象のシーケンスの１つ以上のサブ事象を送出するのを遅延させるように構成されてもよい。この挙動は遅延した事象を反映する。例えば、複数のタップジェスチャが可能であるビューのシングルタップジェスチャを考える。その場合、タップ事象は「タップ＋遅延」レコグナイザになる。本質的に、事象レコグナイザは、この挙動を実現する場合、サブ事象のシーケンスが実際に事象定義に対応することを確定するまで事象認識を遅延させる。受信側ビューが取り消された事象に適切に応答できない場合、この挙動は適切だろう。いくつかの実施形態において、事象レコグナイザは、サブ事象のシーケンスが事象定義に対応しないことを確定するまで、事象認識ステータスをそれぞれの能動的に関わるビューに更新するのを遅延させる。遅延タッチ開始済フラグ３２８、遅延タッチ終了フラグ３３０及びタッチ取り消しフラグ３３２は、サブ事象配信技術を調節するために提供され、事象レコグナイザ及びビューステータス情報は特定のニーズに更新される。
【０１１６】
いくつかの実施形態において、レコグナイザのメタデータ及びプロパティ３０４３は、以下のもの、あるいはそれらのサブセット又は上位セットを含む。
【０１１７】
・各事象レコグナイザのインスタンス（例えば、３０４７−２）に対する状態遷移マシン（例えば、３４０）の状態を示す状態遷移マシンの状態／段階３０３８は、以下に説明するように、例えば「事象可能」、「事象認識済」及び「事象失敗済」等の種々の状態値を有することができ、あるいは又は更に、タッチデータ構造が先行するタッチデータ構造により参照されていない新しいタッチを定義することを示すことができる「タッチ段階開始済」、定義されているタッチが従来の位置から移動したことを示すことができる「タッチ段階移動済」値、タッチが同一の位置に留まっていることを示すことができる「タッチ段階静止」値、タッチが終了した（例えば、ユーザがマルチタッチディスプレイの表面から指を離した）ことを示すことができる「タッチ段階終了済」値、タッチがデバイスにより取り消されたことを示すことができる「タッチ段階取り消し済」値等の種々の段階値を有することができ、取り消されたタッチは、ユーザにより必ずしも終了されなくてもよいが、デバイスが無視することを決定したタッチであってよく、例えばデバイスは、タッチが意図せず（すなわち、ポータブルマルチタッチ対応デバイスをポケットに入れた結果）生成されていると判定し、且つその理由によりタッチを無視でき、状態遷移マシンの状態／段階３０３８の各値は整数（本明細書において「ジェスチャレコグナイザ状態値」と呼ぶ）であってよい。
・各々が事象又はタッチをジェスチャ又はジェスチャの一部として認識することに応答して各事象レコグナイザのインスタンスが識別された動作メッセージを送出する対象を識別する動作−対象の対３０５１。
・対応するデリゲートに対する参照であるデリゲート３０５３であり、デリゲートが各事象レコグナイザのインスタンスに割り当てられる時、デリゲートが各事象レコグナイザのインスタンスに割り当てられていない時にデリゲート３４６はヌル値を含む。
・各事象レコグナイザのインスタンスが使用可能にされるかを示す使用可能プロパティ３０５５であり、いくつかの実施形態において、各事象レコグナイザのインスタンスは、使用可能にされない（例えば、使用不可にされる）場合に事象又はタッチを処理しない。
【０１１８】
いくつかの実施形態において、例外リスト３２６は、非排他的事象レコグナイザにより更に使用可能である。特に、非排他的事象レコグナイザが事象又はサブ事象を認識する場合、後続の事象及び／又はサブ事象は、事象又はサブ事象を認識した事象レコグナイザの例外リスト３２６に列挙された排他的事象レコグナイザを除いて、現在アクティブなビューと関連付けられた排他的事象レコグナイザに配信されない。
【０１１９】
いくつかの実施形態において、事象レコグナイザは、望ましくない事象及び／又はサブ事象がヒットビューに配信されるのを防止するために、遅延タッチ終了フラグ３３０と組み合わせてタッチ取り消しフラグ３３２を利用するように構成されてもよい。例えば、シングルタップジェスチャの定義とダブルタップジェスチャの前半とは同一である。シングルタップ事象レコグナイザがシングルタップを正常に認識すると、望ましくない動作が起こるだろう。遅延タッチ終了フラグが設定される場合、シングルタップ事象が認識されるまで、シングルタップ事象レコグナイザがサブ事象をヒットビューに送出するのを防止する。また、シングルタップ事象レコグナイザの待ちリストがダブルタップ事象レコグナイザを識別できるため、ダブルタップ事象レコグナイザが事象不可能状態になるまで、シングルタップ事象レコグナイザがシングルタップを認識するのを防止する。待ちリストを使用することにより、ダブルタップジェスチャが実行される際にシングルタップと関連付けられた動作の実行を回避する。その代わり、ダブルタップ事象の認識に応答して、ダブルタップと関連付けられた動作のみが実行される。
【０１２０】
タッチセンシティブ面上のユーザタッチの形態を特に参照すると、上述したように、タッチ及びユーザジェスチャは瞬時でなくてもよい動作を含んでもよく、例えばタッチは、ある期間ディスプレイに対して指を移動又は保持する動作を含んでよい。しかし、タッチデータ構造は、特定の時間のタッチの状態（すなわち、より一般的にはあらゆる入力ソースの状態）を定義する。従って、タッチデータ構造に格納された値がシングルタッチのコースを変更することにより、異なる時点のシングルタッチの状態をアプリケーションに搬送できる。
【０１２１】
各タッチデータ構造は種々のエントリを含むことができる。いくつかの実施形態において、タッチデータ構造は、少なくとも事象／タッチメタデータ３０４５におけるタッチ専用エントリに対応するデータ、例えば以下のもの、あるいはそれらのサブセット又は上位セットを含んでもよい。
【０１２２】
・「ビューに対する第１のタッチ」エントリ３４５
・タッチデータ構造が関連する特定の時間（例えば、タッチの時間）を示す「タイムスタップ」情報を含む「タッチ毎の情報」エントリ３０５１であり、「タッチ毎の情報」エントリ３０５１は、対応するタッチの場所等の他の情報を含む
・オプションの「タップカウント」エントリ３４８
【０１２３】
従って、各タッチデータ構造は、特定の時間にタッチ（又は他の入力ソース）で発生していること（例えば、タッチが静止しているか、移動しているか等）及びタッチと関連付けられた他の情報（位置等）を定義できる。従って、各タッチデータ構造は、特定の瞬間の特定のタッチの状態を定義できる。同一の時間を参照する１つ以上のタッチデータ構造は、特定のビューが瞬間に受信している全てのタッチの状態を定義できるタッチ事象データ構造に追加される（上述したように、いくつかのタッチデータ構造は、終了し且つもはや受信されていないタッチを更に参照してもよい）。多数のタッチ事象データ構造は、ビューで発生しているタッチを示す連続した情報をソフトウェアに提供するために、時間が経つにつれビューを実現するソフトウェアに送出される。
【０１２４】
オプションとしてマルチタッチジェスチャを含む複雑なタッチジェスチャを処理する機能は、種々のソフトウェアアプリケーションを複雑にしうる。いくつかの例において、そのように複雑になることにより、高度な所望のインタフェース機能を実現する必要があるだろう。例えばゲームは、同時に複数のボタンを押下したり、あるいは加速度計データをタッチセンシティブ面上のタッチと組み合わせたりすることを必要とする場合が多いため、種々のビューで発生する複数の同時のタッチを処理する機能を必要とするだろう。しかし、いくつかのより単純なアプリケーション及び／又はビューは、高度なインタフェース機能を必要としなくてもよい。例えば単純なソフトボタン（すなわち、タッチセンシティブディスプレイに表示されるボタン）は、マルチタッチ機能性ではなくシングルタッチで十分に動作できる。これらの場合、基礎となるＯＳは、シングルタッチ（例えば、ソフトボタン上のシングルタッチ又はシングルタップ）のみにより動作可能であることを意図するビューと関連付けられたソフトウェアコンポーネントに不必要なタッチデータ又は過剰なタッチデータ（例えば、マルチタッチデータ）を送出してもよい。ソフトウェアコンポーネントは、このデータを処理する必要があってもよいため、シングルタッチのみが関連するビューと関連付けられても、マルチタッチを処理するソフトウェアアプリケーションの全ての複雑さを備える必要があるだろう。従来マウスインタフェース環境（すなわち、種々のボタン等）でプログラムするのが容易であったソフトウェアコンポーネントがマルチタッチ環境で非常により複雑になる可能性があるため、これによりデバイスに対してソフトウェアを開発するコストが増加しうる。
【０１２５】
複雑なタッチジェスチャを認識する複雑さを軽減するために、デリゲートを使用していくつかの実施形態に係る事象レコグナイザの挙動を制御できる。以下に説明するように、デリゲートは、例えば対応する事象レコグナイザ（又はジェスチャレコグナイザ）が、事象（例えば、タッチ）情報を受信できるか、状態遷移マシンの初期状態（例えば、事象可能状態）から別の状態に遷移できるか、且つ／あるいは他の事象レコグナイザ（又はジェスチャレコグナイザが事象（例えば、タッチ）を認識するのを阻止することなくあるいは事象を認識する他の事象レコグナイザ（又はジェスチャレコグナイザ）によりブロックされることなく、事象を対応するジェスチャとして同時に認識できるかを判定できる。
【０１２６】
しかし、タッチセンシティブ面上でユーザタッチを評価し且つ処理する複雑さに関する上記の説明は、入力装置１２８を備える電子デバイス１０２を操作する全ての形態のユーザ入力に更に当てはまり、ユーザ入力の全てがタッチスクリーン上で開始されるわけではなく、例えば、認識される事象を定義する事象及び／又はサブ事象に対応する入力として利用されてもよい一回又は複数回のキーボード押下又はキーボード保持を含むかあるいは含まないマウスの移動及びマウスボタンの押下、タッチパッド上の例えばタップ、ドラッグ、スクロール等のデバイスの回転又は他の移動、ユーザ移動、ペンスタイラスの入力、音声命令、検出された眼球運動、生体情報認識入力、検出されたユーザの生理学的変化、並びに／あるいはそれらのあらゆる組合せを連係することが理解されるだろう。
【０１２７】
事象情報の流れを参照すると、図３Ｆは、いくつかの実施形態に係る事象情報の流れを示すブロック図である。事象ディスパッチャモジュール３１５（例えば、オペレーティングシステム１１８又はアプリケーションソフトウェア１２４における）は、事象情報を受信し、その事象情報を１つ以上のアプリケーション（例えば、１３３−１及び１３３−２）に送出する。いくつかの実施形態において、アプリケーション１３３−１は、ビュー階層５０６における複数のビュー（例えば、図３Ｄのビュー３１７に対応する５０８、５１０及び５１２）、並びに複数のビューにおける複数のジェスチャレコグナイザ（５１６−１〜５１６−３）を含む。アプリケーション１３３−１は、対象−動作の対（例えば、５５２−１及び５５２−２）における対象値に対応する１つ以上のジェスチャハンドラ５５０を更に含む。いくつかの実施形態において、事象ディスパッチャモジュール３１５は、ヒットビュー判定モジュール３１４からヒットビュー情報を受信し、ヒットビュー（例えば、５１２）又はヒットビュー（例えば、５１６−１及び５１６−２）に接続された事象レコグナイザに事象情報を送出する。更に又はあるいは、事象ディスパッチャモジュール３１５は、ヒットレベル判定モジュール３５２からヒットレベル情報を受信し、ヒットレベルのアプリケーション（例えば、１３３−１及び１３３−２）又はヒットレベルアプリケーションの１つ以上の事象レコグナイザ（例えば、５１６−４）に事象情報を送出する。いくつかの実施形態において、事象情報を受信するアプリケーションのうちの１つは、デフォルトアプリケーションである（例えば、１３３−２はデフォルトアプリケーションであってもよい）。いくつかの実施形態において、受信側アプリケーションの各々におけるジェスチャレコグナイザのサブセットのみが事象情報を受信することを許可される（又はそのように構成される。例えば、アプリケーション１３３−１のジェスチャレコグナイザ５１６−３は事象情報を受信しない。本明細書において、事象情報を受信するジェスチャレコグナイザを受信側ジェスチャレコグナイザと呼ぶ。図３Ｆにおいて、受信側ジェスチャレコグナイザ５１６−１、５１６−２及び５１６−４は、事象情報を受信し、受信した事象情報を受信側ジェスチャレコグナイザにおける各ジェスチャ定義３０３７（図３Ｄ）と比較する。図３Ｆにおいて、ジェスチャレコグナイザ５１６−１及び５１６−４は、受信した事象情報と一致する各ジェスチャ定義を有し、それぞれの動作メッセージ（例えば、５１８−１及び５１８−２）を対応するジェスチャハンドラ（例えば、５５２−１及び５５２−３）に送出する。
【０１２８】
図４Ａは、４つの状態を含む事象レコグナイザ状態遷移マシン４００を示す。受信したサブ事象に基づいて事象レコグナイザ状態遷移マシン４００の状態遷移を管理することにより、事象レコグナイザは事象定義を効率的に表す。例えばタップジェスチャは、２つ又はオプションとして３つのサブ事象のシーケンスにより効率的に定義されてもよい。第１に、タッチは検出されるべきであり、これはサブ事象１となる。例えばタッチサブ事象は、状態遷移マシン４００を有する事象レコグナイザを含むビューでタッチセンシティブ面に触れるユーザの指であってもよい。第２に、タッチが実質的に所定の方向に全く移動しないオプションの測定された遅延（例えばタッチ位置のあらゆる移動は、ディスプレイ上で距離（例えば、５ｍｍ）又は画素数（例えば、５画素）として測定されてもよい事前定義済みの閾値より小さい）及び遅延は、十分に短く、サブ事象２として提供される。最後に、タッチの終了（例えば、タッチセンシティブ面からのユーザの指のリフトオフ）は、サブ事象３として提供される。これらのサブ事象を受信することに基づいて事象レコグナイザ状態遷移マシン４００を状態間の遷移に符号化することにより、事象レコグナイザ状態遷移マシン４００は、タップジェスチャ事象定義を効率的に表す。尚、図４Ａに示された状態は例示的な状態であり、事象レコグナイザ状態遷移マシン４００は、より多くの状態又はより少ない状態を含んでもよく、且つ／あるいは事象レコグナイザ状態遷移マシン４００における各状態は、示された状態又は他のあらゆる状態のうちの１つに対応してもよい。
【０１２９】
いくつかの実施形態において、事象の種類にかかわらず、事象レコグナイザ状態遷移マシン４００は、事象認識開始状態４０５から開始し、受信するサブ事象に依存して残りの状態のうちのいずれかに進んでもよい。事象レコグナイザ状態遷移マシン４００の説明を容易にするために、事象可能状態４１０からの経路を説明した後、事象認識開始状態４０５から事象認識済状態４１５、事象可能状態４１０及び事象不可能状態４２０への直接経路を説明する。
【０１３０】
事象認識開始状態４０５から開始し、単独で事象の事象定義を含むサブ事象が受信される場合、事象レコグナイザ状態遷移マシン４００は事象認識済状態４１５に遷移する。
【０１３１】
状態事象認識開始４０５から開始し、事象定義の第１のサブ事象ではないサブ事象が受信される場合、事象レコグナイザ状態遷移マシン４００は事象不可能状態４２０に遷移する。
【０１３２】
事象認識開始状態４０５から開始し、所定の事象定義の第１のサブ事象であり且つ最後のサブ事象ではないサブ事象が受信される場合、事象レコグナイザ状態遷移マシン４００は事象可能状態４１０に遷移する。受信する次のサブ事象が所定の事象定義の第２のサブ事象であるが、最後のサブ事象ではない場合、事象レコグナイザ状態遷移マシン４００は状態事象可能４１０のままである。受信したサブ事象のシーケンスが事象定義の一部であり続ける限り、事象レコグナイザ状態遷移マシン４００は状態事象可能４１０のままであってよい。事象レコグナイザ状態遷移マシン４００は、常に事象可能状態４１０であり且つ事象定義の一部ではないサブ事象を受信する場合、状態事象不可能４２０に遷移することにより、現在の事象（もしあれば）がこの事象レコグナイザ（すなわち、状態４００に対応する事象レコグナイザ）に対応する事象の種類ではないと判定する。一方、事象レコグナイザ状態遷移マシン４００は、事象可能状態４１０であり且つ事象定義の最後のサブ事象を受信する場合、事象認識済状態４１５に遷移することにより、正常な事象認識を完了する。
【０１３３】
図４Ｂは、ビューがそれぞれの入力に関する情報を受信する方法を示す有限の状態遷移マシンを有する入力ソース処理４４０の一実施形態を示す。尚、デバイスのタッチセンシティブ面上にマルチタッチがある場合、各タッチは、自身の有限の状態遷移マシンを有する別個の入力ソースである。本実施形態において、入力ソース処理４４０は、入力シーケンス開始４４５、入力シーケンス継続４５０、入力シーケンス終了済４５５及び入力シーケンス取り消し済４６０の４つの状態を含む。入力ソース処理４４０は、例えば入力シーケンスの完了が検出された後で初めて入力がアプリケーションに配信される場合、各事象レコグナイザにより使用されてもよい。入力ソース処理４４０は、アプリケーションに配信された入力シーケンスに応答して実行された変化を取り消せないかあるいは解除できないアプリケーションで使用可能である。尚、図４Ｂに示された状態は例示的な状態であり、入力ソース処理４４０は、より多くの状態又はより少ない状態を含んでもよく、且つ／あるいは入力ソース処理４４０における各状態は、示された状態又は他のあらゆる状態のうちの１つに対応してもよい。
【０１３４】
入力シーケンス開始４４５から開始し、単独で入力シーケンスを完了する入力が受信される場合、入力ソース処理４４０は入力シーケンス終了済４５５に遷移する。
【０１３５】
入力シーケンス開始４４５から開始し、終了した入力シーケンスを示す入力が受信される場合、入力ソース処理４４０は入力シーケンス取り消し済４６０に遷移する。
【０１３６】
入力シーケンス開始４４５から開始し、入力シーケンスの第１の入力であり且つ最後の入力ではない入力が受信される場合、入力ソース処理４４０は、状態入力シーケンス継続４５０に遷移する。受信する次の入力が入力シーケンスの第２の入力である場合、入力処理４４０は状態入力シーケンス継続４５０のままである。配信されるサブ事象のシーケンスが所定の入力シーケンスの一部であり続ける限り、入力ソース処理４４０は状態入力シーケンス継続４５０のままであってよい。入力ソース処理４４０は、常に状態入力シーケンス継続４５０であり且つ入力シーケンスの一部ではない入力を受信する場合、状態入力シーケンス取り消し済４６０に遷移する。一方、入力ソース処理４４０は、入力シーケンス継続４５０であり且つ所定の入力定義の最後の入力を受信する場合、入力シーケンス終了済４５５に遷移することにより、サブ事象のグループを正常に受信する。
【０１３７】
いくつかの実施形態において、入力ソース処理４４０は、特定のビュー又はプログラムレベルに対して実現されてもよい。その場合、サブ事象の特定のシーケンスは、結果として状態入力取り消し済４６０に遷移してもよい。
【０１３８】
一例として、能動的に関わるビュー入力ソースハンドラ４８０（以下、「ビュー４８０」）のみで表された能動的に関わるビューを想定する図４Ｃを考える。ビュー４８０は、事象レコグナイザのうちの１つとして縦スワイプ事象レコグナイザ４６８（以下、「レコグナイザ４６８」）のみで表された縦スワイプ事象レコグナイザを含む。この場合、レコグナイザ４６８は、１）フィンガーダウン４６５−１、２）オプションのわずかな遅延４６５−２、３）少なくともＮ画素の縦スワイプ４６５−３及び４）フィンガーリフトオフ４６５−４を検出することを定義の一部として必要としてもよい。
【０１３９】
例えばレコグナイザ４６８は、設定された遅延タッチ開始済フラグ３２８及びタッチ取り消しフラグ３３２を更に有する。次に、レコグナイザ４６８及びビュー４８０への以下のサブ事象のシーケンスの配信を考える。
【０１４０】
・サブ事象シーケンス４６５−１：レコグナイザ４６８の事象定義に対応するフィンガーダウン検出
・サブ事象シーケンス４６５−２：レコグナイザ４６８の事象定義に対応する遅延測定
・サブ事象シーケンス４６５−３：指は、縦方向のスクローリングと互換性のある縦スワイプ移動を実行するがＮ画素より小さいため、レコグナイザ４６８の事象定義に対応しない
・サブ事象シーケンス４６５−４：レコグナイザ４６８の事象定義に対応するフィンガーリフトオフ検出
【０１４１】
次にレコグナイザ４６８は、事象定義の一部としてサブ事象１及び２を正常に認識することにより、サブ事象３の配信の直前に状態事象可能４７２になるだろう。レコグナイザ４６８が設定された遅延タッチ開始済フラグ３２８を有するため、初期タッチサブ事象はヒットビューに送出されない。従って、ビュー４８０の入力ソース処理４４０は、サブ事象３の配信の直前に依然として状態入力シーケンス開始のままだろう。
【０１４２】
レコグナイザ４６８へのサブ事象３の配信が完了すると、レコグナイザ４６８の状態は事象不可能４７６に遷移し、次にレコグナイザ４６８が、サブ事象のシーケンスが特定の縦スワイプジェスチャ事象の種類に対応しないと判定した（すなわち、レコグナイザ４６８は、事象が縦スワイプではないと判断した。換言すると、縦スワイプとしての認識４７４はこの例では発生しない）ことが重要である。ビュー入力ソースハンドラ４８０に対する入力ソース処理システム４４０は、その状態を更に更新する。いくつかの実施形態において、事象レコグナイザが事象を認識し始めたことを示すステータス情報を送出する場合、ビュー入力ソースハンドラ４８０の状態は、入力シーケンス開始状態４８２から入力シーケンス継続状態４８４に進むだろう。事象レコグナイザのタッチ取り消しフラグ３２２が設定されたために事象が認識されずにタッチ又は入力が終了する場合、ビュー入力ソースハンドラ４８０は入力シーケンス取り消し済状態４８８になる。あるいは、事象レコグナイザのタッチ取り消しフラグ３２２が設定されていない場合、ビュー入力ソースハンドラ４８０は、入力のタッチが終了する際に入力シーケンス終了済状態４８６になる。
【０１４３】
事象レコグナイザ４６８のタッチ取り消しフラグ３３２が設定されるため、事象レコグナイザ４６８が事象不可能状態４７６に遷移する場合、レコグナイザは、タッチ取り消しのサブ事象又はメッセージを事象レコグナイザに対応するヒットビューに送出する。その結果、ビュー入力ソースハンドラ４８０は状態入力シーケンス取り消し済４８８に遷移する。
【０１４４】
いくつかの実施形態において、ビュー入力ソースハンドラ４８０の他の事象レコグナイザがある場合は、サブ事象のシーケンスを解析し続けてもよいが、サブ事象４６５−４の配信は、レコグナイザ４６８により判断されたいずれの事象認識にも密接に関連しない。
【０１４５】
以下の表は、ビュー入力ソースハンドラ４８０の状態と共に、上述した事象レコグナイザ４６８の状態に関連するようなこの例示的なサブ事象シーケンス４６５の処理を要約した表形式で示す。この例において、レコグナイザ４６８のタッチ取り消しフラグ３３２が設定されたため、ビュー入力ソースハンドラ４８０の状態は入力シーケンス開始４４５から入力シーケンス取り消し済４８８に進む。
【０１４６】
【表１】
0005980368.tif 000002
【０１４７】
図５Ａを参照し、複数の事象レコグナイザを含むビューにより受信されているサブ事象シーケンス５２０の一例に注目する。例えば、２つの事象レコグナイザ、すなわちスクローリング事象レコグナイザ５８０及びタップ事象レコグナイザ５９０を図５Ａに示す。説明のために、図３Ａのビュー検索結果パネル３０４は、サブ事象シーケンス５２０の受信、並びにスクローリング事象レコグナイザ５８０及びタップ事象レコグナイザ５９０における状態変遷に関連する。尚、この例において、サブ事象５２０のシーケンスは、タッチセンシティブディスプレイ又はトラックパッドに対するタップフィンガージェスチャを定義するが、同一の事象認識技術が、マウスボタンの押下を検出する等の無数の状況及び／又はプログラムレベルのプログラム階層を利用する実施形態で適用可能である。
【０１４８】
第１のサブ事象がビュー検索結果パネル３０４に配信される前、事象レコグナイザ５８０及び５９０は、それぞれ、事象認識開始状態５８２及び５９２である。タッチサブ事象３０１−２としてビュー検索結果パネル３０４に対して能動的に関わる事象レコグナイザ（及びタッチサブ事象３０１−３としてマップビュー３０５に対して能動的に関わる事象レコグナイザ）にフィンガーダウン検出５２１−１サブ事象として配信されるタッチ３０１に続き、スクローリング事象レコグナイザ５８０は状態事象可能５８４に遷移し、同様にタップ事象レコグナイザ５９０は状態事象可能５９４に遷移する。これは、タッチ及びスクロールの双方の事象定義が、タッチセンシティブ面でフィンガーダウンを検出すること等のタッチで開始するためである。
【０１４９】
タップジェスチャ及びスクロールジェスチャのいくつかの定義は、オプションとして、初期タッチと何らかの次のステップとの間の遅延を含んでもよい。本明細書で説明する全ての例において、タップジェスチャ及びスクロールジェスチャの双方に対する事象定義は、第１のタッチサブ事象（フィンガーダウン検出）に後続する遅延サブ事象を認識する。
【０１５０】
従って、測定遅延５２１−２サブ事象が事象レコグナイザ５８０及び５９０に配信されるため、双方は、それぞれ、事象可能状態５８４及び５９４のままである。
【０１５１】
最後に、フィンガーリフトオフ検出５２１−３サブ事象は、事象レコグナイザ５８０及び５９０に配信される。この場合、タップ及びスクロールの事象定義が異なるため、事象レコグナイザ５８０及び５９０の状態遷移は異なる。スクローリング事象レコグナイザ５８０の場合、状態事象可能のままである次のサブ事象は移動を検出するサブ事象だろう。しかし、配信されたサブ事象がフィンガーリフトオフ検出５２１−３であるため、スクローリング事象レコグナイザ５８０は状態事象不可能５８８に遷移する。しかし、タップ事象定義はフィンガーリフトオフサブ事象で終了する。従って、タップ事象レコグナイザ５９０は、フィンガーリフトオフ検出５２１−３サブ事象が配信された後で状態事象認識済５９６に遷移する。
【０１５２】
尚、いくつかの実施形態において、図４Ｂ及び図４Ｃに関連して上述したように、図４Ｂで説明された入力ソース処理４４０は、ビューレベルで種々の目的のために使用されてもよい。以下の表は、事象レコグナイザ５８０、５９０に関連するようなサブ事象シーケンス５２０の配信及び入力ソース処理４４０を要約した表形式で示す。
【０１５３】
【表２】
0005980368.tif 000003
【０１５４】
図５Ｂを参照し、複数の事象レコグナイザを含むビューにより受信されているサブ事象シーケンス５３０の別の例に注目する。例えば、２つの事象レコグナイザ、すなわちスクローリング事象レコグナイザ５８０及びタップ事象レコグナイザ５９０を図５Ｂに示す。説明のために、図３Ａのビュー検索結果パネル３０４は、サブ事象シーケンス５３０の受信、並びにスクローリング事象レコグナイザ５８０及びタップ事象レコグナイザ５９０における状態変遷に関連する。尚、この例において、サブ事象５３０のシーケンスは、タッチセンシティブディスプレイに対するスクロールフィンガージェスチャを定義するが、同一の事象認識技術が、マウスボタンの押下、マウスの移動及びマウスボタンの解放を検出する等の無数の状況、並びに／又はプログラムレベルのプログラム階層を利用する実施形態で適用可能である。
【０１５５】
第１のサブ事象がビュー検索結果パネル３０４に対して能動的に関わる事象レコグナイザに配信される前、事象レコグナイザ５８０及び５９０は、それぞれ、事象認識開始状態５８２及び５９２である。タッチ３０１に対応するサブ事象の配信（上述したような）に続き、スクローリング事象レコグナイザ５８０は状態事象可能５８４に遷移し、同様にタップ事象レコグナイザ５９０は状態事象可能５９４に遷移する。
【０１５６】
測定遅延５３１−２サブ事象が事象レコグナイザ５８０及び５９０に配信されるため、双方は、それぞれ、事象可能状態５８４及び５９４に遷移する。
【０１５７】
次に、フィンガー移動検出５３１−３サブ事象は事象レコグナイザ５８０及び５９０に配信される。この場合、タップ及びスクロールの事象定義が異なるため、事象レコグナイザ５８０及び５９０の状態遷移は異なる。スクローリング事象レコグナイザ５８０の場合、状態事象可能のままである次のサブ事象は移動を検出するサブ事象であるため、スクローリング事象レコグナイザ５８０は、フィンガー移動検出５３１−３サブ事象を受信する場合に事象可能状態５８４のままである。しかし、上述したように、タップの定義がフィンガーリフトオフサブ事象で終了するため、タップ事象レコグナイザ５９０は状態事象不可能５９８に遷移する。
【０１５８】
最後に、フィンガーリフトオフ検出５３１−４サブ事象は事象レコグナイザ５８０及び５９０に配信される。タップ事象レコグナイザは既に事象不可能状態５９８であり、状態遷移は発生しない。スクローリング事象レコグナイザ５８０の事象定義は、フィンガーリフトオフを検出して終了する。配信されたサブ事象がフィンガーリフトオフ検出５３１−４であるため、スクローリング事象レコグナイザ５８０は状態事象認識済５８６に遷移する。尚、タッチセンシティブ面上のフィンガー移動が多数の移動サブ事象を生成してもよいため、スクロールは、リフトオフの前に認識され且つリフトオフまで継続してもよい。
【０１５９】
以下の表は、事象レコグナイザ５８０、５９０に関連するようなサブ事象シーケンス５３０の配信及び入力ソース処理４４０を要約した表形式で示す。
【０１６０】
【表３】
0005980368.tif 000004
【０１６１】
図５Ｃを参照し、複数の事象レコグナイザを含むビューにより受信されているサブ事象シーケンス５４０の別の例に注目する。例えば、２つの事象レコグナイザ、すなわちダブルタップ事象レコグナイザ５７０及びタップ事象レコグナイザ５９０を図５Ｃに示す。説明のために、図３Ａのマップビュー３０５は、サブ事象シーケンス５４０の受信、並びにダブルタップ事象レコグナイザ５７０及びタップ事象レコグナイザ５９０における状態変遷に関連する。尚、この例において、サブ事象５４０のシーケンスは、タッチセンシティブディスプレイに対するダブルタップジェスチャを定義するが、同一の事象認識技術が、マウスダブルクリックを検出する等の無数の状況及び／又はプログラムレベルのプログラム階層を利用する実施形態で適用可能である。
【０１６２】
第１のサブ事象がマップビュー３０５に対して能動的に関わる事象レコグナイザに配信される前、事象レコグナイザ５７０及び５９０は、それぞれ、事象認識開始状態５７２及び５９２である。タッチサブ事象３０１に関連したサブ事象のマップビュー３０４への配信（上述したような）に続き、ダブルタップ事象レコグナイザ５７０及びタップ事象レコグナイザ５９０は、それぞれ、状態事象可能５７４及び５９４に遷移する。これは、タップ及びダブルタップの双方の事象定義がタッチセンシティブ面上でフィンガーダウン５４１−１を検出する等のタッチで開始するためである。
【０１６３】
測定遅延５４１−２サブ事象が事象レコグナイザ５７０及び５９０に配信されるため、双方は、それぞれ、状態事象可能５７４及び５９４のままである。
【０１６４】
次に、フィンガーリフトオフ検出５４１−３サブ事象は事象レコグナイザ５７０及び５９０に配信される。この場合、タップ及びダブルタップの事象定義が異なるため、事象レコグナイザ５８０及び５９０の状態遷移は異なる。タップ事象レコグナイザ５９０の場合、事象定義の最後のサブ事象がフィンガーリフトオフを検出するサブ事象であるため、タップ事象レコグナイザ５９０は事象認識済状態５９６に遷移する。
【０１６５】
しかし、ユーザが最終的に実行する可能性があることに関係なく遅延が開始しているため、ダブルタップレコグナイザ５７０は状態事象可能５７４のままである。完全なタップサブ事象シーケンスが後続するが、ダブルタップの完全な事象認識定義は別の遅延を必要とする。これにより、既に状態事象認識済５７６であるタップ事象レコグナイザ５９０と依然として状態事象可能５７４のままであるダブルタップレコグナイザ５７０との間のような曖昧な状況が発生する。
【０１６６】
従って、いくつかの実施形態において、事象レコグナイザは、図３Ｂ及び図３Ｃに関連して上述したような排他的フラグ及び排他的例外リストを実現してもよい。本明細書において、タップ事象レコグナイザ５９０に対する排他的フラグ３２４が設定され、更にタップ事象レコグナイザ５９０に対する排他的例外リスト３２６は、タップ事象レコグナイザ５９０が状態事象認識済５９６になった後にいくつかの事象レコグナイザ（ダブルタップ事象レコグナイザ５７０等）へのサブ事象の配信を許可し続けるように構成されるだろう。
【０１６７】
タップ事象レコグナイザ５９０は状態事象認識済５９６のままであり、サブ事象シーケンス５４０はダブルタップサブ事象レコグナイザ５７０に配信され続ける。遅延測定５４１−４サブ事象、フィンガーダウン検出５４１−５サブ事象及び遅延測定５４１−６サブ事象はダブルタップレコグナイザ５７０を状態事象可能５７４に維持し、最後のシーケンスのサブ事象５４０、すなわちフィンガーリフトオフ検出５４１−７の配信により、ダブルタップレコグナイザ５７０は状態事象認識済５７６に遷移する。
【０１６８】
この時点で、マップビュー３０５は、タップ事象レコグナイザ５９０により認識されたシングルタップ事象ではなく、事象レコグナイザ５７０により認識されたような事象ダブルタップを選択する。ダブルタップ事象を選択するという判断は、設定されるタップ事象レコグナイザ５９０の排他的フラグ３２４、ダブルタップ事象を含むタップ事象レコグナイザ５９０の排他的例外リスト３２６、並びにタップ事象レコグナイザ５９０及びダブルタップレコグナイザ５７０の双方がそれぞれの事象の種類を正常に認識したという事実の組合せを考慮して行われる。
【０１６９】
以下の表は、事象レコグナイザ５７０及び５９０に関連するようなサブ事象シーケンス５４０の配信、並びにサブ事象処理４４０を要約した表形式で示す。
【０１７０】
【表４】
0005980368.tif 000005
【０１７１】
別の実施形態において、図５Ｃの事象の例では、シングルタップ事象レコグナイザがダブルタップ事象レコグナイザを識別する待ちリストを有するため、シングルタップジェスチャは識別されない。その結果、（実行されたとしても）ダブルタップ事象レコグナイザが事象不可能状態になるまで、シングルタップジェスチャは認識されない。ダブルタップジェスチャが認識されるこの例において、ダブルタップジェスチャが認識されるまで、シングルタップ事象レコグナイザは事象可能状態のままだろう。その時点で、シングルタップ事象レコグナイザは事象不可能状態に遷移するだろう。
【０１７２】
次に、いくつかの実施形態に係る事象認識方法を示すフローチャートである図６Ａ及び図６Ｂに注目する。上述したように、いくつかの実施形態において電子デバイス１０２であってもよい電子デバイスで方法６００を実行する。いくつかの実施形態において、電子デバイスは、マルチタッチジェスチャを検出するように構成されたタッチセンシティブ面を含んでもよい。あるいは、電子デバイスは、マルチタッチジェスチャを検出するように構成されたタッチスクリーンを含んでもよい。
【０１７３】
方法６００は、複数のビューを有するビュー階層を含むソフトウェアを実行するように構成される。方法６００は、ビュー階層の１つ以上のビューを表示し（６０８）、１つ以上のソフトウェア要素を実行する（６１０）。各ソフトウェア要素は特定のビューと関連付けられ、各特定のビューは、それぞれ、事象レコグナイザ構造３２０及び３６０として図３Ｂ及び図３Ｃで説明されたような１つ以上の事象レコグナイザを含む。
【０１７４】
一般に各事象レコグナイザは、１つ以上のサブ事象に基づいて状態遷移マシンとして実現されてもよい事象定義を含む。状態遷移マシンについては、例えば図３Ｂの状態遷移マシン３４０を参照する。更に事象レコグナイザは、一般に、対象に対する動作を規定する事象ハンドラを含み、事象定義に対応する事象を検出する事象レコグナイザに応答して動作を対象に送出するように構成される。
【０１７５】
いくつかの実施形態において、図６Ａのステップ６１２に示されたように、複数の事象レコグナイザのうちの少なくとも１つは、ジェスチャ定義及びジェスチャハンドラを有するジェスチャレコグナイザである。
【０１７６】
いくつかの実施形態において、図６Ａのステップ６１４に示されたように、事象定義はユーザジェスチャを定義する。
【０１７７】
あるいは、事象レコグナイザは事象認識状態のセットを有する（６１６）。これらの事象認識状態は、少なくとも事象可能状態、事象不可能状態及び事象認識済状態を含んでもよい。
【０１７８】
いくつかの実施形態において、事象ハンドラは、事象レコグナイザが事象可能状態になる場合に対象に配信するための対応する動作の準備を開始する（６１８）。図４Ａ及び図５Ａ〜図５Ｃの例に関連して上述したように、事象レコグナイザ毎に実現された状態遷移マシンは、一般に状態事象認識開始４０５等の初期状態を含む。事象定義の初期部分を形成するサブ事象を受信することにより、事象可能状態４１０への状態変化をトリガする。従って、いくつかの実施形態において、事象レコグナイザが状態事象認識開始４０５から状態事象可能４１０に遷移するのに伴い、事象レコグナイザの事象ハンドラは、事象が正常に認識された後で事象レコグナイザの対象へ配信するための特定の動作を準備し始めてもよい。
【０１７９】
一方、いくつかの実施形態において、事象ハンドラは、事象レコグナイザが状態事象不可能４２０になる場合に対応する動作の準備を終了してもよい（６２０）。いくつかの実施形態において、対応する動作を終了することは、事象ハンドラの対応する動作のあらゆる準備を取り消すことを含む。
【０１８０】
タップ事象レコグナイザ５９０が動作の準備を開始していてもよい（６１８）ため、図５Ｂの例は本実施形態とって有益である。しかし、フィンガー移動検出５３１−３サブ事象がタップ事象レコグナイザ５９０に配信されると、レコグナイザ５９０は事象不可能状態５９８、５７８に遷移する。その時点で、タップ事象レコグナイザ５９０は、準備を開始した（６１８）動作の準備を終了してもよい（６２０）。
【０１８１】
いくつかの実施形態において、事象ハンドラは、事象レコグナイザが事象認識済状態になる場合に対象に配信するための対応する動作の準備を完了する（６２２）。マップビュー３０５に対して能動的に関わる事象レコグナイザによりダブルタップが認識されるため、図５Ｃの例は本実施形態を示す。それは、いくつかの実現例において、マップビュー３０５により示された検索結果を選択し且つ／あるいは実行する義務がある事象である。本明細書において、ダブルタップ事象レコグナイザ５７０がサブ事象シーケンス５４０から構成されるダブルタップ事象を正常に認識した後、マップビュー３０５の事象ハンドラは、動作、すなわち起動コマンドを受信したことを示す動作の準備を完了する（６２２）。
【０１８２】
いくつかの実施形態において、事象ハンドラは、対応する動作を事象レコグナイザと関連付けられた対象に配信する（６２４）。引き続き図５Ｃの例を参照すると、準備された動作、すなわちマップビュー３０５の起動コマンドは、マップビュー３０５と関連付けられた特定の対象に配信される。これは、あらゆる適切なプログラムの方法又は目的であってもよい。
【０１８３】
あるいは、複数の事象レコグナイザは、１つ以上のサブ事象のシーケンスを並列に個別に処理してもよい（６２６）。
【０１８４】
いくつかの実施形態において、それぞれ、図３Ｂ及び図３Ｃの排他的フラグ３２４及び３６４に関連して上述したように、１つ以上の事象レコグナイザは排他的事象レコグナイザ６２８として構成されてもよい。事象レコグナイザが排他的事象レコグナイザとして構成される場合、事象配信システムは、排他的事象レコグナイザが事象を認識した後、ビュー階層で能動的に関わるビューに対する他のあらゆる事象レコグナイザ（事象を認識する事象レコグナイザの例外リスト３２６、３６６に列挙されたものを除く）が後続のサブ事象（サブ事象の同一のシーケンスの）を受信するのを防止する。また、非排他的事象レコグナイザが事象を認識する場合、事象配信システムは、事象を認識する事象レコグナイザの例外リスト３２６、３６６に列挙されたもの（もしあれば）を除き、ビュー階層で能動的に関わるビューに対するあらゆる排他的事象レコグナイザが後続のサブ事象を受信するのを防止する。
【０１８５】
いくつかの実施形態において、それぞれ、図３Ｂ及び図３Ｃの排他的例外リスト３２６及び３６６に関連して上述したように、排他的事象レコグナイザは事象例外リストを含んでもよい（６３０）。上記の図５Ｃの説明で示されたように、事象レコグナイザの排他的例外リストは、各事象定義を構成するサブ事象のシーケンスが重なり合う場合でも事象レコグナイザが事象認識を継続できるようにするために使用可能である。従って、いくつかの実施形態において、事象例外リストは、対応する事象定義が反復サブ事象、例えば図５Ｃのシンブルタップ／ダブルタップ事象の例を有する事象を含む（６３２）。
【０１８６】
あるいは、事象定義はユーザ入力動作を定義してもよい（６３４）。
【０１８７】
いくつかの実施形態において、１つ以上の事象レコグナイザは、事象が認識されるまでサブ事象のシーケンスの全てのサブ事象を配信するのを遅延させるように構成されてもよい。
【０１８８】
方法６００は１つ以上のサブ事象のシーケンスを検出し（６３６）、いくつかの実施形態において、１つ以上のサブ事象のシーケンスは基本のタッチ事象を含んでもよい（６３８）。基本のタッチ事象は、タッチセンシティブ面上のタッチジェスチャの基本構成要素、例えば最初のフィンガータッチダウン又はスタイラスタッチダウンに関連したデータ、タッチセンシティブ面にわたる複数の指又はスタイラスの移動の開始に関連したデータ、逆方向の２本の指の移動、タッチセンシティブ面からのスタイラスリフトオフ等を含んでもよいがそれらに限定されない。
【０１８９】
１つ以上のサブ事象のシーケンスのサブ事象は、特に、キー押下、キー押下保持、キー押下解放、ボタン押下、ボタン押下保持、ボタン押下解放、ジョイスティックの移動、マウスの移動、マウスボタンの押下、マウスボタンの解放、ペンスタイラスのタッチ、ペンスタイラスの移動、ペンスタイラスの解放、音声命令、検出された眼球運動、生体情報認識入力及び検出されたユーザの生理学的変化を含むがそれらに限定されない多くの形態を含んでよい。
【０１９０】
方法６００は、ビュー階層のビューのうちの１つをヒットビューとして識別する（６４０）。ヒットビューは、ビュー階層のどのビューが能動的に関わるビューであるかを明らかにする。能動的に関わるビュー３０３が、タッチサブ事象３０１がマップビュー３０５と関連付けられた領域に接触したためにマップビュー３０５及び検索結果パネル３０４を含む一例を図３Ａに示す。
【０１９１】
いくつかの実施形態において、ビュー階層内の第１の能動的に関わるビューは、その第１の能動的に関わるビューと関連付けられた事象レコグナイザへのそれぞれのサブ事象の配信を防止するように構成されてもよい（６４２）。この挙動により、図３Ｂ及び図３Ｃに関連して上述したスキッププロパティ（それぞれ、３３０及び３７０）を実現できる。スキッププロパティが事象レコグナイザに対して設定される場合、それぞれのサブ事象の配信は、ビュー階層で他の能動的に関わるビューと関連付けられた事象レコグナイザに対して依然として実行される。
【０１９２】
あるいは、ビュー階層内の第１の能動的に関わるビューは、第１の能動的に関わるビューがヒットビューでない限り、第１の能動的に関わるビューと関連付けられた事象レコグナイザへのそれぞれのサブ事象の配信を防止するように構成されてもよい（６４４）。この挙動により、図３Ｂ及び図３Ｃに関連して上述した条件付きスキッププロパティ（それぞれ、３３２及び３７２）を実現できる。
【０１９３】
いくつかの実施形態において、ビュー階層内の第２の能動的に関わるビューは、第２の能動的に関わるビューと関連付けられた事象レコグナイザ及び第２の能動的に関わるビューの祖先と関連付けられた事象レコグナイザへのそれぞれのサブ事象の配信を防止するように構成される（６４６）。この挙動により、図３Ｂ及び図３Ｃに関連して上述した停止プロパティ（それぞれ、３２８及び３６８）を実現できる。
【０１９４】
方法６００は、ビュー階層内で能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信する（６４８）。いくつかの実施形態において、ビュー階層で能動的に関わるビューに対する事象レコグナイザは、サブ事象のシーケンスの次のサブ事象を処理する前に各サブ事象を処理する。あるいは、ビュー階層で能動的に関わるビューに対する事象レコグナイザは、各サブ事象を処理しつつサブ事象認識を判断する。
【０１９５】
いくつかの実施形態において、ビュー階層で能動的に関わるビューに対する事象レコグナイザは、１つ以上のサブ事象のシーケンスを同時に処理してもよい（６５０）。あるいは、ビュー階層で能動的に関わるビューに対する事象レコグナイザは、１つ以上のサブ事象のシーケンスを並列に処理してもよい。
【０１９６】
いくつかの実施形態において、１つ以上の事象レコグナイザは、事象レコグナイザが事象を認識するまでサブ事象のシーケンスの１つ以上のサブ事象を配信するのを遅延させるように構成されてもよい（６５２）。この挙動は遅延した事象を反映する。例えば、多数のタップジェスチャが可能であるビューのシングルタップジェスチャを考える。その場合、タップ事象は「タップ＋遅延」レコグナイザになる。本質的に、事象レコグナイザは、この挙動を実現する場合、サブ事象のシーケンスが実際に事象定義に対応することを確定するまで事象認識を遅延させる。受信側ビューが取り消された事象に適切に応答できない場合、この挙動は適切だろう。いくつかの実施形態において、事象レコグナイザは、サブ事象のシーケンスが事象定義に対応しないことを確定するまで、事象認識ステータスをそれぞれの能動的に関わるビューに更新するのを遅延させる。図３Ｂ及び図３Ｃに関連して上述したように、遅延タッチ開始済フラグ３２８、３６８、遅延タッチ終了フラグ３３０、３７０及びタッチ取り消しフラグ３３２、３７２は、サブ事象配信技術を調節するために提供され、事象レコグナイザ及びビューステータス情報は特定のニーズに更新される。
【０１９７】
図７Ａ〜図７Ｓは、いくつかの実施形態に係る同時に開いているアプリケーションを移動する事象レコグナイザにより認識された例示的なユーザインタフェース及びユーザ入力を示す。これらの図におけるユーザインタフェースは、図８Ａ及び図８Ｂ、図９Ａ〜図９Ｃ、並びに図１０Ａ及び図１０Ｂにおける処理を含む以下に説明する処理を示すために使用される。
【０１９８】
以下の多くの例がタッチスクリーンディスプレイ１５６（タッチセンシティブ面及びディスプレイが組み合わされる）に対する入力を参照して与えられるが、いくつかの実施形態において、デバイスはディスプレイ（例えば、タッチパッド又はトラックパッド）とは別個のタッチセンシティブ面に対する入力を検出する。いくつかの実施形態において、タッチセンシティブ面は、ディスプレイにおける主軸に対応する主軸を有する。これらの実施形態によると、デバイスは、ディスプレイ上のそれぞれの場所に対応する場所におけるタッチセンシティブ面との接触を検出する。このように、タッチセンシティブ面においてデバイスにより検出されたユーザ入力は、タッチセンシティブ面がディスプレイとは別個である場合に電子デバイスのディスプレイ上のユーザインタフェースを操作するためにデバイスにより使用される。本明細書で説明される他のユーザインタフェースに対して同様の方法が使用されてもよいことが理解されるべきである。
【０１９９】
図７Ａは、いくつかの実施形態に係る電子デバイス１０２上の例示的なユーザインタフェース（「ホーム画面」７０８）を示す。同様のユーザインタフェースは、電子デバイス１０２上で実現されてもよい。いくつかの実施形態において、ホーム画面７０８は、スプリングボードと呼ばれることもあるアプリケーションランチャソフトウェアアプリケーションにより表示される。いくつかの実施形態において、タッチスクリーン１５６上のユーザインタフェースは、以下の要素、あるいはそれらのサブセット又は上位セットを含む。
【０２００】
・セルラ信号及びＷｉ−Ｆｉ信号等の無線通信に対する信号強度標識７０２
・時間７０４
・バッテリ状態標識７０６
【０２０１】
例示的なユーザインタフェースは、複数のアプリケーションアイコン５００２（例えば、５００２−２５〜５００２−３８）を含む。ホーム画面７０８から、フィンガージェスチャは、アプリケーションを起動するために使用可能である。例えば、アプリケーションアイコン５００２−３６に対応する場所におけるタップフィンガージェスチャ７０１は、電子メールアプリケーションの起動を開始する。
【０２０２】
図７Ｂにおいて、アプリケーションアイコン５００２−３６に対するフィンガージェスチャ７０１の検出に応答して、電子メールアプリケーションが起動され、電子メールアプリケーションビュー７１２−１がタッチスクリーン１５６に表示される。ユーザは、他のアプリケーションを同様に起動してもよい。例えばユーザは、あらゆるアプリケーションビュー７１２からホームボタン７１０を押下し、ホーム画面７０８（図７Ａ）に戻ってホーム画面７０８上のそれぞれのアプリケーションアイコン５００２に対するフィンガージェスチャにより他のアプリケーションを起動してもよい。
【０２０３】
図７Ｃ〜図７Ｇは、ホーム画面７０８上のそれぞれのアプリケーションアイコン５００２に対応する場所におけるそれぞれのフィンガージェスチャを検出することに応答してそれぞれのアプリケーションが順次起動されることと、その結果それぞれのユーザインタフェース（すなわち、それぞれのアプリケーションビュー）が表示されることとを示す。特に、図７Ｃは、アプリケーションアイコン５００２−３２に対するフィンガージェスチャに応答してメディアストアアプリケーションビュー７１２−２が表示されることを示す。図７Ｄにおいて、アプリケーションアイコン５００２−３０に対するフィンガージェスチャに応答してメモアプリケーションビュー７１２−３が表示される。図７Ｅは、アプリケーションアイコン５００２−２７に対するフィンガージェスチャに応答してマップアプリケーションビュー７１２−４が表示されることを示す。図７Ｆにおいて、アプリケーションアイコン５００２−２８に対するフィンガージェスチャに応答して天気アプリケーションビュー７１２−５が表示される。図７Ｇは、アプリケーションアイコン５００２−３７に対するフィンガージェスチャに応答してウェブブラウザアプリケーションビュー７１２−６が表示されることを示す。いくつかの実施形態において、開いているアプリケーションのシーケンスは、電子メールアプリケーション、メディアストアアプリケーション、メモアプリケーション、マップアプリケーション、天気アプリケーション及びウェブブラウザアプリケーションの起動に対応する。
【０２０４】
図７Ｇは、ユーザインタフェースオブジェクト（例えば、お気に入りアイコン）に対するフィンガージェスチャ７０３（例えば、タップジェスチャ）を更に示す。いくつかの実施形態において、お気に入りアイコンに対するフィンガージェスチャ７０３の検出に応答して、ウェブブラウザアプリケーションは、お気に入りのリストをタッチスクリーン１５６に表示する。同様に、ユーザは、他のジェスチャ（例えば、ユーザが一般にオンスクリーンキーボードを用いて新しいアドレスをタイプするかあるいは表示されたアドレスを変更できるようにするアドレスユーザインタフェースオブジェクトに対するタップジェスチャ、選択されたリンクに対応するウェブページへのナビゲートを開始する表示されたウェブページにおけるリンクのうちのいずれかに対するタップジェスチャ等）により、表示されたアプリケーション（例えば、ウェブブラウザアプリケーション）と対話してもよい。
【０２０５】
図７Ｇにおいて、第１の事前定義済み入力（例えば、ホームボタン７１０に対するダブルクリック７０５）が検出される。あるいは、複数の指のスワイプジェスチャ（例えば、指の接触７０７、７０９及び７１１の移動により示されるような３本の指のスワイプアップジェスチャ）がタッチスクリーン１５６で検出される。
【０２０６】
図７Ｈは、第１の事前定義済み入力（例えば、ダブルクリック７０５又は指の接触７０７、７０９及び７１１を含む複数の指のスワイプジェスチャ）の検出に応答して、ウェブブラウザアプリケーションビュー７１２−６及びアプリケーションアイコン領域７１６の一部が同時に表示されることを示す。いくつかの実施形態において、第１の事前定義済み入力の検出に応答して、デバイスは、同時に開いているアプリケーションのうちの１つを選択するアプリケーションビュー選択モードを開始し、ウェブブラウザアプリケーションビュー７１２−６及びアプリケーションアイコン領域７１６の一部は、アプリケーションビュー選択モードの一部として同時に表示される。アプリケーションアイコン領域７１６は、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループを含む。この例において、ポータブル電子デバイスは、同時に開いている複数のアプリケーション（例えば、電子メールアプリケーション、メディアストアアプリケーション、メモアプリケーション、マップアプリケーション、天気アプリケーション及びウェブブラウザアプリケーション）を有するが、それら全てが同時に表示されない。図７Ｈに示されるように、アプリケーションアイコン領域５０６は、天気アプリケーション、マップアプリケーション、メモアプリケーション及びメディアストアアプリケーション（すなわち、開いているアプリケーションのシーケンスにおける現在表示されているアプリケーションの直後の４つのアプリケーション、ウェブブラウザアプリケーション)に対するアプリケーションアイコン（例えば、５００４−２、５００４−４、５００４−６及び５００４−８）を含む。いくつかの実施形態において、アプリケーションアイコン領域７１６に表示された、開いているアプリケーションアイコンのシーケンス又は順序は、所定のシーケンスにおける開いているアプリケーション（例えば、天気アプリケーション、マップアプリケーション、メモアプリケーション及びメディアストアアプリケーション）のシーケンスに対応する。
【０２０７】
図７Ｈは、ジェスチャ７１３（例えば、タップジェスチャ）が開いているアプリケーションアイコン５００４−８に対して検出されることを更に示す。いくつかの実施形態において、ジェスチャ７１３の検出に応答して、対応するアプリケーションビュー（例えば、図７Ｃのメディアストアアプリケーションビュー７１２−２）が表示される。
【０２０８】
図７Ｈは、左スワイプジェスチャ７１５がアプリケーションアイコン領域７１６に対応する場所において検出されることを示す。図７Ｉにおいて、左スワイプジェスチャ７１５の検出に応答して、アプリケーションアイコン領域７１６におけるアプリケーションアイコン（例えば、５００４−２、５００４−４、５００４−６及び５００４−８）がスクロールされる。スクロールの結果、電子メールアプリケーションに対するアプリケーションアイコン５００４−１２は、前に表示されたアプリケーションアイコン（例えば、５００４−２、５００４−４、５００４−６及び５００４−８）の代わりにアプリケーションアイコン領域５０６に表示される。
【０２０９】
図７Ｊにおいて、第１の種類のジェスチャ（例えば、指の接触７１７、７１９及び７２１の移動を含む複数の指の左スワイプジェスチャ）は、ウェブブラウザアプリケーションビュー７１２−６に対して検出される。図７Ｋは、第１の種類のジェスチャの検出に応答して、天気アプリケーションビュー７１２−５がタッチスクリーン１５６に表示されることを示す。尚、天気アプリケーションは、開いているアプリケーションのシーケンスにおいてウェブブラウザアプリケーションに隣接する。
【０２１０】
図７Ｋは、第１の種類の第２のジェスチャ（例えば、指の接触７２３、７２５及び７２７の移動を含む複数の指の左スワイプジェスチャ）が天気アプリケーションビュー７１２−５に対して検出されることを更に示す。図７Ｌは、第１の種類の第２のジェスチャの検出に応答して、マップアプリケーションビュー７１２−４がタッチスクリーン１５６に表示されることを示す。尚、マップアプリケーションは、開いているアプリケーションのシーケンスにおいて天気アプリケーションに隣接する。
【０２１１】
図７Ｌは、第１の種類の第３のジェスチャ（例えば、指の接触７２９、７３１及び７３３の移動を含む複数の指の左スワイプジェスチャ）がマップアプリケーションビュー７１２−４に対して検出されることを更に示す。図７Ｍは、第１の種類の第３のジェスチャの検出に応答して、メモアプリケーションビュー７１２−３がタッチスクリーン１５６に表示されることを示す。尚、メモアプリケーションは、開いているアプリケーションのシーケンスにおいてマップアプリケーションに隣接する。
【０２１２】
図７Ｍは、第１の種類の第４のジェスチャ（例えば、指の接触７３５、７３７及び７３９の移動を含む複数の指の左スワイプジェスチャ）がメモアプリケーションビュー７１２−３に対して検出されることを更に示す。図７Ｎは、第１の種類の第４のジェスチャの検出に応答して、メディアストアアプリケーションビュー７１２−２がタッチスクリーン１５６に表示されることを示す。尚、メディアストアアプリケーションは、開いているアプリケーションのシーケンスにおいてメモアプリケーションに隣接する。
【０２１３】
図７Ｎは、第１の種類の第５のジェスチャ（例えば、指の接触７４１、７４３及び７４５の移動を含む複数の指の左スワイプジェスチャ）がメディアストアアプリケーションビュー７１２−２に対して検出されることを更に示す。図７Ｏは、第１の種類の第５のジェスチャの検出に応答して、電子メールアプリケーションビュー７１２−１がタッチスクリーン１５６に表示されることを示す。尚、電子メールアプリケーションは、開いているアプリケーションのシーケンスにおいてメディアストアアプリケーションに隣接する。
【０２１４】
図７Ｏは、第１の種類の第６のジェスチャ（例えば、指の接触７４７、７４９及び７５１の移動を含む複数の指の左スワイプジェスチャ）が電子メールアプリケーションビュー７１２−１に対して検出されることを更に示す。図７Ｐは、第１の種類の第６のジェスチャの検出に応答して、ウェブブラウザアプリケーションビュー７１２−６がタッチスクリーン１５６に表示されることを示す。尚、ウェブブラウザアプリケーションは、開いているアプリケーションのシーケンスの一方の端部上にあり、電子メールアプリケーションは開いているアプリケーションのシーケンスの反対側の端部上にある。
【０２１５】
図７Ｐは、第２の種類のジェスチャ（例えば、指の接触７５３、７５５及び７５７の移動を含む複数の指の右スワイプジェスチャ）がウェブブラウザアプリケーションビュー７１２−６に対して検出されることを更に示す。図７Ｑは、いくつかの実施形態において、第２の種類のジェスチャの検出に応答して、電子メールアプリケーションビュー７１２−１がタッチスクリーン１５６に表示されることを示す。
【０２１６】
図７Ｒを参照すると、複数の指のジェスチャ（例えば、指の接触７５９、７６１、７６３、７６５及び７６７の移動を含む５本の指のピンチジェスチャ）は、ウェブブラウザアプリケーションビュー７１２−６に対して検出される。図７Ｓは、タッチスクリーン１５６に対する複数の指のジェスチャを検出している間に、ウェブブラウザアプリケーションビュー７１２−６及びホーム画面７０８の少なくとも一部が同時に表示されることを示す。示されるように、ウェブブラウザアプリケーションビュー７１２−６は縮小表示される。複数の指のジェスチャがタッチスクリーン１５６で検出されている間、縮小率は複数の指のジェスチャに従って調整される。例えば縮小率は、指の接触７５９、７６１、７６３、７６５及び７６７を更にピンチすることで減少する（すなわち、ウェブブラウザアプリケーションビュー７１２−６は更に縮小表示される）。あるいは、縮小率は、指の接触７５９、７６１、７６３、７６５及び７６７を非ピンチすることで増加する（すなわち、ウェブブラウザアプリケーションビュー７１２−６は、前より大きな寸法で表示される）。
【０２１７】
いくつかの実施形態において、複数の指のジェスチャの検出が中止される際、ウェブブラウザアプリケーションビュー７１２−６の表示が中止され、ホーム画面７０８全体が表示される。あるいは、複数の指のジェスチャの検出が中止される際、ホーム画面７０８全体が表示されるか又はウェブブラウザアプリケーションビュー７１２−６がフルスクリーン寸法で表示されるかが判定される。いくつかの実施形態において、複数の指のジェスチャの表示が中止される際、縮小率に基づいて判定が行われる（例えば、複数の指のジェスチャの検出が中止される際にアプリケーションビューが事前定義済みの閾値より小さな寸法で表示される場合、ホーム画面７０８全体が表示され、複数の指のジェスチャの検出が中止される際にアプリケーションビューが事前定義済みの閾値より大きな寸法で表示される場合、アプリケーションビューは、ホーム画面７０８を表示することなくフルスクリーン寸法で表示される）。いくつかの実施形態において、更に複数の指のジェスチャの速度に基づいて判定が行われる。
【０２１８】
図８Ａ及び図８Ｂは、いくつかの実施形態に係る事象認識方法８００を示すフローチャートである。方法８００は、タッチセンシティブディスプレイを備えた電子デバイス（例えば、図１Ｂのデバイス１０２）において実行される（８０２）。電子デバイスは、少なくとも第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションを実行するように構成される。第１のソフトウェアアプリケーションは、１つ以上のジェスチャレコグナイザの第１のセットを含み、第２のソフトウェアアプリケーションは、１つ以上のビュー及び１つ以上のジェスチャレコグナイザの第２のセットを含む（例えば図３Ｆにおいて、アプリケーション１３３−２はジェスチャレコグナイザ５１６−４を有し、アプリケーション１３３−１は、ジェスチャレコグナイザ５１６−１〜５６１−３、並びにビュー５０８、５１０及び５１２を有する）。各ジェスチャレコグナイザは、対応するジェスチャハンドラ（例えば、ジェスチャハンドラ５５２−１はジェスチャレコグナイザ５１６−１に対応し、ジェスチャハンドラ５５２−３はジェスチャレコグナイザ５１６−４に対応する）を有する。１つ以上のジェスチャレコグナイザの第１のセットは、一般に、１つ以上のジェスチャレコグナイザの第２のセットとは異なる。
【０２１９】
方法８００により、ユーザは、バックグラウンドアプリケーション、中断されたアプリケーション又は休止状態のアプリケーション等の電子デバイスのディスプレイに現在表示されていない、開いている非表示アプリケーション（例えば、第１のソフトウェアアプリケーション）をジェスチャにより制御できる。従って、ユーザは、電子デバイスのディスプレイに現在表示されているアプリケーション（例えば、第２のソフトウェアアプリケーション）により提供されないが、現在開いているアプリケーションのうちの１つにより提供される動作（例えば、非表示アプリケーションランチャソフトウェアアプリケーションに対するジェスチャを使用してホーム画面を表示すること又は次のソフトウェアアプリケーションに切り替わること）を実行できる。
【０２２０】
いくつかの実施形態において、第１のソフトウェアアプリケーションは、アプリケーションランチャ（例えば、スプリングボード）である（８０４）。例えば、図７Ａに示されたように、アプリケーションランチャは、複数のアプリケーションに対応する複数のアプリケーションアイコン５００２を表示する。アプリケーションランチャは、アプリケーションアイコン５００２のユーザ選択を受信し（例えば、タッチスクリーン１５６に対するフィンガージェスチャに基づいて）、ユーザ選択の受信に応答して、選択されたアプリケーションアイコン５００２に対応するアプリケーションを起動する。
【０２２１】
第２のソフトウェアアプリケーションは、一般に、アプリケーションランチャにより起動されたソフトウェアアプリケーションである。図７Ａ及び図７Ｂに示されたように、アプリケーションランチャは、電子メールアプリケーションアイコン５００２−３６に対するタップジェスチャ７０１に関する情報を受信し、電子メールアプリケーションを起動する。それに応答して、電子メールアプリケーションは、電子メールアプリケーションビュー７１２−１をタッチスクリーン１５６に表示する。第２のアプリケーションは、アプリケーションアイコン５００２（図７Ａ）に対応するあらゆるアプリケーション又はアプリケーションランチャにより起動可能な他のあらゆるアプリケーション（例えば、図７Ｃのメディアストアアプリケーション、図７Ｄのメモアプリケーション、図７Ｅのマップアプリケーション、７Ｆの天気アプリケーション、図７Ｇのウェブブラウザアプリケーション等）であってもよい。方法８００の以下の説明において、アプリケーションランチャは、例示的な第１のソフトウェアアプリケーションとして使用され、ウェブブラウザアプリケーションは、例示的な第２のソフトウェアアプリケーションとして使用される。
【０２２２】
いくつかの実施形態において、電子デバイスは、プログラム階層における２つのソフトウェアアプリケーション、すなわちアプリケーションランチャ及び他の１つのソフトウェアアプリケーション（一般に、電子デバイス１０２のタッチスクリーン１５６に表示された１つ以上のビューに対応するソフトウェアアプリケーション）しか有さない。
【０２２３】
いくつかの実施形態において、第１のソフトウェアアプリケーションはオペレーティングシステムアプリケーションである（８０６）。本明細書で使用されるように、オペレーティングシステムアプリケーションは、オペレーティングシステム１１８（図１Ａ〜図１Ｃ）と統合されるアプリケーションを示す。オペレーティングシステムアプリケーションは、一般に、図２のコアＯＳレベル２０８又はオペレーティングシステムＡＰＩソフトウェア２０６に常駐する。オペレーティングシステムアプリケーションが、一般にユーザにより取り外し不可であるのに対し、他のアプリケーションは、一般にユーザによりインストール又は削除されてもよい。いくつかの実施形態において、オペレーティングシステムアプリケーションはアプリケーションランチャを含む。いくつかの実施形態において、オペレーティングシステムアプリケーションは、設定アプリケーション（例えば、図１Ｃのデバイス／グローバル内部状態１３４においてシステム設定又は１つ以上の値を表示／変更するアプリケーション）を含む。いくつかの実施形態において、オペレーティングシステムアプリケーションはアクセシビリティモジュール１２７を含む。いくつかの実施形態において、電子デバイスは、プログラム階層における３つのソフトウェアアプリケーション、すなわちアプリケーションランチャ、設定アプリケーション及び他の１つのアプリケーション（一般に、電子デバイス１０２のタッチスクリーン１５６に表示された１つ以上のビューに対応するソフトウェアアプリケーション）しか有さない。
【０２２４】
電子デバイスは、第２のソフトウェアアプリケーションの１つ以上のビュー（例えば、図７Ｇのウェブブラウザアプリケーションビュー７１２−６）の少なくともサブセットを表示する（８０８）。
【０２２５】
いくつかの実施形態において、表示することは、第１のソフトウェアアプリケーションのビューを全く表示することなく第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットを表示することを含む（８１０）。例えば図７Ｇにおいて、アプリケーションランチャのビュー（例えば、ホーム画面７０８）は表示されない。
【０２２６】
いくつかの実施形態において、表示することは、他のいずれかのアプリケーションのビューを表示することなく第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットを表示することを含む（８１２）。例えば図７Ｇにおいて、ウェブブラウザアプリケーションの１つ以上のビューしか表示されない。
【０２２７】
第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットを表示している間、電子デバイスは、タッチセンシティブディスプレイに対するタッチ入力（例えば、タッチダウン事象及びタッチアップ事象を含むジェスチャ７０３、指の接触７０７、７０９及び７１１のタッチダウン、タッチスクリーン１５６にわたる指の接触７０７、７０９及び７１１の移動、並びに指の接触７０７、７０９及び７１１のリフトオフを含む別のジェスチャ）のシーケンスを検出する（８１４）。タッチ入力のシーケンスは、１つ以上のタッチ入力の第１の部分及び第１の部分に後続する１つ以上のタッチ入力の第２の部分を含む。本明細書で使用されるように、「シーケンス」という用語は、１つ以上のタッチ事象が発生する順序を示す。例えば、指の接触７０７、７０９及び７１１を含むタッチ入力のシーケンスにおいて、第１の部分は、指の接触７０７、７０９及び７１１のタッチダウンを含んでもよく、第２の部分は、指の接触７０７、７０９及び７１１の移動、並びに指の接触７０７、７０９及び７１１のリフトオフを含んでもよい。
【０２２８】
いくつかの実施形態において、１つ以上のタッチ入力の第１の部分におけるタッチ入力が第２のソフトウェアアプリケーションの表示されたビューのうちの少なくとも１つに少なくとも部分的に重なり合っている間に検出が行われる（８１６）。いくつかの実施形態において、タッチ入力が第２のソフトウェアアプリケーションの表示されたビューのうちの少なくとも１つに少なくとも部分的に重なり合うが、第１のソフトウェアアプリケーションは、１つ以上のタッチ入力の第１の部分を受信する。例えばアプリケーションランチャは、表示されないが、ウェブブラウザ（図７Ｇ）の表示されたビューに対するタッチ入力の第１の部分を受信する。
【０２２９】
タッチ入力のシーケンスを検出する第１の段階の間（８１８）、電子デバイスは、１つ以上のタッチ入力の第１の部分を第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションに配信し（８２０）（例えば、図３Ｄの事象ディスパッチャモジュール３１５を使用して）、１つ以上のタッチ入力の第１の部分を認識する１つ以上のマッチングジェスチャレコグナイザを第１のセットのジェスチャレコグナイザから識別し（８２２）（例えば、図３Ｄの第１のセットの各ジェスチャレコグナイザ（一般に、各受信側ジェスチャレコグナイザ）の事象比較部３０３３を使用して）、１つ以上のマッチングジェスチャレコグナイザに対応する（例えば、図３Ｄの対応する事象ハンドラ３１９を起動する）１つ以上のジェスチャハンドラにより１つ以上のタッチ入力の第１の部分を処理する（８２４）。
【０２３０】
いくつかの実施形態において、タッチ入力のシーケンスを検出する第１の段階は、１つ以上のタッチ入力の第１の部分を検出する段階である。
【０２３１】
配信動作（８２０）に関して、いくつかの実施形態において、第１のソフトウェアアプリケーションは、１つ以上の入力の第１の部分を受信した後に１つ以上のタッチ入力の第１の部分を第１のセットのジェスチャレコグナイザの少なくともサブセットに配信し、第２のソフトウェアアプリケーションは、１つ以上の入力の第１の部分を受信した後に１つ以上のタッチ入力の第１の部分を第２のセットのジェスチャレコグナイザの少なくともサブセットに配信する。いくつかの実施形態において、電子デバイス又は電子デバイスの事象ディスパッチャモジュール（例えば、図３Ｄの３１５）は、１つ以上のタッチ入力の第１の部分を第１のセット及び第２のセットのジェスチャレコグナイザの少なくともサブセットに配信する（例えば図３Ｆにおいて、事象ディスパッチャモジュール３１５は、１つ以上のタッチ入力の第１の部分をジェスチャレコグナイザ５１６−１、５１６−２及び５１６−４に配信する）。
【０２３２】
例えば、指の接触７０７、７０９及び７１１を含むフィンガージェスチャがタッチスクリーン１５６で検出される（図７Ｇ）場合、タッチダウン事象は、アプリケーションランチャの１つ以上のジェスチャレコグナイザ及びウェブブラウザアプリケーションの１つ以上のジェスチャレコグナイザに配信される。別の例において、タップジェスチャ７０３（図７Ｇ）のタッチダウン事象は、アプリケーションランチャの１つ以上のジェスチャレコグナイザ及びウェブブラウザアプリケーションの１つ以上のジェスチャレコグナイザに配信される。
【０２３３】
いくつかの実施形態において、第１のセットのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識しない（例えば、検出された事象とジェスチャ定義又はジェスチャとの不一致が完成しない）場合、１つ以上のタッチ入力の第１の部分を処理することは、ヌル操作を実行することを含む（例えばデバイスは、表示されたユーザインタフェースを更新しない）。
【０２３４】
いくつかの実施形態において、電子デバイスは、１つ以上のタッチ入力の第１の部分をレコグナイザ１つ以上のマッチングジェスチャレコグナイザを第２のセットのジェスチャレコグナイザから識別する。電子デバイスは、１つ以上のマッチングジェスチャレコグナイザに対応する１つ以上のジェスチャハンドラにより１つ以上のタッチ入力の第１の部分を処理する。例えば、ウェブブラウザアプリケーションの１つ以上のジェスチャレコグナイザに配信されたタップジェスチャ７０３（図７Ｇ）に応答して、ウェブブラウザアプリケーションのマッチングジェスチャレコグナイザ（例えば、図７Ｇのお気に入りアイコンに対するタップジェスチャを認識するジェスチャレコグナイザ）は、タッチスクリーン１５６にお気に入りのリストを表示することでタップジェスチャ７０３を処理する。
【０２３５】
いくつかの実施形態において、第１の段階に後続するタッチ入力のシーケンスを検出する第２の段階の間、電子デバイスは、１つ以上のタッチ入力の第２の部分を第２のソフトウェアアプリケーションに配信することなく第１のソフトウェアアプリケーションに配信し（図８Ｂの８２６）（例えば、図３Ｄの事象ディスパッチャモジュール３１５を使用して）、タッチ入力のシーケンスを認識する第２のマッチングジェスチャレコグナイザを１つ以上のマッチングジェスチャレコグナイザから識別し（例えば、図３Ｄの各マッチングジェスチャレコグナイザの事象比較部３０３３を使用して）、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する。いくつかの実施形態において、タッチ入力のシーケンスを検出する第２の段階は、１つ以上のタッチ入力の第２の部分を検出する段階である。
【０２３６】
例えば、指の接触７０７、７０９及び７１１を含むフィンガージェスチャがタッチスクリーン１５６で検出される（図７Ｇ）場合、タッチの移動及びリフトオフの事象は、タッチ事象をウェブブラウザアプリケーションに配信することなくアプリケーションランチャの１つ以上のジェスチャレコグナイザに配信される。電子デバイスは、アプリケーションランチャのマッチングジェスチャレコグナイザ（例えば、３本の指のスワイプアップジェスチャレコグナイザ）を識別し、３本の指のスワイプアップジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する。
【０２３７】
一般に、第１のソフトウェアアプリケーションが第２のソフトウェアアプリケーションより優先される（例えば、プログラム階層において）ため、第２のソフトウェアアプリケーションは、第２の段階の間に１つ以上のタッチ入力の第２の部分を受信しない。従って、いくつかの実施形態において、第１のソフトウェアアプリケーションのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識する場合、第１のソフトウェアアプリケーションの１つ以上のジェスチャレコグナイザは、１つ以上のタッチ入力の第２の後続部分を排他的に受信する。また、第２のソフトウェアアプリケーションのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分に一致しないため、第２のソフトウェアアプリケーションは、第２の段階の間に１つ以上のタッチ入力の第２の部分を受信しなくてもよい。
【０２３８】
いくつかの実施形態において、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理することは、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループをタッチセンシティブディスプレイの第１の事前定義済み領域に表示することと、第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットを同時に表示することとを含む（８３４）。例えば図７Ｈにおいて、事前定義済み領域７１６におけるアプリケーションアイコン５００４は、電子デバイスの同時に開いているアプリケーションに対応する。いくつかの実施形態において、事前定義済み領域７１６におけるアプリケーションアイコン５００４は、開いているアプリケーションのシーケンスに従って表示される。図７Ｈにおいて、電子デバイスは、事前定義済み領域７１６及びウェブブラウザアプリケーションビュー７１２−６のサブセットを同時に表示する。
【０２３９】
いくつかの実施形態において、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理することは、第１のソフトウェアアプリケーションの１つ以上のビューを表示することを含む（８２８）。例えば、複数の指のピンチジェスチャ（図７Ｒ）に応答して、電子デバイスはホーム画面７０８（図７Ａ）を表示する。いくつかの実施形態において、第１のソフトウェアアプリケーションの１つ以上のビューを表示することは、他のいずれかのソフトウェアアプリケーション（例えば、図７Ａ）に対応するビューを同時に表示することなく第１のソフトウェアアプリケーションの１つ以上のビューを表示することを含む。
【０２４０】
いくつかの実施形態において、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理することは、第２のソフトウェアアプリケーションの１つ以上のビューの表示を第１のソフトウェアアプリケーションの１つ以上のビューの表示に置換する（例えば、図７Ａのホーム画面７０８を表示する）ことを含む（８３０）。従って、第２のソフトウェアアプリケーションの１つ以上のビューの表示は、第１のソフトウェアアプリケーションの１つ以上のビューが表示された後に中止される。いくつかの実施形態において、第２のソフトウェアアプリケーションの１つ以上のビューの表示を第１のソフトウェアアプリケーションの１つ以上のビューの表示に置換することは、他のいずれかのソフトウェアアプリケーション（図７Ａ）に対応するビューを同時に表示することなく第１のソフトウェアアプリケーションの１つ以上のビューを表示することを含む。
【０２４１】
いくつかの実施形態において、電子デバイスは、第１のソフトウェアアプリケーション、第２のソフトウェアアプリケーション及び第３のソフトウェアアプリケーションを同時に実行する（８３２）。いくつかの実施形態において、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理することは、第２のソフトウェアアプリケーションの表示された１つ以上のビューを第３のソフトウェアアプリケーションの１つ以上のビューに置換することを含む。例えば、複数の指のスワイプジェスチャに応答して、電子デバイスは、ウェブブラウザアプリケーションビュー７１２−６の表示を天気アプリケーションビュー７１２−５の表示に置換する（図７Ｊ及び図７Ｋ）。いくつかの実施形態において、第２のソフトウェアアプリケーションの表示された１つ以上のビューを第３のソフトウェアアプリケーションの１つ以上のビューに置換することは、他のいずれかのソフトウェアアプリケーションに対応するビューを同時に表示することなく第３のソフトウェアアプリケーションの１つ以上のビューを表示することを含む。いくつかの実施形態において、第３のソフトウェアアプリケーションは、開いているアプリケーションのシーケンスにおいて第２のソフトウェアアプリケーションに隣接する。
【０２４２】
いくつかの実施形態において、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理することは、設定アプリケーションを起動することを含む。例えば、１０本の指のタップジェスチャに応答して、電子デバイスは設定アプリケーションを起動する。
【０２４３】
尚、方法８００に関して上述した処理の詳細は、以下に説明する方法９００にも同様に適用可能である。簡潔にするために、以下においてこれら詳細は繰り返さない。
【０２４４】
図９Ａ〜図９Ｃは、事象認識方法９００を示すフローチャートである。方法９００は、タッチセンシティブディスプレイを備えた電子デバイスにおいて実行される（９０２）。電子デバイスは、少なくとも第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションを実行するように構成される。第１のソフトウェアアプリケーションは、１つ以上のジェスチャレコグナイザの第１のセットを含み、第２のソフトウェアアプリケーションは、１つ以上のビュー及び１つ以上のジェスチャレコグナイザの第２のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。いくつかの実施形態において、１つ以上のジェスチャレコグナイザの第１のセットは、１つ以上のジェスチャレコグナイザの第２のセットとは異なる。
【０２４５】
方法９００により、ユーザは、バックグラウンドアプリケーション、中断されたアプリケーション又は休止状態のアプリケーション等の電子デバイスのディスプレイに現在表示されていない、開いている非表示アプリケーション（例えば、第１のソフトウェアアプリケーション）をジェスチャにより制御できる。従って、ユーザは、電子デバイスのディスプレイに現在表示されているアプリケーション（例えば、第２のソフトウェアアプリケーション）により提供されないが、現在開いているアプリケーションのうちの１つにより提供される動作（例えば、非表示アプリケーションランチャソフトウェアアプリケーションに対するジェスチャを使用してホーム画面を表示すること又は次のソフトウェアアプリケーションに切り替わること）を実行できる。
【０２４６】
いくつかの実施形態において、第１のソフトウェアアプリケーションはアプリケーションランチャ（例えば、スプリングボード）である（９０４）。いくつかの実施形態において、第１のソフトウェアアプリケーションはオペレーティングシステムアプリケーションである（９０６）。方法９００の以下の説明において、アプリケーションランチャは、例示的な第１のソフトウェアアプリケーションとして使用され、ウェブブラウザアプリケーションは、例示的な第２のソフトウェアアプリケーションとして使用される。
【０２４７】
電子デバイスは、１つ以上のビュー（例えば、図７Ｇのウェブブラウザアプリケーションビュー７１２−６）の第１のセットを表示する（９０８）。１つ以上のビューの第１のセットは、第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットを含む。例えば、第２のソフトウェアアプリケーションは、複数のアプリケーションビュー（例えば、図３Ｄのアプリケーション１３３−１のアプリケーションビュー３１７）を有してもよく、電子デバイスは、複数のアプリケーションビューのうちの少なくとも１つのビューを表示する。いくつかの実施形態において、サブセットは、第２のソフトウェアアプリケーションの１つ以上のビュー全体を含む。
【０２４８】
いくつかの実施形態において、１つ以上のビューの第１のセットを表示することは、第１のソフトウェアアプリケーションのビュー（例えば、図７Ｇのウェブブラウザアプリケーションビュー７１２−６）を全く表示することなく１つ以上のビューの第１のセットを表示することを含む（９１０）。
【０２４９】
いくつかの実施形態において、１つ以上のビューの第１のセットを表示することは、他のいずれかのソフトウェアアプリケーションのビューを表示することなく１つ以上のビューの第１のセットを表示することを含む（９１２）。例えば図７Ｇにおいて、ウェブブラウザアプリケーションの１つ以上のビューしか表示されない。
【０２５０】
１つ以上のビューの第１のセットを表示している間、電子デバイスは、タッチセンシティブディスプレイに対するタッチ入力のシーケンスを検出し（９１４）、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識するかを判定する（９２０）。例えば、ウェブブラウザアプリケーションビュー７１２−６（図７Ｇ）を表示している間、デバイスは、アプリケーションランチャに対するジェスチャレコグナイザがタッチ入力の第１の部分を認識するかを判定する。タッチ入力のシーケンスは、１つ以上のタッチ入力の第１の部分及び第１の部分に後続する１つ以上のタッチ入力の第２の部分（すなわち、第２の部分は第１の部分の後である）を含む。
【０２５１】
いくつかの実施形態において、タッチ入力のシーケンスは、第２のソフトウェアアプリケーションの表示された１つ以上のビューのうちの少なくとも１つに少なくとも部分的に重なり合う（９１６）。例えば、アプリケーションランチャは、表示されないが、ウェブブラウザアプリケーションビュー７１２−６（図７Ｇ）に対するタッチ入力の第１の部分を受信する。
【０２５２】
いくつかの実施形態において、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識すると判定する前に、電子デバイスは、１つ以上のタッチ入力の第１の部分を第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションに同時に配信する（９１８）。例えば、アプリケーションランチャ及びウェブブラウザアプリケーションの双方は、アプリケーションランチャの少なくとも１つのジェスチャレコグナイザがタッチダウン事象を認識すると判定する前に、指の接触７０７、７０９及び７１１（図７Ｇ）のタッチダウン事象を受信する。
【０２５３】
１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識すると判定することに従って（図９Ｂの９２２）、電子デバイスは、タッチ入力のシーケンスを第２のソフトウェアアプリケーションに配信することなく第１のソフトウェアアプリケーションに配信し（９２４）、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定し（９２６）、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する（９２８）。
【０２５４】
例えば、３本の指の接触７０７、７０９及び７１１のタッチダウン及びタッチの移動がタッチスクリーン１５６で検出される（図７Ｇ）場合、電子デバイスは、アプリケーションランチャの少なくとも３本の指のスワイプアップジェスチャレコグナイザがタッチ入力を認識することを識別する。その後、電子デバイスは、後続のタッチ事象（例えば、指の接触７０７、７０９及び７１１のリフトオフ）をウェブブラウザアプリケーションに配信することなくアプリケーションランチャに配信する。電子デバイスは、３本の指のスワイプアップジェスチャレコグナイザがタッチ入力のシーケンスを認識することを更に識別し、３本の指のスワイプアップジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する。
【０２５５】
いくつかの実施形態において、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理することは、第１のソフトウェアアプリケーションの１つ以上のビューを表示することを含む（９３０）。例えば、複数の指のピンチジェスチャ（図７Ｒ）の検出に応答して、電子デバイスはホーム画面７０８（図７Ａ）を表示する。
【０２５６】
いくつかの実施形態において、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理することは、１つ以上のビューの第１のセットの表示を第１のソフトウェアアプリケーションの１つ以上のビューの表示に置換する（例えば、アプリケーションランチャソフトウェアアプリケーションの一部である図７Ａのホーム画面７０８を表示する）ことを含む（９３２）。
【０２５７】
いくつかの実施形態において、電子デバイスは、第１のソフトウェアアプリケーション、第２のソフトウェアアプリケーション及び第３のソフトウェアアプリケーションを同時に実行し、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理することは、１つ以上のビューの第１のセットを第３のソフトウェアアプリケーションの１つ以上のビューに置換することを含む（９３４）。いくつかの実施形態において、１つ以上のビューの第１のセットを第３のソフトウェアアプリケーションの１つ以上のビューに置換することは、他のいずれかのソフトウェアアプリケーションに対応するビューを同時に表示することなく第３のソフトウェアアプリケーションの１つ以上のビューを表示することを含む。例えば、複数の指のスワイプジェスチャに応答して、電子デバイスは、ウェブブラウザアプリケーションビュー７１２−６の表示を天気アプリケーションビュー７１２−５の表示に置換する（図７Ｊ及び図７Ｋ）。
【０２５８】
いくつかの実施形態において、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理することは、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループをタッチセンシティブディスプレイの第１の事前定義済み領域に表示することと、１つ以上のビューの少なくともサブセットを同時に表示することとを含む（９３６）。例えば図７Ｈにおいて、事前定義済み領域７１６におけるアプリケーションアイコン５００４は、電子デバイスの同時に開いているアプリケーションに対応する。いくつかの実施形態において、事前定義済み領域７１６におけるアプリケーションアイコン５００４は、開いているアプリケーションのシーケンスに従って表示される。図７Ｈにおいて、電子デバイスは、事前定義済み領域７１６及びウェブブラウザアプリケーションビュー７１２−６のサブセットを同時に表示する。
【０２５９】
１つ以上のジェスチャレコグナイザの第１のセットのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識しないと判定することに従って（図９Ｃの９３８）、電子デバイスは、タッチ入力のシーケンスを第２のソフトウェアアプリケーションに配信し（９４０）、１つ以上のジェスチャレコグナイザの第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定し（９４２）、１つ以上のジェスチャレコグナイザの第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する１つ以上のジェスチャレコグナイザの第２のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する（９４４）。
【０２６０】
例えば、１つ以上のタッチ入力の第１の部分がタッチジェスチャ（例えば、図７Ｇの７０３）であり、且つアプリケーションランチャのジェスチャレコグナイザがタップジェスチャを認識しない場合、電子デバイスは、タップジェスチャをウェブブラウザアプリケーションに配信し、ウェブブラウザアプリケーションの少なくとも１つのジェスチャレコグナイザがタップジェスチャを認識するかを判定する。ウェブブラウザアプリケーション（又はウェブブラウザアプリケーションのジェスチャレコグナイザ）がお気に入りアイコンに対するタップジェスチャ７０３を認識する場合、電子デバイスは、対応するジェスチャハンドラによりタップジェスチャ７０３を処理する。
【０２６１】
図１０Ａ及び図１０Ｂは、いくつかの実施形態に係る事象認識方法を示すフローチャートである。尚、方法６００、８００及び９００に関して上述した処理の詳細は、以下に説明する方法１０００にも同様に適用可能である。簡潔にするために、以下においてこれら詳細は繰り返さない。
【０２６２】
方法１０００は、ある内部状態（例えば、図１Ｃのデバイス／グローバル内部状態１３４）の電子デバイスにおいて実行される（１００２）。電子デバイスは、複数のビューを有するビュー階層を含むソフトウェアを実行するように構成される。
【０２６３】
方法１０００において、少なくとも１つのジェスチャレコグナイザは複数のジェスチャ定義を有する。これにより、ジェスチャレコグナイザが種々の別個の動作モードで動作しやすくする。例えばデバイスは、通常の動作モード及びアクセシビリティ動作モードを有してもよい。通常の動作モードにおいて、次のアプリケーションジェスチャは、アプリケーション間を移動するために使用され、３本の指の左スワイプジェスチャとして定義される。アクセシビリティ動作モードにおいて、３本の指の左スワイプジェスチャは、異なる機能を実行するために使用される。従って、３本の指の左スワイプとは異なるジェスチャは、次のアプリケーションジェスチャ（例えば、アクセシビリティ動作モードでの４本の指の左スワイプジェスチャ）に対応するためにアクセシビリティ動作モードで必要とされる。次のアプリケーションジェスチャと関連付けられた多数のジェスチャ定義を有することにより、デバイスは、現在の動作モードに依存して次のアプリケーションジェスチャのジェスチャ定義のうちの１つを選択できる。これにより、種々の動作モードでジェスチャレコグナイザを使用する際に柔軟性を提供する。いくつかの実施形態において、多数のジェスチャ定義を含む複数のジェスチャレコグナイザは、動作モードに依存して調整される（例えば、通常の動作モードで３本の指により実行されたジェスチャは、アクセシビリティ動作モードで４本の指により実行される）。
【０２６４】
いくつかの実施形態において、内部状態は、アクセシビリティ動作モード用の１つ以上の設定を含む（１０１６）（例えば内部状態は、デバイスがアクセシビリティ動作モードで動作しているかを示す）。
【０２６５】
いくつかの実施形態において、ソフトウェアは、アプリケーションランチャ（例えば、スプリングボード）である（１０１８）か、あるいはそれを含む。
【０２６６】
いくつかの実施形態において、ソフトウェアは、オペレーティングシステムアプリケーション（例えば、デバイスのオペレーティングシステムと統合されたアプリケーション）である（１０２０）か、あるいはそれを含む。
【０２６７】
電子デバイスは、ビュー階層の１つ以上のビューを表示する（１００４）。
【０２６８】
電子デバイスは、１つ以上のソフトウェア要素を実行する（１００６）。各ソフトウェア要素は、特定のビューと関連付けられ（例えば図３Ｄにおいて、アプリケーション１３３−１は１つ以上のアプリケーションビュー３１７を有する）、特定のビューの各々は、１つ以上の事象レコグナイザ（例えば、図３Ｄの事象レコグナイザ３２５）を含む。各事象レコグナイザは、１つ以上のサブ事象に基づく１つ以上の事象定義と、事象ハンドラ（例えば、図３Ｄのジェスチャ定義３０３５及び事象配信情報３０３９における対応する事象ハンドラに対する参照）とを有する。事象ハンドラは、対象に対する動作を規定し、１つ以上の事象定義のうちの特定の事象定義（例えば、事象レコグナイザが多数の事象定義を有する場合に１つ以上の事象定義から選択された事象定義又は事象レコグナイザが１つの事象定義しか有さない場合の唯一の事象定義）に対応する事象を検出する事象レコグナイザに応答して動作を対象に送出するように構成される。
【０２６９】
電子デバイスは、１つ以上のサブ事象のシーケンスを検出する（１００８）。
【０２７０】
電子デバイスは、ビュー階層のビューのうちの１つをヒットビューとして識別する（１０１０）。ヒットビューは、ビュー階層のどのビューが能動的に関わるビューであるかを明らかにする。
【０２７１】
電子デバイスは、ビュー階層内で能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信する（１０１２）。いくつかの実施形態において、ビュー階層における１つ以上の能動的に関わるビューはヒットビューを含む。いくつかの実施形態において、ビュー階層における１つ以上の能動的に関わるビューは、デフォルトビュー（例えば、アプリケーションランチャのホーム画面７０８）を含む。
【０２７２】
ビュー階層における能動的に関わるビューに対する少なくとも１つの事象レコグナイザは複数の事象定義を有し、そのうちの１つが電子デバイスの内部状態に従って選択される（１０１４）。例えば事象レコグナイザ３２５−１は、複数の事象定義（例えば、図３Ｄの３０３７−１及び３０３７−２）を有する。いくつかの実施形態において、事象レコグナイザ３２５−１は、デバイス／グローバル内部状態１３４（図１Ｃ）における１つ以上の値に基づいて事象レコグナイザ３２５−１における複数のジェスチャ定義のうちの１つを選択する。その後、少なくとも１つの事象レコグナイザは、選択された事象定義に従ってサブ事象のシーケンスにおける次のサブ事象を処理する前に各サブ事象を処理する。いくつかの実施形態において、ビュー階層における能動的に関わるビューに対する２つ以上の事象レコグナイザの各々は複数の事象定義を有し、そのうちの１つが電子デバイスの内部状態に従って選択される。そのような実施形態において、２つ以上の事象レコグナイザのうちの少なくとも１つは、選択された事象定義に従ってサブ事象のシーケンスにおける次のサブ事象を処理する前に各サブ事象を処理する。
【０２７３】
例えば図７Ｊ及び図７Ｋは、次のアプリケーションのアプリケーションビューの表示を開始する次のアプリケーションジェスチャを示す。いくつかの実施形態において、アプリケーションランチャは、３本の指の左スワイプジェスチャに一致するジェスチャ定義を含む次のアプリケーションジェスチャレコグナイザを含む。この例のために、次のアプリケーションジェスチャレコグナイザが４本の指の左スワイプジェスチャに対応するジェスチャ定義を更に含むと仮定する。デバイス／グローバル内部状態１３４における１つ以上の値がデフォルト値に設定される場合、次のアプリケーションジェスチャレコグナイザは、３本の指の左スワイプジェスチャ定義を使用し、４本の指の左スワイプジェスチャ定義を使用しない。デバイス／グローバル内部状態１３４における１つ以上の値が変更される（例えば、図１Ｃのアクセシビリティモジュール１２７を使用することで）場合、次のアプリケーションジェスチャレコグナイザは、４本の指の左スワイプジェスチャ定義を使用し、３本の指の左スワイプジェスチャ定義を使用しない。従って、この例において、デバイス／グローバル内部状態１３４における１つ以上の値が変更される場合、４本の指の左スワイプジェスチャは、次のアプリケーションのアプリケーションビューの表示を開始する。
【０２７４】
同様に、図７Ｒ及び図７Ｓは、ウェブブラウザアプリケーションビュー７１２−６を縮小表示することと、５本の指のピンチジェスチャの検出に応答してホーム画面７０８の少なくとも一部を表示することとをホーム画面ジェスチャが開始することを示す。デバイス／グローバル内部状態１３４及びホーム画面ジェスチャレコグナイザにおけるジェスチャ定義に基づいて、４本の指のピンチジェスチャ、３本の指のピンチジェスチャ又は他のあらゆる適切なジェスチャは、ウェブブラウザアプリケーションビュー７１２−６を縮小表示することと、ホーム画面７０８の少なくとも一部を表示することとを開始するために使用されてもよい。
【０２７５】
いくつかの実施形態において、複数の事象定義は、第１の数の指による第１のスワイプジェスチャに対応する第１の事象定義及び第１の数の指とは異なる第２の数の指による第２のスワイプジェスチャに対応する第２の事象定義を含む（１０２０）。例えば、各ジェスチャレコグナイザの複数の事象定義は、３本の指のスワイプジェスチャ及び４本の指のスワイプジェスチャを含んでもよい。
【０２７６】
いくつかの実施形態において、複数の事象定義は、第１の数の指による第１の種類の第１のジェスチャに対応する第１の事象定義及び第１の数の指とは異なる第２の数の指による第１の種類の第２のジェスチャに対応する第２の事象定義（例えば、１本の指のタップジェスチャ及び２本の指のタップジェスチャ、２本の指のピンチジェスチャ及び３本の指のピンチジェスチャ等）を含む。
【０２７７】
いくつかの実施形態において、複数の事象定義は、第１のジェスチャに対応する第１の事象定義及び第１のジェスチャとは異なる第２のジェスチャに対応する第２の事象定義（例えば、スワイプジェスチャ及びピンチジェスチャ、スワイプジェスチャ及びタップジェスチャ等）を含む。
【０２７８】
いくつかの実施形態において、複数の事象定義の各定義は、各事象定義が各事象レコグナイザ以外の能動的に関わるビューに対するいずれかの事象レコグナイザの事象定義に対応しないと判定すること（電子デバイスにより）と電子デバイスの内部状態とに従って各事象レコグナイザに対して選択される（１０２２）。
【０２７９】
例えば各事象レコグナイザは、２つの事象定義、すなわち一般に通常の動作モードに対して使用される３本の指の左スワイプジェスチャに対応する第１の事象定義と、一般にアクセシビリティ動作モードに対して使用される４本の指の左スワイプジェスチャに対応する第２の事象定義とを有してもよい。電子デバイスがアクセシビリティ動作モードで動作するように電子デバイスの内部状態が設定される場合、電子デバイスは、第２の事象定義に対する４本の指の左スワイプジェスチャが能動的に関わるビューに対する他のあらゆる事象レコグナイザにより使用されるかを判定する。４本の指の左スワイプジェスチャは、能動的に関わるビューに対する他のあらゆる事象レコグナイザにより使用されない場合、アクセシビリティ動作モードで各ジェスチャレコグナイザに対して選択される。一方、４本の指の左スワイプジェスチャが能動的に関わるビューに対する他のあらゆる事象レコグナイザにより使用される場合、３本の指の左スワイプジェスチャは、アクセシビリティ動作モードでも各ジェスチャレコグナイザに対して使用される。これにより、２つ以上の事象レコグナイザが望ましくなく同一のジェスチャに応答することを防止する。
【０２８０】
いくつかの実施形態において、複数の事象定義の各定義は、各事象定義が各事象レコグナイザ以外の事象レコグナイザ（能動的に関わるビュー及び他のあらゆるビューに対する事象レコグナイザを含む）の事象定義に対応しないと判定すること（電子デバイスにより）と電子デバイスの内部状態とに従って各事象レコグナイザに対して選択される。
【０２８１】
いくつかの実施形態において、ビュー階層における能動的に関わるビューに対する２つ以上の事象レコグナイザの各々は、複数の事象定義を有し、複数の事象定義の各事象定義は、各事象定義が各事象レコグナイザ以外の２つ以上の事象定義を含むいずれかの事象レコグナイザに対して選択されたいずれかの事象定義に対応しないと判定すること（電子デバイスにより）と電子デバイスの内部状態とに従って各事象レコグナイザに対して選択される（１０２４）。
【０２８２】
例えば能動的に関わるビューは、第１のジェスチャレコグナイザ及び第２のジェスチャレコグナイザを有してもよい。この例において、第１のジェスチャレコグナイザは、一般に通常の動作モードに対して使用される３本の指の左スワイプジェスチャに対応する第１の事象定義と、一般にアクセシビリティ動作モードに対して使用される４本の指の左スワイプジェスチャに対応する第２の事象定義とを有してもよい。第２のジェスチャレコグナイザは、一般に通常の動作モードに対して使用される２本の指の左スワイプジェスチャに対応する第３の事象定義と、一般にアクセシビリティ動作モードに対して使用される４本の指の左スワイプジェスチャに対応する第４の事象定義とを有する。電子デバイスがアクセシビリティモードで動作するように電子デバイスの内部状態が設定される場合、電子デバイスは、第２の事象定義を満たす４本の指の左スワイプジェスチャが２つ以上の事象定義を含む他のいずれかの事象レコグナイザ（例えば、第２の事象ジェスチャレコグナイザ）に対して選択されるかを判定する。４本の指の左スワイプジェスチャは、２つ以上の事象定義を含む他のいずれかの事象レコグナイザに対して選択されない場合、アクセシビリティ動作モードで第１のジェスチャレコグナイザに対して選択される。その結果、４本の指の左スワイプジェスチャは、第１のジェスチャレコグナイザに対して既に選択されているため、第２のジェスチャレコグナイザに対して選択されない。その代わりに、２本の指の左スワイプジェスチャは、第１のジェスチャレコグナイザを含む２つ以上の事象定義を含む他のいずれかのジェスチャレコグナイザに対して選択されないため、第２のジェスチャレコグナイザに対して選択される。別の例において、能動的に関わるビューは、第２のジェスチャレコグナイザを有さずに第１のジェスチャレコグナイザ及び第３のジェスチャレコグナイザを有する。第３のジェスチャレコグナイザは、一般に通常の動作モードに対して使用される第３の事象定義（２本の指の左スワイプジェスチャに対応する）と、一般にアクセシビリティ動作モードに対して使用される３本の指の左スワイプジェスチャに対応する第５の事象定義とを有する。アクセシビリティ動作モードにおいて、３本の指の左スワイプジェスチャは、２つ以上の事象定義を含む他のいずれかのジェスチャレコグナイザに対して選択されないため、第３のジェスチャレコグナイザに対して選択可能である。
【０２８３】
上述の例は複数の指の左スワイプジェスチャに対して説明されたが、上述の方法は、あらゆる方向のスワイプジェスチャ（例えば、右スワイプジェスチャ、スワイプアップジェスチャ、スワイプダウンジェスチャ及び／又はあらゆる斜めのスワイプジェスチャ）、あるいは他のあらゆる種類のジェスチャ（例えば、タップジェスチャ、ピンチジェスチャ、非ピンチジェスチャ等）に当てはまる。
【０２８４】
いくつかの実施形態において、選択された事象定義に従って各サブ事象を処理することは、ビュー階層を含むソフトウェアとは異なる第１のソフトウェアアプリケーションの１つ以上のビューを表示する（例えば図７Ｓにおいて、ソフトウェアの１つ以上のビュー及びホーム画面７０８の一部を含むユーザインタフェース７１２−６の少なくとも一部を同時に表示する）ことを含む（１０２６）。
【０２８５】
いくつかの実施形態において、少なくとも１つの事象レコグナイザは、ビュー階層の１つ以上のビューの表示をビュー階層を含むソフトウェアとは異なる第１のソフトウェアアプリケーションの１つ以上のビュー（例えば、図７Ａのホーム画面７０８）の表示に置換することで各サブ事象を処理する（１０２８）。
【０２８６】
いくつかの実施形態において、少なくとも１つの事象レコグナイザは、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループを電子デバイスのディスプレイの第１の事前定義済み領域に表示することと、ビュー階層の１つ以上のビュー（例えば、図７Ｈの開いているアプリケーションアイコン５００４及びユーザインタフェース７１２−６の少なくとも一部）の少なくともサブセットを同時に表示することとにより各サブ事象を処理する（１０３０）。例えば電子デバイスは、通常の動作モードでの３本の指のスワイプアップジェスチャ及びアクセシビリティ動作モードでの４本の指の左スワイプアップジェスチャに応答して、開いているアプリケーションアイコンのグループ及びビュー階層の１つ以上のビューの少なくともサブセットを同時に表示する。
【０２８７】
いくつかの実施形態によると、図１１は、上述の本発明の原理に従って構成された電子デバイス１１００を示す機能ブロック図である。デバイスの機能ブロックは、本発明の原理を実行するようにハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組合せにより実現されてもよい。図１１に示される機能ブロックは、上述の本発明の原理を実現するように組み合わされるかあるいはサブブロックに分割されてもよいことが当業者により理解される。従って、本明細書の説明は、本明細書で説明される機能ブロックのあらゆる可能な組合せ又は分割、あるいは更なる定義を支持してもよい。
【０２８８】
図１１に示されるように、電子デバイス１１００は、タッチ入力を受信するように構成されたタッチセンシティブディスプレイユニット１１０２と、タッチセンシティブディスプレイユニット１１０２に結合された処理ユニット１１０６とを備える。いくつかの実施形態において、処理ユニット１１０６は、実行ユニット１１０８と、表示有効ユニット１１１０と、検出ユニット１１１２と、配信ユニット１１１４と、識別ユニット１１１６と、タッチ入力処理ユニット１１１８とを備える。
【０２８９】
処理ユニット１１０６は、少なくとも第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションを実行する（例えば、実行ユニット１１０８により）ように構成される。第１のソフトウェアアプリケーションは、１つ以上のジェスチャレコグナイザの第１のセットを含み、第２のソフトウェアアプリケーションは、１つ以上のビュー及び１つ以上のジェスチャレコグナイザの第２のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。処理ユニット１１０６は、第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットの表示を有効にする（例えば、タッチセンシティブディスプレイユニット１１０２に対する表示有効ユニット１１１０により）ように構成される。処理ユニット１１０６は、第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットを表示している間、タッチセンシティブディスプレイユニット１１０２に対するタッチ入力のシーケンスを検出する（例えば、検出ユニット１１１２により）ように構成される。タッチ入力のシーケンスは、１つ以上のタッチ入力の第１の部分及び第１の部分に後続する１つ以上のタッチ入力の第２の部分を含む。処理ユニット１１０６は、タッチ入力のシーケンスを検出する第１の段階の間、１つ以上のタッチ入力の第１の部分を第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションに配信し（例えば、配信ユニット１１１４により）、１つ以上のタッチ入力の第１の部分を認識する１つ以上のマッチングジェスチャレコグナイザを第１のセットのジェスチャレコグナイザから識別し（例えば、識別ユニット１１１６により）、且つ１つ以上のマッチングジェスチャレコグナイザに対応する１つ以上のジェスチャハンドラにより１つ以上のタッチ入力の第１の部分を処理する（例えば、タッチ入力処理ユニット１１１８により）ように構成される。
【０２９０】
いくつかの実施形態において、処理ユニット１１０６は、１つ以上のタッチ入力の第１の部分におけるタッチ入力が第２のソフトウェアアプリケーションの表示されたビューのうちの少なくとも１つに少なくとも部分的に重なり合っている間、タッチ入力のシーケンスを検出する（例えば、検出ユニット１１１２により）ように構成される。
【０２９１】
いくつかの実施形態において、処理ユニット１１０６は、第１のソフトウェアアプリケーションのビューを全く表示することなく第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットの表示を有効にする（例えば、タッチセンシティブディスプレイユニット１１０２に対する表示有効ユニット１１１０により）ように構成される。
【０２９２】
いくつかの実施形態において、処理ユニット１１０６は、他のいずれかのアプリケーションのビューを表示することなく第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットの表示を有効にする（例えば、タッチセンシティブディスプレイユニット１１０２に対する表示有効ユニット１１１０により）ように構成される。
【０２９３】
いくつかの実施形態において、処理ユニット１１０６は、第１の段階に後続するタッチ入力のシーケンスを検出する第２の段階の間、１つ以上のタッチ入力の第２の部分を第２のソフトウェアアプリケーションに配信することなく第１のソフトウェアアプリケーションに配信し（例えば、配信ユニット１１１４により）、タッチ入力のシーケンスを認識する第２のマッチングジェスチャレコグナイザを１つ以上のマッチングジェスチャレコグナイザから識別し（例えば、識別ユニット１１１６により）、且つ各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する（例えば、タッチ入力処理ユニット１１１８により）ように構成される。
【０２９４】
いくつかの実施形態において、処理ユニット１１０６は、第１のソフトウェアアプリケーションの１つ以上のビューの表示を有効にすることにより、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する（例えば、タッチセンシティブディスプレイユニット１１０２に対する表示有効ユニット１１１０により）ように構成される。
【０２９５】
いくつかの実施形態において、処理ユニット１１０６は、第２のソフトウェアアプリケーションの１つ以上のビューの表示を第１のソフトウェアアプリケーションの１つ以上のビューの表示に置換することにより、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する（例えば、タッチセンシティブディスプレイユニット１１０２に対する表示有効ユニット１１１０により）ように構成される。
【０２９６】
いくつかの実施形態において、処理ユニット１１０６は、第１のソフトウェアアプリケーション、第２のソフトウェアアプリケーション及び第３のソフトウェアアプリケーションを同時に実行し（例えば、実行ユニット１１０８により）、且つ第２のソフトウェアアプリケーションの表示された１つ以上のビューを第３のソフトウェアアプリケーションの１つ以上のビューに置換することにより、各マッチングジェスチャレコグナイザに対応するジェスチャハンドラによりタッチ入力のシーケンスを処理する（例えば、タッチセンシティブディスプレイユニット１１０２に対する表示有効ユニット１１１０により）ように構成される。
【０２９７】
いくつかの実施形態において、処理ユニット１１０６は、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループの表示をタッチセンシティブディスプレイユニット１１０２の第１の事前定義済み領域において有効にし（例えば、表示有効ユニット１１１０により）、且つ第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットの同時表示を有効にする（例えば、表示有効ユニット１１１０により）ように構成される。
【０２９８】
いくつかの実施形態において、第１のソフトウェアアプリケーションはアプリケーションランチャである。
【０２９９】
いくつかの実施形態において、第１のソフトウェアアプリケーションはオペレーティングシステムアプリケーションである。
【０３００】
いくつかの実施形態によると、図１２は、上述の本発明の原理に従って構成された電子デバイス１２００を示す機能ブロック図である。デバイスの機能ブロックは、本発明の原理を実行するようにハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組合せにより実現されてもよい。図１２に示される機能ブロックは、上述の本発明の原理を実現するように組み合わされるかあるいはサブブロックに分割されてもよいことが当業者により理解される。従って、本明細書の説明は、本明細書で説明される機能ブロックのあらゆる可能な組合せ又は分割、あるいは更なる定義を支持してもよい。
【０３０１】
図１２に示されるように、電子デバイス１２００は、タッチ入力を受信するように構成されたタッチセンシティブディスプレイユニット１２０２と、タッチセンシティブディスプレイユニット１２０２に結合された処理ユニット１２０６とを備える。いくつかの実施形態において、処理ユニット１２０６は、実行ユニット１２０８と、表示有効ユニット１２１０と、検出ユニット１２１２と、判定ユニット１２１４と、配信ユニット１２１６と、タッチ入力処理ユニット１２１８とを備える。
【０３０２】
処理ユニット１２０６は、少なくとも第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションを実行する（例えば、実行ユニット１２０８により）ように構成される。第１のソフトウェアアプリケーションは、１つ以上のジェスチャレコグナイザの第１のセットを含み、第２のソフトウェアアプリケーションは、１つ以上のビュー及び１つ以上のジェスチャレコグナイザの第２のセットを含む。各ジェスチャレコグナイザは対応するジェスチャハンドラを有する。処理ユニット１２０６は、１つ以上のビューの第１のセットの表示を有効にする（例えば、タッチセンシティブディスプレイユニット１２０２に対する表示有効ユニット１２１０により）ように構成される。１つ以上のビューの第１のセットは、第２のソフトウェアアプリケーションの１つ以上のビューの少なくともサブセットを含む。処理ユニット１２０６は、１つ以上のビューの第１のセットを表示している間、タッチセンシティブディスプレイユニットに対するタッチ入力のシーケンスを検出する（例えば、検出ユニット１２１２により）ように構成される。タッチ入力のシーケンスは、１つ以上のタッチ入力の第１の部分及び第１の部分に後続する１つ以上のタッチ入力の第２の部分を含む。処理ユニット１２０６は、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識するかを判定する（例えば、判定ユニット１２１４により）ように構成される。処理ユニット１２０６は、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識すると判定することに従って、タッチ入力のシーケンスを第２のソフトウェアアプリケーションに配信することなく第１のソフトウェアアプリケーションに配信し（例えば、配信ユニット１２１６により）、且つ１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定する（例えば、判定ユニット１２１４により）ように構成される。処理ユニット１２０６は、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する（例えば、タッチ入力処理ユニット１２１８により）ように構成される。処理ユニット１２０６は、１つ以上のジェスチャレコグナイザの第１のセットのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識しないと判定することに従って、タッチ入力のシーケンスを第２のソフトウェアアプリケーションに配信し（例えば、配信ユニット１２１６により）、且つ１つ以上のジェスチャレコグナイザの第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識するかを判定する（例えば、判定ユニット１２１４により）ように構成される。処理ユニット１２０６は、１つ以上のジェスチャレコグナイザの第２のセットの少なくとも１つのジェスチャレコグナイザがタッチ入力のシーケンスを認識すると判定することに従って、タッチ入力のシーケンスを認識する１つ以上のジェスチャレコグナイザの第２のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する（例えば、タッチ入力処理ユニット１２１８により）ように構成される。
【０３０３】
いくつかの実施形態において、タッチ入力のシーケンスは、第２のソフトウェアアプリケーションの表示された１つ以上のビューのうちの少なくとも１つに少なくとも部分的に重なり合う。
【０３０４】
いくつかの実施形態において、処理ユニット１２０６は、第１のソフトウェアアプリケーションを全く表示することなく１つ以上のビューの第１のセットの表示を有効にする（例えば、タッチセンシティブディスプレイユニット１２０２に対する表示有効ユニット１２１０により）ように構成される。
【０３０５】
いくつかの実施形態において、処理ユニット１２０６は、他のいずれかのアプリケーションのビューを表示することなく１つ以上のビューの第１のセットの表示を有効にする（例えば、タッチセンシティブディスプレイユニット１２０２に対する表示有効ユニット１２１０により）ように構成される。
【０３０６】
いくつかの実施形態において、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザが１つ以上のタッチ入力の第１の部分を認識すると判定する前に、処理ユニット１２０６は、１つ以上のタッチ入力の第１の部分を第１のソフトウェアアプリケーション及び第２のソフトウェアアプリケーションに同時に配信する（例えば、配信ユニット１２１６により）ように構成される。
【０３０７】
いくつかの実施形態において、第１のソフトウェアアプリケーションはアプリケーションランチャである。
【０３０８】
いくつかの実施形態において、第１のソフトウェアアプリケーションはオペレーティングシステムアプリケーションである。
【０３０９】
いくつかの実施形態において、処理ユニット１２０６は、第１のソフトウェアアプリケーションの１つ以上のビューを表示することを有効にすることにより、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する（例えば、タッチセンシティブディスプレイユニット１２０２に対する表示有効ユニット１２０８により）ように構成される。
【０３１０】
いくつかの実施形態において、処理ユニット１２０６は、１つ以上のビューの第１のセットの表示を第１のソフトウェアアプリケーションの１つ以上のビューの表示に置換することにより、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する（例えば、タッチセンシティブディスプレイユニット１２０２に対する表示有効ユニット１２０８により）ように構成される。
【０３１１】
いくつかの実施形態において、処理ユニット１２０６は、第１のソフトウェアアプリケーション、第２のソフトウェアアプリケーション及び第３のソフトウェアアプリケーションを同時に実行する（例えば、実行ユニット１２０８により）ように構成される。処理ユニット１２０６は、１つ以上のビューの第１のセットを第３のソフトウェアアプリケーションの１つ以上のビューに置換することにより、１つ以上のジェスチャレコグナイザの第１のセットの少なくとも１つのジェスチャレコグナイザによりタッチ入力のシーケンスを処理する（例えば、タッチセンシティブディスプレイユニット１２０２に対する表示有効ユニット１２１０により）ように構成される。
【０３１２】
いくつかの実施形態において、処理ユニット１２０６は、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループの表示をタッチセンシティブディスプレイユニット１２０２の第１の事前定義済み領域において有効にし（例えば、表示有効ユニット１２１０により）、且つ１つ以上のビューの第１のセットの少なくともサブセットを同時に表示する（例えば、表示有効ユニット１２１０により）ように構成される。
【０３１３】
いくつかの実施形態によると、図１３は、上述の本発明の原理に従って構成された電子デバイス１３００を示す機能ブロック図である。デバイスの機能ブロックは、本発明の原理を実行するようにハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組合せにより実現されてもよい。図１３に示される機能ブロックは、上述の本発明の原理を実現するように組み合わされるかあるいはサブブロックに分割されてもよいことが当業者により理解される。従って、本明細書の説明は、本明細書で説明される機能ブロックのあらゆる可能な組合せ又は分割、あるいは更なる定義を支持してもよい。
【０３１４】
図１３に示されるように、電子デバイス１３００は、１つ以上のビューを表示するように構成された表示ユニット１３０２と、内部状態を格納するように構成されたメモリユニット１３０４と、表示ユニット１３０２及びメモリユニット１３０４に結合された処理ユニット１３０６とを備える。いくつかの実施形態において、処理ユニット１３０６は、実行ユニット１３０８と、表示有効ユニット１３１０と、検出ユニット１３１２と、識別ユニット１３１４と、配信ユニット１３１６と、事象／サブ事象処理ユニット１３１８とを備える。いくつかの実施形態において、処理ユニット１３０６はメモリユニット１３０４を備える。
【０３１５】
処理ユニット１３０６は、複数のビューを有するビュー階層を含むソフトウェアを実行し（例えば、実行ユニット１３０８により）、ビュー階層の１つ以上のビューの表示を有効にし（例えば、表示ユニット１３０２に対する表示有効ユニット１３１０により）、且つ１つ以上のソフトウェア要素を実行する（例えば、実行ユニット１３０８により）ように構成される。各ソフトウェア要素は特定のビューと関連付けられ、特定のビューの各々は１つ以上の事象レコグナイザを含む。各事象レコグナイザは、１つ以上のサブ事象に基づく１つ以上の事象定義と、事象ハンドラとを有する。事象ハンドラは、対象に対する動作を規定し、１つ以上の事象定義のうちの特定の事象定義に対応する事象を検出する事象レコグナイザに応答して動作を対象に送出するように構成される。処理ユニット１３０６は、１つ以上のサブ事象のシーケンスを検出し（例えば、検出ユニット１３１２により）、且つビュー階層のビューのうちの１つをヒットビューとして識別する（例えば、識別ユニット１３１４により）ように構成される。ヒットビューは、ビュー階層のどのビューが能動的に関わるビューであるかを明らかにする。処理ユニット１３０６は、ビュー階層内の能動的に関わるビュー毎にそれぞれのサブ事象を事象レコグナイザに配信する（例えば、配信ユニット１３１６により）ように構成される。ビュー階層における能動的に関わるビューに対する少なくとも１つの事象レコグナイザは複数の事象定義を有し、そのうちの１つが電子デバイスの内部状態に従って選択され、少なくとも１つの事象レコグナイザは、選択された事象定義に従ってサブ事象のシーケンスにおける次のサブ事象を処理する前に各サブ事象を処理する（例えば、事象／サブ事象処理ユニット１３１８により）。
【０３１６】
いくつかの実施形態において、複数の事象定義は、第１の数の指による第１のスワイプジェスチャに対応する第１の事象定義及び第１の数の指とは異なる第２の数の指による第２のスワイプジェスチャに対応する第２の事象定義を含む。
【０３１７】
いくつかの実施形態において、内部状態は、アクセシビリティ動作モードに対する１つ以上の設定を含む。
【０３１８】
いくつかの実施形態において、複数の事象定義の各定義は、各事象定義が各事象レコグナイザ以外の能動的に関わるビューに対するいずれかの事象レコグナイザの事象定義に対応しないと判定することと電子デバイスの内部状態とに従って各事象レコグナイザに対して選択される。
【０３１９】
いくつかの実施形態において、ビュー階層における能動的に関わるビューに対する２つ以上の事象レコグナイザの各々は、複数の事象定義を有し、複数の事象定義の各定義は、各事象定義が各事象レコグナイザ以外の２つ以上の事象定義を含むいずれかの事象レコグナイザに対して選択されたいずれかの事象定義に対応しないと判定することと電子デバイスの内部状態とに従って各事象レコグナイザに対して選択される。
【０３２０】
いくつかの実施形態において、処理ユニット１３０６は、ビュー階層を含むソフトウェアとは異なる第１のソフトウェアアプリケーションの１つ以上のビューの表示を有効にすることにより、選択された事象定義に従って各サブ事象を処理する（例えば、表示ユニット１３０２に対する表示有効ユニット１３１０により）ように構成される。
【０３２１】
いくつかの実施形態において、処理ユニット１３０６は、ビュー階層の１つ以上のビューの表示を、ビュー階層を含むソフトウェアとは異なる第１のソフトウェアアプリケーションの１つ以上のビューの表示に置換することにより、各サブ事象を処理する（例えば、表示ユニット１３０２に対する表示有効ユニット１３１０により）ように構成される。
【０３２２】
いくつかの実施形態において、処理ユニット１３０６は、同時に開いている複数のアプリケーションのうちの少なくともいくつかに対応する、開いているアプリケーションアイコンのグループの表示を表示ユニット１３０２の第１の事前定義済み領域において有効にし（例えば、表示有効ユニット１３１０により）、且つビュー階層の１つ以上のビューの少なくともサブセットの同時表示を有効にする（例えば、表示有効ユニット１３１０により）ように構成される。
【０３２３】
いくつかの実施形態において、ソフトウェアはアプリケーションランチャである。
【０３２４】
いくつかの実施形態において、ソフトウェアはオペレーティングシステムアプリケーションである。
【０３２５】
説明の目的で、特定の実施形態を参照して上記説明を行った。しかし、上記の例示的な説明は、本発明を網羅すること又は開示された厳密な形式に限定することを意図しない。多くの変更及び変形が上記教示に鑑みて可能である。本発明の原理及びその実際的な応用例を最適に説明するために実施形態を選択して説明した。これにより、当業者は、考えられる特定の用途に適するような本発明及び種々の変更を含む種々の実施形態を最適に利用できる。 
【図１Ａ】
0005980368.tif 000006
【図１Ｂ】
0005980368.tif 000007
【図１Ｃ】
0005980368.tif 000008
【図２】
0005980368.tif 000009
【図３Ａ】
0005980368.tif 000010
【図３Ｂ】
0005980368.tif 000011
【図３Ｃ】
0005980368.tif 000012
【図３Ｄ】
0005980368.tif 000013
【図３Ｅ】
0005980368.tif 000014
【図３Ｆ】
0005980368.tif 000015
【図４Ａ】
0005980368.tif 000016
【図４Ｂ】
0005980368.tif 000017
【図４Ｃ】
0005980368.tif 000018
【図５Ａ】
0005980368.tif 000019
【図５Ｂ】
0005980368.tif 000020
【図５Ｃ】
0005980368.tif 000021
【図６Ａ】
0005980368.tif 000022
【図６Ｂ】
0005980368.tif 000023
【図７Ａ】
0005980368.tif 000024
【図７Ｂ】
0005980368.tif 000025
【図７Ｃ】
0005980368.tif 000026
【図７Ｄ】
0005980368.tif 000027
【図７Ｅ】
0005980368.tif 000028
【図７Ｆ】
0005980368.tif 000029
【図７Ｇ】
0005980368.tif 000030
【図７Ｈ】
0005980368.tif 000031
【図７Ｉ】
0005980368.tif 000032
【図７Ｊ】
0005980368.tif 000033
【図７Ｋ】
0005980368.tif 000034
【図７Ｌ】
0005980368.tif 000035
【図７Ｍ】
0005980368.tif 000036
【図７Ｎ】
0005980368.tif 000037
【図７Ｏ】
0005980368.tif 000038
【図７Ｐ】
0005980368.tif 000039
【図７Ｑ】
0005980368.tif 000040
【図７Ｒ】
0005980368.tif 000041
【図７Ｓ】
0005980368.tif 000042
【図８Ａ】
0005980368.tif 000043
【図８Ｂ】
0005980368.tif 000044
【図９Ａ】
0005980368.tif 000045
【図９Ｂ】
0005980368.tif 000046
【図９Ｃ】
0005980368.tif 000047
【図１０Ａ】
0005980368.tif 000048
【図１０Ｂ】
0005980368.tif 000049
【図１１】
0005980368.tif 000050
【図１２】
0005980368.tif 000051
【図１３】
0005980368.tif 000052