[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ]


5 New Desktopのプログラミング・リソース

DECwindows Motif for OpenVMS Alphaでは,DECwindows Motif for OpenVMS VAXのプログラミング・リソースに加えて,New Desktopのプログラミング・ リソースが用意されています。 これらのリソースには,CDE APIおよび統合サービスのサブセット, 追加のCDEリソースが含まれます。

本章では,次の事項について説明します。

5.1 New Desktopがサポートする標準

New Desktopは次の標準をサポートします。

5.2 APIサービスおよびアプリケーション統合サービス

表 5-1は,New Desktopで利用できるCDEアプリケーション・ プログラミング・ インタフェース(API)およびCDEアプリケーション統合サービスのサブセットをまとめたものです。 これらは,次の共有可能ライブラリ(論理名SYS$LIBRARY で定義される)に含まれています。

また,対応するヘッダ・ファイルについても表 5-1 で説明しています。CDE API の全ルーチンについては,付録 C を参照してください。New Desktop ではほとんどのCDE API ルーチンをサポートしていますが,いくつかのものはサポートしていません。 サポートされていないものについては注意書きがあります。

これらの新規APIサービスおよびアプリケーション統合サービスに加え, DECwindows Motifの全APIサービスと全アプリケーション統合サービスもNew Desktop で利用できます。

表 5-1 New DesktopのCDE APIサービスおよびアプリケーション統合サービス

サービスの種類 説明
CDE$LIBDTSVC.EXE デスクトップ・サービス
便利なドラッグ・ドロップ形式のAPI OSF/Motif R1.2のドラッグ・ドロップ・サービスの上位にある便利な機能。 これらの機能はOSF/Motif R1.2のドラッグ・ドロップ・サービスを簡素化したもので,内容には変更ありません。
アクション刷新API アクションデータベースおよびデータ型定義データベースの初期化とロード, アクション・データベースの問い合わせ,アクションの起動, アクションのステータス情報を受け取って引数を返すためのコールバックの登録に利用します。
セッション・マネージャAPI(dtsession) このサービスには保存および復元機能が含まれます。
ワークスペース・マネージャAPI (dtwm)[1] ワークスペース情報の取得,現在のワークスペースの設定など。
ヘッダ・ファイル[2] Action.h,Dnd.h,Dts.h,Dt.h,Saver.h,Session.h,Wsm.h
詳細は, 『共通デスクトップ環境: プログラマーズ・ガイド』を参照してください。
CDE$LIBDTHELP.EXE ヘルプ・ウィジェットのサポート
DtHelpDialog メニュー・バー,トピック・ツリー, ヘルプ・トピック表示領域を含む一般ヘルプ・ダイアログ。
DtHelpQuickDialog トピック表示領域および1つ以上のダイアログ・ボタンを最下部に持つクイック・ヘルプ・ダイアログ。
ヘッダ・ファイル[2] Help.h,HelpQuickD.h,HelpDialog.h
詳細は, 『共通デスクトップ環境: プログラマーズ・ガイド(ヘルプ・システム編)』を参照してください。
CDE$LIBDTWIDGET.EXE カスタム・ウィジェット
DtSpinBox 数値またはテキスト値を増減できるコントロール内の矢印ボタンとテキスト・フィールドとを結合します。
DtComboBox テキスト・フィールド用の1つ以上の有効な選択肢を表示するコントロール内のリスト・ボックスとテキスト・フィールドとを結合します。
DtMenuButton メニュー・バーの外にメニューのカスケード化を行う機能です。
DtEditor シンプルなテキスト・エディタの機能を組み込みます。
ヘッダ・ファイル[2] Spinbox.h,ComboBox.h,MenuButton.H,Editor.h
詳細は, 『共通デスクトップ環境: プログラマーズ・ガイド』を参照してください。

[1] 一部の機能はサポートされていません。

[2] DECW$INCLUDE:にあります。

表 5-2は,New Desktopに組み込まれていないCDE API サービス,アプリケーション統合サービス, ツールをまとめたものです。

表 5-2 組み込まれていないCDE API,アプリケーション統合サービス

CDE構成要素 名称
アプリケーション・ビルダ dtappbuilder
カレンダ・マネージャAPI libcsa
メッセージ交換サービス(ToolTalk) libtt
多目的インターネットメール拡張機能(MIME)サポート libdtmail
漢字端末エミュレータAPI libdtterm
ウィンドウ対応Kornシェル dtksh

以上の各ルーチンのアプリケーションでの使用例については,第5.10節に説明のサンプル・ プログラムを参照してください。

5.3 保存および復元機能

New Desktopには,セッションの保存および復元ユーティリティ機能が備わっています。 この機能がご利用のアプリケーションに組み込まれている場合は, アプリケーションの状態がセッション・ マネージャ終了時に保存され,セッションの再起動時に復元されます。

XmAddWMProtocol()関数を使用して,アプリケーションの最上位用WM_PROTOCOLS 特性にWM_SAVE_YOURSELFアトムを設定してください。 DECW$UTILSディレクトリにあるxpropユーティリティ・プログラムを使用して, ウィンドウの特性を表示することができます。

XmAddWMProtocolCallback()関数を使用して,アプリケーションがWM_ SAVE_YOURSELFクライアント・メッセージを受信したときのコールバック・ プロシージャを宣言します。セッション・マネージャがクライアントのWM_SAVE_YOURSELF メッセージをアプリケーションに送ると,このコールバック関数が呼び出されます。

アプリケーションは,保存および復元処理中はユーザと対話するべきではありません。 たとえば,保存および復元処理中は,ダイアログ・ボックスは表示するべきではありません。

SESSION.Cサンプル・プログラムが目安として提供されています。このサンプル・ プログラムは,切り替えボタン付きのメイン・ウィンドウを作成し, 保存および復元ルーチンの実行中にボタンの状態を保存します。

サンプル・プログラムは次のディレクトリにあります。

     CDE$SYSTEM_DEFAULTS:[EXAMPLES.DTSESSION]

サンプル・プログラムが入ったディレクトリに関する一般的な説明は,第5.10節を参照してください。

5.4 アクション作成アプリケーション

アプリケーションをNew Desktopから起動するためには, アプリケーション構成ファイルをいくつか作成してインストールしておかなければなりません。 ほとんどのアプリケーションの構成ファイルは, アクション作成アプリケーションで作成およびインストールすることができます。 アクション作成アプリケーションはこれらのファイルの作成処理を自動化するもので, アプリケーション・マネージャ内の[ デスクトップツール]アプリケーション・グループから起動することができます。

アクション作成についての詳細は,本書の第4.1 節を参照してください。

5.5 サポートされているファイル型

New Desktopには,事前に構成されたアイコンと関連アクションが付いたファイル型のセットが用意されています。 これらのアイコンとアクションは,アクション作成,アクション・データベース, 実行管理ツールを使用して変更することができます。

ファイル型の例として,実行可能ファイル(拡張子.EXE付き)あるいはデータ・ ファイル(拡張子.TXT付き)があります。アクションの例としては, ファイルが実行可能型の場合,ファイルの実行や,ファイルがデータ・ ファイルの場合の印刷または編集するための開く があります。

5.6 CDE標準フォント

CDEは,アプリケーション用とインタフェース用の2種類の標準フォントを定義します。 アプリケーション・データにはアプリケーション用フォントを,Motif ウィジェットにはインタフェース用フォントを使用します。

New Desktopに組み込まれているCDE標準アプリケーション用フォントは, あらゆるCDEプラットフォームで使用できる汎用フォントです。 これらのフォントは,ふつうXフォント別名メカニズムによって, 各CDEプラットフォーム上で別々のフォントにマッピングされます。 これらのリソース用のフォントはAPP-DEFAULTSファイルに指定します。

CDE標準インタフェース用フォントは,Motifウィジェットでアプリケーション開発がしやすいように, アプリケーションのウィンドウが他のCDEデスクトップのクライアント・ ウィンドウと同様の外観で,ユーザがスタイル・ マネージャを利用してこれらのフォントのサイズを自由に変更できるようになっています。Motif フォント・リストのリソース仕様を変更することによって, 組み込まれているフォントを無効にする場合は,ユーザがそのアプリケーションのフォントをカスタマイズできるような追加機能を用意する必要があります。

以上のガイドラインを守ることによって,アプリケーションはあらゆるCDE プラットフォームに適切なフォントを提供します。詳細は,『共通デスクトップ環境: プログラマ概要』および『共通デスクトップ環境:プログラマーズ・ ガイド』を参照してください。

5.7 ヘルプのプログラミング

New Desktopのヘルプ・システムは,アプリケーションのオンライン・ ヘルプの開発および表示を実現する完全なシステムです。 本節では,ヘルプ開発用に用意されているプロセスやツールについて簡単に説明しています。OpenVMS 独特の特徴については,この節で完全に説明しています。 ヘルプ開発プロセス,SGMLマークアップ言語, ヘルプ記述タスク,プログラミング・タスクについての詳細は,『共通デスクトップ環境: プログラマーズ・ガイド(ヘルプ・システム編)』を参照してください。

次のNew Desktopプログラミング構成要素が, ヘルプの開発用に用意されています。

5.7.1 ヘルプ開発用プロセス

オンライン・ヘルプはファイル拡張子.HTG付きのテキスト・ファイルに記述されます。HelpTag という名前のSGMLマークアップ言語を使用して,テキストの各要素のフォーマット方法を指定します。

HelpTagは,見出し,段落,リストなどの要素のフォーマットを指定するタグ集です。 ヘルプ・テキストを作成し,そのテキストの要素に適切なタグでラベルを付けた後,DTHELPTAG.COM コマンド・プロシージャでこれらのタグ付きファイルを処理します。DTHELPTAG.COM コマンド・プロシージャはヘルプ・ ビューアで表示させることができる実行時ヘルプ・ファイル( 拡張子.SDL)を生成します。

略式SGMLと正式SGMLの2種類のスタイルのSGMLが用意されており,どちらもHelpTag マークアップ言語と共に使用できます。略式スタイルの方が簡単かつ迅速にコード化できます。

5.7.2 ヘルプ・コンパイラ・インタフェース

ヘルプ・コンパイラ・インタフェースは,DTHELPTAG.COMから起動する3つの実行可能ファイルで構成されます。 これらの実行可能ファイルについては 表 5-3で説明していますが, CDE$SYSTEM_DEFAULTS:[BIN]ディレクトリに入っており,このディレクトリはCDE$PATH 論理名で参照されます。

表 5-3 DTHELPTAG.COM実行可能ファイル

ファイル名 用途
DTHELP_CTAG1.EXE 正式SGMLによるヘルプ・トピック用のパーサ
DTHELP_HTAG1.EXE 略式SGMLによるヘルプ・トピック用のパーサ
DTHELP_HTAG2.EXE 上記のどちらか1方のパーサ実行後に分散ファイル拡張のために実行します。

DTHELPTAG.COMの主な機能は,ヘルプのソース・ファイルをコンパイルすることです。DTHELPTAG.COM は次のタスクにも使用できます。

DTHELPTAG.COMはUNIX版dthelptagシェル・スクリプトから移植されたものです。DTHELPTAG.COM は,そのUNIX版に組み込まれているファイル圧縮・ 解凍以外の全機能をサポートします。

5.7.3 DTHELPTAG.COMのフォーマットとオプション

DTHELPTAG.COMのフォーマットは次のとおりです。

   @CDE$PATH:DTHELPTAG [option] filename

ここでfilenameには,入力するヘルプのソース・ファイル名を指定します。

DTHELPTAG.COMオプションは先頭にハイフン(-)を付ける必要がありますが, 各オプションについては表 5-4で説明しています。

表 5-4 DTHELPTAG.COMのオプション

オプション 用途
-formal 正式SGMLによるヘルプ・トピックに使用するパーサを指定します。 -formalを指定しない場合,略式SGMLのヘルプ・トピック用のパーサが使用されます。
-nooptimize HelpTagマークアップの実行時フォーマットへの変換中に通常発生する, 一部の最適化をオフにします。 このオプションを使用すると変換プロセスの時間が短縮されます。
-memo ヘルプ・ファイルの作者のメモ書きをメモ・タグ(<memo>)を付けてファイルに挿入します。
-debug 中間ファイルを保存します。 保存しない場合は削除されます。
-clean 特定のヘルプ・ボリューム用にDTHELPTAG.COMにより生成されたファイルをすべて削除します。
-files 特定のヘルプ・ファイルに関連するすべてのファイルを一覧表示します。 表示されるファイルには,DTHELPTAG.COMコマンド・プロシージャ実行中に生成された中間ファイルと, ヘルプ・ファイルに組み込まれるグラフィック・ファイルも含まれます。
-help DTHELPTAG.COM用のコマンド行ヘルプを呼び出します。

5.7.4 ヘルプ・ユーティリティ機能

アプリケーション・プログラマの方のためにNew Desktopには,Motifアプリケーションに[ヘルプ]ダイアログ・ ボックスを付け加えることができるヘルプAPIが用意されています。New Desktop のヘルプ・ライブラリ(CDE$LIBDTHELP.EXE) には,次の2種類のヘルプ・ダイアログ・ボックスが用意されています。

New DesktopのヘルプAPIについての詳細は, 『共通デスクトップ環境: プログラマーズ・ガイド(ヘルプ・システム編)』を参照してください。

5.7.5 HelpTagのサンプル・プログラム

HelpTagのサンプル・ファイルは次のディレクトリに入っています。

     CDE$SYSTEM_DEFAULTS:[EXAMPLES.DTHELP]

次の例では,HelpTagの-filesオプションの使用法を示すサンプル・ファイルを使用しています。

     $ @CDE$PATH:DTHELPTAG -files HELPDEMO.HTG

上記のコマンドの実行により次のメッセージが出力されます。

     Workfile is --> HELPDEMO.HTG
     MARKUP PARSER (with non-canonical SGML enhancements)
     (c) Copyright 1993, 1994 Hewlett-Packard Company
     (c) Copyright 1993, 1994 International Business Machines Corp.
     (c) Copyright 1993, 1994 Sun Microsystems, Inc.
     (c) Copyright 1993, 1994 Unix System Labs, Inc., a subsidiary of Novell, Inc.
     CDE HelpTag Formatting System. - Version B.00.00  (DTD Version A.01.23)
     Interface generated from help.if on Thu Dec 28 09:01:10 1995
     helpdemo.htg
     Warning: could not open locale translation database.
     [.graphics]AppWithHelp.xwd
      [.graphics]cauticon.pm
     [.graphics]clock.xwd
     [.graphics]clouds.xpm
     [.graphics]bee.xwd
     [.graphics]deadjim.xwd
     [.graphics]GeneralHelp.xwd
     [.graphics]head-down.xwd
     [.graphics]helpchar.ent
     [.graphics]helpicon.ent
     [.graphics]helplang.ent
     [.graphics]helpShelf.pm
     [.graphics]integral.bm
     [.graphics]noteicon.pm
     [.graphics]QuickHelp.xwd
     [.graphics]rooster.xpm
     [.graphics]Snapshot.bm
     [.graphics]Snapshot.xwd
     [.graphics]speaker.pm
     [.graphics]shuttle2.xwd
     [.graphics]sunset.xwd
     [.graphics]tribe.xwd
     [.graphics]warnicon.pm
     [.graphics]xload.xwd
     Exiting HelpTag Utility...
     $

5.8 スクリーン・セーバ

New Desktopには,スクリーン・セーバを追加することができます。 スクリーン・セーバのサンプル・プログラムがCDE$SYSTEM_DEFAULTS:[EXAMPLES.DTSCREEN] ディレクトリにあります。

スクリーン・セーバの作成は次の手順で行ってください。

  1. スクリーン・セーバ・アプリケーションを作成します。

  2. スクリーン・セーバを起動するアクションを作成します。

  3. 新しいスクリーン・セーバのアクションを,利用可能なスクリーン・ セーバのリストに追加します。これには,次の行をSYS$MANAGER:DECW$PRIVATE_APPS_SETUP.COM ファイルに追加します。
         DTSCREENSAVERLIST == "SampleScreenSaver"
    

    リストの各スクリーン・セーバ名は,スペースで区切ります。

  4. セッションを再起動します。

以上の手順を完了すると,新しいスクリーン・セーバがスタイル・マネージャの[ スクリーンセーバ]オプションの利用可能なスクリーン・セーバのリストに追加されます。

新しいスクリーン・セーバの作成についての詳細は,上記サンプル・ディレクトリのREADME. ファイルを参照してください。

5.9 ヘッダ・ファイル

表 5-5は,New Desktopに付属のCDE構成要素用のヘッダ・ ファイルをまとめたものです。 これらのヘッダ・ファイルを利用することにより,アプリケーション開発者がデスクトップAPI ( ドラッグ・ドロップ,保存および復元, ワークスペース・マネージャなど),ヘルプ・サービスおよびカスタム・ ウィジェットを活用することができます。

ヘッダ・ファイルはディレクトリDECW$INCLUDEにあり,サンプル・ディレクトリのソース・ ファイル中で次の構文により参照されます。

   #include <DT/filename.H>

ここでDTはDECW$INCLUDEとして定義されている論理名です。


注意
includeは必ず小文字で指定し, それに続く句は必ず括弧(<>)で囲ってください。

表 5-5 CDEヘッダ・ファイル

ファイル名 機能
デスクトップ・サービスAPI
DT/ACTION.H アクション関連の構造体および関数
DT/DND.H ドラッグ・ドロップ関数
DT/DT.H CDEバージョン情報,DtInitializeおよびDtAppInitialize関数
DT/DTS.H データ型定数および関数
DT/SAVER.H スクリーン・セーバAPI関数
DT/SESSION.H セッション・マネージャAPI(保存および復元)機能
DT/WSM.H ワークスペース・マネージャAPIに関連するデータおよび関数
ヘルプ・サービス
DT/HELP.H dtfileヘルプの関数を定義。
DT/HELPQUICKD.H クィック・ヘルプ・ダイアログのリソースおよび関数
カスタム・ウィジェット(libdtwidget.exeに記述)
DT/COMBOBOX.H コンボ・ボックスのウィジェット用
DT/EDITOR.H エディタのウィジェット用
DT/MENUBUTTON.H メニュー・ボタンのウィジェット用
DT/SPINBOX.H スピン・ボックスのウィジェット用

5.10 CDEサンプル・プログラム

New DesktopにはCDEサンプル・プログラムが用意されており, 表 5-6で説明しています。 サンプル・プログラムには,New Desktopで提供される各種CDE APIやその他のプログラミング・リソースの使用法が示されています。 各サンプル・ディレクトリにはREADME.ファイルが入っています。 これはサンプル・プログラムと,そのディレクトリ用のサンプル・ プログラムを構築するために利用できるコマンド・ファイル( nnnn.com)について説明しているファイルです。

最上位のサンプル・ディレクトリへは,次の例のようにCDE$EXAMPLES論理名で参照することができます。

     $ DIR CDE$EXAMPLES
     Directory CDE$SYSTEM_DEFAULTS:[EXAMPLES]

      DTACTION.DIR;1      DTDTS.DIR;1         DTHELP.DIR;1
      DTSCREEN.DIR;1      DTSESSION.DIR;1     DTWIDGET.DIR;1
      DTWSM.DIR;1

以上のサンプル・プログラム用のヘッダ・ファイルは,次の形式で組み込まれています。

     #include <DT/filename.H>

ここでDTは,DECW$INCLUDEとして定義された論理名です。

表 5-6 CDEサンプル・プログラム

プログラム名 用途
DTACTION あるファイルに対してアクションを実行する, アクションAPIの使用法を示すデモ・プログラムです。アプリケーションは, 2つのテキスト入力フィールドを表示します。 最初のフィールドにアクション名を入力し, 2番目のフィールドにアクションを実行する対象となるファイル名を入力して, [RETURN]キーを押します。
DTDTS Dtsデータ表示APIの使用法を教えるプログラムで,データ型,アイコン名, およびプログラムに各ファイルが渡した対応アクションを表示します。 ファイルの対応アクションの実行には, dtactionクライアントを使用することができます。
DTHELP CDEヘルプ・システムHelptag言語の使用法およびCDEヘルプ・ファイルの作成方法を教えるプログラムで, コンパイルしたヘルプ・ファイル(HELPDEMO.SDL)は, ヘルプ・ビューアで表示することができます。
DTSCREEN スクリーン・セーバAPIのサンプル・プログラム(SCREENSAVER.EXE)が入っています。 これは,DTスクリーン・セーバAPIを使用した単純なスクリーン・セーバの例で, デスクトップの全ユーザまたはご自分のセッションでこのスクリーン・セーバを利用可能にする手法を教えます。 (あるいは,New Desktopに用意されているスクリーン・セーバ集から1つ選んで, デスクトップ・セッションで使用することもできます。 これらのスクリーン・セーバは, スタイル・マネージャの[スクリーンセーバ]ダイアログからプレビューしたり, 選択することができます。)
DTSESSION セッションのメカニズムとAPIを示すプログラムです。 SESSION.EXEプログラムは, DtSession APIを使用してDt Session管理プロトコルをサポートするアプリケーションの一例です。 このアプリケーションでは, セッション終了時に現在の状態(切り替えボタンの値)が保存されます。 セッションが再開されると切り替えボタンの状態が復元されます。 保存および復元についての詳細は, 本書の第5.3節を参照してください。
DTWIDGET ウィジェット・ライブラリのデモが入っています。 CONTROLS.EXEプログラムではDtSpinBox,DtComboBox,DtMenuButtonの各制御, EDITOR.EXEプログラムではDtEditorウィジェットのデモを実行します。
DTWSM ワークスペース・マネージャAPIのデモが入っています。 OCCUPY.EXEプログラムはCDEワークスペース内にアプリケーションが存在するかどうかの問い合わせと設定の方法を紹介します。 WSINFO.EXEプログラムは,アプリケーションの現在のワークスペースの属性情報を問い合わせる方法を紹介します。

5.11 CDEプログラミング関連ドキュメント

CDEプログラミング関連ドキュメントには,コンテキスト・ヘルプ付きのCDE ヘルプ・システム,オンラインCDEドキュメント,オンライン・リファレンス・ ページ(マニュアル・ページとも呼ばれる)などがあります。印刷版CDE ドキュメントも用意されています。

5.11.1 CDEプログラミング関連ドキュメント

次のCDEプログラミング関連ドキュメントがオンラインで用意されています。

これらのドキュメントへのアクセス,または印刷版の取り寄せ方法については, 表 1-2を参照してください。

5.11.2 リファレンス・ページ

CDEリファレンス・ページ(マニュアル・ページ)は,インストレーション時のオプションとしてキットに付属しています。 なお,リファレンス・ ページに記述されているコマンドの中には,New Desktopではまだ実現されていないものがあります。

リファレンス・ページはいくつかの章に分かれています。OpenVMS Alpha システムでは表 5-7のように,セクションを表すファイル拡張子が付いています。

表 5-7 リファレンス・ページの各章

章番号 内容 ファイルの拡張子[1]
1 アプリケーション filename.1
3 ライブラリ/プログラミング filename.3
4 プログラミング filename.4
5 ファイル・フォーマットを含む filename.5

[1] リファレンス・ページの第2章(.2)はCDEシステム・コールについて説明していますが, New Desktopではまだ実現されていません。

リファレンス・ページにアクセスする方法については, 表 1-2を参照してください。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ]