# 開発環境の要件

この章では、共通デスクトップ環境のアプリケーション・プログラム・ インタフェース(API)を使用する前に知っておくべき一般的な情報について説明します。

アプリケーションをデスクトップに統合する前に、デスクトップの動作について 基本的な理解をしておくことが必要です。共通デスクトップ環境プラットフォームに インストールし、その機能を把握してください。デスクトップの概要については、 ユーザーズ・ガイドまたは デスクトップの紹介のオンライン・ヘルプ・ボリュームを参照 してください。

RDMAP.consi.mkr.2
RDMAP.consi.mkr.3
RDMAP.consi.mkr.4
RDMAP.consi.mkr.5
RDMAP.consi.mkr.6
RDMAP.consi.mkr.7
RDMAP.consi.mkr.8

## 共通デスクトップ環境の特性

共通デスクトップ環境には、UNIXユーザに対して、生産性の高い快適なデスク トップ環境を提供します。アプリケーションを開発するときは、共通デスクトップ環境 がユーザに提供する環境を常に念頭においてください。次のような特性を備えた アプリケーションを開発すれば、
高性能で、 一貫性のある、予期可能な共通デスクトップ環境の一部にすることができます。

- UNIXの複雑さを隠します。

  共通デスクトップ環境は、主な顧客としてエンド・ユーザをターゲットにしてい ます。ゆえに、優れた製品を作るうえで、できるだけUNIXを隠したアプリケーションを 提供することが重要となります。

- 共通のルック＆フィールを提供します。

  共通デスクトップ環境の優れたアプリケーションは、デスクトップ上の他の アプリケーションと同じようなルック＆フィールを実現します。スタイル、その他の ガイドライン（共通デスクトップ環境標準フォント名など）に従うと、アプリケーション に共通デスクトップ環境Motifのルック＆フィールが備わります。

- アプリケーションを使いやすくします。

  読みやすいデフォルト・フォント・サイズとマウス指向アクション用のキーボード・ アクセラレータを提供します。デスクトップ・オンライン・ヘルプ・コンポーネントを 使用して、完全なヘルプ・システムをアプリケーションに統合してください。基本的な コンピュータ対話形式は、プラットフォーム全体で可能な限り一貫させなければなりま せん。

- デスクトップ統合サービスを利用します。

  共通デスクトップ環境には、アプリケーションをデスクトップにうまく統合 できるようにするための、一連のデスクトップ統合サービスがあります。 アプリケーションがローカルなコンピュータで実行されているのかネットワークの他の 場所で実行されているのか、（もしあれば）実行されているアプリケーションを書くのに どのツールキットが使用されているのかを、ユーザは知る必要がないので便利です。 アプリケーションをデスクトップから起動し、他の共通デスクトップ環境の アプリケーションと通信できるようにする機能をアプリケーションに与えてください。 オンライン・ヘルプシステムを使用して、ユーザに簡易情報を提供してください。 ドラッグ＆ドロップを使用して、ユーザがシステムの使用方法を予期できるようにして ください。

- 個別の、および文化的な相違点を設計します。

  共通デスクトップ環境の規約とポリシーに従うと、アプリケーションは次の項目 に関して、スムーズで一貫性があり、適切なカスタマイズを自然に提供できます。

  - フォント

  - カラー

  - キーボードとマウスの割り当て

  - ロケール固有の構成ファイル

    ロケール固有の構成ファイルの詳細については、 上級ユーザおよびシステム管理者ガイドの第16章 ローカライズされたデスクトップ・セッションの構成を参照してください。

## 根底となる基礎事項

デスクトップAPIを使用するアプリケーションをコンパイルするには、次のもの が必要です。

- 共通デスクトップ環境のヘッダ・ ファイルおよびライブラリ

- X11R6.2以降のヘッダ・ファイルおよび ライブラリ

- ANSI Cコンパイラ、またはC++アプリケーションを開発 する場合は、C++コンパイラのバージョン2.0以降のもの

コンパイルしたバイナリ・ファイルは、一致するライブラリをインストールした 環境で実行してください。実行時のライブラリは`/usr/dt/lib`に あり、RDMAP.consi.mkr.9にリストされているディレクトリ を格納しています。

共通デスクトップ環境ベースのアプリケーションを正しく実行するには、次の 実行時のディレクトリのファイルをインストールした環境が必要です。

- `/etc/dt/*`

- `/var/dt/*`

- `/usr/dt`の下のサブディレクトリ

  - `app-defaults`

  - `appconfig`

  - `bin`

  - `dthelp`

  - `lib`

アプリケーションは、X/Open XCDE標準で明示的に 言及されている実行時のファイルだけに依存しなければなりません。 `/usr/dt/appconfig/icons/`など標準で言及していないファイルに 依存してはなりません。このような依存性を アプリケーションに構築した場合、標準にないファイルが失われたり、変更されるような 環境で実行できるようにアプリケーションを強化しなければなりません。

共通デスクトップ環境アプリケーションを実行するのに最低限必要な実行環境の リストについては、`dtfilsys(5)`のマニュアル・ページを参照 してください。

実行環境には、Motif 1.2.3のバグを修正して機能強化した共通デスクトップ 環境Motifが含まれます。共通デスクトップ環境の実行環境の詳細については、実行 環境用のマニュアル。セットを参照してください。

## 既存アプリケーションの実行

共通デスクトップ環境ライブラリでコンパイルされていない、既存のXウィンドウ・ システムベースのアプリケーションは、デスクトップ・ウィンドウ・マネージャ (`dtwm`)のもとで、Motifウィンドウ・マネージャで動作するのと同様 な方法で動作します。共通デスクトップ環境との相互運用性のレベルのガイドラインを 説明します。

## 既存Xベースのアプリケーションと共通デスクトップ環境との相互運用性

`既存Xベース アプリケーションの特性` | `デスクトップとの 相互運用ステータス`
Motif 1.2 (以降)のドラッグ＆ドロップ (登録済みプロトコルを使用) | ○
Motif 1.2 (以降)のドラッグ＆ドロップ (動的プロトコルを使用) | × これはMotif 1.2ドラッグ＆ドロップ動的プロトコル 相互運用における問題点で、共通デスクトップ環境に 原因があるわけではありません。
カット＆ペースト （すべてのアプリケーション） | ○
OPEN LOOKドラッグ＆ドロップ | ○（複数の項目のドラッグ＆ドロップ以外） これはドロップ・サイト・データベース・マネージャ(`dsdm`) のプロトコル解釈機能によって行われます。
ToolTalkメディア交換プロトコルおよび デスクトップ・プロトコル | ○

既存のMotifアプリケーションを、共通デスクトップ環境Motif共有ライブラリで 再びコンパイルおよびリンクする場合、アプリケーションはMotif 1.2に対応していな ければなりません。

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

ベンダ固有の場所にあるX11R6.2ヘッダ・ファイルおよびライブラリを考慮して 共通デスクトップ環境アプリケーションをコンパイルしてください。 RDMAP.consi.mkr.9 は、`/usr/dt`のサブディレクトリとして、すべての開発環境 ライブラリおよびヘッダ・ファイルの場所をリストしています。

## デモ・プログラム

`/usr/dt/examples`サブディレクトリには、 テンプレート・アプリケーションだけでなく開発環境 コンポーネント・デモのソースコードも入っています。 RDMAP.consi.mkr.9 ですべてのデモのサブディレクトリをリストしています。

それぞれのデモのサブディレクトリには、１つ以上のデモ・プログラムが、 プログラムのmakefileと共に入っています。デモを説明する`README` ファイルも含まれています。

ソースが`template`サブディレクトリにあるデモは、単純な 描画プログラムです。これは、デスクトップに統合された共通デスクトップ環境 アプリケーションの基本構造を図示したものです。国際化されており、別々のサブ ディレクトリにはローカライズされたコンポーネントがすべて入っています。 アプリケーションでは、この描画プログラムをテンプレートとして使用できます。

## マニュアル・ページ

共通デスクトップ環境のマニュアル・ページは`/usr/dt/man` にあります。`man()`コマンドまたはデスクトップのマニュアル・ ページ・ビューアを使用してマニュアル・ページを表示させるには、環境変数 `MANPATH`に`/usr/dt/man`を追加してください。 たとえば、`~/.dtprofile`ファイルでは次のように設定します。

    MANPATH = $MANPATH:/usr/dt/man

`/usr/dt/man`サブディレクトリと内容の一覧のリストは、 RDMAP.consi.mkr.9を参照してください。 `man()`コマンドの詳細については、`man`(1) のマニュアル・ページを参照してください。

## 開発環境ディレクトリ構造

RDMAP.consi.mkr.9は開発環境ディレクトリ構造のトップレベル・ ディレクトリと、そのサブディレクトリをリストしています。（トップレベル・ ディレクトリ名にはすべて前に`/usr/dt`が付いてます。)

## /usr/dtの開発環境ディレクトリ

`ディレクトリ` | `サブディレクトリ` | `内容`
`examples` |  | 開発環境コンポーネント・デモ・ プログラムのソースコードを含むサブディレクトリ
|  | READMEファイル
| dtaction | アクション起動APIデモ
| dtbuilder | アプリケーション・ビルダの例
| dtcalendar | カレンダAPIデモ
| dtdnd | ドラッグ＆ドロップAPIデモ
| dtdts | データ型作成APIデモ
| dthelp | ヘルプAPIデモ
| dtksh | `dtksh`スクリプトの例
| dtsession | セッション・マネージャAPIデモ
| dtterm | 端末エミュレータ・ウィジェットAPIデモ
| dtwidget | 共通デスクトップ環境Motifウィジェット・ デモ
| dtwsm | ワークスペース・マネージャAPIデモ
| template | テンプレート共通デスクトップ環境 アプリケーション
| motif | Motif 1.2 APIデモ
| motif/clipboard | `XmClipboard` API デモ
| motif/dogs | ウィジェット・バイナリ互換性機能 デモ
| motif/draganddrop | Motif 1.2 ドラッグ＆ドロップAPIデモ
| motif/periodic | Motifウィジェット・デモ
| tt | ToolTalkメッセージ・サービス・デモ
`include` |  | 開発環境ライブラリのヘッダ・ファイル
| csa | カレンダのヘッダ・ファイル
| `Dt` | `DtSvc`、`DtWidget`、 `DtHelp`、 `DtTerm` のヘッダ・ファイル
| `Mrm` | Motif 1.2リソース・マネージャのヘッダ・ ファイル
| `Tt` | ToolTalkメッセージ・サービスのヘッダ・ ファイル
| `Xm` | Motif 1.2ツールキットのヘッダ・ ファイル
| `uil` | Motif 1.2呼び出し可能UILコンパイラの ヘッダ・ファイル
`lib` |  | `libcsa`(カレンダ)、 `libDtHelp` (ヘルプ・システム)、 `libDtSvc` (アクション、データ型作成、ドラッグ＆ドロップ、 セッション・マネージャ、ワークスペース・マネージャ)、 `libDtTerm` (端末エミュレータ)、 `libDtWidget` (共通デスクトップ環境Motifコントロール およびエディタ・ウィジェット)、 `libMrm`(Motif 1.2 リソース・マネージャ)、 `libUil`(Motif 1.2呼び出し可能UILコンパイラ)、 `libXm`(Motif 1.2 ツールキット)、 `libtt` (ToolTalk)
`man` |  | 開発環境のマニュアル・ページ
| `man1` | クライアントおよびユーティリティ関連の マニュアル・ページ
| `man3` | API関連のマニュアル・ページ
| `man4` | データ・フォーマット
| `man5` | ヘッダ・ファイルおよびアクション関連の マニュアル・ページ``