(57)【特許請求の範囲】
【請求項１】
コンピュータ・ディスプレイ上のカーソルの位置を制御するシステムであって、
ユーザの制御の下で、前記コンピュータ・ディスプレイ上の前記カーソルの所望の移動に対応する電気信号を生成するカーソル制御デバイス、
前記コンピュータ・ディスプレイ上の前記カーソルの現在位置に対応する位置データを記憶するカーソル記憶領域、
前記コンピュータ・ディスプレイ上のコントロールの位置に対応する位置データを記憶するコントロール記憶領域、
前記電気信号に反応して、前記コンピュータ・ディスプレイ上の前記カーソルの位置を制御する、第１及び第２の直交する移動方向にそれぞれ対応する第１及び第２の制御信号を生成し、かつ、前記コンピュータ・ディスプレイ上の前記カーソルの前記第１及び第２の直交する移動方向にそれぞれ対応する第１及び第２の位置補正信号であって、前記第１及び第２の制御信号にそれぞれ加えられ、前記カーソルの現在位置と前記コントロールの位置との間の距離に依存した大きさ及び前記コントロールの位置に実質的に向かう方向を有し、前記コントロールの位置に向かって前記カーソルを移動させるような第１及び第２の直交する補正ベクトルをそれぞれ含むような第１及び第２の位置補正信号を生成するカーソル位置手段、および
前記第１及び第２の制御信号に前記第１及び第２の位置補正信号をそれぞれ加えて、前記コントロールの位置に向かって前記カーソルを移動させるように、前記コントロールの位置の近傍にある前記カーソルの現在位置に応じて前記制御信号を変更する変更手段、
を含むシステム。
【発明の詳細な説明】
【０００１】
【技術分野】
この発明は、一般に、コンピュータの表示スクリーン上のカーソルを制御するシステムおよび方法に関する。
【０００２】
【発明の背景】
コンピュータは、職場と家庭で共通のものになってきている。初期のコンピュータ・システムでは、コンピュータを効率的に操作するために、コンピュータのプログラミングについて広範囲の知識が必要であった。最近のコンピュータは、コンピュータ・サイエンスの正式な背景がない者にも、簡単に使用できるように設計されてきている。マイクロソフト社のWindows （ウィンドウズ）オペレーティング・システムのようなオペレーティング・システムは、コンピュータの使用経験がほとんどない人または全くない人にとっても、コンピュータを使用できるグラフィカルな環境を提供する。したがって、コンピュータの操作はより簡単になってきており、その使用はより普及してきている。
【０００３】
コンピュータがより一般的なものとなるにしたがい、重要なこととして、コンピュータの使用者がコンピュータをより簡単に操作できなければならないことが挙げられる。例えば、マウス、トラックボール等のカーソル・ポインティング・デバイスの使用により、コンピュータに接続されたビジュアル・ディスプレイ上にあるカーソルの簡単な操作が可能となる。しかしながら、マウスによってカーソルを移動させることでさえ、効率的でない状況もある。したがって、ビジュアル・ディスプレイ上でのカーソルのポインティングを簡単にするための、コンピュータ・ディスプレイ上におけるカーソルのポインティングを制御するシステムおよび方法が強く要求されている。
【０００４】
【発明の概要】
本発明は、コンピュータ・ディスプレイ上のカーソルの位置を制御するシステムにおいて具体化される。第１の記憶領域は、コンピュータ・ディスプレイ上の第１のスクリーン・ディスプレイにおけるカーソルの第１の位置に対応した位置データを記憶する。変更手段は、ある方法により、前記第１のスクリーン・ディスプレイを変更して、第２のスクリーン・ディスプレイを生成する。前記第２のスクリーン・ディスプレイは、コンピュータ・ウィンドウのオープン、アプリケーション・プログラムの起動、またはメニュー・アイテムの選択の結果により、生成されてもよい。第２の記憶領域は、前記第２のスクリーン・ディスプレイにおけるカーソルの少なくとも第１の意図された（予定された）位置に対応する位置データを記憶する。配置手段は、前記第２のスクリーン・ディスプレイの生成に応じて、前記第２のスクリーン・ディスプレイにおける前記第１の位置にカーソルを置く。
【０００５】
一実施例において、前記第２の記憶領域は、前記第２のスクリーン・ディスプレイにおけるカーソルの複数の意図された位置に対応する位置データを記憶する。さらに、システムは、前記複数の意図された位置の一つを、前記第２のスクリーン・ディスプレイにおける前記第１の位置として選択する選択手段を含む。前記選択手段は、前記意図された位置を選択するために、フラグ・ビットを使用してもよい。選択的に、前記選択手段は、コンピュータ・ディスプレイ上に表示された複数のオブジェクトのサイズおよび形に基づいて、前記意図された位置を決定してもよい。
【０００６】
システムは、コンピュータが前記第１のスクリーン・ディスプレイに戻ったときに、前記第１のスクリーン・ディスプレイの前記第１の位置にカーソルを置く再配置手段をさらに含む。
【０００７】
前記第２のスクリーン・ディスプレイは、複数のユーザ選択可能なオプションに対応する、コンピュータ・ディスプレイ上の複数の予め定められた位置を含んでいてもよい。前記第２のスクリーン・ディスプレイは、前記複数の予め定められた位置の一つに対応する、前記第２のスクリーン・ディスプレイにおける前記第１の位置を有する。システムは、一つの予め定められた位置を、前記第２のスクリーン・ディスプレイにおける前記第１の位置として、ユーザに選択させることを認めるユーザ選択可能手段をさらに含んでいてもよい。選択的に、システムは、前記予め定められた位置の一つを、前記第２のスクリーン・ディスプレイにおける前記第１の位置として自動的に選択する自動選択手段を含むこともできる。この自動選択を、前記予め定められた位置の以前行われた選択に基づいて行うこともできる。選択的に、前記自動選択手段は、前記一つの予め定められた位置についての以前行われた複数の選択に基づいて、予め定められた位置を選択するものでもよい。これらの以前行われた複数の選択は、時間により重み付けされた平均により与えられるものであって、前記予め定められた位置を、前記第２のスクリーン・ディスプレイにおける前記第１の位置として指定されるように決定するものであってもよい。
【０００８】
選択的な実施例においては、コンピュータ・ディスプレイ上のカーソルの位置を制御するシステムは、カーソルの位置データをコンピュータに入力する入力手段、ディスプレイにおけるカーソルの意図されたユーザのデスティネーションを予測する予測手段、および前記意図されたユーザのデスティネーションを予測する予測手段に基づいて、前記意図されたユーザのデスティネーションにカーソルを置く配置手段を含んでいる。前記配置手段は、カーソルの位置データを調べてカーソルの移動方向を決定することにより、前記意図されたユーザのデスティネーションを予測し、かつ、カーソルの移動方向がユーザ選択可能なオプションとほぼ一致しているかどうかを判定する。前記ユーザ選択可能なオプションは、カーソルの移動方向がこのユーザ選択可能なオプションとほぼ一致している場合に、意図されたユーザのデスティネーションとして指定される。
【０００９】
他の選択的な実施例において、システムは、カーソルがコントロールの近傍に存在するときに、前記カーソル制御デバイスの感度を変更する。この感度の変更は、カーソル制御デバイスの与えられた移動単位の距離が、カーソルがコントロールの近傍に存在しないときよりも小さくなるように行われる。これにより、ユーザは、コントロール上にカーソルを容易に置くことができる。
【００１０】
さらに他の実施例において、システムは、カーソルがコントロールの近傍に存在するときに、コントロールに向かってカーソルを移動させる補正信号を決定する。この補正信号は、カーソル制御信号に加えられるベクトルの形態を取ってもよい。この補正ベクトルの大きさは、一定値であってもよいし、コントロールの位置とディスプレイ上のカーソルとの間の距離に依存したものであってよい。選択的な実施例において、補正信号の大きさは、コントロールの相対重要度に依存する。コントロールは、相対重要度の値を有するものとして指定される。補正信号は、相対的に高い重要度の値を有するコントロールに向かってカーソルを移動させる傾向にある。
【００１１】
【実施例】
本発明は、ユーザに、従来技術によるシステムが要求するものよりも少ないマウスの物理的移動により、コンピュータにコマンドを入力させるものである。以下の説明は、マウスに関するものであるが、本発明の原理が、他のカーソル・ポインティング・デバイス（例えば、トラックボール、ジョイスティックおよびキーボード）にも同様に適用可能であることは容易に分かるであろう。パーソナル・コンピュータからメインフレーム・コンピュータに至るあらゆるコンピュータに、本発明を容易に組み込むことができる。
【００１２】
本発明は、ユーザ・コマンドに応じて、コンピュータのビジュアル・ディスプレイ上の予め定められた位置に自動的にカーソルを置く（配置する）ものである。Windows オペレーティング・システムのようなグラフィカルな環境において、ウィンドウがオープンまたはクローズされるごとに、本発明は、コンピュータ・ディスプレイ上の予め定められた新しい位置にカーソルを置くことができる。新しいウィンドウがオープンしたとき、または、メニューがコンピュータ・ディスプレイに表示されたときに、本発明は、カーソルの新しい位置を決定し、その位置にカーソルを自動的に置く。ウィンドウがクローズしたとき、または、メニュー選択がユーザによって行われたときに、本発明は、新しいウィンドウのオープン前またはメニューの選択前の位置にカーソルを戻す。本発明は、ウィンドウ環境に制限されるものではなく、コンピュータ・ディスプレイにグラフィカルなウィンドウを表示しないコンピュータ・システムにおいても機能する。ウィンドウのオープン、ウィンドウのクローズ、メニューの表示等により引き起こされる、コンピュータ・ディスプレイ上の任意の変化は、コンピュータ・ディスプレイの変更とみなすことができ、本発明によって含まれるものである。
【００１３】
本発明は、図１のブロック図に示すシステム10に具体化される。中央処理装置（ＣＰＵ）12は、以下に示す分析機能を実行する。ＣＰＵ12は、多くの周知の装置の任意のものでよい。システム10はメモリ14を含んでいる。メモリ14は、ランダム・アクセス・メモリ（ＲＡＭ）および読出し専用メモリ（ＲＯＭ）を両方を含むことができる。コンピュータ・ビジュアル・ディスプレイ16（例えば、ＬＥＤまたはＣＲＴディスプレイ）も、システム10に含まれている。ディスプレイ16は、一般に、２つの直交する次元に配置されたピクセルの配列を含み、２次元ディスプレイを形成する。この配列の各ピクセルの位置を示すために、Ｘ−Ｙ座標が用いられる。ディスプレイ16は、システム10がラップトップ・コンピュータに組み込まれているような場合には、システム10の構成部分であってもよいし、また、スタンド・アロン装置であってもよい。
【００１４】
また、システム10は、ディスプレイ16上に生成されるカーソルの位置を制御するカーソル制御デバイス18を含んでいる。カーソル制御デバイス18には、マウス、ジョイスティック、トラックボール、キーボード等が含まれる。本発明は、カーソル制御デバイス18の特定の形態に制限されるものではない。カーソル制御デバイス18は、カーソルの所望の移動を示す電気信号を生成する。ＣＰＵ12は、カーソル制御デバイス18からの電気信号を解釈し、これに従って、現在位置記憶領域24を変更する。カーソル制御デバイス18がマウス、トラックボール等の場合に、ディスプレイ16の２次元に対応する２つの直交次元における、カーソル制御デバイス18の移動に対応する電気信号として、一般に２つのものがある。カーソル制御デバイス18からの電気信号は、ＣＰＵ12によって、ディスプレイ16のＸ−Ｙ座標に対応するカーソル制御信号に変換される。
【００１５】
システム10は、カーソル感度記憶領域19も含んでいる。カーソル感度記憶領域19は、カーソル制御デバイス18の移動量をディスプレイ16上のカーソルの移動量に関連づける感度値を有する。一般に、ユーザは、カーソル制御デバイス18の移動についての、２つの直交する次元（すなわち、Ｘ−Ｙ座標）に対する感度値を選択する。ＣＰＵ12は、カーソル制御デバイス18からの電気信号とカーソル感度領域19の感度値の双方を使用して、カーソル制御信号の値を決定する。感度値が相対的に高い場合には、感度値が低い場合よりも、カーソル制御デバイス18の与えられた一単位の移動に対して、カーソルはより大きく移動する。一般に、ユーザは、直交する両次元（すなわち、Ｘ−Ｙ次元）に対する感度値を選択する。
【００１６】
システム10は、コマンド入力デバイス20も含んでいる。このコマンド入力デバイス20は、カーソル制御デバイス18のボタンであってもよいし、キーボード（図示略）のボタンであってもよい。システム10は、カーソル制御デバイス18またはキーボード（図示略）の第２ボタンのような第２コマンド入力デバイスを含んでいてもよい。ユーザは、ディスプレイ16の所望の位置にカーソルを置き、コマンド入力デバイス20を押し、ディスプレイの選択された位置に関連した、コンピュータのコマンドを起動させることができる。システム10の様々な構成要素が、バス22に接続される。バス22は、データ信号だけでなく、電力を運ぶこともできる。
【００１７】
システム10の現在位置記憶領域24は、ディスプレイ16上のカーソルの現在位置に対応するカーソル制御信号（すなわち、Ｘ−Ｙ座標）を有する。現在位置記憶領域24はメモリ14の一部であってもよい。ディスプレイ16の内容が変更されると、システム10は、変更されたディスプレイに関連した新しいカーソル位置を決定し、現在位置記憶領域24にその新しい位置を記憶する。新しいカーソル位置の決定および現在位置記憶領域24の更新に先立ち、システム10は、カーソルの現在位置を戻り位置記憶領域26に記憶する。これにより、ディスプレイ16の内容がその以前の状態に戻るときに、システム10は、以前の位置にカーソルを戻すことができる。戻り位置記憶領域26は、メモリ14の一部であってもよい。例えば、システム10は、Windows オペレーティング・システムのようなオペレーティング・システムとともに使用されてもよい。新しいウィンドウ（例えば、ダイアログ・ボックス・ウィンドウ）がオープンされると、システム10は、カーソルの現在位置を戻り位置記憶領域26に保存する。そして、新しいウィンドウがクローズされ、以前のウィンドウが再オープンされると、システム10はカーソルをその以前の位置に戻す。Windows オペレーティング・システムのようなグラフィカルな環境においては、新しいウィンドウがクローズしたときに、前のウィンドウが自動的に再オープンする。さらに別の新たなウィンドウがオープンされると、システム10は、オープンされている各ウィンドウの戻り位置を戻り位置記憶領域26に保存する。各ウィンドウは、そのウィンドウに関連する戻り位置および識別子（ウィンドウID）を有し、関連するウィンドウが使用されなくなると（起動終了）、カーソルを以前の位置に戻す。したがって、ユーザは、マウスの移動またはトラックボールの操作によってディスプレイ16上のカーソル位置を手動で変化させる必要なく、複数のウィンドウから選択肢（オプション）を選ぶことができる。
【００１８】
システム10は、コントロール・リスト記憶領域28を有する。コントロール・リスト記憶領域28は、新しいスクリーン・ディスプレイにおける可能なカーソル位置のリストを記憶する。コントロール・リスト記憶領域28の内容は、ユーザが選択できるオプションのリストに対応する。ユーザが選択できるオプションは、一つのアプリケーションから他のアプリケーションに変化してもよい。例えば、コントロール・リスト記憶領域28は、ディスプレイ16に表示されたコントロール・ボタン・アイコンまたはメニュー・アイテムのようなユーザが選択できるオプションの位置に対応するリストを有する。便利にするために、ここでは、ユーザが選択できるオプションは、それらがコンピュータ上で実行されるソフトウェアのある制御機能を実行することを示すコントロールをいうものとする。このコントロールは、ここでは説明しない周知の方法で、特定のアプリケーションによって定められる。一般に、コントロール・リスト記憶領域28のコントロールのうちの一つは、特定のアプリケーションの予め定められたデフォルト選択に対応する。Windows オペレーティング・システムのようなオペレーティング・システムでは、デフォルト選択は、フラグ・データ・ビットによって示されている。このフラグ・データ・ビットも、コントロール・リスト記憶領域28に記憶される。システム10は、コントロール・リスト記憶領域28を走査して、新しいスクリーン・ディスプレイのコントロールの一つにデフォルト選択があるかどうかを判定する。デフォルト選択がシステム10によって発見されると、システムは、そのデフォルト選択に対応する、ディスプレイ16上の位置にカーソルを置く。グラフィカルな環境（例えば、Windows オペレーティング・システム）においては、コントロールの位置は、対応するウィンドウに関連して固定されていることに注意すべきである。ウィンドウ自体がディスプレイ16上を移動されるならば、ディスプレイ上のコントロールの位置も変化して、ウィンドウに対する固定された位置関係が維持される。デフォルト選択が発見されない場合には、新たなスクリーン・ディスプレイが表示されても、システム10はカーソルを移動させない。新たなスクリーン・ディスプレイが、アプリケーション・プログラムの一部であるならば、システム10は、新たなスクリーン・ディスプレイを調べ、その新たなスクリーン・ディスプレイのいずれかのオブジェクトがコントロールに対応するかどうかを判定する。システム10は、新たなスクリーン・ディスプレイのオブジェクトのサイズと形を分析し、任意のオブジェクトがコントロールに対応するものかどうかを判定する。選択的に、グラフィカル環境（例えば、Windows オペレーティング・システム）用に記述されたアプリケーション・プログラムは、上述したように、フラグ・データ・ビットを使用してデフォルト選択を示すことができる。コントロールは、ボタン・アイコンやメニュー・アイテム等でもよいことに注意すべきである。選択的に、ユーザは、データベース・アプリケーション・プログラムのセルのようなデフォルト位置を選択することができる。ユーザがカーソル制御デバイス18の追加操作を行わことなく、付加的機能を実行できる位置に、カーソルが置かれることによ��、システム10は処理効率を改善し、カーソル移動の機能性を高める。本発明は、コントロールの特定の表示形態に制限されるものではない。
【００１９】
システム10は、ユーザが、あるスクリーン・ディスプレイに対するデフォルト選択をマニュアルで選択することを可能にしている。新しいデフォルト選択の選定は、多くの周知技術によって行うことができる。このような例の一つとして、現在の選択をデフォルト選択にするかどうかをユーザに尋ねるダイアログ・ボックスの表示がある。他の例として、カーソル制御デバイス18の第２ボタンやキーボード（図示略）のボタン等のような第２コマンド入力デバイス（図示略）の使用して、ユーザが異なる選択をデフォルト選択として選定していることを、システム10に示すものがある。新しいデフォルト選択は、上述したようにフラグ・データ・ビットでマークすることができる。
【００２０】
システム10は、以前の使用に基づいてデフォルト選択を自動的に決定するメカニズムを含んでいる。この動的適応プロセス（ダイナミック・アダプティブ・プロセス）は、ユーザがコンピュータの操作に慣れていず、デフォルト選択をマニュアルで容易に変更できない場合には、特に有効である。例えば、あるモードの処理においては、システム10は、ある特定のスクリーン・ディスプレイに対して以前使用された選択を、次にこの特定のスクリーン・ディスプレイがディスプレイ16上に表示される場合におけるデフォルト選択として指定する。デフォルト選択の自動選定を、以前の使用状況を用いた他の形態に基づいて行うこともできる。例えば、いくつかの以前の選択の平均、またはある特定のスクリーン・ディスプレイに対するいくつかの以前の選択に時間で重み付けをした平均を用いるものがある。時間で重み付けした平均を計算するときに、複数の選択の中から最も近時の選択に、より大きな重みが与えられる。この技術分野の専門家（当業者）ならば、複数のコントロールの中からのユーザの選択を最も好ましく決定するために、他の技術を使用できることが容易に分かるであろう。このような技術は、本発明に包含されるものである。システム10は、デフォルト選択にカーソルを置く。デフォルト選択は、ユーザがマニュアルで選択するか、システムが自動的に選択するか、または、ユーザ選択と自動選択を組み合わせて選択するかのいずれかによって行われる。
【００２１】
システム10の処理は、図２のフローチャートに示され、図４〜図７のサンプルのスクリーン表示を用いて以下に説明される。ユーザがコンピュータ処理を開始すると、システム10は、ユーザ・コマンドまたはシステム処理を行うソフトウェアの自動ロードによって起動される。スタート50（図２）において、ディスプレイ16は、第１のウィンドウ29を起動させる。ディスプレイ16は、カーソル30（図４の矢印）を含んでいる。ディスプレイ16は、FILEボタン32のような一または二以上のコントロールを含んでいてもよい。ユーザは、FILEボタン32の上にカーソル30を置き、コマンド入力デバイス20（図１）を押し下げることにより、FILEボタン32に関連した機能を選択する。FILEボタン32の選択に応じて、システム10は、ステップ52において、カーソル30の現在位置を戻り位置記憶領域26に格納する。上述したように、システム10は、戻り位置記憶領域26に記憶されたこのデータを使用して、ユーザがあるコントロールを選択した後または新しく起動されたウィンドウが起動終了した後に、元の位置にカーソル30を置く。
【００２２】
ステップ54において、システム10は、ユーザの選択または新しいウィンドウの起動に応じて、ディスプレイ16上のスクリーン・ディスプレイを変更する。この変更されたディスプレイを図５に示す。FILEボタン32に関連した複数のコントロールが表示されている。これらのコントロールは、コンピュータ上を実行される特定のソフトウェア・プログラムによって予め定められており、あるウィンドウから次のウィンドウに移ることにより変化することができる。図５の例では、コントロールは、NEW ボタン34、OPENボタン36およびCLOSE ボタン38を含んでいる。NEW ボタン34は、新しいファイルを生成するために使用される。OPENボタン36は、存在するファイルをオープンするために使用される。CLOSE ボタン38は、オープンしたファイルをクローズするために使用される。ステップ56において、ディスプレイ16の内容が変更されたときに、様々なコントロールがコントロール・リスト28（図１）にロードされる。ディスプレイ16上のコントロールの位置も、コンピュータ上を実行される特定のソフトウェア・プログラムによって予め定められている。図５の例では、NEW ボタン34がデフォルト選択である。
【００２３】
システム10は、コントロール・リスト28（図１）内のコントロールを順次、解析して、カーソル30が置かれる位置を選択する。判定ステップ58において、システム10は、解析されたコントロールが所望のスタイルと一致するかどうかを判定する。「所望のスタイル」とは、コントロールが有する特定の特徴をいう。上述したように、コントロール・リスト28内のコントロールのタイプは、あるコンピュータ・オペレーティング・システムから別のものへ変化する。コントロールを所望のスタイルに一致させるプロセスは、特定のオペレーティング・システム、および新しいスクリーン・ディスプレイが新しいウィンドウであるか、メニューであるか、またはアプリケーション・プログラムであるかといった他の要因に依存する。例えば、Windows オペレーティング・システムのようなソフトウェアは、上述したように、デフォルト選択に関連したフラグ・データ・ビットを有する。システム10は、このデータ・フラグ・ビットを用いて、デフォルト選択を識別する。この例では、データ・フラグ・ビットは、所望のスタイルを有するコントロールを識別する。アプリケーション・プログラムにおいて、ディスプレイ10は、デフォルト選択を識別するためのデータ・フラグ・ビットを有しないかもしれない。このような状況では、システム10は、ディスプレイ16上のデータを分析し、ボタン、メニュー・アイテムまたは他のコントロールのようなパターンを識別するように試みる。この例では、所望のスタイルは、ボタン、メニュー・アイテムまたは他のボタンのように現れるディスプレイ16上のパターンである。
【００２４】
解析されたコントロールが所望のスタイルと一致しない場合には、判定ステップ58の結果はNOとなる。この場合に、システム10は、判定ステップ60に進み、コントロール・リスト28で解析されたコントロールが、このリストの最終のコントロールであるかどうかを判定する。コントロール・リスト28のコントロールが最終のコントロールならば、判定ステップ60の結果はYES となり、システム10は、カーソル30の位置を変えることなく、ステップ62で処理を終了する（図５）。解析されたコントロールがコントロール・リスト28の最終コントロールでない場合には、判定ステップ60の結果はNOとなる。この場合に、ステップ64において、システム10は、コントロール・リスト28（図１）から次のコントロールを取り出し、判定ステップ58に戻る。
【００２５】
解析された制御が所望のスタイルと一致する場合には、判定ステップ58の結果はYES となる。この場合に、ステップ66において、システム10は、選択されたコントロールに対する位置データを取り出す。各コントロールに対する位置データは、個々のアプリケーション・プログラムによってオペレーティング・システムに与えられる。この情報は、メモリ14（図１）に記憶され、システム10によって取り出される。ステップ68において、システムは、ディスプレイ16上の選択されたコントロールの位置の中央にカーソル30を置く（図５）。図５の例では、システム10は、NEW ボタン34の中央にカーソル30を置く。システム10は、ステップ70においてカーソル30の配置処理を終了する。このように、ユーザが新しいウィンドウをオープンすると、カーソル30はデフォルト位置に自動的に位置される。図５では、ユーザはFILEボタン32を選択し、システム10はNEW ボタン34にカーソル30を自動的に置く。したがって、システム10は、オペレータが、カーソルの位置をマニュアルで移動するのに必要な時間をなくし、カーソルをマニュアルで移動するときに経験する疲労を軽減する。
【００２６】
次に、ユーザは、コマンド入力デバイス20（図１）を単に押すだけで、図５のNEW ボタン34を選択できる。ユーザが、NEW ボタン34以外のコントロールを選択したい場合に、ユーザは、マニュアルでカーソルを他の選択（例えば、CLOSE ボタン38）に移動させる（図６）。ユーザがCLOSE ボタン38を選択すると、システム10は、上述の手順に従い、図７に示すダイアログ・ボックス40を表示する。ダイアログ・ボックス40は、本質的には新しいウィンドウであり、ユーザがファイルの内容を保存したいかどうかをユーザに尋ねるメッセージを表示する。さらに、ダイアログ・ボックス40は、YES ボタン42を含んでいる。このボタンは、ファイルをクローズする前に、コンピュータにファイルの内容を保存させるものである。NOボタン44は、コンピュータがファイルを保存することなく、ファイルをクローズするものである。CANCELボタン46は、ファイルのクローズ選択をキャンセルするものである。図７の例では、YES ボタン42がデフォルト選択になっている。なぜならば、ユーザは、オープンしたファイルの何らかの変更を保存したいのが一般的だからである。ダイアログ・ボックス40がオープンされると、システム10は、YES ボタン42の中央にカーソル30を置く。ユーザがYES ボタン42を選択したいならば、ユーザは、コマンド入力デバイス20（図１）を単に押すだけで、このデフォルト選択を選択できる。そうでない場合には、ユーザは、カーソル制御デバイス18を使用して、別のコントロールにカーソル30を移動させ、コマンド入力デバイス20を押して、そのコントロールを選択する。
【００２７】
上述したように、新しいウィンドウがクローズされ、またはメニュー・アイテムが選択されると、システム10は、その以前の位置にカーソル30を戻す。ユーザが図６のCLOSE ボタン38を選択すると、コンピュータ上を実行されているソフトウェアは、NEW ボタン34、OPENボタン36およびCLOSE ボタン38を消去するようにディスプレイ16を変更する。一方、システム10は、図４に示す以前の位置（ずなわち、FILEボタン32）にカーソル30を戻さない。なぜならば、CLOSE ボタン38の選択により、ディスプレイ16（図１）は、図７に示すような別の新たなウィンドウ（ダイアログ・ボックス40）を表示するからである。したがって、ディスプレイ16は図４の表示には戻らず、カーソル30はFILEボタン32に置かれない。
【００２８】
一方、ユーザが、図７のYES ボタン42、NOボタン44またはCANCELボタン46の一つから選択を行うと、コンピュータは、ダイアログ・ボックス40をクローズし、ディスプレイ16を図４に示す表示に戻し、カーソル30はFILEボタン32上に置かれる。これは、システム10が戻り位置記憶領域26（図１）に記憶されたデータを使用して、ディスプレイ16が図４に示す表示を有するときの位置にカーソル30を戻すことから生じるものである。
【００２９】
ウィンドウをクローズするときのシステム10の処理は、図３のフローチャートに示されている。システム10は、ステップ78で現在のウィンドウ（例えば、図７のダイアログ・ボックス40）の起動解除を行う。起動解除は、図７のYES ボタン42の選択のようにユーザのオプション選択の結果として自動的に行われる、または、この技術分野の専門家に周知の方法により、ユーザがウィンドウをマニュアルでクローズする結果として行われる。
【００３０】
判定ステップ80において、システムは、現在のウィンドウのウィンドウIDと記憶されたウィンドウIDのリストとを比較し、現在のウィンドウIDが記憶されたウィンドウIDのリスト上に存在するかどうかを判定する。上述したように、ウィンドウIDおよび戻り位置は、戻り位置記憶領域26（図１）に記憶されている。現在のウィンドウIDが、記憶されたウィンドウIDのリストに存在しなければ、判定ステップ80の結果はNOとなる。この場合に、システム10は、ウィンドウの起動解除処理をステップ82で終了し、カーソル30を移動させない。ウィンドウIDが、記憶されたウィンドウIDのリストに存在するならば、判定ステップ80の結果はYES となる。この場合に、ステップ84において、システム10は、この特定のウィンドウIDに関連した戻り位置にカーソル30を置く。ステップ86において、システム10は、戻り位置記憶領域26（図１）からこのウィンドウIDおよび戻り位置を消去する。システム10は、ウィンドウのクローズ処理をステップ88で終了する。
【００３１】
システム10は、ユーザにカーソルをマニュアルで移動させることなく、いくつかオプションを高速に選択させることを可能にする。システム10の上記例は、ディスプレイ16上の一連のウィンドウに関連したものであるが、当業者ならば、本発明が、コンピュータがウィンドウの形態でデータを表示する場合に制限されるものでないことを容易に理解するであろう。
【００３２】
上記例は、新しいウィンドウのオープン、メニュー・オプションの選択等により、ディスプレイ16が変化したときに、カーソルを再配置するシステム10の使用を示している。システム10は、ディスプレイが変化しないときであっても、ディスプレイ16の予め定められた位置にカーソルを再配置することもできる。以下に詳述するように、システムは、ユーザがカーソル制御デバイス18を操作したときのカーソルの移動を分析し、カーソル移動に基づいて意図された予め定められた位置を予測する。システム10が意図された位置を予測すると、システム10は、この意図された予測位置にカーソルを自動的に配置する。例えば、ユーザが、図４に示すFILEボタン32の方向にカーソルを移動させると、システム10は、ディスプレイ16上のFILEボタン32の位置にカーソル30を自動的に置くことができる。これにより、ユーザが、実際に、意図した位置にマニュアルでカーソルを再配置するのに必要な時間が削減される。これは、ディスプレイ16上のカーソル30の現在位置が意図した位置から遠い場合、つまり、ユーザが、マニュアルで、カーソル制御デバイス18（図１）を過度に操作し、所望の位置にカーソルを移動する必要がある場合に特に有効である。
【００３３】
ディスプレイ16が変化しない場合において、システム10は、システム10が意図された位置を予測できる作動メカニズムを含んでいる。本発明のこの特徴を選択的に作動させることにより、ユーザが、ディスプレイ16の予め定められた位置の一つとは異なる位置にカーソルを単に移動させたときに、システム10が意図された予測位置にカーソルを不用意に配置することが防止される。この作動メカニズムは、意図された位置の予測を可能にするメニュー選択であってもよいし、第２コマンド入力デバイス21（図１）であってもよい。第２コマンド入力デバイス21が使用されると、カーソル制御デバイス18の操作中に、ユーザは第２コマンド入力デバイス21を押して、意図された位置の自動予測を行うことができる。続いて、システム10は、意図されたカーソル位置を自動的に予測し、この意図された予測位置にカーソルを置く。ユーザが第２コマンド入力デバイス21を押さない場合には、システム10は、意図された位置の予測を行わない。ディスプレイ16が変化したときのカーソル30の自動配置は、上述した作動メカニズムに影響されるものではない。
【００３４】
選択的に、意図された位置を常に予測するように、システム10を設計することもできる。第２コマンド入力デバイス21は、意図された予測位置にカーソルを置くようにシステム10に命令するために使用される。この場合に、システム10は、意図された予測位置を常に計算するが、自動再配置の機能が作動されないならば、意図された予測位置にカーソルを置かない。
【００３５】
システム10のこの予測を行う処理は、図８のフローチャートに示されている。ステップ100 において、ユーザは、上述した方法で予測処理を作動する。ステップ102 において、システムは、現在のカーソル位置を記憶し、メモリ14（図１）に記憶する。ステップ104 において、システムは、次のカーソル制御デバイスのイベント（例えば、割込）を待つ。ステップ106 において、システム10は、現在のカーソル位置を得る。ステップ108 において、システム10は、現在のカーソル位置と記憶されたカーソル位置とを比較する。ステップ110 において、システム10は、現在のカーソル位置および記憶されたカーソル位置に基づいてカーソルの移動方向を決定する。判定ステップ112 において、システムは、カーソルの移動方向にコントロールがあるかどうかを判定する。この実施例では、システム10は、現在のカーソル位置からカーソルの移動方向に沿って、予め定められた角度（例えば、±５度）の範囲内を走査する。スクリーン・ディスプレイのタイプにしたがって、ユーザは走査角度を選択することができる。本発明は、特定の走査角度に制限されるものではない。この走査領域内にコントロールが存在しない場合には、判定ステップ112 の結果はNOとなり、システムはステップ102 に戻って、上記処理を繰り返す。走査領域内にコントロールが存在すると、判定結果はYES となる。この場合に、走査領域内にあるコントロールが、意図された予測位置として指定される。二以上のコントロールが走査領域内に存在すると、システム10は、実際のカーソル移動方向に最も近いコントロールを、意図された予測配置として指定する。ステップ114 において、システム10は、意図された予測位置の中央にカーソルを置く。システムは、ステップ114 に続いてステップ102 に戻り、上記処理を繰り返す。
【００３６】
システム10は、カーソルをコントロール上に配置する処理を簡単にするために、ディスプレイ16上のカーソル30の配置に使用されるカーソル制御信号を動的に変えることもできる。一実施例において、カーソル30がディスプレイ16のあるコントロール上に置かれるときに、システム10は、カーソル感度記憶領域19（図１）に記憶された感度値を動的に変更する。上述したように、カーソル制御デバイス18の移動の１単位が、ディスプレイ16上のカーソル30の選択された移動単位数に対応するように、ユーザは感度値を調整することができる。感度値が大きいほど、カーソル制御デバイス18に与えられた操作量に対するカーソル30の移動量は大きくなる。ＣＰＵ12は、カーソル制御デバイス18が生成する電気信号および感度値の双方に反応して、カーソル30のデータの値、すなわちカーソル制御信号を決定し、これに従って、現在位置記憶領域24を変更する。標準操作では、感度値は、予め定められているか、または、ユーザによって選択されており、カーソル感度記憶領域19（図１）に記憶されている。
【００３７】
カーソル30がコントロールの近傍に存在するときに、システム10は、感度値を10の約数に減少させ、カーソル制御デバイス18の１単位の移動が、カーソル30の以前に得られた移動の10分の１になるようにする。実際に、カーソル30は、コントロールの近傍を通過するときに、速度が遅くなる。コントロールの位置は、コントロール・リスト28（図１）から得られる。この実施例においては、感度値は、カーソル30がディスプレイ16のコントロールの位置に実際に存在するときにのみ変更される。感度値が変更される領域および感度値の変化量は、ここに示される特定の例に制限されるものでないことはいうまでもない。
【００３８】
この実施例におけるシステム10の処理は、図９のフローチャートに示されている。システム10は、スタート120 で処理を開始する。ステップ122 において、システム10は、カーソルの現在位置を得る。このカーソルの現在位置は、現在位置記憶領域24（図１）に格納される。判定ステップ124 において、システムは、カーソルの現在位置が、ディスプレイ16上のコントロールの位置と一致しているかどうかを判定する。現在のカーソル位置がディスプレイ16上のコントロールの位置と対応していない場合には、判定ステップ124 の結果はNOとなり、システムはステップ122 に戻る。現在のカーソル位置がディスプレイ16のコントロールの位置と対応している場合には、判定ステップ124 の結果はYES となる。この場合には、システム10は、ステップ126 において、カーソル感度値を減少させる。上述したように、カーソル感度値は、カーソル感度記憶領域19（図１）に記憶される。
【００３９】
ステップ128 において、システム10は、カーソルの現在位置を現在位置記憶領域24から得る。判定ステップ130 において、システム10は、カーソルの現在位置が、ディスプレイ16のコントロールの位置とまだ一致しているかどうかを判定する。カーソルの現在位置がディスプレイ16のコントロールの位置と一致している場合には、判定ステップ130 の結果はYES となる。この場合に、システムは、ステップ128 に戻り、感度値を減少したレベルに維持する。カーソルの現在位置が、ディスプレイ16のコントロールの位置ともはや一致していないならば、判定ステップ130 の結果はNOとなる。この場合に、システム10は、ステップ132 で、カーソル感度値を初期値に戻す。システム10は、ステップ134 で処理を終了する。このようにして、カーソルは、ディスプレイ16上の位置がコントロールの位置と一致している場合には、常に移動速度が遅くなることが分かる。この技術は、カーソル30をコントロール上に配置する処理を簡単にする。これは、カーソル制御デバイス18の処理に馴染んでいない新米ユーザや、ディスプレイ16上の小さなコントロールにカーソルを素早くかつ正確に配置する移動技術を持たない小さな子供にとって特に有効である。
【００４０】
他の実施例として、システム10はカーソル30をコントロールに誘導するが、意図された位置の計算および上述したカーソルの意図された位置への配置を行わないものがある。その代わり、カーソルがコントロールの近傍にあるときに、システム10は、ＣＰＵ12によって計算されたカーソル制御信号に補正信号を加える。図10に示すように、ディスプレイ16上のコントロール150 は、予め定められたコントロール領域152 に囲まれている。カーソル30がコントロール領域152 の外部にあるときに、システム10は、補正信号を制御信号に一切、加えない。一方、カーソル30がコントロール領域152 内にあるときには、システム10は、コントロール150 の中央位置154 に対応するカーソル位置を決定し、カーソル制御信号に加えるＸおよびＹ座標を有する補正ベクトル（エラー・ベクトル）156 の形で補正信号を生成する。システム10は、カーソル30の現在位置が決定されるごとに、補正ベクトル156 を計算する。カーソルがコントロール領域152 内にあるときは常に、補正ベクトル156 は、コントロール150 の中央位置154 に向けてカーソル30を移動させる。
【００４１】
補正ベクトル156 の効果を、図10に見ることができる。図10では、カーソル30の最初の移動方向は矢印158 の方向である。カーソル30がコントロール領域152 の外部にあるとき、システム10は、補正信号を生成せずに、カーソルは直線方向に移動する。システム10が補正信号を生成しないと、カーソル30は矢印160 の方向にコントロール領域152 を通過して移動し続ける。しかし、カーソル30がコントロール領域152 の内部にあると、システム10は、補正ベクトル156 を計算し、これをカーソル制御信号に加える。補正ベクトル156 の方向は、コントロール150 の中心154 に向いている。したがって、補正ベクトル156 により、カーソル30は中心154 に向かって移動させられる。上述したように、ＣＰＵ12（図１）は、カーソル制御デバイス18が生成した電気信号およびカーソル感度記憶領域19に記憶された感度値を用いて、ＸおよびＹ座標の形でカーソル制御信号を生成する。ＣＰＵ12は、補正ベクトル156 のＸおよびＹ座標の要素を、カーソル制御信号に加え、カーソル30をコントロール150 の中心154 に向かって移動させる。
【００４２】
補正ベクトル156 の効果を、カーソル30がコントロール150 に「引きつけられる」重力効果にたとえることができる。このたとえによると、コントロール領域152 が、コントロール150 の「重力効果」がカーソル30に影響を与える空間である。カーソル30がコントロール領域152 の外部に進むように、ユーザがコントロール150 を通過してカーソル制御デバイス18を操作し続けると、カーソル30は矢印164 の方向に移動を再開する。矢印164 の示すカーソル30の移動方向が、矢印158 の示す移動方向と同じであることに注意すべきである。したがって、コントロール領域152 内にのみ効力のある補正ベクトル156 により、ユーザは、ディスプレイ16上で、所望の方向にカーソル30の移動を継続することができる。
【００４３】
他のカーソル制御デバイスは、ユーザが移動させた場合にのみＣＰＵ12に割込を生成するが、カーソル制御デバイスの移動に有無に関わらず、ＣＰＵ12に割込を生成するカーソル制御デバイスもあることに注意すべきである。この実施例では、システム10は、カーソル制御デバイス18の移動がある場合にのみ、補正ベクトル156 を生成する。ユーザがカーソル制御デバイス18を操作するかどうかに関係なく、システム10が補正ベクトル156 を常に付加するならば、カーソルがカーソル領域152 内にあって、かつ、ユーザが移動させていない場合でも、カーソル30は中心点154 に自動的に引きつけられるであろう。
【００４４】
システム10による補正ベクトル156 の使用は、図11のフローチャートに示されている。システム10は、スタート136 で処理を開始する。ステップ138 で、システムは、カーソルの現在位置を現在位置記憶領域24（図１）から得る。判定ステップ140 において、システム10は、カーソル30がコントロール領域152 （図10）内にあるかどうかを判定する。カーソルがコントロール領域152 内にない場合には、判定ステップ140 の結果はNOとなり、システムはステップ138 に戻る。カーソルの現在位置がコントロール領域152 内にあるならば、判定ステップ140 の結果はYES となる。この場合に、ステップ142 において、システム10は、補正ベクトル156 （図10）を計算し、カーソル30は中心点154 （図10）に向かって移動する。補正ベクトル156 の大きさは、多くの異なる方法（後述）によって計算することができる。
【００４５】
ステップ144 において、システム10は、補正ベクトル156 をカーソル制御信号に加える。ステップ146 において、カーソル30がディスプレイ16上の新しい位置になるように、システム10は現在位置記憶領域24（図１）を更新する。カーソル30の新しい位置には、補正ベクトル156 の効果が含まれている。ステップ146 に続いて、システムはステップ138 に戻る。カーソル30がスムーズな動作でディスプレイ16上を移動するように、カーソル位置がシステム10によって継続的に更新されることに注意すべきである。カーソル30がコントロール領域152 内にある限り、補正ベクトル156 は、カーソル位置が更新されるごとに計算される。このように、カーソル30がコントロール領域152 内にあるときにのみ、システム10は、補正ベクトル156 を計算する。
【００４６】
補正ベクトル156 を計算する方法として、この技術分野では周知である様々なものがある（ここでは詳述しない）。このような方法の一つとして、中心点154 に対するカーソル30の相対位置を計算して、一定の大きさとカーソルの現在位置から中心点154 に向かう方向とを有する補正ベクトル156 を生成するものがある。選択的に、システムは、実際に、２つの物体間に働く重力方程式を使用することもできる。重力方程式を以下に示す。
【００４７】
Ｇ＝ｍ1 ｍ2 ／ｄ2 
【００４８】
ここで、ｍ1 およびｍ2 は、２つの物体のそれぞれの質量である。ｄは、２つの物体間の距離である。この方程式から分かるように、重力は、２つの物体間の距離の２乗に反比例する。補正ベクトル156 の大きさは、重力値Ｇに対応する。コントロール150 の「質量」は、コントロールの相対的重要度に対応する。
【００４９】
この実施例では、カーソル30は、その「質量」として一定の重要度の値を有するように指定されている。ディスプレイ16上の異なるコントロール（図１）は、例えば、そのコントロールが以前、どの程度の頻度で選択されたかの相対的な選択頻度、またはそのコントロールがデフォルト選択であるかどうかに依存した異なる質量の値を有することもできる。デフォルト選択（デフォルト・コントロール）は、他のもの（あまり重要度でないコントロール）より大きな重要度を有するので、より大きな質量の値を有するように指定される。異なる質量値の効果により、カーソル30は、他の近接するコントロールではなくデフォルト選択に「引きつけられる」。同様にして、使用頻度の大きなコントロールほど、大きな質量値を有するように指定されるので、カーソル30は、ユーザがより多く選択したコントロールに引きつけられる。
【００５０】
コントロールの「重力効果」は、図12に示されている。図12において、カーソル30は、コントロール領域152 内にあり、コントロール166 の中心点154'およびコントロール168 の中心点154"から等距離にある。図12の例において、コントロール168 は、デフォルト値であり、指定された重要度として値３（すなわち、質量値３）を有する。コントロール166 は、指定された重要度として値１を有する。システム10は、コントロール166 の中心点154'の方向の補正ベクトル170 、およびコントロール168 の中心点154"の方向の補正ベクトル172 を計算する。コントロール168 はより大きな重要度値を有するので、補正ベクトル172 の大きさは、補正ベクトル170 の大きさの３倍になる。２つの補正ベクトル170 および172 は合計され、補正ベクトル156 が生成される。２つの補正ベクトル170 および172 の正味の効果がカーソル30に与えられることにより、カーソル30は、より高い重要度を有するコントロール168 の方向に「引きつけられ」かつ誘導される。カーソル30がコントロール168 に近づくにしたがい、重力方程式において、カーソルとコントロール166 の中心点154'との間の距離の２乗に反比例することから、補正ベクトルの大きさは増加する。
【００５１】
ユーザがある特定のコントロールを選択すると、コントロールの重要度の値を、動的に変更することもできる。例えば、コントロール群の集合の重要度の値は、最初、同一であってもよい。しかし、ユーザがそれらのコントロール群の中からある特定のものを選択すると、その重要度の値は、他のものより相対的に大きくされ、これにより、後に、ユーザが同じコントロールを選択することが容易になる。ユーザが特定の一つのコントロールを頻繁に選択すればするほど、カーソル30は、そのコントロールに向かって誘導されるようになる。システム10は、コントロール166 および168 の重要度の値だけでなく、カーソル30と中心点154 との間の距離に基づいて補正ベクトルを計算する。したがって、補正ベクトル156 の大きさは、コントロールの相対的な重要度の値だけでなく、コントロール166 および168 からカーソル30までの距離に依存する。
【００５２】
当業者に明らかなように、ディスプレイ16上にある様々なコントロールの相対的な重要度に基づいて、補正ベクトルの大きさを決定するために、他の方程式を用いることができる。上述の例におけるディスプレイ16は、２次元のフォーマットのデータを表示していることに注意すべきである。しかし、本発明の原理は、３次元のフォーマットのデータを表示できるディスプレイ16にも等しく適用できる。
【００５３】
本発明の様々な実施例および利点を説明してきたが、上記説明は例示にすぎず、本発明の広い原理内において、詳細な変更を行うことができる。したがって、本発明は、特許請求の範囲によってのみ制限されるものである。
【図面の簡単な説明】
【図１】本発明によるシステムの機能ブロック図である。
【図２】新たなウィンドウをオープンするときの、図１のシステムの処理のフローチャートである。
【図３】ウィンドウをクローズするときの、図１のシステムの処理のフローチャートである。
【図４】図１のシステムの処理を示すスクリーン・ディスプレイのサンプルを示す。
【図５】図１のシステムの処理を示すスクリーン・ディスプレイのサンプルを示す。
【図６】図１のシステムの処理を示すスクリーン・ディスプレイのサンプルを示す。
【図７】図１のシステムの処理を示すスクリーン・ディスプレイのサンプルを示す。
【図８】変更されないスクリーン・ディスプレイにおける意図されたユーザの位置を予測するときの、図１のシステムの処理のフローチャートである。
【図９】コントロールの近傍のカーソルを配置するときの、図１のシステムの処理のフローチャートである。
【図１０】コントロール上にカーソルを置く補正信号を生成する図１のシステムの処理を示すために拡大されたスクリーン・ディスプレイのサンプルを示す。
【図１１】コントロール上にカーソルを置く補正信号を計算するときの、図１のシステムの処理のフローチャートである。
【図１２】コントロール上にカーソルを置く、可変の大きさを有する補正信号を生成する図１のシステムの処理を示すために拡大されたスクリーン・ディスプレイのサンプルを示す。
【符号の説明】
10  システム
12  ＣＰＵ
14  メモリ
16  ディスプレイ
18  カーソル制御デバイス
19  カーソル感度記憶領域
20  コマンド入力デバイス
21  第２コマンド入力デバイス
22  バス
24  現在位置記憶領域
26  戻り位置記憶領域
28  コントロール・リスト
29  ウィンドウ
30  カーソル
32  FILEボタン
34  NEW ボタン
36  OPENボタン
38  CLOSE ボタン
【図１】
0003944250.tif 000002
【図２】
0003944250.tif 000003
【図３】
0003944250.tif 000004
【図４】
0003944250.tif 000005
【図５】
0003944250.tif 000006
【図６】
0003944250.tif 000007
【図７】
0003944250.tif 000008
【図８】
0003944250.tif 000009
【図９】
0003944250.tif 000010
【図１０】
0003944250.tif 000011
【図１１】
0003944250.tif 000012
【図１２】
0003944250.tif 000013