(58)【調査した分野】(Int.Cl.,DB名)
前記ジェスチャーが反転を含むことを判別することが、前記ジェスチャーの前記後続点が前記エッジ内であることを判別することを含む、請求項1記載のコンピュータ実装される方法。
前記ジェスチャーが反転を含むことを判別することが、前記ジェスチャーの前記後続点が、前記のちの点または前に受領された後続点より前記エッジに近いことを判別することを含む、請求項1記載のコンピュータ実装される方法。
前記第三のユーザー・インターフェースは、前記第二のユーザー・インターフェースに隣接してまたは前記第二のユーザー・インターフェースに部分的に重なって呈示される、請求項4記載の方法。
前記第二のユーザー・インターフェースの拡張または第三のユーザー・インターフェースの呈示を引き起こすことは、前記ジェスチャーが受領されるにつれて漸進的に実行される、請求項4記載のコンピュータ実装される方法。
前記拡張または前記呈示を引き起こすのに続いて、前記ジェスチャーにおける反転を示す第二の後続点を受領し、前記反転に応答して、前記第二のユーザー・インターフェースの前記拡張または前記第三のユーザー・インターフェースの前記呈示を終了させることをさらに含む、請求項4記載の方法。
前記エッジにおいて受領される第三の後続点を受領し、前記エッジにおいて前記第三の後続点を受領するのに応答して、前記第二のユーザー・インターフェースを呈示させることをさらに含む、請求項4記載の方法。
【発明を実施するための形態】
【0008】
〈概観〉
本稿は、エッジ・ジェスチャーを可能にする技法および装置を記述する。これらの技法は、ユーザーが、現在、ユーザーの装置上に露わにされていないインターフェースを迅速かつ簡単に選択できるようにするとともに他の操作をも可能にする。
【0009】
ユーザーがタブレット・コンピューティング装置上で映画を見ている事例を考えてみる。映画がディスプレイ全部を占める没入型インターフェース上で再生されており、ユーザーが映画を止めることなくソーシャル・ネットワーキングのウェブページをチェックしたいとする。記載される技法および装置は、ユーザーが、ディスプレイのエッジに始まる簡単なスワイプ・ジェスチャーを通じて他のインターフェースを選択できるようにする。ユーザーはディスプレイの一つのエッジからスワイプして、ユーザー・インターフェースを引き出し(drag out)てもよく、それによりソーシャル・ネットワーキング・ウェブサイトを選択できる。代わりに、ユーザーが、字幕または監督の論評を有効にするメニューを表示するなど、没入型インターフェースでは許されない仕方で、映画を再生しているメディア・アプリケーションと対話したいとする。ユーザーはタブレットのディスプレイの別のエッジからスワイプし、没入型インターフェースのための制御メニューを引き出し、このメニューから迅速かつ簡単に項目および/またはコマンドを選択してもよい。
【0010】
これら両方の事例において、映画を再生するために使われる貴重な不動産が画面上コントロールで食われることはなく、ユーザーがハードウェア・ボタンを覚え、みつけることも要求されなかった。さらに、エッジから始まるもの以外のいかなるジェスチャーもこの例の技法によって使われず、よって、没入型インターフェースが普通に利用可能なジェスチャーをほとんど全部使うことを許容する。さらに、エッジ・ジェスチャーまたはその一部を考えることによって、本技法は、ジェスチャーまたはタッチ入力システムのパフォーマンスに影響しない。エッジ・ジェスチャーはジェスチャー全体が完了する前に処理されることができ、よそでの開始されたジェスチャー全体を処理することに関連する遅延を回避するからである。
【0011】
これらは、本技法がエッジ・ジェスチャーを可能にし、使用する多くの仕方のうちほんの二つの例である。他の例については後述する。
【0012】
〈例示的なシステム〉
図1は、エッジ・ジェスチャーを可能にする技法が具現できる例示的なシステム100を示している。システム100は、六個の例:ラップトップ・コンピュータ104、タブレット・コンピュータ106、スマートフォン108、セットトップボックス110、デスクトップ・コンピュータ112およびゲーム装置114をもって示されているコンピューティング装置102を含む。ただし、サーバーおよびネットブックのような他のコンピューティング装置およびシステムが使用されてもよい。
【0013】
コンピューティング装置102は、コンピュータ・プロセッサ(単数または複数)116およびコンピュータ可読記憶媒体118(媒体118)を含む。媒体118はオペレーティング・システム120、ウインドー・ベース・モード・モジュール122、没入モード・モジュール124、システム・インターフェース・モジュール126、ジェスチャー・ハンドラ128および一つまたは複数のアプリケーション130を含み、各アプリケーションはそれぞれ一つまたは複数のアプリケーション・ユーザー・インターフェース132をもつ。
【0014】
コンピューティング装置102はまた、一つまたは複数のディスプレイ134および入力機構136を含むまたはこれへのアクセスをもつ。たとえば、
図1にはディスプレイが示されている。入力機構136は、若干の例を挙げれば、タッチベースのセンサーおよび動き追跡センサー(たとえばカメラに基づくもの)のようなジェスチャー感応性のセンサーおよびデバイスならびにマウス(独立型またはキーボードと一体)、トラックパッドおよび付属の音声認識ソフトウェア付きのマイクロホンを含む。入力機構136はディスプレイ134と別個であっても一体であってもよい。一体型の例は統合されたタッチ感応性または動き感応性センサーをもつジェスチャー感応性ディスプレイを含む。
【0015】
ウインドー・ベース・モード・モジュール122は、フレームをもつウインドーを通じてアプリケーション・ユーザー・インターフェース132を呈示する。これらのフレームは、アプリケーションと対話するためのコントロールおよび/またはユーザーがウインドーを動かしサイズ変更できるようにするコントロールを提供してもよい。
【0016】
没入モード・モジュール124は、ユーザーがアプリケーション・ユーザー・インターフェース132を通じてアプリケーション130の一つまたは複数を閲覧し、これと対話しうる環境を提供する。いくつかの実施形態では、この環境は、ウインドー・フレームほとんどなしまたは全くなしで、および/またはユーザーがウインドー・フレームのレイアウトまたは他のウインドーとの関連での首位性(たとえばどのウインドーがアクティブであるかまたは手前にあるか)を管理したり手動でアプリケーション・ユーザー・インターフェース132のサイズもしくは位置を決めたりする必要なしに、アプリケーションの内容を呈示し、該アプリケーションとの対話を可能にする。
【0017】
この環境は、ウインドー・ベースのデスクトップ環境を使うことなくホストおよび/または表面化することができるが、それは必須ではない。このように、いくつかの事例では、没入モード・モジュール124は、ウインドーではない(実質的なフレームのないウインドーでさえない)没入型の環境を呈示し、デスクトップのような表示(たとえばタスクバー)の使用を排除する。さらに、いくつかの実施形態では、この没入型の環境は、閉じることも、アンインストールすることもできない点でオペレーティング・システムと同様である。必須ではないが、いくつかの場合には、この没入型の環境は、ディスプレイのピクセルの全部またはほとんど全部をアプリケーションが使うことを可能にする。没入型環境の例は、本技法を記述する一環として下記で与えられる。ただし、それは網羅的でも、本稿に記載される技法を限定することを意図されたものでもない。
【0018】
システム・インターフェース・モジュール126は、オペレーティング・システム120との対話を可能にする一つまたは複数のインターフェースを提供する。ほんの数例を挙げれば、たとえば、アプリケーション立ち上げインターフェース、スタート・メニューまたはシステム・ツールもしくはオプション・メニューなどである。
【0019】
オペレーティング・システム120、モジュール122、124および126ならびにジェスチャー・ハンドラ128は、互いから別個であることもできるし、あるいは任意の好適な形で組み合わされまたは統合されることができる。
【0020】
〈例示的な方法〉
図2は、エッジ・ジェスチャーがジェスチャーが始まるエッジにほぼ垂直であることに基づいてエッジ・ジェスチャーを可能にする方法200を描いている。以下の議論の諸部分において、
図1のシステム100を参照することがあるが、その参照は単に例としてである。
【0021】
ブロック202はジェスチャーを受け取る。このジェスチャーは、ウインドー・ベースのインターフェースを通じて、没入型インターフェースを通じてまたは全くインターフェースを通じずになど、ディスプレイのさまざまな部分において受領されてもよい。さらに、このジェスチャーは、タッチパッド、マウスもしくはローラー・ボールを通じて受領される動きのポインター追跡または腕(単数または複数)、指(単数または複数)もしくはスタイラスでなされる、動き感応性もしくはタッチ感応性機構を通じて受領される物理的な動きなど、さまざまな仕方でなされ、受領されてもよい。いくつかの場合には、ジェスチャーはディスプレイの物理的なエッジからまたは物理的なエッジ近くで(たとえば、指またはスタイラスがディスプレイのエッジに出会う際に)、ほんの数例挙げればタッチ・デジタイザー、容量性タッチスクリーンまたは容量性センサーによって、受領される。
【0022】
たとえば、タブレット・コンピューティング装置106を示している
図3を考える。タブレット106はウェブページ306を含む没入型インターフェース304を表示しているところを示されているタッチ感応性ディスプレイ302を含む。継続的な例の一環として、ブロック202において、ジェスチャー・ハンドラ128が
図3に示されるようなジェスチャー308を受領する。
【0023】
ブロック204は、ジェスチャーの開始点がエッジにあるかどうかを判定する。上記のように、問題のエッジは、没入型であれウインドー・ベースであれユーザー・インターフェースのおよび/またはディスプレイのエッジであることができる。いくつかの場合には、もちろん、ユーザー・インターフェースのエッジはディスプレイのエッジでもある。エッジのサイズは、ディスプレイまたはインターフェースについてのさまざまな因子に基づいて変わりうる。小さなディスプレイまたはインターフェースは、大きなディスプレイまたはインターフェースよりも、絶対的なまたはピクセルの面でより小さなサイズをもつことがある。感度が高い入力機構はより小さなエッジも許可する。いくつかの事例では、入力機構がディスプレイまたは画面を越えたジェスチャー部分を受領することができる場合には、エッジはディスプレイまたは画面のエッジを越えて延びていてもよい。エッジの例は長方形であり、一方の次元方向において1ピクセルから20ピクセルまでの間であり、他方の次元方向においてはインターフェースまたはディスプレイのインターフェース限界である。ただし、凸型および凹型のエッジを含め他のサイズおよび形が代わりに使われてもよい。
【0024】
上記の継続的な例を続け、
図4を考える。
図4は、
図3の没入型インターフェース304およびジェスチャー308のほかに、左エッジ402、上エッジ404、右エッジ406および下エッジ408を示している。視覚的な明瞭さのため、ウェブページ306は示されていない。この例では、インターフェースおよびディスプレイの寸法は、スマートフォンと多くのラップトップおよびデスクトップ・ディスプレイの間の中くらいのサイズである。エッジ402、404、406および408は、20ピクセルまたは絶対的に約10〜15mmの小さな寸法をもつ。それぞれの領域は、図では、ディスプレイ限界から20ピクセルの、それぞれエッジ限界410、412、414および416のところにある破線によって境を区切られている。
【0025】
ジェスチャー・ハンドラ128が、ジェスチャー308が開始点418をもち、この開始点418が左エッジ402内であることを判別する。ジェスチャー・ハンドラ128は、この場合、開始点を、ジェスチャー308が始まる[X,Y]座標をピクセル単位で示すデータを受領し、これらの座標の第一のものを各エッジ402〜408内に含まれるピクセルと比較することによって判別する。ジェスチャー・ハンドラ128はしばしば、開始点および該開始点がエッジ内かどうかを、サンプル・レートより速く決定でき、よってジェスチャーを単に、ジェスチャーがなされる見えているインターフェースに直接渡す技法からほとんどまたは全くパフォーマンス劣化を引き起こすことがない。
【0026】
方法200に戻ると、一般に、ブロック204がジェスチャーの開始点がエッジではないと判別する場合、方法200は「No」経路に沿ってブロック206に進む。ブロック206はジェスチャーを、ジェスチャーが受領された根底にあるインターフェースなど、露わにされているユーザー・インターフェースに渡す。上記の継続的な例を変えて、ジェスチャー308がエッジ内に開始点をもたないと判別されたとする。そのような場合、ジェスチャー・ハンドラ128は、ジェスチャー308についてのバッファリングされたデータを没入型ユーザー・インターフェース304に渡す。ジェスチャーを渡したのち、方法200は終了する。
【0027】
ブロック204が、ジェスチャーの開始点がエッジにあると判別する場合、方法200は「Yes」経路に沿ってブロック208に進む。任意的に、ブロック204は方法がブロック208に進む前にジェスチャーの一部の長さを判別してもよい。いくつかの場合には、ジェスチャーの前記一部の長さを判別することは、ジェスチャーの完了に先立って開始点が決定されることを許容する。ブロック208は、開始点からジェスチャーののちの点までの線がエッジからほぼ垂直であるかどうかを判別することによって、ブロック204の肯定的な判定に応答する。
【0028】
ブロック208は、いくつかの実施形態では、使用される前記のちの点を決定する。ジェスチャー・ハンドラ128はたとえば、前記のちの点が、みな
図4のエッジ402についてのエッジ限界410を過ぎたところまたは開始点418から20ピクセルなど、エッジもしくは開始点から事前設定された距離で受領されることに基づいて、ジェスチャーの前記のちの点を決定することができる。他のいくつかの実施形態では、ジェスチャー・ハンドラ128は、前記のちの点が開始点の受領後、ジェスチャーがタップ・アンド・ホールドまたはホバー・ジェスチャーであると判定するのにコンピューティング装置102が一般に使うよりもわずかに長い時間など、事前設定された時間に受領されることに基づいて前記のちの点を決定する。
【0029】
上記の継続的な実施形態について、ジェスチャー・ハンドラ128は、エッジ402の外側で受領されるジェスチャー308ののちに受領された点を、該のちに受領された点が事前設定された時間以内に受領される限り、使用する。その事前設定された時間内にエッジの外側で点が受領されなければ、ジェスチャー・ハンドラ128はブロック206に進み、ジェスチャー308を没入型インターフェース304に渡す。
【0030】
開始点を使って、ブロック208は、ジェスチャーの開始点からのちの点までの線がエッジにほぼ垂直であるかどうかを判定する。ブロック208によるこの判定では、5度、10度、20度または30度など、さまざまな分散角(angle of variance)が使用できる。
【0031】
たとえば、垂直からの分散角30度を考える。
図5は、この例示的な分散を示しており、
図3および
図4の没入型インターフェース304、ジェスチャー308、左エッジ402、左エッジ限界410および開始点418を、垂直線504から30度の分散の線502とともに示している。このように、ジェスチャー・ハンドラ128は、開始点418からのちの点508までの線506(これは垂直から約20度である)が、この例示的な30度の分散線(variance line)502内であることに基づいて、ほぼ垂直であると判定する。
【0032】
一般に、ブロック208が上記線がエッジにほぼ垂直でないと判定する場合、方法200は「No」の経路に沿ってブロック206に進む(たとえば指の経路が曲がっている)。部分的に上述したように、ブロック208は、のちの点またはジェスチャーの他の側面が該ジェスチャーの資格を失わせることを判定してもよい。例としては、ホバー、タップ、プレス・アンド・ホールドまたは上下ジェスチャー(たとえばユーザー・インターフェース内で内容をスクロールさせるため)などのためにのちの点がエッジ内にある場合、上記ジェスチャーが単一入力ジェスチャーであると設定されていて第二の入力が受領される場合(たとえば、第一の指がエッジで始まるが、その後、第二の指がどこかに着地する)、または上記ジェスチャー中または上記ジェスチャーの前にタップ・イベントが発生する場合(たとえば、指がすでに他所で接触をしている、またはジェスチャー中に他所で接触が受領される)が含まれる。
【0033】
ブロック208が、エッジ外ののちの点に基づいて上記線がほぼ垂直であると判定する場合、方法200は「Yes」の経路に沿ってブロック210に進む。
【0034】
ブロック210は、ブロック208の肯定的な判定に対して、ジェスチャーを、露わにされているユーザー・インターフェース以外のエンティティに渡すことによって応答する。このエンティティは、そもそもジェスチャーがユーザー・インターフェースを通じて受領されたとしても、該ジェスチャーが受領されたユーザー・インターフェースではない。ブロック210は、ジェスチャーの開始点が受領されたエッジまたはエッジの領域などに基づいて、ジェスチャーをどのエンティティに渡すかも決定してもよい。たとえば
図6を考える。
図6は、
図4の没入型インターフェース304およびエッジ402、404、406および408を示すが、右エッジ406に上領域602および下領域604を加えている。上領域602内の開始点の結果、下領域604の受領された開始点とは異なるエンティティを与えることができる(または同じエンティティでも異なるユーザー・インターフェースが応答して提供される)。同様に、上エッジ404内の開始点の結果、左エッジ402または下エッジ408とは異なるエンティティまたはインターフェースを与えることができる。
【0035】
いくつかの場合には、このエンティティは上記ユーザー・インターフェースに関連付けられたアプリケーションである。そのような場合、ジェスチャーをそのエンティティに渡すことは、該アプリケーションに、該アプリケーションとの対話を可能にする第二のユーザー・インターフェースを呈示させる効果をもつことができる。上記の映画の例では、エンティティは、映画を再生しているメディア・プレーヤーであるが映画を表示する没入型インターフェースではないことができる。その場合、メディア・プレーヤーは、映画を表示するインターフェースによって可能にされる、「一時停止」、「再生」、「停止」などの選択ではなく、字幕または監督の論評の選択を可能にする第二のユーザー・インターフェースを呈示することができる。この機能は、
図1では、アプリケーション130の一つが、二つ以上のアプリケーション・ユーザー・インターフェース132を含むまたは呈示することができる場合に、許容される。このように、ブロック210は、ジェスチャーを、システム・インターフェース・モジュール126、ユーザー・インターフェースを現在呈示しているアプリケーション130のうちの前記一つまたはアプリケーション130のうちの別のものに渡すことができる。ここでは三つの可能性だけを挙げた。
【0036】
上記の継続的な実施形態の完結として、ブロック210において、ジェスチャー・ハンドラ128はジェスチャー308をシステム・インターフェース・モジュール126に渡す。システム・インターフェース・モジュール126はジェスチャー308のバッファリングされている部分を受領し、ジェスチャー308の残りを、ユーザーによってなされるにつれて受領し続ける。
図7は、ジェスチャー308を受領したときの可能な応答を示しており、システム・インターフェース・モジュール126によって、
図3からの没入型インターフェース304およびウェブページ306の上に呈示されるアプリケーション選択インターフェース702を示している。アプリケーション選択インターフェース702は、さまざまな他のアプリケーションおよびそのそれぞれのインターフェースの選択を、選択可能なアプリケーション・タイル704、706、708および710において可能にする。
【0037】
例示的なアプリケーション選択インターフェース702は、没入モード・モジュール124を使って呈示される没入型ユーザー・インターフェースである。ただし、これは必須ではない。呈示される諸インターフェースまたはそのリストは、代わりに、ウインドー・ベースであり、ウインドー・ベース・モジュール122を使って呈示されてもよい。これらのモジュールはいずれも
図1に示されている。
【0038】
ブロック210は、追加的にまたは代替的に、受領されたジェスチャーについての他の因子に基づいて、ジェスチャーを種々のエンティティおよび/またはインターフェースに渡すことを決定してもよい。例示的な因子は下記の方法800においてより詳細に記述する。
【0039】
方法200および以下に記述する他の方法は、ジェスチャーがなされ受領されつつあるときなど、リアルタイムで実行できることを注意しておく。これは、中でも、ジェスチャーに応答して呈示されるユーザー・インターフェースが、ジェスチャーの完了前に呈示されることを許容する。さらに、ユーザー・インターフェースはジェスチャーが受領されるにつれて漸進的に呈示されることができる。これは、ジェスチャーが実行される際にエッジからユーザー・インターフェースを引き出す際にユーザー・インターフェースがジェスチャーに(たとえばジェスチャーを行うマウス・ポイントまたは人の指に)「くっついている」ように見えるユーザー経験を許容する。
【0040】
図8は、ジェスチャーの何らかの因子に基づいて呈示すべきインターフェースを決定することを含むエッジ・ジェスチャーを可能にするための方法800を描いている。以下の議論の諸部分において、
図1のシステム100を参照することがあるが、その参照は単に例としてである。方法800は、本稿に記載される他の方法と完全にまたは部分的に別個に、あるいは他の方法と連携して機能してもよい。
【0041】
ブロック802はユーザー・インターフェースを通じてなされたジェスチャーが、ユーザー・インターフェースのエッジにおける開始点およびエッジ内でないのちの点をもつことを判別する。ブロック802は、ブロック802の判定の基礎となるのちの点の判別など、方法200の諸側面と同様に動作し、あるいは該諸側面を使ってもよい。ブロック802は異なる仕方で機能してもよい。
【0042】
一つの場合には、たとえば、ブロック802は、ジェスチャーが、表されている没入型ユーザー・インターフェースのエッジにおいて始まり、エッジにないがジェスチャーの角度に基づいていないのちの点をもつ一本指のスワイプ・ジェスチャーであることを判別する。この判別に基づいて、ブロック802は、ジェスチャーを表されている没入型ユーザー・インターフェースに渡すのではなく、ブロック804に進む。
【0043】
ブロック804は、ジェスチャーの一つまたは複数の因子に基づいてどのインターフェースを呈示するかを決定する。ブロック804は、ジェスチャーの最終的な長さまたは中間的な長さ、ジェスチャーが単一点か複数点か(たとえば一本指か複数指か)またはジェスチャーのスピードに基づいてそれを行ってもよい。いくつかの場合には、ジェスチャーの二つ以上の因子がどのインターフェースを呈示すべきかを決定する。あるドラッグ長さおよびホールド時間をもつドラッグ・アンド・ホールドまたはあるドラッグ長さおよびドロップ位置をもつドラッグ・アンド・ドロップ・ジェスチャーなどである。このように、ブロック804は、たとえば、複数指ジェスチャーに応答してスタート・メニューを、比較的短い一本指ジェスチャーに応答してアプリケーション選択インターフェースを、あるいは比較的長い一本指ジェスチャーに応答してコンピューティング装置102をシャットダウンする選択を許容するシステム制御インターフェースを呈示することを決定してもよい。そうするために、ジェスチャー・ハンドラ128はジェスチャーの長さ、スピードまたは入力(たとえば指)の数を判別してもよい。
【0044】
応答して、ブロック806は決定されたユーザー・インターフェースを呈示する。決定されたユーザー・インターフェースは、本稿で言及されているもののいずれであっても、また電子書籍の新規ページ、追加的な視覚要素(たとえばツールバーまたはナビゲーション・バー)または現在のユーザー・インターフェースの修正された見え方(現在のユーザー・インターフェースのテキストを異なるフォント、色またはハイライトで呈示する)といった全体的な新しい視覚要素であってもよい。いくつかの場合には、ビデオ・ゲームに関係するアクションまたは現在のもしくは呈示されるユーザー・インターフェースに関連するサウンド効果といった視覚的または非視覚的な効果が呈示されてもよい。
【0045】
例として、ジェスチャー・ハンドラ128が、ジェスチャーのある因子に基づいて、オペレーティング・システム120との対話を可能にするユーザー・インターフェースを呈示することを決定するとする。応答して、システム・インターフェース・モジュール126がこのユーザー・インターフェースを呈示する。ユーザー・インターフェースの呈示は、
図7のアプリケーション選択ユーザー・インターフェース702の漸進的な表示など、他の方法において記述されているのと同様の仕方であってもよい。
【0046】
方法200および/または方法800の全体または一部に続いて、本技法は、
図9の方法900を実行することに進んでもよい。方法900は、ユーザー・インターフェースの拡張、別のインターフェースの呈示またはエッジ・ジェスチャーに応答して呈示されているユーザー・インターフェースの呈示終了を可能にする。
【0047】
ブロック902は、ジェスチャーの後続点を受領する。第二のユーザー・インターフェースの少なくとも何らかの部分の呈示後である。部分的に上記したように、方法200および/または800は、現在のユーザー・インターフェースに関連付けられている同じアプリケーションのための第二のユーザー・インターフェース、異なるアプリケーションまたはシステム・ユーザー・インターフェースのような第二のユーザー・インターフェースを呈示するまたは呈示させることができる。
【0048】
例として、タッチ感応性ディスプレイ1002を有するラップトップ・コンピュータ104を示している
図10を考える。該ディスプレイは、ウインドー・ベースの電子メール・インターフェース1004および二つの没入型インターフェース1006および1008を表示している。ウインドー・ベースの電子メール・インターフェース1004は、ラップトップ・コンピュータ104にとってリモートまたはローカルであることができる、電子メールを管理するアプリケーションに関連付けられている。
図10はまた、二つのジェスチャー1010および1012をも示している。ジェスチャー1010は直線で進み、一方、ジェスチャー1012は逆戻りする(二つの方向を示す二つの矢印で図示されている)。
【0049】
図11は、開始点(starting point)1102、のちの点(later point)1104および後続点(successive point)1106をもつジェスチャー1010と、開始点1102、のちの点1108および第一の後続点1110および第二の後続点1112をもつジェスチャー1012とを示している。
図11はまた、下エッジ1114、のちの点の領域1116およびインターフェース追加領域1118をも示している。
【0050】
ブロック904は、後続点に基づいて、ジェスチャーが逆行、延長を含むかいずれも含まないかを判定する。ブロック904は、後続点が前記エッジにあるまたは当該ジェスチャーの以前の点よりエッジに近いことを判別することによってジェスチャーの方向における反転を判別してもよい。ブロック904は、後続点が前記エッジまたは前記のちの点から事前設定された距離にあることに基づいてジェスチャーが延びていることを判別してもよい。これらのいずれも真であると判定されない場合、方法900はブロック902および904を繰り返して、ジェスチャーが終了するまで、さらなる後続点を受領および解析してもよい。ブロック904が反転があると判定する場合、方法900は「反転」経路に沿ってブロック906に進む。ブロック904がジェスチャーが延長されていると判定する場合、方法900は「延長」経路に沿ってブロック908に進む。
【0051】
今の例のコンテキストにおいて、ジェスチャー・ハンドラ128がジェスチャー1012の第一の後続点1110を受領するとする。ジェスチャー・ハンドラ128はその際、第一の後続点1110がエッジ1114になく、当該ジェスチャーの以前の点よりエッジ1114に近くなく(たとえば、のちの点1108より近くない)、インターフェース追加領域1118内でないことによって前記エッジまたはのちの点から事前設定された距離でもないことを判別する。そのような場合、方法900はブロック902に戻る。
【0052】
ブロック902の第二の反復では、ジェスチャー・ハンドラ128が第二の後続点1112を受領するとする。そのような場合、ジェスチャー・ハンドラ128は第二の後続点1112が第一の後続点1110よりエッジ1114に近く、よってジェスチャー1012が反転を含んでいることを判別する。ジェスチャー・ハンドラ128は次いでブロック906に進んで、当該ジェスチャーに応答して前に呈示された第二のユーザー・インターフェースの呈示を終える。例として、電子メール・ハンドリング・インターフェース1202を示す
図12を考える。ブロック906のこの例示的な場合では、ジェスチャー・ハンドラ128は電子メール・アプリケーションに、ジェスチャー1012の反転に応答してインターフェース1202を呈示することをやめさせる(除去されることは図示していない)。
【0053】
しかしながら、ブロック908は、第三のユーザー・インターフェースまたは第二のユーザー・インターフェースの拡張を呈示するまたは呈示させる。いくつかの場合には、第三のユーザー・インターフェースの呈示は、呈示を取り消すことまたは第二のユーザー・インターフェースを隠す(たとえば第三のユーザー・インターフェースを第二のユーザー・インターフェースの上に呈示する)ことを通じて、第二のユーザー・インターフェースが呈示されるのを終わらせる。継続的な例を続け、
図13を考える。この図は、エッジ1104から事前設定された距離の、この場合、
図11のインターフェース追加領域1118内である後続点1106をもつと判定されたジェスチャー1010に応答して追加的な電子メール・オプション・インターフェース1302を示している。この領域および事前設定距離は、当該ジェスチャーに応答して前に呈示されたユーザー・インターフェースのサイズに基づいて設定されることができる。こうして、追加的なコントロールを追加したいユーザーは、単に、ジェスチャーを、該ジェスチャーのより早期の部分に応答して呈示されたユーザー・インターフェースを過ぎて延長するだけでよい。
【0054】
方法900は、追加的なユーザー・インターフェースを追加するまたは呈示されているユーザー・インターフェースを拡張するために繰り返されることができる。
図7の例示的なインターフェース702に戻ると、たとえば、ジェスチャー・ハンドラ128は、ジェスチャー308がインターフェース702を過ぎて延びるにつれて、選択可能なアプリケーション・タイルの追加的なセットを呈示するなどして、インターフェースまたはコントロールをインターフェース702に追加することを続けることができる。ジェスチャー308が追加的なタイルを過ぎて延びる場合には、ジェスチャー・ハンドラ128はシステム・インターフェース・モジュール124に、該タイルに隣接する、ユーザーがコントロールを選択できるようにする別のインターフェースを呈示させてもよい。コントロールは、コンピューティング装置102をサスペンド、ハイバーネート、モード切り換え(没入型からウインドー・ベースにおよびその逆)またはシャットダウンするなどである。
【0055】
エッジ・ジェスチャーに応答して呈示される上記の例のユーザー・インターフェースは不透明であるが、部分透明(partially transparent)であってもよい。これは、内容を隠蔽しないことによって有用となりうる。上記の映画の例では、呈示されるユーザー・インターフェースは、部分透明であり、それによりユーザー・インターフェースの使用中、映画が部分的に隠蔽されるだけとすることができる。同様に、
図12および
図13の例において、インターフェース1202および1302は部分透明であってもよく、それにより、ユーザーが、インターフェースの一つにおけるコントロールの選択もしながら、電子メールのテキストを見ることができるようにする。
【0056】
以上の議論は、本技法がエッジ・ジェスチャーを可能にし、使用しうる方法を記述している。これらの方法は、実行される動作を指定するブロックのセットとして示されているが、必ずしもそれぞれのブロックによる動作を実行するための図示した順序に限定されるわけではない。
【0057】
これらの方法の諸側面は、ハードウェア(たとえば、固定論理回路)、ファームウェア、シリコン・オン・チップ(SoC)、ソフトウェア、手動処理またはそれらの任意の組み合わせにおいて実装されてもよい。ソフトウェア実装は、コンピュータ・プロセッサによって実行されたときに指定されたタスクを実行する、ソフトウェア、アプリケーション、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手続、モジュール、関数などといったプログラム・コードを表す。プログラム・コードは、コンピュータ・プロセッサにローカルおよび/またはリモートな一つまたは複数のコンピュータ可読メモリ・デバイスに記憶されることができる。上記の方法はまた、複数のコンピューティング装置によって分散コンピューティング環境において実施されてもよい。
【0058】
〈例示的な装置〉
図14は、エッジ・ジェスチャーを可能にし、使用するために、クライアント、サーバーおよび/または
図1ないし
図13を参照して述べたコンピューティング装置の任意の型として実装されることができる例示的な装置1400のさまざまなコンポーネントを示している。諸実施形態において、装置1400は、有線および/または無線装置の一つまたは組み合わせとして、テレビジョン・クライアント装置(たとえばテレビジョン・セットトップ・ボックス、デジタル・ビデオ・レコーダー(DVR)など)、消費者装置、コンピュータ装置、サーバー装置、ポータブル・コンピュータ装置、ユーザー装置、通信装置、ビデオ処理および/またはレンダリング装置、アプライアンス装置、ゲーム装置、電子装置および/または別の型の装置の形として、実装されることができる。装置1400はまた、ユーザー(たとえば人)および/または当該装置を運用するエンティティに関連付けられていてもよい。よって、装置は、ユーザー、ソフトウェア、ファームウェアおよび/または装置の組み合わせを含む論理的な装置を記述する。
【0059】
装置1400は、装置データ1404(たとえば受領されるデータ、受領されつつあるデータ、放送のためにスケジュールされているデータ、該データのデータ・パケットなど)の有線および/または無線通信を可能にする通信装置1402を含む。装置データ1404または他の装置コンテンツは、当該装置の構成設定、当該装置上に記憶されているメディア・コンテンツおよび/または当該装置のユーザーに関連付けられた情報を含むことができる。装置1400上に記憶されたメディア・コンテンツは、任意の型のオーディオ、ビデオおよび/または画像データを含むことができる。装置1400は、一つまたは複数のデータ入力1406を含み、それを介して、ユーザー選択可能な入力、メッセージ、音楽、テレビジョン・メディア・コンテンツ、記録されたビデオ・コンテンツおよび任意のコンテンツおよび/またはデータ源から受領された他の任意の型のオーディオ、ビデオおよび/または画像データといった、任意の型のデータ、メディア・コンテンツおよび/または入力が受領されることができる。
【0060】
装置1400は通信インターフェース1408をも含む。これはシリアルおよび/またはパラレル・インターフェース、無線インターフェース、任意の型のネットワーク・インターフェース、モデムおよび他の任意の型の通信インターフェースのうちの任意の一つまたは複数として実装されることができる。通信インターフェース1408は装置1400と通信ネットワークとの間の接続および/または通信リンクを提供し、該リンクによって他の電子装置、コンピューティング装置および通信装置が装置1400とデータを通信する。
【0061】
装置1400は一つまたは複数のプロセッサ1410(たとえば、マイクロプロセッサ、コントローラなどの任意のもの)を含む。該プロセッサはさまざまなコンピュータ実行可能命令を処理して、装置1400の動作を制御するとともに、エッジ・ジェスチャーを可能にするおよび/または使用する技法を可能にする。代替的にまたは追加的に、装置1400は、概括的に1412において特定される処理および制御回路との関連で実装される、ハードウェア、ファームウェアまたは固定論理回路のうちの任意のものまたは組み合わせを用いて実装されることができる。図示していないが、装置1400は、当該装置内のさまざまなコンポーネントを結合するシステム・バスまたはデータ転送システムを含むことができる。システム・バスは、多様なバス・アーキテクチャの任意のものを利用する、メモリ・バスまたはメモリ・コントローラ、周辺バス、ユニバーサル・シリアル・バスおよび/またはプロセッサもしくはローカル・バスといった種々のバス構造の任意のものまたは組み合わせを含むことができる。
【0062】
装置1400は、持続的および/または非一時的なデータ記憶(すなわち、単なる信号伝送ではなく)を可能にする一つまたは複数のメモリ・デバイスのようなコンピュータ可読記憶媒体1414をも含む。その例としては、ランダム・アクセス・メモリ(RAM)、不揮発性メモリ(たとえば、読み出し専用メモリ(ROM)、フラッシュメモリ、EPROM、EEPROMなどの任意の一つまたは複数)およびディスク記憶装置が含まれる。ディスク記憶装置は、ハードディスクドライブ、記録可能型および/または書き換え可能型コンパクトディスク(CD)、任意の型のデジタル多用途ディスク(DVD)などといった任意の型の磁気もしくは光学式記憶装置として実装されてもよい。装置1400は、大容量記憶媒体装置1416をも含むことができる。
【0063】
コンピュータ可読記憶媒体1414は、装置データ1404ならびにさまざまな装置アプリケーション1418および装置1400の動作の諸側面に関係した他の任意の型の情報および/またはデータを記憶するデータ記憶機構を提供する。たとえば、オペレーティング・システム1420は、コンピュータ可読記憶媒体1414とともにコンピュータ・アプリケーションとして維持され、プロセッサ1410上で実行されることができる。装置アプリケーション1418は、任意の形の制御アプリケーションのような装置マネージャ、ソフトウェア・アプリケーション、信号処理および制御モジュール、特定の装置にネイティブなコード、特定の装置のためのハードウェア抽象化層などを含んでいてもよい。
【0064】
装置アプリケーション1418は、エッジ・ジェスチャーを使用するまたは可能にする技法を実装するための任意のシステム・コンポーネントまたはモジュールをも含む。この例では、装置アプリケーション1418はシステム・インターフェース・モジュール122、ジェスチャー・ハンドラ128およびアプリケーション(単数または複数)130を含むことができる。
【0065】
〈結語〉
エッジ・ジェスチャーを可能にする技法および装置の諸実施形態を特徴および/または方法に固有の言葉で記述してきたが、付属の請求項の主題が必ずしも記述されている特定の特徴または方法に限定されないことは理解しておくべきである。むしろ、特定の特徴および方法は、エッジ・ジェスチャーを可能にするおよび/または使用する例示的な実装として開示されているのである。
いくつかの態様を記載しておく。
〔態様1〕
ジェスチャーがジェスチャー感応性ディスプレイまたは該ジェスチャー感応性ディスプレイ内に呈示されているユーザー・インターフェースのエッジにある開始点および該エッジにないのちの点をもつことを判別する段階と;
前記判別に応答して、第二のユーザー・インターフェースを呈示させる段階と;
前記ジェスチャーの後続点に基づいて、前記ジェスチャーが反転を含むことを判別する段階と;
前記ジェスチャーが反転を含むことを判別するのに応答して、前記第二のユーザー・インターフェースの呈示を終了させる段階とを含む、
コンピュータ実装される方法。
〔態様2〕
前記ジェスチャーが反転を含むことを判別することが、前記ジェスチャーの前記後続点が前記エッジ内であることを判別することを含む、態様1記載のコンピュータ実装される方法。
〔態様3〕
前記ジェスチャーが反転を含むことを判別することが、前記ジェスチャーの前記後続点が、前記のちの点または前に受領された後続点より前記エッジに近いことを判別することを含む、態様1記載のコンピュータ実装される方法。
〔態様4〕
ジェスチャーがジェスチャー感応性ディスプレイまたは該ジェスチャー感応性ディスプレイ内に呈示されている第一のユーザー・インターフェースのエッジにある開始点および該エッジにないのちの点をもつことを判別する段階と;
前記判別に応答して、第二のユーザー・インターフェースの呈示を引き起こす段階と;
前記ジェスチャーの後続点に基づいて、前記ジェスチャーが前記エッジまたは前記のちの点から事前設定された距離延びていることを判別する段階と;
前記ジェスチャーが延びていることを判別するのに応答して、前記第二のユーザー・インターフェースの拡張または第三のユーザー・インターフェースの呈示を引き起こす段階とを含む、
コンピュータ実装される方法。
〔態様5〕
前記事前設定された距離は前記第二のユーザー・インターフェースのインターフェース限界より大きい、態様4記載のコンピュータ実装される方法。
〔態様6〕
前記第三のユーザー・インターフェースは、前記第二のユーザー・インターフェースに隣接してまたは前記第二のユーザー・インターフェースに部分的に重なって呈示される、態様4記載の方法。
〔態様7〕
前記第二のユーザー・インターフェースの拡張を引き起こすことは、選択可能なコントロールを追加する、態様4記載のコンピュータ実装される方法。
〔態様8〕
前記第二のユーザー・インターフェースの拡張または第三のユーザー・インターフェースの呈示を引き起こすことは、前記ジェスチャーが受領されるにつれて漸進的に実行される、態様4記載のコンピュータ実装される方法。
〔態様9〕
前記拡張または前記呈示を引き起こすのに続いて、前記ジェスチャーにおける反転を示す第二の後続点を受領し、前記反転に応答して、前記第二のユーザー・インターフェースの前記拡張または前記第三のユーザー・インターフェースの前記呈示を終了させることをさらに含む、態様4記載の方法。
〔態様10〕
前記エッジにおいて受領される第三の後続点を受領し、前記エッジにおいて前記第三の後続点を受領するのに応答して、前記第二のユーザー・インターフェースを呈示させることをさらに含む、態様4記載の方法。