# アプリケーションの開発

この章では、命名規則およびその他のガイドラインなど、共通デスクトップ環境 アプリケーションの開発に固有の情報を示します。アプリケーションへ組み込んで デスクトップとの統合を促進するデスクトップ機能を決定するためのガイドラインで ある、統合のレベルを概説します。また、共通デスクトップ環境アプリケーションの 開発を容易にするツールであるアプリケーション・ビルダの概要も説明します。

RDMAP.devap.mkr.2
RDMAP.devap.mkr.3
RDMAP.devap.mkr.6
RDMAP.devap.mkr.7
RDMAP.devap.mkr.8
RDMAP.devap.mkr.9

## デスクトップ統合のレベル

ユーザは共通デスクトップ環境のシェル・コマンド行から、任意の
X11ベースのアプリケーションを実行できます。だだし、アプリケーションを デスクトップへ統合する場合は、従わなければならないガイドラインがあります。 アプリケーションの設計または既存のアプリケーションの移植において最大限の柔軟性 を与えるために、共通デスクトップ環境は３つの統合レベルを定義しています。

- 基本的な統合方法 アプリケーションをデスクトップから起動できます。基本的な統合を行うときは アプリケーションのコードを変更する必要はありません。 詳細については、 RDMAP.BIntg.mkr.1を参照してください。

- 推奨する統合方法 アプリケーションとデスクトップとの一貫性のレベルを向上できます。詳細については、 RDMAP.recin.mkr.1を参照してください。

- オプションの統合方法 特殊な作業を実行するためにデスクトップが提供するサービスが利用できます。 詳細については、RDMAP.optin.mkr.1を 参照してください。

統合の全レベルの詳細については、プログラマーズ・ガイド を参照してください。基本的な統合については 上級ユーザおよびシステム管理者ガイドでも説明しています。

## デスクトップ命名規則

共通デスクトップ環境は、XおよびMotifで使用されているのと同様の命名規則を 使用しています。デスクトップ・クライアント、デスクトップ・ライブラリ、その他の デスクトップ・コンポーネントは、外部から見ることができる名前に共通の `dt`、`Dt`、`DT`などの接頭辞 を共有します。個人用のデスクトップ構造、関数、定義（開発者が使用するのではなく、 共通デスクトップ環境コードに入っている）には、`_dt`、 `_Dt`、`_DT`という接頭辞が付いています。 RDMAP.devap.mkr.4では、デスクトップ の命名規則をリストします。

## デスクトップ命名規則

`名前` | `接頭辞` | `例`
デスクトップ・クライアントおよび ユーティリティ | `dt` | `dthelpview`
リソース名およびクラス | `Dt` | `DtNhelpType, DtCHelpType`
ライブラリ名 | `Dt` | `libDtHelp`
ヘッダ・ファイル | `Dt` | `#include <Dt/Help.h>`
公開している関数名 | `Dt` | `DtCreateHelpDialog`
公開しているデータ構造名 | `Dt` | `DtHelpDialogCallbackStruct`
定数名 | `Dt` | `DtHELP_NEW_WINDOW`
環境変数 | `DT` | `DTHELPSEARCHPATH`
公開していないデスクトップ・シンボル （構造、関数、定義） | `_dt`, `_Dt`, `_DT` | `_DtHelpFunction, _DtHELP_DEFINE`

RDMAP.devap.mkr.5では、上記の命名規則の例外をリストします。

## デスクトップ命名規則の例外

`名前` | `接頭辞` | `例`
共通デスクトップ環境Motif | `Xm` | `XmCreateLabel`
`dtksh`簡易関数 | `Dtksh` | `DtkshAddButtons`
ToolTalkメッセージ・サービス | tt (関数用)、Tt (typedefs用)、 TT (定数用) | `tt_open`, Tt_message, TT_NOTICE
X11R6.2 | `X`, `Xt` | `XOpenDisplay, XtCreateWidget`

アプリケーションのコードで新しいシンボルを定義するときは、接頭辞 `dt`、`Dt`、`DT`、 `_dt`、`_Dt`、`_DT`、 `Xm`、`tt`、`Tt`、 `TT`、`X`、`Xt`を 使用しないでください。使用した場合は、共通デスクトップ環境、 ToolTalk、X11、Motifコードですでに定義されているものか、定義される予定のもの と重複する可能性があります。

## 公開しているインタフェースと公開していない インタフェース

マニュアル・ページまたは共通デスクトップ環境マニュアル・セットが、共通 デスクトップ環境インタフェースについて言及している場合、特に断り書きがなけれ ばそのインタフェースは公開されていると見なすことができます。インタフェースに 対応するヘッダ・ファイルがあるという事実だけでは、そのインタフェースが公開 されているものであるとは言いきれません。マニュアルまたはその他のドキュメント に記載されていないインタフェースは共通デスクトップ環境に対して内部専用であり、 予告なしに変更されることがあります。

## 共通デスクトップ環境データベースのガイドライン

`/usr/dt/man/man4`ディレクトリにあるマニュアル・ ページに、アクションやデータ型などに使用するデスクトップ・データベース形式が あります。

データベースの詳細については、プログラマーズ・ガイド を参照してください。

## アプリケーションの初期化とlibDtSvc

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

## アプリケーション・ビルダ

アプリケーション・ビルダは、デスクトップのアプリケーション・ プログラム・インタフェース(API)を呼び出すためのコードを書かなくても、共通 デスクトップ環境アプリケーションのグラフィカル・ユーザ・インタフェース(GUI) を簡単に作成できるようにするツールです。このツールは、Motifツールキットを単純 なオブジェクト・パレットとオブジェクト属性シートに要約します。アプリケーション・ビルダを 使用して、単純なGUIベース・プログラムから複雑で統合されたシステムまであらゆる 範囲のアプリケーションを構築できます。ユーザ・インタフェース言語(UIL)ファイル のインポートおよびエクスポートをサポートし、他のMotifベース・ツールおよび プロダクトの中にアプリケーションを移植できるようにします。

アプリケーション・ビルダは、次のような場合に使用するのに適しています。

- Motifプログラマのエキスパート ではない

- 共通デスクトップ環境Motifウィジェットに精通して いない

- (
  ドラッグ＆ドロップ、
  ToolTalkメッセージ、
  セッション、
  ヘルプ、
  国際化などの)デスクトップ・サービスに精通していない

- アプリケーション・ユーザ・インタフェースを早く構築し、簡単に 変更できるようにしたい

- １つのアプリケーションを他の人と共同で構築している

実際に上記のいずれかに該当しない場合でも、アプリケーションを開発する上で アプリケーション・ビルダの使用が適切であり役に立つことがあります。

アプリケーション・ビルダを使用すると、次のようなことが実行できます。

- 共通デスクトップ環境Motifツールキットのオブジェクトの部品を集めて構成するこ とで、ユーザ・インタフェースをアプリケーション用にレイアウトする

- アプリケーションGUI動作を提供するためのオブジェクト間の接続 を定義し、接続をテストできるテスト・モードを使用する

- デスクトップ・サービス機能の一部をアプリケーションへ追加する

- アプリケーション・ビルダを使用してあらかじめ作成したアプリケーションを編集 する。

- 自動的に生成されたコードを手動で生成したコードにマージする

- Ｃ言語ソースコードと関連するプロジェクト・ファイル（メッセージ・ カタログなど）をアプリケーション用に生成する

アプリケーション・ビルダからアプリケーション をコンパイルおよび起動することができます。アプリケーション・ビルダを終了して再起動しなくても、 共通環境から構築、実行、デバッグのサイクルを実行できます。

### デモ・プログラム

アプリケーション・ビルダのプログラム例は`/usr/dt/examples/dtbuilder` にあります。このプログラムの詳細については、 `README`ファイルを 参照してください。

#### 関連マニュアル

アプリケーション・ビルダの詳細については、適切なマニュアル・ページ、 アプリケーション・ビルダのヘルプ・ボリューム、アプリケーション・ビルダ・ユーザーズ・ ガイドを参照してください。