(57)【要約】一実施形態において、方法は、コンピューティング・デバイスの表示エリアの特定の領域内のタッチ入力を受信することを含む。表示エリアは、複数のビューおよび１つのアウトサイドビューを含むユーザインタフェース（ＵＩ）を提供する。ビューの各々は、表示エリアの１つまたは複数の領域に対応する。１つまたは複数のビューは、ビューの各々に関連する表示エリアの領域内で検出されたタッチ入力を処理するよう構成されたジェスチャー・レコグナイザーを有する。アウトサイドビューは、表示エリア内で検出されたタッチ入力を処理するように構成されたジェスチャー・レコグナイザーを有する。ビューは、階層構造に構成される。本方法は、ビューの中の特定の１つのビューがモーダルビューに設定されるものであるかどうかを決定することを含む。
2016511465.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
コンピューティング・デバイスによって前記コンピューティング・デバイスの表示エリアの特定の領域内のタッチ入力を受信するステップであって、前記表示エリアは複数のビューおよび１つのアウトサイドビューを備えるユーザインタフェース（ＵＩ）を提供し、前記ビューの各々は、前記表示エリアの１つまたは複数の領域に対応し、１つまたは複数の前記ビューは、前記ビューの各々に関連する前記表示エリアの前記領域内で検出されたタッチ入力を処理するよう構成されたジェスチャー・レコグナイザーを有し、前記アウトサイドビューは、前記表示エリア内で検出された前記タッチ入力を処理するよう構成されたジェスチャー・レコグナイザーを有し、前記ビューは階層構造に構成される、前記受信するステップと、
前記コンピューティング・デバイスにより複数の前記ビューの中の特定の１つのビューがモーダルビューとして設定されるものであるかどうかを決定するステップと、
前記コンピューティング・デバイスにより前記特定のビューが前記モーダルビューとして設定されるという決定に応答して前記特定のビューに関連する前記ジェスチャー・レコグナイザーを前記アウトサイドビューに関連する前記ジェスチャー・レコグナイザーにリターゲットするステップと、
前記コンピューティング・デバイスにより前記モーダルビューの存在に応答して１つまたは複数の非モーダルビューの前記ジェスチャー・レコグナイザーが前記特定の領域内の前記タッチ入力を処理することを防止するステップと、
前記コンピューティング・デバイスにより前記モーダルビューの存在に応答して前記モーダルビューに関連する前記ジェスチャー・レコグナイザーを通じて前記特定の領域内の前記タッチ入力を処理するステップと
を備える方法。
【請求項２】
前記コンピューティング・デバイスにより複数の前記ビューの中から１つまたは複数の適格なビューを決定するステップであって、前記適格なビューの各々は、前記タッチ入力を含む前記特定の領域を含む、前記表示エリアの対応する１つまたは複数の領域を有する、前記決定するステップと、
前記コンピューティング・デバイスにより前記適格なビューに関連した１つまたは複数の前記領域の大きさに少なくとも部分的に基づいて階層の最下位の適格ビューを決定するステップと、
前記コンピューティング・デバイスにより前記モーダルビューが存在しないことに応答して前記最下位の適格なビューに関連する前記ジェスチャー・レコグナイザーを通じて前記特定の領域内の前記タッチ入力を処理するステップと
をさらに備える、請求項１に記載の方法。
【請求項３】
前記コンピューティング・デバイスはモバイルコンピューティング・デバイスである、請求項１に記載の方法。
【請求項４】
前記方法は前記モバイルコンピューティング・デバイスのアプリケーションにより実行される、請求項３に記載の方法。
【請求項５】
前記モーダルビューの存在に応答して１つまたは複数の前記非モーダルビューの前記ジェスチャー・レコグナイザーが前記特定の領域内の前記タッチ入力を処理するのを防止するステップと、
前記モーダルビューの存在に応答して前記モーダルビューに関連する前記ジェスチャー・レコグナイザーが前記タッチ入力を処理することを防止するのを前記非モーダルビューが制限するステップと
をさらに備える、請求項１に記載の方法。
【請求項６】
前記ビューの特定の１つのビューを選択することが、前記ビューの特定の１つのビューのモーダルビュー・フラグを設定することを含む、請求項１に記載の方法。
【請求項７】
前記ジェスチャー・レコグナイザーのリターゲットすることが、ランタイム・スウィズリングにより前記モーダルビューに関連する前記ジェスチャー・レコグナイザーを前記アウトサイドビューに関連する前記ジェスチャー・レコグナイザーにマッピングすることを含む、請求項１に記載の方法。
【請求項８】
前記モーダルビューは、前記タッチ入力を処理するのに適格な１つまたは複数の前記非モーダルビューよりも階層においてより上位にある、請求項１に記載の方法。
【請求項９】
ソフトウェアを具体化する１つまたは複数の非一時的なコンピュータ可読記憶媒体であって、前記ソフトウェアは実行時に、
コンピューティング・デバイスの表示エリアの特定の領域内のタッチ入力を受信し、前記表示エリアは複数のビューおよび１つのアウトサイドビューを備えるユーザインタフェース（ＵＩ）を提供し、前記ビューの各々は、前記表示エリアの１つまたは複数の領域に対応し、１つまたは複数の前記ビューは、前記ビューの各々に関連する前記表示エリアの前記領域内で検出されたタッチ入力を処理するよう構成されたジェスチャー・レコグナイザーを有し、アウトサイドビューは、前記表示エリア内で検出された前記タッチ入力を処理するよう構成された前記ジェスチャー・レコグナイザーを有し、前記ビューは階層構造に構成され、
複数の前記ビューの中の特定の１つのビューがモーダルビューとして設定されるものであるかどうかを決定し、
前記特定のビューが前記モーダルビューに設定されるという決定に応答して前記特定のビューに関連する前記ジェスチャー・レコグナイザーを前記アウトサイドビューに関連する前記ジェスチャー・レコグナイザーにリターゲットし、
前記モーダルビューの存在に応答して１つまたは複数の非モーダルビューの前記ジェスチャー・レコグナイザーが前記特定の領域内の前記タッチ入力を処理することを防止し、
前記モーダルビューの存在に応答して前記モーダルビューに関連する前記ジェスチャー・レコグナイザーを通じて前記特定の領域内の前記タッチ入力を処理するように構成される、媒体。
【請求項１０】
前記ソフトウェアは、さらに、
複数の前記ビューの中から１つまたは複数の適格なビューを決定し、前記適格なビューの各々は、前記タッチ入力を含む前記特定の領域を含む、前記表示エリアの対応する１つまたは複数の領域を有し、
前記適格なビューに関連した１つまたは複数の前記領域の大きさに少なくとも部分的に基づいて階層の最下位の適格なビューを決定し、
前記モーダルビューが存在しないことに応答して前記最下位の適格なビューに関連する前記ジェスチャー・レコグナイザーを通じて前記特定の領域内の前記タッチ入力を処理するよう構成される、請求項９に記載の媒体。
【請求項１１】
前記コンピューティング・デバイスはモバイルコンピューティング・デバイスである、請求項９に記載の媒体。
【請求項１２】
前記ソフトウェアはモバイルコンピューティング・デバイスのアプリケーションである、請求項９に記載の媒体。
【請求項１３】
前記ソフトウェアは、さらに、
前記モーダルビューの存在に応答して１つまたは複数の前記非モーダルビューの前記ジェスチャー・レコグナイザーが前記特定の領域内の前記タッチ入力を処理するのを防止し、
前記モーダルビューの存在に応答して前記モーダルビューに関連する前記ジェスチャー・レコグナイザーが前記タッチ入力を処理するのを防止するのを前記非モーダルビューが制限するように構成される、請求項９に記載の媒体。
【請求項１４】
前記ソフトウェアは、さらに、
前記ビューの特定の１つのモーダルビュー・フラグを設定するよう構成される、請求項９に記載の媒体。
【請求項１５】
前記ソフトウェアは、さらに、ランタイム・スウィズリングにより前記モーダルビューに関連する前記ジェスチャー・レコグナイザーを前記アウトサイドビューに関連する前記ジェスチャー・レコグナイザーにマッピングするよう構成される、請求項９に記載の媒体。
【請求項１６】
前記モーダルビューは、タッチ入力を処理するのに適格な１つまたは複数の前記非モーダルビューよりも階層においてより上位にある、請求項９に記載の媒体。
【請求項１７】
装置であって、
プロセッサと、
前記プロセッサに結合され、ソフトウェアを具体化する１つまたは複数の非一時的なコンピュータ可読記憶媒体とを備え、前記ソフトウェアは、
コンピューティング・デバイスの表示エリアの特定の領域内のタッチ入力を受信し、前記表示エリアは複数のビューおよび１つのアウトサイドビューを備えるユーザインタフェース（ＵＩ）を提供し、前記ビューの各々は、前記表示エリアの１つまたは複数の領域に対応し、１つまたは複数の前記ビューは、前記ビューの各々に関連する前記表示エリアの前記領域内で検出されたタッチ入力を処理するよう構成されるジェスチャー・レコグナイザーを有し、アウトサイドビューは、前記表示エリア内で検出された前記タッチ入力を処理するよう構成される前記ジェスチャー・レコグナイザーを有し、前記ビューは階層構造に構成され、
複数の前記ビューの中の特定の１つのビューがモーダルビューとして設定されるものであるかどうかを決定し、
前記特定のビューが前記モーダルビューに設定されるという決定に応答して前記特定のビューに関連する前記ジェスチャー・レコグナイザーを前記アウトサイドビューに関連する前記ジェスチャー・レコグナイザーにリターゲットし、
前記モーダルビューの存在に応答して１つまたは複数の非モーダルビューの前記ジェスチャー・レコグナイザーが前記特定の領域内の前記タッチ入力を処理することを防止し、
前記モーダルビューの存在に応答して前記モーダルビューに関連する前記ジェスチャー・レコグナイザーを通じて前記特定の領域内の前記タッチ入力を処理する、装置。
【請求項１８】
前記ソフトウェアは、さらに、
複数の前記ビューの中から１つまたは複数の適格なビューを決定し、前記適格なビューの各々は、前記タッチ入力を含む前記特定の領域を含む、前記表示エリアの対応する１つまたは複数の領域を有し、
前記適格なビューに関連した１つまたは複数の前記領域の大きさに少なくとも部分的に基づいて階層の最下位の適格なビューを決定し、
前記モーダルビューが存在しないことに応答して前記最下位の適格なビューに関連する前記ジェスチャー・レコグナイザーを通じて前記特定の領域内の前記タッチ入力を処理するよう構成される、請求項１７に記載の装置。
【請求項１９】
前記ソフトウェアは、さらに、
前記モーダルビューの存在に応答して１つまたは複数の非モーダルビューの前記ジェスチャー・レコグナイザーが前記特定の領域内のタッチ入力を処理するのを防止し、
前記モーダルビューの存在に応答して前記モーダルビューに関連する前記ジェスチャー・レコグナイザーがタッチ入力を処理することを防止するのを前記非モーダルビューが制限するように構成される、請求項１７に記載の装置。
【請求項２０】
前記ソフトウェアは、さらに、前記ビューの特定の１つのモーダルビュー・フラグを設定するよう構成される、請求項１７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、モバイルデバイスに関する。
【背景技術】
【０００２】
スマートフォン、タブレット・コンピュータ、または、ラップトップ・コンピュータなどのモバイルコンピューティング・デバイスは、ＧＰＳ受信機、コンパス、またはジャイロスコープなど、その位置、方角または方位を判定するための機能を含み得る。そのようなデバイスは、ブルートゥース（登録商標）通信、近距離無線通信（ＮＦＣ：Ｎｅａｒ−Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、赤外線（ＩＲ：Ｉｎｆｒａｒｅｄ）通信、または、ワイヤレス・ローカル・エリア・ネットワーク（ＷＬＡＮ）やセルラー電話ネットワークを利用した通信など、無線通信のための機能も含み得る。そのようなデバイスは、１つまたは複数のカメラ、スキャナ、タッチスクリーン、マイクロフォン、またはスピーカをも含み得る。モバイルコンピューティング・デバイスは、ゲーム、ウェブブラウザ、またはソーシャルネットワーキング・アプリケーションなどのソフトウェア・アプリケーションをも実行し得る。ソーシャルネットワーキング・アプリケーションにより、ユーザはユーザのソーシャルネットワーク内の他のユーザと接続し、通信し、情報を共有し得る。
【図面の簡単な説明】
【０００３】
【図１】例示的なモバイルデバイスを示す図。
【図２】ビューの例示的な入れ子階層を有する例示的なユーザインタフェースの例示的なワイヤーフレームを示す図。
【図３】多重定義型ジェスチャー処理の例示的な方法を示す図。
【図４】例示的なコンピューティング・システムを示す図。
【発明を実施するための形態】
【０００４】
特定の実施形態においては、ビューの入れ子階層を備えるモバイルデバイス・アプリケーションのユーザインタフェースは、特定のビューがヒットテスト（hit-test）ビューの既定の動作をオーバーライド（over-ride）できるようにする。例えば、ヒットテストの既定の動作は、タッチ入力のエリアを含む最下位のビューにタッチ入力を割り当てる。特定の実施形態においては、階層のより上位のビューは、ヒットテストを「獲得」する上での関心を示し得、または、タッチ入力を処理し得る。既定のヒットテストビューをオーバーライドするビューは、モーダルビューとして知られている。特定の実施形態においては、モーダルビューは、モーダルビュー内でタッチ入力を処理し、ヒットテストビューにタッチ入力処理をモーダルビューに委託させるのに適している。モーダルビューの一例は、アプリケーション内の写真の全画面表示である。写真へのどんなタッチもフォトビューとして処理される。一例では、タッチ入力処理のためのモバイルｉＯＳ内でランタイム・スウィズリング（run-time swizzling）を用いて方法をオーバーライドするモダリティ（modality）が具体化され得る。
【０００５】
図１は、例示的なモバイルコンピューティング・デバイスを示している。特定の実施形態においては、クライアントシステムは、上記のモバイルコンピューティング・デバイス１０であり得る。本開示は、任意の適切な物理的な形態を取るモバイルコンピューティング・デバイス１０を想定している。特定の実施形態においては、モバイルコンピューティング・デバイス１０は、下記のようなコンピューティング・システムであり得る。限定ではなく例として、モバイルコンピューティング・デバイス１０は、シングル・ボード・コンピュータ・システム（ＳＢＣ）（例えば、コンピュータ・オン・モジュール（ＣＯＭ）またはシステム・オン・モジュール（ＳＯＭ）等）、ラップトップまたはノートブック・コンピュータ・システム、モバイル電話、スマートフォン、携帯情報端末（ＰＤＡ: Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、タブレット・コンピュータ・システム、またはこれらのうちの２つ以上の組合せであり得る。特定の実施形態においては、モバイルコンピューティング・デバイス１０は、入力コンポーネントとしてタッチセンサ１２を有し得る。図１の例では、タッチセンサ１２は、モバイルコンピューティング・デバイス１０の前面の表面に組み込まれている。容量式タッチセンサの場合、送信および受信の２種類の電極を有し得る。これらの電極は、送信電極を電気パルスにより駆動し、タッチ入力または接近入力に起因する受信電極からの容量の変化を測定するように設計されているコントローラに接続され得る。図１の例では、１つまたは複数のアンテナ１４Ａ〜Ｂは、モバイルコンピューティング・デバイス１０の１つまたは複数の側面に組み込まれ得る。アンテナ１４Ａ〜Ｂは、電流を電波に変換し、電波を電流に変換するコンポーネントである。信号の送信中、送信機は、発振高周波（ＲＦ）電流をアンテナ１４Ａ〜Ｂの端子に印加し、アンテナ１４Ａ〜Ｂは、印加された電流のエネルギーを電磁（ＥＭ: Ｅｌｅｃｔｒｏｍａｇｎｅｔｉｃ）波として放射する。信号の受信中、アンテナ１４Ａ〜Ｂは、入力ＥＭ波のパワーをアンテナ１４Ａ〜Ｂの端子において電圧に変換する。その電圧は、増幅のために受信機に送られる。
【０００６】
モバイルコンピューティング・デバイス１０は、イーサネット（登録商標）もしくはその他の有線ベースのネットワークと通信するための、アンテナ１４Ａ〜Ｂに結合した通信コンポーネント、または、例えばＷＩ−ＦＩネットワークなどのワイヤレス・ネットワークと通信するためのワイヤレスＮＩＣ（ＷＮＩＣ）、ワイヤレス・アダプタ、または、第３世代モバイル・テレコミュニケーションズ（３Ｇ）あるいはロング・ターム・エヴォリューション（ＬＴＥ）ネットワークなどのセルラーネットワークと通信するためのモデムを含む。本開示は、任意の適切なネットワーク、およびそのネットワークのための任意の適切な通信コンポーネント２０を想定している。限定ではなく例として、モバイルコンピューティング・デバイス１０は、アド・ホック・ネットワーク、パーソナル・エリア・ネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、またはインターネットの１つまたは複数の部分、またはこれらのうちの２つ以上の組合せと通信し得る。これらのネットワークのうちの１つまたは複数の１つまたは複数の部分は、有線または無線であり得る。別の例として、モバイルコンピューティング・デバイス１０は、ワイヤレスＰＡＮ（ＷＰＡＮ）（例えば、ブルートゥース（登録商標）ＷＰＡＮ等）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、セルラー電話ネットワーク（例えば、グローバル・システム・フォー・モバイルコミュニケーションズ（ＧＳＭ（登録商標））、３Ｇ、または、ＬＴＥネットワーク等）、またはその他の適切なワイヤレス・ネットワーク、またはこれらのうちの２つ以上の組合せと通信し得る。モバイルコンピューティング・デバイス１０は、適切な場合には、これらのネットワークのうちの任意のネットワークに対する任意の適切な通信コンポーネントを含み得る。
【０００７】
特定の実施の形態においては、モバイルコンピューティング・デバイス１０上で実行されるアプリケーションは、モバイルコンピューティング・デバイス１０のディスプレイ上にユーザインタフェース（ＵＩ）を提供する。以降に記述するように、モバイルコンピューティング・デバイス１０のユーザは、特定のアプリケーションのＵＩとタッチセンサ１２により検出されるタッチ入力を通じて対話することができる。特定の実施の形態においては、アプリケーションは、タッチセンサ１２により検出される１つまたは複数のタッチ入力と、アプリケーションとの１つまたは複数の対話とを関連づける。本開示は、タッチセンサを有する特定のタイプのコンピューティング・デバイス上のジェスチャー処理を記述し、かつ示しているが、本開示は、タッチセンサを有する任意の適切なタイプの、例えば、パーソナル・コンピュータ、タブレット・コンピュータ、接続型テレビ、または、スマートフォンなどのコンピューティング・デバイスによるジェスチャー処理を想定している。
【０００８】
図２は、ビューの例示的な入れ子階層を有する例示的なユーザインタフェースの例示的なワイヤーフレームを示している。特定の実施の形態においては、モバイルコンピューティング・デバイス１０の表示エリア５４に表示されるアプリケーションのＵＩは、１つまたは複数のビュー５０Ａ〜Ｃを含み、各ビューが表示エリア５４の特定の領域に対応している。さらに、特定のビュー５０Ａ〜Ｃは、表示エリア５４の関連する領域内で検出された１つまたは複数のタッチ入力の処理を行う。特定の実施の形態においては、タッチ入力は、それぞれのビュー５０Ａ〜Ｃに関連したジェスチャー・レコグナイザーを通じて処理される。特定の実施の形態においては、表示エリア５４の重複領域を有するビュー５０Ａ〜Ｃは、表示エリア５４の対応する領域の大きさに少なくとも部分的に基づく入れ子階層に構成される。図２の例では、ビュー５０Ｃは、ビュー５０Ｂの対応する領域と重複する表示エリア５４の対応するエリアの一部を有する。さらに、ビュー５０Ｂの領域は、ビュー５０Ａに対応する表示エリア５４のエリアと重複する。限定ではなく例として、ビュー５０Ａ〜Ｃの特定の入れ子階層は、タッチ入力を含むが、実質的に別のビュー５０Ａ〜Ｃをその中に含まない階層のビュー５０Ａ〜Ｃの最下位に対して最高の優先度を割り当てることによりタッチ入力を処理する。例えば、階層のビュー５０Ａ〜Ｃに対応する表示エリア５４の特定の領域内のタッチ入力５６は、ビュー５０Ａにより処理される。本開示は、表示エリアの特定の形状の領域に関連した特定の数のビューの特定の構成を記述し、かつ示しているが、本開示は、任意の適切な形状の領域に関連した任意の適切な数のビューの任意の適切な構成を想定している。
【０００９】
特定の実施の形態においては、アプリケーションのビュー５０Ａ〜Ｃの階層は、タッチ入力５６がビュー５０Ａよりも入れ子階層において上位のビュー５０Ｂ〜Ｃ、例えばビュー５０Ｂ〜Ｃの１つにより処理されるように変更される。制限ではなく例として、アプリケーションは、特定の上位のレベルのビュー（例えば、５０Ｂ〜Ｃ）または「モーダル」ビューに関連するジェスチャー・レコグナイザーがタッチ入力５６を処理し得るように階層内の各ビュー５０Ａ〜Ｃに関連するジェスチャー・レコグナイザーの順位を変更する。制限ではなく例として、特定のビュー（例えば、５０Ｃ）は、モーダルビューとして指定され、アプリケーションは、ビュー５０Ａに関連するジェスチャー・レコグナイザーにタッチ入力５６の処理をモーダルビュー（例えば、５０Ｃ）に関連するジェスチャー・レコグナイザーに委託するようにさせる。さらに、アプリケーションは、特定のビュー（例えば、５０Ｃ）に関連するモーダルビュー・フラグを設定することによりモーダルビューを指定する。本開示は、モーダルビューである特定のビューを記述しているが、本開示は、任意の適切なビューをモーダルビューとして指定することを想定している。
【００１０】
特定の実施の形態においては、モバイルコンピューティング・デバイス１０上で実行される特定のアプリケーションのＵＩは、ビュー５０Ａ〜Ｃに加えてアウトサイドビュー５２を含む。アウトサイドビュー５２は、表示エリア５４の境界の外側の領域を含む関連する範囲エリアを有する。特定の実施の形態においては、モバイルコンピューティング・デバイス１０上で実行されるアプリケーションによりモーダル・プロパティに関連するモーダルビュー・フラグを設定することにより、特定のモーダルビュー５０Ａ〜Ｃに関連するジェスチャー・レコグナイザーがアウトサイドビュー５２に関連するジェスチャー・レコグナイザーにリターゲット（ｒｅｔａｒｇｅｔ）され、それによって、特定のビュー５０Ａ〜Ｃに関連するジェスチャー・レコグナイザーを、特定のビュー５０Ａ〜Ｃに関連する表示エリア５４の領域内のタッチ入力を処理することを制限する代わりに、表示エリア５４の任意の領域内のタッチ入力５６を処理するのに適格なものにすることができる。以降に記述するように、特定のモーダルビューのジェスチャー・レコグナイザーをアウトサイドビュー５２のジェスチャー・レコグナイザーに関連付けることにより、特定のモーダルビューのジェスチャー・レコグナイザーが表示エリア５４内で行われたあらゆるタッチ入力５６を処理するのに適格であるということが保証される。特定の実施の形態においては、モーダルビューに関連するジェスチャー・レコグナイザーは、モーダルビュー・フラグをモーダル・ジェスチャー・レコグナイザーがビュー５０Ａ〜Ｃの入れ子階層をオーバーライドすることを示すように設定する。
【００１１】
特定の実施の形態においては、アプリケーションは、タッチ入力５６を検出することに応答して、タッチ入力５６を処理するのに適格な１つまたは複数のビュー５０Ａ〜Ｃおよびアウトサイドビュー５２を決定するために、階層のそれぞれのビュー５０Ａ〜Ｃおよびアウトサイドビュー５２へのクエリを実行する。特定の実施の形態においては、モバイルコンピューティング・デバイス１０上で実行されるアプリケーションは、１つまたは複数の適格なビュー５０Ａ〜Ｃをタッチ入力５６を処理するよう構成された関連するジェスチャー・レコグナイザーを有するものと判定する。上述のように、モーダルビューに関連するジェスチャー・レコグナイザーは、アウトサイドビュー５２に関連するジェスチャー・レコグナイザーにリターゲットされる。モバイルコンピューティング・デバイス１０上で実行されるアプリケーションは、モーダルビュー（例えば５０Ｃ）に関連するジェスチャー・レコグナイザーが残りの非モーダルビュー（例えば５０Ａ〜Ｂ）がタッチ入力５６を処理することを防止し、モーダルビューがアウトサイドビュー５２を通じたタッチ入力５６を処理することを防止するのを残りの非モーダルビュー（例えば５０Ａ〜Ｂ）に対して制限することができる。タッチ入力５６の検出に応じて、階層における各適格なジェスチャー・レコグナイザーには、階層の最下位から最上位のビュー５０Ａ〜Ｃおよびアウトサイドビュー５２からクエリが実行され、任意のビュー５０Ａ〜Ｃが他のビュー５０Ａ〜Ｃが検出されたタッチ入力５６を処理するのを防止するかどうかを決定する。図２の例では、アプリケーションは、最初にビュー５０Ａに関連するジェスチャー・レコグナイザーにクエリを実行し、次に上述のビューの階層に従ってビュー５０Ｂ〜Ｃのジェスチャー・レコグナイザーにクエリを実行する。制限ではなく例として、ビュー５０Ａに関連するジェスチャー・レコグナイザーは、ビュー５０Ｂに関連するジェスチャー・レコグナイザーがビュー５０Ａに関連するジェスチャー・レコグナイザーにタッチ入力５６を処理するのを防止するようにするかについてビュー５０Ｂに関連するジェスチャー・レコグナイザーにクエリを実行する。上述のように、アウトサイドビュー５２に関連するジェスチャー・レコグナイザーは、非モーダルビュー（例えば５０Ａ〜Ｂ）がタッチ入力５６を処理することを防止し、非モーダルビュー（例えば５０Ａ〜Ｂ）が任意のビュー５０Ａ〜Ｂがタッチ入力５６を処理することを防止するのを制限し、それによって、タッチ入力５６がモーダルビュー（例えば５０Ｃ）に関連するリターゲットされたジェスチャー・レコグナイザーにより処理されるように入れ子階層が変更される。制限ではなく例として、上述のように入れ子階層を変更することは、例えばランタイム・スウィズリング（ｒｕｎ−ｔｉｍｅ  ｓｗｉｚｚｌｉｎｇ）などの、任意の適切なメソッド・スワッピング・プロトコル（ｍｅｔｈｏｄ−ｓｗａｐｐｉｎｇ ｐｒｏｔｏｃｏｌ）を通じて具体化される。別の例として、それぞれのビュー５０Ａ〜Ｃに関連するカスタム・ジェスチャー・レコグナイザーは、上述の変更された階層を実施することができる。
【００１２】
図３は、多重定義型（ｏｖｅｒｌｏａｄｅｄ）ジェスチャー処理のための例示的な方法である。本方法は、コンピューティング・デバイスがコンピューティング・デバイスの表示エリアの特定の領域内のタッチ入力を受信するステップ３００において始まる。特定の実施の形態においては、表示エリアは、複数のビューおよび１つのアウトサイドビューを備えるユーザインタフェース（ＵＩ）を提供する。特定の実施の形態においては、それぞれのビューは、表示エリアの１つまたは複数の領域に対応する。特定の実施の形態においては、１つまたは複数のビューは、ビューのそれぞれに関連する表示エリアの領域内で検出されたタッチ入力を処理するように構成されるジェスチャー・レコグナイザーを有する。ジェスチャー・レコグナイザーを有するアウトサイドビューは、ビューが階層構造に構成された表示エリア内で検出されたタッチ入力を処理するよう構成される。ステップ３０２は、コンピューティング・デバイスにより、複数のビューの中から特定の１つがモーダルビューとして設定されるものであるかどうかを決定する。ステップ３０４は、コンピューティング・デバイスにより特定のビューがモーダルビューとして設定されたという決定に応答して、特定のビューに関連するジェスチャー・レコグナイザーを、アウトサイドビューに関連するジェスチャー・レコグナイザーにリターゲットする。ステップ３０６では、コンピューティング・デバイスは、モーダルビューの存在に応答して、１つまたは複数の非モーダルビューのジェスチャー・レコグナイザーが特定の領域内のタッチ入力を処理するのを防止する。ステップ３０８では、コンピューティング・デバイスは、モーダルビューの存在に応答して、モーダルビューに関連するジェスチャー・レコグナイザーを通じて特定の領域内のタッチ入力を処理し、その時点で本方法は終了する。本開示は、図３の方法の特定のステップを、特定の順序で生じるものとして記述し、かつ示しているが、本開示は、任意の適切な順序で生じる図３の方法の任意の適切なステップを想定している。その上、本開示は、図３の方法の特定のステップを実行する特定のコンポーネントについて記述し、かつ示しているが、本開示は、図３の方法の任意の適切なステップを実行する任意の適切なコンポーネントの任意の適切な組合せを想定している。
【００１３】
図４は、例示的なコンピューティング・システムを示している。特定の実施の形態においては、１つまたは複数のコンピュータ・システム６０は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数のステップを実行する。特定の実施の形態においては、１つまたは複数のコンピュータ・システム６０は、本明細書において記述されているまたは示されている機能を提供する。特定の実施の形態においては、１つまたは複数のコンピュータ・システム６０上で稼動するソフトウェアは、本明細書において記述されているもしくは示されている１つもしくは複数の方法の１つもしくは複数のステップを実行し、または本明細書において記述されているもしくは示されている機能を提供する。特定の実施の形態は、１つまたは複数のコンピュータ・システム６０の１つまたは複数の部分を含む。本明細書においては、コンピュータ・システムへの言及は、適切な場合には、コンピューティング・デバイスを包含することができる。その上、コンピュータ・システムへの言及は、適切な場合には、１つまたは複数のコンピュータ・システムを包含することができる。
【００１４】
本開示は、任意の適切な数のコンピュータ・システム６０を想定している。本開示は、任意の適切な物理的な形態を取るコンピュータ・システム６０を想定している。限定ではなく、例として、コンピュータ・システム６０は、組込みコンピュータ・システム、システム・オン・チップ（ＳＯＣ）、シングルボード・コンピュータ・システム（ＳＢＣ）（例えば、コンピュータ・オン・モジュール（ＣＯＭ）またはシステム・オン・モジュール（ＳＯＭ）等）、デスクトップ・コンピュータ・システム、ラップトップまたはノートブック・コンピュータ・システム、インタラクティブ・キオスク、メインフレーム、コンピュータ・システムのメッシュ、モバイル電話、携帯情報端末（ＰＤＡ）、サーバ、タブレット・コンピュータ・システム、またはこれらのうちの複数の組合せであることが可能である。適切な場合には、コンピュータ・システム６０は、１つもしくは複数のコンピュータ・システム６０を含むこと、単一型もしくは分散型であること、複数のロケーションにわたること、複数のマシンにわたること、複数のデータセンターにわたること、または、クラウド（１つまたは複数のネットワーク内の１つまたは複数のクラウド・コンポーネントを含むことができる）内に常駐することが可能である。適切な場合には、１つまたは複数のコンピュータ・システム６０は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数のステップを、実質的な空間上のまたは時間上の制限を伴わずに実行することができる。限定ではなく、例として、１つまたは複数のコンピュータ・システム６０は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数のステップをリアルタイムで、またはバッチモードで実行することができる。１つまたは複数のコンピュータ・システム６０は、適切な場合には、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数のステップを別々の時点で、または別々の場所で実行することができる。
【００１５】
特定の実施形態においては、コンピュータ・システム６０は、プロセッサ６２、メモリ６４、ストレージ６６、入力／出力（Ｉ／Ｏ）インタフェース６８、通信インタフェース７０、およびバス７２を含む。本開示は、特定の数の特定のコンポーネントを特定の構成で有する特定のコンピュータ・システムについて記述し、示しているが、本開示は、任意の適切な数の任意の適切なコンポーネントを任意の適切な構成で有する任意の適切なコンピュータ・システムを想定している。
【００１６】
特定の実施形態においては、プロセッサ６２は、コンピュータ・プログラムを構成している命令等の命令を実行するためのハードウェアを含む。限定ではなく、例として、命令を実行するために、プロセッサ６２は、内部レジスタ、内部キャッシュ、メモリ６４、またはストレージ６６から命令を取り出し（またはフェッチし）、それらの命令をデコードして実行し、次いで、１つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ６４、またはストレージ６６に書き込むことができる。特定の実施形態においては、プロセッサ６２は、データ、命令、またはアドレスのための１つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ６２を想定している。限定ではなく、例として、プロセッサ６２は、１つまたは複数の命令キャッシュ、１つまたは複数のデータ・キャッシュ、および１つまたは複数の変換ルックアサイド・バッファ（ＴＬＢ）を含むことができる。命令キャッシュ内の命令は、メモリ６４またはストレージ６６内の命令のコピーであることが可能であり、命令キャッシュは、プロセッサ６２によるそれらの命令の取出しを高速化することができる。データ・キャッシュ内のデータは、プロセッサ６２において実行される命令が機能する際に基づくメモリ６４もしくはストレージ６６内のデータのコピー、プロセッサ６２において実行される後続の命令によるアクセスのための、もしくはメモリ６４もしくはストレージ６６への書込みのためのプロセッサ６２において実行された以前の命令の結果、またはその他の適切なデータであることが可能である。データ・キャッシュは、プロセッサ６２による読取りオペレーションまたは書込みオペレーションを高速化できる。ＴＬＢは、プロセッサ６２のための仮想アドレス変換を高速化できる。特定の実施形態においては、プロセッサ６２は、データ、命令、またはアドレスのための１つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ６２を想定している。適切な場合には、プロセッサ６２は、１つまたは複数の演算ロジック・ユニット（ＡＬＵ）を含むこと、マルチコア・プロセッサであること、または１つもしくは複数のプロセッサ６２を含むことが可能である。本開示は、特定のプロセッサについて記述し、示しているが、本開示は、任意の適切なプロセッサを想定している。
【００１７】
特定の実施形態においては、メモリ６４は、プロセッサ６２が実行するための命令、またはプロセッサ６２が機能する際に基づくデータを格納するためのメインメモリを含む。限定ではなく、例として、コンピュータ・システム６０は、命令をストレージ６６または別のソース（例えば、別のコンピュータ・システム６０等）からメモリ６４にロードすることができる。次いでプロセッサ６２は、命令をメモリ６４から内部レジスタまたは内部キャッシュにロードすることができる。命令を実行するために、プロセッサ６２は、命令を内部レジスタまたは内部キャッシュから取り出し、それらの命令をデコードすることができる。命令の実行中または実行後に、プロセッサ６２は、１つまたは複数の結果（それらは、中間の結果または最終的な結果である場合がある）を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ６２は、それらの結果のうちの１つまたは複数をメモリ６４に書き込むことができる。特定の実施形態においては、プロセッサ６２は、（ストレージ６６またはその他の場所ではなく）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ６４内の命令のみを実行し、（ストレージ６６またはその他の場所ではなく）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ６４内のデータ上でのみ機能する。１つまたは複数のメモリバス（それらはそれぞれ、アドレスバスおよびデータバスを含むことができる）は、プロセッサ６２をメモリ６４に結合することができる。バス７２は、以降で記述されているような１つまたは複数のメモリバスを含むことができる。特定の実施形態においては、１つまたは複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ６２とメモリ６４との間に常駐し、プロセッサ６２によって要求されるメモリ６４へのアクセスを容易にする。特定の実施形態においては、メモリ６４は、ランダム・アクセス・メモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合には、揮発性メモリであることが可能である。適切な場合には、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であることが可能である。その上、適切な場合には、このＲＡＭは、シングルポートＲＡＭまたはマルチポートＲＡＭであることが可能である。本開示は、任意の適切なＲＡＭを想定している。メモリ６４は、適切な場合には、１つまたは複数のメモリ６４を含むことができる。本開示は、特定のメモリについて記述し、示しているが、本開示は、任意の適切なメモリを想定している。
【００１８】
特定の実施形態においては、ストレージ６６は、データまたは命令のためのマス・ストレージを含む。限定ではなく、例として、ストレージ６６は、ハード・ディスク・ドライブ（ＨＤＤ）、フロッピー（登録商標）・ディスク・ドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス（ＵＳＢ）ドライブ、またはこれらのうちの複数の組合せを含むことができる。ストレージ６６は、適切な場合には、取外し可能なまたは取外し不能な（すなわち、固定された）媒体を含むことができる。ストレージ６６は、適切な場合には、コンピュータ・システム６０の内部または外部に存在することが可能である。特定の実施形態においては、ストレージ６６は、不揮発性のソリッド・ステート・メモリである。特定の実施形態においては、ストレージ６６は、読取り専用メモリ（ＲＯＭ）を含む。適切な場合には、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書替え可能ＲＯＭ（ＥＡＲＯＭ）、またはフラッシュメモリ、またはこれらのうちの複数の組合せであることが可能である。本開示は、任意の適切な物理的な形態を取るマス・ストレージ６６を想定している。ストレージ６６は、適切な場合には、プロセッサ６２とストレージ６６との間における通信を容易にする１つまたは複数のストレージ・コントロール・ユニットを含むことができる。適切な場合には、ストレージ６６は、１つまたは複数のストレージ６６を含むことができる。本開示は、特定のストレージについて記述し、示しているが、本開示は、任意の適切なストレージを想定している。
【００１９】
特定の実施形態においては、Ｉ／Ｏインタフェース６８は、コンピュータ・システム６０と１つまたは複数のＩ／Ｏデバイスとの間における通信のための１つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム６０は、適切な場合には、これらのＩ／Ｏデバイスのうちの１つまたは複数を含むことができる。これらのＩ／Ｏデバイスのうちの１つまたは複数は、人とコンピュータ・システム６０との間における通信を可能にすることができる。限定ではなく、例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なＩ／Ｏデバイス、またはこれらのうちの複数の組合せを含むことができる。Ｉ／Ｏデバイスは、１つまたは複数のセンサを含むことができる。本開示は、任意の適切なＩ／Ｏデバイス、およびそれらのＩ／Ｏデバイスのための任意の適切なＩ／Ｏインタフェース６８を想定している。適切な場合には、Ｉ／Ｏインタフェース６８は、プロセッサ６２がこれらのＩ／Ｏデバイスのうちの１つまたは複数を駆動することを可能にする１つまたは複数のデバイス・ドライバまたはソフトウェア・ドライバを含むことができる。Ｉ／Ｏインタフェース６８は、適切な場合には、１つまたは複数のＩ／Ｏインタフェース６８を含むことができる。本開示は、特定のＩ／Ｏインタフェースについて記述し、示しているが、本開示は、任意の適切なＩ／Ｏインタフェースを想定している。
【００２０】
特定の実施形態においては、通信インタフェース７０は、コンピュータ・システム６０と、１つもしくは複数のその他のコンピュータ・システム６０または１つもしくは複数のネットワークとの間における通信（例えば、パケットベースの通信等）のための１つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、通信インタフェース７０は、イーサネット（登録商標）もしくはその他の有線ベースのネットワークと通信するためのネットワーク・インタフェース・コントローラ（ＮＩＣ）もしくはネットワーク・アダプタ、またはＷＩ−ＦＩネットワーク等のワイヤレス・ネットワークと通信するためのワイヤレスＮＩＣ（ＷＮＩＣ）もしくはワイヤレス・アダプタを含むことができる。本開示は、任意の適切なネットワーク、およびそのネットワークのための任意の適切な通信インタフェース７０を想定している。限定ではなく、例として、コンピュータ・システム６０は、アド・ホック・ネットワーク、パーソナル・エリア・ネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、またはインターネットの１つまたは複数の部分、またはこれらのうちの複数の組合せと通信することができる。これらのネットワークのうちの１つまたは複数の１つまたは複数の部分は、有線または無線であることが可能である。例として、コンピュータ・システム６０は、ワイヤレスＰＡＮ（ＷＰＡＮ）（例えば、ブルートゥース（登録商標）ＷＰＡＮ等）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、セルラー電話ネットワーク（例えば、グローバル・システム・フォー・モバイルコミュニケーションズ（ＧＳＭ（登録商標））ネットワーク等）、またはその他の適切なワイヤレス・ネットワーク、またはこれらのうちの複数の組合せと通信することができる。コンピュータ・システム６０は、適切な場合には、これらのネットワークのうちの任意のネットワークのための任意の適切な通信インタフェース７０を含むことができる。通信インタフェース７０は、適切な場合には、１つまたは複数の通信インタフェース７０を含むことができる。本開示は、特定の通信インタフェースについて記述し、示しているが、本開示は、任意の適切な通信インタフェースを想定している。
【００２１】
特定の実施形態においては、バス７２は、コンピュータ・システム６０のコンポーネント同士を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、バス７２は、アクセラレイティッド・グラフィックス・ポート（ＡＧＰ）またはその他のグラフィックス・バス、エンハンスト・インダストリー・スタンダード・アーキテクチャ（ＥＩＳＡ）バス、フロント・サイド・バス（ＦＳＢ）、ハイパー・トランスポート（ＨＴ）インターコネクト、インダストリー・スタンダード・アーキテクチャ（ＩＳＡ）バス、インフィニバンド（ＩＮＦＩＮＩＢＡＮＤ）・インターコネクト、ロー・ピン・カウント（ＬＰＣ）バス、メモリバス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、シリアル・アドバンスト・テクノロジー・アタッチメント（ＳＡＴＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション・ローカル（ＶＬＢ）バス、または別の適切なバス、またはこれらのうちの複数の組合せを含むことができる。バス７２は、適切な場合には、１つまたは複数のバス７２を含むことができる。本開示は、特定のバスについて記述し、示しているが、本開示は、任意の適切なバスまたはインターコネクトを想定している。
【００２２】
本明細書においては、１つまたは複数の非一時的なコンピュータ可読記憶媒体は、適切な場合には、１つもしくは複数の半導体ベースのもしくはその他の集積回路（ＩＣ）（例えば、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）もしくは特定用途向け集積回路（ＡＳＩＣ）等）、ハード・ディスク・ドライブ（ＨＤＤ）、ハイブリッド・ハード・ドライブ（ＨＨＤ）、光ディスク、光ディスク・ドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピー（登録商標）・ディスケット、フロッピー（登録商標）・ディスク・ドライブ（ＦＤＤ）、磁気テープ、ソリッド・ステート・ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュア・デジタル・カードもしくはドライブ、その他の任意の適切な非一時的なコンピュータ可読記憶媒体、またはこれらのうちの複数の組合せを含むことができる。非一時的なコンピュータ可読記憶媒体は、適切な場合には、揮発性、不揮発性、または揮発性と不揮発性の組合せであることが可能である。
【００２３】
本明細書においては、「または（もしくは）」は、包含的であり、排他的ではない（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。したがって、本明細書においては、「ＡまたはＢ」は、「Ａ、Ｂ、またはその両方」を意味する（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。その上、「および（ならびに）」は、包括的および個別的の両方である（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。したがって、本明細書においては、「ＡおよびＢ」は、「まとめて、または個別に、ＡおよびＢ」を意味する（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。
【００２４】
本開示の範囲は、当技術分野における標準的な技術者が理解するであろう、本明細書において記述されているまたは示されている例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書において記述されているまたは示されている例示的な実施形態に限定されない。その上、本開示は、本明細書におけるそれぞれの実施形態を、特定のコンポーネント、要素、機能、オペレーション、またはステップを含むものとして記述し、示しているが、これらの実施形態のいずれも、当技術分野における標準的な技術者が理解するであろう、本明細書の任意の箇所において記述されているまたは示されているコンポーネント、要素、機能、オペレーション、またはステップのうちの任意のものの任意の組合せまたは順列を含むことができる。さらに、特定の機能を実行するように適合されている、実行するようにアレンジされている、実行することができる、実行するように構成されている、実行することを可能にされている、実行するように機能できる、または実行するように機能する装置もしくはシステム、または装置もしくはシステムのコンポーネントへの添付の特許請求の範囲における言及は、その装置、システム、コンポーネント、またはその特定の機能が、アクティブ化されているか否か、オンにされているか否か、またはロック解除されているか否かを問わず、その装置、システム、またはコンポーネントが、そうするように適合されている、そうするようにアレンジされている、そうすることができる、そうするように構成されている、そうすることを可能にされている、そうするように機能できる、またはそうするように機能する限り、その装置、システム、コンポーネントを包含する。
【図１】
2016511465.tif 000003
【図２】
2016511465.tif 000004
【図３】
2016511465.tif 000005
【図４】
2016511465.tif 000006
【国際調査報告】
2016511465.tif 000007
2016511465.tif 000008