(57)【特許請求の範囲】
【請求項１】
ダイアログに対してプレビュー能力を与える方法において、コンピュータをして、
アプリケーション及び電子文書が格納手段内に格納されており、前記アプリケーションが前記電子文書を表示手段上に表示させる手順、
前記アプリケーションが、前記格納手段内に格納されているダイアログルーチン内の開くルーチンをコールすることにより、前記表示手段上にユーザが入力可能な複数個のコントロールを含むダイアログを表示させる手順、
前記開くルーチンが前記表示されているダイアログの前記複数個のコントロールがプレビューコントロールを包含しているか否かを判別する手順、
前記プレビューコントロールが包含されていると判別された場合には、前記開くルーチンがダイアログコマンドマネージャーをインストールし且つ前記ダイアログコマンドマネージャーが前記アプリケーションによってその後に発生されるコマンドを受け取り、一方、前記プレビューコントロールが包含されていないと判別された場合には、前記格納手段内に格納されている通常のコマンドマネージャーが前記発生されたコマンドを受け取る手順、
を実行させることを特徴とする方法。
【請求項２】
請求項１において、ダイアログコマンドマネージャーでコマンドを処理する場合に、
ダイアログのコントロールによって発生されたコマンドをコマンドを格納するダイアログコマンドバッファ内に配置させ、
前記ダイアログのコントロールの状態又は状態変化に従って前記コマンドをドゥ又はアンドゥする、
ことを特徴とする方法。
【請求項３】
請求項２において、コマンドをドゥする場合に、そのコマンドのドゥ機能をコールすることを特徴とする方法。
【請求項４】
請求項２において、コマンドをアンドゥする場合に、前記コマンドのアンドゥ機能をコールすることを特徴とする方法。
【請求項５】
請求項２において、更に、
前記ダイアログコマンドバッファ内に配置されるべきコマンドが既に前記ダイアログコマンドバッファ内のコマンドを複製するものであるあるか否かを判別する、
ことを特徴とする方法。
【請求項６】
請求項５において、更に、
前記ダイアログコマンドバッファ内に配置されるべきコマンドが既に前記ダイアログコマンドバッファ内におけるコマンドを複製するものであるか否かを判別した後に、前記コマンドが既にドゥされている場合に前記ダイアログコマンドバッファ内に既に存在するコマンドの複製をアンドゥする、
ことを特徴とする方法。
【請求項７】
請求項２において、ダイアログコントロールの状態又は状態変化に従ってコマンドをドゥ又はアンドゥする場合に、
ダイアログのプレビューコントロールがオンである場合に前記ダイアログコマンドバッファに配置されるコマンドをドゥする、
ことを特徴とする方法。
【請求項８】
請求項２において、ダイアログコントロールの状態又は状態変化に従ってコマンドをドゥ又はアンドゥする場合に、
ダイアログのプレビューコントロールがオフである場合に前記ダイアログコマンドバッファに配置されるコマンドをドゥすることがない、
ことを特徴とする方法。
【請求項９】
請求項２において、ダイアログコントロールの状態又は状態変化に従ってコマンドをドゥ又はアンドゥする場合に、
ダイアログのプレビューコントロールの状態がオフからオンへ変化する場合に、ドゥされなかったダイアログコマンドバッファ内のコマンドをドゥする、
ことを特徴とする方法。
【請求項１０】
請求項２において、ダイアログコントロールの状態又は状態変化に従ってコマンドをドゥ又はアンドゥする場合に、
ダイアログのプレビューコントロールの状態がオンからオフへ変化する場合に、前記ダイアログコマンドバッファ内のコマンドをアンドゥする、
ことを特徴とする方法。
【請求項１１】
請求項２において、ダイアログコントロールの状態又は状態変化に従ってコマンドをドゥ又はアンドゥする場合に、
ダイアログコントロールがダイアログが閉じた後にダイアログコマンドが効果を有すべきであることを表す場合に、ドゥされなかったダイアログコマンドバッファ内のコマンドをダイアログが閉じる場合にドゥする、
ことを特徴とする方法。
【請求項１２】
請求項１１において、更に、
ダイアログが閉じた後にダイアログコマンドが効果を有すべきであることを表すダイアログコントロールが選択された場合に、ダイアログコマンドバッファ内のコマンドをドゥ又はアンドゥすることの可能な単一のマクロコマンドへバンドルする、
ことを特徴とする方法。
【請求項１３】
請求項１２において、更に、コマンドを単一のマクロコマンドへバンドルした後に、前記単一のマクロコマンドをユーザがアンドゥすることを可能とする選択をメニュー内に形成することを特徴とする方法。
【請求項１４】
請求項２において、ダイアログコントロールの状態ｊ又は状態変化に従ってコマンドをドゥ又はアンドゥする場合に、
ダイアログが閉じた後にダイアログコマンドが効果を有すべきでないことをダイアログコントロールが表す場合に、ダイアログがダイアログコマンドバッファ内のコマンドを閉じる場合にアンドゥする、
ことを特徴とする方法。
【請求項１５】
ダイアログに対してプレビュー能力を与えるために、コンピュータをして、
アプリケーション及び電子文書が格納手段内に格納されており、前記アプリケーションが前記電子文書を表示手段上に表示させる手順、
前記アプリケーションが、前記格納手段内に格納されているダイアログルーチン内の開くルーチンをコールすることにより、前記表示手段上にユーザが入力可能な複数個のコントロールを含むダイアログを表示させる手順、
前記開くルーチンが前記表示されているダイアログの前記複数個のコントロールがプレビューコントロールを包含しているか否かを判別する手順、
前記プレビューコントロールが包含されていると判別された場合には、前記開くルーチンがダイアログコマンドマネージャーをインストールし且つ前記ダイアログコマンドマネージャーが前記アプリケーションによってその後に発生されるコマンドを受け取り、一方、前記プレビューコントロールが包含されていないと判別された場合には、前記格納手段内に格納されている通常のコマンドマネージャーが前記発生されたコマンドを受け取る手順、
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
請求項１５において、前記ダイアログコマンドマネージャーがコンピュータをして、
ダイアログコマンドバッファ内にコマンドを配置させる、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１７】
請求項１６において、前記ダイアログコマンドマネージャーがコンピュータをして、
プレビューコントロールがオンである場合にダイアログコマンドバッファに配置されるべきコマンドをドゥさせる、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１８】
請求項１５において、前記ダイアログコマンドマネージャーが、コンピュータをして、
プレビューコントロールがオフからオンへ変化された場合に前記ダイアログコマンドバッファ内のコマンドをドゥさせる、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１９】
請求項１５において、前記ダイアログコマンドマネージャーが、コンピュータをして、
プレビューコントロールがオンからオフへ変化された場合に前記ダイアログコマンドバッファ内のコマンドをアンドゥさせる、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２０】
請求項１５において、前記ダイアログコマンドマネージャーが、コンピュータをして、
ダイアログが閉じた後にダイアログコマンドが効果を有すべきであることをダイアログコントロールが表す場合にダイアログコマンドバッファ内のコマンドをダイアログが閉じる場合にドゥさせる、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２１】
請求項１５において、前記ダイアログコマンドマネージャーが、コンピュータをして、
前記ダイアログコマンドバッファ内のコマンドのバンドルしたマクロコマンドを発生させる、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２２】
請求項１５において、前記ダイアログマネージャーが、コンピュータをして、
ダイアログが閉じた後にダイアログコマンドが効果を有すべきであることをダイアログコントロールが表す場合にダイアログコマンドバッファ内のコマンドをダイアログが閉じた場合にアンドゥさせる、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はソフトウエアユーザインターフェースに関するものであって、更に詳細には、ダイアログに対してプレビュー能力を与える方法及びコンピュータプログラムに関するものである。
【０００２】
【従来の技術】
アプリケーションプログラムのグラフィックユーザインターフェース（ＧＵＩ）はアプリケーションとユーザとの間のインタラクション即ち対話を簡単化させる。プログラマーは、例えばマイクロソフトファウンンデーションクラス（ＭＦＣ）ライブラリのようなライブラリ内において見つかった予め作成されているＧＵＩコントロール（制御要素）を組立て且つ適合させることによってアプリケーションＧＵＩを構築する。例えばボタン及びスクロールバー等のコントロールは、プログラマーが変更し且つ補充することの可能な予め定義した動作を行なう。プログラマーはビジュアル開発ツール（例えば、ビジュアルＣ＋＋）によって、又はコントロール手順をコール即ち呼び出す命令をエンターすることによって、アプリケーションＧＵＩに対してコントロールを付加することが可能である。
【０００３】
ダイアログパネルコントロール（ダイアログ）は他のコントロールを包含するボックスのイメージを発生する。ダイアログはモード形式のものとすることが可能である。モード形式のダイアログは、ユーザがそのダイアログを閉じるまで、そのダイアログと関連するもの以外のアプリケーションコントロールとユーザが対話することを防止する。
【０００４】
プログラマーは、概念的に関連した項目からデータを受取り且つ表示するためにユーザインターフェースに対してダイアログを付加することが可能である。例えば、ドローイングアプリケーションは、ユーザが描画したオブジェクトに関してより多くの情報を所望する場合にダイアログを表示する場合がある。このダイアログは、例えば描画したオブジェクトのカラー即ち色及び寸法のような描画したオブジェクトの属性を表示し且つユーザがそれらを変更することを可能とする場合がある。
【０００５】
プレビューコントロールを包含するダイアログはプレビュー可能なダイアログとして知られている。しばしば「プレビュー（ｐｒｅｖｉｅｗ）」という名前が付けられているチェックボックスコントロールであるプレビューコントロールは、ダイアログを閉じる前にダイアログコントロールが有する効果をユーザが見ることを可能とする。例えば、ユーザはダイアログを介して描画したオブジェクトのカラー（色）を変更することを希望する場合がある。ダイアログのプレビューコントロールをオンさせることによって、ユーザは異なるカラー（色）を選択し且つ特定のカラーに決定する前に各カラーでレンダリングさせたオブジェクトを見ることが可能である。
【０００６】
プレビュー可能なダイアログを開発することは、時折、かなりのプログラミング努力を必要とする場合がある。例えば、ある開発環境においては、プログラマーが、プレビュー可能なダイアログをサポートするための特別の手順を書くことを必要とする場合がある。
【０００７】
【発明が解決しようとする課題】
本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、ダイアログに対してプレビュー能力を与えるための改良した方法及びコンピュータプログラムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
一般的に、１つの側面においては、本発明は、ダイアログに対してプレビュー能力を与える方法を提供しており、該方法は、ダイアログがプレビューコントロールを有するか否かを判別し、且つ、ダイアログがプレビューコントロールを有するか否かの判別に基づいて、プレビュー能力を与えるためにダイアログのコントロールによって発生されたコマンドを処理する、ことを特徴としている。
【０００９】
本発明の具体化においては、以下の特徴のうちの１つ又はそれ以上を有することが可能である。本方法は、プレビューコントロールが存在するものと判別される場合にはダイアログコマンドマネージャーで、且つプレビューコントロールが存在しない場合にはコマンドマネージャーによってダイアログコントロールによって発生されたコマンドを処理することが可能である。本方法は、ダイアログコントロールによって発生されたコマンドをダイアログコマンドバッファ内に配置させ、且つダイアログコントロールの状態又は状態変化に従って該コマンドをドゥ（ｄｏ）即ち達成すること、又はアンドゥ（ｕｎｄｏ）即ち元に戻す（取消し）ことが可能である。本方法は、ダイアログコマンドバッファ内に配置されるべきコマンドが既にダイアログコマンドバッファ内に存在するコマンドを複製するものであるか否かを判別し、且つ該複製コマンドを除去することが可能である。本方法は、ダイアログコマンドキュー内の複数個のコマンドを単一のマクロコマンドへバンドル即ち束ねることが可能である。
【００１０】
一般的に、別の側面においては、本発明は、ダイアログがプレビューコントロールを有するか否かを判別し、ダイアログコマンドマネージャーにおいてプレビューコントロールを持ったダイアログによって発生されたコマンドを処理し、且つコマンドマネージャーにおいてプレビューコントロールを有することのないダイアログによって発生されたコマンドを処理することによって、ダイアログに対してプレビュー能力を与えるコンピュータプログラム製品を提供している。
【００１１】
一般的に、別の側面においては、本発明は、ダイアログコントロールによって発生されたコマンドを自動的にバッファし且つ操作することによって異なるダイアログに対してプレビュー能力を与えるソフトウエアライブラリルーチンを提供している。
【００１２】
本発明の利点としては以下の１つ又はそれ以上のものを有することが可能である。ダイアログがプレビューコントロールを有するか否かを判別した後にプレビュー能力を与えることは、開発者が単にプレビューコントロールを付加し且つ除去することによってプレビューコントロールをダイアログに対して付加及び除去することを可能とする。開発者はプレビューコントロールがどのようにして実現されるかについて知ることは必要ではない。更に、プレビュー能力は、典型的に開発者が既に書いた機能の実行及び非実行をダイアログコマンドが供給することを必要とするに過ぎない。従って、開発者は、各コマンドに対する特別のプレビュー機能を書くことは必要でない場合がある。
【００１３】
【発明の実施の形態】
図１を参照すると、コンピュータプラットフォーム１０は、ディスプレイ１２と、キーボード１６と、マウス又はその他のポインティング装置１８と、デジタルコンピュータ２０とを有している。デジタルコンピュータ２０は、メモリ２２、プロセサ２４、大量記憶（格納）装置２６（即ち、ハードディスクドライブ、フロッピィディスクドライブ等）、及び例えばメモリバス及び周辺バス（不図示）のようなその他の一般的な構成要素を有している。
【００１４】
大量記憶装置２６は、アプリケーション３０（例えば、ワードプロセサ）を表わす電子信号及びテキスト、サウンド、イメージ等を表わすデータ信号を有する電子文書２８を格納する。アプリケーション３０及び電子文書２８は操作の過程においてメモリ２２及びプロセサ２４へ転送される。
【００１５】
アプケーション３０はユーザインターフェース３１を包含している。ユーザインターフェース３１はディスプレイ１２上において人間が知覚可能な形態１４で電子文書２８を表示するコントロールを有している。ユーザインターフェース３１は、又、その他のコントロール（例えば、ボタン、チェックボックス、メニュー等）を取扱う。ユーザはキーボード１６及びマウス１８を介してこれらのコントロールを操作することが可能である。
【００１６】
多くのアプリケーションは共通の機能を共用する。これらの共通の機能は、必要な場合に異なるアプリケーション３０がアクセスすることの可能なダイナミックリンクライブラリ（ＤＬＬ）内に存在することが可能である。これらの共通の機能は、例えばコマンドマネージャー３８、コマンドアービトレイター（仲裁器）３４、コマンドキュー３６をサポートするルーチン等のアプリケーションコマンド（以下に説明する）を取扱うルーチン３２を有している。ＤＬＬは、更に、一般的なユーザインターフェースコントロールを実現する命令を有している。ダイアログルーチン４０はダイアログコントロールを実現する。これらのルーチン４０は、開く４２ルーチン、ダイアログコマンドマネージャー４６、閉じる４４ルーチンを有している。
【００１７】
次に、図２を参照すると、ダイアログ４８は、ユーザがボックス内にテキストを入力することを可能とするテキストコントロール５０と、ユーザが多数の値のリストから選択することを可能とするプルダウンメニュー５８と、ＯＫボタン５２と、キャンセルボタン５４と、プレビューコントロール５６とを有することが可能である。プログラマーは、ダイアログコントロールに対して異なるコントロールを適合させ且つ付加させることによってこのダイアログを構築することが可能である。プログラマーは、プログラマーが他のコントロールを付加及び除去するのと同一の態様でプレビューコントロールを迅速に付加及び除去することが可能である（例えば、ビジュアル開発環境におけるパレットからコントロールをドラッグする）。従って、ダイアログの開発は、ダイアログのプレビュー能力とは独立的に行われる。更に、プログラマーはプレビューコントロールがどのようにして実現されるかを知ることは必要ではなく、即ち、プログラマーはプレビュー可能なダイアログを生成するために使用されるダイアログルーチンのいずれについての知識を有することは必要ではない。
【００１８】
次に、図３を参照すると、一般的に、例えばボタンの上をクリックすること等のコントロールの操作がコマンド６０を発生する。コマンド６０は電子文書又はユーザインターフェース自身に影響を与えることが可能である。コマンド６０はコマンドＩＤ６２を有している。コマンドＩＤ６２はコマンドのタイプを表わす数字である。例えば、ＭｏｖｅＣｍｄ、即ち移動コマンドは、１のコマンドＩＤを有することが可能であり、一方ＲｏｔａｔｅＣｍｄ、即ち回転コマンドは２のコマンドＩＤを有することが可能である。コマンドＩＤ６２は各コマンドに対してユニークなものである必要はなく、即ち、プログラマーは、両方のコマンドが同じコマンドＩＤ６２を共用するようにさせることが可能である。
【００１９】
コマンド６０は幾つかの異なった関連するルーチンを包含している。殆どのコマンド６０はドゥ（ｄｏ）ルーチン６４及びアンドゥ（ｕｎｄｏ）ルーチン６６を与える。アンドゥルーチンはドゥルーチンと反対である。ドゥルーチン６４が行う動作は、アンドゥルーチン６６が逆にさせる。例えば、「ＤＯ  ＭｏｖｅＣｍｄ」コマンドは、描画したオブジェクトをスクリーン上で移動させ、一方「ＵＮＤＯ  ＭｏｖｅＣｍｄ」コマンドは、その描画したオブジェクトをその元の位置へ復帰させる。従って、アンドゥ（ｕｎｄｏ）ルーチン６６は、ユーザが意図しなかったコマンドを「取消す」することを可能とする。
【００２０】
次に、図４を参照すると、アプリケーションが、多分、コントロールのユーザの操作に応答してコマンド６８を発生する場合に、コマンドの通常の処理が開始される。コマンドキューは該コマンドを格納する（７０）。コマンドアービトレイターはコマンドキューからコマンドを検索し且つそのコマンドをコマンドマネージャーへ送る（７２）。コマンドマネージャーは、例えば、コマンドのドゥ（ｄｏ）ルーチンである該コマンドのルーチンのうちの１つをコール即ち呼び出すことによって該コマンドを実行する（７４）。
【００２１】
次に、図５を参照すると、モード型プレビュー可能ダイアログが通常のコマンド処理を変更させる。アプリケーションは、開く４２ルーチンをコールすることによってダイアログを発生させる。開く４２ルーチンは、表示中のダイアログがモード型であり且つプレビューコントロールを有するか否かを判別する（７６）。該ダイアログがこれらの基準を満足するものでない場合には、通常通りにコマンド処理が継続して行われる（７８）。然しながら、該ダイアログがモード型であり且つプレビューコントロールを有している場合には、開く４２ルーチンがダイアログコマンドマネージャーをインストールし（８０）且つアプリケーションによってその後に発生されるコマンドは通常のコマンドマネージャーではなくダイアログコマンドマネージャーへ送られるべきであることをコマンドアービトレイターへ通知する。
【００２２】
次に、図６を参照すると、ダイアログ閉じるルーチン４４が、ユーザがモード型プレビュー可能ダイアログを終了した場合に、通常のコマンド処理へ復帰する。閉じる４４ルーチンは、ダイアログコマンドマネージャーが開くルーチンによってインストールされたか否かを判別するためのチェックを行う（８２）。そうである場合には、閉じる４４ルーチンはコマンドマネージャーを再度インストールし（８６）且つコマンドキューから通常のコマンドマネージャーへコマンドの送給を再開することをコマンドアービトレイターへ通知する。ダイアログコマンドマネージャーがインストールされなかった場合には（８４）、プロセサは何も行わず且つ単に存在しているだけである。
【００２３】
次に、図７を参照すると、ダイアログコマンドマネージャー４６はダイアログコマンドキュー８８、ダイアログコマンドルーチン９６、プレビューオンルーチン９８、プレビューオフルーチン１００、キャンセルルーチン１０２、ＯＫルーチン１０４を有している。ダイアログコマンドキュー８８はダイアログコントロールによって発生されたコマンドを格納する。ダイアログコマンドルーチン９６はダイアログコマンドマネージャー４６によって受取られたコマンドをダイアログコマンドキュー８８の上にプッシュ即ち押し上げる。ダイアログコマンドマネージャー４６の幾つかの実施例ではダイアログコマンドキューポインタ９０を使用する。ダイアログコマンドキューポインタ９０は実行されていないダイアログコマンドキュー８８内の最も早いコマンドを表わす。全てのコマンドが実行されている場合には、該ポインタはダイアログコマンドキュー８８の頂部に留まる。次に、図８を参照すると、ダイアログコマンドマネージャー４６の１つの実現例は、ダイアログコマンドキューポインタを使用することのないルーチンを有している。この実施例においては、ダイアログのプレビューコントロールがオフである場合には、電子文書はプレビュー可能ダイアログが開かれる前に存在していた状態で提供される。プレビューコントロールがオンである場合には、該電子文書はダイアログコントロールによって発行されたコマンドの効果を示す。
【００２４】
ダイアログコマンドルーチン９６はダイヤログコントロールによって発行された殆どのコマンドを取扱う。ルーチン９６は、新たに受取られたコマンドがダイヤログコマンドキュー内に既に格納されているコマンドと同一のコマンドＩＤを有するものであるか否かを判別するためのチェックを行う（１０６）。そうである場合には、該ルーチンは該キューから該旧いコマンドを除去する（１０８）。このことは繰り返されるコマンドが累積的な効果を有することを防止する。例えば、ユーザがイメージを５個のピクセル分移動させるボタンを１０回クリックした場合に、上に概説したステップは描画したオブジェクトを５０個のピクセル分ではなく５個のピクセル分移動させるに過ぎない。ダイアログコマンドキューから重複するコマンドを除去した後に（１０８）、プレビューコントロールがオンである場合には（１１０）、該ルーチンは電子文書からその効果を除去するために該旧いコマンドをアンドゥ（ｕｎｄｏ）せねばならない（１１２）。
【００２５】
新たなコマンドがダイアログコマンドキュー内に以前に格納されたか否かに拘らずに、該ルーチン９６はダイアログコマンドキュー上に新たなコマンドをプッシュ即ち押し込む（１１４）。プレビューコントロールがオンである場合には（１１６）、ルーチン７４は、該コマンドをドゥ（ｄｏ）、即ち達成させる（１１８）。
【００２６】
プレビューオンルーチン９８は、ユーザが、例えば、ボックスをチェックすることによってそれをオンにセットした場合にプレビューコントロールによって発行されたコマンドを取扱う。プレビューオンルーチン９８は、ダイアログコマンドキュー内の全てのコマンドをドゥ即ち処理することによって応答する（１２０）。このことは電子文書（又は、その他のコマンドのターゲット）をダイアログコントロールによって発行された全てのコマンドを反映する状態とさせる。例えば、ユーザがイメージを回転させ且つシェーディング即ち陰影を付加させた場合に、その文書はユーザがプレビューコントロールをオンにセットした後に両方の変更を反映させる。
【００２７】
プレビューオフルーチン１００は、ダイアログコマンドキュー内の各コマンドをアンドゥ（ｕｎｄｏ）即ち元に戻す（取消し）ことを行う（１２２）。このことは電子文書を、ダイアログコントロールによって発生されたコマンドが発生されなかった場合に存在していた状態へ復帰させる。上の例に基づいて続けて説明すると、該文書はイメージをシェーディングなしとさせ且つそれをその元の配向状態へ戻すように回転させる。
【００２８】
キャンセルルーチン１０２はユーザがキャンセルボタンをクリックする場合に発生されるコマンドを取扱う。キャンセルルーチン１０２はダイアログコマンドが有していた可能性のある全ての効果を消去させる。プレビューコントロールがオンである場合には（１２４）、消去は各ダイアログコマンドキューコマンドをアンドゥすることを包含している（１０２）。ダイアログコントロールによって発行されたコマンドがドゥされていないことを確保した後に、該ルーチンは閉じるルーチンをコールする。
【００２９】
ＯＫルーチン１０４はユーザがＯＫボタンをクリックした場合に発生されるコマンドを取扱う。このことは、ユーザが、電子文書がダイアログコントロールによって発行された全てのコマンドを反映するものであることを所望することを表わしている。プレビューコントロールがオンであった場合には（１３０）、全てのコマンドは既にドゥされており且つ電子文書は、既に、ダイアログコマンドの全てを反映する。プレビューコントロールがオフであった場合には（１３０）、ＯＫルーチン１０４は各ダイアログコマンドキューコマンド１１０をドゥする。電子文書が全てのダイアログコマンドキューコマンドを反映するものであることを確保した後に、該ルーチンは、ダイアログコマンドキューコマンドをリドゥ（ｒｅｄｏ）即ちやり直し又はアンドゥ（ｕｎｄｏ）即ち元に戻す（取消し）ことの可能な単一のマクロコマンドへバンドル化即ち束ねる（１３４）。次いで、ＯＫルーチン１０４は、ユーザがメニュー選択を選択することによってダイアログの全ての効果をアンドゥ（ｕｎｄｏ）即ち元に戻すことを可能とする「ｕｎｄｏ［ダイアログ名］」のアプリケーションメニュー内のメニュー選択を発生する（１３４）。該アプリケーションは、又、ユーザが、該バンドル内の各コマンドをドゥ（ｄｏ）即ち達成させることを可能とする「ｒｅｄｏ  ［ダイアログ名］」コマンド（不図示）を発生することが可能である。次いで、ＯＫルーチンは閉じるルーチンをコール即ち呼び出す。
【００３０】
次に、図９を参照すると、ダイアログコマンドマネージャー４６の別の実施例は、どのコマンドがドゥ即ち達成されたかを追従するためにダイアログコマンドキューポインタを使用する。この実施例においては、プレビューコントロールをオンにセットすると、プレビューコントロールがオフである間に発行されたコマンドをドゥ（ｄｏ）即ち処理させる。ダイアログコマンドマネージャー４６のこの実施例は、図８に関連して説明した実施例におけるものと同一の名前のルーチンを実行するが、異なった態様でそれらを実行する。
【００３１】
ダイアログコマンドルーチン９６は、ダイアログコマンドキュウ内の各コマンドがユニークなコマンドＩＤ１０６，１０８，１１０，１１２，１１４を有するものであることを確保する。然しながら、プレビューコントロールがオンであることを判別した後に（１１６）、該ルーチンは新たなコマンドをドゥ（ｄｏ）即ち処理するばかりではなく、全てのコマンドがドゥ（ｄｏ）即ち処理されているので、ダイアログコマンドキューポインタをダイアログコマンドキューの頂部へセットする。
【００３２】
プレビューオンルーチン９８は、ダイアログコマンドキュー内の全てのコマンドをドゥ（ｄｏ）即ち処理する代わりに、ダイアログコマンドキューの頂部に到達するまで該ポインタの現在の位置からの各コマンドをドゥ（ｄｏ）即ち処理する。このことは、ダイアログコマンドキューポインタをダイアログコマンドキューの頂部に残存させる。
【００３３】
キャンセルルーチン１２４は、ダイアログコマンドキュー内のどのコマンドもドゥ（ｄｏ）即ち処理されることがないことを確保するために、プレビューコントロールがオンである場合にはダイアログコマンドキュー内の全てのコマンドをアンドゥ（ｕｎｄｏ）即ち元に戻す（取消す）ことを必要とするものではない。その代わりに、ルーチン１２４は閉じるルーチン１２８をコールする前にダイアログコマンドキューポインタによって表わされるようにドゥ即ち処理された各コマンドをアンドゥ（ｕｎｄｏ）即ち元に戻すことを必要とするに過ぎない（１４８）。
【００３４】
同様に、ＯＫルーチン１０４は、各コマンドがドゥ即ち処理されることを確保するために、ダイアログコマンドキュー内の全てのコマンドをドゥ（ｄｏ）即ち処理することを必要とするものではない。その代わりに、ルーチン１０４はダイアログコマンドキューポインタの現在の位置からダイアログコマンドキューの頂部へ全てのコマンドをドゥ（ｄｏ）即ち処理することを必要とするに過ぎない。重要なことであるが、上述したダイアログコマンドマネージャーの両方の実施例はコマンドＤＯ又はＵＮＤＯルーチンを使用するに過ぎない。従って、プログラマはプレビュー可能性をサポートするために何等特別の共通のルーチンを書くことが必要なものではない。
【００３５】
上述したダイアログコマンドマネージャーの異なる実現例は異なるルーチンを有するものであるが、両方ともユーザが両者の間で選択を行うことを可能とするために１つのアプリケーション内に包含させることが可能である。
【００３６】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【図１】  グラフィカルユーザインターフェースを有するアプリケーションを稼動させるのに適したコンピュータプラットフォームを示した概略ブロック図。
【図２】  ダイアログウインドウを示した概略図。
【図３】  コマンドの概略ブロック図。
【図４】  通常のアプリケーションコマンド処理を示したフローチャート。
【図５】  ダイアログ開くルーチンがどのようにして通常のアプリケーションコマンド処理を変更させることが可能であるかを示したフローチャート。
【図６】  ダイアログ閉じるルーチンがどのようにして通常のアプケーションコマンド処理を復帰させることが可能であるかを示したフローチャート。
【図７】  ルーチンと、ダイアログコマンドキューと、ダイアログコマンドキューポインタとを有するダイアログコマンドマネージャーを示した概略図。
【図８】  ダイアログコマンドキューポインタを使用することなしにプレビュー可能なダイアログコマンドを取扱うダイアログコマンドマネージャールーチンを示したフローチャート。
【図９】  ダイアログコマンドキューポインタを使用するダイアログコマンドマネージャールーチンを示したフローチャート。
【符号の説明】
４８  ダイアログ
５０  テキストコントロール
５２  ＯＫボタン
５４  キャンセルボタン
５６  プレビューコントロール
５８  プルダウンメニュー
【図１】
0004392887.tif 000002
【図２】
0004392887.tif 000003
【図３】
0004392887.tif 000004
【図４】
0004392887.tif 000005
【図５】
0004392887.tif 000006
【図６】
0004392887.tif 000007
【図７】
0004392887.tif 000008
【図８】
0004392887.tif 000009
【図９】
0004392887.tif 000010