Solaris 共通デスクトップ環境 Motif への移行

第 3 章 Solaris の Motif ツールキット

この章では、Solaris 7 Motif と IXI Motif について説明し、Solaris CDE アプリケーション開発で使用できるウィジェットについて紹介します。

Solaris ソフトウェアの Motif ツールキット

この節では Solaris 7 Motif と IXI Motif ツールキットについて説明します。Solaris アプリケーション開発で使用できる Motif ツールキット間の違いについては、「Motif ツールキットのまとめ」を参照してください。

Solaris 7 Motif

Solaris 7 Motif は、バグを修正し、機能拡張した OSF/Motif 2.1 をベースにしています。Solaris 7 ソフトウェアには Motif ツールキットが含まれます。

既存の OSF/Motif 2.1 の機能に対する拡張機能

特定の OPEN LOOK ユーザインタフェースと Microsoft Windows の機能をエミュレートするために、Solaris Motif ライブラリには OSF/Motif 2.1 に使いやすい小規模な拡張機能が入っています。使いやすさに関する拡張機能は次のとおりです。

Solaris CDE の Motif ライブラリ

Motif ライブラリ (libXm)

Solaris CDE には、Motif 1.2.5 のすべてのヘッダファイルが含まれています。Solaris Motif ライブラリは、Motif 1.2.5 ライブラリのバグを修正し機能を拡張したものです。

Motif UIL ライブラリ (libUill)

Motif ユーザインタフェース言語 (UIL) は、Motif アプリケーションのユーザインタフェースの初期状態を記述する指定言語です。Motif UIL ライブラリの CDE バージョンは、実質的には Motif 1.2.5 バージョンから変更されていません。

ヘッダファイル UilDef.h (/usr/dt/include/uil ディレクトリにあります) を取り込むと、UIL にアクセスできます。

Motif リソースマネージャライブラリ (libMrm)

Motif リソースマネージャ (MRM) には、UIL コンパイラで作成されたユーザインタフェース定義 (UID) ファイル内の定義に基づいてウィジェットを作成する役割があります。MRM は UIL コンパイラの出力を解釈し、ウィジェット作成機能のための引き数リストを生成します。libMrm を使用すると、Motif リソースマネージャにアクセスできます。CDE バージョンは、実質的には Motif バージョンから変更されていません。

ヘッダファイル Mrm/MrmPublic.h を取り込むと、アプリケーション内で libMrm にアクセスできます。

関連マニュアル

UIL、UIL コンパイラ、UID、Mrm の詳細は、『OSF/Motif プログラマーズ・リファレンス リリース 1.2』 (トッパン発行) を参照してください。

IXI Motif 1.2.2 ツールキット

Solaris 2.3 ソフトウェア開発で使用できる IXI Motif 1.2.2 ツールキットには、標準 OSF/Motif 1.2.2 とは互換性のない機能が含まれています。これらの機能は OSF/Motif 1.2 仕様の一部ではないので、Solaris 2.4 以降のバージョンの Solaris Motif のツールキットには含まれていません。

XmList 簡易関数

IXI Motif には、次の標準ではない関数が含まれています。これらの関数を使用していた場合は、アプリケーションコードから削除します。

XmForm ウィジェット

IXI Motif と OSF/Motif 1.2.2 では、API は同じですが XmForm ウィジェットの実装は異なります。したがって、IXI Motif とリンクされているアプリケーションは、OSF/Motif とリンクし直したときに XmForm ウィジェット内で動作や画像に些細な違いが生じることがあります。

Solaris Motif ツールキットは、OSF/Motif 1.2.3 の XmForm ウィジェットの実装を使用します。これは IXI Motif の XmForm ウィジェットではなく、OSF/Motif 1.2.2 とバイナリ互換です。

Complex Text Layout (CTL) Support

Solaris 7 ソフトウェアは、Motif 2.1 で導入された 5 つの新しい CTL ウィジェットをサポートしています。Solaris 7 のオペレーティング環境で開発された単一のバイナリによって、ヘブライ語、アラビア語、タイ語に標準対応しています。

以下の Motif ウィジェットが新しくサポートされています。

CDE アプリケーションの開発に使用できるウィジェット

この節では、Solaris Motif の拡張機能として Solaris CDE アプリケーションの開発に使用できるウィジェットについて説明します。

Solaris Motif のコントロールウィジェット

Solaris Motif のコントロールウィジェットは、OPEN LOOK アプリケーションを Solaris CDE デスクトップに簡単に移植できるよう、Solaris Motif 内でも同等の機能を提供しています。これらのウィジェットは、Solaris Motif の一部とは見なされず Solaris Motif の拡張機能と見なされます。libDtWidget ライブラリには、すべての CDE アプリケーションで共通の機能を提供するために使用されるウィジェットと関数が入っています。次のウィジェットが提供されます。

表 3-1 CDE のコントロールウィジェット

ウィジェット名 

説明 

DtSpinBox

数値を増減させたり、テキスト文字列のリストをブラウズして選択するための追加のコントロールを持つ TextField ウィジェット。読み専用にできます。DtSpinBox の機能は、OPEN LOOK の数値テキストフィールドに似ています。

DtComboBox

TextField ウィジェットと、TextField ウィジェットに有効な選択肢を提供するポップアップリストウィジェットの組み合わせ。読み専用にできます。

DtMenuButton

メニューバーの外側またはメニュー区画で XmCascadeButton ウィジェットのメニュー階層化機能を提供するコマンドウィジェット。DtMenuButton ウィジェットの機能は、OPEN LOOK のメニューボタンと同じです。

次に、各タイプのウィジェットの例を示します。

browseSelectCallback または defaultActionCallback がコンボ・ボックスのリストウィジェットのために起動される場合、DtComboBox カスタムウィジェットはリストウィジェットではなく、コンボ・ボックスウィジェットの選択コールバックを呼び出します。

このアクションは、リストウィジェットの browseSelectCallback または defaultActionCallback が起動されたときに呼び出されるリストウィジェットの選択コールバックに依存するアプリケーションでは、エラーが生じることがあります。


注 -

Solaris CDE ソフトウェアは、すべての Motif 1.2 ウィジェットをサポートしています。


Motif 2.1 との互換性

DtSpinBox ウィジェットと DtComboBox ウィジェットの API は、Motif 2.1 リリースの XmSpinBox ウィジェットと XmComboBox ウィジェットに似ています。API は、アプリケーションをこれらのウィジェットの Motif 2.1 バージョンに簡単に切り替えられるように設計されています。切り替える場合は、クラス、タイプ、作成ルーチンの Dt という名前を Xm に変更します。

この情報は、アプリケーションを Motif 2.1 に移植する場合のために掲載していますが、移植することをお勧めしているわけではありません。


注 -

Solaris CDE ソフトウェアでは、そのウィジェットと Motif 2.1 のウィジェット間での厳密な API 互換やバイナリ互換は保証されません。


ライブラリとヘッダファイル

libDtWidget ライブラリを使用すると、DtSpinBoxDtComboBox、および DtMenuButton ウィジェットにアクセスできます。これらのウィジェットの libDtWidget ヘッダファイルは次のとおりです。

デモプログラム

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

関連マニュアル

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

CDE 端末ウィジェット

DtTerm ウィジェットは、Solaris CDE 開発環境の一部です。このウィジェットには、ANSI X3.64-1979 スタイルの端末 (特に DEC VT220 のような端末が拡張されたもの) をエミュレートするために必要な機能があります。端末ウィジェットライブラリである libDtTerm には、GUI に端末ウィンドウを追加するための DtTerm ウィジェットが入っています。アプリケーションに端末を取り込む場合は、Solaris Motif ウィジェットを使用してポップアップメニューやスクロールバーなどの表示拡張機能を追加します。

Solaris CDE 端末アプリケーションは実行環境の一部であり、端末として動作するウィンドウです。このウィンドウを使用すると、デスクトップ内から従来の端末ベースのアプリケーションにアクセスできます。DtTerm ウィジェットは、デスクトップ実行時端末の基礎です。

libDtTerm ライブラリには、DtTerm ウィジェットを作成、アクセス、およびサポートするための便利な機能一式が入っています。

ライブラリとヘッダファイル

libDtTerm ライブラリには、端末を設計したり端末ウィンドウを GUI に追加したりするための Motif ベースのウィジェット一式が入っています。

ヘッダファイル Dt/Term.h を取り込むと、アプリケーション内で libDtTerm の API にアクセスできます。

デモプログラム

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

関連マニュアル

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

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

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

CDE のテキスト編集システムは、次の 2 つのコンポーネントから構成されています。

Motif テキストウィジェットはプログラムインタフェースも提供しますが、システム全体で統一されたエディタを保証するアプリケーションでは、DtEditor ウィジェットを使用する必要があります。CDE のテキストエディタとメールプログラムのアプリケーションでは、エディタウィジェットを使用します。次の場合は、このウィジェットを使用してください。

ライブラリとヘッダファイル

DtEditor ウィジェットは、libDtWidget ライブラリに入っています。ヘッダファイルは Dt/Editor.h です。

デモプログラム

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

関連マニュアル

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