(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムに関連付けられるウィンドウに対応する情報であり、該情報に従って該情報に対応するウィンドウが表示されることとなるウィンドウ情報を複数記憶するウィンドウ情報記憶手段から、前記ウィンドウ情報を取得するウィンドウ情報取得手段と、
前記ウィンドウ情報取得手段が複数回取得した、前記ウィンドウ情報の差分に基づいて、前記ウィンドウ情報の変化を示すウィンドウ変化情報を生成し、該ウィンドウ変化情報を前記ウィンドウ情報に関連付けるウィンドウ変化情報関連付け手段と、
前記ウィンドウの状態の変化を示すイベント情報を通知するイベント情報通知手段から、前記ウィンドウの状態の変化を示すイベント情報を受け付けるイベント情報受付手段と、
前記ウィンドウ情報取得手段が取得する複数のウィンドウ情報に対応するウィンドウの位置関係が、予め定められた条件を満たす場合に、該複数のウィンドウ情報を関連付ける関連ウィンドウ情報を生成し、該複数のウィンドウ情報に前記関連ウィンドウ情報を関連付けるウィンドウ情報関連付け手段と、
前記ウィンドウ情報に関連付けられるウィンドウ変化情報が示す変化、又は、前記イベント情報によって示される、該ウィンドウ情報に対応するウィンドウの状態の変化に応じて、前記関連ウィンドウ情報によって該ウィンドウ情報に関連付けられている他のウィンドウ情報を変更するウィンドウ情報変更手段と、
前記関連ウィンドウ情報により関連付けられる複数のウィンドウ情報のそれぞれに対応するウィンドウが、対応するウィンドウ情報に従って表示されるよう制御する表示制御手段と、
を含むことを特徴とする情報処理装置。
【請求項２】
前記ウィンドウ情報変更手段が、前記他のウィンドウ情報に含まれる、ウィンドウが表示される大きさを示すサイズ情報を変更する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記イベント情報受付手段は、前記ウィンドウ情報取得手段が取得する前記ウィンドウ情報の差分に基づいては検出されない前記ウィンドウの状態の変化を示すイベント情報を受け付ける、
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ウィンドウ情報取得手段が取得する前記ウィンドウ情報を記憶する取得情報記憶手段をさらに含み、
前記ウィンドウ変化情報関連付け手段が、前記ウィンドウ情報取得手段が取得する前記ウィンドウ情報と、前記取得情報記憶手段に記憶されている前記ウィンドウ情報との差分に基づいて、前記ウィンドウ変化情報を生成し、該ウィンドウ変化情報を前記ウィンドウ情報に関連付ける、
ことを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記ウィンドウ情報取得手段は、前記取得情報記憶手段に記憶されている個々のウィンドウ情報に対応するウィンドウ情報を前記ウィンドウ情報記憶手段から取得する、
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記ウィンドウ情報変更手段が、前記関連ウィンドウ情報によって関連付けられる前記複数のウィンドウ情報に対応するウィンドウが連結して表示出力されるよう、ウィンドウ情報を変更する、
ことを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
記憶部に記憶されている情報を要求に応じて保存する情報保存手段と、
前記情報保存手段に保存されている情報を要求に応じて前記記憶部に復元する情報復元手段と、をさらに含み、
前記ウィンドウ情報変更手段が、前記情報復元手段によって復元された情報に基づいて、前記ウィンドウ情報記憶手段に記憶されている少なくとも１つの前記ウィンドウ情報を変更する、
ことを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記イベント情報受付手段が、文書情報の所在を示す文書所在情報を含む、前記ウィンドウ内に前記文書情報が表示されることを示す前記イベント情報を受け付け、
前記記憶部が前記文書所在情報を記憶し、
前記情報保存手段が、要求に応じて前記文書所在情報を保存し、
前記情報復元手段が、要求に応じて前記文書所在情報を前記記憶部に復元し、復元された前記文書所在情報によって特定される文書情報の画像を表示させる、
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
アプリケーションプログラムに関連付けられるウィンドウに対応する情報であり、該情報に従って該情報に対応するウィンドウが表示されることとなるウィンドウ情報を複数記憶するウィンドウ情報記憶手段から、前記ウィンドウ情報を取得するウィンドウ情報取得手段、
前記ウィンドウ情報取得手段が複数回取得した、前記ウィンドウ情報の差分に基づいて、前記ウィンドウ情報の変化を示すウィンドウ変化情報を生成し、該ウィンドウ変化情報を前記ウィンドウ情報に関連付けるウィンドウ変化情報関連付け手段、
前記ウィンドウの状態の変化を示すイベント情報を通知するイベント情報通知手段から、前記ウィンドウの状態の変化を示すイベント情報を受け付けるイベント情報受付手段、
前記ウィンドウ情報取得手段が取得する複数のウィンドウ情報に対応するウィンドウの位置関係が、予め定められた条件を満たす場合に、該複数のウィンドウ情報を関連付ける関連ウィンドウ情報を生成し、該複数のウィンドウ情報に前記関連ウィンドウ情報を関連付けるウィンドウ情報関連付け手段、
前記ウィンドウ情報に関連付けられるウィンドウ変化情報が示す変化、又は、前記イベント情報によって示される、該ウィンドウ情報に対応するウィンドウの状態の変化に応じて、前記関連ウィンドウ情報によって該ウィンドウ情報に関連付けられている他のウィンドウ情報を変更するウィンドウ情報変更手段、
前記関連ウィンドウ情報により関連付けられる複数のウィンドウ情報のそれぞれに対応するウィンドウが、対応するウィンドウ情報に従って表示されるよう制御する表示制御手段、
としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
近年、アプリケーションプログラムに関連付けられるウィンドウを複数、画面に表示することができるマルチウィンドウシステムが多く見られる。
【０００３】
マルチウィンドウシステムの利用者が、ある目的を達成しようとする行為（タスク）を実行する際には、複数のアプリケーションプログラムを並行して利用することが多い。例えば、技術論文を書く場合には、ワードプロセッサの他に、辞書、自分が読んだ論文、自分がこれまでに書いた論文、図を作成するためのドローツールなどを（すなわち、対応するアプリケーションプログラムをすべて起動して）並行して利用することとなる。また、プログラミングを行う場合には、ソースコードを編集するエディタ、コンパイルやデバッグをする環境、マニュアル、Ｗｅｂブラウザなどを並行して利用することとなる。メールを作成する場合は、メーラ、カレンダー、スケジュール管理システム、名簿管理システムなどを並行して利用することとなる。
【０００４】
このとき、１つのタスクを実行する際に並行して利用される複数のアプリケーションプログラムに対応する複数のウィンドウを関連付けて操作、あるいは、管理できるような仕組みがあれば利用者にとって便利である。
【０００５】
特許文献１や非特許文献１には、複数のウィンドウを関連付けて管理する技術が開示されている。例えば、非特許文献１には、仮想的な三次元空間に配置されたそれぞれの壁に特定のタスクに対応する複数のウィンドウを配置する技術が開示されている。また、特許文献１には、複数のドキュメントを仮想的なボードに貼り付けて、再現できるようにした技術が開示されている。
【特許文献１】特開平１−１４２８５９号公報
【非特許文献１】ジー・ロバートソン（G. Robertson）、エム・バン・ダンティッヒ（M.van Dantzich）、ディー・ロビンス（D. Robbins）、エム・ツァーウィンスキー（M. Czerwinski）、ケー・ヒンクレー（K.Hinckley）、ケー・リスデン（K. Risden）、ディー・シール（D. Thiel）、ブイ・ゴロホフスキー（V. Gorokhovsky）著、「ザ・タスクギャラリー：ア  ３Ｄ  ウィンドウマネージャー（TheTask Gallery: A 3D window manager.）」、２０００年ＣＨＩプロシーディングス（Proceedings of CHI 2000）、pp.494-501、2000年
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、複数のウィンドウを関連付けて操作する場合などにおいては、各ウィンドウの配置などの状態の変化を把握する必要がある。
【０００７】
ウィンドウの状態の変化を把握する方法として、定期的にウィンドウの状態を確認して、変化を検出する変化検出方式と、状態が変化したウィンドウと関連付けられるアプリケーションプログラムから、状態が変化したことを示すイベント情報の通知を受けることで、変化を検出するイベント情報通知方式とが考えられる。
【０００８】
しかし、変化検出方式では変化を検出するための定期的にウィンドウの状態を確認する必要があるので、情報処理の負荷が高くなってしまう。一方で、イベント情報通知方式では、イベント情報を通知するよう既存のアプリケーションプログラムを修正する必要があり、手間がかかる。
【０００９】
本発明は、複数のウィンドウの状態を把握する場合に、情報処理の負荷の増加を抑えつつ、既存のアプリケーションプログラムの修正の手間も軽減できる情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
請求項１に記載の発明は、情報処理装置であって、アプリケーションプログラムに関連付けられるウィンドウに対応するウィンドウ情報を複数記憶するウィンドウ情報記憶手段から、前記ウィンドウ情報を取得するウィンドウ情報取得手段と、前記ウィンドウ情報取得手段が複数回取得した、前記ウィンドウ情報の差分に基づいて、前記ウィンドウ情報の変化を示すウィンドウ変化情報を生成し、該ウィンドウ変化情報を前記ウィンドウ情報に関連付けるウィンドウ変化情報関連付け手段と、前記ウィンドウの状態の変化を示すイベント情報を通知するイベント情報通知手段から、前記イベント情報を受け付けるイベント情報受付手段と、前記ウィンドウ変化情報、又は、前記イベント情報に基づいて、前記ウィンドウ情報記憶手段に記憶されている少なくとも１つの前記ウィンドウ情報を変更するウィンドウ情報変更手段と、を含むこととしたものである。
【００１１】
請求項２に記載の発明は、請求項１に記載の情報処理装置であって、前記イベント情報受付手段は、前記ウィンドウ情報取得手段が取得する前記ウィンドウ情報の差分に基づいては検出されない前記ウィンドウの状態の変化を示すイベント情報を受け付けることとしたものである。
【００１２】
請求項３に記載の発明は、請求項１又は２に記載の情報処理装置であって、前記ウィンドウ情報取得手段が取得する前記ウィンドウ情報を記憶する取得情報記憶手段をさらに含み、前記ウィンドウ変化情報関連付け手段が、前記ウィンドウ情報取得手段が取得する前記ウィンドウ情報と、前記取得情報記憶手段に記憶されている前記ウィンドウ情報との差分に基づいて、前記ウィンドウ変化情報を生成し、該ウィンドウ変化情報を前記ウィンドウ情報に関連付けることとしたものである。
【００１３】
請求項４に記載の発明は、請求項３に記載の情報処理装置であって、前記ウィンドウ情報取得手段は、前記取得情報記憶手段に記憶されている個々のウィンドウ情報に対応するウィンドウ情報を前記ウィンドウ情報記憶手段から取得することとしたものである。
【００１４】
請求項５に記載の発明は、請求項１乃至４に記載の情報処理装置であって、前記ウィンドウ情報取得手段が取得する複数のウィンドウ情報の関係が、予め定められた条件を満たす場合に、該複数のウィンドウ情報を関連付ける関連ウィンドウ情報を生成し、該複数のウィンドウ情報に前記関連ウィンドウ情報を関連付けるウィンドウ情報関連付け手段をさらに含み、前記ウィンドウ情報変更手段が、前記関連ウィンドウ情報によって、前記ウィンドウ変化情報に関連付けられるウィンドウ情報、又は、前記イベント情報によって状態の変化を示される前記ウィンドウに対応するウィンドウ情報と関連付けられる前記ウィンドウ情報を変更することとしたものである。
【００１５】
請求項６に記載の発明は、請求項５に記載の情報処理装置であって、前記ウィンドウ情報変更手段が、前記関連ウィンドウ情報によって関連付けられる前記複数のウィンドウ情報に対応するウィンドウが連結して表示出力されるよう、前記複数のウィンドウ情報のうちの少なくとも１つを変更することとしたものである。
【００１６】
請求項７に記載の発明は、請求項１乃至６に記載の情報処理装置であって、記憶部に記憶されている情報を要求に応じて保存する情報保存手段と、前記情報保存手段に保存されている情報を要求に応じて前記記憶部に復元する情報復元手段と、をさらに含み、前記ウィンドウ情報変更手段が、前記情報復元手段によって復元された情報に基づいて、前記ウィンドウ情報記憶手段に記憶されている少なくとも１つの前記ウィンドウ情報を変更することとしたものである。
【００１７】
請求項８に記載の発明は、請求項７に記載の情報処理装置であって、前記イベント情報受付手段が、文書情報の所在を示す文書所在情報を含む、前記ウィンドウ内に前記文書情報が表示されることを示す前記イベント情報を受け付け、前記記憶部が前記文書所在情報を記憶し、前記情報保存手段が、要求に応じて前記文書所在情報を保存し、前記情報復元手段が、要求に応じて前記文書所在情報を前記記憶部に復元し、復元された前記文書所在情報によって特定される文書情報の画像を表示させることとしたものである。
【００１８】
請求項９に記載の発明は、プログラムであって、アプリケーションプログラムに関連付けられるウィンドウに対応するウィンドウ情報を複数記憶するウィンドウ情報記憶手段から、前記ウィンドウ情報を取得するウィンドウ情報取得手段、前記ウィンドウ情報取得手段が複数回取得した、前記ウィンドウ情報の差分に基づいて、前記ウィンドウ情報の変化を示すウィンドウ変化情報を生成し、該ウィンドウ変化情報を前記ウィンドウ情報に関連付けるウィンドウ変化情報関連付け手段、前記ウィンドウの状態の変化を示すイベント情報を通知するイベント情報通知手段から、前記イベント情報を受け付けるイベント情報受付手段、前記ウィンドウ変化情報、又は、前記イベント情報に基づいて、前記ウィンドウ情報記憶手段に記憶されている少なくとも１つの前記ウィンドウ情報を変更するウィンドウ情報変更手段、としてコンピュータを機能させることとしたものである。
【００１９】
また、上記のプログラムはコンピュータ読み取り可能な情報記憶媒体に格納することもできる。
【発明の効果】
【００２０】
請求項１，９に記載の発明によれば、複数のウィンドウの状態を把握する場合に、情報処理の負荷の増加を抑えつつ、既存のアプリケーションプログラムの修正の手間も軽減できる。
【００２１】
請求項２に記載の発明によれば、ウィンドウ情報の差分に基づいて検出されないウィンドウの状態についても、イベント情報受付手段によって検出することができるので、本構成を有さない場合と比較して、より多くの種類のウィンドウの状態を把握することができる。
【００２２】
請求項３に記載の発明によれば、ウィンドウ変化情報を生成する際に、取得したウィンドウ情報と、記憶されているウィンドウ情報とを比較することによって、ウィンドウ情報の差分を検出することができるので、本構成を有さない場合と比較して、より容易にウィンドウ情報の差分を検出することができる。
【００２３】
請求項４に記載の発明によれば、取得情報記憶部に記憶されている個々のウィンドウ情報に対応するウィンドウ情報を取得するので、本構成を有さない場合と比較して、複数のウィンドウの状態を把握する際の、情報処理の負荷の増加をより軽減することができる。
【００２４】
請求項５に記載の発明によれば、ウィンドウ情報を関連ウィンドウ情報によって関連付けることができ、１つのウィンドウについて状態が変化した際に、関連ウィンドウ情報によって、状態が変化したウィンドウに対応するウィンドウ情報と関連付けられたウィンドウ情報について、ウィンドウ情報を変更することができる。
【００２５】
請求項６に記載の発明によれば、１つのウィンドウの状態が変化した際に、関連ウィンドウ情報によって、状態が変化したウィンドウに対応するウィンドウ情報と関連付けられたウィンドウ情報に対応するウィンドウとを連結して画面に表示することができる。
【００２６】
請求項７に記載の発明によれば、保存されている情報に基づくウィンドウ情報の変更をすることができる。
【００２７】
請求項８に記載の発明によれば、保存されている文書所在情報に基づいて、その文書所在情報によって特定される文書情報の画像を表示させることができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施形態について図面に基づき詳細に説明する。
【００２９】
図１は、本実施形態に係る情報処理装置１０のハードウェア構成を示す図である。
【００３０】
情報処理装置１０は、制御部１２、記憶部１４、ユーザインタフェース（ＵＩ）部１６を含んで構成される。制御部１２、記憶部１４、ユーザインタフェース（ＵＩ）部１６は、バス１８を介して接続される。
【００３１】
制御部１２はＣＰＵ等のプログラム制御デバイスであり、情報処理装置１０にインストールされるプログラムに従って動作する。なお、プログラムは、例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどのコンピュータ可読な情報伝達媒体に格納することができ、情報伝達媒体を介して、あるいは、インターネットなどの通信ネットワークを介して情報処理装置１０に供給される。
【００３２】
制御部１２は、本発明に係るプログラムだけではなく、例えば、ワードプロセッサ、Ｗｅｂブラウザ、メーラなどといったいくつかのアプリケーションプログラムなどに従っても動作する。
【００３３】
記憶部１４は、ＲＡＭ等の記憶素子やハードディスクなどである。記憶部１４には、制御部１２によって実行される、本発明に係るプログラムや、アプリケーションプログラムなどが格納される。また、記憶部１４は、制御部１２のワークメモリとしても動作する。
【００３４】
ＵＩ部１６は、液晶タッチパネルや、ディスプレイ、テンキーなどのキーパッド、マウスなどであり、利用者が行った操作の内容を制御部１２に出力する。また、このＵＩ部１６は、制御部１２から入力される指示に従って情報を表示出力する。
【００３５】
次に、情報処理装置１０で実現される機能について説明する。情報処理装置１０は、機能的には、図２の機能ブロック図に示すように、ウィンドウ情報記憶部２０、ウィンドウ画像出力部２２、ウィンドウ情報取得部２４、取得情報記憶部２６、ウィンドウ変化情報関連付け部２８、イベント情報通知部３０、イベント情報受付部３２、ウィンドウ情報変更部３４、ウィンドウ情報関連付け部３６、追加画像出力部３８、情報保存部４０、情報復元部４２、を含むものとして機能する。
【００３６】
ウィンドウ情報記憶部２０は、記憶部１４を主として実現される。ウィンドウ情報記憶部２０は、図３に示すような、ウィンドウ情報４４を複数記憶している。ウィンドウ情報４４は、図５に示すような、アプリケーションプログラムに関連付けられるウィンドウ４６（第１ウィンドウ４６−１や第２ウィンドウ４６−２）に対応している。ウィンドウ情報４４がどのような情報であるかについては後述する。また、図３や図５の詳細についても後述する。
【００３７】
ウィンドウ画像出力部２２は、制御部１２を主として実現される。ウィンドウ情報記憶部２０に記憶されているウィンドウ情報４４に従って、ウィンドウ４６を示す画像をディスプレイなどのＵＩ部１６に出力させる。それぞれのウィンドウ４６は、アプリケーションプログラムと関連付けられている。
【００３８】
ウィンドウ情報取得部２４は、制御部１２を主として実現される。ウィンドウ情報取得部２４は、ウィンドウ情報記憶部２０からウィンドウ情報４４を取得する。なお、例えば、ウィンドウ情報記憶部２０に対する入出力がオペレーティングシステムによって管理されているような場合に、ウィンドウ情報取得部２４が、オペレーティングシステムに対するシステムコールを行うことで、オペレーティングシステム経由でウィンドウ情報４４を取得するようにしてももちろん構わない。また、ウィンドウ情報取得部２４は、予め定められた間隔でウィンドウ情報４４を取得するようにしても構わない。
【００３９】
取得情報記憶部２６は、記憶部１４を主として実現される。取得情報記憶部２６は、ウィンドウ情報取得部２４が取得したウィンドウ情報４４などを記憶する。なお、先述したウィンドウ情報取得部２４が、取得情報記憶部２６に記憶されている個々のウィンドウ情報４４に対応するウィンドウ情報４４をウィンドウ情報記憶部２０から取得するようにしてもよい。
【００４０】
ウィンドウ変化情報関連付け部２８は、制御部１２を主として実現される。ウィンドウ変化情報関連付け部２８は、ウィンドウ情報取得部２４が複数回取得した、ウィンドウ情報４４の差分に基づいて、図３に示すような、ウィンドウ情報４４の変化を示すウィンドウ変化情報４８を生成する。そして、ウィンドウ変化情報関連付け部２８は、ウィンドウ変化情報４８をウィンドウ情報４４に関連付ける。このとき、ウィンドウ変化情報関連付け部２８は、ウィンドウ情報取得部２４が取得するウィンドウ情報４４と、取得情報記憶部２６に記憶されているウィンドウ情報４４との差分に基づいて、ウィンドウ変化情報４８を生成するようにしても構わない。ここで、ウィンドウ変化情報関連付け部２８は、生成されたウィンドウ変化情報４８をウィンドウ情報４４に関連付けて取得情報記憶部２６に記憶しても構わない。
【００４１】
図３は、ウィンドウ情報取得部２４がウィンドウ情報記憶部２０から取得し、取得情報記憶部２６に記憶されるウィンドウ情報４４、及び、ウィンドウ変化情報４８のデータ構造の一例である変化情報テーブル５０を示す図である。なお、図３に示す、ウィンドウ情報４４、及び、ウィンドウ変化情報４８のデータ構造は表構造であるが、ウィンドウ情報４４、及び、ウィンドウ変化情報４８のデータ構造は表構造にもちろん限られない。
【００４２】
図３に示すように、変化情報テーブル５０は、ウィンドウ情報４４とウィンドウ変化情報４８とを含んでいる。
【００４３】
ウィンドウ情報４４は、具体的には、例えば、ウィンドウ識別子（ウィンドウＩＤ）５２、位置情報５４、サイズ情報５６などを含んでいる。ウィンドウＩＤ５２は、ウィンドウ４６を識別するための識別子である。ウィンドウ４６が生成されるたびに、制御部１２によって、異なるウィンドウＩＤ５２が生成され、そのウィンドウＩＤ５２が、生成されたウィンドウ４６に対して付与される。位置情報５４は、ウィンドウ画像出力部２２がウィンドウ４６を示す画像をディスプレイなどのＵＩ部１６に出力させる位置（例えば、ウィンドウ４６の左上の座標）を示す情報である。サイズ情報５６は、ウィンドウ画像出力部２２がウィンドウ４６を示す画像をディスプレイなどのＵＩ部１６に出力させる際のウィンドウの大きさ（例えば、ウィンドウ４６の幅と高さ）を示す情報である。なお、これらのウィンドウ情報４４はあくまでも一例であり、例えば、ウィンドウ情報４４がウィンドウＩＤ５２だけを含んでいても構わない。
【００４４】
ウィンドウ変化情報４８は、ウィンドウ変化情報関連付け部２８によって生成される情報であり、ウィンドウ４６に生じた変化に対応する状態を示す情報が示している。具体的には、例えば、ウィンドウ４６が利用者に操作可能な状態になったことを示す「Ａｃｔｉｖａｔｅ」状態、ウィンドウ４６が移動中となったことを示す「Ｍｏｖｅ」状態、ウィンドウ４６が「Ｍｏｖｅ」の状態から止まったことを示す「Ｄｒｏｐ」状態、ウィンドウ４６の大きさが変化したことを示す「Ｒｅｓｉｚｅ」状態などを示す情報がウィンドウ変化情報４８として挙げられる。
【００４５】
なお、本実施形態においては、「Ａｃｔｉｖａｔｅ」の状態を示す情報は、アクティブフラグ５８として、アクティブフラグ５８に対応する変化情報テーブル５０内の列に表現されている。すなわち、アクティブなウィンドウ４６に対応するアクティブフラグ５８の値が「１」となっている。一方、「Ａｃｔｉｖａｔｅ」以外の状態を示す情報は、ウィンドウ変化情報４８の値が、ウィンドウ変化情報４８に対応する変化情報テーブル５０内の列（変化列４８ａ）に示されている。
【００４６】
そして、変化情報テーブル５０内の、アクティブフラグ５８やウィンドウ変化情報４８には、アクティブなウィンドウ４６に対して直前に発生した変化が示される。なお、本実施形態のように、ウィンドウ変化情報４８のうち、「Ａｃｔｉｖａｔｅ」の状態を示す情報をアクティブフラグ５８によって表現しなくてももちろん構わない。
【００４７】
イベント情報通知部３０は、制御部１２を主として実現される。イベント情報通知部３０は、ウィンドウの状態の変化を示すイベント情報６０を通知する。具体的には、例えば、後述するイベント情報受付部３２などにイベント情報６０を通知する。このイベント情報通知部３０は、具体的には、例えば、ウィンドウ４６に関連付けられるアプリケーションプログラムを修正することによって実現される。
【００４８】
イベント情報受付部３２は、制御部１２を主として実現される。イベント情報受付部３２は、イベント情報通知部３０からイベント情報６０を受け付ける。ここで、イベント情報受付部３２は、ウィンドウ情報取得部２４が取得するウィンドウ情報４４の差分に基づいては検出されないウィンドウ４６の状態の変化を示すイベント情報６０を受け付けてもよい。
【００４９】
図４（ａ）、及び、図４（ｂ）は、イベント情報受付部３２が受け付けるイベント情報６０のデータ構造の一例を示す図である。図４（ａ）に示すように、イベント情報６０は、ウィンドウＩＤ５２と、イベント種類情報６２とを含んでいる。ウィンドウＩＤ５２は、先述したように、ウィンドウ４６を識別するための識別子である。そして、このウィンドウＩＤ５２は、ウィンドウ情報４４に含まれるウィンドウＩＤ５２と対応する。
【００５０】
イベント種類情報６２は、イベント情報通知部３０から通知されるイベントの種類を示す情報である。イベント種類情報６２の値としては、具体的には、例えば、新たなウィンドウ４６が画面に表示されることを示す「Ｅｘｅｃｕｔｅ」、画面に表示されるウィンドウ４６が画面に表示されなくなることを示す「Ｅｘｉｔ」、ウィンドウ４６内に文書情報が表示されることを示す「ＯｐｅｎＤｏｃ」、ウィンドウ４６内に表示されている文書情報が表示されなくなることを示す「ＣｌｏｓｅＤｏｃ」などが挙げられる。もちろん、これらの値以外の値をイベント種類情報６２がとってもよい。また、上記以外の情報をイベント情報６０が含んでいても構わない。例えば、図４（ｂ）に示すように、イベント情報６０は、文書情報のパスやＵＲＬを示す文書所在情報６４を含んでいてもよい。
【００５１】
例えば、図４（ａ）に示すイベント情報６０は、ウィンドウＩＤ５２が「Ｗ００１」のウィンドウ４６が新たに画面に表示されることを示しており、図４（ｂ）は、ウィンドウＩＤ５２が「Ｗ００１」のウィンドウ４６内に「C:\work\paper.txt」で示されるパス（文書所在情報６４）によって指定される文書情報が表示されることを示している。このように、イベント情報受付部３２は、文書の所在を示す文書所在情報６４を含む、ウィンドウ４６内に文書情報が表示されることを示すイベント情報を受け付けてもよい。
【００５２】
ウィンドウ情報関連付け部３６は、制御部１２を主として実現される。ウィンドウ情報関連付け部３６は、ウィンドウ情報取得部２４が取得する複数のウィンドウ情報４４の関係が、予め定められた条件を満たす場合に、これら複数のウィンドウ情報４４を関連付ける関連ウィンドウ情報を生成し、これら複数のウィンドウ情報４４に関連ウィンドウ情報を関連付ける。また、ウィンドウ情報関連付け部３６が、複数のウィンドウ情報４４の関連付けの解除もしてもよい。すなわち、ウィンドウ情報関連付け部３６が、関連ウィンドウ情報を削除してもよい。
【００５３】
ここで、ウィンドウ情報関連付け部３６によって関連付けられたウィンドウ４６を示す画像がドッキングされて、ウィンドウ画像出力部２２によって、ＵＩ部１６に表示されるようにしてもよい。具体的には、例えば、図５に示すように、複数の独立したウィンドウ４６（第１ウィンドウ４６−１及び第２ウィンドウ４６−２）を示す画像が、ウィンドウ画像出力部２２によってディスプレイなどのＵＩ部１６に表示出力されている状況で、これらのウィンドウ４６が予め定められた条件を満たす場合には、図６に示すように、ウィンドウ画像出力部２２が、これらのウィンドウ４６が結合されたドッキングウィンドウ６６をディスプレイなどのＵＩ部１６に表示出力するようにしてもよい。
【００５４】
図７は、ウィンドウ情報４４の関連を示す関連ウィンドウ情報のデータ構造の一例であるウィンドウテーブル６８を示す図である。関連ウィンドウ情報は、例えば、取得情報記憶部２６に記憶されている。図７に示すように、ウィンドウテーブル６８は、ウィンドウＩＤ５２、位置情報５４、サイズ情報５６、ドッキングウィンドウ識別子（ドッキングウィンドウＩＤ）７０、文書所在情報６４、文書内位置情報７２を含んでいる。
【００５５】
ウィンドウＩＤ５２、位置情報５４、サイズ情報５６は、ウィンドウ情報４４に含まれるウィンドウＩＤ５２、位置情報５４、サイズ情報５６にそれぞれ対応している。ドッキングウィンドウＩＤ７０は、ウィンドウ情報関連付け部３６による関連付け（本実施形態では、ドッキング）が行われる際に、ウィンドウ情報関連付け部３６によって、異なるドッキングウィンドウＩＤ７０が生成される。そして、生成されたドッキングウィンドウＩＤ７０は、ウィンドウ情報関連付け部３６によって関連付けられた複数のウィンドウ４６に対して付与される。なお、ドッキングされていないウィンドウ４６については、ドッキングウィンドウＩＤ７０の値は空白となっている。
【００５６】
図７の例では、７つのウィンドウ４６が現在ＵＩ部１６上に表示されており、そのうち、「Ｗ００３」、及び、「Ｗ００４」のウィンドウ４６がドッキングされており、「Ｗ００５」、「Ｗ００６」、及び、「Ｗ００７」のウィンドウ４６もドッキングされている。
【００５７】
なお、イベント情報受付部３２が、文書の所在を示す文書所在情報６４を含む、ウィンドウ４６内に文書情報が表示されることを示すイベント情報６０を受け付ける際に、図７に示すように、イベント情報受付部３２が受け付けた文書所在情報６４を、ウィンドウ情報関連付け部３６がウィンドウ情報４４と関連付けてもよい。例えば、イベント情報受付部３２が、値が「ＯｐｅｎＤｏｃ」であるイベント種類情報６２と、文書の所在を示す文書所在情報６４とを含むイベント情報６０を受け付けた際に、ウィンドウ情報関連付け部３６が、受け付けたイベント情報６０に含まれる文書所在情報６４の値を、ウィンドウテーブル６８に追加してもよい。
【００５８】
なお、イベント情報受付部３２が、値が「ＣｌｏｓｅＤｏｃ」であるイベント種類情報６２を含むイベント情報６０を受け付けた際に、ウィンドウ情報関連付け部３６が、ウィンドウテーブル６８内の文書所在情報６４を削除するようにしても構わない。
【００５９】
また、イベント情報受付部３２が、文書情報がＵＩ部１６に表示される位置をスクロール位置やカーソル位置などによって示した文書内位置情報７２を含むイベント情報６０を受け付ける際に、図７に示すように、イベント情報受付部３２が受け付けた文書内位置情報７２を、ウィンドウ情報関連付け部３６がウィンドウ情報４４と関連付けてもよい。すなわち、イベント情報受付部３２が受け付けたイベント情報６０に含まれる文書内位置情報７２の値を、ウィンドウテーブル６８に追加してもよい。
【００６０】
図８は、ドッキングウィンドウ情報のデータ構造の一例であるドッキングウィンドウテーブル７４を示す図である。ドッキングウィンドウテーブル７４は、ドッキングウィンドウＩＤ７０、位置情報５４、サイズ情報５６、ドッキング集合情報７６を含んでいる。ドッキングウィンドウＩＤ７０は、ウィンドウテーブル６８内のドッキングウィンドウＩＤ７０に対応している。位置情報５４は、ウィンドウ画像出力部２２がドッキングウィンドウ６６を示す画像をディスプレイなどのＵＩ部１６に出力させる位置（例えば、ドッキングウィンドウ６６の左上の座標）を示す情報である。サイズ情報５６は、ウィンドウ画像出力部２２がドッキングウィンドウ６６を示す画像をディスプレイなどのＵＩ部１６に出力させる際のドッキングウィンドウの大きさ（例えば、ドッキングウィンドウ６６の幅と高さ）を示す情報である。ドッキング集合情報７６は、ドッキングウィンドウ６６を構成するウィンドウ４６のウィンドウＩＤ５２を示している。
【００６１】
図８の例では、現在ＵＩ部１６に表示されているドッキングウィンドウ６６が２つあり、一方は２つのウィンドウ４６から、他方は３つのウィンドウ４６から構成される。
【００６２】
なお、図７に示す、関連ウィンドウ情報の一例であるウィンドウテーブル６８、及び、図８に示す、ドッキングウィンドウ情報の一例であるドッキングウィンドウテーブル７４のデータ構造は表構造であるが、関連ウィンドウ情報、及び、ドッキングウィンドウ情報のデータ構造は表構造にもちろん限られない。
【００６３】
また、関連ウィンドウ情報は、取得情報記憶部２６やウィンドウ情報記憶部２０に記憶されていても構わない。ドッキングウィンドウ情報は、取得情報記憶部２６やウィンドウ情報記憶部２０に記憶されていても構わない。
【００６４】
ウィンドウ情報変更部３４は、制御部１２を主として実現される。ウィンドウ情報変更部３４は、ウィンドウ変化情報、又は、イベント情報に基づいて、ウィンドウ情報記憶部２０に記憶されている少なくとも１つの前記ウィンドウ情報を変更する。このとき、オペレーティングシステムに対するシステムコールを行うことで、オペレーティングシステムにウィンドウ情報記憶部２０に記憶されている少なくとも１つの前記ウィンドウ情報を変更させてももちろん構わない。
【００６５】
また、ウィンドウ情報変更部３４は、関連ウィンドウ情報によって、ウィンドウ変化情報４８に関連付けられるウィンドウ情報４４、又は、イベント情報６０によって状態の変化を示されるウィンドウ４６に対応するウィンドウ情報４４と関連付けられるウィンドウ情報４４を変更するようにしてもよい。このとき、関連ウィンドウ情報によって関連付けられるウィンドウ情報４４のすべてを変更するようにしてもよいし、一部を変更するようにしてもよい。また、このとき、ウィンドウ情報変更部３４は、関連ウィンドウ情報によって関連付けられるウィンドウ情報４４に関連付けられるアクティブフラグ５８などのウィンドウ変化情報４８を変更するようにしてもよい。
【００６６】
追加画像出力部３８は、制御部１２を主として実現される。追加画像出力部３８は、ウィンドウ変化情報４８、又は、イベント情報６０に基づいて、追加画像をディスプレイなどのＵＩ部１６に出力させる。追加画像出力部３８による処理の詳細については後述する。
【００６７】
情報保存部４０は、制御部１２を主として実現される。情報保存部４０は、記憶部１４に記憶されている情報を要求に応じて保存する。具体的には、例えば、取得情報記憶部２６に記憶されている関連ウィンドウ情報やドッキングウィンドウ情報を利用者の要求に応じて保存する。例えば、ドッキングウィンドウＩＤ７０が「Ｄ００１」であるドッキングウィンドウ６６に関する情報を保存する指示を利用者から受け付けた際に、図９に示すように、ウィンドウテーブル６８に示されている情報のうち、ドッキングウィンドウＩＤ７０が「Ｄ００１」である行を抜き出した保存対象情報７８を情報保存部４０が保存する。
【００６８】
情報復元部４２は、制御部１２を主として実現される。情報復元部４２は、情報保存部４０に保存されている情報を要求に応じて記憶部１４に復元する。具体的には、例えば、ドッキングウィンドウＩＤ７０が「Ｄ００１」であるドッキングウィンドウ６６に関する情報を復元する指示を、例えば、利用者から受け付けた際に、情報復元部４２が、図９に示す関連ウィンドウ情報を、取得情報記憶部２６に復元する。図９に示すように、文書所在情報６４や、スクロール位置やカーソル位置を示す文書内位置情報７２を復元しても構わない。また、このとき、ウィンドウ情報変更部３４が、情報復元部４２によって復元された情報に基づいて、ウィンドウ情報記憶部２０に記憶されている少なくとも１つのウィンドウ情報４４を変更するようにしてもよい。例えば、ドッキングウィンドウＩＤ７０が「Ｄ００１」であるドッキングウィンドウ情報をウィンドウ情報記憶部２０に記憶するようにしてもよい。また、このとき、情報復元部４２は、ウィンドウ画像出力部２２に、ウィンドウ情報記憶部２０に記憶されたドッキングウィンドウ情報に基づいて、ドッキングウィンドウ６６を示す画像をディスプレイなどのＵＩ部１６に表示させるようにしても構わない。
【００６９】
また、情報保存部４０が要求に応じて文書所在情報６４を保存し、情報復元部４２が、情報保存部４０が保存した文書所在情報６４を復元し、情報復元部４２が、ウィンドウ画像出力部２２に、取得情報記憶部２６に復元された文書所在情報６４や、スクロール位置やカーソル位置を示す文書内位置情報７２によって特定される文書情報の画像を、ＵＩ部１６に出力するウィンドウ４６の画像内などに表示させるようにしても構わない。
【００７０】
次に、ウィンドウ変化情報４８を生成する処理の一具体例について、図１０に示すフロー図を参照しながら説明する。
【００７１】
まず、ウィンドウ情報取得部２４は、アクティブなウィンドウのウィンドウＩＤ５２、位置情報５４、サイズ情報５６を含むウィンドウ情報４４をウィンドウ情報記憶部２０から取得する（Ｓ１０１）。
【００７２】
そして、変化情報テーブル５０内の、取得したウィンドウＩＤ５２が示されている行を参照する（Ｓ１０２）。なお、このとき該当する行が存在しないときは、処理を終了する。
【００７３】
そして、ウィンドウ変化情報関連付け部２８は、Ｓ１０２に示す処理において、参照する行のアクティブフラグ５８の値が「１」であるか否かを確認する（Ｓ１０３）。
【００７４】
そして、アクティブフラグ５８の値が「１」でない場合は（Ｓ１０３：Ｎ）、ウィンドウ変化情報関連付け部２８は、値が「Ａｃｔｉｖａｔｅ」であるウィンドウ変化情報４８を生成する（Ｓ１０４）。
【００７５】
一方、アクティブフラグ５８の値が「１」である場合は（Ｓ１０３：Ｙ）、ウィンドウ変化情報関連付け部２８は、Ｓ１０１に示す処理においてウィンドウ情報記憶部２０から取得したウィンドウ情報４４に含まれるサイズ情報５６の値と、Ｓ１０２に示す処理において取得した変化情報テーブル５０内の行のサイズ情報５６の値とを比較して、ウィンドウ４６のサイズが変更されているか否かを確認する（Ｓ１０５）。
【００７６】
ここで、ウィンドウ４６のサイズが変更されている場合は（Ｓ１０５：Ｙ）、ウィンドウ変化情報関連付け部２８は、値が「Ｒｅｓｉｚｅ」であるウィンドウ変化情報４８を生成する。（Ｓ１０６）。
【００７７】
一方、ウィンドウのサイズが変更されていない場合は（Ｓ１０５：Ｎ）、ウィンドウ変化情報関連付け部２８は、Ｓ１０１に示す処理においてウィンドウ情報記憶部２０から取得したウィンドウ情報４４に含まれる位置情報５４と、Ｓ１０２に示す処理において取得した変化情報テーブル５０内の行の位置情報５４の値とを比較して、ウィンドウの位置が変更されているか否かを確認する（Ｓ１０７）。
【００７８】
ここで、ウィンドウの位置が変更されている場合は（Ｓ１０７：Ｙ）、ウィンドウ変化情報関連付け部２８は、値が「Ｍｏｖｅ」であるウィンドウ変化情報４８を生成する（Ｓ１０８）。
【００７９】
一方、ウィンドウの位置が変更されていない場合は（Ｓ１０７：Ｎ）、Ｓ１０２に示す処理において、取得した変化情報テーブル５０内の行のウィンドウ変化情報４８の値が、「Ｍｏｖｅ」であるか否かを確認する（Ｓ１０９）。
【００８０】
ここで、ウィンドウ変化情報４８の値が「Ｍｏｖｅ」である場合は（Ｓ１０９：Ｙ）、ウィンドウ変化情報関連付け部２８は、ＵＩ部１６に含まれるマウスから、マウスが有するボタンの状態を取得する（Ｓ１１０）。そして、マウスが押されている状態であるか否かを確認する（Ｓ１１１）。このとき、マウスが押されていない状態である場合は（Ｓ１１１：Ｎ）、ウィンドウ変化情報関連付け部２８は、値が「Ｄｒｏｐ」であるウィンドウ変化情報４８を生成する（Ｓ１１２）。マウスが押されている状態である場合は（Ｓ１１１：Ｙ）、処理を終了する。このことからわかるように、値が「Ｄｒｏｐ」のウィンドウ変化情報４８は、値が「Ｍｏｖｅ」のウィンドウ変化情報４８が取得情報記憶部２６に一旦記憶された後には一度だけ生成されることとなる。このことにより、値が「Ｍｏｖｅ」のウィンドウ変化情報４８が取得情報記憶部２６に一旦記憶された後には、単にマウスをクリックしただけでは、値が「Ｄｒｏｐ」のウィンドウ変化情報４８は生成されないこととなる。
【００８１】
また、Ｓ１０９に示す処理において、ウィンドウ変化情報４８の値が「Ｍｏｖｅ」でない場合は（Ｓ１０９：Ｎ）、処理を終了する。
【００８２】
そして、ウィンドウ変化情報関連付け部２８は、Ｓ１０４，Ｓ１０６，Ｓ１０８，又はＳ１１２に示す処理においてウィンドウ変化情報４８が生成された際には、変化情報テーブル５０を書き換える（Ｓ１１３）。具体的には、まず、ウィンドウ変化情報関連付け部２８は、変化情報テーブル５０内の全てのアクティブフラグ５８及びウィンドウ変化情報４８の値を削除する。そして、「Ａｃｔｉｖａｔｅ」の状態を示すウィンドウ変化情報４８が生成された場合は、ウィンドウ変化情報関連付け部２８は、Ｓ１０２に示す処理において取得した変化情報テーブル５０内の行のアクティブフラグ５８の列に「１」を設定する。また、その他の状態を示すウィンドウ変化情報４８が生成された場合は、ウィンドウ変化情報関連付け部２８は、Ｓ１０２に示す処理において取得した変化情報テーブル５０内の行のウィンドウ変化情報４８の列に、生成されたウィンドウ変化情報４８の値を設定する。
【００８３】
このように、取得情報記憶部２６に記憶されているウィンドウ変化情報４８を、ウィンドウ変化情報関連付け部２８が生成したウィンドウ変化情報４８に置換するようにしても構わない。
【００８４】
次に、イベント情報受付部３２が、Ｅｘｅｃｕｔｅのイベントを示すイベント情報６０を受け付けた際の処理の流れについて、図１１に示すフロー図を参照しながら説明する。
【００８５】
まず、ウィンドウ情報変更部３４は、イベント情報受付部３２が受け付けたイベント情報６０に含まれるウィンドウＩＤ５２がドッキングウィンドウＩＤ７０であるか否かを確認する（Ｓ２０１）。
【００８６】
受け付けたイベント情報６０に含まれるウィンドウＩＤ５２がドッキングウィンドウＩＤ７０である場合は（Ｓ２０１：Ｙ）、ウィンドウ情報変更部３４は、イベント情報受付部３２が受け付けたイベント情報６０に含まれるドッキングウィンドウＩＤ７０に対応するドッキングウィンドウ情報をウィンドウ情報記憶部２０から取得する（Ｓ２０２）。
【００８７】
そして、ウィンドウ情報変更部３４は、取得情報記憶部２６に記憶されているドッキングウィンドウテーブル７４に、Ｓ２０２に示す処理で取得したドッキングウィンドウＩＤ７０、位置情報５４、サイズ情報５６を追加する（Ｓ２０３）。
【００８８】
そして、ウィンドウ情報取得部２４は、ドッキングウィンドウ６６を構成するウィンドウ４６のウィンドウ情報４４をウィンドウ情報記憶部２０から取得する（Ｓ２０４）。
【００８９】
そして、ウィンドウ情報変更部３４は、取得したウィンドウ情報４４を、取得情報記憶部２６に記憶されているウィンドウテーブル６８に追加して（Ｓ２０５）、処理を終了する。
【００９０】
一方、イベント情報受付部３２が受け付けたイベント情報６０に含まれるウィンドウＩＤ５２がドッキングウィンドウ６６でない場合は（Ｓ２０１：Ｎ）、ウィンドウ情報取得部２４は、イベント情報受付部３２が受け付けたイベント情報６０に含まれるウィンドウＩＤ５２に対応するウィンドウ情報４４をウィンドウ情報記憶部２０から取得する（Ｓ２０６）。
【００９１】
そして、ウィンドウ情報変更部３４は、取得したウィンドウ情報４４を、取得情報記憶部２６に記憶されているウィンドウテーブル６８に追加して（Ｓ２０７）、処理を終了する。
【００９２】
なお、上述の通り、イベント情報受付部３２は、ドッキングウィンドウＩＤ７０を含むイベント情報６０を取得してもよい。
【００９３】
次に、イベント情報受付部３２が、Ｅｘｉｔのイベントを示すイベント情報６０を受け付けた際の処理の流れについて、図１２に示すフロー図を参照しながら説明する。
【００９４】
まず、イベント情報受付部３２が受け付けたイベント情報６０に含まれるウィンドウＩＤ５２がドッキングウィンドウＩＤ７０であるか否かを確認する（Ｓ３０１）。
【００９５】
イベント情報受付部３２が受け付けたイベント情報６０に含まれるウィンドウＩＤ５２がドッキングウィンドウＩＤ７０である場合は（Ｓ３０１：Ｙ）、ウィンドウ情報変更部３４は、イベント情報受付部３２が受け付けたイベント情報６０に含まれるドッキングウィンドウＩＤ７０に対応するドッキングウィンドウ６６を構成するウィンドウ４６のウィンドウ情報４４を、取得情報記憶部２６に記憶されているウィンドウテーブル６８から削除する（Ｓ３０２）。なお、このとき、ウィンドウ情報記憶部２０に記憶されているウィンドウ情報４４を併せて削除してもよい。
【００９６】
そして、ウィンドウ情報変更部３４は、イベント情報受付部３２が受け付けたドッキングウィンドウＩＤ７０に対応するドッキングウィンドウ情報を、取得情報記憶部２６に記憶されているドッキングウィンドウテーブル７４から削除して（Ｓ３０３）、処理を終了する。なお、このとき、ウィンドウ情報記憶部２０に記憶されているドッキングウィンドウ情報を併せて削除してもよい。
【００９７】
イベント情報受付部３２が受け付けたイベント情報６０に含まれるウィンドウＩＤ５２がドッキングウィンドウＩＤ７０でない場合は（Ｓ３０１：Ｎ）、ウィンドウ情報変更部３４は、イベント情報受付部３２が受け付けたイベント情報６０に含まれるウィンドウＩＤ５２に対応するウィンドウ情報４４を、取得情報記憶部２６に記憶されているウィンドウテーブル６８から削除して（Ｓ３０４）、処理を終了する。このとき、ウィンドウ情報記憶部２０に記憶されているウィンドウ情報４４を削除してもよい。
【００９８】
次に、ウィンドウ変化情報関連付け部２８が、「Ａｃｔｉｖａｔｅ」という状態を示すウィンドウ変化情報４８を生成して、変化情報テーブル５０のアクティブフラグ５８の値に「１」を設定した際の処理の流れについて、図１３に示すフロー図を参照しながら説明する。
【００９９】
まず、ウィンドウ情報変更部３４が、取得情報記憶部２６に記憶されている変化情報テーブル５０を参照し、アクティブフラグ５８の値が「１」であるウィンドウＩＤ５２を取得して、ウィンドウテーブル６８を参照してこのウィンドウＩＤ５２のウィンドウ４６がドッキングウィンドウ６６を構成しているか否かを確認する（Ｓ４０１）。そして、このウィンドウ４６がドッキングウィンドウ６６を構成している場合は（Ｓ４０１：Ｙ）、ウィンドウ画像出力部２２は、このウィンドウ４６にドッキングされているウィンドウ４６を示す画像を前面化してＵＩ部１６に出力する（Ｓ４０２）。
【０１００】
一方、このウィンドウ４６がドッキングウィンドウ６６を構成していない場合は（Ｓ４０１：Ｎ）、処理を終了する。
【０１０１】
次に、ウィンドウ変化情報関連付け部２８が、「Ｍｏｖｅ」という状態を示すウィンドウ変化情報を生成した際の処理の流れについて、図１４に示すフロー図を参照しながら説明する。
【０１０２】
まず、ウィンドウ情報取得部２４が、変化情報テーブル５０を参照し、ウィンドウ変化情報４８の値が「Ｍｏｖｅ」であるウィンドウＩＤ５２を取得して、このウィンドウＩＤ５２のウィンドウ４６の位置情報５４を、ウィンドウ情報記憶部２０から取得する（Ｓ５０１）。
【０１０３】
そして、ウィンドウ情報変更部３４は、取得情報記憶部２６に記憶されているウィンドウテーブル６８の、Ｓ５０１に示す処理において取得したウィンドウＩＤ５２に対応する行の、位置情報５４の列の値を、Ｓ５０１に示す処理においてウィンドウ情報取得部２４がウィンドウ情報記憶部２０から取得した位置情報５４の値に変更する（Ｓ５０２）。
【０１０４】
そして、ウィンドウ情報変更部３４は、変化情報テーブル５０を参照し、ウィンドウ変化情報４８の値が「Ｍｏｖｅ」であるウィンドウＩＤ５２を取得して、ウィンドウテーブルを参照して、このウィンドウＩＤ５２のウィンドウ４６がドッキングウィンドウ６６を構成しているか否かを確認する（Ｓ５０３）。そして、このウィンドウ４６がドッキングウィンドウ６６を構成している場合は（Ｓ５０３：Ｙ）、ウィンドウ情報変更部３４は、ドッキングウィンドウ６６を構成している他のウィンドウ４６について、ドッキングウィンドウ６６を構成するウィンドウ４６が連結して表示されるよう、位置情報５４を算出し、算出された位置情報５４に基づいて、ウィンドウ情報記憶部２０に記憶されているウィンドウ情報４４に含まれる位置情報５４を変更する（Ｓ５０４）。このように、ウィンドウ情報変更部３４は、関連ウィンドウ情報によって関連付けられる複数のウィンドウ情報４４に対応するウィンドウ４６が連結して表示出力されるよう、複数のウィンドウ情報４４のうちの少なくとも１つを変更してもよい。このことによって、ウィンドウ画像出力部２２は、変更されたウィンドウ情報４４に基づいてウィンドウ４６を示す画像をＵＩ部１６に出力する。
【０１０５】
そして、ウィンドウ情報変更部３４は、算出された位置情報５４に基づいて、取得情報記憶部２６に記憶されているウィンドウテーブル６８内の位置情報５４を変更する（Ｓ５０５）。
【０１０６】
このように、ウィンドウ情報変更部３４が、関連ウィンドウ情報によって関連付けられる複数のウィンドウ情報４４に対応するウィンドウ４６が連結して画面に表示されるよう、複数のウィンドウ情報４４のうちの少なくとも１つを変更するようにしてもよい。
【０１０７】
Ｓ５０３に示す処理において、ウィンドウ変化情報４８の値が「Ｍｏｖｅ」であるウィンドウＩＤ５２のウィンドウ４６がドッキングウィンドウ６６を構成していない場合は（Ｓ５０３：Ｎ）、ウィンドウ情報関連付け部３６は、関連付けの対象となるウィンドウ４６を探す（Ｓ５０６）。また、Ｓ５０５に示す処理が終了した場合も、ウィンドウ情報関連付け部３６は、関連付けの対象となるウィンドウ４６を探す（Ｓ５０６）。Ｓ５０６に示す処理の詳細は後述する。
【０１０８】
そして、Ｓ５０６に示す処理において関連付けの対象となるウィンドウ４６が検出された場合は（Ｓ５０６：Ｙ）、追加画像出力部３８が、図５に示すのりしろ画像８０をＵＩ部１６に表示する（Ｓ５０７）。一方、関連付けの対象となるウィンドウ４６が検出されなかった場合は（Ｓ５０６：Ｎ）、追加画像出力部３８が、追加画像をＵＩ部１６に表示している際には、のりしろ画像８０を画面上に表示しないようにする（Ｓ５０８）。なお、図５に表示されているのりしろ画像８０の詳細については後述する。
【０１０９】
次に、ウィンドウ変化情報関連付け部２８が、Ｄｒｏｐという状態を示すウィンドウ変化情報を生成した際の処理の流れについて、図１５に示すフロー図を参照しながら説明する。
【０１１０】
まず、ウィンドウ情報取得部２４が、変化情報テーブル５０を参照し、ウィンドウ変化情報４８の値が「Ｄｒｏｐ」であるウィンドウＩＤ５２を取得して、このウィンドウＩＤ５２のウィンドウ４６の位置情報５４とサイズ情報５６とを、ウィンドウ情報記憶部２０から取得する（Ｓ６０１）。
【０１１１】
そして、ウィンドウ情報関連付け部３６が、関連付けの対象となるウィンドウ４６を探す（Ｓ６０２）。Ｓ６０２に示す処理の詳細については後述する。
【０１１２】
ここで、関連付けの対象となるウィンドウ４６が検出されない場合は（Ｓ６０２：Ｎ）、処理を終了する。関連付けの対象となるウィンドウ４６が検出された場合は（Ｓ６０２：Ｙ）、ウィンドウ情報関連付け部３６が、ウィンドウ変化情報４８の値が「Ｄｒｏｐ」であるウィンドウＩＤ５２に対応するウィンドウ４６と、Ｓ６０２の処理において検出されたウィンドウ４６とを、ドッキングする（Ｓ６０３）。このとき、ウィンドウ情報変更部３４が、ウィンドウ情報記憶部２０に記憶されているウィンドウ情報４４やドッキングウィンドウ情報を変更してもよい。ドッキング処理の詳細については後述する。
【０１１３】
そして、ウィンドウ情報関連付け部３６が、新たなドッキングウィンドウＩＤ７０を生成し、ウィンドウテーブル６８内の、ウィンドウ変化情報４８の値が「Ｄｒｏｐ」であるウィンドウＩＤ５２のウィンドウ４６と、Ｓ６０２の処理において検出されたウィンドウ４６それぞれについて、取得情報記憶部２６に記憶されているウィンドウテーブル６８内のドッキングウィンドウＩＤ７０を変更し、ウィンドウ情報変更部３４が、ドッキングウィンドウＩＤ７０を変更したウィンドウ４６の位置情報５４、及び、サイズ情報５６を変更する（Ｓ６０４）。
【０１１４】
そして、ウィンドウ情報関連付け部３６は、ドッキングされる各ウィンドウ４６のウィンドウ情報４４に基づいて、ドッキングウィンドウＩＤ７０、ドッキングウィンドウ６６の位置情報５４、ドッキングウィンドウ６６のサイズ情報５６、ドッキング集合情報７６を含むドッキングウィンドウ情報を生成して、ドッキングウィンドウテーブル７４を変更する（Ｓ６０５）。このときのドッキングウィンドウＩＤ７０も、ウィンドウ情報関連付け部３６が生成した値となる。
【０１１５】
次に、ウィンドウ変化情報関連付け部２８が、Ｒｅｓｉｚｅという状態を示すウィンドウ変化情報を生成した際の処理の流れについて、図１６に示すフロー図を参照しながら説明する。
【０１１６】
まず、ウィンドウ情報取得部２４が、変化情報テーブル５０を参照し、ウィンドウ変化情報４８の値が「Ｒｅｓｉｚｅ」であるウィンドウＩＤ５２を取得して、このウィンドウＩＤ５２のウィンドウ４６のサイズ情報５６を、ウィンドウ情報記憶部２０から取得する（Ｓ７０１）。
【０１１７】
そして、ウィンドウ情報変更部３４は、ウィンドウ情報記憶部２０から取得したウィンドウ情報４４に基づいて、取得情報記憶部２６に記憶されているウィンドウテーブル６８のサイズ情報５６を変更する（Ｓ７０２）。
【０１１８】
そして、ウィンドウ情報変更部３４は、変化情報テーブル５０を参照し、ウィンドウ変化情報４８の値が「Ｒｅｓｉｚｅ」であるウィンドウＩＤ５２を取得して、ウィンドウテーブル６８を参照して、このウィンドウＩＤ５２のウィンドウ４６がドッキングウィンドウ６６を構成しているか否かを確認する（Ｓ７０３）。そして、このウィンドウ４６がドッキングウィンドウ６６を構成している場合は（Ｓ７０３：Ｙ）、ウィンドウ情報変更部３４は、ドッキングウィンドウ６６を構成している他のウィンドウ４６について、ウィンドウテーブル６８に基づいて、ドッキングウィンドウ６６を構成するウィンドウ４６が連動してサイズ変更されるよう、位置情報５４及びサイズ情報５６を算出する。そして、ウィンドウ情報変更部３４は、算出された位置情報５４に基づいて、ウィンドウ情報記憶部２０に記憶されているウィンドウ情報４４に含まれる位置情報５４及びサイズ情報５６を変更する（Ｓ７０４）。このことによって、ウィンドウ画像出力部２２は、変更されたウィンドウ情報４４に基づいてウィンドウ４６を示す画像をＵＩ部１６に出力する。
【０１１９】
そして、ウィンドウ情報変更部３４は、取得情報記憶部２６に記憶されているウィンドウテーブル６８内の、位置情報５４及びサイズ情報５６の値も変更する（Ｓ７０５）。
【０１２０】
また、ウィンドウ情報変更部３４は、取得情報記憶部２６に記憶されているドッキングウィンドウテーブル７４内の、位置情報５４及びサイズ情報５６の値も変更する（Ｓ７０６）。
【０１２１】
Ｓ７０３に示す処理において、ウィンドウ変化情報４８の値が「Ｒｅｓｉｚｅ」であるウィンドウＩＤ５２のウィンドウ４６がドッキングウィンドウ６６を構成していない場合は（Ｓ７０３：Ｎ）、処理を終了する。
【０１２２】
次に、関連付けの対象となるウィンドウ４６を検出する一連の処理について説明する。
【０１２３】
ここでは、ＵＩ部１６に表示出力されているウィンドウ４６の各辺について、図１７に示すように、上辺を「Ｔｏｐ」、下辺を「Ｂｏｔｔｏｍ」、左辺を「Ｌｅｆｔ」、右辺を「Ｒｉｇｈｔ」と呼ぶこととする。
【０１２４】
図５に示すように、本実施形態では、第１ウィンドウ４６−１と第２ウィンドウ４６−２が、ディスプレイ等のＵＩ部１６上に表示されていることとする。
【０１２５】
そして、この場合、第１ウィンドウ４６−１と第２ウィンドウ４６−２との対応する辺がドッキングされる候補となる。具体的には、例えば、第１ウィンドウ４６−１の「Ｒｉｇｈｔ」と、第２ウィンドウ４６−２の「Ｌｅｆｔ」、第１ウィンドウ４６−１の「Ｌｅｆｔ」と第２ウィンドウ４６−２の「Ｒｉｇｈｔ」、第１ウィンドウ４６−１の「Ｔｏｐ」と第２ウィンドウ４６−２の「Ｂｏｔｔｏｍ」、第１ウィンドウ４６−１の「Ｂｏｔｔｏｍ」と第２ウィンドウ４６−２の「Ｔｏｐ」とがドッキングされる候補となる。
【０１２６】
そして、第１ウィンドウ４６−１と第２ウィンドウ４６−２との対応する辺間の距離が、ある一定の閾値より小さい第２ウィンドウ４６−２を、第１ウィンドウ４６−１の関連付け対象ウィンドウ４６と呼ぶ。
【０１２７】
ここで、第１ウィンドウ４６−１の関連付け対象ウィンドウ４６を探す処理（Ｓ５０６及びＳ６０２）の流れの一例を、図１８に示すフロー図を参照しながら説明する。
【０１２８】
まず、ウィンドウ情報関連付け部３６は、ドッキングウィンドウテーブル７４を参照して、ドッキングウィンドウ６６のうちから第１ウィンドウ４６−１と第２ウィンドウ４６−２との対応する辺間の距離が、所定の閾値より小さい第２ウィンドウ４６−２を探す。そして、このとき、上記の第２ウィンドウ４６−２が見つかった場合は（Ｓ８０１：Ｙ）、ウィンドウ情報関連付け部３６は、そのウィンドウ４６を関連付け対象ウィンドウ４６とする（Ｓ８０２）。一方、第１ウィンドウ４６−１の関連付け対象ウィンドウ４６が見つからなかった場合は（Ｓ８０１：Ｎ）、ウィンドウ情報関連付け部３６は、ウィンドウテーブル６８を参照して、ドッキングされていないウィンドウ４６のうちから、第１ウィンドウ４６−１と第２ウィンドウ４６−２との対応する辺間の距離が、所定の閾値より小さい第２ウィンドウ４６−２を探す（Ｓ８０３）。このとき、上記の第２ウィンドウ４６−２が見つかった場合は（Ｓ８０３：Ｙ）、ウィンドウ情報関連付け部３６は、そのウィンドウ４６を関連付け対象ウィンドウ４６とする（Ｓ８０４）。このようにして、ウィンドウ情報関連付け部３６は、ドッキングウィンドウ６６またはドッキングされていない単独のウィンドウ４６に対して、第１ウィンドウ４６−１の関連付け対象ウィンドウ４６を探す。
【０１２９】
次に、ウィンドウ４６をドッキングする処理（Ｓ６０３）について説明する。上述の通り、本実施形態では、ウィンドウ情報４４が関連付けられたウィンドウ４６は、ドッキングされることとなる。
【０１３０】
ドッキング処理は、第１ウィンドウ４６−１のどの辺がドッキング対象となるかによって、以下のように処理の内容が異なる。
【０１３１】
第１ウィンドウ４６−１のドッキング対象となる辺が「Ｌｅｆｔ」である場合は、第１ウィンドウ４６−１の高さを第２ウィンドウ４６−２の高さと同じにし、第２ウィンドウ４６−２の左に第１ウィンドウ４６−１が連結されるよう、ウィンドウ情報変更部３４は、ウィンドウ情報記憶部２０に記憶されているウィンドウ情報４４に含まれる位置情報５４及びサイズ情報５６を変更する。
【０１３２】
第１ウィンドウ４６−１のドッキング対象となる辺が「Ｒｉｇｈｔ」である場合は、第１ウィンドウ４６−１の高さを第２ウィンドウ４６−２の高さと同じにし、第２ウィンドウ４６−２の右に第１ウィンドウ４６−１が連結されるよう、ウィンドウ情報変更部３４は、ウィンドウ情報記憶部２０に記憶されているウィンドウ情報４４に含まれる位置情報５４及びサイズ情報５６を変更する。
【０１３３】
第１ウィンドウ４６−１のドッキング対象となる辺が「Ｔｏｐ」である場合は、第１ウィンドウ４６−１の幅を第２ウィンドウ４６−２の幅と同じにし、第２ウィンドウ４６−２の下に第１ウィンドウ４６−１が連結されるよう、ウィンドウ情報変更部３４は、ウィンドウ情報記憶部２０に記憶されているウィンドウ情報４４に含まれる位置情報５４及びサイズ情報５６を変更する。
【０１３４】
第１ウィンドウ４６−１のドッキング対象となる辺が「Ｂｏｔｔｏｍ」である場合は、第１ウィンドウ４６−１の幅を第２ウィンドウ４６−２の幅と同じにし、第２ウィンドウ４６−２の上に第１ウィンドウ４６−１が連結されるよう、ウィンドウ情報変更部３４は、ウィンドウ情報記憶部２０に記憶されているウィンドウ情報４４に含まれる位置情報５４及びサイズ情報５６を変更する。
【０１３５】
そして、ウィンドウ画像出力部２２は、変更されたウィンドウ情報４４に基づいて、第１ウィンドウ４６−１を示す画像をＵＩ部１６に出力する。このとき、ウィンドウ画像出力部２２は、変更後のウィンドウ情報４４と変更前のウィンドウ情報４４とに基づいて、ウィンドウが移動しているようなアニメーションとして、ＵＩ部１６は第１ウィンドウ４６−１を示す画像を出力してもよい。
【０１３６】
もちろん、上記の場合において、第２ウィンドウ４６−２が第１ウィンドウ４６−１と連結されるよう、ウィンドウ情報変更部３４が、ウィンドウ情報記憶部２０に記憶されているウィンドウ情報４４に含まれる位置情報５４及びサイズ情報５６を変更するようにしてもよい。
【０１３７】
このように、ウィンドウ情報関連付け部３６が、ウィンドウ情報取得部２４が取得する複数のウィンドウ情報４４に含まれる位置情報５４が示す位置間の長さが、予め定められた長さの条件を満たす（例えば、予め定められた長さ以下、又は、予め定められた長さより短い）場合に、これらの複数のウィンドウ情報４４を関連付けるようにしてもよい。
【０１３８】
なお、本発明は上記実施形態に限定されるものではない。
【０１３９】
例えば、ウィンドウ変化情報関連付け部２８によってウィンドウ変化情報４８が生成される対象となるウィンドウ４６の状態の変化と、イベント情報受付部３２が受け付けることによって検出される対象となるウィンドウ４６の状態の変化との分担を、予め定めた基準に従って決定するようにしてもよい。具体的には、例えば、個別のウィンドウ情報４４の比較により検出ができるウィンドウ４６の状態の変化は、ウィンドウ変化情報関連付け部２８によるウィンドウ変化情報４８の生成対象とし、個別のウィンドウ情報４４の比較によっては検出ができないウィンドウ４６の状態の変化は、イベント情報受付部３２の受付対象とするなどのようにしてもよい。
【０１４０】
また、情報処理装置１０は、ウィンドウ情報関連付け部３６や、追加画像出力部３８を備えない構成であってもよい。また、情報保存部４０や、情報復元部４２を備えない構成であってもよい。
【０１４１】
また、ウィンドウ情報記憶部２０や、ウィンドウ画像出力部２２や、取得情報記憶部２６や、イベント情報通知部３０を情報処理装置１０外の別のコンピュータに設け、情報処理装置１０と通信部を介して通信する構成とした、分散型情報処理システムに本発明を適用してもよい。
【０１４２】
また、情報処理装置１０は、一つの筐体により構成されていても、複数の筐体により構成されていてもよい。
【０１４３】
また、情報処理装置１０の役割のうちのいくつかを、オペレーションシステムの機能を利用して実現するようにしてもよい。
【０１４４】
なお、本明細書及び図面中の具体的な数値はあくまでも例示であり、これらの数値に限定されない。
【図面の簡単な説明】
【０１４５】
【図１】本発明の一実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【図２】本発明の一実施形態に係る情報処理装置の機能ブロックの一例を示す図である。
【図３】変化情報テーブルの一例を示す図である。
【図４】イベント情報の一例を示す図である。
【図５】ウィンドウ表示画面がディスプレイに表示された情報処理装置の一例を示す図である。
【図６】ウィンドウ表示画面がディスプレイに表示された情報処理装置の一例を示す図である。
【図７】ウィンドウテーブルの一例を示す図である。
【図８】ドッキングウィンドウテーブルの一例を示す図である。
【図９】保存対象情報の一例を示す図である。
【図１０】情報処理装置で行われる処理のフローの一例を示す図である。
【図１１】情報処理装置で行われる処理のフローの一例を示す図である。
【図１２】情報処理装置で行われる処理のフローの一例を示す図である。
【図１３】情報処理装置で行われる処理のフローの一例を示す図である。
【図１４】情報処理装置で行われる処理のフローの一例を示す図である。
【図１５】情報処理装置で行われる処理のフローの一例を示す図である。
【図１６】情報処理装置で行われる処理のフローの一例を示す図である。
【図１７】ウィンドウの各辺の名称の一例を説明する説明図である。
【図１８】情報処理装置で行われる処理のフローの一例を示す図である。
【符号の説明】
【０１４６】
１０  情報処理装置、１２  制御部、１４  記憶部、１６  ユーザインタフェース（ＵＩ）部、１８  バス、２０  ウィンドウ情報記憶部、２２  ウィンドウ画像出力部、２４  ウィンドウ情報取得部、２６  取得情報記憶部、２８  ウィンドウ変化情報関連付け部、３０  イベント情報通知部、３２  イベント情報受付部、３４  ウィンドウ情報変更部、３６  ウィンドウ情報関連付け部、３８  追加画像出力部、４０  情報保存部、４２  情報復元部、４４  ウィンドウ情報、４６  ウィンドウ、４８  ウィンドウ変化情報、４８ａ  変化列、５０  変化情報テーブル、５２  ウィンドウ識別子（ウィンドウＩＤ）、５４  位置情報、５６  サイズ情報、５８  アクティブフラグ、６０  イベント情報、６２  イベント種類情報、６４  文書所在情報、６６  ドッキングウィンドウ、６８  ウィンドウテーブル、７０  ドッキングウィンドウ識別子（ドッキングウィンドウＩＤ）、７２  文書内位置情報、７４  ドッキングウィンドウテーブル、７６  ドッキング集合情報、７８  保存対象情報、８０  のりしろ画像。
【図１】
0005104379.tif 000002
【図２】
0005104379.tif 000003
【図３】
0005104379.tif 000004
【図４】
0005104379.tif 000005
【図５】
0005104379.tif 000006
【図６】
0005104379.tif 000007
【図７】
0005104379.tif 000008
【図８】
0005104379.tif 000009
【図９】
0005104379.tif 000010
【図１０】
0005104379.tif 000011
【図１１】
0005104379.tif 000012
【図１２】
0005104379.tif 000013
【図１３】
0005104379.tif 000014
【図１４】
0005104379.tif 000015
【図１５】
0005104379.tif 000016
【図１６】
0005104379.tif 000017
【図１７】
0005104379.tif 000018
【図１８】
0005104379.tif 000019