(57)【要約】【課題】本発明の目的は、背面ウィンドウの操作ボタンが前面ウィンドウに隠れないように自動的に表示させるウィンドウシステムを提供することである。【解決手段】表示装置（１００）に複数のウィンドウを表示させるウィンドウ表示装置であって、移動したウィンドウがあることを検知すると、移動後のウィンドウ（１２０ｂ）座標を算出する手段と、他のウィンドウ（１２０ａ）の座標を記憶する手段と、他のウィンドウの座標を読み出し、算出した移動後のウィンドウ座標と比較する手段と、前記比較によって、他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算する手段と、前記移動量に基づいて、他のウィンドウのインタフェースオブジェクトを再表示させる手段とを備えるウィンドウ表示装置。【選択図】      図１
2004234426.tif 000002
【特許請求の範囲】
【請求項１】
表示装置に複数のウィンドウを表示させるウィンドウ管理プログラムであって、
移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出するステップと、
他のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較するステップと、
前記比較によって、前記他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、
前記移動量に基づいて、前記他のウィンドウのインタフェースオブジェクトを再表示させるステップと
を備えるウィンドウ管理プログラム。
【請求項２】
前記インタフェースオブジェクトは、システムメニュー、タイトルバー、最小化ボタン、最大化ボタン、クローズボタン、及びスクロールバーのうちの少なくとも１つであることを特徴とする請求項１記載のウィンドウ管理プログラム。
【請求項３】
表示装置にウィンドウを表示させるアプリケーションプログラムを管理するアプリケーション管理プログラムであって、
移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出するステップと、
前記アプリケーションプログラム用のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較するステップと、
前記比較によって、前記アプリケーションプログラム用のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、
前記移動量に基づいて、前記アプリケーションプログラムに、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトを再表示させるステップと
を備えるアプリケーション管理プログラム。
【請求項４】
表示装置に複数のウィンドウを表示させるウィンドウ管理プログラムにウィンドウの再表示を指示するアプリケーションプログラムであって、
移動したウィンドウがあることを検知すると、この移動後のウィンドウ座標及び前記アプリケーションプログラム用のウィンドウ座標を受け取るステップと、
受け取った移動後のウィンドウ座標及び前記アプリケーションプログラム用のウィンドウ座標を比較するステップと、
前記比較によって、前記アプリケーションプログラム用のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、
前記移動量に基づいて、前記ウィンドウ管理プログラムに前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトを再表示させるステップと
を備えるアプリケーションプログラム。
【請求項５】
表示装置に複数のウィンドウを表示させるウィンドウ表示装置であって、
移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出する手段と、
他のウィンドウの座標を記憶する手段と、
前記他のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較する手段と、
前記比較によって、前記他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算する手段と、
前記移動量に基づいて、前記他のウィンドウのインタフェースオブジェクトを再表示させる手段と
を備えるウィンドウ表示装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パーソナルコンピュータ（ＰＣ）等に用いられるウィンドウシステムに関し、特に、マルチウィンドウの表示システムに関する。
【０００２】
【従来の技術】
今日のＰＣ等の情報処理装置では、フォルダや、実行中のアプリケーションプログラム等の表示ウィンドウ（以下、単にウィンドウという）を１つの表示装置の画面全体（以下、単に画面という）上に重ね合わせて複数個開くことができるマルチウィンドウシステムが採用されている。重ね合わせて表示されるため、最前に位置するウィンドウ（以下、単に前面ウィンドウという）はそのウィンドウの内容を全て見ることができるが、この前面ウィンドウの背面に位置するウィンドウ（背面ウィンドウ）は、そのウィンドウの内容すべてを見ることはできない。
【０００３】
したがって、背面ウィンドウの内容すべてを表示させるためには、背面ウィンドウを前方に移動させるか、これらのウィンドウのどちらかを画面上の任意の位置に移動させてウィンドウ同士が重ならないようにする必要がある。画面上の任意の位置に移動させる場合には、ウィンドウの一部が画面の上下左右の端部よりはみ出た形で表示される可能性がある。
【０００４】
このようなはみ出た形で表示される場合には、例えば、ウィンドウは一般に長方形状であり、その上端部にそのウィンドウの名称を示したタイトルバーが表示され、このタイトルバーの中には、ユーザから見て右端部分に、操作ボタンとして「ウィンドウを最大化するボタン」、「ウィンドウを最小化するボタン」、「ウィンドウを閉じるボタン」が表示されているので、ウィンドウを右方向に移動させると、一部が右端からはみ出て、操作ボタンが見えない状態で画面上に表示されることがある。従って、そのウィンドウに対する最大化等の操作ボタンの選択はできなくなってしまう。
【０００５】
このため、従来の情報処理装置では、画面上からはみ出た操作ボタンをタイトルバー内の画面上からはみ出ていない部分再表示させている（例えば特許文献１参照）。
【０００６】
【特許文献１】
特開平１１−２３７９４３号公報（第４頁、図２）
【０００７】
【発明が解決しようとする課題】
しかし、後方ウィンドウの操作ボタンを表示させるために、重なり合ったウィンドウを左右上下に移動させることをユーザに強制させることはユーザフレンドリーという観点から好ましくない。同様のことが、背面ウィンドウを前方に移動させる場合にも当てはまる。
【０００８】
本発明の目的は、複数のウィンドウが重なり合った場合に、背面ウィンドウの操作ボタンが前面ウィンドウに隠れないように自動的に表示させるウィンドウシステムを提供することである。
【０００９】
【課題を解決するための手段】
第１の発明は、表示装置に複数のウィンドウを表示させるウィンドウ管理プログラムであって、移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出するステップと、他のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較するステップと、前記比較によって、前記他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、前記移動量に基づいて、前記他のウィンドウのインタフェースオブジェクトを再表示させるステップとを備えるウィンドウ管理プログラムである。
【００１０】
第２の発明は、前記インタフェースオブジェクトは、システムメニュー、タイトルバー、最小化ボタン、最大化ボタン、クローズボタン、及びスクロールバーのうちの少なくとも１つであることを特徴とする第１の発明記載のウィンドウ管理プログラムである。
【００１１】
第３の発明は、表示装置にウィンドウを表示させるアプリケーションプログラムを管理するアプリケーション管理プログラムであって、移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出するステップと、前記アプリケーションプログラム用のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較するステップと、前記比較によって、前記アプリケーションプログラム用のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、前記移動量に基づいて、前記アプリケーションプログラムに、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトを再表示させるステップとを備えるアプリケーション管理プログラムである。
【００１２】
第４の発明は、表示装置に複数のウィンドウを表示させるウィンドウ管理プログラムにウィンドウの再表示を指示するアプリケーションプログラムであって、移動したウィンドウがあることを検知すると、この移動後のウィンドウ座標及び前記アプリケーションプログラム用のウィンドウ座標を受け取るステップと、受け取った移動後のウィンドウ座標及び前記アプリケーションプログラム用のウィンドウ座標を比較するステップと、前記比較によって、前記アプリケーションプログラム用のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、前記移動量に基づいて、前記ウィンドウ管理プログラムに前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトを再表示させるステップとを備えるアプリケーションプログラムである。
【００１３】
第５の発明は、表示装置に複数のウィンドウを表示させるウィンドウ表示装置であって、移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出する手段と、他のウィンドウの座標を記憶する手段と、前記他のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較する手段と、前記比較によって、前記他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算する手段と、前記移動量に基づいて、前記他のウィンドウのインタフェースオブジェクトを再表示させる手段とを備えるウィンドウ表示装置である。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
図１は、本実施形態が適用される表示装置の概略図である。表示装置１００上の画面１１０には、本実施形態に係るウィンドウシステムによって管理された複数のウィンドウ１２０が表示されている。それぞれのウィンドウはユーザの操作によって画面上の移動が可能であり、それによってウィンドウ同士が重なり合うことがある。ウィンドウ上にはシステムメニュー１３０、タイトルバー１４０、最小化ボタン１５０、最大化ボタン１６０、クローズボタン１７０、スクロールバー１８０、クライアント領域１９０等が存在する。以下、これらをインタフェースオブジェクトと呼称する。
【００１５】
通常のウィンドウシステムではウィンドウが移動し、前面ウィンドウと背面ウィンドウの一部が重なり合い、背面ウィンドウの一部が隠された場合は、隠された部分に表示されていたインタフェースオブジェクトは操作できなくなり、操作が必要になった場合は、背面ウィンドウを前面に移動するか、前面ウィンドウまたは背面ウィンドウを移動してウィンドウ同士を重ならないように操作する必要がある。
【００１６】
しかし、本実施形態は後述する背面ウィンドウの再描画処理を行うので、背面ウィンドウ１２０ａに表示されているインタフェースオブジェクト（図１では最小化ボタン１５０ａ、最大化ボタン１６０ａ、クローズボタン１７０ａ、スクロールバー１８０ａ）を、前面ウィンドウ１２０ｂとの重なり具合によって生じた隠された領域外に移動するため、ユーザは背面ウィンドウ１２０ａ自体の位置を移動することなく、操作を継続できる。
【００１７】
なお、インタフェースオブジェクトのうち、データが表示される背面ウィンドウ１２０ａ内のクライアント領域１９０ａでは、データ表示の方法を変更することは行わないように設定することが好ましい。これはクライアント領域がアプリケーションプログラム固有の機能を実現する場、例えばデータ表示領域等であり、クライアント領域内の表示を変化させてしまう、すなわち、クライアント領域を縮小等させると、ユーザの意図する表示と異なってしまう可能性があるためである。例えば、全文書を表示させるために表示を変化させてしまうと、クライアント領域が小さく縮小された場合に文書の改行位置等が変化してしまうが、これはもともとウィンドウの重なりに起因するものであり、ユーザが意図するものではないためである。また、図示していないがメニューバーやツールバーを再表示させるか否かはユーザー側で設定しても良いし、スクロールバー１８０もユーザー側で再表示させるか否かを設定してよい。これらメニューバー、ツールバー及びスクロールバー１８０はウィンドウシステムが提供している機能であり、アプリケーションプログラム毎に使用するか否かを設定できるからである。
【００１８】
（背面ウィンドウのインタフェースオブジェクトの表示例）
図２は、本実施形態に係る背面ウィンドウの表示例を示す図であり、ウィンドウ同士が重なった場合において、背面ウィンドウのインタフェースオブジェクトの移動例を説明する。なお、説明の都合上、前面ウィンドウは描かいておらず、また、重なった部分は網掛けで描いているが、実際の画面上には表示されない点に留意されたい。
【００１９】
（１）はウィンドウ同士の重なりのない通常時の様子である。
（２）は背面ウィンドウの右下部分に前面ウィンドウが重なった場合にインタフェースオブジェクトが移動した例である。重なり位置がウィンドウの右下であるため、スクロールバーのみを重なり分だけ移動し、スクロールバーのサイズが縮小されている。
【００２０】
（３）は背面ウィンドウの右上部分に前面ウィンドウが重なった場合である。この場合、タイトルバー上の最小化ボタン、最大化ボタン、クローズボタン及びスクロールバーの位置を移動する。タイトルバー上のインタフェースオブジェクトは重なり分だけ左方向に移動し、スクロールバーも重なり分だけ移動し、サイズが縮小される。また、クライアント領域自体は上述したように大きさを変化させないため、重なり部分の文章はユーザからは画面上、見えなくなる。
【００２１】
（４）は背面ウィンドウの上部に前面ウィンドウが重なった場合である。この場合、タイトルバー自体とスクロールバーが移動する必要がある。ウィンドウ内のクライアント領域にかぶさる形でタイトルバーが移動するため、クライアント領域自体は縮小されないが、文章の一部は隠れているように見える。
【００２２】
（５）は背面ウィンドウの右端に前面ウィンドウが重なった場合である。この場合、タイトルバー上のボタンとスクロールバーが重なり分だけ左方向に移動する。この場合もクライアント領域の文章の一部は隠れているように見える。
【００２３】
（６）はウィンドウの左端に他のウィンドウが重なった場合である。この場合、タイトルバー自体が重なり分だけ右方向に移動する。
（７）はウィンドウの下端に他のウィンドウが重なった場合である。この場合、スクロールバーが重なり分だけ縮小される。
どの場合も、移動するものはインタフェースオブジェクトのみであり、ウィンドウ上のクライアント領域内の表示自体には影響を与えない。またスクロールバーは移動によってバーのサイズは変化するが、スクロール操作は移動前と同様に可能である。
【００２４】
なお、図には記載されていないが、ウィンドウ下端にステータスバーなどのインタフェースオブジェクトが表示される場合も本実施形態によれば表示位置を移動させることが可能である。
【００２５】
それぞれのインタフェースオブジェクトの位置を移動した場合は、描画位置に対応してウィンドウシステム等において座標管理やイベント処理の対応を行う。この対応の方法は、ウィンドウシステム、あるいは、ウィンドウシステムを制御するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の実装方法によって異なる。つまり、ＯＳやウィンドウシステムの処理によって、座標管理が行われ、インタフェースオブジェクトが移動後も正常にインタフェースオブジェクトとして機能することになる。
【００２６】
（背面ウィンドウの再描画処理）
図３、図４は、本実施形態に係る背面ウィンドウの再描画処理のフローチャートである。本実施形態ではウィンドウシステムを改良して実装した場合と、アプリケーションレベルで実装した場合の二つの例をあげる。ここでは説明を簡略化するために二つのウィンドウのみが存在する場合について述べるが、より多くのウィンドウが画面上に配置されている場合でも、ウィンドウの重なった順番を考慮して、インタフェースオブジェクトの移動位置を計算することで、対応可能である。
【００２７】
図３はウィンドウシステムを改良して実装する場合の実施例である。マウス等のポインティングデバイスを使用するユーザによって、前面ウィンドウの表示位置が変更された場合は、まず移動後の前面ウィンドウの表示領域の座標を取得する（Ｓ３００）。取得した領域座標を、ウィンドウシステムまたはＯＳ内で管理されているウィンドウ管理情報内の背面ウィンドウ上に存在するインタフェースオブジェクトの領域座標と比較して（Ｓ３１０，Ｓ３２０，Ｓ３３０）、前面ウィンドウによって背面ウィンドウの各インタフェースオブジェクトが重なっていた場合は、背面ウィンドウのインタフェースオブジェクト毎に移動処理を行う（Ｓ３４０，Ｓ３５０，Ｓ３６０）。ここではタイトルバー／システムメニューの場合と、ボタンの場合と、スクロールバーの場合に分けて重なりをチェックし、移動処理を行っている。
【００２８】
インタフェースオブジェクトの移動処理では、前面ウィンドウと背面ウィンドウの位置関係、インタフェースオブジェクトの配置によって、インタフェースオブジェクトの移動先座標を算出する。この算出方法については後述する。移動先が確定したならば、ウィンドウシステム内で管理されているウィンドウ管理情報内のインタフェースオブジェクトの領域座標を修正する（Ｓ３７０）。修正後は画面更新処理を行う（Ｓ３８０，Ｓ３９０）。
【００２９】
図４はアプリケーションレベルで実装する場合の実施例である。アプリケーションレベルで実装する場合は、ウィンドウシステムまたはＯＳレベルでインタフェースオブジェクトの移動及びウィンドウの重なり具合の通知がサポートされている必要がある。ここではインタフェースオブジェクトの移動がＯＳレベルのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）  によって、重なり具合の通知をＯＳからのイベントによって通知されることを前提とする（Ｓ４００〜Ｓ４３０）。ここで、ＡＰＩとは、ＯＳがアプリケーションに対して公開しているプログラムインタフェースであり、アプリケーションは、基本的にすべての処理をこのＡＰＩを経由して行なう。
【００３０】
なお、システムメニューやボタン、スクロールバーなどのインタフェースオブジェクトはアプリケーションプログラムの指示によって作成されるため、どのインタフェースオブジェクトが表示されているかはアプリケーションで知ることができる。アプリケーションの指示によらずに作成される場合は、ＯＳのＡＰＩを用いて、どのインタフェースオブジェクトが表示されているかを調査する。ここではアプリケーションの指示によって作成される場合について述べる。
【００３１】
ユーザの操作によって前面ウィンドウが移動し、背面ウィンドウに対して、ウィンドウが重なった旨のイベントがＯＳより通知された場合、背面ウィンドウのアプリケーション内で、ウィンドウの重なった領域座標をＯＳのＡＰＩを使用して取得し、取得された重なり領域座標から後述する算出方法によって、インタフェースオブジェクトの移動先座標を算出する。移動先が確定したならば、前記重なり領域内に存在するインタフェースオブジェクト全てに対して、ＯＳのＡＰＩを用いて移動を指示する（Ｓ４４０〜Ｓ４６０）。最後に背面ウィンドウ自体の再描画をＯＳのＡＰＩを用いて行う（Ｓ４７０〜Ｓ４９０）。
【００３２】
（インタフェースオブジェクトの移動先座標の算出方法）
図５は、インタフェースオブジェクトの移動先座標を算出する一例を説明するための図である。
図５のような２次元座標系（Ｘ，Ｙ）を用いると、領域を表す座標は（左上端のＸ座標，左上端のＹ座標，右下端のＸ座標，右下端のＹ座標）と表現できる。したがって、前面ウィンドウの領域は（ＦＸ１，ＦＹ１，ＦＸ２，ＦＹ２）と、背面ウィンドウの領域は（ＢＸ１，ＢＹ１，ＢＸ２，ＢＹ２）と、背面ウィンドウのスクロールバー領域は（ＳＸ１，ＳＹ１，ＳＸ２，ＳＹ２）と、背面ウィンドウのクローズボタン領域は（ＣＸ１，ＣＹ１，ＣＸ２，ＣＹ２）と、オブジェクト間の間隔、例えば、クローズボタンとウィンドウ枠との間隔はＤと、タイトルバーの幅はＴと、ウィンドウ枠の幅はＷと表せる。すると、ウィンドウの重なり領域は（ＦＸ１，ＢＹ１，ＢＸ２，ＦＹ２）と表せるので、この重なり領域にクローズボタン及びスクロールバーの一部があることと判断できる。
【００３３】
次に、移動量を求める。先ほど求めたウィンドウの重なり領域を（ＬＸ１，ＬＹ１，ＬＸ２，ＬＹ２）とすると、移動量（ｄＸ，ｄＹ）は（ＬＸ２−ＬＸ１，ＬＹ２−ＬＹ１）と表せる。
【００３４】
よって、クローズボタンの移動先は（ＣＸ１−ｄＸ−Ｄ，ＣＹ１，ＣＸ２−ｄＸ−Ｄ，ＣＹ２）と、スクロールボタンの移動先は（ＳＸ１，ＳＹ１−（ｄＸ−Ｔ−Ｗ），ＳＸ２，ＳＹ２）と求めることができる。
【００３５】
以上説明したウィンドウの再描画処理は、ＰＣ等に実装されたＣＰＵ（ＣｅｎｔｒａｌＰｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によってＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等に記憶されたウィンドウ表示プログラムに基づいて実行される。したがって、前述したウィンドウ管理情報はＲＡＭ等に記憶されて、ウィンドウ表示プログラムを実行するＣＰＵによって管理されている。
【００３６】
上述した実施の形態は、本発明の好適な具体例であるから、技術的に好ましい種々の限定が付されているが、本発明の趣旨を逸脱しない範囲であれば、適宜組合わせ及び変更することができることはいうまでもない。例えば、ユーザが前面ウィンドウを移動させるポインティングデバイスとしては、マウスの他に、トラックボール、ペン、タブレット等を用いてもよい。
【００３７】
【発明の効果】
上述したように本発明によれば、複数のウィンドウが重なり合った場合に、背面ウィンドウの操作ボタンが前面ウィンドウに隠れないように自動的に表示させるウィンドウシステムを提供することができる。
【図面の簡単な説明】
【図１】本実施形態が適用される表示装置の概略図。
【図２】本実施形態に係る背面ウィンドウの表示例を示す図。
【図３】本実施形態に係る背面ウィンドウの再描画処理のウィンドウシステムを改良して実装する場合のフローチャート。
【図４】本実施形態に係る背面ウィンドウの再描画処理のフローチャート。
【図５】インタフェースオブジェクトの移動先座標を算出する一例の説明図。
【符号の説明】
１００  表示装置
１１０  画面
１２０ａ，１２０ｂ  背面ウィンドウ，前面ウィンドウ
１３０  システムメニュー
１４０  タイトルバー
１５０  最小化ボタン
１６０  最大化ボタン
１７０  クローズボタン
１８０  スクロールバー
１９０  クライアント領域
【図１】
2004234426.tif 000003
【図２】
2004234426.tif 000004
【図３】
2004234426.tif 000005
【図４】
2004234426.tif 000006
【図５】
2004234426.tif 000007