特許第5738895号(P5738895)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト コーポレーションの特許一覧

<>
  • 特許5738895-アプリケーションの表示機能の拡張 図000002
  • 特許5738895-アプリケーションの表示機能の拡張 図000003
  • 特許5738895-アプリケーションの表示機能の拡張 図000004
  • 特許5738895-アプリケーションの表示機能の拡張 図000005
  • 特許5738895-アプリケーションの表示機能の拡張 図000006
  • 特許5738895-アプリケーションの表示機能の拡張 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5738895
(24)【登録日】2015年5月1日
(45)【発行日】2015年6月24日
(54)【発明の名称】アプリケーションの表示機能の拡張
(51)【国際特許分類】
   G06F 3/048 20130101AFI20150604BHJP
   G06F 3/0485 20130101ALI20150604BHJP
【FI】
   G06F3/048 651A
   G06F3/048 656D
【請求項の数】19
【全頁数】16
(21)【出願番号】特願2012-548939(P2012-548939)
(86)(22)【出願日】2010年12月7日
(65)【公表番号】特表2013-517557(P2013-517557A)
(43)【公表日】2013年5月16日
(86)【国際出願番号】US2010059282
(87)【国際公開番号】WO2011087624
(87)【国際公開日】20110721
【審査請求日】2013年10月28日
(31)【優先権主張番号】12/687,123
(32)【優先日】2010年1月13日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】500046438
【氏名又は名称】マイクロソフト コーポレーション
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100096013
【弁理士】
【氏名又は名称】富田 博行
(74)【代理人】
【識別番号】100092967
【弁理士】
【氏名又は名称】星野 修
(74)【代理人】
【識別番号】100147991
【弁理士】
【氏名又は名称】鳥居 健一
(72)【発明者】
【氏名】マーガリント,ラドゥ・シー
(72)【発明者】
【氏名】コックス,アンドリュー・ディー
(72)【発明者】
【氏名】フレイク,ゲーリー・ダブリュー
(72)【発明者】
【氏名】ファルーキ,カリム・ティー
(72)【発明者】
【氏名】ウー,アラン・ケイ
【審査官】 円子 英紀
(56)【参考文献】
【文献】 米国特許出願公開第2006/0136836(US,A1)
【文献】 特開2009−258848(JP,A)
【文献】 特開2002−373043(JP,A)
【文献】 特開平08−054999(JP,A)
【文献】 特開2005−056286(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/048−3/0489
G06F 3/14
(57)【特許請求の範囲】
【請求項1】
アプリケーションに対して表示機能を提供する実行可能な命令を格納する1つ又は複数のコンピューター読み取り可能な記憶媒体であって、前記実行可能な命令は、コンピューターによって実行されると、前記コンピューターに、
アプリケーションの表示ボックスの第1のスクロールバーの第1の位置を検出するステップであって、コンテンツは前記表示ボックスを介して表示される、ステップと、
前記第1のスクロールバーの前記第1の位置を使用して、前記コンテンツのナビゲートが前記アプリケーションのユーザーにとって見ることができないように前記コンテンツをナビゲートし、前記コンテンツを表すピクセルを収集するステップと、
情報が表示されるときに前記情報が前記表示ボックス内の前記コンテンツを十分に覆うように前記情報を前記表示ボックスの上に前記ピクセルに基づいて重ねるステップであって、前記情報が前記表示ボックスの上に重ねられている間に前記コンテンツが前記表示ボックス内にあるが見ることができないように、前記情報が前記表示ボックスの上に重ねられている間、前記表示ボックスが前記コンテンツで満たされる、ステップと
を含む動作を実行させ
前記情報を前記表示ボックスの上に前記ピクセルに基づいて重ねるステップは、
前記ピクセルを文書内に入れるステップと、
前記文書を前記表示ボックスの上のオーバーレイとして表示するステップと
を含む1つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項2】
前記第1の位置を検出するステップは、前記第1のスクロールバーの前記第1の位置を指定する、前記アプリケーションによって提供されるメタデータを使用するステップを含む請求項1に記載の1つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項3】
前記第1の位置を検出するステップは、
前記アプリケーションのインターフェースにおいて第2の位置をクリックするために前記アプリケーションのユーザーがポインティングデバイスを使用したことを観察するステップと、
前記ユーザーが、前記ポインティングデバイスによって、前記第2の位置から第3の位置への移動を示したことを観察するステップであって、前記第2の位置及び前記第3の位置は前記第1の位置内にある、ステップと、
前記移動に続いて、前記表示ボックス内でのコンテンツのスクロールが生じたことを観察するステップと
を含む請求項1に記載の1つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項4】
前記動作は、
前記表示ボックスが配置される第4の位置を検出するステップ
をさらに含む請求項1に記載の1つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項5】
前記表示ボックスは第2のスクロールバーを含み、前記第1のスクロールバーは垂直スクロールバーであり、前記第2のスクロールバーは水平スクロールバーであり、前記動作は、
前記コンテンツをナビゲートするために前記アプリケーション内の前記水平スクロールバーを使用するステップをさらに含む請求項1に記載の1つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項6】
前記アプリケーションは、少なくともいくつかのアプリケーションインスタンスのウィンドウをユーザーに対して表示するコンピューターシステムにおいて実行され、前記コンテンツをナビゲートするための前記第1のスクロールバーの前記第1の位置の使用はウィンドウ内に表示されない請求項1に記載の1つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項7】
前記動作は、
前記ピクセルがユーザーによって要求される可能性が低いという予測に基づいて前記文書から前記ピクセルを除去するステップ
をさらに含む請求項に記載の1つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項8】
前記動作は、
ユーザーが前記アプリケーションのウィンドウを介して発行するコマンドをインターセプトするステップと、
前記コマンドに基づいて、前記コンテンツのどの部分にナビゲートするべきか、及び前記コンテンツのどの部分からピクセルを収集するべきかを決定するステップと
をさらに含む請求項1に記載の1つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項9】
前記コマンドのうちの1つは拡大縮小レベルを示し、前記動作は、
前記拡大縮小レベルに基づいて前記コンテンツをスケーリングするステップ
をさらに含む請求項に記載の1つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項10】
前記動作は、
ユーザーによって要求された前記コンテンツの部分に基づいて、前記ユーザーが前記部分を得るためにコマンドを発行するのに先立って、前記ユーザーによって要求されるべき前記コンテンツの部分を予期するステップと、
前記アプリケーションを使用して前記コンテンツの前記部分を得るステップと
をさらに含む請求項1に記載の1つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項11】
前記動作は、
前記ユーザーによって要求された前記コンテンツの拡大縮小レベルに基づいて、前記拡大縮小レベルで前記コンテンツを見るために前記ユーザーがコマンドを発行するのに先立って、前記コンテンツを示すための拡大縮小レベルを予期するステップと、
前記コンテンツを前記拡大縮小レベルにスケーリングするステップと
をさらに含む請求項1に記載の1つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項12】
ユーザーによって要求されるコンテンツを得る方法であって、
ユーザーがコンテンツを見るために使用しているアプリケーションの第1の表示ボックスのスクロールバーの第1の位置を検出するステップと、
前記スクロールバーの前記第1の位置を使用して、前記第1の表示ボックスにおいて前記コンテンツをナビゲートするステップであって、前記コンテンツのナビゲートがディスプレイデバイス上で前記ユーザーに見えないようにされる、ステップと、
前記コンテンツを表すピクセルを記憶するステップと、
前記ピクセルの表示が前記表示ボックス内の前記コンテンツを十分に隠すように前記ピクセルを前記表示ボックスの上に重ねるステップであって、前記ピクセルが前記表示ボックスの上に重ねられている間に前記コンテンツが前記表示ボックス内にあるが見ることができないように、前記ピクセルが前記表示ボックスの上に重ねられている間、前記表示ボックスが前記コンテンツで満たされる、ステップと
を含む動作を実行するようにプロセッサーを使用するステップを含む方法。
【請求項13】
前記動作は、
前記アプリケーションのウィンドウを介して前記ユーザーからコマンドを受け取るステップと、
前記コマンドを使用して、前記アプリケーションにおいて前記コンテンツ中のナビゲートする場所を決定するステップと
をさらに含む請求項12に記載の方法。
【請求項14】
前記動作は、
前記コンテンツのどの部分を前記ユーザーが見ることを望む可能性があるか、及び前記ユーザーが前記部分を見ることを望む可能性がある拡大縮小レベルを予期するステップと、
前記ユーザーが前記部分を要求するコマンドを発行するのに先立って前記部分にナビゲートするステップと、
前記拡大縮小レベルで前記部分を表すピクセルを記憶するステップと
をさらに含む請求項12に記載の方法。
【請求項15】
前記第1の位置を検出するステップは、
前記スクロールバーが配置される場所を決定するために前記アプリケーションによって提供されるメタデータを使用するステップを含む請求項12に記載の方法。
【請求項16】
前記第1の位置を検出するステップは、
前記ユーザーによって前記アプリケーションに対して発行される入力及び前記入力に続いて前記アプリケーションによってとられるアクションを観察するステップと、
前記入力及び前記アクションに基づいて、前記スクロールバーが配置される場所を決定するステップと
を含む請求項12に記載の方法。
【請求項17】
前記決定するステップは、
前記アプリケーションのウィンドウ内の第2の位置をクリックするために前記ユーザーがポインティングデバイスを使用したことを観察するステップと、
前記ユーザーが、前記ポインティングデバイスによって、前記第2の位置から第3の位置への移動を示したことを観察するステップであって、前記第2の位置及び前記第3の位置は前記第1の位置内にある、ステップと、
前記移動に続いて、前記表示ボックス内でのコンテンツのスクロールが生じたことを観察するステップと
を含む請求項16に記載の方法。
【請求項18】
アプリケーションを操作するユーザーからのコマンドに応答するためのシステムであって、
前記アプリケーションを実行するプロセッサーと、
前記アプリケーションが格納されるデータ記憶構成要素と、
前記データ記憶構成要素の中に格納され、前記プロセッサー上で実行される表示アダプターであって、前記アプリケーションが実行されるウインドウを介して前記ユーザーによって発行されたコマンドをインターセプトし、前記アプリケーションを介してコンテンツを得るコマンドを発行し、前記アプリケーションは、ディスプレイ上で前記ユーザーに見えるが、表示アダプターと前記アプリケーションの間の対話は、前記ディスプレイ上でユーザーには見えない、表示アダプターと、
前記表示アダプターが前記アプリケーションを介して得るコンテンツを表すピクセルを前記表示アダプターが格納する文書であって、前記表示アダプターは、文書が、前記コンテンツの代わりに現れるように前記アプリケーションの表示ボックスの上に重ねられるようにし、前記文書が表示されるときに前記文書は前記表示ボックス内の前記コンテンツを十分に覆い、前記文書が前記表示ボックスの上に重ねられている間に前記コンテンツが前記表示ボックス内にあるが見ることができないように、前記文書が前記表示ボックスの上に重ねられている間、前記表示ボックスが前記コンテンツで満たされる、文書と
を備えるシステム。
【請求項19】
前記表示アダプターは、前記表示ボックスおよび前記表示ボックスにおけるスクロールバーの位置を、
前記アプリケーションからメタデータを受け取るステップ、または
前記ウインドウ内のポインティングデバイスの動き、および前記動きに続く前記アプリケーションのアクションを観察し、前記動きおよび前記アクションが、前記表示ボックスおよび前記表示ボックスのスクロールバーが前記位置にあることと合致しているかどうかを判定するステップ
によって検出し、前記表示アダプターが、前記位置を使用して、前記アプリケーションにおいて前記コンテンツをナビゲートする請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションの表示機能の拡張に関する。
【背景技術】
【0002】
[0001]技術が進歩するにつれ、コンピューターおよび他のデバイスのユーザーは、それらが文書を表示する方法の柔軟性がますます大きくなることを期待する。初期のコンピューターディスプレイにおいて、情報は、スクリーン上のテキストの行として提示された。スクリーンがテキストで埋まると、そのテキストは、新たなテキストが入るようにスクリーンの上方にスクロールされた。最終的に、最上の行はスクロールされてスクリーンの最上部から外れて、取り戻し不能になる。後の進展により、ユーザーがテキストを上下にスクロールして、テキストを見えるようにしたり、見えなくしたりすることを可能にする、ユーザーによって制御される垂直スクロールが可能となった。
【0003】
[0002]現在、多くのユーザーインターフェースは、水平スクロールおよび拡大縮小などのさらなる柔軟性を可能としている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、多くの既存のアプリケーションは、これらのさらなる形態の表示の柔軟性をサポートしない。さらに、一部の新たなアプリケーション(例えば、一部のJavaベースのウェブアプリケーション)は、簡易な垂直スクロール機能しか有さない表示領域を提供する。ユーザーは、拡大縮小、ならびに垂直スクロールおよび水平スクロールなどのより高い表示能力に慣れており、これらの能力を本来提供しないアプリケーションでも、これらの能力を使用することを所望し得る。
【課題を解決するための手段】
【0005】
[0003]拡大縮小などの様々な表示能力が、アダプターの使用を介してアプリケーションに与えられることが可能である。ブラウザを介してアクセス可能であるウェブアプリケーションなどのアプリケーションが、スクロール能力を有する表示ボックスを表示することが可能である。この表示ボックスは、いくらかの基礎をなすコンテンツ(例えば、テキスト、画像など)をユーザーに表示するのに使用され得る。ユーザー体験に拡大縮小などのさらなる能力を追加するために、表示アダプターが、表示ボックスを介して表示されるピクセルを収集するようにアプリケーションを制御する。アダプターは、これらのピクセルを得ると、これらのピクセルを任意のサイズにスケール変更することができ、さらにこれらのピクセルを文書に入れることができ、その文書が、表示ボックス上のオーバーレイとしてユーザーに表示され得る。
【0006】
[0004]ユーザー体験に拡大縮小などのさらなる能力が追加されているという印象をユーザーに与えるため、アダプターは、ユーザーのジェスチャー(例えば、拡大縮小を示すマウスの左右の動き)をインターセプトし、これらのジェスチャーを使用して、どのようなコンテンツをユーザーに表示すべきかを判定する。次に、アダプターは、アプリケーションの第2のインスタンスを使用して、そのコンテンツから適切なピクセルを収集し(またはユーザーコマンドを予期してピクセルを事前対応で収集し)、さらにこれらのピクセルを文書に入れる。アダプターは、アダプターが作成した文書を、アプリケーションがさもなければ表示することになる、基礎をなすコンテンツに置き換える。したがって、例えば、アプリケーションが通常、ユーザーにテキスト文書を表示する場合、アダプターは、アダプターが作成した文書の画像を元の表示ボックスの上に重ねて、ユーザーが元のテキスト文書の代わりにその文書を見るようにする。この文書は、元のコンテンツの様々な領域の拡大されたビュー、または縮小されたビューを含み得る。
【0007】
[0005]アダプターは、アダプターが現実のユーザーであるかのようにアプリケーションを「駆動する」ことによってピクセルを収集するので、アダプターは、アダプターがピクセルを収集する適切なスクロールコマンドを発行することができるようにアプリケーションにおけるスクロールバーの位置を学習しようと試みる。一例において、アダプターは、アプリケーションによって開示されるメタデーターを介してスクロールバーの位置を学習する。別の例において、アプリケーションは、観察によって、例えば、アプリケーションとのユーザーの対話を監視して、いずれのアクションが表示ボックスをスクロールさせるかを知ることによって、スクロールバーの位置を学習する。
【0008】
[0006]さらに、アダプターは、アプリケーションを使用して、ユーザーが感じる速度を高めとともに、メモリーの使用を低減するようにピクセルを収集し、格納することが可能である。例えば、ユーザーが、或る方向で文書をパンしているように見える場合、アダプターは、基礎をなすコンテンツにおいてその方向のさらに先から適切なピクセルを事前対応で収集して、ユーザーがまだ発行していないコマンドを予期するようにすることが可能である。適切なピクセルを前もって得ることにより、ユーザーの待機時間が短縮されて、ユーザーが感じるアプリケーションの応答時間が高められる。さらに、ピクセルが文書に入れられると、これらのピクセルが、ユーザーによって要求される可能性が低い文書の領域を表す場合、アプリケーションは、格納されたピクセルをフラッシュして、スペースを節約してもよい。
【0009】
[0007]この概要は、詳細な説明において後段でさらに説明される選定された概念を、簡略化された形態で概説するように与えられる。この概要は、主張される主題の重要な特徴、または不可欠な特徴を特定することは意図しておらず、また主張される主題の範囲を限定するのに使用されることも意図していない。
【図面の簡単な説明】
【0010】
図1】[0008]スクロールが利用可能である例示的なアプリケーションインターフェースを示すブロック図である。
図2】[0009]表示機能を拡張するためのサポートが提供される例示的なシナリオを示すブロック図である。
図3】[0010]元のコンテンツが代用の文書で置き換えられる例示的なシナリオを示すブロック図である。
図4】[0011]或る表示機能がアプリケーションに与えられ得る例示的なプロセスを示す流れ図である。
図5】[0012]観察的な検出の例示的なプロセスを示す流れ図である。
図6】[0013]本明細書で説明される主題の実施形態に関連して使用され得る例示的な構成要素を示すブロック図である。
【発明を実施するための形態】
【0011】
[0014]ユーザーは、しばしば、ユーザーがどのように文書を表示するかに柔軟性があることを所望する。技術が進歩するにつれ、ユーザーインターフェースは、より多くの柔軟性にますます対応している。コンピューターの早期には、テキストは、一続きの行としてスクリーン上でユーザーに提示された。スクリーンが埋まると、より古い行は、ページの最上部から外れ、取り戻し不能になった。その後の革新において、ユーザーが文書を上下に移動することを許す垂直スクロールが導入された。また、水平スクロールも、ワードラップの代替として導入されて、1つのスクリーンに収まるには幅が広すぎる行を表示する方法がもたらされた。
【0012】
[0015]通常、スクロール可能な領域は、ユーザーが文書を上に移動することを所望するか、下に移動することを所望するか(または水平スクロールの場合、左に移動することを所望するか、右に移動することを所望するか)を、ユーザーが指定することができる領域を提供する。その領域は、通常、ユーザーがどこに移動したいかを示すようにユーザーが上下に移動する(または左右に移動する)ことができることができるスクロールバーまたは「サム」を含む。
【0013】
[0016]スクロールに加えて、ユーザーは、しばしば、コンテンツを表示している際に拡大縮小することができることを所望する。しかし、一部のアプリケーションは、スクロール能力は提供したが、拡大縮小能力は提供しなかった。本明細書の主題は、スクロール機能を開示するアプリケーションにおいて拡大縮小機能を実施するのに使用され得る。既存のアプリケーションの表示機能を強化するため、表示アダプターが、ユーザーが何をしようと試みているかを特定するためにユーザーのジェスチャーおよび他のコマンドをインターセプトする。例えば、ユーザーは、表示ボックスの右または左にマウスを動かして、ユーザーが拡大すること、または縮小することを所望することを示すことが可能である。拡大縮小機能は、アプリケーション自体においては実施されない可能性があるので、アダプターが、これらのジェスチャーをインターセプトし、適切にスケール変更されたコンテンツを獲得し、さらにそのスケール変更されたコンテンツをアプリケーションの表示ボックスの上に表示することによって、それらのコマンドに応答する。
【0014】
[0017]適切にスケール変更されたコンテンツを得るため、およびそのコンテンツをアプリケーションに供給するために、アダプターは、以下のアクションを実行することが可能である。基礎をなす文書のビューを提供する任意の所与のアプリケーションに関して、アダプターは、そのアプリケーションのスクロール能力と対話することによって、そのアプリケーションを「駆動する」ことが可能である。アプリケーションとのアダプターの対話は、ユーザーには直接に見えないことが可能であるが、アプリケーションは、これらの対話を使用して、ユーザーに表示すべきコンテンツを獲得することができる。例えば、アダプターは、アプリケーションのスクロール能力を使用して、文書を上下に(または、場合により、左右に)スクロールすることができる。表示アダプターがこのように文書を移動する理由は、文書の様々な部分を収集するためである。例えば、或る文書の1/10だけしか表示ボックス内に一度に収まり得ないものと想定されたい。ユーザーが、その文書の表示ボックス5つ分を備える文書の縮小されたビューを見ることを所望することを、ユーザーが示した(適切な拡大縮小ジェスチャーを介して)場合、アダプターは、アプリケーションのアダプターによる制御を使用して、その文書をスクロールし、さらにその文書を表示ボックス5つ分、収集することができる。次に、アダプターは、アダプターが収集した情報を縮小して、その情報が1つの表示ボックスに収まるようにすることができる。その縮小されたバージョンがユーザーに見えるようにするため、アダプターは、その縮小されたバージョンを、アダプターが管理する仮想文書に入れることができる。このため、アダプターは、基礎をなす文書の縮小されたビューを仮想文書に入れ、さらに、その後、その仮想文書をユーザーに開示する。例えば、アダプターは、アプリケーションの表示ボックスの上にその仮想文書のビューを重ねて、ユーザーが表示ボックス内でその仮想文書を見るようにすることが可能である。
【0015】
[0018]アダプターは、いくつかの技術を使用して、文書についての情報を収集し、格納することが可能である。例えば、アダプターは、文書を表示する異なる多くの拡大縮小レベルを提供することが可能であるが、すべての拡大縮小レベルにおける文書全体を格納することは望まない可能性がある。したがって、アダプターは、特定の拡大縮小レベルを求めるユーザーの要求に応答して、文書のいくつかの部分を収集することが可能であり、または文書のいずれの領域をユーザーが次に表示するかを、ユーザーが文書のその領域を表示するコマンドを実際に発行するのに先立って、予期しようと試みることが可能である。例えば、ユーザーが、文書を或る特定の拡大縮小レベルで表示しており、さらに上方にスクロールしている、またはパンしているように見える場合、アダプターは、ユーザーが引き続き上方にスクロールすることを予期することが可能であり、文書のより上方の情報を、ユーザーがその情報を実際に要求する前に収集する。さらに、アダプターは、ユーザーが既に見て、表示領域の外に出した文書の部分を破棄することによって、スペースを節約することができる。
【0016】
[0019]アプリケーションをどのように「駆動する」かを決定するために、アダプターは、アプリケーションのコントロールがどこにあるかを学習しようと試みることが可能である。アプリケーションのコントロールがどこにあるかを学習する1つの方法は、アプリケーションによって開示されるメタデーターを検査することである。例えば、アプリケーションが、スクロール可能な表示領域、およびその領域のスクロールバーがどこに配置されているかを示すメタデーターを与えることが可能である。または、別の例として、アダプターが、ユーザーの挙動、およびその挙動に応答してアプリケーションによって行われるアクションを観察することによって、スクロール可能な表示領域、およびスクロールバーの位置を推測することが可能である。例えば、スクロールバーの位置を示す典型的な挙動は、以下のとおりである。すなわち、まず、ユーザーが、スクロールサムをクリックし、次に、何も生じず、次に、ユーザーがサムを上方または下方に移動し始め、次に、表示領域内のコンテンツが、サムの方向で上方に、または下方に移動する。このパターンを観察することによって、アダプターは、スクロール可能な表示領域の存在、ならびにスクロールバーの位置を検出することができる。別の例において、ユーザーがマウスをクリックし、次にスクロールが観察された場合、このパターンは、ユーザーが、サム意外のどこかでスクロールバーをクリックしたことを示す傾向にある。(以上は、垂直スクロールバーを検出するためのいくつかの技術を説明するが、類似した技術が、水平スクロールバーを検出するのに使用されることも可能である。)
[0020]次に図面を参照すると、図1は、スクロールが利用可能である例示的なアプリケーションインターフェースを示す。ウインドウ102が、プログラム104のユーザーインターフェースを与える。例えば、ウインドウ102を介してインターフェースが与えられるプログラム104は、HTML(ハイパーテキストマークアップ言語)コードおよびJavaコードなどの情報を処理して、何らかの種類のコンテンツを表示するブラウザであり得る。ウインドウ102は、ユーザーがウインドウ102を隠すこと、サイズ変更すること、および閉じることを許す、コントロール106のような、ウインドウが有する通常のコントロールを有することが可能である。
【0017】
[0021]ウインドウ102内で、様々なタイプのコンテンツが、プログラム104によって表示され得る。そのようなコンテンツの一例が、何らかの基礎をなすコンテンツ110が表示されることを許す表示ボックス108である。この例において、表示されるべきコンテンツ110は、よく知られた「ロレムイプサム」テキストコンテンツであるが、任意のタイプのコンテンツ(例えば、テキスト、画像など)が表示ボックス108を介して表示されることが可能である。例えば、ブラウザが何らかのタイプのコンテンツにアクセスするのに使用される場合、アクセスされるコンテンツは、ブラウザに表示ボックス108を表示させ、さらに表示ボックス108を介してコンテンツ110が表示されるようにもするHTMLコードまたはJavaコードを供給するサーバー側のアプリケーションであり得る。コンテンツ110は、ソーステキストファイル112、フォント114、および画像116などの1つまたは複数の構成要素から成ることが可能である。例えば、表示ボックス108内に示されるコンテンツ110は、テキストと、画像とを含む新聞記事であり得る。このコンテンツは、表示ボックス108を介して表示されるピクセルを介して表示される。表示される特定のピクセルは、テキストと、グラフィックスとを含む。グラフィックスを表すピクセルは、画像116から導き出される。テキストを表すピクセルは、ソーステキストファイル112およびフォント114から導き出され、すなわち、ソーステキストファイル112が、いずれの文字が描かれるべきかを示し、フォント114が、それらの文字がどのように現れるかを示す。
【0018】
[0022]表示ボックス108は、ユーザーがコンテンツ110を垂直に、さらに/または水平にスクロールすることができるコントロールを提供する。例えば、表示ボックス108の右縁部および下縁部に沿って、表示ボックス108内のコンテンツ110のスクロールを導くのに使用される2つの長方形118および120が存在する。長方形118および120は、ユーザーが、上下にスクロールすること(サム122)、および/または左右にスクロールすること(サム124)を許すスクロールバー、またはサム122および124を含む。このスクロール機能は、表示ボックス108を与えるサーバー側アプリケーションによって提供され得る。(一部の例において、表示ボックス108は、垂直スクロールだけ、または水平スクロールだけしか提供しないことも可能である。本明細書で説明される技術は、表示機能を拡張して、表示ボックス108がネイティブで提供しない次元のスクロールを提供するのに使用され得る。)
[0023]ユーザーが実行することを所望する可能性がある1つの表示機能は、拡大縮小またはスケール変更である。スクロール能力は、ユーザーが表示ボックス108内でコンテンツ110を上下に移動することを許すが、スクロールは、ユーザーがコンテンツをより大きくすること(より少ない量のコンテンツをより詳細に見るように)、またはコンテンツをより小さくすること(より多くの量の情報をそれほど詳しくなく見るように)を許さない。ユーザーが、マウスを使用して「拡大」または「縮小」などの機能を示すことができる様々な方法が存在する。例えば、ユーザーが、マウスポインタを右にドラッグして、拡大を示す、または左にドラッグして、縮小を示すことも可能である。そのようなジェスチャーがユーザーによって行われ得るが、表示ボックス108は、これらのジェスチャーのネイティブのサポートを提供しない可能性がある。本明細書で提供される技術が、そのようなサポートを提供するのに使用されることが可能であり、したがって、ユーザーは、そのようなサポートが、コンテンツが表示されているアプリケーションによってネイティブで提供されない場合でさえ、コンテンツを拡大縮小する(または他の任意の適切な表示操作を実行する)ことが可能である。
【0019】
[0024]図2は、表示機能を拡張するためのサポートを提供する例示的な方法を示す。サーバー側のアプリケーションが、何らかの基礎をなすコンテンツ(例えば、テキスト、フォント、画像など)へのアクセスをもたらす表示ボックス108を提供し、さらにプログラム(例えば、ブラウザ)が、この表示ボックスのビューをユーザーに提供するウインドウ102内で開かれる。さらに、表示ボックス108が、垂直スクロールおよび/または水平スクロールを許すサム122および124を提供することが可能である(または、前述したとおり、表示ボックス108は、1つの次元でだけスクロールを提供することも可能である)。これらの構成要素は、図1に示される構成要素と同様である。アプリケーションインスタンス202は、ユーザーが対話するアプリケーションのインスタンスである。例えば、システムが、ブラウザウインドウを開いて、ユーザーがアプリケーションインスタンス202と対話するのを許すことが可能である。しかし、表示アダプター206は、アプリケーションインスタンス202のインターフェースの破線図によって示されるとおり、ユーザーに見えない仕方でアプリケーションインスタンス202と対話することも可能である。
【0020】
[0025]詳細には、ユーザーがウインドウ102を介してアプリケーションインスタンス202と対話する間、表示アダプター206が、ユーザーによって発行されたコマンド208をインターセプトする。例えば、ユーザーが、前述した左右のジェスチャーなどのジェスチャー(拡大機能および縮小機能を示す)を行った場合、これらのジェスチャーが、コマンド208として解釈されることが可能であり、さらに表示アダプター206が、これらのコマンド208をインターセプトすることが可能である。表示アダプター206がこれらのコマンドをインターセプトすることが可能な1つの方法は、ウインドウ102がフォーカスを有する場合はいつでも、ウインドウ102内のキーボード対話およびマウス対話を観察することである。(「フォーカスを有する」とは、一般に、ウインドウが活性であること、すなわち、キーボード入力およびマウス入力が、その時点で、他の何らかのウインドウと対比される、フォーカスを有するウインドウに向けられているものとして理解されることを意味するものと理解される。)
[0026]表示アダプター206がコマンドをインターセプトする仕方にかかわらず、表示アダプター206がコマンド208を得ると、表示アダプター206は、それらのコマンドを解釈して、ユーザーが何を表示しようとしているかを特定することが可能である。例えば、左向きの動きは、よりコンテンツをより少なく、ただし、そのコンテンツのより大きい画像を見る、縮小をユーザーが所望しているものと解釈されることが可能である。すると、表示アダプター206は、ユーザーが見ることを所望するコンテンツを獲得しようと試みることが可能である。表示アダプター206は、アプリケーションにおいて表示ボックス210を操作することによって、このコンテンツを獲得する。表示ボックス210は、制御されるべき表示ボックス210内のコンテンツのビューを許すサム212および214を提供することが可能である。表示ボックス210内で表示されるべきコンテンツは、図1の表示ボックス108内で表示されるコンテンツ110と同一である。表示アダプター206は、サム212および214を制御することによってコンテンツ110のビューを制御する。表示アダプター206による、表示ボックス210内のビューの操作は、この操作が実際にはユーザーに直接に表示されないという意味で、「舞台裏で」行われ得ることに留意されたい。例えば、矢印の動き、および表示ボックス210内のコンテンツのスクロールは、アプリケーションのいずれのデスクトップウインドウ内でも現れないことが可能である。そうではなく、表示アダプター206は、ユーザーがキーボードまたはマウスを介して与えた可能性があるのと同一の種類のコマンドをアプリケーションが受け取っているとアプリケーションが信じるような仕方で、アプリケーションの入力バッファを単に操作する。
【0021】
[0027]アプリケーションのコントロールを操作することにより、表示アダプター206は、基礎をなすコンテンツ110の様々な部分を表示することができる。例えば、コンテンツ110がテキストを含む場合、ピクセル216は、何らかのフォントで描かれたそのテキストの文字を表すピクセルである。コンテンツ110が画像を含む場合、ピクセル216は、それらの画像を表すピクセルである。
【0022】
[0028]表示アダプター206がピクセル216を収集すると、表示アダプター206は、それらのピクセルを使用して代用の文書218を作成する。代用の文書218は、その文書218が、ユーザーがアプリケーションインスタンス202を用いて表示しようと試みている元のコンテンツ110の代理をするという意味で「代用」である。ユーザーが、基礎をなすコンテンツ110を表示するためにアプリケーションインスタンス202をインスタンス化していることを思い起こされたい。前述したとおり、表示アダプター206は、コンテンツ110を表すピクセルを収集するためにアプリケーションインスタンス202と対話する。次に、表示アダプター206は、ユーザーのコマンドに従うようにこれらのピクセルを構成する。例えば、ユーザーがテキストの何らかの部分を拡大することを所望することをユーザーが示している場合(拡大縮小フィーチャが表示ボックス108によってネイティブでサポートされていない場合に)、表示アダプター206が、そのテキストの拡大されたビューを作成する。この拡大されたビューを作成するために、表示アダプター206は、アプリケーションインスタンス202を使用して、ユーザーが拡大することを所望するテキストの部分を表すピクセルを収集し、次に、そのビューを適切なスケールに拡大する。この拡大されたビューが、次に、文書に入れられる。次に、表示アダプター206は、さもなければユーザーに見えることになる表示ボックスの上に(すなわち、表示ボックス108の上に)文書の画像を重ねることが可能である。通常、アプリケーションインスタンス202は、表示ボックス108を介してコンテンツ110を提示することになる。しかし、表示アダプター206が、表示ボックス108の上に代用の文書218の画像を重ねるので、ユーザーは、ユーザーがコンテンツ110を見ることを予期している場所に代用の文書218を見て、表示ボックス108内にそうする機構が存在するかのようにユーザーがコンテンツ110を拡大したという錯覚が生じる。理解され得るとおり、コンテンツ110のテキストは、表示ボックス210内と比べて、表示ボックス108内で(または、より正確には、表示ボックス108の上のオーバーレイにおいて)より大きく見えて、代用の文書218が、ユーザーに表示される、そのテキストの拡大されたビューを表すことが示される。
【0023】
[0029]図3は、元のコンテンツ110が代用の文書218でどのように置き換えられるかを示す。前述したとおり、アプリケーションインスタンス202が、通常、コンテンツ110を表示するのにインスタンス化され、コンテンツ110を、アプリケーションは、表示ボックス108を介してユーザーに表示する。しかし、表示アダプター206が使用される場合、表示アダプターは、表示ボックス108の上に代用の文書218の画像を重ねて、コンテンツ110の代わりに(コンテンツ110と表示ボックス108の間の線の上の「××」の印によって示されるとおり)代用の文書が見られるようにする。代用の文書218のコンテンツは、表示アダプター206によって制御される。表示アダプター206は、コンテンツ110からそれらのピクセルを収集するようにアプリケーションインスタンス202を制御することによって表示アダプター206によって収集されたピクセル216で代用の文書218を埋める。このため、ユーザーが表示ボックス108内のコンテンツを見る際、ユーザーは、元のコンテンツ110ではなく、表示アダプター206が代用の文書218に入れたコンテンツを見ている。このようにして、表示アダプター206は、コンテンツ110の外観を、表示アダプター206が、このコンテンツを何らかの仕方で収集することができる限り、ユーザーのコマンドに従ってユーザーに表示するように拡大する、縮小する、またはそれ以外で変換することができる。表示アダプター206は、表示アダプター206が代用の文書218に入れることを所望するピクセルを収集するように、アプリケーションを「駆動する」ことによって、前述したとおり、コンテンツを収集する。
【0024】
[0030]図4は、或る表示機能(例えば、拡大縮小)がアプリケーションに与えられ得る例示的なプロセスを流れ図の形態で示す。図4の説明に入る前に、本明細書に含まれる流れ図(図4および図5の両方における)が、例として、図1図3に示される構成要素を参照して説明されるものの、これらのプロセスは、任意のシステムにおいて実行されることが可能であり、図1図3に示されるシナリオには限定されないことに留意されたい。さらに、図4および図5における流れ図のそれぞれが、ブロックをつなぐ線によって示されるとおり、或る特定の順序でプロセスの段階が実行される実施例を示すが、これらの図に示される様々な段階は、任意の順序で、または任意の組合せもしくは部分的組合せで実行され得る。
【0025】
[0031]402で、アプリケーションが開始される。例えば、ユーザーが、前述したブラウザプログラムを呼び出すことが可能であり、さらにそのブラウザを使用して、ブラウザウインドウ内で表示ボックスを提供するアプリケーションにアクセスすることが可能である。404で、表示ボックス内のスクロールバーが検出される。例えば、表示ボックスは、垂直スクロールだけしか提供しないことが可能であり、その場合、垂直スクロールバーが検出される。また、前述したとおり、表示ボックスは、垂直スクロールバーと水平スクロールバーの両方を提供することも可能であり、さらにこれらのスクロールバーの両方が検出されることが可能である。
【0026】
[0032]スクロールバーの検出は、様々な仕方で実行され得る。一例において、表示ボックスを提供するアプリケーションが、表示ボックス、および表示ボックスのスクロールバーの位置を示すメタデーター406を提供することも可能である。別の例において、表示ボックス、および/または表示ボックスのスクロールバーを検出するために、表示ボックスが現れるユーザーインターフェースに対して観察的な検出408が実行され得る。この観察的な検出が実行され得る1つの方法は、以下のとおりであり、さらに図5に示される。まず、ユーザーがマウスボタン(またはタッチパッドなどの、他の何らかのタイプのポインティングデバイス上のボタン)をクリックしたことが検出される(502で)。次に、マウスボタンのクリックに続いて、そのクリックの結果、スクリーン上で何も生じていないことが検出される(504で)。次に、ユーザーがマウスを動かし始めたことが検出される(506で)。次に、マウスの動きに応答してスクロールが生じたこと、すなわち、ユーザーがマウスを動かすと、スクリーン上の何かがスクロールし始めることが検出される(508で)。この一連のアクションは、観察されるアクションが、ユーザーがサムを操作したことと合致しているので、ユーザーがマウスを使用して、スクロールバーのサムを操作したことを示す傾向にある。これらの観察を使用して、表示ボックスおよびサムの位置が推測される。
【0027】
[0033]次に図4に戻ると、412で、アプリケーションが、ユーザーがアプリケーションを使用して表示していた元のコンテンツを消費する。例えば、ユーザーが、アプリケーションを使用してコンテンツ110(図1に示される)を表示することを意図している場合、アプリケーションは、コンテンツ110を消費する。アプリケーションは、表示アダプター206(図2に示される)の指示の下でコンテンツ110を消費することが可能である。表示アダプターが、コンテンツ110のビューを導いている間、表示アダプターは、文書からピクセルを収集する(414で)。416で、表示アダプターは、それらのピクセルを代用の文書に入れる。418で、代用の文書からのコンテンツが、アプリケーションの表示ボックスの上に重ねられて、アプリケーションが、その代用の文書からのコンテンツをユーザーに表示しているように見えるようにされる。例えば、表示アダプターは、アプリケーションにおける表示ボックスの位置の上にオーバーレイを作成することが可能であり、さらにそのオーバーレイにおいて代用の文書からのコンテンツを表示することが可能である。
【0028】
[0034]表示アダプターがアプリケーションを使用してピクセルを収集する際、表示アダプターは、様々な仕方で、様々なキューに応答してそうすることが可能であることに留意されたい。例えば、表示アダプターは、ユーザーによる特定のアクションに応答して、基礎をなすコンテンツからピクセルを収集することが可能である。つまり、ユーザーが縮小を要求した場合、表示アダプターは、アプリケーションを使用して、基礎をなすコンテンツを操作し、さらにいくつかの表示ボックス分のピクセルを収集して、いくつかのボックス分のコンテンツの縮小されたビューがユーザーに表示され得るようにすることが可能である。しかし、別の例において、表示アダプターは、ユーザーが何を求めるかを予期しようと試みる。例えば、ユーザーが或る方向で(例えば、右に)コンテンツをパンしている場合、表示アダプターは、ユーザーがその方向にコンテンツをパンし続けるものと想定することが可能であり、したがって、ユーザーがそこまで実際にパンする前に、ユーザーが近い将来の何らかの時点でその方向にさらにパンするという予測に基づいて、その方向の先のコンテンツの部分を収集しようと試みることが可能である。さらに、表示アダプターは、ユーザーがコンテンツの同一の位置で拡大すること、または縮小することを予期して、様々な詳細レベルで基礎をなすコンテンツからのピクセルを格納することが可能である。例えば、ユーザーが、或る文書における或る特定の位置にパンし、その後、パンすることを止めた場合、ユーザーは、その位置で拡大する、または縮小する可能性があり、したがって、表示アダプターは、ユーザーがその位置で実際に拡大する、または縮小することを予期して、いくつかの異なる拡大縮小レベルでその文書の画像を構築することが可能である。システムは、しばらくの間、異なる拡大縮小レベルにおけるコンテンツの様々な異なるビューを格納することが可能であり、格納されたビューが近い将来に使用される可能性が低いことが予期される場合には、格納されたビューをフラッシュすることもできる。まだ発行されていないユーザーコマンドを予期してコンテンツのビューを事前計算することにより、ビューが要求された後にビューを迅速に提供することができることによってパフォーマンスの感覚を高めることが可能である。さらに、近い将来に使用される可能性が低いと表示アダプターが考えるビューをフラッシュすることにより、それらのビューを格納するのに使用されるスペースの量が低減される。
【0029】
[0035]図6は、本明細書で説明される主題の様態が展開され得る例示的な環境を示す。
[0036]コンピューター600は、1つまたは複数のプロセッサー602と、1つまたは複数のデーター記憶構成要素604とを含む。プロセッサー602は、通常、パーソナルデスクトップコンピューターもしくはパーソナルラップトップコンピューター、サーバー、ハンドヘルドコンピューター、または別の種類のコンピューティングデバイスに見られるマイクロプロセッサーのようなマイクロプロセッサーである。データー記憶構成要素604は、短期間、または長期間、データーを格納することができる構成要素である。データー記憶構成要素604の例には、ハードディスク、リムーバブルディスク(光ディスクおよび磁気ディスクを含む)、揮発性RAM(ランダムアクセスメモリー)および不揮発性RAM、ROM(読み出し専用メモリー)フラッシュメモリー、磁気テープなどが含まれる。データー記憶構成要素は、コンピューター可読記憶媒体の例である。コンピューター600は、CRT(陰極線管)モニター、LCD(液晶ディスプレイ)モニター、または他の任意のタイプのモニターであり得るディスプレイ612を備える、またはそのようなディスプレイ612に関連付けられることが可能である。
【0030】
[0037]ソフトウェアが、データー記憶構成要素604の中に格納されることが可能であり、さらに1つまたは複数のプロセッサー602上で実行されることが可能である。そのようなソフトウェアの例が、図1図5に関連して前述した機能の一部、またはすべてを実施することが可能なビュー適応ソフトウェア606であるが、任意のタイプのソフトウェアが使用され得る。ソフトウェア606は、例えば、分散システム、別々のファイル、別々の機能、別々のオブジェクト、別々のコード行などにおける構成要素であり得る1つまたは複数の構成要素を介して実施され得る。プログラムがハードディスク上に格納され、RAMにロードされ、さらにコンピューターのプロセッサーによって実行されるパーソナルコンピューターが、図6に示されるシナリオの典型を示すものの、本明細書で説明される主題は、この例に限定されない。
【0031】
[0038]本明細書で説明される主題は、データー記憶構成要素604の1つまたは複数の中に格納され、プロセッサー602の1つまたは複数の上で実行されるソフトウェアとして実施され得る。別の例として、主題は、1つまたは複数のコンピューター可読記憶媒体上に格納された命令として実施され得る。(光ディスクまたは磁気ディスクなどの実体のある媒体が、記憶媒体の例である。)そのような命令は、コンピューターまたは他のマシンによって実行されると、そのコンピューターまたは他のマシンに方法の1つまたは複数の動作を実行させることが可能である。これらの動作を実行する命令は、1つの媒体上に格納されることも、複数の媒体にわたって散在させられることも可能であり、したがって、命令のすべてが同一の媒体上に存在することがあるかどうかにかかわらず、1つまたは複数のコンピューター可読記憶媒体上にひとまとまりとして現れることが可能である。
【0032】
[0039]さらに、本明細書で説明される任意の動作が(図に示されるか否かにかかわらず)、方法の一部としてプロセッサー(例えば、プロセッサー602の1つまたは複数)によって実行され得る。このため、動作A、B、およびCが本明細書で説明される場合、A、B、およびCの動作を備える方法が実行され得る。さらに、A、B、およびCの動作が本明細書で説明される場合、プロセッサーを使用してA、B、およびCの動作を実行することを備える方法が、実行され得る。
【0033】
[0040]1つの例示的な環境において、コンピューター600が、ネットワーク608を介して1つまたは複数の他のデバイスに通信するように接続され得る。構造的にコンピューター600と同様であり得るコンピューター610が、コンピューター600に接続され得るデバイスの例であるが、他のタイプのデバイスが接続されることも可能である。
【0034】
[0041]主題は、構造上の特徴、および/または方法上の動作に特有の言葉で説明されてきたものの、添付の特許請求の範囲において規定される主題は、前述した特定の特徴または動作に必ずしも限定されないことを理解されたい。むしろ、前述した特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示される。
図1
図2
図3
図4
図5
図6