(57)【要約】  アプリケーションの表示機能が、アダプターの使用によって拡張され得る。アプリケーションがインスタンス化され、さらにそのアプリケーションが、そのアプリケーションのインターフェースの一部としてスクロールフィーチャを含む表示ボックスを提供することが可能である。アダプターは、アプリケーションを「舞台裏で」使用して、ユーザーに見えない仕方で情報を収集するようにする。マウスジェスチャーが、拡大縮小などの様々な表示機能を実行するように定義され得る。アダプターは、ユーザーがアプリケーションと対話するのに使用するウインドウ内でこれらのジェスチャーをインターセプトし、これらのジェスチャーを特定のビューコマンド（拡大縮小などの）として解釈する。それらのコマンド（または、場合により、まだ発行されていないコマンドを予期して）に基づいて、アダプターは、アプリケーションを使用してコンテンツを収集する。次に、アプリケーションが、そのコンテンツを適切にスケール変更し、スケール変更されたコンテンツを文書に入れ、さらに表示ボックスの上にその文書を重ねる。
2013517557.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションに表示機能を与える方法であって、
アプリケーションの表示ボックスにおける第１のスクロールバーの第１の位置を検出するステップであって、コンテンツは前記表示ボックスを介して表示される、ステップと、
前記第１のスクロールバーの前記第１の位置を使用して、前記コンテンツの移動が前記アプリケーションのユーザーに見えないように前記コンテンツを移動させ、前記コンテンツを表すピクセルを収集するステップと、
前記ピクセルに基づく情報を前記表示ボックスの上に重ねるステップと
を含む方法。
【請求項２】
前記第１の位置を検出するステップは、前記第１のスクロールバーの前記第１の位置を指定する、前記アプリケーションによって提供されるメタデータを使用するステップを含む請求項１に記載の方法。
【請求項３】
前記第１の位置を検出するステップは、
前記アプリケーションのユーザーがポインティングデバイスを使用して前記アプリケーションのインターフェースにおける第２の位置をクリックしたことを観察するステップと、
前記ユーザーが前記ポインティングデバイスを用いて前記第２の位置から第３の位置への動きを示したことを観察するステップであって、前記第２の位置および前記第３の位置は前記第１の位置の範囲内にある、ステップと、
前記動きに続いて、前記表示ボックス内でコンテンツのスクロールが生じたことを観察するステップと
を含む請求項１に記載の方法。
【請求項４】
前記動作は、
前記表示ボックスが配置された第４の位置を検出するステップをさらに含む請求項１に記載の方法。
【請求項５】
前記表示ボックスは第２のスクロールバーを備え、前記第１のスクロールバーは垂直スクロールバーであり、前記第２のスクロールバーは水平スクロールバーであり、さらに前記動作は、
前記アプリケーションにおいて前記水平スクロールバーを使用して、前記コンテンツにおいて移動するステップをさらに含む請求項１に記載の方法。
【請求項６】
前記アプリケーションは、ユーザーに少なくともいくつかのアプリケーションインスタンスのウインドウを表示するコンピューターシステムにおいて実行され、前記第１のスクロールバーの前記第１の位置を使用して前記コンテンツを移動させるステップは、ウインドウ内で表示されない請求項１に記載の方法。
【請求項７】
前記ピクセルに基づく前記情報を前記表示ボックスの上に重ねるステップは、
前記ピクセルを文書に入れるステップと、
前記文書を前記表示ボックスの上のオーバーレイとして表示するステップと
を含む請求項１に記載の方法。
【請求項８】
前記動作は、
前記ピクセルがユーザーによって要求される可能性が低いという予測に基づいて、前記文書から前記ピクセルを除去するステップをさらに含む請求項７に記載の方法。
【請求項９】
前記動作は、
前記アプリケーションのウインドウを介してユーザーが発行するコマンドをインターセプトするステップと、
前記コマンドに基づいて、前記コンテンツのいずれの部分に移動して、ピクセルを収集すべきかを決定するステップをさらに含む請求項１に記載の方法。
【請求項１０】
前記コマンドのうち１つは、拡大縮小レベルを示し、さらに前記動作は、
前記拡大縮小レベルに基づいて前記コンテンツをスケール変更するステップをさらに含む請求項９に記載の方法。
【請求項１１】
前記動作は、
ユーザーによって要求された前記コンテンツの部分に基づいて、前記ユーザーによって要求されるべき前記コンテンツの部分を、前記ユーザーが前記部分を獲得するコマンドを発行するのに先立って予期するステップと、
前記アプリケーションを使用して前記コンテンツの前記部分を獲得するステップと
をさらに含む請求項１に記載の方法。
【請求項１２】
前記動作は、
前記ユーザーによって要求された前記コンテンツの拡大縮小レベルに基づいて、前記コンテンツを表示すべき拡大縮小レベルを、前記ユーザーが前記拡大縮小レベルで前記コンテンツを表示するコマンドを発行するのに先立って予期するステップと、
前記コンテンツを前記拡大縮小レベルにスケール変更するステップと
をさらに含む請求項１に記載の方法。
【請求項１３】
請求項１から１２のいずれかに記載の方法を実行するコンピューター実行可能命令を有するコンピューター可読媒体。
【請求項１４】
アプリケーションを操作するユーザーからのコマンドに応答するためのシステムであって、
前記アプリケーションを実行するプロセッサーと、
前記アプリケーションが格納されるデータ記憶構成要素と、
前記データ記憶構成要素の中に格納され、前記プロセッサー上で実行される表示アダプターであって、前記アプリケーションが実行されるウインドウを介して前記ユーザーによって発行されたコマンドをインターセプトし、前記アプリケーションを介してコンテンツを獲得するコマンドを発行し、前記アプリケーションは、ディスプレイ上で前記ユーザーに見えるが、表示アダプターと前記アプリケーションの間の対話は、前記ディスプレイ上でユーザーには見えない表示アダプターと、
前記表示アダプターが前記アプリケーションを介して獲得するコンテンツを表すピクセルを前記表示アダプターが格納する文書であって、前記表示アダプターは、文書が、前記コンテンツの代わりに現れるように前記アプリケーションの表示ボックスの上に重ねられるようにする文書と
を備えるシステム。
【請求項１５】
前記表示アダプターは、前記表示ボックス、および前記表示ボックスにおけるスクロールバーの位置を、
前記アプリケーションからメタデータを受け取るステップ、または
前記ウインドウ内のポインティングデバイスの動き、および前記動きに続く前記アプリケーションのアクションを観察し、さらに前記動きおよび前記アクションが、前記表示ボックス、および前記表示ボックスのスクロールバーが前記位置にあることと合致しているかどうかを判定し、前記表示アダプターが、前記位置を使用して、前記アプリケーションにおいて前記コンテンツの中を移動するステップ
によって検出する請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションの表示機能の拡張に関する。
【背景技術】
【０００２】
[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]アプリケーションのコントロールを操作することにより、表示アダプター２０６は、基礎をなすコンテンツ１１０の様々な部分を表示することができる。例えば、コンテンツ１１０がテキストを含む場合、ピクセル２１６は、何らかのフォントで描かれたそのテキストの文字を表すピクセルである。コンテンツ１１０が画像を含む場合、ピクセル２１６は、それらの画像を表すピクセルである。
【００２２】
[0028]表示アダプター２０６がピクセル２１６を収集すると、表示アダプター２０６は、それらのピクセルを使用して代用の文書２１８を作成する。代用の文書２１８は、その文書２１８が、ユーザーがアプリケーションインスタンス２０２を用いて表示しようと試みている元のコンテンツ１１０の代理をするという意味で「代用」である。ユーザーが、基礎をなすコンテンツ１１０を表示するためにアプリケーションインスタンス２０２をインスタンス化していることを思い起こされたい。前述したとおり、表示アダプター２０６は、コンテンツ１１０を表すピクセルを収集するためにアプリケーションインスタンス２０２と対話する。次に、表示アダプター２０６は、ユーザーのコマンドに従うようにこれらのピクセルを構成する。例えば、ユーザーがテキストの何らかの部分を拡大することを所望することをユーザーが示している場合（拡大縮小フィーチャが表示ボックス１０８によってネイティブでサポートされていない場合に）、表示アダプター２０６が、そのテキストの拡大されたビューを作成する。この拡大されたビューを作成するために、表示アダプター２０６は、アプリケーションインスタンス２０２を使用して、ユーザーが拡大することを所望するテキストの部分を表すピクセルを収集し、次に、そのビューを適切なスケールに拡大する。この拡大されたビューが、次に、文書に入れられる。次に、表示アダプター２０６は、さもなければユーザーに見えることになる表示ボックスの上に（すなわち、表示ボックス１０８の上に）文書の画像を重ねることが可能である。通常、アプリケーションインスタンス２０２は、表示ボックス１０８を介してコンテンツ１１０を提示することになる。しかし、表示アダプター２０６が、表示ボックス１０８の上に代用の文書２１８の画像を重ねるので、ユーザーは、ユーザーがコンテンツ１１０を見ることを予期している場所に代用の文書２１８を見て、表示ボックス１０８内にそうする機構が存在するかのようにユーザーがコンテンツ１１０を拡大したという錯覚が生じる。理解され得るとおり、コンテンツ１１０のテキストは、表示ボックス２１０内と比べて、表示ボックス１０８内で（または、より正確には、表示ボックス１０８の上のオーバーレイにおいて）より大きく見えて、代用の文書２１８が、ユーザーに表示される、そのテキストの拡大されたビューを表すことが示される。
【００２３】
[0029]図３は、元のコンテンツ１１０が代用の文書２１８でどのように置き換えられるかを示す。前述したとおり、アプリケーションインスタンス２０２が、通常、コンテンツ１１０を表示するのにインスタンス化され、コンテンツ１１０を、アプリケーションは、表示ボックス１０８を介してユーザーに表示する。しかし、表示アダプター２０６が使用される場合、表示アダプターは、表示ボックス１０８の上に代用の文書２１８の画像を重ねて、コンテンツ１１０の代わりに（コンテンツ１１０と表示ボックス１０８の間の線の上の「××」の印によって示されるとおり）代用の文書が見られるようにする。代用の文書２１８のコンテンツは、表示アダプター２０６によって制御される。表示アダプター２０６は、コンテンツ１１０からそれらのピクセルを収集するようにアプリケーションインスタンス２０２を制御することによって表示アダプター２０６によって収集されたピクセル２１６で代用の文書２１８を埋める。このため、ユーザーが表示ボックス１０８内のコンテンツを見る際、ユーザーは、元のコンテンツ１１０ではなく、表示アダプター２０６が代用の文書２１８に入れたコンテンツを見ている。このようにして、表示アダプター２０６は、コンテンツ１１０の外観を、表示アダプター２０６が、このコンテンツを何らかの仕方で収集することができる限り、ユーザーのコマンドに従ってユーザーに表示するように拡大する、縮小する、またはそれ以外で変換することができる。表示アダプター２０６は、表示アダプター２０６が代用の文書２１８に入れることを所望するピクセルを収集するように、アプリケーションを「駆動する」ことによって、前述したとおり、コンテンツを収集する。
【００２４】
[0030]図４は、或る表示機能（例えば、拡大縮小）がアプリケーションに与えられ得る例示的なプロセスを流れ図の形態で示す。図４の説明に入る前に、本明細書に含まれる流れ図（図４および図５の両方における）が、例として、図１〜図３に示される構成要素を参照して説明されるものの、これらのプロセスは、任意のシステムにおいて実行されることが可能であり、図１〜図３に示されるシナリオには限定されないことに留意されたい。さらに、図４および図５における流れ図のそれぞれが、ブロックをつなぐ線によって示されるとおり、或る特定の順序でプロセスの段階が実行される実施例を示すが、これらの図に示される様々な段階は、任意の順序で、または任意の組合せもしくは部分的組合せで実行され得る。
【００２５】
[0031]４０２で、アプリケーションが開始される。例えば、ユーザーが、前述したブラウザプログラムを呼び出すことが可能であり、さらにそのブラウザを使用して、ブラウザウインドウ内で表示ボックスを提供するアプリケーションにアクセスすることが可能である。４０４で、表示ボックス内のスクロールバーが検出される。例えば、表示ボックスは、垂直スクロールだけしか提供しないことが可能であり、その場合、垂直スクロールバーが検出される。また、前述したとおり、表示ボックスは、垂直スクロールバーと水平スクロールバーの両方を提供することも可能であり、さらにこれらのスクロールバーの両方が検出されることが可能である。
【００２６】
[0032]スクロールバーの検出は、様々な仕方で実行され得る。一例において、表示ボックスを提供するアプリケーションが、表示ボックス、および表示ボックスのスクロールバーの位置を示すメタデーター４０６を提供することも可能である。別の例において、表示ボックス、および／または表示ボックスのスクロールバーを検出するために、表示ボックスが現れるユーザーインターフェースに対して観察的な検出４０８が実行され得る。この観察的な検出が実行され得る１つの方法は、以下のとおりであり、さらに図５に示される。まず、ユーザーがマウスボタン（またはタッチパッドなどの、他の何らかのタイプのポインティングデバイス上のボタン）をクリックしたことが検出される（５０２で）。次に、マウスボタンのクリックに続いて、そのクリックの結果、スクリーン上で何も生じていないことが検出される（５０４で）。次に、ユーザーがマウスを動かし始めたことが検出される（５０６で）。次に、マウスの動きに応答してスクロールが生じたこと、すなわち、ユーザーがマウスを動かすと、スクリーン上の何かがスクロールし始めることが検出される（５０８で）。この一連のアクションは、観察されるアクションが、ユーザーがサムを操作したことと合致しているので、ユーザーがマウスを使用して、スクロールバーのサムを操作したことを示す傾向にある。これらの観察を使用して、表示ボックスおよびサムの位置が推測される。
【００２７】
[0033]次に図４に戻ると、４１２で、アプリケーションが、ユーザーがアプリケーションを使用して表示していた元のコンテンツを消費する。例えば、ユーザーが、アプリケーションを使用してコンテンツ１１０（図１に示される）を表示することを意図している場合、アプリケーションは、コンテンツ１１０を消費する。アプリケーションは、表示アダプター２０６（図２に示される）の指示の下でコンテンツ１１０を消費することが可能である。表示アダプターが、コンテンツ１１０のビューを導いている間、表示アダプターは、文書からピクセルを収集する（４１４で）。４１６で、表示アダプターは、それらのピクセルを代用の文書に入れる。４１８で、代用の文書からのコンテンツが、アプリケーションの表示ボックスの上に重ねられて、アプリケーションが、その代用の文書からのコンテンツをユーザーに表示しているように見えるようにされる。例えば、表示アダプターは、アプリケーションにおける表示ボックスの位置の上にオーバーレイを作成することが可能であり、さらにそのオーバーレイにおいて代用の文書からのコンテンツを表示することが可能である。
【００２８】
[0034]表示アダプターがアプリケーションを使用してピクセルを収集する際、表示アダプターは、様々な仕方で、様々なキューに応答してそうすることが可能であることに留意されたい。例えば、表示アダプターは、ユーザーによる特定のアクションに応答して、基礎をなすコンテンツからピクセルを収集することが可能である。つまり、ユーザーが縮小を要求した場合、表示アダプターは、アプリケーションを使用して、基礎をなすコンテンツを操作し、さらにいくつかの表示ボックス分のピクセルを収集して、いくつかのボックス分のコンテンツの縮小されたビューがユーザーに表示され得るようにすることが可能である。しかし、別の例において、表示アダプターは、ユーザーが何を求めるかを予期しようと試みる。例えば、ユーザーが或る方向で（例えば、右に）コンテンツをパンしている場合、表示アダプターは、ユーザーがその方向にコンテンツをパンし続けるものと想定することが可能であり、したがって、ユーザーがそこまで実際にパンする前に、ユーザーが近い将来の何らかの時点でその方向にさらにパンするという予測に基づいて、その方向の先のコンテンツの部分を収集しようと試みることが可能である。さらに、表示アダプターは、ユーザーがコンテンツの同一の位置で拡大すること、または縮小することを予期して、様々な詳細レベルで基礎をなすコンテンツからのピクセルを格納することが可能である。例えば、ユーザーが、或る文書における或る特定の位置にパンし、その後、パンすることを止めた場合、ユーザーは、その位置で拡大する、または縮小する可能性があり、したがって、表示アダプターは、ユーザーがその位置で実際に拡大する、または縮小することを予期して、いくつかの異なる拡大縮小レベルでその文書の画像を構築することが可能である。システムは、しばらくの間、異なる拡大縮小レベルにおけるコンテンツの様々な異なるビューを格納することが可能であり、格納されたビューが近い将来に使用される可能性が低いことが予期される場合には、格納されたビューをフラッシュすることもできる。まだ発行されていないユーザーコマンドを予期してコンテンツのビューを事前計算することにより、ビューが要求された後にビューを迅速に提供することができることによってパフォーマンスの感覚を高めることが可能である。さらに、近い将来に使用される可能性が低いと表示アダプターが考えるビューをフラッシュすることにより、それらのビューを格納するのに使用されるスペースの量が低減される。
【００２９】
[0035]図６は、本明細書で説明される主題の様態が展開され得る例示的な環境を示す。
[0036]コンピューター６００は、１つまたは複数のプロセッサー６０２と、１つまたは複数のデーター記憶構成要素６０４とを含む。プロセッサー６０２は、通常、パーソナルデスクトップコンピューターもしくはパーソナルラップトップコンピューター、サーバー、ハンドヘルドコンピューター、または別の種類のコンピューティングデバイスに見られるマイクロプロセッサーのようなマイクロプロセッサーである。データー記憶構成要素６０４は、短期間、または長期間、データーを格納することができる構成要素である。データー記憶構成要素６０４の例には、ハードディスク、リムーバブルディスク（光ディスクおよび磁気ディスクを含む）、揮発性ＲＡＭ（ランダムアクセスメモリー）および不揮発性ＲＡＭ、ＲＯＭ（読み出し専用メモリー）フラッシュメモリー、磁気テープなどが含まれる。データー記憶構成要素は、コンピューター可読記憶媒体の例である。コンピューター６００は、ＣＲＴ（陰極線管）モニター、ＬＣＤ（液晶ディスプレイ）モニター、または他の任意のタイプのモニターであり得るディスプレイ６１２を備える、またはそのようなディスプレイ６１２に関連付けられることが可能である。
【００３０】
[0037]ソフトウェアが、データー記憶構成要素６０４の中に格納されることが可能であり、さらに１つまたは複数のプロセッサー６０２上で実行されることが可能である。そのようなソフトウェアの例が、図１〜図５に関連して前述した機能の一部、またはすべてを実施することが可能なビュー適応ソフトウェア６０６であるが、任意のタイプのソフトウェアが使用され得る。ソフトウェア６０６は、例えば、分散システム、別々のファイル、別々の機能、別々のオブジェクト、別々のコード行などにおける構成要素であり得る１つまたは複数の構成要素を介して実施され得る。プログラムがハードディスク上に格納され、ＲＡＭにロードされ、さらにコンピューターのプロセッサーによって実行されるパーソナルコンピューターが、図６に示されるシナリオの典型を示すものの、本明細書で説明される主題は、この例に限定されない。
【００３１】
[0038]本明細書で説明される主題は、データー記憶構成要素６０４の１つまたは複数の中に格納され、プロセッサー６０２の１つまたは複数の上で実行されるソフトウェアとして実施され得る。別の例として、主題は、１つまたは複数のコンピューター可読記憶媒体上に格納された命令として実施され得る。（光ディスクまたは磁気ディスクなどの実体のある媒体が、記憶媒体の例である。）そのような命令は、コンピューターまたは他のマシンによって実行されると、そのコンピューターまたは他のマシンに方法の１つまたは複数の動作を実行させることが可能である。これらの動作を実行する命令は、１つの媒体上に格納されることも、複数の媒体にわたって散在させられることも可能であり、したがって、命令のすべてが同一の媒体上に存在することがあるかどうかにかかわらず、１つまたは複数のコンピューター可読記憶媒体上にひとまとまりとして現れることが可能である。
【００３２】
[0039]さらに、本明細書で説明される任意の動作が（図に示されるか否かにかかわらず）、方法の一部としてプロセッサー（例えば、プロセッサー６０２の１つまたは複数）によって実行され得る。このため、動作Ａ、Ｂ、およびＣが本明細書で説明される場合、Ａ、Ｂ、およびＣの動作を備える方法が実行され得る。さらに、Ａ、Ｂ、およびＣの動作が本明細書で説明される場合、プロセッサーを使用してＡ、Ｂ、およびＣの動作を実行することを備える方法が、実行され得る。
【００３３】
[0040]１つの例示的な環境において、コンピューター６００が、ネットワーク６０８を介して１つまたは複数の他のデバイスに通信するように接続され得る。構造的にコンピューター６００と同様であり得るコンピューター６１０が、コンピューター６００に接続され得るデバイスの例であるが、他のタイプのデバイスが接続されることも可能である。
【００３４】
[0041]主題は、構造上の特徴、および／または方法上の動作に特有の言葉で説明されてきたものの、添付の特許請求の範囲において規定される主題は、前述した特定の特徴または動作に必ずしも限定されないことを理解されたい。むしろ、前述した特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示される。
【図１】
2013517557.tif 000003
【図２】
2013517557.tif 000004
【図３】
2013517557.tif 000005
【図４】
2013517557.tif 000006
【図５】
2013517557.tif 000007
【図６】
2013517557.tif 000008
【国際調査報告】
2013517557.tif 000009
2013517557.tif 000010