(57)【要約】任意のソフトウェアアプリケーションのビジュアル出力を表示するための、ディスプレーを含むコンピュータシステムもしくは計算装置。表示画面の一部分の拡大された描画を選択表示する、コンピュータ実装の方法は、コンピュータシステムもしくは計算装置上で実行される。この方法によって、ユーザーは、拡大する表示画面の一部分を選択できる。その後、表示画面のその部分の拡大された描画を表示する。拡大された描画は、その下にある拡大元のコンテンツの機能的な特徴と対話式の特徴を保持している。本方法は、また、拡大された描画における拡大の程度を制御する、設定可能な手段も提供しうる。本方法は、その下にある拡大元のコンテンツ内の周囲をパンするために、拡大された描画を使用することを許す。
2009537903.tif 000002
【特許請求の範囲】
【請求項１】
拡大信号に応じて、表示画面の一部分を選択的に拡大するための、コンピュータに実装される方法であって、
ディスプレーコンテキストを決定するステップと、
前記ディスプレーコンテキストの拡大画像に対する前記表示画面上の位置を決定するステップであって、前記位置が前記表示画面上の選択位置と関係している、ステップと、
前記拡大画像に対するサイズと拡大係数を決定するステップと、
決定された前記位置、決定された前記サイズ、および決定された前記拡大係数を用いて、前記拡大画像を表示するステップであって、ここで、前記拡大画像が、前記ディスプレーコンテキストの機能的な特徴を有している、ステップと、
を含む、方法。
【請求項２】
前記拡大画像を表示するステップの間に、第一の信号を検出するステップと、
前記第一の信号を検出するステップに応じて、前記拡大画像に対する前記拡大係数を増加して、決定された前記サイズ、決定された前記位置、および、増加された前記拡大係数、を用いて前記拡大画像を再度表示するステップと、をさらに含む、請求項１の方法。
【請求項３】
前記拡大画像を表示するステップの間に、第二の信号を検出するステップと、
前記第二の信号を検出するステップに応じて、前記拡大画像に対する前記拡大係数を減少して、決定された前記サイズ、決定された前記位置、および、減少された前記拡大係数、を用いて前記拡大画像を再度表示するステップと、をさらに含む、請求項２の方法。
【請求項４】
前記拡大画像を表示するステップの間に、第三の信号を検出するステップと、
前記第三の信号を検出するステップに応じて、前記拡大画像の表示を終了するステップと、
をさらに含む、請求項３の方法。
【請求項５】
前記拡大画像を表示するステップの間に、新しい表示状態を提供するために、前記表示の状態の変化を検出するステップと、
前記表示の前記状態の変化を検出するステップに応じて、前記新しい表示状態に従う前記拡大画像に対する、前記サイズと、前記位置と、および、前記拡大係数を、再度決定するステップと、
前記拡大画像を再度表示するステップと、
をさらに含む、請求項４の方法。
【請求項６】
ディスプレーコンテキストを決定する前記ステップが、
決定された前記ディスプレーコンテキストを見せている前記表示画面の一部分の上にカーソルを置くために、ポインティングデバイスを使用するステップ、
を含む、請求項１の方法。
【請求項７】
前記ディスプレーコンテキストの拡大画像に対する、前記表示画面上の位置を決定する前記ステップが、
前記表示画面上の前記ディスプレーコンテキストの位置を決定するステップと、
前記表示画面上の前記選択位置として、前記ディスプレーコンテキストの前記位置を使用するステップと、
を含む、請求項１の方法。
【請求項８】
拡大信号に応じて、表示画面の一部分を選択的に拡大するように構成されたシステムであって、
処理構成要素と、
前記処理構成要素に接続された表示画面と、
前記処理構成要素に接続され、前記処理構成要素によって実行される拡大プログラムを格納するデータ記憶構成要素と、を含み、
前記拡大プログラムが、
ディスプレーコンテキストを決定するように、
前記ディスプレーコンテキストの拡大画像に関する前記表示画面上の位置を決定し、ここで、前記位置が、前記表示画面上のポインタの位置と関連するように、
前記拡大画像に対するサイズと拡大係数を決定するように、
決定された前記位置、決定された前記サイズ、および、決定された前記拡大係数を用いて、前記拡大画像を表示し、ここで、前記拡大画像が、前記ディスプレーコンテキストの機能的な特徴を有するように、
構成される、
システム。
【請求項９】
前記処理構成要素によって実行される前記拡大プログラムが、
前記拡大画像を表示している間に、第一の信号を検出するように、
前記第一の信号の検出に応じて、前記拡大画像に対する前記拡大係数を増加し、決定した前記サイズ、決定した前記位置、および、増加した前記拡大係数を用いて、前記拡大画像を再度表示するように、
さらに構成される、請求項８のシステム。
【請求項１０】
前記処理構成要素によって実行される前記拡大プログラムが、
前記拡大画像を表示する間に、第二の信号を検出するように、
前記第二の信号の検出に応じて、前記拡大画像に対する前記拡大係数を減少し、決定した前記サイズ、決定した前記位置、および、減少した前記拡大係数を用いて、前記拡大画像を再度表示するように、
さらに構成される、請求項９のシステム。
【請求項１１】
前記処理構成要素によって実行される前記拡大プログラムが、
前記拡大画像を表示する間に、第三の信号を検出するように、
前記第三の信号の検出に応じて、前記拡大画像の表示を終了するように、
さらに構成される、請求項１０のシステム。
【請求項１２】
前記処理構成要素によって実行される前記拡大プログラムが、
前記拡大画像を表示する間に、新しい表示状態を提供するために、前記表示の状態の変化を検出するように、
前記表示の前記状態における変化の検出に応じて、前記新しい表示状態に従って前記拡大画像の前記サイズ、前記位置、前記拡大係数を再度決定し、前記拡大画像を再度表示するように、
さらに構成される、請求項１１のシステム。
【請求項１３】
ポインティングデバイスをさらに含み、ここで、前記処理構成要素によって実行される前記拡大プログラムが、決定される前記ディスプレーコンテキストを見せている、前記表示画面の一部分の上にカーソルを置くように前記ポインティングデバイスを使用することで、前記ディスプレーコンテキストを決定する、ように構成される、請求項８のシステム。
【請求項１４】
前記処理構成要素によって実行される前記拡大プログラムが、前記表示の拡大画像に対する前記表示画面上の位置を、
前記表示画面上の前記ディスプレーコンテキストの位置を決定することによって、
且つ、前記表示画面上の選択位置として、前記ディスプレーコンテキストの前記位置を使用することによって、
決定するように構成される、請求項８のシステム。
【請求項１５】
コンピュータで読み取り可能な媒体であって、前記媒体のコンテンツが、コンピュータシステムに、
ディスプレーコンテキストを決定するステップと、
拡大画像に対する、前記表示画面上の位置を決定するステップと、
前記拡大画像に対する、サイズと拡大係数を決定するステップと、
決定された前記位置、決定された前記サイズ、決定された前記拡大係数を用いて、前記拡大画像を表示するステップであって、ここで、前記拡大画像が、前記ディスプレーコンテキストの機能的な特徴を有している、ステップと、
を実行することによって、拡大信号に応じて、表示画面の一部分を選択的に拡大させる、前記コンピュータで読み取り可能な媒体。
【請求項１６】
前記コンピュータで読み取り可能な媒体の前記コンテンツが、さらに、コンピュータシステムに、
前記拡大画像を表示している間、第一の信号を検出させ、
前記第一の信号の検出に応じて、前記拡大画像に対する前記拡大係数を増加させ、決定された前記サイズ、決定された前記位置、および増加された前記拡大係数を用いて、前記拡大画像を再度表示させる、請求項１５のコンピュータで読み取り可能な媒体。
【請求項１７】
前記コンピュータで読み取り可能な媒体の前記コンテンツが、さらに、コンピュータシステムに、
前記拡大画像を表示している間、第二の信号を検出させ、
前記第二の信号の検出に応じて、前記拡大画像に対する前記拡大係数を減少させ、決定された前記サイズ、決定された前記位置、および減少された前記拡大係数を用いて、前記拡大画像を再度表示させる、請求項１６のコンピュータで読み取り可能な媒体。
【請求項１８】
前記コンピュータで読み取り可能な媒体の前記コンテンツが、さらに、コンピュータシステムに、
前記拡大画像を表示している間、第三の信号を検出させ、
前記第三の信号の検出に応じて、前記拡大画像の表示を終了させる、請求項１７のコンピュータで読み取り可能な媒体。
【請求項１９】
前記コンピュータで読み取り可能な媒体の前記コンテンツが、さらに、コンピュータシステムに、
前記拡大画像を表示している間、新しい表示状態を提供するために、前記表示の状態の変化を検出させ、
前記表示の前記状態の変化の検出に応じて、前記新しい表示状態に従って前記拡大画像に対する、前記サイズ、前記位置、前記拡大係数を再度決定させ、前記拡大画像を再度表示させる、請求項１８のコンピュータで読み取り可能な媒体。
【請求項２０】
前記コンピュータで読み取り可能な媒体の前記コンテンツが、さらに、コンピュータシステムに、決定される前記ディスプレーコンテキストを見せている、前記表示画面の一部分の上にカーソルを置くようにポインティングデバイスを使用させる、請求項１５のコンピュータで読み取り可能な媒体。
【請求項２１】
前記コンピュータで読み取り可能な媒体の前記コンテンツが、さらに、コンピュータシ
ステムに、
前記表示画面上の前記ディスプレーコンテキストの位置を決定させ、
前記ディスプレーコンテキストの前記位置を、前記表示画面の前記選択位置として使用することによって、
前記ディスプレーコンテキストの拡大画像に対する、前記表示画面上の位置を決定させる、請求項１５のコンピュータで読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ表示画面もしくは計算装置表示画面上にコンテンツを表示するためのコンピュータソフトウェアに係る。具体的には、本発明は、表示画面の一部分の拡大図を選択表示するためのコンピュータソフトウェアに係る。
【背景技術】
【０００２】
近年、コンピュータ、計算装置、および関連する周辺機器は、絶えず改良され続けている。例えば、実際すべてのコンピュータおよび計算装置は、電子回路の小型化が進んだことにより、より小さく、より軽くなっている。ディスプレー画面を含む、そのような装置に関連する周辺機器もまた、同様により小さくなっている。これらディスプレー画面は、物質的により小さくなる一方で、表示解像度にもまた、劇的な増大が見られる。
【０００３】
画像素子（“画素”）密度がこのように増加すると、表示画面上に表示されているものを効率的に見ることが、人々にとって困難となる状況がありえる。そして視覚障害を持つ人々が、そのような表示画面と関連するコンピュータや装置を使用できなくなったとしてもおかしくはない。正常な視力を持つ人々にとってさえ、見づらければ面倒で苛立たしいわけなので、コンピュータもしくは計算装置での生産性や楽しみに深刻な影響が出てくることになる。
【０００４】
従来技術のコンピュータシステムとその関連するアプリケーションは、しばしば、表示画面の一部分を拡大もしくはズームする機能を備えている。マイクロソフトウィンドウズ（Ｒ）オペレーティングシステムのバージョンには、例えば、「Ｍａｇｎｉｆｉｅｒ」（拡大鏡）と呼ばれるプログラムを含んでいるものがある。Ｍａｇｎｉｆｉｅｒのなどの従来技術の方法は、いくつか欠点がある。例えば、Ｍａｇｎｉｆｉｅｒは、ポインタの下にあるものは何でも拡大して表示するので、画面の一部分が常に占有されることになる。画面スペースがこういうふうに割り当てられると、拡大されていないコンテンツの表示に使用可能な画面解像度の量が減ってしまう。さらに、拡大表示領域のサイズが固定されるので、表示の全ての関連部分を同時に拡大することはできない。またＭａｇｎｉｆｉｅｒでは、ユーザーが拡大コンテンツと直接情報をやり取りすることができない。拡大表示領域内は「ｌｉｖｅ」ではなく、例えば、拡大されたボタンは作動しない。それらはクリックすることはできても、そのクリックの結果として何も起こらない。最後に、拡大画像の一部分と、画面上に表示される画像との間の空間的関係は、維持されない。例えば、拡大ビューウィンドウが、表示画面の上部にあり、画面下部の画像の一部分が拡大のために選択される場合、画面下部の画像のこの選択された部分は画面の上部に拡大された状態で現れる。Ｍａｇｎｉｆｉｅｒなどの従来技術の方法は拡大率の値を変更する機能を備えるが、それらは面倒なメニューベースのシステムを介してのみ動作する。拡大率の設定を変更するためには、ユーザーはメニューをたどっていって、別の拡大率のプリセットレベルを選ばなくてはいけない。そしてその拡大率はもう一回設定し直さないかぎりそのままとなる。Ｍａｇｎｉｆｉｅｒおよび類似した従来技術の方法は、コンピュータに単純な固定拡大倍率のルーペを演じさせているのと大差ないのである。
【０００５】
その他の従来技術のソフトウェアアプリケーションには、そのソフトウェアによって表示されたコンテンツをズームもしくは拡大するいくつかの機能を含んだものがある。例えば、Ａｄｏｂｅ  Ｒｅａｄｅｒ  ６．０はユーザーが、開いたＰＤＦ文書の表示拡大率を変更することを許す。Ｒｅａｄｅｒ  ６．０のメニューよりズームオプションを選択した後、ポインタのアイコンは、ルーペの形に変わる。ユーザーは拡大したい文書の範囲をポ
イントし、ボタンをクリックする。するとこのＰＤＦ文書の描画は拡大され、且つ、アプリケーションウィンドウの描画領域内で再度中心合わせ（センタリング）される。描画の拡大率が増しても、拡大して得られる描画のサイズと位置は常に同じである。さらに、Ｒｅａｄｅｒ  ６．０内のそのような拡大鏡機能は、ＰＤＦ文書コンテンツのみでの使用に限られる。すなわち、このアプリケーションウィンドウの描画領域を除いては、このＲｅａｄｅｒ  ６．０アプリケーションウィンドウの他の部分もしくは何か他のウィンドウ内のコンテンツは、この機能では拡大されない。ユーザーがＲｅａｄｅｒ  ６．０のツールバーもしくはメニューのいずれかを拡大するための機能が無いため、これらは重大な欠点である。さらに、ＰＤＦ文書全体を拡大することによって、拡大することが望まれていない文書の部分もまた拡大されてしまい、それゆえ、文書のその他の部分が表示画面の外に出てしまう。
【０００６】
別のクラスの従来技術のソフトウェアアプリケーションは、本質的にトリミングのように機能する拡大方法を使用する。例えば、マイクロソフト（Ｒ）のＳｔｒｅｅｔｓ ａｎｄ Ｔｒｉｐｓ（‘Ｓｔｒｅｅｔｓ’）は、地図を見るためのソフトウェアアプリケーションである。Ｓｔｒｅｅｔｓを起動すると、このアプリケーションは通常、このアプリケーションウィンドウの描画領域に、西半球の地図を表示する。ユーザーは、マウスやその他のポインタを使用して、選択する一部領域を取り囲むボックスを描き、選択した一部領域の内側をマウスボタンでクリックすることで、この表示の一部領域をズームインすることができる。そうしてこの選択された一部領域は、アプリケーションウィンドウの描画領域に合わせて拡大され、一方、選択された領域の外側にある領域は、ビュー外へと実質的にはじきだされる。Ａｄｏｂｅ  Ｒｅａｄｅｒ  ６．０と同様に、拡大される描画の大きさと位置は固定される。また、Ａｄｏｂｅ  Ｒｅａｄｅｒ  ６．０と同様に、ＳｔｒｅｅｔｓおよびそのＳｔｒｅｅｔｓの表示画面の一部分を拡大する方法は、Ｓｔｒｅｅｔｓのツールバー、メニュー、もしくは、何か他のアプリケーションの何らかの部分、のいずれかに対しては機能しない。
【０００７】
それゆえ、表示画面の任意の部分、および全ての部分を知的に拡大しつつ、拡大されたコンテンツと情報をやり取りする機能を保持する改良された拡大方法が必要である。そのような方法は、好ましくは、倍率を変更する分かりやすく迅速な手段を提供するとなお良い。理想的には、この方法は、また、拡大された描画範囲内の下にあるコンテンツのパンニングを自動的に可能にする。
【発明の開示】
【０００８】
本発明は、コンピュータシステムおよびその他の計算装置を使用する際に、表示画面の拡大される部分を選択表示するためのシステムとコンピュータ実装方法とを対象とする。典型的なコンピュータシステムと計算装置は、一般的に様々な種類の情報とグラフィックを表示する手段を備えている。ある特定のコンピュータオペレーティングシステムおよびソフトウェアアプリケーションは、表示画面のいくつかの部分領域の拡大されたもしくはズームされたバージョンを表示する限定された手段しか提供しない。それらのオペレーティングシステム、およびアプリケーションは、例えば、拡大された描画と直接情報をやり取りする機能を、ユーザーに全く提供しない。本コンピュータ実装方法は、表示画面のいくつかの部分の拡大される描画を選択し、表示する強化された手段を提供する。画面ポインタの位置を基に、本方法は、画像ポインタの下および周りの領域で、表示画面のコンテンツとコンテキストとを、自動的に決定する。随意に、本方法は、画面ポインタの下および周りのウィンドウではなく、現在最前面にあるウィンドウを拡大する。本方法は、コンテンツの拡大されたバージョンを表示するために、そのようなコンテンツに関する情報を使用する。その際、本方法は、下にあるコンテンツおよびコンテキストの機能的特徴を保持する拡大画像を提供する。本方法はまた、拡大される描画の拡大率係数を対話式に増加もしくは減少する設定可能な手段も提供する。本方法はまた、拡大される描画範囲内の下にあるコンテンツの自動パンニングも可能にする。提供される方法は、従って、コンピュータシステムおよび、その関係するアプリケーションの使い勝手とアクセスのしやすさを大幅に強化する。
【発明を実施するための最良の形態】
【０００９】
本発明の実施形態は、表示画面の一部分を選択表示するためのシステムと方法を提供する。本発明の特定の実施形態の多くの具体的な詳細が、そのような実施形態の十分な理解を提供するために、以下の記述と、図１から６ｂで説明される。しかしながら、本発明が更なる実施形態を有し得、もしくは、本発明は、以下に記載する詳細な説明のうちのいくつかを除いて実施され得ることが、当業者には理解されるだろう。
【００１０】
図１は、その中で本発明の実施形態を実装し得るコンピュータシステム１００の例を図解する。本発明については、オペレーティングシステムに実装される実施形態に関するものとして、もしくはコンピュータ上で実行する独立した（スタンドアロン）のアプリケーションとして記載をしてはいるのだが、他のプログラムモジュールと組み合わせて実装してもよいことが当業者には分かるだろう。一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、ＤＬＬ、プラグイン、アプレット、およびデータ構造などを含み、特定のタスクを行い、もしくは、特定の抽象データ型を実装する。本発明が、例えば、携帯電話、個人用デジタル補助装置（ＰＤＡ）、または、その他のマイクロプロセッサベース、もしくは、プログラム可能な家庭用電化製品などの携帯用デバイス、ひいてはマルチプロセッサシステム、小型コンピュータ、ならびにメインフレームコンピュータなどを含む、その他のコンピュータシステム構成に実装され得ることを、当業者はさらに理解するだろう。
【００１１】
コンピュータシステム１００は、メモリ／バスインターフェース１１２を介して、ホストメモリ１０８と接続されるプロセッサ１０４を含む。メモリ／バスインターフェース１１２は、ＩＳＡ（ｉｎｄｕｓｔｒｙ  ｓｔａｎｄａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ）バス、もしくは、ＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）バスなどの拡張バス１１６と接続される。コンピュータシステム１００はまた、拡張バス１１６とメモリ／バスインターフェース１１２を介してプロセッサ１０４に接続される、キーパッド、マウス、もしくは、携帯用スタイラスなどの１つ以上の入力装置１２０を含む。この入力装置１２０は、オペレータもしくは電子装置が、データをコンピュータシステム１００に入力することを可能にする。プロセッサ１０４によって生成される出力データを供給するために、１つ以上の出力装置１２０が、プロセッサ１０４に接続される。出力装置１２４は、拡張バス１１６とメモリ／バスインターフェース１１２を介してプロセッサ１０４に接続される。出力装置１２４の例には、プリンター、および、オーディオスピーカーを駆動するサウンドカードが含まれる。記憶媒体（図示せず）にデータを記憶するために、もしくは、記憶媒体からデータを取り出すために、１つ以上のデータ記憶装置１２８が、メモリ／バスインターフェース１１２と拡張バス１１６を介してプロセッサ１０４に接続される。記憶装置１２８および記憶媒体の例には、固定ディスク装置、フロッピーディスクドライブ、テープカセット、および、コンパクトディスク読み出し専用メモリードライブなどが含まれる。
【００１２】
コンピュータシステム１００は、さらに、拡張バス１１６とメモリ／バスインターフェース１１２を介してプロセッサ１０４に接続される、グラフィック処理システム１３２を含む。随意に、グラフィック処理システム１３２は、他の種類のアーキテクチャを介して、プロセッサ１０４とホストメモリ１０８に接続されても良い。例えば、グラフィック処理システム１３２にホストメモリ１０８へのダイレクトメモリアクセス（ＤＭＡ）ができるように、グラフィック処理システム１３２を、メモリ／バスインターフェース１１２と、ＡＧＰ(アクセラレイティッドグラフィックスポート）などの高速バス１３６と、を介して接続されてもよい。すなわち、高速バス１３６とメモリバスインターフェース１１２は、グラフィック処理システム１３２が、プロセッサ１０４を介すること無しに、ホストメモリ１０８に対して読み出しと書き込みができるようにする。それゆえ、データは、拡張バス１１６を通るよりも速い転送速度で、ホストメモリ１０８に、およびホストメモリ１０８から、転送され得る。ディスプレー１４０は、グラフィック画像を表示するために、グラフィック処理システム１３２に接続される。ディスプレー１４０は、ブラウン管（ＣＲＴ）、電界放出ディスプレー（ＦＥＤ）、液晶ディスプレー（ＬＣＤ）および、これらをタッチパネルに改良したものなどの、どんな種類のディスプレーであってもよく、これらは、一般にデスクトップコンピュータ、携帯用コンピュータ、ならびに、ワークステーションもしくはサーバーアプリケーションに使用される。
【００１３】
図２は、図１のコンピュータシステム１００に使用されるプロセッサ１０４をプログラムするのに使用することが可能な、本発明の一実施形態の高レベルフロー図２００を図解する。表示の一部分を拡大する前に、ユーザーは表示の拡大したい部分をポイントする。これは通常、マウスやその他の入力装置を、ユーザーが拡大したい範囲の上にマウスポインタを置くように使用することによって達成される。その後、ステップ２０４で、ユーザーがある種のキーの組み合わせを押した際、もしくは、画面の拡大に関係するいくつかのほかの動作を開始した際に、拡大が始まる。当業者には理解されるように、別の実施形態では、このイベントを逆順に行ってもかまわない。例えば、ＰａｌｍＰｉｌｏｔ（Ｒ）などのタッチスクリーン対応ＰＤＡ上に実装された本発明の実施形態では、ユーザーが最初にプログラムの実行を開始することを必要とし、その後、携帯スタイラスを用いて、画面の適切な位置をタップする。本発明の別の実施形態では、設定はシステムのレジストリに保存され、もしくは、他の適切な位置に保存され、マウスポインタの下の表示領域ではなく、現在最前面にあるウィンドウに拡大を開始する。
【００１４】
ここまで、１つもしくは複数のキーが押されるという前提で説明をしてきたが、新型マウスの特定の設定可能なボタンのうちの１つをユーザーが押した時に拡大を開始してもよい。タッチスクリーンの場合は、拡大は、所定の定義された一連のスクリーンタップもしくは他の入力手段を介して同じように開始され得る。しかしながら、図２の用途においては、ユーザーは、拡大したい表示の部分をポイントし、その後、前もって決められた１つもしくは複数の拡大キーを押すことが、理解されるだろう。
【００１５】
２０４において拡大キーが押されてから、本発明の実施形態はディスプレーコンテキストを決定する。ディスプレーコンテキストは、ユーザーが拡大したい表示の矩形部分であって、ポインタの真下にある領域のグラフィックコンテンツに関する情報だけでなく、表示領域内のポインタの位置に関する情報も含む。しかしながら、円などの異なる形を有する表示の部分も、ディスプレーコンテキストに使用され得る。ポインタの真下の領域は、例えば、画像などの純粋なグラフィックコンテンツを含むことが可能であり、もしくは、ユーザーがアプリケーションと情報をやり取りする上で必要となるダイアログボックスやその他のウィンドウを含むこともできる。このディスプレーコンテキストの決定は、後の図４の記述においてより詳細に説明される。
【００１６】
２０８において、ディスプレーコンテキストは、ポインタがダイアログボックスの上にあるかどうかを最初にテストすることによって、決定される。ダイアログボックスは、ユーザーによるサイズ変更を認めない、特別な種類のウィンドウでる。ダイアログボックスのサイズ変更が不適切に行われてしまうとダイアログ内の制御もしくは重要な情報が隠されてしまうことになるため、そのようなサイズの変更を認めないことが重要なときがある。ポインタがダイアログボックスの上にある場合、ディスプレーコンテキストは、ポインタの下にあるダイアログボックスであるということとその位置が決定される。プログラムフローは、それから、ダイアログボックスウィンドウを拡大する準備をするために２２０へと続く。ポインタがダイアログボックスの上に無い場合は、２１２にて、ポインタがグラフィックアイテムの上にあるかどうかを決定するために、さらにもう１つチェックをされる。２０８と２１２におけるこのテストの順番は、ダイアログボックス内にあるグラフィックアイテムを、拡大ルーチンが決して拡大しないことを確かにする。グラフィックアイテムは、例えば、ＪＰＥＧ、ＧＩＦ、ＴＩＦＦ、ＢＭＰ、ＰＣＸ、ＰＣＤ、ＰＩＣＴ、ＰＮＧ、ＴＧＡ、もしくはＩＣＯなどの、どんな種類のグラフィック画像であってもよく、これらは一般に使用されるデジタル画像種類であって、コンピュータや計算装置によって表示することが可能である。グラフィックアイテムは、また、スプレッドシートのチャートのようなダイナミックアイテムであることも可能である。ズームユーティリティーは、ユーザーインターフェースで働くアイテムの役割を決定するために、マイクロソフトアクセシビリティＡＰＩを使用する。２１２において、ポインタが、グラフィックアイテムの上にあると決定された場合、ディスプレーコンテキストは、そのグラフィックアイテム自体であると決定され、またポインタによって選択されたその位置が決定され、その後、プログラム実行は２１６へと続く。２１２において、グラフィックアイテムの上で無いと決定された場合は、その後、ディスプレーコンテキストは、ポインタの下において、アプリケーションウィンドウであると決定され、そして、ポインタによって選択されたその位置が決定される。その場合には、プログラム実行は２２０へと続く。
【００１７】
２１６におけるグラフィックアイテム、もしくは２２０におけるダイアログボックスのいずれかを拡大するための準備は、多くの同じタスクを含む。いずれの場合においても、画面の関係のある部分矩形の画素が決定され、コピーされる。２１６において、画面のこの矩形部分は、グラフィックアイテムの性質に従って、および、通常はそのアイテムの境界ボックスに対応して決定される。ダイアログボックスの場合には、２２０における準備で、部分矩形に、そのウィンドウ自体の境界範囲を設定する。いったん拡大される部分矩形が決定されると、ハードウェアビデオオーバーレイが、拡大画像を表示するために作成される。当業者には理解されるように、ハードウェアビデオオーバーレイを使うと、画像を計算し維持するために図１に示されるようなグラフィック処理システム１３２の機能を利用するので、ＣＰＵが解放されるため、好ましい。さらに、ハードウェアビデオオーバーレイは、ウィンドウイング／オペレーティングシステムとは無関係に動作するので、拡大されるウィンドウに関係するソフトウェアアプリケーションのパフォーマンスに害をなすような、拡大に関する副次的な影響が無い。ハードウェアビデオオーバーレイをサポートしていないあまり高度化していないグラフィック処理システムを有するシステムであっても、低性能であるにもかかわらず本発明の実施形態を実装するために使用することができる。
【００１８】
拡大されたグラフィックアイテムは、元のグラフィックアイテムを単に拡大したバージョンであり、このようなアイテムは、そのビジュアルコンテンツのみを表示される。視覚性の向上のためにはアイテムを単に拡大するだけでよく、さらにグラフィックアイテムを操作したり、情報をやり取りしたりする必要はない。ディスプレーコンテキストが、ダイアログボックス、もしくは他のウィンドウである場合は、その後、本発明の実施形態は、ダイアログボックスもしくはウィンドウ全体を拡大し、さらに一方で同時に、拡大されたダイアログボックスもしくはウィンドウを操作することおよび拡大されたダイアログボックスもしくはウィンドウと情報をやり取りすることを許す。２２０におけるウィンドウを拡大するための準備は、さらに、そのウィンドウの拡大された描画を「ｌｉｖｅ」に維持しながらそのウィンドウを拡大するのに必要な動作を含む。ウィンドウもしくはグラフィックアイテムのいずれかを拡大するための準備は、また、拡大画像が持つべきサイズと位置の仮決定を必要とする。拡大画像の位置は、いくつかの要素によって決定される。最も典型的には、拡大画像の位置は、拡大される表示の矩形部分の上に中心を置かれる。しかしながら、そのような位置をとるのが不可能なときもある。例えば、グラフィックアイテムが、表示画面のエッジの非常に近くに位置する場合には、その位置を中心とした拡大画像を表示すると、拡大画像の一部分が画面の１つ以上のエッジからはみ出してしまう。その場合には、エッジの影響による画像のあらゆるそのようなロスを避けるために、ポインタの位置のできるだけ近くの位置に拡大画像がくるように決定される。ダイアログボックスもしくはウィンドウのこの位置の決定は、同じ様に行われる。
【００１９】
拡大画像のサイズもまた、グラフィックアイテムもしくはウィンドウのいずれかを拡大する準備の際に決定される。グラフィックアイテムの場合には、そのアイテムの拡大バージョンのサイズは通常、背景のある程度の見やすさを維持するために、いくらか比較的小さい係数によって拡大される。例えば、とても小さなグラフィックアイテムを、画面全体を占めるように拡大しても、そのコンテキスト内のグラフィックアイテムが見えるようにはならず、画像全体の描画がひどくゆがんでしまう可能性がある。最初は、グラフィックアイテムを、比較的小さな拡大係数で描画することが一般に好ましい。この実施形態では、プログラムで決定される初期拡大係数に関して記載されるが、別の実施形態では、ユーザーがデフォルトの拡大係数を設定してもよい。あるいはディスプレーコンテキストとしてウィンドウを用いる場合、このルーチンは通常にウィンドウの拡大される描画範囲の最小化を試みる。ディスプレーコンテキストが、グラフィックアイテムであろうとウィンドウであろうと、画像の拡大係数は、より詳細に以下で記述されるように、ユーザーによって、何時でも変更され得る。このディスプレーコンテキストが、ダイアログボックス、もしくは他のウィンドウである場合は、そのようなダイアログボックスの拡大された表示は、その拡大された状態において完全に機能的な状態のままであることを理解することが重要である。すなわち、ダイアログボックスはここで拡大された状態で表示されているが、全てのボタン、メニュー、オプション、およびテキストフィールドなどは、完全に機能的なままである。ユーザーは、まるで拡大されていないかのように、拡大されたダイアログボックスと直接情報をやり取りすることができる。
【００２０】
図３は、「ウィンドウを拡大するための準備」ルーチン２２０をより詳細に図解する。３００において、選択された、もしくは、アクティブなウィンドウの全体が画面上にあるかどうかのテストを有する、準備が開始する。これが真でない場合は、ウィンドウは、３０４においてオンスクリーンするように再配置される。ウィンドウが完全にスクリーン上にあることを確かにした後で、実行は、選択されたウィンドウが最前面ウィンドウであるかどうかのテストを有する３０８に続く。再び、このウィンドウが最前面にない場合は、ルーチンは、ウィンドウを３１２において最前面へともっていき、その後、フローは３１６へと続く。ルーチンは、３１６において選択されたウィンドウがダイアログボックスであるかどうかを決定する。３１６において、ルーチンが、このウィンドウはダイアログボックスでは無いと決定した場合、ルーチンは拡大画像に対する初期サイズを計算し、それから、３２０において、この画像が、表示画面に収めるには幅が広すぎるかどうかを決定する。画像が大きすぎた場合は、拡大画像の初期サイズは、３２４において拡大された後でその表示に合うように、再計算され、プログラムフローは３３０へと続く。初期画像の計算されたサイズが許容できる場合も、実行は同じ様に３３０へと続く。なおダイアログボックスは通常、表示画面のサイズに対して比較的大きく、表示画面に合うようにそのようなダイアログボックスをリサイズしても、初期の拡大はわずかになるか、もしくは全くなされないことになる。したがって、ダイアログボックスは、このリサイズ動作から除かれる。
【００２１】
拡大するための準備は、３３０において、ポインタが、拡大されるウィンドウの内側に今あるかどうかの決定を続ける。これが真で無い場合は、３３４において、ポインタはそのウィンドウの中心へと移される。最後に、これら準備が完了した後で、ハードウェアオーバーレイが作成されて配置され、初期拡大画像はそれによって、この前もって計算された位置に、この前もって計算された拡大係数を用いて表示される。プログラム制御は、その後、拡大画像の管理のために、拡大ルーチン２２４に移動する。
【００２２】
示してはいないが、グラフィックアイテムを拡大するための準備は、２２０のウィンドウを拡大するための準備とほとんど同じである。しかしながら、グラフィックアイテムの場合は、３１６において、ウィンドウがダイアログボックスであるかどうかを決定する必要がない。同様に、ルーチン３２０と３２４に関連する論理も必要ない。
【００２３】
図４は、拡大ルーチン２２４をより詳細に図解する。本発明の一実施形態において、拡大ルーチン２２４はループを含む。このループには、ウィンドウが閉じられているかどうかのテストを有する４０４において入る。１度目にこのループに入った際は、４０４から４２０におけるそれぞれのテストは、通常、通る必要がなく、偽であり、プログラムフローは４２８へと抜ける。ループを通る次の繰り返しの際に、４０４から４２０におけるテストは、以下により詳細に記述されるように、異なる動作を生じる。ループのこの１度目のトラバース（ｉｎｉｔｉａｌ  ｔｒａｖｅｒｓａｌ）において、拡大画像に実行される更新は無く、フローは４３２へと続く。
【００２４】
拡大ループは、ユーザーが、拡大キーを二回押したかどうかのテストを有する４３２に続く。そのような場合には、拡大画像の表示は４５６において、停止する。拡大キーが押されていない場合は、ルーチンは、４３６において所望の拡大係数に変更するためのテストをすることで、継続する。
【００２５】
先に述べたように、拡大画像の表示の間に、ユーザーは、拡大画像の拡大係数を増加もしくは減少させることができる。拡大係数の増加もしくは減少を制御するために、通常、２つのホットキーが設定される。例えば、ホットキーは、キーボードのＣｔｒｌキーを押したまま、上向き矢印キーを押すことで拡大係数が増加するように、また同じように、Ｃｔｒｌキーを押したまま、下向き矢印を押すことで拡大係数が減少するように、設定されてもよい。当業者には理解されるように、これら拡大係数の信号を伝えるためにその他の手段を使ってもよい。例えば、マウスホイール、スクロールホイール、ジョグホイール、もしくはジョグダイアルなどを、拡大画像が表示されている間に、拡大係数を変更するために使用することができる。本発明のこの実施形態では、４３６において、ユーザーによって開始された拡大係数への変更を検出する。そのような変更が検出された場合は、変化の量に関する情報（例えば、スクロールホイールのクリック回数、および／もしくは、キーを押した回数）が、拡大画像のサイズと位置を再度決定するために、４２４に戻って送られ、その後、フローは前と同じ様に続く。４２４において、サイズと位置が再度決定された後で、拡大画像の更新のために、プログラムフローは４２８へと続く。拡大画像は、４２８において、新しいサイズ、新しい位置を用いて、そして拡大係数の変更に従って、再度表示される。いくつかの例では、拡大画像へのその他の更新が必要であってもよく、これらは４２８において同じ様に実行できる。
【００２６】
本発明の一実施形態は、拡大画像の下にあるコンテンツの自動パンニングを備える。図３の説明で論じられたように、ウィンドウを拡大するための準備の終わりに、しかしながら、拡大画像を表示する直前に、ポインタはウィンドウの中心へと移動される。それゆえ、拡大されたコンテンツの初期表示の際に、ポインタは拡大された描画内に現れる。ユーザーが、拡大画像の境界の外側にマウスポインタを移動しようとした場合、拡大ルーチン２２４は、４２８において、拡大画像を自動的に更新する。この更新は、ウィンドウの下から拡大される新しい部分矩形を選択することによって行われる。この新しい矩形は、既存の部分矩形と同じサイズであるが、マウスが動いた方向にシフトしている。例えば、ユーザーが、ポインタを拡大画像の最上部の境界へ動かしたと仮定する。拡大ルーチンは、４２８において、ポインタの境界への接近を検出し、下にあるコンテンツの選択された部分矩形を上へ移動する。この動作は、拡大画像の４つの境界それぞれに同様に当てはまり、この拡大ルーチンは、そのコンテンツの境界までの、下にあるコンテンツの至る所をパンニングすることを可能にする。いったんこの新しい部分矩形が決定されると、その画素は既に述べたようにコピーされ、ハードウェアオーバーレイが更新され、それによって、パンされた画像が再表示される。
【００２７】
拡大画像が、４２８において更新された後、拡大係数の変化もしくはパンニングのためのどちらかによって、フローは通常、４３２と４３６を通ってステップ４０４へ戻るよう続き、そこで、表示の状態が変更されているかどうかを決定するために、４０４から４２０の一連のテストが実行される。そのような変更は、任意のいくつかの方法で行われ得る。表示状態の最終チェックの間、拡大画像と関連するウィンドウは閉じられていても、隠されていても、最小化されていてもよく、フォーカスを喪失していてもよく、または、移動されていても、および／もしくはリサイズされていてもよい。先に簡単に述べたように、ループの最初のトラバーサルの間、通常これらのイベントは起こらない。４０４、４０８、４１２、４１６および４２０に示されるテストの次にされる説明において、ウィンドウの状態を変更についてのテストに関して論じられるが、このテストは、ディスプレーコンテキストが、グラフィックアイテムである場合にも、同様に、ダイアログボックスもしくは他のウィンドウである場合にも、どちらの場合にも実行されることが理解されるだろう。ディスプレーコンテキストがグラフィックアイテムであった場合は、このテストは、グラフィックアイテムが位置する場所にあるウィンドウ上で実行される。ディスプレーコンテキストがダイアログボックスもしくはその他のウィンドウである場合は、このテストはダイアログボックス上で、もしくは、そのウィンドウ自体の上で実行される。
【００２８】
最初のテストは、ウィンドウが閉じられているかどうかを決定するために、４０４において実行される。ウィンドウが閉じている場合、以下により詳細に記載されるように制御は４４０へ移動する。ウィンドウが閉じられていない場合は、プログラム実行は、ウィンドウが隠されているかどうかのテストを有する４０８へと続く。ウィンドウはいかなる理由で隠されてもよい。最も典型的には、新しいウィンドウが、拡大ウィンドウの上面に開かれていて、拡大ウィンドウが覆い隠されて見えなくなっているいる。ウィンドウが隠される場合は、制御は４４０へ移動し、さもなければ制御は４１２へと下方へ移る。プログラムフローは４１２に続き、ここで、ウィンドウが最小化されているかどうかを決定するために、テストが実行される。ほとんどすべての場合、ユーザーが手動でそうしたことにより、ウィンドウは最小化されている。ウィンドウが最小化されている場合は、拡大ルーチンは４４０に続く。さもなければ、フローは、ウィンドウがフォーカスを喪失しているかどうかをテストするために４１６上へと続く。新しいウィンドウが開かれて、ユーザーがそのウィンドウに直接入力をする場合、ウィンドウはフォーカスを喪失する。これはいくつかの理由で起こり得る。例えば、ユーザーは、ソフトウェアアプリケーション内の１つもしくは複数のメニューオプションを選択可能で、これは、ダイアログボックスを表示させる。ウィンドウがフォーカスを喪失していない場合は、ウィンドウが移動しているか、もしくは、リサイズされているかどうかの最後のテストが、４２０において実行される。
【００２９】
４１６において、ウィンドウがフォーカスを喪失していると決定された場合、フローは４４８に分岐し、ここで、実行されるテストは、新しいウィンドウが、同じアプリケーションによって所有されているかどうかを決定するために行なわれる。このテストは、例示により特に理解することができる。ユーザーがソフトウェアアプリケーションを起動中であり、そのアプリケーションのダイアログボックスが拡大されているとする。先に述べたように、ダイアログボックスは、その拡大された状態で完全に機能的であり、ユーザーは、まるで拡大されていないかのようにダイアログボックスと情報をやり取りすることができる。さらに、ユーザーが、ダイアログボックス内で、新しいダイアログボックスもしくはウィンドウを開かせるいくつかの動作を、開始するとする。前のダイアログボックスがまだ見えるように、新しいダイアログボックスを開いた場合、この新しいウィンドウは今フォーカスされており、一方で、古いウィンドウはフォーカスを喪失している。古いウィンドウは閉じられておらず、隠されておらず、最小化されてもいないので、拡大ループは、このウィンドウがフォーカスを喪失したことを４１６において検出し、４４８にあるテストに制御を移す。４４８におけるテストは、現在フォーカス状態にあるウィンドウが、フォーカス状態にあったウィンドウのものと同じアプリケーションによって所有されているかどうか、もしくは、同じアプリケーションを起動しているかどうかを決定する。我々の例示のこれまでの所では、この新しいダイアログボックスは、実際に、同じアプリケーションの一部として実行されている。このため、表示の先の拡大状態が、４５２においてセーブされ、今フォーカス状態にある新しいウィンドウが代わりに拡大される。表示の先の拡大状態をセーブする場合、先にフォーカス状態にあったダイアログボックスに関する拡大情報が保存される。この情報は通常は、拡大画像の位置ならびにそのサイズ、および／または、拡大係数に関する情報を含んでいる。当業者には理解されるように、そのような情報を保存する、および、取り出すための、きわめて自然な抽象データ型は、スタックである。この実施形態では、スタックに関して記載されるが、本発明の他の実施形態では、他の抽象データ型を使用してもよいことが、理解されるだろう。セーブされた拡大状態は、以下でより詳細に記載されるように、後で４４０と４４４において使用される。表示の先の拡大状態をセーブした後で、新たに開かれたダイアログボックスは、４５２において、その位置とサイズを決定することにより拡大され、その後、４２８において表示画像を更新する。プログラムフローは、先に記載されてきたように、それから４３２に続く。新しいウィンドウが、先のウィンドウと同じアプリケーションによって所有されていない場合は、拡大ルーチンは４５６において終了し、拡大画像は、表示から取り除かれる。
【００３０】
セーブされた拡大状態は、ユーザーが、現在拡大されているウィンドウとの情報のやり取りを終了した際、例えば、そのウィンドウを閉じた場合に、後で使用される。そのような拡大状態がセーブされていることを仮定すると、現在表示されている拡大画像に関連する現在のウィンドウが閉じられているか、隠されているか、もしくは、最小化されている場合、拡大ルーチンはそれらを、４０４、４０８、もしくは４１２において、それぞれ検出し、制御を４４０へと移す。４４０において、拡大ルーチンは、スタックにセーブされた拡大状態があるかどうかを決定する。それらの状態が存在する場合は、４４４において、それらをスタックから取り出して、その状態と関連する拡大画像を、セーブされたサイズと位置を用いて再度表示する。その時、プログラム制御は、４０４にある拡大ルーチンのメインループに戻る。４４０において、拡大状態がスタックに保存されていないと決定された場合、その後、拡大ルーチンは、４５６において終了し、拡大画像が表示から取り除かれる。
【００３１】
図５ａは、グラフィック画像５０４を含む典型的なウェブページを表示しているウェブブラウザアプリケーションのスクリーンショット５００を図解する。先により詳細に述べたられたように、グラフィック画像５０４は、実際上どんな種類のグラフィック画像であってもよい。
【００３２】
図５ｂは、典型的なウェブページを表示しており、図５ａに示されるグラフィック画像５０４の拡大されたバージョン５１２を見せている、ウェブブラウザアプリケーションのスクリーンショット５０８を図解する。先の概略のように、グラフィックアイテムは、比較的に小さな初期拡大係数を用いて拡大される。こうすると、ウェブページ全体のコンテキスト内でグラフィックアイテムが見やすくなる。
【００３３】
図６ａは、典型的なダイアログボックスウィンドウ６０４を表示している文書処理アプリケーションのスクリーンショット６００である。
【００３４】
図６ｂは、ダイアログボックス６０４の拡大バージョン６０８を表示している文書処理
アプリケーションのスクリーンショット６０２である。先に述べたように、拡大画像は完全に「ｌｉｖｅ」であり、ユーザーは拡大されたダイアログボックスと直接情報をやり取りできる。例えば、網掛けについてのドロップダウンボックス（Ｆｉｅｌｄ  ｓｈａｄｉｎｇ  ｄｒｏｐｄｏｗｎ  ｂｏｘ）６１２は、選択することが可能で、そのオプションは変更され得る。同様に、タブ文字についてのチェックボックス（Ｔａｂ  ｃｈａｒａｃｔｅｒ  ｃｈｅｃｋｂｏｘ）６１６も設定、もしくは、クリアされ得る。また、先に論じられたように、ダイアログボックスは、ダイアログボックスがほぼ表示範囲全体を使用するように、比較的大きな係数を用いて拡大されている。ダイアログボックスは大抵複雑であり、多くの入力オプションを含み得るために、通常はそうした初期拡大係数が好ましい。そのような状況では、拡大されたダイアログボックスの見易さと使い勝手は、最重要である。また、ダイアログボックスの動作コンテキスト（ｏｐｅｒａｔｉｎｇ  ｃｏｎｔｅｘｔ）は大抵、グラフィックアイテムのものよりも重要性は薄い。
【００３５】
本発明は開示された実施形態に関連して説明されてきたが、本発明の趣旨と範囲から逸脱することなく、形態や細部に変更が成されてもよいことが、当業者には分かるだろう。そのような変形物は、十分当該技術分野の通常の技術の範囲内である。従って、本発明は、添付の請求項によるものを除いては限定されない。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態を実施するコンピュータシステムのブロック図である。
【図２】本発明の一実施形態の高レベルフロー図である。
【図３】図２に示される高レベルフロー図の「ウィンドウを拡大するための準備」サブルーチンのフロー図である。
【図４】拡大ルーチンの一実施形態のフロー図である。
【図５ａ】グラフィック画像を含む典型的なウェブページを表示しているウェブブラウザアプリケーションのスクリーンショットである。
【図５ｂ】典型的なウェブページを表示しており、且つ、図５ａに示されたグラフィック画像の拡大バージョンを見せているウェブブラウザアプリケーションのスクリーンショットである。
【図６ａ】典型的なダイアログボックスウィンドウを表示している文書処理アプリケーションのスクリーンショットである。
【図６ｂ】図６ａに示されるダイアログボックスの拡大バージョンを表示している文書処理アプリケーションのスクリーンショットである。
【図１】
2009537903.tif 000003
【図２】
2009537903.tif 000004
【図３】
2009537903.tif 000005
【図４】
2009537903.tif 000006
【図５ａ】
2009537903.tif 000007
【図５ｂ】
2009537903.tif 000008
【図６ａ】
2009537903.tif 000009
【図６ｂ】
2009537903.tif 000010
【国際調査報告】
2009537903.tif 000011