JP2004234426A - ウィンドウ管理プログラム、アプリケーション管理プログラム、アプリケーションプログラム、及び、ウィンドウ表示装置 - Google Patents
ウィンドウ管理プログラム、アプリケーション管理プログラム、アプリケーションプログラム、及び、ウィンドウ表示装置 Download PDFInfo
- Publication number
- JP2004234426A JP2004234426A JP2003023321A JP2003023321A JP2004234426A JP 2004234426 A JP2004234426 A JP 2004234426A JP 2003023321 A JP2003023321 A JP 2003023321A JP 2003023321 A JP2003023321 A JP 2003023321A JP 2004234426 A JP2004234426 A JP 2004234426A
- Authority
- JP
- Japan
- Prior art keywords
- window
- coordinates
- interface object
- movement
- application program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Digital Computer Display Output (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】本発明の目的は、背面ウィンドウの操作ボタンが前面ウィンドウに隠れないように自動的に表示させるウィンドウシステムを提供することである。
【解決手段】表示装置(100)に複数のウィンドウを表示させるウィンドウ表示装置であって、移動したウィンドウがあることを検知すると、移動後のウィンドウ(120b)座標を算出する手段と、他のウィンドウ(120a)の座標を記憶する手段と、他のウィンドウの座標を読み出し、算出した移動後のウィンドウ座標と比較する手段と、前記比較によって、他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算する手段と、前記移動量に基づいて、他のウィンドウのインタフェースオブジェクトを再表示させる手段とを備えるウィンドウ表示装置。
【選択図】 図1
【解決手段】表示装置(100)に複数のウィンドウを表示させるウィンドウ表示装置であって、移動したウィンドウがあることを検知すると、移動後のウィンドウ(120b)座標を算出する手段と、他のウィンドウ(120a)の座標を記憶する手段と、他のウィンドウの座標を読み出し、算出した移動後のウィンドウ座標と比較する手段と、前記比較によって、他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算する手段と、前記移動量に基づいて、他のウィンドウのインタフェースオブジェクトを再表示させる手段とを備えるウィンドウ表示装置。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、パーソナルコンピュータ(PC)等に用いられるウィンドウシステムに関し、特に、マルチウィンドウの表示システムに関する。
【0002】
【従来の技術】
今日のPC等の情報処理装置では、フォルダや、実行中のアプリケーションプログラム等の表示ウィンドウ(以下、単にウィンドウという)を1つの表示装置の画面全体(以下、単に画面という)上に重ね合わせて複数個開くことができるマルチウィンドウシステムが採用されている。重ね合わせて表示されるため、最前に位置するウィンドウ(以下、単に前面ウィンドウという)はそのウィンドウの内容を全て見ることができるが、この前面ウィンドウの背面に位置するウィンドウ(背面ウィンドウ)は、そのウィンドウの内容すべてを見ることはできない。
【0003】
したがって、背面ウィンドウの内容すべてを表示させるためには、背面ウィンドウを前方に移動させるか、これらのウィンドウのどちらかを画面上の任意の位置に移動させてウィンドウ同士が重ならないようにする必要がある。画面上の任意の位置に移動させる場合には、ウィンドウの一部が画面の上下左右の端部よりはみ出た形で表示される可能性がある。
【0004】
このようなはみ出た形で表示される場合には、例えば、ウィンドウは一般に長方形状であり、その上端部にそのウィンドウの名称を示したタイトルバーが表示され、このタイトルバーの中には、ユーザから見て右端部分に、操作ボタンとして「ウィンドウを最大化するボタン」、「ウィンドウを最小化するボタン」、「ウィンドウを閉じるボタン」が表示されているので、ウィンドウを右方向に移動させると、一部が右端からはみ出て、操作ボタンが見えない状態で画面上に表示されることがある。従って、そのウィンドウに対する最大化等の操作ボタンの選択はできなくなってしまう。
【0005】
このため、従来の情報処理装置では、画面上からはみ出た操作ボタンをタイトルバー内の画面上からはみ出ていない部分再表示させている(例えば特許文献1参照)。
【0006】
【特許文献1】
特開平11−237943号公報(第4頁、図2)
【0007】
【発明が解決しようとする課題】
しかし、後方ウィンドウの操作ボタンを表示させるために、重なり合ったウィンドウを左右上下に移動させることをユーザに強制させることはユーザフレンドリーという観点から好ましくない。同様のことが、背面ウィンドウを前方に移動させる場合にも当てはまる。
【0008】
本発明の目的は、複数のウィンドウが重なり合った場合に、背面ウィンドウの操作ボタンが前面ウィンドウに隠れないように自動的に表示させるウィンドウシステムを提供することである。
【0009】
【課題を解決するための手段】
第1の発明は、表示装置に複数のウィンドウを表示させるウィンドウ管理プログラムであって、移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出するステップと、他のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較するステップと、前記比較によって、前記他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、前記移動量に基づいて、前記他のウィンドウのインタフェースオブジェクトを再表示させるステップとを備えるウィンドウ管理プログラムである。
【0010】
第2の発明は、前記インタフェースオブジェクトは、システムメニュー、タイトルバー、最小化ボタン、最大化ボタン、クローズボタン、及びスクロールバーのうちの少なくとも1つであることを特徴とする第1の発明記載のウィンドウ管理プログラムである。
【0011】
第3の発明は、表示装置にウィンドウを表示させるアプリケーションプログラムを管理するアプリケーション管理プログラムであって、移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出するステップと、前記アプリケーションプログラム用のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較するステップと、前記比較によって、前記アプリケーションプログラム用のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、前記移動量に基づいて、前記アプリケーションプログラムに、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトを再表示させるステップとを備えるアプリケーション管理プログラムである。
【0012】
第4の発明は、表示装置に複数のウィンドウを表示させるウィンドウ管理プログラムにウィンドウの再表示を指示するアプリケーションプログラムであって、移動したウィンドウがあることを検知すると、この移動後のウィンドウ座標及び前記アプリケーションプログラム用のウィンドウ座標を受け取るステップと、受け取った移動後のウィンドウ座標及び前記アプリケーションプログラム用のウィンドウ座標を比較するステップと、前記比較によって、前記アプリケーションプログラム用のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、前記移動量に基づいて、前記ウィンドウ管理プログラムに前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトを再表示させるステップとを備えるアプリケーションプログラムである。
【0013】
第5の発明は、表示装置に複数のウィンドウを表示させるウィンドウ表示装置であって、移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出する手段と、他のウィンドウの座標を記憶する手段と、前記他のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較する手段と、前記比較によって、前記他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算する手段と、前記移動量に基づいて、前記他のウィンドウのインタフェースオブジェクトを再表示させる手段とを備えるウィンドウ表示装置である。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
図1は、本実施形態が適用される表示装置の概略図である。表示装置100上の画面110には、本実施形態に係るウィンドウシステムによって管理された複数のウィンドウ120が表示されている。それぞれのウィンドウはユーザの操作によって画面上の移動が可能であり、それによってウィンドウ同士が重なり合うことがある。ウィンドウ上にはシステムメニュー130、タイトルバー140、最小化ボタン150、最大化ボタン160、クローズボタン170、スクロールバー180、クライアント領域190等が存在する。以下、これらをインタフェースオブジェクトと呼称する。
【0015】
通常のウィンドウシステムではウィンドウが移動し、前面ウィンドウと背面ウィンドウの一部が重なり合い、背面ウィンドウの一部が隠された場合は、隠された部分に表示されていたインタフェースオブジェクトは操作できなくなり、操作が必要になった場合は、背面ウィンドウを前面に移動するか、前面ウィンドウまたは背面ウィンドウを移動してウィンドウ同士を重ならないように操作する必要がある。
【0016】
しかし、本実施形態は後述する背面ウィンドウの再描画処理を行うので、背面ウィンドウ120aに表示されているインタフェースオブジェクト(図1では最小化ボタン150a、最大化ボタン160a、クローズボタン170a、スクロールバー180a)を、前面ウィンドウ120bとの重なり具合によって生じた隠された領域外に移動するため、ユーザは背面ウィンドウ120a自体の位置を移動することなく、操作を継続できる。
【0017】
なお、インタフェースオブジェクトのうち、データが表示される背面ウィンドウ120a内のクライアント領域190aでは、データ表示の方法を変更することは行わないように設定することが好ましい。これはクライアント領域がアプリケーションプログラム固有の機能を実現する場、例えばデータ表示領域等であり、クライアント領域内の表示を変化させてしまう、すなわち、クライアント領域を縮小等させると、ユーザの意図する表示と異なってしまう可能性があるためである。例えば、全文書を表示させるために表示を変化させてしまうと、クライアント領域が小さく縮小された場合に文書の改行位置等が変化してしまうが、これはもともとウィンドウの重なりに起因するものであり、ユーザが意図するものではないためである。また、図示していないがメニューバーやツールバーを再表示させるか否かはユーザー側で設定しても良いし、スクロールバー180もユーザー側で再表示させるか否かを設定してよい。これらメニューバー、ツールバー及びスクロールバー180はウィンドウシステムが提供している機能であり、アプリケーションプログラム毎に使用するか否かを設定できるからである。
【0018】
(背面ウィンドウのインタフェースオブジェクトの表示例)
図2は、本実施形態に係る背面ウィンドウの表示例を示す図であり、ウィンドウ同士が重なった場合において、背面ウィンドウのインタフェースオブジェクトの移動例を説明する。なお、説明の都合上、前面ウィンドウは描かいておらず、また、重なった部分は網掛けで描いているが、実際の画面上には表示されない点に留意されたい。
【0019】
(1)はウィンドウ同士の重なりのない通常時の様子である。
(2)は背面ウィンドウの右下部分に前面ウィンドウが重なった場合にインタフェースオブジェクトが移動した例である。重なり位置がウィンドウの右下であるため、スクロールバーのみを重なり分だけ移動し、スクロールバーのサイズが縮小されている。
【0020】
(3)は背面ウィンドウの右上部分に前面ウィンドウが重なった場合である。この場合、タイトルバー上の最小化ボタン、最大化ボタン、クローズボタン及びスクロールバーの位置を移動する。タイトルバー上のインタフェースオブジェクトは重なり分だけ左方向に移動し、スクロールバーも重なり分だけ移動し、サイズが縮小される。また、クライアント領域自体は上述したように大きさを変化させないため、重なり部分の文章はユーザからは画面上、見えなくなる。
【0021】
(4)は背面ウィンドウの上部に前面ウィンドウが重なった場合である。この場合、タイトルバー自体とスクロールバーが移動する必要がある。ウィンドウ内のクライアント領域にかぶさる形でタイトルバーが移動するため、クライアント領域自体は縮小されないが、文章の一部は隠れているように見える。
【0022】
(5)は背面ウィンドウの右端に前面ウィンドウが重なった場合である。この場合、タイトルバー上のボタンとスクロールバーが重なり分だけ左方向に移動する。この場合もクライアント領域の文章の一部は隠れているように見える。
【0023】
(6)はウィンドウの左端に他のウィンドウが重なった場合である。この場合、タイトルバー自体が重なり分だけ右方向に移動する。
(7)はウィンドウの下端に他のウィンドウが重なった場合である。この場合、スクロールバーが重なり分だけ縮小される。
どの場合も、移動するものはインタフェースオブジェクトのみであり、ウィンドウ上のクライアント領域内の表示自体には影響を与えない。またスクロールバーは移動によってバーのサイズは変化するが、スクロール操作は移動前と同様に可能である。
【0024】
なお、図には記載されていないが、ウィンドウ下端にステータスバーなどのインタフェースオブジェクトが表示される場合も本実施形態によれば表示位置を移動させることが可能である。
【0025】
それぞれのインタフェースオブジェクトの位置を移動した場合は、描画位置に対応してウィンドウシステム等において座標管理やイベント処理の対応を行う。この対応の方法は、ウィンドウシステム、あるいは、ウィンドウシステムを制御するOS(Operating System)等の実装方法によって異なる。つまり、OSやウィンドウシステムの処理によって、座標管理が行われ、インタフェースオブジェクトが移動後も正常にインタフェースオブジェクトとして機能することになる。
【0026】
(背面ウィンドウの再描画処理)
図3、図4は、本実施形態に係る背面ウィンドウの再描画処理のフローチャートである。本実施形態ではウィンドウシステムを改良して実装した場合と、アプリケーションレベルで実装した場合の二つの例をあげる。ここでは説明を簡略化するために二つのウィンドウのみが存在する場合について述べるが、より多くのウィンドウが画面上に配置されている場合でも、ウィンドウの重なった順番を考慮して、インタフェースオブジェクトの移動位置を計算することで、対応可能である。
【0027】
図3はウィンドウシステムを改良して実装する場合の実施例である。マウス等のポインティングデバイスを使用するユーザによって、前面ウィンドウの表示位置が変更された場合は、まず移動後の前面ウィンドウの表示領域の座標を取得する(S300)。取得した領域座標を、ウィンドウシステムまたはOS内で管理されているウィンドウ管理情報内の背面ウィンドウ上に存在するインタフェースオブジェクトの領域座標と比較して(S310,S320,S330)、前面ウィンドウによって背面ウィンドウの各インタフェースオブジェクトが重なっていた場合は、背面ウィンドウのインタフェースオブジェクト毎に移動処理を行う(S340,S350,S360)。ここではタイトルバー/システムメニューの場合と、ボタンの場合と、スクロールバーの場合に分けて重なりをチェックし、移動処理を行っている。
【0028】
インタフェースオブジェクトの移動処理では、前面ウィンドウと背面ウィンドウの位置関係、インタフェースオブジェクトの配置によって、インタフェースオブジェクトの移動先座標を算出する。この算出方法については後述する。移動先が確定したならば、ウィンドウシステム内で管理されているウィンドウ管理情報内のインタフェースオブジェクトの領域座標を修正する(S370)。修正後は画面更新処理を行う(S380,S390)。
【0029】
図4はアプリケーションレベルで実装する場合の実施例である。アプリケーションレベルで実装する場合は、ウィンドウシステムまたはOSレベルでインタフェースオブジェクトの移動及びウィンドウの重なり具合の通知がサポートされている必要がある。ここではインタフェースオブジェクトの移動がOSレベルのAPI(Application Programming Interface) によって、重なり具合の通知をOSからのイベントによって通知されることを前提とする(S400〜S430)。ここで、APIとは、OSがアプリケーションに対して公開しているプログラムインタフェースであり、アプリケーションは、基本的にすべての処理をこのAPIを経由して行なう。
【0030】
なお、システムメニューやボタン、スクロールバーなどのインタフェースオブジェクトはアプリケーションプログラムの指示によって作成されるため、どのインタフェースオブジェクトが表示されているかはアプリケーションで知ることができる。アプリケーションの指示によらずに作成される場合は、OSのAPIを用いて、どのインタフェースオブジェクトが表示されているかを調査する。ここではアプリケーションの指示によって作成される場合について述べる。
【0031】
ユーザの操作によって前面ウィンドウが移動し、背面ウィンドウに対して、ウィンドウが重なった旨のイベントがOSより通知された場合、背面ウィンドウのアプリケーション内で、ウィンドウの重なった領域座標をOSのAPIを使用して取得し、取得された重なり領域座標から後述する算出方法によって、インタフェースオブジェクトの移動先座標を算出する。移動先が確定したならば、前記重なり領域内に存在するインタフェースオブジェクト全てに対して、OSのAPIを用いて移動を指示する(S440〜S460)。最後に背面ウィンドウ自体の再描画をOSのAPIを用いて行う(S470〜S490)。
【0032】
(インタフェースオブジェクトの移動先座標の算出方法)
図5は、インタフェースオブジェクトの移動先座標を算出する一例を説明するための図である。
図5のような2次元座標系(X,Y)を用いると、領域を表す座標は(左上端のX座標,左上端のY座標,右下端のX座標,右下端のY座標)と表現できる。したがって、前面ウィンドウの領域は(FX1,FY1,FX2,FY2)と、背面ウィンドウの領域は(BX1,BY1,BX2,BY2)と、背面ウィンドウのスクロールバー領域は(SX1,SY1,SX2,SY2)と、背面ウィンドウのクローズボタン領域は(CX1,CY1,CX2,CY2)と、オブジェクト間の間隔、例えば、クローズボタンとウィンドウ枠との間隔はDと、タイトルバーの幅はTと、ウィンドウ枠の幅はWと表せる。すると、ウィンドウの重なり領域は(FX1,BY1,BX2,FY2)と表せるので、この重なり領域にクローズボタン及びスクロールバーの一部があることと判断できる。
【0033】
次に、移動量を求める。先ほど求めたウィンドウの重なり領域を(LX1,LY1,LX2,LY2)とすると、移動量(dX,dY)は(LX2−LX1,LY2−LY1)と表せる。
【0034】
よって、クローズボタンの移動先は(CX1−dX−D,CY1,CX2−dX−D,CY2)と、スクロールボタンの移動先は(SX1,SY1−(dX−T−W),SX2,SY2)と求めることができる。
【0035】
以上説明したウィンドウの再描画処理は、PC等に実装されたCPU(CentralProcessing Unit)によってRAM(Random Access Memory)等に記憶されたウィンドウ表示プログラムに基づいて実行される。したがって、前述したウィンドウ管理情報はRAM等に記憶されて、ウィンドウ表示プログラムを実行するCPUによって管理されている。
【0036】
上述した実施の形態は、本発明の好適な具体例であるから、技術的に好ましい種々の限定が付されているが、本発明の趣旨を逸脱しない範囲であれば、適宜組合わせ及び変更することができることはいうまでもない。例えば、ユーザが前面ウィンドウを移動させるポインティングデバイスとしては、マウスの他に、トラックボール、ペン、タブレット等を用いてもよい。
【0037】
【発明の効果】
上述したように本発明によれば、複数のウィンドウが重なり合った場合に、背面ウィンドウの操作ボタンが前面ウィンドウに隠れないように自動的に表示させるウィンドウシステムを提供することができる。
【図面の簡単な説明】
【図1】本実施形態が適用される表示装置の概略図。
【図2】本実施形態に係る背面ウィンドウの表示例を示す図。
【図3】本実施形態に係る背面ウィンドウの再描画処理のウィンドウシステムを改良して実装する場合のフローチャート。
【図4】本実施形態に係る背面ウィンドウの再描画処理のフローチャート。
【図5】インタフェースオブジェクトの移動先座標を算出する一例の説明図。
【符号の説明】
100 表示装置
110 画面
120a,120b 背面ウィンドウ,前面ウィンドウ
130 システムメニュー
140 タイトルバー
150 最小化ボタン
160 最大化ボタン
170 クローズボタン
180 スクロールバー
190 クライアント領域
【発明の属する技術分野】
本発明は、パーソナルコンピュータ(PC)等に用いられるウィンドウシステムに関し、特に、マルチウィンドウの表示システムに関する。
【0002】
【従来の技術】
今日のPC等の情報処理装置では、フォルダや、実行中のアプリケーションプログラム等の表示ウィンドウ(以下、単にウィンドウという)を1つの表示装置の画面全体(以下、単に画面という)上に重ね合わせて複数個開くことができるマルチウィンドウシステムが採用されている。重ね合わせて表示されるため、最前に位置するウィンドウ(以下、単に前面ウィンドウという)はそのウィンドウの内容を全て見ることができるが、この前面ウィンドウの背面に位置するウィンドウ(背面ウィンドウ)は、そのウィンドウの内容すべてを見ることはできない。
【0003】
したがって、背面ウィンドウの内容すべてを表示させるためには、背面ウィンドウを前方に移動させるか、これらのウィンドウのどちらかを画面上の任意の位置に移動させてウィンドウ同士が重ならないようにする必要がある。画面上の任意の位置に移動させる場合には、ウィンドウの一部が画面の上下左右の端部よりはみ出た形で表示される可能性がある。
【0004】
このようなはみ出た形で表示される場合には、例えば、ウィンドウは一般に長方形状であり、その上端部にそのウィンドウの名称を示したタイトルバーが表示され、このタイトルバーの中には、ユーザから見て右端部分に、操作ボタンとして「ウィンドウを最大化するボタン」、「ウィンドウを最小化するボタン」、「ウィンドウを閉じるボタン」が表示されているので、ウィンドウを右方向に移動させると、一部が右端からはみ出て、操作ボタンが見えない状態で画面上に表示されることがある。従って、そのウィンドウに対する最大化等の操作ボタンの選択はできなくなってしまう。
【0005】
このため、従来の情報処理装置では、画面上からはみ出た操作ボタンをタイトルバー内の画面上からはみ出ていない部分再表示させている(例えば特許文献1参照)。
【0006】
【特許文献1】
特開平11−237943号公報(第4頁、図2)
【0007】
【発明が解決しようとする課題】
しかし、後方ウィンドウの操作ボタンを表示させるために、重なり合ったウィンドウを左右上下に移動させることをユーザに強制させることはユーザフレンドリーという観点から好ましくない。同様のことが、背面ウィンドウを前方に移動させる場合にも当てはまる。
【0008】
本発明の目的は、複数のウィンドウが重なり合った場合に、背面ウィンドウの操作ボタンが前面ウィンドウに隠れないように自動的に表示させるウィンドウシステムを提供することである。
【0009】
【課題を解決するための手段】
第1の発明は、表示装置に複数のウィンドウを表示させるウィンドウ管理プログラムであって、移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出するステップと、他のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較するステップと、前記比較によって、前記他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、前記移動量に基づいて、前記他のウィンドウのインタフェースオブジェクトを再表示させるステップとを備えるウィンドウ管理プログラムである。
【0010】
第2の発明は、前記インタフェースオブジェクトは、システムメニュー、タイトルバー、最小化ボタン、最大化ボタン、クローズボタン、及びスクロールバーのうちの少なくとも1つであることを特徴とする第1の発明記載のウィンドウ管理プログラムである。
【0011】
第3の発明は、表示装置にウィンドウを表示させるアプリケーションプログラムを管理するアプリケーション管理プログラムであって、移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出するステップと、前記アプリケーションプログラム用のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較するステップと、前記比較によって、前記アプリケーションプログラム用のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、前記移動量に基づいて、前記アプリケーションプログラムに、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトを再表示させるステップとを備えるアプリケーション管理プログラムである。
【0012】
第4の発明は、表示装置に複数のウィンドウを表示させるウィンドウ管理プログラムにウィンドウの再表示を指示するアプリケーションプログラムであって、移動したウィンドウがあることを検知すると、この移動後のウィンドウ座標及び前記アプリケーションプログラム用のウィンドウ座標を受け取るステップと、受け取った移動後のウィンドウ座標及び前記アプリケーションプログラム用のウィンドウ座標を比較するステップと、前記比較によって、前記アプリケーションプログラム用のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、前記移動量に基づいて、前記ウィンドウ管理プログラムに前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトを再表示させるステップとを備えるアプリケーションプログラムである。
【0013】
第5の発明は、表示装置に複数のウィンドウを表示させるウィンドウ表示装置であって、移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出する手段と、他のウィンドウの座標を記憶する手段と、前記他のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較する手段と、前記比較によって、前記他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算する手段と、前記移動量に基づいて、前記他のウィンドウのインタフェースオブジェクトを再表示させる手段とを備えるウィンドウ表示装置である。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
図1は、本実施形態が適用される表示装置の概略図である。表示装置100上の画面110には、本実施形態に係るウィンドウシステムによって管理された複数のウィンドウ120が表示されている。それぞれのウィンドウはユーザの操作によって画面上の移動が可能であり、それによってウィンドウ同士が重なり合うことがある。ウィンドウ上にはシステムメニュー130、タイトルバー140、最小化ボタン150、最大化ボタン160、クローズボタン170、スクロールバー180、クライアント領域190等が存在する。以下、これらをインタフェースオブジェクトと呼称する。
【0015】
通常のウィンドウシステムではウィンドウが移動し、前面ウィンドウと背面ウィンドウの一部が重なり合い、背面ウィンドウの一部が隠された場合は、隠された部分に表示されていたインタフェースオブジェクトは操作できなくなり、操作が必要になった場合は、背面ウィンドウを前面に移動するか、前面ウィンドウまたは背面ウィンドウを移動してウィンドウ同士を重ならないように操作する必要がある。
【0016】
しかし、本実施形態は後述する背面ウィンドウの再描画処理を行うので、背面ウィンドウ120aに表示されているインタフェースオブジェクト(図1では最小化ボタン150a、最大化ボタン160a、クローズボタン170a、スクロールバー180a)を、前面ウィンドウ120bとの重なり具合によって生じた隠された領域外に移動するため、ユーザは背面ウィンドウ120a自体の位置を移動することなく、操作を継続できる。
【0017】
なお、インタフェースオブジェクトのうち、データが表示される背面ウィンドウ120a内のクライアント領域190aでは、データ表示の方法を変更することは行わないように設定することが好ましい。これはクライアント領域がアプリケーションプログラム固有の機能を実現する場、例えばデータ表示領域等であり、クライアント領域内の表示を変化させてしまう、すなわち、クライアント領域を縮小等させると、ユーザの意図する表示と異なってしまう可能性があるためである。例えば、全文書を表示させるために表示を変化させてしまうと、クライアント領域が小さく縮小された場合に文書の改行位置等が変化してしまうが、これはもともとウィンドウの重なりに起因するものであり、ユーザが意図するものではないためである。また、図示していないがメニューバーやツールバーを再表示させるか否かはユーザー側で設定しても良いし、スクロールバー180もユーザー側で再表示させるか否かを設定してよい。これらメニューバー、ツールバー及びスクロールバー180はウィンドウシステムが提供している機能であり、アプリケーションプログラム毎に使用するか否かを設定できるからである。
【0018】
(背面ウィンドウのインタフェースオブジェクトの表示例)
図2は、本実施形態に係る背面ウィンドウの表示例を示す図であり、ウィンドウ同士が重なった場合において、背面ウィンドウのインタフェースオブジェクトの移動例を説明する。なお、説明の都合上、前面ウィンドウは描かいておらず、また、重なった部分は網掛けで描いているが、実際の画面上には表示されない点に留意されたい。
【0019】
(1)はウィンドウ同士の重なりのない通常時の様子である。
(2)は背面ウィンドウの右下部分に前面ウィンドウが重なった場合にインタフェースオブジェクトが移動した例である。重なり位置がウィンドウの右下であるため、スクロールバーのみを重なり分だけ移動し、スクロールバーのサイズが縮小されている。
【0020】
(3)は背面ウィンドウの右上部分に前面ウィンドウが重なった場合である。この場合、タイトルバー上の最小化ボタン、最大化ボタン、クローズボタン及びスクロールバーの位置を移動する。タイトルバー上のインタフェースオブジェクトは重なり分だけ左方向に移動し、スクロールバーも重なり分だけ移動し、サイズが縮小される。また、クライアント領域自体は上述したように大きさを変化させないため、重なり部分の文章はユーザからは画面上、見えなくなる。
【0021】
(4)は背面ウィンドウの上部に前面ウィンドウが重なった場合である。この場合、タイトルバー自体とスクロールバーが移動する必要がある。ウィンドウ内のクライアント領域にかぶさる形でタイトルバーが移動するため、クライアント領域自体は縮小されないが、文章の一部は隠れているように見える。
【0022】
(5)は背面ウィンドウの右端に前面ウィンドウが重なった場合である。この場合、タイトルバー上のボタンとスクロールバーが重なり分だけ左方向に移動する。この場合もクライアント領域の文章の一部は隠れているように見える。
【0023】
(6)はウィンドウの左端に他のウィンドウが重なった場合である。この場合、タイトルバー自体が重なり分だけ右方向に移動する。
(7)はウィンドウの下端に他のウィンドウが重なった場合である。この場合、スクロールバーが重なり分だけ縮小される。
どの場合も、移動するものはインタフェースオブジェクトのみであり、ウィンドウ上のクライアント領域内の表示自体には影響を与えない。またスクロールバーは移動によってバーのサイズは変化するが、スクロール操作は移動前と同様に可能である。
【0024】
なお、図には記載されていないが、ウィンドウ下端にステータスバーなどのインタフェースオブジェクトが表示される場合も本実施形態によれば表示位置を移動させることが可能である。
【0025】
それぞれのインタフェースオブジェクトの位置を移動した場合は、描画位置に対応してウィンドウシステム等において座標管理やイベント処理の対応を行う。この対応の方法は、ウィンドウシステム、あるいは、ウィンドウシステムを制御するOS(Operating System)等の実装方法によって異なる。つまり、OSやウィンドウシステムの処理によって、座標管理が行われ、インタフェースオブジェクトが移動後も正常にインタフェースオブジェクトとして機能することになる。
【0026】
(背面ウィンドウの再描画処理)
図3、図4は、本実施形態に係る背面ウィンドウの再描画処理のフローチャートである。本実施形態ではウィンドウシステムを改良して実装した場合と、アプリケーションレベルで実装した場合の二つの例をあげる。ここでは説明を簡略化するために二つのウィンドウのみが存在する場合について述べるが、より多くのウィンドウが画面上に配置されている場合でも、ウィンドウの重なった順番を考慮して、インタフェースオブジェクトの移動位置を計算することで、対応可能である。
【0027】
図3はウィンドウシステムを改良して実装する場合の実施例である。マウス等のポインティングデバイスを使用するユーザによって、前面ウィンドウの表示位置が変更された場合は、まず移動後の前面ウィンドウの表示領域の座標を取得する(S300)。取得した領域座標を、ウィンドウシステムまたはOS内で管理されているウィンドウ管理情報内の背面ウィンドウ上に存在するインタフェースオブジェクトの領域座標と比較して(S310,S320,S330)、前面ウィンドウによって背面ウィンドウの各インタフェースオブジェクトが重なっていた場合は、背面ウィンドウのインタフェースオブジェクト毎に移動処理を行う(S340,S350,S360)。ここではタイトルバー/システムメニューの場合と、ボタンの場合と、スクロールバーの場合に分けて重なりをチェックし、移動処理を行っている。
【0028】
インタフェースオブジェクトの移動処理では、前面ウィンドウと背面ウィンドウの位置関係、インタフェースオブジェクトの配置によって、インタフェースオブジェクトの移動先座標を算出する。この算出方法については後述する。移動先が確定したならば、ウィンドウシステム内で管理されているウィンドウ管理情報内のインタフェースオブジェクトの領域座標を修正する(S370)。修正後は画面更新処理を行う(S380,S390)。
【0029】
図4はアプリケーションレベルで実装する場合の実施例である。アプリケーションレベルで実装する場合は、ウィンドウシステムまたはOSレベルでインタフェースオブジェクトの移動及びウィンドウの重なり具合の通知がサポートされている必要がある。ここではインタフェースオブジェクトの移動がOSレベルのAPI(Application Programming Interface) によって、重なり具合の通知をOSからのイベントによって通知されることを前提とする(S400〜S430)。ここで、APIとは、OSがアプリケーションに対して公開しているプログラムインタフェースであり、アプリケーションは、基本的にすべての処理をこのAPIを経由して行なう。
【0030】
なお、システムメニューやボタン、スクロールバーなどのインタフェースオブジェクトはアプリケーションプログラムの指示によって作成されるため、どのインタフェースオブジェクトが表示されているかはアプリケーションで知ることができる。アプリケーションの指示によらずに作成される場合は、OSのAPIを用いて、どのインタフェースオブジェクトが表示されているかを調査する。ここではアプリケーションの指示によって作成される場合について述べる。
【0031】
ユーザの操作によって前面ウィンドウが移動し、背面ウィンドウに対して、ウィンドウが重なった旨のイベントがOSより通知された場合、背面ウィンドウのアプリケーション内で、ウィンドウの重なった領域座標をOSのAPIを使用して取得し、取得された重なり領域座標から後述する算出方法によって、インタフェースオブジェクトの移動先座標を算出する。移動先が確定したならば、前記重なり領域内に存在するインタフェースオブジェクト全てに対して、OSのAPIを用いて移動を指示する(S440〜S460)。最後に背面ウィンドウ自体の再描画をOSのAPIを用いて行う(S470〜S490)。
【0032】
(インタフェースオブジェクトの移動先座標の算出方法)
図5は、インタフェースオブジェクトの移動先座標を算出する一例を説明するための図である。
図5のような2次元座標系(X,Y)を用いると、領域を表す座標は(左上端のX座標,左上端のY座標,右下端のX座標,右下端のY座標)と表現できる。したがって、前面ウィンドウの領域は(FX1,FY1,FX2,FY2)と、背面ウィンドウの領域は(BX1,BY1,BX2,BY2)と、背面ウィンドウのスクロールバー領域は(SX1,SY1,SX2,SY2)と、背面ウィンドウのクローズボタン領域は(CX1,CY1,CX2,CY2)と、オブジェクト間の間隔、例えば、クローズボタンとウィンドウ枠との間隔はDと、タイトルバーの幅はTと、ウィンドウ枠の幅はWと表せる。すると、ウィンドウの重なり領域は(FX1,BY1,BX2,FY2)と表せるので、この重なり領域にクローズボタン及びスクロールバーの一部があることと判断できる。
【0033】
次に、移動量を求める。先ほど求めたウィンドウの重なり領域を(LX1,LY1,LX2,LY2)とすると、移動量(dX,dY)は(LX2−LX1,LY2−LY1)と表せる。
【0034】
よって、クローズボタンの移動先は(CX1−dX−D,CY1,CX2−dX−D,CY2)と、スクロールボタンの移動先は(SX1,SY1−(dX−T−W),SX2,SY2)と求めることができる。
【0035】
以上説明したウィンドウの再描画処理は、PC等に実装されたCPU(CentralProcessing Unit)によってRAM(Random Access Memory)等に記憶されたウィンドウ表示プログラムに基づいて実行される。したがって、前述したウィンドウ管理情報はRAM等に記憶されて、ウィンドウ表示プログラムを実行するCPUによって管理されている。
【0036】
上述した実施の形態は、本発明の好適な具体例であるから、技術的に好ましい種々の限定が付されているが、本発明の趣旨を逸脱しない範囲であれば、適宜組合わせ及び変更することができることはいうまでもない。例えば、ユーザが前面ウィンドウを移動させるポインティングデバイスとしては、マウスの他に、トラックボール、ペン、タブレット等を用いてもよい。
【0037】
【発明の効果】
上述したように本発明によれば、複数のウィンドウが重なり合った場合に、背面ウィンドウの操作ボタンが前面ウィンドウに隠れないように自動的に表示させるウィンドウシステムを提供することができる。
【図面の簡単な説明】
【図1】本実施形態が適用される表示装置の概略図。
【図2】本実施形態に係る背面ウィンドウの表示例を示す図。
【図3】本実施形態に係る背面ウィンドウの再描画処理のウィンドウシステムを改良して実装する場合のフローチャート。
【図4】本実施形態に係る背面ウィンドウの再描画処理のフローチャート。
【図5】インタフェースオブジェクトの移動先座標を算出する一例の説明図。
【符号の説明】
100 表示装置
110 画面
120a,120b 背面ウィンドウ,前面ウィンドウ
130 システムメニュー
140 タイトルバー
150 最小化ボタン
160 最大化ボタン
170 クローズボタン
180 スクロールバー
190 クライアント領域
Claims (5)
- 表示装置に複数のウィンドウを表示させるウィンドウ管理プログラムであって、
移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出するステップと、
他のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較するステップと、
前記比較によって、前記他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、
前記移動量に基づいて、前記他のウィンドウのインタフェースオブジェクトを再表示させるステップと
を備えるウィンドウ管理プログラム。 - 前記インタフェースオブジェクトは、システムメニュー、タイトルバー、最小化ボタン、最大化ボタン、クローズボタン、及びスクロールバーのうちの少なくとも1つであることを特徴とする請求項1記載のウィンドウ管理プログラム。
- 表示装置にウィンドウを表示させるアプリケーションプログラムを管理するアプリケーション管理プログラムであって、
移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出するステップと、
前記アプリケーションプログラム用のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較するステップと、
前記比較によって、前記アプリケーションプログラム用のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、
前記移動量に基づいて、前記アプリケーションプログラムに、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトを再表示させるステップと
を備えるアプリケーション管理プログラム。 - 表示装置に複数のウィンドウを表示させるウィンドウ管理プログラムにウィンドウの再表示を指示するアプリケーションプログラムであって、
移動したウィンドウがあることを検知すると、この移動後のウィンドウ座標及び前記アプリケーションプログラム用のウィンドウ座標を受け取るステップと、
受け取った移動後のウィンドウ座標及び前記アプリケーションプログラム用のウィンドウ座標を比較するステップと、
前記比較によって、前記アプリケーションプログラム用のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算するステップと、
前記移動量に基づいて、前記ウィンドウ管理プログラムに前記アプリケーションプログラム用のウィンドウのインタフェースオブジェクトを再表示させるステップと
を備えるアプリケーションプログラム。 - 表示装置に複数のウィンドウを表示させるウィンドウ表示装置であって、
移動したウィンドウがあることを検知すると、移動後のウィンドウ座標を算出する手段と、
他のウィンドウの座標を記憶する手段と、
前記他のウィンドウの座標を読み出し、前記算出した移動後のウィンドウ座標と比較する手段と、
前記比較によって、前記他のウィンドウが前記移動後のウィンドウの背面に重なっている場合、前記他のウィンドウのインタフェースオブジェクトが表示されるように移動量を計算する手段と、
前記移動量に基づいて、前記他のウィンドウのインタフェースオブジェクトを再表示させる手段と
を備えるウィンドウ表示装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003023321A JP2004234426A (ja) | 2003-01-31 | 2003-01-31 | ウィンドウ管理プログラム、アプリケーション管理プログラム、アプリケーションプログラム、及び、ウィンドウ表示装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003023321A JP2004234426A (ja) | 2003-01-31 | 2003-01-31 | ウィンドウ管理プログラム、アプリケーション管理プログラム、アプリケーションプログラム、及び、ウィンドウ表示装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004234426A true JP2004234426A (ja) | 2004-08-19 |
Family
ID=32952151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003023321A Pending JP2004234426A (ja) | 2003-01-31 | 2003-01-31 | ウィンドウ管理プログラム、アプリケーション管理プログラム、アプリケーションプログラム、及び、ウィンドウ表示装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004234426A (ja) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100435156C (zh) * | 2005-12-23 | 2008-11-19 | 英业达股份有限公司 | 提示系统及方法 |
US7559031B2 (en) | 2005-01-24 | 2009-07-07 | Kabushiki Kaisha Toshiba | Video display apparatus, video composition delivery apparatus, and system |
WO2009086631A1 (en) * | 2008-01-07 | 2009-07-16 | Smart Technologies Ulc | Method of managing applications in a multi-monitor computer system and multi-monitor computer system employing the method |
CN100589076C (zh) * | 2007-01-17 | 2010-02-10 | 华硕电脑股份有限公司 | 可在窗口标题列呈现程序图形界面的方法及电脑系统 |
WO2010061456A1 (ja) * | 2008-11-27 | 2010-06-03 | 株式会社Pfu | 情報処理装置、画像処理方法および画像処理用プログラム |
US7974494B2 (en) | 2005-09-21 | 2011-07-05 | Kabushiki Kaisha Toshiba | Image control from composed composite image using HID signal conversion to source image coordinates |
JP2011191703A (ja) * | 2010-03-16 | 2011-09-29 | Fujitsu Ltd | 表示装置、表示制御方法及び表示制御プログラム |
CN102685413A (zh) * | 2012-05-11 | 2012-09-19 | 青岛海信电器股份有限公司 | 字幕和菜单同时显示的方法及系统 |
JP2019021042A (ja) * | 2017-07-18 | 2019-02-07 | 株式会社富士通アドバンストエンジニアリング | 表示制御プログラム、表示制御方法および表示制御装置 |
CN113760420A (zh) * | 2020-06-04 | 2021-12-07 | 富士胶片商业创新有限公司 | 信息处理装置、信息处理方法以及计算机可读介质 |
JP7505307B2 (ja) | 2020-07-16 | 2024-06-25 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置およびプログラム |
-
2003
- 2003-01-31 JP JP2003023321A patent/JP2004234426A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7559031B2 (en) | 2005-01-24 | 2009-07-07 | Kabushiki Kaisha Toshiba | Video display apparatus, video composition delivery apparatus, and system |
US7974494B2 (en) | 2005-09-21 | 2011-07-05 | Kabushiki Kaisha Toshiba | Image control from composed composite image using HID signal conversion to source image coordinates |
CN100435156C (zh) * | 2005-12-23 | 2008-11-19 | 英业达股份有限公司 | 提示系统及方法 |
CN100589076C (zh) * | 2007-01-17 | 2010-02-10 | 华硕电脑股份有限公司 | 可在窗口标题列呈现程序图形界面的方法及电脑系统 |
WO2009086631A1 (en) * | 2008-01-07 | 2009-07-16 | Smart Technologies Ulc | Method of managing applications in a multi-monitor computer system and multi-monitor computer system employing the method |
WO2010061456A1 (ja) * | 2008-11-27 | 2010-06-03 | 株式会社Pfu | 情報処理装置、画像処理方法および画像処理用プログラム |
JP2011191703A (ja) * | 2010-03-16 | 2011-09-29 | Fujitsu Ltd | 表示装置、表示制御方法及び表示制御プログラム |
CN102685413A (zh) * | 2012-05-11 | 2012-09-19 | 青岛海信电器股份有限公司 | 字幕和菜单同时显示的方法及系统 |
JP2019021042A (ja) * | 2017-07-18 | 2019-02-07 | 株式会社富士通アドバンストエンジニアリング | 表示制御プログラム、表示制御方法および表示制御装置 |
CN113760420A (zh) * | 2020-06-04 | 2021-12-07 | 富士胶片商业创新有限公司 | 信息处理装置、信息处理方法以及计算机可读介质 |
JP7505307B2 (ja) | 2020-07-16 | 2024-06-25 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6564493B2 (ja) | ユーザインターフェースオブジェクトを操作するユーザインターフェース | |
EP1949211B1 (en) | Maximizing window display area using window flowing | |
US7844917B2 (en) | Optimal display of multiple windows within a computer display | |
US7577918B2 (en) | Visual expression of a state of an application window | |
JP5625615B2 (ja) | 電子情報ボード装置 | |
JP5492257B2 (ja) | 電子機器、制御方法及びプログラム | |
US20120102437A1 (en) | Notification Group Touch Gesture Dismissal Techniques | |
JP4865012B2 (ja) | 情報処理装置および表示制御方法 | |
US20070083821A1 (en) | Creating viewports from selected regions of windows | |
US20140176421A1 (en) | Displaying method for flexible display device and flexible display device using the same | |
US20110087992A1 (en) | Thumbnail image substitution | |
KR102199356B1 (ko) | 멀티-터치 디스플레이 패널 및 이를 제어하는 방법 | |
CN108064371A (zh) | 一种柔性显示屏的控制方法及装置 | |
CN102446066A (zh) | 信息处理设备、信息处理方法和程序 | |
JP6432409B2 (ja) | タッチパネルの制御装置およびタッチパネルの制御プログラム | |
US20140089867A1 (en) | Mobile terminal having touch screen and method for displaying contents therein | |
CN107391012A (zh) | 一种信息提示方法及移动终端 | |
JP2004234426A (ja) | ウィンドウ管理プログラム、アプリケーション管理プログラム、アプリケーションプログラム、及び、ウィンドウ表示装置 | |
US20150058793A1 (en) | Method, apparatus and recording medium for a scrolling screen | |
JP2014035496A (ja) | 表示装置、表示装置の制御方法、及び、プログラム | |
KR102300151B1 (ko) | 폴더블 전자 장치 및 그것의 가시 영역들을 관리하는 방법 | |
WO2021042910A1 (zh) | 一种用户交互方法及电子设备 | |
TW201237730A (en) | Method of adjusting windows and electronic device using same | |
US11307704B1 (en) | Systems and methods for resolving touch and pen conflicts between multiple touch controllers coupled to a common touchscreen display | |
CN114895815A (zh) | 数据处理方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050415 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050606 |