# 推奨する統合方法

共通デスクトップ環境には、コンポーネントおよびガイドラインがあり、これに従う と、デスクトップ上でのアプリケーションと他のアプリケーションとの統合がうまく いきます。この章では、アプリケーションとデスクトップとの一貫性のレベルを高める ために使用することを推奨するコンポーネントとガイドラインの概要を説明します。

RDMAP.recin.mkr.2
RDMAP.recin.mkr.3
RDMAP.recin.mkr.9
RDMAP.recin.mkr.10
RDMAP.recin.mkr.11
RDMAP.recin.mkr.12
RDMAP.recin.mkr.13
RDMAP.recin.div.32b
RDMAP.recin.mkr.14

コンポーネントの統合とこの節で説明するガイドラインの他に、 RDMAP.BIntg.mkr.1で概説する基本的な統合方法 も参照してください。

推奨する統合方法の詳細については、プログラマーズ・ガイド を参照してください。

## ヘルプ・システム

共通デスクトップ環境のヘルプ・システムは、アプリケーション・ソフトウェア のオンライン・ヘルプを開発および表示するための完全なシステムです。これにより、 設計者は豊富なグラフィックとテキスト・フォーマット、ハイパーリンクを備えた オンライン・ヘルプを書くことができ、アプリケーションからヘルプ・システムへ アクセスできます。ヘルプ・システムは、ヘルプ機能をアプリケーションへ統合する ためのプログラマのツールキットを提供します。

オンライン・ヘルプの作成とアプリケーションへの統合は、共同作業で行われ ます。ユーザのヘルプ要求にアプリケーションがどのように応答するかは、開発者が 設計し実装します。設計者は、実際に表示されるヘルプ情報を構成し作成します。

ヘルプ・システムには、次のものが含まれます。

### 設計者用

- 共通デスクトップ環境のヘルプタグ・ マークアップ言語- オンライン・ヘルプの構成と内容をマークするためのテキスト・ファイルに使用する タグ・セット

- 共通デスクトップ環境のヘルプタグ・ソフトウェア- ヘルプタグ・ファイルを実行時のヘルプ・ファイルに変換するためのソフトウェア・ ツール・セット

- 共通デスクトップ環境のヘルプビュー・アプリケーション- オンライン・ヘルプを表示するためのビューア・プログラム

設計者はヘルプ・タグ・セットを使用し、Structured Graphic Markup Language (SGML)タグ規約に従って、ヘルプ・トピックを作成します。SGMLマークアップは、一次 データ・フォーマットです。コンパイルされた実行時の分散フォーマットは、SGMLに 準拠します。

ヘルプ・システムは、UNIXマニュアル・ページ、テキスト・ファイル、テキスト 文字列などのSGMLでないフォーマットもサポートします。

#### プログラマ用

- `DtHelp` プログラミング・ライブラリ- ヘルプ・ウィンドウを作成してアプリケーションと統合するためのアプリケーション・ プログラム・インタフェース(API)

- `DtHelp`
  ウィジェット-ヘルプ・ダイアログ・ボックスと簡易ヘルプ・ダイアログ・ ボックス（いずれもヘルプ・ライブラリの一部）を作成するための `DtHelpDialog`および`DtHelpQuickDialog` ウィジェット。

###
ライブラリおよびヘッダ・ファイル

ヘルプ・ライブラリ`libDtHelp`は、Motifに基づくヘルプ・ ダイアログの作成と管理をサポートします。`libDtHelp`ヘッダ・ ファイルは次のとおりです。

- `Dt/Help.h`

- `Dt/HelpDialog.h`

- `Dt/HelpQuickD.h`

### デモ・プログラム

`/usr/dt/examples/dthelp`にヘルプ・システム・デモが あります。デモの詳細については、 `README`ファイルを参照して ください。

#### 関連マニュアル

ヘルプ・システムの詳細については、関連するマニュアル・ページと ヘルプ・システム 設計者およびプログラマのためのガイドを 参照してください。

## ToolTalkメッセージ・サービス

共通デスクトップ環境は、
メッセージ・セットと呼ばれる２つの標準ToolTalkプロトコル を定義します。 メッセージ・セットは、送信側プロセスと処理側プロセスとで交換でき るメッセージの集まりです。これらのメッセージは、関連する要求および通知を記述 するものごとにグループ化されています。送信者および受信者は、同じプロセスにあって も異なるホストにあってもかまいません。メッセージ・セットには、ローレベルの詳細 に気をとられることなくプロトコルのセマンティクスだけに集中できるようにする関連 ユーディリティ機能があります。機能の中には、簡単にデフォルト動作に従えるように するものもあります。

デスクトップ・メッセージ・セットには、次の３つの領域 があります。

- ウィンドウ動作

- ファイル・アクセスおよびファイルの短期ライフサイクル 制御

- アプリケーション拡張言語

ウィンドウ動作の詳細については、 RDMAP.recin.mkr.4およびRDMAP.recin.mkr.5の項を参照 してください。ファイル・アクセスおよびファイルの短期ライフサイクル制御の詳細に ついては、 RDMAP.recin.mkr.8の項を参照してください。 `Do_Command`要求の実装は、アプリケーションの拡張言語に固有 のもので、ToolTalkメッセージ・サービスではサポートしません。

メディア・メッセージ・セットにより、アプリケーションが、任意のメディア のコンテナまたは、そのようなコンテナから起動できるメディア・プレイヤおよび エディタとなることができます。メディア・メッセージ・セットによって、コンテナ・ アプリケーションは、該当するメディアの型のフォーマットを知らなくても任意の メディアのドキュメントを作成、表示、編集、印刷できます。ToolTalkメッセージ・ サービスは、コンテナの要求を、指定されたメディアの型とオペレーション用のツール （ユーザが選択した）へ渡します。すでに実行中のツールのインスタンスがその要求を 処理するのに最適であれば、そのインスタンスが要求されます。 RDMAP.recin.mkr.7 およびRDMAP.recin.mkr.6を参照してください。

ToolTalkメッセージ・サービスは、次のようなメッセージ・セットをサポート します。

- デスク トップの処理

  デスクトップ要求の処理は、メッセージング統合の中で最も基本的なものです。 ToolTalkメッセージを送信するアプリケーションは、`tt_message_send()` または、`DtActionInvoke()`のいずれを呼び出す場合 も、デスクトップ要求を処理します。これによって、アプリケーションの現在の ディレクトリ、アイコンの状態、`$DISPLAY`などを、他の アプリケーションが設定または照会できます。詳細については、 `ttdt_open()`、`ttdt_session_join()`、 `ttdt_session_quit()`、`ttdt_close()` のマニュアル・ページを参照してください。

- デスクトップの送信

  アプリケーションを`ttsession`で起動し、ToolTalk要求を 処理するようにすると、このアプリケーションは要求送信者ではなく `ttsession`の子になります。アプリケーションは通常、送信者と 同じXの表示セッションで起動されますが、同じX11画面、または同じ現在のディレクトリ ・コンテキストにある必要はありません。アプリケーションがサーバ・プロセスとして 実装された場合、すでに特定の画面または特定のディレクトリ・コンテキストに表示され ています。

  デスクトップ要求を使用すると、アプリケーションの処理は、デスクトップ以外 でコマンド行の起動で継承される送信者の属性から継承できます。 このようにデスク トップ・メッセージ・セットを使用し、ハンドラのロケール、現在の作業ディレクトリ、 `$DISPLAY`をリセットしてください。これにより、入念にコード化 された受信アプリケーションが、送信者として同じX11画面に表示されます。要求ハンドラ は、要求送信者の現在のディレクトリとウィンドウのジオメトリを見つけることもでき ます。ウィンドウのジオメトリを知っていると、要求ハンドラのウィンドウが要求送信 者のウィンドウをできる限り隠さないようにすることができます。詳細については、 `ttdt_sender_imprint_on()`のマニュアル・ページを参照して ください。

- メディアの処理

  ToolTalkメッセージ・サービスは、エディタが処理するメディア型に対する標準 メディア要求を、処理しやすくします。詳細については、 `ttmedia_ptype_declare()`、 `ttdt_message_accept()`、 `ttmedia_load_reply()`、`ttmedia_Deposit()` のマニュアル・ページを参照してください。

- メディアの送信

  ToolTalkメッセージ・サービスは、コンテナのメディア要求送信と、ハンドラが 返す一連のドキュメントの改訂の管理を容易にします。コンテナがメディア・ハンドラ で実行中のToolTalkダイアログを処理していない場合は、ToolTalk APIを直接使用する のではなく、アクションAPIを使用してください。相当するアクション（[開く]と[印刷]） は、ToolTalkおよびToolTalk以外が検知するメディア・ハンドラと同等のハンドラを サポートする上位の概念を示します。詳細については、 `ttmedia_load()`および`ttdt_subcontract_manage()` のマニュアル・ページを参照してください。ほとんどの場合、コンテナ・ アプリケーションは`ttmedia_load()`ではなく `DtActionInvoke()`を使用して、オブジェクトのオペレーションを 実行するので注意してください。アクションによってToolTalkアプリケーションを起動 する方法の詳細については、ToolTalkメッセージの概要を参照し てください。

- デスクトップ・ファイル

  ToolTalkメッセージ・サービスは、ファイルに関するデスクトップのメッセージの 送受信を容易にします。これらのメッセージにより、アプリケーションがファイルへの アクセスを調整できるようになります。詳細については、 `ttdt_file_join()`、`ttdt_file_quit()`、 `ttdt_file_event()`、`ttdt_Get_Modified()`、 `ttdt_Save()`、`ttdt_Revert()`の マニュアル・ページを参照してください。

ToolTalkメッセージ・サービスをすでに使用しているアプリケーションの例は、 共通デスクトップ環境のアイコン・エディタ、メール・プログラム、テキスト・エディタ、 カレンダなどです。共通デスクトップ環境の他の部分では、メッセージを送信する アクションを定義することにより、ToolTalkメッセージ・サービスを間接的に使用 しています。

### ライブラリおよびヘッダ・ファイル

ToolTalkメッセージ・ライブラリは、`libtt`と呼ばれます。 `libtt`ヘッダ・ファイルは次のとおりです。

- `Tt/tt_c.h`

- `Tt/tttk.h`

### デモ・プログラム

ToolTalkメッセージ・サービスのデモは、 `/usr/dt/examples/tt`にあります。デモの詳細については、 `README`ファイルを参照してください。

#### 関連マニュアル

ToolTalkメッセージ・サービスの詳細については、関連するマニュアル・ページ とToolTalkメッセージの概要を参照してください。

## セッション・マネージャ

セッション・マネージャは、ICCCM 1.1 `
WM_COMMAND`および `
WM_SAVE_YOURSELF`
プロトコルをサポートし、 次のことを許可します。

- アプリケーションがログアウト時の 状態情報を保存する

- セッション・マネージャがログイン時にアプリケーション を再起動する

セッション・マネージャはAPIも提供し、アプリケーションがログアウト時および ログイン時の状態を保存および格納するのを補助します。

ログイン時にアプリケーションを再起動させるのは、セッション・マネージャの 役割です。これを行うには、再起動に必要なコマンドおよびコマンド行オプションを アプリケーションが、セッション・マネージャに通知しなければなりません。Xlibの `XSetCommand()`を使用して、アプリケーションのトップ・レベル・ ウィンドウに`WM_COMMAND`属性を設定してください。

セッション・マネージャがログアウト時などにセッションを保存する際に、 アプリケーションは、似たような状態での復元のために一部の情報を保存する必要が あります。セッション・マネージャは、セッションが保存されていることを アプリケーションに任意に通知することができます。このような通知が必要であること を、アプリケーションはセッション・マネージャに知らせなければなりません。 `WM_SAVE_YOURSELF`プロトコルをトップレベル・ウィンドウの `WM_PROTOCOLS`属性に登録し、通知を処理するコールバック・ プロシージャを設定することで実現します。これには `
XmAddWMProtocols()` および`
XmAddWMProtocolsCallback()`関数を使用します。 `WM_SAVE_YOURSELF`コールバックの処理中にどのような形であれ、 アプリケーションとユーザは、対話すべきではありません。（たとえば、[別名保存] ダイアログ・ボックスは、表示するべきではありません。）このコールバックは、 `WM_COMMAND`属性をトップレベル・ウィンドウに設定して、 セッション・マネージャに状態の保存が終了していることを通知しなければなりません。

アプリケーションが状態情報を保存できるようにするには、`
DtSessionSavePath()`関数を使用して、情報を保存するファイルの絶対パス 名を獲得してください。セッションの復元時は、`
DtSessionRestorePath()`関数を使用して、アプリケーションが状態を復元 するのに使用する状態ファイルの絶対パス名を獲得してください。

共通デスクトップ環境の
ワークスペース・マネージャは、アプリケーション のメイン・トップレベル・ウィンドウ（`WM_COMMAND`を含む） 属性を正しいワークスペース、ジオメトリ、アイコン状態に復元します。 アプリケーションに複数のトップレベル・ウィンドウがある場合、他の上位ウィンドウ の状態の復元は、アプリケーションが担当します。その他の情報については、 RDMAP.optin.mkr.5を参照してください。

### ライブラリおよびヘッダ・ファイル

デスクトップ・ライブラリ`libDtSvc`は、セッション管理用も 含めて多数のデスクトップAPIへアクセスできるようにします。 `Dt/Dt.h`および`Dt/Session.h`ヘッダ・ ファイルを取り込んで、セッション・マネージャAPIにアクセスしてください。

アプリケーションが任意のセッション・マネージャAPIを使用している場合、まず `
DtInitialize()`または `
DtAppInitialize()`を呼び出して`libDtSvc` ライブラリを 初期化しなければなりません。詳細については、`DtInitialize`(3) または`DtAppInitialize`(3)のマニュアル・ページを参照してくだ さい。

### デモ・プログラム

セッション・マネージャのデモは、 `/usr/dt/examples/dtsession`にあります。詳細については、 `README`ファイルを参照してください。

#### 関連マニュアル

セッション・マネージャの詳細については、関連するマニュアル・ページと プログラマーズ・ガイドを参照してください。

## ドラッグ＆ドロップ

共通デスクトップ環境は、Motif2.1ドラッグ＆ドロップAPIの一番上の階層上に ドラッグ＆ドロップAPIを提供し、デスクトップにおいて便利で一貫した相互運用可能 なドラッグ＆ドロップAPIをサポートします。共通デスクトップ環境ドラッグ＆ドロップ APIにより、開発者はドラッグ＆ドロップを容易に実現できます。ドラッグ＆ドロップが あれば、ユーザはディスプレイ上でグラブしたり、ドラッグしたり、他のオブジェクトに ドロップしてオブジェクトの場所の変更やデータ転送を行い、直接画面上でオブジェクト を処理できます。

Motif 2.1ドラッグ＆ドロップはローレベルの機能を提供しています。共通デスク トップ環境ドラッグ＆ドロップはこれらの機能のポリシーを取り込んでいます。

共通デスクトップ環境ドラッグ＆ドロップは、Motifドラッグ＆ドロップへの インタフェースを単純化するAPIとプロトコルから成り立っています。そして、 バッファ転送プロトコルやドラッグ・カーソル形状などのポリシーを実現します。共通 デスクトップ環境ドラッグ＆ドロップAPIを組み込みポリシーと共に使用して、一貫した 相互運用性を保証してください。共通デスクトップ環境ドラッグ＆ドロップ・ポリシー は、テキスト転送およびファイル名転送用のMotif2.1ドラッグ＆ドロップ・プロトコル と互換性があります。

共通デスクトップ環境ドラッグ＆ドロップは、データ転送にX選択機能を使用して います。適切なターゲットはすでに存在し、Xコンソーシアムに登録されています。２つ のデスクトップ・アプリケーションは、テキスト、ファイル名、データ転送のプロトコル によってデータを転送します。

既存のドラッグ＆ドロップのためのMotif 2.1 APIは柔軟性があり、したがって熟練 していない開発者には使用するのが幾分難しいところがあります。共通デスクトップ環境 ドラッグ＆ドロップAPIは、APIを単純で簡単に使用できるよういくつかの便利な機能を 提供しています。

- ドラッグ・アイコンの構成と形状を 管理します。

  共通デスクトップ環境のドラッグ＆ドロップには、Motif 2.1のドラッグ・アイコン を作成するデフォルトのソース、状態、操作アイコンのグラフィックがあります。

- バッファ転送プロトコルを定義します。

  Motif 2.1ドラッグ＆ドロップは、ファイル名とテキスト文字列だけのプロトコル を定義します。

- ドロップによるアニメーションを可能にします。

  ドロップを完了したときに呼び出される、アニメーション手続きをドロップ領域 が定義できます。

- `TEXT`および `FILE_NAME`転送のターゲットを列挙します。

- 重複して登録できます。

  テキストのドロップを受け入れる機能を残しておきながら、テキスト・ウィジェット をテキスト以外のデータ用にドロップ領域として登録することもできます。

- 優先順位の付いたドロップ・フォーマットを提供します。

  ドロップ領域でプロトコルを順に、優先順位が付けられます。

### ライブラリおよびヘッダ・ファイル

デスクトップ・サービス・ライブラリ`libDtSvc`は、ドラッグ ＆ドロップも含めたあらゆるデスクトップAPIへのアクセスを提供します。ドラッグ＆ ドロップAPIにアクセスするには、`Dt/Dt.h`および `Dt/Dnd.h`ヘッダ・ファイルを取り込んでください。

アプリケーションが任意のドラッグ＆ドロップAPIを使用している場合、まず `
DtInitialize()`または `
DtAppInitialize()`を呼び出して`libDtSvc`ライブラリを 初期化してください。詳細については、`DtInitialize`(3)または、 `DtAppInitialize`(3)のマニュアル・ページを参照してください。

### デモ・プログラム

ドラッグ＆ドロップのデモは、`/usr/dt/examples/dtdnd` にあります。詳細については、`README`ファイルを参照してください。

#### 関連マニュアル

共通デスクトップ環境ドラッグ＆ドロップの詳細については、関連するマニュアル ページとプログラマーズ・ガイドを参照してください。

## 国際化

共通デスクトップ環境は、シングルバイトおよびマルチバイトのロケールをサポート するよう国際化しています。開発者は、あらゆる共通デスクトップ環境プラット フォームで実行するため簡単ローカライズできる国際化アプリケーションを作成 することができます。

共通デスクトップ環境アプリケーション（ソースおよびバイナリの両方）は、 いろいろな言語および地域にローカライズでき、複数のべンダおよびハードウェア・ プラットフォームで使用できます。

- ラテン・アメリカ

- 西ヨーロッパ

- 日本

- 韓国

- 中国（繁体字と簡体字）

共通デスクトップ環境は、以下の規格のもと国際化機能を利用します。

- IEEE 1003.2-1992 (
  POSIX.2 Annex B)

- X Window System, Version 11 Release 6.2 (ロケール および国際化テキスト機能）

- Motif 2.1 （Motifクライアントの国際化および ローカライズ）

アプリケーションを国際化させる場合、マルチバイト文字の入出力をサポート していることを確認してください。CDEでは縦書きをサポートしています。また、 メッセージ・カタログを使用していて、コードを完全にローカライズできることも確認 してください。

### デモ・プログラム

`/usr/dt/examples/template`にある描画プログラムのデモ は、国際化されています。詳細については、`README`ファイルを 参照してください。

#### 関連マニュアル

共通デスクトップ環境国際化の詳細については、開発環境コンポーネントの マニュアル・ページと国際化対応　プログラマーズ・ガイド を参照してください。

## 標準フォント名

共通デスクトップ環境で定義された標準フォント名は、すべての共通デスクトップ 環境準拠システムで使用できることが保証されています。これらは実際のフォントを 示すものではありません。各システムのベンダが、最適に使用できるフォントに マップするための別名です。アプリケーションでこのフォント名のみを使用していれば、 あらゆる共通デスクトップ環境準拠システムで、最も近いフォントを使用できます。 これには、最も一般的な分野である型の設計および形式で使用できるXウィンドウ・ システムのフォント名を含みます。

標準フォント名は、異なる共通デスクトップ環境プラットフォームでは、通常 Xのフォント別名機能によって別のフォントにマップされます。これによって、異なる プラットフォーム上のさまざまなフォントから選択をしなければならないという問題から 解放されます。また、特定のベンダの共通デスクトップ環境の実装で、デフォルトの フォント・セットを使用できるようになります。

共通デスクトップ環境は２種類の標準フォントを定義します。アプリケーション・ フォントとインタフェース・フォントです。アプリケーション・フォントを アプリケーションからの出力に使用してください。Motifウィジェットおよびデスクトップ では、インタフェース・フォントを使用します。このデフォルト・フォントは、 変更しないでください。

### アプリケーション・フォント

少なくとも６種類のサイズが、すべての共通デスクトップ環境プラットフォーム で使用できます。各フォントは、標準フォント名８、１０、１２、１４、１６、１８、 ２４に関連しています。共通デスクトップ環境用XLFDフォントの記述は、次のようになり ます。

    -dt-application-*

上記のようなパターンを使用すれば有効です。

テキストの表示に使用されるフォントのデザインのバリエーションで最も一般的 なものは、serifとsans serif、およびプロポーショナルと固定幅文字の選択です。これ ら２つのデザインのバリエーションを組み合わせると、次の４つのデザインになります。

- serifでプロポーショナル

- sans serifでプロポーショナル

- serifで固定幅

- sans serifで固定幅

上記４つのデザインの一般例は、次のとおりです（順序は上記のとおりです）。

- Times Roman（タイムズ・ローマン）

- Helvetica（ヘルべチカ）

- Courier（クーリエ）

- Lucida Typewriter（ルシダ・タイプライタ）

これらのデザインには、（太さと傾斜の組み合わせによる）次のような４つの スタイルがあります。

- Plain（プレーン）

- Bold（ボールド）

- Italic（イタリック）

- Bold-italic（ボールド・イタリック）

上記の４つのデザインにはそれぞれ４つのスタイルがあるので、合計１６種類 のフォントが生成されます。この１６種類のフォントは、一般のデスクトップ・ コンピューティングで最も一般的に使用されるものです。たとえば、Times Roman （タイムズ・ローマン）、Helvetica（へルべチカ）、Courier（クーリエ）には、４つ のスタイルがありますが、シンボル・フォントと共に、 Adobe® 13つまりすべてのPostScriptプリンタに組み込まれ るフォントの最小セットを構成します。

アプリケーションは、正式なフォント・ファミリまたはフォント名を必要としま せんが、たとえば固定幅フォント、sans serifフォント、serifフォントなどの使用は 必要です。特定の共通デスクトップ環境プラットフォームに存在する正式フォント名 を知る必要はありません。共通デスクトップ環境標準フォントは、ベンダのプラット フォームで最適な特定のデザインの選択をデフォルトにしています。

アプリケーションの
`
app-defaults` ファイルでは、アプリケーションが必要とするフォント・リソース値として、標準 フォント名に対してXLFDフォント名を指定してください。このフォント名を使用しない 場合は、各共通デスクトップ環境プラットフォーム上の各アプリケーションに対して、 別の`app-defaults`ファイルを提供する必要があり ます`
`。

### インタフェース・フォント

インタフェース・フォントは、特定のプラットフォームで、デスクトップの外観 を定義するのに最適化されたフォントの小さなセットです。これらのフォントは、 ウィンドウ・タイトル、ボタン、メニュー、テキスト・フィールドなどに表示されてい る様に、少量の情報を明確にすばやく伝達します。

デスクトップおよびMotifツールキット・ウィジェットは、インタフェース・ フォントを使用します。アプリケーション・ウィンドウ内で、これらのフォントを直接 使用しないでください。

標準インタフェース・フォント名は、標準アプリケーション・フォント名とは 異なります。標準インタフェース・フォント名は、アプリケーション・フォント名の ように異なる共通デスクトップ環境プラットフォーム上では、別のフォントにマップ されます。インタフェース・フォント名には、次の３つのスタイルがあります。

- System: 読み専用テキスト（メニュー、ボタン、ラベルなど、限られた量のテキストに使用）

- User: エンド・ユーザが入力したテキスト、または`XmText`型および `DtTerm`型ウィジェットから構築されるオブジェクトに示される テキスト

- User bold: ユーザ・フォントと同じで、ボールド

上記のスタイルのサイズには、７種類のサイズがあります。
スタイル・マネージャを使用して、ユーザはデスクトップで使用するインタフェース・ フォントのサイズを選択することができます。

### デモ・プログラム

`/usr/dt/examples/template`にある描画プログラムのデモ は、独自のインタフェース・フォントを指定しません。共通デスクトップ環境Motif インタフェース・フォントの表示例を示します。ただし、このデモでは、アプリケーション ・フォントを利用していません。

#### 関連マニュアル

標準フォントの詳細については、関連するマニュアル・ページ、特に `DtStdAppFontNames(5)`および `DtStdInterfaceFontNames(5)`のXLFDフォント名のリストに 関する記述と、プログラマーズ・ガイドを参照してください。

## アプリケーションのエラー・メッセージの表示

共通デスクトップ環境のアプリケーションは、共通モデルに従ってエラー・ メッセージと警告を表示します。アプリケーションを実行しているユーザは、 メッセージはメッセージ・フッタ、エラー・ダイアログ・ボックス、警告ダイアログ・ ボックスのいずれかに表示され、詳細な記述は、適切にオンライン・ヘルプに示される と思っています。

この節では、アプリケーションのエラー・メッセージ表示規則を概説します。 メッセージ・テキストの処理方法ですので、エラー表示のガイドラインには正確に従って ください。たとえば、フロントパネルからアプリケーションを起動すると、ユーザは標準 エラーまたは、標準出力に送信されるメッセージを見ることができません。共通デスク トップ環境では、そのようなメッセージは、多くのユーザが定期的に調べないような ログ・ファイル(`$HOME/.dt/*log`)に出力されます。

### エラー・メッセージの表示方法

ユーザに警告、メッセージ、エラー状態を通知する場所を決定するときは、 次の規則に従ってください。

- 情報を示すメッセージの 場合は、アプリケーションのメッセージ・フッタにテキストを表示する (例: 「`MyDoc`ファイルをコピーしました。 」)

- エラーまたは、重大な警告についての メッセージの場合は（ユーザにとって重要な操作が失敗した場合のトラブル など）、エラー・ダイアログ・ボックスまたは、警告ダイアログ・ボックスに表示する。

### エラー・ダイアログに表示する情報

エラー・ダイアログまたは、警告ダイアログは、ユーザに次のような情報を示す 必要があります。

- 何が起こったか（ユーザの見地 から）

- なぜ起こったかをわかりやすく

- 問題の解決方法

### メッセージ・ダイアログをオンライン・ヘルプへリンクする方法

追加のバックグラウンド情報が必要な場合、またはエラーを完全に説明するのに ４、５行以上のダイアログが必要な場合は、ユーザを適切なオンライン・ヘルプの セクションに導くボタンを追加してください。

#### 関連マニュアル

アプリケーションにおけるエラー・メッセージの表示、およびメッセージ・ ダイアログのオンライン・ヘルプへのリンクの詳細については、 プログラマーズ・ガイドを参照してください。

### メッセージ・ログ採取の使用方法

メッセージ・ログ採取・サービスは、CDEアプリケーションのログをとります。この サービスによりユーザおよびシステム管理者は、問題の診断に使用するメッセージの 位置を知ることができます。

メッセージ・ログ採取サービスは、情報、標準エラー出力、デバッグ、警告、 エラーの５種類のメッセージ型をサポートします。メッセージのログをとるだけでなく、 APIは代替メッセージ・ログ採取ハンドラおよびメッセージ・ログ・ファイルを開く機能を サポートします。

## 印刷

CDE印刷機能は、主にXプリントを行うアプリケーションに使用されるものですが、 任意のCDEアプリケーションでも充分に使用できるよう汎用化されています。アプリケー ションのユーザは、通常ダイアログのセットを使用してファイルを印刷します。この ダイアログのセットは、ユーザが（たとえば）アプリケーションのプルダウン・メニュー から、ファイルの印刷を選択した時に起動します。

アプリケーション開発者は、印刷をサポートする次の２つの機能を使用すること ができます。

- DtPrint簡易関数：これらの関数は、印刷オプションの設定のユーザ・ダイアログ を提供します。この機能は、印刷の接続を行い維持し、印刷の設定データを保持します。

- 印刷ダイアログ・マネージャ：この処理は、Xプリント・サーバおよびXプリント・ アプリケーションとは異なり、プリンタおよびスプーラ固有のセットアップ・ダイアログ を提供します。

## ユーザ・カスタマイズの問題

この節では、アプリケーションのユーザ・インタフェースを設計するときのガイド ラインを示します。

### 使用する色の数

アプリケーションのユーザ・インタフェースを設計するときは、共通デスクトップ 環境がMotifおよびデスクトップ・ウィジェットに提供するデフォルトのカラー・ スキーマを無効にするようなカラーを設定しないでください。アプリケーション定義の カラーについては、次のカラーを使用して、他のデスクトップ・アプリケーションとの 共用を促進してください。

- 黒

- 白

- 赤

- 緑

- 青

- 黄

- シアン

- マゼンタ

- グレー（濃淡は、#de、#bd、#ab、#94、#73、#63、 #42、#21の８段階）

普通はカラーを指定する必要がなく、デスクトップのスタイル・マネージャで エンド・ユーザが選択したカラーを使用します。

### 使用するフォント

Motifウィジェットでは、共通デスクトップ環境が提供するフォントを使用し、 アプリケーションのウィンドウが他のデスクトップ・クライアントのウィンドウと同じ になるように、またユーザがスタイル・マネージャを使用してこれらのフォントのサイズ を変更できるようにしてください。提供されたフォントを、Motif `fontList`リソース仕様を変更して無効にし、ユーザ がアプリケーションでフォントをカスタマイズできるようにさせたければ、その機能を 追加しなければなりません。

共通デスクトップ環境標準アプリケーション・フォント名にあるフォントを使用 して、（Motifがウィジェット用に使用しているものとは別の）アプリケーションで使用 する`
app-defaults`ファイルのリソースを指定してください。そうすれば、 アプリケーションがすべての共通デスクトップ環境プラットフォームで適切なフォント を見つけ、プラットフォーム上への移植性が高まります。詳細については、 RDMAP.recin.mkr.12を参照してくださ い。

スタイル・マネージャは、Motifバージョン2.1以降を使用して書かれたアプリケーション のフォントしか管理しません。Motif 1.1（以前）のアプリケーションにはフォントは 正しく提供されません。これらのアプリケーション には、 `app-defaults`ファイルで独自のフォントを指定してくだ さい。

### 障害者への対応

この節では、ソフトウェア・アプリケーションを障害者が使用できるようにするた めのガイドラインを示します。

#### 身体的な障害への対応

通常はメニューやドラッグ＆ドロップなどで操作するアプリケーションの全機能 を、キーボードで操作できるようにし、身体的に障害のある人々が容易にアプリケーション を使用できるようにしてください。

#### 視覚障害への対応

視覚障害を持つ人にとってアプリケーションをより使い易いものにするために、 次のガイドラインに従ってください。

- アプリケーションのカラーをハード コードにしないでください。

- 線、ボーダ、シャドウの厚みなど、グラフィック属性を ハードコードにしないでください。これらの属性は、フォント・サイズによって大きさ を調整します。

- フォント・サイズおよびスタイルをハードコードにしない でください。

- すべてのウィジェットに記述名を付けて下さい。特に、 パレット項目やアイコンなど画面のラベルに表示されないウィジェットについては、 アプリケーション・コードで記述名をいれてください。そう すれば、画面読み込みソフトウェアが、記述情報を目の不自由なユーザにも提供できま す。

#### 聴覚障害への対応

聴覚障害を持つ人にとってアプリケーションをより使い易いものにするために、 次のガイドラインに従ってください。

- すべてのエンド・ユーザが、音による 通知を聞けるものと想定しないでください。

- 適宜、エンド・ユーザが情報を得る方法を、耳による合図 と目による合図と選択できるようにしてください。

- 情報の取得方法を、聴覚によるものだけに依存しないで ください。

- 聴覚による情報取得を行う場合の周波数とボリュームを、 エンド・ユーザが調整できるようにしてください。

#### 言語、知覚、その他の障害への対応

視覚、聴覚、身体的な障害に関するガイドラインは、言語、知覚、その他に障害の あるエンド・ユーザにとって役立つものです。可能な限り、ティアオフ・メニューや ユーザ構成のメニュー機能など、重要なアプリケーションの機能を取り込んでください。

### マウスのダブルクリックの間隔

エンド・ユーザにとってのアプリケーション間の一貫性を保つために、 アプリケーション、または`
app-defaults`ファイルにダブルクリックの間隔をハードコードにしないで ください。そうすれば、ユーザが
スタイル・マネージャでダブルクリック時間を変更すると、アプリケーションは、他の デスクトップ・アプリケーションと同様にその変更に従います。

### デモ・プログラム

`/usr/dt/examples/template`にある描画プログラムのデモ は、共通デスクトップ環境のデフォルトのカラーとフォントを使用します。このため、 ユーザはスタイル・マネージャを使用し、このプログラムのカラーとフォントを カスタマイズできます。詳細については、`README`ファイルを参照 してください。

#### 関連マニュアル

ユーザ・カスタマイズの問題の詳細については、 CDE/Motif スタイルガイドおよび認証チェックリストを参照して ください。