(57)【要約】【課題】  オーバーヘッドを抑制しつつ、仮想マシン上で動作させるアプリケーションのウィンドウに対するイベントの通知を適切に行うことを目的とする。【解決手段】  仮想マシン上でアプリケーションを動作させる情報処理装置であって、ウィンドウ管理システム上で、前記仮想マシン上で動作させるアプリケーションとは異なるアプリケーションのウィンドウを管理する管理手段と、前記ウィンドウ管理システム上に、当該ウィンドウ管理システムからのイベントの通知が可能なベースウィンドウを生成する第一の生成手段と、前記ベースウィンドウを最上位として、前記仮想マシン上で動作させるアプリケーションの表示に含まれるウィンドウを階層構造で生成する第二の生成手段と、を有することを特徴とする。【選択図】  図３
2017215800.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシン上でアプリケーションを動作させる情報処理装置であって、
ウィンドウ管理システム上で、前記仮想マシン上で動作させるアプリケーションとは異なるアプリケーションのウィンドウを管理する管理手段と、
前記ウィンドウ管理システム上に、当該ウィンドウ管理システムからのイベントの通知が可能なベースウィンドウを生成する第一の生成手段と、
前記ベースウィンドウを最上位として、前記仮想マシン上で動作させるアプリケーションの表示に含まれるウィンドウを階層構造で生成する第二の生成手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記ベースウィンドウを用いて、前記仮想マシン上で動作させるアプリケーションの表示に含まれるウィンドウに対してイベントの通知を行う通知手段を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記通知手段は、前記階層構造をたどって、前記仮想マシン上で動作させるアプリケーションの表示に含まれるウィンドウに対してイベントの通知を行うことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ベースウィンドウは、前記仮想マシン上で動作させるアプリケーションごとに生成されることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
第一の生成手段は、前記仮想マシン上で動作させるアプリケーションが起動している否かを判定し、起動している場合に、前記ベースウィンドウを生成することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記ベースウィンドウをイベントの通知の通知先として登録する登録手段を更に有することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記登録手段による登録はＩＤを用いて行うことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
仮想マシン上でアプリケーションを動作させる情報処理装置の情報処理方法であって、
管理手段が、ウィンドウ管理システム上で、前記仮想マシン上で動作させるアプリケーションとは異なるアプリケーションのウィンドウを管理する管理工程と、
第一の生成手段が、前記ウィンドウ管理システム上に、当該ウィンドウ管理システムからのイベントの通知が可能なベースウィンドウを生成する第一の生成工程と、
第二の生成手段が、前記ベースウィンドウを最上位として、前記仮想マシン上で動作させるアプリケーションの表示に含まれるウィンドウを階層構造で生成する第二の生成工程と、を有することを特徴とする情報処理方法。
【請求項９】
コンピュータを、
仮想マシン上でアプリケーションを動作させる情報処理装置であって、
ウィンドウ管理システム上で、前記仮想マシン上で動作させるアプリケーションとは異なるアプリケーションのウィンドウを管理する管理手段と、
前記ウィンドウ管理システム上に、当該ウィンドウ管理システムからのイベントの通知が可能なベースウィンドウを生成する第一の生成手段と、
前記ベースウィンドウを最上位として、前記仮想マシン上で動作させるアプリケーションの表示に含まれるウィンドウを階層構造で生成する第二の生成手段と、を有することを特徴とする情報処理装置として機能させるコンピュータのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン上でアプリケーションを動作させる情報処理装置情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
従来から、アプリケーションプラットフォームにおいては、異なる２種類のＷｉｎｄｏｗシステムを利用する場合があった。例えば、図１のようにアプリケーションプラットフォームにおいては、Ｘ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍ（登録商標）とＪａｖａ（登録商標）ＶＭ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍの異なる２種類のＷｉｎｄｏｗシステムを利用することがある。図中のＮａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒ、ＪａｖａＶＭはアプリケーションプラットフォームに存在し、それぞれ異なるモジュールである。ＪａｖａＶＭは、ＪａｖａＶＭ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍを利用して、Ｊａｖａ言語のアプリケーションのＷｉｎｄｏｗの生成を行っている。一方、Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒは、ネイティブアプリケーションのＷｉｎｄｏｗの生成を行うとともに、全てのアプリケーションが持つＷｉｎｄｏｗに対するイベントの送信を行う。Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  ＭａｎａｇｅｒはそれぞれのＷｉｎｄｏｗシステムが持つインタフェースを通じて、Ｗｉｎｄｏｗ生成を命令し、Ｗｉｎｄｏｗへのイベント送信を行う。Ｘ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍの内部では、ＸＲｏｏｔＷｉｎｄｏｗと呼ぶ最上位のＷｉｎｄｏｗの下に親子関係を持った階層構造でＷｉｎｄｏｗが生成される。例えば、図１のようにＸＲｏｏｔＷｉｎｄｏｗの下に子ＷｉｎｄｏｗとしてＢＡＳＥＷｉｎｄｏｗ３が生成され、さらにその子ＷｉｎｄｏｗとしてＰａｎｅｌとＦｒａｍｅの２つのＷｉｎｄｏｗが生成されている。またイベントを受信する対象Ｗｉｎｄｏｗの決め方に階層構造を用いる。例えば、カーソル位置に重なっているＷｉｎｄｏｗのうち階層構造をたどって一番最下層にあるＷｉｎｄｏｗを対象Ｗｉｎｄｏｗとする（非特許文献１参照）。
【０００３】
一方、ＪａｖａＶＭ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍでは、Ｘ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍと異なる方法でＷｉｎｄｏｗが生成される。図中のＢＡＳＥＷｉｎｄｏｗはＸ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍが生成したＷｉｎｄｏｗであり、これを共有している。それ以外のＢｕｔｔｏｎ／Ｌａｂｅｌ／Ｆｒａｍｅ／ＰａｎｅｌはＣｏｍｐｏｎｅｎｔと呼ばれるＷｉｎｄｏｗに代わる部品であり、ＪａｖａＶＭ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍが生成するものである。ＣｏｍｐｏｎｅｎｔはＢＡＳＥＷｉｎｄｏｗ上に描画される。また、Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒがイベントを送信する対象はＢＡＳＥＷｉｎｄｏｗとなる。ＪａｖａＶＭ  Ｗｉｎｄｏｗ  ＳｙｓｔｅｍがまずＢＡＳＥＷｉｎｄｏｗでイベントを受け取る。次にイベントのカーソル位置を元に、その位置で前面に描画されているＣｏｍｐｏｎｅｎｔに対してイベントの処理を行うよう制御をする。
【０００４】
そして、Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒはイベントの送信先のＷｉｎｄｏｗシステムをアプリケーションによって切り替える。例えばネイティブアプリケーションの実行中にはＸ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍへ、Ｊａｖａ言語アプリケーション実行中ではＪａｖａＶＭ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍへ送信する。従来技術においては、上記のように異なる２種類のＷｉｎｄｏｗシステムを利用していた。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】「Ｘ  Ｗｉｎｄｏｗハンドブック」（Ｏｌｉｖｅｒ  Ｊｏｎｅｓ著、株式会社アスキー  発行、１９９０年）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の方法では異なる２種類のＷｉｎｄｏｗシステムを使うため、Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒによるイベントの通知の処理にオーバーヘッドが生じることがあった。例えば、イベント形式をそれぞれのＷｉｎｄｏｗシステムに合う方式に変換する必要等があり、これがオーバーヘッドの要因となる。一方で、Ｗｉｎｄｏｗシステムを１種類に統一した場合、Ｗｉｎｄｏｗ生成の方法によっては、Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒが送信するイベントが目的のＷｉｎｄｏｗまで到達しないことがある。
【０００７】
本発明は上述した課題を解決するためになされたものであり、オーバーヘッドを抑制しつつ、仮想マシン上で動作させるアプリケーションのウィンドウに対するイベントの通知を適切に行うことを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、仮想マシン上でアプリケーションを動作させる情報処理装置であって、ウィンドウ管理システム上で、前記仮想マシン上で動作させるアプリケーションとは異なるアプリケーションのウィンドウを管理する管理手段と、前記ウィンドウ管理システム上に、当該ウィンドウ管理システムからのイベントの通知が可能なベースウィンドウを生成する第一の生成手段と、前記ベースウィンドウを最上位として、前記仮想マシン上で動作させるアプリケーションの表示に含まれるウィンドウを階層構造で生成する第二の生成手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、オーバーヘッドを抑制しつつ、仮想マシン上で動作させるアプリケーションのウィンドウに対するイベントの通知を適切に行うことが出来る。
【図面の簡単な説明】
【００１０】
【図１】従来技術における複数Ｗｉｎｄｏｗの階層構造の例を示す図である。
【図２】ハードウェア構成を示す図である。
【図３】実施形態１におけるシステムの構成要素を示す図である。
【図４】表示装置上に表示される複数Ｗｉｎｄｏｗの例（ａ）と、複数Ｗｉｎｄｏｗの階層構造の例（ｂ）とを示す図である。
【図５】ＢＡＳＥＷｉｎｄｏｗ生成処理の例（ａ）と、ＪａｖａＶＭ  Ｗｉｎｄｏｗ生成処理の例（ｂ）とを示す図である。
【図６】実施形態２におけるシステムの構成要素を示す図である。
【図７】実施形態２におけるＢＡＳＥＷｉｎｄｏｗ生成処理の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１２】
（実施形態１）
図２は本実施形態にかかる装置のハードウェア構成を示す図である。
【００１３】
中央演算処理装置１００１は演算手段を有する情報処理装置であり、装置全体の動作制御のための各種処理を実行する。アプリケーションの実行処理もここで行う。メモリ１００２はＲＡＭやＲＯＭなどの半導体メモリである。半導体メモリには、Ｗｉｎｄｏｗの描画データが保持され、プログラム実行時の一時的なデータも格納される。入力装置１００３は、キーボードやマウスやタッチデバイスなどでありユーザがアプリケーション利用時に情報を入力する際のインタフェースとなる。表示装置１００４は、ディスプレイ装置などであり、画面上にＷｉｎｄｏｗなどのユーザインタフェースを表示したりする。補助記憶装置１００５はハードディスクドライブなどであり各種データの保管先に用いる。通信インタフェース１００６は外部ネットワークとのデータ入出力の制御を行う。１００７はシステムバスであり、上記１００１〜１００６を接続し各装置間での情報転送経路となる。０００１は上記構成を持つ機器である。
【００１４】
図３は、本実施形態においてウィンドウ管理のために必要なシステムの構成要素を示すブロック図である。ＪａｖａＶＭ１００、ウィンドウ管理システムであり、ウィンドウ管理システム上で複数のウィンドウを管理するＸ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍ２００、Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒ３００、表示装置１００４がある。表示装置は図２中の１００４に対応する。
【００１５】
ＪａｖａＶＭ１００は仮想マシンであり、ＪａｖａＶＭ１００の内部には以下の１０１〜１０３が存在する。仮想マシンは当該仮想マシン上でアプリケーションを動作させることが可能となっている。
【００１６】
１０１はＪａｖａＶＭ  Ｗｉｎｄｏｗ生成手段であり、Ｗｉｎｄｏｗを作成する機能を持つ。具体的には、後述のＸＷｉｎｄｏｗ生成手段２０１に命令して、Ｗｉｎｄｏｗを区別するためのＩＤの確保や、Ｗｉｎｄｏｗの表示やイベント処理に必要なメモリ領域の確保を行う。確保したメモリ領域はＸＷｉｎｄｏｗ生成手段２０１内部で保持されるが、そのポインタ（メモリ領域の先頭アドレス）は１０１に保持する。また、生成されたＷｉｎｄｏｗのＩＤや生成時の親ＷｉｎｄｏｗのＩＤ、幅、高さ、表示状態（可視・非可視）なども含めて、Ｗｉｎｄｏｗに関する情報も１０１で保持する。
【００１７】
１０２はＪａｖａＶＭ  Ｗｉｎｄｏｗ構造管理手段であり、ＪａｖａＶＭが生成した全Ｗｉｎｄｏｗの階層構造（Ｗｉｎｄｏｗの親子関係）をデータとして保持する。ＪａｖａＶＭ  Ｗｉｎｄｏｗ生成手段１０１が生成したＷｉｎｄｏｗに関する情報を受け取ったり、後述のＸＷｉｎｄｏｗ構造管理手段にＷｉｎｄｏｗ構造を問い合わせたりする機能も持つ。
【００１８】
１０３はＪａｖａＶＭ  ＢＡＳＥＷｉｎｄｏｗ取得手段である。ＢＡＳＥＷｉｎｄｏｗ（ベースウィンドウ）とはＪａｖａＶＭが持つ全Ｗｉｎｄｏｗにおいて、階層構造の最上位に位置するＷｉｎｄｏｗである。このＷｉｎｄｏｗへのポインタやＷｉｎｄｏｗに関する情報をＮａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒから取得する機能を持つ。Ｘ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍ２００の内部には以下の２０１〜２０３が存在する。２０１はＸＷｉｎｄｏｗ生成手段であり、Ｗｉｎｄｏｗを作成する機能を持つ。Ｗｉｎｄｏｗを区別するためのＩＤの確保や、Ｗｉｎｄｏｗの表示やイベント処理に必要なメモリ領域の確保を行う。確保したメモリ領域はここで保持する。
【００１９】
２０２はＸＷｉｎｄｏｗ構造管理手段であり、ＸＷｉｎｄｏｗ生成手段２０１で生成した全Ｗｉｎｄｏｗの階層構造データを保持する。問合せ元からＷｉｎｄｏｗＩＤを受け取ったらそのＷｉｎｄｏｗの子Ｗｉｎｄｏｗや親ＷｉｎｄｏｗのＩＤが何かを返す機能も持つ。
【００２０】
２０３はＸＷｉｎｄｏｗ描画手段であり、Ｗｉｎｄｏｗを画面上に描画するためのグラフィックデータを生成する機能を持つ。
【００２１】
Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒ３００の内部には以下の３０１〜３０３が存在する。
【００２２】
３０１はＢＡＳＥＷｉｎｄｏｗ生成手段であり、ＸＷｉｎｄｏｗ生成手段２０１に命令して、Ｗｉｎｄｏｗを区別するためのＩＤの確保や、Ｗｉｎｄｏｗの表示やイベント処理に必要なメモリ領域の確保を行う。そしてここで生成したＷｉｎｄｏｗ（ＢＡＳＥＷｉｎｄｏｗ）のポインタやＷｉｎｄｏｗに関する情報をＪａｖａＶＭ  ＢＡＳＥＷｉｎｄｏｗ取得手段１０３へ渡す機能も持つ。なお、ＪａｖａＶＭに渡すものとしてＢＡＳＥＷｉｎｄｏｗは１つしか生成しない。ただ、ＢＡＳＥＷｉｎｄｏｗ自体は複数生成されうる。例えば、Ｗｅｂアプリケーション用のモジュールなど、ＪａｖａＶＭ以外のモジュールに対して別ＢＡＳＥＷｉｎｄｏｗを生成する。また、ＢＡＳＥＷｉｎｄｏｗは、各モジュールにおいて階層構造上の最上位のＷｉｎｄｏｗとして扱われる。３０２はＮａｔｉｖｅＷｉｎｄｏｗ生成手段であり、ここではＢＡＳＥＷｉｎｄｏｗ以外のＷｉｎｄｏｗを３０１と同様に生成する機能を持つ。ここで生成するＷｉｎｄｏｗはＢＡＳＥＷｉｎｄｏｗより下位層に位置する。３０３はＮａｔｉｖｅＷｉｎｄｏｗ構造管理手段であり、ＢＡＳＥＷｉｎｄｏｗを含む全Ｗｉｎｄｏｗの階層構造データを保持する。また、ＸＷｉｎｄｏｗ構造管理手段へＷｉｎｄｏｗの表示切り替えの命令を送る機能も持つ。例えば、ＪａｖａＶＭ用のＢＡＳＥＷｉｎｄｏｗを最上面に表示したい場合に、そのＢＡＳＥＷｉｎｄｏｗを可視状態にし、それ以外のＢＡＳＥＷｉｎｄｏｗを非可視状態とする命令を送る。表示装置１００４の内部には、画面描画手段４０１がある。ここではＸＷｉｎｄｏｗ描画手段２０３から受け取ったグラフィックデータを解釈しディスプレイ画面上へ描画する機能を持つ。
【００２３】
次に、本実施形態におけるＷｉｎｄｏｗ生成の例を図４（ａ）（ｂ）を用いて説明する。図４（ａ）は表示装置上に表示される複数Ｗｉｎｄｏｗの例である。図中のＢＡＳＥＷｉｎｄｏｗ，Ｐａｎｅｌ，Ｂｕｔｔｏｎ，Ｌａｂｅｌ，Ｆｒａｍｅは全て個別のＷｉｎｄｏｗである。ＢＡＳＥＷｉｎｄｏｗが最下面にありその上にＰａｎｅｌが表示されている。Ｐａｎｅｌ上には３つのＳｅｔｔｉｎｇｓボタン（Ｂｕｔｔｏｎ）が表示されている。そしてユーザがＳｅｔｔｉｎｇｓボタンを押すと、Ｆｒａｍｅが表示される。Ｆｒａｍｅの上にはＬａｂｅｌとＯＫボタン（Ｂｕｔｔｏｎ）も表示されている。
【００２４】
図４（ｂ）ではＸ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍによって生成された複数のＷｉｎｄｏｗの階層構造を、図中のＸ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍの枠内に模式的に示している。また、図中の４ａ部分は、図４（ａ）で示した複数Ｗｉｎｄｏｗに対応している。
【００２５】
図中の４つのＢＡＳＥＷｉｎｄｏｗは、Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒからの命令によって生成されたＷｉｎｄｏｗである。これらはＸＲｏｏｔＷｉｎｄｏｗと呼ぶＸ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍが最上位に持つＷｉｎｄｏｗの子Ｗｉｎｄｏｗになるよう作成する。なおＷｉｎｄｏｗ生成する際に親とするＷｉｎｄｏｗのＩＤを指定すれば、その子Ｗｉｎｄｏｗとして生成できる。
【００２６】
また、これら４つのＢＡＳＥＷｉｎｄｏｗはＮａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒが管理している。そして、各ＢＡＳＥＷｉｎｄｏｗごとに別々の用途を割り当てている。例えば、ＢＡＳＥＷｉｎｄｏｗはＪａｖａ用アプリケーション用、ＢＡＳＥＷｉｎｄｏｗ２はネイティブアプリケーション用、という具合である。なお、ＢＡＳＥＷｉｎｄｏｗは各アプリケーションが起動するより前のタイミングで生成される。ここで、例えばユーザがＪａｖａ用アプリケーションを終了し、ネイティブアプリケーションを開始する操作をすると、ＢＡＳＥＷｉｎｄｏｗを閉じて、ＢＡＳＥＷｉｎｄｏｗ２を表示するよう切り替える。また、操作イベントの通信先をＢＡＳＥＷｉｎｄｏｗからＢＡＳＥＷｉｎｄｏｗ２へ切り替える。尚、このような処理は、Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒ３００の中のＮａｔｉｖｅＷｉｎｄｏｗ構造管理手段３０３が、ＸＷｉｎｄｏｗ構造管理手段２０２へ命令を送ることによって行う。
【００２７】
図中の４ａ部分のうちＢＡＳＥＷｉｎｄｏｗ以外のＷｉｎｄｏｗは、ＪａｖａＶＭからの命令によって作成されたものである。例えば、ＢＡＳＥＷｉｎｄｏｗの子ＷｉｎｄｏｗとしてＰａｎｅｌとＦｒａｍｅが生成されている。Ｐａｎｅｌの子Ｗｉｎｄｏｗとして３つのＢｕｔｔｏｎ（図４（ａ）のＳｅｔｔｉｎｇｓボタンに対応）が生成されている。Ｆｒａｍｅの子ＷｉｎｄｏｗとしてはＬａｂｅｌとＢｕｔｔｏｎ（図４（ａ）ＯＫボタンに対応）が生成されている。
【００２８】
また、Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  ＭａｎａｇｅｒはＢＡＳＥＷｉｎｄｏｗの下にある最下層の子Ｗｉｎｄｏｗを検索し、そのＷｉｎｄｏｗに対して操作イベントを送信する。例えば、図４（ａ）のＯＫボタン上にカーソルがあり、そこを押した場合、Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒがカーソル位置で可視状態にある子Ｗｉｎｄｏｗを検索する。その結果ＢＡＳＥＷｉｎｄｏｗ、Ｆｒａｍｅをたどって最下層のＢｕｔｔｏｎを探し当て、それに対して押下イベントを送信する。
【００２９】
次に、以上のようなＷｉｎｄｏｗ作成の詳細な手順について、図５のフローチャートを用いて説明する。なお、ＪａｖａＶＭがＷｉｎｄｏｗを生成する場合（図４（ｂ）中の４ａ部分のＷｉｎｄｏｗを生成する場合）の処理を中心に説明する。
【００３０】
まず、図５（ａ）に示すＢＡＳＥＷｉｎｄｏｗの作成を行う。ＢＡＳＥＷｉｎｄｏｗの生成手順はまず、ＸＷｉｎｄｏｗ生成手段２０１に対しＷｉｎｄｏｗ生成を命令する。この時、親ＷｉｎｄｏｗとしてＸＲｏｏｔＷｉｎｄｏｗのＩＤを指定する（Ｓ０５１１）。そして生成されたＷｉｎｄｏｗのポインタとＷｉｎｄｏｗに関する情報は３０１に保持される。また、生成したＢＡＳＥＷｉｎｄｏｗのＩＤはＮａｔｉｖｅＷｉｎｄｏｗ構造管理手段３０３へ通知する（Ｓ０５１２）。以上のような生成処理を必要な枚数分が出来るまで繰り返す（Ｓ０５１３）。最終的に、図４（ｂ）に示す４枚のＢＡＳＥＷｉｎｄｏｗを生成する。なお、必要な枚数はあらかじめ設定により決められている。
【００３１】
以上のＢＡＳＥＷｉｎｄｏｗ生成処理は、図５（ｂ）に示すＪａｖａＶＭ  Ｗｉｎｄｏｗ生成処理より前に行われる。例えば、ＮａｔｉｖｅＷｉｎｄｏｗＭａｎａｇｅｒの起動時などである。つまりＪａｖａＶＭ  Ｗｉｎｄｏｗ生成開始時にはＢＡＳＥＷｉｎｄｏｗが存在している。次に、図５（ｂ）を用いてＪａｖａＶＭ  Ｗｉｎｄｏｗの生成手順を説明する。
【００３２】
まず、Ｗｉｎｄｏｗ生成が１回目の場合（Ｓ０５００）、ＢＡＳＥＷｉｎｄｏｗを取得する。具体的には、ＪａｖａＶＭ  ＢＡＳＥＷｉｎｄｏｗ取得手段１０３がＢＡＳＥＷｉｎｄｏｗ生成手段３０１から、ＢＡＳＥＷｉｎｄｏｗのポインタやＷｉｎｄｏｗに関する情報を取得する。そしてＢＡＳＥＷｉｎｄｏｗのＩＤはＪａｖａＶＭＷｉｎｄｏｗ構造管理手段１０２へ通知され、１０２内部で保存される（Ｓ０５０１）。次に、生成するＷｉｎｄｏｗの親Ｗｉｎｄｏｗの種類が指定されているかを調べる（Ｓ０５０２）。例えば、図４（ｂ）のＬａｂｅｌのＷｉｎｄｏｗを生成する場合、Ｆｒａｍｅ上にＬａｂｅｌを貼るという指定がＪａｖａプログラムによってなされており、これに従って親Ｗｉｎｄｏｗの種類がＦｒａｍｅであると指定されている。そのためＳ０５０２の判別がＹＥＳ  となる。以上の処理はＪａｖａＶＭ  Ｗｉｎｄｏｗ生成手段１０１からの命令を受けてＪａｖａＶＭ  Ｗｉｎｄｏｗ構造管理手段１０２が行う。
【００３３】
次に、Ｓ０５０３において、ＦｒａｍｅのＷｉｎｄｏｗＩＤを、ＪａｖａＶＭ  Ｗｉｎｄｏｗ構造管理手段１０２がＸＷｉｎｄｏｗ構造管理手段２０２に問い合わせて取得する。そして、ＪａｖａＶＭ  Ｗｉｎｄｏｗ構造管理手段１０２がＪａｖａＶＭ  Ｗｉｎｄｏｗ生成手段１０１へＦｒａｍｅのＷｉｎｄｏｗＩＤを渡す。次にＳ０５０４においてＪａｖａＶＭ  Ｗｉｎｄｏｗ生成手段１０１はＦｒａｍｅのＩＤを親Ｗｉｎｄｏｗに指定してＸＷｉｎｄｏｗ生成手段へＬａｂｅｌのＷｉｎｄｏｗ生成の命令を送る。以上のような方法により、図４（ｂ）のようにＬａｂｅｌがＦｒａｍｅの子Ｗｉｎｄｏｗとして生成される。
【００３４】
一方、例えば、ＦｒａｍｅのＷｉｎｄｏｗを生成する際にはこのようなＪａｖａプログラムによる指定はない。この場合Ｓ０５０２の判別はＮＯとなり、次にＳ０５０５において、ＪａｖａＶＭ  Ｗｉｎｄｏｗ構造管理手段１０２が内部に保持しているＢＡＳＥＷｉｎｄｏｗのＩＤをＪａｖａＶＭ  Ｗｉｎｄｏｗ生成手段１０１へ渡す。そしてＳ０５０６においてＪａｖａＶＭ  Ｗｉｎｄｏｗ生成手段１０１はＢＡＳＥＷｉｎｄｏｗのＩＤを親Ｗｉｎｄｏｗに指定してＸＷｉｎｄｏｗ生成手段へＦｒａｍｅのＷｉｎｄｏｗ生成の命令を送る。以上のような方法により、図４（ｂ）のようにＦｒａｍｅがＢＡＳＥＷｉｎｄｏｗの子Ｗｉｎｄｏｗとして生成される。
【００３５】
ＸＷｉｎｄｏｗ生成手段２０１によって生成されたＷｉｎｄｏｗの情報はＸＷｉｎｄｏｗ構造管理手段２０２へ送信される。ＸＷｉｎｄｏｗ構造管理手段２０２では複数のＸＷｉｎｄｏｗを管理しており、ＪａｖａＶＭＷｉｎｄｏｗ生成手段１０１だけでなくＮａｔｉｖｅＷｉｎｄｏｗ生成手段３０２によって生成されたＸｗｉｎｄｏｗも含まれている。
【００３６】
また、ＸＷｉｎｄｏｗ構造管理手段２０２はＸＷｉｎｄｏｗ描画手段２０３に対し、どのＷｉｎｄｏｗをどのように重ねて表示するかを命令する。そして２０３で命令に従ってグラフィックデータを生成し画面描画手段４０１へ送信する。そして４０１によって画面上にＷｉｎｄｏｗが表示される。以上のような方法によれば、Ｆｒａｍｅの親ＷｉｎｄｏｗをＸＲｏｏｔＷｉｎｄｏｗではなく、ＢＡＳＥＷｉｎｄｏｗとして生成する。こうすることで、Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  ＭａｎａｇｅｒがＦｒａｍｅやＦｒａｍｅの下のＬａｂｅｌやＢｕｔｔｏｎに対して、イベントを送信することができる。従来はＸＲｏｏｔＷｉｎｄｏｗを親ＷｉｎｄｏｗとしてＦｒａｍｅを生成したがその場合、Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  ＭａｎａｇｅｒがそのＦｒａｍｅを検知できずそれに対してイベントを送信できないということがあった。Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒがイベントを送信する通知先はＢＡＳＥＷｉｎｄｏｗの子Ｗｉｎｄｏｗのみであるからである。以上で説明した通り、本実施形態によれば、必要なイベントの送信が可能となっている。
【００３７】
（実施形態２）
本実施形態では、実施形態１にようにＢＡＳＥＷｉｎｄｏｗの生成をＮａｔｉｖｅ  Ｗｉｎｄｏｗ  Ｍａｎａｇｅｒ３００で行うではなく、ＪａｖａＶＭ１００で行う。図６は、本実施形態のブロック図である。図３と比較すると、ＪａｖａＶＭＢａｓｅＷｉｎｄｏｗ生成手段１０４と、ＪａｖａＶＭＢａｓｅＷｉｎｄｏｗ登録手段１０５があり、ＪａｖａＶＭＢＡＳＥＷｉｎｄｏｗ取得手段１０３とＢＡＳＥＷｉｎｄｏｗ生成手段３０１がない違いがある。上記以外の部分については、図３と同じである。以下では、違いのある部分についてのみ説明する。ＪａｖａＶＭＢＡＳＥＷｉｎｄｏｗ生成手段１０４は、ＸＷｉｎｄｏｗ生成手段２０１に命令して、Ｗｉｎｄｏｗを区別するためのＩＤやメモリ領域の確保を行う機能を持つ。
【００３８】
ＪａｖａＶＭＢＡＳＥＷｉｎｄｏｗ登録手段１０５は、ＪａｖａＶＭＢＡＳＥＷｉｎｄｏｗ生成手段１０４からＢＡＳＥＷｉｎｄｏｗの情報を受け取り、これをＮａｔｉｖｅＷｉｎｄｏｗ構造管理手段３０３へ登録する機能を持つ。
【００３９】
次に、ＢＡＳＥＷｉｎｄｏｗの生成手順について図７を用いて説明する。まず、ＪａｖａＶＭＢＡＳＥＷｉｎｄｏｗ生成手段１０４がＸＷｉｎｄｏｗ生成手段２０１にＷｉｎｄｏｗの生成を命令する。この時、親ＷｉｎｄｏｗとしてＸＲｏｏｔＷｉｎｄｏｗのＩＤを指定する（Ｓ０７０１）。そして生成されたＷｉｎｄｏｗの情報はＪａｖａＶＭＢＡＳＥＷｉｎｄｏｗ生成手段１０４に保持されるとともに、ＩＤをＪａｖａＶＭＷｉｎｄｏｗ構造管理手段１０２へ通知する（Ｓ０７０２）。その後、ＢＡＳＥＷｉｎｄｏｗの情報をＮａｔｉｖｅＷｉｎｄｏｗ構造管理手段３０３へ登録する（Ｓ０７０３）。以上のような方法によれば、Ｊａｖａ用アプリが起動していないと判定されたときなど、ＪａｖａＶＭがＢＡＳＥＷｉｎｄｏｗを必要としていない間はＢＡＳＥＷｉｎｄｏｗを生成しない。これは、ＪａｖａＶＭが必要としないときでもＮａｔｉｖｅ  Ｗｉｎｄｏｗ  ＭａｎａｇｅｒがＪａｖａＶＭ用のＢＡＳＥＷｉｎｄｏｗを作成している実施形態１と比べて、省リソースとなる利点がある。
【００４０】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2017215800.tif 000003
【図２】
2017215800.tif 000004
【図３】
2017215800.tif 000005
【図４】
2017215800.tif 000006
【図５】
2017215800.tif 000007
【図６】
2017215800.tif 000008
【図７】
2017215800.tif 000009