首页 / 专利库 / 软件 / 所见即所得 / User interface creating and editing system for user interface server

User interface creating and editing system for user interface server

阅读:255发布:2020-12-28

专利汇可以提供User interface creating and editing system for user interface server专利检索,专利查询,专利分析的服务。并且PURPOSE: To develop and edit a user interface regardless of any window system and interactive tool kit. CONSTITUTION: An interface editor 49 makes it possible to add a user interface component to an already existing user interface component hierarchy by utilizing a WYSIWYG display and the hierarchical display of user interface components to delete, move, and copy the user interface components or their groups, and to change the resource values related to the user interface components. A user interface server 48 loads an interface and supports the interaction between a user and applications 50, 53, and 54 so that such a mechanism that the applications 50, 53, and 54 dynamically corrects and inquiries the loaded user interface can be given and the various applications 50, 53, and 54 can share the same user interface.,下面是User interface creating and editing system for user interface server专利的具体信息内容。

【特許請求の範囲】
  • 【請求項1】システム・バスによって相互接続された計算手段、メモリ手段、ディスプレイ手段、入力手段を含むデータ処理システムにして、 前記メモリ手段内にあって、各々が複数の階層的に関連したユーザ・インターフェース・コンポーネントを含む複数のユーザ・インターフェースを有する表示オブジェクト記憶手段と、 前記メモリ手段内にあって、前記表示オブジェクト記憶手段に接続され、メイン・メニュー、ステータス・ライン、ユーザ・インターフェース・コンポーネント作成制御パネル及びユーザ・インターフェース・コンポーネント階層表示領域を含む1次ウインドウを前記ディスプレイ手段の第1部分に表示される対話式エディタ手段と、 より成り、 前記対話式エディタ手段は、ユーザ・インターフェースの初期選択に応答して該ユーザ・インターフェースを表示オブジェクト記憶装置からを検索し且つ該ユーザ・インターフェースをワーキング・メモリ領域にロードし、
    該検索されたユーザ・インターフェースのコンポーネントの階層的表示をユーザ・インターフェース・コンポーネント階層表示領域に表示し、該ユーザ・インターフェースのWYSIWYG表示を前記ディスプレイ手段の第2部分に表示すること、及び前記対話式エディタ手段は、前記入力手段から入力された1つ又は複数の編集コマンドに応答して、該編集コマンドの各々に対し前記ワーキング・メモリ領域におけるユーザ・インターフェースを修正し、該修正を反映するように該編集コマンドによって前記ユーザ・インターフェース・コンポーネント階層表示領域における階層的表示及び前記ディスプレイ手段の第2部分におけるユーザ・インターフェースのW
    YSIWYG表示を更新させ、編集が終了した時に該修正されたユーザ・インターフェースを前記表示オブジェクト記憶装置に記憶すること、 を特徴とするデータ処理装置。
  • 【請求項2】前記対話式エディタ手段は前記ディスプレイ手段における表示を制御するようなウインドウ管理システムに接続されることを特徴とする請求項1に記載のシステム。
  • 【請求項3】前記対話式エディタ手段は選択されたコンポーネントに対する資源名及び関連する資源値のリストを前記ディスプレイ手段の第3部分に表示すること、及び前記編集コマンドは該リストから選択された資源値の修正を可能にすることを特徴とする請求項1に記載のシステム。
  • 【請求項4】ユーザ・インターフェースを対話的に編集するためのシステムにして、 ディスプレイ及び記憶タスクを有し、前記ユーザ・インターフェースの外観及び操作方法がそれぞれ関連の資源を有する複数のユーザ・インターフェース・コンポーネントの階層のよって定義されたコンピュータと、 前記ユーザ・インターフェース・コンポーネントの階層及び該コンポーネントの資源値を定義するための対話式表示エディタであって、前記ユーザ・インターフェース・コンポーネントの階層及び該コンポーネントの資源値より成る定義されたユーザ・インターフェースを表示オブジェクト記憶装置に記憶するものと、 前記表示オブジェクト記憶装置に記憶された前記ユーザ・インターフェースを使用して前記ディスプレイ上に前記ユーザ・インターフェースを表示させ、前記ユーザ・
    インターフェースとのユーザ対話を可能にするためのユーザ・インターフェース・サーバと、 より成るシステム。
  • 【請求項5】システム・バスによって相互接続された計算手段、メモリ手段、ディスプレイ手段、及び入力手段を含むコンピュータ・システムにおいてユーザ・インターフェースに無関係にウインドウ・システムを編集する対話式方法にして、該ユーザ・インターフェースは複数の階層的に関連したユーザ・インターフェース・コンポーネントによって表わされ、該コンポーネントの各々は複数の資源より成るものにおいて、 前記メモリ手段における表示オブジェクト記憶装置から第1ユーザ・インターフェースを検索するステップと、 1つ又は複数のコマンドを第1ウインドウに表示するステップと、 前記第1ユーザ・インターフェースのユーザ・インターフェース・コンポーネントの階層的表示を第2ウインドウに表示するステップと、 前記ユーザ・インターフェースのWYSIWYG表示を第3ウインドウに表示するステップと、 選択された編集コマンドに応答して前記ユーザ・インターフェースを前記第1ウインドウにおいて編集するステップと、 編集されたユーザ・インターフェースを表示オブジェクト記憶装置に記憶するステップと、 より成る方法。
  • 【請求項6】システム・バスによって相互接続された計算手段、メモリ手段、ディスプレイ手段、及び入力手段を含むコンピュータ・システムにおいてユーザ・インターフェースに無関係にウインドウ・システムを作成する対話式方法にして、該ユーザ・インターフェースは複数の階層的に関連したユーザ・インターフェース・コンポーネントによって表わされ、該コンポーネントの各々は複数の資源より成るものにおいて、 (a)メイン・メニュー、ステータス・ライン、ユーザ・インターフェース・コンポーネント作成制御パネル、
    及びユーザ・インターフェース・コンポーネント階層表示領域を含む1次ウインドウを前記ディスプレイ手段の第1部分に表示するステップと、 (b)アクティブ・コンポーネントを指定されるルート・ユーザ・インターフェース・コンポーネントを持ったアクティブ・ユーザ・インターフェース階層を前記メモリ手段に作成し、該ルート・ユーザ・インターフェース・コンポーネントを前記ユーザ・インターフェース・コンポーネント階層表示領域に1つのシンボルとして表示するステップと、 (c)前記アクティブ・ユーザ・インターフェース階層のWYSIWYG表示を前記ディスプレイ手段の第2部分に表示するステップと、 (d)前記ユーザ・インターフェース・コンポーネント作成制御パネルからユーザ・インターフェース・コンポーネント・タイプが選択される時、ユーザ・インターフェース・コンポーネントを前記アクティブ・コンポーネントの子として前記アクティブ・ユーザ・インターフェース階層に加えるステップと、 (e)前記アクティブ・コンポーネントに対する相互接続シンボルと共に前記加えられたユーザ・インターフェース・コンポーネントを1つのシンボルとして表示するように前記ユーザ・インターフェース・コンポーネント階層表示領域を更新するステップと、 (f)前記ディスプレイ手段の第2部分における前記アクティブ・ユーザ・インターフェース階層のWYSIW
    YG表示を更新するステップと、 (g)ユーザ・インターフェースのすべてのコンポーネントが加えられてしまうまで前記ステップ(d)乃至ステップ(f)を繰り返すステップと、 (h)前記アクティブ・ユーザ・インターフェース階層によって表わされたユーザ・インターフェースを表示オブジェクト記憶装置に記憶するステップと、 より成る方法。
  • 【請求項7】前記ステップ(e)における加えられたユーザ・インターフェース・コンポーネントはアクティブ・コンポーネントを指定されることを特徴とする請求項6に記載の方法。
  • 【請求項8】前記アクティブ・コンポーネントはユーザ・インターフェース・コンポーネント・タイプの選択の前に指定されること、及び該指定は指定されるべきアクティブ・コンポーネントと関連したユーザ・インターフェース・コンポーネント階層表示領域におけるシンボルの選択によって達成されることを特徴とする請求項6に記載の方法。
  • 【請求項9】資源名及び関連した資源値を有するコンポーネント資源リストは前記ディスプレイ手段の第3部分において前記アクティブ・コンポーネントに対して表示されること、前記資源リストは資源を選択すること及び前記メモリ手段におけるアクティブ・コンポーネントに対して該選択された資源の値を修正し及び該修正された資源値を反映するように前記ディスプレイ手段におけるユーザ・インターフェース・コンポーネント階層表示領域及びアクティブ・ユーザ・インターフェース階層のW
    YSIWYG表示を更新することを特徴とする請求項6
    に記載の方法。
  • 【請求項10】資源の選択に応答して、該資源と関連した資源エディタが呼び出されて資源値の対話的修正を可能にすることを特徴とする請求項6に記載の方法。
  • 【請求項11】システム・バスによって相互接続された計算手段、メモリ手段、ディスプレイ手段、及び入力手段を含むコンピュータ・システムにおいてユーザ・インターフェースに無関係にウインドウ・システムを作成する対話式方法にして、該ユーザ・インターフェースは複数の階層的に関連したユーザ・インターフェース・コンポーネントによって表わされ、該コンポーネントの各々は1つ又は複数の関連資源より成るものにおいて、 (a)メイン・メニュー、ステータス・ライン、ユーザ・インターフェース・コンポーネント作成制御パネル、
    及びユーザ・インターフェース・コンポーネント階層表示領域を含む1次ウインドウを前記ディスプレイ手段の第1部分に表示するステップと、 (b)アクティブ・コンポーネントを指定されるルート・ユーザ・インターフェース・コンポーネントを持ったアクティブ・ユーザ・インターフェース階層を前記メモリ手段に作成し、該ルート・ユーザ・インターフェース・コンポーネントを前記ユーザ・インターフェース・コンポーネント階層表示領域に1つのシンボルとして表示し、前記アクティブ・ユーザ・インターフェース階層のWYSIWYG表示を前記ディスプレイ手段の第2部分に表示し、該ルート・コンポーネントに対する資源名及び関連した資源値のリストを前記ディスプレイ手段の第3部分に表示するステップと、 (c)前記ユーザ・インターフェース・コンポーネント作成制御パネルからユーザ・インターフェース・コンポーネント・タイプが選択される時、ユーザ・インターフェース・コンポーネントを前記アクティブ・コンポーネントの子として前記アクティブ・ユーザ・インターフェース階層に加え、前記アクティブ・コンポーネントに対する相互接続シンボルと共に前記加えられたユーザ・インターフェース・コンポーネントを1つのシンボルとして表示するように前記ユーザ・インターフェース・コンポーネント階層表示領域を更新し、前記えられたユーザ・インターフェース・コンポーネントを反映するように前記ディスプレイ手段の第2部分における前記アクティブ・ユーザ・インターフェース階層のWYSIWYG表示を更新するステップと、 (d)前記加えられたユーザ・インターフェース・コンポーネントをアクティブ・コンポーネントとして指定し、該アクティブ・コンポーネントに対する資源名及び関連した資源値を前記ディスプレイ手段における第3部分に表示するステップと、 (e)前記アクティブ・コンポーネントと関連したメモリ内の資源値を資源編集手段により変更することを可能にするステップであって、該資源編集手段は該変更された資源値を反映するようにアクティブ・ユーザ・インターフェース階層のWYSIWYG表示、前記ユーザ・インターフェース・コンポーネント階層表示領域におけるアクティブ・コンポーネント、前記ディスプレイ手段の第3部分における関連した資源値を更新させることと、 (f)ユーザ・インターフェースが完成するまで前記ステップ(c)乃至ステップ(e)を繰り返すステップと、 (g)前記アクティブ・ユーザ・インターフェース階層によって表わされるユーザ・インターフェースを表示オブジェクト記憶装置に記憶するステップと、より成る方法。
  • 【請求項12】システム・バスによって相互接続された計算手段、メモリ手段、ディスプレイ手段、及び入力手段を含むコンピュータ・システムにおいてユーザ・インターフェースに無関係にウインドウ・システムを編集する対話式方法にして、該ユーザ・インターフェースは複数の階層的に関連したユーザ・インターフェース・コンポーネントによって表わされ、該コンポーネントの各々は1つ又は複数の関連資源より成るものにおいて、 (a)メイン・メニュー、ステータス・ライン、ユーザ・インターフェース・コンポーネント作成制御パネル、
    及びユーザ・インターフェース・コンポーネント階層表示領域を含む1次ウインドウを前記ディスプレイ手段の第1部分に表示するステップと、 (b)1次ウインドウにおける選択に応答してユーザ・
    インターフェースを表示オブジェクト記憶装置から検索するステップと、 (c)検索されたユーザ・インターフェースからアクティブ・ユーザ・インターフェース階層を前記メモリ手段に作成し、該アクティブ・コンポーネント階層におけるコンポーネントの階層的表示を前記ユーザ・インターフェース・コンポーネント階層表示領域に表示し、前記アクティブ・ユーザ・インターフェース階層のWYSIW
    YG表示を前記ディスプレイ手段の第2部分に表示し、
    ルート・コンポーネントに対する資源名及び関連した資源値のリストを前記ディスプレイ手段の第3部分に表示するステップと、 (d)選択に応答して前記メモリ手段におけるアクティブ・ユーザ・インターフェース階層を編集し、該編集を反映するように、前記ユーザ・インターフェース・コンポーネント階層表示領域、前記ディスプレイ手段の第2
    部分におけるアクティブ・ユーザ・インターフェース階層のWYSIWYG表示、及び前記ディスプレイ手段の第3部分における資源名及び関連した資源値のリストを更新するステップと、 (e)前記アクティブ・ユーザ・コンポーネント階層の編集が完了した後、該アクティブ・ユーザ・インターフェース階層によって表わされたユーザ・インターフェースを表示オブジェクト記憶装置に記憶するステップと、 より成る方法。
  • 说明书全文

    【発明の詳細な説明】

    【0001】

    【産業上の利用分野】本発明は、概括的には、コンピュータ・システムのためのユーザ・インターフェースの作成又は編集に関するものであり、更に詳しくえば、グラフィカル・ユーザ・インターフェースの対話的作成及び編集に関するものである。

    【0002】

    【従来の技術】アプリケーションは、ユーザ・インターフェースを介してユーザと対話する。 グラフィカル・ユーザ・インターフェース(GUI)は、ユーザがいくつかの形式の指示装置と共にグラフィックス、イメージ、
    データ及びテキストを使用してコンピュータと対話することを可能にする。 GUIは、伝統的なテキスト・ディスプレイ及び英数字キーボード入装置における1つの改良である。 GUIにより使用されるより一般的な指示装置の1つはマウスである。 マウス入力装置は、伝統的なテキスト入力及びディスプレイに対して使用可能なキーボードを補うものである。 GUIのグラフィカル・イメージは、ファイルの保管作用を示すためにファイル・
    キャビネットのイメージをラベル付けされた押しボタンのような簡易使用(ease−of−use)に直観的であるように選択される。 特定のウインドウ又は押しボタンのようなGUIの個々のコンポーネントは、マウス又は他の任意のサポートされた他の指示装置を使用することによって選択される。 他の指示装置は、タブレット、タッチ・スクリーン、タッチ・スクリーン・オーバレイ、トラック・ボール、ジョイ・スティック、ライト・ペン、サム・ホイール等を含むものである。

    【0003】ウインドウ管理システムは、現代のユーザ・コンピュータ・インターフェースの重要な特徴の多くを与えるものである。 ウインドウ管理システムは、多数のアプリケーションが1つのコンピュータ・ディスプレイを介してユーザと対話することを可能にし、アプリケーションがデータを表示し且つユーザからの入力を収集するための低レベル機能を与える。 ウインドウ管理システムは、アプリケーション・プログラムがディスプレイの種々な領域に結果を示すこと、それらアプリケーションを実行するスクリーン領域をサイズ変更すること、メニューをポップアップ及びプルダウンすることを可能にする。 ウインドウ管理システムは、オペレーティング・
    システムが1つの資源マネージャであることと同じ意味で、資源のタイプは異なるけれども、1つの資源マネージャである。 ウインドウ管理システムは、スクリーンの使用を求める種々のアプリケーションにスクリーン領域という資源を割り当て、そして、それらアプリケーションが相互に干渉しないようにこれらスクリーン領域の管理を援助する。 又、ウインドウ管理システムは、ユーザ入力を必要とするアプリケーションに対話装置という資源を割り当て、そして、それら装置からの入力情報の流れを、その入力が向けられる適当なアプリケーションの事象待ち行列へ経路指定する。

    【0004】ユーザ・コンピュータ・インターフェースの外観及び感触は、主として、それに施される対話テクニックの集合によって決定される。 個々のアプリケーションに対して対話テクニックを設計し且つ導入することは時間浪費の且つ高価な仕事となるであろう。 更に、各アプリケーションは、ユーザが1つのアプリケーションから他のアプリケーションに移ることを困難にする異なった外観及び感触でもって終了するであろう。 1つの共通ウインドウ管理システムを共用する複数のアプリケーションは、1つの共通の外観及び感触を保証するウインドウ管理システムに対して作成された共通の対話テクニック・ツールキットを利用できる。 対話テクニック・ツールキットは種々のタイプの表示オブジェクトを与える一組のサブルーチンより成る。

    【0005】対話テクニックのサブルーチン・ライブラリである対話テクニック・ツールキットは、テクニックの集合を利用可能にしてアプリケーション・プログラムに使用させるための機構である。 対話テクニック・ツールキットを使用することによって、1つの共通のウインドウ管理システムを共用するアプリケーション・プログラム間の調和した外観及び感触を保証することができる。 すべてのアプリケーションにまたがって同じツールキットを使用することは、多数のアプリケーション及びウインドウ環境そのものの両方を一体化する外観及び感触を与えるための一般に使用される方法である。 例えば、ウインドウ・オペレーションを選択するために使用されるメニュー・スタイルは、すべてのアプリケーションにおいて使用される同じスタイルでなければならない。 対話テクニック・ツールキットは、特殊なウインドウ管理システムに対して利用可能である。 そのツールキットの基本エレメントは、メニュー、ダイアログ・ボックス、スクロール・バー、ファイル選択ボックス等であり、それらはすべてウインドウでは都合よく実施可能である。

    【0006】ほとんどのGUIは、アプリケーション開発者の要求に実時間で応答する対話式設計ツール(ID
    T)を使用して、パーソナル・コンピュータ又はワークステーション上で開発される。 利用可能ないくつかの対話式設計ツールがある(即ち、「OSF/Motif」
    及び「Xt Intrinsics」ベースのユーザ・
    インターフェースのための「Builder Xces
    sory」、「Easel for Presenta
    tion Manager」、「AIX Interf
    ace Composer」及び「UIM/X」)。
    「見た通りの取得」(WYSIWYG)インターフェース設計ツールは、アプリケーション開発者が最終的なユーザ・インターフェースを開発している時、そのインターフェースが実際にはどのように見えるかをその開発者に知らせるためのものである。 (WYSIWYGアプリケーションの他の例として、WYSIWYGテキスト・
    エディタは、テキストが印刷される時にそのテキストが実際にはどのように見えるかを知るためのフォーマッティング・ステップを必要とせずに、作成されるドキュメントの最終的な形式を示す)。

    【0007】インターフェース設計ツールは、特定の対話式ツールキットを持った特定のウインドウ・システムに基づいている。 IDTを使用して開発されたユーザ・
    インターフェースは他のアプリケーション機能と共にコンパイルされ、そのアプリケーションを生じる。 所与のアプリケーションに対してIDTにより作成されたユーザ・インターフェースは、そのIDTによりサポートされるウインドウ管理システムでもって作業するだけであろう。 又、IDTは出力としてコードを発生する。 このコードはコンパイルされ、そして、アプリケーションのユーザ・インターフェースを走らせるためにそのアプリケーションにリンクされなければならない。

    【0008】IDTによりサポートされた異なるウインドウ管理システムの下でアプリケーションがそのユーザ・インターフェースを走らせることを可能にするためには、そのアプリケーションに対する変更が必要である。
    従って、1つのウインドウ・システムに対して開発されたアプリケーションを異なるウインドウ・システムにおいて走らせるために、アプリケーション開発者は、そのウインドウ・システムとコミュニケートするアプリケーションの部分を書き直さなければならない。 従って、開発者は、新しいウインドウ管理システムでもってそれを働かせるようにIDTの出力を修正する。 その代わりとして、開発者は、新しいウインドウ管理システムがユーザ・インターフェースを作成し直すためのサポートを行うIDTを使用することも可能である。 現在のIDT
    は、多数のウインドウ管理システムが出力するユーザ・
    インターフェースのコンパイレーションを必要とすることなしにそれら多数のウインドウ管理システムにより使用可能なユーザ・インターフェースを与えるものではない。

    【0009】前述のように、アプリケーション開発者は、アプリケーションが異なるウインドウ管理システムでもって作業する必要がある時、そのアプリケーションのユーザ・インターフェース部分を書くか又は書き直すであろう。 ユーザ・インターフェース部分を書き直す必要に加えて、アプリケーション開発者は、その特殊化されたウインドウ管理システムを知ること及びコンパイルされた言語で書くことができることも必要である。 それは、異なるウインドウ管理システムに対して異なるバージョンのユーザ・インターフェースを生じさせる。 これは維持及び変更制御問題に通じる。

    【0010】アプリケーション開発者は、米国コロラド州ボルダのXVTソフトウエア社から入手可能な「eX
    tennsible Virtual Toolkit
    (XVT)」のようなツールを使用することも可能である。 このツールは、開発者が高レベルのユーザ・インターフェース・コマンドより成るユーザ・インターフェースの高レベルの記述を生成することを可能にする。 そのツールによって生成された高レベルのユーザ・インターフェース・コマンドを所望のウインドウ管理システムのためのコマンドにコンパイルすることによって、可般性が与えられる。 この代替え方法は、異なるウインドウ管理システムに対して同じユーザ・インターフェースの二重表示を生じ、各ウインドウ管理システムに対して別個のコンパイレーション・ステップを必要とする。

    【0011】IDTは、解釈アプリケーションに対するサポートを与えるものではない。 IDTは、アプリケーションがそのIDTによって作成されたユーザ・インターフェースを利用するためにはコンパイルされなければならないソース・コードを発生する。 ユーザ・インターフェースのこのコンパイル可能な表示は、解釈アプリケーションがそのコンパイルされたユーザ・インターフェースを直接に使用することを可能にするものではない。
    IDTによって作成されたユーザ・インターフェースをアプリケーションが利用するためには、解釈アプリケーションからユーザ・インターフェースのコンパイル可能な表示に、或形式のコミュニケーションが行われなければならない。 これは、アプリケーション開発者がC言語のようなコンパイルされた言語の知識を持つこと及びその言語を解釈環境に結びつける方法を知ることを必要とする。

    【0012】

    【発明が解決しようとする課題】本発明は、これらの要求を満たす方法及び装置に関するものである。

    【0013】従って、本発明の目的は、ユーザインターフェースの作成及び維持を簡単にすることである。

    【0014】本発明のもう1つの目的は、特定のウインドウ・システム又は対話式ツールキットに関係ないユーザ・インターフェースを作成することにある。

    【0015】本発明の更にもう1つの目的は、特定のウインドウ・システム又は対話式ツールキットに関係ないユーザ・インターフェースを編集することにある。

    【0016】本発明の更にもう1つの目的は、ユーザ・
    インターフェース及びそれらのアプリケーションの開発を簡単にすることにある。

    【0017】本発明の更にもう1つの目的は、ユーザ・
    インターフェース及びそれらのアプリケーションの維持を簡単にすることにある。

    【0018】本発明の更にもう1つの目的は、アプリケーションのソース・コードを修正することなく種々の異なるウインドウ管理システムを容易に走らせ得るように書かれるべきアプリケーションを提供することにある。

    【0019】本発明の更にもう1つの目的は、ユーザ・
    インターフェースの部分の動的ローディングを提供することにある。

    【0020】本発明の更にもう1つの目的は、ウインドウ管理システム・サポートを持った解釈アプリケーションを提供することにある。

    【0021】本発明の更にもう1つの目的は、プラットフォーム又はウインドウ管理システムの導入に関係なく複数のアプリケーションにわたって1つの共通の外観及び感触を与えることにある。

    【0022】

    【課題を解決するための手段】本発明の上記目的は、ユーザ・インターフェースを作成しそしてそのユーザ・インターフェースを表示オブジェクト記憶装置に記憶するインターフェース・エディタを提供する装置及び方法によって達成される。 インターフェース・エディタは表示オブジェクト記憶装置からユーザ・インターフェースを検索し、その検索されたユーザ・インターフェースを編集し、その編集されたユーザ・インターフェースを表示オブジェクト記憶装置に記憶する。 そのインターフェース・エディタは、ユーザ・インターフェースのWYSI
    WYG表示及びユーザ・インターフェース・コンポーネントの階層的表示によってユーザ・インターフェースの対話的設計を行う。 インターフェース・エディタは、開発者が既存のユーザ・インターフェース・コンポーネント階層にユーザ・インターフェース・コンポーネントを加えること、ユーザ・インターフェース・コンポーネント又はユーザ・インターフェース・コンポーネントのグループ(即ち、ユーザ・インターフェース・コンポーネントの副階層又はサブ・ツリー)を削除すること、ユーザ・インターフェース・コンポーネント又はユーザ・インターフェース・コンポーネントのグループを移動すること、ユーザ・インターフェース・コンポーネント又はユーザ・インターフェース・コンポーネントのグループをコピーすること、及び個々のユーザ・インターフェース・コンポーネントと関連した資源値を変更することを可能にする。

    【0023】それは、ユーザ・インターフェースがウインドウ・システムとは無関係であることを可能にする。
    アプリケーションは、表示オブジェクト記憶装置に記憶されたユーザ・インターフェースを、ユーザ・インターフェース・サーバを介して利用する。 ユーザ・インターフェース・サーバはインターフェースをロードし、そして、(a)ユーザ・インターフェース・サーバによって表示オブジェクトからロードされたユーザ・インターフェースをアプリケーションが動的に修正し且つ照会するための機構が与えられるように、及び(b)種々のアプリケーションが同じユーザ・インターフェースを共用することを可能にするように、ユーザとアプリケーションとの間の対話をサポートする。 本発明は、特定のウインドウ・システムの詳細からアプリケーションを分離し、
    従って、同じバージョンのアプリケーションを種々のウインドウ・システムにおいて走らせることを可能にする。 これは、表示オブジェクト記憶装置に記憶されたウインドウ・システムとは無関係の単一のインターフェース表示を介してインターフェース・エディタ及びユーザ・インターフェース・サーバを結びつけることによって達成される。 これは、対話的環境で走るアプリケーションもサポートし、コンパイレーションなしにユーザ・インターフェースを開発し且つ走らせる方法を提供するものである。

    【0024】

    【実施例】

    A. 定義 「ユーザ・インターフェース」は、ユーザ・インターフェース・コンポーネントの階層である。 ユーザ・インターフェースは、グラフィカル・ユーザ・インターフェースを構成するユーザ・インターフェース・コンポーネントを含んでいる。 ユーザ・インターフェースという用語は、ディスプレイ上の実際の外観、ワーキング・メモリにおける表示、又は表示オブジェクト記憶装置における表示を指すこともある。 階層は、子が子を持つ多重レベルの階層でもよい。 他のすべてのディスプレイ・コンポーネントはルートの子である。 それらは、第1世代の子(即ち、2レベル階層)又は多重世代の子(3レベル以上の階層)でもよい。 コンポーネントは階層で構成され、ツリーとも呼ばれる。 そのような構造の一例は、
    「家系図」である。 ツリーのコンポーネントは、他のツリーのコンポーネントに接続される。 ツリー・コンポーネントは、「親」(それが属するコンポーネント)及び「子」(それに属するコンポーネント)を持つことができる。 副階層、又はサブ・ツリーは任意の指定されたコンポーネント及びそれの下にあるすべての子であり、子の子等を含む。

    【0025】「ユーザ・インターフェース・コンポーネント」というこの用語は、そのインターフェースの個々の可視的断片又はそれの下位表示を呼ぶ。 コンポーネントは、高レベル・コンポーネント(即ち、ウインドウ)
    又は低レベル・コンポーネント(即ち、押しボタン、メニュー、テキスト・ラベル)の何れかである。 コンポーネントは、他のコンポーネントに対するそれらの関係によっても分類可能である。 コンテナ・コンポーネントは、他のコンポーネントを含み又は制御するコンポーネントを呼ぶ。 コンテナ・コンポーネントは、それらの制御内又はそれらの物理的境界内にあるコンポーネントの親であると云われる。 原始コンポーネントは、所与の階層又は副階層における最低のレベルを形成し、他のコンポーネントを含むことができない。 複合コンポーネントは、コンテナ・コンポーネント及び原始コンポーネントのグループである。

    【0026】「資源」は、ユーザ・インターフェース・
    コンポーネントと関連付けられる。 資源は、所与のコンポーネントの特殊なアトリビュートを呼ぶ。 資源の例は、フォアグラウンド・カラー、バックグラウンド・カラー、名前、フォント、親、ピクセル・マップ、アイコン等を含む。 或資源はすべてのコンポーネントに共通であり、或資源は1つのサブセットのコンポーネントに共通であり、或資源は所与のタイプのコンポーネントに特有のものである。

    【0027】「コールバック」は、特別なクラスの資源である。 コールバックは、アプリケーション特有の機能をユーザ・インターフェース・コンポーネントと関連付けるための手段を与える。 コールバックは、1つのコンポーネントにおける特定のユーザ・アクションと関連付けられる。 ユーザ入力に応答する各コンポーネント・タイプは、1つ又は複数のコールバック・タイプをサポートする。 例えば、アプリケーションは、典型的には、ユーザがアプリケーションのユーザ・インターフェースに表示された押しボタンを選択する時に遂行すべき処理を有する。 典型的には、2つの資源が1つの特定なコールバック・タイプ(そのコールバック及びコールバック・
    データ)に対して指定される。 アプリケーション開発者は、アプリケーションが作成される時、ユーザ・インターフェースに対して必要なコールバックを指定する。 コールバックに対するアプリケーション機能の名前は、表示オブジェクト記憶装置にユーザ・インターフェース・
    コンポーネントと共に記憶されるが、アプリケーションによって修正可能である。

    【0028】「表示オブジェクト」は、視覚的特性又はその視覚的特性そのものを表わすデータ要約である。 表示オブジェクトは、複数のユーザ・インターフェース、
    単一のユーザ・インターフェース、複数のユーザ・インターフェース・コンポーネント、ユーザ・インターフェース・コンポーネントの階層又は副階層、単一のユーザ・インターフェース・コンポーネント、又はピクセルマップ或いはアイコンのような資源でよい。

    【0029】「コマンド」は、任意の必要なデータと共に実行される命令を含む。 例えば、ロード・コマンドは、ロードされるべきユーザ・インターフェースを指定しなければならない。 ロード・コマンドに対して必要なデータは、ユーザ・インターフェースの名前、又はその名前を含む他のロケーションに対する参照符、又はそのユーザ・インターフェース自身に対する参照符より成るものでよい。

    【0030】B. 概説 本発明の好ましい実施例は、図1の体系的なブロック図に示されるように、ユーザとコンピュータ・システムとの間の対話を制御するための一組のコンピュータ・プログラムより成る。 図1は、システム・バス22によって読み取り専用メモリ(ROM)24及びランダム・アクセス・メモリ(RAM)38に接続された中央処理装置(CPU)20を含む。 又、図1におけるコンピュータ・システムには、ディスプレイ28が含まれ、そのディスプレイによって、コンピュータはユーザに情報を表示する。 更に、そのコンピュータ・システムには、キーボード26、マウス34、及び入出力ポート(I/O)3
    0を介して接続可能な他の装置を含む複数の入力装置が含まれる。 その他の指示装置、音声感知装置、又はイメージ・センサのような他の入力装置も接続可能である。
    他の入力装置又は指示装置は、タブレット、数字キーパッド、タッチ・スクリーン、タッチ・スクリーン・オーバレイ、トラック・ボール、ジョイ・スティック、ライト・ペン、サム・ホイール等を含む。 I/O30は、コミュニケーション・ライン、ディスク記憶装置、入力装置、出力装置、又は他の入力装置に接続可能である。

    【0031】インターフェース・エディタ49がRAM
    38に置かれる。 インターフェース・エディタ49は、
    開発者がユーザ・インターフェースを対話的の作成し、
    その作成されたユーザ・インターフェースを表示オブジェクト記憶装置46に記憶することを可能にする。 インターフェース・エディタ49は、ユーザ・インターフェースを表示オブジェクト記憶装置46から検索し、その検索されたユーザ・インターフェースを編集し、その編集されたユーザ・インターフェースを表示オブジェクト記憶装置46に記憶する。 インターフェース・エディタ49は、設計されるユーザ・インターフェースのWYS
    IWYG表示及びユーザ・インターフェース・コンポーネントの階層的表示を行う。 インターフェース・エディタ49は、開発者が既存のユーザ・インターフェース・
    コンポーネント階層にユーザ・インターフェース・コンポーネントを加えること、ユーザ・インターフェース・
    コンポーネント又はユーザ・インターフェース・コンポーネントのグループ(即ち、ユーザ・インターフェース・コンポーネントの副階層又はサブ・ツリー)を削除すること、ユーザ・インターフェース・コンポーネント又はユーザ・インターフェース・コンポーネントのグループを移動すること、ユーザ・インターフェース・コンポーネント又はユーザ・インターフェース・コンポーネントのグループをコピーすること、及び個々のユーザ・インターフェース・コンポーネントと関連した資源値を変更することを可能にする。

    【0032】それは、ユーザ・インターフェースがウインドウ管理システム58とは無関係であることを可能にする。 アプリケーション50、53、54はユーザ・インターフェース・サーバ48を介してユーザ・インターフェースを利用する。 特定のウインドウ・システムの詳細からアプリケーションを分離することによって、同じユーザ・インターフェースを種々のウインドウ・システム上で走らせることができる。 インターフェース・エディタ49は、ウインドウ管理システム・インターフェース70を利用してウインドウ管理システム58へのアクセスを行う。 これは、インターフェース・エディタ49
    がそのユーザ・インターフェースの作用を表示し、制御することを可能にする。 開発者がアプリケーションに対するユーザ・インターフェースを作成しそして編集することを可能にするのはインターフェース・エディタのユーザ・インターフェースである。 インターフェース・エディタ49は、表示オブジェクト記憶装置46にも接続される。 インターフェース・エディタ49は、表示オブジェクト記憶装置46からユーザ・インターフェースを読み取ることができ、又は表示オブジェクト記憶装置4
    6にユーザ・インターフェースを書き込むことができる。

    【0033】RAM38は、アプリケーションA50、
    アプリケーションB53、アプリケーションC54を含んでいる。 これらアプリケーション・プログラムの各々はユーザ・インターフェース・サーバ(UIS)インターフェース52を使用する。 ユーザ・インターフェース・サーバ・インターフェース52は、アプリケーションがユーザ・インターフェース・サーバ48に含まれた機能及びデータをアクセスすることを可能にする。 典型的なアプリケーション・プログラムの例は、ワード・プロセッサ、表計算、グラフィック・プログラム、電子メール、データベース・プログラムを含むであろう。 又、R
    AM38には、ユーザ・インターフェース・サーバ48
    が置かれている。 ユーザ・インターフェース・サーバ4
    8は、ウインドウ管理システム・インターフェース70
    を利用してウインドウ管理システム58へのアクセスを行う。 表示オブジェクト記憶装置46は、複数のユーザ・インターフェースを含み、各ユーザ・インターフェースは複数のユーザ・インターフェース・コンポーネントを含む。 ユーザ・インターフェース・サーバ48は、アプリケーション・コマンドに応答して表示オブジェクト記憶装置46からユーザ・インターフェース及びユーザ・インターフェースの一部分を検索する。

    【0034】オペレーティング・システム74も、RA
    M38に含まれる。 オペレーティング・システムの例は、AIX(商標)及びOS/2(商標)を含む。 RA
    M38は、AIXに対するXウインドウ管理システム(商標)のようなウインドウ管理システム58を含んでいる。

    【0035】アプリケーションが同時に走らされそして同じ対話装置を共用することを可能にするのは、ウインドウ管理システム58と関連したオペレーティング・システム74である。 ユーザ・インターフェース及びユーザ・インターフェースの一部分の共用を可能にするのは、表示オブジェクト記憶装置46と関連したユーザ・
    インターフェース・サーバ48である。 開発者が表示オブジェクト記憶装置46においてユーザ・インターフェースを作成し、修正し、削除することを可能にするのは、インターフェース・エディタ49である。 RAM3
    8に示された他の素子は、キーボード及びマウスのような装置によって発生された電気信号を解釈するデバイス・ドライバ76を含んでいる。

    【0036】ワーキング・メモリ領域78もRAM38
    に示される。 ワーキング・メモリ領域78は、RAM3
    8に示された素子のうちのどれによっても利用可能である。 ワーキング・メモリ領域78は、アプリケーション50、53、54、ウインドウ管理システム58、ユーザ・インターフェース・サーバ48、インターフェース・エディタ49、オペレーティング・システム74及び他の機能によって利用可能である。 ワーキング・メモリ領域78は、素子間で及び素子内で区切ることが可能である。 ワーキング・メモリ領域78は、プログラムが走っている時、コミュニケーション、バッファリング、一時的記憶、データの記憶のために利用可能である。 例えば、インターフェース・エディタ49は、表示オブジェクト記憶装置46から検索されたユーザ・インターフェースをロードし、それを操作するために、ワーキング・
    メモリ領域78を利用する。 ワーキング・メモリ領域7
    8は、マルチ・タスキングのためにオペレーティング・
    システムによっても利用可能である。 ワーキング・メモリ領域78はアプリケーションの一部分として含まれるか、或いは、共通領域に位置指定可能である。 いずれの場合でも、そのワーキング・メモリがRAM38において連続している必要はない。

    【0037】インターフェース・エディタ49及びユーザ・インターフェース・サーバ48は、同じコンピュータ・システム上に置かれる必要はない。 図2は、ユーザ・インターフェース・サーバ又はアプリケーションなしでインターフェース・エディタ49を有するコンピュータ・システムを示す。 図1に対する素子の説明は、図2
    における素子に対しても同じである。 表示オブジェクト記憶装置46は図2にも示される。 しかし、図3に示されるように、表示オブジェクト記憶装置46をインターフェース・エディタ49又はユーザ・インターフェース・サーバ48とは異なるコンピュータ・システム上に置くことも可能である。 従って、表示オブジェクト記憶装置46は、読み取り及び書き込み特権を持ったインターフェース・エディタ49及び読み取り専用特権を持ったインターフェース・サーバ48と共に1つのファイル・
    エディタ上に置かれてもよい。 図3は、インターフェース・エディタ49がシステム1上に置かれ、表示オブジェクト記憶装置46がシステム2上に置かれ、ユーザ・
    インターフェース・サーバ48がシステム3上に置かれた3つの相互接続されたコンピュータ・システムを示す。 それらシステムは、トークン・リング又はローカル・エリア・ネットワークのような任意の標準的なコンピュータ・ネットワークによって相互接続可能である。

    【0038】図4はアプリケーション50、53、54
    に接続されたユーザ・インターフェース・サーバ48、
    ウインドウ管理システム58、及び表示オブジェクト記憶装置46の間の機能的関係を示し、ウインドウ管理システム58及び表示オブジェクト記憶装置46に接続されたインターフェース・エディタ49も示す。 図5はウインドウ管理システム58及び表示オブジェクト記憶装置46に接続されたインターフェース・エディタ49を示す。

    【0039】コミュニケーション手段56は、インターフェース・エディタ49及びウインドウ管理システム5
    8の間の両方向コミュニケーションを与える。 コミュニケーション手段56は、ユーザ・インターフェース・サーバ48とアプリケーションとの間及びユーザ・インターフェース・サーバ48とウインドウ管理システム58
    との間の両方向コミュニケーションも与える。 コミュニケーション手段56は、オペレーティング・システム7
    4又はプロシージャ・コール或いは共用メモリのような代替え手段によって与えられるプロセス間コミュニケーションでもよい。 そのコミュニケーション手段は、図4
    及び図5において同じ番号を付されているけれども、各リンクに対して同じである必要はない。

    【0040】インターフェース・エディタ49は、コミュニケーション手段56によってウインドウ管理システム58に接続される。 ユーザ・インターフェース・サーバ48は、コミュニケーション手段56によってウインドウ管理システム58にも接続される。 ウインドウ管理システム58は、データを表示し及びユーザから入力手段を介して入力を収集するというような表示管理機能を与える。 インターフェース・エディタ49及びユーザ・
    インターフェース・サーバ48は共に相互に無関係にウインドウ管理システム58を使用する。 図3に示されるように、ユーザ・インターフェース・サーバ48、インターフェース・エディタ49、及び表示オブジェクト記憶装置46は独立の相互接続されたシステム上に置かれてもよい。 インターフェース・エディタ49及びユーザ・インターフェース・サーバ48は相互に直接的には接続されない。 ユーザ・インターフェース・サーバ48
    は、インターフェース・エディタ49によって表示オブジェクト記憶装置46に記憶されたユーザ・インターフェースを利用することができる。

    【0041】インターフェース・エディタ49及びユーザ・インターフェース・サーバ48は、ウインドウ管理システム・インターフェース70を介してウインドウ管理システムとコミュニケートする。 このウインドウ管理システム・インターフェース70は、インターフェース・エディタ49及びユーザ・インターフェース・サーバ48の一部分であり、選択された特定のウインドウ管理システム58に依存する。 ユーザ・インターフェース・
    サーバ48及びインターフェース・エディタ49は全く異なったウインドウ管理システムを使用可能であることに留意してほしい。 インターフェース・エディタ49
    は、表示オブジェクト記憶装置46における記憶及び検索のためにユーザ・インターフェースを作成し、編集する。 そのインターフェース・エディタ49は、ウインドウ管理システムを使用して実行可能である。

    【0042】ユーザ・インターフェース・サーバ48
    は、表示オブジェクト記憶装置46に記憶されたユーザ・インターフェースを利用する。 それは、それがサービスするアプリケーションから送られたコマンドに応答してこれらユーザ・インターフェースを表示する。 ユーザ・インターフェース・サーバ48は、ウインドウ・システムを使用してユーザ・インターフェースを表示し、制御する。 ユーザ・インターフェース・サーバ48がウインドウ管理システムにポートされる限り、インターフェース・エディタ49を使用する開発者は、全く異なるウインドウ管理システムを使用して、ユーザ・インターフェース・サーバによる使用のためにユーザ・インターフェースを作成できる。 インターフェース・エディタ49
    は、ユーザ・インターフェース・サーバ48をポートされたすべてのウインドウ管理システムのためのインターフェースを開発者が作成することを可能にする。 表示オブジェクト記憶装置46に記憶された同じユーザ・インターフェースは、任意の数の異なるウインドウ管理システムによって利用可能である。 そのインターフェース・
    エディタは、いずれのウインドウ管理システムにも無関係なユーザ・インターフェースの作成を可能にする。 これは本発明の大きな利点である。 ウインドウ管理システム特殊機能をユーザ・インターフェース・サーバに設けることによって、アプリケーションは特定のウインドウ管理システムに従属することから自由になる。

    【0043】ウインドウ管理システム・インターフェース70は、ウインドウ管理システム又は高レベル対話ツールキット、或いはその両方とインターフェースするための一組のライブラリ・ルーチンより成る。 「Xウインドウ」システムに対する例が図6に示される。 インターフェース・エディタ49及びユーザ・インターフェース・サーバ48は異なるウインドウ管理システムを使用可能であり、異なるウインドウ管理システム・インターフェースを使用可能である。 従って、ユーザ・インターフェース・サーバは対話ツールキットを使用してもよく、
    一方、インターフェース・エディタは全くツールキットを使用しなくてもよい。

    【0044】C. 対話式インターフェース・エディタ インターフェース・エディタはユーザ・インターフェースの対話的作成及び編集を行う。 この方法で作成されたインターフェースは、開発者がユーザ・インターフェースを対話的に定義することを可能にする。 アプリケーション・コールバックをユーザ・インターフェースのユーザ・インターフェース・コンポーネントと関連付けるためのサポートが行われる。 インターフェース・エディタという製品は、アプリケーションのユーザ・インターフェースの表示オブジェクト記憶装置を表わすものである。 開発者は、インターフェース・エディタを介して表示オブジェクト記憶装置においてインターフェースを記憶し、検索し、削除する。 一旦、ユーザ・インターフェースが表示オブジェクト記憶装置から検索され又はスクラッチから作成されると、それは、「見た通りの取得(WYSIWYG)」態様で開発者により対話的に操作可能であり、何らかの更新と共に表示オブジェクト記憶装置に戻される。 これらの操作は、ユーザ・インターフェース・コンポーネントの作成、修正、及び削除を含む。 インターフェース・エディタは、開発者が既存のユーザ・インターフェース・コンポーネント階層にユーザ・インターフェース・コンポーネントを加えること、ユーザ・インターフェース・コンポーネント又はユーザ・
    インターフェース・コンポーネントのグループを削除すること、ユーザ・インターフェース・コンポーネント又はユーザ・インターフェース・コンポーネントのグループを移動すること、ユーザ・インターフェース・コンポーネント又はユーザ・インターフェース・コンポーネントのグループをコピーすること、及び個々のユーザ・インターフェース・コンポーネントと関連した資源値を変更することを可能にする。 そこで、ユーザ・インターフェースの表示オブジェクト記憶装置バージョンがユーザ・インターフェース・サーバによってロードされ、アプリケーションが呼び出された時に実行時インターフェースを作成する。

    【0045】インターフェース・エディタは、表示オブジェクト記憶装置に記憶されたユーザ・インターフェースとは完全に別個のそしてユーザ・インターフェース・
    サーバによって使用されるそれ自身のユーザ・インターフェースを有する。 しかし、インターフェース・エディタはそれ自身のユーザ・インターフェースに対するユーザ・インターフェース・サーバを利用できる。 インターフェース・マネージャ及びインターフェース・エディタとの間の唯一の実行時インターフェースは表示オブジェクト記憶装置を通した間接的なものである。 これは図4
    に示される。

    【0046】インターフェース・エディタは、対話式ユーザ・インターフェース開発のためのオブジェクト指向のテクニックを与える。 開発者はいくつかの独立したウインドウを通してインターフェース・エディタと対話する。 インターフェース・エディタは一時に1つのアクティブ・インターフェースの開発をサポートする。 所与のインターフェースに対して作成可能なコンポーネントの数に関する制限はない。 所与のコンポーネントに対する修正可能な資源は一定であり、コンポーネント・タイプに依存する。

    【0047】インターフェース・エディタは2つのオペレーション・モード、即ち、設計モード及びテスト・モードをサポートする。 アクティブ・インターフェース・
    ディスプレイ(即ち、開発中のユーザ・インターフェースのWYSIWYG)における入力に対する反応には相違がある。 これらモードは、インターフェース・エディタ・セッション中にユーザ・インターフェース事象を扱う方法に影響する。 第1のモード、即ち、設計モードでは、アクティブ・ディスプレイ・ウインドウにおけるユーザ・インターフェース・コンポーネントに対するデフォルト・ウインドウ管理システムの応答がインターフェース・エディタの応答と置換される。 第2のモード、即ち、テスト・モードでは、ユーザ・インターフェース・
    コンポーネントはそれらのデフォルト3−D作用を示す。 例えば、設計モードでは、アトリビュート更新のための押しボタンを選択するためには、ユーザはアクティブ・ディスプレイ・ウインドウにおいてその押しボタンをクリックできる。 テスト・モードでは、同じ押しボタンに関するクリック動作は、それが実際に押されたかの如くそれを見させるであろう。 同様に、テスト・モードにおけるメニュー・バー選択項目に関するクリック動作は関連のプルダウン・メニューを生じさせるであろうし、一方、設計モードにおけるそれに関するクリック動作は更新のためにプルダウン・メニュー・コンポーネントを選択するであろう。

    【0048】インターフェース・エディタは、そのユーザ・インターフェースのマウス及びキーボード操作をサポートする。 入力装置対話のための標準的な方法を使用すれば、すべての機能がマウス又はキーボードを通してアクセス可能である。 インターフェース・エディタに対するキーボード・アクセスの1つの実施例の簡単な説明は次のようである。

    【0049】※ALT−タブ・キーを押してインターフェース・エディタ・ウインドウ相互間で移動する。 ※F10キーを押してロケーション・カーソルをメニュー・バーに移動する。 ※左及び右矢印キーを使用してロケーション・カーソルをメニュー・バー選択項目間で移動する。 左及び右矢印キーはロケーション・カーソルを階層ディスプレイ領域におけるコンポーネント相互間でも移動する。 ※上及び下矢印キーを使用してロケーション・カーソルをプルダウン・メニュー、ポップアップ・メニュー、又はオプション・メニューにおける項目相互間で移動する。 又、上及び下矢印カーソルを使用してロケーション・カーソルをコンポーネント作成制御パネルにおけるボタン相互間で移動する。 ※階層ディスプレイをスクロールするために、上及び下矢印キーを使用してロケーション・カーソルをスクロール・バーに位置づける。 ※ロケーション・カーソルを所望の選択項目(上記のように)まで移動しそしてエントリ・キーを押すことによってメニュー内の項目を選択する。 略号を定義させるメニュー選択項目を選択する簡単な方法は、メニューをナビゲートしそして所望のメニュー選択のための略号としてそのキーを押すことである。 代替えとしては、ALT
    及び略号を押して、ロケーション・カーソルをメニュー・バーまで移動することなくメニュー・バー選択項目を選択する。 ※タブ・キーを使用して、1次ウインドウにおけるメニュー・バー、コンポーネント作成ボタン、スクロール・
    バー、及び階層ディスプレイの間を移動する。 ※プルダウン・メニュー、ポップアップ・メニュー、又はオプション・メニューが表示された時に如何なる選択項目の選択も避けるために、Eskキーを押す。

    【0050】次のパラグラフは、インターフェース・エディタの高レベル・データ・フローより成る機能的プロセスの一実施例を説明する。 本発明を実行するために、
    代わりの機能的分解が生成可能であることは、当業者には明らかであろう。 プロセスという用語は、このセクションでは、UNIXプロセスの意味におけるよりもDe
    Marco方法の意味で使用されることに留意してほしい。 この実施例に対する高レベルのデータ・フロー図が図8に示される。

    【0051】このインターフェース・エディタの実施例は、以下のようなプロセス、即ち、インターフェース・
    エディタ制御、インターフェース・マネージャ、資源マネージャ、及びコンポーネント・マネージャより成る。
    これら機能の各々は後述される。

    【0052】「インターフェース・エディタ制御」は最高レベルのプロセスである。 それはインターフェース・
    エディタのユーザ・インターフェースを作成し、管理する。 インターフェース・エディタのユーザ・インターフェースは、開発者がインターフェース・エディタと対話することを可能にする。 インターフェース・エディタ制御プロセスは、インターフェース・エディタのユーザ・
    インターフェースの開発者の操作から事象を解釈し、そして特殊なタスクを扱うためにインターフェース・エディタの他のコンポーネントを呼び出すことによって応答する。 インターフェース・エディタ制御プロセスは、インターフェース・エディタの代わりにウインドウ管理システムにおいて生じた非同期エラーも処理する。

    【0053】「インターフェース・マネージャ」プロセスは、ユーザ・インターフェースの外部の表示オブジェクト記憶装置の表示に関して動作する機能を与える。 それは、表示オブジェクト記憶装置インターフェースを管理し、表示オブジェクト記憶装置表示を内部表示に(及びその逆に)変換するオペレーションを呼び出す。 インターフェース・マネージャ・プロセスは、表示オブジェクト記憶装置におけるユーザ・インターフェースの表示に関して動作する機能を与え、表示オブジェクト記憶装置からワーキング・メモリ領域にインターフェースをロードする機能及びワーキング・メモリにおいて作成され又は修正されたユーザ・インターフェースを表示オブジェクト記憶装置に保管する機能を与える。

    【0054】「コンポーネント・マネージャ」プロセスは、コンポーネント作成、削除、及び修正を含むコンポーネント・レベルにおける内部的インターフェース表示に関して動作する機能を与える。 コンポーネント・マネージャ・プロセスは、ユーザ・インターフェース・コンポーネント及び特定のユーザ・インターフェース・コンポーネント、並びに作成され又は編集されるユーザ・インターフェース内のユーザ・インターフェース・コンポーネントの関係を表示し、動的に照会し、修正する機能を与える。

    【0055】「資源マネージャ」プロセスはコンポーネント資源リスト操作する機能及びアクティブ・インターフェース・コンポーネントに対する個々の資源の対話的編集を可能にする機能を与える。 資源マネージャ・プロセスは、内部フォーマット及び表示オブジェクト記憶装置フォーマットの間で資源データを変換する機能も与える。 資源マネージャ・プロセスは、作成され又は編集されるユーザ・インターフェースのコンポーネントの資源を操作する機能を与える。 以下に、このインターフェース・エディタの実施のための高レベルの擬似コードを示す。

    【0056】メイン: 初期設定する: 制御の初期設定を呼び出す 資源マネージャの初期設定を呼び出す 記憶マネージャの初期設定を呼び出す コンポーネント・マネージャの初期設定を呼び出す 編集セッションをプロセスする: ユーザが行うまで ユーザ要求の処理を呼び出す ループする 終了: 資源マネージャのターミネイトを呼び出す 記憶マネージャのターミネイトを呼び出す コンポーネント・マネージャのターミネイトを呼び出す 制御のターミネイトを呼び出す 戻る 制御を初期設定する: ウインドウ・システム及びモチーフ・ツールキットに対するインターフェースを初期設定する 「エディタ・インターフェース」ユーザ・インターフェースをロード及び初期設定する デフォルト・ユーザ・インターフェース(デフォルト・
    アトリビュート値を持った1次ウインドウ)を作成する 作成されるインターフェース・エディタ・ユーザ・インターフェース及びデフォルト・ユーザ・インターフェースを表示する 戻る 制御をターミネイトする: ウインドウ・マネージャ及びモチーフ・ツールキットへの接続をターミネイトする 戻る 資源エディタを初期設定する: ユーザ・インターフェース・ユニットに対するコールバックを登録する 戻る コンポーネント・マネージャを初期設定する: 現在の言語に基づいてユーザ・インターフェースのテキスト部分を検索する(例えば、英語、仏語等) デフォルト・アトリビュート値を検索する フォント及びカラーを検索する 戻る コンポーネントをターミネイトする: フォント及びカラー資源を自由にする 戻る 記憶マネージャを初期設定する: ビットマップを検索する戻る ユーザ・リクエストを処理する: ユーザ・リクエストを決定する ユーザ・リクエストをプロセスする 戻る。

    【0057】インターフェース・エディタは、「スタート・インターフェース・エディタ」コマンドによって呼び出される。 一方、このコマンドは、インターフェース・エディタにユーザ・インターフェースを呼び出す。
    「スタート・インターフェース」コマンドは、コマンド・ラインを通してそれを直接に入力することが可能であるけれども、典型的には、「総称アプリケーション」におけるアイコンを通してアクセスされる。

    【0058】呼び出しの際、インターフェース・エディタが表示され、対話的セッションが始まる。 ユーザ・インターフェースが「スタート・インターフェース・エディタ」において指定されそしてその指定されたユーザ・
    インターフェースがロードできなかった場合、ユーザはエラーを通知され、セッションはデフォルト・インターフェース1次ウインドウでもって始まるであろう。

    【0059】インターフェース・パラメータ及びユーザ選択を処理した後、インターフェース・エディタは、1
    次ウインドウ90、アクティブ・インターフェース・ウインドウ95、及びアクティブ・コンポーネント資源ウインドウ96を表示する。 それらウインドウは図9及び図10におけるディスプレイ28上に示される。 それらウインドウを以下で説明する。

    【0060】※1次ウインドウ90:このウインドウは、インターフェース・エディタ・メイン・メニュー9
    1、ステータス・ライン92、コンポーネント作成制御パネル93、及びコンポーネント階層表示領域94を含む。 メイン・メニュー91は、インターフェース機能、
    編集機能、クリップボード機能、ユーザ優先、ビュー・
    オプション、及びヘルプ機能を与える。 コンポーネント作成制御パネル93は一組の押しボタンを有し、各コンポーネント・タイプに対してそれら押しボタンの1つがインターフェース・エディタによりサポートされる。 即ち、それら押しボタンは、図10に示されるように、2
    次ウインドウ(Secondary Window)、
    ダイアログ・ボックス(Dialog Box)、メニュー・バー(Menu bar)、明示グループ(Ex
    plicit group)、自動グループ(Auto
    maticgroup)、プルダウン・メニュー(Pu
    lldown menu)、ポップアップ・メニュー(Popup menu)、オプション・メニュー(O
    ption menu)、メニュー選択項目(Menu
    choice)等である。 コンポーネント階層表示領域94は、現在のアクティブ・インターフェースにおけるコンポーネントの一瞥(at−a−glance)ビュー及びそれらの間の関係を示す。 コンポーネント階層表示領域は、開発者が操作のためのコンポーネントを選択することを可能にする。 選択は、コンポーネントの資源リストが表示されること、適用可能である場合にはそれがその後の作成要求に対するアクティブな親となること、編集オペレーションがそのコンポーネントに適用するであろうことを意味する。

    【0061】※アクティブ・インターフェース・ウインドウ95:これは開発中のユーザ・インターフェースのWYSIWYG表示であり、コンポーネント階層表示領域に示されたようなユーザ・インターフェース・コンポーネントの階層に対応する。

    【0062】※アクティブ・コンポーネント資源ウインドウ96:このウインドウは資源名のリスト及びアクティブ・コンポーネントの値を表示する。 資源はラジオ・
    ボタンのグループとして表示され、開発者は選択のためにその1つを選択できる。 資源の選択は、選択された資源のタイプ(カラー資源、整数資源、テキスト資源等)
    に適した資源エディタの表示を指示する。 資源値の修正はアクティブ・インターフェース・ウインドウ95、及び、適当な場合には、コンポーネント階層表示領域(即ち、ラベル資源が修正される時)におけるコンポーネントによって直ちに反映される。

    【0063】※開発者は、エラー・メッセージ、ダイアログ・ボックス、及び資源エディタのために使用される他のウインドウとも対話できる。

    【0064】アクティブ・コンポーネント資源ウインドウ96は必要なく、ユーザによってディスプレイから除去可能である。 他の2つのメイン・インターフェース・
    エディタ・ウインドウ(1次ウインドウ90及びアクティブ・インターフェース・ウインドウ95)はいつも表示される。 ダイアログ・ボックス形式の他のウインドウは、3つのメイン・ウインドウにおいてユーザからの特殊な要求の結果として表示される。 これらのダイアログ・ボックスはそれらの特定なタスクの完了の際にインターフェース・エディタによってその表示から除去される。 以下の記述は、メイン・ウインドウの各々の目的及びそれとの対話、並びにインターフェース・エディタのユーザ・インターフェースのダイアログ・ボックスを説明するものである。

    【0065】インターフェース・エディタの1次ウインドウ90が図10に示される。 それは、4つの断片、即ち、メニュー・バー91、ステータス・ライン92、コンポーネント作成のためのスクロールされるオプションのリスト93、及びコンポーネント表示領域94における現在のユーザ定義のインターフェースに対応するコンポーネント階層の表示より成る。 メニュー・バー91は次のような選択項目、即ち、インターフェース(Int
    erfaces)、編集(Edit)、ビュー(Vie
    w)、オプション(Options)、及びヘルプ(H
    elp)を含む。 メニュー・バーの各選択項目に関連して略号があり、それは各選択項目のうち下線を付けられた文字として図10に示される。 その略号は、メニュー・バーがアクティブである時、ユーザがキーボードから特殊なメニュー・バー選択項目を選択することを可能にする文字である。 又、メニュー・バーと関連したプルダウン・メニューの各々は、そのプルダウン・メニューにおける各選択項目のための略号を含んでいる。 これら選択項目は、プルダウン・メニューが表示される時、キーボードから選択可能である(図11のプルダウン・メニューにおける各選択項目の下線参照)。

    【0066】1次ウインドウ・メニュー・バー91は次のようなアクション・タイプの選択項目、即ち、インターフェース・アクション、編集アクション、ビュー・アクション、及びオプション・アクションを与える。 これらのアクションを以下で説明する。

    【0067】インターフェース・アクションは、インターフェースが呼び出される時、プルダウン・メニュー上に現れる。 それらの利用可能な機能は、新規(Ne
    w)、オープン(Open)、保管(Save)、新規保管(Save As)、削除(Delete)、印刷(Print)、及び、終了(Exit)のような標準的ファイル・アクションに対応する。 (図28参照)。

    【0068】※「新規」は、開発者が新しいインターフェースの作成を開始することを可能にする。 開発者は、
    現在のインターフェースに対する修正が保管されてないかどうかの確認を指示される。 空の1次ウインドウより成る新しいインターフェースは無題化され、アクティブ・インターフェース・ウインドウに表示される。

    【0069】※「オープン」は、開発者が既存のインターフェースを選択して表示オブジェクト記憶装置からロードすることを可能にする。 開発者は、スクロールされたウインドウに表示されたリストからユーザ・インターフェースを選択するか、又は「選択」エントリ・フィールドに名前をタイプすることができる。 ユーザ・インターフェース選択項目は、スクロールされたウインドウにおいて英字で表示され、ライブラリ領域又はサーチ・パスをフィルタとして使用することによって得られる。 インターフェースを選択した後、開発者はOKボタンをクリックして実際にオープンを開始させる。 オープン・オペレーションは、オープン・インターフェース・ダイアログにおいてリストされたユーザ・インターフェースの1つをダブル・クリックすることによっても開始可能である。 既存のインターフェースに対する未保管の修正が存在する場合、開発者は新しいインターフェースをロードする前に確認を指示される。 開発者は、取消ボタンをクリックして、インターフェースをオープンすることなくオープン・インターフェース・ダイアログを終了させることができる。

    【0070】※「保管」は、現在のインターフェースを表示オブジェクト記憶装置に記憶する。 各インターフェース・コンポーネントのデフォルト表示状態は、そのインターフェースに保管される。 この資源は、親がアプリケーション実行時間に表示される時、そのコンポーネントが表示されるかどうかを決定する。 インターフェースの状態は、それが保管される時、デフォルト表示状態の設定を決定する。 インターフェースが保管される時に表示されないコンポーネントは、インターフェースがロードされる時デフォルトによって表示されないであろう。
    例えば、アプリケーション開発者が押しボタンAを作成し、押しボタンAに対して未表示を行い、しかる後、そのインターフェースを保管するものと仮定する。 インターフェースがアプリケーション実行時間にロードされる時、押しボタンAはその親が表示される時に自動的には表示されないであろう。 アプリケーションがデフォルト表示状態実行時間を変更でき、従って、押しボタンAがその親と共に表示され、そしてそのような変更はインターフェースの実行コピーにだけ影響し、表示オブジェクト記憶装置のコピーに影響しないことに留意してほしい。

    【0071】※「新規保管」は、開発者によって与えられたインターフェース名を使用して現在のインターフェースを表示オブジェクト記憶装置に記憶する。 それらインターフェース名は、ダイアログが表示される時に現在値を初期設定され、開発者はそれらを更新し、又は現在の名前及びライブラリ領域を継続してもよい。 既に指定されたインターフェース名が表示オブジェクト記憶装置に存在する場合、前のコピーが上書きされる前に確認が要求される。 インターフェースは名前変更され、アクティブ・インターフェース・ウインドウは新しいインターフェース名でもって更新され、そしてその後の保管はその名前に適用する。

    【0072】※「削除」は、開発者が表示オブジェクト記憶装置から1つのインターフェースを削除することを可能にする。 その表題を除けば、削除インターフェース対話はオープン・インターフェース対話と同じである。
    削除されるべきインターフェースが利用可能インターフェースのリストから選択され、そして開発者はOKボタンをクリックする。 開発者は、インターフェースが実際に削除される前に確認の指示に応答しなければならない。 現在のインターフェースはデフォルト選択であり、
    現在のインターフェースが削除される時、アクティブ・
    インターフェース・ウインドウが空の1次ウインドウでもって初期設定される。

    【0073】※「印刷」は、開発者が現在のユーザ・インターフェースのスクリーン・ダンプを作成することを可能にする。

    【0074】※「終了」は、インターフェース・エディタ・セッションを終わらせる。 開発者は、現在のインターフェースが最後に表示オブジェクト記憶装置に保管されたので、そのインターフェースが修正されたかどうかを確認するよう指示される。

    【0075】編集アクションは、開発者がアクティブ・
    インターフェースにおけるユーザ・インターフェース・
    コンポーネントを操作することを可能にする。 インターフェース・エディタの編集メニューが図11に示される。 コンポーネント階層表示領域94は編集オペレーションを遂行すべきインターフェースのコンポーネントを選択するために使用される。 各編集アクションと1つのアクセレレータを関連付けることが可能であり、いくつかのアクセレレータが各編集アクションの右側にある。
    アクセレレータは、マウスを使用して編集メニューを表示しそして横移動して所望の編集アクションを選択する代わりに、開発者が関連のアクションを呼び出すために使用し得るキー・シーケンスである。 図示のアクセレレータは単なる例である。 いくつかの編集アクションを以下で定義する。

    【0076】※「取消(Undo)」は、最新の切り抜き、貼り付け、移動、又はサイズ変更オペレーションだけを取り消す。 例えば、開発者がユーザ・インターフェースからユーザ・インターフェース・コンポーネントを切り抜き、他のユーザ・インターフェース・コンポーネントの切り抜きがそれに続く場合、最新の切り抜きオペレーションが遂行されるべき最後のものであるので、開発者はそのオペレーションを取り消すことができる。 クリップボードはその取消オペレーションによって影響されない。 メニュー選択項目取消は、開発者が取り消されるべきオペレーションのタイプを知るように、最新の切り抜き、貼り付け、移動、又はサイズ変更を付加される。 現在のインターフェースに対して切り抜き、貼り付け、移動、又はサイズ変更オペレーションが行われなかった場合、メニュー選択項目取消は無効となり、それは何も付加せず、グレー・アウトされる。

    【0077】※切り抜き取消(Undo cut)は、
    前に切り抜かれたユーザ・インターフェースの部分を回復する。 ※貼り付け取消(Undo paste)は、貼り付けられたユーザ・インターフェース・コンポーネントをそれらの新しい位置から除去する。 ※移動取消(Undo move)は、ユーザ・インターフェース・コンポーネントをそれの前のx及びy位置に戻す。 ※サイズ変更取消(Undo resize)は、ユーザ・インターフェース・コンポーネントをそれの前の高さ及び幅に戻す。

    【0078】切り抜き取消に対して、最後の切り抜きオペレーション以後に付加され又は削除されたユーザ・インターフェース・コンポーネントのために、親・子の対が最早有効でない場合、エラー・メッセージが発生され、取消オペレーションは行われない。

    【0079】※切り抜き(Cut)は、選択されたユーザ・インターフェース・コンポーネントを除去し、それらをクリップボードに置く。 クリップボードにおける前の内容は、新しく切り抜かれたユーザ・インターフェース・コンポーネントでもって上書きされる。 留意すべきことは、1次ウインドウを切り抜くことはできない(すべてのインターフェースが1次ウインドウを含まなければならないため)ことである。 切り抜きオプションは、
    1次ウインドウがアクティブ・コンポーネントである時、非感知的にものにされる。

    【0080】※コピー(Copy)は、子を含む現在選択されたユーザ・インターフェース・コンポーネントを、それらの現在位置から元のコンポーネントを除去することなく、クリップボードに複写する。 クリップボードにおける前の内容は、新しくコピーされてユーザ・インターフェース・コンポーネントでもって上書きされる。 留意すべきことは、1次ウインドウをコピーすることはできない(すべてのインターフェースが正確に1つの1次ウインドウを含むため)ことである。 コピー・オプションは、1次ウインドウがアクティブ・コンポーネントである時、非感知的にされる。

    【0081】※貼り付け(Paste)は、クリップボードからユーザ・インターフェースにコピーし、クリップボードを空にする。 現在アクティブな親ユーザ・インターフェース・コンポーネントは、貼り付けられたユーザ・インターフェース・コンポーネント又はコンポーネント・グループに対する親として使用される。 親・子の対が有効でない(例えば、不整合なタイプのため)場合、エラー・メッセージが発生され、ユーザ・インターフェース・コンポーネントは貼り付けされない。 貼り付けされるユーザ・インターフェース・コンポーネントのうちのどれかがそのインターフェースにおける他のユーザ・インターフェース・コンポーネントと同じ名前を有する場合、貼り付けされるコンポーネントの名前はデフォルト名に変更されるであろう。

    【0082】※移動(Move)は、開発者がユーザ・
    インターフェース・コンポーネントをその親の境界内で対話的に移動させることを可能にする。 このオプションの選択は、ユーザ・インターフェース・コンポーネントの左上にマウス・カーソルを動かす。 テスト・モードでは、マウスを動かすことはコンポーネントを動かすことでもある。 設計モードでは、1次ウインドウ、2次ウインドウ、ダイアログ・ボックス、又はメッセージ・ダイアログに対してラバー・バンド・ボックスが現れるであろう。 ラバー・バンド・ボックスは、ユーザ・インターフェース・コンポーネントの新しい位置を示すように移動するであろう。 これは、開発者が実行時位置の値に影響を与えることなく作成中のアクティブ・インターフェース全体を見るという融通性を可能にする。 開発者は、アクティブ・インターフェースにおけるすべてのウインドウの実行時位置を見るためにテスト・モードにスイッチしなければならないであろう。 残りのユーザ・インターフェース・コンポーネントに対して、設計モードにおいてマウスを動かすことはユーザ・インターフェース・コンポーネントを動かすことでもある。 どれかのマウス・ボタンをクリックすることは、その移動オペレーションを終了させ、そしてそのコンポーネントに対する位置資源(x及びy)を更新する。

    【0083】※サイズ変更(Resize)は、開発者がユーザ・インターフェース・コンポーネントをその親の境界内で対話的にサイズ変更することを可能にする。
    このオプションの選択は、マウス・カーソルをユーザ・
    インターフェース・コンポーネントの右下角に位置付ける。 そこで、右上に固定されたラバー・バンド・ボックスがそのサイズ変更オペレーションを事前照合するために表示される。 何れかのマウス・ボタンをクリックすることは、そのオペレーションを終了させ、ユーザ・インターフェース・コンポーネントをサイズ変更し、そしてユーザ・インターフェース・コンポーネントの高さ及び幅資源を更新する。

    【0084】※現コンポーネントをグリッドへスナップ(Snap current component t
    o grid)は、現在のユーザ・インターフェース・
    コンポーネントをその左上角に最も近いグリッド交点まで移動させる。

    【0085】※子をグリッドへスナップ(Snap c
    hildren to grid)は、現在のユーザ・
    インターフェース・コンポーネントの各子をその子のユーザ・インターフェース・コンポーネントの左上角に最も近いグリッド交点まで移動させる。 そのグリッドを表示させる必要はない。

    【0086】※上げ(Raise)は、開発者がユーザ・インターフェース・コンポーネントをその表示されたユーザ・インターフェース・コンポーネント・スタックのトップまで上げることを可能にする。 デスク上の用紙のスタックは、ウインドウ・ベースのユーザ・インターフェース・コンポーネント相互間の関係を記述するために使用される一般的な隠である。 他のユーザ・インターフェース・コンポーネントの下に部分的に又は完全に隠されたユーザ・インターフェース・コンポーネントを完全に見るためには、それはスタックのトップに上げられなければならない。 このオプションは、ユーザ・インターフェース・コンポーネントを、そのユーザ・インターフェース・コンポーネント及びそれのすべての兄弟より成るスタックのトップまで上げる。

    【0087】※下げ(Lower)は、開発者がアクティブ・コンポーネントを、同じ親を持った他のユーザ・
    インターフェース・コンポーネントの下に押し下げることを可能にする。 1つのユーザ・インターフェース・コンポーネントが下げられる時、同じ親を持った他のすべてのユーザ・インターフェース・コンポーネントがアクティブ・インターフェース・ウインドウにおいてそれの前に表示される。

    【0088】※表示(Display)は、開発者がアクティブなユーザ・インターフェース・コンポーネントを表示することを可能にする。

    【0089】※表示消去(Undisplay)は、アクティブ・コンポーネントをディスプレイから除去することを可能にする。 そのユーザ・インターフェース・コンポーネントはその表示消去作用によっては破壊されず、表示から除去されるだけである。

    【0090】ビュー作用は、開発中のユーザ・インターフェースにおけるユーザ・インターフェース・コンポーネントをコンポーネント階層表示領域において表わす方法を決定する。 これらのオプションは、開発者がユーザ・インターフェース・コンポーネント階層ツリーの方向及びスケールを決定することを可能にする。 階層の方向及びスケールの変更は、ほとんどの場合、どのユーザ・
    インターフェース・コンポーネントがコンポーネント階層表示領域において可視状態にあるかに影響を与えるであろう。 インターフェース・エディタは、現在選択されたコンポーネントがビュー作用に続いて可視的になることを保証するように、必要に応じて、ディスプレイを調節するであろう。 インターフェース・エディタ・ビュー・メニューは以下のような機能を含んでいる。

    【0091】※方向(Orientation)は、開発者が階層ツリーの方向を指定することを可能にする。
    生じ得る値は垂直方向及び平方向である。 方向メニュー選択項目の選択は、その2つの値を含むサブメニューを開発者に与えるであろう。

    【0092】※全サイズ(Full size)は、階層ツリーにおける押しボタンに対するラベルがアクティブ・インターフェース・エディタ・フォントで表示されることを指定する。 その押しボタンのサイズはそのフォントに基づくであろう。

    【0093】※1/2スケール(1/2 scale)
    は、階層ツリーにおける押しボタンのサイズが、それらがアクティブ・フォントを使用して表示される場合のサイズの1/2であることを指定する。 このスケールにおける押しボタンのラベルは読み取り可能でなくてもよい。

    【0094】※1/4スケール(1/4 scale)
    は、階層ツリーにおける押しボタンのサイズが、それらがアクティブ・フォントを使用して表示される場合のサイズの1/4であることを指定する。 このスケールにおける押しボタンのラベルは読み取り可能でなくてもよい。

    【0095】※1/8スケール(1/8 scale)
    は、階層ツリーにおける押しボタンのサイズが、それらがアクティブ・フォントを使用して表示される場合のサイズの1/8であることを指定する。 このスケールにおける押しボタンのラベルは読み取り可能でなくてもよい。

    【0096】オプション・アクションは、開発者優先及びグリッド機能のようなものに関するいくつかのインターフェース・エディタ特殊機能を開発者に与える。 これらを以下で説明する。

    【0097】※アクティブ・コンポーネント資源表示(Active componentresource
    display)は、開発者がアクティブ・コンポーネント資源ウインドウの表示をオン及びオフにトグルすることを可能にするプルダウン・メニューを表示する。

    【0098】※アクティブ・コンポーネント作成ボタン(Active componentcreation
    buttons)は、どのコンポーネント作成押しボタンがコンポーネント作成制御パネルにおいて表示されるかを開発者が選択することを可能にするダイアログ・
    ボックスを表示する。 チェックリスト・ボタンをオフにセットすることによって、対応するコンポーネント作成押しボタンはコンポーネント作成制御パネルには現れないであろう。 従って、開発者は、チェックリスト・ボタンが再び活動化されるまでそのタイプのコンポーネントを作成できないであろう。 或カテゴリのコンポーネント(コンテナ、複合、又はプリミティブ)のすべてがオフに転換される場合、そのカテゴリに対するラベルもコンポーネント作成制御パネルに現れないであろう。

    【0099】※グリッド(grid)は、開発者がアクティブ・コンポーネントにおけるグリッドに対するパラメータを活動化しそして指定することを可能にするダイアログ・ボックスを表示する。 このグリッドは、親の内部で一貫した方法でユーザ・インターフェース・コンポーネントを位置付けるために使用可能である。 「グリッド」オプションは、アクティブ・コンポーネントが1次ウインドウ、2次ウインドウ、ダイアログ・ボックス、
    又は明示グループ・ボックスである時のみ利用可能である。 グリッドは、アクティブ・インターフェースにおけるこれらのタイプの各コンポーネントに対して定義可能である。 グリッド設定は、現在のインターフェース・エディタ・セッションの長さに関して各コンポーネントに対して独立して保持される。 グリッド・ダイアログ・ボックスにおける各フィールドを、以下で説明する。

    【0100】※モードへのスナップ(Snap to
    mode)は、開発者がモードへのスナップをオン及びオフにトグルすることを可能にするプルダウン・メニューを開発者に与える。 スナップ・モードが1である時、
    1次ウインドウのすべての子(2次ウインドウ、ダイアログ・ボックス又は明示グループ・ボックスの子を除く)、2次ウインドウ、ダイアログ・ボックス、又は移動される明示グループ・ボックスは、移動オペレーションが終了する時に最も近いグリッド交点へ自動的にスナップするであろう。

    【0101】※優先(Preference)は、開発者がインターフェース・エディタに対する開発者優先を修正し、適用し、そして保管することを可能にするダイアログ・ボックスである。 これらの優先は、フォアグラウンド及びバックグラウンドのカラー、フォント、グリッド間隔、インターフェース・サーチ・パス及びピクセルマップ・サーチ・パスを含む。

    【0102】※設計/テスト(Design/Tes
    t)は、開発者が開発中のユーザ・インターフェースに対してテスト・モードと設計モードとの間でトグルすることを可能にする。 設計/テスト・モードのメニュー選択項目の選択は、それら2つのモードのサブ・メニューを開発者に与える。 現在のモードはインターフェース・
    エディタ・ステータス・ラインに表示される。

    【0103】インターフェース・エディタのヘルプ(H
    elp)メニューは対話式ヘルプ機構の標準的特徴を与える。 メニュー・バーのすぐ下に置かれたインターフェース・エディタ・ステータス・ライン92を以下に示す。

    【0104】※現在の親コンポーネント(Active
    Parent)。 ※現在のユーザ・インターフェースは設計モード又はテスト・モードのどちらで操作されているか(Activ
    e Mode)。 ※「モードへのスナップ」はオン(On)又はオフ(O
    ff)のどちらか)。

    【0105】コンポーネント作成制御パネル93を以下で説明する。 ユーザ・インターフェース・コンポーネント作成は、インターフェース・エディタ1次ウインドウ内に含まれたコンポーネント押しボタン・リストの使用によって達成される。 このスクロールされたリストは、
    インターフェース・エディタによってサポートされる各ユーザ・インターフェース・コンポーネント・タイプに対して1つのボタンを含んでる。 任意の所与の時間において、アクティブな親の子として有効なコンポーネント・タイプだけが選択可能(感知的)である。 感知的なコンポーネント・ボタンの選択は、 ※アクティブな親の子であるそのタイプのユーザ・インターフェース・コンポーネントを作成する。 ※新しいユーザ・インターフェース・コンポーネント資源はデフォルト値を割り当てられる。 ※親におけるデフォルト位置にその子を置く。 ※そのユーザ・インターフェース・コンポーネントを活動化する。

    【0106】コンポーネント階層表示領域94は、ユーザ・インターフェース・コンポーネント相互間の親・子関係を表わすラインにより接続された一組の押しボタンとして現在のアクティブ・インターフェースの表示を含むスクロールされたウインドウである。 インターフェースの1次ウインドウ(Primary Window)
    を表わす押しボタンはいつもこのツリーのルートである。 1次ウインドウの第1レベルの子を表わすボタンは、1つのラインによって1次ウインドウ押しボタンに接続される。 子の押しボタンの各々は、それらのX位置がその階層の水平方向の場合に等しくなるように且つそれらのY位置が垂直方向に対して等しくなるように並べられる。 この課程はコンポーネント階層の各レベルに対して繰り返される。

    【0107】コンポーネント階層表示領域は、1つのコンポーネントが追加され又は削除される度に更新される。 次の複合コンポーネントの各々は、ラジオ・ボックス及びチェックリスト・ボックスを構成する構築ブロックを表わすために、いくつかの独立したボックスとして階層で表示される。 例えば、開発者がラジオ・ボックスを作成する時、1つのグループ・ボックスに対するボタン及び5つ(ラジオ・ボックスにおけるデフォルト数)
    のラジオ・ボタン(Radio Button)が階層表示に加えられる。 これは、構築ブロック・コンポーネントの個々の資源へのアクセスを行うために行われる。

    【0108】「コンポーネント選択/活動化」:この機能は、開発者が資源操作又は編集オペレーションのために単一のユーザ・インターフェース・コンポーネント又はそのユーザ・インターフェースにおける副階層を選択することを可能にする。 単一のユーザ・インターフェース・コンポーネントを選択するために、開発者は所望のユーザ・インターフェース・コンポーネントを表わす押しボタン上にマウス・カーソルを置きそしてマウス・ボタンをクリックする。 これが行われる時、 ※ボタンのフォアグラウンド及びバックグラウンド・カラーが逆にされる。 ※階層全体又は選択されたユーザ・インターフェース・
    コンポーネント・ボタンに関連した部分が未だ表示されない場合、コンポーネント階層表示領域はその選択されたユーザ・インターフェース・コンポーネント・ボタン上に中心合わせされる。 ※アクティブ・コンポーネント資源ウインドウは、選択されたユーザ・インターフェース・コンポーネントに対する資源でもって更新される。 たとえアクティブ・コンポーネント資源ウインドウが現在表示されてなくても更新は生じることに留意してほしい。 ※選択されたユーザ・インターフェース・コンポーネントは、それが適用可能である場合、アクティブな親となる。 選択されたユーザ・インターフェース・コンポーネントが他の任意のユーザ・インターフェース・コンポーネント・タイプの親である場合、その選択されたユーザ・インターフェース・コンポーネントはアクティブな親となる。 選択されたユーザ・インターフェース・コンポーネントが他の任意のユーザ・インターフェース・コンポーネント・タイプの親でない場合、それの親はアクティブな親となる。 ※アクティブな親は、その後のユーザ・インターフェース・コンポーネント作成オペレーションに対して親として働くユーザ・インターフェース・コンポーネントである。 コンポーネント作成制御パネルにおけるボタンの感知性はアクティブな親の有効な子のユーザ・インターフェース・コンポーネントを反映するように更新される。 ※コピー・オペレーションは、選択されたユーザ・インターフェース・コンポーネントだけに影響を与える。 そのコンポーネントが子を有する場合、それらはコピーされない。

    【0109】マウスがコンポーネントのグループの親の上に位置付けられそしてマウス・ボタンがダブルクリックされる場合、その親の下の副階層全体が作動される。
    この場合、 ※その親の子孫を表わす階層表示におけるすべてのボタンのカラーは反転される。 ※親コンポーネントに対する資源はアクティブ・コンポーネント資源ウインドウに表示される。 ※親のフォアグラウンド・カラー、バックグラウンド・
    カラー、フォント、及びバックグラウンド・ピクセルマップ資源に対する修正が子孫のユーザ・インターフェース・コンポーネントに直ちに伝搬される。 ※コピー・オペレーションはユーザ・インターフェース・コンポーネントの副階層全体に適用するであろう。

    【0110】インターフェース・エディタ・アクティブ・インターフェース・ウインドウ−設計モード:アクティブ・インターフェース・ウインドウ95は、表示状態を真にセットする開発中のユーザ・インターフェースのユーザ・インターフェース・コンポーネントを示す。 図12は、図10のコンポーネント階層表示領域において表わされた実際のコンポーネントのWYSIWYG表示を示す。 この表示は、ユーザ・インターフェース・コンポーネントが追加され、削除され、又は修正された時に動的に更新される。 テスト及び設計モードはこのウインドウにおける入力に対する反応を決定する。 設計モードにある時、アクティブ・インターフェース・ウインドウにおける可視的なユーザ・インターフェース・コンポーネント上でポインタでもってマウス・ボタン1を押すことは、そのユーザ・インターフェース・コンポーネントを活動化するであろう。 マウス・ボタン2を押すことは、アクティブ・コンポーネントにとって利用可能な編集オプションを持ったポップアップ・メニューを表示するであろう。 ポップアップ・メニューで得られる編集オプションは、インターフェース・エディタの「1次ウインドウ」における編集メニューで得られるものと同じオプションである。

    【0111】更に、設計モードでは、1次ウインドウ、
    2次ウインドウ、ダイアログ・ボックス、又はメッセージ・ダイアログを移動させるためにウインドウ・マネージャが使用される時、ユーザ・インターフェース・コンポーネントはスクリーン上を物理的に移動するであろうが、コンポーネントのx及びy資源は更新されないであろう。 これは、実行時の位置アトリビュートに影響を与えることなく、作成中のアクティブ・インターフェースのウインドウすべてを開発者が非常に簡単に見ることを可能にする。 これらのコンポーネントのx及びy資源が移動オペレーション又は資源エディタを介して変更される時、そのコンポーネントは物理的には移動しないであろう。 代わりに、そのコンポーネントの新しい位置を示すラバー・バンド・ボックスが表示されるであろう。 一旦、移動オペレーションが終了し、又は資源エディタが除去されると、ラバー・バンド・ボックスは消えるであろうが、そのコンポーネントのx及びy資源は内部的に更新されるであろう。 いずれの場合でも、開発者は、すべてのアクティブ・インターフェース・コンポーネントの実行時位置を見るためにはテスト・モードにスイッチしなければならないであろう。

    【0112】インターフェース・エディタ・アクティブ・インターフェース・ウインドウ−テスト・モード:テスト・モードにある時、ユーザ・インターフェース・コンポーネントに適したデフォルト作用がすべてのマウス及びキーボード事象に対して生じる。 例えば、メニュー・バーにおける選択がプルダウンをそれに関連させる場合、その選択項目においてマウス・ポインタでもってマウス・ボタン1を押すことはそのプルダウンを表示する。 更に、1次ウインドウ、2次ウインドウ、ダイアログ・ボックス、又はメッセージ・ダイアログを移動させるためにウインドウ・マネージャを使用する時、ユーザ・インターフェース・コンポーネントのx及びy資源が更新されるであろう。 そして、移動オペレーション又は資源エディタを介してx及びyしげんを変更する時、実際のユーザ・インターフェース・コンポーネントはそれを新しい位置で示すように移動するであろう。

    【0113】図13のウインドウにおける「アクティブ・コンポーネント資源(Active Compone
    nt Resources)」は、開発者が修正のためにアクティブ・コンポーネントの資源を見て選択することを可能にする。 それは、現在のコンポーネントの名前(Name)及びそれの資源に対する現在値を含むラベルのリストと共に、現在のコンポーネント及びそのタイプを識別するラベルを含んでいる。 マウス・ポインタを所望の資源の上に位置付け、そしてマウス・ボタン1を押すことによって、インターフェース・エディタは、各独特のコンポーネント資源タイプに対するエディタを活動化するであろう。 例えば、フォアグラウンド・カラー(Foreground color)、バックグラウンド・カラー等のようなすべてのコンポーネント・カラー資源を変更するために使用される単一のカラー資源更新ツリーがある(図15参照)。

    【0114】「アクティブ・コンポーネント資源」ウインドウのサイズが増加する場合、ダイアログはコンポーネントの資源の多くを表示するように適応するであろう。 ダイアログのサイズが減少する場合、その逆も真である。 後述の資源エディタを介して行われる資源変更は、次のような条件すべてが真である時アクティブ・コンポーネントのすべての子孫に伝搬される。 即ち、 ※変更される資源はカラー、フォント、又はバックグラウンド・ピクセルマップである。 ※資源が変更されるユーザ・インターフェース・コンポーネントは他のコンポーネントの親である。 ※ユーザ・インターフェース・コンポーネント及びその下の副階層(親コンポーネントとはちょうど逆)はが現在選択される(コンポーネント及び副階層を選択する方法を説明した上記「コンポーネント選択/活動化」を参照)。

    【0115】例えば、グループ・ボックス及びその子孫がユーザ・インターフェース・コンポーネント階層表示領域において選択される場合、グループ・ボックスのフォントに対する変更は同じフォント資源値をそのグループ・ボックスの各子孫に伝搬させるであろう。

    【0116】資源エディタ・ダイアログ・ボックス使用する例を次に説明する。 図14は、1次ウインドウと関連したタイトル資源を編集するテキスト資源ボックスを示す。 テキスト資源エディタ・ダイアログは、1つのユニットとして扱われるべき1つ又は複数のテキスト・ライン(リストとは対照的)より成るコンポーネント資源を修正するために使用される。 テキスト資源エディタ(Text Resource Editor)は、コンポーネント名、ボタン・ラベル等を修正するために使用される。 修正されるコンポーネント資源の現在値は、
    この対話で編集するために利用される。 更に、そのエディタは、編集される資源の特殊な名前、例えば、タイトル(Title)を示す。

    【0117】一旦、開発者が所望の変更すべてを完了してしまうと、「OK」ボタンの選択はその変更を反映するように現在のコンポーネントを更新し、テキスト資源編集ダイアログをその表示から除去するであろう。 単一ライン資源が編集されている時、実行キーを押すことは資源値を更新し、ダイアログを除去するであろう。 「取消(Cancel)」ボタンの選択も編集ダイアログを表示から除去し、その選択されたコンポーネント資源の値を変更されない状態にしておくであろう。 編集されるべき資源が複数ラインより成る場合、多数のラインを含むスクロールされたウインドウが与えられる。 それとは別に、単一ライン・テキスト入力フィールドが示される。 留意すべきことは、示される文字の数を「アクティブ・コンポーネント資源」ウインドウの幅に制限してテキスト資源の第1ラインだけが「アクティブ・コンポーネント資源」ウインドウに表示される。

    【0118】資源エディタのもう1つの例が図15に示される。 カラー資源エディタ(Color Resou
    rce Editor)ダイアログがコンポーネント・
    カラー資源を修正するために使用される。 カラー資源は、フォアグラウンド・カラー(Foreground
    color)、バックグラウンド・カラー(Back
    ground color)、シャドー・カラー(Sh
    adow color)等を含む。 このダイアログは、
    利用可能な各名称のカラーに対して1つずつラジオ・ボタンのグリッドを、その名称のカラーに対応したカラーで表示する。 資源の現在のカラー名が表示され、一致したラジオ・ボタンがそのカラーを現在のカラーとして表わすようにセットされる。 開発者は、所望のカラーのラジオ・ボタンを選択することによって資源カラーを変更する。 開発者が各ラジオ・ボタンを選択する時にユーザ・インターフェース・コンポーネントは更新される。 デフォルト(Default)ラジオ・ボタンの選択は資源値を「デフォルト」にセットするであろう。 一方、これはカラー資源をセットするためにユーザ優先値を検索するであろう。 開発者がOKボタンを選択し、又は実行キーを押す場合、ダイアログはその表示から除去され、
    その資源に行われたすべての変更はそのままである。 取消ボタンの選択はダイアログをその表示から除去するであろうし、資源はそれが修正のために選択された時に持っていたカラーに戻されるであろう。 他のタイプの資源を修正するためには、他の資源エディタが利用可能である。

    【0119】D. ユーザ・インターフェース・サーバ(UIS) 図1に示されるように、ユーザ・インターフェース・サーバ48はインターフェース・エディタによって前に作成されそして表示オブジェクト記憶装置に記憶されたユーザ・インターフェースをロードする機能をアプリケーションに与える。 ユーザ・インターフェース・サーバ4
    8は、ウインドウ管理システム58とアプリケーションとの間の実行時インターフェースを与える。 ユーザ・インターフェース・サーバ48は、多数のアプリケーションの各々を多数のユーザ・インターフェースでもって処理することができる。

    【0120】ユーザ・インターフェース・サーバは、更に、インターフェースの一部分をロードしそしてそれを前にロードされたインターフェースに付加する機能をアプリケーションに与える。 各アプリケーション50、5
    3、54は、表示オブジェクト記憶装置46からユーザ・インターフェース・サーバ48によって前にロードされていたインターフェースを修正でき、そしてそのインターフェースの作用を制御できる。 種々のアプリケーション50、53、54は、表示オブジェクト記憶装置4
    6に記憶された同じユーザ・インターフェースを共用できるけれども、それらは、それぞれ、ユーザ・インターフェース・サーバ48によってロードされた後、別々にそのインターフェースを調整可能である。 ユーザ・インターフェース・サーバ48は、共用のインターフェースを現在使用している各アプリケーションに対するワーキング・メモリ領域78に、各共用インターフェースの個々のコピーをロードする。 アプリケーションはいくつものユーザ・インターフェースを持つことができるので、
    1つのユーザ・インターフェースの多数のコピーが1つのアプリケーションに対してロードされることが起こり得る。 それぞれはアプリケーションによって別々に修正可能である。

    【0121】図1に示されるように、アプリケーション50、53、54は相互接続手段56を介してユーザ・
    インターフェース・サーバ48に接続される。 各アプリケーションはユーザ・インターフェース・サーバ・インターフェース52を介してユーザ・インターフェース・
    サーバ48にコマンドを発生する。 ユーザ・インターフェース・サーバ・インターフェース52はアプリケーションの一部分である。 ユーザ・インターフェース・サーバ・インターフェース52は各アプリケーションがそれらのユーザ・インターフェースの作用を制御しそしてユーザ・インターフェース・サーバ48から情報を受け取ることを可能にするコマンドのセットを与える。 ユーザ・インターフェース・サーバ・インターフェース52はそのユーザ・インターフェースを制御し修正するに必要な機能を各アプリケーションに与える。 各アプリケーションは、それらコマンド・セットのうち、ユーザ・インターフェース・サーバ48によって実行されるべきものを発生することができる。 これは、各アプリケーションにそのユーザ・インターフェースの作用を制御する機能を持たせるアプリケーション開発言語を与える。

    【0122】ユーザ・インターフェース・サーバ48は各アプリケーションによって発生されたコマンドをサービスする。 これらコマンドは、初期設定、ユーザ・インターフェースのローディング、前にロードされたユーザ・インターフェースへのユーザ・インターフェースの付加、ロードされたユーザ・インターフェース又はロードされたユーザ・インターフェースの一部分の削除、照会、デフォルト値の初期設定、ユーザ・インターフェース及びユーザ・インターフェース・コンポーネントの表示及び消去を含むことができる。 それは、ユーザ・インターフェースの動的な使用及びウインドウ管理システムの独立性を与えるこれらコマンドをアプリケーションが使用することである。

    【0123】更に、ユーザ・インターフェース・サーバ・インターフェース52は、各アプリケーションがユーザ・アクションに関する適当な情報を受けるための機能を与える。 アプリケーションAはメニュー項目のリストを含むユーザ・インターフェースを現在表示していると仮定する。 ユーザが表示手段上に示されたメニュー項目をマウスでもって選択する場合、この選択を処理するためのアプリケーションAにおける適当な機能がユーザ選択に応答して呼び出される。 呼び出すためのアプリケーション機能の名前は、特定のメニュー項目と関連した呼出資源によって与えられる。

    【0124】相互接続手段56は、ユーザ・インターフェース・サーバ48を含むプラットフォーム上に与えられるユーザ・インターフェースによって、アプリケーションがリモート・システム上に位置指定される機能を与える。 リモート・アプリケーションは、リモート・コミュニケーション・アダプタ(図示されていない)に対するリモート・ユーザ・インターフェース・サーバ・インターフェースを介してユーザ・インターフェース・サーバ48にコミュニケートする。 なお、そのリモート・コミュニケーション・アダプタは、相互接続手段を介してユーザ・インターフェース・サーバ48にコミュニケートするローカル・コミュニケーション・アダプタ36にコミュニケートする。 このリモート接続は双方向コミュニケーションを与える。 従って、アプリケーションは、
    ユーザ・インターフェース・サーバと同じシステムにおいて位置指定される必要はない。 この融通性は、ユーザ・インターフェース・サーバのサーバ特性のためである。

    【0125】ウインドウ管理システム58は、ユーザ・
    インターフェース・サーバ48がディスプレイの種々の領域に結果を示すこと、特定のアプリケーションのユーザ・インターフェースが実行しているスクリーン領域をサイズ変更すること、メニューをポップアップ及びプルダウンすることを可能にする。 ウインドウ管理システムは、オペレーティング・システムが資源マネージャであることと同様に資源マネージャであり、それは単に資源のタイプが異なるだけである。 ユーザ・インターフェース・サーバ48は、ディスプレイ資源を管理するためにウインドウ管理システム58の機能を利用する。 ユーザ・インターフェース・サーバ48はアプリケーション5
    0、53、54に対するエージェントとしてウインドウ管理システム58と対話する。

    【0126】ユーザ・インターフェース・サーバ48は異なるウインドウ管理システムと作業するように修正されなければならないけれども、アプリケーションそのものは修正されないであろう。 各アプリケーションのユーザ・インターフェースは、ユーザ・インターフェース・
    サーバ・インターフェース52を通して発生されたコマンドを介して制御され且つ管理される。 これらのコマンドによって実施されるこれらの機能は、ユーザ・インターフェース・サーバがポートされたすべてのウインドウ管理システム上でユーザ・インターフェース・サーバによってサポートされる。 従って、各アプリケーションと関連したユーザ・インターフェースはウインドウ管理システムとは無関係である。

    【0127】本発明の重要な利点は、アプリケーションが動的に共用を指定できることである。 ほとんどのアプリケーションは、ユーザ・インターフェース・コンポーネントの副階層より成るユーザ・インターフェースを有する。 副階層は、ユーザ・インターフェースにおけるユーザ選択の結果として要求時に必要とされるだけ鋸とが多い。 例えば、ユーザ・インターフェースはいくつかの選択項目のリストを持ったメニューを含むものと仮定する。 なお、その選択項目の1つは、選択された時、印刷機能を呼び出させるものである。 対応するアプリケーションは、ユーザが印刷機能を選択する場合、印刷副階層を表示オブジェクト記憶装置からロードし、メニュー・
    リストを含む既にロードされたユーザ・インターフェースの適当なロケーションにそれを付加し、そしてその印刷副階層を表示するよう、アプリケーションがユーザ・
    インターフェース・サーバにコマンドするように設定可能である。 印刷機能を最早必要なくさせる(即ち、印刷機能を終了させる)選択をユーザが行う場合、アプリケーションは、その副階層をワーキング・メモリ領域から削除するためのコマンド又はその副階層が最早表示されないようにワーキング・メモリ領域を修正するためのコマンドをユーザ・インターフェース・サーバに発生できる。

    【0128】E. アプリケーション アプリケーションはユーザ・インターフェース・サーバ(UIS)にコマンドを発生し、UISから事象情報を受け取る。 各アプリケーションはコンパイルされた環境又は解釈環境で実行可能である。 コンパイレーションは、コンピュータ・プログラム、即ち、一組の抽象的命令を、コンピュータにより実行可能な一連の機械命令に返還するプロセスである。 アプリケーションがその実行前にコンパイルされる必要があるソフトウエア開発環境はコンパイル済み環境と呼ばれる。 対照的に、プログラムが実行されつつある時、抽象的命令を機械語に変換するインタープリタを使って、開発者が一連の抽象的命令を直接に走らせることを可能にする環境がある。 そのような環境は対話的と呼ばれる。

    【0129】アプリケーションは、それらが開発者にコミュニケートする1つ又は複数のユーザ・インターフェースを持つことが可能である。 いくつかのユーザ・インターフェースを持ったアプリケーションは、そのアプリケーションが最初に呼び出される時にそのユーザ・インターフェースすべてをロードすることができ、又はユーザの選択により必要とされるインターフェースをロードすることができる。 各アプリケーションは、UISにコマンドを発生することによってそれらのユーザ・インターフェースの表示及び外観を制御する。 「UISインターフェース」は、コマンドを実行するためにUISを呼び出すためのコードを含んでいる。 UISインターフェース・コマンドがそのアプリケーションによって発生されるシーケンス及び各コマンドと関連した仕様データは、ユーザ・インターフェースがスクリーン上に現れる方法を決定し、どのアプリケーション機能がユーザ発生事象に応答するかを決定する。

    【0130】アプリケーション開発者の観点から言えば、ユーザ・インターフェース・サーバ48はウインドウ・システムのフロント・エンドを与える。 それは実行時にユーザ・インターフェースをロードし、ユーザ・インターフェースの表示を制御し(実際にユーザ・インターフェースをディスプレイ上に表わすコマンドをウインドウ・システムに送り)、そしてユーザ・インターフェースとアプリケーション機能との間の対話のための機構を与える。

    【0131】F. 表示オブジェクト記憶装置 ユーザ・インターフェースはUIS、ウインドウ管理システム及びアプリケーションから外部的に記憶される。
    図7は、いくつかのユーザ・インターフェースを含むウインドウ管理システムを示す。 ユーザ・インターフェースはファイル又はデータベースに記憶可能である。 UI
    Sは、ユーザ・インターフェースをウインドウ管理システムから検索でき、又は指定されたユーザ・インターフェース又はユーザ・インターフェース名のリストをウインドウ管理システムに検索させることができる。 ウインドウ管理システムにおけるユーザ・インターフェースはユーザ・インターフェースに関する一般的な情報及び個々のコンポーネントに関する情報を含み、そのユーザ・
    インターフェース内のコンポーネント相互間の関係を定義する。

    【0132】ユーザ・インターフェースは、アプリケーションから及びDOSにおけるUISから外部的に記憶される。 ユーザ・インターフェースの共用及び動的使用を促すことはウインドウ管理システムの外部的性質である。 ユーザ・インターフェースはフラット・ファイルとして又はデータベースに記憶可能である。 フラット・フォーマットは2次元ユーザ・インターフェース階層の直列的又は1次元的表示である。

    【0133】ユーザ・インターフェース階層は、コンピュータ・メモリにおいて、例えば、親コンポーネントから子コンポーネントまで指定するためにポインタを含む構造を使用して、容易に表わされる。 しかし、ファイル及び或データベース構造はそのような直接的表示に役立たず、従って、階層は直列化されて、ここではフラット・ファイルと呼ばれる1次元的表示にされなければならない。 後でその階層を作成し直すに十分な情報がフラット・ファイルに記憶される。 この情報は、各コンポーネントの親の名前をそのコンポーネントと共に含むことによって記録されることが多い。

    【0134】前述のように、UISはワーキング・メモリ領域におけるコンポーネントの階層編成を利用する。
    重要なことは、ユーザ・インターフェース・コンポーネントのこの論理的階層編成である。 コンポーネントの階層としてユーザ・インターフェースを表わす利点の1つは継承(inheritance)である。 階層におけるコンポーネントは親コンポーネントからアトリビュート及び作用を継承することができる。 例えば、アプリケーションは、1次ウインドウ及び子としてのいくつかの2次ウインドウと共に、それら2次ウインドウの1つの子であるダイアログ・ボックスを持ったユーザ・インターフェースを持つことができる。 継承の下では、親の2
    次ウインドウが表示されない場合、ダイアログ・ボックスは表示され得ず、1次ウインドウが表示されない場合、2次ウインドウは表示され得ない。 当業者は、外部DOSフォーマットからUIS内部階層フォーマットへの適当な変換を決定することができるであろう。 本発明は表示オブジェクト記憶装置又はワーキング・メモリ領域におけるユーザ・インターフェースに対する如何なる特定のフォーマットにも限定されないことに留意することが重要である。 UISがメモリにおける階層としてユーザ・インターフェースをアクセスできる限り、ユーザ・インターフェースを記憶するための正確なフォーマットは重要ではない。 記憶フォーマットを選択することで最も重要なことは、表示オブジェクト記憶装置をアプリケーションと共にシステム相互間で移動する機能である。

    【0135】表示オブジェクト記憶装置46は図4乃至図6においてRAM38に位置指定されるものとして示されているけれども、表示オブジェクト記憶装置46
    は、機能の喪失なしにディスク、フラッシュ・メモリ又はROMに記憶されてもよい。 表示オブジェクト記憶装置46は、その表示オブジェクト記憶装置へのアクセスがコミュニケーション・アダプタ36、I/O30、又はシステム・バス22によって行われる場合には、全く異なるデータ処理システム上に位置指定されてもよい。
    事実、種々のシステム上で動作する多数のアプリケーションがファイル・サーバ上の表示オブジェクト記憶装置に記憶されるものとしてユーザ・インターフェースを利用できるよう、表示オブジェクト記憶装置はそのファイル・サーバ上に位置指定可能である。

    【0136】G. ウインドウ管理システム(WMS) ウインドウ管理システムは、現代のユーザ・コンピュータ・インターフェースにおける多くの重要な特徴を与える。 ウインドウ管理システムは、多数のアプリケーションが1つのコンピュータ・ディスプレイにおいてユーザと対話することを可能にし、アプリケーションがデータを表示し且つユーザから入力を収集するための低レベル機能を与える。 ウインドウ管理システムは、アプリケーションがディスプレイの種々の領域に結果を示すこと、
    アプリケーションが実行しているスクリーン領域をサイズ変更すること、メニューをポップアップ及びプルダウンすることを可能にする。 ウインドウ管理システムは、
    オペレーティング・システムが資源マネージャであることと同じように資源マネージャであり、資源のタイプが異なるだけである。 ウインドウ管理システムは、スクリーンの使用を求めている種々のアプリケーションにスクリーン領域の資源を割り当て、そしてアプリケーションが相互に干渉しないようにこれらスクリーン領域の管理を援助する。 更に、ウインドウ管理システムは、ユーザ入力を必要とするアプリケーションに対話装置の資源を割り当て、そしてその対話装置から、入力が予定される適当なアプリケーションの事象待ち行列への入力情報の流れを経路指定する。

    【0137】ウインドウ管理システムは、典型的には、
    2つの重要な部分を有する。 その第1は、エンド・ユーザがウインドウを作成させ、サイズ変更させ、移動させ、オープンさせ、クローズさせるよう対話するウインドウ・マネージャである。 その第2は、基礎となる機能的コンポーネントであるウインドウ・システムであり、
    実際にウインドウを作成させ、サイズ変更させ、移動させ、オープンさせ、クローズさせるものである。 ウインドウ・マネージャは、ウインドウ・システムの最も上に作成される。 ウインドウ・マネージャは、ウインドウ・
    システムによって与えられるサービスを使用する。 ウインドウ・マネージャは、コマンド・ライン・インタープリタがその基礎となるオペレーティング・システム・カーネルに対するものであるように、その基礎となるウインドウ・システムに対するものである。 アプリケーションは、ウインドウ管理システムの最も上に作成される。
    アプリケーション上に作成されたアプリケーションはクライアントと呼ばれることがあり、一方、ウインドウ管理システムそのものの機能を使用するものはサーバと呼ばれることがある。

    【0138】「X Window」システムのようなクライアント/サーバ・ウインドウ管理システムでは、ウインドウ・マネージャそのものが、ウインドウ・システムにとっては、他のクライアント・プログラムのように見える。 他のシステムには、クライアントとサーバとの間よりもウインドウ・マネージャとウインドウ・システムとの間に更に密接な関係があるものがある。 多数のクライアントが1つのサーバによってサポートされるものに対して、1対1の関係を必要とする連係コードがあることに留意してほしい。 クライアント/サーバ・モデルは、クライアント及びサーバが、プロセス間コミュニケーション又は他の相互接続手段を介してコミュニケートしながら、異なるプラットフォーム上で実行することを可能にする。 プロセス間コミュニケーションの使用は、
    ユーザがワークステーションからのアプリケーションと対話している時、計算集中アプリケーションが強力なコンピュータ上に存在することを可能にする。 これに関して、クライアント/サーバ・モデルは仮想端末プロトコルという複雑な例であり、そのようなプロトコルは一般にこの利点を共有する。

    【0139】ウインドウ管理システムは、クライアント/サーバ・モデル上に作成される必要はない。 例えば、
    「MacIntosh」(商標)はウインドウ・マネージャとウインドウ・システムとの間に十分に定義された分離を持たない。 このような分離は、「MacInto
    sh」の単一アクティブ・プロセス、単一プロセッサ設計を必要としなかったし、余分な実行時オーバヘッドを導いたであろう。 勿論、「X Window」、「Ne
    ws」及び「Andrew」のようなウインドウ・マネージャとウインドウ・システムとの間のプロセス間コミュニケーションの使用を与えるウインドウ管理システムでは、インターフェースはコミュニケーション遅延を最少にするように設計されなければならない。

    【0140】共通のウインドウ・システムを共用するアプリケーションは、共通の外観及び感触を保証するようにウインドウ管理システムに対して作成された共通の対話的テクニックのツールキットを利用できる。 対話的テクニックのツールキットは、種々なタイプの表示オブジェクトを与える一組のサブルーチンより成る。 対話的テクニックのサブルーチン・ライブラリである対話的テクニックのツールキットは、テクニックの集合体をアプリケーションによる使用のために利用可能にするための機構である。 対話的テクニックのツールキットを使用することによって、共通のWMSを共用するアプリケーション相互間の一貫した外観及び感触が保証される。 そのツールキットの基本的素子は、メニュー、ダイアログ・ボックス、スクロール・バー、ファイル選択ボックス等を含み得るものである。 対話的テクニックのツールキットは特殊なWMSにとっても利用可能である。 広く使用されているツールキットは、「Andrew ウインドウ管理システム・ツールキット」、「MacIntosh
    ツールキット」、「OSF/Motif」、及び「X
    Windows」システムで使用するための「Int
    erView ツールキット」を含む。 更に、「XRA
    Y」及び「CLUE」がある。 いくつかのツールキットは、「X Windows」及び「News」の両方、
    「Presentation Manager」、及び「SunViewウインドウ管理システム・ツールキット」を利用する。

    【0141】H. 発明の使用方法−動作例 この項は、開発者がユーザ・インターフェースを作成するためにインターフェース・エディタを使用する方法の概要を示す。 図16は、コンポーネント作成制御パネル上の「メニュー・バー(Menu bar)」コンポーネント・タイプが開発者により選択された時の1次ウインドウを示す。 開発者は、この例では、「メニュー・バー」コンポーネント・タイプを選択するために「メニュー・バー」オプション上でクリックした。 新しいユーザ・インターフェースが作成されようとしているので、
    「1次ウインドウ(Primary Window)」
    コンポーネントだけがコンポーネント階層表示領域94
    に示されていること、それが強調表示されてアクティブ・コンポーネントであることを表わしていること、及びステータス・ラインはそれがアクティブな親(Acti
    ve Parent)であることを表わしていることに留意してほしい。

    【0142】「メニュー・バー」オプションを選択することによって、開発者は現在のインターフェースにメニュー・バーを追加したいことを表わしたことになる。 図17は、「メニュー・バー」が追加されたことを反映するように階層表示領域が更新されたことを示している。
    「メニュー・バー1(Menu Bar1)」、即ち、
    今追加されたメニュー・バーがアクティブな親を指定されたことに留意してほしい。 これは必要ないことであり、アクティブな親は、他のコンポーネントが子としてそれに追加される時に1次ウインドウをそのまま残すことができる。 次に、開発者はメニュー・バーに1つの選択項目を追加するためにコンポーネント作成制御パネル上の「メニュー選択項目(Menu Choice)」
    においてクリックする。

    【0143】図18は、「メニュー選択項目」が追加されたことを反映するようにコンポーネント階層表示領域が更新されたことを示す。 開発者はユーザ・インターフェース・コンポーネントに対する名前を指定してなかったので、それらはインターフェース・エディタによって割り当てられたデフォルト名(この例では、Menu_
    Choice1)で示される。

    【0144】図19は、アクティブ・インターフェース・ウインドウにおける1次ウインドウ、メニュー・バー及び単一のメニュー選択項目コンポーネントの時の現在のユーザ・インターフェースのWYSIWYG表示を示す。 現在のユーザ・インターフェースのユーザ・インターフェース・コンポーネントは、インターフェースがユーザ・インターフェース・サーバを使用して1つのアプリケーションから実行され時にそれらが実際に現れるままに示される。 選択項目のラベル「メニュー選択項目(Menu Choice)」は、タイトル「アクティブ・インターフェース(Active Interfa
    ce)」である時のデフォルトによって選択された。

    【0145】メニュー選択項目ラベルを開発者のアプリケーションにとって有意味なものに変更するために、開発者は「アクティブ・コンポーネント資源」ウインドウから「メニュー選択項目1(Menu Choice
    1)」コンポーネントのラベル資源を選択する。 そこで、開発者はラベル(Label)を編集するためのダイアログ・ボックスを与えられ、図20に示されるようにラベルを「ファイル(File)」に変更する。 アクティブ・インターフェース・ウインドウは図21に示されるように新しいラベルを反映するように自動的に更新される。 同様に、開発者は、名前資源を選択し且つ編集することによって「メニュー選択項目1」から「ファイル」にコンポーネント名を変更する。 コンポーネント階層表示領域は名前資源変更を反映するように自動的に更新される。

    【0146】同様に、ユーザは「編集(Edit)」、
    「ビュー(View)」及び「オプション(Optio
    ns)」のメニュー選択項目を追加し、その結果、図2
    2に示されたWYSIWYGインターフェースを生じる。 この表示に対応するコンポーネント階層表示領域が図23に示される。 コンポーネント階層表示領域は新しい選択項目の追加及び名前資源修正を反映するように自動的に更新されたことに留意してほしい。 3つのウインドウを持ったインターフェース・エディタ全体が図24
    に示される。

    【0147】今や、開発者はメイン・メニュー上の「ファイル(File)」オプションと関連付けられるべきプルダウンを定義することを望んでいる。 そうするために、開発者はコンポーネント階層表示領域におけるボックス・ラベル「ファイル」上でクリックし、それをアクティブ・コンポーネントとして選択する。 インターフェース・エディタは、「ファイル」メニュー選択を表わすボックスを強調表示することによって応答する。 このアクションは、「ファイル」メニュー選択を現在の親にし、開発者がプルダウンを加えること及びそれを「ファイル」選択項目と関連付けさせることを可能にする。 プルダウン・メニューは、コンポーネント作成制御パネル上に表示された「プルダウン・メニュー(Pulldo
    wn Menu)」コンポーネント・タイプ上でクリックすることによって追加される。

    【0148】今や、開発者はプルダウン・メニュー選択項目をプルダウンメニューに追加する。 開発者は、所望のコンポーネント上でマウスをクリックすることにより階層表示領域におけるメニュー選択項目を選択しそして「アクティブ・コンポーネント資源」ウインドウにおける適当な資源を選択し、その資源を編集することによって、これらプルダウン・メニュー選択項目に対する名前及びラベル資源を編集する。 変更はコンポーネント階層表示領域及び「アクティブ・インターフェース・ウインドウ」において反映される。 インターフェース・エディタの1次ウインドウが図25に示される。 それは、開発者がプルダウン・メニュー及びプルダウン・メニュー選択項目「新規(New)」、「オープン(Ope
    n)」、「新規保管(SaveAs)」、「印刷(Pr
    int)」、及び「終了(Exit)」を追加したものである。 図25では、開発者は、既に、コンポーネント階層表示領域におけるボックス・ラベル「1次ウインドウ(Primary Window)」上でクリックして、それをアクティブ・コンポーネントとして選択したことに留意してほしい。 インターフェース・エディタは、「1次ウインドウ」メニュー選択項目を表わすボックスを強調表示することによってこの選択に応答した。
    このアクションは「1次ウインドウ」メニュー選択項目を現在の親にする。

    【0149】ここまでは、ユーザはインターフェース・
    エディタ設計モードであった。 図26は、開発者がメニュー・バーから「オプション(Option)」メニュー選択項目を選択しそしてオプション・プルダウン・メニューを介してテスト・モードを選択した場合のインターフェース・エディタの1次ウインドウを示す。 テスト(test)モードでは、マウス・アクションと関連したデフォルト機構が適応する。 これは、開発者が「アクティブ・インターフェース・ウインドウ」における「ファイル」メニュー選択項目上でクリックする時、関連するプルダウンが表示される。 設計モードでは、「アクティブ・インターフェース・ウインドウ」メニュー選択項目における「ファイル」上でクリックしても、関連のインターフェース・コンポーネントを現れさせないであろう。 開発者が「ファイル」メニュー選択項目上でクリックした後のアクティブ・インターフェース領域が図27
    に示される。

    【0150】ユーザ・インターフェースを保管するために、開発者は、インターフェース・エディタの1次メニュー・バーから「インターフェース(Interfac
    es)」オプションを選択し、そして「保管(Sav
    e)」選択項目上でクリックする。 (図28を参照)。
    そこで、ユーザ・インターフェースは表示オブジェクト記憶装置に保管される。 開発者は、ユーザ・インターフェースに名前を付けるよう指示される。 上記の例で作成されたユーザ・インターフェースは、更なる編集のためにインターフェース・エディタにロードされるか又は1
    つ又は複数のウインドウ・システムにおける1つ又は複数のアプリケーションによって同時的に使用可能である。

    【0151】インターフェース・エディタを終了するために、開発者は、インターフェース・エディタの1次メニュー・バーから「インターフェース(Interfa
    ces)」オプションを選択し、「終了(Exit)」
    選択項目上でクリックする。 そこで、開発者は上述のように後でインターフェース・エディタを再読み出しでき、或いはユーザ・インターフェースを修正できる。 検索されたユーザ・インターフェースを編集する場合、開発者は上記のコマンドのうちのどれかを使用できる。 編集された又は修正されたユーザ・インターフェースは新しいユーザ・インターフェースとして表示オブジェクト記憶装置に保管され、又は前に作成されたユーザ・インターフェースを置換してもよい。

    【0152】I. 発明の利点 本発明は従来技術の認識された欠点を解決する。 それは、如何なる特定のウインドウ管理システムにも無関係なユーザ・インターフェースを作成し且つ編集する手段をアプリケーション開発者に与える。 作成されそして編集されたユーザ・インターフェースはコンパイレーションなしで使用可能である。 更に、ユーザ・インターフェースの単一の表示がすべてのウインドウ管理システムに対して使用される。 これは、ユーザ・インターフェースの保守及びバージョン制御を容易にする。 ユーザ・インターフェースに対する変更が必要な時、表示オブジェクト記憶装置に記憶されたユーザ・インターフェースを修正することによってそれら変更を行うことが可能になる。 行われた変更は再コンパイレーションを必要としない。

    【0153】インターフェース・エディタによって作成されそして編集されたユーザ・インターフェースは、解釈アプリケーションをユーザ・インターフェースに連係させるためには特別なアプリケーション・コードを必要とすることなくその対話的アプリケーションによって使用可能である。 これは、アプリケーション開発者がアプリケーションと解釈環境との間にプログラム的インターフェースを与える必要をなくする。

    【0154】本発明は、アプリケーション開発者がコンパイルされた言語で書く必要性及び特定のウインドウ・
    システム又は対話ツールキットの詳細を知る必要性から解放する。 更に、アプリケーションのユーザ・インターフェース部分は、ユーザ・インターフェース・サーバがポートされたウインドウ管理システム上で修正なしに実行可能である。 ユーザ・インターフェースをコンパイルする必要がなくなることによって、いくつかの欠点が回避される。 ユーザ・インターフェースのコンパイレーションは、典型的には、ウインドウ・システム・ライブラリにおいて連係する大きなエクゼキュータブル(exe
    cutable)を作成する。 その大きなエクゼキュータブルは実行時にロードするために長い時間をとり、大きなメモリ割り当てを必要とする。 これはアプリケーションの実行時間を増加する。

    【0155】本発明はユーザ・インターフェースのコンパイレーションを必要とせず、種々のウインドウ管理システムに対して同じユーザ・インターフェースの重複表示を必要としない。 ウインドウ管理システムの独立に対する1つの代替え方法は、各ウインドウ環境に対して高レベル言語表示及び1つのコンパイルされたエクゼキュータブルを必要とする。 本発明はコンパイレーションを必要とせず、1つの表示は、ユーザ・インターフェース・サーバがポートされたすべてのウインドウ管理システムに関するユーザ・インターフェースを与える。

    【0156】J. 代替え方法 本発明は多くの方法で実施可能である。 本発明は、
    (1)ユーザ・インターフェースが対話的に作成され且つユーザ・インターフェースがウインドウ・システムから独立しているような(基礎的なウインドウ・システムよりも)高いレベルの抽象性を与え、(2)インターフェースをロードし且つユーザとアプリケーションとの間の対話をサポートすると共に、アプリケーションがユーザ・インターフェースを動的に修正及び照会するための機構が設けられ且つ種々のアプリケーションが同じユーザ・インターフェースを共用できるような実行時環境を与えるユーザ・インターフェース作成手段を提供する。
    本発明は、実施言語、ハードウエア又はソフトウエア・
    プラットフォーム、ウインドウ管理システム、ユーザ・
    インターフェース・ツールキット、又は与えられる外観及び感触或いは正確な機能の特殊性に依存しない。

    【0157】本発明は、ユーザ・インターフェースを作成及び編集するための且つユーザ・インターフェースを表示オブジェクト記憶装置において記憶及び検索するためのインターフェース・エディタを提供する。 ユーザ・
    インターフェース・サーバは、ユーザ・インターフェース又はユーザ・インターフェースの一部分を表示オブジェクト記憶装置から動的にロードする機能をアプリケーションに与える。 本発明は種々のハードウエア、ソフトウエア、及びウインドウ管理システムにおいて実施可能である。 例えば、それは、「Windows(商標)」
    又は「Presentation Manager w
    ith OS/2」を実行するパーソナル・コンピュータ上で、又は「X windows for Uni
    x」を実行する「Sun」又は「HP」ワークステーション上で、又は「AIX」及び「AIX−Window
    s」を実行する「IBM RISC System/6
    000」上で実施可能である。

    【0158】

    【発明の効果】本発明により、ウインドウ・システム及び対話ツールキットに関係なく、ユーザ・インターフェースを作成し、編集することが可能になる。

    【図面の簡単な説明】

    【図1】一連のアプリケーション、インターフェース・
    エディタ、ユーザ・インターフェース・サーバ、表示オブジェクト記憶装置、ウインドウ管理システム及びオペレーティング・システムを読み込んだメモリを有するコンピュータ・システムの体系的ブロック図である。

    【図2】インターフェース・エディタ、表示オブジェクト記憶装置、ウインドウ管理システム及びオペレーティング・システムを読み込んだメモリ有するコンピュータ・システムの体系的ブロック図である。

    【図3】相互接続された3つの独立したコンピュータ・
    システムを示す体系的ブロック図である。

    【図4】インターフェース・エディタ、表示オブジェクト記憶装置、ユーザ・インターフェース・サーバ及びウインドウ管理システムの機能的相互関係を示すブロック図である。

    【図5】インターフェース・エディタ、表示オブジェクト記憶装置及びウインドウ管理システムの機能的関係を示すブロック図である。

    【図6】インターフェース・エディタ及び特定のウインドウ管理システムのための表示オブジェクト記憶装置の機能的関係を示すブロック図である。

    【図7】いくつかのインターフェースを持った表示オブジェクト記憶装置を示す図である。

    【図8】インターフェース・エディタのための高レベルのデータ・フロー図である。

    【図9】インターフェース・エディタのためのユーザ・
    インターフェースを示す図である。

    【図10】インターフェース・エディタの1次ウインドウを示す図である。

    【図11】インターフェース・エディタの編集メニューを示す図である。

    【図12】インターフェース・エディタのアクティブ・
    インターフェース・ウインドウを示す図である。

    【図13】インターフェース・エディタのアクティブ・
    コンポーネント資源ウインドウを示す図である。

    【図14】インターフェース・エディタのテキスト資源エディタ・ダイアログを示す図である。

    【図15】インターフェース・エディタのカラー資源エディタ・ダイアログを示す図である。

    【図16】インターフェース・エディタの1次ウインドウにおけるコンポーネント作成制御パネルからの「メニュー・バー」コンポーネント・タイプの選択を示す図である。

    【図17】インターフェース・エディタの1次ウインドウにおけるコンポーネント作成制御パネルからの「メニュー選択項目」コンポーネント・タイプの選択を示す図である。

    【図18】「メニュー選択項目」コンポーネント・タイプが選択された後の1次ウインドウを示す図である。

    【図19】メニュー・バー及びメニュー選択項目が表示されたインターフェース・エディタのアクティブ・インターフェース・ウインドウを示す図である。

    【図20】インターフェース・エディタのアクティブ・
    コンポーネント資源ウインドウにおける編集メニュー選択項目ラベルを示す図である。

    【図21】メニュー選択項目のラベルを編集した後のメニュー・バー及びメニュー選択項目が表示されたインターフェース・エディタのアクティブ・インターフェース・ウインドウを示す図である。

    【図22】メニュー・バー及び追加のメニュー選択選択項目を持ったインターフェース・エディタのアクティブ・インターフェース・ウインドウを示す図である。

    【図23】メニュー・バー及び追加のメニュー選択選択項目を持ったインターフェース・エディタの1次ウインドウを示す図である。

    【図24】インターフェース・エディタのためのユーザ・インターフェースを示す図である。

    【図25】プルダウン・メニュー及びプルダウン・メニュー選択項目が追加された1次ウインドウを示す図である。

    【図26】インターフェース・エディタの1次ウインドウにおけるテスト・モードの選択を示す図である。

    【図27】テスト・モード時のアクティブ・インターフェース・ウインドウにおける「ファイル」選択項目の選択に応答するアクティブ・インターフェース・ウインドウを示す図である。

    【図28】インターフェース・エディタの1次ウインドウにおけるメイン・メニューからのインターフェース・
    プルダウン・メニューを示す図である。

    ───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート・エル・ウィアウイル アメリカ合衆国コロラド州、ロングモン ト、ユーテ・ハイウエイ 8011番地 (72)発明者 リチャード・ウイス アメリカ合衆国コロラド州、ボウルダー、 オーク・アベニュー 1690番地 (72)発明者 クリス・スコット アメリカ合衆国コロラド州、バーソウド、 フィフス・ストリート 956番地 (72)発明者 バーバラ・トーランド アメリカ合衆国コロラド州、ルイズビル、 タイラー・アベニュー 1791番地 (72)発明者 ロナルド・ビー・ホワイト アメリカ合衆国カリフォルニア州、ボウル ダー・クリーク、ボウルダー・ストリート 12754番地

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈