(57)【特許請求の範囲】
【請求項１】
カーソルを有するディスプレイ上の少なくとも１つの位置を選択するためのコンピュータにより実施される方法であって、
第１のユーザ起動動作に応答して、前記カーソルを所定の選択中モードにおいて自動的に移動させるステップと、
前記カーソルが第１の場所にあるときに、第２のユーザ起動動作に応答して、
前記所定の選択中モードにおける前記カーソルの前記移動を中止するステップと、
前記第１の場所で選択動作が実行されるようにするステップであって、これによって前記第１の場所が前記少なくとも１つの位置として選択される、ステップと、
選択前自動移動開始動作に応答して、前記カーソルを所定の選択前モードにおいて自動的に移動させるステップと、
前記第１のユーザ起動動作に応答して、
前記所定の選択前モードにおける前記カーソルの前記移動を中止するステップと、
前記所定の選択中モードにおいて前記カーソルの前記自動移動を開始するステップと、
を含む方法。
【請求項２】
前記選択前自動移動開始動作が、ユーザ起動のカーソル運動の一時停止を含む、請求項１に記載の方法。
【請求項３】
前記ユーザ起動のカーソル運動が、人間により操作されるポインティング・デバイスにより行われる、請求項２に記載の方法。
【請求項４】
前記選択前自動移動開始動作が明確なユーザ動作を含む、請求項１に記載の方法。
【請求項５】
運動の前記所定の選択中モード及び前記所定の選択前モードの一方が非アクティブになるようにする入力を取得するステップをさらに含む、請求項１に記載の方法。
【請求項６】
少なくとも前記所定の選択中モードが、軌道、初期速度、加速特性、反復回数、方向転換、終了場所、及び画面上の外観のうちの少なくとも１つを示すパラメータにより決定される、請求項１に記載の方法。
【請求項７】
前記第１のユーザ起動動作が、キーパッド及びポインティング・デバイスの一方のボタンを押下げることにより行われる、請求項１に記載の方法。
【請求項８】
前記第２のユーザ起動動作が、キーパッド及びポインティング・デバイスの一方のボタンを放すことを含む、請求項１に記載の方法。
【請求項９】
前記カーソルを移動させる前記所定の選択中モード及び前記所定の選択前モードの少なくとも一方に従って、予測されるカーソル軌道の表示を可能にするステップをさらに含む、請求項１に記載の方法。
【請求項１０】
前記カーソルを移動させる前記所定の選択中モード及び前記所定の選択前モードの少なくとも一方の間、ユーザ入力のカーソル移動を抑止するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
前記カーソルを移動させる前記所定の選択中モード及び前記所定の選択前モードの少なくとも一方の間にユーザ入力のカーソル移動が行われたことに応答して、前記カーソルを移動させる前記所定の選択中モード及び前記所定の選択前モードの前記少なくとも一方をキャンセルするステップをさらに含む、請求項９に記載の方法。
【請求項１２】
前記カーソルを移動させる前記所定の選択中モード及び前記所定の選択前モードの少なくとも一方の間、ユーザ入力のカーソル移動がしきい値に到達するまで、前記ユーザ入力のカーソル移動を抑止するステップと、
前記ユーザ入力のカーソル移動が前記しきい値に到達したことに応答して、前記カーソルを移動させる前記所定の選択中モード及び前記所定の選択前モードの前記少なくとも一方をキャンセルするステップと、
をさらに含む、請求項９に記載の方法。
【請求項１３】
前記ディスプレイが、ポインティング・デバイスとオペレーティング・システムとを有するコンピュータと関連されており、前記ポインティング・デバイスから前記オペレーティング・システムに渡されるイベントのストリームをフィルタ処理するステップをさらに含む、請求項１に記載の方法。
【請求項１４】
カーソルを有するディスプレイ上の少なくとも１つの位置を選択するためのプログラムであって、前記コンピュータに、
第１のユーザ起動動作に応答して、前記カーソルを所定の選択中モードにおいて自動的に移動させるステップと、
前記カーソルが第１の場所にあるときに、第２のユーザ起動動作に応答して、
前記所定の選択中モードにおける前記カーソルの前記移動を中止するステップと、
前記第１の場所で選択動作が実行されるようにするステップであって、これによって前記第１の場所が前記少なくとも１つの位置として選択されるようにする、ステップと、
選択前自動移動開始動作に応答して、前記カーソルを所定の選択前モードにおいて自動的に移動させるステップと、
前記第１のユーザ起動動作に応答して、
前記所定の選択前モードにおける前記カーソルの前記移動を中止するステップと、
前記所定の選択中モードにおいて前記カーソルの前記自動移動を開始するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、情報技術及びデータ処理に関し、より具体的には、カーソルを有するディスプレイ上の位置を選択するための技術に関する。
【背景技術】
【０００２】
コンピュータ・システムと対話するための一般的な方法は、マウスといったポインティング・デバイスを用いて、グラフィカル・ユーザ・インターフェース（ＧＵＩ）の領域を探し当て、そのＧＵＩの所望の機能を作動させるためにクリックすることである。時には、ユーザは、非常に小さい画面領域上に画面上カーソルを精密に位置決めすることを要求される。所望の画面領域が非常に小さい場合、又はユーザが列車といった移動する環境にいる場合、又はユーザが運動技能に影響する身体的な障害をもつ場合には、所望の画面領域上を正確に指し示してクリックすることは非常に難しいとすることができる。
【０００３】
Ｒｏｓｅｎ他による特許文献１は、ウェブページのコンテンツを表示することに関連して、カーソル画像を置き換えるためのシステムを開示する。具体的には、Ｒｏｓｅｎ他の参考文献は、遠隔端末のビデオ・モニタ上に表示されるカーソル画像を、所望の形状及び外観を有する特定の画像に修正するためのシステムを教示する。システムは、特定の画像に対応するカーソル画像データとカーソル表示コードとを格納する。カーソル表示コードは情報を含み、カーソル画像はこれに応答して特定の画像に修正される。サーバ・コンピュータは、指定された情報を遠隔端末に伝送する。情報は、少なくとも１つのカーソル表示命令を含む。カーソル表示命令は、カーソル情報及びカーソル画像データと関連して、遠隔端末のディスプレイにより表示されるカーソル画像を、特定の画像の形状及び外観に修正するように作用する。
【０００４】
Ｒｏｓｅｎ他は、ユーザ端末のカーソルの位置並びに画像は、遠隔サーバにより制御できることを教示する。付加的な情報は、カーソル表示命令によりカーソル表示コードに渡すことができる。カーソル表示コードに渡される付加的な情報は、（１）カーソル位置制御が意図されること、（２）カーソルが移動されるべき条件、及び（３）意図される特定の移動を指定するデータ源、を示すコードを含む。後者は、遠隔サーバ上のメモリ内に格納され、カーソル表示命令又はカーソル表示コードを取り出すことと同様な方法により取り出すことができる。例えば、指定された期間において、ユーザ入力が受信されなかった場合には、カーソル画像は変化し、カーソルの位置は、カーソルが数秒間だけ指定された軌道を辿り、次いで、その元の状態に戻るように設定することができる。
【０００５】
Ｒｏｓｅｎ他は、いずれのターゲット取得方法も教示しない。
【０００６】
【特許文献１】米国特許公報番号第２００５０２１６８６６号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
以前の手法における制限を克服することが望ましい。
【課題を解決するための手段】
【０００８】
本発明の原理は、カーソルを有するディスプレイ上の位置を選択するための技術を提供する。１つの態様においては、コンピュータにより実施することができる例示的な方法は、第１のユーザ起動動作（user-initiated action）に応答して、カーソルを所定の選択中モード（during-selectionmode）において自動的に移動させるステップと、カーソルが第１の場所にあるときに、第２のユーザ起動動作に応答して、所定の選択中モードにおけるカーソルの移動を中止するステップと、第１の場所で選択動作が実行されるようにして、第１の場所が位置として選択されるようにするステップと、を含む。
【０００９】
別の態様においては、同様にコンピュータにより実施することができる別の例示的な方法は、ユーザ起動のカーソル運動の一時停止に応答して、カーソルを（選択前モード（pre-selection mode）といった）所定の方法により自動的に移動させるステップと、カーソルが第１の場所にあるときに、ユーザ起動動作に応答して、所定の方法によるカーソルの移動を中止するステップと、第１の場所で選択動作が実行されるようにして、第１の場所が位置として選択されるようにするステップと、を含む。２つの例示的な方法は組み合わせることができ、こうした組み合わせの１つの例においては、この段落で説明される例示的な方法により実行される選択動作は、所定の選択中モードにおけるカーソルの自動運動の開始に対応することができる。
【００１０】
本発明の１つ又は複数の実施形態は、示される方法ステップを実行するためのコンピュータ使用可能プログラム・コードをもつコンピュータ使用可能メディアを含むコンピュータ製品の形態で実施することができる。さらに、本発明の１つ又は複数の実施形態は、メモリと、このメモリに結合され、例示的な方法ステップを実行するように動作する少なくとも１つのプロセッサとを含む装置の形態で実施することができる。
【００１１】
本発明の１つ又は複数の実施形態は、ディスプレイ上のターゲットとは独立したポイント・アンド・クリック方法を提供するために、例えばユーザが制御する移動とシステムが制御する移動とのシームレスな組み合わせといった、１つ又は複数の有益な技術効果を提供することができる。
【００１２】
本発明のこれら及び他の目的、特徴、及び利点は、添付の図面と併せて読まれるその例示的な実施形態の以下の詳細な説明から明らかになるであろう。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の１つの態様による、カーソルを有するディスプレイ上の少なくとも１つの位置を選択するための方法における例示的な方法ステップ（コンピュータにより実施することができる）のフローチャート１００を示す。ブロック１０２で開始した後で、方法は、ブロック１１０に示すように、第１のユーザ起動動作（例えば、マウス・ボタンを押すこと）に応答して、カーソルを所定の選択中モードにおいて自動的に移動させるステップと、ブロック１１４に示すように、カーソルが第１の場所にあるときに、第２のユーザ起動動作（例えば、マウス・ボタンを放すこと）に応答して、所定の選択中モードにおけるカーソルの移動を中止するステップと、第１の場所で選択動作が実行されるようにして、第１の場所が少なくとも１つの位置として選択されるようにするステップと、を含むことができる。図で用いられる略語「ＵＩＡ」は、「ユーザ起動動作」を指す。
【００１４】
ブロック１０４に示すように、ちょうど説明されたステップに加えて又はその代わりに、例えば、ユーザ起動のカーソル運動の一時停止に応答して、カーソルを所定の方法により自動的に移動させることができる（自動的な移動はまた、以下にさらに説明されるように、明確なユーザ動作に応答するものであってもよい）。ブロック１０８に示すように、カーソルが第１の場所にあるときに、ユーザ起動動作（例えば、マウス・ボタンをクリックすること）に応答して、所定の方法によるカーソルの移動を中止し、第１の場所で選択動作が実行されるようにして、第１の場所が少なくとも１つの位置として選択されるようにすることができる。ステップ１０４及びステップ１０８は、カーソルを有するディスプレイ上の少なくとも１つの位置を選択するためのコンピュータにより実施される方法として、ステップ１１０及びステップ１１４とは独立して実行することができる。次の段落で説明されるように、位置を選択することの１つの目的は、選択を開始することである。
【００１５】
一般に、図１に示す例示的なステップは、いずれの適当な順番によっても実行することができ、１つ又は複数のステップを加えてもよいし、又は省いてもよい。１つの例示的な実施形態においては、ステップ１０４及びステップ１０８は、選択中の自動的な移動と関連するステップ１１０及びステップ１１４の前の選択前自動移動（pre-selection automated movement）と関連する。この場合、ブロック１０４におけるカーソルの自動的な運動は、運動の所定の選択前モードとすることができる。さらに、ステップ１０８で言及されるユーザ起動動作は、ブロック１１０の第１のユーザ起動動作とすることができ、ブロック１０８と関連して述べられる選択動作は、所定の選択中モードにおけるカーソルの自動的な移動を開始させることに対応することができる。
【００１６】
特定の付加的な任意的なステップをここで説明する。ブロック１０６及びブロック１１２に示すように、ユーザにより入力されるカーソル移動は、カーソルを移動させる所定の選択中モード及び／又は所定の選択前モードにおいては抑止することができる。運動の所定の選択中モード及び所定の選択前モードの一方又は両方が非アクティブでなくなるようにする適切な入力は、ブロック１１６において取得することができる。ブロック１１８により、カーソル運動パラメータを取得することができる。例えば、運動の所定の選択中モードは、軌道、初期速度、加速特性、反復回数、方向転換、終了場所、及び画面上の外観の１つ又は複数を示すパラメータにより決定することができ、適当なパラメータは、さらに、運動の選択前モードについても取得することができる。
【００１７】
ユーザ起動のカーソルの運動は、マウス、トラック・ボール、ジョイスティックなどの人間により動作されるポインティング・デバイスにより達成することができる。第１のユーザ起動動作は、例えば、キーパッド又はポインティング・デバイス上のボタン（キーを含むように広く理解される）を押下げることにより行うことができる。第２のユーザ起動動作は、キーパッド又はポインティング・デバイス上のボタン（ここでも、キーを含むように広く理解される）を放すことを含むことができる。もちろん、例えば、同じ（又は異なる）ボタン又はキーを押して開始及び停止するといった別個の動作が可能である。さらに、記されるように、ステップ１０４は、例えば、ユーザ起動のカーソルの運動の一時停止の代わりに又はこれと組み合わせて、ボタン又はキーを押下げる又は放すといった明確なユーザ動作に応答して開始することができる。明確なユーザ動作及び／又はユーザ起動のカーソルの運動の一時停止は、一般に、選択前自動移動開始動作（pre-selection automatic movement-initiating action）と呼ばれる。
【００１８】
ブロック１２０に示すように、別の任意的なステップは、カーソルを移動させる所定の選択中モード及び所定の選択前モードの一方又は両方により、予測されるカーソル軌道の表示を可能にすることを含む。ここで用いられる動作を「可能にする」とは、動作を実行すること、動作を容易にすること、動作の実行を助けること、又は動作が実行されるようにすることを含む。カーソルを移動させる所定の選択中モード及び所定の選択前モードの一方又は両方は、それぞれ、カーソルを移動させる所定の選択中モード及び所定の選択前モードにおいて、ユーザ入力のカーソル移動が行われたことに応答してキャンセルすることができる。さらに、必要に応じて、ユーザ入力のカーソル移動は、ユーザ入力のカーソル移動がしきい値に到達するまで、カーソルを移動させる所定の選択中モード及び所定の選択前モードの一方又は両方において抑止することができ、次いで、ユーザ入力の移動がしきい値に到達したことに応答して、カーソルを移動させる所定の選択中モード及び所定の選択前モードの一方又は両方をキャンセルすることができる。
【００１９】
以下でさらに詳細に説明されるように、ディスプレイは、ポインティング・デバイスとオペレーティング・システムとを有するコンピュータと関連させることができ、ブロック１２２に示すように、ポインティング・デバイスからオペレーティング・システムに渡されるイベントのストリームをフィルタ処理する付加的なステップを実行することができる。オペレーティング・システムに加えて、ポインティング・デバイスから１つ又は複数の稼動アプリケーションに渡されるイベントのストリームのフィルタ処理もまた可能である。図１においては別個のステップとして示されるが、こうしたフィルタ処理は、本発明の特定の技術を実施する解決法が設定される方法の不可欠な特徴とすることができる。処理は、ブロック１２４に続くことができる。
【００２０】
本発明の１つ又は複数の詳細な例示的な実施形態の特定の態様をここで説明する。図２ないし図１４に関して説明される詳細な実施形態は限定的なものではなく、例示的なものであることが意図され、ここに提示される教示が与えられると、本発明の他の実施形態が可能であることが強調される。図２は、対話に関与する主要な主体を示す。運動制御、音声又は他の機能に影響がある障害をもっていることがある、又は、ユーザのこれらの領域に影響を与える状況にある（例えば、車を運転することが押ボタン・デバイスを操作する能力に影響を与える）ユーザ２１０がいる。ユーザが操作するカーソル／選択デバイス２１１がある。これは、キーボード、マウス、又はバイナリ・スイッチといった物理的デバイスであってもよいし、又は、マイクロフォン及び音声認識ソフトウェアにより表わされる音声入力といった無形のものであってもよい。これは、トラック・ボールといった１つより多い物理的／ソフトウェア・デバイスと別個のスイッチとで構成されるとすることができる。ユーザは、ターゲット２１２を制御するためにカーソル／選択デバイスを用いることを望む。これは、パーソナル・コンピュータ、（入力デバイスを物理的にターゲットに構築することができる）家庭用品、又はユーザのデバイスを介してインターネット上で与えられるサービスであってもよい。カーソル／選択デバイスは、ターゲットと別個のものであってもよいし、又は、ターゲットと一体的であってもよい。
【００２１】
ターゲットはディスプレイ２１３を有し、この上にカーソル２１４が表示されて、ディスプレイ上の現在の位置をマークする。カーソル／選択デバイス２１１は、このカーソルを移動させ、ディスプレイ上のオブジェクトを選択するのに用いられる。これは、制御イベント２１６を生成する。システム２１５は、本発明の１つ又はそれ以上の技術を実施することができる。システム２１５は、カーソル／選択デバイス２１６の出力に接続され、制御イベント２１７をターゲットに与える。システム２１５は、幾つかの制御イベントを修正し、幾つかの制御イベントを生成し、幾つかの制御イベントを変更しないでターゲットに渡す。出力は、通常取り扱われる方法によりターゲット上で取り扱われる。さらに、システムは、タイマー・イベント２１８を生成し、消費する。システム２１５は、構成命令２２０をシステム２１５に送信する構成システム２１９により構成することができる。
【００２２】
図３は、システム２１５の入力３２０及び出力３２２をより詳細に示す。ターゲットに対する選択動作を開始させる制御イベント３０１、ターゲット３０２に対する選択動作を終了させる制御イベント３０２、及びターゲット・ディスプレイ上のカーソル位置を移動させる制御イベント３０３に注目すべきである。カーソル／選択デバイス２１１により生成されたすべての他の制御イベント３０６は、変更されないで、システム２１５によりターゲットに渡される。システム２１５は、さらに、タイマーが切れたことを示すイベント３０４及び３０５を受信し、これを作動させる。自動カーソル移動を制御するのに用いられる移動タイマーと、ユーザが最後にカーソルを移動してから特定の時間が経過したときに切れ、選択前移動をいつ開始すべきかを示す一時停止タイマーという２つのタイマーが採用される。
【００２３】
システム２１５は、決定をするために状態情報の幾つかの項目を維持する。ＡＵＴＯＭＯＶＥ３１１は、自動移動が現在アクティブであるかどうかを示す変数である。選択３１２はアクティブであることもあるし、又は非アクティブであることもある。これは、選択が開始され、まだ終了されていないときにアクティブである。ＡＵＴＯＭＯＶＥ特性３１３は、行われる自動移動形態を記述する一組の値である（図７においてより完全に説明する）。ＡＵＴＯＭＯＶＥ移動状況３１４は、移動特性内の現在位置を記述するものであり、図８においてより詳細に示される。現在のカーソル位置３１５は、カーソルがターゲット・ディスプレイ上のどこに位置しているかを記録する。ＡＵＴＯＭＯＶＥがアクティブである場合には、システムは、さらに、自動カーソル移動３１６中にユーザがカーソルを移動させた距離のカウントを維持する。１つの実施形態においては、この間におけるわずかなカーソル移動は抑止されるが、全体の移動量がしきい値より大きい場合は、ＡＵＴＯＭＯＶＥを終了させる。他の実施形態は、ＡＵＴＯＭＯＶＥ中にユーザにより起動されたすべてのカーソル移動を抑止する、又は、いずれかのユーザ起動のカーソル移動が検出されるとすぐにＡＵＴＯＭＯＶＥをキャンセルするといった代替的な動作を取ることができる。システム２１５は、「クリック」（選択）３２１、カーソル移動３２３、開始３２４、及び終了３２５の選択を含む制御イベント、及びカーソル／選択デバイスから受信した他のイベント３２６をターゲットに与える。
【００２４】
図４ないし図６においては、システム２１５は、選択前及び選択内の両方のＡＵＴＯＭＯＶＥがアクティブであるように構成されると仮定される。図４は、制御又はタイマー・イベントが受信されるたびにシステム２１５が従う手順を示す。第１に、システムは、４０１において、選択イベントが現在進行中であるかどうかをチェックする。そうでない場合には、４０２において、図５において説明される手順が続く。選択が進行中である場合には、システムは、ブロック４０３において、受信したイベントが、選択が終了することを示すイベント（例えば、マウス・ボタンが放される）であるかどうかをチェックする。イベントが選択の終わりである場合には、システムは、ブロック４０４において、現在のカーソル位置において選択動作（例えば、クリック）を生成する。幾つかの実施形態においては、入力イベント・ストリームは、さらに、選択イベントを含むことができ、この場合には、２つのイベントのうちの一方が抑止される。システムは、次いで、ステップ４０５に示すように、アクティブである場合には自動移動（ＡＵＴＯＭＯＶＥ）を停止し、いずれのアクティブな移動タイマーもキャンセルする。
【００２５】
受信したイベントが「選択終了」イベントでなかった場合には、システムは、４０６に示すように、これがユーザにより生じさせられたカーソル移動イベントであったかどうかをチェックすることができる。こうしたイベントであった場合、及び４０７においてＡＵＴＯＭＯＶＥがアクティブであると判断された場合、及び４０８においてカーソル移動がしきい値距離を超えたと判断された場合には、カーソルの移動がターゲット４０９に渡され、ブロック４０５に示すように、いずれのＡＵＴＯＭＯＶＥもキャンセルされる。移動した距離は、幾つかの方法により計算することができるが、１つの実施形態においては、ＡＵＴＯＭＯＶＥが開始されてからユーザにより起動された全カーソル変位を計算し、これをしきい値と比較することができる。全カーソル移動がしきい値を超えない場合には、４１０に示すように、移動は制御イベント・ストリームの外にフィルタ処理され、ターゲットには渡されない。全抑止移動変数は増分される。アクティブであるＡＵＴＯＭＯＶＥがなかった場合には、ユーザのカーソル移動は、４１１に示すように、変更されないでターゲットに渡され、いずれの他の動作も取られない。受信したイベントがカーソル移動ではなかった場合には、図６に説明される手順がブロック４１２により続く。
【００２６】
図５は、制御又はタイマー・イベントが受信され、進行中の選択がないときに、システムが従う手順を示す。イベントが「選択開始」イベント５０１である場合には、システムは、５０２において、選択内のＡＵＴＯＭＯＶＥのための構成設定（ＷＩＴＨＩＮ−ＳＥＬＥＣＴＩＯＮ特性）を用いてＡＵＴＯＭＯＶＥのための移動命令を初期化する。これは次いで、ＡＵＴＯＭＯＶＥ５０３を作動させ、移動タイマーを開始させ、抑止されていた全ユーザ移動を格納する変数を初期化する。ブロック５０４において、受信したイベントが、一時停止タイマーが切れたという表示であった場合には、システムは、選択前のＡＵＴＯＭＯＶＥのための構成設定（ＰＲＥ−ＳＥＬＥＣＴＩＯＮ特性）を用いて、ＡＵＴＯＭＯＶＥ５０５のための移動命令を初期化する。これは次いで、５０３においてＡＵＴＯＭＯＶＥを作動させ、移動タイマーを開始させ、抑止されていた全ユーザ移動を格納する変数を初期化する。
【００２７】
ブロック５０６において、受信したイベントがカーソル移動である場合、及び５０７においてＡＵＴＯＭＯＶＥがアクティブであると判断された場合、及び５０８により、カーソル移動がしきい値距離を超えた場合には、５０９において、カーソルの移動がターゲットに渡され、移動タイマーがキャンセルされ、いずれのＡＵＴＯＭＯＶＥもキャンセルされる。移動した距離は幾つかの方法により計算できるが、１つの実施形態においては、ＡＵＴＯＭＯＶＥが開始してからユーザにより起動された全カーソル変位を計算し、これをしきい値と比較することができる。全カーソル移動がしきい値を超えない場合には、ブロック５１０において、この移動は制御イベント・ストリームの外にフィルタ処理され、ターゲットには渡されない。全抑止移動変数は増分される。どのＡＵＴＯＭＯＶＥもアクティブでない場合には、ブロック５１１において、ユーザのカーソル移動が変更されないでターゲットに渡され、一時停止タイマーが開始され、又は、既にアクティブであった場合にはキャンセルされて再開される。受信したイベントがカーソル移動でない場合には、ブロック５１２に示すように、図６において説明される手順が続く。
【００２８】
図６は、図４又は図５において取り扱われないイベントに対して、システムが従う手順を示す。受信したイベントが移動タイマーの期限切れであり６５１、ＡＵＴＯＭＯＶＥが現在アクティブである場合には、６５２において、システムは、現在の移動特性及びＡＵＴＯＭＯＶＥ移動状況により示される移動命令によりカーソルを移動させる。移動特性の内容が図７に示され、ＡＵＴＯＭＯＶＥ移動状況の内容が図８に示される。どのカーソル移動に従うべきかを決定する際に従う手順は図９に示される。移動が適用されたときには、システムは、６５３において、ＡＵＴＯＭＯＶＥが完了したかどうかをチェックする。完了した場合には、ステップ６５４において、ＡＵＴＯＭＯＶＥが切られ、移動タイマーがキャンセルされる。完了していない場合には、ステップ６５５において、移動タイマーが再開される。受信したイベントが、６５６において、まだ取り扱われていない、いずれかの他の制御イベントであると判断された場合には、ステップ６５７に示すように、変更されないでターゲットに渡される。
【００２９】
図７は、典型的なＡＵＴＯＭＯＶＥ特性内に格納される情報を示す。特性は、辿るべき移動軌道（profileMT）、例えば、所定の角度の直線又は螺旋を指定する。特性は、カーソルが軌道に沿って移動される初期速度（profileStartVelocity）、及び従うべき加速特性（profileAP）を指定する。例えば、カーソルは、一定の速度で移動してもよいし、又は、ゆっくり開始し、次いで高速に加速し、次いで移動の残りの部分において一定の速度を保持してもよい。特性は、さらに、滑らかな移動経路を与えるために、移動軌道の交互の繰り返しを反転させるべきかどうか（profileReverse）を指定する。このフラグが選択されない場合には、経路の反復は、カーソルを開始位置に戻し、移動を反復させる。特性は、移動の反復が何回続くか（profileRepetitions）、及びこれらの反復が完了した後でカーソルがその元の位置に戻るべきかどうか（profileRtnToOrigin）を指定する。
【００３０】
図８は、ＡＵＴＯＭＯＶＥがアクティブであるときに、システムが格納する状態情報を示す。この情報は、移動シーケンス内の現在の位置を捕捉し、移動タイマーが切れるたびに、どの自動移動が実行されるべきかをシステムが計算することを可能にする。状況情報は、移動軌道内のカーソルの現在の場所（currentMvmtPos）、移動の現在の方向（currentDir）、現在の移動速度（currentVelocity）、加速特性内の場所（currentAccelPos）、完了した反復回数（currentRepsDone）、及びＡＵＴＯＭＯＶＥが開始された画面位置（currentStartPos）を捕捉する。
【００３１】
図９は、図７において説明されたＡＵＴＯＭＯＶＥカーソル特性と、図８において説明されたＡＵＴＯＭＯＶＥ移動状況とを前提として、ＡＵＴＯＭＯＶＥ中に取られるべき自動カーソル移動を求めるのに従う手順を示すフローチャートである。ブロック９０１において、加速特性内の位置が特性の終わりにあると判断された場合には、ステップ９０２において、加速値が０に設定される。或いは、９０３により、現在の加速が加速特性から見出され、位置が増分される。加速及び現在の速度は、次いで、ブロック９０４において用いられて、この移動のための速度が計算される。さらに、ステップ９０４において、速度及び最後の移動からの経過時間を用いて移動される距離を計算する。システムは、次いで、９０５において、所望の移動が現在の軌道内で完了できるかどうかを計算する。完了できる場合には、９０６において、カーソルが現在の軌道に沿って所望の距離だけ移動される。完了できない場合には、９０７において、システムは、現在の起動が完了した後で残る距離を計算する。
【００３２】
完了した反復回数（currentRepsDone）は、９０８において増分される。９０９において、完了した反復回数が必要な数より少ないと判断された場合には、新しい反復が開始される。反復方向は、profileReverseフラグにより設定される。９１０により、フラグが逆行を示した場合には、９１１において、currentDir値が反転され、９１２において、残りの移動が新しい軌道に沿って適用されて、currentMvmtPos値を更新する。フラグが逆行を示さない場合には、９１３において、新しい位置がＡＵＴＯＭＯＶＥの元の開始位置から計算される（currentStartPos）。さらなる反復が必要なく、９１４において、特性がカーソルをその開始点に戻すことを求めていると判断された場合には、９１５において、カーソル位置がcurrentStarPosに設定され、９１７において、ＡＵＴＯＭＯＶＥは完了するとマークされる。さらなる反復は必要ないが、カーソルが開始位置への戻りを示さない場合には、９１６において、カーソル位置が移動軌道の終わりに設定され、９１７において、ＡＵＴＯＭＯＶＥは完了されたものとしてマークされる。
【００３３】
図１０は、図２に示す構成システム２１９のユーザ・インターフェースの実施形態を示す。ユーザは、１０９４に示すように、一時停止中のＡＵＴＯＭＯＶＥ１０９０（ｐｒｅ−ｓｅｌｅｃｔｉｏｎ）及び選択中のＡＵＴＯＭＯＶＥ１０９１（Ｉｎ−ｓｅｌｅｃｔｉｏｎ）を別個に構成し、オン、オフすることができる。ユーザは、軌道に対する選択１０９２、及び初期速度及び加速特性に対する選択１０９３が与えられる。本実施例においては、初期速度及び加速が組み合わされているが、代替的な実施形態ではこれらを分けて、ユーザが移動の初期方向及び移動形状（例えば、直線形、螺旋形、ジグザグ形）を指定する際により大きな融通性を与えることができる。ユーザは、さらに、反復回数１０９５、交互の反復を反転させるかどうか１０９６、及び最後に開始位置に戻るかどうか１０９７について選択することができる。例えば、ＡＵＴＯＭＯＶＥ中に抑止されるユーザ移動のしきい値、又は、移動経路を示すインジケータの視覚的外観を含むことができる多数の付加的な構成の選択肢がある。
【００３４】
本発明の１つの実施形態においては、システムは、デスクトップ・コンピュータ・システムのユーザに使用可能なユーティリティ・プログラムとして与えられる。これは、制御パネルによりアクティブ化及び非アクティブ化することができ、その動作の種々の特徴を設定することができる。設定の選択肢の好ましい組が図１０に示される。設定により、ユーザは、選択前にだけ、選択中にだけ、又は、選択前及び選択中の両方において、自動移動を有することを選択することができる。ユーザは、さらに、カーソルが特定の角度で直線で移動するか、又は螺旋形で移動するかを選択することができる。異なる選択肢を選択前及び選択中の移動に対して選択することができる。ユーザは、さらに、選択前及び選択中に行われる移動に対して異なる移動軌道を選択することができる。他の選択肢は、ユーザが、移動速度及び加速特性、軌道を辿る回数、並びに、カーソルが経路を辿り、次いでこれを逆に辿って開始点に戻るように、移動を１つおきに反転させるか、又は、経路を辿り、次いで開始点にジャンプして戻り、これを繰り返すか、を選択することを可能にする。別個の選択肢は、すべての移動の繰り返しが完了したときに、カーソルがその開始位置に戻るべきかどうかを指定する。
【００３５】
本実施形態においては、ユーザは、通常のコンピュータ・マウスを用いて、コンピュータ・ディスプレイ上のカーソル移動を制御する。ユーザは、左のマウス・ボタンを押下げることにより選択動作を開始し、左のマウス・ボタンを放すことによりこの動作を終了する。デフォルト設定においては、システムは、選択動作中においてのみ自動移動を実行する。デフォルトの移動方向は、一定の極めて低速での垂直方向下方である。軌道の終わりに到達した後で、移動が逆行される。カーソルがその元の位置に戻ったときには、移動が停止される。移動経路は、画面上に表示される。動作のデフォルト・モードにおいては、画面上のカーソル画像から垂直方向下方に延びる色付きのバーとして示される。このバーは、アクティブな選択がないときでも、常に、見ることができる。移動がアクティブであるときには、カーソルはこのバーに沿って移動する。
【００３６】
この動作モードは図１１から図１４において示される。これらの図は、表示画面１１０１、カーソルの画面上の外観１１０２、及びＡＵＴＯＭＯＶＥ軌道１１０３を表わす関連の表示要素１１０３を示す。図１１ないし図１４においては、軌道は、カーソルから垂直方向下方に延びる線として示されており、これはカーソルと共に移動する。図は、単一の画面上ターゲット１１０４、典型的には、何らかの動作をとるためにシステムのコマンドを確認するソフトウェア・アプリケーションにおいて用いられる受け入れボタンを示す。図１１は、ユーザが移動を始める前の画面外観を示す。図１２は、ユーザがカーソル１１０１をターゲット１１０２の近くに移動したときの画面外観である。カーソル自体はターゲット上にはないが、垂直方向バー１１０３はターゲットを交差することに注目されたい。ユーザは、この位置からのＡＵＴＯＭＯＶＥは、カーソルをターゲット上に配置することを知っている。ユーザは、次いで、左のマウス・ボタンを押下げることにより選択動作を開始する。図１３に示すように、ユーザはマウス・ボタンを押し、カーソル１１０１は線１１０３に沿って移動する。カーソル１１０１の位置がターゲット１１０２の上になったときには、ユーザは、マウス・ボタンを放して選択を終了する。図１４に示すように、これによってシステムがカーソル１１０１の現在の位置においてクリック・イベントを生成し、所望のターゲット１１０２が選択される。
【００３７】
専用ハードウェア、汎用プロセッサ、ファームウェア、ソフトウェア、又は上記のものの組み合わせを使用する種々の技術を採用して、本発明を実施することができる。本発明の１つ又は複数の実施形態は、示される方法ステップを実行するためのコンピュータ使用可能プログラム・コードをもつコンピュータ使用可能メディアを含むコンピュータ製品の形態で実施することができる。さらに、本発明の１つ又は複数の実施形態は、メモリと、このメモリに結合され、例示的な方法ステップを実行するように動作する少なくとも１つのプロセッサとを含む装置の形態で実施することができる。
【００３８】
現在は、好ましい実装形態は、汎用コンピュータ又はワークステーション上で稼動するソフトウェアを実質的に使用するものであると考えられる。図１５を参照すると、こうした実装形態は、例えば、プロセッサ１５０２と、メモリ１５０４と、例えばディスプレイ１５０６及びキーボード１５０８により形成された入力／出力インターフェースとを採用することができる。ここで用いられる「プロセッサ」という用語は、例えば、ＣＰＵ（中央演算処理装置）及び／又は他の形式の処理回路を含むものなどといった、いずれかの処理デバイスを含むことが意図される。さらに「プロセッサ」という用語は、１つより多い個々のプロセッサを指すことができる。「メモリ」という用語は、例えば、ＲＡＭ（ランダム・アクセス・メモリ）、ＲＯＭ（読み取り専用メモリ）、固定メモリ・デバイス（例えば、ハード・ドライブ）、取り外し可能メモリ・デバイス（例えば、ディスケット）フラッシュ・メモリなどといったプロセッサ又はＣＰＵと関連するメモリを含むことが意図される。さらに、ここで用いられる「入力／出力インターフェース」という句は、例えば、データを処理ユニットに入力するための１つ又は複数の機構（例えば、マウス、トラックボール、ジョイスティック）と、処理ユニットに関連する結果を与えるための１つ又は複数の機構（例えば、プリンタ）とを含むことが意図される。プロセッサ１５０２、メモリ１５０４、及びディスプレイ１５０６及びキーボード１５０８といった入力／出力インターフェースは、データ処理ユニット１５１２の一部として、例えば、バス１５１０により相互接続することができる。例えば、バス１５１０による好適な相互接続は、さらに、コンピュータ・ネットワークとインターフェースするように与えることができるネットワーク・カードといったネットワーク・インターフェース１５１４に与えることができ、及び、メディア１５１８とインターフェースするように与えることができるディスケット又はＣＤ−ＲＯＭドライブといったメディア・インターフェース１５１６に与えることができる。
【００３９】
したがって、ここで述べられた本発明の方法を実行するための命令又はコードを含むコンピュータ・ソフトウェアは、関連するメモリ・デバイス（例えば、ＲＯＭ、固定又は取り外し可能メモリ）の１つ又は複数に格納することができ、使用準備ができたときには、部分的に又は全体として（例えばＲＡＭに）ロードされ、ＣＰＵにより実行される。こうしたソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むことができるが、これらに限定されるものではない。
【００４０】
さらに、本発明は、コンピュータ又はいずれかの命令実行システムにより又はこれらと共に用いられるプログラム・コードを与えるコンピュータ使用可能又はコンピュータ可読メディア（例えば、メディア１５１８）からアクセス可能なコンピュータ・プログラムの形態をとることができる。本説明の目的のために、コンピュータ使用可能又はコンピュータ可読メディアは、命令実行システム、装置、又はデバイスにより又はこれらと共に用いられるいずれかの装置とすることができる。
【００４１】
メディアは、電子、磁気、光学、電磁、赤外線、又は半導体システム（又は装置或いはデバイス）、又は伝播メディアとすることができる。コンピュータ可読メディアの例は、半導体又は固体メモリ（例えば、メモリ１５０４）、磁気テープ、取り外し可能コンピュータ・ディスケット（例えば、メディア１５１８）、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、磁気ハードディスク、及び光学ディスクを含む。光学ディスクの現在の例は、コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク読み取り／書き込み（ＣＤ−Ｒ／Ｗ）及びＤＶＤを含む。
【００４２】
プログラム・コードを格納及び／又は実行するのに適したデータ処理システムは、システム・バス１５１０により直接又は間接的にメモリ要素１５０４に結合された少なくとも１つのプロセッサ１５０２を含む。メモリ要素は、プログラム・コードの実際の実行中に採用されるローカル・メモリ、バルク・ストレージ、及び、実行中にコードをバルク・ストレージから取り出さなければならない回数を減らすために、少なくとも幾つかのプログラム・コードの一時的なストレージを与えるキャッシュ・メモリを含むことができる。
【００４３】
入力／出力又はＩ／Ｏデバイス（キーボード１５０８、ディスプレイ１５０６、ポインティング・デバイスなどを含むがこれらに限定されない）は、（バス１５１０などにより）直接又は介入するＩ／Ｏコントローラ（明確さのために省かれる）により、システムに結合することができる。
【００４４】
ネットワーク・インターフェース１５１４といったネットワーク・アダプタを、さらにシステムに結合して、データ処理システムが、介入する私設又は公衆ネットワークにより、他のデータ処理システム又は遠隔プリンタ又はストレージ・デバイスに結合されるようにするのを可能にすることができる。モデム、ケーブル・モデム、及びイーサネット・カードは、現在使用可能な種類のネットワーク・アダプタのほんの幾つかである。
【００４５】
いずれにしても、ここに示されたコンポーネントは、ハードウェア、ソフトウェア、又はその組み合わせの種々の形態、例えば、特定用途向け集積回路（ＡＳＩＣ）、機能回路、関連するメモリをもつ適切にプログラムされた汎用デジタル・コンピュータなどにおいて実施できることが理解されるべきである。ここに提供される本発明の教示が与えられることにより、当業者であれば、本発明のコンポーネントの他の実施を考慮できるであろう。
【００４６】
本発明の例示的な実施形態が添付の図面を参照してここで説明されたが、本発明は、これらの精密な実施形態に限定されるものではなく、当業者であれば、本発明の範囲又は精神から離れることなく、種々の他の変更及び修正を行うことができることが理解されるべきである。
【図面の簡単な説明】
【００４７】
【図１】本発明の態様によるカーソルを有するディスプレイ上の位置を選択するための例示的な方法ステップを示す高レベルのフローチャートである。
【図２】本発明の実施形態の技術を採用するシステムの概観である。
【図３】例示的なシステムの入力及び出力を示す。
【図４】本発明の態様による例示的な詳細な方法ステップのフローチャートである。
【図５】図４のフローチャートの続きである。
【図６】図４及び図５のフローチャートの続きである。
【図７】本発明の実施形態による自動移動特性の例示的な態様を示す。
【図８】本発明の実施形態による自動移動状況の例示的な態様を示す。
【図９】図７及び図８による自動移動の例示的なフローチャートを示す。
【図１０】本発明の実施形態による構成システムの例示的な態様を示す。
【図１１】本発明の特定の技術を採用するディスプレイの例示的な図を示す。
【図１２】本発明の特定の技術を採用するディスプレイの例示的な図を示す。
【図１３】本発明の特定の技術を採用するディスプレイの例示的な図を示す。
【図１４】本発明の特定の技術を採用するディスプレイの例示的な図を示す。
【図１５】本発明の１つ又は複数の態様及び／又は要素を実施するのに有益とすることができるコンピュータ・システムを示す。
【図１】
0005179074.tif 000002
【図２】
0005179074.tif 000003
【図３】
0005179074.tif 000004
【図４】
0005179074.tif 000005
【図５】
0005179074.tif 000006
【図６】
0005179074.tif 000007
【図７】
0005179074.tif 000008
【図８】
0005179074.tif 000009
【図９】
0005179074.tif 000010
【図１０】
0005179074.tif 000011
【図１１】
0005179074.tif 000012
【図１２】
0005179074.tif 000013
【図１３】
0005179074.tif 000014
【図１４】
0005179074.tif 000015
【図１５】
0005179074.tif 000016