JPH09504884A - オブジェクト指向ディスプレイ・システム - Google Patents

オブジェクト指向ディスプレイ・システム

Info

Publication number
JPH09504884A
JPH09504884A JP7512578A JP51257895A JPH09504884A JP H09504884 A JPH09504884 A JP H09504884A JP 7512578 A JP7512578 A JP 7512578A JP 51257895 A JP51257895 A JP 51257895A JP H09504884 A JPH09504884 A JP H09504884A
Authority
JP
Japan
Prior art keywords
window
area
computer system
storage
areas
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.)
Granted
Application number
JP7512578A
Other languages
English (en)
Other versions
JP3544666B2 (ja
Inventor
ローゼンシュタイン,ラリー,エス.
Original Assignee
オブジェクト テクノロジー ライセンシング コーポレイション
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 オブジェクト テクノロジー ライセンシング コーポレイション filed Critical オブジェクト テクノロジー ライセンシング コーポレイション
Publication of JPH09504884A publication Critical patent/JPH09504884A/ja
Application granted granted Critical
Publication of JP3544666B2 publication Critical patent/JP3544666B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 オブジェクト指向ウィンドウ・マネージャは別々のアプリケーション・プログラムによって生成されたウィンドウ表示間を調整する機能を提供し、表示されたウィンドウが変更されるたびに各アプリケーション・ウィンドウの可視エリアを計算し、ストアすることによってこの調整を行っている。各アプリケーション・プログラムはスクリーン・バッファ・メモリと直接にやりとりすることにより、その表示エリアに対応するスクリーン部分を、ウィンドウ・マネージャによって計算された可視エリアを使用して再ドローイング(再描画)する。また、各アプリケーション・プログラムは、アプリケーション・プログラムからは見えない柔軟性のある表示機能を備えたウィンドウ・オブジェクトを作成することによってオブジェクト指向ウィンドウ・マネージャとやりとりする。可視エリアの計算時間を削減するためにいくつかの手法が用いられている。第一に、上述したように、可視エリアのコピーは各ウィンドウ・オブジェクトにストアまたは「キャッシュ」される。このコピーは、もしアプリケーション・プログラムがウィンドウ・エリアを再ドローイングする必要が起こった場合、およびその可視エリアが変更されていなかったときに使用することができる。さらに、ウィンドウ・マネージャは、単一のウィンドウだけが変更されたことを想定するルーチンを使用して各アプリケーション・ウィンドウの新しい可視エリアを計算し、ウィンドウの新可視エリアを旧可視エリアと比較して変更エリアを得ている。この変更エリアは、変更されたウィンドウの背後にあるすべてのウィンドウの可視エリアを再計算するときに使用される。

Description

【発明の詳細な説明】 オブジェクト指向ディスプレイ・システム 著作権表記 本特許出願の一部には、著作権保護の対象となる内容が含まれている。著作権 所有者は、米国特許商標庁に記録されている特許文書または特許開示内容を何人 もが原文通りに複製することを妨げるものではない。 発明の分野 本発明はコンピュータ・システムにおける改良に関し、具体的には、グラフィ ック・ユーザ・インタフェースにおいてウィンドウ・ディスプレイ・エリアを管 理するためのオペレーティング・システム・ソフトウェアに関する。 発明の背景 現代のコンピューティング・システムの最も重要な側面の1つは、人間のユー ザとマシンとの間のインタフェースである。初期の最もポピュラーなタイプのイ ンタフェースはテキストをベースとしていた。つまり、ユーザはテキスト文字を キーボードからタイプすることでマシンと通信し、マシンはテキスト文字をディ スプレイ・スクリーン上に表示することでユーザと通信していた。最近では、グ ラフィック・ユーザ・インタフェース(graphic user interface)がポピュラーに なっているが、そこではマシンはテキストとピクチャを含むグラフィックスをデ ィスプレイ・スクリーン上に表示することによってユーザと通信し、ユーザはテ キスト・コマンドをタイプするだけではなく、表示されたピクチャをマウスなど のポインティング・デバイスで操作することによってマシンと通信している。 最新コンピュータ・システムの多くは、ウィンドウ環境と呼ばれるグラフィッ ク・ユーザ・インタフェースを使用して動作している。代表的なウィンドウ環境 では、ディスプレイ・スクリーン上で縦長に表示されるグラフィカル・ディスプ レイが電子的「デスクトップ」の表面と同じように配置され、コンピュータ上で 実行される各アプリケーション・プログラムは、1つ以上の電子的「ペーパ・シ ート」で表され、これらシートは「ウィンドウ」と呼ばれるスクリーンの長方形 領域に表示される。 各ウィンドウ領域には、関連のアプリケーション・プログラムによって生成さ れた情報が表示されるのが一般的であり、複数のウィンドウ領域が同時にデスク トップ上に存在することもあり、その場合は、各ウィンドウ領域は異なるアプリ ケーション・プログラムによって生成された情報を表している。アプリケーショ ン・プログラムは、イメージ、グラフィックスまたはテキストをウィンドウ領域 内でドロー(描画)または「ペイント」することによって、情報を各ウィンドウ を通してユーザに提示している。ユーザの方は、ウィンドウ領域内のオブジェク トを、ポインティング・デバイスで制御されるカーソルで「ポイント」(指すこ と)して、オブジェクトを操作または移動することにより、さらに、情報をキー ボードからタイプインすることによりアプリケーションと通信している。ウィン ドウ領域はディスプレイ・スクリーン上で各所に動かしたり、サイズや外観を変 更したできるので、ユーザはデスクトップを都合のよいように配置することが可 能になっている。 ウィンドウ領域の各々は、サイジング・ボックス(sizing box)、ボタン、スク ロール・バーなどの、いくつかの標準グラフィカル・オブジェクトを含んでいる のが代表的である。これらは、ユーザがカーソルでポイントして選択し、操作で きるというユーザ・インタフェース・デバイスの特徴を表している。これらのデ バイスが選択され、操作されると、ウィンドウ・システムを通してその基となる アプリケーション・プログラムに対して、ユーザの操作による制御が行われたこ とが、通知される。 一般的に、上述したウィンドウ環境はコンピュータのオペレーティング・シス テムの一部になっている。オペレーティング・システムはユーティリティ・プロ グラム群も含んでいるのが代表的である。ユーティリティ・プログラムは、コン ピュータ・システムが基本的操作を実行することを可能にするものである。基本 的操作としては、情報をディスク・メモリにストアし、そこから情報を取り出す こと、ファイルの作成、命名、改名といったファイル操作を実行すること、場合 によっては、誤動作の検出や回復のための診断操作を実行すること、などの操作 がある。 コンピュータ・システムの最後の部分は「アプリケーション・プログラム」で あり、これはオペレーティング・システムとやりとりすることによって、さらに ハイレベルの機能を実現し、特定のタスクを実行し、ユーザとの直接的インタフ ェースを提供する。アプリケーション・プログラムは、一連のタスク・コマンド をオペレーティング・システムに渡し、これを受けてオペレーティング・システ ムが要求タスクを実行することにより、オペレーティング・システムの機能を利 用するのが代表的である。例えば、オペレーティング・システムが特定の情報を コンピュータのディスク・メモリにストアすること、あるいはビデオ・ディスプ レイから情報を表示することをアプリケーション・プログラムが要求することが できる。 図1は、アプリケーション・プログラムとオペレーティング・システムの双方 を利用する、代表的な従来のコンピュータ・システムを示す概略図である。コン ピュータ・システムは点線の枠100で示され、アプリケーション・プログラム は枠102で示され、オペレーティング・システムは枠106で示されている。 アプリケーション・プログラム102とオペレーティング・システムとの前述し たやりとりは、矢印104で図示されている。このデュアル・プログラム・シス テムは、メインフレームからパーソナル・コンピュータに至るまでの、多種類の コンピュータ・システムで使用されている。 スクリーン・ディスプレイの扱い方はコンピュータによって異なり、この点に 関して、図1は従来のパーソナル・コンピュータ・システムを示している。スク リーン・ディスプレイを提供するためには、アプリケーション・プログラムは表 示すべき情報をスクリーン・バッファ110にストアしておくのが一般的である (このストア操作は矢印108で図示されている)。システム内の種々のハード ウェアとソフトウェアの制御の下で、スクリーン・バッファ110の内容はバッ ファから読み出され、矢印114で図示するように、ディスプレイ・アダプタ1 12に渡される。ディスプレイ・アダプタ112はハードウェアとソフトウェア (ファームウェアの形になっていることもある)を内蔵しており、スクリーン・ バッファ110に入っている情報を、ケーブル116でディスプレイ・アダプタ 112に接続されたディスプレイ・モニタ118をドライブするために使用でき る形体に変換する。 図1に示す従来の構成は、どの時点においても単一のアプリケーション・プロ グラム102を動かすシステムで好適に作動する。この単純なシステムが正しく 作動するのは、上記単一のアプリケーション・プログラム102がスクリーン・ バッファ領域110全体のいずれかの領域に情報を書き込んでも、表示の問題が 起こらないためである。しかし、図1に示す構成を、2つ以上のアプリケーショ ン・プログラム102を同時に動作状態にできるようなシステム(例えば、「マ ルチタスキング」コンピュータ・システム)で使用すると、表示の問題が発生す るおそれがある。具体的には、各アプリケーション・プログラムがスクリーン・ バッファ110全体に対してアクセスできるとき、アプリケーション同士がなん らかの方法で直接に連絡し合っていないと、あるアプリケーションは別のアプリ ケーションが使用しているスクリーン・バッファ部分をオーバライト(重書き) するおそれがあるので、一方のアプリケーションによって生成された表示が他方 のアプリケーションによって生成された表示でオーバライトされることになる。 そのために、複数のアプリケーション・プログラムのオペレーションを調整す るためのメカニズムが開発され、各アプリケーション・プログラムをスクリーン ・バッファの一部だけに限定し、それにより、他のディスプレイから切り離すよ うにしている。この調整は、複数のウィンドウがスクリーン・ディスプレイ上で 「オーバラップ」することを許容しているシステムでは複雑化する。ウィンドウ が「オーバラップ」して現れるようにスクリーン・ディスプレイが構成されてい るときは、スクリーン上で別のウィンドウの「手前」に現れるウィンドウはその 下のウィンドウの一部に被さって隠すことになる。従って、最も手前のウィン ドウを除き、その下のウィンドウは、一部だけがスクリーン上に描画されるので 、どの時点でも「可視である」のはその部分だけになる。さらに、ウィンドウは ユーザが動かしたり、サイズを変えたりできるので、各ウィンドウで可視な部分 は、他のウィンドウを動かしたり、サイズを変えたりすると、変化することにな る。そのために、各アプリケーション・プログラムに割り当てられたスクリーン ・バッファ部分も、他のアプリケーションからのウィンドウを動かしたり、サイ ズを変えたりすると変化することになる。 ウィンドウを動かしたり、サイズを変えたりすると起こる、迅速なスクリーン 変化に対処するために必要なスクリーン・バッファの変更を効率的に管理するた めに、図1に示す従来のコンピュータ構成は図2に示すように改良されている。 この新しい構成では、コンピュータ・システム200はコンピュータ・システム で同時に実行されている、1つ以上のアプリケーション・プログラムによって制 御されている。なお、図には、プログラム202と216が示されており、コン ピュータシステムにおいて同時に移動する。プログラムの各々は、矢印206と 220で図示するように、オペレーティング・システム204と接続されている 。しかし、ディスプレイ・スクリーン上で情報を表示するために、アプリケーシ ョン・プログラム202と216は、オペレーティング・システム204内に置 かれている中央ウィンドウ管理プログラム218に表示情報を送っている。ウィ ンドウ管理プログラム218の方は、矢印208で図示するようにスクリーン・ バッファ210と直接的に接続されている。スクリーン・バッファ210の内容 は、矢印212で示すように、ケーブル222でディスプレイ・モニタ224に 接続されたディスプレイ・アダプタ214に渡される。 このようなシステムでは、ウィンドウ・マネージャ218は、ウィンドウ表示 の全てのメンテナンス、すなわち、アプリケーション・プログラムの動作時にユ ーザが見るウィンドウ表示についての全てをメンテナンス(管理)することを受 け持つのが一般である。ウィンドウ・マネージャ218は、すべてのアプリケー ション・プログラムと連絡をとっているので、ウィンドウ表示がオーバラップし ないようにアプリケーション間の調整を行うことができる。従って、ウィンドウ の位置とサイズを記録しておくと共に、ドロー(描画)し、ウィンドウの移 動時に再ドローしなければならないウィンドウ・エリアを記録しておくのはウィ ンドウ・マネージャの仕事である。 ウィンドウ・マネージャ218はアプリケーション202と216の各々から 表示要求を受け取る。しかし、ウィンドウ・マネージャ218だけがスクリーン ・バッファ210と接続するので、ウィンドウ・マネージャはスクリーン・バッ ファ210のそれぞれのエリアを各アプリケーション用に割り振ることができ、 別のアプリケーションよって生成された表示を誤って各アプリケーションがオー バライトすることがないようにする。図2に示す構成を利用するウィンドウ環境 は、数種類の異なるものが市販されている。そのようものとして、X/Wind owオペレーティング環境、マイクロソフト社によって開発されたWINDOW Sグラフィカル・ユーザ・インタフェース、およびインターナショナル・ビジネ ス・マシンズ(IBM)社によって開発されたOS/2プレゼンテーション・マ ネージャがある。 これらのウィンドウ環境の各々は独自の内部ソフトウェア・アーキテクチャを もっているが、これらのアークテクチャはいずれも、コンピュータ・ネットワー ク・ソフトウェアを記述するために使用される多層(マルチレイヤ)モデルに類 似した多層モデルを使用することにより分類することができる。代表的な多層モ デルは次のような層(レイヤ)を含んでいる。 ユーザ・インタフェース ウィンドウ・マネージャ 資源管理と通信 コンポーネント・ドライバ・ソフトウェア コンピュータ・ハードウェア ただし、「ウィンドウ環境」という用語は上記の層のすべてを一体化したものを 指している。 最下位の、つまり、コンピュータ・ハードウェア・レベルには、ディスプレイ ・モニタ、キーボード、ポインティング・デバイス(マウスやトラックボールな ど)を含む基本的コンピュータおよび関連入出力デバイス、ならびにその他の標 準コンポーネント(プリンタやディスク・ドライブなど)が含まれている。次 のレベルの「コンポーネント・ドライバ・ソフトウェア」は、デバイス依存ソフ トウェアからなり、これは、種々のハードウェア・コンポーネントの動作に必要 なコマンドおよび信号を生成する。資源管理と通信層はコンポーネント・ドライ バと接続し、ソフトウェア・ルーチン、すなわち、資源を割り振り、アプリケー ション相互間で通信し、上位層によって生成された通信内容を下位層に多重通信 するソフトウェア・ルーチンを含んでいる。ウィンドウ・マネージャは基本的ウ ィンドウ操作に対するユーザ・インタフェースを取り扱う。このような基本的ウ ィンドウ操作としては、ウィンドウの移動およびサイズ変更、ウィンドウの起動 と終了、ウィンドウの再ドローと再ペイントなどがある。最後のユーザ・インタ フェース層は、ハイレベル機能、すなわち、アプリケーション・プログラムが完 全なユーザ・インタフェースを開発するために使用する種々のコントロール(ボ タン、スライダ、ボックス、その他のコントロール)を実現するハイレベル機能 を提供する。 図2に示す構成はディスプレイ・スクリーン干渉問題を解決しているが、この 構成には、アプリケーション・プログラムの全てによって生成されたスクリーン ・ディスプレイ要求をウィンドウ・マネージャ218に処理させなければならな いという欠点がある。これらの要求は直列的にしか処理できないので、要求はウ ィンドウ・マネージャへ渡すための待ち行列(queu)に置かれてから、各要求は処 理され、端末224上の表示を生成する。多数のウィンドウがスクリーン上に同 時に存在するような表示では、ウィンドウ・マネージャ218は表示情報の「ボ トルネック」になりやすいので、アプリケーション・プログラム202と216 による迅速な表示の変更の妨げになる。ウィンドウがユーザによって移動または 再位置付けされたときに起こる、スクリーン再ドローの遅延は、ウィンドウが外 見上断片的に作られていると、煩わしくなり、システムのオペレーションからか け離れることになるので、顕在化することがよくある。 以上に鑑みて、本発明の目的は、アプリケーション・プログラムと接続し、各 アプリケーション・プログラムによって生成されたスクリーン表示を高速にかつ 効率的に再ドローできるようにするウィンドウ・マネージャを提供することにあ る。 本発明の別の目的は、アプケーション・プログラムの全ての表示の生成を調整 して、アプリケーション・プログラムが相互に干渉し合ったり、スクリーンの表 示上で相互にオーバライトするのを防止するウィンドウ・マネージャを提供する ことにある。 さらに、本発明の別の目的は、アプリケーション・プログラムが実際のインプ リメンテーション詳細にとらわれることなく、単純なコマンド構造によってアプ リケーション・プログラムとの対話することができるウィンドウ・マネージャを 提供することである。 さらに、本発明の別の目的は、スクリーン表示プロセスに対する詳細な制御を 必要とするアプリケーション・プログラム開発者が、フルセットの表示制御コマ ンドであって、各アプリケーション・プログラムが使用しなくてもよい表示制御 コマンドによって、上記制御を達成できるようにするウィンドウ・マネージャを 提供することにある。 発明の概要 上述した問題を解消し、上述した目的を達成するために、本発明の図示の実施 例によれば、オブジェクト指向のウィンドウ・マネージャは、表示されているウ ィンドウが変更されるたびに、各アプリケーション・ウィンドウの可視エリア(v isible area)を計算し、ストアすることにより、別々のアプリケーション・プロ グラム間の調整を行う機能を備えている。各アプリケーションはスクリーン・バ ッファ・メモリと直接にやりとりすることにより、ウィンドウ・マネージャによ って計算された可視エリアを使用してそのディスプレイ・エリアに対応するスク リーン部分を再ドローする。 各アプリケーション・プログラムは、柔軟性に富んだ表示機能を備えたウィン ドウ・オブジェクトを作成することによりオブジェクト指向ウィンドウ・マネー ジャと通信するが、表示機能はアプリケーション・プログラムからは見えないよ うになっている。ウィンドウ・オブジェクトは、ウィンドウ・マネージャと直接 的に接続するためのコマンドと、ウィンドウ・マネージャによって計算された関 連の可視エリアを一時的にストアしておくデータ・エリアとを含んでいる。 可視エリアの計算時間を削減する手法のいくつかが使用される。第一は、上述 したように、可視エリアのコピーを各ウィンドウ・オブジェクトにストアまたは 「キャッシュ」する方法である。このコピーは、アプリケーション・プログラム がウィンドウ・エリアを再ドローする必要があって、可視エリアが変更されてい なかったとき使用することができる。さらに、ウィンドウ・マネージャは、可視 エリアの計算を高速化する2つのルーチンのうちの一方を用いて、各アプリケー ション・ウィンドウの可視エリアを計算する。そのルーチンの一方は単一のウィ ンドウだけが変更されたことを想定して、ウィンドウの新しい可視エリアを元の 可視エリアと比較して変更エリアを求める。この変更エリアは変更ウィンドウの 背後にあるすべてのウィンドウの可視エリアを再計算するために使用される。他 方の再計算ルーチンは可視エリアのすべてを再計算するもので、ウィンドウが例 えば除去されたとき使用できる。 図面の簡単な説明 本発明の上記およびその他の利点をよりよく理解するために、以下、添付図面 を参照して説明する。添付図面において、 図1は従来のコンピュータ・システムを示す概要ブロック図であり、アプリケ ーション・プログラム、オペレーティング・システム、スクリーン・バッファお よびディスプレイ・モニタ間の関係を示している。 図2は図1に示す従来のシステムの改良型を示す概略ブロック図であり、同時 に実行されている複数のアプリケーション・プログラムがスクリーン表示を生成 することを可能にしている。 図3はコンピュータ・システム、例えば、本発明によるオブジェクト指向ウィ ンドウ・マネージャが稼働しているパーソナル・コンピュータ・システムを示す 概略ブロック図である。 図4は改良型コンピュータ・システムを示す概略ブロック図であり、複数のア プリケーション・プログラムとウィンドウ・マネージャとがスクリーン・バッ ファでやりとりして、グラフィック情報をディスプレイ・モニタから表示するこ とを示している。 図5は情報経路を示す概略ブロック図であり、アプリケーション・プログラム が本発明によるオブジェクト指向ウィンドウ・マネージャとどのようにやりとり するかを示している。 図6は、ウィンドウ指向のディスプレイをサポートするグラフィカル・ユーザ ・インタフェースの代表的な外観を示す概略図であり、ウィンドウのコンポーネ ントと部分を示している。 図7Aおよび図7Bは、アプリケーション・ウィンドウのサイズが変更された とき再ドローする必要のあるディスプレイ・スクリーン部分を示す図である。 図8は、アプリケーション・プログラムがオブジェクト指向ウィンドウ・マネ ージャとやりとりして、情報をディスプレイ・スクリーン上で表示するときのメ ソッドのフローチャートを示す図である。 図9は、新しいウィンドウを作成するときアプリケーション・プログラムによ って使用されるメソッドのフローチャートを示す図である。 図10は、既存のウィンドウをディスプレイから削除するとき使用されるメソ ッドのフローチャートを示す図である。 図11は、アプリケーション・プログラムが可視エリア情報をオブジェクト指 向ウィンドウ・マネージャに要求するときのメソッドのフローチャートを示す図 である。 図12は、ウィンドウ・オブジェクトがウィンドウ・マネージャとやりとりす ることにより新しいウィンドウを作成するときのメソッドのフローチャートを示 す図である。 図13は、ウィンドウ・オブジェクトがウィンドウ・マネージャとやりとりす ることによりウィンドウを削除するときのメソッドのフローチャートを示す図で ある。 図14は可視エリア・マネージャとウィンドウ・マネージャが、選択したウィ ンドウを他のウィンドウの手前に置くようにウィンドウ・ディスプレイを並べ換 えるときのメソッドのフローチャートを示す図である。 図15は、新しいウィンドウがウィンドウ・マネージャに置かれた可視エリア ・マネージャによってアクチベートされるときのメソッドのフローチャートを示 す図である。 図16は、新しいウィンドウの配列またはサイズが変更されたとき可視エリア ・マネージャが新しい可視エリアを計算するときのメソッドのフローチャートを 示す図である。 図17は、1つのウィンドウだけが変更されている、ウィンドウの新しい可視 エリアを計算するために可視エリア・マネージャによって使用されるメソッドの フローチャートを示す図である。 発明の好適実施例の詳細な説明 本発明は、好ましくは、IBM社PS/2またはアップル社マッキントッシュ ・コンピュータなどのパーソナル・コンピュータに内蔵されているオペレーティ ング・システムを背景に実施される。図3は代表的なハードウェア環境を示しも ので、本発明によるコンピュータ300の代表的なハードウェア構成を示してい てる。このコンピュータ300は中央処理ユニット302(これは従来のマイク ロプロセッサにすることが可能である)によって制御され、すべてがシステム・ バス308を介して相互接続されている複数の他のユニットは特定のタスクを遂 行するためのものである。特定のコンピュータは図3に示すユニットの一部だけ を装備している場合もあれば、図示していない別のコンポーネントを装備してい る場合もあるが、大部分のコンピュータは少なくとも図示のユニットを装備して いる。 具体的には、図3に示すコンピュータ300は、情報を一時的にストアしてお くためのランダム・アクセス・メモリ(RAM)306、コンピュータの構成と 基本的操作コマンドを永続的にストアしておくためのリードオンリ・メモリ(R OM)304、およびディスク・ユニット313やプリンタ314などの周辺デ バイスをそれぞれケーブル315,312を介してバス308に接続するための 入出力(I/O)アダプタ112を装備している。また、ユーザ・インタ フェース・アダプタ316は、キーボード320などの入力デバイスおよびマウ ス、スピーカ、マイクロホンなどの他の公知インタフェース・デバイスをバス3 08に接続するためのものである。ビジュアル出力は、バス308をビデオ・モ ニタなどのディスプレイ・デバイス322に接続するディスプレイ・アダプタ3 18から得られる。ワークステーションは、そこに常駐しているアップル・ジス テム/7オペレーティング・システムなどのオペレーティング・システム・ソフ トウェアによって制御され、調整されている。 好適実施例において、本発明はオブジェクト指向プログラミング技法を用いて C++プログラミング言語で実現されている。C++はコンパイラ型言語(compiled language)である。つまり、プログラムは人間が理解できるスクリプト(human-re adable script)で書かれ、このスクリプトはコンパイラと呼ばれる別のプログラ ムに渡される。これを受けて、コンパイラはマシン可読の数値コードを生成する 。このコードはコンピュータにロードすることも、コンピュータに直接に実行さ せることも可能である。下述するように、C++言語はある種の特性をもっている 。この特性によると、ソフトウェア開発者は他人が書いたプログラムを簡単に利 用することができると同時に、プログラムの再利用の管理を強化することにより プログラムの破壊や正しくない使用を防止することができる。C++言語は周知で あり、この言語を詳しく説明した論文や文献が多数発表されている。さらに、C ++コンパイラは、Borland International,Inc.やマイクロソフト社などの、数 社のベンダから市販されている。従って、以下では、混乱を避けるために、C++ 言語の詳細とC++コンパイラの動作については、これ以上詳しく説明することは 省略する。 この分野の精通者ならば理解されるように、オブジェクト指向プログラミング (Object-Oriented Programming‐ OOP)技法では、「オブジェクト」を定義し、 作成し、使用し、消去することからなっている。これらのオブジェクトは、デー タ・エレメントと、そのデータ・エレメントを操作するルーチン、つまり、関数 とからなるソフトウェア・エンティティ(software entity)である。データおよ び関連の関数は、ソフトウェアによってエンティティとして扱われ、あたかも1 つのアイテム(項目)であるかのように、作成し、使用し、削除することができ る。データと関数が一緒になって、オブジェクトは、その特性(これはデータ・ エレメントで表すことができる)とその振舞い(behavior)(これはそのデータ操 作関数で表すことができる)からとらえて、ほとんどどのような実世界のエンテ ィティでもモデル化することができる。このようにすると、オブジェクトは人や コンピュータのような具体物をモデル化することも、数や幾何学的デザインのよ うな抽象的概念をモデル化することもできる。 オブジェクトは「クラス」を作成することにより定義される。クラスとは、そ れ自体はオブジェクトでないが、実際のオブジェクトをどのように構築するかを コンパイラに指示するテンプレートの働きをするものである。例えば、クラスは データ変数の数とタイプ、およびデータを操作する関数を実行するのに必要なス テップを指定することができる。オブジェクトは、実際には、コンストラクタ(c onstructor)と呼ばれる特殊な関数によってプログラムの中に作成される。つま り、コンストラクタは対応するクラス定義と、オブジェクト作成期間に渡される 引数などの追加情報とを使用して、オブジェクトを構築する。同様に、オブジェ クトは、デストラクタ(destructor)と呼ばれる特殊な関数によって破壊(消去) される。オブジェクトはそのデータを使用し、その関数を呼び出すことによって 使用することができる。オブジェクト指向プログラミング技法の主な利点は、3 つの基本原理、つまり、カプセル化(encapsulation)、多態(polymorphism)およ び継承(inheritance)に起因している。具体的に説明すると、オブジェクトは、 内部データ構造と内部関数のすべてまたは一部を外部から見えないように、つま り、カプセル化するように設計することができる。これを具体的に説明すると、 プログラム設計期間に、プログラム開発者は、データ変数のすべてまたは一部お よび関連関数のすべてまたは一部が「私有(private)」、つまり、そのオブジェ クト自身だけが使用するものと扱われるようなオブジェクトを定義することが可 能である。その他のデータまたは関数は「公開(public)」、つまり、他のプログ ラムが使用できるものと宣言することができる。他のプログラムによる私有変数 へのアクセスは、そのオブジェクトの私有データをアクセスするオブジェクト用 に公開関数を定義することによって制御することができる。公開関数は、私有デ ータと「外部」世界とを結ぶ、制御され た統一的インタフェースとなるものである。私有変数を直接にアクセスするプロ グラム・コードを書くようなことをすると、コンパイラはプログラムのコンパイ ル時にエラーを引き起こし、そのエラー個所でコンパイル・プロセスは中止され るので、プログラムは実行されないことになる。 多態は、全体のフォーマットが同じであるが、異なるデータを取り扱うオブジ ェクトと関数が異なる働き方をして、統一的な結果を得られるようにする概念で ある。例えば、加算関数は、変数Aプラス変数B(A+B)と定義することがで き、AとBが数であるか、文字であるか、またはドルとセントであるかに関係な く、この同じフォーマットを使用することができる。しかし、加算を実行する実 際のプログラム・コードは、AおよびBを構成する変数のタイプによって大幅に 異なることがある。多態によると、変数の各タイプ(数、文字、およびドル)別 に3種類の関数定義を書くことができる。関数が定義されたあと、プログラムは いつでも、その共通フォーマット(A+B)によってその加算関数を参照するこ とができ、コンパイル時には、C++コンパイラは、3つの関数のどれが実際に使 用されているかを、変数のタイプを調べることによって判断する。そのあと、コ ンパイラは正しい関数コードを代入する。多態によると、類似の結果を出力する 類似の関数をプログラムのソース・コードの中で「グループ化」して、より論理 的で明確化されたプログラムの流れを得ることができる。 オブジェクト指向プログラミングの基礎となっている第3の原理である継承に よると、プログラム開発者は既存のプログラムを容易に再利用できるので、ソフ トウェアを初めから作る必要がなくなる。継承の原理によると、ソフトウェア開 発者はクラス(およびそのクラスからあとで作成されるオブジェクト)を、関連 するものとして宣言することができる。具体的には、クラスは他の基底クラス(b ase class)のサブクラスと指定することができる。サブクラスはその基底クラス の公開関数のすべてを「継承する」ので、その関数がサブクラスに置かれている のと同じように、その関数をアクセスすることができる。別の方法として、サブ クラスは継承した関数の一部または全部をオーバライドすることも、同じフォー マットの新しい関数を定義するだけで、継承した関数の一部または全部を変更す ることもできる(オーバライドまたは変更を行っても、基底クラスの関 数はめったに変更されず、サブクラスでの関数の使い方が変更されるだけである )。別のクラスの機能の一部を持つ(選択的変更による)新しいクラスを作成す ると、ソフトウェア開発者は既存のコードを特定の要求に合わせて容易にカスト マイズすることができる。 オブジェクト指向プログラミングは他のプログラミング概念に比べて大幅に改 善されているが、特に、変更の対象となる既存ソフトウェア・プログラムがない 場合プログラム開発には相当の時間量と作業量が必要である。その結果、従来の 手法では、オブジェクト群とその他の雑多なルーチンを作成するための、相互に 接続された事前定義クラス群をプログラム開発者のために用意しておく必要があ ったが、これらのルーチンはいずれも、普通に見られるタスクを特定の環境で実 行することを目的としていた。このような事前定義クラスとライブラリは普通「 フレームワーク」と呼ばれており、稼働アプリケーション用の事前に作られた構 造を提供している。 例えば、ユーザ・インタフェース用のフレームワークは、ウィンドウ、スクロ ールバー、メニューなどを作成する、事前定義のグラフィック・インタフェース ・オブジェクト群を提供すると共に、これらのグラフィック・インタフェース・ オブジェクトをサポートする機能と「デフォルト」の行動を提供する。フレーム ワークはオブジェクト指向技法に基づいているので、事前定義クラスを基底クラ スとして使用することができ、さらに、組込みのデフォルト行動を開発者が定義 したサブクラスによって継承して、変更またはオーバライドすることにより開発 者はフレームワークを拡張し、カストマイズした問題解決手法を特定の専門知識 分野で作成することができる。このオブジェクト指向手法が従来のプログラミン グに比べて大きな利点となっているのは、プログラマはオリジナル・プオグラム を変更するのではなく、むしろ、オリジナル・プログラムの機能を拡張しようと するからである。さらに、開発者がコード層を始めから最後まで盲目的に作業し ないのは、フレームワークにアーキテクチャに関するガイダンスとモデリングが 用意されており、それと同時に、開発者は問題分野に対する固有の特定アクショ ンを行わなくてもよいからである。 どのレベルのシステムに関心があるか、どのような問題を解決しようとしてい るかに応じて、フレームワークには多種類のものが用意されている。フレームワ ークの種類は、ユーザ・インタフェースの開発を支援するハイレベルのアプリケ ーション・フレームワークから、通信、印刷、ファイル・システム・サポー・ト 、グラフィックスなどの基本的システム・ソフトウェア・サービスを提供するロ ーレベルのフレームワークまでの範囲にわたっている。市販されているアプリケ ーション・フレームワークの例を挙げると、MacApp(アップル社)、Bedrock(Sy smantec社)、OWL(Borland社)、NeXT Step App Kit(NeXT 社)、およびSmallt alk-80 MVC(ParcPlace社)がある。 フレームワーク手法はカプセル化、多態および継承のすべての原理をオブジェ クト層に採用しており、他のプログラミング技法を大幅に改善しているが、いく つかの困難な問題が発生している。アプリケーション・フレームワークはモノリ シック・オペレーティング・システムに上乗せされた1つ以上のオブジェクト「 層」(レイヤ)から構成されているのが一般であり、オブジェクト層に柔軟性が あるとしても、もとの扱いずらい手続き型コールによるオペレーティング・シス テムと直接にやりとりする必要がよく起こっている。 アプリケーション・フレームワークがアプリケーション・プログラム用のプレ ハブ機能を開発者に提供しているのと同じように、好適実施例に取り入れられて いるようなシステム・フレームワークも、システム・レベルのサービス用のプレ ハブ機能を提供することができる。開発者は、これらの機能を変更またはオーバ ライドすることにより、カストマイズされた問題解決手法を作成することができ るので、従来のアプリケーション・フレームワーク・プログラムで必要であった 扱いずらい手続き型コールの使用を避けることができる。以下では、アプリケー ション・プログラムによって生成された情報を表示するウィンドウを作成、削除 および操作するときの土台を提供することができるディスプレイ・フレームワー クを例にして説明する。これらの機能を必要とするアプリケーション・ソフトウ ェア開発者は、通常は、これらの機能を得るために特定のルーチンを書く必要が あった。フレームワークを使用してこれを行う場合は、開発者は完成したディス プレイの特性と動作を与えるだけでよく、これらのタスクを実行する実際のルー チンはフレームワークから提供される。 好適実施例ではフレームワークの概念を採用し、アプリケーションとオペレー ティング・システムを含むシステム全体にこの概念を適用している。商業的なま たは企業の開発者、システム・インテグレータ、またはOEMにとっては、この ことは、MacAppなどのフレームワークについて説明してきた利点のすべては、テ キストやユーザ・インタフェースなどの事物についてはアプリケーション・レベ ルで、印刷、グラフィックス、マルチメディア、ファイル・システム、入出力、 テストなどのサービスについてはシステム・レベルで生かすことができる。 図4は、本発明のオブジェクト指向ウィンドウ・マネージャを利用するコンピ ュータ・システムを示す概要図である。コンピュータ・システムは全体が点線枠 400で示されており、複数のアプリケーション・プログラム(図にはアプリケ ーション・プログラム402と418が示されている)とオペレーティング・シ ステム404は、コンピュータのオペレーションを制御し、調整するために用意 されたものである。図4を簡略化するために、アプリケーション・プログラム4 02、418とオペレーティング・システム404とのやりとりは、スクリーン ・ディスプレイを取り扱うやりとりに限定されている。図に示すように、アプリ ケーション・プログラム402と418は両方とも、オペレーティング・システ ム404のウィンドウ・マネージャ420と接続している。他方、ウィンドウ・ マネージャ420は、矢印408で図示するように情報をスクリーン・バッファ へ送っている。 しかるに、本発明によれば、図4に示すように、アプリケーション・プログラ ム402、418も、矢印410と428で図示するように情報をスクリーン・ バッファ412へ直接に送っている。以下で詳しく説明するように、アプリケー ション・プログラム402、418は表示情報を直接にウィンドウ420へ渡し 、ウィンドウ表示が変更されたときは、ストアされた情報をウィンドウ・マネー ジャ420から取り出している。具体的に説明すると、ウィンドウが変更される と、ウィンドウ・マネージャ420は各ウィンドウの可視エリアを再計算してス トアしておく。このストアされた可視エリアはそれぞれのアプリケーション・プ ログラムによって取り出され、クリッピング領域として使用されて、アプリケー ション・プログラムはその中に表示情報をドローイングする。ウィンドウ の再ペイントまたはドローイングは、スクリーン・再ペイント速度を向上するた めにアプリケーション・プログラムによって同時に実行される。 アプリケーションの表示がディスプレイ・スクリーン上で分離されたままにな っているのは、ウィンドウ・マネージャ420が、ウィンドウの可視エリアのい ずれもがオーバラップしないようにこれらのエリアを再計算するからである。従 って、アプリケーション・プログラム402やアプリケーション・プログラム4 18のように、各アプリケーション・プログラムがウィンドウ・マネージャ42 0から送られてきた可視エリアにだけドローイングすれば、スクリーン・バッフ ァによって作られた表示内容がオーバラップしないことになる。表示情報がドロ ーイングされて、スクリーン・バッファ412に入れられると、この情報は矢印 414で示すように、ディスプレイ・アダプタ416に渡される。このディスプ レイ・アダプタはケーブルまたはバス424を介してディスプレイ・モニタ42 6に接続されている。 アプリケーション・プログラムとウィンドウ・マネージャとのやりとりは、図 5の系統図で詳しく示されている。前述したように、ウィンドウ・マネージャ( 図5にボックス510で示されている)は、オブジェクト指向のプログラムであ る。従って、アプリケーション・プログラム508は「オブジェクト」を作成し 操作することによって、ウィンドウ・マネージャと接続する。具体的には、各ア プリケーション・プログラムはウィンドウ・オブジェクト(例えば、ウィンドウ ・オブジェクト500)を作成して、ウィンドウ・マネージャ510と通信する 。そのあと、アプリケーション・プログラム508は矢印502で図示するよう にウィンドウ・オブジェクト500と通信する。ウィンドウ・マネージャ自体は 、オペレーティング・システムの始動時に作成されるオブジェクトであり、ウィ ンドウ・オブジェクトが作成されると、ウィンドウ・マネージャ510は関連の ウィンドウをディスプレイ・スクリーン上に作成する。 以下で詳しく説明するように、各ウィンドウ・オブジェクト500は小型のデ ータ・ストアまたは「キャッシュ」エリア(図示せず)を含んでおり、これは関 連ウィンドウの可視エリアをストアするために使用される。アプリケーション・ プログラムがその関連ウィンドウの1つで情報を再ドローイングする必要が起こ ると、ウィンドウ・オブジェクトは、まずキャッシュのステータス(状況)をチ ェックする。キャッシュ・エリアにストアされた情報が変更されていなければ、 この情報はウィンドウを再ドローイングするために使用される。キャッシュ・エ リアを使用すると、可視エリアをウィンドウ・マネージャ510から取り出す必 要がなくなるので、再ドローイング・オペレーションを完了するまでの時間が短 縮化される。 多数のウィンドウ・オブジェクトは、多数のウィンドウをディスプレイ・スク リーン上に同時に表示するように同時に作成することができるので、各ウィンド ウ・オブジェクトはデータ・ストリーム504を通してウィンドウ・マネージャ 510と通信する。データ・ストリーム504は、「ストリーム・オブジェクト 」、すなわち、情報をあるオブジェクトから別のオブジェクトへ転送するために 必要なソフトウェア・コマンドを収めている「ストリーム・オブジェクト」を作 成することにより作られる。例えば、ウィンドウ・オブジェクト500が情報を ウィンドウ・マネージャ・オブジェクト510へ転送する必要が起こると、ウィ ンドウ・オブジェクト500はデータを「ストリーム化」してウィンドウ・マネ ージャ・オブジェクト510に入れるストリーム・オブジェクトを作成する。同 様に、ウィンドウ・マネージャ・オブジェクト510が情報をウィンドウ・オブ ジェクト500へ送り返す必要が起こると、ウィンドウ・マネージャ・オブジェ クト510は、データを「ストリーム化」してウィンドウ・オブジェクト500 に入れるストリーム・オブジェクトを作成する。このようなストリーム・オブジ ェクトはそれ自体周知であるので、詳しく説明することは省略する。データをウ ィンドウ・オブジェクト500からウィンドウ・マネージャ・オブジェクト51 0へ伝達するストリーム・オブジェクトと、情報をウィンドウ・マネージャ・オ ブジェクト510からウィンドウ・オブジェクト500へ伝達するストリーム・ オブジェクトは矢印504で代表して示されている。 図5に示すように、ウィンドウ・マネージャ510は3つの主要部分から構成 されている。つまり、可視エリア・マネージャ506、共有データ・エリア51 2およびウィンドウ・リスト514である。可視エリア・マネージャ506は、 ウィンドウ・マネージャ510が作成されたときウィンドウ・マネージャ510 によって始動される独立タスクである。以下で詳しく説明するように、可視エリ ア・マネージャは、データ・ディスプレイ・スクリーン上で可視化できるウィン ドウの部分の管理を担当する。この目的のために、このマネージャは、ウィンド ウまたはそのウィンドウの「手前」に置かれている別のウィンドウが変更される と、ウィンドウの可視エリアを再計算する。また、ウィンドウの向きが変わった ときやサイズが変更されて、「デスクトップ」にあり、予め隠れていたエリアが 見えるようになったときに起こるデスクトップの損傷の修復といった、他のいく つかのハウスキーピング・タスクも実行する。 共有データ・エリア512は共有メモリと関連ストレージ内のエリアと、取出 しルーチンとからなり、これらは一緒になってウィンドウに関係する情報をスト アする。共有データ・エリアはウィンドウ・マネージャによって共有メモリ内に 作成され、共有データ・エリアの一部はウィンドウの各々に割り当てられ、可視 エリアのバージョンを示す「タイムスタンプ」を含む、種々のウィンドウ・パラ メータを収めている。 前述したような、可視エリアへアクセスするためのメッセージ・ストリームを 使用することを少なくするために、各ウィンドウ・オブジェクト500はローカ ル「キャッシュ」メモリも持っており、ここには、関連ウィンドウの可視エリア のコピーがストアされている。タイムスタンプもローカル・キャッシュ・メモリ にストアされ、このタイムスタンプは、可視エリア、すなわち、ウィンドウ・サ ーバから取り出された可視エリアの最後のバージョンを示している。アプリケー ション・プログラムは再ドローイング・オペレーションを開始するとき、可視エ リアをウィンドウ・オブジェクトから要求する。これを受けて、ウィンドウ・オ ブジェクトはタイムスタンプを共有メモリ・エリアから取り出し、取り出したタ イムスタンプをローカル・キャッシュ・メモリにストアされたタイムスタンプと 比較する。2つのタイムスタンプの比較の結果、可視エリアが変更されて いないことが分かると、ローカル・キャッシュ・メモリにストアされた可視エリ アのコピーが再ドローイング・オペレーションのために使用される。逆に、タイ ムスタンプの比較の結果、ウィンドウ・マネージャが可視エリアを更新していた ことが分かったときは、新しい可視エリアを取り出して、ローカル・キャッシュ ・エリアにストアしておく必要がある。タイムスタンプを単独で取り出すように すると、可視エリア全体を取り出す場合よりも高速化するので、ローカル・キャ ッシュに置かれたコピーが使用できるときは、総再ドローイング時間が削減され ることになる。 ウィンドウ・マネージャ510はウィンドウ・リスト514も保全し、これは 図示のようにリンク・リストとして実現され、システムに現在存在する各ウィン ドウの識別番号を収めている。本発明の好適実施例によれば、各ウィンドウには 、ウィンドウの「種類(kind)」が割り当てられている。ウィンドウの種類はその 全体が、スクリーン上に置かれているウィンドウの相対的位置に従っている種類 階層から選択される。図示している種類階層は次のようになっている(ウィンド ウ種類は図示のように、通常最前面のウィンドウ位置に現れるウィンドウ種類か ら始まっている)。 最前面位置 スクリーン・セーバ メニューバー メニュー ウィンドイド(フローティング・パレット および他の同種タイプのウィンドウ用) ドキュメント 最後方位置 デスクトップ ウィンドウ・マネージャはスクリーン上に表示されているウィンドウを自動的 に保全して、同種類のウィンドウがすべて種類「層」に一緒に置かれるようにす る。この配置は、種類層間の区画を示す「プレースホルダ」をウィンドウ・リス ト内に挿入することにより行われる。ウィンドウ・マネージャは、これらのプ レースホルダの1つに到達するまでウィンドウ・リスト全体にわたって繰り返し 、特定の種類層の終わりにいつ到達したかを判断して、新しい種類層の先頭から 始めることができる。 前述したように、好適実施例によれば、オペレーティング・システムは複数の タスクを同時に実行させる機能を備えているので、2つ以上のタスクが同時に動 作していると、相互にやりとりする可能性がある。この相互のやりとりは、2つ 以上のタスクが、共有データ・エリアやウィンドウ・リストなどのような共有資 源を同時にアクセスしようとすると起こることがある。従って、このようなやり とりを管理し、望ましくない干渉を防止するために並行性コントロール(concurr ency control)が必要になる。図示の並行性コントロール技法はセマフォ(semaph ore)と呼ばれるもので、一実施例で使用されている。セマフォとは、ある資源へ の並行アクセスの試みを「逐次化」する周知のデバイスである。具体的には、あ るタスクがセマフォによって制御されている資源をアクセスするには、その前に 、そのタスクはセマフォを「獲得」しなければならない。タスクが資源の使用を 終えると、そのセマフォを解放して、他のタスクが獲得できるようにする。一般 に、各セマフォは要求待ち行列(キュー)が関連づけられているので、受け付け られないセマフォを獲得しようとする要求は(セマフォが別のタスクによってす でに獲得されているので)待ち行列上で保留にされる。 現存システムでは、セマフォは複数の異なる共有資源を保護するために使用さ れている。具体的には、グローバル・ドローイング・セマフォはアプリケーショ ン・プログラムがウィンドウ・マネージャと相互に作用し合うのを防止するため に使用されている。可視エリアをアクセスする前に、各アプリケーション・プロ グラムはドローイング・セマフォを獲得しなければならない。現存システムで使 用されているドローイング・セマフォには、2つのモードがある。共有モードと 排他モードである。本発明によれば、アプリケーション・プログラムは他のアプ リケーション・プログラムと同時にスクリーン・バッファに書き込む場合がある ので、ドローイング・セマフォを「共有」モードで獲得しなければならない。ア プリケーション・プログラムはウィンドウ・マネージャによってスクリーン・バ ッファ内で別々に保たれているので、この同時アクセスは問題とならない。し かし、ウィンドウ・マネージャが新しいウィンドウの作成といったオペレーショ ンを行うと、すべてのウィンドウが影響を受けるので、ウィンドウ・マネージャ はドローイング・セマフォを「排他」モードで獲得しなければならない。ウィン ドウ・マネージャがドローイング・セマフォを排他的に獲得したときは、アプリ ケーションはそのセマフォを獲得できないので、スクリーン・バッファに書く込 むことができない。この排他的オペレーションは、変更の通知があるまでは、ア プリケーションがスクリーン・バッファの変更部分にオーバライト(重書き)す るのを禁止する。 同じように、グローバル・セマフォはウィンドウ・マネージャ510で共有デ ータ・エリア512を保護するために使用されるが、これは、この共有エリアも 共有資源であるためである。異なるアプリケーション・プログラムがウィンドウ ・サーバを使用して同時にアクセスすることからウィンドウ・リスト514を保 護するために類似のローカル・セマフォが使用される。種々のセマフォの獲得と 解放の具体的説明は、プログラムによって使用される実際のルーチンの説明個所 で詳しく説明する予定である。 図6は、代表的な「ウィンドウ環境」プログラムによって生成されるスクリー ン・ディスプレイを示す図である。ウィンドウ600はボーダ(境界)で囲まれ た矩形エリアであり、これは従来と同じように動かし、サイズを変えることがで きる。ウィンドウ600は、タイトル・バー606とメニューバー604を含ん でいるのが普通で、その各々はそれ自体が別のウィンドウを有している場合があ る。メニューバー604は周知の方法で操作される複数のプルダウン・メニュー (図示せず)へのアクセスを可能にし、ユーザが種々のファイル、編集および他 のコマンドへアクセスすることを可能にする。 タイトルバー606、メニューバー604およびボーダを除いたあとの、ウィ ンドウ内に残っているエリアは「クライアント」エリアと呼ばれ、ドローイング ・プログラムなどのアプリケーション・プログラムがドローまたはペイントする ことができるメイン・エリアを構成している。クライアント・エリアは「子」ウ ィンドウと呼ばれ、メイン・ウィンドウと関連づけられている別のウィンドウ を取り囲んでいる場合がある。この場合、メイン・ウィンドウは子ウィンドウと の関係で「親」ウィンドウと呼ばれている。各子ウィンドウには、それが親ウィ ンドウとなっている1つまたは複数のウィンドウを関連づけることも可能である (以下同様)。 多くのアプリケーション・プログラムはクライアント・エリアを、それぞれが 独立に制御される複数の子ウィンドウに細分割する。これらはドキュメント・ウ ィンドウ622、「ツールバー」または「パレット」ウィンドウ616、場合に よっては、ステータス・ライン・ウィンドウ(図示せず)を含んでいるのが代表 例である。ドキュメント・ウィンドウ622は水平および垂直スクロールバー6 18,614を備えることが可能であり、これらのバーを使用すると、ドキュメ ント・ウィンドウ内のオブジェクトをスクリーン上で動かすことができる。ドキ ュメント・ウィンドウ622は子ウィンドウ602,610,620に細分割す ることが可能であり、これらは相互にオーバラップすることもできる。どの時点 でも、通常は、子ウィンドウ602,610,620の1つだけがアクティブ状 態にあり、1つのウィンドウだけが入力「フォーカス」(input focus)をもっ ている。入力フォーカスを持つウィンドウだけが、マウスやキーボードなどの入 力デバイスからの入力アクションやコマンドに応答する。キーボード入力に応答 するウィンドウは、再位置付けやサイズ変更コマンド以外の入力に応答するので 非位置付けウィンドウ(non-positional window)とも呼ばれている。 ツールバー/パレット・ウィンドウ616は、アイコン608,602のよう に、使用頻度の高い、ある種のプログラムやサブルーチンを開始するときに使用 すると便利な複数のアイコン・イメージを含んでいるのが普通である。例えば、 アイコン608を選択すると、ボックスをスクリーン上にドローするドローイン グ・ルーチンを開始することができ、アイコン612を選択すると、スペリング ・チェック・ルーチンを開始することができる。この種のツールバーとパレット の操作は一般に周知であるので、詳細説明は省略する。 表示の制御はマウスや他の入力デバイスによって選択されるのが一般的である 。マウスは、ウィンドウ・プログラムによってスクリーン上にドローされるカー ソルを制御する。カーソルが選択すべきグラフィック・イメージ上に置かれて いるとき、マウスでボタンをアクチベートすると、アプリケーション・プログラ ムがこれに応答する。 上述した制御は、一般的には、アプリケーション・プログラムにより移動した り、サイズ変更したりできないけれども、親ウィンドウと子ウィンドウは全体が アプリケーション・プログラムの制御下に置かれているのが普通である。アプリ ケーション・プログラムが複数のウィンドウを持っているとき、あるいは同時に 実行される複数のアプリケーション・プログラムがウィンドウを表示していると きは、あるウィンドウのサイズまたは位置が変更されると、変更されたウィンド ウの「下」にあるウィンドウの表示されているまたは可視エリアが変更されるこ とになる。図7Aと図7Bは、あるアプリケーションに関連するあるウィンドウ を操作すると、同じアプリケーションおよび他の独立アプリケーションに関連す る他のウィンドウの可視エリアがどのように変更されるかを示している。 具体的には、図7Aは、バックグラウンドまたはデスクトップに置かれた3つ のウィンドウを示している。これらのウィンドウはオーバラップしている。つま り、ウィンドウ700はバックグラウンドにあり、ウィンドウ702はウィンド ウ700の手前にあり、ウィンドウ704はウィンドウ702の手前にある。図 7Aに示すように、ウィンドウ704はウィンドウ702,700の一部を隠し ている。ウィンドウ700,702,704の各々は独立に移動し、サイズ変更 できるので、オーバラップしたウィンドウ内のエリアを見えるようにしたり、隠 したりできるので、これらのウィンドウの外観を変更することができる。しかし 、ウィンドウの外観はオーバラップしているので、選択したウィンドウを変更し ても、その影響を受けるのは選択したウィンドウの背後にあるウィンドウだけで ある。例えば、ウィンドウ704を変更すると、ウィンドウ702と700が影 響を受けるが、ウィンドウ700を変更したときは、ウィンドウ702または7 04はオーバラップしてウィンドウ700の一部を隠しているので、これらのウ ィンドウはその影響を受けることがない。 図7Bは、図7Aにおいて前面ウィンドウ704のサイズを変更したときの結 果を示している。具体的には、図7Bは3つのウィンドウ712,714,70 6を示しており、これらはそれぞれ図7Aのウィンドウ704,702, 700に対応している。しかし、図7Bでは、ウィンドウ712はサイズが変更 されており、具体的には、サイズがオリジナル・サイズのウィンドウ704から 縮小されている。ウィンドウ712のサイズが縮小されると、以前は全体がウィ ンドウ712によって隠されていたウィンドウ710のエリア(図には陰影エリ アで示されている)が見えるようになる。同様に、ウィンドウ706の陰影部分 708も見えるようになる。通常のウィンドウ環境オペレーションによれば、ウ ィンドウの可視部分だけがペイントされる。従って、エリア708と706はそ れらが可視エリアとなったとき再ドローまたは再ペイントしなければならない。 この再ドローイングは、前述したようにウィンドウ・マネージャとアプリケーシ ョン・プログラムとの間の調整により行われる。 具体的に説明すると、ウィンドウ・マネージャは変更された各ウィンドウと、 変更されたウィンドウの背景にあるすべてのウィンドウの新しい可視エリアを計 算する。そのあと、ウィンドウ・マネージャは変更されたウィンドウに関連する 各アプリケーションに「更新チックル(update tickle)」を送って、その可視エ リアの一部を再ドローする必要があることをアプリケーションに通知する。これ を受けて、各アプリケーションは、変更された可視エリアに関連するタイムスタ ップをウィンドウ・マネージャ内のウィンドウ・サーバから取り出すように、変 更されたウィンドウに関連するウィンドウ・オブジェクトに働きかけることにな る。 ウィンドウ・オブジェクトは取り出したタイムスタンプを、そのローカル・キ ャッシュ・メモリにストアされたタイムスタンプと比較する。関連のウィンドウ 可視エリアはウィンドウ・マネージャによって更新されているので、タイムスタ ンプの比較は、ウィンドウ・オブジェクトにキャッシュされている可視エリアが 有効でなくなったことを示している。従って、ウィンドウ・オブジェクトは新し い可視エリアを共有データ・メモリから取り出したあと、上述したセマフォ・メ カニズムを用いてスクリーン・バッファに直接に書き込むことにより可視エリア を更新する。 新しい可視エリアを再ペイントするプロセスは、図8に示すフローチャートに 詳しく示されている。具体的には、再ペイント・ルーチンはステップ800から 開始して、ステップ802へ進み、そこで再ペイントすべきウィンドウに関連す るウィンドウ・オブジェクトはウィンドウ・マネージャから更新チックルを受け 取る。更新チックルは、ウィンドウ・マネージャが図7Aと図7Bに示すように ウィンドウのサイズを変更すると生成される。これを受けて、ウィンドウ・オブ ジェクトは機能ブロック804でドローイング・セマフォを獲得し、ステップ8 04に示すように、新しい可視領域に関連するタイプスタンプを共有データ・エ リアから取り出す。ステップ806で、取り出されたタイムスタンプはウィンド ウ・オブジェクトに既にキャッシュされているタイムスタンプと比較され、キャ ッシュ内の可視エリアが有効かどうかが判断される。キャッシュ内の可視エリア が有効であるとステップ808で判断されたときは、ルーチンはステップ812 へ進む。逆に、キャッシュ内の可視エリアが有効でなければ、ルーチンはステッ プ810へ進み、そこでウィンドウ・サーバからの新しい可視エリアがウィンド ウ・オブジェクトのキャッシュにロードされる。 前述したように、スクリーン・バッファにドローイングする前に、各アプリケ ーション・プログラムは、ステップ804で示すようにグローバル・ドローイン グ・セマフォを共有モードで獲得しなければならない。更新領域は、機能ブロッ ク812でスクリーン・メモリに直接に書き込むことによりアプリケーションに よって再ペイントされる。再ペイントが終了すると、ルーチンはステップ816 へ進み、そこでドローイング・セマフォは解放され、ルーチンはステップ818 で終了する。 また、前述したように、ウィンドウ・オブジェクトはウィンドウ・マネージャ とやりとりすることにより、新しいウィンドウの作成といった、種々のウィンド ウ管理関数を得ることができる。新しいウィンドウを作成するためにウィンドウ ・オブジェクトによって使用されるルーチン例は、図9のフローチャートに詳し く示されている。ルーチンはステップ900から開始し、ステップ902へ進み 、そこでローカル・セマフォがウィンドウ・オブジェクトによって獲得される。 ローカル・セマフォが必要であるのは、ウィンドウ・オブジェクトが複数のアプ リケーションによってアクセスされる可能性があるからであり、従って、このセ マフォは、ウィンドウ・オブジェクトと種々のアプリケーションとの間の望 ましくないやりとりを防止するために使用される。 ローカル・セマフォがステップ902で獲得されると、ルーチンはステップ9 04へ進み、そこで望ましいウィンドウを定義しているパラメータがウィンドウ ・マネージャへ渡されるデータ・ストリーム(図5に矢印504で示されている )上でストリーム化される。さらに、新しいウィンドウを「登録」する要求がウ ィンドウ・マネージャ内の可視エリア・マネージャに対して行われる。この要求 を受けると、可視エリア・マネージャは新しいウィンドウを作成する。新しいウ ィンドウを作成するときのウィンドウ・マネージャのオペレーションは以下で詳 しく説明するが、簡単に説明すると、ウィンドウ・マネージャは新しいウィンド ウをウィンドウ・リストに追加し、新しいウィンドウを作成するが、その過程で 新ウィンドウの識別番号(ID)を生成する。 ウィンドウ・マネージャによって生成されたIDは、ステップ908に示すよ うに、戻りデータ・ストリーム上でストリーム化されてウィンドウ・オブジェク トに返却され、ステップ910で、ウィンドウ・オブジェクトはそのキャッシュ ・データ内のウィンドウIDを、データ・ストリームから読み取ったIDにセッ トする。次に、ルーチンはステップ912へ進み、そこでローカル・セマフォが 解放される。ルーチンはステップ914で終了する。 ウィンドウ・オブジェクトは、選択したウィンドウを削除するようにウィンド ウ・マネージャに要求することも可能である。このオペレーションにおけるステ ップは図10に詳しく示されている。図示のフローチャートに示すように、ウィ ンドウ削除ルーチンはステップ1000から開始し、ステップ1002へ進み、 そこでローカル・セマフォが獲得される。次に、ルーチンはステップ1004へ 進み、そこで削除しようとするウィンドウのウィンドウIDがローカル・メモリ から取り出され、ウィンドウ・マネージャへ渡されるデータ・ストリーム上にス トリーム化される。次に、ウィンドウを削除する要求が可視エリア・マネージャ に対して行われる(ステップ1006)。そのあと、ローカル・セマフォはステ ップ1008で解放され、ルーチンはステップ1010で終了する。 前述したように、スクリーン・バッファでドローイングする前に、各ウィン ドウ・オブジェクトはそのキャッシュ内の可視エリアが有効であるかどうかをチ ェックして確かめるが、これは、ウィンドウ・オブジェクト・キャッシュ・メモ リにストアされたタイムスタンプとウィンドウ・マネージャが管理する共有デー タから取り出されたタイムスタンプを調べ、比較することにより行われる。キャ ッシュ内の可視エリアが有効でなければ、新しい可視エリアがウィンドウ・マネ ージャ共有データ・エリアから要求される。新しい可視エリアを要求するとき行 われるステップは図11に詳しく示されている。具体的には、可視エリア要求ル ーチンはステップ1100から開始し、ステップ1102へ進み、そこでローカ ル・セマフォが獲得される。そのあと、ウィンドウ・オブジェクトは、ステップ 1104に示すように、キャッシュ内の可視エリアに関連するタイムスタンプが 有効かどうかをチェックする。タイムスタンプに関する判定はステップ1106 で行われ、タイムスタンプが最新であり、キャッシュ可視エリアが有効であるこ とを示していれば、ルーチンはステップ1106へ進み、そこでキャッシュされ た可視エリアが使用される。次に、ルーチンはステップ1122へ進み、そこで ローカル・セマフォは解放され、ルーチンはステップ1124で終了する。 逆に、比較ステップ1106がキャッシュ内のタイムスタンプが最新でないこ とを示しているときは、新しい可視エリアを取得する要求を可視エリア・マネー ジャに対して行わなければならない。要求ルーチンはステップ1100から開始 し、そこで新しい可視エリアを収容するウィンドウのウィンドウIDがウィンド ウ・マネージャへ渡されるデータ・ストリーム上にストリーム化される。そのあ と、ルーチンはステップ1112へ進み、そこで新しい可視エリアを取り出す要 求が可視エリア・マネージャに対して行われる。ステップ1114で、ウィンド ウ・オブジェクトは戻りデータ・ストリームをチェックして、新しい可視エリア が用意されているかどうか確かめる(これは前に置かれたフラグで示される)。 新しい可視エリアが用意されていなければ、ウィンドウ・オブジェクトにストア されたキャッシュ内の可視エリアはステップ1120で空にされるか、あるいは クリアされる。そのあと、ルーチンはステップ1122でローカル・セマフォを 解放し、ステップ1124で終了する。 逆に、ステップ1116に示すように新しい可視エリアが用意されていれば、 ルーチンはステップ1118へ進み、そこで新しい可視エリアが戻りストリーム から読み取られ、ウィンドウ・オブジェクトのローカル・キャッシュにストアさ れる。次に、ルーチンはステップ1122へ進み、そこでローカル・セマフォは 解放され、ルーチンはステップ1124で終了する。 図12は、ウィンドウ・オブジェクトから要求があったとき新しいウィンドウ を作成するためにウィンドウ・マネージャによって使用されるルーチン例のフロ ーチャートである。ルーチンはステップ1200から開始し、ステップ1202 へ進み、そこでウィンドウ・オブジェクトによって生成され、ウィンドウ・マネ ージャへ渡すようにストリーム化されたウィンドウ・パラメータが到来データ・ ストリームから読み取られる。次に、ステップ1204で、ウィンドウ・マネー ジャはグローバル・ドローイング・セマフォを排他モードで獲得する。前述した ように、ドローイング・セマフォを排他モードで獲得すると、すべてのアプリケ ーションは、ウィンドウ・マネージャが終了するまでドローすることが禁止され る。この並行性制御は、新しいウィンドウが作成中のときアプリケーションがス クリーン・バッファを変更することを防止するものである。このインタロックが 必要であるのは、新しいウィンドウが残りのウィンドウの可視エリアを変更する おそれがあり、変更すると、可視エリアの再計算がトリガされることになるから である。 ドローイング・セマフォが獲得されると、ルーチンはステップ1206へ進み 、そこで新しいウィンドウが作成されるので、新しいウィンドウIDが生成され る。このウィンドウIDは、ステップ1208でウィンドウ・リストに追加され る。また、このIDはステップ1210でストリーム化されてウィンドウ・オブ ジェクトに戻される。新しいウィンドウの作成は、まず表示不能ウィンドウを作 成し、次にウィンドウを表示可能にすることにより行われる。ウィンドウの可視 性を表示不能から表示可能に変更するステップは、以下で詳しく説明するように ウィンドウ可視エリアの再計算をトリガする。最後に、ステップ1212で、ド ローイング・セマフォは解放され、ルーチンはステップ1214で終了する。 図13のフローチャートは、ウィンドウ・オブジェクトからの要求に応答して ウィンドウを削除するときウインドウ・マネージャによって使用されるルーチン 例を示している。ルーチンはステップ1300から開始し、ステップ1302へ 進み、そこでグローバル・ドローイング・セマフォが排他モードで獲得される。 次に、ルーチンはステップ1304へ進み、そこでウィンドウ・リスト・セマフ ォが獲得される。次に、ステップ1306で、ウィンドウは表示不能にされ、そ のあとルーチンはステップ1308へ進み、そこでウィンドウは、そのウィンド ウに関連するウィンドウIDを削除することによりウィンドウ・リストから取り 除かれる。そのあと、ウィンドウ・リスト・セマフォはステップ1310で解放 され、ドローイング・セマフォはステップ1312で解放され、ルーチンはステ ップ1314へ進んで終了する。 図14は、特定のウィンドウをウィンドウ種類層の先頭に置くためにウィンド ウ・マネージャによって使用されるルーチンのフローチャートを示している。ル ーチンはステップ1400から開始し、ステップ1402へ進み、そこでウィン ドウ・リストが調べられ、先頭に移動しようとするウィンドウと同じ種類の最初 のウィンドウが得られる。次に、ステップ1404で、選択されたウィンドウは ウィンドウ・リスト内の種類層の先頭に移される。この変更はウィンドウ・リス トを調べ、種類プレースホルダ(kind place holder)に到達するまでウィンドウ を先頭に向かって移動することにより行われる。ウィンドウを先頭に移動すると 、移動したウィンドウの背後にあるウィンドウの可視エリアが影響されることが あるので、ルーチンはステップ1406へ進み、そこで選択したウィンドウの背 後にあるウィンドウの可視エリアが再計算される(その方法は下述する)。 次に、ステップ1408で、ウィンドウに関連する更新エリアがウィンドウ・ オブジェクトから得られる。この更新エリアはデスクトップ・エリアと比較され デスクトップが「壊されて」いたかどうか、つまり、デスクトップのエリアが隠 れていないので、選択したデスクトップ・カラーに再ペイントする必要があるか どうかが判断される。ルーチンはステップ1410では、デスクトップが壊れて いたかどうかを、選択したウィンドウの更新エリアをデスクトップ・エリアと数 学的に比較することによって判断する。壊されていれば、ルーチンはステップ 1412へ進み、そこで損傷が修復される(これは、一般に、デスクトップ損傷 エリアをあらかじめ決めたカラーを使用して再ペイントすることにより行われる )。 どちらの場合も、ルーチンはステップ1414へ進み、そこで新しく移動した ウィンドウが新しいアプリケーションに関連するものであるか、あるいは最前面 のウィンドウになったかどうかの判断が行われる。そうであれば、「フォーカス 」スイッチがステップ1416で生成される。このフォーカス・スイッチはメッ セージをオペレーティング・システムに送ることにより開始されるのが一般であ り、フォーカス・スイッチは選択されたウィンドウのビジュアル変更と関連づけ られていることがよくある(例えば、ウィンドウのキャプションやメニューバー は異なるカラーになることがある)。そのあと、ルーチンはステップ1418へ 進んで終了する。 図15は、ウィンドウの可視性を変更するために可視エリア・マネージャによ って使用されるルーチン例のフローチャートである。このルーチンはステップ1 500から開始し、ステップ1502へ進み、そこで可視性を変更するためにウ ィンドウ・オブジェクトから受け取った要求が実際に可視性を変更するものかど うかの判断が行われる。例えば、すでに表示不能になっているウィンドウを表示 不能にする要求があったときは、変更を行う必要はない。同様に、ウィンドウが すでに表示可能であって、それを表示可能にする要求を受けたときも、変更を行 う必要がない。変更の必要がなければ、ルーチンは直接にステップ1516へ移 って終了する。 ステップ1502で、可視性の変更が実際に要求されていると判断されると、 ルーチンはステップ1504へ進み、そこで「損傷」エリア変数がウィンドウの 可視エリアにセットされる。この損傷エリア変数は、以下で説明するようにデス クトップの損傷を修復するときに使用される。次に、ルーチンはステップ150 6へ進み、そこでウィンドウ・リストにストアされた可視性変数が新しい可視性 を示すように変更される。次に、ステップ1508で、変更されたウィンドウの 背後にあるウィンドウの可視エリアは以下で説明するように増分的に再計算され る。 次に、ウィンドウ可視ルーチンはステップ1510へ進み、そこでウィンドウ が可視にされるものであるかどうかを判断するチェックが行われる。そうでなけ れば、ステップ1504でセットされた損傷変数は、ウィンドウが表示不能にさ れるものであり、可視エリア全体が見えなくなるので、正しい「損傷」を表して いる。従って、ルーチンは1516へ進み、そこで損傷エリアを消去するための 要求がウィンドウ・マネージャに対して行われる。 逆に、ステップ1510で、ウィンドウが可視にされるものであると判断され たときは、損傷エリア変数は、損傷エリアの一部が新しく可視になったウィンド ウで隠されることを表すように調整する必要がある。この場合には、ルーチンは ステップ1512へ進み、そこで新しい可視エリアはそれを再計算することによ り得られる。次に、ルーチンはステップ1514へ進み、そこで「損傷」エリア は新しい可視エリアに基づいてリセットされる。具体的には、新しく可視になっ たウィンドウがデスクトップに損傷を引き起こしていれば、損傷エリア変数は可 視エリアと排他的OR(XOR)がとられる。そうでなければ、損傷エリア変数 は減算によって新可視エリアだけ減少される。次に、ルーチンはステップ151 6へ移り、そこでウィンドウ・マネージャにデスクトップ損傷を消去するように 要求する。そのあと、ルーチンはステップ1518へ進んで終了する。 図16と図17は、ウィンドウが変更されたときウィンドウ可視エリアを再計 算するために可視エリア・マネージャによって使用される2つのルーチンを示し ている。図16に示すルーチンを使用すると、変更されたウィンドウの背後にあ るすべてのウィンドウの可視エリアを、どのような条件でも再計算することがで きるが、このルーチンは図17に示すルーチンよりも低速である。図17に示す ルーチンは、1つのウィンドウだけがサイズ変更または移動されたとき可視エリ アを再計算するために使用される。図17に示すルーチンは高速であるため、計 算回数が少なくて済む。図16に示すルーチンは2つの変数AreaAbove とCurren tWindow を使用している。CurrentWindow 変数は、可視エリア・マネージャがそ こで稼働している「現在のウィンドウ」を表し、AreaAbove 変数は、現在のウィ ンドウよりも「上」かあるいは「前面」近くにあるウィンドウのトータルのエリ アを表している。可視エリア・マネージャは可視エリアが実際に変更さ れたかどうかに関係なく、図16に示すルーチンを使用して、変更されたウィン ドウの背後にあるすべてのウィンドウの可視エリアを再計算するが、これは、あ るウィンドウの変更が別のウィンドウの可視エリアに影響にしなかったときそれ を検出するメカニズムが図16に示すルーチンでは使用されないためである。 具体的には、ルーチンはステップ1600から開始し、ステップ1602へ進 み、そこでAreaAbove 変数がクリアされる。次に、ステップ1604で、Curren tWindow 変数はディスプレイ・スクリーン上に現れる最初のウィンドウまたは前 面ウィンドウにセットされる。次に、ルーチンはステップ1606へ進み、そこ で新しい CurrentWindow(これは現在最前面ウィンドウになっている)が変更さ れたウィンドウであるかどうかを判断するためのチェックが行われる。CurrentW indow が変更されたウィンドウであれば、ルーチンはステップ1608へ進み、 そこでAreaAbove 変数を現ウィンドウ・エクステント(ウィンドウのフル・エリ ア)から減算することによりCurrentWindow の可視エリアが計算される。現ウィ ンドウが最前面ウィンドウである場合には、AreaAbove 変数はクリアされている ので(ステップ1602で)、ステップ1608で計算された可視エリアは最前 面ウィンドウ・エクステント・エリアであるにすぎない。次に、ルーチンはステ ップ1610へ進み、そこでAreaAbove 変数は、変更された現ウィンドウの影響 を反映するように補正される。この補正は、AreaAbove 変数および現ウィンドウ のエクステントを合体(ユニオン)にAreaAbove 変数をセットすることにより行 われる。次に、ルーチンはステップ1614へ進み、そこでウィンドウ・リスト がチェックされ、現ウィンドウの背後に別のウィンドウがあるかどうかが判断さ れる。もしあれば、CurrentWindow 変数はステップ1612で次のウィンドウに セットされ、ルーチンはステップ1606へ戻り新しい現ウィンドウの可視エリ アを再計算する。逆に、ステップ1614で残っているウィンドウがなければ、 ルーチンはステップ1616で終了する。 図17に示す増分ルーチンは、ある種の場合においてパフォーマンスを向上す るようにウィンドウの可視エリアを増分的に計算する方法を示している。この増 分方法は、図16に示すようなルーチンを使用して、変更されたウィンドウの可 視エリアを最初に計算することから開始される。次に、増分ルーチンは変更ウィ ンドウの旧可視エリアと新可視エリアの排他的ORを計算する。この「変更エリ ア」はウィンドウの変更によって影響を受けたエリアを表している。最後に、図 17に示す増分ルーチンは影響を受けたまたは変更されたエリアを変更ウィンド ウの背後にあるウィンドウの各々に適用する。影響を受けたエリアだけが後続の ウィンドウに適用されるので、パフォーマンス向上は2通りの方法で達成するこ とができる。第一に、ウィンドウ・エクステント・エリアが影響を受けたまたは 変更されたエリアと交差していなければ、そのウィンドウ可視エリアについてな にも行う必要がない。このことを判断するチェックを行うと、影響を受けなかっ たウィンドウに関係する計算を行わないで済むことになる。第二に、影響を受け たまたは変更されたエリアが空になっているかどうかを判断するチェックを行う ことができる。空になっていれば、ルーチンがリスト上の最後のウィンドウまで 到達していなくても、ルーチンを途中で終了させることができる。このルーチン は図17に詳しく示されているが、ステップ1700から開始する。次に、ルー チンはステップ1702へ進み、そこで変更されたウィンドウの旧またはオリジ ナル可視エリアがセーブされる。次に、ステップ1704で、変更ウィンドウに ついて新しい可視エリアが計算される。新しい可視エリアの計算は、図16に示 すようなルーチンを使用して行うことができる。具体的には、図16に示すルー チンは、現ウィンドウが変更ウィンドウであることをステップ1606が示すま で、ステップ1606−1614からなるループを繰り返すことにより使用でき る。この時点で、ステップ1608で計算された可視エリアがステップ1704 で使用される。次に、ステップ1706で、”ChangedArea”と名づけた変数は 、ステップ1702でストアされた旧可視エリアとステップ1704で計算され た新可視エリアとの排他的ORに等しくなるように計算される。このChangedAre a 変数は、変更ウィンドウの下にあるウィンドウのすべてを変更するときに使用 される。この目的のために、ルーチンはステップ1708へ進み、そこでChange dArea 変数が空であるかどうかを判断するためのチェックが行われる。空であれ ば、ルーチンはステップ1716で終了する。 ステップ1708で、ChangedArea 変数が空でないと判断されたときは、ルー チンはステップ1710へ進み、そこでウィンドウ・リストがチェックされ、 別のウィンドウがリストに残っているかどうかが判断される。別のウィンドウが あれば、次のウィンドウの可視エリアが、ステップ1712に示すように、Chan gedArea 変数と次のウィンドウのエクステントとの排他的ORをとることにより 計算される。次に、ChangedArea 変数は、ステップ1714に示すように、次の ウィンドウのエクステントをChangedArea 変数から減算することにより更新され る。そのあと、ルーチンはリスト内の次のウィンドウを処理するために、まず新 しいChangedArea 変数が空であるかどうかをステップ1708で判断する。空で あれば、ルーチンはステップ1716で終了する。空でなければ、次のウィンド ウが処理される。このオペレーションは、ChangedArea 変数が空になるか、ある いはウィンドウ・リストに残っているウィンドウがなくなるまで上記のように続 けられる。 以上、特定のシステム環境における好適実施例を参照して本発明を説明してき たが、この分野に精通した当業者が理解されるように、本発明は、変更を加える ことにより、他の異なるハードウェアおよびソフトウェア環境で実施することが 可能であり、このことは請求の範囲に明確化されている本発明の精神と範囲に属 することはもちろんである。
【手続補正書】特許法第184条の8 【提出日】1995年11月29日 【補正内容】 請求の範囲 1.ウィンドウ・マネージャ(420)を包含するオペレーティング・システム (404)を有するコンピュータであって、デスクトップ・バックグラウンド( 622)上に表示される複数のウィンドウ・エリア(700,702,704) を有する表示を生成するためにディスプレイ・デバイス(426)を制御するコ ンピュータを持ち、前記複数のウィンドウ・エリア(700,702,704) の各々は、複数のアプリケーション・プログラム(402,408,508)の 1つによって生成されたスクリーン情報を表示するコンピュータ・システムにお いて、 変更可能なサイズを持つ複数のストレージ・エリアを持ち、複数のウィンドウ ・エリアの1つについてのスクリーン情報をストアする手段を含んでいるスクリ ーン・バッファ・ストレージ装置(412)であって、該スクリーン情報が表示 を生成するためにディスプレイ・デバイスによって使用されるスクリーン・バッ ファ・ストレージ装置と、 前記複数のアプリケーション・プログラム(402,418,508)によっ て制御されるプロセッサとを有し、 前記複数のアプリケーション・プログラムの各々は、前記スクリーン・バッフ ァ・ストレージ装置と直接に通信して、該スクリーン・バッファ・ストレージ装 置のストレージ・エリア内でストアされたスクリーン情報を直接に変更するため の手段を有しており、 前記ウィンドウ・エリアが変更に応じて、前記複数のアプリケーション・プロ グラムが該ウィンドウ・エリアの変更に応答できるように該ウィンドウ・エリア の変更を複数のアプリケーション・プログラムに伝達するためのオブジェクト手 段と を具えたことを特徴とするコンピュータ・システム。 2.前記ウィンドウ・エリアの変更を伝達するオブジェクト手段はオペレーティ ・ング・システムによって作成されることを特徴とする請求項1に記載のコン ピュータ・システム。 3.前記ウィンドウ・エリアの各々は、対応するストレージ・エリアの位置とサ イズを変更することにより移動し、サイズ変更することが可能であり、前記伝達 するオブジェクト手段は前記複数のストレージ・エリアの1つの位置とサイズの 変更に応じて前記複数のストレージ・エリアのいくつかのストレージ・エリア・ サイズを再計算することを特徴とする請求項1に記載のコンピュータ・システム 。 4.前記再計算は、前記複数のストレージ・エリアの1つについての位置とサイ ズの変更に応じてトリガされ、当該複数のストレージ・エリアの1つの一部であ って位置とサイズの変更によって修正する変更エリアを計算し、該変更エリアに 応じて、該変更エリアと、前記複数のストレージ・エリアのいくつかに対応する ストアされたエリアとを結合することにより該複数のストレージ・エリアのいく つかのストレージ・エリア・サイズを再計算することを特徴とする請求項3に記 載のコンピュータ・システム。 5.前記ウィンドウ・エリアはオーバラップしていて、前面から後面への配列を 持つように視覚的に表示され、前記オブジェクト手段は前記複数のウィンドウの 各々を、複数のリスト位置を持つ配列リストで管理し、当該各リスト位置は前面 から後面への配列内の位置に対応していることを特徴とする請求項1に記載のコ ンピュータ・システム。 6.前記複数のウィンドウの各々に関連づけられたウィンドウ・オブジェクトを さらに含み、当該各ウィンドウ・オブジェクトはウィンドウ・データとウィンド ウ関数を含み、前記アプリケーション・プログラムによって作成されることを特 徴とする請求項1に記載のコンピュータ・システム。 7.前記各ウィンドウ・オブジェクトと前記伝達するオブジェクト手段との間で データ・ストリーム・オブジェクトによって情報が転送されることを特徴とする 請求項6に記載のコンピュータ・システム。 8.前記ウィンドウ・オブジェクトは前記複数のアプリケーションの1つからの 要求に応答して、当該要求を行った複数のアプリケーション・プログラムの1つ へストレージ・エリア・ロケーションおよびサイズを引渡すことを特徴とする請 求項6に記載のコンピュータ・システム。 9.前記ウィンドウ・オブジェクトのウィンドウ・データは、関連ウィンドウの ストレージ・エリア・サイズのコピーを含み、該ウィンドウ・オブジェクトは前 記複数のアプリケーションの1つからの要求に応答して前記ストレージ・エリア ・サイズ・コピーの有効性を判断することを特徴とする請求項8に記載のコンピ ュータ・システム。 10.前記伝達するオブジェクト手段は、各ストレージ・エリア・サイズに対応 していて、該ストレージ・エリア・サイズが再計算されたときの時刻を示す第1 スタンプをストアする装置を含み、前記ウィンドウ・オブジェクトは前記ストレ ージ・エリア・サイズ・コピーが前記ウィンドウ・オブジェクトにストアされた ときの時刻を示す第2タイムスタンプを前記ストレージ・エリア・サイズ・コピ ーと一緒にストアする装置を含むことを特徴とする請求項9に記載のコンピュー タ・システム。 11.前記有効性判断装置は、前記ウィンドウに対応する選択したストレージ・ エリア・サイズについて前記アプリケーション・プログラムからの要求に応じて 、当該選択したストレージ・エリア・サイズと一緒にストアされた第1タイムス タンプを前記伝達するオブジェクト手段から取り出す装置と、当該取り出した第 1タイムスタンプに応じて、該取り出した第1タイムスタンプを前記ウィンドウ ・オブジェクトにストアされた第2タイムスタンプと比較する装置とを含むこと を特徴とする請求項10に記載のコンピュータ・システム。 12.ウィンドウ・マネージャ(420)を包含するオペレーティング・システ ム(404)を有するコンピュータであって、デスクトツプ・バックグラウンド 上に表示される複数のオーバーラップのウィンドウを有する表示を生成するため にディスプレイ・デバイスを制御するコンピュータを含み、前記複数のウィンド ウの各々は、複数のアプリケーション・プログラムの1つによって生成されたス クリーン情報を表示する可視エリアを有するコンピュータ・システムにおいて、 前記複数のアプリケーション・プログラムによって制御されて、前記コンピュ ータ・システムのオペレーションを制御し調整するプロセッサと、 共有データ・エリアを持ち、ウィンドウ可視エリアをストアし、前記複数のウ ィンドウの1つの可視エリアの変更に応じて前記複数のウィンドウの他のウィン ドウの可視エリアを変更するオブジェクト手段と、 前記複数のアプリケーション・プログラムの1つによって作成されるウィンド ウ・オブジェクトであって、当該各ウィンドウ・オブジェクトは前記複数のウィ ンドウの各々に関連づけられており、当該各ウィンドウ・オブジェクトは関連ウ ィンドウの可視エリアのコピーをストアするキャッシュ・メモリを含むことを特 徴とするコンピュータ・システム。 13.前記ウィンドウ・オブジェクトと前記オブジェクト手段との間でデータ・ ストリーム・オブジェクトを介して情報がストリーム化されることを特徴とする 請求項12に記載のコンピュータ・システム。 14.前記ウィンドウ・オブジェクトは前記複数のアプリケーション・プログラ ムの1つからの要求に応じて、当該要求した複数のアプリケーション・プログラ ムの1つへ前記複数のウィンドウの1つの可視エリアを引渡すことを特徴とする 請求項12に記載のコンピュータ・システム。 15.各ウィンドウ・オブジェクトは複数のアプリケーション・プログラムの1 つからの要求に応答して、ウィンドウ可視エリア・コピーの有効性を判断するこ とを特徴とする請求項12に記載のコンピュータ・システム。 16.前記オブジェクト手段は、前記ウィンドウ可視エリアが最後に再計算され たときの時刻を示す第1タイムスタンプを前記各ウィンドウ可視エリアと一緒に ストアする手段を含み、前記ウィンドウ・オブジェクトは前記ウィンドウ可視エ リア・コピーがキャッシュ・メモリにストアされたときの時刻を示す第2タイム スタンプをキャッシュ・メモリにストアすることを特徴とする請求項15に記載 のコンピュータ・システム。 17.各ウィンドウ・オブジェクトは、選択したウィンドウ可視エリアを求める アプリケーション・プログラムからの要求に応答して、第1タイムスタンプをオ ブジェクト手段から取り出す手段と、取り出した第1タイムスタンプに応答して 、該取り出した第1タイムスタンプを前記キャッシュ・メモリにストアされた第 2タイムスタンプと比較する装置とを含むことを特徴とする請求項16に記載の コンピュータ・システム。 18.前記キャッシュ・メモリにストアされた可視エリアが、前記オブジェクト 手段による最後の再計算の前にストアされたことを前記タイムスタンプ比較装置 が示しているとき、前記各ウィンドウ・オブジェクトは前記ウィンドウ可視エリ アを前記オブジェクト手段から取り出す手段をさらに含んでいることを特徴とす る請求項17に記載のコンピュータ・システム。 19.オペレーティング・システムおよびアプリケーション・プログラムによっ て制御されるプロセッサを持つコンピュータを操作してデスクトップ・バックグ ラウンドに表示される複数のウィンドウ・エリアの1つにスクリーン情報をディ スプレイ・デバイス上で表示するように操作する方法であって、前記複数のウィ ンドウ・エリアの各々は変更可能な可視エリアを持つ方法において、 (A)共有データ・エリアを持ち、1つのウィンドウの可視エリアの変更に応 じて、少なくとも1つの他のウィンドウの可視エリアを変更するウィンドウ・マ ネージャを作成するステップと、 (B)前記アプリケーション・プログラムに前記ウィンドウ・マネージャから の、複数のウィンドウ・エリアの1つの可視エリアを要求させるステップと、 (C)前記アプリケーション・プログラムに前記ウィンドウ・マネージャから 取得した可視エリアにだけスクリーン情報を表示させるステップと を含むことを特徴とする方法。 20.前記ウィンドウ・エリアはオーバラップしていて、前面から後面への配列 を持つように視覚的に表示され、前記ステップ(a)は、 (A1)前記複数のウィンドウの各々を複数のリスト位置を持つ配列リスト内 で管理するウィンドウ・リスト・オブジェクトを作成するステップを含み、当該 各リスト位置は前面から後面への配列内の位置に対応していることを特徴とする 請求項19に記載の方法。 21.前記ステップ(b)は、 (B1)前記複数のウィンドウの各々に関連づけられたウィンドウ・オブジェ クトを作成するステップであって、当該各ウィンドウ・オブジェクトはウィンド ウ・データとウィンドウ関数を含んでいて、アプリケーション・プログラムによ って作成されるステップと、 (B2)前記ウィンドウ・オブジェクトに前記可視エリアを要求させるステッ プと を含むことを特徴とする請求項19に記載の方法。 22.前記ステップB2は、 (B2A)要求情報を前記各ウィンドウ・オブジェクトと前記ウィンドウ・マ ネージャとの間でデータ・ストリーム・オブジェクトを介して転送するステップ を含むことを特徴とする請求項21に記載の方法。 23.前記ステップB2は、 (B2B)可視エリアのキャッシュ・コピーをウィンドウ・オブジェクト内で 管理するステップと、 (B2C)前記ウィンドウ・オブジェクト内のキャッシュ・コピーをチェック してからストアされた前記可視エリアのコピーを前記ウィンドウ・マネージャに 要求するステップとを含むことを特徴とする請求項21に記載の方法。 24.前記ステップB2は、 (B2D)前記可視エリアが再計算されたときの時刻を示す第1タイムスタン プを前記各ウィンドウ可視エリアと一緒に前記共有データ・エリアにストアする ステップと、 (B2E)前記キャッシュ・コピーが前記ウィンドウ・オブジェクトにストア された時刻を示す第2タイムスタンプをウィンドウ・オブジェクトにストアする ステップとを含むことを特徴とする請求項23に記載の方法。 25.前記ステップB2は、 (B2F)前記ウィンドウ可視エリアについての要求を前記アプリケーション ・プログラムから受け取ったとき、選択した前記ウィンドウ可視エリアと一緒に ストアされた前記第1タイムスタンプを前記ウィンドウ・マネージャから取り出 すステップと、 (B2G)前記取り出した第1タイムスタンプを前記ウィンドウ・オブジェク トにストアされた第2タイムスタンプと比較するステップとを含むことを特徴と する請求項24に記載の方法。 26.前記ステップB2は、 (B2H)前記ステップB2Gのタイムスタンプ比較がウィンドウ・オブジェ クトにストアされたキャッシュ・コピーが有効でないことを示しているとき、前 記ウィンドウ・マネージャにストアされたウィンドウ可視エリアを取り出すステ ップを含むことを特徴とする請求項25に記載の方法。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AT,AU,BB,BG,BR,BY, CA,CH,CN,CZ,DE,DK,ES,FI,G B,HU,JP,KP,KR,KZ,LK,LU,LV ,MG,MN,MW,NL,NO,NZ,PL,PT, RO,RU,SD,SE,SK,UA,UZ,VN 【要約の続き】 イングする必要が起こった場合、およびその可視エリア が変更されていなかったときに使用することができる。 さらに、ウィンドウ・マネージャは、単一のウィンドウ だけが変更されたことを想定するルーチンを使用して各 アプリケーション・ウィンドウの新しい可視エリアを計 算し、ウィンドウの新可視エリアを旧可視エリアと比較 して変更エリアを得ている。この変更エリアは、変更さ れたウィンドウの背後にあるすべてのウィンドウの可視 エリアを再計算するときに使用される。

Claims (1)

  1. 【特許請求の範囲】 1.デスクトップ・バックグランド上に表示される複数のウィンドウ・エリアを 持つ表示を生成するようにディスプレイ・デバイスを制御するコンピュータ・シ ステムであって、該複数のウィンドウ・エリアの各々は、複数のアプリケーショ ン・プログラムの1つによって生成されたスクリーン情報を表示するコンピュー タ・システムにおいて、 複数のストレージ・エリアを持つスクリーン・バッファ・ストレージ装置であ って、該複数のストレージ・エリアの各々はサイズを持ち、前記複数のウィンド ウ・エリアの1つのためのスクリーン情報をストアするスクリーン・バッファ・ ストレージ装置と、 前記スクリーン情報を前記スクリーン・バッファ・ストレージ装置にストアす るように前記複数のアプリケーション・プログラムによって制御されるプロセッ サと、 該プロセッサと共同作用して前記ディスプレイ・デバイスを制御するオペレー ティング・システムと、 共有データ・エリアを持ち、あるストレージ・エリアのストレージ・エリア・ サイズの変更に応じて少なくとも1つの他のストレージ・エリアのストレージ・ エリア・サイズを変更するウィンドウ・マネージャ・オブジェクトと を具えていることを特徴とするコンピュータ・システム。 2.前記ウィンドウ・マネージャ・オブジェクトは前記オペレーティング・シス テムによって作成されることを特徴とする請求項1に記載のコンピュータ・シス テム。 3.前記ウィンドウ・エリアの各々は対応するストレージ・エリアの位置とサイ ズを変更することにより移動し、サイズ変更することが可能であり、前記ウィン ドウ・マネージャ・オブジェクトは複数のストレージ・エリアの1つの位置とサ イズの変更に応じて前記複数のストレージ・エリアのいくつかのストレージ・エ リア・サイズを再計算する装置を含むことを特徴とする請求項1に記載のコンピ ュータ・システム。 4.前記再計算装置は、前記複数のストレージ・エリアの1つの位置とサイズが 変更されると、変更エリア、すなわち、前記複数のストレージ・エリアの中の位 置とサイズの変更によって変更されたものの一部分である変更エリアを計算する メカニズムと、 前記変更エリアを受けて、複数のストレージ・エリアのいくつかに対応のスト アされたエリア・サイズと前記変更エリアとを結合することにより前記複数のス トレージ・エリアのいくつかのストレージ・エリア・サイズを再計算する装置と を含むことを特徴とする請求項3に記載のコンピュータ・システム。 5.前記ウィンドウ・エリアはオーバラップしていて、前面から後面への配列を 持つように視覚的に表示され、前記ウィンドウ・マネージャ・オブジェクトは、 前記複数のウィンドウの各々を複数のリスト位置を持つ配列リスト内で管理する メカニズムを含み、各リスト位置は前面から後面への配列の位置に対応している ことを特徴とする請求項1に記載のコンピュータ・システム。 6.前記複数のウィンドウの各々に関連づけられたウィンドウ・オブジェクトを さらに含み、前記各ウィンドウ・オブジェクトはウィンドウ・データとウィンド ウ関数を含み、アプリケーション・プログラムによって作成されることを特徴と する請求項1に記載のコンピュータ・システム。 7.前記各ウィンドウ・オブジェクトとウィンドウ・マネージャとの間でデータ ・ストリーム・オブジェクトによって情報が転送されることを特徴とする請求項 6に記載のコンピュータ・システム。 8.前記ウィンドウ・オブジェクトは複数の前記アプリケーション・プログラム の1つから要求を受け取るメカニズムと、当該受け取った要求に応答して、スト レージ・エリア・ロケーションとサイズを、要求を行った前記複数のアプリケー ション・プログラムの1つへ引渡す装置とを含むことを特徴とする請求項6に記 載のコンピュータ・システム。 9.前記ウィンドウ・データは関連ウィンドウのストレージ・エリア・サイズの コピーを含み、前記ウィンドウ・オブジェクトは前記複数のアプリケーションの 1つからの要求に応答して、該ストレージ・エリア・サイズ・コピーの有効性を 判断する装置を含むことを特徴とする請求項8に記載のコンピュータ・システム 。 10.前記ウィンドウ・マネージャ・オブジェクトは、ストレージ・エリア・サ イズが再計算されたときの時刻を示す第1タイムスタンプを各ストレージ・エリ ア・サイズと一緒にストアする装置を含み、前記ウィンドウ・オブジェクトは、 前記ストレージ・エリア・コピーが前記ウィンドウ・オブジェクトにストアされ たときの時刻を示す第2タイムスタンプを前記ストレージ・エリア・コピーと一 緒にストアする装置を含むことを特徴とする請求項9に記載のコンピュータ・シ ステム。 11.前記有効性判断装置は、1つのウィンドウに対応し、選択されたストレー ジ・エリア・サイズについてのアプリケーション・プログラムからの要求に応答 して、当該選択されたストレージ・エリア・サイズと一緒にストアされた第1タ イムスタンプを前記ウィンドウ・マネージャ・オブジェクトから取り出す装置と 、該取り出した第1タイムスタンプを前記ウィンドウ・オブジェクトにストアさ れた第2タイムスタンプと比較する装置とを含むことを特徴とする請求項10に 記載のコンピュータ・システム。 12.前記有効性判断装置は、前記ウィンドウ・オブジェクトにストアされたス トレージ・エリアが有効でないとタイムスタンプ比較装置が示しているとき、前 記ウィンドウ・マネージャ・オブジェクト内にストアされたストレージ・エリア ・サイズを取り出す手段をさらに含んでいることを特徴とする請求項11に記載 のコンピュータ・システム。 13.デスクトップ・バックグランド上に表示される複数のウィンドウ・エリア を持つ表示を生成するようにディスプレイ・デバイスを制御するコンピュータ・ システムであって、該複数のウィンドウ・エリアには、複数のアプリケーション ・プログラムの1つによって生成されたスクリーン情報が表示されるコンピュー タ・システムにおいて、 サイズ変更可能な複数のストレージ・エリアを持つスクリーン・バッファ・ス トレージ装置であって、当該サイズ変更可能な複数のストレージ・エリアの各々 はサイズを持ち、前記複数のウィンドウ・エリアの1つのスクリーン情報をスト アするスクリーン・バッファ・ストレージ装置と、 前記複数のアプリケーション・プログラムの中の選択された1つからスクリー ン情報を受け取って、当該受け取ったスクリーン情報を前記選択された1つのア プリケーション・プログラムに対応するサイズ変更可能な複数のストレージ・エ リアの中の1つにストアするように前記複数のアプリケーション・プログラムに よって制御されるプロセッサと、 プロセッサと共同作用して前記ディスプレイ・デバイスを制御するオペレーテ ィング・システムと、 共有データ・エリアを持ち、あるストレージ・エリアのストレージ・エリア・ サイズの変更に応じて少なくとも1つの他のストレージ・エリアのストレージ・ エリア・サイズを変更するウィンドウ・マネージャ・オブジェクトと 前記複数のアプリケーション・プログラムの各々によって作成されるウィンド ウ・オブジェクトであって、該ウィンドウ・オブジェクトは、作成されると、前 記ウィンドウ・マネージャ・オブジェクトと共同作用して、前記複数のストレー ジ・エリアの1つを割り当てることによりウィンドウ・エリアを作成するウィン ドウ・オブジェクトを具えたことを特徴とするコンピュータ・システム。 14.前記ウィンドウ・マネージャ・オブジェクトは前記オペレーティング・シ ステムによって作成されることを特徴とする請求項13に記載のコンピュータ・ システム。 15.前記ウィンドウ・エリアはオーバラップしていて、前面から後面への配列 を持つように視覚的に表示され、前記ウィンドウ・マネージャ・オブジェクトは 、前記複数のウィンドウの各々を複数のリスト位置を持つ配列リスト内で管理す るメカニズムを含み、前記各リストの位置は前面から後面への配列の位置に対応 していることを特徴とする請求項14に記載のコンピュータ・システム。 16.前記ウィンドウ・マネージャ・オブジェクトは、前記複数のウィンドウ・ エリアの1つの位置とサイズが変更されると、変更ウィンドウ・エリア、すなわ ち、前記複数のウィンドウ・エリアの中の位置とサイズの変更されたものの一部 である変更ウィンドウ・エリアを計算する装置と、該変更ウィンドウ・エリアを 受けて、前記配列リストによって判断された1つのウィンドウ・エリアの背後に 現れるウィンドウ・エリアに対応するストレージ・エリアのストレージ・エリア ・サイズを再計算する装置とを含むことを特徴とする請求項15に記載のコンピ ュータ・システム。 17.前記再計算装置は、ストアされたエリア・サイズを、前記配列リストによ って判断された1つのウィンドウ・エリアの背後に現れるウィンドウ・エリアに 対応するストアされたエリア・サイズと結合することによって前記ストレージ・ エリア・サイズを再計算することを特徴とする請求項16に記載のコンピュータ ・システム。 18.前記複数のウィンドウ・オブジェクトの各々はキャッシュ・メモリと、前 記ウィンドウ・エリアを操作するための複数のメソッドとを含むことを特徴とす る請求項17に記載のコンピュータ・システム。 19.前記各ウィンドウ・オブジェクトと前記ウィンドウ・マネージャ・オブジ ェクトとの間でデータ・ストリーム・オブジェクトによって情報が転送されるこ とを特徴とする請求項18に記載のコンピュータ・システム。 20.前記ウィンドウ・オブジェクトは前記複数のアプリケーション・プログラ ムの1つから要求を受け取るメカニズムと、当該受け取った要求に応答して、ス トレージ・エリア・ロケーションとサイズを、当該要求を行った複数のアプリケ ーション・プログラムの1つへ引渡す装置とを含むことを特徴とする請求項19 に記載のコンピュータ・システム。 21.関連ウィンドウのストレージ・エリア・サイズのコピーが前記ウィンドウ ・オブジェクト・キャッシュ・メモリにストアされ、ウィンドウ・オブジェクト は前記複数のアプリケーションの1つからの要求に応答して、前記ストレージ・ エリア・サイズ・コピーの有効性を判断する装置を含むことを特徴とする請求項 20に記載のコンピュータ・システム。 22.前記ウィンドウ・マネージャ・オブジェクトは、前記ストレージ・エリア ・サイズが最後に再計算されたときの時刻を示す第1タイムスタンプを各ストレ ージ・エリア・サイズと一緒にストアする装置を含み、前記ウィンドウ・オブジ ェクトは、前記ストレージ・エリア・コピーが前記キャッシュ・メモリにストア されたときの時刻を示す第2タイムスタンプを該キャッシュ・メモリにストアす る装置を含むことを特徴とする請求項21に記載のコンピュータ・システム。 23.前記有効性判断装置は、1つのウィンドウに対応し、選択されたストレー ジ・エリア・サイズについてのアプリケーション・プログラムからの要求に応答 して、当該選択されたストレージ・エリア・サイズと一緒にストアされた第1タ イムスタンプをウィンドウ・マネージャ・オブジェクトから取り出す装置と、当 該取り出した第1タイムスタンプをキャッシュ・メモリにストアされた第2タイ ムスタンプと比較する装置とを含むことを特徴とする請求項22に記載のコン ピュータ・システム。 24.前記有効性判断装置は、前記キャッシュ・メモリにストアされたストレー ジ・エリアが前記ウィンドウ・マネージャ・オブジェクトによる最後の再計算の 前にストアされたことを前記タイムスタンプ比較装置が示しているとき、該ウィ ンドウ・マネージャ・オブジェクトにストアされたストレージ・エリア・サイズ を取り出す手段をさらに含むことを特徴とする請求項23に記載のコンピュータ ・システム。 25.デスクトップ・バックグランド上に表示される複数のオーバラップしたウ ィンドウ・エリアを持つ表示を生成するようにディスプレイ・デバイスを制御す るコンピュータ・システムであって、該複数のウィンドウ・エリアの各々は複数 のアプリケーション・プログラムの1つによって生成されたスクリーン情報を表 示するための可視エリアを持つコンピュータ・システムにおいて、 前記複数のアプリケーション・プログラムによって制御されて、前記コンピュ ータ・システムのオペレーションを制御し、調整するプロセッサと、 該プロセッサと共同作用して前記ディスプレイ・デバイスを制御するオペレー ティング・システムと、 共有データ・エリアを持ち、前記複数のウィンドウの1つの可視エリアが変更 されると、当該複数のウィンドウの他のウィンドウの可視エリアを変更するウィ ンドウ・マネージャ・オブジェクトと、 前記複数のアプリケーション・プログラムの各々によって作成され、前記複数 のウィンドウの1つと関連づけられているウィンドウ・オブジェクトであって、 関連の1つのウィンドウの可視エリアのコピーをストアするキャッシュ・メモリ を含むウィンドウ・オブジェクトと を具えたことを特徴とするコンピュータ・システム。 26.前記情報はウィンドウ・オブジェクトと前記ウィンドウ・マネージャ・オ ブジェクトとの間でデータ・ストリーム・オブジェクトによって情報がストリー ム化されることを特徴とする請求項25に記載のコンピュータ・システム。 27.前記ウィンドウ・オブジェクトは前記複数のアプリケーション・プログラ ムの1つから要求を受け取るメカニズムと、当該受け取った要求に応答して、前 記複数のウィンドウの1つの可視エリアを、前記複数のアプリケーション・プロ グラムの要求を行なった1つへ引渡す装置とを含むことを特徴とする請求項25 に記載のコンピュータ・システム。 28.ウィンドウ・オブジェクトは前記複数のアプリケーションの1つからの要 求に応答して、前記ウィンドウ可視エリアのコピーの有効性を判断する装置を含 むことを特徴とする請求項25に記載のコンピュータ・システム。 29.前記ウィンドウ・マネージャ・オブジェクトは、前記ウィンドウ可視エリ アが最後に再計算されたときの時刻を示す第1タイムスタンプを前記各ウィンド ウ可視エリアと一緒にストアする装置を含み、前記ウィンドウ・オブジェクトは 、前記可視エリアのコピーが前記キャッシュ・メモリにストアされたときの時刻 を示す第2タイムスタンプをキャッシュ・メモリにストアする装置を含むことを 特徴とする請求項28に記載のコンピュータ・システム。 30.前記有効性判断装置は、選択されたウィンドウ可視エリアについての前記 アプリケーション・プログラムからの要求に応答して、前記第1タイムスタンプ をウィンドウ・マネージャ・オブジェクトから取り出す装置と、当該取り出した 第1タイムスタンプを前記キャッシュ・メモリにストアされた第2タイムスタン プと比較する装置とを含むことを特徴とする請求項29に記載のコンピュータ・ システム。 31.前記有効性判断装置は、前記キャッシュ・メモリにストアされた可視エリ アが前記ウィンドウ・マネージャ・オブジェクトによる最後の再計算の前にスト アされたことを前記タイムスタンプ比較装置が示しているとき、当該ウィンドウ 可視エリアを前記ウィンドウ・マネージャ・オブジェクトから取り出す手段をさ らに含んでいることを特徴とする請求項32に記載のコンピュータ・システム。 32.その各々がエクステント・エリアを持ち、デスクトップ・バックグランド 上に表示される複数のオーバラップしたウィンドウの可視エリアを計算するウィ ンドウ・マネージャ装置において、 前記複数のウィンドウをあらかじめ決めた前面から後面までの順序で管理する ための配列リストを含むウィンドウ・リスト・オブジェクトと、 配列リスト情報を前記ウィンドウ・リスト・オブジェクトから得るためのリス ト要求メカニズムと、 前記配列リスト情報に応じて、前記複数のウィンドウの1つの可視エリアがオ リジナル・エリアから新しいエリアに変更されると、前記1つのウィンドウの手 前に配列されたすべてのウィンドウのエリアの合体(union)を計算する装置と、 前記ウィンドウのオリジナル・エリアと該ウィンドウの新エリアに応じて、当 該オリジナル・ウィンドウ・エリアと新ウィンドウ・エリアとの排他的ORをと って変更エリアを計算する変更エリア装置と、 前記ウィンドウの1つの背後に配列されたウィンドウの可視エリアを再計算す る再計算装置と を具えたことを特徴とするウィンドウ・マネージャ装置。 33.前記再計算装置は変更エリアに応じて、変更エリアと、前記ウィンドウの 1つの背後にある、配列リスト内の次のウィンドウのエクステント・エリアとの 排他的ORをとる可視エリア調整装置と、前記次のウィンドウのエクステント・ エリアを該変更エリアから減算することにより該変更エリアを調整する変更エリ ア調整装置とを含むことを特徴とする請求項32に記載のウィンドウ・マネージ ャ装置。 34.アプリケーション・プログラムがデスクトップ・バックグランド上に表示 される複数のウィンドウ・エリアの内の1つにスクリーン情報を表示するための 方法であって、該複数のウィンドウ・エリアの各々は変更可能な可視エリアを持 つ方法において、 A.共有データ・エリアを持ち、1つのウィンドウの可視エリアが変更される と、少なくとも1つの他のウィンドウの可視エリアを変更するウィンドウ・マネ ージャ・オブジェクトを作成するステップと、 B.前記アプリケーション・プログラムに前記複数のウィンドウ・エリアの内 の1つのストアされた可視エリアを前記ウィンドウ・マネージャから要求させる ステップと、 C.前記アプリケーション・プログラムに前記スクリーン情報を、前記ウィン ドウ・マネージャから得た可視エリアにだけ表示させるステップとを含むことを 特徴とする方法。 35.前記ウィンドウ・エリアはオーバラップしていて、前面から後面への配列 を持つように視覚的に表示され、前記ステップAは、 A1.前記複数のウィンドウの各々を配列リスト内で管理するウィンドウ・リ スト・オブジェクトを作成し、該配列リストは複数のリスト位置を持つステップ であって、前記各リスト位置は前面から後面への配列内の位置に対応しているス テップを含むことを特徴とする請求項34に記載の方法。 36.前記ステップBは、 B1.前記複数のウィンドウの各々に関連づけられたウィンドウ・オブジェク トを作成するステップであって、前記各ウィンドウ・オブジェクトがウィンドウ ・データおよびウィンドウ関数を含み、ならびに前記アプリケーション・プログ ラムによって作成されるステップと、 B2.ストアされた可視エリアを前記ウィンドウ・オブジェクトに要求させる ステップと を含むことを特徴とする請求項34に記載の方法。 37.前記ステップB2は、 B2A.要求情報を前記各ウィンドウ・オブジェクトと前記ウィンドウ・マネ ージャ・オブジェクトとの間でデータ・ストリーム・オブジェクトによって転送 するステップを含むことを特徴とする請求項36に記載の方法。 38.前記ステップB2は、 B2B.前記ウィンドウ・オブジェクト内にストアされた可視エリアのキャッ シュ・コピーを管理するステップと、 B2C.前記ウィンドウ・オブジェクト内のキャッシュ・コピーをチェックし てから前記ストアされた可視エリアのコピーを前記ウィンドウ・マネージャ・オ ブジェクトに要求するステップと を含むことを特徴とする請求項36に記載の方法。 39.前記ステップB2は、 B2D.前記可視エリアが再計算されたときの時刻を示す第1タイムスタンプ を前記各ウィンドウ可視エリアと一緒に共有データ・エリアにストアするステッ プと、 B2E.前記キャッシュ・コピーが前記ウィンドウ・オブジェクトにストアさ れたときの時刻を示す第2タイムスタンプを前記ウィンドウ・オブジェクトにス トアするステップと を含むことを特徴とする請求項38に記載の方法。 40.ステップB2は、 B2F.前記ウィンドウ可視エリアについてアプリケーション・プログラムか ら要求を受け取ったとき、選択したウィンドウ可視エリアと一緒にストアされた 前記第1タイムスタンプを前記ウィンドウ・マネージャ・オブジェクトから取り 出すステップと、 B2G.当該取り出した第1タイムスタンプを前記ウィンドウ・オブジェクト にストアされた第2タイムスタンプと比較するステップとを含むことを特徴とす る請求項39に記載の方法。 41.前記ステップB2はさらに、 B2H.前記ステップB2Gのタイムスタンプ比較が前記ウィンドウ・オブジ ェクトにストアされたキャッシュ・コピーが有効でないことを示しているとき、 前記ウィンドウ・マネージャ・オブジェクトにストアされたウィンドウ可視エリ アを取り出すステップを含むことを特徴とする請求項40に記載の方法。 42.その各々がエクステント・エリアを持ち、デスクトップ・バックグラウン ド上に表示される複数のオーバラップしたウィンドウの可視エリアを計算する方 法において、 A.前記複数のウィンドウを前面から後面へのあらかじめ決めた順序で管理す るための配列リストを含むウィンドウ・リスト・オブジェクトを作成するステッ プと、 B.配列リスト情報を前記ウィンドウ・リスト・オブジェクトから取得するス テップと、 C.前記複数のウィンドウの1つの可視エリアがオリジナル・エリアから新エ リアに変更されると、当該1つのウィンドウの手前に配列されたすべてのウィン ドウのエリアの合体を計算するステップと、 D.前記オリジナル・ウィンドウ・エリアと前記新ウィンドウ・エリアとの排 他的ORをとって変更エリアを計算するステップと、 E.前記1つのウィンドウの背後に配列されたウィンドウの可視エリアを再計 算するステップと を含むことを特徴とする方法。 43.前記ステップEは、 E1.変更エリアと、前記配列リスト内で前記1つのウィンドウの背後にある 次のウィンドウのエクステント・エリアとの排他的ORをとるステップと、 E2.前記次のウィンドウのエクステント・エリアを前記変更エリアから減算 することによって当該変更エリアを調整するステップと、 E3.該1つのウィンドウの背後にある各ウィンドウごとに前記ステップE1 および前記E2を繰り返すステップと を含むことを特徴とする請求項42に記載の方法。
JP51257895A 1993-10-25 1994-01-06 オブジェクト指向ディスプレイ・システム Expired - Lifetime JP3544666B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/142,894 US5522025A (en) 1993-10-25 1993-10-25 Object-oriented window area display system
US08/142,894 1993-10-25
PCT/US1994/000145 WO1995012194A1 (en) 1993-10-25 1994-01-06 Object-oriented display system

Publications (2)

Publication Number Publication Date
JPH09504884A true JPH09504884A (ja) 1997-05-13
JP3544666B2 JP3544666B2 (ja) 2004-07-21

Family

ID=22501709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51257895A Expired - Lifetime JP3544666B2 (ja) 1993-10-25 1994-01-06 オブジェクト指向ディスプレイ・システム

Country Status (6)

Country Link
US (2) US5522025A (ja)
EP (1) EP0710388B1 (ja)
JP (1) JP3544666B2 (ja)
AU (1) AU6020894A (ja)
DE (1) DE69409812D1 (ja)
WO (1) WO1995012194A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008309933A (ja) * 2007-06-13 2008-12-25 Funai Electric Co Ltd 電子機器
US8007362B2 (en) 2005-03-31 2011-08-30 Kabushiki Kaisha Square Enix Method of displaying multiple kinds of independently processed display data
US9317198B2 (en) 2012-10-10 2016-04-19 Samsung Electronics Co., Ltd. Multi display device and control method thereof
US9335887B2 (en) 2012-10-10 2016-05-10 Samsung Electronics Co., Ltd. Multi display device and method of providing tool therefor
US9348504B2 (en) 2012-10-10 2016-05-24 Samsung Electronics Co., Ltd. Multi-display apparatus and method of controlling the same
US9417784B2 (en) 2012-10-10 2016-08-16 Samsung Electronics Co., Ltd. Multi display apparatus and method of controlling display operation
US9571734B2 (en) 2012-10-10 2017-02-14 Samsung Electronics Co., Ltd. Multi display device and method of photographing thereof
US9696899B2 (en) 2012-10-10 2017-07-04 Samsung Electronics Co., Ltd. Multi display apparatus and multi display method
US11360728B2 (en) 2012-10-10 2022-06-14 Samsung Electronics Co., Ltd. Head mounted display apparatus and method for displaying a content

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522025A (en) * 1993-10-25 1996-05-28 Taligent, Inc. Object-oriented window area display system
JPH0844546A (ja) * 1994-07-29 1996-02-16 Fujitsu Ltd グラフィカルユーザインターフェースを備えたコンピュータシステム
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US6067098A (en) * 1994-11-16 2000-05-23 Interactive Silicon, Inc. Video/graphics controller which performs pointer-based display list video refresh operation
US5838334A (en) * 1994-11-16 1998-11-17 Dye; Thomas A. Memory and graphics controller which performs pointer-based display list video refresh operations
US5889522A (en) * 1994-12-13 1999-03-30 Microsoft Corporation System provided child window controls
US5877762A (en) * 1995-02-27 1999-03-02 Apple Computer, Inc. System and method for capturing images of screens which display multiple windows
US5897670A (en) * 1996-07-12 1999-04-27 Sun Microsystems, Inc. Method and system for efficient organization of selectable elements on a graphical user interface
US5923328A (en) * 1996-08-07 1999-07-13 Microsoft Corporation Method and system for displaying a hierarchical sub-tree by selection of a user interface element in a sub-tree bar control
US5760772A (en) * 1996-08-30 1998-06-02 Novell, Inc. Method for automatically resizing a child window
US6054996A (en) * 1996-11-20 2000-04-25 Interntional Business Machines Corporation Data processing system and method for controlling a view of a realistic object in a display device
US6052130A (en) * 1996-11-20 2000-04-18 International Business Machines Corporation Data processing system and method for scaling a realistic object on a user interface
US6111573A (en) * 1997-02-14 2000-08-29 Velocity.Com, Inc. Device independent window and view system
US6275225B1 (en) 1997-10-24 2001-08-14 Sun Microsystems, Inc. Method, apparatus, system and computer program product for a user-configurable graphical user interface
US6107191A (en) * 1997-11-07 2000-08-22 Lucent Technologies Inc. Method of creating an interconnect in a substrate and semiconductor device employing the same
US6412031B1 (en) * 1998-02-10 2002-06-25 Gateway, Inc. Simultaneous control of live video device access by multiple applications via software locks and in accordance with window visibility of applications in a multiwindow environment
US6549218B1 (en) * 1999-03-31 2003-04-15 Microsoft Corporation Dynamic effects for computer display windows
US7114154B1 (en) * 1999-07-26 2006-09-26 Mark Ira Crohn Automating time sequenced tasks
US6803930B1 (en) * 1999-12-16 2004-10-12 Adobe Systems Incorporated Facilitating content viewing during navigation
WO2001054113A1 (de) * 2000-01-21 2001-07-26 Siemens Aktiengesellschaft Verfahren zum gleichzeitigen überlappungsfreien darstellen von mindestens zwei datenvisualisierungsfenstern auf der anzeigefläche eines monitors einer datenverarbeitungsanlage
US6567091B2 (en) 2000-02-01 2003-05-20 Interactive Silicon, Inc. Video controller system with object display lists
US7478341B2 (en) * 2000-04-19 2009-01-13 Broadcom Corporation Apparatus and method for persistent display interface
AU2001257210A1 (en) 2000-04-24 2001-11-07 The Trustees Of Columbia University In The City Of New York System and method for dynamic space management of a display space
EP1170658A1 (en) * 2000-07-07 2002-01-09 Sun Microsystems, Inc. Window management communications
US20060161622A1 (en) * 2001-04-13 2006-07-20 Elaine Montgomery Methods and apparatuses for selectively sharing a portion of a display for application based screen sampling using direct draw applications
US20020174181A1 (en) * 2001-04-13 2002-11-21 Songxiang Wei Sharing OpenGL applications using application based screen sampling
US20020165922A1 (en) * 2001-04-13 2002-11-07 Songxiang Wei Application based screen sampling
US20030085922A1 (en) * 2001-04-13 2003-05-08 Songxiang Wei Sharing DirectDraw applications using application based screen sampling
WO2002093491A1 (en) 2001-05-17 2002-11-21 The Trustees Of Columbia University In The City Of New York System and method for view management in three dimensional space
US7350156B2 (en) * 2001-09-21 2008-03-25 Yamaha Corporation Audio signal editing apparatus and control method therefor
DE10218892B4 (de) * 2002-04-26 2005-11-17 Siemens Ag Integrationsverfahren für mindestens ein Grundprogramm mit einem Grundfenster in ein Zusatzprogramm mit einem Zusatzfenster
US7302648B1 (en) 2002-07-10 2007-11-27 Apple Inc. Method and apparatus for resizing buffered windows
US6976144B1 (en) * 2003-05-06 2005-12-13 Pegasystems, Inc. Methods and apparatus for digital data processing with mutable inheritance
US20050088449A1 (en) * 2003-10-23 2005-04-28 Blanco Leonardo E. Child window redirection
US8302111B2 (en) 2003-11-24 2012-10-30 Time Warner Cable Inc. Methods and apparatus for hardware registration in a network device
US7266726B1 (en) 2003-11-24 2007-09-04 Time Warner Cable Inc. Methods and apparatus for event logging in an information network
US7230998B2 (en) * 2003-11-26 2007-06-12 Delphi Technologies, Inc. Method to increase performance of secondary data in a hierarchical modulation scheme
US20050140692A1 (en) * 2003-12-30 2005-06-30 Microsoft Corporation Interoperability between immediate-mode and compositional mode windows
US7544209B2 (en) * 2004-01-12 2009-06-09 Lotke Paul A Patello-femoral prosthesis
US9213538B1 (en) 2004-02-06 2015-12-15 Time Warner Cable Enterprises Llc Methods and apparatus for display element management in an information network
MXPA06009473A (es) * 2004-02-23 2006-12-14 Matsushita Electric Ind Co Ltd Dispositivo de procesamiento de visualizacion.
US7412662B2 (en) * 2004-04-12 2008-08-12 Microsoft Corporation Method and system for redirection of transformed windows
US7665063B1 (en) 2004-05-26 2010-02-16 Pegasystems, Inc. Integration of declarative rule-based processing with procedural programming
US8006196B2 (en) 2004-09-10 2011-08-23 Presagis Multi-application graphic display environment
US20060059432A1 (en) * 2004-09-15 2006-03-16 Matthew Bells User interface having viewing area with non-transparent and semi-transparent regions
EP1637979A1 (en) 2004-09-15 2006-03-22 Research In Motion Limited User interface having viewing area with non-transparent and semi-transparent regions
US20060150104A1 (en) * 2004-12-31 2006-07-06 Luigi Lira Display of user selected digital artworks as embellishments of a graphical user interface
US8335704B2 (en) 2005-01-28 2012-12-18 Pegasystems Inc. Methods and apparatus for work management and routing
US8117560B1 (en) 2005-02-22 2012-02-14 Cisco Technology, Inc. Methods and apparatuses for selectively removing sensitive information during a collaboration session
US20060190826A1 (en) * 2005-02-22 2006-08-24 Elaine Montgomery Methods and apparatuses for dynamically sharing a portion of a display during a collaboration session
US20060248471A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation System and method for providing a window management mode
GB2429890A (en) * 2005-08-31 2007-03-07 Ant Software Ltd Display processing system using a tree to represent windows
US7640222B2 (en) * 2006-03-03 2009-12-29 Pegasystems Inc. Rules base systems and methods with circumstance translation
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US20070233902A1 (en) * 2006-03-30 2007-10-04 Alan Trefler User interface methods and apparatus for rules processing
US20070245250A1 (en) * 2006-04-18 2007-10-18 Microsoft Corporation Microsoft Patent Group Desktop window manager using an advanced user interface construction framework
GB0607763D0 (en) * 2006-04-20 2006-05-31 Ibm Capturing image data
US8185605B2 (en) * 2006-07-18 2012-05-22 Cisco Technology, Inc. Methods and apparatuses for accessing an application on a remote device
US20080086700A1 (en) * 2006-10-06 2008-04-10 Rodriguez Robert A Systems and Methods for Isolating On-Screen Textual Data
US8250525B2 (en) * 2007-03-02 2012-08-21 Pegasystems Inc. Proactive performance management for multi-user enterprise software systems
JP4877831B2 (ja) * 2007-06-27 2012-02-15 久美子 石井 確認システム、情報提供システム、ならびに、プログラム
US9137377B2 (en) 2007-08-22 2015-09-15 Citrix Systems, Inc. Systems and methods for at least partially releasing an appliance from a private branch exchange
US8750490B2 (en) * 2007-08-22 2014-06-10 Citrix Systems, Inc. Systems and methods for establishing a communication session among end-points
US8315362B2 (en) * 2007-08-22 2012-11-20 Citrix Systems, Inc. Systems and methods for voicemail avoidance
EP2203828A1 (en) * 2007-10-18 2010-07-07 Nxp B.V. Data processing system with a plurality of processors, cache circuits and a shared memory
US20090150823A1 (en) * 2007-12-10 2009-06-11 Ati Technologies Ulc Apparatus and Method for Improved Window Management in a Grid Management System
US8938743B2 (en) * 2007-12-21 2015-01-20 Citrix Systems, Inc. Methods and systems for providing, to a first application executed by a first operating system, an interface for communicating with at least one application executed by a second operating system
US20090315900A1 (en) * 2008-06-23 2009-12-24 Microsoft Corporation Generic surface manager
US20090328080A1 (en) * 2008-06-25 2009-12-31 Microsoft Corporation Window Redirection Using Interception of Drawing APIS
US8612614B2 (en) 2008-07-17 2013-12-17 Citrix Systems, Inc. Method and system for establishing a dedicated session for a member of a common frame buffer group
US8843435B1 (en) 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US8468492B1 (en) 2009-03-30 2013-06-18 Pegasystems, Inc. System and method for creation and modification of software applications
US8185828B2 (en) * 2009-04-08 2012-05-22 Cisco Technology, Inc. Efficiently sharing windows during online collaborative computing sessions
US8612883B2 (en) 2009-06-08 2013-12-17 Apple Inc. User interface for managing the display of multiple display regions
CN102063302B (zh) * 2010-12-20 2014-07-02 北京握奇数据系统有限公司 窗口管理方法、系统及终端
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
US8713473B2 (en) * 2011-04-26 2014-04-29 Google Inc. Mobile browser context switching
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
CN102662451A (zh) * 2012-03-24 2012-09-12 上海量明科技发展有限公司 通过触摸屏实现数据复位操作的方法及终端
CN102855053B (zh) * 2012-09-13 2016-06-15 惠州Tcl移动通信有限公司 基于移动终端的信息对照输入的方法及移动终端
WO2014170714A1 (en) * 2013-04-18 2014-10-23 Wakefield Franz Antonio A tangible portable interactive electronic computing device
US8671352B1 (en) 2013-05-07 2014-03-11 Axure Software Solutions, Inc. Variable dimension version editing for graphical designs
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
US10409781B2 (en) 2015-04-29 2019-09-10 Box, Inc. Multi-regime caching in a virtual file system for cloud-based shared content
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
US11470131B2 (en) 2017-07-07 2022-10-11 Box, Inc. User device processing of information from a network-accessible collaboration system
US10929210B2 (en) 2017-07-07 2021-02-23 Box, Inc. Collaboration system protocol processing
US11716558B2 (en) 2018-04-16 2023-08-01 Charter Communications Operating, Llc Apparatus and methods for integrated high-capacity data and wireless network services
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
US10592589B1 (en) * 2018-08-21 2020-03-17 Axure Software Solutions, Inc. Multi-view masters for graphical designs
EP3864917A4 (en) 2018-10-12 2022-07-06 Charter Communications Operating, LLC APPARATUS AND METHODS FOR IDENTIFYING CELLS IN WIRELESS NETWORKS
US11129171B2 (en) 2019-02-27 2021-09-21 Charter Communications Operating, Llc Methods and apparatus for wireless signal maximization and management in a quasi-licensed wireless system
US11645047B2 (en) 2019-09-13 2023-05-09 Axure Software Solutions, Inc. Focused specification generation for interactive designs
US11026205B2 (en) 2019-10-23 2021-06-01 Charter Communications Operating, Llc Methods and apparatus for device registration in a quasi-licensed wireless system
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods
US11762531B2 (en) 2020-10-28 2023-09-19 Axure Software Solutions, Inc. Stateful widget container management for interactive designs

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4555775B1 (en) * 1982-10-07 1995-12-05 Bell Telephone Labor Inc Dynamic generation and overlaying of graphic windows for multiple active program storage areas
JPS61296384A (ja) * 1985-06-26 1986-12-27 株式会社日立製作所 画面表示制御装置
EP0212016B1 (en) * 1985-08-12 1990-10-31 Data General Corporation A system of graphical manipulation in a potentially windowed data display
US4954818A (en) * 1985-10-18 1990-09-04 Hitachi, Ltd. Multi-window display control system
JPH0766317B2 (ja) * 1986-04-09 1995-07-19 株式会社日立製作所 表示制御方法
US4868557A (en) * 1986-06-04 1989-09-19 Apple Computer, Inc. Video display apparatus
US4821220A (en) * 1986-07-25 1989-04-11 Tektronix, Inc. System for animating program operation and displaying time-based relationships
US4885717A (en) * 1986-09-25 1989-12-05 Tektronix, Inc. System for graphically representing operation of object-oriented programs
US5062060A (en) * 1987-01-05 1991-10-29 Motorola Inc. Computer human interface comprising user-adjustable window for displaying or printing information
US5072412A (en) * 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US4891630A (en) * 1988-04-22 1990-01-02 Friedman Mark B Computer vision system with improved object orientation technique
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
US5216413A (en) * 1988-06-13 1993-06-01 Digital Equipment Corporation Apparatus and method for specifying windows with priority ordered rectangles in a computer video graphics system
EP0347162A3 (en) * 1988-06-14 1990-09-12 Tektronix, Inc. Apparatus and methods for controlling data flow processes by generated instruction sequences
US5041992A (en) * 1988-10-24 1991-08-20 University Of Pittsburgh Interactive method of developing software interfaces
US5133075A (en) * 1988-12-19 1992-07-21 Hewlett-Packard Company Method of monitoring changes in attribute values of object in an object-oriented database
US5050090A (en) * 1989-03-30 1991-09-17 R. J. Reynolds Tobacco Company Object placement method and apparatus
US5060276A (en) * 1989-05-31 1991-10-22 At&T Bell Laboratories Technique for object orientation detection using a feed-forward neural network
US5125091A (en) * 1989-06-08 1992-06-23 Hazox Corporation Object oriented control of real-time processing
US5181162A (en) * 1989-12-06 1993-01-19 Eastman Kodak Company Document management and production system
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5075848A (en) * 1989-12-22 1991-12-24 Intel Corporation Object lifetime control in an object-oriented memory protection mechanism
DE69022210T2 (de) * 1990-01-29 1996-05-02 Ibm Datenverarbeitungssystem.
US5151987A (en) * 1990-10-23 1992-09-29 International Business Machines Corporation Recovery objects in an object oriented computing environment
US5388200A (en) * 1990-12-21 1995-02-07 Sun Microsystems, Inc. Method and apparatus for writing directly to a frame buffer
US5119475A (en) * 1991-03-13 1992-06-02 Schlumberger Technology Corporation Object-oriented framework for menu definition
US5371847A (en) * 1992-09-22 1994-12-06 Microsoft Corporation Method and system for specifying the arrangement of windows on a display
US5522025A (en) * 1993-10-25 1996-05-28 Taligent, Inc. Object-oriented window area display system
US5524199A (en) * 1993-12-30 1996-06-04 Taligent Object-oriented view system with background processing of update request

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8007362B2 (en) 2005-03-31 2011-08-30 Kabushiki Kaisha Square Enix Method of displaying multiple kinds of independently processed display data
JP2008309933A (ja) * 2007-06-13 2008-12-25 Funai Electric Co Ltd 電子機器
US9317198B2 (en) 2012-10-10 2016-04-19 Samsung Electronics Co., Ltd. Multi display device and control method thereof
US9335887B2 (en) 2012-10-10 2016-05-10 Samsung Electronics Co., Ltd. Multi display device and method of providing tool therefor
US9348504B2 (en) 2012-10-10 2016-05-24 Samsung Electronics Co., Ltd. Multi-display apparatus and method of controlling the same
US9417784B2 (en) 2012-10-10 2016-08-16 Samsung Electronics Co., Ltd. Multi display apparatus and method of controlling display operation
US9571734B2 (en) 2012-10-10 2017-02-14 Samsung Electronics Co., Ltd. Multi display device and method of photographing thereof
US9696899B2 (en) 2012-10-10 2017-07-04 Samsung Electronics Co., Ltd. Multi display apparatus and multi display method
US11360728B2 (en) 2012-10-10 2022-06-14 Samsung Electronics Co., Ltd. Head mounted display apparatus and method for displaying a content

Also Published As

Publication number Publication date
EP0710388B1 (en) 1998-04-22
AU6020894A (en) 1995-05-22
US6750858B1 (en) 2004-06-15
DE69409812D1 (de) 1998-05-28
EP0710388A1 (en) 1996-05-08
WO1995012194A1 (en) 1995-05-04
JP3544666B2 (ja) 2004-07-21
US5522025A (en) 1996-05-28

Similar Documents

Publication Publication Date Title
JPH09504884A (ja) オブジェクト指向ディスプレイ・システム
US5555368A (en) Object-oriented multi-tasking view framework
US5465362A (en) Object-oriented view-system for displaying information in a windowing environment
US5544301A (en) Object-oriented view layout system
CA2178585C (en) Object-oriented task security framework
US5668997A (en) Object-oriented system for servicing windows
US5615326A (en) Object-oriented viewing framework having view grouping
US5737559A (en) Object-oriented view hierarchy framework
JP3368188B2 (ja) マルチタスク・データ処理システム及び方法
US5734852A (en) Method and apparatus for displaying hardware dependent graphics in an object-oriented operating system
US5745759A (en) Window kernel
EP0636971B1 (en) Method and apparatus for producing a composite second image in the spatial context of a first image
US10157593B2 (en) Cross-platform rendering engine
US9098179B2 (en) Method and system for inserting a content object for use on an interactive surface
US6918093B2 (en) Inheritance of background color in a containment hierarchy of objects in a graphical user interface
US5524199A (en) Object-oriented view system with background processing of update request
US20020180790A1 (en) System and method for encapsulating software components in an application program interface using a proxy object
KR20060105422A (ko) 데스크톱 윈도우 관리자 합성
US5524200A (en) Object-oriented non-rectilinear viewing framework
JPH09504895A (ja) オブジェクト指向ペインタ・メーカ
US7562306B2 (en) System and method for reducing memory use associated with the graphical representation of a list control
US5796969A (en) Object-oriented view coordinate space system
KR20080031595A (ko) 오프스크린 버퍼링 관리 장치 및 방법
Blackman et al. The Unity Editor
Nutting et al. Drawing in Cocoa

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040316

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040406

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090416

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090416

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100416

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110416

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110416

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110416

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120416

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120416

Year of fee payment: 8

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120416

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140416

Year of fee payment: 10

EXPY Cancellation because of completion of term