(57)【特許請求の範囲】
【請求項１】
コンテキストベースメニュー用ランチャメカニズムを提供するための、コンピューティングデバイス内で少なくとも部分的に実行される方法であって、
ユーザインタフェース上の表示されたコンテンツの一部の選択、および、前記ユーザインタフェース上の第１のユーザ動作のうちの１つの検出に応じて、コンテキストベースメニューに関連付けられたランチャインジケータを提示する工程であって、前記ランチャインジケータの位置が、前記表示されたコンテンツの前記選択された部分およびユーザ属性に基づいて選択される工程と、
提示された前記ランチャインジケータに関連付けられた第２のユーザ動作を検出する工程と、
前記第２のユーザ動作に応じて、コマンドを実行する工程、および、前記コンテキストベースメニューを表示する工程のうちの１つと
を含む、方法。
【請求項２】
前記第１のユーザ動作および前記第２のユーザ動作は、前記ユーザインタフェース上の固定されたインジケータ上のタップ動作、キーボード入力の組み合わせ、マウス入力、ペン入力、選択されたオブジェクト上のタップ動作、および、一対のコンテンツ選択ハンドルの一方の上でのタップ動作の組からの少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記ユーザインタフェース上の固定された位置、ならびに前記表示されたコンテンツの前記選択された部分、表示されたコンテンツの種類、利用可能な表示領域、および、ユーザインタフェースの境界の組から選択された少なくとも１つに基づいて動的に選択された位置のうちの１つで、前記ランチャインジケータを提示する工程をさらに含む、請求項２に記載の方法。
【請求項４】
前記ランチャインジケータは、前記ユーザ属性に基づいて、前記表示されたコンテンツの前記選択された部分の左側、右側、上部、および下部のうちの１つに沿って提示される、請求項１に記載の方法。
【請求項５】
検出されたスワイプ動作の方向に基づいて、前記表示されたコンテンツの選択された部分に対する位置に、前記ランチャインジケータを提示する工程と、
十分な表示領域が、前記コンテキストベースメニューのために提供されるように、前記表示されたコンテンツの選択された部分に対する位置に、前記ランチャインジケータを提示する工程と
のうちの１つまたは複数をさらに含む、請求項１に記載の方法。
【請求項６】
前記表示されたコンテンツの前記選択された部分のサイズの変化、前記ユーザインタフェースのサイズの変化、および、前記ユーザインタフェースの向きの変化のうちの１つに応じて、前記ランチャインジケータを自動的に移動させる工程をさらに含む、請求項１に記載の方法。
【請求項７】
前記コンテキストベースメニューからのコマンドを実行させる前記第２のユーザ動作に応じてツールチップを表示する工程と、
前記ランチャインジケータが活性化されているが、なんの動作も受信されていないことをユーザに気付かせるために、別のツールチップを表示する工程と
をさらに含む、請求項１に記載の方法。
【請求項８】
前記第１のユーザ動作および前記第２のユーザ動作が、タッチベース動作およびジェスチャベース動作のうちの１つである、請求項１に記載の方法。
【請求項９】
コンテキストベースメニュー用ランチャメカニズムを提供するためのコンピューティングデバイスであって、
入力デバイスと、
メモリと、
前記メモリおよび前記入力デバイスに結合されたプロセッサと、
を備え、前記プロセッサが、アプリケーションを実行し、前記アプリケーションに関連付けられたユーザインタフェースを画面上に表示させ、前記プロセッサが、
前記ユーザインタフェース上の表示されたコンテンツの一部の選択および前記ユーザインタフェース上の第１のユーザ動作のうちの１つを検出することに応じて、コンテキストベースメニューに関連付けられたランチャインジケータを、前記ユーザインタフェース上の固定された位置、ならびに前記表示されたコンテンツの前記選択された部分、表示されたコンテンツの種類、利用可能な表示領域、ユーザインタフェースの境界の組からの少なくとも１つに基づいて動的に選択された位置のうちの１つに提示し、前記ランチャインジケータの位置が、前記表示されたコンテンツの前記選択された部分に基づいて選択されており、
前記提示されたランチャインジケータに関連付けられた第２のユーザ動作を検出し、
前記第２のユーザ動作に応じて、前記ランチャインジケータを隠し、コマンドの実行および前記コンテキストベースメニューの表示のうちの一方を行う
ように構成される、コンピューティングデバイス。
【請求項１０】
前記プロセッサは、
前記ランチャインジケータから離れた第３のユーザ動作を検出し、
前記ランチャインジケータを、アニメーション化された様式で隠す
ようにさらに構成される、請求項９に記載のコンピューティングデバイス。
【請求項１１】
前記第３のユーザ動作は、ページのスクロール、ズーム動作、表示されたコンテンツの異なる部分の選択、および新しいコンテンツの入力のうちの１つに関連付けられる、請求項１０に記載のコンピューティングデバイス。
【請求項１２】
前記プロセッサは、前記ランチャインジケータを、前記ユーザインタフェース上の前記第３のユーザ動作の近傍に提示するようにさらに構成される、請求項１０に記載のコンピューティングデバイス。
【請求項１３】
タッチおよびジェスチャ対応メニュー用ランチャメカニズムを提供するための命令を格納したコンピュータ可読メモリデバイスであって、前記命令が、
ユーザインタフェース上の表示されたコンテンツの一部の選択、ならびに、前記ユーザインタフェース上のタッチ動作およびジェスチャ動作のうちの１つの第１動作の検出に応じて、コンテキストベースメニューに関連付けられたランチャインジケータを、前記ユーザインタフェース上の固定された位置、ならびに前記表示されたコンテンツの前記選択された部分、表示されたコンテンツの種類、利用可能な表示領域、および、ユーザインタフェースの境界の組からの少なくとも１つに基づいて動的に選択された位置のうちの１つに提示する工程であって、前記ランチャインジケータの位置が、前記表示されたコンテンツの前記選択された部分に基づいて選択される工程と、
前記提示されたランチャインジケータに関連付けられたタッチ動作およびジェスチャ動作のうちの第２動作を検出する工程と、
前記タッチ動作およびジェスチャ動作のうちの前記第２動作に応じて、前記ランチャインジケータを隠し、コマンドの実行、および前記コンテキストベースメニューの表示のうちの１つを行う工程と
を含む、コンピュータ可読メモリデバイス。
【請求項１４】
前記ランチャインジケータが、グラフィックオブジェクト、テキストオブジェクト、ならびにグラフィックおよびテキストオブジェクトの組み合わせのうちの１つを含み、色スキーム、グラフィカルスキーム、アニメーションスキーム、および網掛けスキームの組からのうちの少なくとも１つが、前記ランチャインジケータの視覚的効果を高めるために用いられる、請求項１３に記載のコンピュータ可読メモリデバイス。
【請求項１５】
前記ランチャインジケータが、前記表示されたコンテンツの前記選択された部分および前記コンテキストベースメニューのうちの少なくとも１つに関連付けられたコンテキスト情報を表示する、請求項１４に記載のコンピュータ可読メモリデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]コンピューティングおよびネットワーキング技術の普及と共に、コンピューティングデバイスの２つの態様、すなわち、従来型（例えば、マウスおよびキーボード）ではない入力メカニズム、ならびにより小さいフォームファクタ、が普及してきている。すべての種類のソフトウェアアプリケーションのためのユーザインタフェースは、典型的な画面サイズおよび入力メカニズムを考慮して設計されている。したがって、従来のシステムのユーザインタフェースは、キーボードおよびマウス型入力デバイス、ならびにユーザが特定の精度でユーザインタフェースと相互作用することができる最小の画面サイズを介するものと推定される。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
[0002]タッチ対応またはジェスチャ対応デバイス用のメニューは、特別な制約および課題を有する。例えば、このようなメニューは、タッチおよびジェスチャ対応である必要があり、マウスより低い精度でアクセス可能である必要がある。メニューは、広い画面領域を専有しない場合があり、利用可能な画面領域の変化（例えば、横長画面／縦長画面の変化、様々な分解能、仮想キーボードの出現／消失、など）に柔軟である必要はない可能性がある。メニューは、タッチデバイスに特定の機能（例えば、異なるジェスチャへの応答）を使用する必要があり、依然として従来のマウスおよびキーボードで機能する必要がある。ユーザは、モバイルデバイス上で、主に読み取り専用であり、モバイルデバイス上で長い時間、長い文章を編集する可能性が低いモバイルデバイス上では、ユーザが、突発的な作業を生産的アプリケーション上で実行する傾向がある可能性がある。したがって、従来のメニューは、この使用モデルに対処するように調整されていない。それらは、また、様々なコンテキストおよび／または位置（例えば、１本の指／親指の使用／デスクおよびタイピングに向かう）で快適でなく、効率的でない。さらに、コマンド体験は、コンテンツ作成のために非常により豊富である必要があり、タッチが与える、より直接的な相互作用により期待される、自然で楽しい体験を提供する必要がある。
【課題を解決するための手段】
【０００３】
[0003]この概要は、以下の詳細な説明でさらに詳細に説明される概念の選択を簡略化した形式で紹介するために提供される。この概要は、特許請求される主題の主要な特徴または本質的な特徴を排他的に認定することを意図されず、特許請求された主題の範囲を決定する際の助けとしても意図されない。
【０００４】
[0004]実施形態は、コンテキストベースメニュー用の起動メカニズムに向けられる。ランチャインジケータが、ユーザインタフェース上の固定されたまたは動的な位置に提供されてよく、インジケータに直接関連付けられた様々なタッチ／ジェスチャ動作、キーボード入力、マウスクリック、もしくは同様の動作を介して、または、コンテンツの一部の選択のような、表示されたコンテンツ上の動作からの推定を介して、ユーザがコンテキストベースメニューを活性化することを可能にする、または、そのコンテキストベースメニュー上の項目を実行することを可能にする。ランチャインジケータは、利用可能なコンテキストベースメニューの種類のようなコンテキスト情報を提供することができ、アニメーション化された様式で出現／消失することができる。インジケータの位置は、選択されたコンテンツ、ユーザ動作の位置（すなわち、タッチの位置）、利用可能な表示領域、などに基づいて動的に調整されてもよい。メニューの活性化に応じて、ランチャインジケータは、消失してよく、または、コンテキストベースメニューの中心に表示されてよい。
【０００５】
[0005]これらおよび他の特徴および利点は、以下の詳細な説明を読むこと、および、関連する図面の検討から明らかになるであろう。前述の一般的な説明、および、以下の詳細な説明の両方は、説明的であり、特許請求される態様を制限しないことが、理解されるべきである。
【図面の簡単な説明】
【０００６】
【図１Ａ】[0006]コンテキストベースメニューおよびこのようなメニュー用のランチャメカニズムが用いられ得るいくつかの例示的なデバイスを示す図である。
【図１Ｂ】コンテキストベースメニューおよびこのようなメニュー用のランチャメカニズムが用いられ得るいくつかの例示的なデバイスを示す図である。
【図２Ａ】[0007]実施形態によるコンテキストベースメニュー用ランチャメカニズムのランチャインジケータの固定された位置および動的な位置のいくつかの例を示す図である。
【図２Ｂ】実施形態によるコンテキストベースメニュー用ランチャメカニズムのランチャインジケータの固定された位置および動的な位置のいくつかの例を示す図である。
【図２Ｃ】実施形態によるコンテキストベースメニュー用ランチャメカニズムのランチャインジケータの固定された位置および動的な位置のいくつかの例を示す図である。
【図３Ａ】[0008]実施形態によるいくつかの例示的なランチャインジケータを示す図である。
【図３Ｂ】実施形態によるいくつかの例示的なランチャインジケータを示す図である。
【図４】[0009]ランチャインジケータを介する、タッチまたはジェスチャ対応のコンテキストベースメニューの活性化を示す図である。
【図５】[0010]いくつかの実施形態によるランチャインジケータの例示的な消失を示す図である。
【図６】[0011]他の実施形態によるランチャインジケータの例示的な動的位置調整を示す図である。
【図７】[0012]実施形態によるシステムが実装され得るネットワーク環境を示す図である。
【図８】[0013]実施形態が実装され得る例示的なコンピューティング動作環境のブロック図である。
【図９】[0014]実施形態によるコンテキストベースメニュー用ランチャメカニズムを用いるプロセスに関する論理流れ図である。
【発明を実施するための形態】
【０００７】
[0015]簡単に前述したように、ランチャインジケータが、ユーザインタフェース上の固定されたまたは動的な位置に提供されてよく、インジケータに直接関連付けられた様々なタッチ／ジェスチャ動作を介して、または、コンテンツの一部の選択のような、表示されたコンテンツ上の動作からの推定を介して、ユーザがコンテキストベースのタッチまたはジェスチャ態様のメニューを活性化することを可能にする。メニューの活性化に応じて、ランチャインジケータは、消失してよく、または、コンテキストベースメニューの中心に表示されてよい。
【０００８】
[0016]以下の詳細な説明では、本明細書の一部を形成する添付図面への参照が行われ、添付図面では、特定の実施形態または例が、例示として示される。これらの態様は、組み合わされてよく、他の態様が、使用されてよく、構造的変更が、本開示の要旨または範囲から逸脱することなく、行われてよい。したがって、以下の詳細な説明は、限定的な意味に解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲およびそれらの等価物によって定義される。実施形態は、パーソナルコンピュータ上のオペレーティングシステム上で動作するアプリケーションプログラムと共に実行するプログラムモジュールの一般的な文脈で説明されることになるが、当業者は、態様は、他のプログラムモジュールとの組み合わせで実現されてもよいことを認識するであろう。
【０００９】
[0017]一般に、プログラムモジュールは、ルーチン、プログラム、構成要素、データ構造、および、特定のタスクを実行する、または、特定の抽象データ型を実装する他の種類の構造を含む。さらに、当業者は、実施形態は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な民生用電子機器、ミニコンピュータ、メインフレームコンピュータ、および、同等のコンピューティングデバイスを含む、他のコンピュータシステム構成で実施されてよいことを理解するであろう。実施形態は、タスクが、通信ネットワークを介してリンクされたリモート処理デバイスによって実行される、分散コンピューティング環境で実施されてもよい。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモートメモリ記憶デバイスの両方に配置されてよい。
【００１０】
[0018]実施形態は、コンピュータ実装プロセス（方法）、コンピューティングシステム、または、コンピュータプログラム製品もしくはコンピュータ可読媒体のような製品として実装されてよい。コンピュータプログラム製品は、コンピュータシステムによって読み取り可能で、コンピュータまたはコンピューティングシステムに例示的なプロセス（複数可）を実行させる命令を含むコンピュータプログラムを符号化するコンピュータ記憶媒体であってよい。コンピュータ可読記憶媒体は、コンピュータ可読メモリデバイスであってよい。コンピュータ可読記憶媒体は、例えば、揮発性コンピュータメモリ、不揮発性コンピュータメモリ、ハードドライブ、フラッシュドライブ、フロッピー（登録商標）ディスク、コンパクトディスク、および同等の媒体の１つまたは複数を介して実装されてよい。
【００１１】
[0019]実施形態によれば、タッチ対応またはジェスチャ対応のメニューは、タッチまたはジェスチャ対応のコンピューティングデバイスに特定の機能を使用するコンテキストベースコマンドメニューを指すことができるが、従来のマウスおよびキーボードで動作することもできる。コンテキストベースメニューは、文書、電子メール、連絡先リスト、他の通信、または任意のコンテンツ（例えば、オーディオ、ビデオ、など）を閲覧または編集する間に、よく使用されるコマンドへの迅速なアクセスを提供するために使用される。コンテキストベースメニューは、ユーザインタフェースの外側または内側の別個の表示ペイン（ｐａｎｅ）（例えば、ウィンドウ）内、などに、ユーザインタフェースの通常のメニューの一部として出現してよい。典型的には、コンテキストベースメニューは、容易なユーザアクセスのためのコマンドの制限された組を提示するが、追加のサブメニューが、ユーザ選択に応じて提示されてよい。よく使用されるコンテキストベースメニューが、閲覧される文書上に出現してよい。
【００１２】
[0020]図１Ａおよび１Ｂは、コンテキストベースメニューおよびこのようなメニュー用のランチャメカニズムが用いられ得るいくつかの例示的なデバイスを示す。タッチおよびジェスチャベースの技術が普及しており、これらの技術を用いるコンピューティングデバイスが一般的になってきているため、ユーザインタフェース配置が課題になる。タッチおよび／またはジェスチャベースのデバイス、特に携帯デバイスは、より小さい画面サイズを有する傾向があり、これは、ユーザインタフェースのためのより少ない利用可能な空間を意味する。例えば、文書（テキストおよび／またはグラフィックス）の編集を可能にするユーザインタフェースでは、文書の提示部分に加えて、仮想キーボードが表示されなければならない場合があり、利用可能な空間（「不動産」）をさらに制限する。したがって、このようなシナリオでは、完全な制御メニューを提供することは、非実用的または不可能である可能性がある。実施形態は、動的なタッチまたはジェスチャ対応のコンテキストベースメニューを活性化するためのランチャメカニズムに向けられる。
【００１３】
[0021]上述したように、より小さい利用可能な表示空間、より大きいコンテンツ、および、異なるアスペクト比は、従来のメニューを非実用的にする。タブレットＰＣおよび類似したもののような既存のタッチ対応デバイスは、典型的には、データ消費（例えば、表示）に向けられる。他方では、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、プレゼンテーションアプリケーション、および同等のもののような、よく使用されるアプリケーションは、作成（例えば、テキスト、グラフィカル、および他のコンテンツを有する文書を生成および編集する）に向けられる。現在利用可能なコンテキストベースメニューは、ほとんどの時間不可視であるか、それらは、それらが可視の場合、コンテンツを妨げる。いくつかの実施形態によるコンテキストベースメニューは、提示されたコンテンツおよび利用可能な空間に基づいて、動的に提供されてよく、多くの必要とされる表示領域を奪うことなく、使いやすさを提供するランチャメカニズムを介して活性化されてよい。
【００１４】
[0022]図１Ａおよび１Ｂを参照すると、タッチまたはジェスチャ対応のコンテキストベースメニューが、実施形態によるランチャメカニズムによる活性化を介して提供され得る、いくつかの例示的なデバイスが示される。実施形態は、デバイスが、タッチおよび／またはジェスチャ対応であるかぎり、フォームファクタおよび能力を変えることで、他のデバイスに同様に実装されてよい。
【００１５】
[0023]図１Ａ中のデバイス１０４は、ユーザインタフェースが画面１０６上に提供され得る大きいサイズの表示装置の一例である。様々なアプリケーションの機能が、ハードウェア制御１０８、および／または、画面１０６上に表示されるタッチもしくはジェスチャ対応メニューのようなソフト制御を介して制御されてよい。ユーザは、タッチ動作または（ビデオキャプチャデバイスによって検出される）ジェスチャを介して、ユーザインタフェースと相互作用することができてよい。ユーザがタッチまたはジェスチャ対応メニューを活性化するために、ランチャインジケータが、固定された位置または動的に調節可能な位置に提示されてよい。デバイス１０４の例は、公共情報表示ユニット、大型コンピュータモニタ、などを含むことができる。
【００１６】
[0024]図１Ａ中のデバイス１１２は、機能を制御するためのジェスチャベースのメニューの使用に関する一例である。ユーザインタフェースが、画面上に表示、または、表面上に投影されてよく、ユーザ１１０の動作は、ビデオキャプチャデバイス１１４を介して、ジェスチャとして検出されてよい。ユーザのジェスチャは、デバイス１１２上に表示されるランチャインジケータを介して、タッチまたはジェスチャ対応のメニューを活性化することができる。
【００１７】
[0025]図１Ｂは、コンピューティング、通信、制御、測定、およびいくつかの他の目的のために使用され得る、タッチ対応コンピュータモニタ１１６、ラップトップコンピュータ１１８、ハンドヘルドコンピュータ１２４、スマートフォン１２６、タブレットコンピュータ（または、スレート）１２８、およびモバイルコンピューティングデバイス１３２のようないくつかの例示的なデバイスを含む。図１Ｂ中の例示的なデバイスは、タッチ活性化１２０と共に示される。しかしながら、これらおよび他の例示的なデバイスのいずれも、ランチャインジケータを介するコンテキストベースメニューのジェスチャ対応の活性化を用いることもできる。加えて、ペン１３０のようなツールが、タッチ入力を提供するために使用されてよい。ランチャインジケータ、および、タッチまたはジェスチャ対応のコンテキストベースメニューは、マウス入力、またはキーボード１２２を介する入力のような従来の方法を介して制御されてもよい。
【００１８】
[0026]図２Ａ、２Ｂ、および２Ｃは、実施形態によるコンテキストベースメニュー用ランチャメカニズムのランチャインジケータの固定された位置および動的な位置のいくつかの例を示す。実施形態によるコンテキストベースメニューは、フォーカスポイント（挿入ポイントまたは選択部）の近くに出現することができ、効率的な呼び出しおよび／または使用を可能にすることができ、コマンドがコンテキストによって範囲決定されることを可能にすることができ、（放射形状を介する）増加した走査能力を提供することができ、初めてのユーザのための高速な学習曲線を可能にすることができ、ユーザ体験を強化することができる。このようなメニューは、コンテンツが表示および／または編集されることを可能にする任意のアプリケーション、ならびに、オペレーティングシステムのユーザインタフェースに実装されてよい。
【００１９】
[0027]図２Ａ〜２Ｃ中のランチャインジケータの例示的な構成は、例示的なユーザインタフェース上に示され、例示的なユーザインタフェースのそれぞれは、テキストメニュー２０４、グラフィカルコマンドアイコン２０６、ならびに、テキストおよび／またはグラフィカルコンテンツを含む。実施形態によるランチャインジケータは、他の種類のメニューの有無に係わらず、任意の種類のコンテンツを有する任意のユーザインタフェース上で用いられてよい。ユーザインタフェース２０２を参照すると、ランチャインジケータ２１４は、ユーザインタフェース上の選択ハンドル２１０および２１２間の選択部の近傍で使用されてよい。ユーザインタフェースが選択を許可しないか、表示領域が限られている場合、固定された位置が、インジケータ２０８および／または潜在する（underlying）コンテキストベースメニューに使用されてよい。代わりに、ランチャは、隠されてよく、異なるジェスチャ（例えば、選択部上のタップ）が、潜在するコンテキストベースメニューのための活性化として機能することができる。キーボード、マウス、タッチ、ジェスチャ、ペン入力、音声コマンドは、コンテキストベースメニューと組み合わせて使用され得るいくつかの例示的な入力メカニズムである。
【００２０】
[0028]ユーザインタフェース２１６は、ユーザインタフェースの右下隅に提示され、ユーザインタフェースの右下隅では、より多くの表示空間が、潜在するコンテキストベースメニューを収容するために利用可能である。ランチャは、コンテキストベースメニューがランチャから大きくなるとき、メニューが存在するための十分な空間が存在するように、エッジから十分離れて配置されてよい。そうでなければ、ユーザは、自分の指をランチャから潜在するメニューの中心に移動しなければならない。したがって、ランチャをこのように配置することは、潜在するコンテキストベースメニューとのより多くの流動的／ジェスチャ的相互作用を可能にする。図２Ａ中のユーザインタフェース２２０は、ランチャインジケータの位置が、どのようにユーザ属性に基づいて自動的に調整され得るかを示す。例えば、コンテンツは、右から左に書かれる言語のテキストであってよい。したがって、インジケータ２２２は、ユーザインタフェース２２０の左に自動的に移動されてよい。同様に、垂直方向に書かれるアルファベットが使用される場合、インジケータ２２２は、選択部の上または下に配置されてよい。インジケータの位置を調節するために使用され得る他のユーザ属性は、ユーザの左利きまたは右利き、指のサイズ、ポインティングデバイスのサイズ、ユーザの本人証明、ユーザの人間工学的特徴、ならびに、ユーザインタフェースのための言語選択、地理的位置情報、時間帯情報、および／または国情報の１つまたは複数を含む位置属性を含むことができるが、これらに限定されない。例えば、ユーザが、細い先端のペンを使用するか、または比較的大きい指を使用するかに係わらず、検出可能な動作の粒度、および／または、ユーザがスワイプ（または、類似の）動作を提供するための場所は、異なる。したがって、ランチャインジケータ（および、それによって、潜在するコンテキストベースメニュー）のために利用可能な空間は、ポインティングデバイスのサイズに応じて変化し得る。ユーザ属性は、本人証明に関連付けられたユーザ設定に拡張されてよく、ユーザ設定では、ユーザが、位置決めプリファレンス（例えば、ユーザが左利きの場合、常に左）を設定する能力を有する。したがって、ランチャインジケータは、いくつかの実施形態での検出されたスワイプ動作の方向（例えば、左から右、または、右から左）に基づいて、表示されたコンテンツの選択された部分に対する位置に提示されてよい。
【００２１】
[0029]インジケータは、選択されたドキュメントコンテンツ、挿入点、および／または、ユーザインタフェースの境界の変化に基づいて、移動されてよい。位置決めロジックは、ユーザコンテンツのために利用可能な画面領域、および、外付けキーボードのようなアクセサリの検出に応じて、変化してもよい（例えば、仮想キーボードが存在するか否かにより、ユーザコンテンツのための利用可能な領域に影響を与える）。外付けキーボードが検出されると、インジケータは、（側部の代わりに）選択部の上の中心に置かれてよい。ユーザインタフェース２２４、２２６、および２３０に示すように、テキストの複数のラインが選択されると、インジケータは、選択部の内部の、上部（２２８）、下部（２３２）、または中央（２２５）、左上／中心／右、左下／中心／右、などに配置されてよい。選択部／挿入点が、完全なコンテキストベースメニューを表示するにはユーザに近すぎる場合、インジケータは、境界から離れて移動されてよく、より小さいアイコンに変更されてよく、または、部分的に表示されてよい。
【００２２】
[0030]したがって、インジケータは、拡張後にすべてのメニュー項目を開いて、コンテキストベースメニューのための十分な空間を作成することができる場所に配置されてよい。ユーザインタフェース２２４、２２６、および２３０に示すように、インジケータは、現在の選択部に対して出現することができ、ジェスチャ動作、またはタップおよび／もしくはスワイプのようなタッチ動作を可能にする。他の例では、インジケータは、コンテンツの変化のための余地を認めることができる。例えば、コンテキストベースメニューは、表が、インジケータを妨げることなく、大きくなれるように、表から一定の距離で、表内に出現することができる。ランチャインジケータは、潜在するオブジェクトのサイズが変化する場合（例えば、より多くのテキストが、テキストのラインに追加される場合、または、画像のサイズが、増加または減少される場合、列または行が、表に追加される場合、など）、移動されてもよい。
【００２３】
[0031]ユーザインタフェース２３４および２３８は、２つの追加の例示的な構成を示す。図２Ｃのユーザインタフェース２３４では、インジケータ２３６は、テキストコンテンツの選択されない部分の上に配置される。ユーザインタフェース２３８は、テキストだけでなくグラフィックコンテンツを含む。グラフィックコンテンツ２４０の（例えば、その上のタップによる）選択に応じて、ランチャインジケータ２４２は、選択されたオブジェクトの近くに出現し、グラフィックオブジェクトに関連するコマンドに関連付けられたコンテキストベースメニューを活性化する。他の実施形態によれば、ランチャを移動させるために、ユーザのジェスチャが使用されてよい。例えば、ランチャが、ユーザが取得する必要があるコンテンツの上にあるように生じる場合、ユーザは、ランチャ上で「それを除去する」を長押しすることができ、次に、それを画面上の別の場所にドラッグおよびドロップすることができる。
【００２４】
[0032]図３Ａおよび３Ｂは、実施形態によるいくつかの例示的なランチャインジケータを示す。実施形態によるランチャインジケータは、任意のグラフィカルオブジェクト、テキストオブジェクト、または組み合わせのオブジェクトであってよい。インジケータ３０２、３０４、３０６、および３０８は、コンテキストベースメニューを活性化するために使用され得る単純なグラフィカルオブジェクトの例である。
【００２５】
[0033]他の実施形態によれば、ランチャインジケータは、いくらかのコンテキスト情報を提示するために使用されもよい。例えば、文字を含むインジケータ３１０は、テキスト属性に関するコマンド（例えば、フォントサイズ、フォントスタイル、フォント色、など）を含むコンテキストベースメニューを表すために使用されてよい。インジケータ３１２は、表に関連付けられたコマンドを含むコンテキストベースメニューを表すために使用されてよい。同様に、インジケータ３１４は、チャートの属性を書式設定する、そうでなければ制御することに関連付けられたコマンドを含むコンテキストベースメニューを表すために使用されてよい。
【００２６】
[0034]他の実施形態によれば、４分の１の放射状メニュー３１６のような部分的なコンテキストベースメニューが、ランチャインジケータとして使用されてよい。例示的なインジケータは、文書を開くコマンド３２４、フォントスタイルコマンド３２２、および印刷コマンド３１８のような利用可能なコマンドのいくつかを表示する。さらに他の実施形態によれば、ランチャインジケータは、潜在するコンテキストベースメニューの状態についての追加の情報を提示するために使用されてよい。例えば、１つより多くの項目が、アプリケーションコンテンツ内で選択されてよく、放射状メニューインジケータが近くに出現するのとは対照的に、インジケータが項目のすべてで作用しているかは、明らかでない可能性がある。接続をよりよく描画するために、インジケータ３２６は、選択された項目３２８の数と共に示されてよい。
【００２７】
[0035]色スキーム、グラフィカルスキーム、網掛け(シェイド、ｓｈａｓｄｉｎｇ)スキーム、アニメーションスキーム、および、同等のもののような、いくつかのスキームが、ランチャインジケータの有効性を増強するために用いられてよい。図３Ｂは、暗いおよび／または明るいフォーマットの例示的なインジケータを示し、暗いおよび／または明るいフォーマットは、背景色に応じて交換可能に使用されてよい。いくつかの実施形態では、明るいフォーマットは、メニューが開いた後、コンテキストベースメニュー内の周囲のインジケータの視覚性を維持するために使用されてよい。例示的なインジケータは、後方移動操作に関連付けられたインジケータ３３２、テキスト選択操作に関連付けられたインジケータ３３４、挿入操作に関連付けられたインジケータ３３６、表の書式設定（および／または作成）操作に関連付けられたインジケータ３３８、表セクション上の操作に関連付けられたインジケータ３４０、ハイパリンク操作（例えば、挿入、削除、編集、開く）に関連付けられたインジケータ３４２、画像操作に関連付けられたインジケータ３４４、セクション操作に関連付けられたインジケータ３４６、ノートコンテナ操作に関連付けられたインジケータ３４８、タグまたはタスク操作に関連付けられたインジケータ３５０、インキング操作に関連付けられたインジケータ３５２、オーディオ／ビデオ制御操作に関連付けられたインジケータ３５４、数式編集操作に関連付けられたインジケータ３５６、埋め込みファイル操作に関連付けられたインジケータ３５８、ノートブック操作に関連付けられたインジケータ３６０、ならびに、ファイル操作に関連付けられたインジケータ３６２を含む。
【００２８】
[0036]もちろん、他のアイコン、シンボル、テキストコンテンツ、などが、特定のコンテキストベースメニューおよびサブメニューを表すために使用されてよい。いくつかの実施形態によれば、コンテキストベースのタッチまたはジェスチャ対応のメニューが、ランチャインジケータが表示されることなく、活性化されてよい。例えば、メニューは、表示されたコンテツの一部の選択に応じて、直接表示されてよい。メニューは、ジェスチャに基づくだけで提示されてもよい。例えば、画面上の任意の場所の長押し、または、キーボード上のコンテキストメニューキーの押下が、コンテキストベースメニューを表示させることができる。
【００２９】
[0037]図４は、ランチャインジケータを介する、タッチまたはジェスチャ対応のコンテキストベースメニューの活性化を示す。基礎的なタッチまたはジェスチャ対応メニューは、タップ、長押し、ドラッグ／スライド、または同様の動作を介してランチャインジケータを選択することによって活性化されてよい。
【００３０】
[0038]図４のユーザインタフェース４０２では、選択されたテキストコンテンツに関連付けられたランチャインジケータ４０４は、タップ動作４０６を介して選択される。インジケータ４０４の選択に応じて、コンテキストベースメニュー４１０は、ユーザインタフェース４０８内に出現し、ランチャインジケータ４０４は、消失し、または、コンテキストインジケータ（例えば、メニューのレベル、または、前のメニューインジケータに戻る）として、コンテキストベースメニューの中心に表示される。コンテキストベースメニュー４１０は、トップレベルでハブおよびスポーク相互作用を用いることができ、ダイアルならびに／またはハブおよびスポーク相互作用が、サブメニューレベルで可能にされてよい。コンテキストベースメニューは、図４に示す放射状／円形状を含むがこれらに限定されない任意の形状で提示されてよい。タッチベースの相互作用４１２は、メニュー項目へのスライド、周辺部の周囲のスライド、または、メニュー項目上のタップを含むことができる。選択されたまたは検討されたメニュー項目のライブプレビューが、提供されてよい。また、様々なメニュー項目のためのテキスト識別子が、各メニュー項目の下部／上部／中央またはその近傍に提供されてよい。
【００３１】
[0039]図５は、いくつかの実施形態によるランチャインジケータの例示的な消失を示す。ユーザインタフェース５０２上に示されるように、実施形態によるランチャインジケータ５０６は、表示されたコンテンツの一部の選択、画面上の固定されたインジケータ上のタップ動作、オブジェクトまたはテキスト上のタップ（５０４）、選択されたハンドル上のタップ、または、キーボードの組み合わせに応じて呼び出されてよい。さらに、ユーザが、インジケータが表示されてよい領域上をホバー（ｈｏｖｅｒ）すると、ツールチップ（ｔｏｏｌ  ｔｉｐ）５０３が表示されてよい。ツールチップ５０３は、インジケータが活性化されているが、なんの動作も受信されていないことをユーザに気付かせるために使用されてもよい。
【００３２】
[0040]インジケータ５０６は、常時表示されてよく、または、ユーザの指示（例えば、選択）が受信されるまで、隠されてよい。コンテキストベースメニューは、タップ（押下および解除）または保持（タイマベース）によって呼び出されてよい。代わりに、ジェスチャがインジケータ５０６上で受信された場合、完全なメニューを表示することなく、いくつかの機能が実行されてよい。例えば、メニュー項目へのスワイプは、しばらくして、または、インジケータ上のそのスワイプの受信に応じて、ユーザに周知であってよく、アプリケーションは、そのメニュー項目に関連付けられた機能を、メニューを表示することなく、実行することができる。いくつかの場合では、コマンドがインジケータから実行されても、ツールチップが、コマンドが実行されたことを示すために、短い期間持続されてよい。
【００３３】
[0041]図５のユーザインタフェース５０８は、どのようにインジケータが隠されてよいかの例を示す。示された例では、インジケータ５１２は、インジケータの位置から離れたユーザによるタップまたは同様の動作（５１０）に応じてフェードアウトする。インジケータのアニメーション化されたまたは静的な消失につながり得る他のイベントは、インジケータの側部にタップすること、ページをスクロールすること、ズームインまたはアウトすること、新しいコンテンツを入力すること（例えば、タイプすること）、ディスプレイ上の別のユーザインタフェースに移動すること、などを含むことができる。消失に加えて、インジケータは、ジェスチャまたはタッチ動作に応じて、別の位置に移動されてよく、または、固定された位置に固定されてよい。
【００３４】
[0042]図６は、他の実施形態によるランチャインジケータの例示的な動的位置調整を示す。様々な動的位置および／またはサイズ調整が、選択されたコンテンツ、利用可能な表示領域、他のコンテンツ要素、デバイスの種類、などに基づいて、ランチャインジケータに関連付けて用いられてよい。
【００３５】
[0043]例えば、ランチャインジケータは、１つの場所に出現し、次に、ユーザ動作、表示されたユーザインタフェースまたはコンテンツの変化（例えば、サイズの変化）のようなイベントに応じて、別の場所に再出現する場合、移動することができる。いくつかの例では、キーボード入力の組み合わせまたは特定のジェスチャのような予め定義されたユーザ動作は、インジケータを、予め定義された位置（ユーザインタフェースの異なる隅、選択されてコンテンツの左または右、など）の間に移動させることができる。他の例では、位置の変化は、ユーザ動作の位置に基づくことができる。例えば、ユーザインタフェース６０２上のランチャインジケータ６０４は、選択されたテキストコンテンツの右側の空領域内に示される。ユーザインタフェース６０６上のユーザによるタップ動作６０８に応じて、インジケータ６１０は、消失（例えば、フェードアウト）することができ、タップ動作の近くにインジケータ６１２として再出現することができる。
【００３６】
[0044]図１〜６に示された例示的なランチャインジケータ、構成、およびコンテキストベースメニューは、例示目的のみのために提供される。実施形態は、例示的な図に示す形状、形式、およびコンテンツに限定されず、本明細書に記載の原理を用いる他のテキスト、グラフィカル、または同様のスキームを使用して実施されてよい。
【００３７】
[0045]図７は、実施形態が実施され得る例示的なネットワーク化された環境である。後述するアプリケーション８２２のようなローカルにインストールされたアプリケーションに加えて、タッチおよび／またはジェスチャ対応メニュー用ランチャメカニズムが、１つまたは複数のサーバ７０６または個々のサーバ７０８上で実行されるソフトウェアを介して実装され得るホストされるアプリケーションおよびサービスと併せて用いられてもよい。ホストされるサービスまたはアプリケーションは、ネットワーク（複数可）７１０を介して、ハンドヘルドコンピュータ７０１、デスクトップコンピュータ７０２、ラップトップコンピュータ７０３、スマートフォン７０４、タブレットコンピュータ（または、スレート）７０５（「クライアントデバイス」）のような個々のコンピューティングデバイス上のクライアントアプリケーションと通信することができ、ユーザに提示されるユーザインタフェースを制御することができる。
【００３８】
[0046]説明したように、コンテキストベースのタッチまたはジェスチャ対応のメニューは、ホストされるサービスまたはアプリケーションによって提供される機能を制御するために使用されてよい。コンテキストベースメニューは、固定されたまたは動的な位置のランチャインジケータを介して活性化されてよい。
【００３９】
[0047]クライアントデバイス７０１〜７０５は、ホストされるサービスまたはアプリケーションによって提供される機能にアクセスするために使用される。サーバ７０６またはサーバ７０８の１つまたは複数は、上述したような様々なサービスを提供するために使用されてよい。関連データは、１つまたは複数のデータストア（例えば、データストア７１４）に格納されてよく、１つまたは複数のデータストアは、サーバ７０６またはデータベースサーバ７１２のいずれかによって管理されてよい。
【００４０】
[0048]ネットワーク（複数可）７１０は、任意の技術のサーバ、クライアント、インターネットサービスプロバイダ、および通信媒体を含むことができる。実施形態によるシステムは、静的または動的なトポロジを有することができる。ネットワーク（複数可）７１０は、企業ネットワークのような安全なネットワーク、無線オープンネットワークのような安全でないネットワーク、または、インターネットを含むことができる。ネットワーク（複数可）７１０は、ＰＳＴＮまたはセルラネットワークのような他のネットワーク上の通信を調整することもできる。ネットワーク（複数可）７１０は、本明細書に記載のノード間の通信を提供する。例として、限定ではなく、ネットワーク（複数可）７１０は、音響、ＲＦ、赤外線、および他の無線媒体のような無線媒体を含むことができる。
【００４１】
[0049]コンピューティングデバイス、アプリケーション、データ源、およびデータ配信システムの多くの他の構成が、コンテキストベースメニュー用ランチャメカニズムを提供するために用いられてよい。さらに、図７で説明されるネットワーク化された環境は、説明目的のみのためである。実施形態は、例示的なアプリケーション、モジュール、またはプロセスに限定されない。
【００４２】
[0050]図８および関連する説明は、実施形態が実施され得る適切なコンピューティング環境の簡潔で一般的な説明を提供することを目的とする。図８に関して、コンピューティング環境８００のような、実施形態によるアプリケーションのための例示的なコンピューティング動作環境のブロック図が示される。基本的な構成では、コンピューティングデバイス８００は、図１Ａ、１Ｂ、および７に関連して説明した例示的なデバイスのような、据え置き、モバイル、または他の形態の、任意のタッチおよび／またはジェスチャ対応デバイスであってよい。コンピューティングデバイス８００は、プログラムを実行する際に協働する複数の処理ユニット８０２を含むこともできる。コンピューティングデバイスの正確な構成および形式に応じて、システムメモリ８０４は、揮発性（ＲＡＭのような）、不揮発性（ＲＯＭ、フラッシュメモリ、などのような）、または、これら２つの何らかの組み合わせであってよい。システムメモリ８０４は、典型的には、ワシントン州レドモンドのマイクロソフトコーポレーションからのＷｉｎｄｏｗｓ（登録商標）、Ｗｉｎｄｏｗｓ  Ｍｏｂｉｌｅ（登録商標）、またはＷｉｎｄｏｗｓ  Ｐｈｏｎｅ（登録商標）オペレーティングシステムのようなプラットフォームの動作を制御するのに適したオペレーティングシステム８０５を含む。システムメモリ８０４は、プログラムモジュール８０６、アプリケーション８２２、コンテキストベースメニューモジュール８２４、および検出モジュール８２６のような、１つまたは複数のソフトウェアアプリケーションを含むこともできる。
【００４３】
[0051]コンテキストベースメニューモジュール８２４は、オペレーティングシステム８０５またはアプリケーション８２２と連携して動作することができ、前述したように、タッチおよび／もしくはジェスチャ対応のコンテキストベースメニューを提供することができる。コンテキストベースメニューモジュール８２４は、いくつかの予め定義されたイベントに応じてランチャインジケータを提示することもでき、ランチャインジケータを介したメニューの活性化を可能にすることもできる。検出モジュール８２６は、ランチャインジケータの活性化、および／または、様々なコンテキストベースメニュー項目の選択を検出することができる。この基本的な構成は、破線８０８内のこれらの構成要素によって図８に示される。
【００４４】
[0052]コンピューティングデバイス８００は、追加の特徴または機能を有することができる。例えば、コンピューティングデバイス８００は、例えば、磁気ディスク、光ディスク、またはテープのような、追加のデータ記憶装置（リムーバブルおよび／または非リムーバブル）を含むこともできる。このような追加の記憶装置は、リムーバブル記憶装置８０９および非リムーバブル記憶装置８１０によって図８に示される。コンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータのような情報を記憶するための任意の方法または技術で実現される、揮発性および不揮発性のリムーバブルおよび非リムーバブル媒体を含むことができる。システムメモリ８０４、リムーバブル記憶装置８０９、および非リムーバブル記憶装置８１０は、すべてコンピュータ可読記憶媒体の例である。コンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶装置、または、所望の情報を格納するために使用されることが可能で、コンピューティングデバイス８００によってアクセスされ得る任意の他の媒体を含むが、これらに限定されない。任意のこのようなコンピュータ可読記憶媒体は、コンピューティングデバイス８００の一部であってよい。コンピューティングデバイス８００は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、ジェスチャを検出するための光補足デバイス、および、同等の入力デバイスのような入力デバイス（複数可）８１２を有することもできる。ディスプレイ、スピーカ、プリンタ、および他の種類の出力デバイスのような出力デバイス（複数可）８１４が含まれてもよい。これらのデバイスは、当該術分野で周知であり、本明細書で詳細に説明する必要はない。
【００４５】
[0053]コンピューティングデバイス８００は、分散コンピューティング環境内の無線リンク、衛星リンク、セルラリンク、および同等のメカニズムのような、デバイスが他のデバイス８１８と通信することを可能にする通信接続８１６を含むこともできる。他のデバイス８１８は、通信アプリケーションを実行するコンピュータデバイス（複数可）、他のディレクトリまたはポリシーサーバ、および同等のデバイスを含むことができる。通信接続（複数可）８１６は、通信媒体の一例である。通信媒体は、搬送波もしくは他の転送メカニズムのような変調されたデータ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、または、他のデータを内部に含むことができ、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内の情報を符号化するような方法で設定または変更された１つまたは複数の特性を有する信号を意味する。例として、限定ではなく、通信媒体は、有線ネットワークまたは直接配線接続のような有線媒体、ならびに、音響、ＲＦ、赤外線、および他の無線媒体のような無線媒体を含む。
【００４６】
[0054]例示的な実施形態は、方法も含む。これらの方法は、本書に記載の構造を含む任意の数の方法で実施されてよい。１つのこのような方法は、本書に記載の種類のデバイスの機械動作によるものである。
【００４７】
[0055]別の任意の方法は、いくつかを実行する１人または複数の人間のオペレータと共に実行される方法の個々の動作の１つまたは複数のためのものである。これらの人間のオペレータは、互いに一緒に配置される必要はないが、それぞれが、プログラムの一部を実行するマシンと一緒にいるだけでよい。
【００４８】
[0056]図９は、実施形態によるコンテキストベースメニュー用ランチャメカニズムを用いるプロセスに関する論理フロー図を示す。プロセス９００は、アプリケーションまたはオペレーティングシステムの一部として実装されてよい。
【００４９】
[0057]プロセス９００は、任意の動作９１０で開始し、動作９１０では、固定された位置のランチャインジケータが、オペレーティングシステムのアプリケーションのユーザインタフェースを介して提示されてよい。固定された位置のインジケータは、ユーザインタフェース上のグラフィカルメニューの一部としてのアイコン、テキストコマンド、または、これら２つの組み合わせであってよい。動作９０２では、選択動作または同様の動作（例えば、画面上のタップまたは同等のジェスチャ）が検出されてよい。動作９３０では、コンテンツの一部の検出、または同様のユーザ動作に応じて、動的なランチャインジケータが提示されてよい。動的なランチャインジケータの位置は、選択されたコンテンツ、ユーザ動作の位置、利用可能な表示領域、地域属性（例えば、言語が右から左に書かれた言語である場合）、および、同様の要因に基づいて、自動的に選択されてよい。
【００５０】
[0058]ランチャインジケータの提示に続いて、動作９４０の前に、ランチャインジケータは、タイマの満了、ユーザインタフェース上の異なる位置でのユーザ動作、異なる種類のユーザ動作（別のユーザインタフェースの選択、または、新しいコンテンツの追加）のようないくつかのイベントに応じて、隠されてよい。ランチャインジケータは、アニメーション化された様式で、出現／消失してよく、移動（例えば、画面を横切るスライド）してよい。動作９４０では、ランチャの活性化またはコマンドの実行に関連付けられた動作（例えば、ジェスチャ、タッチ、キーボード入力、マウスクリック、ペン入力、など）が、検出されてよい。ランチャの活性化またはコマンドの実行の検出に応じて、コンテキストベースメニューが、動作９５０または実行されたコマンドで提示されてよい。
【００５１】
[0059]コンテキストベースメニューの提示、または、コマンドの実行に応じて、ランチャインジケータが、動作９６０で隠されてよい。いくつかの実施形態では、ランチャインジケータは、完全に隠されている代わりに、コンテキストベースメニューの中心に表示されてよい。上述したように、ランチャインジケータの消失は、同様にアニメーション化されてよい。
【００５２】
[0060]プロセス９００に含まれる動作は、例示の目的のためのものである。実施形態によるコンテキストベースメニュー用ランチャインジケータを提示することは、より少ないもしくはより多いステップを有する、本明細書に記載の原理を使用する動作の異なる順序での、同様のプロセスによって実施されてよい。
【００５３】
[0061]上記の仕様、例、およびデータは、実施形態の構成物の製造および使用の完全な説明を提供する。主題は、構造的特徴および／または方法論的動作に特有の言語で説明されてきたが、添付の特許請求の範囲で定義される主題は、上述した特定の特徴または動作に必ずしも限定されないことが理解されるべきである。むしろ、上述した特定の特徴および動作は、特許請求の範囲および実施形態を実施する例示的な形態として開示される。
【図１Ａ】
0006050347.tif 000002
【図１Ｂ】
0006050347.tif 000003
【図２Ａ】
0006050347.tif 000004
【図２Ｂ】
0006050347.tif 000005
【図２Ｃ】
0006050347.tif 000006
【図３Ａ】
0006050347.tif 000007
【図３Ｂ】
0006050347.tif 000008
【図４】
0006050347.tif 000009
【図５】
0006050347.tif 000010
【図６】
0006050347.tif 000011
【図７】
0006050347.tif 000012
【図８】
0006050347.tif 000013
【図９】
0006050347.tif 000014