JPH06103015A - デスクトップ上の隠蔽ウィンドウへのナビゲーションを行なう方法及び装置 - Google Patents

デスクトップ上の隠蔽ウィンドウへのナビゲーションを行なう方法及び装置

Info

Publication number
JPH06103015A
JPH06103015A JP5157016A JP15701693A JPH06103015A JP H06103015 A JPH06103015 A JP H06103015A JP 5157016 A JP5157016 A JP 5157016A JP 15701693 A JP15701693 A JP 15701693A JP H06103015 A JPH06103015 A JP H06103015A
Authority
JP
Japan
Prior art keywords
window
hidden
value
objs
windows
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
Application number
JP5157016A
Other languages
English (en)
Inventor
William J Johnson
ウィリアム・ジェイ・ジョンソン
Larry M Lachman
ラリー・エム・ラッチマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06103015A publication Critical patent/JPH06103015A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 【目的】 マルチタスクのウィンドウ環境において、隠
蔽ウィンドウへの自動ナビゲーションを行なう。 【構成】 マルチタスクのウィンドウ環境では、ユーザ
が複数のアプリケーション・プログラムを実行すること
ができる。それらアプリケーションが夫々にデスクトッ
プ31上にウィンドウ32、33を表示すると、デスク
トップ上がこみ合い、幾つかのウィンドウは他のウィン
ドウによって隠蔽される。隠蔽されているウィンドウの
うち、隠蔽の程度が最大のウィンドウ33から優先的に
フォアグラウンドへ移動させる自動ナビゲーションの機
能を提供する。フォアグラウンドへ移動させるウィンド
ウの優先順位を決定するために、隠蔽ウィンドウとその
隠蔽の程度とを示すポインタから成るキューを維持する
ようにし、このキューに基づいて移動を行なう。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、広くはデータ処理シス
テムに関するものであり、より詳しくは、マルチタスク
のウィンドウ環境において、隠蔽されたウィンドウへの
自動ナビゲーションを行なう方法及びそのための装置に
関するものである。
【0002】
【従来の技術及び発明が解決しようとする課題】在来の
データ処理システムのうちには、マルチタスクのウィン
ドウ環境でディスプレイされている複数のウィンドウど
うしの間のナビゲーションを行なう機能を提供している
ものがある。ディスプレイされている複数のウィンドウ
のうちでユーザが現在選択しているウィンドウ、即ち、
フォアグラウンドにディスプレイされており、アクティ
ブ状態にあって入力が可能なウィンドウを、「フォーカ
スを合わせた」ウィンドウと呼んでいる。ユーザは、ウ
ィンドウどうしの間でフォーカスを移転することがで
き、そのフォーカスの移転の方式には、暗黙形フォーカ
ス・モデル(implicit focus model)と、明示形フォー
カス・モデル(explicit focus model)との2種類の方
式がある。
【0003】暗黙形フォーカス・モデルは、例えばオー
プン・ソフトウェア・ファウンデーション社の「OSF
/MOTIF」(「OSF/MOTIF」は商標)等の
ウィンドウ環境で提供されており、このモデルによれ
ば、マウスで制御されているカーソルないしポインタ
が、あるウィンドウの上へ移動されたならば、自動的に
そのウィンドウへフォーカスが移転される。従って、例
えば、あるウィンドウが、その上に重ねられた他のウィ
ンドウによって部分的に隠蔽されているときに、その部
分隠蔽ウィンドウの一部分の上へユーザがカーソルを移
動させたならば、自動的にそのウィンドウがフォーカス
を合わせた状態にポップされ、それによってそのウィン
ドウの全体が見えるようになる。
【0004】一方、明示形フォーカス・モデルは、例え
ばIBM社の「プレゼンテーション・マネージャ」
(「PRESENTATION MANAGER」は商標)等のウィンドウ環
境で提供されており、このモデルによれば、ユーザがフ
ォーカスの移転を要求する明確なコマンドを発しない限
り、フォーカスの移転は行なわれない。従って、ユーザ
がフォーカスを移転させたいときには、例えば、他のウ
ィンドウによって部分的に隠蔽されている、あるウィン
ドウの一部分の上へポインタを移動した上で、マウスの
クリック操作を行なうことによって、そのウィンドウを
ポップして、そのウィンドウにフォーカスを合せること
ができ、これによってそのウィンドウの全体が見えるよ
うになる。また、これとは別の種類の明示形フォーカス
・モデルとして、ユーザが、キーボードから、例えば
「次ウィンドウ」コマンドや「前ウィンドウ」コマンド
等の、フォーカス移転のための明確なコマンドを発する
ことができるようにしたモデルもある。「次ウィンド
ウ」コマンドというのは、現在ディスプレイされている
ウィンドウの後に最初にフォーカスの合うウィンドウ
へ、フォーカスを移転させるコマンドである。また、
「前ウィンドウ」コマンドは、現在ディスプレイされて
いるウィンドウの直前にフォーカスが合ったウィンドウ
へ、フォーカスを移転させるコマンドである。ユーザ
は、これらのコマンドを使用することによって、各々の
ウィンドウが夫々初めてフォーカスを合わせられた順序
に従ってそれらウィンドウを並べたウィンドウ・キュー
の中を移動して行くウィンドウ間のナビゲーションを、
実行することができる。
【0005】次に、マルチタスクのウィンドウ環境にお
いて、ユーザがデスクトップ上を取り散らかしている場
合の状況について説明する。これは、画面上に非常に多
くのアプリケーション・ウィンドウが存在しているた
め、それらアプリケーション・ウィンドウのうちの1つ
ないし幾つかが、その他のアプリケーション・ウィンド
ウの下に隠蔽され、「見失われて」いるという状況であ
る。この場合、ユーザが、隠蔽されているアプリケーシ
ョン・ウィンドウのうちのいずれかを見ようとするなら
ば、デスクトップ上が取り散らかっているために、かな
りの苦労をすることになる。それは、はっきりと見えて
いないアプリケーション・ウィンドウを発見するため
に、手動操作によって、幾つかのウィンドウを最小化し
てアイコン化したり、それらウィンドウを画面上で再配
置したりせねばならず、それを行なうのに時間がかかる
からである。従って、完全に隠蔽されている、或いはそ
の大部分が隠蔽されているアプリケーション・ウィンド
ウやオブジェクトを、手早く、しかも簡単な方式で、フ
ォアグラウンドにディスプレイできるようにすることが
望まれている。即ち、完全に隠蔽、或いはその大部分が
隠蔽されているウィンドウやオブジェクトを、フォアグ
ラウンドにおいて容易にアクセスできるようにする方法
が求められている。
【0006】在来の種々のフォーカス・モデルでは、ユ
ーザがフォーカス移転を実行する際の方式は、ディスプ
レイ画面上のポインタの位置に基づいて移転を行なう方
式と、ウィンドウ・キューの中のウィンドウの位置に基
づいて移転を行なう方式との、いずれかの方式に限られ
ていた。そのため、たとえユーザが、ウィンドウの隠蔽
度合いに基づいて、そのウィンドウへのフォーカス移転
を行ないたいと望んでも、在来のシステムには、それに
応えるための機能が備わっていなかった。即ち、たとえ
ユーザが、ウィンドウの隠蔽度合いに基づいて、そのウ
ィンドウへのフォーカス移転を行ないたいと望んでも、
在来のシステムでは、その所望のウィンドウへフォーカ
スを移転させることができなかった。そして、在来のシ
ステムでは、はっきりと見えないアプリケーション・ウ
ィンドウを発見するために、ユーザが手動操作によっ
て、幾つかのウィンドウを最小化してアイコン化した
り、それらウィンドウを画面上で再配置しなければなら
ないことがしばしばあった。
【0007】このように、在来のシステムには、マルチ
タスクのウィンドウ環境において、ウィンドウの隠蔽度
合いに基づいてそのウィンドウへの自動ナビゲーション
が行なわれるようにする方法は採用されておらず、ま
た、その機能を提供するための装置は備えられていなか
った。従って、マルチタスクのウィンドウ環境におい
て、ウィンドウの隠蔽度合いに基づいてそのウィンドウ
への自動ナビゲーションを行なう方法及びそのための装
置が求められている。
【0008】
【課題を解決するための手段】ここに開示する本発明
は、マルチタスクのウィンドウ環境において、ウィンド
ウの隠蔽度合いに基づいてそのウィンドウへの自動ナビ
ゲーションを行なう方法及びそのための装置を含むもの
である。ここに説明する方法及び装置によれば、隠蔽ウ
ィンドウへのナビゲーションを行なおうとするときに、
在来のシステムで遭遇していた困難を、除去ないし大幅
に低減することができる。
【0009】従って本発明の1つの局面は、隠蔽ウィン
ドウへの自動ナビゲーションを行なうことにある。本発
明の更なる1つの局面は、隠蔽程度が最も大きなウィン
ドウへの自動ナビゲーションを行なうことにある。本発
明の更なる1つの局面は、複数の隠蔽ウィンドウを自動
的にフォアグラウンドへ移動させることにある。本発明
の更なる1つの局面は、隠蔽ウィンドウの隠蔽程度に従
って決定した優先順位に基づいて、隠蔽ウィンドウをフ
ォアグラウンドへポップさせることにある。これらの実
現のため、本発明のマルチタスク・ウィンドウ環境にて
隠蔽ウィンドウへの自動ナビゲーションを行なう方法
は、前記隠蔽ウィンドウが隠蔽されているものであるこ
とを判定する判定ステップと、前記隠蔽ウィンドウを、
前記マルチタスク・ウィンドウ環境のフォアグラウンド
部分にディスプレイするディスプレイ・ステップと、を
含んでいる。また、本発明のマルチタスク・ウィンドウ
環境にて隠蔽ウィンドウへの自動ナビゲーションを行な
う装置は、前記隠蔽ウィンドウが、隠蔽されているもの
であることを判定するための判定手段と、前記隠蔽ウィ
ンドウを、前記マルチタスク・ウィンドウ環境のフォア
グラウンド部分にディスプレイするためのディスプレイ
手段と、を備えている。また、本発明によれば、前記判
定手段は、前記隠蔽ウィンドウの広がり域と、前記マル
チタスク・ウィンドウ環境でディスプレイ可能な別のウ
ィンドウの広がり域とを比較するための広がり域比較手
段、を備えるものとすることができる。また、前記広が
り域比較手段は、ウィンドウ操作コマンドをインターセ
プトするためのウィンドウ操作コマンド・インターセプ
ト手段と、前記ウィンドウ操作コマンドで操作される被
操作ウィンドウを識別するための被操作ウィンドウ識別
手段と、前記隠蔽ウィンドウの広がり域と、前記被操作
ウィンドウの広がり域とを比較するための比較手段と、
を備えることができる。更に、前記広がり域比較手段
は、前記マルチタスク・ウィンドウ環境でディスプレイ
可能な複数のウィンドウを記述しているテーブルにアク
セスするためのテーブル・アクセス手段と、前記隠蔽ウ
ィンドウの広がり域と、前記マルチタスク・ウィンドウ
環境でディスプレイ可能な前記複数のウィンドウの各々
の広がり域とを比較するための比較手段と、を備えるこ
とができる。前記ディスプレイ手段は、前記隠蔽ウィン
ドウの隠蔽されている程度に従って決定した優先順位に
基づいて、前記隠蔽ウィンドウの選択を行なうための選
択手段、を備えるようにすることができる。あるいは、
前記ディスプレイ手段は、前記隠蔽ウィンドウとの間に
重なり部分を有するその他のウィンドウの個数に従って
決定した優先順位に基づいて、前記隠蔽ウィンドウの選
択を行なうための選択手段、を備えるようにできる。更
にまた、前記ディスプレイ手段は、複数の隠蔽ウィンド
ウのうちの1つのウィンドウをディスプレイするために
使用可能なディスプレイ領域を判定するための手段と、
前記複数の隠蔽ウィンドウのうちの1つのウィンドウを
ディスプレイするための手段と、前記複数の隠蔽ウィン
ドウのうちの前記1つのウィンドウをディスプレイした
後に残存する使用可能なディスプレイ領域を判定するた
めの手段と、複数の隠蔽ウィンドウのうちの1つのウィ
ンドウをディスプレイするために使用可能なディスプレ
イ領域を判定するステップと、前記複数の隠蔽ウィンド
ウのうちの1つのウィンドウをディスプレイするステッ
プと、前記複数の隠蔽ウィンドウのうちの前記1つのウ
ィンドウをディスプレイした後に残存する使用可能なデ
ィスプレイ領域を判定するステップとを、前記残存する
使用可能なディスプレイ領域が、前記複数の隠蔽ウィン
ドウのうちの次の1つのウィンドウをディスプレイする
には不十分になるまで、反復して実行するための手段
と、を備えるようにできる。
【0010】本発明の利点の1つは、ユーザが、面倒
な、手動操作による、デスクトップ上のオブジェクトの
再配置を行なわずとも、隠蔽ウィンドウをポップし、そ
のウィンドウをフォーカスを合わせた状態にして、デス
クトップ上に表示させることができるようにしてあるこ
とにある。本発明の更なる1つの利点は、隠蔽程度が最
大の、複数のオブジェクトをフォアグラウンドへポップ
することによって、デスクトップ上の再配置を行なえる
ようにしてあることにある。
【0011】
【実施例】先ず図1について説明すると、この図1は、
本発明に係るデータ処理システム100をブロック図で
示したものである。このデータ処理システム100は処
理装置2を含んでおり、更に処理装置2は、中央処理装
置(CPU)4とメモリ6とを含んでいる。処理装置2
には、補助記憶装置としてハードディスク装置8とフロ
ッピーディスク装置10とを接続してある。フロッピー
ディスク装置10にはディスケット12が挿入され、こ
のディスケット12には、データ処理システム100に
おいて本発明を実施するためのコンピュータ・プログラ
ムのコードを記録してある。データ処理システム100
は更に、ユーザ・インターフェース・ハードウェアを備
えたシステムとすることができ、ユーザ・インターフェ
ース・ハードウェアとしては、例えば、処理装置2へユ
ーザ入力をエンターするためのマウス14ないしキーボ
ード16や、視覚データをユーザに提示するためのディ
スプレイ18がある。データ処理システム100は更
に、ネットワークないし他のデータ処理システムとの間
で通信を行なう際に使用する通信ポート20を備えたも
のとすることができる。データ処理システム100は更
に、アナログ信号装置を備えたシステムとすることがで
き、アナログ信号装置としては、このデータ処理システ
ム100へアナログ信号をエンターするためのアナログ
信号入力装置22や、アナログ信号を再生して出力する
際に使用するアナログ信号出力装置24がある。
【0012】次に図2及び図3について説明すると、こ
れらの図は本発明の好適実施例を示したものである。本
発明によれば、隠蔽ウィンドウへの自動ナビゲーション
を行なわせることができる。この「隠蔽ウィンドウ」
は、部分的に隠蔽されているウィンドウであることもあ
れば、完全に隠蔽されているウィンドウであることもあ
り、また、アイコン化された状態にあるウィンドウであ
ることもある。ユーザは複数のアプリケーション・プロ
グラムを起動することができ、それら複数のアプリケー
ション・プログラムの夫々が、パネルやその他のオブジ
ェクトをデスクトップ上にディスプレイすると、デスク
トップ上が取り散らかった状態となり、ウインドウのう
ちの1つないし幾つかが、他のウィンドウによって隠蔽
されることになる。図2は、デスクトップ31を示して
おり、このデスクトップ31上において「パネル(ウィ
ンドウ)B」32は、その他のパネル(ウィンドウ)3
3に遮られて僅かな部分しか見えていない。しかるに、
本発明を利用することによって、隠蔽程度が最大のパネ
ルであるこの「パネルB」32を、自動的にポップして
フォーカスの合った状態とすることができる。図3は、
「パネルB」32を発見してフォアグラウンドへ移動さ
せ、それによって、この「パネルB」32が見えるよう
にした後の、デスクトップ31を示している。
【0013】続いて、図4ないし図6について説明す
る。これらの図は、本発明の好適実施例の方法において
実行する処理を示したフローチャートである。これらの
図のフローチャートに使用している図形の使用規則につ
いて説明すると、菱形はテストないし判断を表わしてお
り、長方形はプロセスないし機能を表わしている。これ
ら図形の使用規則は当業者には周知のものである。ま
た、これらの図のフローチャートは、当業者であれば、
それらフローチャートに基づき、任意の適当なコンピュ
ータ・プログラミング言語を用いてプログラムのコード
を書くことができるように、十分に詳細なものとしてあ
る。
【0014】本発明の好適実施例の方法において実行す
る処理は、大きく2つのプロセスあるいはプログラムの
形で構成することができる。それら2つのプロセスは、
1つが待ち行列(queue)プロセスであり、もう1つが
待機解除(dequeue)プロセスである。待ち行列プロセ
スは、図4及び図5に示してあり、完全に或いは部分的
に隠蔽されている複数のオブジェクトの夫々を指し示
す、優先順位キューを維持するプロセスである。一方、
待機解除プロセスは、図6に示してあり、その待ち行列
プロセスによって維持されているキューにアクセスし
て、そのキューが指し示している隠蔽されている複数の
オブジェクトのうちの、然るべきオブジェクトををポッ
プして、デスクトップ上の、フォアグラウンドに表示さ
せるプロセスである。
【0015】待ち行列プロセスにおいては、新たに1つ
のオブジェクトが生成されるたびに、そのオブジェクト
にz値を付与し、また、あるオブジェクトに対して寸法
変更や移動等の操作が行なわれるたびに、そのオブジェ
クトにz値を付与し直すようにしている。また、現在z
値は、オブジェクトの生成ないし操作が行なわれるたび
毎に、インクリメントするようにしている。あるオブジ
ェクトに付与されているz値が他のどれよりも大きなz
値であるならば、それは、そのオブジェクトが最も新し
く生成ないし操作(生成/操作)されたオブジェクトで
あることを表わしている。一方、あるオブジェクトに付
与されているz値が他のどれよりも小さなz値であるな
らば、それは、そのオブジェクトが最も以前に生成/操
作されたオブジェクトであることを表わしている。この
z値は、待機解除プロセスにおいて、2つ以上の隠蔽オ
ブジェクトどうしの間で先着順方式(First Come First
Served:FCFS方式)の優先順位決定を行なうために
使用される。あるオブジェクトの生成/操作が行なわれ
たならば、それに続いて、そのオブジェクトの広がり域
を記録し、更に続いて、そのオブジェクトの広がり域
(extent)をデスクトップ上のその他全てのオブジェク
トの夫々の広がり域との間で比較する。もし、比較の対
象としたオブジェクトのうちに、その新生成/操作オブ
ジェクトによって完全に或いは部分的に隠蔽されるオブ
ジェクトがあったならば、その該当するオブジェクトを
優先順位キューの中に入れる。尚、このとき、そのオブ
ジェクトを指し示している別のポインタが、優先順位キ
ューの中に既に存在しているか否かにかかわらず(即
ち、そのオブジェクトが、更にその他のオブジェクトに
よって完全に或いは部分的に隠蔽されているか否かにか
かわらず)、その該当するオブジェクトを(即ち、その
該当するオブジェクトを指し示す新たなポインタを)優
先順位キューの中に入れるようにしている。優先順位キ
ューは、夫々のオブジェクトが覆われている割合を表わ
すパーセンテージの値(最大値は100である)に基づ
いて優先順位を設定するキューである。覆いの割合が互
いに等しいオブジェクトどうしの間では、z値に従って
優先順位を決定するようにしており、即ち、z値が小さ
い方のオブジェクトに、より高い優先順位を付与するよ
うにしている。また、隠蔽オブジェクトには、更に、そ
のオブジェクトを覆っているオブジェクト(即ち、その
オブジェクトが優先順位キューに入れられる原因を作っ
たオブジェクト)のz値を付随させるようにしている。
【0016】更には、その比較対象オブジェクトが、新
生成/操作オブジェクトによって、完全に隠蔽されるの
ではなく、部分的に隠蔽される場合には、比較対象オブ
ジェクトの、新生成/操作オブジェクトとの間の重なり
域の面積を算出する。続いて、この重なり域の面積を、
その比較対象オブジェクトの全面積で割ることによっ
て、比較対象オブジェクトの、隠蔽割合のパーセンテー
ジを算出する。更に、その比較対象オブジェクトを優先
順位キューの中に入れる前に、優先順位キューをスキャ
ンして、このオブジェクトを指し示しているポインタが
現在既に優先順位キューの中に存在しているか否かを調
べる。もし該当するポインタが全く存在していなかった
ならば、そのオブジェクトを優先順位キューの中に入れ
る。一方、優先順位キューの中に、そのオブジェクトを
指し示しているポインタが既に存在していた場合には、
そのポインタと新たなポインタとの夫々に付随している
z値どうしの比較を行なう(ここでいうz値とは、その
オブジェクトを覆い隠しているオブジェクトのz値であ
る。もし双方のポインタのz値どうしが互いに等しかっ
たならば、先に存在していたポインタを廃棄した上で、
新たなポインタを優先順位キューの中に入れる。このよ
うにする理由は、もしそれらのz値どうしが等しかった
ならば、それは、その比較対象オブジェクトをかつて優
先順位キューに入れる原因となった(即ち、先に存在し
ていたポインタを優先順位キューに入れる原因となっ
た)オブジェクトが、今回新たに操作され、その結果、
新たなポインタを優先順位キューに入れることになった
ことを表わしており、従って、比較対象オブジェクトが
それまでどの程度に覆われていたかを表わす値は、この
時点では無効となっているからである。一方、それらポ
インタのz値が互いに等しくなかったならば、これは、
先に存在していたポインタを優先順位キューに入れる原
因となったオブジェクトとは異なったオブジェクト(或
いは新たなオブジェクト)が、新たなポインタを優先順
位キューに入れる原因となったことを表わしており、こ
の場合は単に(即ち、以前のポインタを廃棄することな
く)、新たなポインタを優先順位キューの中に入れるだ
けで良い。このようにした場合には、優先順位キューの
中に同一のオブジェクトを指し示すポインタが複数含ま
れることになるが、それによって問題が生じることはな
い。なぜならば、待機解除プロセスでは、覆いのパーセ
ンテージが最大のポインタを優先順位キューから抜き取
るからである。
【0017】続いて図4について説明すると、同図は、
本発明の好適実施例の方法において実行する処理のう
ち、待ち行列プロセスの部分の処理を図示したものであ
る。この図4において、待ち行列プロセスのプログラム
は、開始したならば、先ずプロセス・ブロック400に
おいて、変数OBJ COUNT を「0」にセットする。この変
数OBJ COUNT は、デスクトップ上のオブジェクトの総数
を表わす変数である。プロセス・ブロック400では更
に、変数GLOBAL QUEUE COUNTを「0」にセットする。こ
の変数GLOBAL QUEUE COUNTは、デスクトップ上の、隠蔽
オブジェクトの総数を表わす変数である。プロセス・ブ
ロック400では更に、変数zを「0」にセットする。
この変数zは、デスクトップ上のオブジェクトに対して
実行された操作の延べ回数を表わす変数である。続いて
プロセス・ブロック405において、ウィンドウ・オブ
ジェクト操作コマンドが検出されるのをを待つ。ここで
ウィンドウ・オブジェクト操作コマンドというのは、例
えば「NEW OBJECT」コマンド、「DELETE OBJECT 」コマ
ンド、「RESIZE OBJECT 」コマンド、「MOVE OBJECT」
コマンド、或いは更に、あるウィンドウ・オブジェクト
を他のウィンドウ・オブジェクトに重ね合わせ、従って
あるウィンドウ・オブジェクトで他のウィンドウ・オブ
ジェクトを覆い隠すことになる可能性のある、あらゆる
種類のコマンドのことである。更に具体的に説明する
と、「NEW OBJECT」コマンドは、デスクトップ上に新た
なオブジェクトを生成するコマンドであるため、デスク
トップ上に既に存在しているオブジェクトを部分的にせ
よ覆い隠すことがある。また「DELETE OBJECT 」コマン
ドは、デスクトップ上からオブジェクトを除去するコマ
ンドであるため、その除去されたオブジェクトがそれま
で覆い隠していたオブジェクトを露出させることがあ
る。また「RESIZE OBJECT 」コマンドは、オブジェクト
の寸法を変更するコマンドであるため、デスクトップ上
の他のオブジェクトを露出させたり覆い隠したりするこ
とがある。また「MOVE OBJECT 」コマンドは、オブジェ
クトの位置を変更するコマンドであるため、デスクトッ
プ上の他のオブジェクトを露出させたり覆い隠したりす
ることがある。プロセス・ブロック405において、何
らかのウィンドウ・オブジェクト操作コマンドを検出し
たならば、続いて判断ブロック410において、その検
出したウィンドウ・オブジェクト操作コマンドが、「DE
LETE OBJECT 」コマンドであるか否かを判定する。その
ウィンドウ・オブジェクト操作コマンドが「DELETE OBJ
ECT 」コマンドであった場合には、続いてプロセス・ブ
ロック415において、優先順位キュー(以下、単に
「キュー」という)の中に存在しているポインタのうち
に、そのポインタの変数HIDDEN BY Z の値が、削除され
たオブジェクト(DELETED OBJ )の変数OWN Z の値に等
しいものが存在しているかを調べ、もし該当するポイン
タが存在していたならば、それをキューから抜き取る。
尚、あるオブジェクトの変数OWN Z の値は、そのオブジ
ェクトそれ自体のz値を表わしており、即ち、そのオブ
ジェクトが操作された順番を表わしている。一方、ある
オブジェクトの変数HIDDEN BY Z の値は、そのオブジェ
クトを完全に或いは部分的に覆い隠している、操作され
たオブジェクトのz値を表わしている。具体的な例で説
明すると、例えば、第1のオブジェクトは、その変数OW
N Z の値が「3」であったものとする(即ち、第3番目
に操作されたオブジェクトであったものとする)。この
第1のオブジェクトが、第2のオブジェクトによって完
全に或いは部分的に隠蔽されており、この第2のオブジ
ェクトは、その変数OWN Z の値が「9」であったものと
する(即ち、第9番目に操作されたオブジェクトであっ
たものとする)。この場合、第1のオブジェクトの変数
HIDDEN BY Z の値は、この第1のオブジェクトを覆い隠
している第2のオブジェクトの変数OWN Z の値(即ちz
値)であるところの「9」にセットされる。プロセス・
ブロック415では更に、変数OBJ COUNT の値を「1」
だけデクリメントする。この後、このプログラムはルー
プしてプロセス・ブロック405へ戻り、次のウィンド
ウ・オブジェクト操作コマンドを待つ状態に入る。
【0018】説明を判断ブロック410へ戻し、この判
断ブロック410での判定の結果、検出したウインドウ
・オブジェクト操作コマンドが「DELETE OBJCT」コマン
ドではないと判定された場合には、続いてプロセス・ブ
ロック420において、そのコマンドの処理に必要なル
ープの変数の初期化を実行する。即ち、プロセス・ブロ
ック420では、変数OBJ.OWN Z の値を「z」にセット
した上で、z値を「1」だけインクリメントする。プロ
セス・ブロック420では更に、次のようにして、現在
オブジェクト(即ち、その処理対象のオブジェクト)の
広がり域を記録する。即ち先ず、変数OBJ.XMINの値を、
デスクトップの左縁部からx軸方向に測った現在オブジ
ェクトの左縁部までの距離の値にセットする。次に、変
数OBJ.XMAXの値を、デスクトップの左縁部からx軸方向
に測った現在オブジェクトの右縁部までの距離の値にセ
ットする。次に、変数OBJ.YMINの値を、デスクトップの
上縁部からy軸方向に測った現在オブジェクトの上縁部
までの距離の値にセットする。そして最後に、変数OBJ.
YMAXの値を、デスクトップの上縁部からy軸方向に測っ
た現在オブジェクトの底縁部までの距離の値にセットす
る。このプロセス・ブロック420では更に、現在オブ
ジェクトの広がり域の面積を算出する。それには、先
ず、変数OBJ.XMAXと変数OBJ.XMINとの差の値を算出し、
次に、変数OBJ.YMAXと変数OBJ.YMINとの差の値を算出
し、更に、それら2つの差の値の積を算出する。こうし
て算出した積の値は、変数OBJ.AREAの値として格納して
おく。プロセス・ブロック420では更に、インデック
スIの値を「0」にセットする。このインデックスI
は、デスクトップ上のオブジェクトを列挙したリストLI
ST OF OBJSに対するインデックスを行なうループにおい
て使用する。尚、検出したウィンドウ・オブジェクト操
作コマンドが「NEW OBJECT」コマンドであった場合に
は、このプロセス・ブロック420において更に、変数
OBJ COUNT の値を「1」だけインクリメントする。
【0019】続いて判断ブロック425において、リス
トLIST OF OBJSの中に、処理すべきオブジェクトがまだ
他に存在しているか否かを判定し、この判定は、インデ
ックスIの値が変数OBJ COUNT の値を超えていないかど
うかを調べることによって行なう。そして、リストLIST
OF OBJSの中に、処理すべきオブジェクトがまだ他に存
在していると判定された場合には、続いて判断ブロック
430において、現在オブジェクトの広がり域がその処
理すべきオブジェクトLIST OF OBJS[I] を完全に覆って
いるか否かを判定する。現在オブジェクトの広がり域が
オブジェクトLIST OF OBJS[I] を完全に覆っているため
の条件は、『LIST OF OBJS[I] のXMIN値が現在オブジェ
クトのXMIN値以上であり、且つ、LIST OF OBJS[I] のXM
AX値が現在オブジェクトのXMAX値以下であり、且つ、LI
ST OF OBJS[I] のYMIN値が現在オブジェクトのYMIN値以
上であり、且つ、LIST OF OBJS[I] のYMAX値が現在オブ
ジェクトのYMAX値以下である』という条件である。そし
て、現在オブジェクトの広がり域が、オブジェクトLIST
OF OBJS[I] を完全に覆っていると判定された場合に
は、続いて、プロセス・ブロック435において、変数
LIST OF OBJS[I].HIDDEN BY Z の値を、変数OBJ.OWN Z
の値に等しい値にセットする(「変数LIST OF OBJS[I].H
IDDEN BY Z 」とは、オブジェクトLIST OF OBJS[I] を
完全に或いは部分的に覆い隠しているオブジェクトのz
値を表わす変数であり、即ち、オブジェクトLIST OF OB
JS[I] の変数HIDDEN BY Z のことである)。このように
変数LIST OF OBJS[I].HIDDEN BY Z の値をセットするこ
とによって、この場合には完全に覆い隠されているオブ
ジェクトLIST OF OBJS[I] に、このオブジェクトLIST O
F OBJS[I] を完全に覆い隠している現在オブジェクトの
z値を付随させているのである。プロセス・ブロック4
35では更に、変数LIST OF OBJS[I].PERCENTAGEの値
を、「100」にセットし(この変数LIST OF OBJS[I].
PERCENTAGEは、オブジェクトLIST OF OBJS[I] が現在オ
ブジェクトによって覆い隠されている割合のパーセンテ
ージの値を表わす変数である)、それによって、このオ
ブジェクトLIST OF OBJS[I] が完全に覆い隠されている
ということを表示する。
【0020】続いて、判断ブロック440において、オ
ブジェクトLIST OF OBJS[I] を指し示している以前のポ
インタがキューの中に存在しているか否かを判定する。
そして、オブジェクトLIST OF OBJS[I] を指し示してい
る以前のポインタがキューの中に存在していないと判定
されたならば、続いてプロセス・ブロック465におい
て、オブジェクトLIST OF OBJS[I] を指し示す新たなポ
インタを、キューの最後につけ加える。プロセス・ブロ
ック465では更に、変数GLOBAL QUEUE COUNTの値を
「1」だけインクリメントする。続いてプロセス・ブロ
ック475において、インデックスIの値を「1」だけ
インクリメントする。この後、このプログラムはループ
して判断ブロック425へ戻り、リストLIST OF OBJSの
中の次のオブジェクトの処理に取りかかる。
【0021】説明を判断ブロック440に戻し、この判
断ブロック440での判定の結果、キューの中に、オブ
ジェクトLIST OF OBJS[I] を指し示している以前のポイ
ンタが存在していると判定された場合には、続いて判断
ブロック445において、その以前のポインタの変数HI
DDEN BY Z の値と、オブジェクトLIST OF OBJS[I] を指
し示す新たなポインタの変数HIDDEN BY Z の値(即ち、
現在オブジェクトのz値)とが互いに等しいか否かを判
定する。これら2つの変数HIDDEN BY Z の値が互いに等
しいと判定されたならば、続いてプロセス・ブロック4
70において、その以前のポインタをキューから抜き取
った上、オブジェクトLIST OF OBJS[I]を指し示す新た
なポインタをキューの最後に加える。続いて処理の流れ
はプロセス・ブロック475へ進み、そこでインデック
スIの値を「1」だけインクリメントする。
【0022】説明を判断ブロック445に戻し、この判
断ブロック445での判定の結果、キューの中に既に存
在していた、オブジェクトLIST OF OBJS[I] を指し示し
ている以前のポインタの変数HIDDEN BY Z の値と、オブ
ジェクトLIST OF OBJS[I] を指し示す新たなポインタの
変数HIDDEN BY Z の値とが、互いに等しくないと判定さ
れた場合には、続いてプロセス・ブロック450におい
て、オブジェクトLIST OF OBJS[I] を指し示すその新た
なポインタをキューの最後に加える。プロセス・ブロッ
ク450では更に、変数GLOBAL QUEUE COUNTの値を
「1」だけインクリメントする。続いて、処理の流れは
プロセス・ブロック475へ進み、そこでインデックス
Iの値を「1」だけインクリメントする。
【0023】説明を判断ブロック430に戻し、この判
断ブロック430での判定の結果、現在オブジェクトの
広がり域がオブジェクトLIST OF OBJS[I] を完全に覆い
隠してはいないと判定された場合には、続いて判断ブロ
ック455において、現在オブジェクトの広がり域がオ
ブジェクトLIST OF OBJS[I] を部分的に覆い隠している
か否かを判定する。判断ブロック455では、この判定
を行なうために、現在オブジェクトの広がり域がオブジ
ェクトLIST OF OBJS[I] との間に重なり域を持たないこ
との真偽を調べるテストを実行する。このテストを実行
するのは、現在オブジェクトがオブジェクトLIST OF OB
JS[I] を完全に覆い隠してはいないと判定されたとき
(判断ブロック430)だけであるから、もしこのテス
トの結果が「偽」であれば、現在オブジェクトは必ずオ
ブジェクトLIST OF OBJS[I] を部分的に覆い隠している
ことになる。この点について更に詳しく説明するなら
ば、現在オブジェクトの広がり域がオブジェクトLIST O
F OBJS[I] を部分的に覆い隠しているための条件は、
『現在オブジェクトがオブジェクトLIST OF OBJS[I] を
完全に覆い隠してはおらず、且つ、現在オブジェクトの
広がり域とオブジェクトLIST OF OBJS[I] との間の重な
り域が皆無ではない』という条件である。更に、現在オ
ブジェクトの広がり域とオブジェクトLIST OF OBJS[I]
との間の重なり域が皆無であるための条件は、『オブジ
ェクトLIST OF OBJS[I] のXMINの値が現在オブジェクト
のXMAXの値以上であるか、または、オブジェクトLIST O
F OBJS[I] のXMAXの値が現在オブジェクトのXMINの値以
下であるか、または、オブジェクトLIST OF OBJS[I] の
YMINの値が現在オブジェクトのYMAXの値以上であるか、
または、オブジェクトLIST OF OBJS[I] のYMAXの値が現
在オブジェクトのYMINの値以下である』という条件であ
る。そして、現在オブジェクトの広がり域がオブジェク
トLIST OF OBJS[I] を部分的に覆い隠していると判定さ
れたならば、続いてプロセス・ブロック460におい
て、変数LIST OF OBJS[I].HIDDEN BY Z の値を変数OBJ.
OWN Z の値と等しい値にセットし、それによって、部分
的に覆い隠されているオブジェクトLIST OF OBJS[I]
に、このオブジェクトLIST OF OBJS[I] を部分的に覆い
隠している現在オブジェクトのz値を付随させる。続い
て、処理の流れは、図4及び図5に示した接続子100
0によって表わしたように、図5に示した判断ブロック
505へ進み、この判断ブロック505からは、重なり
域のパーセンテージの値を算出する処理に取りかかる。
【0024】説明を判断ブロック455に戻し、この判
断ブロック455での判定の結果、現在オブジェクトの
広がり域がオブジェクトLIST OF OBJS[I] を部分的に覆
い隠してはいない判定されたのであれば、それは、現在
オブジェクトとオブジェクトLIST OF OBJS[I] とは重な
り域を持たないということを意味しており、この場合に
は、処理の流れはプロセス・ブロック475へ進み、そ
こでインデックスIの値をインクリメントする。
【0025】これより図5について詳しく説明する。処
理の流れが、図4及び図5の接続子1000によって示
したように、図4のプロセス・ブロック460から図5
の判断ブロック505へ進んだならば、この判断ブロッ
ク505において、『現在オブジェクトのYMINの値(OB
J.YMIN)がオブジェクトLIST OF OBJS[I] のYMINの値
(OBJS(I).YMIN)以下であり、且つ、現在オブジェクト
のYMAXの値(OBJ.YMAX)がオブジェクトLIST OF OBJS
[I] のYMAXの値(OBJS(I).YMAX)以上である』という条
件が満たされているか否かを判定する。この条件が満た
されるのは、現在オブジェクトの上側境界がオブジェク
トLIST OF OBJS[I] の上側境界よりも上方にあり、且
つ、現在オブジェクトの下側境界がオブジェクトLIST O
F OBJS[I] の下側境界より下方にある場合である。も
し、現在オブジェクトのYMINの値がオブジェクトLIST O
F OBJS[I] のYMINの値以下であり、且つ、現在オブジェ
クトのYMAXの値がオブジェクトLIST OF OBJS[I] のYMAX
の値以上であったならば、続いてプロセス・ブロック5
50において、変数Y SEGMENT の値を、オブジェクトLI
ST OF OBJS[I] のYMAXの値からオブジェクトLIST OF OB
JS[I] のYMINの値を減じた差の値に等しくセットする。
この変数Y SEGMENT は、現在オブジェクトとオブジェク
トLIST OF OBJS[I] との間の重なり域のy軸方向のセグ
メントを表わす変数である。続いて処理の流れは判断ブ
ロック525へ進み、この判断ブロック525からは、
現在オブジェクトとオブジェクトLIST OF OBJS[I] との
間の重なり域のx軸方向のセグメントを表わす、変数X
SEGMENT の値を算出する処理に取りかかる。
【0026】説明を判断ブロック505に戻し、この判
断ブロック505での判定の結果、『現在オブジェクト
のYMINの値がオブジェクトLIST OF OBJS[I] のYMINの値
以下であり、且つ、現在オブジェクトのYMAXの値がオブ
ジェクトLIST OF OBJS[I] のYMAXの値以上である』とい
う条件が満たされていないと判定された場合には、続い
て判断ブロック510において、『現在オブジェクトの
YMINの値(OBJ.YMIN)がオブジェクトLIST OF OBJS[I]
のYMINの値(OBJS(I).YMIN)以上であり、且つ、現在オ
ブジェクトのYMAXの値(OBJ.YMAX)がオブジェクトLIST
OF OBJS[I] のYMAXの値(OBJS(I).YMAX)以下である』
という条件が満たされているか否かを判定する。この条
件が満たされるのは、現在オブジェクトの上側境界がオ
ブジェクトLIST OF OBJS[I] の上側境界よりも下方にあ
り、且つ、現在オブジェクトの下側境界がオブジェクト
LIST OF OBJS[I] の下側境界より上方にある場合であ
る。そして、現在オブジェクトのYMINの値がオブジェク
トLIST OF OBJS[I] のYMINの値以上であり、且つ、現在
オブジェクトのYMAXの値がオブジェクトLIST OF OBJS
[I] のYMAXの値以下であったならば、続いてプロセス・
ブロック555において、変数Y SEGMENT の値を、現在
オブジェクトのYMAXの値から現在オブジェクトのYMINの
値を減じた差の値に等しくセットする。続いて処理の流
れは判断ブロック525へ進み、この判断ブロック52
5からは、現在オブジェクトとオブジェクトLIST OF OB
JS[I] との間の重なり域のx軸方向のセグメントを表わ
す変数X SEGMENT の値を算出する処理に取りかかる。
【0027】説明を判断ブロック510に戻し、この判
断ブロック510での判定の結果、『現在オブジェクト
のYMINの値がオブジェクトLIST OF OBJS[I] のYMINの値
以上であり、且つ、現在オブジェクトのYMAXの値がオブ
ジェクトLIST OF OBJS[I] のYMAXの値以下である』とい
う条件が満たされていないと判定された場合には、続い
て判断ブロック515において、『オブジェクトLIST O
F OBJS[I] のYMAXの値(OBJS(I).YMAX)が現在オブジェ
クトのYMAXの値(OBJ.YMAX)以上である』という条件が
満たされているか否かを判定する。この条件が満たされ
るのは、現在オブジェクトの下側境界がオブジェクトLI
ST OF OBJS[I] の上側境界と下側境界との間にある場合
である。そして、オブジェクトLIST OF OBJS[I] のYMAX
の値が、現在オブジェクトのYMAXの値以上であったなら
ば、続いて、プロセス・ブロック560において、変数
Y SEGMENT の値を、現在オブジェクトのYMAXの値からオ
ブジェクトLIST OF OBJS[I] のYMINの値を減じた差の値
に等しくセットする。続いて処理の流れは判断ブロック
525へ進み、この判断ブロック525からは、現在オ
ブジェクトとオブジェクトLIST OF OBJS[I] との間の重
なり域のx軸方向のセグメントを表わす変数X SEGMENT
の値を算出する処理に取りかかる。
【0028】説明を判断ブロック515に戻し、この判
断ブロック515での判定の結果、オブジェクトLIST O
F OBJS[I] のYMAXの値が、現在オブジェクトのYMAXの値
以上ではない、即ちそれより小さいと判定された場合に
は、続いてプロセス・ブロック520において、変数Y
SEGMENT の値をオブジェクトLIST OF OBJS[I] のYMAXの
値から現在オブジェクトのYMINの値を減じた差の値に等
しくセットする。このように判定されるのは、現在オブ
ジェクトの上側境界がオブジェクトLIST OF OBJS[I] の
上側境界と下側境界との間にある場合である。
【0029】続いて、判断ブロック525から先の処理
について説明する。この判断ブロック525では、『現
在オブジェクトのXMINの値(OBJ.XMIN)がオブジェクト
LIST OF OBJS[I] のXMINの値(OBJS(I).XMIN)以下であ
り、且つ、現在オブジェクトのXMAXの値(OBJ.XMAX)が
オブジェクトLIST OF OBJS[I] のXMAXの値(OBJS(I).XM
AX)以上である』という条件が満たされているか否かを
判定する。この条件が満たされるのは、現在オブジェク
トの左側境界がオブジェクトLIST OF OBJS[I]の左側境
界よりも左方にあり、且つ、現在オブジェクトの右側境
界がオブジェクトLIST OF OBJS[I] の右側境界より右方
にある場合である。もし、現在オブジェクトのXMINの値
がオブジェクトLIST OF OBJS[I] のXMINの値以下であ
り、且つ、現在オブジェクトのXMAXの値がオブジェクト
LIST OF OBJS[I] のXMAXの値以上であったならば、続い
てプロセス・ブロック565において、変数X SEGMENT
の値をオブジェクトLIST OF OBJS[I] のXMAXの値からオ
ブジェクトLIST OF OBJS[I]のXMINの値を減じた差の値
に等しくセットする。この変数X SEGMENT は、現在オブ
ジェクトとオブジェクトLIST OF OBJS[I] との間の重な
り域のx軸方向のセグメントを表わす変数である。続い
て処理の流れは判断ブロック545へ進み、この判断ブ
ロック545では、変数LIST OF OBJS[I].PERCENTAGEの
値を算出する。この変数LIST OF OBJS[I].PERCENTAGEの
値は、オブジェクトLIST OF OBJS[I] の全面積に対す
る、現在オブジェクトとオブジェクトLIST OF OBJS[I]
との間の重なり域の面積の割合のパーセンテージを表わ
す値である。
【0030】説明を判断ブロック525に戻し、この判
断ブロック525での判定の結果、『現在オブジェクト
のXMINの値がオブジェクトLIST OF OBJS[I] のXMINの値
以下であり、且つ、現在オブジェクトのXMAXの値がオブ
ジェクトLIST OF OBJS[I] のXMAXの値以上である』とい
う条件が満たされていないと判定された場合には、続い
て判断ブロック530において、『現在オブジェクトの
XMINの値(OBJ.XMIN)がオブジェクトLIST OF OBJS[I]
のXMINの値(OBJS(I).XMIN)以上であり、且つ、現在オ
ブジェクトのXMAXの値(OBJ.XMAX)がオブジェクトLIST
OF OBJS[I] のXMAXの値(OBJS(I).XMAX)以下である』
という条件が満たされているか否かを判定する。この条
件が満たされるのは、現在オブジェクトの左側境界がオ
ブジェクトLIST OF OBJS[I] の左側境界よりも右方にあ
り、且つ、現在オブジェクトの右側境界がオブジェクト
LIST OF OBJS[I] の右側境界より左方にある場合であ
る。そして、現在オブジェクトのXMINの値がオブジェク
トLIST OF OBJS[I] のXMINの値以上であり、且つ、現在
オブジェクトのXMAXの値がオブジェクトLIST OF OBJS
[I] のXMAXの値以下であったならば、続いてプロセス・
ブロック570において、変数X SEGMENT の値を、現在
オブジェクトのXMAXの値から現在オブジェクトのXMINの
値を減じた差の値に等しくセットする。続いて処理の流
れは判断ブロック545へ進む。
【0031】説明を判断ブロック530に戻し、この判
断ブロック530での判定の結果、『現在オブジェクト
のXMINの値がオブジェクトLIST OF OBJS[I] のXMINの値
以上であり、且つ、現在オブジェクトのXMAXの値がオブ
ジェクトLIST OF OBJS[I] のXMAXの値以下である』とい
う条件が満たされていないと判定された場合には、続い
て判断ブロック535において、『オブジェクトLIST O
F OBJS[I] のXMAXの値(OBJS(I).XMAX)が現在オブジェ
クトのXMAXの値(OBJ.XMAX)以上である』という条件が
満たされているか否かを判定する。この条件が満たされ
るのは、現在オブジェクトの右側境界がオブジェクトLI
ST OF OBJS[I] の左側境界と右側境界との間にある場合
である。そして、オブジェクトLIST OF OBJS[I] のXMAX
の値が、現在オブジェクトのXMAXの値以上であったなら
ば、続いて、プロセス・ブロック575において、変数
X SEGMENT の値を現在オブジェクトのXMAXの値からオブ
ジェクトLIST OF OBJS[I] のXMINの値を減じた差の値に
等しくセットする。続いて処理の流れは判断ブロック5
45へ進む。
【0032】説明を判断ブロック535に戻し、この判
断ブロック535での判定の結果、オブジェクトLIST O
F OBJS[I] のXMAXの値が、現在オブジェクトのXMAXの値
以上ではない、即ちそれより小さいと判定された場合に
は、続いてプロセス・ブロック540において、変数X
SEGMENT の値をオブジェクトLIST OF OBJS[I] のXMAXの
値から現在オブジェクトのXMINの値を減じた差の値に等
しくセットする。このように判定されるのは、現在オブ
ジェクトの左側境界がオブジェクトLIST OF OBJS[I] の
左側境界と右側境界との間にある場合である。
【0033】続いてプロセス・ブロック545におい
て、先ず、変数Y SEGMENT の値と変数X SEGMENT の値と
の積を求めることによって、オブジェクトLIST OF OBJS
[I] の全面積のうち、部分的に覆い隠されている部分の
面積を算出する。このプロセス・ブロック545では更
に、オブジェクトLIST OF OBJS[I] の全面積に対する、
現在オブジェクトによって部分的に覆い隠されている部
分の面積の割合のパーセンテージの値を算出し、変数LI
ST OF OBJS[I].PERCENTAGEの値を、その算出したパーセ
ンテージの値に等しくセットする。このパーセンテージ
の値を算出するには、オブジェクトLIST OF OBJS[I] の
全面積のうち、部分的に覆い隠されている部分の面積の
値に100をかけた値を、オブジェクトLIST OF OBJS
[I] の全面積の値である変数LIST OF OBJS[I].areaの値
で割るようにする。
【0034】続いて、処理の流れは図4の判断ブロック
440へすすみ、この判断ブロック440から再びキュ
ーのポインタの更新に取りかかる。この処理の流れは、
図5及び図4に、フローチャート接続子2000によっ
て示したとおりである。
【0035】次に図6について説明すると、同図は、本
発明の好適実施例の方法のうち、待機解除プロセスの部
分の処理を示したものである。この待機解除プロセスの
プログラムは、開始したならば先ず判断ブロック310
において、隠蔽オブジェクトが存在しているか否かを判
定する。変数GLOBAL QUEUE COUNTが「0」よりも大きな
値になっていれば、隠蔽オブジェクトが存在している。
そして、隠蔽オブジェクトが存在していると判定された
ならば、続いてプロセス・ブロック320においてキュ
ーにアクセスする。続いて判断ブロック330におい
て、デスクトップ上に残存している、ディスプレイに使
用可能なスペースが、キューの中の次の隠蔽オブジェク
トをディスプレイすることができるだけの十分な広さの
スペースであるか否かを判定する。ここでいう「ディス
プレイに使用可能なスペース」には、この待機解除プロ
セスの実行によってフォアグラウンドへポップされたオ
ブジェクトによって占められているディスプレイのスペ
ースは含まれず、一方、この待機解除プロセスによって
フォアグラウンドへポップされたのではないオブジェク
トによって占められているディスプレイのスペースは含
まれるものとしている。この判断ブロック330におけ
る判定は、次の隠蔽オブジェクトの広がり域と、デスク
トップ上に残存しているディスプレイに使用可能なスペ
ースの広がり域とを比較することによって行なう。も
し、デスクトップ上に存在しているディスプレイに使用
可能なスペースが、キューの中の次の隠蔽オブジェクト
をディスプレイすることができるだけの十分な広さのス
ペースであると判定されたならば、続いてプロセス・ブ
ロック340において、キューの中からその「次のオブ
ジェクト」を読み出した上で、そのオブジェクトを指し
示しているポインタをキューから抜き取り、変数GLOBAL
QUEUE COUNTの値をデクリメントする。尚、キューの中
の「次のオブジェクト」は、パーセンテージ値が最大の
オブジェクトであり、即ち覆い隠されている程度が最大
のオブジェクトである。もし2つ以上のオブジェクトが
同じパーセンテージ値を持っていたならば、それらのう
ちで変数OWN Zの値の最も小さなものを「次のオブジェ
クト」とする。続いてプロセス・ブロック350におい
て、そのオブジェクトをデスクトップのフォアグラウン
ド部分へポップする。続いてプロセス・ブロック360
において、そのオブジェクトをフォアグラウンドへポッ
プした後にデスクトップ上に残存している、ディスプレ
イに使用可能なスペースの広がり域を算出する。続いて
プログラムはループして判断ブロック330へ戻り、こ
の判断ブロック330からは、キューの中の更に次のオ
ブジェクトの処理に取りかかる。
【0036】説明を判断ブロック330に戻し、この判
断ブロック330での判定の結果、デスクトップ上に残
存しているディスプレイに使用可能なスペースが、キュ
ーの中の次の隠蔽オブジェクトをディスプレイすること
ができるだけの十分な広さのスペースではないと判定さ
れた場合には、このプログラムは終了する。
【0037】説明を判断ブロック310に戻し、この判
断ブロック310での判定の結果、隠蔽オブジェクトが
存在していないと判定された場合には(即ち、変数GLOB
AL QUEUE COUNTの値が「0」であったならば)、このプ
ログラムは終了する。
【0038】以上の待機解除プロセスの変更実施例とし
て、上記プロセス・ブロック340において、キューの
中の続く次のオブジェクトが、最大のパーセンテージ値
を有するオブジェクトであったならば、即ち、隠蔽割合
が最も大きなオブジェクトであったならば、そのままそ
のオブジェクトを「次のオブジェクト」としてキューか
ら得るように変更するのも1つの方法である。この変更
実施例とする場合には、プロセス・ブロック340にお
いて、たとえ2つ以上のオブジェクトが同じパーセンテ
ージ値を持っていても、変数OWN Z の値の最も小さなオ
ブジェクトを選択するという処理は行なわない。
【0039】以上の待機解除プロセスの更に別の変更実
施例として、キューの中の、隠蔽割合が最も大きなオブ
ジェクトを1つだけ、デスクトップのフォアグラウンド
へポップするようにするのも1つの方法である。
【0040】以上の待機解除プロセスの更に別の変更実
施例として、上記プロセス・ブロック340において、
複数のオブジェクトを互いに重なり部を有するようにし
てデスクトップ上にタイル表示し、しかもその際に、各
々のオブジェクトのタイトルバーが見えるように表示す
るようにするのも1つの方法である。
【0041】
【発明の効果】本発明によれば、ユーザが、面倒な、手
動操作による、デスクトップ上のオブジェクトの再配置
を行なわずとも、隠蔽ウィンドウをポップし、そのウィ
ンドウをフォーカスを合わせた状態にして、デスクトッ
プ上に表示させることができる。また、隠蔽程度が最大
の、複数のオブジェクトをフォアグラウンドへポップす
ることによって、デスクトップ上の再配置を行なうこと
もできる。
【図面の簡単な説明】
【図1】本発明の方法を実施するために使用する、本発
明の装置の一部を成すデータ処理システムのブロック図
である。
【図2】本発明の好適実施例の装置に係る、複数のウィ
ンドウを表示しているディスプレイの画面を示した図で
ある。
【図3】本発明の好適実施例の装置に係る、複数のウィ
ンドウを表示しているディスプレイの画面を示した図で
ある。
【図4】本発明の好適実施例の方法における処理のうち
待ち行列プロセスの部分の処理を示したフローチャート
であり、図5と組み合わさって1つのフローチャートを
完成する図である。
【図5】本発明の好適実施例の方法における処理のうち
待ち行列プロセスの部分の処理を示したフローチャート
であり、図4と組み合わさって1つのフローチャートを
完成する図である。
【図6】本発明の好適実施例の方法における処理のうち
待機解除プロセスの部分の処理を示したフローチャート
である。
【符号の説明】
100 データ処理システム 2 処理装置 4 中央処理装置(CPU) 6 メモリ 8 ハードディスク装置 10 フロッピーディスク装置 14 マウス 16 キーボード 18 ディスプレイ 31 デスクトップ 32、33 パネル(ウィンドウ)
フロントページの続き (72)発明者 ラリー・エム・ラッチマン アメリカ合衆国76039、テキサス州 アー ヴィング、マッカーサー・ブールバード 6304番地 ナンバー 1019

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 マルチタスク・ウィンドウ環境にて、隠
    蔽ウィンドウへの自動ナビゲーションを行なう方法にお
    いて、 前記隠蔽ウィンドウが、隠蔽されているものであること
    を判定する判定ステップと、 前記隠蔽ウィンドウを、前記マルチタスク・ウィンドウ
    環境のフォアグラウンド部分にディスプレイするディス
    プレイ・ステップと、を含んでいることを特徴とする方
    法。
  2. 【請求項2】 マルチタスク・ウィンドウ環境にて、隠
    蔽ウィンドウへの自動ナビゲーションを行なう装置にお
    いて、 前記隠蔽ウィンドウが、隠蔽されているものであること
    を判定するための判定手段と、 前記隠蔽ウィンドウを、前記マルチタスク・ウィンドウ
    環境のフォアグラウンド部分にディスプレイするための
    ディスプレイ手段と、を備えたことを特徴とする装置。
  3. 【請求項3】 隠蔽ウィンドウが隠蔽されているもので
    あることを判定するための前記判定手段が、 前記隠蔽ウィンドウの広がり域と、前記マルチタスク・
    ウィンドウ環境でディスプレイ可能な別のウィンドウの
    広がり域とを比較するための広がり域比較手段、を備え
    ていることを特徴とする請求項2記載の装置。
  4. 【請求項4】 隠蔽ウィンドウの広がり域と前記マルチ
    タスク・ウィンドウ環境でディスプレイ可能な別のウィ
    ンドウの広がり域とを比較するための前記広がり域比較
    手段が、 ウィンドウ操作コマンドをインターセプトするためのウ
    ィンドウ操作コマンド・インターセプト手段と、 前記ウィンドウ操作コマンドで操作される被操作ウィン
    ドウを識別するための被操作ウィンドウ識別手段と、 前記隠蔽ウィンドウの広がり域と、前記被操作ウィンド
    ウの広がり域とを比較するための比較手段と、を備えて
    いることを特徴とする請求項3記載の装置。
  5. 【請求項5】 隠蔽ウィンドウの広がり域と前記マルチ
    タスク・ウィンドウ環境でディスプレイ可能な別のウィ
    ンドウの広がり域とを比較するための前記広がり域比較
    手段が、 前記マルチタスク・ウィンドウ環境でディスプレイ可能
    な複数のウィンドウを記述しているテーブルにアクセス
    するためのテーブル・アクセス手段と、 前記隠蔽ウィンドウの広がり域と、前記マルチタスク・
    ウィンドウ環境でディスプレイ可能な前記複数のウィン
    ドウの各々の広がり域とを比較するための比較手段と、
    を備えていることを特徴とする請求項3記載の装置。
  6. 【請求項6】 隠蔽ウィンドウを前記マルチタスク・ウ
    ィンドウ環境のフォアグラウンド部分にディスプレイす
    るための前記ディスプレイ手段が、 前記隠蔽ウィンドウの隠蔽されている程度に従って決定
    した優先順位に基づいて、前記隠蔽ウィンドウの選択を
    行なうための選択手段、を備えていることを特徴とする
    請求項2記載の装置。
  7. 【請求項7】 隠蔽ウィンドウを前記マルチタスク・ウ
    ィンドウ環境のフォアグラウンド部分にディスプレイす
    るための前記ディスプレイ手段が、 前記隠蔽ウィンドウとの間に重なり部分を有するその他
    のウィンドウの個数に従って決定した優先順位に基づい
    て、前記隠蔽ウィンドウの選択を行なうための選択手
    段、を備えていることを特徴とする請求項2記載の装
    置。
  8. 【請求項8】 隠蔽ウィンドウを前記マルチタスク・ウ
    ィンドウ環境のフォアグラウンド部分にディスプレイす
    るための前記ディスプレイ手段が、 複数の隠蔽ウィンドウのうちの1つのウィンドウをディ
    スプレイするために使用可能なディスプレイ領域を判定
    するための手段と、 前記複数の隠蔽ウィンドウのうちの1つのウィンドウを
    ディスプレイするための手段と、 前記複数の隠蔽ウィンドウのうちの前記1つのウィンド
    ウをディスプレイした後に残存する使用可能なディスプ
    レイ領域を判定するための手段と、 複数の隠蔽ウィンドウのうちの1つのウィンドウをディ
    スプレイするために使用可能なディスプレイ領域を判定
    するステップと、前記複数の隠蔽ウィンドウのうちの1
    つのウィンドウをディスプレイするステップと、前記複
    数の隠蔽ウィンドウのうちの前記1つのウィンドウをデ
    ィスプレイした後に残存する使用可能なディスプレイ領
    域を判定するステップとを、前記残存する使用可能なデ
    ィスプレイ領域が、前記複数の隠蔽ウィンドウのうちの
    次の1つのウィンドウをディスプレイするには不十分に
    なるまで、反復して実行するための手段と、を備えてい
    ることを特徴とする請求項2記載の装置。
  9. 【請求項9】 マルチタスク・ウィンドウ環境にて、隠
    蔽ウィンドウへの自動ナビゲーションを可能にする方法
    において、 前記隠蔽ウィンドウが、隠蔽されているものであること
    を判定するための判定手段を用意するステップと、 前記隠蔽ウィンドウを、前記マルチタスク・ウィンドウ
    環境のフォアグラウンド部分にディスプレイするための
    ディスプレイ手段を用意するステップと、を含んでいる
    ことを特徴とする方法。
JP5157016A 1992-07-31 1993-06-28 デスクトップ上の隠蔽ウィンドウへのナビゲーションを行なう方法及び装置 Pending JPH06103015A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US92369892A 1992-07-31 1992-07-31
US923698 2004-08-24

Publications (1)

Publication Number Publication Date
JPH06103015A true JPH06103015A (ja) 1994-04-15

Family

ID=25449123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5157016A Pending JPH06103015A (ja) 1992-07-31 1993-06-28 デスクトップ上の隠蔽ウィンドウへのナビゲーションを行なう方法及び装置

Country Status (2)

Country Link
EP (1) EP0583206A1 (ja)
JP (1) JPH06103015A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0820000B1 (en) * 1996-07-17 2002-10-09 International Business Machines Corporation Mechanism to control visible presence of desktop objects in a graphical user interface
US5859639A (en) * 1996-07-17 1999-01-12 International Business Machines Corporation Mechanism to control visible presence of desktop objects in a graphical user interface
JPH10283158A (ja) 1997-02-04 1998-10-23 Fujitsu Ltd ウィンドウの立体表示装置及びその方法
US8191003B2 (en) * 2007-02-14 2012-05-29 International Business Machines Corporation Managing transparent windows
JP5031588B2 (ja) * 2008-01-07 2012-09-19 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置及びプログラム
CN104820558B (zh) * 2015-05-11 2018-03-30 北京白鹭时代信息技术有限公司 一种拾取被遮挡图像的方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0429297A (ja) * 1990-05-25 1992-01-31 Matsushita Electric Ind Co Ltd ウィンドゥ管理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0727349B2 (ja) * 1985-07-01 1995-03-29 株式会社日立製作所 マルチウインドウの表示制御方式
JP2680076B2 (ja) * 1988-10-28 1997-11-19 株式会社日立製作所 マルチウィンドウの画面表示方法
JP2538040B2 (ja) * 1989-03-22 1996-09-25 松下電器産業株式会社 プロセス優先度設定方法及びマルチプロセス管理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0429297A (ja) * 1990-05-25 1992-01-31 Matsushita Electric Ind Co Ltd ウィンドゥ管理装置

Also Published As

Publication number Publication date
EP0583206A1 (en) 1994-02-16

Similar Documents

Publication Publication Date Title
US5767834A (en) Method of resetting a computer video display mode
US6025841A (en) Method for managing simultaneous display of multiple windows in a graphical user interface
US6072486A (en) System and method for creating and customizing a deskbar
US6040833A (en) Method and system for display manipulation of multiple applications in a data processing system
US5621880A (en) Method and apparatus for providing contextual navigation to historical data
US5040131A (en) Graphical processing
US6201539B1 (en) Method and system for customizing a data processing system graphical user interface
US5977973A (en) Window linking
EP0703563A2 (en) Method and apparatus for displaying overlapping graphical objects on a computer monitor
EP0349459B1 (en) Method for accessing selected windows in a multi-tasking system
US5721849A (en) Method, memory and apparatus for postponing transference of focus to a newly opened window
US5140677A (en) Computer user interface with window title bar mini-icons
US5874962A (en) System and method for arranging windows displayed by a graphical user interface
US5920315A (en) Multi-pane window with recoiling workspaces
US6133918A (en) Computer system with graphical user interface including drawer-like windows
US5835091A (en) Manipulating and displaying a plurality of views in a graphical user interface
US6215490B1 (en) Task window navigation method and system
US5528259A (en) Method and system for multi-dimensional scrolling of displayed data collections in a data processing system
US5666498A (en) Method, memory and apparatus for automatically resizing a window
US5818423A (en) Voice controlled cursor movement
US6054985A (en) Data processing system and method for simulating compound objects
JP2552071B2 (ja) 異なるグラフィック・ユーザ・インタフェースでサポートされる複数のウィンドウを同時に提示するための方法及びシステム
JPH09269885A (ja) ウィンドウのサイズ変更方法及びグラフィカル・ユーザ・インタフェース
US5745111A (en) Method and system for automatic presentation of default-drop target icons at window borders
JPH0467647B2 (ja)