# アクションおよびデータ型の概要

アクション および データ型 は、アプリケーションをデスクトップへ統合するときに非常に役立つコンポーネントです。アプリケーションの起動およびデータ・ファイルの処理を行うユーザ・インタフェースを作成する方法を提供します。

SAG.IntAc.div.3
SAG.IntAc.div.7

この章では、アクションおよびデータ型の概念を説明します。以下のことについて説明します。

- アプリケーションのアクションおよびデータ型を作成する理由

- アクションとデータ型の関連性

- アクションおよびデータ型とデスクトップ印刷との関連性

## 関連項目

アクションおよびデータ型を作成するときの手順と規則については、このマニュアルの次の３つの章で説明しています。

- SAG.dtCrA.div.1 では、デスクトップ・アプリケーションのアクション作成を使用してアクションおよびデータ型を作成する方法について説明します。

  多くのアプリケーションは、その定義の構文規則がわからなくても、アクション作成を使用してアクションおよびデータ型を作成できます。

- SAG.CrAct.div.1 および SAG.CrDT.div.1 では、構成ファイルを作成および編集することにより、手動でアクションおよびデータ型を作成する方法について説明します。

  アクション作成ツールでサポートしていない高度な機能を使用するときは、手動でアクションおよびデータ型を作成する必要があります。

## アクションの概要

アクションは、アプリケーションの実行やデータ・ファイルを開くなど、自動化されたデスクトップのタスクを書いた命令です。アクションは、アプリケーション・マクロまたはプログラミング関数とよく似た動作をします。各アクションには、アクションを実行するのに使用するための名前があります。

一度アクションを定義すると、デスクトップ・ユーザ・インタフェースに適用されるので、タスクを実行しやすくなります。デスクトップは、アイコン、フロントパネル・コントロール、アクションに対するメニュー項目などのユーザ・インタフェース・コンポーネントに接続する機能を提供します。

### アクションの使用

たとえば、アプリケーション・マネージャの[デスクトップツール]アプリケーション・グループには、さまざまなユーティリティを起動するアイコンがあります。

### [デスクトップツール]アプリケーション・グループのアクション・アイコン

これらのアイコンはそれぞれ、ダブルクリックすると実行されます。例として[Xwd 表示]というラベルの付いたアイコンをダブルクリックしたときにアクションを実行するという定義の一部を次に示します。アクションの定義は構成ファイル `/usr/dt/appconfig/types/`language`/xclients.dt` にあります。

    ACTION Xwud
    {
     LABEL        Xwd Display
     TYPE         COMMAND
     EXEC_STRING  /usr/bin/X11/xwud -noclick -in \
                  %(File)Arg_1“Xwd File To Display:“%
     …
    }

アイコンをダブルクリックすると、アクションの `EXEC_STRING` フィールドにあるコマンドが実行されます。

フロントパネルもアクションを使用します。例として、[個人アプリケーション]サブパネルの[端末エミュレータ]というラベルの付いたコントロールの定義の一部を示します。コントロールの定義は、構成ファイル `/usr/dt/appconfig/types/`language`/dtwm.fp` にあります。

    CONTROL Term
    {
     ICON         Fpterm
     LABEL        Terminal
     PUSH_ACTION  Dtterm
     …
    }

`PUSH_ACTION` フィールドは、コントロールをクリックすると実行されるアクション（ここでは Dtterm という名前のアクション）を指定します。

他のアクションの使用方法としては、メニューで使用する方法があります。通常はデータ・ファイルではファイル・マネージャの[選択]メニューにアクションがあります。たとえば XWD ファイル（`.xwd` または `.wd` で終わる名前のファイル）には、Xwud アクションを実行することによって画面イメージを表示する[開く]アクションがあります。

### データ型 XWD のファイルの[開く]アクション

[選択]メニューのアクションは、XWD ファイルのデータ型定義で指定されます。定義は、構成ファイル `/usr/dt/appconfig/types/`language`/xclients.dt` にあります。

    DATA_ATTRIBUTES XWD
    {
     ACTIONS  Open,Print
     ICON     Dtxwd
     …
    }

XWD データ型と、それに関連する[開く]および[印刷]アクションは、 SAG.IntAc.div.9 で説明します。

### アクションによるアプリケーション用アイコンの作成方法

[デスクトップツール]アプリケーション・グループには[Xwd 表示]があります。このアイコンをダブルクリックすると、Ｘクライアントの `xwud` が実行されます。ただし、このアイコンは実際の `xwud` の実行可能ファイル `/usr/bin/X11/xwud` を直接表示するわけではありません。

同じディレクトリに `Xwud` というファイルがあるので、アプリケーション・グループに[Xwd 表示]というラベルが付いたアイコンが表示されます (SAG.IntAc.mkr.1 参照)。このファイルは、基本となるアクションを同じ名前、つまり Xwud で示します。アクション定義では、アクション名はキーワード `ACTION` に続く名前です。

    ACTION Xwud
    {
     LABEL        Xwd Display
     TYPE         COMMAND
     WINDOW_TYPE  NO_STDIO
     EXEC_STRING  /usr/bin/X11/xwud -noclick -in \
                  %(File)Arg_1“Xwd File To Display:“%
     DESCRIPTION  The Xwd Display (Xwud) XwdDisplay action \
                  displays an xwd file that was created using the \
                  Xwd Capture (Xwd) action. It uses \
                  the xwud command.
    }

ファイルはアクションを示すので アクション・ファイル と呼びます。ファイルがアクションと同じ名前の実行可能ファイルであればアクション・ファイルです。アプリケーション・マネージャ（またはファイル・マネージャ）にあるアイコン は、
アクション・アイコン または、ダブルクリックするとアプリケーションが起動されるので、
アプリケーション・アイコン と呼びます。

#### アクション・ファイルを示すアプリケーション（アクション）・アイコン

アプリケーション・マネージャは実行可能ファイルを検出すると、アクション・データベースを検索して、ファイル名と一致する名前のアクションがあるかどうか調べます。一致するファイルがあれば、そのファイルがアクション・ファイルであることをアプリケーション・マネージャは認識します。

アクション・ファイルの内容は関連がありません。通常はアクション・ファイルには、デスクトップ関数を説明するコメントがあります。

アクション・ファイル は アクション定義ファイル とは異なります。アクション・ファイル はアクションと同じ名前をもつファイルです。ファイル・マネージャまたはアプリケーション・マネージャの アプリケーション・アイコン の作成に使用します。アクション定義ファイル は、アクションの定義が入った name`.dt` という名前のファイルです。

ファイルがアクション・ファイルであることをデスクトップが判別すると、基本となるアクション定義がアクション・ファイルの外観と動作の定義に使用されます。

- `EXEC_STRING` フィールドは、アプリケーション・アイコンの動作を指定します。[Xwd 表示]アイコンの場合、`EXEC_STRING` は、アクション・アイコンが正しいコマンド行引き数でＸクライアントの `xwud` を実行することを指定します。

- `LABEL` フィールドは、アプリケーション・アイコンのラベルを指定します。

- `DESCRIPTION` フィールドは、ユーザが[アイテムヘルプ]を要求したときに表示するテキストを記述します。

- Xwud アプリケーション・アイコンは、アクション定義に別のイメージを指定する `ICON` フィールドがあるため、アクションのデフォルトのアイコン・イメージを使用します。

  反対に、[ファイルの圧縮]というラベルの付いたアイコンは、基本となるアクション定義に `ICON` フィールドがあるため、別のアイコン・イメージを使用します。

  次に例を示します。

      ACTION Compress
       LABEL  Compress File
       ICON   Dtcmprs
       …
      }

#### アクション定義の ICON フィールドで指定したアイコン・イメージ

Xwud アクションは、実行するコマンド (`EXEC_STRING`) が定義に含まれているため、command アクションと呼びます。アクション定義の `TYPE` フィールドは、アクション型を定義します。

最初に、[Xwd 表示]アイコンは[デスクトップツール]アプリケーション・グループに表示されます。ただし、書き込み権があれば、任意のディレクトリにアクション・アイコンのコピーを作成できます。Xwud アクション定義がデータベースの一部である間は、作成して `Xwud` と名付けた実行可能ファイルはアクションを示すアクション・ファイルとなり、まずファイル・マネージャまたはアプリケーション・マネージャのアイコンはアクションを実行するのに使用します。

### アクションがデータ・ファイルを引き数として使用する方法

コマンドの
引き数 は、コマンドを動作させるためのもので、通常は
ファイルです。アクションは、ファイル引き数を受け取るように記述できます。

たとえば、Xwud アクションの `EXEC_STRING` は、ファイル引き数が必須であることを指定します。

    EXEC_STRING  /usr/bin/X11/xwud -noclick -in \
                 %(File)Arg_1“Xwd File To Display:“%

`Arg` という用語は 引き数 を意味します。構文
`Arg_1` は最初の引き数であることを、`(File)` はアクションが引き数をファイルとして処理することを意味します。

ファイル引き数を指定するのにもっとも簡単な方法は、データ・ファイルをアプリケーション・アイコンにドロップすることです。デスクトップはドロップされたファイルのパスを判別し、コマンド行の `%` 記号の間のテキストの位置 (`%(File)Arg_1“Xwd File To Display:“%`) にパスを置き換えます。したがって、実行されるコマンドは次のようになります。

    /usr/bin/X11/xwud -noclick -in file_path

アプリケーション・アイコンをダブルクリックすると、デスクトップは `EXEC_STRING` からファイル引き数が必須であることを判断し、ファイル名またはパスを入力するようダイアログ・ボックスで促します。Xwud アクションの場合、プロンプトは次のとおりです。

    Xwd File To Display:

ユーザが指定するファイル名またはパスは、ファイル引き数として使用します。

### アクションのその他の使い方

アプリケーションの起動の他に、アクションは次のような機能を作成するためにデスクトップで使用します。

- フロントパネル

  フロントパネル・コントロールの定義には、コントロールをクリックしたとき、またはファイルをドロップしたときに実行するアクションを指定するフィールドがあります。詳細については、 SAG.FrPC.div.34 を参照してください。

- メニュー

  ウィンドウ・メニューおよびワークスペース・メニューの定義の構文により、メニュー項目で実行するアクションを指定できます。詳細については、 SAG.WMCnf.div.13 および `dtwmrc(4)` のマニュアル・ページを参照してください。

- アプリケーション間通信

  ToolTalk メッセージと呼ばれる特殊なアクション (`TT_MSG`) を使用して情報を送受信できるよう、アプリケーションを設計できます。`TT_MSG` アクションは、デスクトップの開発者環境用マニュアルで説明します。

## データ型の概要

新規データ・ファイルを作成したとき、ファイル・マネージャのファイル・アイコンの外観と動作は、作成したデータ・ファイルの型によって異なります。ファイルおよびディレクトリの外観および動作をカスタマイズするこの機能は、デスクトップのデータ型作成機能によって提供されます。

### データ型とは何か

データ型は、デスクトップ・データベース内で定義される構造です。例として XWD データ型の定義を次に示します。定義は、構成ファイル `/usr/dt/appconfig/types/`language`/xclients.dt` にあります。

    DATA_ATTRIBUTES XWD
    {
     ACTIONS        Open,Print
     ICON           Dtxwd
     NAME_TEMPLATE  %s.xwd
     MIME_TYPE      application/octet-stream
     SUNV3_TYPE     xwd-file
     DESCRIPTION    This file contains a graphics image in the XWD \
                    format. These files are typically created by \
                    taking snapshots of windows using the XwdCapture \
                    action. Its data type is named XWD. XWD files \
                    have names ending with `.xwd' or `.wd'.
    }
    DATA_CRITERIA XWD1
    {
     DATA_ATTRIBUTES_NAME  XWD
     MODE                  f
     NAME_PATTERN          *.xwd
    }

    DATA_CRITERIA XWD2
    {
     DATA_ATTRIBUTES_NAME  XWD
     MODE                  f
     NAME_PATTERN          *.wd
    }

それぞれのデータ型定義には次の２つの部分があります。

`DATA_ATTRIBUTES` | データ型の外観と動作を記述します。
`DATA_CRITERIA`, | そのデータ型に属するファイルをカテゴリに分類するための（命名および内容に関する）規則を指定します。

`DATA_ATTRIBUTES_NAME` フィールドは、条件を属性に接続します。

ひとつの `DATA_ATTRIBUTE` に対して複数の `DATA_CRITERIA` が存在することも可能です。たとえば XWD データ型には、`.xwd` または `.wd` で終わる名前という２つの異なる命名条件 (`NAME_PATTERN`) を指定する２つの基準があります。

### データ型によるデータ・ファイルのアクションへの接続方法

XWD データ型を想定してください。ファイルに２つのファイル名拡張子 `.xwd` または `.wd` のいずれかを指定することにより、XWD 型のファイルを作成します。デスクトップは、その型のファイルを設計するための 基準 としてファイル名を使用します。

XWD データ型は、次の内容を備えるデータ型の各ファイルを提供します。

- データ・ファイルを認識するのに役立つ一意のアイコン・イメージ

- データ型を通知する[アイテムヘルプ]

- [開く]および[印刷]のアクションを含むファイル・マネージャでカスタマイズされた[選択]メニュー（Xwd ファイルの[開く]アクションは Xwud アクションを実行します）

#### [選択]メニューからのアクションの実行

ファイル・マネージャの[選択]メニューは、ファイルまたはディレクトリが選択されたときにのみアクティブです。[選択]メニューの下のコマンドは、データ型によって異なります。たとえば XWD ファイルを選択すると、[選択]メニューには[開く]と[印刷]という項目が含まれます。

データ型定義の `ACTIONS` フィールドは、データ型定義の[選択]メニューの下に追加されるコマンドを指定します。

    DATA_ATTRIBUTES XWD
    {
            ACTIONS  Open,Print
            …
    }

[選択]メニューの内容はデータ型に依存しますが、[開く]アクションはほとんどのデータ型にあります。つまり、ファイル・マネージャの特定のデータ型のファイルを選択して、[選択]メニューを表示すると、[開く]コマンドが表示されます。

##### XWD ファイルの[選択]メニュー

[開く]アクションは、通常データ・ファイルが関連しているアプリケーションを実行します。たとえば、XWD ファイルを開くと Xwud アクションが実行されます。このアクションは順にＸクライアント xwud を実行して画面イメージを表示します。つまり XWD データ型の場合、[開く]アクションは Xwud アクションと同じです。同様に、TEXTFILE データ型のファイルを開くとテキスト・エディタが実行され、BM (ビットマップ) ファイルまたは PM (ピックスマップ) ファイルを開くとアイコン・エディタが実行されます。

異なる動作を行うさまざまな[開く]アクションを作成する機能は、アクション定義の次の２つの機能によって実現されます。

- アクション・マッピング

  アクション・マッピングにより、直接コマンドを実行せずに、他のアクションを実行するアクションを作成できます。たとえば Xwud アクションにマップ（して実行）する[開く]アクションを作成できます。

- アクションを制限するデータ型

  アクション定義には、あるデータ型にのみアクションを制限する `ARG_TYPE` フィールドを指定できます。たとえば、Xwud アクションにマップする[開く]アクションを XWD データ型のファイルだけに適用するよう指定できます。

[開く]アクションを XWD データ型の Xwud アクションマップするアクションの定義を次に示します。この定義は、データベース構成ファイル `/usr/dt/appconfig/types/language/xclients.dt` にあります。

    ACTION Open
    {
     LABEL       Open
     ARG_TYPE    XWD
     TYPE        MAP
     MAP_ACTION  Xwud
    }

`TYPE` フィールドは、このアクションがマップ・アクションであることを指定します。`MAP_ACTION` フィールドは、このアクションが Xwud アクションを実行することを指定します。`ARG_TYPE` フィールドは、このアクションが XWD データ型のファイルだけに適用されることを指定します。

上記の定義と対照的な定義を次に示します。これはデータベース・ファイル `/usr/dt/appconfig/types/language/dt.dt` にあります。

    ACTION Open
    {
     LABEL       Open
     ARG_TYPE    BM
     TYPE        MAP
     MAP_ACTION  Dticon
    }

この定義は データ型 (`ARG_TYPE`) の BM (ビットマップ・ファイル) に適用されます。定義は[開く]アクションを、アイコン・エディタを実行する Dticon アクションにマップします。

####
データ型のダブルクリック動作の定義

データ型のダブルクリック動作は、`ACTIONS` フィールドの最初のエントリで定義します。たとえば XWD データ型では、ダブルクリックすると、Xwud アクションを順に実行する[開く]アクションを実行します。

#### データ・ファイルのアクション・アイコンへのドロップ

データ・ファイルをアクション・アイコンへドロップすると、データ・ファイルをアクションの引き数としてシステムはアクションを実行します (SAG.IntAc.mkr.4 を参照してください)。

たとえば、XWD データ・ファイルを[Xwud 表示]アイコンへドロップすると、データ・フィルを引き数として Xwud アクションが実行されます。これにより、そのデータ・ファイルとともにＸクライアント `xwud` が実行されます。

### データ型に応じたデスクトップ印刷の作成

デスクトップ印刷は、データ・ファイルを印刷する次の２つの方法を提供します。

- 使用可能であれば、ファイル・マネージャの[選択]メニューの[印刷]コマンドを使用する

- データ・ファイルをデスクトップ・プリンタ・ドロップ領域（フロントパネル・プリンタ・コントロールまたは印刷マネージャのプリンタ・アイコン）にドロップする

デスクトップ印刷の他にも、たくさんのアプリケーションがアプリケーション内から印刷する方法を提供しています。

デスクトップ印刷は、[印刷]という名前のアクションを使用します。[印刷]は[開く]のように、さまざまなデータ型に使用されるアクション名です。したがって、[印刷]アクションはアクション・マッピングと `ARG_TYPE` フィールドを使用し、各データ型の印刷をカスタマイズします。

例として、次に XWD データ型の[印刷]アクションを示します。定義は `/usr/dt/appconfig/types/`language`/xclients.dt` にあります。

    ACTION Print
    {
     LABEL       Print
     ARG_TYPE    XWD
     TYPE        MAP
     MAP_ACTION  NoPrint
    }

この[印刷]アクションは XWD ファイルに固有で、NoPrint アクションにマップされます。NoPrint は `/usr/dt/appconfig/types/`language`/dt.dt` で定義される特殊アクションです。
NoPrint アクションは、このデータ型が印刷できないことをユーザに通知するダイアログ・ボックスを表示します。

XWD の[印刷]アクションを、次の PCL ファイルの[印刷]アクションと比較してください。

    ACTION Print
    {
     LABEL       Print
     ARG_TYPE    PCL
     TYPE        MAP
     MAP_ACTION  PrintRaw
    }

PrintRaw アクションは、PCL ファイルを印刷するコマンド行が入っている構成ファイル `/usr/dt/appconfig/types/`language`/print.dt` で定義されています。

    ACTION PrintRaw
    {
     TYPE         COMMAND
     WINDOW_TYPE  NO_STDIO
     EXEC_STRING  /usr/dt/bin/dtlp -w %(File)Arg_1%
    }