JPH0749759A - コンピュータ駐在ソフトウエアシステムに対するユーザインタフェースとしての電子的ドキュメント - Google Patents

コンピュータ駐在ソフトウエアシステムに対するユーザインタフェースとしての電子的ドキュメント

Info

Publication number
JPH0749759A
JPH0749759A JP3208271A JP20827191A JPH0749759A JP H0749759 A JPH0749759 A JP H0749759A JP 3208271 A JP3208271 A JP 3208271A JP 20827191 A JP20827191 A JP 20827191A JP H0749759 A JPH0749759 A JP H0749759A
Authority
JP
Japan
Prior art keywords
button
document
editor
user
buttons
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
JP3208271A
Other languages
English (en)
Other versions
JPH07104765B2 (ja
Inventor
Eric A Bier
エリック・エイ・ビア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xerox Corp filed Critical Xerox Corp
Publication of JPH0749759A publication Critical patent/JPH0749759A/ja
Publication of JPH07104765B2 publication Critical patent/JPH07104765B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 プログラムによってボタンを含むドキュメン
トを生成させる能力のために特別なプログラミング操作
を不要とする。 【構成】 隠された持続性のあるキャラクタストリング
属性を、電子的ドキュメントについての人手による解釈
が可能な通常の要素に対して関連させることにより、そ
のような要素に対して、様々なタイプのボタンの態様を
付与することがユーザに対して許容するためのソフトウ
エアアーキテクチュアである。このアーキテクチュアに
よってこのようなボタンに許容されることは、エディッ
ト操作およびサーチ操作が、標準的なドキュメントエデ
ィタによって通常に提供されるエディットルーチンおよ
びサーチルーチンの使用を通してなされることである。

Description

【発明の詳細な説明】
【0001】この発明は、コンピュータ駐在ソフトウエ
アシステムに対するカスタム化可能なユーザインタフェ
ースに関するものであり、より詳細には、プログラマは
もとより、非プログラマであっても、彼等のコンピュー
ティング資源(例えば、パーソナルコンピュータ、ワー
クステーション等)についての、ユーザインタフェース
のオーダに合わせることができるソフトウエアアーキテ
クチュアに関するものであって、これにより、彼等の個
別の要求および選択に緊密に合致させるようなインタフ
ェースを生成させることが許容される。これを更に詳細
にいえば、この発明のソフトウエアアーキテクチュアに
よれば、ドキュメント(テキスト、グラフィックス、表
および等式のようなもの)における通常のテキストエレ
メントおよび/またはグラフィックスエレメントについ
ての、隠された持続性のあるキャラクタストリング属性
として、構築された電子的ドキュメント内にアクティブ
ボタンを埋め込むことがユーザに対して許容されるよう
に、また、このようなボタンの動作特性を指定すること
がユーザに対して許容されるように、テキストエディタ
およびグラフィックスエディタ(以下、集合的に“ドキ
ュメントエディタ”として参照される)の能力を伸長さ
せることができる。
【0002】多くの異なるマーケット区分における、カ
スタマの要求に対するコンピュータによる解決策のため
の、世界的な商業上の要請のために、ソフトウエアの生
産は成長産業になってきている。コンピュータユーザの
ある者は相当なプログラミング上の技能を備えているけ
れども、ツールとなっているコンピュータは、広範なコ
ンピュータプログラミングに係わる技能および/または
モチベーションが欠如したユーザによって使用されるこ
とが多い。かかる理由があることから、ユーザの意図す
るタスクに対するコンピュータの適用に焦点を合わせる
ことが、当該ユーザに対して許容されるようなユーザイ
ンタフェースを開発するために、ソフトウエアサプライ
ヤは相当な努力および費用を投じてきている。グラフィ
ックスに対するユーザインタフェースおよびウインドウ
パッケージは、ソフトウエアシステムにおける注目すべ
き例であって、現状では、非技術的なユーザから極めて
熟練したコンピュータの専門家までの者によるコンピュ
ータの使用を容易にすることが提案されている。しかし
ながら、当該システムのレベルでのソフトウエアは、そ
れ自体では、様々なインタフェースでの要求と異なるユ
ーザの選択との間での、実質的な特殊化が許容されてい
ない。
【0003】ある一人のユーザにとって重大なソフトウ
エアユーザインタフェースの特徴は、他のユーザのディ
スプレイスクリーン上でのスペースを無用に占有する可
能性があることである。同様にして、ユーザのある者に
とって必要な特徴は、アプリケーションプログラマによ
っては含まれなかったことである。この結果として、ソ
フトウエアパッケージのあるものは、カスタム化可能な
ユーザインタフェースを有することになる。例えば、予
め定められた多様なオプションを提供するパッケージが
あり、このために、他の者を除外するように該オプショ
ンのあるものを選択的に起動することにより、ユーザは
自己のインタフェースをカスタム化することができる。
この発明に更に直接的に関係することとして、ここでの
ソフトウエアパッケージには、ユーザがアクティブボタ
ンを生成させることができるツール、および、ユーザの
個別の要求および選択の直接的な支持において機能を果
たすことをコンピュータにさせるためのメニューが含ま
れている。
【0004】より詳細にいえば、HyperCardプ
ログラムにより、ユーザは、個人的なボタン、フォーム
およびレイアウトを生成させることができる。ユーザに
よるこのようなボタンのプログラムが許容されるよう
に、いわゆるHyperTalk言語が維持されてい
る。D.グッドマン( D.Goodman)著の完全HyperC
ardハンドブック(The Complete HyperCard Handbo
ok), バンタムブックス(Bantam Books), 1987を参照さ
れたい。同様にして、Xerox ViewPoint
なる製品は、ドキュメントに挿入できるボタンのプログ
ラミングをするための、CUSPと呼ばれる言語によっ
て維持されている。これについては、VPシリーズ参考
書集、VP CUSPボタン参考書、バージョン2.
0、ゼロックスViewPoint、ゼロックスコーポ
レイション(VP CUSP Buttons Reference, VP Series R
eference Library, Version 2.0, Xerox ViewPoint, Xe
rox Corporation), 1988を参照されたい。これらのCU
SPボタンは、アイコンおよびウインドウを移動させる
ようにプログラムできるとともに、ファイルのプリン
ト、書式用紙への書き込み、電子的ファイルフォルダに
対する情報の組成、および、他のタスクを実行するとき
の支援をすることができる。ユーザが実行を所望する計
算実行のための等式において、ユーザによるプログラミ
ング操作が通常は許容されていることから、スプレッド
シートプログラムについてもある程度の関心がもたれ
る。
【0005】いわゆるAndrewドキュメントエディ
タは、現状における更に別の関心がある例であるが、そ
の理由は、電子メールを介して送信されるために、ま
た、このようなメールメッセージの受信者によって使用
されるために、ボタンをドキュメントに含ませることが
許容されることにある。これについては、J.H.モー
リス(J.H. Morris) らの“アンドリュー:分散化バーソ
ナルコンピューティング環境 (Andrew: A Distribute
d Personal Computing Environment,) ”ACMの通
(Communications of the ACM), Vol.29, No.3) 1986
年3月 184〜201頁を参照されたい。更に、ゼロックス
のInterlisp環境には、“Rooms”と呼ば
れるウインドウマネージャが備えられており、アプリケ
ーションプログラムの始動をするために、プログラム状
態を記録して、後でそれをリストアするために、また、
ユーザが自動化を所望できる他の機能を実行するため
に、“room−to−room”(即ち、ある一人の
ユーザが組成したファイルコレクションおよび処理実行
ツールから他者の方へ、または、換言すれば、ある1個
の“デスクトップ”から他の方へ)からスイッチするた
めのボタンのユーザによる生成が許容されている。これ
については、A.マクリーン(A. MacLean)らの、“ユー
ザが仕立て可能なシステム:ボタンで刊行物を発行する
(User TailorableSystems:Pressing the Issues with B
uttons ”,コンピューティングシステムにおける人的
要因(Human Factors in Computing Systems), '90CH
I会報,1990年4月, 175〜182 ページを参照された
い。Roomsで維持されているボタンは、電子メール
を介して、ゼロックスのInterlisp環境を用い
ている他のユーザに対して転送されることが可能であ
り、また、ある一人のユーザのデスクトップに取り込ま
れて、当該ユーザのワークステーション環境におけるパ
ーマネントパーツになることができる。更に、それらが
具体化するLISPプログラミング言語をエディットす
ることにより、または、それらの位置および/または外
見を変化させるメニューコマンドを用いることにより、
これらのボタンをカスタム化することができる。
【0006】一般的にいえば、ユーザインタフェースの
カスタム化のために先行技術で提供されたボタンは、様
々な異なるアプリケーションで共有できるツールという
よりも、あるアプリケーションに特定のものであった。
このことは重大な不利益事項であるが、その理由は、異
なるアプリケーションの間で前後にスイッチすることに
なるファンクションをユーザが実行することができるに
しても、任意の時点においてユーザが自発的に割り当て
るディスプレイスクリーンのスペースは、大方のユーザ
にとってみれば限られた大きさでしかないことが見出さ
れていることにある。更に、このようなボタンがその中
に埋め込まれることが許容されないファンクションをユ
ーザが使用しているときには、ユーザが採用を所望でき
るカスタムボタンは、ユーザのディスプレイスクリーン
上において、アプリケーションからは空間的に分離して
いなければならず、これによってディスプレイスクリー
ンのスペース上での負担が加わるとともに、アプリケー
ションスペースとボタンスペースとの間で、ユーザによ
る注意を前後にシフトさせねばならない。
【0007】ユーザインタフェースをカスタム化するた
めにボタンを使用することに対する従来の提案について
の更に別の不利益点は、このようなボタンがアプリケー
ション内に埋め込まれたときに、この埋め込まれたボタ
ンが“特別な”オブジェクトとして扱われることであ
る。従って、テキストドキュメント内に駐在するボタン
が、それ自体でテキストのストリングであるとしても、
ボタンのエディット操作で要求されることは、該当のボ
タンが駐在するテキストのエディット操作のために用い
られるとは別の操作について使用されることである。更
に、テキストストリングがサーチパターンと合致してい
るとしても、ボタンがドキュメントにおけるテキストの
構成部としては認識されていないために、通常のテキス
トのサーチ操作においてこのようなボタンを見出すこと
はない。
【0008】この発明で提供されるソフトウエアアーキ
テクチュアによれば、隠された持続性のあるキャラクタ
ストリング属性を後記のような要素に対して関連させる
ことにより、電子的ドキュメントについての人手による
解釈が可能な通常の要素に対して、様々なタイプのボタ
ンの態様を付与することがユーザに対して許容される。
このアーキテクチュアによってこのようなボタンに許容
されることは、エディット操作およびサーチ操作が、標
準的なドキュメントエディタによって通常に提供される
エディットルーチンおよびサーチルーチンの使用を通し
てなされることである。
【0009】以下の詳細な説明を添付の図面とともに参
照することで、この発明についての更なる欠陥や利点が
明かにされよう:図1は本発明のソフトウエアアーキテ
クチャの説明図であり、図2A〜2Cは本発明によるボ
タンの生成における順次ステップを示す。図3Aおよび
3Bはポップアップボタンのメニューを示す。図4A及
び4Bはそれら自身の形式プロパティを選択されたグラ
フィックオブジェクトに変換することによってグラフィ
ック形式マクロスを達成するためのボタンの使用を示
す。図5A〜5Cはマルチステートボタンからのユーザ
フィードバックを示す。図6はグラフィックラジオボタ
ンの組からのユーザフィードバックを示す。図7Aおよ
び7Bはグラフィックエディタに埋め込まれた関連ラジ
オボタンの対からのユーザフィードバックを示す。図8
は本発明のソフトウエアアーキテクチャおよび標準的な
コンピュータシステムのアーキテクチャによって提供さ
れる通信経路を示す。図9Aおよび9Bはそれぞれ本発
明によって構築された制御パネルおよびそのコンパクト
表現を示す。そして図10Aおよび10Bはマルチステ
ートボタンとして機能する円から構成されたグラフィッ
クドキュメントを示す。
【0010】A.環境 この発明で構築される幾つかの特徴は、ある所定の新形
式のドキュメントエディタにおいて見出されるものであ
る。 (1) 任意なテキストの属性をドキュメントの要素と
関連付けさせる能力。 (2) ドキュメントエディタ自体よりも、アプリケー
ションに対して直接的な入力アクションをする能力。お
よび、 (3) 人手によるユーザよりも、ソフトウエアプログ
ラムによって特定されるエディット操作のアクションを
実行するための、エディット操作用言語を解釈する能
力。 従って、これらの特徴を具体化するエディタについて
は、これから簡略に説明される。更に、公開的に利用可
能な参照物の同定がなされるが、このために、ここでの
このような参照物は、この発明に対する適当な環境をよ
り十分に規定するための参照物として取り込まれる。
【0011】1.隠された持続性のあるキャラクタスト
リング属性 ゼロックスのBravoテキストエディタ(“Brav
oマニュアル,”Altoユーザーハンドブック,ゼロ
ックス・パロアルト・リサーチセンタ,1979,31〜62を
参照),Andrewエディタ (J. モリス (J. Morri
s)らのsupraを参照),ゼロックスのStar
(J.ジョンソン (J. Johnson) ら“The Xerox Star:A
Retrospective, ”コンピュータ誌(Computer),Vol.22,
No.9,9月 1989, 11〜29ページ) ,および,Grif
エディタ(R.フルタら“相互作用的エディテングで構
築されたドキュメント(Interactively Editing Stru
cturedDocuments,”電子出版 (Electronic Publishin
g) ,Vol.1, No.1, 4月, 1988, 19〜44ページを参照)
は、(タイプフェース、カラーおよびアルファベットの
ような)隠された持続性のある属性を、ドキュメントに
ついての通常のキャラクタ要素またはグラフィックス要
素と関連付けさせることが、ユーザに対して許容される
ドキュメントエディタの例である。これらの属性に“持
続性”がある理由は、磁気ディスクまたはテープのよう
な長期間メモリ、安定的な半導体メモリ、または、他の
持続性のあるメモリ資源内に、それらの属性がドキュメ
ントとともに蓄積されているためである。更に、これら
の属性は、ユーザからユーザへ、または、コンピュータ
からコンピュータへと転送可能なものである。これに加
えて、そのテキスト的な記述(例えば、“red”また
は“Timesroman”)が、ドキュメントがビュ
ーされたりプリントされたりするときには、属性が埋め
込まれているこのようなドキュメントの構成部分とは表
現されないために、該属性が“隠される”ことになる。
代替的に、この表現プロセスにおいては、それらの属性
を関連のあるドキュメント要素に対して適用して、これ
により、それらの要素を例えばredで表現させたり、
または、Timesromanのタイプフェースをもっ
て表現させたりする。Tiogaエディタ(R.ビーチ
(R. Beach) の“形式をもつテーブルおよびイラストの
設定 (Setting Tables and Illustrations with S
tyle)," 1985年、カナダ、ウオータールーのウオーター
ルー大学,Ph.D.理論を参照。−−ゼロックスPA
RCテクニカルレポートCSL−85−3としても利用
可能)のような、幾つかの実在するエディタにおいて
は、隠された持続性のある属性の概念を拡張して、ユー
ザの選択にかかる任意のキャラクタストリングが、テキ
ストのキャラクタおよびグラフィックスの形状のよう
な、通常のドキュメント要素の隠された持続性のある属
性として含まれることを許容している。このことは、異
なるハードウエアおよびソフトウエアの環境にあるユー
ザ間でのドキュメントの交換のためには重要な特徴であ
ると考えられる。そして、このために、将来のドキュメ
ントエディタに対して更に普遍性のある特性になるもの
と期待される。
【0012】2.入力の方向変換 幾つかの実在するエディタは、エディタ自体よりもアプ
リケーションプログラムに対して、入力の方向変換アク
ションをすることができる。例えば、シンボリック表現
マネジャー(Symbolic Presentation Manager) (S.
マッケイ (S. McKay) ら“応用意義学に基づく表現マネ
ジャ (A Presentation Manager Based on Application
Semantics), 1989年11月,ユーザインタフェースソフト
ウエア及び技術に関するACM SIGGRAPHシン
ポジウム会報 (Proceedings of the ACM SIGGRAPH Symp
osium on User Interface Software and Technology) 1
41〜148 頁) で許容されるコマンドによれば、エディタ
から分離したアプリケーションプログラムへと方向変換
するように、ある所定のテキスト要素をカーソルで指定
しているときに、“マウス”ボタンを起動することによ
ってユーザが介入することができる。同様にして、マウ
スボタンを起動することにより、ユーザがHyperT
alkプログラムを実行できるようにして、Hyper
Cardによる入力の方向変換がなされる。
【0013】3.ランタイムが解読されるエディット操
作言語 エディット操作言語のランタイムを解読することができ
るドキュメントエディタも知られている。例えばEMA
CSテキストエディタによれば、テキストのエディット
操作を支持するLISPプログラミング言語の方言が解
読される。同様にして、前述されたTiogaエディタ
によれば、解読される言語で表現されるべき全てのエデ
ィット操作のアクションが許容され、これにより、人手
によるユーザまたはコンピュータプログラムのいずれか
のコントロールの下に、交換可能に実行されるべきエデ
ィット操作が許容される。
【0014】B.埋め込み型のボタンアーキテクチュア この発明によるソフトウエアアーキテクチュアにおいて
は、既知のドキュメントエディタについての上述された
特徴(即ち、隠された持続性のあるキャラクタストリン
グ属性、入力の方向変換、および、ランタイムが解読さ
れるエディット操作言語)の利点が得られ、電子的ドキ
ュメントの生成可能な(renderable)部位の
任意のテキスト要素またはグラフィックス要素(例え
ば、このようなドキュメントの構造およびレイアウトを
規定するマシンで解読可能な要素に対抗するような、テ
キスト、グラフィックス、表および等式)に対するボタ
ンの態様を付加するオプションがユーザに与えられて、
正常なエディット操作およびサーチ操作の下ではボタン
が特別に扱われることがないようにされる。これをより
詳細にいえば、図1に示されているような、1個または
複数個のドキュメントエディタ11の各々に含まれてい
る入力方向転換ソフトウエアスイッチは、ユーザによっ
て、入力方向転換を不可能にする“ボタンオフ”状態、
または、入力方向転換を可能にする“ボタンオン”状態
にセットすることができる。ある特定のドキュメントを
管理しているエディタ11の入力方向転換ソフトウエア
スイッチが“ボタンオン”状態にセットされたときに
は、該当のエディタは、それが受け入れた全ての入力コ
マンドを実行して、その正常なエディット操作をするよ
うにされる。しかしながら、エディタ11の入力方向転
換スイッチが“ボタンオフ”状態にセットされたとすれ
ば、マウスによってコントロールされるカーソルが、埋
め込みボタンを有するある1個のドキュメント要素にお
けるポイントに対して位置しているときの、マウスボタ
ンのクリック操作のようなある予め選択された入力コマ
ンドが、“埋め込みボタンカーネル”と呼ばれる集中ソ
フトウエアモジュール12に対して回送される。
【0015】ドキュメントエディタ11が“ボタンモー
ド”(即ち、その入力方向転換スイッチが“ボタンオ
ン”状態にセットされている)で動作しているとすれ
ば、ドキュメント要素が選択されたときに、このような
要素がボタン属性を有しているかどうかを決定するため
に、該エディタ11によって試験される。そして、これ
が肯定であったときには、ある予め規定されたユーザ入
力アクションが埋め込みボタンカーネル12へと方向転
換するようにされる。このような方向転換入力コマンド
を受け入れたときには、埋め込みボタンカーネル12
は、選択されたドキュメント要素についてのボタン属性
を規定するキャラクタストリングを、ボタンクラスマネ
ージャ13内のクラスを特定するボタンハンドラへと中
継する。より十分に後述されるように、このボタンハン
ドラは、これに次いで、選択されたドキュメント要素の
ボタン属性を読み取って、取るべきアクションの決定を
行う。そして、それらのアクションを実行するために必
要なコマンドハンドラルーチン14を呼び出し、エディ
タに対するエディタ入力言語ストリングを伝送して、所
望のフィードバックをユーザに対して提供する。これか
ら認められるように、コマンドハンドラ14にはドキュ
メントエディタ11の任意のもの、および、付加的なア
プリケーションプログラムを含ませることができる。
【0016】この発明に関しては、ドキュメントエディ
タ11は、全ての属性がキャラクタストリングによって
規定されるという知識を除いて、このようなボタン属性
の任意のものについての内部的な形式または内容に関す
るいかなる知識も有する必要はない。これらのストリン
グはエディタのデータ構造において見出された属性とは
区別されるものであることから、このようなドキュメン
トを能動的に管理しているエディタについての正常なエ
ディット操作およびサーチ操作は、能動的なエディタの
入力方向転換スイッチが“ボタンオフ”状態(そして、
多くのエディット操作機能は、たとえ“ボタンオン”状
態にあっても、その作業を続行する)にセットされてい
るときには、該ドキュメントに埋め込まれたボタンのエ
ディット操作およびサーチ操作のために用いることがで
きる。これに対して、能動的なエディタ11の入力方向
転換スイッチが“ボタンオン”状態にセットされている
ときには、ユーザによってトリガされる任意のボタンの
ボタン属性を規定するキャラクタストリングが集中型の
埋め込みボタンカーネル12に対して渡されて分析さ
れ、これにより、ボタンクラス13内のボタンハンドラ
の一つが、該当のボタンが実行を意図されている機能を
果たすことが必要とされているアプリケーションプログ
ラム14に対して渡される。
【0017】上述されたアーキテクチュアの結果とし
て、いずれのドキュメントエディタでもストレートにプ
ログラミングされて、内部にロードされたドキュメント
の要素をボタンとして扱うようにされる。更に、ボタン
が埋め込まれているドキュメントまたはドキュメント要
素のタイプに拘らず、任意の与えられたクラスにおける
全てのボタンは矛盾のない態様でのふるまいをする。こ
の理由は、それらのふるまいがソフトウエアの共通本体
によって支配されていることにある。
【0018】C.ボタンで実施される機能 この点において次のことが理解される。即ち、この発明
によって提供されるボタン属性のアーキテクチュアによ
れば、ユーザが電子的ドキュメントエディタを用いるこ
とが可能にされ、ドキュメントの要素をカーソルで指定
することにより、そして、これに次いで適当な入力デバ
イス(マウス上のボタン、ペンのチップ上のコンタクト
デテクタ、または、キーボード上のキーのようなもの)
を起動することによって予め選択されたアプリケーショ
ンルーチンをユーザが起動できるように、能動的なボタ
ンの態様が電子的ドキュメントの要素と関連される。こ
の発明の代表的な実施の例示をするために、比較的スト
レートになされるファイルオープン操作のタスクに適用
されているものとして、詳細な紹介例が以下に開示され
る。この例で示されることは、正常なドキュメント要素
としてまだエディット操作され、サーチされることが可
能なボタンに対して、テキストキャラクタの任意のスト
リングをユーザが向けていくやり方である。ただし、紹
介例に入っていくのに先だって次のことが注意される。
即ち、ここで開示されるシステムにおいては種々の異な
るタイプのボタンを支持することが可能である。なお、
ここでのボタンに含まれているものは、トリガされたと
きにアプリケーション機能を実行する“ポップアップボ
タン”、トリガされたときにある値の記憶や変更をする
“マルチ状態ボタン”と呼ばれるボタン、および、“オ
ン”または“オフ”のいずれかにあって、任意の与えら
れた時点においてそれらのグループの中のある1個のボ
タンだけが“オン”にされる、“ラジオボタン”と呼ば
れるボタンである。その完全を期するために、後続の説
明文においては、それら3タイプのボタンおよびそれら
の特性や使用の例示がなされる。
【0019】1.導入的な例示:ファイルをオープンす
るボタン この例示についての目的のために、UNIXオペレーテ
ィングシステムのユーザが所望することは、該ユーザが
日報的に注記をしている“〜/writings/di
ary”なる名称のファイルのエディット操作が極めて
容易にされることであると仮定される。更に仮定される
ことは、このユーザは、書き込みがなされるときにはい
つでも、自己のコンピュータのディスプレイスクリーン
上に表示される、“AlwaysOpen”なるファイ
ルを有していることであり、これによって、該ユーザは
該当のファイルに対して、テキストストリング“〜/w
ritings/diary”を付加することになる。
この点において、該ファイル“AlwaysOpen”
は代表的には図2Aのようにみえる。これに次いで、マ
ウスのような適当なカーソルコントローラを用いること
により、ユーザはストリング“〜/writings/
diary”を選択し、そして、自己のウインドウシス
テムにおけるツールのセットから利用可能なボタンを起
動して、選択されたテキストストリングの周辺のボック
ス20を取り出す。そして、このボックスを、ファイル
“〜/writings/diary”上のテキストエ
ディタウインドウを始動させるコマンドを含んでいるテ
キストストリングと関連させる。ここで、“Alway
sOpen”は図2Bのようにみえる。その後で、生成
された新規なボタンについての厳密な試験をするため
に、ユーザはボックスで囲まれた“〜/writing
s/diary”のテキストストリングの選択をする。
これの選択は、スクリーンカーソルの位置決めをするマ
ウス(21で示されている中心でのブラックドットを有
するブラックサークルは、マウスでコントロールされる
カーソルを表している)を用いるようなことによってな
される。次にユーザはマウス上の物理的なボタンの一つ
を押して、ファイル“〜/writings/diar
y”を含んでいる新規なテキストエディタウインドウの
オープン操作をさせる。
【0020】ここで想起されるように、テキストストリ
ング“〜/writings/diary”がボタンと
して作用するのは、“AlwaysOpen”ファイル
を管理しているテキストエディタが“ボタンオンモー
ド”にある間(即ち、その方向転換スイッチが“ボタン
オン”状態にある間)だけということである。この結果
として、ユーザがボタンモードをオフしたときには、該
当するエディタの標準的なテキストのエディット操作お
よびサーチ操作の特徴を用いて、“AlwaysOpe
n”ファイルのテキストのエディット操作およびサーチ
操作をすることが可能にされる。例えば、日報(dia
ry)のファイル名を入力する際にエラーが生じたとす
ると、誤りのあるファイル名上にボタンが生成された後
であっても、ユーザは正常なエディット操作を用いるこ
とができて、該当のファイルが“AlwaysOpe
n”ファイル内でリストにされている名称を訂正するよ
うにされる。
【0021】2.ボタンタイプ この説明区分においては、この発明によって支持される
更に基本的なタイプの、3種のボタンについて説明され
る。即ち、ポップアップボタン、マルチ状態ボタン、お
よび、ラジオボタンについての説明であって、異なる種
類のドキュメントにおいてそれらのボタンが使用される
やり方の例示が含まれている。その他のボタンタイプの
ものを付加できるのは勿論であるから、ここで説明され
るタイプのものは代表例として意図されるだけのもので
ある。
【0022】a.ポップアップボタン ポップアップボタンに生成されたドキュメントオブジェ
クト上を、ユーザがマウスボタン等で押えると、カーソ
ル上に集中したそのエントリの一つとともに、ポップア
ップメニューが現れてくる。有利になされることは、カ
ーソル上に集中しているメニューエントリは、押されて
いるマウスボタンに依存するものであり、また、例え
ば、これも押されているCTRLおよび/またはSHI
FTキーボードキーのいずれか一方または双方に依存す
るものである。これに加えて、ユーザがマウスボタンを
早くクリックしたときには、ポップアップメニューのデ
ィスプレイが抑制されて、CTRL,SHIFT,およ
びユーザが用いているマウスボタンの組み合せによって
決定されるような、ユーザのメニュー選択の適用を直接
的に告知するようにされる。このポップアップメニュー
の働きについては、能動的なドキュメントに対するその
使用ではないけれども、先に説明されている。K.ピア
(K. Pier) らの“水落し口への導入:会話式作図ツール
(An Introduction to Gargoyle: An Interactive Illu
stration Tool)”ドキュメント操作と印刷術 (Document
Manipulation and Typography) 、'88 EP会報、ケン
ブリッジ大学出版部、1988年、 223〜238 ページ、が参
照される。ゼロックスPARCテクニカルEDL−89
−1としても利用可能なものである。
【0023】図3Aに例示された能動的なドキュメント
に含まれている4個のポップアップボタンの各々は、ボ
ックスで囲まれて示されている。各ボタンによって、1
個または複数個のテキストエディタマクロが実行され
る。各ボタンに続いているものは、その機能についての
記述である。図3Bにおいては、テキストストリング
“Alphabet”の上でユーザがマウスを押し下げ
ており、これによりポップアップメニューが現れて、い
ずれかの他のドキュメント(図示されない)において現
に選択されているテキストストリングのアルファベット
を変更することを、ユーザに対して許容するようにされ
ている。メニュー上で重ね合わされているピクトリアル
プロンプト25により、3個のマウスボタンのいずれが
将来のボタンプレスに対するアクセル体として使用でき
るかの指示がなされている。更に、方形26によってデ
ィスプレイされるものは、現に選択されているメニュー
エントリを記述するフィードバックであり、また、図3
Bにおける白抜きワード“Latin”上で一部可視の
矢印27はカーソル(このカーソルは、ポップアップメ
ニューが能動的であるときに矢印の形状をなすものとさ
れる)である。
【0024】図4Aにおける各ラインセグメントはポッ
プアップボタンであって、そのダッシュパターンまたは
ライン幅を、選択されたグラフィックオブジェクトに転
換するものである。ここで、これらのボタンは、図4B
に示されているマルチセグメントの形状のダッシュパタ
ーンに変更するために用いられている。前述されたGa
rgoyleエディタのような既知のグラフィックスエ
ディタは、これらのラインのようにエリアの殆どないボ
タンの選択を可能にするために、 "即引き”重力 ("sna
p-dragging"gravity) が用いられている。これについて
は、E.ビヤ (E. Bier)らの“即引き”コンピュータグ
ラフィック(Computer Graphics), Vol.20, 1986年 8月,
233 〜240 ページが参照される。
【0025】b.マルチ状態ボタン マルチ状態ボタンは、マウスクリックのようなユーザの
入力するコマンドに応答して、このクラスの各ボタンに
存在する区別された変数、要求されたValueの内容
を修正するようにされる。このValue変数のサイク
ルは、ユーザによって規定されるストリングのセットを
通してなされる。例えば、ストリングが“オン”および
“オフ”であるときには、ボタンは、トリガされたとき
に、“オン”と“オフ”との間でスイッチされる。スト
リングが“アップル”、“バナナ”および“グレープフ
ルーツ”であるときには、ボタンはそれらの名称を通し
てサイクルされる。
【0026】ユーザ/カスタムインタフェース設計者
は、各状態がどのように表示されるべきかを決定するこ
とができる。図5A−図5Cに示される幾つかのボタン
の各々は、オンおよびオフの2個の状態を有している。
これらのボタンの現在の状態は、フォントを変更する
(図5A)ことにより、テキストと背景とのビデオコン
トラストを反転させる(図5B)ことにより、または、
ボタンのテキスト内容を変更する(図5C)ことにより
指示される。実際に、このような強調を達成させるため
に、任意の適当なドキュメントエディタ操作を使用でき
ることは明白であろう。
【0027】マルチ状態ボタンは、それらがアプリケー
ションをコントロールするために用いられるときには、
最も有用なものである。より詳細に後述されるように、
ボタンの名称、および、該ボタンが埋め込みボタンシス
テムに対して配置されているときの仮想メモリアドレス
を与えることにより、アプリケーションはボタンの値を
読み取ることができる。そして、与えられた名称のボタ
ンが与えられたドキュメント内で見出されたときには、
該システムはその値をアプリケーションに戻すことにな
る。ボタンがドキュメント内のどこに配置されている
か、または、該ボタンのクラスが何であるかさえも、ア
プリケーションは知る必要がない。ある与えられた名称
のボタンが状態を変更しようとしているときをアプリケ
ーションが識別することができ、これによって、該アプ
リケーションによるこのような状態変更のコントロール
が可能になる。従って、能動的なドキュメントにおける
トリガボタンによって開始されるアクションは、アプリ
ケーションプログラムの他のアクションによって同期を
とることができる。
【0028】c.ラジオボタン ラジオボタンはボタングループのメンバーであって、一
度に“オン”になるのはその中の1個だけである。かく
して、このようなボタンをトリガすることにより、代表
的には、当該ボタンを“オン”にする間に、そのグルー
プにおける他の全てのボタンを“オフ”にする。マルチ
状態ボタンと同様に、ユーザ/カスタムインタフェース
デザイナは、このようなボタンがその状態を反映する外
見を変更するやり方を決定することができる。この例に
おいては、ラジオボタンはドキュメントの存在箇所より
もそれらのグループの名称を参照するようにされてお
り、このために、それらは互いに近接して配置される必
要がない。
【0029】図6における各々の矢印はラジオボタンで
ある。ここで示されるように、ある1個の矢印をクリッ
クしてそれをブラックにすると、他の全ての矢印はホワ
イトにされる。
【0030】D.ボタン属性アーキテクチュアの詳細な
レビュー この発明のボタン属性アーキテクチュアによれば、通常
のテキストドキュメント要素およびグラフィックスドキ
ュメント要素がボタンとして作用できるように、ドキュ
メントエディタの修正および構築をするやり方が提供さ
れる。この文節においては、アーキテクチュアおよびそ
の新規な局面が詳細に説明され、また、このアーキテク
チュアが現在のエディタ技術についていかなる利点があ
るかが、より十分に指摘される。
【0031】ここで認められるように、ボタン属性アー
キテクチュアは5個の主要部を有している: 1.ボタン属性。“ボタン属性”と呼ばれるキャラクタ
ストリングは、ボタンの態様をもたせるような、“E”
と呼ばれる任意のドキュメント要素にリンクされる。こ
のキャラクタストリングは、所望されるボタンの態様の
タイプを記述するものである。 2.エディタ特性。この発明を実施するために用いられ
るべきいずれのドキュメントエディタであっても、ボタ
ン属性を有するそれらのドキュメント要素を見出して列
挙することが可能でなければならず、また、当該属性を
有するドキュメント要素上またはその近傍で生じる、あ
る所定のユーザの入力によるアクション(例えば、マウ
スアクション)の(埋め込みボタンカーネルに対する)
行程を変更できるものでなければならない。 3.埋め込みボタンカーネル。埋め込みボタンカーネル
で分析されるボタン属性は、ボタンを含んでいるドキュ
メントを管理するエディタ、該ボタン属性において特定
されるボタンクラスに適当なボタンハンドラ、および、
ある与えられたボタン属性によって特定されるアクショ
ンを実行するために要求される、“コマンドハンドラ
と呼ばれるアプリケーションパッケージの間での通信を
達成させるものである。ここで付与される通信は、ボタ
ンアクションと関連する任意のフィードバックを実行す
るためにボタンが埋め込まれている、エディタを求める
ボタンハンドラをも可能にするものである。更に、ボタ
ンを含んでいるドキュメントがアプリケーションコント
ロールパネルとして用いられるときには、カーネルがこ
れに応答して、特定のドキュメントを特定のアプリケー
ションウインドウにリンクさせることを要求し、また、
ボタンに関連する入力アクションを適切なウインドウに
向けるようにする。 4.ボタンクラス。ボタンクラスはボタンハンドラのセ
ットであって、埋め込まれたボタンの異なるクラスにつ
いての特定の機能を規定するものである。新規なクラス
を登録するカーネル内のルーチンを呼ぶことにより、新
規なボタンクラスをランタイムでのシステムに付加する
ことができる。かくして、新規なボタンクラスに対する
ボタンハンドラソフトウエアは、システムの他の部分を
再配置することなしにデバッグすることができる。 5.コマンドハンドラ。コマンドハンドラは、ユーザが
それらを参照する埋め込みボタンの使用を開始するのに
先立つある所定の時点において(例えば、ユーザがログ
インをする時点において、または、埋め込みボタンソフ
トウエアがロードされる時点において)、埋め込みボタ
ンカーネルとともに自身を登録するためのアプリケーシ
ョンである。埋め込みボタンがトリガされたときには、
ボタンが属しており、該当のボタンにおいて記述されて
いるアクションを実行するクラスのために、適切なコマ
ンドハンドラがボタンハンドラによって呼ばれる。同様
なボタンクラスに、カーネルとともに登録されることに
よって新規なコマンドハンドラが動的に付加され、これ
により、システムの残りを再ロードすることなく、それ
らを容易にデバッグするようにされる。
【0032】更に、起動されるときにボタンがその外見
を変更しようとするのであれば、第6のアーキテクチュ
ア上の特徴が必要とされる。 6.エディタ入力言語。Eが埋め込まれるドキュメント
エディタは、該ドキュメント上で実行できるエディット
操作アクションを記述する(テキストストリングからな
る)入力言語を付与せねばならない。このようなエディ
タで解読可能な入力ストリングをボタン属性に含ませる
ことにより、ボタンがトリガされたときにボタン(また
は任意の他のドキュメント要素)の外見について所望の
変化をもたらすようなエディタアクションを、ボタン自
体の中に記述することができる。
【0033】これら6個のアーキテクチュア上の特徴に
より、次のような幾つかのボタン機能が支持される。 a.ユーザが埋め込みボタンをトリガしたときに応答す
ること、 b.アプリケーションプログラムの要求により1個また
は複数個のボタンの値の更新または点検をすること、お
よび c.アプリケーションウインドウ(ドキュメントにおけ
るボタンのサブセットに対するコマンドハンドラとして
作用するもの)にドキュメントをリンクして、ボタンア
クションを該リンクしたウインドウに転送すること。
【0034】図1で例示されている通信経路は、埋め込
みボタンアーキテクチュアによって設けられるものであ
る。ここで示されているように、カーネル12はスイッ
チボードとして作用して、他の構成部との間でのメッセ
ージの転送をする。このアーキテクチュアにより、新規
エディタ11、ボタンクラス13またはコマンドハンド
ラ14が、動的に容易に付加される。それらはカーネル
に関する名称およびルーチンの登録をしてあり、登録さ
れた名称からくる任意のメッセージについて、その後で
の転送をするようにされる。
【0035】このアーキテクチュアの6個の部分の各々
−−ボタン属性、エディタ特性、埋め込みボタンカーネ
ル、ボタンクラス、コマンドハンドラおよびエディタ入
力言語−−については、更に詳細に後述される。その説
明の過程においては、該アーキテクチュアによる3個の
主要な機能を遂行するやり方が示される。即ち、ユーザ
の入力コマンド(例えば、ボタンクリック)に対する応
答、値の更新および点検、および、アプリケーションに
対するドキュメントのリンクという3個の主要な機能を
遂行するやり方が示されることになる。
【0036】1.ボタン属性 先に指摘されたように、この発明を支持する全てのエデ
ィタは、“ボタン属性”と呼ばれるストリングに値が付
与される属性を、任意の与えられたドキュメント要素
(例えば、テキストキャラクタ、パラグラフ、グラフィ
ックス形状等)と関連させることが可能でなければなら
ない。ドキュメントが磁気ディスクまたは他の持続性が
あるメディアに蓄積されるときには、このストリングが
該ドキュメントとともに蓄積されねばならない。その動
作においては、ドキュメントがメモリに読み込まれると
きに、このボタン属性ストリングが埋め込みボタンカー
ネルにより読み取られて、急速アクセスのためのデータ
構造内に転送される。ドキュメントエディタが、このよ
うなボタン属性のデータ構造をドキュメント要素(ボタ
ン属性ストリングに代えて)と関連させることができる
ときには、ボタンがトリガされる度に埋め込みボタンカ
ーネルによるストリングの再読み取りを必要としないこ
とから、その実行能力が改善される。
【0037】ボタンアーキテクチュアのテキストストリ
ングは、名称フィールドをテキストストリング値と結合
させる、“Poppy”と呼ばれる簡単な言語によって
書かれている。この言語はCUE Forms言語によ
って示唆されたものである。これについては、T.カッ
ツマレック (T. Kaczmarek),“CUE Forms表
現”サザンカリフォルニア大学の内部技術レポート (In
ternal Technical Report of University of Southern
California), 情報科学研究所 (Information Science
s Laboratory) ,1984年 7月25日, が参照される。ボタ
ンの態様を変更するために、ユーザは手動でPoppy
ストリングのエディット操作をすることができるが、こ
のボタンの態様を変更するための他のやり方がある。例
えば、新規のボタンを生成させるためにユーザができる
ことは、ボタンになるべきドキュメント要素の選択をし
て、“ボタナイザ(buttonizer)”と呼ばれ
る実在のボタンを起動させることであるが、その目的が
新規のボタンを生成させることである。以下に認められ
るように、代表的なボタナイザボタンについて、より十
分に後述される。
【0038】ボタン属性の一例として、代表的なポップ
アップボタンのPoppy言語による記述によって、こ
こに、選択されたオブジェクトのカラーの変更がなされ
る。このポップアップボタンはここに示されている。 Poppy1 Class:PopUpButton CommandHandler:Colorizer Menu:( ((SetColor Red) "Red" "Makes selected objects red") ((SetColor Green) "Green" "Makes selected objects green") ((SetColor Blue) "Blue" "Makes selected objects blue") ) Feedback: ( Enter: <SetCursor bullseye> Down: (BeginButton MakeBold EndButton) Exit, EndActivity: (BeginButton MakeItalic EndButton) )
【0039】先の例において、第1のワード“Popp
y1”の意味することは、次のプログラムはPoppy
言語によるバージョン1のものということである。ここ
で認められるように、これには次の4個のボタンデータ
フィールドが付随している。即ち、Class,Com
mandHandler,MenuおよびFeedba
ckなるボタンデータフィールドが付随している。
【0040】ボタンのクラスで決定されることは、コー
ドのいずれのボディ(即ち、ボタンハンドラ)がボタン
に対するユーザの入力を扱うのかということであるか
ら、全てのボタンはClassフィールドを持たねばな
らない。ここでの場合におけるClass は“Pop
UpButton”である。
【0041】CommandHandlerフィールド
で同定されるコマンドハンドラアプリケーション14
(図1)は、該当のアプリケーションがカーネル12で
登録されているしたでの名称を用いることによって、こ
のボタンのポップメニューにおいて選択されたコマンド
を受け入れるものである。上記のボタンに対するコマン
ドハンドラは“Colorizer”アプリケーション
であって、選択されたオブジェクトのカラーを、ボタン
のメニューにおける名称のカラーに変更するものであ
る。
【0042】上記の例におけるMenuフィールドに
は、ポップアップボタンのクラスハンドラで理解される
LISPと同様なシンタクスによってポップアップメニ
ューが記述されている。このメニューは、“Red”、
“Green”および“Blue”なるラベルが付され
た3個のエントリを備えている。これらのエントリレベ
ルに追従するテキストストリングは、カーソルが該当の
エントリの上にあるときにディスプレイされるドキュメ
ンテーションストリングである。各エントリ名の前の括
弧付きの表現は、アプリケーションに対して伝送される
テキストストリングを表している。
【0043】Feedbackフィールドのサブフィー
ルドにおいては、種々のボタンイベントが生じたときに
とられるべきアクションが決定される。“Enter”
サブフィールドにおいては、このボタンに入ったとき
に、カーソルをしてブルザイの形状に変化させる。“S
etCursor bullseye”の周囲の角括弧
は、ボタンを管理するエディタに対してそれを渡すより
も、Poppy に対してこの表現自体の解読をするよ
うに指示している。“Down”サブフィールドに含ま
れているものは、前述されたTiogaテキストエディ
タの入力言語における表現のストリングであって、該エ
ディタをして、このボタンのテキストに対してボールド
体フォントを適用させるものである。同様にして、“E
xit,End Activity”フィールドにおい
ては、ボタンのアプリケーションでその演算を仕上げた
とき、または、クリックの完了に先だってボタンのカー
ソルアウトを移動させることによって、ユーザがその操
作を中止したときには、ボタンをプレーン体フォントに
回復させる。
【0044】Poppy言語においては、各フィールド
の値は、ホワイトスペースによって限定される単一の英
数字ストリング、または、引用マーク“”,丸括
弧(),角括弧<>のような標準的な境界符号間のスト
リング(ホワイトスペースを含むことができる)のいず
れかである。エディタがボタンを含むファイルをディス
クから読み取ったときには、埋め込みボタンカーネルを
して、各ボタンのボタン属性を分析させる。カーネルで
は、ボタン属性ストリングを分析して、(フィールド
名)/(フィールド値)対のセットにする。ここで、各
フィールド値は未解読のストリングであって、ボタンク
ラスに対する適当なボタンハンドラにそれらの対を渡す
ようにされる。そして、これにより、クラスを特定する
ボタンハンドラをして、ボタンを表すランタイムのデー
タ構造を構築させる。
【0045】マルチ状態ボタンおよびラジオボタンは、
2個の付加的なデータフィールド−Name(名称)お
よびVariables(変数)−を持っており、これ
らは例えばPoppyで表現されている。 Name:Fruit Variables: (Value:{orange, apple, banan
a } = orange)
【0046】上記の例においては、Valueはora
nge,apple,またはbananaなる値を有す
る変数であって、その現在の値は“orange”であ
る。その読み取りまたは書き込みの目的のために、ボタ
ン名“Fruit”を用いて、アプリケーションではこ
の値を参照する。複数のボタンが同一の名称を有してい
るときには、このボタン名の値はあいまいになる。従っ
て、この問題の代表的な解決は次のようにしてなされ
る。即ち、同一の名称を有する全てのボタンに対して同
一の値を強制的に持たせておき、それらの中のどの1個
の値が変更しても、他の全てを変更することによって解
決される。しかしながら、代替的なこととしては、階層
的な構造にされたドキュメントのある特定のサブパート
において、ある与えられた変数名についての値を調べる
ことができる。例えば、ボタンAが変数名Nなる値を参
照したとすると、システムにおいては、まず第1にAが
生じたパラグラフにおける変数Nの値を調べること、こ
れに次いでAが生じたサブセクションにおいて調べるこ
と、これに続けてそのセクションにおいて調べること、
等々のことがなされる。このようなやり方において、名
称のあいまいさをなくすために、ドキュメントの階層的
な構造を用いることができる。
【0047】2.エディタ特性 エディタ11(図1)は、埋め込みボタン属性に関与す
るために、幾つかの簡単なやり方で修正されることが必
要である。特に、それらは次のようなルーチンを持つべ
きである。 a.ボタン属性を有するドキュメントにおいて全ての要
素を列挙すること。 b.ある与えられたドキュメント要素のボタン属性(お
よびその他の属性)を記述すること。 c.エディタで特定されるコマンド言語によって付与さ
れたエディット操作コマンドに従ってドキュメントのエ
ディット操作をすること(オプション)。 d.ある与えられたカーソル位置が、ある与えられたド
キュメント要素の内外いずれの側にあるかを報告するこ
と。 これに加えて、改善された実行能力のためには、エディ
タは次のようなルーチンを付加的に具体化することがで
きる。 e.あるドキュメント要素についての任意のデータ構造
に対してポインタを関連させること。 また、ボタンの中には次のようなことをエディタに求め
るものもある。 f.ボタンの内容をテキストストリングとして記述する
こと。 この最後に述べた特徴は、ボタンがテキストドキュメン
トに埋め込まれているときには、最も意味のあるもので
ある。
【0048】最後に、“ボタンモード”にあるときに
は、任意の与えられた時点においてカーソルの下にある
ドキュメント要素がボタン属性を有しているか否かの決
定がなされるまで、エディタは選択アクションの処理
(例えば、マウスによりまたはカーソルキーを用いるこ
とにより指示すること)を遅らせることができねばなら
ない。このような属性が見出されたときには、エディタ
はエディット操作アクションを行わない。これに代え
て、マウスボタンが押されており、ユーザが埋め込みボ
タンを指示しているという情報を、埋め込みボタンカー
ネルに対して渡すようにされる。これに対して、このよ
うな属性が存在しないときにエディタで実行されること
は、マウスボタンが与えられたドキュメント要素上で押
されているときに、正常に実行される任意のエディット
操作アクションである。
【0049】好都合なことに、これらの特徴は一般的に
はその実施が容易なものである。マウスに基づく全ての
ドキュメントエディタには、ユーザが指示するドキュメ
ント要素を決定するためのコードが既に含まれている。
更に、大方のこのようなエディタが有しているコード
は、各入力イベントを扱うのに適当なルーチンに対して
伝えるためのものであり、また、全てのWYSIWYG
(What You See Is WhatYou Get) エディタが有してい
るコードは、ドキュメント要素の属性をアクセスするた
めのものである。従って、ボタン属性が存在するか否か
を決定するための、適当なときに埋め込みボタンカーネ
ルに対して伝えるための、これらの属性を修正するため
の、そして、特定の属性を有するドキュメント要素をサ
ーチするためのコードを含ませるように、それらは容易
に拡張される。
【0050】3.埋め込みボタンカーネル 埋め込みボタンカーネルにより、次の2タイプのルーチ
ンが提供される。 (1) 新規なコマンドハンドラ、ボタンクラスおよび
アプリケーションウインドウがシステムに知覚されるこ
とを許容するための登録手順。 (2) ユーザおよびソフトウエアルーチンによるボタ
ンの使用に寄与するアクションルーチン。 それらのタイプの各々の基礎的なルーチンについては、
このセクションにおいて記述される。
【0051】a.登録手順 メッセージハンドラは、カーネルルーチンを呼ぶことに
より、埋め込みボタンカーネルをもって好適に自己登録
される。 RegisterMessageHandler: PROCEDURE [name: String, n
otifyProc:RegisteredNotify:Proc]; ここに、“String”はASCIIのテキストストリング
であり、また、“RegisteredNotifyProc”は手順のタイ
プである。 RegisteredNotifyProc: TYPE = PROCEDURE [action: St
ring, button Button] RETURNS[success: BOOLEAN]
【0052】この“RegisteredNotifyProc”における
“button”で記述していることは、アクションを
トリガするために押された埋め込みボタン、および、ブ
ール代数値(BOOLEAN)が真/偽の値であること
である。この結果として、登録名を有するコマンドハン
ドラに対してアクションが伝えられるべきことを要求す
るボタン属性をカーネルが読み取ったときには、該カー
ネルは関連のRegisteredNotifyProcを呼び、これによっ
て、該当のアクションリクエストを、パラメータとして
コマンドハンドラに渡す。
【0053】ボタンクラスは、カーネルルーチンを呼ぶ
ことにより、埋め込みボタンカーネルをもって自己登録
される。 Register ButtonClass: PROCEDURE [button Class Nam
e: String,buttonClass:ButtonClass]; ここに、ButtonClassによって、次のような
手順を実行するためのルーチンが提供される。 (1) 例示する。そのボタン属性から、ある特定され
たクラスの与えられたボタンに対するランタイムのデー
タ構造を生成させる。 (2) ファイルアウトする。ボタンのホストドキュメ
ントがディスクに書き込まれたときには、そのランタイ
ムのデータ構造から、該与えられたボタンに対して修正
されたボタン属性(例えば、生成されてからのその値を
変更したときのような)を生成させる。 (3) トリガ操作を扱う。与えられたボタンをトリガ
操作するアクションに応答する。このルーチンで決定さ
れることは、フィードバックが実行されるべき事項、お
よび、コマンドハンドラが告知されるべき時点である。 (4) 値を取得する。カーネルからの質問があったと
きに、与えられたボタンの現在の値を報告する。 (5) 値をセットする。ある与えられたボタンの値を
変更するための要求に応答する。例えば、それらのラン
タイムのデータ構造を変更することにより、および、適
当な人的に可視のフィードバックを生成させることによ
り、ボタンにおける応答が可能である。 (6) 態様を履行しない。そのための特定のコマンド
ハンドラがないときには、該与えられたボタンが呈示す
べき態様の実行をする。例えば、コマンドハンドラが特
定されていないときには、状態を有するボタンが次に続
く状態へと変化することが多い。
【0054】ある特定のドキュメントをある特定のアプ
リケーションウインドウにリンクさせることがアプリケ
ーションで所望されるときには、次のような呼びがなさ
れる。 LinkDocToApplication: PROCEDURE [doc: ActiveDoc, h
andlerName:String, window: Window, applicationDat
a: POINTER, notifyProc:NotifyProc]; ここに、“ActiveDoc”で表されることは、ボ
タンを含んでいるリンクされるべきドキュメントの仮想
メモリアドレスである。上記のルーチンが一旦呼ばれる
と、カーネルはこれに続けて“ActiveDoc”に
おける任意のボタンに対するトリガ操作をすることが可
能にされる。この“ActiveDoc”のコマンドハ
ンドラフィールドには同じ“handlerName
が含まれており、“notifyProc”を呼ぶこと
により、そして、アーギュメントである“windo
”および“applicationData”にそれ
を渡して、ボタンのアクションを実行するようにされ
る。当該イベントにおいて、“window”に記述さ
れている特定アプリケーションウインドウの内容は、与
えられたボタンをトリガすることによって影響されるべ
きものであり、また、“applicationDat
a”は、意図されるボタンアクションを実行するために
アプリケーションで要求される、任意の他の情報に対す
るポインタである。この目的のために、“notify
Proc”は次のようなタイプの手順にされている。 NotifyProc: TYPE = PROCEDURE [button: Button, acti
on: String,window: Window, applicationData: POINTE
R] RETURNS [success:BOOLEAN];
【0055】ボタンクラスによって用いられるこの“n
otifyProc”のサクセスリターン値は、(ボタ
ンアクションが完了したことの、ユーザに可視のフィー
ドバックを提供するときに)要求されたアクションの成
否のいかんをユーザに指示するかどうかの決定をするた
めのものである。
【0056】b.アクションルーチン ボタンを含んでいるドキュメントを管理するエディタに
よって、ドキュメントをコントロールパネルとして用い
るアプリケーションプログラムによって、そして、この
ようなエディタおよびアプリケーションプログラムによ
ってなされるカーネルを支援するためのボタンクラスに
よって、カーネルのアクションルーチンが呼ばれる。特
に、カーネルによって提供される3個のルーチン(即
ち、HandlePress, DataStructureFromAttribute, Attri
buteFromDataStructure)は、ボタンを含んでいるドキュ
メントのエディタによって呼ばれるものである。更に、
カーネルによって提供される2個の基礎的なルーチン
(即ち、GetValue, SetValue)は、アプリケーションに
よって呼ばれるものである。最後に、カーネルによって
提供される6個の基礎的なルーチン(即ち、PassEventT
oCommandHandler, GetField, SetField, GetAttribute,
SetAttribute, RegisterNameValuePair)は、ボタンク
ラスによって呼ばれるものである。これらのルーチンお
よびその機能については、このセクションにおいて規定
されている。
【0057】1.エディタによって呼ばれるアクション
ルーチン HandlePress: PROCEDURE [press: InputAction, butto
n: Button, doc:ActiveDoc]; なる更に基礎的なルーチンは、埋め込みボタンアーキテ
クチュアにおけるものの中の一つである。(マウスボタ
ンをクリックすること、キーボードキーを押すこと、ま
たは、所定の他の手段により)ユーザがボタン上でカー
ソルを動かして、該ボタンをトリガさせたことが発見さ
れたときには、このルーチンがエディタによって呼ばれ
る。“press”なるアーギュメントは、ボタンをト
リガするためにユーザによって用いられる方法を表すも
のである。ある種のボタン(例えば、ポップアップボタ
ン)は、それをトリガするために押される1個または複
数個のキーに依存して、異なる態様を呈示するものであ
り、そのための情報が“press”なるアーギュメン
トに含まれている。“button”なるアーギュメン
トはいずれのボタンがトリガされるかを記述するもので
あり、また、“doc”なるアーギュメントはこのボタ
ンが配置されるドキュメントを記述するものである。
“HandleClick”が呼ばれると、ボタン属性
がカーネルで分析されて、どのボタンクラスがこのクリ
ックを扱うべきかが発見され、そして、更に続く処理の
ために該当のボタンクラスに対してアクションが渡され
る。
【0058】エディタが呼ぶことのできる他のルーチン
は次の通りである。 DataStructureFromAttribute: PROCEDURE [attribute:
String,button: Button, doc: ActiveDoc] RETURNS [da
taStructure:POINTER]; HandlePressルーチンを成功させるために
は、カーネルはボタン属性を分析せねばならない。ボタ
ンがトリガされる度にこの分析をすることができるけれ
ども、これは実行能力に悪い影響をおよぼすことがあ
る。代替的に、ドキュメントがロードされた時点におい
て、各ボタンに対して一度だけ、エディタは DataStruc
tureFromAttribute ルーチンを呼ぶことができる。この
ルーチンによれば、ボタン属性が分析され、ボタンを表
すためのデータ構造が構築され、そして、このデータ構
造がエディタに戻される。そして、ボタン属性のランタ
イム値としてのボタン属性ストリングに代るデータ構造
を、エディタが蓄積することができる。注:特別の強化
策として、始めてボタンが押されたときに分析をするこ
とが可能であり、このために、ドキュメントが全てのボ
タンに対してロードされる時点においてコストを支払う
必要がなくなる。このスキームによれば、使用されるボ
タンに対してのみ、コストが支払われることになる。
【0059】ドキュメントがディスクに書き込まれねば
ならないときには、次の AttributeFromDataStructure
ルーチンを用いて、ボタン属性のデータ構造をストリン
グに戻すことができる。 AttributeFromDataStructure: PROCEDURE [dataStructu
re:POINTER] RETURNS [attribute: String]; ここで認められるように、このルーチンは上述された D
ataStructureFromAttribute ルーチンによって生成され
た形式のデータ構造をとるものであって、それを人によ
る読み取りが可能なPoppy言語のテキストストリン
グに戻すようにされる。ドキュメントがディスクに書き
込まれているときに、エディタがこのルーチンに呼びを
出して、それらがテキストストリングとしてのボタン属
性を外部に表すことができるようにされる。ある特定の
ボタンに対して注意されることは、このルーチンによっ
て戻されるテキストストリングは、アーギュメントとし
ての DataStructureFromAttribute に渡されるテキスト
ストリングとは等しくない可能性があるということであ
る。例えば、ボタンがマルチ状態ボタンであるときに
は、その値がTRUEからFALSEへと変化できるよ
うにされて、この新規な状態が修正されたボタン属性の
ストリングに反映されることになる。
【0060】2.アプリケーションによって呼ばれるア
クションルーチン GetValue: PROCEDURE [name: String, doc: ActiveDoc]
RETURNS[value: String] なるルーチンは、そのボタン属性の“Name:”フィ
ールドにおける与えられたテキストストリング“nam
e”を有するドキュメント“doc”の、1個または複
数個のボタンに現れるときのValueなる名称の変数
の値を戻すものである。幾つかのボタンがこの名称をも
ってこのドキュメント内に存在するときには、このルー
チンによって、第1に遭遇したこのようなボタンの値が
戻される。その実行能力を改善するために、GetVa
lueルーチンにおいて、“name”がハッシュテー
ブル内の RegisterNameValuePair(下記を参照)によっ
て登録されているかどうかを認めるためのチェックがな
される。もしそうであるときには、関連の値が極めて迅
速に見出されて、それを戻すようにされる。そうでない
ときには、Section D.2.ルーチンにおいて
記述された EnumerateButtons ルーチンの助けをもっ
て、ドキュメント内の全てのボタンを通してその名称を
求めるサーチがなされ、該当の名称が見出されたときに
は値を戻すようにされる。このような名称のあるボタン
が見出されなかったときには、空きのストリングを戻す
ようにされる。
【0061】SetValue: PROCEDURE [name: String, val
ue: String, doc: ActiveDoc]; この手順においては、与えられた名称を有するドキュメ
ント“doc”内の全てのボタンにおける変数 Val
ueの値が変更される。RegisterNameValuePair(下記
を参照)に対するボタン名、値およびdoc(ドキュメ
ント)も渡されて、GetValueに対する将来の呼
びにより、正しい値を迅速に生成するようにされる。
【0062】3.ボタンクラスによって呼ばれるアクシ
ョンルーチン PassEventToCommandHandler: PROCEDURE [event: Strin
g, button:Button, application: String]; はボタンクラスによって呼ばれて、“event”と呼
ばれるテキストストリングを名称が付されたボタンのコ
マンドハンドラに渡す時点であることを、カーネルに対
して告知するようにされる。ボタンと、登録されたコマ
ンドハンドラおよびリンクしたドキュメント(上述の L
inkDocToWindow ルーチンを参照)についてのカーネル
における現在のテーブルとから、該当のコマンドハンド
ラに告知するために呼ぶ手順がカーネルにより決定され
て、該イベントを該当の手順に対して渡され、最終的に
は戻すようにされる。
【0063】GetField: PROCEDURE [fieldName: Strin
g, button: Button]RETURNS [field: String]; なるルーチンは、ある与えられたボタンについてのボタ
ン属性のある特定のフィールドの値を戻すためのもので
ある。例えば、GetField ["CommandHandler"が、上述さ
れたColorizerアプリケーションに対するマル
チ状態ボタンに適用されたときには、該当のストリング
“Colorizer”を戻すようにされる。
【0064】SetField: PROC [fieldName: String, fie
ld: String, button: Button]; なる手順は、ボタン属性の特定のフィールドに対して新
規な値を割り当てるためのものである。変更されたフィ
ールド上での後続のGetField操作によって、新
規な値を戻すようにされる。
【0065】GetAttribute: PROC [key: String, butto
n: Button] RETURNS [pointer:POINTER]; ボタン属性(キーを“ButtonAttribut
e”とすることで同定される)は、埋め込みボタンアー
キテクチュアに必須であるドキュメント要素の属性だけ
であるが、ある所定のボタンクラスにおいては、他の属
性の値を取得することが所望される。例えば、ここで説
明されるButtonizerボタンでは、第2の属性
(キーを“ButtonAttributeLiter
al”とすることで同定される)が用いられる。このG
etAttributeの手順においては、これらの属
性の全てがボタンクラスに対して有用にされる。このル
ーチンでは、任意のデータ構造に対してポインタが戻さ
れる。このために、ボタンクラスにおいては、このデー
タ構造がテキストストリングであるか、または、その利
用のためのある種の他のデータ構造であるかを知らねば
ならない。
【0066】SetAttribute: PROCEDURE [key: String,
pointer: POINTER, button:Button, edited: BOOLEAN]; によれば、“button”アーギュメントによって記
述されたドキュメント要素についての任意の属性の変更
が、ボタンクラスに対して許容される。
【0067】RegisterNameValuePair: PROC [name: Str
ing, value: String, doc:ActiveDoc]; なるルーチンは、“name”をキーとして用いて、ハ
ッシュテーブルにおける対(名称、値)を蓄積するため
のものである。ここで想起されるように、GetVal
ueルーチンではこのテーブルが用いられ、それらの名
称が付されたボタンの値が迅速に見出されて、それらの
名称および値をこのテーブルに蓄積するようにされる。
【0068】4.ボタンクラス セクションC.2において上述されたように、ボタンを
含んでいるドキュメントについてのユーザの観点から、
少なくとも3個の異なるボタンクラスが支持されるが、
これらのクラスで提供される3個の基礎的なビルディン
グブロックは、ドキュメントから作成されるインタフェ
ースのためのものである。また、セクションD.3.a
において記述されているように、ボタンクラスのセット
は、登録手順を呼ぶことにより(ランタイムにおいてさ
えも)拡張することができる。更に想起されることは、
これもセクションD.3.aにおいて記述されているよ
うに、各ボタンクラスが6個の手順によって規定され
る。これに加えて、ある与えられたボタンクラスにおけ
るボタンは、その活動性を支持するボタン属性内におい
て異なるフィールドを有している。このセクションに
は、上述された3個のボタンクラス全てについてのボタ
ン属性の例が含まれており、また、各クラスでのその6
個のルーチンの実施のやり方が説明されている。
【0069】a.ポップアップボタン (ユーザがそれらをトリガする態様に依存して)ポップ
アップボタンがトリガされたときには、それらによるポ
ップアップメニューのディスプレイが可能にされ、そし
て、ユーザが選択するメニューアイテムに基づくアクシ
ョンを実行するようにされる。例えば、図2Cにおける
ような、ボタン自体についてテキスト内で名称が付され
ているファイルをオープンする、ポップアップボタンに
対するボタン属性(このボタン属性は、このアクション
を意味のあるものにするためのテキストドキュメント要
素と関連していなければならない)は、次の通りであ
る。 Poppy1 Class: PopUpButton Menu: ( ((<Contact "Open" <ButtonText>>) "Open""Opens the file represented by this button") ) CommandHandler: CommandTool Feedback: ( (Mouse Moved <SetCursor bullseye>) )
【0070】PopUpButtonのクラスでは“M
enu”なるフィールドが必要とされる。Class,
CommandHandler,Feedbackなる
フィールドは、全てのボタンに対する埋め込みボタンカ
ーネルによって支持される。
【0071】ポップアップボタンのクラスに対する6個
の基礎的なルーチンは次のように実施される。 例示。このルーチンでは、Menuフィールドを読み取
って、ポップアップメニューのグラフィックな外見を表
すデータ構造を生成する。ファイルアウト。このボタン
属性は値を有していないから、その使用の間に変化を生
じることはない。このファイルアウトルーチンでは、オ
リジナルなボタン属性を返すだけである。 ボタンプレス。まず、埋め込みボタンカーネル12(図
1)は、押されているボタンとFeedbackフィー
ルドにおいて関連する、任意のフィードバックを実行す
るように要求される。次に、(ディスプレイを保証する
のに十分なだけ、ユーザがマウスボタンを押えていると
きには)ポップアップメニューがユーザのディスプレイ
スクリーン上で描かれ、これに次いで、ユーザによるメ
ニューの選択が許容される。ユーザがある選択をしたと
きには、この選択の評価がなされる。例えば、上記の例
において<Contact“Open”<Button
Text>>なる表現が評価されると、これにより、ボ
タンのテキストにおいて挙げられたファイル名が見出さ
れて、“Open”なるストリングがそれに対するもの
のようにされる。例えば、ボタンが“〜/writin
gs/diary”なるテキストストリングであったと
きには、その連続として、“Open〜/writin
gs/diary”なるストリングが生成されることに
なる。最後に、カーネル12はこのストリングをコマン
ドハンドラ(この例では“CommandTool”)
に渡す。次いで、コマンドハンドラ14はそのアクショ
ンを実行する(例えば、該当の名称が付されたファイル
をスクリーン上にディスプレイさせる)。最後に、カー
ネル12は、エディタに求めて、ボタンコマンドが終了
したことを示すために付与されるような任意のフィード
バックを実行させる。 値取得(Get Value) 。値がないために、この手順では何
もされない。 値セット(Set Value) 。値がないために、この手順では
何もされない。 不履行の態様(Default Behavior)。コマンドハンドラが
ないときには、ポップアップボタンはユーザによる読み
取りのためにそれらのコマンドをスクリーン上にディス
プレイさせるだけである。このクラスのボタンをデバッ
グするためには、これは有用なことである。
【0072】b.マルチ状態ボタン 図5Bに例示されているマルチ状態のテキストボタン
は、TRUEまたはFALSEなる値をもつことができ
る。その値がTRUEであるときには、そのテキストの
外見はブラック上のホワイト(白抜き文字のこと)であ
る。これに対して、FALSEであるときには、そのテ
キストの外見はホワイト上のブラックである。そのボタ
ン属性は次の通りである。 Poppy1 Class: MultiStateButton Name: GridOn Variables: (Value: BOOL = TRUE) UpClickMessage: (Toggle Grid) CommandHandler: Picture Region Feedbask: ( (Down (BeginButton ClearLooks LookItalic End Button)) ((Value TRUE) (BeginButton ClearLooks LooksWhiteOnBlack End Button)) ((Value FALSE) (BeginButton ClearLooks EndButton)) )
【0073】マルチ状態ボタンで必要とされることは、
“Variables”フィールドがそれらのボタン属
性に現れること、および、“Value”と呼ばれる変
数が規定されることである。これに加えて注意されるべ
きことは、上記の例において“UpClickMess
age”と呼ばれるフィールドには、ユーザがこのボタ
ン上でのクリック操作を終了したときにコマンドハンド
ラに対して伝送するメッセージが記述されているという
ことである。“Name”なるフィールドは埋め込みボ
タンカーネルによって支持されている。これはカーネル
に対してこのボタンの値を参照するやり方を付与するも
のである。他のフィールドとしてのClass,Com
mandHandler,および Feedback
は、全てのボタンクラスに対する埋め込みボタンカーネ
ルによって支持されている。
【0074】このマルチ状態ボタンによれば、次のよう
な6クラスの特定ルーチンが実施される。 例示。このルーチンではVariablesフィールド
の読み取りがなされて、各名称を付された変数とその値
とを表すデータ構造が生成される。これで確実にされる
ことは、Valueの現在値に関連するフィードバック
を実行することにより、ボタンが初期的に正しい外見を
有することである。例えば、この例においては、ボタン
によってテキストエディタに伝送されるストリングは
“BeginButton Clearlooks LookWhiteOnBlack EndButto
n ”であるが、これによって(ClearLooksコ
マンドの結果として)ボタンのテキストが正常に見える
ようにされる。ただし、(LookWhiteOnBl
ackの結果として)ブラック上のホワイトにされてい
る。この例におけるBeginButtonコマンドお
よびEndButtonコマンドによってテキストエデ
ィタに指示されることは、ドキュメントの他の部分に対
してではなく、このボタンのテキストに対して他のコマ
ンドを適用することである。 ファイルアウト。自体をテキスト的に記述するために、
オリジナルのボタン属性において述べた各変数の名称お
よび現在の値を書き出すことにより、マルチ状態ボタン
はVariablesフィールドのための新規な値を構
築せねばならない。この例における書き出しには、変数
Valueの現在の値に依存して、ストリング“TRU
E”または“FALSE”が含まれる。ボタン属性の他
のフィールドは変化を生じることはなく、それらが読み
込まれたように書き出されることになる。 ボタンプレス。まず、カーネルが、押されているボタン
とFeedbackフィールドで関連している任意のフ
ィードバックをすることが要求される。上記の例におい
て、“Down”で始まるフィードバックラインで特定
されることは、ユーザがその上でクリックダウンしてい
るときに、ボタンがイタリックでディスプレイされるべ
きということである。ユーザがマウスボタンをリリース
したとき(または、選択がなされている旨の他の指示が
なされたとき)には、“Toggle Grid”なる
メッセージがコマンドハンドラに伝送される。この表現
を含む手順が(ポップアップボタンの例における<Bu
tton Text>または<Contact>のよう
な)呼びを出すときには、このような手順はこの時点に
おいて呼ばれることになる。 値取得。このルーチンでは、変数Valueの値が戻さ
れる。 値セット。ここでは変数Valueに対する新規な値が
指定されて、この新規な値に関連するフィードバックが
実行される。例えば、先の例においてValueがFA
LSEにセットされたときには、エディット命令“Be
ginButton ClearLooks EndB
utton”がテキストエディタに伝送され、これによ
って、ボタンがホワイト上でブラックのテキストになる
ようにされる。 不履行の態様。コマンドハンドラがなく、ユーザがこの
ボタンの選択を完了するときには、UpClickMe
ssageフィールドが無視される。これに代えて、V
alueが次に可能性のある値までサイクルされる。例
えば我々の例においては、各クリックによって、この値
がTRUEからFALSEに、または、FALSEから
TRUEに変化する。
【0075】c.ラジオボタン 図7Aおよび図7Bに例示されている一対のラジオボタ
ンは、グラフィックエディタに埋め込むことができるも
のである。ここで認められるように、円形(図7B)は
方形(図7A)よりもボールドにされていて、円形ボタ
ンは“オン”であり、これに対して方形ボタンは“オ
フ”であることが示されている。これら2個のボタンに
対する方形ボタン属性はほぼ同等のものである。これを
より詳細にいえば、方形ボタンに対する属性は次の通り
である。 Poppy1 Class: RadioButton CommandHandler: DrawShapes Name: Shape RadioButtonValue:Rectangle Variables: (State: BOOL =FALSE) UpClickMessage: (RectangleMode) Feedback: ( ((State TRUE) ((BeginButton) (LineWidth 5.0) (DashesOff) (End Button))) ((State FALSE) ((BeginButton) (LineWidth 2.0) (DashesOff) (End Button))) (Down ((BeginButton) (Dashed) (End Button))) (UP ((BeginButton) (DashesOff) (EndButton))
【0076】円形ボタンに対するボタン属性において
は、上記の例におけるボールドのワードである“Rec
tangle”は“Circle”で置換され、また、
ボールドのワードである“FALSE”は“TRUE”
で置換されることになる。
【0077】ここで認められるように、RadioBu
ttonのクラスで支持されるフィールドは、Radi
oButton Value,Variables,お
よびUpclickMessageである。Radio
Button Valueのフィールドで記述されてい
る変数Valueの一つの可能性がある値は、そのボタ
ン属性では明白には述べられていないけれども、同じ名
称を有する全てのラジオボタンによって実質的に規定さ
れている。例えば先の例においては、Valueは{R
ectangle,Circle}のセットを取り込む
ことができる。これに対して、Variablesおよ
びUpClickMessageの有する機能は、マル
チ状態ボタンに対するそれらの機能と類似のものであ
る。しかしながら、ラジオボタンに対しては、変数St
ateが規定されねばならず、また、BOOLEAN
(TRUE/FALSE)の値でなければならない。更
に、このStateの値は、ラジオボタンのセットの中
の一つのボタンだけに対してTRUEであることができ
る。一グループ内の全てのラジオボタンは同じName
フィールドを有している。他のフィールドであるCla
ss,CommandHandler,Name,およ
びFeedbackは、全てのボタンクラスに対する埋
め込みボタンカーネルによって支持されている。
【0078】ラジオボタンにおいては、6クラスの手順
が次のように実施される。 例示。このルーチンでは Variablesフィール
ドの読み取りがなされて、各名称を付された変数および
その値を表すデータ構造が生成される。ここで保証され
ることは、Stateの現在値に関連したフィードバッ
クを実行することにより、ボタンが初期的には正しい外
見を有していることである。例えば上記の例において、
方形のボタンは、グラフィックスエディタに対して、エ
ディタで解読可能なストリング“(BeginButt
on)(Line Width2.0)(Dashes
Off)(EndButton)”を伝送するが、これ
により方形が肉細にされ、アンダッシュにされる。同様
にして、円形のボタンは、エディタに対して解読可能な
ストリング“(BeginButton)(Line
Width 5.0)(DashesOff)(End
Button)”を伝送するが、これにより、エディタ
をして、ボールドにされ、アンダッシュにされた円形を
ディスプレイさせる。 ファイルアウト。マルチ状態ボタンと全く同様に、ラジ
オボタンでは、そのVariablesフィールドを表
すための新規なストリングを生成させねばならない。他
のフィールドは変化することがなく、読み込まれたと同
じストリングが書き出されることになる。 ボタンプレス。先の場合と同様に、まず、カーネルが、
押されているボタンとFeedbackフィールドで関
連している任意のフィードバックをすることが要求され
る。上記の例において、“Down”で始まるフィード
バックラインで特定されることは、ユーザがその上でク
リックダウンしているときに、選択されたボタンがダッ
シュ形状にされるべきということである。ユーザがマウ
スボタンをリリースしたとき(または、選択がなされて
いる旨の他の指示がなされたとき)には、“Recta
ngleMode”なるメッセージがコマンドハンドラ
に伝送される。この表現を含む手順が(ポップアップボ
タンの例における<Button Text>または<
Contact>のような)呼びを出すときには、この
ような手順はこの時点において呼ばれることになる。 値取得。ラジオボタンに対するGet Valueルー
チンが関係している。ラジオボタンに関連したグループ
の値は、そのState変数がTRUEであるグループ
の一つのボタンについてのRadioButtonVa
lueの値である。このために、上記の例においては、
Get Valueは“Circle”に戻ることにな
る。 値セット。Set Valueも関係のあるものであ
る。特定されたValueは、グループにおけるボタン
の一つのRadioButtonValueフィールド
の値でなければならない。このボタンのState変数
はTRUEにセットされ、また、グループにおける全て
の他のボタンのState変数はFALSEにセットさ
れる。各変数では、その新規な状態に対して適切なフィ
ードバックが実行される(状態の変化がなかったボタン
は、いかなるフィードバックアクションでも実行する必
要はない)。 不履行の態様。コマンドハンドラがなく、ユーザがこの
ボタンの選択を完了するときには、UpClickMe
ssageフィールドが無視される。これに代えて、選
択されたボタンのState値がTRUEにセットさ
れ、そのグループにおける、State変数を有する全
ての他のボタンはFALSEにセットされる。Set
Valueのルーチンについて説明されたように、フィ
ードバックの実行がなされる。
【0079】5.コマンドハンドラ ボタンのトリガがなされたときには、ある所定の機能を
果たすために、コマンドハンドラアプリケーション14
(図1)に対してコマンドが伝送される。各ボタンで記
述されることは、コマンドの一部として該当のハンドラ
の名称を付することにより、または、ボタン属性の“C
ommandHandler”フィールドにおいて、い
ずれのコマンドハンドラ14が各コマンドを受け入れる
かということである。実際に、それらの名称をComm
andHandlerフィールドにおいてリストにする
ことにより、幾つかのコマンドハンドラに対してコマン
ドを伝送することができる。
【0080】新規なコマンドハンドラは、ソフトウエア
システム(on−the−fly.1(?))に付加す
ることができる。埋め込みボタンカーネル12(図1)
をもってコマンドハンドラ名およびコールバックの手順
を登録するために、いずれのプログラムであっても、R
egisterCommandHandlerの手順を
呼ぶことができる。この後で、カーネル12は、その登
録されたコールバックの手順を呼ぶことにより、登録さ
れたコマンドハンドラ名に指向される全てのコマンドを
取り扱うようにされる。このコールバックの手順は2個
のアーギュメントを交互に取り込む。即ち、コマンドお
よび押されているボタンについての記述を交互に取り込
む。更に、コマンドが成功したか否かの指示に戻り、こ
れによって、コマンドが失敗したときには、異なるフィ
ードバックをユーザに提供することが許容される。
【0081】好適なことに、このシステムにはコマンド
ハンドラ14(これらのハンドラによれば、広範なボタ
ンの態様に対する支持が与えられる)の少なくとも以下
のような基礎的セットが含まれている。
【0082】a.CommandToolコマンドハン
ドラ ユーザによって例えばCedarコマンドシェルでタイ
プされたものであっても、CommandToolコマ
ンドハンドラはそのコマンドアーギュメントを解読す
る。コマンドシェルからの任意の出力が全ての埋め込み
ボタンによって共有される特定のタイプスクリプトに書
かれることから、このCedarコマンドシェルは、U
NIXにおけるコマンドシェルと酷似した作業をするも
のである。
【0083】b.Buttonizerコマンドハンド
ラ Buttonizerコマンドハンドラは、ユーザが選
択したドキュメント要素に対してボタン属性の適用をす
る。これをより詳細にいえば、適用されるボタン属性が
取り出されるのは、いわゆるButtonizerボタ
ンの“ButtonAttributeLitera
l”と呼ばれる、ある特定の他では使用されない属性で
ある。ここで認められるように、双方の態様がButt
onizerボタンの属性をエディット操作することに
よって変更できるために、Buttonizerボタン
自体の態様をエディット操作することに関して、このア
プローチは、Buttonizerボタンのようなもの
の使用を通して生成されるボタンについてのボタン属性
の変更が極めて容易にされる。例えば、ここに示された
Buttonizerボタンの属性は、ポップアップボ
タンを生成させるためのものである。 ButtonAttribute: Poppy1 Class: PopUpButton Menu: ( ((Selected) "Buttonize""Applies the ButtonAttributeLiteral property of this button to the selected text") ) CommandHandler: Buttonizer ButtonAttributeLiteral: Poppy1 Class: PopUpButton Menu: ( ((Event1)"FirstItem""Sends Event1 to application") ((Event2)"SecondItem""Sends Event2 to application") ) CommandHandler: Meesage Window
【0084】ButtonAttribute属性によ
れば、このボタン自体の態様が記述される。これに対し
て、ButtonAttributeLiteral属
性によれば、新規に生成されたボタンのButtonA
ttributeになるようにされる。従って、この特
定の場合においては、この新規のボタンは2個の要素を
備えたポップアップメニューを有することになる。更
に、このポップアップボタンによれば、そのコマンドが
“Message Window”と呼ばれるコマンド
ハンドラに伝送される。
【0085】c.メッセージウインドウコマンドハンド
ラ メッセージウインドウコマンドハンドラは、ユーザが読
み取れるように、フィードバックのために保留されてい
るディスプレイスクリーンの特定の領域において、コマ
ンドをプリントアウトするだけのものである。このコマ
ンドハンドラは、新規のボタンをデバッグするためには
特に有用なものである。
【0086】d.ドキュメントエディタコマンドハンド
ラ ドキュメントエディタコマンドハンドラは、ボタンのコ
マンドストリングを、前述されたTiogaエディタの
ような適当なドキュメントエディタに対して伝送する。
このテキストストリングにおけるコマンドが一般的に使
用されるのは、ボタンが現れているドキュメントまたは
現にユーザが選択したドキュメント要素を含んでいるド
キュメントのエディット操作のためであるが、任意のド
キュメントをエディット操作するために用いることがで
きる。ここで認められるように、このコマンドハンドラ
によれば、ドキュメントエディタマクロをトリガするた
めにボタンを用いることが許容される。例えば、そのボ
タン属性を備えたポップアップボタンは次の通りであ
る。 ButtonAttribute: Poppy1 Class: PopUpButton Menu: ( ((ApplyLook Bold)"Bold""Make selected text bold") ((ApplyLook Italics)"Italics""Make selected text italic") CommandHandler: Document Editor このポップアップボタンによれば、ドキュメントエディ
タをして、第1のメニューアイテムが選択されたときに
は、選択されたドキュメントオブジェクトをボールドに
し、または、第2のメニューアイテムが選択されたとき
には、これをイタリック体にする。
【0087】6.エディタ入力言語 セクションD.1における第1の例で示されているボタ
ンに対するボタン属性は、それが能動状態にあるときに
はテキストの外見をボールドに変化させ、それがアイド
ル状態にあるときにはプレーンフェースに戻すためのも
のである。このフォント変化の達成は、コマンドストリ
ング“BeginButton ApplyLook
Bold EndButton”および“BeginB
utton RemoveLook Bold End
Button”を、ドキュメントエディタに対して伝送
することによってなされる。同様にして、セクション
D.5で記述されているボタンによれば、ユーザが選択
したいずれのテキストストリングであっても、エディタ
マクロが実行される。
【0088】ドキュメントエディタにとっては入力エデ
ィット操作言語を解読できることが絶対に必要というこ
とではないが、この能力があるときには、埋め込みボタ
ンが更に有用になる。このようなエディタが与えられる
と、フィードバックをディスプレイするための、およ
び、ある特定のドキュメントエディタにおけるマクロ操
作を実行するための標準的なドキュメントエディタ操作
を求めるために、ユーザは、ボタン属性のサブストリン
グとしてのドキュメントエディット操作ストリングを含
ませることができる。
【0089】7.ボタンプレスの取り扱い 図8に例示されている通信経路は、ユーザが埋め込みボ
タンをトリガするときに用いられるものである。これら
の通信経路は次のような幾つかのステップにおいて用い
られる。 ステップ1:告知(特定されたボタンクラス13に対す
る埋め込みボタンカーネル12へのエディタ11) 例えば埋め込みボタン上のマウスボタンをユーザがクリ
ックすると、該埋め込みボタンを含んでいるドキュメン
トを管理するエディタ11により、埋め込みボタンカー
ネル12に対して、マウスアクション、ドキュメントに
おける埋め込みボタンの位置の記述、および、そのボタ
ン属性が渡される。カーネル12の側においてはボタン
属性の“Class”フィールドが読み取られ、特定さ
れたボタンクラス13のためのボタンハンドラに対し
て、上記の情報が転送される。 ステップ2:イニシャルフィードバック(エディタ11
に対する埋め込みボタンカーネル12への特定されたボ
タンクラス13) 適切であるときには、ボタンクラス13は、このマウス
アクションに関連する任意のフィードバックアクション
を実行するように、埋め込みボタンカーネル12に対し
て要求する。例えば、マウスがそれに入ったときにはボ
タンがその周囲にボックスを描くか、または、マウスが
その上でクリックしたときにはそれ自体をグレイにする
ことができる。カーネル12はボタンの“Feedba
ck”フィールドにおいてマウスアクションを調べ、そ
れで見出された任意のコマンドを、ボタンを管理するた
めのエディタ11に渡す。 ステップ3:(コマンドハンドラ14)に対する埋め込
みボタンカーネル12へのアクション(特定のボタンク
ラス13)の選択 この時点におけるボタンクラスは、アクションのメニュ
ーをポップアップすることができるか、または、マウス
ボタンが近接してくるのを待つだけである。一旦ユーザ
がこのボタンの実行のためのアクションを選択したとき
には、ある操作が進行中である(ステップ2を参照)こ
とを示すために、ボタンクラス13は更なるフィードバ
ックを要求することができる。そして、ボタンクラス1
3は、カーネル12に対して、選択されたアクションの
リストを伝送する。カーネルはボタン属性の“Comm
andHandler”フィールドにおいてその名称を
調べ、当該名称で登録されているコマンドハンドラルー
チン14に対して、該アクションのリストを渡す。 ステップ4:ファイナルフィードバック(エディタ11
に対する埋め込みボタンカーネル12への特定されたボ
タンクラス13) ボタンによってトリガされたアクションの実行を一旦コ
マンドハンドラ14が終了すると、ボタンクラス13
は、ある所定のファイナルフィードバック(例えば、埋
め込みボタンをそのオリジナルの外見に戻すこと)を実
行することを(カーネル12を介して)エディタ11に
求める。
【0090】図8に示されているように、ソフトウエア
システムは、多少は従来に属するコンピュータシステム
22の仮想メモリ21内に駐在している。例えば、この
コンピュータシステム22に好適に含まれているもの
は、メモリコントローラ25を介して中央処理ユニット
(CPU)24を仮想メモリ21にリンクさせるため
の、I/Oコントローラ28を介してキーボード26お
よびカーソルコントローラ(例えば、マウス)27にリ
ンクさせるための、そして、ディスプレイコントローラ
30を介してモニタ29にリンクさせるためのバス23
である。しかしながら、ここで理解されるべきことは、
この発明はホストコンピュータ22のアーキテクチュア
に依存するものではないことから、他のアーキテクチュ
アを有するコンピュータにもこの発明を適用できるとい
うことである。
【0091】ボタン値の取得およびセット マルチ状態ボタンおよびラジオボタンの双方に、アプリ
ケーションプログラムによって問い合わせができる値が
含まれている。これらのタイプのボタンを取り扱うこと
については、セクションD.3.b において説明され
たメカニズムに対する2個の複雑な事態が必要とされ
る。
【0092】第1に、アプリケーションプログラムにと
っては、これらのボタンの中の一つにおける現在の値を
見出すことが可能であるべきである。これに関連して想
起されることは、埋め込みボタンカーネル12によっ
て、能動的なドキュメントおよびアーギュメントとして
のボタンを取り込み、該ボタンの値をテキストストリン
グとして戻すようなルーチンGetValueが付与さ
れるということである。好都合なことに、アプリケーシ
ョンにおいて能動的なドキュメントをそのコントロール
パネルとして用いているときには、該アプリケーション
はこの能動的なドキュメントに対するポインタを有して
おり、このために、この手順の呼びが素直なものにされ
ている。ここで認められるように、カーネル12は、こ
のような能動的なドキュメントを、該アプリケーション
に対して名称の付されたコマンドハンドラ14として、
アプリケーションによってなされたルーチン登録要求に
応答して動的に登録することができる。
【0093】第2に、ボタンの状態変更は、他のアプリ
ケーションのアクションと同期がとられることを必要と
することがある。現在のカラーの値をセットするために
能動的なドキュメントを用いる、ドローイングプログラ
ムについて考えてみる。ユーザが現在のカラーをブルー
に変更した時点においてアプリケーションが遅れてお
り、第1の形状をディスプレイすることが終了していな
いとしても、ユーザは、カラーをレッドにセットして第
1の形状を描き、カラーをブルーにセットして第2の形
状を描くことが可能であるべきである。混乱を防止する
ために、現在のカラーを変更する1個または複数個のボ
タンは、現在の値を用いるアプリケーションがなされる
まで、報告する値の変更をすべきではない。
【0094】この同期化を可能にするために、マルチ状
態ボタンおよびラジオボタンは、自動的に状態を変更す
ることはない。これに代えて、これらのボタンは、アプ
リケーションに対して状態変更の要求を伝送する。アプ
リケーションの準備がなされたときには、ルーチンSe
tValueを呼んで、新規な値をボタンにセットする
ようにされる。これにより、入力処理における第5のス
テップへとリードされる。
【0095】ステップ5:変更された値のフィードバッ
ク(エディタに対する埋め込みボタンカーネルへのアプ
リケーション) アプリケーションがSetValueを呼んだときに
は、埋め込みボタンカーネル12は、実行されるべきフ
ィードバックアクションのために変更される値を有す
る、各ボタンの“Feedback”フィールドの中を
みる。ある1個がリストにされているときには、このア
クションが、ボタンを管理するエディタ11に対して伝
送される。好適なことには、アプリケーションによる名
称を付されたボタンの値に対する要求に迅速に応答する
ために、埋め込みボタンカーネル12には、ハッシュテ
ーブル(標準的なコンピュータ科学のデータ構造のも
の。ドン・ナス(Don Knuth) のコンピュータプログラミ
ングの技法 (The Art of Computer Programming),第3
刊を参照)の値が保持されている。ここに、ハッシュテ
ーブルのキーはボタンの可変名称から導出されるもので
あり、また、このテーブルに蓄積されている値はボタン
の現在値である。1個のこのようなハッシュテーブル
は、それぞれの現に能動的なボタンを含むドキュメント
のために保持されているものであり、テーブルに関連し
たドキュメント内の名称が付されたボタンの変数がその
値を変化させる度に、当該テーブルの更新がなされる。
【0096】8.ドキュメントをアプリケーションウイ
ンドウにリンクさせること 多くのシステムにおいては、ある与えられたアプリケー
ションは幾つかのウインドウにおいて一度にランするこ
とができる。しかしながら、ある与えられたウインドウ
のコントロールパネルにおける操作は、当該ウインドウ
の内容に対して適用するように意図されており、他のい
ずれのウインドウの内容に対して意図されるものではな
い。これに加えて、ウインドウによっては多くのペーン
を有するものがある。更に、ある与えられたコントロー
ルパネルにおける異なるボタンは、異なるペーンに対し
て適用するように意図されている。
【0097】かくして、ボタンを含んでいるドキュメン
トをコントロールパネルとして一般的に用いるために、
埋め込みボタンカーネル12によって付与される前述の
LinkDocToApplicationルーチン
は、ある与えられた能動的なドキュメントにおけるCo
mmandHandlerの名称をあるアプリケーショ
ンウインドウの特定のペーンにリンクさせるべく、アプ
リケーションによって呼ばれることができる。例えば、
メール読み取りプログラムでは、1個のペーンをメッセ
ージヘッダのディスプレイをするために使用し、他方の
ペーンをメッセージ本体のディスプレイをするために使
用することができる。そして、ヘッダに適用されるボタ
ンにおいては、そのボタン属性に“CommandHa
ndler:Headers”が蓄積されるが、これに
対して、メッセージ本体に関連したボタンにおいては、
そのボタン属性に“CommandHandler:B
odies”が蓄積される。この場合において、リンク
ルーチンは2回呼ばれることになる。即ち、ある1回は
“Headers”ボタンのリンクにされ、他の1回は
“Bodies”ボタンのリンクにされる。
【0098】ここで注意されるのは、ボタンそれ自体は
アプリケーションペーンにリンクされないということで
ある。むしろ、それらが参照するCommandHan
dlerの名称がリンクされる。これで可能にされるこ
とは、それらが正しいCommandHandlerの
記述をしているときに、ドキュメントを含む正しいパネ
ルに対して自動的にリンクされるように、ランタイム時
において、コントロールパネルに対して新規なボタンを
付加することである。
【0099】結論 前述されたところに鑑みて理解されることは、ドキュメ
ントに対してボタンの埋め込みが許容されるシステムに
よれば、次のような能力が付与されるということであ
る。 (1) ドキュメントに埋め込まれているボタンを用い
ることにより、リーダ(readers)は、ドキュメ
ントそれ自体における能力を用いて、ドキュメント内の
情報に対して作用を施すことができる。この統合作用に
よってユーザが許容されることは、彼等のタスクに集中
できること、および、そうでないときには該ドキュメン
トを“off to the side”のツールにす
るような、スクリーンスペースの節減をすることであ
る。 (2) 構築されたドキュメントがメールを介して伝送
されるためのシステムがどこに存在するにしても、ボタ
ンもこれと同様にメールを介して伝送することができ
る。そして、ユーザに許容されることは、有用なボタン
を容易に交換すること、および、電子的メールにおいて
受け入れた情報に対して迅速に応答することである。 (3) ユーザは、実在するコントロールパネルの一部
を新規なドキュメントにコピーして、カスタム化された
コントロールパネルを生成させることができる。
【0100】これに加えて、ここで説明されたボタンア
ーキテクチュアによれば、これらの付加的な利点が付与
される。 (4) それらは通常のドキュメント要素であることか
ら、標準的なドキュメントのエディット操作を通して、
ボタンのエディット操作をすることができる。 (5) ボタンによって実行されるアクションは、ボタ
ンそれ自体の内容または外見と関連させることができ、
このために、ドキュメントエディタで支持される任意の
プロパティと関連させることができる。かくして、それ
ら自体の外見を修正するために、または、同一のドキュ
メントエディタ内の他のオブジェクトに対してそれらの
プロパティを転送するために、該ボタンを用いることが
できる。 (6) ボタンは任意の形状を有することができる。多
くのシステムにおいては、ボタンは方形であるべきもの
とされている。しかしながら、ここで説明されているシ
ステムにおいては、ボタンは随意のドキュメント要素で
あり、また、それらの形状は、それらが埋め込まれるエ
ディタの能力によって制限を受けるだけである。 (7) このようなボタンは、ドキュメント要素上での
付加的なストリング属性として表されるだけのものであ
ることから、ボタンを含むドキュメントは、構築された
ドキュメントを生成させるために実在するソフトウエア
を介して生成させることができる。
【0101】この発明について前述された利点は、以下
のように更に詳細にレビューされる。 1. タスクへの集中を維持すること 電子的なドキュメントにおいては、その読み取られる多
くの情報が、ユーザによる即座の使用が意図されている
ものである。例えば、ディレクトリ内でファイルをリス
トにするコマンドをユーザが入力したとすると、このユ
ーザがしばしば所望することは、リスト内のファイルの
あるものについての、読み取り、名称の改正または削除
である。大方の現在のインタフェースにおいては、ユー
ザの注意が、コマンドシェルまたはファイルツールか
ら、リストにされたファイルの一つの上でのエディタウ
インドウをオープンすることへと転換されねばならな
い。しかしながら、それらがある所定のSymboli
csなアプリケーション内にあるように、該当のファイ
ル名がボタンであるときには、これらの操作は、リスト
から注意を転換させることなく、ファイルリスト上で直
接的に実行することができる。
【0102】別の例として、ソフトウエアモジュールに
含ませることができるボタンのセットは、各ルーチンの
テキストに近接しているものであって、該当のルーチン
がドキュメント化され、実施され、または呼ばれるとき
の、ルーチンのテスト操作を行い、そのパフォーマンス
のタイミングをとり、または、ハイパーテキストのリン
クをするためのものである。
【0103】2.電子メールにおけるボタン 電子メールメッセージの送信者(sender)は、メッセージ
内の情報について受信者(recipients)が操作する助けと
なるボタンを含ませることを所望することができる。例
えば、ソフトウエアのリリース、電話番号またはファイ
ルを記述したメッセージを伝送しているときには、それ
ぞれに、新規なソフトウエアのインストール、電話番号
のダイアル操作またはファイルのオープン操作のため
に、送信者はボタンを含ませることができる。
【0104】3.コントロールパネルの再使用 前述されたように、ボタンのセットは、アプリケーショ
ンウインドウにおけるある特定のペーンにリンクするこ
とが可能であって、ボタンを含むパネルがコントロール
パネルとして作用することが許容される。コントロール
パネルがドキュメントであるときには、ドキュメントエ
ディタが使用可能にされて、それらを介してのナビゲー
ション操作、それらの修正操作、コピー操作およびそれ
らの部分の組み合わせ操作をして、特別なタスクのため
にカスタム化したコントロールパネルにされる。
【0105】例えば図9Aに示されているダイアログボ
ックスは、テキストパターンをサーチするためのもので
ある。それはボールドワードAppleに対
するサーチのためにセットされ、それをイタリックワー
ドBananaで置換するようにされる。図9Bにおい
ては、このコントロールパネルはドキュメントにコピー
されている。そのスペースを節減するために、“Par
ameters”と呼ばれる隠しボタンが使用されてお
り、図9Aに示されたコントロールパネルを閉じ込める
ようにされている。(ある1個の隠しボタンによって、
小規模のドキュメントがその内部に隠される;この隠し
ボタンが押されると、小規模のドキュメントが現れるこ
とになる。)図9Bに示されている、Search,Y
es,No,Substituteのボタンにより、1
対1または一括のいずれかの置換を実行するための機能
が付与される。これらのボタンとともに、ある特定のサ
ーチタスク(Appleをサーチして、それ
をBananaで置換すること)のためのコンパクトな
コントロールパネルが形成される。このパラメータを変
更するためには、ユーザは隠されたコントロールパネル
を露出させて使用することができる(図9A)。
【0106】4.ドキュメントスキルがユーザインタフ
ェーススキルになる 従来のドキュメントエディタによれば、ドキュメントの
情報について、生成、選択、移動、コピー、削除、格
納、検索、サーチ、スクロール操作、スタイルの変更、
選択的なディスプレイおよびプリント操作をすることが
できる。ドキュメントがユーザインタフェースであると
きには、これらの能力の全てが、ユーザインタフェース
の生成および使用の双方のために利用可能なものにな
る。
【0107】更に、コントロールパネルを構成するため
に、ドキュメントエディタについての通常のレイアウト
能力を用いることができる。境界およびアイコンを生成
させるためにはグラフィックエディタを用いることが可
能であり、また、適当なカラー、フォント、アンダーラ
インその他によってボタンのアウトラインや表の配置を
するためにはテキストエディタを用いることが可能であ
る。このようなコントロールパネルによれば、異なるペ
ージのサイズやスケールファクタに対するテキストのフ
ォーマットを改めるための、テキストエディタにおける
能力を継承することができる。
【0108】インタフェースユーザのために、ドキュメ
ントエディタによれば、ユーザインタフェースを介して
ナビゲーション操作するやり方が提供される。様々なタ
スクにおける助けとなるように、ユーザが構築できる大
規模のドキュメントは、セクションおよびサブセクショ
ンに組織されていて、多くのボタン、演算フィールドお
よびその他の能動的な要素を含むようにされている。こ
れらのユーザは、スクロール操作、レベルクリップ操作
(例えば、ヘッダ名だけをディスプレイすること)、お
よび、ユーザインタフェースの構成部を見出すためのテ
キストでのサーチまたはグラフィックスでのサーチをす
る上での利点を享受することができる。
【0109】テキストでのサーチ/置換およびグラフィ
ックスでのサーチ/置換(D.カーランダー(D. Kurlan
der)らの“グラフィックスでのサーチと置換 (Graphica
l Search and Replace) ”, コンピュータグラフィック
(Computer Graphics)第22巻、第4号 1988 年8月,
113〜120 ページを参照)は、実在するドキュメントか
らのユーザのインタフェースを迅速になさせるために使
用できるものである。例えば、ドキュメント名、アドレ
スおよび電話番号は、電話番号に類似するストリングを
サーチして、電話番号をダイアルするボタンにそれらを
転送することにより、能動的なドキュメントに転換させ
ることができる。
【0110】5.ドキュメントエディタのカスタム化 ユーザインタフェースを改善するためにドキュメントエ
ディタの能力を使用できるように、ボタンを含んでいる
ドキュメントをドキュメントエディタの増強のために使
用することができる。この増強操作サイクルの結果とし
て、ドキュメントエディタおよびユーザインタフェース
の双方に、迅速な改善がもたらされる。例えば、ユーザ
は、テキストのサーチおよびスタイルの変更を含む、退
屈で繁雑なテキストエディタの操作を実行するような、
ボタンコレクションを生成させることができる。一つの
特に有用な実施例であるこのようなボタン(これは“s
tuffer”と呼ばれている)は、現在のテキストエ
ディタのカーソル位置において、それ自体のテキストの
内容を挿入するものである。
【0111】ボタンは、ドキュメントのナビゲーション
操作を改善するためにも用いることができる。一つの例
として、GUIDEハイパーテキストシステム(P.ブ
ラウン (P. Brown) の“ダイナミックドキュメントの著
作者のためのシンプルメカニズム (A Simple Mechanism
for Authorship of Dynamic Documents) ”J.C.バ
ンブリート(J.C. van Vliet)著, テキスト処理およびド
キュメント操作 (TextProcessing and Document Man
ipulation ,ケンブリッジ大学出版部, 内部会議会報
(Proceedings of the Internal Conference, Cambridge
University Press), 1986 年4月, 35〜42ページ) に
よって影響を受けたことは、ボタンの背後にあるドキュ
メントの部位を隠すことである。各ボタンプレスによっ
て、テキストは交番的に現れたり隠れたりする。このよ
うな隠しボタンによれば、関係のあるドキュメント部分
だけに対するスクリーンスペースを用いて、ユーザがド
キュメントを通してブラウズ操作をすることが許容され
る。ここで注意されることは、隠しボタンを有するドキ
ュメントを、積層されたコントロールパネルとして使用
できることである。なお、図9Aおよび図9Bを参照。
【0112】グラフィックスエディタをカスタム化する
ために、通常とは異なるやり方でボタンを用いることが
できる。図10Aおよび図10Bには、イラストレーシ
ョンプログラムで描かれた円(サークル)のコレクショ
ンが示されている。ここで仮定されることは、ユーザ
が、これらの円について異なるカラー付けを試みようと
することである。通常のエディタコマンドを採用してそ
れぞれの円を順に選択し、それにカラーをあてはめるこ
とによって上記のことは実行できるけれども、それぞれ
のカラーを変更させるためには何回かのマウスクリック
が必要である。例えば、オンのときにはブラック、オフ
のときにはホワイトのように、それぞれの円を2状態の
ボタンにすることの方がはるかに容易なことである。こ
のようなイベントにおいては、カラー変化毎に1回のマ
ウスクリックによってカラーの変化をさせることができ
る。このような全ての変化がなされたときには、再びエ
ディット操作できるカラー直しされたピクチュアを残し
て、ボタンの能動性をオフにすることができる(また
は、ボタンのプロパティをその形状から排除することが
できる)。
【0113】6.ボタンは任意の形状をもつことができ
る 任意のカーソルに基づくエディタは、テキスト、グラフ
ィックス、等式、表等のいずれに対するものであって
も、どのオブジェクトをユーザが指摘しているかを見出
すためのやり方を備えている。ボタン属性のアーキテク
チュアには、ユーザがボタンを押しているときに、これ
らの機能について記述する利点がある。かくして、ユー
ザが該当の形状を指摘しているときに、ボタンが埋め込
まれているドキュメントエディタが検出することができ
る限りは、ボタンの形状は、円形、三角形、菓子パン屋
(gingerbread man)、装飾的なレースパターン、その他
の任意の形状であることができる。図4Aを想起する
と、これに示されているボタンはシステム内の単一のラ
インセグメントであってもよく、ここでユーザに必要な
ことは、正確にオブジェクトにおいてではなく、該オブ
ジェクトの近傍で指示することだけである。
【0114】7.ゼネレータ この発明によって考えられている埋め込みボタンについ
ての、より重要なプロパティの一つは、プロセスにおけ
る大方のステップに対し、通常のドキュメントエディタ
の操作の使用を介して、それらがユーザによって生成さ
れ、修正されることが可能なことである。しかしなが
ら、プログラムコントロールの下に、埋め込みボタンを
自動的に生成できることも有用なことである。例えば、
ディレクトリにおける全てのファイルをリストさせるコ
マンドによれば、ボタン属性がファイル名に付加され、
該ファイル名がボタンに転換されて、それが押されたと
きに対応のファイルがオープンするようにされる。
【0115】この発明のアーキテクチュアを用いること
により、プログラムによってボタンを含むドキュメント
を生成させる能力のために、特別なプログラミング操作
は必要とされない。このシステムで必要とされること
は、ドキュメント要素上に随意の属性を備えて構築され
たドキュメントを生成させるための、プログラムに対す
るやり方を提供することだけである。この能力は、“p
rivate data”と呼ばれるデータを許容す
る、デジタルイクイップメント社 (Digital Equipment
Corporation)のCDAアーキテクチュアのようなシステ
ムには既に存在するものであるが、標準的なドキュメン
ト要素と関連するような、ある特定のドキュメント処理
の実施に限られている。これについては、CDA(合成
ドキュメントアーキテクチャ:Compound Document Arc
hitecture )マニュアル、デジタルイクイップメント
社, メイナード(Maynard),エムエイ(Ma), 1988年11月,
セクション3.1.5.6 が参照される。このような
構築ドキュメントのゼネレータが与えられると、ボタン
を生成させるために必要とされることの全ては、ボタン
として作用するドキュメントのそれらの部分を生成させ
るときに、“ButtonAttribute”と呼ば
れる属性を取り付けることである。
【図面の簡単な説明】
【図1】 本発明のソフトウエアアーキテクチャの説明
図である。
【図2】 A〜Cは本発明によるボタンの生成における
順次ステップを示す説明図である。
【図3】 AおよびBはポップアップボタンのメニュー
を示す説明図である。
【図4】 AおよびBはそれら自身の形式プロパティを
選択されたグラフィックオブジェクトに変換することに
よってグラフィック形式マクロスを達成するためのボタ
ンの使用を示す説明図である。
【図5】 A〜Cはマルチステートボタンからのユーザ
フィードバックを示す説明図である。
【図6】 グラフィックラジオボタンの組からのユーザ
フィードバックを示す説明図である。
【図7】 AおよびBはグラフィックエディタに埋め込
まれた関連ラジオボタンの対からのユーザフィードバッ
クを示す説明図である。
【図8】 本発明のソフトウエアアーキテクチャおよび
標準的なコンピュータシステムのアーキテクチャによっ
て提供される通信経路を示すブロック図である。
【図9】 AおよびBはそれぞれ本発明によって構築さ
れた制御パネルおよびそのコンパクト表現を示す説明図
である。
【図10】 AおよびBはマルチステートボタンとして
機能する円から構成されたグラフィックドキュメントを
示す説明図である。
【符号の説明】
11 ドキュメントエディタ、12 埋め込みボタンカ
ーネル、13 ボタンクラスマネージャ、14 コマン
ドハンドラ、20 ボックス、21 仮想メモリ、22
コンピュータシステム、23 バス、24 CPU、
25 メモリコントローラ、26 キーボード、27
カーソルコントローラ、28 I/Oコントローラ、2
9 モニタ、30 ディスプレイコントローラ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 ユーザによってトリガされたときに所定
    のアクションを開始するためのカスタムボタンを任意に
    含んでいるユーザインタフェースを備えたコンピュータ
    駐在ソフトウエアシステムであって;前記ボタンは、電
    子的ドキュメントにおいて、このようなドキュメントの
    人手による判断が可能なエレメントに関連して、隠され
    た持続性のあるキャラクタストリング属性として具体化
    されており;前記ボタンの各々のボタン属性ストリング
    は、ボタンクラス、ボタンデータ、コマンドハンドラ、
    および、任意所望のユーザフィードバックを指定するも
    のであって:次のものを含む前記ソフトウエアシステム 前記ドキュメントの中のユーザによって選択されたもの
    を前記システムにロードするための少なくとも1個のド
    キュメントエディタであって、前記エディタは前記ユー
    ザによって選択されたドキュメントの各々に対するデー
    タ構造を構築しており、これにより、前記選択されたド
    キュメントの任意のものにおいて具体化された任意のボ
    タンに対するボタン属性が、それらの関連したドキュメ
    ントエレメントの構成部分として、前記ドキュメントの
    ためのエディタによって構築されたデータ構造において
    始まるようにされており;ボタンオンモードおよびボタ
    ンオフモードにおいて前記エディタを選択的に動作させ
    るための、ユーザによるセットが可能な入力方向切り替
    えスイッチを備えている前記エディタ:指定可能なボタ
    ンクラスに対する少なくとも1個のクラス指定ボタンハ
    ンドラであって、ある所定のボタンクラスに対するコマ
    ンドリストをそれぞれに含んでいる前記ボタンハンド
    ラ;前記ボタン属性によって与えられたコマンドを実行
    するための、複数の指定可能なコマンドハンドラ;およ
    び前記ユーザによってトリガされた各ボタンのボタン属
    性を分析するための集中カーネルであって、そのように
    分析しながら、前記ボタンについて指定されたボタンク
    ラスおよび前記ボタンに対して指定されたコマンドハン
    ドラを同定するようにされており;前記ボタンによって
    要求されるアクションおよびフィードバックを実行する
    ために、前記エディタ、前記ボタンについて指定された
    ボタンクラスに対するボタンハンドラ、および、前記ボ
    タンに対して指定されたコマンドハンドラの間で通信パ
    スを提供する前記カーネル。
JP3208271A 1990-08-24 1991-08-20 コンピュータ駐在ソフトウエアシステムに対するユーザインタフェースとしての電子的ドキュメント Expired - Lifetime JPH07104765B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US57351290A 1990-08-24 1990-08-24
US573512 1990-08-24

Publications (2)

Publication Number Publication Date
JPH0749759A true JPH0749759A (ja) 1995-02-21
JPH07104765B2 JPH07104765B2 (ja) 1995-11-13

Family

ID=24292284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3208271A Expired - Lifetime JPH07104765B2 (ja) 1990-08-24 1991-08-20 コンピュータ駐在ソフトウエアシステムに対するユーザインタフェースとしての電子的ドキュメント

Country Status (4)

Country Link
US (1) US5862395A (ja)
EP (1) EP0472444B1 (ja)
JP (1) JPH07104765B2 (ja)
DE (1) DE69129959T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934675A (ja) * 1995-07-14 1997-02-07 Nippon Telegr & Teleph Corp <Ntt> 3次元仮想協同空間におけるオブジェクト操作方式

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051273B1 (en) * 1990-11-30 2006-05-23 Microsoft Corporation Customizing forms in an electronic mail system utilizing custom field behaviors and user defined operations
US6314570B1 (en) * 1996-02-08 2001-11-06 Matsushita Electric Industrial Co., Ltd. Data processing apparatus for facilitating data selection and data processing in at television environment with reusable menu structures
US6100885A (en) * 1996-07-06 2000-08-08 International Business Machines Corporation Supporting modification of properties via a computer system's user interface
GB2315139A (en) * 1996-07-06 1998-01-21 Ibm Selecting operations in an object-oriented user interface
US6003050A (en) * 1997-04-02 1999-12-14 Microsoft Corporation Method for integrating a virtual machine with input method editors
DE69802915T2 (de) * 1997-04-02 2002-07-04 Microsoft Corp Verfahren zur integration einer virtuellen maschine mit eingabemethodeeditoren
US5966719A (en) * 1997-11-20 1999-10-12 Microsoft Corporation Method for inserting capitalized Latin characters in a non-Latin document
US6470364B1 (en) * 1998-02-24 2002-10-22 Sun Microsystems, Inc. Method and apparatus for generating text components
US6810522B2 (en) * 1998-10-07 2004-10-26 Invensys Systems, Inc. Method and system for associating parameters of containers and contained objects
US6356866B1 (en) 1998-10-07 2002-03-12 Microsoft Corporation Method for converting a phonetic character string into the text of an Asian language
US6198480B1 (en) 1998-10-07 2001-03-06 Wonderware Corporation Object-oriented tag browser
US6388877B1 (en) 1999-02-04 2002-05-14 Palm, Inc. Handheld computer with open accessory slot
US6592628B1 (en) 1999-02-23 2003-07-15 Sun Microsystems, Inc. Modular storage method and apparatus for use with software applications
WO2000057265A1 (en) 1999-03-18 2000-09-28 602531 British Columbia Ltd. Data entry for personal computing devices
US7293231B1 (en) 1999-03-18 2007-11-06 British Columbia Ltd. Data entry for personal computing devices
US6467080B1 (en) * 1999-06-24 2002-10-15 International Business Machines Corporation Shared, dynamically customizable user documentation
JP2001075772A (ja) * 1999-06-29 2001-03-23 Mitsubishi Electric Corp 画像表示装置および画像表示方法
US6823330B1 (en) 1999-11-16 2004-11-23 Gateway, Inc. Site home navigation control
US7028267B1 (en) 1999-12-07 2006-04-11 Microsoft Corporation Method and apparatus for capturing and rendering text annotations for non-modifiable electronic content
US9424240B2 (en) 1999-12-07 2016-08-23 Microsoft Technology Licensing, Llc Annotations for electronic content
US7185274B1 (en) 1999-12-07 2007-02-27 Microsoft Corporation Computer user interface architecture wherein users interact with both content and user interface by activating links
US7337389B1 (en) 1999-12-07 2008-02-26 Microsoft Corporation System and method for annotating an electronic document independently of its content
US7458014B1 (en) 1999-12-07 2008-11-25 Microsoft Corporation Computer user interface architecture wherein both content and user interface are composed of documents with links
US6714214B1 (en) * 1999-12-07 2004-03-30 Microsoft Corporation System method and user interface for active reading of electronic content
US6820111B1 (en) 1999-12-07 2004-11-16 Microsoft Corporation Computer user interface architecture that saves a user's non-linear navigation history and intelligently maintains that history
US6992687B1 (en) * 1999-12-07 2006-01-31 Microsoft Corporation Bookmarking and placemarking a displayed document in a computer system
US6957233B1 (en) 1999-12-07 2005-10-18 Microsoft Corporation Method and apparatus for capturing and rendering annotations for non-modifiable electronic content
US6882334B1 (en) 1999-12-14 2005-04-19 Gateway, Inc. Apparatus and method for detection of communication signal loss
US7243299B1 (en) 2000-04-21 2007-07-10 Microsoft Corporation Methods and apparatus for displaying multiple contexts in electronic documents
US6910208B1 (en) * 2000-04-25 2005-06-21 Microsoft Corporation System and method of providing replaceable and extensible user interface for the installation of a suite of applications
US20020087579A1 (en) * 2000-06-23 2002-07-04 Alan Chasanoff Object universe
US7234108B1 (en) 2000-06-29 2007-06-19 Microsoft Corporation Ink thickness rendering for electronic annotations
US6825861B2 (en) * 2001-01-08 2004-11-30 Apple Computer, Inc. Three state icons for operation
US7454714B2 (en) * 2001-03-30 2008-11-18 Aol Llc, A Delaware Limited Liability Company Visually distinguishing menu items
US20020171675A1 (en) * 2001-05-15 2002-11-21 International Business Machines Corporation Method and system for graphical user interface (GUI) widget having user-selectable mass
AUPR701701A0 (en) * 2001-08-14 2001-09-06 Mcdonald, Nathan Document analysis system and method
US8239759B1 (en) * 2001-11-27 2012-08-07 Adobe Systems, Inc. System and method for editing documents using stored commands
EP1496451A3 (en) * 2003-05-16 2005-11-30 Sap Ag Computer system, searching method for in a computer system, a computer program product and an article of manufacture
KR100970729B1 (ko) * 2003-12-26 2010-07-16 삼성전자주식회사 입력 관리 장치 및 방법
JP4630672B2 (ja) * 2004-01-23 2011-02-09 キヤノン株式会社 アクセス制御装置及びアクセス制御方法及びアクセス制御プログラム
US7096142B2 (en) * 2004-04-02 2006-08-22 Agilent Technologies, Inc. Report format editor for circuit test
US7310783B2 (en) * 2004-05-10 2007-12-18 International Business Machines Corporation Single submission buttons
US7477239B2 (en) * 2004-10-29 2009-01-13 Xerox Corporation Reconfigurable lighted keypad
US7818755B1 (en) 2004-12-22 2010-10-19 Apple Inc. Window server event taps
EP1839107A4 (en) * 2005-01-12 2009-04-29 British Columbia Ltd 602531 METHOD, SYSTEM, APPARATUS AND COMPUTER-READABLE MEDIA FOR DIRECTING AN ENTRY ASSOCIATED WITH A KEYBOARD-TYPE DEVICE
US8552984B2 (en) 2005-01-13 2013-10-08 602531 British Columbia Ltd. Method, system, apparatus and computer-readable media for directing input associated with keyboard-type device
US7774299B2 (en) * 2005-05-09 2010-08-10 Microsoft Corporation Flow computing
US20070061714A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Quick styles for formatting of documents
US7895170B2 (en) * 2007-02-14 2011-02-22 Ricoh Company, Ltd. Document management apparatus, document management program, and recording medium
US8954887B1 (en) * 2008-02-08 2015-02-10 Google Inc. Long press interface interactions
US8311806B2 (en) 2008-06-06 2012-11-13 Apple Inc. Data detection in a sequence of tokens using decision tree reductions
US8738360B2 (en) 2008-06-06 2014-05-27 Apple Inc. Data detection of a character sequence having multiple possible data types
US8489388B2 (en) 2008-11-10 2013-07-16 Apple Inc. Data detection
US9195365B2 (en) * 2009-03-25 2015-11-24 Honeywell International Inc. Automatic configurator of display objects
US20110239146A1 (en) * 2010-03-23 2011-09-29 Lala Dutta Automatic event generation
US20120324377A1 (en) * 2011-06-15 2012-12-20 Microsoft Corporation User interface extensibility for web application development tool
US10228819B2 (en) 2013-02-04 2019-03-12 602531 British Cilumbia Ltd. Method, system, and apparatus for executing an action related to user selection
US10222944B1 (en) * 2016-02-24 2019-03-05 The Mathworks, Inc. Embedding user interface elements in documents containing code
US10949173B1 (en) 2018-10-29 2021-03-16 The Mathworks, Inc. Systems and methods for automatic code generation
CN115994008B (zh) * 2022-10-17 2023-08-01 上海神玑医疗科技有限公司 一种按钮装置软件功能的实现方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62194532A (ja) * 1986-02-21 1987-08-27 Hitachi Ltd 処理対象指示図柄表示装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4723209A (en) * 1984-08-30 1988-02-02 International Business Machines Corp. Flow attribute for text objects
US4829470A (en) * 1985-12-12 1989-05-09 International Business Machines Corp. Text flow around irregular shaped graphic objects
JPH01195568A (ja) * 1988-01-29 1989-08-07 Hitachi Ltd 電子化文書編集制御方式
JPH01234967A (ja) * 1988-03-16 1989-09-20 Hitachi Ltd 文書作成装置
US4931783A (en) * 1988-07-26 1990-06-05 Apple Computer, Inc. Method and apparatus for removable menu window
US5065347A (en) * 1988-08-11 1991-11-12 Xerox Corporation Hierarchical folders display
US5111395A (en) * 1989-11-03 1992-05-05 Smith Rodney A Automated fund collection system including means to eliminate duplicate entries from a mailing list
US5063600A (en) * 1990-05-14 1991-11-05 Norwood Donald D Hybrid information management system for handwriting and text

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62194532A (ja) * 1986-02-21 1987-08-27 Hitachi Ltd 処理対象指示図柄表示装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934675A (ja) * 1995-07-14 1997-02-07 Nippon Telegr & Teleph Corp <Ntt> 3次元仮想協同空間におけるオブジェクト操作方式

Also Published As

Publication number Publication date
JPH07104765B2 (ja) 1995-11-13
EP0472444A3 (en) 1993-12-01
US5862395A (en) 1999-01-19
DE69129959D1 (de) 1998-09-17
EP0472444B1 (en) 1998-08-12
DE69129959T2 (de) 1999-02-11
EP0472444A2 (en) 1992-02-26

Similar Documents

Publication Publication Date Title
JPH0749759A (ja) コンピュータ駐在ソフトウエアシステムに対するユーザインタフェースとしての電子的ドキュメント
EP0793824B1 (en) User definable pictorial interface for accessing information in an electronic file system
US5613122A (en) Object-oriented operating system
RU2371758C2 (ru) Интерфейс программирования для компьютерной платформы
US7721254B2 (en) Programming interface for a computer platform
US5652884A (en) Method and apparatus for dynamic update of an existing object in an object editor
US5583761A (en) Method for automatic displaying program presentations in different languages
US8296654B2 (en) Automatic guide for data analysis
JP2752040B2 (ja) マルチメディア適用業務を作成する方法
US8386919B2 (en) System for displaying an annotated programming file
JP2002189595A (ja) リフレッシュ可能なWebクエリを作成するための統合された方法
US20060080607A1 (en) Extensible help facility for a computer software application
US5982365A (en) System and methods for interactively generating and testing help systems
JP2004005568A (ja) レガシー・アプリケーションの高速gui体裁更新
JPH07168710A (ja) プログラムを構成するためのシステム及び方法
JP2006228210A (ja) 既存のコンテンツを用いた、タスクを実行するためのアクティブコンテンツウィザード実行可能ファイルの生成
JPH05505262A (ja) コンピュータオペレーティング及びファイル管理システム用ファイル特徴付け
US9817811B2 (en) Web server system, dictionary system, dictionary call method, screen control display method, and demonstration application generation method
US7603624B2 (en) System and method for styling content in a graphical user interface control
US20030037310A1 (en) Visual programming tool and execution environment for developing computer software applications
Bier Embeddedbuttons: supporting buttons in documents
JPH064280A (ja) ウィズィウィグ式エディターでオブジェクトをユーザ制御する機能を備えたグラフィカル・ユーザ・インターフェース
JP2001318796A (ja) 内外イベントドリブン方式によるプログラム実行制御方法、記録媒体およびプログラム作成支援システム
JPH09305366A (ja) 画面表示最適化方法
WO1996015492A1 (en) Object-oriented operating system

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19960426

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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: 20071113

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20081113

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20091113

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20091113

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20101113

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20111113

Year of fee payment: 16

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111113

Year of fee payment: 16