(57)【要約】  【課題】本発明は、マルチスクリーンディスプレイドライバーシステムであって、それに応じた複数のユーザ入力を持つものに適用し、広大な仮想イメージ空間の一部を置き換えて、マルチユーザ環境を提供する  【解決手段】    本発明のコンピュータシステムは、イベントドリブン型GUIオペレーティングシステムを有する単一コンピュータシステムは、複数の入力デバイスから入力を受け取り、一基あるいは複数のディスプレイを制御し、よって個々のユーザ専用の領域に対しては、明白な排他的かつ邪魔をされない制御を提供し、共用の領域あるいはオブジェクトに対しては、インターラクティブな制御を提供するものである。  【選択図】  図１
2004342125.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを含み、仮想ディスプレイ空間を有するグラフィカルユーザインターフェースを使用し、イベントドリブン型制御プログラムを実行し、統合ユーザポインティング入力イベントストリーム処理システムを有するコンピュータシステムであって、
該制御プログラムが、該仮想ディスプレイ空間内の異なった位置を示す少なくとも第一および第二のユーザ入力を受け取り、
該ユーザ入力の各々が、該制御プログラムのイベントの生成と関連付けられており、該第一のユーザ入力と該第二のユーザ入力との間が区別されることなく処理され、
該制御プログラムが、第一のユーザ入力に関連した一連のイベントを、同時に発生する第二のユーザ入力に関連する一連のイベントから機能上目に見えるような干渉を受けることなく処理する運用モードを有する、コンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムであって、前記イベントドリブン型制御プログラムが、ウインドウズ（R)、ウインドウズ（R)フォーワークグループス、ウインドウズ（R)ＮＴ、ウインドウズ（R)９５、ＯＳ／２、およびマッキントッシュオペレーティングシステムからなる群より選択されるグラフィカルユーザーインターフェースシステムである、コンピュータシステム。
【請求項３】
請求項１に記載のコンピュータシステムであって、さらに、複数のディスプレイを含み、それぞれのディスプレイが、仮想ディスプレイ空間の一部を表示する、コンピュータシステム。
【請求項４】
請求項３に記載のコンピュータシステムであって、前記複数のディスプレイのそれぞれが、仮想ディスプレイ空間の異なる部分を表示する、コンピュータシステム。
【請求項５】
請求項１に記載のコンピュータシステムであって、前記ユーザ入力の少なくとも１つが、絶対座標位置を含む、コンピュータシステム。
【請求項６】
請求項５に記載のコンピュータシステムであって、前記ユーザ入力が、絶対座標位置を、該ディスプレイ上に重ね合わせたタッチセンシティブデバイスから受け取り、その結果、該タッチセンシィブデバイスの対応するディスプレイの位置に対するタッチが、該ディスプレイの位置にカーソルを移動させる、コンピュータシステム。
【請求項７】
前記ユーザ入力が、タッチスクリーンから絶対座標位置を受け取る、請求項５に記載のコンピュータシステム。
【請求項８】
請求項１に記載のコンピュータシステムであって、少なくとも２基のディスプレイデバイスを含み、そのデバイスの個々が、前記仮想ディスプレイ空間の異なる部分を表示し、そして少なくとも２基のユーザ入力デバイスを含む、コンピュータシステム。
【請求項９】
請求項１に記載のコンピュータシステムであって、前記仮想ディスプレイ空間が、複数のオブジェクトを含み、個々のユーザ入力が、該オブジェクトの１つと関連づけられている、コンピュータシステム。
【請求項１０】
前記複数のオブジェクトが、複数のアプリケーションウインドウを含む、請求項９に記載のコンピュータシステム。
【請求項１１】
請求項９に記載のコンピュータシステムであって、前記制御プログラムが、アプリケーションウインドウを有するアプリケーションをサポートし、アプリケーションウィンドウに関連するアプリケーションが、制御プログラムからイベントを受け取り、さらに該アプリケーションウィンドウに関連するユーザ入力に関するイベントを処理する、コンピュータシステム。
【請求項１２】
請求項１に記載のコンピュータシステムであって、さらに複数のディスプレイを含み、個々のディスプレイが、該仮想ディスプレイ空間の異なる位置を表示し、該制御プログラムが、ＷＩＮ１６、ＷＩＮ３２、あるいはＯＳ／２Ａ１ＰＩシンタックスに対応する、コンピュータシステム。
【請求項１３】
請求項１に記載のコンピュータシステムであって、さらに、以下を有する
プロセッサーを含む、コンピュータシステム：
カウンター；
該カウンターの状態を蓄積するためのメモリ；
いずれかの該入力のアクティベート入力ステータス（状態）に対しては該カウンターを増加させ、かついずれかの該入力のインアクティベート入力ステータス（状態）に対しては該カウンターを減少させるための手段；
該カウンターのカウントが増加する際には、順番に、カーソルを該位置へ移動させ、ボタンダウンおよびボタンアップメッセージを生成するためのポイントモード手段；  および
該カウンターの蓄積状態を更新するための手段。
【請求項１４】
請求項１に記載のコンピュータシステムであって、さらに、以下を有するプロセッサーを含む、コンピュータシステム：
カウンター；
該カウンターの状態を蓄積するためのメモリ；
いずれかの該入力のアクティベート入力ステータス（状態）に対しては該カウンターを増加させ、かついずれかの該入力のインアクティベート入力ステータス（状態）に対しては該カウンターを減少させるための手段；
カウンター値が０へ遷移した際には、ボタンアップメッセージを生成し、該カウンター値が１に遷移し該蓄積された初期状態値が０となった際にはボタンダウンメッセージを生成し、そしてその他の場合にはボタンダウンメッセージ状態を維持するためのドラッグモード手段；  および
該カウンターの該蓄積状態を更新するための手段。
【請求項１５】
請求項１に記載のコンピュータシステムであって、さらに相対ポインティング位置ユーザ入力の出力をディスプレイ座標位置に変換するためのシステム、および該相対ポインティング位置ユーザ入力に基づき前記制御プログラムとは独立しているユーザカーソルを、該ディスプレイ上に表示するためのシステムを含む、コンピュータシステム。
【請求項１６】
複数のオブジェクトを含む仮想ディスプレイ空間を有するイベントドリブン型グラフィカルユーザインターフェースシステムであって、以下を包含する、システム：
ユーザ入力インターフェースであって、識別された複数のユーザ入力デバイスから複数のユーザ入力に感応し、該ユーザ入力が、それぞれ少なくとも一個のオブジェクトと関連付けられ、かつ、ユーザ入力デバイスの識別符号によっては実質的には区別することのできないイベントの生成と関連付けられる、ユーザ入力インターフェース；
該インターフェースシステムが、第一のオブジェクトに関連する第一のユーザ入力に関連付けられたイベントの時系列と、第二のオブジェクトと関連する第二のユーザ入力に関連付けられた同時に生成するイベントの時系列とをお互いに干渉することなしに処理するためのモードを有するインターフェースシステム。
【請求項１７】
請求項１６に記載のイベントドリブン型グラフィカルユーザインターフェースであって、さらに該グラフィカルユーザインターフェースを制御するための制御プログラムを含み、単一のシステムカーソル、相対ポインティング位置ユーザ入力の出力によって生成したイベントをディスプレイ座標位置に変換するシステム、および該相対ポインティング位置ユーザ入力に基づき、該システムカーソルとは無関係であるユーザカーソルを、グラフィカルユーザインターフェース上に表示するためのシステムを有する、イベントドリブン型グラフィカルユーザインターフェースシステム。
【請求項１８】
複数のオブジェクトを含む統合仮想ディスプレイ空間を有するイベントドリブン型グラフィカルユーザインターフェースシステムであって、以下を含むイベントドリブン型グラフィカルユーザインターフェースシステム：
少なくとも一つの識別されたユーザ入力デバイスからの複数のユーザ入力に関連したイベントを生成するユーザ入力インターフェースであって、
該インターフェースシステムが、ユーザ入力デバイスの識別符号を実質的には参照することなく、第二の該複数ユーザ入力および第二の該複数ユーザ入力に関連した一連のイベント間に相互の干渉なく、一連のイベントを同時並行に処理できる、ユーザ入力インターフェース。
【請求項１９】
請求項１８に記載のイベントドリブン型グラフィカルユーザインターフェースであって、前記インターフェースシステムが、単一システムのカーソルを有し、さらに相対ポインティング位置ユーザ入力の出力によって生起したイベントをディスプレイ位置座標に変換するシステム、および該相対ポインティング位置ユーザ入力に基づき、該システムカーソルとは無関係であるユーザカーソルを、グラフィカルユーザインターフェース上に表示するためのシステムを有する、イベントドリブン型グラフィカルユーザインターフェースシステム。
【請求項２０】
請求項１８に記載のイベントドリブン型グラフィカルユーザインターフェースであって、
個々のイベントが、他の入力とは無関係に、前記仮想ディスプレイ空間内の位置およびタッチの状態と関連しており、
該インターフェースシステムが、複数の異なる入力に関連づけられた一連のイベントを処理するためのモードを有し、ここで、最初の入力に関連する位置にあるオブジェクトが、共存する最終の入力に関連する位置に移動し、該最初の入力の始まりおよび最終の入力の最後とを決めるためにタッチの状態を追跡するためのカウンターを含む、イベントドリブン型グラフィカルユーザインターフェース。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イベントドリブン型グラフィカルユーザインターフェースシステムの分野に関するものであり、より詳しくは、ユーザが生起したイベントに対するグラフィカルユーザインターフェースの応答を変更することによって、ユーザからの複数の入力が協調して動作することを許容するためのシステムに関する。
【背景技術】
【０００２】
多くのグラフィカルユーザインターフェース(GUI)システムが、入手可能である。たとえば、マイクロソフトウインドウズ（R)、IBM
OS/2、サンマイクロシステムズソラリス、アップルコンピュータマッキントッシュオペレーティングシステムなどである。これらのシステムは、アクティブポジションを示すスクリーンカーソルを表示するディスプレイと関連付けられた、ポインティングデバイス入力を備えている。カーソルは典型的には、アクティブなピクセル、領域、あるいは位置を示すグラフィカルオブジェクトであって、それらの位置は、ポインティングデバイスを操作することにより、スクリーン上で移動させる。スクリーンイメージには、多数のディスプレイオブジェクトが含まれ、それらにはプルダウンメニューバー、ダイアログボックス、ウインドウ、およびアイコンなどがある。カーソルを、所望のスクリーンオブジェクトに重ねあわせると、そのオブジェクトを選択したことになり、その結果として、機能が起動される。
【０００３】
これらGUIシステムに対しては、多くのプログラムが入手できるが、その全てが実際に、同時インタラクションを許しているわけではない。
【０００４】
これらのインターフェースは、イベントドリブン型すなわち、定義された事象の発生、たとえばユーザ入力、タイマー出力、割り込みに基づいて状態を変化させるか、あるいはそれらの状態を決定するために、入力を常時監視し得る。
【０００５】
公知のユーザポインティング入力には、マウス、トラックボール、ジョイスティック、ライトペン、タッチパッド、タブレットおよびタッチスクリーンが含まれる。タッチスクリーン、タッチパッド、ライトペン、およびタブレットは、絶対座標位置入力が可能である。一方、マウス、トラックボール、およびジョイスティックは、相対運動の入力が可能である。多数の異なったタイプのタッチスクリーンが入手可能であり、表面音響波、電気抵抗、容量、赤外線、感圧などの各方式が含まれる。
【０００６】
公知の音響式タッチスクリーンポジションセンサにおいては、トランスジューサが音響パルスを送信し、それが音響波としてタッチスクリーンに広がり、同一あるいは別のトランスジューサによって受信される。この波は、その伝播方向の単位距離ごとに特徴的な時間遅延を生じるため、受信パルスの時間を解析することによって、座標軸方向の位置が決定される。少なくとも2つの直交する座標軸に対し、システムが提供される。本明細書に参考として援用される米国特許を参照されたい。米国特許第4,642,423号、第4,644,100号、第
4,645,870号、第 4,700,176号、第4,746,914号、第 4,791,416号、 Re.33,151号、米国特許第5,260,521号、第5,234,148号、第5,329,070号、米国特許第
5,177,327号、第5,162,618号および第 5,072,427号。 さらに、米国特許第3,673,327号、 Knowles, T.J.,
"46.6: A Pressure-Responsive Touch-input Device", SID 92
Digest,(1992) pp.920-923; Christensen, R. and Masters, T., "Guided
Acoustic Wave: Newest Wave in Touch Technology", ECN(January 1995), pp.13以下。
【０００７】
コンピュータマウスについても既知である。よく知られたデバイスであり、コンピュータとの接続ケーブルを備えた、手で操作するデバイスである。このデバイスとケーブルを組み合わせた形状がなんとなく似ているため、マウス（ねずみ）と呼ばれる。機械式マウスでは、球状のボールが提供され、基準面と滑ることなく接触して相対位置の変化を追跡する。マウスの内部では、２つの直交する軸方向のボールの回転が、ボールに押し付けられたホイールによって測定される。ホイールは、対応した方向の回転を取り込み、そうでない方向の回転は取込まない。このようにして、それぞれのホイールは、回転の直交した成分を区分する。各ホイールの回転量を決定するために、機械式あるいは光学式センサーが設けられ、それぞれの軸方向の相対運動として、ケーブルを通してコンピュータへ送られる。コードレスの設計および可動部分のない設計も既知である。トラックボールは反対の位置関係にあり、ユーザの手あるいは指が、基準面として機能する。
【０００８】
マルチスクリーンディスプレイドライバーシステムは既知である。これらのシステムでは、単一GUIオペレーティングシステムワークスペース上に、複数のビューイングポートを許容する。これらは、プロセス制御あるいはマルチメディアアプリケーションに用いられ、ディスプレイスクリーンは、特定の情報あるいはタスクに専用され得る。仮想イメージあるいは「デスクトップ」が、壁面ビデオのように、複数のディスプレイにわたって拡大表示される。しかしこれらのシステムでは、ユーザの複数の入力でGUIを制御するために、同時入力を処理するようなことは、想定していない。
【０００９】
既知のマルチプルディスプレイシステムとしては、MVＰ-4Xアダプターなどといったものが、STB
Systems, Richardson, TXで製造されている。カラーブラフィックコミュニケーション（Colorgraphics Communications）
(Atlanta, GA)は、多数のマルチプルVGAアダプターを製造しており、その中には、PCMCIA Voyager VGA、Twin Turbo
Accelerator、Super Warp、Warp4、およびPOS ビデオアダプター、Dual VGA Flap Panel、Pro Lightning
Seriesがあり、マイクロソフトウインドウズ（R)、ウインドウズ（R) NT、あるいはOS/2をベースとするコンピュータが、一基以上のアクティブなディスプレイを持つことを可能にする。マルチディスプレイアダプターカードは、他にもEasy
Systems(Belgium)、 およびMicro Deutschland (ドイツ) から入手できる。
【００１０】
本明細書に参考として援用する米国特許第5,437,014号(Busboomら)は、1基のメインプロセッサに依存する複数のターミナルデバイスを持ち、マウスの複数のイベントをサポートし、そして複数のアプリケーションプログラムを実行するシステムに関する。メインプロセッサが、それに依存するワークステーションの活動を分離し、その結果、複数のワークスペースを持つ。したがって、個々のマウスのイベントは、一つのワークステーションのタスクと関連付けられる。
【００１１】
本明細書に参考として援用する米国特許第5,442,376号(Tannenbaumら)は、複数の入力をサポートするマルチタスクのグラフィック環境に関する。これらの入力は互いに対称的ではないが、しかし矛盾のないインターフェースが提供される。したがって、それぞれの入力源は、処理される間、特別に区分されている。
【００１２】
本明細書に参考として援用する米国特許第5,442,788号(Bier)は、複数のユーザが単一のスクリーンを制御できる、マルチユーザマルチデバイスシステムに関する。個々のユーザには１個あるいはそれ以上のデバイスが提供され、１個あるいはそれ以上のアプリケーションを制御するのに用いられ得る。どの時点でも、システムはすべてのアプリケーションに対し矛盾のないビューを、一基のスクリーン上に生成する。個々のユーザの入力は、そのユーザの所望に応じカスタム化された応答を引き起こし、これらの入力によって引起こされたイベントは、入力源によって、識別される。システムへの入力によってイベントレコードの蓄積が開始され、待ち行列に供給されて、特定のアプリケーションへ送られる。ソフトウエアは、複数のデバイスからの入力ストリームを一括して扱い、どの入力がどのユーザによるものかの記録を追跡する。ユーザのアクションが衝突しない限りは、システムはすべての活動を一括して進めることが出来る。衝突が有れば、ポーズのためにウエイトを更新する。
【００１３】
【特許文献１】米国特許第5,437,014号公報
【特許文献２】米国特許第5,442,376号公報
【特許文献３】米国特許第5,442,788号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は、マルチスクリーンディスプレイドライバーシステムであって、それに応じた複数のユーザ入力を持つものに適用し、広大な仮想イメージ空間の一部を置き換えて、マルチユーザ環境を提供する。したがって、イベントドリブン型GUIオペレーティングシステムを有する単一コンピュータシステムは、複数の入力デバイスから入力を受け取り、一基あるいは複数のディスプレイを制御し、よって個々のユーザ専用の領域に対しては、明白な排他的かつ邪魔をされない制御を提供し、共用の領域あるいはオブジェクトに対しては、インターラクティブな制御を提供するものである。
【課題を解決するための手段】
【００１５】
本発明のコンピュータシステムは、プロセッサを含み、仮想ディスプレイ空間を有するグラフィカルユーザインターフェースを使用し、イベントドリブン型制御プログラムを実行し、統合ユーザポインティング入力イベントストリーム処理システムを有するコンピュータシステムであって、該制御プログラムが、該仮想ディスプレイ空間内の異なった位置を示す少なくとも第一および第二のユーザ入力を受け取り、該ユーザ入力の各々が、該制御プログラムのイベントの生成と関連付けられており、該第一のユーザ入力と該第二のユーザ入力との間が区別されることなく処理され、該制御プログラムが、第一のユーザ入力に関連した一連のイベントを、同時に発生する第二のユーザ入力に関連する一連のイベントから機能上目に見えるような干渉を受けることなく処理する運用モードを有する。
【００１６】
本発明のコンピュータシステムは、前記イベントドリブン型制御プログラムが、ウインドウズ（R)、ウインドウズ（R)フォーワークグループス、ウインドウズ（R)ＮＴ、ウインドウズ（R)９５、ＯＳ／２、およびマッキントッシュオペレーティングシステムからなる群より選択されるグラフィカルユーザーインターフェースシステムであり得る。
【００１７】
本発明のコンピュータシステムは、さらに、複数のディスプレイを含み、それぞれのディスプレイが、仮想ディスプレイ空間の一部を表示し得る。
【００１８】
本発明のコンピュータシステムは、前記複数のディスプレイのそれぞれが、仮想ディスプレイ空間の異なる部分を表示してもよい。
【００１９】
本発明のコンピュータシステムは、前記ユーザ入力の少なくとも１つが、絶対座標位置を含んでもよい。
【００２０】
本発明のコンピュータシステムは、前記ユーザ入力が、絶対座標位置を、該ディスプレイ上に重ね合わせたタッチセンシティブデバイスから受け取り、その結果、該タッチセンシィブデバイスの対応するディスプレイの位置に対するタッチが、該ディスプレイの位置にカーソルを移動させ得る。
【００２１】
本発明のコンピュータシステムは、前記ユーザ入力が、タッチスクリーンから絶対座標位置を受け取り得る。
【００２２】
本発明のコンピュータシステムは、少なくとも２基のディスプレイデバイスを含み、そのデバイスの個々が、前記仮想ディスプレイ空間の異なる部分を表示し、そして少なくとも２基のユーザ入力デバイスを含み得る。
【００２３】
本発明のコンピュータシステムは、前記仮想ディスプレイ空間が、複数のオブジェクトを含み、個々のユーザ入力が、該オブジェクトの１つと関連づけられ得る。
【００２４】
本発明のコンピュータシステムは、前記複数のオブジェクトが、複数のアプリケーションウインドウを含んでもよい。
【００２５】
本発明のコンピュータシステムは、前記制御プログラムが、アプリケーションウインドウを有するアプリケーションをサポートし、アプリケーションウィンドウに関連するアプリケーションが、制御プログラムからイベントを受け取り、さらに該アプリケーションウィンドウに関連するユーザ入力に関するイベントを処理し得る。
【００２６】
本発明のコンピュータシステムは、さらに複数のディスプレイを含み、個々のディスプレイが、該仮想ディスプレイ空間の異なる位置を表示し、該制御プログラムが、ＷＩＮ１６、ＷＩＮ３２、あるいはＯＳ／２Ａ１ＰＩシンタックスに対応し得る。
【００２７】
本発明のコンピュータシステムは、さらに、以下を有するプロセッサーを含み得る：カウンター；  該カウンターの状態を蓄積するためのメモリ；  いずれかの該入力のアクティベート入力ステータス（状態）に対しては該カウンターを増加させ、かついずれかの該入力のインアクティベート入力ステータス（状態）に対しては該カウンターを減少させるための手段；  該カウンターのカウントが増加する際には、順番に、カーソルを該位置へ移動させ、ボタンダウンおよびボタンアップメッセージを生成するためのポイントモード手段；  および、該カウンターの蓄積状態を更新するための手段。
【００２８】
本発明のコンピュータシステムは、さらに、以下を有するプロセッサーを含み得る：  カウンター；  該カウンターの状態を蓄積するためのメモリ；  いずれかの該入力のアクティベート入力ステータス（状態）に対しては該カウンターを増加させ、かついずれかの該入力のインアクティベート入力ステータス（状態）に対しては該カウンターを減少させるための手段；  カウンター値が０へ遷移した際には、ボタンアップメッセージを生成し、該カウンター値が１に遷移し該蓄積された初期状態値が０となった際にはボタンダウンメッセージを生成し、そしてその他の場合にはボタンダウンメッセージ状態を維持するためのドラッグモード手段；  および、該カウンターの該蓄積状態を更新するための手段。
【００２９】
本発明のコンピュータシステムは、さらに相対ポインティング位置ユーザ入力の出力をディスプレイ座標位置に変換するためのシステム、および該相対ポインティング位置ユーザ入力に基づき前記制御プログラムとは独立しているユーザカーソルを、該ディスプレイ上に表示するためのシステムを含み得る。
【００３０】
本発明のインターフェースシステムは、複数のオブジェクトを含む仮想ディスプレイ空間を有するイベントドリブン型グラフィカルユーザインターフェースシステムであって、以下を包含する：  ユーザ入力インターフェースであって、識別された複数のユーザ入力デバイスから複数のユーザ入力に感応し、該ユーザ入力が、それぞれ少なくとも一個のオブジェクトと関連付けられ、かつ、ユーザ入力デバイスの識別符号によっては実質的には区別することのできないイベントの生成と関連付けられる、ユーザ入力インターフェース；
該インターフェースシステムが、第一のオブジェクトに関連する第一のユーザ入力に関連付けられたイベントの時系列と、第二のオブジェクトと関連する第二のユーザ入力に関連付けられた同時に生成するイベントの時系列とをお互いに干渉することなしに処理するためのモード。
【００３１】
本発明のインターフェースシステムは、イベントドリブン型グラフィカルユーザインターフェースであって、さらに該グラフィカルユーザインターフェースを制御するための制御プログラムを含み、単一のシステムカーソル、相対ポインティング位置ユーザ入力の出力によって生成したイベントをディスプレイ座標位置に変換するシステム、および該相対ポインティング位置ユーザ入力に基づき、該システムカーソルとは無関係であるユーザカーソルを、グラフィカルユーザインターフェース上に表示するためのシステムを有し得る。
【００３２】
本発明のインターフェースシステムは、複数のオブジェクトを含む統合仮想ディスプレイ空間を有するイベントドリブン型グラフィカルユーザインターフェースシステムであって、以下を含み得る：  少なくとも一つの識別されたユーザ入力デバイスからの複数のユーザ入力に関連したイベントを生成するユーザ入力インターフェースであって、該インターフェースシステムが、ユーザ入力デバイスの識別符号を実質的には参照することなく、第二の該複数ユーザ入力および第二の該複数ユーザ入力に関連した一連のイベント間に相互の干渉なく、一連のイベントを同時並行に処理し得る、ユーザ入力インターフェース。
【００３３】
本発明のインターフェースシステムは、イベントドリブン型グラフィカルユーザインターフェースであって、前記インターフェースシステムが、単一システムのカーソルを有し、さらに相対ポインティング位置ユーザ入力の出力によって生起したイベントをディスプレイ位置座標に変換するシステム、および該相対ポインティング位置ユーザ入力に基づき、該システムカーソルとは無関係であるユーザカーソルを、グラフィカルユーザインターフェース上に表示するためのシステムを有し得る。
【００３４】
本発明のインターフェースシステムは、イベントドリブン型グラフィカルユーザインターフェースであって、個々のイベントが、他の入力とは無関係に、前記仮想ディスプレイ空間内の位置およびタッチの状態と関連しており、該インターフェースシステムが、複数の異なる入力に関連づけられた一連のイベントを処理するためのモードを有し、ここで、最初の入力に関連する位置にあるオブジェクトが、共存する最終の入力に関連する位置に移動し、該最初の入力の始まりおよび最終の入力の最後とを決めるためにタッチの状態を追跡するためのカウンターを含み得る。
【発明の効果】
【００３５】
本発明に係るマルチユーザー/マルチポインチングデバイスグラフィカルユーザーインターフェースシステムは、マルチスクリーンディスプレイドライバーシステムであって、それに応じた複数のユーザ入力を持つものに適用し、広大な仮想イメージ空間の一部を置き換えて、マルチユーザ環境を提供することができる。したがって、イベントドリブン型GUIオペレーティングシステムを有する単一コンピュータシステムは、複数の入力デバイスから入力を受け取り、一基あるいは複数のディスプレイを制御し、よって個々のユーザ専用の領域に対しては、明白な排他的かつ邪魔をされない制御を提供し、共用の領域あるいはオブジェクトに対しては、インターラクティブな制御を提供することができる。
【発明を実施するための最良の形態】
【００３６】
本発明に関連して用いられるGUIオペレーティングシステムは、通常イベントドリブン型であって、１つのイベント待ち行列と単一の仮想ワークスペースをもち、イベント処理の間、一つのユーザ入力が排他的にプロセッサを専有する。このように、イベントが待ち行列に置かれ、個々のイベントは、一般的に生起した順あるいは優先度に応じて、サービスルーチンによって処理される。本発明は、待ち行列中のポインティングデバイスイベント（以下、「マウスイベント」という）に入力デバイス識別子を含ませたりして、イベント処理を変更するものではない。したがって、既存のオペレーティングシステムやアプリケーションに、実質的な変更を要求しない。したがって、入力デバイスドライバーシステムは、マウスイベントを、その前後関係に応じて処理し、オペレーティングシステムおよびアプリケーションへ適正に送り出すだけで良い。ここでの前後関係としては、たとえば多数の同時ポインティングデバイスアクティベーションイベント(以下、「マウスボタン押下イベント」という)であり得、もちろん、種々の入力デバイスによって異なった方法で生成され得る。
【００３７】
これらのオペレーティングシステムは、同時には単一ユーザを対象に動作するように設計されているので、オペレーティングシステムには複数のポインティングデバイス入力を区別するような準備はなく、単一のマウスボタンイベントの生起を検知するのみである。したがって、従来の技術によるシステムでは、ユーザ入力デバイスが同時に複数アクティブとなるような状況下で、同一の仮想ディスプレイ空間において異なったユーザ入力によってなされたイベントを区別することができず、混乱と干渉を生じる。本発明は、したがって、ユーザ入力のイベントを処理した結果としてシステムの状態変化を決定するための入力デバイスのインターフェースを提供するものであって、その結果、イベントを前後関係に応じて処理することを可能とし、他の関係のないイベント処理を邪魔しない。その結果、目に見える干渉なしに、イベント処理がなされ得る。
【００３８】
本発明は、好ましくは、仮想ディスプレイ空間をユーザ別領域に分離したりセグメント化したりするものではなく、そして、異なった操作源によるポインティング入力を、特に区別するものでもない。したがって、異なった操作源によるポインティング入力は、すべて対称的になる。さらに、二つの異なったユーザ入力は、必要であれば相互作用し得る。たとえば、ドラッグ操作において、移動元と移動先を示すようなことである。本発明には、「マウスボタン押下」カウンターが含まれ、これを用いて、あるイベントを処理する前のシステムの状態を定義し、そのイベントを処理した結果としての状態の変化を決定することが可能になる。この操作の局面は重要である。なぜなら、ユーザポインティングデバイス入力イベントには、「ボタンダウン」あるいは「ボタンアップ」によってトリガーされる重要な機能があるからである。
【００３９】
本発明のシステムは、したがって、オペレーティングシステムの構成を変更することなく、複数のユーザ入力に関係した状態変化を分別することを可能にする。この機能は、割込みサービスルーチンとして切り離して新しくユーザ入力を処理させ得るので、好適な実施態様では、コンピュータシステムのためのソフトウエアをベースとするデバイスドライバーが、サービスコールの割り込みに応答する。
【００４０】
新しい入力がなされて受け取られると、そのイベントは定義され、処理のために待ち行列に置かれる。このイベントによって、デバイスの形式（たとえば、ポインティングデバイス）、位置（たとえばX,Y座標）そして状態（たとえばボタンダウン、ボタンアップ）が定義される。ここで、イベント待ち行列中の関連するユーザ入力デバイスは、すべて同一形式と仮定する。すなわち、この解析では、キーボードからの入力は、考えないものとする。新しくボタンダウンあるいはボタンアップイベントが生じると、それぞれカウンターが1増加、あるいは1減少する。これ以外の際は、カウンターは変らない。
【００４１】
二つの操作モードが定義される。第一のモードでは、複数のユーザが、互いに干渉することなく、独立して操作することが意図される。第二のモードでは、１あるいは複数のユーザの入力で、共同して操作することが意図される。
【００４２】
第１のモードでは、新規のタッチが生じると、すなわちタッチカウンターが増加すると、ボタンのクリック、たとえばカーソルの移動、続いてボタンダウン、次にボタンアップというシーケンスが生成される。このシーケンスにおいては一連のイベントにフィルターを掛けて、新規のタッチに対して、新規の「ボタンダウン」イベントのみを確定する。新規のタッチが検出されないときは、システムはイベントに対し、何らのアクションもとらず、イベントの待ち行列の処理を続けている。このモードにおいてはドラッグおよびダブルクリック操作はサポートされない。新規のタッチ毎に、カーソルの位置は、対応するポインティングデバイスによって制御される。したがって、絶対位置で表示するポインティングデバイスたとえばタッチスクリーンでは、それぞれのタッチごとにその位置へカーソルは移動する。
【００４３】
第二のモードにおいては、タッチカウンターが減少してゼロになっているかどうかが、重要な確認すべき項目である。これによって、唯一のタッチがリリースされる状況と、複数のタッチの１つがリリースされかつ少なくともまだ１回のタッチが残っているといった状況とを、区別するからである。一般的に、第二のモードでは、カーソル位置に関して、通常プロセスシーケンスを終了させてしまう「ボタンアップ」イベントを生成することなしに２つのユーザ入力の間で「受け渡し」することが許され、複数の入力の共同作業が許容される。このように、複数のタッチが登録されている際、システムはイベント待ち行列を連続的に処理しているが、最後のタッチがリリースされるまで、タッチを「ボタンアップ」イベントとしては処理しない。このようにして、２あるいはそれ以上のユーザ入力がシステムの注意を引こうとし、それが最後の、あるいは唯一の入力でない限りは、実際上には完全な制御権を得ることは出来ない。このように、第一のユーザ入力は、仮想ディスプレイ空間上でオブジェクトを選択するのに用いられ、それは第二の仮想ディスプレイ空間上の第二のユーザ入力に引き継がれて、オペレーションは完結され得る。タッチカウンターが減少してゼロになれば、「ボタンアップ」イベントが最終的に生成される。タッチカウンターがゼロまで減少しないときは、たとえ新規にタッチが加わったり、以前のタッチがなくなっても、ユーザ入力は「ドラッグ」イベントとして処理される。第二のモードにおいては、ドラッグおよびダブルクリック操作もサポートされる。
【００４４】
第一のモードにおいて、システムソフトウエアは以下のように設計される。すなわち、それぞれのユーザの一連のイベントは、解釈され、意味のある個々のイベントはバッファーに保管され得る。十分な能力を備えたコンピュータシステムにおいては、この中断は一瞬でトランスペアレントであるので、このようにして、それぞれのユーザはシステムを制御しているように見える。
【００４５】
好ましくは、第一のモードにおいて、ユーザ間での干渉を避けるために、それぞれのユーザは特定のアプリケーションへのみアクセスでき、オペレーティングシステム全体へはアクセスが制限される手段が提供され得る。このことは、個々のユーザへはシステムレベルの機能を含まないGUIディスプレイ空間を提供し、このディスプレイ空間から外へ出る能力を制限することによって、実現できる。
【００４６】
絶対位置表示のポインティングデバイスたとえばタッチスクリーン、ライトペン、感圧スクリーンが用いられる際、これら個々のポインティングデバイスのデバイスドライバーは、オペレーティングシステムにポインティング座標を提供する。したがって、ポインティング入力に曖昧さはない。このタイプのポインティングデバイスにおいては、ユーザに目に見えるカーソルが表示される必要はない。というのも、タッチの位置が、カーソルの位置を意味するからである。この場合、システムカーソル位置が高速で移動する際は、ユーザに見えないので、表示される必要はない。
【００４７】
他のポインティングデバイス、たとえばタッチパッド、マウス、およびトラックボールにおいては、ユーザへのフィードバックのためにカーソル位置を表示することが好ましい。この場合には、すべてのデバイスのイベントが割り込みを発生させ、カーソル位置を更新するため、表示されたカーソルは、いくつものポインティングデバイス位置において点滅することになって、種々のポインティングデバイスを用いてカーソルを制御する際に、どこに決めればよいかという問題を生じさせる。従って、この場合には、システムカーソルの表示を消し、替わりにポインティング入力デバイスのそれぞれの位置を取り込み、このおのおののポインティングデバイスに対応した位置に関し、グラフィックオブジェクトをスクリーン上に表示する。このようにすると、それぞれポインティング入力に対応した複数のユーザカーソルが仮想ディスプレイ空間に現れるが、オペレーティングシステムは依然、単一のカーソルを認識するだけで良いことになる。ポインティングデバイス入力を取込み、仮想ディスプレイ空間上のグラフィックオブジェクトを実際のディスプレイの適切な位置へ表示することは、当業者の技術範囲内である。
【００４８】
相対位置入力ポインティングデバイス、たとえばマウス、トラックボールなどでは、さらに強化することが好ましい。一般に、これらのデバイスは、カーソルの相対位置運動データを生成する。これが適切であるのは、カーソルのスタート位置が、単一の特定のポインティングデバイスの過去の履歴によって決定する場合である。しかしながら、複数のポインティングデバイスが、独立にカーソルの位置を変える場合には、スタート位置は適切でない。従って、相対位置ポインティングデバイスの出力を、使われる実際のディスプレイデバイスと仮想ディスプレイ空間にとって都合の良い絶対座標位置へ換算するための、ドライバーが提供される。さらに有利なことに、この機能は、前記のグラフィックユーザカーソル生成システムと結合され得る。このシステムは、ユーザカーソルの絶対位置を、仮想ディスプレイ空間内に制限することが出来る。このようにして、カーソル位置の相対運動を決定する情報を送り出す代わりに、特定のポインティングデバイスの過去の運動履歴に基づいて、ドライバーシステムが座標を決定する。こうすることで、種々のポインティングデバイスを用いることが可能となる。
【００４９】
留意すべきは、この入力デバイスドライバーは、オペレーティングシステムの動作を変更しないことである。これは本質的に、単一のシステムカーソル位置を扱う、シングルユーザタイプのままである。本発明によれば、ユーザ入力はポインティング位置に応じて対称的に処理され、入力源の種類によって区別されない。本システムによれば、このシングルユーザ、マルチタスクオペレーティングシステムが、あたかもマルチユーザオペレーティングシステムのように見える。
【００５０】
ディスプレイドライバーデバイスによっては、ハードウエアによるカーソルディスプレイをサポートしていて、ユーザカーソルを、幾分かはオペレーティングシステムと独立しているように見せるのに使われ得る。他の場合には、カーソル位置表示と座標換算が、デバイスドライバーあるいはアプリケーションプログラムとして作動する。
【００５１】
本発明によれば、一般的にシングルユーザインターフェースシステムは、ある規則性の下で、マルチユーザインターフェースに加工することができる。これは、入力デバイス、複数の現実のディスプレイポートを有する多数のディスプレイウインドウを含有する仮想ディスプレイスクリーンを提供することによってなされる。ここで、この個々のディスプレイウインドウに該仮想ディスプレイスクリーンの領域が関連付けられる。該仮想ディスプレイスクリーン上の領域に関連したいくつかの入力デバイスのうちの１つからの入力は、ディスプレイウインドウに関連付けられていてそのウインドウにおいて制御を行うこととなる。
【００５２】
従って、本発明の目的は、以下の構成からなるコンピュータシステムを含むマルチディスプレイのGUIシステムを提供することである。プロセッサ；ディスプレイ出力インターフェースおよびユーザ入力インターフェース；  複数のディスプレイであって、各々がグラフィックイメージを表示して、かつ該ディスプレイ出力インターフェースと対応するディスプレイ；  複数のユーザ入力デバイスであって、各々のユーザ入力デバイスが該ディスプレイのいずれかと関連付けられていて、該ユーザ入力インターフェースへの入力を発生させるユーザ入力デバイス；  該コンピュータシステムは、統合仮想ディスプレイ空間をもつGUIを含有するイベントドリブン型制御プログラムを実行し、該入力デバイスがイベントを生起し；  複数のユーザ入力デバイスからのユーザ入力を同時に受け取って、該ユーザ入力に関する情報を該複数のディスプレイに表示するためにあり、複数のディスプレイのそれぞれに表示されるグラフィックディスプレイが、該統合仮想ディスプレイ空間の少なくとも一部であり、ここで、該複数ユーザ入力デバイスのうちの少なくとも2基がGUIコマンドの入力のために同時に使用され得て、それぞれのユーザ入力は、ユーザ入力に対しほぼリアルタイムの応答を有し、それぞれの入力デバイスが、該関連付けられたディスプレイ上の該グラフィックイメージに対し、見かけ上連続的に制御できる。
【００５３】
このディスプレイイメージは、ビデオスプリッターを用いて複数のディスプレイデバイスへ同時に表示させることも出来る。１人あるいはそれ以上のユーザによる使用に対し、同じイメージを複数のディスプレイへ表示することが可能になる。
【００５４】
本発明の１つの実施態様として、複数のディスプレイモニター画面に重ねて、透明なタッチスクリーンが提供される。ユーザがいずれかのタッチスクリーンにタッチすることで絶対位置のイベントが発生し、簡単なタッチあるいはスクリーン上をドラッグするだけで、イベントが生成できる。個々のディスプレイモニターは、同一のイメージを表示しても、異なったイメージを表示してもよい。
【００５５】
イベントドリブン型制御プログラムは、ウインドウズ（R)、ウインドウズ（R)フォーワークグループス、ウインドウズ（R)
NT, ウインドウズ（R) 95、 OS/2 およびマキントッシュオペレーションシステムからなる群から選択されるGUIシステムであることが好ましい。ディスプレイは、カラーラスターの陰極管（CRT）ディスプレイであることが好ましいが、液晶、エレクトロルミネッセンス、真空フルオレッセンス、発光ダイオード、冷陰極管あるいはこれら以外のディスプレイでもあり得る。
【００５６】
ユーザ入力デバイスは、関連ディスプレイに重ね合わせた透明なタッチスクリーンであることが好ましい。タッチスクリーンには、表面音響波、電気抵抗、容量、赤外線、感圧あるいは他の形式がある。もちろん、これら以外のポインティングデバイスも、用いられ得る。
【００５７】
システムは、少なくとも2基のディスプレイデバイスと、2基のユーザ入力デバイスを含むことが好ましい。ディスプレイドライバーは、集積したマルチディスプレイアダプターあるいはビデオスプリッタであってもよく、入力インターフェースは、マルチ入力デバイス、デージーチェーン接続入力デバイスあるいは独立したデバイスであっても良い。
【００５８】
本発明の他の実施態様として、マルチディスプレイGUIシステムが提供される。ここで、統合仮想ディスプレイ空間をもつGUIを含有する該イベントドリブン型制御プログラムは、統合仮想ディスプレイ空間に複数のディスプレイウインドウを生成する。該ディスプレイウインドウの一つのみがある瞬間に処理されるイベントと関連付けられ、該入力デバイスの一つへの入力が、その時に処理されている該ディスプレイデバイスの、統合仮想ディスプレイ空間の該一部分のウインドウと関連付けられたイベントを生成する。
【００５９】
このシステムは、比較的標準的なハードウエアおよびオペレーティングシステムを用いて実現され得る。たとえば、プロセッサが80X86命令セットグループプロセッサーを実行するような、プロセッサのグループである。もちろん他のアーキテクチュア、たとえば、PowerPC,
MIPS, SPARC, Alphaあるいは、他のCISCあるいはRISCマイクロプロセッサーが用いられ得る。複数のVGA、Super VGA、あるいはウインドウズ（R)アクセラレータディスプレイシステムであって、シングルボードあるいは複数のボードに載せたものなどが用いられうる。複数のディスプレイにイメージを表示するのに、ビデオスプリッタも用いられ得る。
【００６０】
本発明を完全に理解するために、本発明の好適な実施態様の詳細を、以下に図を参照しながら示す。本発明の種々の図において同一の要素については、同一の参照番号が付される。
【００６１】
以下に詳説する本発明の実施例においては、ウインドウズ（R）、ウインドウズ（R）フォーワークグループ、ウインドウズ（R）95、あるいはOS/2が走り、80486
DX2-66、あるいはペンティアム(登録商標)66プロセッサ、16メガバイトのメモリー、500-1080メガバイトのハードドライブといった典型的な構成のシステムが提供される。本発明では、エロタッチスクリーン(Elo
Touch Systems Inc., Oak Ridge, TN)を備えた複数のSVGAタッチスクリーンモニターが、STB MVP-4Xディスプレイアダプターをインターフェースとして接続され、ウインドウズ（R）、ウインドウズ（R）NT、OS/2あるいはマッキントッシュ用のソフトウエアドライバーElo
"MonitorMouse" を備えた複数のRS-232ポートが本発明に従って接続される。これらのドライバーは、タッチスクリーンからの典型的なウインドウズ（R)ユーザ入力、たとえばクリック、ダブルクリック、移動、ウインドウの大きさ変更、ドラッグおよびドロップ、スクロールおよびプルダウンメニューからの選択を許容する。このシステムはまた、タッチスクリーン入力によるDOSセッションが同様に実行されることを許容する。
【実施例１】
【００６２】
従来技術として知られているように、図1に示すシステムは、複数のアプリケーションを実行し、それぞれがモニター上のウインドウを占有する。このシステムは、ウインドウズ（R)フォーワークグループオペレーティングシステムおよびMS-DOS
6.22を実行する。マウス2およびキーボード3を含む機能を補う標準的な周辺機器を備えたIntelの80486 DX2/66プロセッサ1が提供される。Eloタッチスクリーン5を設けたSVGAモニター４が提供される。タッチスクリーン5が使用されている間は、マウス2は動作不能とされる。２つのウインドウ化されたアプリケーション6,7が、モニター4に表示されている。
【実施例２】
【００６３】
図2では、一般的には図1のシステムによるが、ビデオスプリッター9を備え、タッチスクリーン5,5'を取り付けたモニター4,4'上に、ウインドウ6,7のある２つのアプリケーションを表示するシステムである。本発明のシステムでは、両方のモニターのタッチスクリーンを、同時に使用することが許容される。
【実施例３】
【００６４】
図3は、一般的には図1のシステムによるが、タッチスクリーン5,13を備えたSVGAモニター4,12を、複数出力のSVGAディスプレイドライバ14,15  STBモデルMVP-2Xが駆動するシステムを示す。アプリケーションのためには一つの仮想ディスプレイ空間が提供され、複数のモニター4,12へ展開される。このように、アプリケーションA
10、A 10'の一部はモニター4,12に表示され、同様に、アプリケーションB 11、 B 11'の一部は、モニター12,4に表示される。タッチスクリーン5,13は、同時に使用し得る。
【実施例４】
【００６５】
図4は、一般的には図1によるが、それぞれタッチスクリーン17,19,21,23を備えた、SVGAモニター16,18,20,22を、複数出力のSVGAディスプレイドライバ24,25,26,27  STBモデルMVP-2Xが駆動するシステムを示す。アプリケーションのためには一つの仮想ディスプレイ空間が提供される。図4に示されているのは、１つのアプリケーションウインドウA1,
A2, A3,Bが、個々のモニター上で最大化され、それぞれのユーザがそのウインドウへ排他的にアクセスできることを示す。ここでアプリケーションA1,A2,A3は、複数のコピーあるいは異なる時点での同一のアプリケーションであり、一方アプリケーションBは、異なったアプリケーションである。これらのアプリケーションは、仮想デスクトップの全面にわたってタイル化され、それぞれのディスプレイにおいて最大化できる。タッチスクリーン17,19,21,23は、複数のユーザ間の干渉なく同時に使用し得る。
【００６６】
POS(Point of Sale)プログラムの複数のコピーあるいは異なる時点でのプログラム、あるいは異なるプログラムが、仮想ディスプレイ空間上の分離されたウインドウ内で実行される。個々のウインドウは、別々のモニターに表示される。個々のモニターのタッチスクリーンは、ひとつの分離したウインドウに重ねあわされる。一つのウインドウ上のタッチスクリーン表面にタッチすると、オペレーティングシステムにイベントをトリガーし、そのウインドウを「アクティブ」状態、すなわち関心の的となっていて前後関係に合わせてスイッチしうる状態とする。それぞれのPOSアプリケーションは、その娘ウインドウあるいはダイアログボックスなどを有し得る。しかし、これらのスクリーンオブジェクトのそれぞれは、いずれのシーケンスも割り込まれうる、すなわち、開かれたダイアログボックスは前後関係の切り替えがなされなくなるように入力をロックすることはないようにして、提供される。
【００６７】
これらのGUIオペレーティングシステムは、ある一瞬には単一のユーザに使用されるように、本質的に設計されているので、一般的プログラミングモデルは、単一のマスタープログラム、すなわちウインドウズ（R)においてはプログラムマネージャー、マッキントッシュにおいてはFinder等と言ったプログラムだけを提供している。従って、この高レベルの機能は、すべてのユーザにとってのシステムの動作が停止することを避けるために、すべての通常のユーザ入力、あるいは、誤ったユーザ入力からは隠されているか、あるいはアクセスできないようになっていることが望ましい。さらに一般的に、システムに働きかけるのに一義的入力にはGUIが使われるが、しばしばこれらの機能には、キーボードによってもアクセスできる。したがって、好ましい実施態様としては、一般のユーザにはキーボードを使用できなくしておく。あるいは、意図せずに他のユーザを妨害するのを避けるため、キーボード入力をフィルターに掛け、入力データは、対応するポインティングデバイス入力と関連付けられるものとする。
【００６８】
一般的に、システムの観点からすると、ドラッグ操作は、割り込まれないものである。しかし、イベントドライバアーキテクチャーにおいては、そうである必要はない。というのは、「離す」というイベントは、必ずしも「押す」というイベントの入力と連続的でなくとも、定義されうるからである。
【００６９】
したがって、本発明の基本的要素として、統合イベントドリブン型環境において、複数の入力デバイスからのイベントストリームを、準リアルタイムで処理し、異なった源からのイベントのストリームを一般的には生起した順に処理するのに十分な帯域幅を備えたイベントサーバが、提供される。ここで注意すべきは、システムは必ずしもリアルタイムプロセッサである必要はなく、また、異なった源からのイベントは、その時間的な生起の厳密な順に処理される必要はないことである。同一の源からのイベントは、生起の順に処理される必要があるが、それらがバッチ処理されてもよい。このようにイベントをバッチ処理することは、一つのコマンド入力に、一連のイベントが対応するような場合に効率的である。ここで注意すべきは、カーソル移動のイベントは、可能な限りリアルタイムに近く処理される必要があることであり、また、これらのコマンドの順序を変えて、すなわち他の形式のコマンドは、待ち行列において実行できることである。このようにして、イベントは少なくとも二つのフェーズ、すなわち形式の判定と、実行フェーズで処理され得る。
【００７０】
このように、タッチスクリーンを用いると、ある領域内のタッチあるいはリリースが、タッチあるいはリリースの時刻（あるいは順序）および、タッチあるいはリリースの位置を含んだイベントを引起こす。もしタッチされたのがそのウインドウによって制御されていないスクリーンの領域であると、このイベントはスーパバイザプログラムで処理され、結果としては目に見える効果としては現れない。一方、もしタッチあるいはリリースがこのオープンしたウインドウによって制御されるスクリーンの領域であれば、そのウインドウの制御プログラムによって処理される。もし、タッチあるいはリリースがアクティブでないウインドウ上であれば、ある状況下では、スーパーバイザプログラムがイベントに割り込んで、処理を続けること無しに、そのウインドウをアクティブとする。これは通常には「安全対策」で、制御をウインドウ間で受け渡しするのは、通常の操作モードでは有り得ないとする仮定に基づき、従って、現在はアクティブでないウインドウを制御しているプログラムが突然実行を開始するのを避けるため、遅延を課すべきだとの仮定に基づいている。本発明によれば、多くの場合、この安全対策は省略されたり、変更されたりする。そのタッチあるいはリリースは、着目している制御プログラム、および、そのプログラムあるいはウインドウ内のコマンドを切り替える。このように、アクティブでないウインドウがそれぞれ、同様にタッチ入力イベントに対応するように見える。このように、アクティブおよびアクティブでないウインドウが、同様に動作するように見えるので、これ以降は、アクティブでないウインドウに注目して議論を進める。アクティブなウインドウでは、恐らくより少ないステップですむ。従来技術によるシステムでは、アクティブとアクティブでないウインドウで、目に見える変化を提供した。しかし本発明においては、実際上リソースが共有されているときには、システム全体にわたって連続的にユーザが制御できる効果を与えるために、同一に見えるようにする方が好ましい。
【００７１】
マルチユーザシステムインターフェースにおいては、タッチイベントからユーザが即座にフィードバックを得ることができ、他のユーザからの入力によってイベントが切り離されてしまわないように、マウスの移動、クリックダウン、クリックアップイベントが割り込みサービスルーチンの待ち行列に入るまで、他のユーザからの割り込みは禁止される。これはユーザには感知されないほどほんのわずかに、ユーザ入力へのシステムの初期応答を遅延させ、このことで、入力の間中、割り込まれること無しの応答が可能となる。
【００７２】
シングルユーザシステムにおいては、複数のディスプレイユニットをまたぐウインドウのドラッグは、片方の手でウインドウにタッチして、同時にもう一方の手で別のディスプレイユニットにある動かしたい目的の位置にタッチし、つづいて最初のウインドウから手を放す。こうすることで、ウインドウを第二のディスプレイユニットの位置へと動かすことが出来る。ドラッグイベントが開始されるときに、最初のタッチイベントが検知され、オブジェクトを動かすのに、一連の座標が用いられる。タッチが中断されない間は、そのウインドウはドラッグ状態にある。他の同時のイベントによる割り込みは、シーケンスの待ち行列として扱われる。このことは、特に個々のディスプレイのタッチスクリーンや入力デバイスが、同一の割り込みレートを持つ際に、起こる。システムハードウエアの並行処理速度が十分に早ければ、個々の入力デバイスは滑らかに動き、システムを見かけ上完全に制御できる。このようにして、標準的なシステムと比較して、入力イベントは、たとえ一つの入力デバイスが一連のイベント、たとえばずっとタッチされたりマウスボタンが押されたままになったりしても、連続的に受け取られて処理される。このように、複数の入力デバイスが滑らかに、同じスクリーンオブジェクトを、同時にドラッグできる。というのも、オブジェクトは、互い違いの個々の割り込みにすばやく行ったりきたりして、互いに干渉しないからである。
【００７３】
標準的システムでのように複数のウインドウ間（あるいは同一アプリケーションの異なった瞬間であっても良い）、の切り替えをシステムスーパーバイザプログラムに委ねる代わりに、仮想スクリーン領域の全体を占有する、特殊なアプリケーションプログラムを提供して、この専用アプリケーションプログラムを介してすべての入力を処理することも出来る。この場合には、専用アプリケーションプログラムは娘ウインドウをもち、それは、随意システムの標準プログラムのオブジェクトであっても、まったくの特別製作品であっても良い。このように、マルチスクリーンアプリケーションプログラムにおいては、オペレーティングシステムあるいはスーパバイザシステムのレベルにおいて、イベント処理にまったくの変更を加える必要がない。
【実施例５】
【００７４】
本発明による方法が、図5,6,および7のフローチャートによって説明されている。図5は、第一の、マルチユーザ、ポイントモードの操作を示す。一方図6は第二の、シングルユーザ、ドラッグモードの操作を示す。図7は、第一のポイントモードおよび第二のドラッグモードの、両方の操作モードをもつシステムを示している。
【００７５】
それぞれのタッチスクリーン入力は割り込みを発生し、それが割り込みサービスルーチン（101）に取込まれる。タッチデータには座標(X,Y)およびタッチ情報（102）が含まれる。次に、タッチデータはその後、タッチの状態（タッチステート：ＴＯＵＣＨＳＴＡＴＥ）が変化しているか（103）,例えば新規のタッチあるいはリリースがあるかどうかをテストする。変化（103）がありタッチ（104）であるとすれば、カウンターが増加させられる（105）。もし、変化（103）があってタッチ（104）がなければ、カウンターは減少させられる（106）。
【００７６】
図7において、二つの操作モードが提供されていて、選択的に実行される（107）。ポイントモードにおいては、最初の処理ステップにおいて、カウンターが増加させられたかどうかが、重要な判断となる。すなわち、新しいカウンターの値が、最初のカウンター値（108）より大きければ、新しくタッチされたことになる。もし、新しい値が大きければ、一連のイベントメッセージ、移動、ボタンアップ、ボタンダウンメッセージ（109）が待ち行列に入れられ、古いタッチカウンター値は更新される（110）。割り込みサービスルーチンは、終了される（111）。このモードでは、さまざまな入力は独立であり、互いに干渉しない。なぜならば、新規のタッチイベントのみが、メッセージを生成するからである。
【００７７】
ドラッグモードにおいての重要な判断は、タッチカウンターが、0へ遷移するか（112）、あるいは0から遷移するか（113）、である。もしタッチカウンターが１で、その前にタッチカウンター値が0であったのなら（113）、移動およびボタンダウンのメッセージが、待ち行列に入れられる（115）。さもなければ、ボタンダウンの状態での移動のメッセージ(ドラッグ)(114)が生成される。もしタッチカウンター値が今は0なら、ボタンアップメッセージ（114）が生成される（116）。タッチカウンターは更新される（110）。割り込みサービスルーチンは終了される（111）。こうすることで、最初のタッチでボタンダウンメッセージを生成し、最後のリリースでボタンアップメッセージを生成するようにできる。こうすれば、ドラッグモードにおいて、種々の入力による相互作用が可能となる。
【実施例６】
【００７８】
図8では、4個の目に見えるユーザカーソル30,31,32,33および目に見えない標準システムカーソル34が、図4に示されたような4基のモニター16,18,20,22にわたる仮想デスクトップ上に示される。個々の目に見えるユーザカーソルは、それぞれ対応した、相対位置ポインティングデバイス2,35,36,37と関連付けられている。このシステムによれば、4個のポインティングデバイスのそれぞれに対応するユーザカーソルの位置は、オペレーティングシステムに知られていない。カーソル生成機能は、デバイスドライバーあるいはアプリケーションプログラムが維持している。デバイスドライバーあるいはアプリケーションプログラムが、それぞれのユーザカーソルの絶対位置座標を蓄積する変数LastUserXn、LastUserYnを維持する。他の過去のユーザ入力の履歴に関する情報、たとえば速度あるいはその動きも、やはり蓄積され得る。
【００７９】
ポインティングデバイスたとえば2,35,36あるいは37からの相対運動が届くと、対応したカーソルの位置が、一般的にはLastUserXn、LastUserYn、必要があれば他のユーザ入力情報にも基づいて、既知の方法によって更新される。しかしながら、目に見えるユーザカーソル、たとえば30,31,32あるいは33は、以下の状況下では、必ずしも相対運動に直接は対応しない。ユーザカーソルは、関連付けられた仮想ディスプレイウインドウの中で移動のみに限定されている。システムカーソル34は、仮想デスクトップのどこへ位置させることも出来るが、ポインティングデバイスの入力の結果として、必ずしも移動する必要はない。システムカーソル34は、目に見えないままにされていても良いし、異なったグラフィック特性をもっていても良い。システムカーソル34は更新され、図5,6および7の方法にしたがって、システムマウスのイベントが生成される。
【実施例７】
【００８０】
相対運動ポインティングデバイスが用いられていても、オペレーティングシステムには、ポインティングデバイスの絶対位置が供給される。したがって、図9に示す方法では、相対運動形式のデバイスからのポインティングデバイス入力が、前もって処理され、一般的には、絶対位置形式のデバイスに対しては用いられない。1基の相対運動タイプのポインティングデバイスを、既知のシステムにおけると同様にシステムカーソルと関連付けておき、すべての通常のオペレーティングシステムのポインティングデバイス入力機能に、アクセスできるようにしておける。
【００８１】
相対位置ポインティングデバイス、たとえばマウス2が用いられているとき、ポインティングイベントを図5,6あるいは7における方法にしたがって処理する前に、図9にしたがった方法での前処理が適用される。この前処理の方法は、二つの機能を果たす。第一に、ポインティングデバイスの過去の使用の履歴と関連した位置に、ポインティング入力デバイスに対するユーザカーソルが生成される。第二に、ポインティングデバイスに関連付けられたオペレーティングシステムへ送られるメッセージは、絶対座標位置へ換算される。
【００８２】
割り込み（120）は、ポインティングデバイスの使用により、発生する。ポインティングデバイスの相対運動が決定され（121）、特定のポインティングデバイスの過去の使用履歴に関連した蓄積された情報、たとえば蓄積された座標の組と結び付けて処理される。この蓄積された情報は、もっと複雑であっても良い。たとえば、射撃カーソルの動きを計算するのに用いられる速度データや、既知のシステムに含まれる動きであってよい。ユーザの絶対座標位置は、このように計算される（122）。ユーザカーソルの移動は、仮想ディスプレイ空間の内部に制限される（123）。蓄積された情報が更新される（124）。ユーザカーソルの位置が、特定のポインティングデバイスと関連付けられたディスプレイデバイスに、表示される（125）。
【００８３】
ポインティングデバイスメッセージがこうして準備され、絶対座標X,Yとして送り出される。図5,6,7のステップ（102）のタッチデータとして参照され、そして、割り込みサービスルーチンは終了される（127）。
【００８４】
このように、詳述された新規なマルチ入力システムによって、そのすべての目的と優位性とが満足される。本発明の多くの変更、修飾、変形、コンビネーション、サブコンビネーション、およびその他の使用や応用などは、しかしながら、本発明の好ましい実施態様を開示したこの明細書や添付された図を見れば、当業者にとっては自明である。本発明の精神および範囲を逸脱しないすべてのそれらの変更、修飾、変形、あるいは他の使用あるいは応用、以下の請求の範囲によってのみ制限される本発明に含まれると見なされる。
【図面の簡単な説明】
【００８５】
【図１】マルチプルウインドウアプリケーションを走らせるシングルユーザシステムの概略図である。
【図２】マルチプルウインドウアプリケーションを走らせるシステムであって、同一の画面を複数のディスプレイへ表示する、ビデオスプリッターを備えたシングルユーザシステムの概略図である。
【図３】マルチプルウインドウアプリケーションを単一の仮想デスクトップに走らせるシステムであって、複数のビデオディスプレイアダプターおよび複数のディスプレイを備えたシングルユーザシステムの概略図である。
【図４】単一の仮想デスクトップに複数のディスプレイアダプターを用いて、マルチウインドウアプリケーションをタイル状に分割して表示するシステムの概略図である。
【図５】本発明の第一操作モードを示す、フローチャートである。
【図６】本発明の第二操作モードを示す、フローチャートである。
【図７】本発明の第一操作モードと第二操作モードを結合した、フローチャートである。
【図８】図４に示した、４基のモニターへ展開した仮想デスクトップ上の、表示されないシステムカーソルおよび４個の表示されたユーザカーソルを示す。
【図９】相対位置ポインティングデバイス入力の処理のフローチャートを示す。
【符号の説明】
【００８６】
１：プロセッサ
２、３５、３６、３７：相対位置ポインティングデバイス（マウス）
３：キーボード
４、４’、１２、１６、１８、２０、２２：ＳＶＧＡモニター
５、５’、１３、１７、１９、２１、２３：タッチスクリーン
６、７：アプリケーションウインドウ
９：ビデオスプリッター
１４、１５、２４、２５、２６、２７：ＳＶＧＡディスプレイドライバ
Ａ１、Ａ２、Ａ３、Ａ１０、Ａ１０’：アプリケーションウインドウ
Ｂ、Ｂ１１、Ｂ１１’：アプリケーションウインドウ
３０、３１、３２、３３：ユーザカーソル
３４：標準システムカーソル
【図１】
2004342125.tif 000003
【図２】
2004342125.tif 000004
【図３】
2004342125.tif 000005
【図４】
2004342125.tif 000006
【図５】
2004342125.tif 000007
【図６】
2004342125.tif 000008
【図７】
2004342125.tif 000009
【図８】
2004342125.tif 000010
【図９】
2004342125.tif 000011