(57)【特許請求の範囲】
【請求項１】
アプリケーションソフトウェアを開始し、同時にウィンドウ管理モジュールを開始し、その後ドキュメントを開き、その後ドキュメント描画モジュールを開始するステップ５０１と、
ユーザーが指示をし、上記アプリケーションソフトウェアがマウスをシミュレートするかどうか判断するステップ５０２と、
上記アプリケーションソフトウェアが上記マウスをシミュレートすることを決定する場合に、マウスシミュレーションモジュールのメインモジュールが上記アプリケーションソフトウェアによって開始され、上記ウィンドウ管理モジュールから上記メインモジュールに第１データが転送されるステップ５０３と、
上記メインモジュールが上記ユーザーの要求に応じて少なくとも２つの表示画面領域に同時にマウスポインターを表示するためにマウスシミュレーションロジックを実行するステップ５０４と、
上記アプリケーションソフトウェアが上記マウスをシミュレートしないことを決定する場合に、上記アプリケーションソフトウェアは上記メインモジュールを破棄するステップ５０５と、
終了するステップ５０６と、
をコンピューターで実行し、
上記ステップ５０４は更に、
上記メインモジュールのロジックを開始するステップ６０１と、
要求に応じて、上記マウスシミュレーションモジュールのビューサブモジュールを作成するステップ６０２と、
上記マウスシミュレーションモジュールの上記ビューサブモジュールを初期化するステップ６０３と、
或るビュー領域に現在のシステムマウスが位置しているかどうか決定するために計算し、もし上記或るビュー領域に上記現在のシステムマウスが位置していると決定された場合にステップ６０５に進み、もし上記或るビュー領域に上記現在のシステムマウスが位置していないと決定された場合にステップ６０６に進む処理を行うステップ６０４と、
上記メインモジュールが上記システムマウスを隠し、模擬マウスを描画するステップ６０５と、
上記メインモジュールのダイナミック検出ロジックの処理を実行するステップ６０６と、
を有し、
上記ステップ６０６は更に、
上記メインモジュールの上記ダイナミック検出ロジックを開始するステップ８０１と、
上記メインモジュールは上記マウスの動きとビューの変更を検出し、もし上記マウスが動いた場合はステップ８０４に進み、もし上記ビューがズームイン又はズームアウトした場合はステップ８０３に進む処理を行うステップ８０２と、
上記マウスシミュレーションモジュールの上記ビューサブモジュールに上記ビューの大きさを変更することを通知し、ステップ８０６に進む処理を行うステップ８０３と、
上記マウスシミュレーションモジュールの上記ビューサブモジュールに上記マウスの相対位置の変更を通知するステップ８０４と、
上記或るビュー領域に上記現在のシステムマウスが位置しているかどうか決定するために計算し、もし上記或るビュー領域に上記現在のシステムマウスが位置していると決定された場合にステップ８０６に進み、上記或るビュー領域に上記現在のシステムマウスが位置していないと決定された場合にステップ８０９に進む処理を行うステップ８０５と、
上記模擬マウスを消去し、ステップ８０７に進む処理を行うステップ８０６と、
上記システムマウスを隠すステップ８０７と、
上記模擬マウスを描画し、ステップ８１０に進む処理を行うステップ８０８と、
上記模擬マウスを消去し、ステップ８０１に進む処理を行うステップ８０９と、
上記ユーザーが指示をして、プログラムがマウスシミュレーションを終了するかどうか判断し、もし終了すると判断された場合はステップ５０５に進み、もし終了しないと判断された場合はステップ８０１に進む処理を行うステップ８１０と
を有すること
を特徴とする複数の上記表示画面領域に同時に上記マウスポインターを表示する方法。
【請求項２】
上記ステップ６０３は更に、
上記マウスシミュレーションモジュールの上記ビューサブモジュールの初期化を開始するステップ７０１と、
マウス演算モジュールを作成し初期化するステップ７０２と、
上記マウスシミュレーションモジュールの上記ビューサブモジュールによってマウス描画モジュールを作成するステップ７０３と、
ビューに対する上記マウスの相対位置を計算し、上記相対位置を上記メインモジュールに転送するステップ７０４と、
上記初期化を終了するステップ７０５と
を有することを特徴とする請求項１に記載の複数の表示画面領域に同時にマウスポインターを表示する方法。
【請求項３】
上記ステップ８０８は更に、
上記模擬マウスの描画を開始するステップ９０１と、
それぞれの上記ビューでそれぞれの上記模擬マウスの位置を計算して、第７データを得るステップ９０２と、
上記模擬マウスによって覆われた上記ビュー領域を保存して、第８データを得るステップ９０３と、
マウス形状の記述に基づき上記模擬マウスを描画して、第９データを得るステップ９０４と、
上記模擬マウス描画を終了するステップ９０５と
を有することを特徴とする請求項１に記載の複数の表示画面領域に同時にマウスポインターを表示する方法。
【請求項４】
上記ステップ６０６の上記メインモジュールの上記ダイナミック検出ロジックの処理は、アクティブ方式で実行され、
上記アクティブ方式で実行されるとは、すなわち、上記メインモジュールがシステムの実行フローを制御し続け、随時システム状態をチェックし続け、上記システムマウスの動きが、ＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）で動作するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ Ｐｒｏｇｒａｍ Ｉｎｔｅｒｆａｃｅ）によって検出されること
であることを特徴とする請求項１に記載の複数の表示画面領域に同時にマウスポインターを表示する方法。
【請求項５】
上記ステップ６０６の上記メインモジュールの上記ダイナミック検出ロジックの処理は、非アクティブ方式で実行され、
上記非アクティブ方式で実行されるとは、すなわち、システムは上記メインモジュールによって部分的に制御され、より具体的には、上記システムの実行フローは上記アプリケーションソフトウェアそのものによって制御されたままであり、上記メインモジュールはフィルタリングされたイベントやメッセージを上記アプリケーションソフトウェアに送り、上記イベントやメッセージが発生した場合は、上記アプリケーションソフトウェアは上記メインモジュールに上記イベント関連のデータを送り、上記メインモジュールは上記メインモジュールが上記イベント関連のデータを処理すると決定した場合には独自の制御プロセスを実行し、処理後に元に戻り、上記アプリケーションソフトウェアは上記イベントを再び検出し始め、これを繰り返すこと
であることを特徴とする請求項１に記載の複数の表示画面領域に同時にマウスポインターを表示する方法。
【請求項６】
マウス画像をシミュレートせずにシステムマウスを直接使うことにより、上記マウスシミュレーションモジュールの上記ビューサブモジュールが、現在のビューの上記模擬マウスの画像情報を計算し保存することなく、上記フォーカルビューに関して上記模擬マウスの位置及び対応する相対的な位置を計算するだけの方法によって、上記フォーカルビューの上記模擬マウスがシミュレートされることを特徴とする請求項１、２、３、４、又は５に記載の複数の表示画面領域に同時にマウスポインターを表示する方法。
【請求項７】
請求項１、２、３、４、５、又は６に記載の複数の表示画面領域に同時にマウスポインターを表示する方法を実行するマウスシミュレーションプログラムであって、
上記マウスシミュレーションプログラムは、上記メインモジュールと上記ビューサブモジュールを有し、
上記メインモジュールは上記アプリケーションソフトウェアからの上記模擬マウスの要求を管理し、上記メインモジュールは上記マウスシミュレーションプログラムの上記ビューサブモジュールを作成及び破棄する責任を負い、また、上記マウスシミュレーションプログラムの上記ビューサブモジュール同士の調整を行う責任を負い、上記メインモジュールは上記マウスシミュレーションプログラムの上記ビューサブモジュールと上記アプリケーションソフトウェアの間でデータ交換ブリッジとして機能し、また同時に上記メインモジュールは上記システムマウスの現在の状態を検出する責任があり、
上記マウスシミュレーションプログラムの上記ビューサブモジュールは、上記アプリケーションソフトウェアのそれぞれのビューにおいて上記アプリケーションソフトウェアのマウスシミュレーションタスクを特定のマウスシミュレーションサブタスクに１つずつ分割し、シミュレートされるべきそれぞれのビューを上記マウスシミュレーションプログラムの上記ビューサブモジュールに対応させることを特徴とする上記マウスシミュレーションプログラム。
【請求項８】
上記マウスシミュレーションプログラムの上記ビューサブモジュールは、マウス演算モジュールとマウス描画モジュールを有し、
上記マウス演算モジュールは、上記マウスシミュレーションプログラムの上記ビューサブモジュールに関するビュー情報と上記システムマウスの位置情報を収集し、上記模擬マウスの場所、大きさ、形、及びその他のパラメーターを計算し、
上記マウス描画モジュールは、上記マウス演算モジュールによって計算された結果に基づいてドキュメント描画モジュールを呼び出し、上記模擬マウスを描画することを特徴とする請求項７に記載のマウスシミュレーションプログラム。
【請求項９】
コンピューターマウスと、
アプリケーションソフトウェアと
を有することを特徴とする複数の表示画面領域に同時にマウスポインターを表示する装置であって、
上記アプリケーションソフトウェアは、ウィンドウ管理モジュールとドキュメント描画モジュールを有し、
上記ウィンドウ管理モジュールは、グラフィカルユーザーインターフェースをサポートするオペレーティングシステムのもとで上記アプリケーションソフトウェアを動作させるための基本モジュールとして機能し、上記ウィンドウ管理モジュールは、上記オペレーティングシステムによって提供されるウィンドウ管理機能と協調して動作し、上記ウィンドウ管理モジュールは、上記オペレーティングシステムから上記アプリケーションソフトウェアに送られるウィンドウ管理関連情報を主として処理し、
上記ドキュメント描画モジュールはソフトウェアの論理的データをユーザーに理解可能なグラフィックや画像の群に変換し、上記アプリケーションソフトウェアのデータを上記オペレーティングシステムの画像描画命令を呼び出すことにより様々なテキストの画像、グラフィックの画像、又はテーブルの画像に変換し、上記アプリケーションソフトウェアの他のモジュールのデータを上記ドキュメント描画モジュールのサービスを呼び出すことにより上記アプリケーションソフトウェアのウィンドウで見られるようなユーザーが理解できる画像に変換し、
上記アプリケーションソフトウェアは更に、請求項７又は８に記載のマウスシミュレーションプログラムを有する
ことを特徴とする上記装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータアプリケーション技術に関し、特に、複数の表示画面領域に同時にマウスポインターを表示する方法及び装置、マウスシミュレーションプログラムに関する。
【背景技術】
【０００２】
現代のコンピューターアプリケーション技術においては、大多数のソフトウェアはユーザーのための主な入力手段としてコンピューターマウスを利用しているが、ハードウェアの制限やその他の理由により、１つのアプリケーションソフトウェアはたった１つのコンピューターマウスしか利用できない。
【０００３】
多くのソフトウェアは、ドキュメントを複数のビューで表示できる機能を有する。すなわち、それぞれのビューは、それぞれのビューの視点からドキュメントデータを表す。ドキュメントデータは、どのビューにおいても操作でき、或るビューでの操作は通常は他のビューにも即時に又は非即時に反映される。例えば、スライドショーのソフトウェアにおいては、ダブルスクリーン拡張モードがある。ダブルスクリーン拡張モードとは、システムが２つのモニターを合体させて１つの統合表示領域として、それぞれのモニターが統合表示領域の部分を表示し、違う内容が２つのモニターに表示できるようにするものである。この機能は、２つのモニターが使用されているという条件において利用可能である。２つのモニターのうち１つは聴取者用であり、通常はプロジェクターである。聴取者用の表示領域は、聴取者ビューと呼ばれる。他方のモニターの表示領域は、演説者によって制御されるものであり、演説者ビューと呼ばれ、演説者は演説者ビューにおいてスライド表示の手順を制御する。聴取者ビューは演説者ビューと連動しているが、聴取者ビューと演説者ビューは同一ではない。これにより、演説者の一部の操作は聴取者から見ることができない。演説者は時々スピーチ原稿をチェックしたり聴取者の質問への回答をチェックしたりする必要があり、また、演説者が聴取者に情報を見られたくない時や、情報が使用中の文書に含まれておらずワード、エクセル等の他のソフトウェアによってアクセスされる他のファイルに含まれる時に、演説者の一部の操作を聴取者から見えないようにすることが求められる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、聴取者ビューを演説者ビューから分ける事には利点と欠点がある。利点は、演説者は望まれない情報を聴取者から守ることができることである。一方、欠点は、演説者は聴取者ビューで強調したいところ示すにはさし棒等を必要とするかもしれないことである。通常、ダブルスクリーン拡張モード以外では、演説者はマウスポインターを使ってソフトウェアのマーカーペン機能でスピーチ原稿の強調したい部分に書き込みをすることができる。なぜなら、演説者ビューで表示される情報は、聴取者ビューで表示される情報と同一であり、聴取者ビューは演説者ビューの単なる画面コピーだからである。しかし、これはダブルスクリーン拡張モードでは異なる。システムがモニター拡張モードで動作している時、２つのモニターは実際には１つのモニターとして機能し統合表示を表示し、２つのモニターのそれぞれは統合表示の一部を表示する。従って、聴取者ビューと演説者ビューは異なるウィンドウに表示される。一般的に、演説者は聴取者に向かって立ち、聴取者から見えない演説者ビューを自分の前に表示させる。他方、聴取者ビューは演説者の後ろにあり演説者の側からは見えない。そのため、演説者が演説者ビューにマウスポインターを移動させてしまうと、聴取者はマウスポインターを見ることができなくなる。逆に、演説者が聴取者ビューにマウスポインターを移動させると、演説者自身がマウスポインターを見ることができなくなる。この問題の理由は、マウスが全てのソフトウェアによって共有されるシステムデバイスであり、１つのマウスポインターのみが利用可能であるためである。従って、操作において同時に聴取者用と演説者用の２つのマウスポインターが表示することが求められている。この問題は、マウスがシミュレートされなければ解決されない。これは、複数スクリーン拡張モードの場合においてもあてはまる。
【０００５】
本願発明は、このような実情に鑑みてなされたものであり、ダブルスクリーン拡張モードで２つのマウスポインターが求められていることに応じて、複数の表示画面領域に同時にマウスポインターを表示する方法と装置を提供することにより上記問題を解決し、アプリケーションソフトウェアのユーザー入力を示すマウスポインターを必要な時にいつでも幾つでも利用可能にする。本願発明によって提供される技術的体系は、ダブルスクリーン拡張モードに適用されることに限定されるものではない。実際には、本願発明は、異なる表示画面領域に同時にマウスポインターを表示する限りにおいては、どのような要求でも満たすことができる。
【課題を解決するための手段】
【０００６】
本願発明においては、用語は下記のとおり定義される。
【０００７】
アプリケーションソフトウェア：アプリケーションソフトウェアとは、ウィンドウを有するコンピューターシステムで動作するソフトウェアである。アプリケーションソフトウェアが動作する時、少なくとも１つのウィンドウが開かれてドキュメント情報を表示する。
【０００８】
ドキュメント：ドキュメントとは、アプリケーションソフトウェアがその機能を実現するために、ディスクやメモリーに保存されているデータの集合である。ドキュメントは、ディスクのファイルに限定されるものではない。どのようなアプリケーションソフトもプログラムが動作する時にはそのドキュメントについて処理を行わなければならない。
【０００９】
ビュー：ビューとはアプリケーションソフトウェアのウィンドウの表示領域であり、ドキュメントの内容の部分を表示させるものである。
【００１０】
フォーカルビュー：フォーカルビューはマウスポインターが位置しているビューである。
【００１１】
模擬マウス：模擬マウスは、コンピューターシステムのシステムマウスによって制御される画像である。模擬マウスは、システムマウスに従って動き、システムマウスが通過する時にビューの画像を壊さないのと同様に、ビューの画像を壊さずにビューの中で位置を示す。
【００１２】
模擬マウス移動領域は、ビューの領域である。システムマウスが模擬マウス移動領域の中を動く時、システムマウスが位置していなければならない位置に模擬マウスが表示され、同時に、他の表示画面領域において模擬マウス移動領域に対応する位置に模擬マウスが表示されることが求められる。模擬マウス移動領域は、通常は大きさと位置がビューの大きさと位置と同一になるように定義される。
【００１３】
システムマウスのマウスポインター及び模擬マウスのマウスポインターはそれぞれのマウス移動領域で比例して動く。システムマウスがフォーカルビューのマウス移動領域を或る側からその反対側に移動する時、それに従って他の模擬マウス移動領域の模擬マウスも或る側からその反対側に移動する。
【００１４】
アプリケーションソフトウェアの模擬マウス移動領域の１つにシステムマウスがある時、ユーザーは少なくとも２つのマウスポインターが模擬マウス移動領域に現れるのを見ることができる。少なくとも２つのマウスポインターのうち少なくとも１つは模擬マウスポインターである。
【００１５】
本願発明は、
アプリケーションソフトウェアを開始し、同時にウィンドウ管理モジュールを開始し、その後ドキュメントを開き、その後ドキュメント描画モジュールを開始するステップ５０１と、
ユーザーが指示をし、上記アプリケーションソフトウェアがマウスをシミュレートするかどうか判断するステップ５０２と、
上記アプリケーションソフトウェアが上記マウスをシミュレートすることを決定する時、マウスシミュレーションモジュールのメインモジュールが上記アプリケーションソフトウェアによって開始され、上記ウィンドウ管理モジュールから上記メインモジュールに第１データが転送されるステップ５０３と、
上記メインモジュールが上記ユーザーの要求に応じて少なくとも２つの上記表示画面領域に同時に上記マウスポインターを表示するためにマウスシミュレーションロジックを実行するステップ５０４と、
上記アプリケーションソフトウェアが上記マウスをシミュレートしないことを決定する時、上記アプリケーションソフトウェアは上記メインモジュールを破棄するステップ５０５と、
終了するステップ５０６と
をコンピューターで実行することを特徴とする複数の表示画面領域に同時にマウスポインターを表示する方法を提供する。
【００１６】
本発明は更に、複数の表示画面領域に同時にマウスポインターを表示する方法を実装したマウスシミュレーションモジュールであって、
上記マウスシミュレーションモジュールは、メインモジュールとビューサブモジュールを有し、
上記メインモジュールはアプリケーションソフトウェアからの模擬マウスの要求を管理し、上記メインモジュールは上記マウスシミュレーションモジュールの上記ビューサブモジュールを作成及び破棄する責任を負い、また、上記マウスシミュレーションモジュールの上記ビューサブモジュール同士の調整を行う責任を負う。上記メインモジュールは上記マウスシミュレーションモジュールの上記ビューサブモジュールと上記アプリケーションソフトウェアの間でデータ交換ブリッジとして機能し、また同時に上記メインモジュールは上記システムマウスの現在の状態を検出する責任があり、
上記マウスシミュレーションモジュールの上記ビューサブモジュールは、上記アプリケーションソフトウェアのそれぞれのビューで上記アプリケーションソフトウェアのマウスシミュレーションタスクを特定のマウスシミュレーションサブタスクに１つずつ分割し、シミュレートされるべきそれぞれのビューが上記マウスシミュレーションモジュールの上記ビューサブモジュールに対応させることを特徴とする上記マウスシミュレーションモジュールを提供する。
上記マウスシミュレーションモジュールの上記ビューサブモジュールは、マウス演算モジュールとマウス描画モジュールを有し、
上記マウス演算モジュールは、上記マウスシミュレーションモジュールの上記ビューサブモジュールに関するビュー情報と上記システムマウスの位置情報を収集し、上記模擬マウスの場所、大きさ、形、及びその他のパラメーターを計算し、
上記マウス描画モジュールは、上記マウス演算モジュールによって計算された結果に基づいてドキュメント描画モジュールを呼び出し、上記模擬マウスを描画する。
【発明の効果】
【００１７】
本願発明にかかる複数の表示画面領域に同時にマウスポインターを表示する方法と装置を提供によれば、ダブルスクリーン拡張モード又は複数スクリーン拡張モードにおいて複数の表示画面領域に同時にマウスポインターを表示することができるので、演説者が演説者ビューにマウスポインターを移動させてしまうと聴取者はマウスポインターを見ることができなくなるという問題と、演説者が聴取者ビューにマウスポインターを移動させると演説者自身がマウスポインターを見ることができなくなるという問題を解決することができる。
【発明を実施するための最良の形態】
【００１８】
本願発明の実施例によれば、複数の表示画面領域に同時にマウスポインターを表示する装置は、コンピューターマウスとアプリケーションソフトウェアを有する。使用においては、コンピューターマウスはコンピューターと接続され、アプリケーションソフトウェアはコンピューターにインストールされる。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、ＭａｃＯＳ（登録商標）等のグラフィカルユーザーインターフェースをサポートするＯＳ（オペレーティングシステム）がコンピューターにインストールされる。
【００１９】
図１に示されるように、アプリケーションソフトウェアは、ウィンドウ管理モジュール、ドキュメント描画モジュール、及びマウスシミュレーションモジュールを有し、マウスシミュレーションモジュールは、メインモジュールとマウスシミュレーションモジュールのビューサブモジュールを有する。
【００２０】
キングソフト（登録商標）社のオフィス・プレゼンテーション（ＷＰＯ  Ｏｆｆｉｃｅ  Ｐｒｅｓｅｎｔａｔｉｏｎ）をアプリケーションソフトウェアの例として取り上げる。マウスシミュレーションモジュールは、アプリケーションソフトウェアの一部であってもよい。複数のマウスポインターが要求される時にはいつも、マウスシミュレーションモジュールがアプリケーションソフトウェアに組み込まれる。
【００２１】
ユーザーが或る方法により（たとえば、メニュー、ツールバー、ホットキー等）、或る指示を与えた時、アプリケーションソフトウェアは、マウスシミュレーションモジュールのメインモジュールを開始する。
【００２２】
マウスシミュレーションモジュールのビューサブモジュールは、アプリケーションソフトウェアのマウスシミュレーションタスクを、それぞれのアプリケーションソフトウェアのビューごとに特定のマウスシミュレーションサブタスクに分割して、シミュレートされるべきそれぞれのビューをマウスシミュレーションモジュールのビューサブモジュールに対応させる。例えば、キングソフト社のオフィス・プレゼンテーションをダブルスクリーン拡張モードで実行する時、マーカーペンで書き込みをするためには、マウスポインターは演説者ビューと聴取者ビューで同時にシミュレートされなければならない。従って、演説者ビューと聴取者ビューは、それぞれマウスシミュレーションモジュールのビューサブモジュールに対応する。
【００２３】
図２に示されるように、マウスシミュレーションモジュールのビューサブモジュールは、マウス演算モジュールとマウス描画モジュールを有する。
【００２４】
図５に示されるように、複数の画面表示領域に同時にマウスポインターを表示する方法は、コンピューターで実行される下記のステップを有する。
ステップ５０１：アプリケーションソフトウェアを開始する。ウィンドウ管理モジュールは同時に開始し、ドキュメントも開かれる。その後、ドキュメント描画モジュールが開始する。
ステップ５０２：ユーザーは指示を出し、そして、アプリケーションソフトウェアはマウスをシミュレートするかどうか判断する。
ステップ５０３：アプリケーションソフトウェアがマウスをシミュレートすることを決定する時、マウスシミュレーションモジュールのメインモジュールはアプリケーションソフトウェアによって開始する。そして、第１データ１０１が、ウィンドウ管理モジュールからメインモジュールに転送される。
第１データ１０１は、下記パラメーターを有するが、下記パラメーターに限定されるものではない。
１．１  ドキュメントウィンドウの数（ｎＤｏｃＷｉｎＣｏｕｎｔ）
１．２  それらのｎＤｏｃＷｉｎＣｏｕｎｔ個のウィンドウのウィンドウ記述。それぞれのデータは下記のように記述される。
１．２．１  ウィンドウ識別子
１．２．２  画面に対するウィンドウの位置と大きさ
１．３  マウスシミュレーションが必要なビューの数（ｎＶｉｅｗＣｏｕｎｔ）
１．４  それらのｎＶｉｅｗＣｏｕｎｔ個のビューのビュー情報記述。それぞれのデータは下記のように記述される。
１．４．１  ビューにあるドキュメントのウィンドウ識別子
１．４．２  ビュー識別子
１．４．３  ドキュメントウィンドウに対するビューの位置と大きさ
１．４．４  ビューの模擬マウスの移動境界
１．４．５  ビューに対するマウスの大きさ
１．４．６  マウスの形の記述。マウスの形の記述は下記を含むが、下記に限定されるものではない。
１．４．６．１  ＴＩＦ、ＷＭＦ、ＪＰＧ、ＢＭＰ、ＥＭＦ、ＰＮＧ、ＧＩＦ、ＰＣＸ、及びＴＧＡから選択される画像形式のマウスの形。前記画像形式の中でＢＭＰが特に好ましい。
１．４．６．２  マウスの形状の記述
１．４．６．３  マウスの色
１．４．７  マウスの形に対するマウスのホットポイントの位置
１．５  画面に対するシステムマウスの現在の位置
ステップ５０４：メインモジュールは、ユーザーの要求に従って、少なくとも２つの表示画面領域に同時にマウスポインターを表示するために、マウスシミュレーションロジックを実行する。
ステップ５０５：アプリケーションソフトウェアがマウスをシミュレートしないと決定する時、アプリケーションソフトウェアはメインモジュールを破棄する。
ステップ５０６：終了
【００２５】
図６に示されるように、ステップ５０４では、メインモジュールはマウスシミュレーションロジックを実行する。マウスシミュレーションロジックは、下記のステップを有する。
ステップ６０１：メインモジュールロジック開始
ステップ６０２：マウスシミュレーションモジュールのビューサブモジュールが要求によって作られる。メインモジュールは、第１データ１０１を受信した後、第１データ１０１を保存する。そして、メインモジュールは第１データに従って、模擬マウスを必要とするそれぞれのビューごとに、マウスシミュレーションモジュールのビューサブモジュールを作る。そして、メインモジュールは、第１データ１０１に従ってメインモジュールから第２データ１０２をマウスシミュレーションモジュールのビューサブモジュールに転送する。
第２データ１０２は、下記パラメーターを有する。しかし、下記パラメーターに限定されるものではない。
２．１  画面に対するウィンドウの位置と大きさ
２．２  ドキュメントウィンドウに対するビューの位置と大きさ
２．３  ビューの模擬マウスの移動境界
２．４  ビューに対するマウスの大きさ
２．５  マウスの形に対するマウスのホットポイントの位置
２．６  画面に対するシステムマウスの現在の位置
ステップ６０３：マウスシミュレーションモジュールのビューサブモジュールが初期化される。
ステップ６０４：或るビュー領域に現在のシステムマウスが位置しているかどうか決定するために計算する。もし、或るビュー領域にシステムマウスが位置しているなら、ステップ６０５に進み、ビュー領域に位置していないならば、ステップ６０６に進む。
ステップ６０５：システムマウスがメインモジュールに隠され、模擬マウスが描画される。
メインモジュールが、全てのサブモジュールのデータ項目をチェックする。もし、システムマウスが、或るビューの模擬マウス移動領域の境界内に丁度あるならば（そのようなビューはフォーカルビューと呼ばれる）、メインモジュールは現在のシステムマウスの位置をフォーカルビューのマウスシミュレーションモジュールのビューサブモジュールに転送し、マウスシミュレーションモジュールのビューサブモジュールに移動境界に対する模擬マウスの相対的な位置を計算するように要求する。模擬マウスの移動境界に対する相対的な位置は、メインモジュールに送られる第６データ１０６である。
メインモジュールは、第６データ１０６を全てのマウスシミュレーションモジュールのビューサブモジュールに転送し、マウスシミュレーションモジュールのビューサブモジュールは第６データ１０６に含まれるマウス位置情報をマウス位置計算サブモジュールに転送して、ビューに対する模擬マウスの位置と大きさを計算する。そして、計算結果は、第７データ１０７としてメインモジュールに転送される。
メインモジュールは、第７データ１０７をドキュメント描画モジュールに転送し、ドキュメント描画モジュールに第７データ１０７に関するビュー領域を第８データ１０８に保存するように要求し、第８データ１０８はメインモジュールに転送される。第８データ１０８は、現在のビューのマウスシミュレーション領域によって覆われるドキュメントビューの画像情報を記録する。もし、模擬マウスが動くなら、第８データ１０８は、模擬マウスによって覆われたドキュメントビュー領域を回復するために使われる。第８データ１０８は、対応するマウスシミュレーションモジュールのビューサブモジュールに転送される。そして、マウスシミュレーションモジュールのビューサブモジュールがこの情報を保存する。
メインモジュールは、マウスシミュレーションモジュールの全てのビューサブモジュールに対応するビューのための模擬マウス画像情報（すなわち、第９データ１０９）の作成を要求する。そして、第９データ１０９は、ドキュメント描画モジュールに転送される。
ドキュメント描画モジュールは、第９データ１０９に従って対応する位置に模擬マウス画像を描画する。従って、ユーザーは模擬マウスを見ることができる。
メインモジュールはシステムマウスを隠す。
第６データ１０６は、下記パラメーターを有するが、下記パラメーターに限定されるものではない。
６．１  移動境界に対する模擬マウスの相対的な位置
第７データ１０７は、下記パラメーターを有するが、下記パラメーターに限定されるものではない。
７．１  ビュー領域に対する模擬マウス位置
７．２  模擬マウスサイズ
第８データ１０８は、下記パラメーターを有するが、下記パラメーターに限定されるものではない。
８．１  ビューの中の画像の位置
８．２  ビューの中の画像の大きさ
８．３  画像情報すなわちこの領域のビューの正確な記述。通常はＢＭＰフォーマットである。
第９データ１０９は、下記パラメーターを有するが、下記パラメーターに限定されるものではない。
９．１  ビューの中の画像の位置
９．２  ビューの中の画像の大きさ
９．３  ＴＩＦ、ＷＭＦ、ＪＰＧ、ＢＭＰ、ＥＭＦ、ＰＮＧ、ＧＩＦ、ＰＣＸ、及びＴＧＡから選択される画像形式又は独自に定義される描画コマンド列による画像情報。前記画像形式の中でＢＭＰが特に好ましい。
ステップ６０６：メインモジュールのダイナミック検出ロジックの処理
【００２６】
図７に示されるように、ステップ６０３のマウスシミュレーションモジュールのビューサブモジュールの初期化は、下記のステップを有する。
ステップ７０１：マウスシミュレーションモジュールのビューサブモジュールの初期化の開始
ステップ７０２：マウス演算モジュールの作成と初期化
マウスシミュレーションモジュールのビューサブモジュールは、第２データ１０２を受信した後に、第２データ１０２を保存する。そして、マウス演算モジュールを作成し、第３データ１０３を第２データ１０２に従ってマウス演算モジュールに転送する。
第３データ１０３は、下記パラメーターを有する。しかし、下記パラメーターに限定されるものではない。
３．１  画面に対するウィンドウの位置とサイズ
３．２  ドキュメントウィンドウに対するビューの位置とサイズ
３．３  ビューの模擬マウスの移動境界
３．４  画面に対するシステムマウスの現在位置
ステップ７０３：マウスシミュレーションモジュールのビューサブモジュールによってマウス描画モジュールが作成される。
マウスシミュレーションモジュールのビューサブモジュールは、第４データ１０４を第２データ１０２に従ってマウス描画モジュールに転送する。そして、マウス描画モジュールがこの情報を保存する。
第４データ１０４は、下記パラメーターを有する。しかし、下記パラメーターに限定されるものではない。
４．１  ビューに対するマウスの大きさ
４．２  マウスの形の記述。マウスの形の記述は下記を含むが、下記に限定されるものではない。
４．２．１  ＴＩＦ、ＷＭＦ、ＪＰＧ、ＢＭＰ、ＥＭＦ、ＰＮＧ、ＧＩＦ、ＰＣＸ、及びＴＧＡから選択される画像形式のマウスの形。前記画像形式の中でＢＭＰが特に好ましい。
４．２．２  マウスの形状の記述
４．２．３  マウスの色
４．３  マウスの形に対するマウスのホットポイントの位置
ステップ７０４：ビューに対するマウスの相対位置を計算し、計算した相対位置をメインモジュールに転送する。
マウス演算モジュールが第３データ１０３を受信した時、マウス演算モジュールはコンピューターシステムのシステムマウスの位置が模擬マウスの移動境界内に或るかどうか決定するために計算をする。そして、この情報をマウスシミュレーションモジュールのビューサブモジュールに転送する。マウスシミュレーションモジュールのビューサブモジュールはこの情報を保存する。
メインモジュールが模擬マウスを必要とする全てのビューを作成を終えた時、メインモジュールは、サブモジュールとビューの一対一の対応関係を作る。第５データ１０５は対応関係のデータ記述を有する。
第５データ１０５は、下記パラメーターを有する。しかし、下記パラメーターに限定されるものではない。
５．１  ドキュメントウィンドウ識別子
５．２  ビュー識別子
５．３  ビューのマウスシミュレーションサブデバイスの識別子
７０５：初期化終わり
【００２７】
図８に示されるように、ステップ６０６のメインモジュールのダイナミック検出ロジックの処理は、下記のステップを有する。
ステップ８０１：メインモジュールのダイナミック検出ロジックを開始する。
ステップ８０２：メインモジュールはマウスの移動とビューの変更を検出する。マウスが移動するなら、ステップ８０４に進む。ビューがズームインまたはズームアウトするなら、ステップ８０３に進む。
ステップ８０３：マウスシミュレーションモジュールのビューサブモジュールに、ビューサイズを変更するように通知し、ステップ８０６に進む。
ステップ８０４：マウスシミュレーションモジュールのビューサブモジュールに、マウスの相対位置の変更を通知する。
マウスシミュレーションモジュールのそれぞれのビューサブモジュールに保存された第８データ１０８は、メインモジュールからの要求によってメインモジュールに転送される。そして、データはドキュメント描画モジュールに転送される。
ステップ８０５：或るビュー領域に現在のシステムマウスが位置しているかどうか決定するために計算する。メインモジュールは、新しいシステムマウスの位置をマウスシミュレーションモジュールのそれぞれのビューサブモジュールに転送する。この情報を受信した後、マウスシミュレーションモジュールのビューサブモジュールはシステムマウス位置が対応する模擬マウスの移動境界内にあるかどうか決定するために計算する。そして、この情報をメインモジュールに送る。
もし、或るビュー領域内に現在のシステムマウスが位置しているなら、ステップ８０６に進む。そうでなければ、ステップ８０９に進む。
ステップ８０６：模擬マウスを消去し、ステップ８０７に進む。
メインモジュールは、マウスシミュレーションモジュールの対応するビューサブモジュールから第８データ１０８を取り出す。そして、メインモジュールは、ドキュメント描画モジュールに、第８データ１０８の模擬マウス位置に従って第８データ１０８を再作成し、再作成された第８データ１０８をメインモジュールに転送するように要求する。マウスシミュレーションモジュールのビューサブモジュールに転送し保存する。
ドキュメント描画モジュールは、第８データ１０８に下がて、マウスによって覆われる場所を回復する。前回にマウスシミュレーションモジュールのビューサブモジュールによって保存された第８データ１０８が無い場合は、それについて何もしない。
ステップ８０７：システムマウスを隠す
ステップ８０８：模擬マウスを描画し、ステップ８１０に進む
ステップ８０９：模擬マウスを消去し、ステップ８０１に進む
ステップ８１０：ユーザーは指示をし、プログラムはマウスシミュレーションを終了するかどうか決定する。もし、終了する場合は、ステップ５０５に進み、終了しない場合は、ステップ８０１に進む。
【００２８】
図９に示されるように、ステップ８０８の模擬マウスの描画は、下記のステップを有する。
ステップ９０１：模擬マウスの描画の開始
ステップ９０２：それぞれのビューのそれぞれの模擬マウスの位置を計算し、第７データ１０７を取得する。
ステップ９０３：模擬マウスによって覆われるビュー領域を保存し、第８データ１０８を取得する。
ステップ９０４：マウスの形状の記述に基づいて模擬マウスを描画し、第９データ１０９を取得する。そして、メインモジュールは、第９データ１０９をドキュメント描画モジュールに転送し、これにより、ドキュメント描画モジュールは、第９データ１０９に従って対応する表示領域に模擬マウスを描画することができる。
ステップ９０５：模擬マウス描画終了
【００２９】
現在のシステムの模擬マウスの移動の回復データは、ドキュメント描画モジュールによって提供される。しかし、実際には、模擬マウスに関する領域の画像情報は、ＯＳによって保存されることもできる。しかし、そのようにする場合、システムは模擬マウスとドキュメント描画モジュールの間で、見えるコンテンツを同期しなければならず、システムをより複雑にする。その上、メインモジュールによるビューの変更の検出処理は、変更が要求される模擬マウス領域と実際のビュー領域に従って最適化され、第８データ１０８はその２つが互いに交わる時のみに更新されるべきである。
【００３０】
メインモジュールのダイナミック検出ロジックの処理は、アクティブ方式または非アクティブ方式のどちらかで行われる。つまり、メインモジュールは、システムの実行フローを制御し時々システム状態をチェックし続ける。システムマウスの移動の検出は、ＯＳのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を呼び出すことによって行われる。非アクティブ方式とは、メインモジュールによってシステムが部分的に制御されることを言い、もっと具体的には、システムの実行フローは、アプリケーションソフトウェアそのものによって制御される。メインモジュールはフィルターされたイベントやメッセージをアプリケーションソフトウェアに送る。イベントやメッセージが発生する時、アプリケーションソフトウェアは、イベント関連のデータを送信することによりメインモジュールに通知する。メインモジュールは、それをメインモジュールで処理する決定をすると独自の制御プロセスを実行する。そして、メインモジュールは処理の後、元に戻り、アプリケーションソフトウェアはイベントを検出し始める。このようなことを繰り返す。
【００３１】
フォーカルビューの模擬マウスに対処するリソース節約方法がある。それは、マウス画像をシミュレートせずシステムマウスを直接使うことである。これにより、マウスシミュレーションモジュールのビューサブモジュールは、現在のビューの模擬マウス画像情報を計算し保存することなく、フォーカルビューに関して模擬マウスの位置と対応する相対的な位置の計算だけを行う。そのようにすることにより、柔軟性の無い現在のＯＳはダイナミックマウスを十分にサポートできず、マウスポインターが形、大きさ、透明度、３Ｄ効果が変わり続ける場合、システムはこの要求を満たすことができなくなる。
【００３２】
本願発明の処理は、キングソフト社のオフィス・プレゼンテーションの例によって以下に説明する。
【００３３】
１．キングソフト社のオフィス・プレゼンテーションを開き、ダブルスクリーン拡張モードにする。図４が演説者ビューと聴取者ビューの図である。演説者ビューでは、多くのサムネールビュー（サムネールビュー１、２、３、４、５、６とする）と、ビュー６０がある。ビュー６０は、サムネルビュー６の拡大図である。聴取者ビューには、サムネールビュー６が拡大された拡大ビュー６００のみがある。
【００３４】
演説者ビューは、演説者のコンピューターの通常左にある。一方、聴取者ビューは、右にあり、通常はプロジェクターに表示される。２つのビューはそれぞれ違うモニターに表示される。マーカーペン描画ボタンを押し、もしユーザーがこの時、演説者ビューにマーカーペンで書き込みしたい場合は、マウスが演説者ビューにある時は、描画点を表示するためにマウスの書き込みは演説者ビューに表示されなければならない。同時に、それは聴取者ビューに表示されなければならない。これによって、聴取者はマウスによる書き込みの過程と描画点を見ることができる。従って、２つのマウスがシミュレートされる必要がある。システムはメインモジュールを開始し、ステップ５０１→５０２→５０３→５０４→６０１→６０２→６０３→６０４を実行し、図３に示されるメインモジュールを作成する。マウスシミュレーションモジュールのビューサブモジュールＡが演説者ビューに対応し、マウスシミュレーションモジュールのビューサブモジュールＢが聴取者ビューに対応する。
【００３５】
２．この時、マウスはまだマーカーペン描画ボタンの上にあり、従って、ステップ６０４の結果に従って、メインモジュールの処理はステップ６０６に進む。
【００３６】
３．キングソフト社のオフィス・プレゼンテーションには、メインモジュールのマウス検出は、非アクティブ方式で実装されている。ユーザーはマウスを演説者ビューに移動し、メインモジュールは、ステップ８０４→８０５→８０６→８０７→８０８を実行し、システムマウスがメインモジュールによって隠されている間に、ユーザーは模擬マウス描画を見ることができる。図１０に示されるように、マーカーペンのマウスポインター７０は演説者ビューの左側に表示され、マウスポインター７００は聴取者ビューに表示される。マウスポインター７００は演説者ビューのマウスポインターより大きい。なぜなら、聴取者ビューは演説者ビューよりもとても大きいからである。
【００３７】
４．ユーザーがマウスポインターを一つの場所から他の場所に移動すると、上記ステップ３．は連続して実行される。
【００３８】
５．もしユーザーがマーカーペン描画状態から抜けるためにＥＳＣを押すと、メインモジュールはまず最初にステップ８０８で作成された第８データ１０８に従って、模擬マウスによって覆われた領域を回復する。そして、システムマウスが見えるように回復される。
【図面の簡単な説明】
【００３９】
【図１】本願発明の実施例に従った複数の表示画面領域に同時にマウスポインターを表示するアプリケーションソフトウェアのアーキテクチャーを示す概略図である。
【図２】図１に示されるアプリケーションソフトウェアのマウスシミュレーションモジュールのビューサブモジュールを示す概略図である。
【図３】マウスシミュレーションモジュールの複数のビューサブモジュールと通信するアプリケーションソフトウェアのメインモジュールを示す概略図である。
【図４】演説者ビューと聴取者ビューを有するダブルスクリーン拡張モードの複数の表示画面領域に同時にマウスポインターを表示する装置を示す概略図である。
【図５】本発明の第１実施例に従った複数の画面表示領域に同時にマウスポインターを表示する方法を示すフローチャートである。
【図６】図５に示される方法のステップの１つであるマウスシミュレーションロジックを実行するメインモジュールの処理の詳細を更に示すフローチャートである。
【図７】図６に示される方法のステップの１つであるマウスシミュレーションモジュールのビューサブモジュールの初期化プロセスの詳細を更に示すフローチャートである。
【図８】図６に示される方法のステップの１つであるメインモジュールのダイナミック検出ロジックのプロセスの詳細を更に示すフローチャートである。
【図９】図８に示される方法のステップの１つである模擬マウス描画のプロセスの詳細を更に示すフローチャートである。
【図１０】本発明の複数の表示画面領域に同時にマウスポインターを表示する方法に従ったマウスシミュレーション効果を示す概略図である。
【符号の説明】
【００４０】
１０１ 第１データ
１０２ 第２データ
１０３ 第３データ
１０４ 第４データ
１０５ 第５データ
１０６ 第６データ
１０７ 第７データ
１０８ 第８データ
１０９ 第９データ
１  サムネールビュー
２  サムネールビュー
３  サムネールビュー
４  サムネールビュー
５  サムネールビュー
６  サムネールビュー
６０  ビュー
６００  拡大ビュー
【図１】
0005442214.tif 000002
【図２】
0005442214.tif 000003
【図３】
0005442214.tif 000004
【図４】
0005442214.tif 000005
【図５】
0005442214.tif 000006
【図６】
0005442214.tif 000007
【図７】
0005442214.tif 000008
【図８】
0005442214.tif 000009
【図９】
0005442214.tif 000010
【図１０】
0005442214.tif 000011