(57)【要約】【課題】ウィンドウとカーソルとを関連付け、関連付けたウィンドウのサイズが変更された場合には、関連付けたウィンドウのサイズに連動してカーソルの表示サイズを変更できるようにする。【解決手段】ウィンドウと複数のカーソルを扱うアプリケーションが複数同時に動作するウィンドウシステムにおいて、ウィンドウとカーソルとを関連付けるカーソルウィンドウ関連付け手段と、前記アプリケーションからの作成済みのウィンドウのサイズ変更要求により、関連付けられたウィンドウのサイズ変更に連動して、カーソルのサイズも変更するカーソルスケーリング手段とを設け、カーソルサイズがウィンドウサイズと比例して変更する必要がある場合に、関連付けたウィンドウのサイズ変更に連動して、カーソルのサイズも変更できるようにする。【選択図】図１
2015138475.tif 000002
【特許請求の範囲】
【請求項１】
ウィンドウと複数のカーソルを扱うアプリケーションが複数同時に動作するウィンドウシステムにおいて、
ウィンドウとカーソルとを関連付けるカーソルウィンドウ関連付け手段と、
前記アプリケーションからの作成済みのウィンドウのサイズ変更要求により、関連付けられたウィンドウのサイズ変更に連動して、カーソルのサイズも変更するカーソルスケーリング手段と、
を有することを特徴とするウィンドウシステム。
【請求項２】
ウィンドウと複数のカーソルを扱うアプリケーションが複数同時に動作するウィンドウシステムにおいて、
ウィンドウ作成要求、カーソル作成要求、デバイス作成要求をアプリケーションから受け取り、ウィンドウはＺオーダ、カーソルとデバイスは作成した順番に管理するリソース管理手段と、
前記リソース管理手段が作成したカーソルとウィンドウとを関連付けるカーソルウィンドウ関連付け要求を前記アプリケーションから受け取り、カーソルとウィンドウとを関連付けるカーソルウィンドウ関連付け手段と、
前記リソース管理手段が作成したカーソルとデバイスを関連付けるカーソルデバイス関連付け要求を前記アプリケーションから受け取り、カーソルとデバイスを関連付けるカーソルデバイス関連付け手段と、
前記カーソルウィンドウ関連付け手段及びカーソルデバイス関連付け手段により関連付けられたカーソルとウィンドウ、デバイスを管理する関連管理手段と、
前記アプリケーションから作成済みのウィンドウのサイズ変更要求やウィンドウの位置変更要求から、関連付けられたウィンドウのサイズや位置の変更に連動して、カーソルの表示領域を変更するカーソル表示領域変更手段と、
デバイスに関連付けられたカーソルを取得するカーソル識別子取得要求と、カーソル表示位置変更要求とから、関連するカーソルとウィンドウにより、デバイスからカーソルの表示制御を行うカーソル表示制御手段と、
を有することを特徴とするウィンドウシステム。
【請求項３】
前記ウィンドウとカーソルを関連付け、前記アプリケーションからのウィンドウ作成要求により、関連付けられたウィンドウのＺオーダの変更に連動して、カーソルのＺオーダを変更するカーソルＺオーダ変更手段、を有することを特徴とする請求項２に記載のウィンドウシステム。
【請求項４】
前記ウィンドウ作成要求は、ウィンドウの矩形領域での開始位置、幅、高さを含むことを特徴とする請求項２または３に記載のウィンドウシステム。
【請求項５】
前記カーソル作成要求は、カーソル開始位置、カーソル移動範囲での開始位置と幅と高さ、カーソル画像サイズでの幅と高さを含むことを特徴とする請求項２〜４の何れか１項に記載のウィンドウシステム。
【請求項６】
前記デバイス作成要求は、デバイス名、デバイス種類を含むことを特徴とする請求項２〜５の何れか１項に記載のウィンドウシステム。
【請求項７】
前記リソース管理手段は、ウィンドウ作成時にウィンドウ識別子、ウィンドウのＺオーダ、前記ウィンドウ作成要求を含むウィンドウ管理情報を生成し、Ｚオーダの順番にリンクリストで管理することを特徴とする請求項２〜６の何れか１項に記載のウィンドウシステム。
【請求項８】
前記リソース管理手段は、カーソル作成時にカーソル識別子、カーソルの表示位置、カーソルのＺオーダ、関連ウィンドウ識別子、関連デバイス識別子、前記カーソル作成要求を含むカーソル管理情報を生成し、作成した順番にリンクリストで管理することを特徴とする請求項２〜６の何れか１項に記載のウィンドウシステム。
【請求項９】
前記リソース管理手段は、デバイス作成時にデバイス識別子、関連カーソル識別子、前記デバイス作成要求を含むデバイス管理情報を生成し、作成した順番にリンクリストで管理することを特徴とする請求項２〜６の何れか１項に記載のウィンドウシステム。
【請求項１０】
前記リソース管理手段は、ウィンドウ、カーソル、デバイスの管理情報の更新に伴い、カーソルスケーリング手段、カーソルＺオーダ変更手段、カーソル表示領域変更手段に情報更新を通知することを特徴とする請求項２〜９の何れか１項に記載のウィンドウシステム。
【請求項１１】
前記カーソルウィンドウ関連付け要求は、関連付けるカーソル識別子とウィンドウ識別子を含むことを特徴とする請求項２〜１０の何れか１項に記載のウィンドウシステム。
【請求項１２】
前記カーソルウィンドウ関連付け手段は、前記カーソル管理情報の関連ウィンドウ識別子に前記カーソルウィンドウ関連付け要求の関連付けるウィンドウ識別子を設定することを特徴とする請求項８に記載のウィンドウシステム。
【請求項１３】
前記カーソルデバイス関連付け要求は、関連付けるカーソル識別子とデバイス識別子を含むことを特徴とする請求項２〜１２の何れか１項に記載のウィンドウシステム。
【請求項１４】
前記カーソルデバイス関連付け手段は、前記カーソル管理情報の関連デバイス識別子に前記カーソルデバイス関連付け要求の関連付けるデバイス識別子を、デバイス管理情報の関連カーソル識別子に前記カーソルデバイス関連付け要求の関連付けるカーソル識別子を設定することを特徴とする請求項８または９に記載のウィンドウシステム。
【請求項１５】
前記カーソル識別子取得要求は、デバイス識別子を含み、指定のデバイス識別子と関連付けられたカーソル識別子を返すことを特徴とする請求項２〜１４の何れか１項に記載のウィンドウシステム。
【請求項１６】
前記関連管理手段は、前記カーソルデバイス関連付け手段と前記カーソルウィンドウ関連付け手段により関連付けられたウィンドウ管理情報、カーソル管理情報、デバイス管理情報を管理し、前記カーソル識別子取得要求により、デバイス識別子と関連付けられたカーソル識別子を返すことを特徴とする請求項２〜１５の何れか１項に記載のウィンドウシステム。
【請求項１７】
前記ウィンドウのサイズ変更要求は、ウィンドウ識別子と幅、高さで指定するウィンドウサイズを含むことを特徴とする請求項２〜１６の何れか１項に記載のウィンドウシステム。
【請求項１８】
前記ウィンドウの位置変更要求は、ウィンドウ識別子と開始位置を含むことを特徴とする請求項２〜１７の何れか１項に記載のウィンドウシステム。
【請求項１９】
前記カーソル表示領域変更手段は、ウィンドウとカーソルを関連付け、前記アプリケーションからのウィンドウの位置変更要求により関連付けられたウィンドウの位置変更に連動して、カーソルの表示位置と表示領域を変更することを特徴とする請求項２〜１８の何れか１項に記載のウィンドウシステム。
【請求項２０】
前記カーソル表示位置変更要求は、カーソル識別子とカーソル表示位置を含むことを特徴とする請求項２〜１９の何れか１項に記載のウィンドウシステム。
【請求項２１】
前記カーソル表示制御手段は、前記アプリケーションからのカーソル表示位置変更要求や、ウィンドウ、カーソル、デバイスの管理情報の更新や、カーソルスケーリング手段、カーソルＺオーダ変更手段、カーソル表示領域変更手段からの表示要求により、関連付けられたカーソルとウィンドウの管理情報からカーソルを表示することを特徴とする請求項２〜２０の何れか１項に記載のウィンドウシステム。
【請求項２２】
ウィンドウと複数のカーソルを扱うアプリケーションが複数同時に動作するウィンドウシステムにおけるカーソル制御方法において、
ウィンドウとカーソルとを関連付けるカーソルウィンドウ関連付け工程と、
前記アプリケーションからの作成済みのウィンドウのサイズ変更要求により、関連付けられたウィンドウのサイズ変更に連動して、カーソルのサイズも変更するカーソルスケーリング工程と、
を有することを特徴とするカーソル制御方法。
【請求項２３】
ウィンドウと複数のカーソルを扱うアプリケーションが複数同時に動作するウィンドウシステムにおけるカーソル制御方法において、
ウィンドウ作成要求、カーソル作成要求、デバイス作成要求をアプリケーションから受け取り、ウィンドウはＺオーダ、カーソルとデバイスは作成した順番に管理するリソース管理工程と、
前記リソース管理工程において作成したカーソルとウィンドウとを関連付けるカーソルウィンドウ関連付け要求を前記アプリケーションから受け取り、カーソルとウィンドウとを関連付けるカーソルウィンドウ関連付け工程と、
前記リソース管理工程において作成したカーソルとデバイスを関連付けるカーソルデバイス関連付け要求を前記アプリケーションから受け取り、カーソルとデバイスを関連付けるカーソルデバイス関連付け工程と、
前記カーソルウィンドウ関連付け工程及びカーソルデバイス関連付け工程において関連付けられたカーソルとウィンドウ、デバイスを管理する関連管理工程と、
前記アプリケーションから作成済みのウィンドウのサイズ変更要求やウィンドウの位置変更要求から、関連付けられたウィンドウのサイズや位置の変更に連動して、カーソルの表示領域を変更するカーソル表示領域変更工程と、
デバイスに関連付けられたカーソルを取得するカーソル識別子取得要求と、カーソル表示位置変更要求とから、関連するカーソルとウィンドウにより、デバイスからカーソルの表示制御を行うカーソル表示制御工程と、
を有することを特徴とするカーソル制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はウィンドウシステム及びカーソル制御方法に関し、特に、複数のカーソルを制御する際の、個別画面のサイズ変更や位置変更に伴うカーソル表示制御を行うために用いて好適な技術に関する。
【背景技術】
【０００２】
コンピュータ（ＰＣ）画面には、マウスなどのデバイス操作によって、位置や指示を行うためのカーソルが表示されるのが一般的である。近年、テレビやプロジェクタなどの製品においても、メニューなどのグラフィックス画面において、ユーザ補助を目的としたカーソルを表示する機能が搭載されている。
【０００３】
カーソルは、リモコンやマウスなどのデバイスを用いたユーザ操作によるリモコンコードやマウス移動量と、現在表示しているカーソル位置から次なる位置を計算し、再表示することで表示位置が変化していく仕組みになっている。
【０００４】
プロジェクタにおいては、複数のＰＣ画面を１つのプロジェクタの画面に合成して表示するＰＣ画面転送なる技術がある。ＰＣ画面転送では、プロジェクタにＰＣ分のカーソルが表示されており、各ＰＣ側のカーソルを操作することで、プロジェクタに表示されているカーソルが移動する。
【０００５】
ＰＣ画面転送でのカーソル表示としては、カーソルを含めたＰＣ画面を合成して表示するケースがあるが、操作と画面内容に遅延が生じるという問題がある。そのため、ＰＣ側からはカーソルの移動量を送り、プロジェクタのカーソルを操作して表示する手法が用いられている。
【０００６】
このプロジェクタのカーソルを操作する手法の場合、ＰＣ画面のサイズに合わせて、プロジェクタでのカーソルの移動領域制限と、表示するカーソルの画像サイズ変更を行う必要がある。カーソルの移動領域を制限する手法としては、特許文献１が提案されている。これは、画面を複数の領域に分割して、カーソルに有効となる領域を示す属性を用意して、属性をもとにカーソルが領域外へ移動することを禁止することで、カーソルの移動領域を制限することを可能とする技術である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−１９４８７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１に記載の技術は、カーソルの画像サイズを変更することができないという課題がある。そのため、プロジェクタに複数のＰＣ画面を表示中に、ＰＣ画面群を子画面とし、別の機器からの画面をもう1つの子画面に表示する２画面操作が行われた場合、カーソルの画像サイズが大きいままとなり、ＰＣ画面と一致しないという課題があった。
本発明は前述の問題点に鑑み、ウィンドウとカーソルとを関連付け、関連付けたウィンドウのサイズが変更された場合には、関連付けたウィンドウのサイズに連動してカーソルの表示サイズを変更できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明のウィンドウシステムは、ウィンドウと複数のカーソルを扱うアプリケーションが複数同時に動作するウィンドウシステムにおいて、ウィンドウとカーソルとを関連付けるカーソルウィンドウ関連付け手段と、前記アプリケーションからの作成済みのウィンドウのサイズ変更要求により、関連付けられたウィンドウのサイズ変更に連動して、カーソルのサイズも変更するカーソルスケーリング手段とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ウィンドウとカーソルとを関連付け、関連付けたウィンドウのサイズが変更された場合には、関連付けたウィンドウのサイズに連動してカーソルの表示サイズを変更できるようにした。これにより、画面転送などのカーソルサイズがウィンドウサイズと比例して変更する必要がある場合に、表示画面の視認性を向上させることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態における、カーソル制御システムの構成例を示すブロック図である。
【図２】第１の実施形態におけるアプリケーションが生成するウィンドウ作成要求の一例を示す図である。
【図３】第１の実施形態における表示画面全体で作成したウィンドウ領域を示す図である。
【図４】第１の実施形態におけるウィンドウ管理情報の一例を示す図である。
【図５】第１の実施形態におけるウィンドウリストの一例を示す図である。
【図６】第１の実施形態におけるデバイス作成要求の一例を示す図である。
【図７】第１の実施形態におけるデバイス管理情報の一例を示す図である。
【図８】第１の実施形態におけるデバイスリストの一例を示す図である。
【図９】第１の実施形態におけるカーソル作成要求の一例を示す図である。
【図１０】第１の実施形態における表示画面全体で作成したカーソル領域を示す図である。
【図１１】第１の実施形態におけるカーソル管理情報の一例を示す図である。
【図１２】第１の実施形態におけるカーソルリストの一例を示す図である。
【図１３】第１の実施形態におけるカーソルデバイス関連付け要求の一例を示す図である。
【図１４】第１の実施形態におけるカーソルウィンドウ関連付け要求の一例を示す図である。
【図１５】第１の実施形態におけるウィンドウの位置変更要求の一例を示す図である。
【図１６】第１の実施形態におけるウィンドウサイズ変更要求の一例を示す図である。
【図１７】第１の実施形態におけるカーソル識別子取得要求の一例を示す図である。
【図１８】第１の実施形態におけるカーソル表示位置変更要求の一例を示す図である。
【図１９】第１の実施形態におけるアプリケーションが行う全体処理の一例を示すフローチャートである。
【図２０】第１の実施形態におけるデバイスドライバが行う全体処理の一例を説明するフローチャートである。
【図２１】第１の実施形態におけるカーソルとウィンドウの関連付け処理の一例を示すフローチャートである。
【図２２】第１の実施形態における表示画面全体での関連付けたウィンドウとカーソルの領域と位置を示す図である。
【図２３】第１の実施形態における関連付けられたカーソルのＺオーダ値を構築する処理の一例を示すフローチャートである。
【図２４】第１の実施形態におけるカーソルとデバイスの関連付け処理の一例を示すフローチャートである。
【図２５】第１の実施形態におけるデバイスのイベントによるカーソルの表示位置を更新する処理の一例を示すフローチャートである。
【図２６】第１の実施形態におけるウィンドウサイズの変更によるカーソルサイズと表示位置を変更する処理の一例を示すフローチャートである。
【図２７】第１の実施形態におけるウィンドウ位置の変更によるカーソル表示位置を変更する処理の一例を示すフローチャートである。
【図２８】マルチウィンドウシステムでのウィンドウ位置の変更と、ウィンドウのサイズ変更による、表示画面全体におけるウィンドウとカーソル領域を表す図である。
【図２９】第１の実施形態におけるＰＣ画面転送の際の表示画面状態の一例を示す図である。
【発明を実施するための形態】
【００１２】
［第１の実施形態］
以下、本発明の第１の実施形態について、図面およびフローチャートを用いて説明する。
図１は、本実施形態におけるマルチウィンドウシステムでのカーソル制御システムの構成を示すブロック図である。
【００１３】
本実施形態のウィンドウシステム１００は、アプリケーション１０１やデバイスドライバ１０２からの要求命令によって、画面であるウィンドウやカーソル、デバイスなどのリソースを管理し、ウィンドウとカーソルを重畳して表示出力部１１１に出力する。このアプリケーション１０１やデバイスドライバ１０２は複数同時に動作している。
【００１４】
アプリケーション１０１は、ＰＣ画面とカーソルを表示するために、ＰＣ画面を表示するウィンドウとカーソルの作成要求や、カーソルの表示要求を生成し、ウィンドウシステム１００に送る。また関連付けを行うために、カーソルとウィンドウを関連付けるカーソルウィンドウ関連付け要求、カーソルとデバイスを関連付けるカーソルデバイス関連付け要求などの要求命令を生成し、ウィンドウシステム１００に送る。アプリケーション１０１は、その他にもウィンドウサイズを変更する要求や、ウィンドウの位置を変更する要求命令も生成し、ウィンドウシステム１００に送る。
【００１５】
デバイスドライバ１０２は、ネットワークやマウスなどのデバイスによるイベントでカーソルの移動表示を行うために、デバイスの作成要求や、カーソルの移動表示要求などの要求命令を生成し、ウィンドウシステム１００に送る。また、デバイスと関連付けられているカーソルを取得するためのカーソルデバイス関連情報要求命令を生成し、ウィンドウシステム１００に送る。
【００１６】
ウィンドウシステム１００は、リソース管理部１０６、関連付けに関係するカーソルデバイス関連付け部１０３、カーソルウィンドウ関連付け部１０４、関連管理部１０５を備えている。更に、カーソル表示更新に関係するカーソルスケーリング部１０７、カーソルＺオーダ変更部１０８、カーソル表示領域変更部１０９、カーソル表示制御部１１０を備えている。
【００１７】
リソース管理部１０６は、ウィンドウやカーソル、デバイスなどの作成、削除、情報更新に伴って、リソース情報を管理する。アプリケーション１０１、デバイスドライバ１０２からの作成要求に対して、それぞれのリソースを識別する識別子を返す。また、関連管理部１０５、カーソル表示制御部１１０からのリソース情報更新通知により、必要な情報を更新する。リソース管理情報に更新があった場合、カーソルスケーリング部１０７、カーソルＺオーダ変更部１０８、カーソル表示領域変更部１０９に情報更新通知を行う。
【００１８】
カーソルデバイス関連付け部１０３は、アプリケーション１０１へカーソルとデバイスの関連付ける機能を提供する。指定されたカーソルとデバイスの関連付け、関連の削除を行い、関連管理部１０５へ関連付けの更新を要求する。
カーソルウィンドウ関連付け部１０４は、アプリケーション１０１へカーソルとウィンドウの関連付ける機能を提供する。指定されたカーソルとウィンドウの関連付け、関連の削除を行い、関連管理部１０５へ関連付けの更新を要求する。
【００１９】
関連管理部１０５は、カーソルデバイス関連付け部１０３、カーソルウィンドウ関連付け部１０４によって関連付けられた情報を管理する。リソース管理部１０６から必要な情報をやり取りしながら、情報更新を行う。管理している関連情報は、デバイスドライバ１０２から要求される。また、カーソルスケーリング部１０７、カーソルＺオーダ変更部１０８、カーソル表示領域変更部１０９、カーソル表示制御部１１０からも関連情報を要求される。
【００２０】
カーソルスケーリング部１０７は、リソース管理部１０６からの情報更新通知を受けると、関連管理部１０５からカーソルの関連情報を取得する。カーソルの関連情報から、ウィンドウサイズの変更などにより、カーソルサイズの変更が必要な場合は、カーソルのサイズを計算し、スケーリングを行った後、カーソル表示制御部１１０へカーソル表示更新を要求する。
【００２１】
カーソルＺオーダ変更部１０８は、リソース管理部１０６からの情報更新通知を受けると、関連管理部１０５からカーソルの関連情報を取得する。カーソルの関連情報から、ウィンドウの作成やＺオーダ変更などにより、カーソルのＺオーダ変更が必要な場合は、カーソルのＺオーダを更新して、カーソル表示制御部１１０へカーソル表示更新を要求する。
【００２２】
カーソル表示領域変更部１０９は、リソース管理部１０６からの情報更新通知を受けると、関連管理部１０５からカーソルの関連情報を取得する。カーソルの関連情報から、ウィンドウサイズの変更などにより、カーソル表示領域の変更が必要な場合は、カーソルの表示領域を更新して、カーソル表示制御部１１０へカーソル表示更新を要求する。
【００２３】
カーソル表示制御部１１０は、アプリケーション１０１からカーソル表示非表示、デバイスドライバ１０２からカーソル移動表示を受け、関連管理部１０５からカーソル関連情報を取得し、カーソルの表示を更新する。また、カーソルスケーリング部１０７、カーソルＺオーダ変更部１０８、カーソル表示領域変更部１０９からのカーソル表示更新によっても、同様にカーソル表示を更新する。カーソル表示更新後、リソース管理部１０６へ新しいカーソル表示位置を通知し、ウィンドウとカーソルを重畳した表示結果を表示出力部１１１へ出力する。
【００２４】
図２は、アプリケーション１０１が生成するウィンドウ作成要求の一例を示す図である。
図２において、２００は、ウィンドウ作成要求の全体であり、２０１は、作成したウィンドウ識別子をリソース管理部１０６からアプリケーション１０１に渡すのに用いる領域である。２０２は、作成するウィンドウの開始位置を（Ｘ座標、Ｙ座標）で指定するウィンドウ開始位置である。２０３は、作成するウィンドウのサイズを（幅、高さ）の矩形領域で指定するウィンドウサイズである。ウィンドウ開始位置２０２、ウィンドウサイズ２０３はアプリケーション１０１からリソース管理部１０６へ設定値を渡すのに用いる領域である。
【００２５】
図３は、表示画面全体におけるウィンドウ領域を表す図である。アプリケーション１０１から、ウィンドウ作成要求２００により、ウィンドウ開始位置２０２で指定した（Ｘｗ、Ｙｗ）から、ウィンドウサイズ２０３で指定した（Ｗｗ、Ｈｗ）のウィンドウをリソース管理部１０６が作成する。リソース管理部１０６は作成後、作成した識別子をウィンドウ識別子２０１でアプリケーション１０１に返す。
【００２６】
図４は、リソース管理部１０６が管理するウィンドウ管理情報の一例を示す図である。
４００はウィンドウ管理情報全体であり、１つのウィンドウにおいて１つ存在する。４０１は、本ウィンドウの次（手前）に表示するウィンドウ管理情報へのポインタを示し、４０２は、本ウィンドウの前（奥）に表示するウィンドウ管理情報へのポインタを示す。４０３は、本ウィンドウのウィンドウ識別子を示し、ウィンドウ作成要求２００でのウィンドウ作成時にリソース管理部１０６からアプリケーション１０１に渡した値である。
【００２７】
４０４は、（Ｘ座標、Ｙ座標）で示すウィンドウ開始位置であり、４０５は、（幅、高さ）で示すウィンドウサイズである。４０４、４０５は、ウィンドウ作成要求２００でのウィンドウ作成時に、アプリケーション１０１から指定された値である。４０６はウィンドウの奥行き方向の階層値を意味するＺオーダを示す。Ｚオーダは、ウィンドウ作成時や、ウィンドウのＺオーダを変更する際に、リソース管理部１０６において、作成済みのすべてのウィンドウを判断して一意の値を設定する。
【００２８】
図５は、リソース管理部１０６で管理する作成済みウィンドウのウィンドウリストを示している。５００はウィンドウリスト全体であり、５０１はウィンドウシステム１００が作成する特別なウィンドウであるルートウィンドウの情報である。５０２、５０３、５０４はアプリケーション１０１によって作成されるウィンドウの情報である。
【００２９】
５０２はウィンドウ１の情報であり、Ｚオーダは１である。５０３はウィンドウ２の情報であり、Ｚオーダは２である。５０４はウィンドウＮの情報であり、ＺオーダはＮである。Ｚオーダは、値が小さいほど奥にあり、値が大きいほど手前に表示されることを意味する。ウィンドウリストは、ルートウィンドウからＺオーダの低い順にリンクリスト化している。
【００３０】
図６は、デバイスドライバ１０２が生成するデバイス作成要求の一例を示す図である。
６００は、デバイス作成要求の全体であり、６０１は、作成したデバイス識別子をリソース管理部１０６からデバイスドライバ１０２に渡すのに用いる領域である。６０２は、作成するデバイスの種類を指定する。６０３は、作成するデバイスの名前を指定する。６０２、６０３はデバイスドライバ１０２からリソース管理部１０６へ設定値を渡すのに用いる領域である。
【００３１】
図７は、リソース管理部１０６と関連管理部１０５が管理するデバイス管理情報の一例を示す図である。
７００はデバイス管理情報全体であり、１つのデバイスにおいて１つ存在する。７０１は、本デバイスの次に作成したデバイス管理情報へのポインタを示し、７０２は、本デバイスの前に作成したデバイス管理情報へのポインタを示す。７０３は、本デバイスのデバイス識別子を示し、デバイス作成要求６００でのデバイス作成時にリソース管理部１０６からデバイスドライバ１０２に渡した値である。
【００３２】
７０４はデバイス種類を示し、７０５はデバイス名を示す。７０４、７０５は、デバイス作成要求６００でのウィンドウ作成時に、デバイスドライバ１０２から指定された値である。７０６は本デバイスと関連付けられているカーソル識別子を示す。関連カーソル識別子７０６はカーソルデバイス関連付け部１０３によって設定され、関連管理部１０５の管理に用いられる。関連カーソル識別子７０６はリソース管理部１０６では使用しない。
【００３３】
図８は、リソース管理部１０６で管理する作成済みデバイスのデバイスリストを示している。８００はデバイスリスト全体であり、８０１はデバイスドライバ１０２が最初に作成したデバイス１の情報である。
８０２、８０３はデバイスドライバ１０２によって作成されるデバイスの情報であり、８０２はデバイス２の情報、８０３はデバイスＮの情報である。デバイスリストは、単純にデバイスドライバ１０２から作成されたデバイスを順番にリンクリスト化している。
【００３４】
図９は、アプリケーション１０１が生成するカーソル作成要求の一例を示す図である。
９００は、カーソル作成要求の全体であり、９０１は、作成したカーソル識別子を示し、リソース管理部１０６からアプリケーション１０１に渡すのに用いる領域である。９０２はカーソル開始位置を示し、作成するカーソルの開始位置を（Ｘ座標、Ｙ座標）で指定する。９０３はカーソル移動範囲を示し、作成するカーソルの移動範囲を（Ｘ座標、Ｙ座標、幅、高さ）の矩形領域で指定する。
【００３５】
９０４は作成するカーソルの画像フォーマット、９０５はカーソル画像サイズを示し、（幅、高さ）の矩形領域で指定する。９０６はカーソル画像へのポインタを示し、実際のカーソル画像へのポインタを指定する。９０２、９０３、９０４、９０５、９０６はアプリケーション１０１からリソース管理部１０６へ設定値を渡すのに用いる領域である。
【００３６】
図１０は、表示画面全体におけるカーソル領域を表す図である。
アプリケーション１０１から、カーソル作成要求９００により、カーソル開始位置９０２で指定した位置（Ｘｃ、Ｙｃ）に、カーソル画像サイズ９０５で指定したサイズ（Ｗｃ、Ｈｃ）のカーソルを配置することになる。
【００３７】
図１１は、リソース管理部１０６が管理するカーソル管理情報の一例を示す図である。
図１１において、１１００はカーソル管理情報全体を示す図であり、１つのカーソルにおいて１つ存在する。１１０１は、本カーソルの次に作成したカーソル管理情報へのポインタを示し、１１０２は、本カーソルの前に作成したカーソル管理情報へのポインタを示す。
【００３８】
１１０３は、本カーソルのカーソル識別子を示し、カーソル作成要求９００でのカーソル作成時にリソース管理部１０６からアプリケーション１０１に渡した値である。１１０４はカーソル表示位置を（Ｘ座標、Ｙ座標）で、１１０５はカーソル開始位置を（Ｘ座標、Ｙ座標）で示し、１１０６はカーソル移動範囲を（Ｘ座標、Ｙ座標、幅、高さ）で示す。
【００３９】
１１０７はカーソル画像フォーマットを示す。１１０８はカーソル画像サイズを（幅、高さ）で示し、１１０９はカーソル画像へのポインタを示す。１１０５から１１０９は、カーソル作成要求９００でのカーソル作成時に、アプリケーション１０１から指定された値である。
【００４０】
１１１０はカーソルの奥行き方向の階層値を意味するＺオーダを示す。Ｚオーダ１１１０は、カーソル作成時や、関連するウィンドウの作成、Ｚオーダを変更する際に、カーソルＺオーダ変更部１０８によって、関連するウィンドウのＺオーダ値から判断して、一意の値を設定する。１１１１は本カーソルと関連付けられている関連ウィンドウ識別子を示す。１１１２は本カーソルと関連付けられている関連デバイス識別子を示す。関連ウィンドウ識別子１１１１、関連デバイス識別子１１１２はカーソルウィンドウ関連付け部１０４、カーソルデバイス関連付け部１０３によって設定され、関連管理部１０５の管理に用いられる。関連ウィンドウ識別子１１１１、関連デバイス識別子１１１２はリソース管理部１０６では使用しない。
【００４１】
図１２は、リソース管理部１０６で管理する作成済みカーソルのカーソルリストの一例を示す図である。
１２００はカーソルリスト全体であり、１２０１はアプリケーション１０１が最初に作成したカーソル１の情報である。１２０２、１２０３はアプリケーション１０１によって作成されるカーソルの情報であり、１２０２はカーソル２の情報、１２０３はカーソルＮの情報である。カーソルリストは、単純にアプリケーション１０１から作成されたカーソルを順番にリンクリスト化している。
【００４２】
図１３は、アプリケーション１０１が関連付けるカーソルデバイス関連付け要求の一例を示す図である。
１３００は、カーソルデバイス関連付け要求の全体であり、１３０１は、関連付けるデバイスの識別子であり、１３０２は、関連付けるカーソルの識別子である。デバイス識別子１３０１、カーソル識別子１３０２はアプリケーション１０１からカーソルデバイス関連付け部１０３へ関連付けの設定値を渡すのに用いる領域である。
【００４３】
図１４は、アプリケーション１０１が関連付けるカーソルウィンドウ関連付け要求の一例を示す図である。
１４００は、カーソルウィンドウ関連付け要求の全体であり、１４０１は、関連付けるウィンドウの識別子であり、１４０２は、関連付けるカーソルの識別子である。ウィンドウ識別子１４０１、カーソル識別子１４０２はアプリケーション１０１からカーソルウィンドウ関連付け部１０４へ関連付けの設定値を渡すのに用いる領域である。カーソルウィンドウ関連付け部１０４は、関連管理部１０５へ更新する関連付け情報を通知する。
【００４４】
関連管理部１０５は、リソース管理部１０６から該当のカーソル管理情報１１００の関連ウィンドウ識別子１１１１を指定のウィンドウ識別子に更新する。該当のカーソル管理情報１１００の関連デバイス識別子１１１２が登録されている場合、該当のデバイス管理情報７００の関連カーソル識別子７０６を、カーソル管理情報１１００の関連ウィンドウ識別子１１１１の識別子に更新する。
【００４５】
図１５は、アプリケーション１０１が作成済みのウィンドウの位置変更要求の一例を示す図である。
１５００は、ウィンドウの位置変更要求の全体であり、１５０１は、変更するウィンドウの識別子で、１５０２は、変更先の開始位置を意味する。ウィンドウ開始位置１５０２は（Ｘ座標、Ｙ座標）の形で指定する。ウィンドウ識別子１５０１、ウィンドウ開始位置１５０２ともにアプリケーション１０１からリソース管理部１０６へ渡すのに用いる領域である。
【００４６】
図１６は、アプリケーション１０１が作成済みのウィンドウのサイズを変更する要求の一例を示す図である。
１６００は、ウィンドウサイズ変更要求の全体であり、１６０１は、サイズ変更するウィンドウの識別子で、１６０２は、変更するサイズを意味する。ウィンドウサイズ１６０２は（幅、高さ）の形で指定する。ウィンドウ識別子１６０１、ウィンドウサイズ１６０２ともにアプリケーション１０１からリソース管理部１０６へ渡すのに用いる領域である。
【００４７】
図１７は、デバイスドライバ１０２が作成済みのデバイスと関連付けられているカーソル識別子を取得する要求の一例を示す図である。
１７００は、デバイスと関連付けられているカーソル識別子取得要求の全体であり、１７０１は、デバイスドライバ１０２から関連管理部１０５へ作成済みのデバイス識別子を渡す領域である。１７０２は、関連付けられているカーソル識別子を関連管理部１０５からデバイスドライバ１０２に渡すのに用いる領域である。
【００４８】
図１８は、デバイスドライバ１０２が作成済みのデバイスと関連付けられているカーソルの表示位置を変更する要求の一例を示す図である。
１８００は、カーソル表示位置変更要求の全体であり、１８０１は、位置変更するカーソルの識別子で、１８０２は、変更する表示先位置を意味する。カーソル表示位置１８０２は（Ｘ座標、Ｙ座標）の形で指定する。カーソル識別子１８０１、カーソル表示位置１８０２ともにデバイスドライバ１０２からカーソル表示制御部１１０へ渡すのに用いる領域である。
【００４９】
図１９は、本本発明の実施形態におけるマルチウィンドウシステムのアプリケーション１０１の全体処理の一例を示すフローチャートである。以下では、図１〜図５、図９〜図１６で示した図を交えながら、本フローチャートに沿って説明する。
Ｓ１９０１から、アプリケーション１０１が必要なウィンドウにおいて、以下の処理を行う。
Ｓ１９０２においては、図２でのウィンドウ作成要求２００により、リソース管理部１０６がウィンドウの作成を行う。リソース管理部１０６は、ウィンドウを作成するとウィンドウ管理情報４００を作成し、ウィンドウ作成要求の情報を登録する。また、ウィンドウ識別子４０３をウィンドウ識別子２０１へ登録し、アプリケーション１０１へ通知する。
【００５０】
ウィンドウ開始位置２０２はウィンドウ開始位置４０４へ、ウィンドウサイズ２０３はウィンドウサイズ４０５へ登録する。作成後、ウィンドウ群のＺオーダを再構築する。ここでは、作成順にＺオーダに１ずつ付加し、ウィンドウのＺオーダ４０６へ登録する。作成したウィンドウよりもＺオーダが1つ前のウィンドウ管理情報へのポインタを、ウィンドウ管理情報４００の前のウィンドウ情報へのポインタ４０２へ登録する。
【００５１】
Ｚオーダが１の場合は、ルートウィンドウ情報へのポインタを登録する。前のウィンドウ情報へのポインタ４０２に登録したウィンドウ管理情報４００において、次のウィンドウ情報へのポインタ４０１に今回作成したウィンドウの管理情報へのポインタを登録する。ここで、ルートウィンドウとは、ウィンドウシステム初期化時に作成する特別なウィンドウのことである。デバイス作成後、Ｓ１９０３へ移行する。
【００５２】
Ｓ１９０３では、必要なすべてのウィンドウを作成したかをチェックし、作成していない場合は、Ｓ１９０１へ戻る。作成済みの場合は、Ｓ１９０４へ移行する。作成済みの場合、作成したウィンドウは、図５のウィンドウリスト５００によって、リソース管理部１０６で管理される。
【００５３】
次のＳ１９０４から、アプリケーション１０１が必要なカーソルにおいて、以下の処理を行う。
Ｓ１９０５においては、図９でのカーソル作成要求９００により、リソース管理部１０６がカーソルの作成を行う。リソース管理部１０６はカーソルを作成するとカーソル管理情報１１００を作成し、カーソル作成要求の情報を登録する。また、カーソル識別子１１０３をカーソル識別子９０１へ登録し、アプリケーション１０１へ通知する。
【００５４】
カーソル開始位置９０２はカーソル開始位置１１０５へ登録し、カーソル移動範囲９０３はカーソル移動範囲１１０６へ登録する。カーソル画像フォーマット９０４、カーソル画像サイズ９０５、カーソル画像へのポインタ９０６もそれぞれカーソル画像フォーマット１１０７、カーソル画像サイズ１１０８、カーソル画像へのポインタ１１０９に登録する。
【００５５】
また、1つ前に作成したカーソル管理情報へのポインタを、カーソル管理情報１１００の前のカーソル情報へのポインタ１１０２へ登録する。最初に作成した場合は、ＮＵＬＬを登録する。1つ前に作成したカーソルがある場合、1つ前のカーソル管理情報１１００の次のデバイス情報へのポインタ１１０１に今回作成したカーソルの管理情報へのポインタを登録する。作成したカーソルの表示イメージを図１０に示す。カーソル作成後、Ｓ１９０６へ移行する。
【００５６】
Ｓ１９０６においては、図１４のカーソルウィンドウ関連付け要求１４００を用いて、カーソルとウィンドウの関連付けを行う。Ｓ１９０６で行う処理の詳細な処理は、図２１のカーソルとウィンドウの関連付けを行う処理の一例を説明するフローチャートで説明する。１つのカーソルには１つのウィンドウしか関連付けることができない。逆に、１つのウィンドウには、複数のカーソルを関連付けることができる。Ｓ１９０６の処理後、Ｓ１９０７に移行する。
【００５７】
Ｓ１９０７においては、図１３のカーソルデバイス関連付け要求１３００を用いて、カーソルとデバイスの関連付けを行う。Ｓ１９０７での詳細な処理は、図２４のカーソルとデバイスの関連付けを行う処理のフローチャートで詳細に説明する。１つのカーソルには１つのデバイスしか関連付けることができない。逆に、１つのデバイスにも１つのカーソルしか関連付けることができない。Ｓ１９０７の処理後、Ｓ１９０８に移行する。
【００５８】
Ｓ１９０８では、必要なすべてのカーソルを作成したかをチェックし、作成していない場合は、Ｓ１９０４へ戻る。作成済みの場合は、Ｓ１９０９へ移行する。作成済みの場合、作成したカーソルは、図１２のカーソルリスト１２００によって、リソース管理部１０６で管理される。
【００５９】
Ｓ１９０９においては、アプリケーションの処理を終了するかチェックする。終了する場合、アプリケーション１０１での処理を終了する。終了しない場合、Ｓ１９１０へ移行する。
Ｓ１９１０では、アプリケーションは管理しているウィンドウやカーソルでイベントが発生したか否かをチェックする。発生していない場合、Ｓ１９０９へ戻り、発生している場合、Ｓ１９１１へ移行する。
【００６０】
Ｓ１９１１は、イベントが発生したウィンドウにおいて、ウィンドウサイズを変更するか否かを判断する。ウィンドウサイズを変更しない場合、Ｓ１９１３へ移行する。ウィンドウサイズを変更する場合、Ｓ１９１２へ移行する。
Ｓ１９１２においては、図１６のウィンドウサイズ変更要求１６００を用いて、ウィンドウサイズの変更とそれに連動したカーソルサイズの変更を行う。Ｓ１９１２での詳細な処理は、図２６のウィンドウサイズの変更によるカーソルサイズと表示位置を変更するフローチャートで説明する。変更後、Ｓ１９１３へ移行する。
【００６１】
Ｓ１９１３においては、イベントが発生したウィンドウにおいて、ウィンドウ位置を変更するか否かを判断する。ウィンドウ位置を変更しない場合、Ｓ１９０９へ移行する。ウィンドウ位置を変更する場合、Ｓ１９１４へ移行する。
Ｓ１９１４においては、図１５のウィンドウの位置変更要求１５００を用いて、ウィンドウ位置の変更とそれに連動したカーソル表示位置の変更を行う。Ｓ１９１４で行う処理の詳細な処理は、図２７のウィンドウの位置変更処理のフローチャートで詳細に説明する。変更後、Ｓ１９０９へ移行する。
【００６２】
以上の処理によって、アプリケーション１０１によるウィンドウとカーソルの関連付けることで、ウィンドウサイズとウィンドウ位置の変更による関連付けられたカーソル表示制御を行うことができる。
また、デバイスとカーソルを関連付けることで、デバイスドライバ１０２によるカーソル表示制御を行うことができる。これにより、ウィンドウの変更に連動したカーソル表示制御を容易に行うことが可能となる。
【００６３】
図２０は、本発明の実施形態におけるマルチウィンドウシステムにおいて、デバイスドライバ１０２が行う全体処理の手順の一例を説明するフローチャートである。以下の説明では、図１、図６、図７、図８、図１７で示した図を交えながら、本フローチャートに沿って説明する。
【００６４】
Ｓ２００１から処理を開始し、デバイスドライバ１０２が必要なデバイスにおいて、以下の処理を行う。
Ｓ２００２においては、図６でのデバイス作成要求６００により、リソース管理部１０６がデバイスの作成を行う。リソース管理部１０６は、デバイスを作成するとデバイス管理情報７００を作成し、デバイス作成要求の情報を登録する。デバイス識別子７０３は、デバイス識別子６０１へ登録し、デバイスドライバ１０２へ通知する。
【００６５】
デバイス種類６０２は、デバイス種類７０４へ登録し、デバイス名６０３はデバイス名７０５へ登録する。また、1つ前に作成したデバイス管理情報へのポインタを、デバイス管理情報７００の前のデバイス情報へのポインタ７０２へ登録する。最初に作成した場合は、ＮＵＬＬを登録する。1つ前に作成したデバイスがある場合、1つ前のデバイス管理情報７００の次のデバイス情報へのポインタ７０１に今回作成したデバイスの管理情報へのポインタを登録する。デバイス作成後、Ｓ２００３へ移行する。
【００６６】
Ｓ２００３では、必要なすべてのカーソルを作成したかをチェックし、作成していない場合は、Ｓ２００１へ戻る。作成済みの場合は、Ｓ２００４へ移行する。作成済みの場合、作成したデバイスは、図８のデバイスリスト８００によって、リソース管理部１０６で管理される。
【００６７】
Ｓ２００４において、デバイスドライバの処理を終了するか否かをチェックする。終了する場合、デバイスドライバ１０２での処理を終了する。終了しない場合、Ｓ２００５へ移行する。
Ｓ２００５では、デバイスドライバは管理しているマウスなどの操作によるデバイスからのイベントが発生したか否かをチェックする。発生していない場合、Ｓ２００４へ戻り、発生している場合、Ｓ２００６へ移行する。
【００６８】
Ｓ２００６においては、イベントが発生したデバイスにおいて、図１７のデバイスと関連付けられているカーソル識別子取得要求１７００により、１７０２のカーソル識別子を取得する。取得後、Ｓ２００７へ移行する。
【００６９】
Ｓ２００７においては、取得したカーソル識別子１７０２が有効であることで、関連付けられているカーソルが存在するか否かをチェックする。関連付けられているカーソルが存在しない場合、Ｓ２００４へ戻り、存在する場合、Ｓ２００８へ移行する。
Ｓ２００８においては、イベント発生によるデバイスの移動量と、リソース管理部１０６から取得する現在のカーソル表示位置から、新たなカーソル表示位置を計算する。計算後、Ｓ２００９へ移行する。
【００７０】
Ｓ２００９において、図１８のカーソル表示位置変更要求１８００を用いて、カーソル表示位置を更新する。Ｓ２００９での詳細な処理は、図２５のカーソル表示位置更新処理のフローチャートを参照しながら後で詳細に説明する。Ｓ２００９の処理後、Ｓ２００４に戻る。
【００７１】
以上の処理によって、デバイスドライバ１０２によるデバイスイベントでのカーソルの表示位置更新を行うことができる。これにより、デバイスと関連付けられたカーソルへの表示位置を操作することで、カーソルと関連付けられたウィンドウでのカーソル表示を容易に行うことが可能となる。
なお、図１９のアプリケーション１０１での処理と、図２０のデバイスドライバ１０２での処理とは、並列に動作が行われている。
【００７２】
図２１は、本発明の実施形態におけるマルチウィンドウシステムにおいて、カーソルとウィンドウの関連付けを行うための処理手順の一例を説明するフローチャートである。本処理は、図１９のアプリケーション１０１の全体処理を説明するフローチャートのＳ１９０６におけるカーソルウィンドウ関連付け部１０４とカーソル表示領域変更部１０９とで行なわれる処理である。以下では、図１、図４、図１１、図１４で示した図を交えながら、本フローチャートに沿って説明する。
【００７３】
Ｓ２１０１において、図１４での関連付け要求１４００により、ウィンドウ識別子１４０１とカーソル識別子１４０２に該当する、図４のウィンドウ管理情報４００と図１１のカーソル管理情報１１００をリソース管理部１０６から取得した否かを判断する。どちらか一方でも取得できない場合は、識別子を作成済みではないと判断し、関連付け処理を終了する。共に取得できる場合は作成済みと判断し、Ｓ２１０２へ移行する。
【００７４】
Ｓ２１０２において、取得したカーソル管理情報１１００の関連ウィンドウ識別子１１１１にウィンドウ識別子を登録する。登録後、Ｓ２１０３へ移行する。ここまでは、カーソルウィンドウ関連付け部１０４の処理である。
【００７５】
Ｓ２１０３において、カーソル管理情報１１００のカーソル表示位置１１０４を、関連付けたウィンドウのウィンドウ管理情報４００のウィンドウ開始位置４０４に変更する。例えば、カーソル表示位置がＸ座標１２０、Ｙ座標１００の場合に、関連付けるウィンドウの開始位置のＸ座標１００、Ｙ座標６０であれば、カーソル表示位置はＸ座標１００、Ｙ座標６０に更新する。更新後、カーソルの移動範囲は関連付けたウィンドウのサイズに変更し、Ｓ２１０４へ移行する。これは、カーソル表示領域変更部１０９の処理である。
【００７６】
Ｓ２１０４において、カーソルＺオーダ変更部１０８は、ウィンドウのＺオーダから関連付けたカーソルのＺオーダ値を構築する。Ｓ２１０４での詳細な処理は、図２３のカーソルのＺオーダ構築処理のフローチャートで説明する。変更後、Ｓ２１０５へ移行する。
Ｓ２１０５において、カーソル表示制御部１１０は、関連付けによりカーソルの表示位置が更新されたことをリソース管理部１０６へ通知する。通知後、カーソルとウィンドウの関連付け処理を終了する。
【００７７】
以上の処理によって、ウィンドウとカーソルの関連付けを行うことができる。これにより、ウィンドウと関連付けられたカーソル、カーソルと関連付けられたウィンドウを容易に特定することが可能となり、ウィンドウ情報の変更に連動して、カーソル情報を更新し、表示制御を行うことができる。
【００７８】
図２２は、アプリケーション１０１が図１４のカーソルウィンドウ関連付け要求１４００により、図２１の処理でのウィンドウとカーソルを関連付けた後の表示画面全体におけるウィンドウとカーソルのそれぞれの領域と位置を表す図である。アプリケーション１０１からのカーソルウィンドウ関連付け要求１４００により、ウィンドウの開始位置に関連付けたカーソルの表示位置を設定するため、カーソルは（Ｘｗ、Ｙｗ）に表示する。
【００７９】
ウィンドウサイズとカーソルのサイズの関連は、関連付けした際のウィンドウサイズにおける現在のカーソルサイズが基本値となる。よって、ウィンドウサイズ（Ｗｗ、Ｈｗ）におけるカーソルサイズ（Ｗｃ、Ｈｃ）が基本関連となる。
【００８０】
図２３は、本発明の実施形態におけるマルチウィンドウシステムのウィンドウ管理情報から関連付けられたカーソルのＺオーダ値を構築する処理手順の一例を説明するフローチャートである。本処理は、図２１のカーソルとウィンドウの関連付けを行う処理を説明するフローチャートでのＳ２１０４において行なわれるカーソルＺオーダ変更部１０８での処理である。以下では、図１、図４、図１１、図１４で示した図を交えながら、本フローチャートに沿って説明する。
【００８１】
Ｓ２３０１においては、図１４のカーソルウィンドウ関連付け要求１４００により、ウィンドウ識別子１４０１とカーソル識別子１４０２に該当する、図４のウィンドウ管理情報４００と図１１のカーソル管理情報１１００をリソース管理部１０６から取得する。取得したウィンドウ管理情報４００のウィンドウのＺオーダ４０６の値を、カーソル管理情報１１００のカーソルのＺオーダ１１１０に設定する。設定後、Ｓ２３０２へ移行する。
【００８２】
Ｓ２３０２においては、関連付けによりカーソルのＺオーダが更新されたことをリソース管理部１０６へ通知する。通知後、カーソルのＺオーダ構築処理を終了する。
以上の処理によって、関連付けられたウィンドウのＺオーダをカーソルのＺオーダとして設定することができる。これにより、ウィンドウと関連付けられたカーソルにおいて、Ｚオーダによる表示制御を判断することが可能となる。
【００８３】
図２４は、本発明の実施形態におけるマルチウィンドウシステムでのカーソルとデバイスの関連付けを行うための処理手順の一例を示すフローチャートである。本処理は、図１９のアプリケーション１０１の全体処理フローでのＳ１９０７におけるカーソルデバイス関連付け部１０３での処理である。以下では、図１、図７、図１１、図１３で示した図を交えながら、本フローチャートに沿って説明する。
【００８４】
Ｓ２４０１においては、図１３での関連付け要求１３００により、デバイス識別子１３０１とカーソル識別子１３０２に該当する、図７のデバイス管理情報７００と図１１のカーソル管理情報１１００をリソース管理部１０６から取得する。どちらか一方でも取得できない場合は、作成済みではないと判断し、関連付け処理を終了する。共に取得できる場合は作成済みと判断し、Ｓ２４０２へ移行する。
【００８５】
Ｓ２４０２においては、取得したデバイス管理情報７００の関連カーソル識別子７０６にカーソル識別子を登録する。また、取得したカーソル管理情報１１００の関連デバイス識別子１１１２にデバイス識別子を登録する。
以上の処理によって、デバイスとカーソルの関連付けを行うことができる。これにより、デバイスと関連付けられたカーソル、カーソルと関連付けられたデバイスを容易に特定することが可能となる。
【００８６】
図２５は、本実施形態におけるマルチウィンドウシステムでのデバイスのイベントによるカーソルの表示位置を更新する手順の一例を示すフローチャートである。本処理は、図２０のデバイスドライバ１０２の全体処理フローでのＳ２００９におけるカーソル表示制御部１１０での処理である。以下では、図１、図４、図１１、図１８で示した図を交えながら、本フローチャートに沿って説明する。
【００８７】
Ｓ２５０１においては、図１８でのカーソル表示位置変更要求１８００により、カーソル識別子１８０１に該当する図１１のカーソル管理情報１１００をリソース管理部１０６から取得する。そして、取得したカーソル管理情報１１００の関連ウィンドウ識別子１１１１にウィンドウ識別子が登録されているかをチェックする。登録されていない場合、Ｓ２５０３へ移行し、登録されている場合、該当するウィンドウ管理情報４００を取得し、Ｓ２５０２へ移行する。
【００８８】
Ｓ２５０２において、カーソル表示位置変更要求１８００のカーソル表示位置１８０２での位置が、カーソルと関連付けられているウィンドウの領域内かチェックする。ウィンドウの領域は、ウィンドウ管理情報４００のウィンドウ開始位置４０４とウィンドウサイズ４０５から計算する。カーソル表示位置１８０２がウィンドウ領域外である場合、Ｓ２５０４へ移行し、ウィンドウ領域内である場合、Ｓ２５０３へ移行する。
【００８９】
Ｓ２５０３において、現在のカーソル位置をカーソル表示位置１８０２で指定された位置へ描画する。描画後、Ｓ２５０５へ移行する。
Ｓ２５０４は、カーソル表示位置１８０２のＸ座標、Ｙ座標それぞれに最も近いウィンドウ領域の値を計算し、その位置をカーソルの表示位置としてカーソルを描画する。描画後、Ｓ２５０５へ移行する。
【００９０】
Ｓ２５０５において、Ｓ２５０３、もしくは２５０４で決定したカーソル表示位置において、ウィンドウのＺオーダが、描画したカーソルのＺオーダよりも大きいウィンドウがあるか否かをチェックする。カーソルのＺオーダは、図２３の処理により、ウィンドウと関連付けられている場合は、関連付けられたウィンドウのＺオーダ値であり、関連付けられていない場合は、デフォルト値０が設定されている。
【００９１】
カーソルがウィンドウと関連付けられており、カーソルのＺオーダよりも大きなウィンドウがある場合はＳ２５０６へ移行する。カーソルがウィンドウと関連付けられており、カーソルのＺオーダよりも大きなウィンドウがない場合は、Ｓ２５０７へ移行する。カーソルが関連付けられていない（カーソルのＺオーダがデフォルトの０である）場合も、Ｓ２５０７へ移行する。
【００９２】
Ｓ２５０６において、現在のカーソル表示を非表示にすることで、カーソルを消去する。非表示後、カーソル表示位置更新処理を終了する。
Ｓ２５０７は、現在のカーソルを表示する。表示後、カーソル表示位置更新処理を終了する。
【００９３】
処理を終了すると、図１に示すように、カーソル表示制御部１１０からリソース管理部１０６へカーソル表示更新通知が送られる。
以上の処理により、ウィンドウとカーソルを関連付けておくことで、カーソルを関連付けたウィンドウの領域内で容易に表示することが可能となる。また、関連付けたウィンドウのＺオーダと連動して、容易にカーソルの表示制御を行うことが可能となる。
【００９４】
図２６は、本発明の実施形態におけるマルチウィンドウシステムでのウィンドウサイズの変更によるカーソルサイズと表示位置を変更する手順の一例を示すフローチャートである。本処理は、図１９のアプリケーション１０１の全体処理フローでのＳ１９１２におけるカーソルスケーリング部１０７での処理である。以下では、図１、図４、図１１、図１６で示した図を交えながら、本フローチャートに沿って説明する。
【００９５】
Ｓ２６０１において、図１６でのウィンドウサイズ変更要求１６００により、１６０１のウィンドウ識別子に該当する図４のウィンドウ管理情報４００をリソース管理部１０６から取得する。取得したウィンドウ管理情報４００のウィンドウサイズ４０５とウィンドウサイズ変更要求１６００のウィンドウサイズ１６０２を比較して、差の比率を計算する。例えば、幅１６００、高さ１２００のウィンドウを、幅８００、高さ６００にサイズ変更する場合、比率は幅、高さ共に０．５０となる。
【００９６】
Ｓ２６０２から、作成済みのすべてのカーソルにおいて、以下の処理を行う。
Ｓ２６０３においては、カーソル管理情報１１００の関連ウィンドウ識別子１１１１がウィンドウ識別子１６０１と同じかをチェックする。異なる場合はＳ２６０８へ移行し、同じ場合、Ｓ２６０４へ移行する。
【００９７】
Ｓ２６０４においては、Ｓ２６０１で計算した比率に基づいて、カーソル管理情報１１００のカーソル画像サイズ１１０８のサイズを決定する。例えば、カーソルサイズが幅３２、高さ３２の場合、幅、高さ共にサイズは１６となる。サイズを決定すると、カーソル画像サイズ１１０８の値を更新し、Ｓ２６０５へ移行する。
Ｓ２６０５において、更新したサイズへカーソル画像をスケーリングする。スケーリング後、Ｓ２６０６へ移行する。
【００９８】
Ｓ２６０６においては、Ｓ２６０１で計算した比率に基づいて、カーソル管理情報１１００のカーソル表示位置１１０４を決定する。比率に基づいて変更となるのは、カーソル開始位置から現在のカーソル表示位置の間の距離である。例えば、ウィンドウ開始位置がＸ座標１００、Ｙ座標６０であり、カーソル表示位置がＸ座標１４０、Ｙ座標８０の場合、ウィンドウ開始位置とカーソルの表示位置の距離はＸ座標４０、Ｙ座標２０となる。
【００９９】
この距離の差において、Ｘ座標に幅０．５０の比率を、Ｙ座標に高さ０．５０の比率をかけて、Ｘ座標２０、Ｙ座標１０となる。この結果、カーソル表示位置はＸ座標１２０、Ｙ座標７０となる。表示位置を決定すると、Ｓ２６０７へ移行する。
【０１００】
Ｓ２６０７においては、カーソル表示位置１１０４の値を更新し、Ｓ２６０８へ移行する。
Ｓ２６０８において、作成済みのすべてのカーソルにおいて処理が完了したかをチェックし、完了していない場合は、Ｓ２６０２へ戻る。完了している場合は、Ｓ２６０９へ移行する。
Ｓ２６０９では、サイズ変更したウィンドウサイズに、スケーリングしたカーソル画像を変更した表示位置に描画するように、カーソル表示制御部１１０に表示を要求する。描画後、ウィンドウサイズ変更によるカーソルサイズ変更処理を終了する。
【０１０１】
以上の処理により、ウィンドウとカーソルを関連付けておくことで、ウィンドウサイズの変更に連動してカーソルサイズを容易にスケーリングし、カーソル表示位置を容易に変更して表示することが可能となる。１つのウィンドウには、複数のカーソルを関連付けることも可能であり、この際、ウィンドウと関連するすべてのカーソルサイズをスケーリングすることが可能である。また、ウィンドウと関連するすべてのカーソル表示位置を変更して表示することも可能である。
【０１０２】
図２７は、本発明の実施形態におけるマルチウィンドウシステムでのウィンドウ位置の変更によるカーソル表示位置を変更する手順の一例を示すフローチャートである。本処理は、図１９のアプリケーション１０１の全体処理フローでのＳ１９１４におけるカーソル表示領域変更部１０９での処理である。以下では、図１、図４、図１１、図１５で示した図を交えながら、本フローチャートに沿って説明する。
【０１０３】
Ｓ２７０１において、図１５でのウィンドウの位置変更要求１５００により、１５０１のウィンドウ識別子に該当する図４のウィンドウ管理情報４００をリソース管理部１０６から取得する。そして、取得したウィンドウ管理情報４００のウィンドウ開始位置４０４とウィンドウの位置変更要求１５００のウィンドウ開始位置１５０２を比較して、位置の差を計算する。例えば、Ｘ座標１００、Ｙ座標６０の開始位置にあるウィンドウを、Ｘ座標５０、Ｙ座標８０の位置へ変更する場合、Ｘ座標の差は５０、Ｙ座標の差は２０となる。
【０１０４】
Ｓ２７０２から、作成済みのすべてのカーソルにおいて、以下の処理を行う。
Ｓ２７０３においては、カーソル管理情報１１００の関連ウィンドウ識別子１１１１がウィンドウ識別子１５０１と同じか（登録されているか）をチェックする。異なる場合はＳ２７０６へ移行し、同じ場合、Ｓ２７０４へ移行する。
【０１０５】
Ｓ２７０４においては、Ｓ２７０１で計算した差に基づいて、カーソル管理情報１１００のカーソル表示位置１１０４を決定する。例えば、カーソル表示位置がＸ座標１４０、Ｙ座標８０の場合、Ｘ座標は９０、Ｙ座標は１００となる。表示位置を決定すると、Ｓ２７０５へ移行する。
Ｓ２７０５においては、カーソル表示位置１１０４の値を更新し、カーソルの移動範囲は関連付けたウィンドウのサイズに変更してＳ２７０６へ移行する。
【０１０６】
Ｓ２７０６で、作成済みのすべてのカーソルにおいて処理が完了したか否かをチェックし、完了していない場合は、Ｓ２７０２へ戻る。完了している場合は、Ｓ２７０７へ移行する。
Ｓ２７０７では、位置変更したウィンドウに、表示位置変更したカーソル画像を描画する。描画後、ウィンドウ位置によるカーソル表示位置変更処理を終了する。
【０１０７】
以上の処理により、ウィンドウとカーソルを関連付けておくことで、ウィンドウの開始位置の変更に連動してカーソル表示位置を容易に変更して表示することが可能となる。１つのウィンドウには、複数のカーソルを関連付けることも可能であり、この際、ウィンドウと関連するすべてのカーソル表示位置を変更して表示することが可能である。
【０１０８】
図２８は、本発明の実施形態におけるマルチウィンドウシステムでのウィンドウ位置の変更と、ウィンドウのサイズ変更による、表示画面全体におけるウィンドウとカーソル領域を表す図である。
図２８（ａ）は、ウィンドウ位置もウィンドウサイズも変更していない表示状態であり、ウィンドウ２８０１内にカーソル２８０２が表示されている。ウィンドウ２８０１の開始位置は（Ｘｗ、Ｙｗ）で、サイズは（Ｗｗ、Ｈｗ）となり、本例の場合Ｘｗ＝１００、Ｙｗ＝６０、幅Ｗｗ＝１６００、高さＨｗ＝１２００である。カーソル２８０２の表示位置は（Ｘｃ、Ｙｃ）で、サイズは（Ｗｃ、Ｈｃ）となり、本例の場合Ｘｃ＝１４０、Ｙｃ＝８０、幅Ｗｃ＝３２、高さＨｃ＝３２である。
【０１０９】
図２８（ｂ）は、（ａ）からウィンドウサイズを変更した場合の表示状態であり、ウィンドウ２８０３内にカーソル２８０４が表示している。ウィンドウ２８０３の開始位置は（Ｘｗ、Ｙｗ）で、サイズは（Ｗｒｗ、Ｈｒｗ）となり、本例の場合Ｘｗ＝１００、Ｙｗ＝６０で開始位置に変更はなく、サイズは幅Ｗｗ＝８００、高さＨｗ＝６００である。カーソル２８０４の表示位置は（Ｘｒｃ、Ｙｒｃ）で、サイズは（Ｗｒｃ、Ｈｒｃ）となり、本例の場合Ｘｒｃ＝１２０、Ｙｒｃ＝７０、幅Ｗｒｃ＝１６、高さＨｒｃ＝１６である。
【０１１０】
図２８（ｃ）は、（ａ）からウィンドウ位置を変更した場合の表示状態であり、ウィンドウ２８０５内にカーソル２８０６が表示されている。ウィンドウ２８０５の開始位置は（Ｘｍｗ、Ｙｍｗ）で、サイズは（Ｗｗ、Ｈｗ）となり、本例の場合Ｘｍｗ＝５０、Ｙｍｗ＝８０で、サイズは幅Ｗｗ＝１６００、高さＨｗ＝１２００となりサイズに変更はない。カーソル２８０６の表示位置は（Ｘｍｃ、Ｙｍｃ）で、サイズは（Ｗｃ、Ｈｃ）となり、本例の場合Ｘｍｃ＝９０、Ｙｍｃ＝１００、幅Ｗｃ＝３２、高さＨｃ＝３２である。
【０１１１】
図２８（ｄ）は、（ｂ）からウィンドウ位置を変更した場合の表示状態であり、また、（ｃ）からウィンドウサイズを変更した場合の表示状態でもある。ウィンドウ２８０７内にカーソル２８０８が表示されている。ウィンドウ２８０７の開始位置は（Ｘｍｗ、Ｙｍｗ）で、サイズは（Ｗｒｗ、Ｈｒｗ）となり、本例の場合Ｘｍｗ＝５０、Ｙｍｗ＝８０で、サイズは幅Ｗｒｗ＝８００、高さＨｒｗ＝６００である。カーソル２８０８の表示位置は（Ｘｒｍｃ、Ｙｒｍｃ）で、サイズは（Ｗｒｃ、Ｈｒｃ）となり、本例の場合Ｘｒｍｃ＝７０、Ｙｒｍｃ＝９０、幅Ｗｒｃ＝１６、高さＨｒｃ＝１６である。この結果より、ウィンドウのサイズ変更と位置変更には特に順番は関係なく、２つの組み合わせによる表示結果は同一の結果となる。
【０１１２】
本ウィンドウとカーソル領域は、１つのウィンドウに関連付けられている１つのカーソルについて示したが、１つのウィンドウには複数のカーソルを関連付けることができる。その場合を図２９に示す。
【０１１３】
図２９は、本実施形態におけるマルチウィンドウシステムにおいて、コンピュータ（ＰＣ）Ａ、Ｂ、Ｃ、Ｄの４台からの画面を１つのプロジェクタに表示するＰＣ画面転送の際の表示画面状態を示している。
図２９（ａ）は、ＰＣ画面転送を表示しているプロジェクタの画面の一例を示す図である。
【０１１４】
図２９（ａ）において、２９０１はＰＣ画面を表示しているウィンドウであり、コンピュータＡ、Ｂ、Ｃ、Ｄの画面を１つのウィンドウに表示している。２９０２、２９０３、２９０４、２９０５はカーソルであり、２９０２はコンピュータＡのカーソル、２９０３はコンピュータＢのカーソル、２９０４はコンピュータＣのカーソル、２９０５はコンピュータＤのカーソルである。
【０１１５】
従って、カーソル２９０２はコンピュータＡのマウスデバイス、カーソル２９０３はコンピュータＢのマウスデバイス、カーソル２９０４はコンピュータＣのマウスデバイス、カーソル２９０５はコンピュータＤのマウスデバイスと関連付けられている。また、この４つのカーソルは、ウィンドウ２９０１と関連付けられている。
【０１１６】
図２９（ｂ）は、ＰＣ画面転送の画面と動画の画面を２画面表示した際の表示画面状態を示している。
２９０６は表示画面全体であり、２９０７は図２９（ａ）のＰＣ画面転送のウィンドウ２９０１であり、２画面表示により、ウィンドウサイズが小さくなり、ウィンドウ開始位置も変更になっている。
【０１１７】
２９０８は動画ウィンドウであり、カーソルは使用しない。２９０９、２９１０、２９１１、２９１２は、２画面表示によりサイズと表示位置が変更となったカーソルである。２９０９は図２９（ａ）の２９０２、２９１０は図２９（ａ）の２９０３、２９１１は図２９（ａ）の２９０４、２９１２は図２９（ａ）の２９０５である。
【０１１８】
まず、ウィンドウ２９０１のウィンドウサイズ変更により、関連付けられている４つのカーソルは、ウィンドウのサイズ変更の比率で、それぞれカーソル画像サイズを変更し、カーソル表示位置を変更する。その後、ウィンドウ２９０１の位置の変更により、関連付けられている４つのカーソルは、ウィンドウの位置の差により、それぞれのカーソル表示位置を変更する。
【０１１９】
最後に、変更したウィンドウ２９０７に変更したカーソル２９０９、２９１０、２９１１、２９１２を表示することで、図２９（ｂ）の表示画面となる。また、コンピュータＡ、Ｂ、Ｃ、Ｄのマウスを操作することで、関連付けられているカーソル２９０９、２９１０、２９１１、２９１２を表示制御することができる。
【０１２０】
以上により、本実施形態におけるマルチウィンドウシステムによれば、ウィンドウとカーソルを関連付けることで、ウィンドウの変更に連動したカーソル表示制御が可能となる。また、デバイスとカーソルを関連付けることで、デバイスの操作に連動したカーソル表示制御が可能となる。よって、ユーザによるウィンドウやデバイスの操作でのカーソル表示の連動によって、カーソルの視認性が向上する。
【０１２１】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、前述した実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種のコンピュータ読み取り可能な記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１２２】
１００  ウィンドウシステム
１０１  アプリケーション
１０２  デバイスドライバ
１０３  カーソルデバイス関連付け部
１０４  カーソルウィンドウ関連付け部
１０５  関連管理部
１０６  リソース管理部
１０７  カーソルスケーリング部
１０８  カーソルＺオーダ変更部
１０９  カーソル表示領域変更部
１１０  カーソル表示制御部
１１１  表示出力部
【図１】
2015138475.tif 000003
【図２】
2015138475.tif 000004
【図３】
2015138475.tif 000005
【図４】
2015138475.tif 000006
【図５】
2015138475.tif 000007
【図６】
2015138475.tif 000008
【図７】
2015138475.tif 000009
【図８】
2015138475.tif 000010
【図９】
2015138475.tif 000011
【図１０】
2015138475.tif 000012
【図１１】
2015138475.tif 000013
【図１２】
2015138475.tif 000014
【図１３】
2015138475.tif 000015
【図１４】
2015138475.tif 000016
【図１５】
2015138475.tif 000017
【図１６】
2015138475.tif 000018
【図１７】
2015138475.tif 000019
【図１８】
2015138475.tif 000020
【図１９】
2015138475.tif 000021
【図２０】
2015138475.tif 000022
【図２１】
2015138475.tif 000023
【図２２】
2015138475.tif 000024
【図２３】
2015138475.tif 000025
【図２４】
2015138475.tif 000026
【図２５】
2015138475.tif 000027
【図２６】
2015138475.tif 000028
【図２７】
2015138475.tif 000029
【図２８】
2015138475.tif 000030
【図２９】
2015138475.tif 000031