共通デスクトップ環境 プログラマ概要

パート II 開発環境の概要

第 2 章 開発環境の要件

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

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

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

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

根底となる基礎事項

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

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

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

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

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

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

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

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

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

既存 X ベースアプリケーションの特性 

デスクトップとの相互運用ステータス 

Motif 1.2 (以降) のドラッグ&ドロップ (登録済みプロトコルを使用) 

有 

Motif 1.2 (以降) のドラッグ&ドロップ (動的プロトコルを使用) 

1

カット&ペースト (すべてのアプリケーション) 

有 

OPEN LOOK ドラッグ&ドロップ 

有 (複数の項目のドラッグ&ドロップ以外)2

ToolTalk メディア交換プロトコルおよびデスクトップ・プロトコル 

有 

  1. これは Motif 1.2 ドラッグ&ドロップ動的プロトコル相互運用における問題点で、共通デスクトップ環境に原因があるわけではありません。

  2. これはドロップ・サイト・データベース・マネージャ (dsdm) のプロトコル解釈機能によって行われます。

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

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

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

デモ・プログラム

/usr/dt/examples サブディレクトリには、テンプレート・アプリケーションとしての開発環境コンポーネント・デモのソースコードが入っています。表 2-2 ですべてのデモのサブディレクトリをリストしています。

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

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

マニュアル・ページ

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

MANPATH=$MANPATH:/usr/dt/man

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

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

表 2-2 は開発環境ディレクトリ構造のトップレベル・ディレクトリと、そのサブディレクトリをリストしています (トップレベル・ディレクトリ名はすべて前に /usr/dt が付いています)。

表 2-2 /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

DtSvcDtWidgetDtHelp

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)

sparcv9 (lib サブディレクトリ中の 64 ビットバージョン全ライブラリを格納するサブディレクトリ)

man

 

開発環境のマニュアル・ページ 

 

man1

クライアントおよびユーティリティ関連のマニュアル・ページ 

 

man3

API 関連のマニュアル・ページ 

 

man4

データ・フォーマット 

 

man5

ヘッダ・ファイルおよびアクション関連のマニュアル・ページ

64 ビットライブラリ

lib サブディレクトリの下にリストされたライブラリの 64 ビットバージョンが、sparcv9 サブディレクトリにあります(表 2-2 参照)。これらのライブラリで、CDE 用の 64 ビットアプリケーションを開発することができます。

第 3 章 アプリケーションの開発

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

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

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

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

デスクトップ命名規則

共通デスクトップ環境は、X および Motif で使用されているのと同様の命名規則を使用します。デスクトップ・クライアント、デスクトップ・ライブラリ、その他のデスクトップ・コンポーネントは、外部から見ることができる名前に共通の dtDtDT などの接頭辞を共有します。個人用のデスクトップ構造、関数、定義 (開発者が使用するのではなく、共通デスクトップ環境コードに入っている) には、_dt_Dt_DT という接頭辞が付いています。表 3-1 では、デスクトップの命名規則をリストします。

表 3-1 デスクトップ命名規則

名前 

接頭辞 

例 

デスクトップ・クライアントおよびユーティリティ 

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

表 3-2 では、上記の命名規則の例外をリストします。

表 3-2 デスクトップ命名規則の例外

名前 

接頭辞 

例 

共通デスクトップ環境 Motif

Xm

XmCreateLabel

dtksh 簡易関数 

Dtksh

DtkshAddButtons

ToolTalk メッセージ・サービス

tt (関数用)

Tt (typedef用)

TT (定数用)

tt_open

Tt_message

TT_NOTICE

X11R5

X, Xt

XOpenDisplay, XtCreateWidget


注意 - 注意 -

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


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

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

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

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

データベースの詳細は、『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』を参照してください。

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

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

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

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

AppBuilder は、次のような場合に使用するのに適しています。

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

AppBuilder を使用すると、次のようなことが実行できます。

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


ヒント -

アプリケーションビルダはよい教材になります。Sun Microsystems Advanced Developer Tools から、全機能 Motif GUI ビルダである XDesigner を購入することができます。


デモ・プログラム

AppBuilder のプログラム例は /usr/dt/examples/dtbuilder にあります。このプログラムの詳細は、README ファイルを参照してください。

関連マニュアル

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

第 4 章 移植性と保守性

この章では、移植性の高いアプリケーションを書くために、およびアプリケーションが共通デスクトップ環境の今後のリリースと互換性があることを保証するために使用できる情報を示します。

移植性の問題

この節では、共通デスクトップ環境をサポートする、異なるプラットフォーム間でのアプリケーションの移植性に関する問題を説明します。

標準

アプリケーションを共通デスクトップ環境に準拠させるには、Motif 2.1、ANSI-C、X11R6 標準に従わなければなりません。C++ でアプリケーションを開発する場合は、C++ バージョン 2.0 以降を使用してください。共通デスクトップ環境のアプリケーションを作成するとき、POSIX など他の標準に固執することはありません。デスクトップのアプリケーション・プログラム・インタフェース (API) を使用するアプリケーションは、他の共通デスクトップ環境プラットフォームへ移植できます。しかし、POSIX を使用するとソフトウェアの移植性は拡張されます。

ここで言う POSIX 標準は、IEEE Std 1003.1-1990 、『IEEE Standard for Information Technology−Portable Operating System Interface (POSIX)−Part 1: System Application Program Interface (API) [C Language], ISBN 1-55937-061-0』を指します。

また Motif 1.2 標準は、IEEE Std 1295、『Standard for Information Technology−X Window System Graphical User Interface−Modular Toolkit Environment』を指します。

上記 2 点の注文方法については、「関連マニュアル」を参照してください。

Makefile

X11R6 など、共通デスクトップ環境が依存しているライブラリは、プラットフォームが異なれば別の場所にインストールされていることがよくあります。これを解決するには、プラットフォーム固有のリファレンスを取り込むか、各プラットフォーム別の makefile を書いてください。

また、make プログラムの機能はプラットフォームによって異なります。アプリケーションに対して makefile を 1 つだけしか書かないのであれば、プログラムの移動先であるプラットフォームが使用している共通の make 機能を使用してください。プラットフォーム固有の make 機能は使用しないでください。

デスクトップと統合するのに、共通デスクトップ環境では定義された定数 (-D パラメータなど) を追加する必要はありません。POSIX などの標準に従う場合は、標準固有のフラグを追加してコンパイルする必要があります。特殊なコンパイラ要件があるかどうかについては、標準のドキュメントを参照してください。

/usr/dt/examples の各サブディレクトリには、異なるプラットフォーム用の makefile の例が入っています。これらの makefile はシステムの相違点を考慮しています。特に、一般的な makefile の例については、/usr/dt/examples/dtdts ディレクトリを参照してください。

コンパイル・オプション

アプリケーションがデスクトップの include ファイルを検索できるようにするには、次の行を各 makefile のコンパイル行に追加してください。

-I/usr/dt/include

リンク・オプション

アプリケーションがデスクトップ・ライブラリを参照できるようにするには、次の行を各 makefile のリンク行に追加してください。

-L/usr/dt/lib -l<libname1> -l<libname2>...

libname1libname2 はアプリケーションが参照するライブラリ名です。デスクトップ・ライブラリ名は必要なだけ指定できます。次に例を示します。

-L/usr/dt/lib -lDtSvc -ltt -lXm

このように指定すると、アプリケーションはデスクトップ・サービス、ToolTalk メッセージ・システム、Motif 1.2 ライブラリを参照します。

ファイル命名規則

アプリケーション・ファイル名とアプリケーションが生成するファイル名は、14 文字以内にしてください。そうすれば、長いファイル名をサポートしていないプラットフォームに移植できるようになります。この制限を持つプラットフォームがいくつかあります。

エンド・ユーザが生成するファイル名にはこの制限は当てはまりません。

ディスプレイ・サポート

アプリケーションは次のようなディスプレイ・オプションと構成をサポートする必要があります。

カラー・アイコンを作成するためにアイコン・エディタを使用すると、より容易にアプリケーションが他のデスクトップ・アプリケーションとカラーを共有できます。これにより、疑似カラー・ディスプレイで実行するときにカラー・セルの浪費を防ぎます。

共通デスクトップ環境の Motif ウィジェット・バイナリの互換性のガイドライン

すでにサブクラス化したウィジェットのデータ構造体サイズに依存する標準 Xt API を使用して実装するウィジェット・サブクラスは、Motif または共通デスクトップ環境の新バージョンとの互換性がない可能性があります。Motif の新バージョンのスーパークラスに新規フィールドが追加されている可能性があるからです。たとえば Motif 2.0 の XmManager および XmPrimitive クラスに新規フィールドが追加されています。

サブクラスは、ウィジェット・インスタンスの開始アドレスに関連して指定されたインスタンス・フィールドに対するコンパイルされたリファレンスを持つので、非互換が起こります。スーパークラス・インスタンス構造体を拡張したウィジェットを持つ新しい Motif ライブラリをインストールした場合に、コンパイルされたリファレンスは間違ったメモリの場所を指します。

このような問題を避けるため、Motif にはリソースを定義する機能と、インスタンスおよびウィジェットの全構造体の代わりにウィジェットの部分構造体の先頭 (アドレス) に関連する制約構造体にあるすべてのフィールドを参照できるようにするウィジェット・フィールドへアクセスする機能があります (ウィジェットの全構造体は、スーパークラス部分構造体を含みます) 。ウィジェット・クラスを最初に初期化したとき、この機能はこれらの関連するリファレンスを実行時に解決します。そのため、現在リンクされている Motif ライブラリから読み取る、ウィジェットのスーパークラス・インスタンス構造体のサイズを計算に入れます。


注 -

サブクラス化を実装する場合、アプリケーションと共通デスクトップ環境の今後のリリースとのバイナリ互換可能なものにするには、必ず Motif リファレンスの解決機能を使用してください。


この Motif 機能に関する詳細は、Motif 1.2 の XmResolvePartOffsets(3x) および XmResolveAllPartOffsets(3x) のマニュアル・ページと、『Motif 2.1 Programmer's Reference』を参照してください。ソースコード例は /usr/dt/examples/motif/dogs にあります。

第 5 章 基本的なアプリケーションの統合方法

基本的なアプリケーションの統合作業は、実行することを強く推奨します。これらの作業は、アプリケーションのソースコードの変更を要求しません。

基本的な統合方法では、デスクトップ アプリケーション・プログラム・インタフェース (API)を拡張して使用することはありません。したがって、ドラッグ&ドロップ、セッション管理、ToolTalk メッセージ、アクションおよびデータ型のデータベースへのプログラムによるアクセスなど、他のデスクトップとの対話は提供しません。

基本的な統合方法の特徴

基本的なアプリケーションの統合方法には、エンド・ユーザ向けの次のような特徴があります。

基本的な統合方法では、以下の機能をシステム管理者に提供します。

基本的な統合方法情報の構成

基本的な統合方法で実行される作業のほとんどは、既存のアプリケーションをデスクトップへ統合するシステム管理者が実行するものです。したがって、基本的な統合方法のマニュアルはほとんど『Solaris 共通デスクトップ環境 上級ユーザ及びシステム管理者ガイド』にあります。

Solaris 共通デスクトップ環境 プログラマーズ・ガイド』には、基本的な統合方法を説明している章があります。そこでは、『Solaris 共通デスクトップ環境 上級ユーザ及びシステム管理者ガイド』に含まれている情報を指すものもあります。また、アプリケーション・プログラマに固有の追加情報もあります。

基本的な統合方法の作業

基本的な統合方法には次のような一般的な作業があります。


第 6 章 推奨する統合方法

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


注 -

コンポーネントの統合とこの節で説明するガイドラインの他に、第 5 章「基本的なアプリケーションの統合方法」で概説する基本的な統合方法も参照してください。


推奨する統合方法の詳細は、『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』を参照してください。

ヘルプ・システム

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

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

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

設計者用

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

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

プログラマ用

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

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

デモ・プログラム

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

関連マニュアル

ヘルプ・システムの詳細は、関連するマニュアル・ページと『プログラマーズ・ガイド (ヘルプ・システム編)』を参照してください。

ToolTalk メッセージ・サービス

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

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

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

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

デスクトップ・メッセージ・セット

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 ヘッダ・ファイルは次のとおりです。

デモ・プログラム

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 を含む) 属性を正しいワークスペース、ジオメトリ、アイコン状態に復元します。アプリケーションに複数のトップ・レベル・ウィンドウがある場合、他の上位ウィンドウの状態の復元はアプリケーションが担当します。その他の情報については、「ワークスペース・マネージャ」を参照してください。

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

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


注 -

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


デモ・プログラム

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

関連マニュアル

セッション・マネージャの詳細は、関連するマニュアル・ページと『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』を参照してください。

ドラッグ&ドロップ

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

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

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

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

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

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

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


注 -

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


デモ・プログラム

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

関連マニュアル

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

国際化対応

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

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

共通デスクトップ環境は次のような標準で国際化対応機能を使用します。

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

デモ・プログラム

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

関連マニュアル

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

標準フォント名

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

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

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

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

すべての共通デスクトップ環境プラットフォームで、最小 6 種類のフォントサイズが使用できます。各フォントは、標準フォント名 8、10、12、14、16、18、24 に関連しています。共通デスクトップ環境用 XLFD フォントの記述は次のようになります。

-dt-application-*

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

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

上記 4 つのデザインの一般例は次のとおりです (順序は上記のとおりです)。

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

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

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

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

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

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

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

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

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

デモ・プログラム

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

関連マニュアル

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

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

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

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

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

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

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

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

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

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

関連マニュアル

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

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

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

使用する色の数

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

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

使用するフォント

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

共通デスクトップ環境標準アプリケーション・フォント名にあるフォントを使用して、(Motif がウィジェット用に使用しているのとは別の) アプリケーションで使用する、app-defaults ファイルのリソースを指定してください。これは、アプリケーションがすべての共通デスクトップ環境プラットフォームで適切なフォントを見つけ、プラットフォーム上への移植性が高まることを保証します。詳細は、「標準フォント名」を参照してください。


注 -

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


アクセスのしやすさ

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

身体的な障害への対応

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

視覚障害への対応

視覚障害を持つ人がアプリケーションによりアクセスしやすくするために、次のガイドラインに従ってください。

聴覚障害への対応

聴覚障害を持つ人がアプリケーションによりアクセスしやすくするために、次のガイドラインに従ってください。

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

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

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

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

デモ・プログラム

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

関連マニュアル

カスタマイズの問題の詳細は、『共通デスクトップ環境 スタイル・ガイド』を参照してください。

第 7 章 オプションの統合方法

この章で説明する共通デスクトップ環境のコンポーネントは、特殊なタスクを実行するためにデスクトップが提供するサービスを使用できるようにします。


注 -

この節で説明するコンポーネントの統合方法以外に、第 5 章「基本的なアプリケーションの統合方法」で概説する基本的な統合方法に関する指示にも従ってください。第 6 章「推奨する統合方法」で説明するコンポーネントは、アプリケーションを高度にデスクトップと統合できるようにするのに重要です。


オプションの統合方法の詳細は、『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』を参照してください。

共通デスクトップ環境 Motif コントロール・ウィジェット

共通デスクトップ環境 Motif コントロール・ウィジェットは、共通デスクトップ環境 Motif に同等の機能を提供することにより、OPEN LOOK および Microsoft Windows のアプリケーションを、共通デスクトップ環境へ移植しやすくするよう設計されています。共通デスクトップ環境 Motif ウィジェット・ライブラリ libDtWidget には、すべての共通デスクトップ環境アプリケーションに共通する機能を提供するのに使用するウィジェットと関数が含まれています。ウィジェットが提供するものは次のとおりです。

共通デスクトップ環境の Motif ウィジェット・ライブラリ libDtWidget は共通デスクトップ環境のアプリケーションと OPEN LOOK アプリケーションとの間の操作性をサポートします。つまり、カット、コピー、ペースト、マウス・ボタン機能など、OPEN LOOK が行うのと同じ方法で動作するアプリケーションを作成できます。


注 -

共通デスクトップ環境は Motif 1.2 ウィジェットをすべてサポートします。共通デスクトップ環境 Motif の詳細は、付録 A 「共通デスクトップ環境 Motif」 を参照してください。


表 7-1 共通デスクトップ環境コントロール・ウィジェット

ウィジェット名 

説明 

DtSpinBox

数値を増減するか、ブラウズしてテキスト文字列のリストから選択するためのコントロールを持つ TextField ウィジェット

DtComboBox

TextField と、TextField に有効な選択項目のリストを提供するポップアップ・リスト・ウィジェットとの組合せ

DtMenuButton

メニュー・バー、またはメニュー区画 (プルダウン・メニュー、ポップアップ・メニュー、オプション・メニュー) 以外の XmCascadeButton ウィジェットの機能を階層化するメニュー機能を提供するコマンド・ウィジェット

Motif 2.1 との互換性

DtSpinBox および DtComboBox ウィジェットの API は、 Motif 2.1 リリースの XmSpinBox および XmComboBox ウィジェットと同等です。API は、アプリケーションが簡単に Motif 2.1 バージョンのウィジェットに交換できるように設計されています。交換するにはクラス、型、作成ルーチンの名前の DtXm に変更してください。たとえばコードにある DtSpinBox という名前はすべて XmSpinBox に変更してください。この情報は、アプリケーションを Motif 2.1 に移植することを選択した場合に提供されますが、そうすることを推奨しているわけではありません。


注 -

共通デスクトップ環境は、そのウィジェットと Motif 2.1 のウィジェット間での厳密な API またはバイナリ互換を保証するものではありません。


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

ライブラリ libDtWidget は、DtSpinBoxDtComboBoxDtMenuButton ウィジェットへのアクセスを提供します。これらのウィジェットの libDtWidget ヘッダ・ファイルは次のとおりです。

デモ・プログラム

共通デスクトップ環境 Motif コントロール・ウィジェットのデモは、/usr/dt/examples/dtwidget にあります。デモの詳細は、README ファイルを参照してください。

関連マニュアル

共通デスクトップ環境 Motif コントロール・ウィジェットの詳細は、関連するマニュアル・ページと『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』を参照してください。

データ型の作成

アプリケーションの基本的な統合方法を実行するときは、データ型を定義できます。この節では、データ型作成の別の面、つまりアクションおよびデータ型のデータベースから情報を抽出する方法に焦点を当てて説明します。

データ型を作成すると、従来の UNIX ファイル・システムが提供するファイルとデータの属性が拡張されます。この拡張には型や属性管理も含まれます。アプリケーションが外部ソースからデータを受信して動作するには、データ型作成 API を使用します。たとえばアプリケーションでアイコンを表示する、またはシステム全体に定義されているアクションを実行する必要があるかもしれません。

データ型作成は次の 2 つの部分から成ります。

データ型作成システムは、ファイルまたは基準のセットに基づいたバイト・ベクタの型を決定します。基準には名前、アクセス権、シンボリック・リンク値、内容が含まれます。型に関連付けられた属性は、説明、グラフィカルにそれを示すアイコン、それに適用されるアクションを含んだ、ユーザが見ることができるインタフェースを記述しています。また、属性はデータが準拠する互換フォーマットに名前を付けるためにも存在します。

共通デスクトップ環境のファイル・マネージャおよび共通デスクトップ環境のメールのアタッチメント・ウィンドウは、データ型作成によって、アイコンとファイルに関連するアクションを決定します。たとえば C ファイル filename.c について、ファイル・マネージャは .c という拡張子を使用してファイルのデータ型 C_SOURCE を判別します。それから C_SOURCE を使用して filename.c に使用できるアイコンのアイコン・ファイル名を決定します。

データベースの読み込み

この節では、アクションおよびデータ型データベースを読み込む API について説明します。この形式と、開発者が定義する任意の共通デスクトップ環境データベースについては、/usr/dt/man/man4 ディレクトリにあるマニュアル・ページで説明しています。

外部データベースを読み込む API は、次の 2 つの関数から成ります。

DtDbLoad() はアクションおよびデータ型データベースを読み込みます。データベースを検索する一連のディレクトリを決定し、見つけた .dt ファイルをデータベースに読み込みます。アプリケーションは、アクションおよびデータ型データベースを照会する任意のルーチンを起動する前に、DtDbLoad() を起動する必要があります。

DtDbReLoadNotify() を使用して、アクションおよびデータ型データベースの再読み込みイベントの通知を要求してください。アプリケーションがデータベース再読み込みメッセージを受け取ることを登録します。

アプリケーションは、データベースが変更されたら、アプリケーションを再起動しなくても更新があったことがエンド・ユーザにわかるように、必ずデータベースを再読み込みしなければなりません。

データベースの照会

データ・オブジェクトの属性を調べるには、まずオブジェクトの型を決定し、その型に適切な属性値を求めてください。データベース照会関数により、データ型および属性の検索、メモリの解放、データベースの読み込みと解放などのオペレーションを実行できます。これらの関数については、『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』および man3 ディレクトリにあるマニュアル・ページで説明しています。

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

デスクトップ・サービス・ライブラリ libDtSvc は、データ型作成を含む多くのデスクトップ API へのアクセスを提供します。データ型作成 API にアクセスするには、Dt/Dt.h および Dt/Dts.h ヘッダ・ファイルを取り込んでください。


注 -

アプリケーションが任意のデータ型作成 API を使用する場合、またはアクションおよびデータ型データベースを読み込む場合は、DtInitialize() または DtAppInitialize() のいずれかを呼び出して libDtSvc ライブラリを初期化してください。詳細は、DtInitialize(3) または DtAppInitialize(3) のマニュアル・ページを参照してください。


デモ・プログラム

データ型作成のデモは、/usr/dt/examples/dtdts にあります。デモの詳細は、README ファイルを参照してください。

関連マニュアル

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

アクションの実行

アクション実行 API により、アプリケーションが、ファイルまたはバッファの引数でデスクトップのアクションを実行できます。アクション引数の ClassTypeModeNumber に基づいて、ファイルまたはバッファに適切なアクションを選択します。たとえば [開く] アクションは GIF ファイルに対してはイメージ・ビューアを、複雑なドキュメントに対してはワープロを、通常の ASCII ファイルに対しては単純なテキスト・エディタを起動します。アプリケーションは、アクションの選択や起動の詳細に関与する必要がありません。

アクション実行 API を使用すると、アプリケーションはデスクトップの他の部分と同じ機能を使用します。ユーザにとっては、デスクトップの動作が一定していることになります。

libDtSvc ライブラリのアクション関数は、デスクトップのアクション ([開く] や [印刷] など) をファイルおよびバッファに対して起動する方法を提供します。これには、アクションの動作を変更できるパラメータが含まれます。アクション起動 API は次の関数から構成されます。

DtActionInvoke()

引数に指定したアクションを起動します。引数はファイルかバッファです。 

DtActionLabel()

アクションに関連した、ローカライズ可能なラベル文字列へのアクセスを提供します。 

DtActionDescription()

アプリケーションが起動したアクションに関連する説明情報を含む文字列を返します。 

DtActionExists()

指定した名前が既存のアクションに対応するかどうかをチェックする Boolean 関数です。 

DtActionIcon()

指定したアクションに関連するアイコン名を返します。 

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

デスクトップ・サービス・ライブラリ libDtSvc は、アクションなど多くのデスクトップ API へのアクセスを提供します。アクション API へアクセスするには、Dt/Dt.h および Dt/Action.h ヘッダ・ファイルを取り込んでください。


注 -

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


デモ・プログラム

アクション起動のデモは、/usr/dt/examples/dtaction にあります。デモの詳細は、README ファイルを参照してください。

関連マニュアル

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

ワークスペース・マネージャ

共通デスクトップ環境のワークスペース・マネージャは、複数のワークスペースをサポートします。各ワークスペースは仮想画面です。ウィンドウは 1 つのワークスペース、すべてのワークスペース、個々のワークスペースの任意の組合せのいずれにも配置できます。ワークスペースに対しては、ユーザによる動的な追加、削除、名前の変更ができます。

ワークスペース・マネージャ API は、ウィンドウが存在するワークスペースを知るのに必要な、またはウィンドウのワークスペースへの配置方法をコントロールするのに必要なアプリケーションの関数を提供します。さらに、現在のワークスペースがどれであるかなど、ワークスペース全体の状態の変更内容をアプリケーションが監視できるようにします。

共通デスクトップ環境では、デスクトップで実行するアプリケーションはワークスペース・マネージャ API の使用が必ずしも必要なわけではありません。ワークスペース・マネージャを知らなくても、ほとんどのデスクトップ・アプリケーションが予想したとおりに実行されます。特に、アプリケーションが 1 つのメイン・トップレベル・ウィンドウだけを持ち、ICCCM 1.1 および Motif 1.2 に従う場合は、デスクトップで実行するアプリケーションの共通デスクトップ環境ワークスペース・マネージャと統合する必要はありません。

ただし、複数のトップ・レベル・ウィンドウを持つ複雑なアプリケーションは、アプリケーションの状態を正しく保存および復元するために、セッション・マネージャ API と共にワークスペース・マネージャ API を使用する必要があります。ワークスペース・マネージャ API により、アプリケーションはそれぞれのウィンドウが入っているワークスペースを見つけることができます。また、セッションが再開したときに正しいワークスペースにウィンドウを表示することもできます。

ワークスペース・マネージャ API は次の作業を行います。

すべてのワークスペース・マネージャ API 関数は接頭辞 DtWsm を共用します。

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

デスクトップ・サービス・ライブラリ libDtSvc は、ワークスペース・マネージャなど多くのデスクトップ API へのアクセスを提供します。ワークスペース・マネージャ API へアクセスするには、Dt/Dt.h および Dt/Wsm.h ヘッダ・ファイルを取り込んでください。


注 -

アプリケーションが任意のワークスペース・マネージャ API を使用する場合は、DtInitialize() または DtAppInitialize() のいずれかを呼び出して libDtSvc ライブラリを初期化してください。詳細は、DtInitialize(3)または DtAppInitialize(3) のマニュアル・ページを参照してください。


デモ・プログラム

ワークスペース・マネージャのデモは、/usr/dt/examples/dtwsm にあります。デモの詳細は、README ファイルを参照してください。

関連マニュアル

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

端末エミュレータ・ウィジェット

DtTerm ウィジェットは、ANSI X3.64-1979 型端末エミュレータ (特に拡張された DEC VT220 仕様の端末) をエミュレートするのに必要な機能を提供します。端末エミュレータ・ウィジェット・ライブラリ libDtTerm は、端末エミュレータ・ウィンドウを GUI に追加するのに使用する DtTerm ウィジェットを提供します。端末エミュレータをアプリケーションに取り込む場合は、共通デスクトップ環境 Motif ウィジェットを使用して、ポップアップ・メニューやスクロール・バーなど表示の拡張機能を追加してください。

共通デスクトップ環境の端末エミュレータは、実行環境の一部ですが、端末として動作し、デスクトップから従来の端末ベースのアプリケーションへのアクセスを可能にするウィンドウです。DtTerm ウィジェットはデスクトップの実行時の端末エミュレータ dtterm の基礎となるものです。

libDtTerm ライブラリには、DtTerm ウィジェットを作成、アクセス、サポートするのに便利な一連の関数が入っています。

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

libDtTerm ライブラリは、端末エミュレータの設計や、端末エミュレータ・ウィンドウの GUI への追加を行うために、Motif に基づいた一連のウィジェットを提供します。libDtTerm の API へアクセスするには、Dt/Term.h ヘッダ・ファイルをアプリケーションに取り込んでください。

デモ・プログラム

端末エミュレータのデモは、/usr/dt/examples/dtterm にあります。デモの詳細は、README ファイルを参照してください。

関連マニュアル

DtTerm ウィジェットの詳細は、関連するマニュアル・ページを参照してください。

デスクトップ端末エミュレータの詳細は、端末エミュレータのヘルプ・ボリューム、関連するマニュアル・ページ、および『Solaris 共通デスクトップ環境 ユーザーズ・ガイド』を参照してください。

テキスト・エディタ・ウィジェット

共通デスクトップ環境のテキスト編集システムは、次の 2 つのコンポーネントから成ります。

Motif テキスト・ウィジェットもプログラム・インタフェースを提供しますが、システム全体で統一されたエディタを要求するアプリケーションは、DtEditor ウィジェットを使用してください。共通デスクトップ環境のテキスト・エディタおよびメール・プログラムは、エディタ・ウィジェットを使用します。このウィジェットは次のような場合に使用してください。

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

DtEditor ウィジェットは libDtWidget ライブラリにあります。ヘッダ・ファイルは Dt/Editor.h です。

デモ・プログラム

デモは、/usr/dt/examples/dtwidget ディレクトリにあり、 DtEditor ウィジェット (editor.c) の例が入っています。デモの詳細は、README ファイルを参照してください。

関連マニュアル

テキスト・エディタ・ウィジェットの詳細は、関連するマニュアル・ページと『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』を参照してください。

カレンダ

共通デスクトップ環境のカレンダは、ネットワーク環境でユーザが時間とリソースをスケジュール調整できるようにする、インフラストラクチャと API から成ります。カレンダ GUI は共通デスクトップ環境の実行環境の一部です。

カレンダは次の 3 つから構成されています。

また、GUI と TTY の両方の対話に対するユーザ・インタフェースを提供します。システムは、カレンダ項目の入力、削除、変更だけでなくブラウズおよび検索機能もサポートします。これらの機能すべてに、ネットワークによってアクセスできます。

開発環境は、クライアントがカレンダ・データへアクセスするためのライブラリを提供します。ユーザが独自のカレンダ項目属性を定義できるように拡張できます。ライブラリは、データベースの更新を通知するためのクライアント・コールバック機能を提供します。

カレンダ・デーモンは、カレンダおよびスケジュール調整 API コールのライブラリの背後にあるサービスを実装しています。カレンダ項目の削除、挿入、変更をサポートしています。また、カレンダ通知方法を管理し、カレンダ・データベースの作成および削除をサポートします。さらに、カレンダ・データの検索機能も提供します。

カレンダ項目データは、ドラッグ&ドロップおよび ToolTalk メッセージ・インタフェースによって、デスクトップと統合します。

カレンダおよびスケジュール調整 API は、アプリケーション・プログラミング・インタフェース・アソシエーション XAPIA (X.400) カレンダおよびスケジュール調整 API 1.0 を実現したものです。カレンダおよびスケジュール API を使用してアプリケーションにカレンダを統合するか、独自のカレンダ・アプリケーションを開発してください。

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

カレンダ・ライブラリ libcsa は、ネットワーク環境においてカレンダ・データにアクセスし、管理するプログラム方法を提供します。

libcsa の API にアクセスするには、csa/csa.h ヘッダ・ファイルをアプリケーションに取り込んでください。

デモ・プログラム

カレンダのデモは /usr/dt/examples/dtcalendar にあります。デモの詳細は、README ファイルを参照してください。

関連マニュアル

カレンダの詳細は、関連するマニュアル・ページ、カレンダのヘルプ・ボリューム、『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』を参照してください。

デスクトップ Korn シェル (dtksh)

デスクトップ Korn シェル (dtksh) は、シェル・スクリプトによってグラフィック・ユーザ対話を行う方法を提供します。ユーザ・インタフェース機能は、共通デスクトップ環境 Motif ウィジェット・セット、Xt イントリンシクス、X11 ライブラリに基づいています。

dtksh は多くの X、Xt、Motif、および共通デスクトップ環境の機能にアクセスできるよう拡張した ksh-93 バージョンです。ksh-93 は、コマンド・シェルおよびプログラミング言語 ksh である Korn シェルのバージョンです。dtksh は、次のものをサポートするよう ksh を拡張したものです。

デモ・プログラム

dtksh のデモは /usr/dt/examples/dtksh にあります。デモの詳細は、README ファイルを参照してください。

関連マニュアル

dtksh の詳細は、関連するマニュアル・ページと『Dtksh ユーザーズ・ガイド』を参照してください。