<!-- $XConsortium: ch10.sgm /main/2 1996/12/17 06:28:01 cde-hit $ -->
<!-- (c) Copyright 1995 Digital Equipment Corporation. -->
<!-- (c) Copyright 1995 Hewlett-Packard Company. -->
<!-- (c) Copyright 1995 International Business Machines Corp. -->
<!-- (c) Copyright 1995 Sun Microsystems, Inc. -->
<!-- (c) Copyright 1995 Novell, Inc. -->
<!-- (c) Copyright 1995 FUJITSU LIMITED. -->
<!-- (c) Copyright 1995 Hitachi. -->
<Chapter Id="SAG.CrAct.div.1">
<Title Id="SAG.CrAct.mkr.1">手動によるアクションの作成<IndexTerm><Primary>アクション</Primary><Secondary>手動による作成</Secondary></IndexTerm></Title>
<Para>
アクションを作成するには、次の２つの方法があります。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
アクション作成デスクトップ・アプリケーションを使用する
</Para>
</ListItem>
<ListItem>
<Para>
手動でアクション定義を作成する
</Para>
</ListItem>
</ItemizedList>
<Para>
手動でアクションを作成するには、データベース・ファイルを編集する必要があります。この章では、アクション定義を手動で作成する方法について説明します。
</Para>
<InformalTable Id="SAG.CrAct.itbl.1" Frame="All">
<TGroup Cols="1">
<ColSpec Colname="1" Colwidth="4.0 in">
<TBody>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Reasons You Must Create an Action Manually156'--><XRef Role="JumpText" Linkend="SAG.CrAct.div.3"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Creating an Action Manually: General Steps157'--><XRef Role="JumpText" Linkend="SAG.CrAct.div.7"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Building the Execution String for a COMMAND Action166'--><XRef Role="JumpText" Linkend="SAG.CrAct.div.19"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Windowing Support and Terminal Emulators for COMMAND Actions
173'--><XRef Role="JumpText" Linkend="SAG.CrAct.div.40"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Restricting Actions to Certain Arguments174'--><XRef Role="JumpText" Linkend="SAG.CrAct.div.44"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Creating Actions that Run Applications on Remote Systems177'--><XRef Role="JumpText" Linkend="SAG.CrAct.div.49"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Using Variables in Action and Data Type Definitions178'--><XRef Role="JumpText" Linkend="SAG.CrAct.div.52"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Invoking Actions from a Command Line179'--><XRef Role="JumpText" Linkend="SAG.CrAct.div.57"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Creating Localized Actions181'--><XRef Role="JumpText" Linkend="SAG.CrAct.div.61"></Para></Entry>
</Row>
<Row Rowsep="1">
<Entry><Para><!--Original XRef content: 'Creating Actions for ToolTalk Applications182'--><XRef Role="JumpText" Linkend="SAG.CrAct.div.64"></Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
<Sect1 Id="SAG.CrAct.div.2">
<Title>関連項目</Title>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
アクションの概要については、
<!--Original XRef content: 'Chapter&numsp;8, &xd2;Introduction to Actions and Data Types'--><XRef Role="ChapNumAndTitle" Linkend="SAG.IntAc.mkr.1"> を参照してください。
</Para>
</ListItem>
<ListItem>
<Para>
アクション作成ツールの使用の詳細については、
<!--Original XRef content: 'Chapter&numsp;9, &xd2;Creating Actions and Data Types Using Create Action'--><XRef Role="ChapNumAndTitle" Linkend="SAG.dtCrA.mkr.1"> を参照してください。
</Para>
</ListItem>
<ListItem>
<Para>
アクション定義の参照情報については、
<Filename>dtactionfile(4)</Filename> のマニュアル・ページを参照してください。
</Para>
</ListItem>
</ItemizedList>
</Sect1>
<Sect1 Id="SAG.CrAct.div.3">
<Title Id="SAG.CrAct.mkr.2">手動でアクションを作成しなければならない理由</Title>
<Para>
<IndexTerm><Primary>アクション</Primary><Secondary>〜の型</Secondary></IndexTerm>
アクションには次の３つの基本型があります。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
<Command>COMMAND</Command></Para>
</ListItem>
<ListItem>
<Para><Command>MAP</Command></Para>
</ListItem>
<ListItem>
<Para><Filename>TT_MSG</Filename></Para>
</ListItem>
</ItemizedList>
<Para Id="SAG.CrAct.mkr.3">
アクション作成ツールは、 <Command>COMMAND</Command> アクションと <Command>MAP</Command> アクション型を作成するように設計されています。すべての <Filename>TT_MSG</Filename> アクションは手動で作成しなければなりません。
</Para>
<Para>
詳細については、
<!--Original XRef content: '&xd2;Limitations of Create Action&xd3; on page&numsp;142'--><XRef Role="SecTitleAndPageNum" Linkend="SAG.dtCrA.mkr.3"> を参照してください。
</Para>
<Sect2 Id="SAG.CrAct.div.4">
<Title>COMMAND アクション<IndexTerm><Primary>COMMAND アクション</Primary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>COMMAND</Secondary></IndexTerm></Title>
<Para>
<Emphasis>コマンド・アクション</Emphasis> は、アプリケーションまたはユーティリティを起動するコマンド、シェル・スクリプト、またはオペレーティング・システム・コマンドを実行します。アクションの定義には、実行されるコマンド <Filename>EXEC_STRING</Filename>) も含まれます。
</Para>
<Para>
アクション作成ツールは、コマンド・アクションのもっとも一般的な型を作成するときに使用できます。しかし、アクションを手動で作成しなければならない状況のときもあります。たとえば、アクションが次のものを指定する場合には、手動で <Command>COMMAND</Command> アクションを作成しなければなりません。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
各引き数に対して異なるプロンプトをもつ複数のファイル用引き数
</Para>
</ListItem>
<ListItem>
<Para>
アクション呼び出し &mdash; 他のアクションを呼び出すアクションの機能
</Para>
</ListItem>
<ListItem>
<Para>
引き数の数に依存する動作 &mdash; 異なる数のファイル引き数に対してさまざまな動作を行うアクションを作成する機能
</Para>
</ListItem>
<ListItem>
<Para>
リモート実行ホスト &mdash; アクション定義をもっているシステム以外のシステムにあるアプリケーションを実行する機能
</Para>
</ListItem>
<ListItem>
<Para>
ユーザの変更 &mdash; 異なるユーザとしてアクションを実行する機能（たとえば、root のパスワードをプロンプトしてから root として実行する）
</Para>
</ListItem>
</ItemizedList>
</Sect2>
<Sect2 Id="SAG.CrAct.div.5">
<Title>マップ・アクション<IndexTerm><Primary>MAP アクション</Primary><Secondary>定義</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>MAP</Secondary></IndexTerm></Title>
<Para>
<Emphasis>マップ・アクション</Emphasis> は、コマンドや ToolTalk メッセージを直接指定すること以外の、別のアクションに「マップされる」アクションです。
</Para>
<Para>
マッピングは、アクションの代替名を指定する機能を提供します。たとえば、[アイコンエディタ]という名前の組み込みコマンド・アクションは、アイコン・エディタを起動します。データベースにも[開く]アクションが含まれていますが（<Filename>ARG_TYPE</Filename> フィールドによって）定義はビットマップ・ファイルとピックスマップ・ファイルに制限され、[アイコンエデイタ]アクションにマップされます。これにより、ユーザは、ファイル・マネージャのビットマップ・ファイルまたはピックスマップ・ファイルを選択してから[選択]メニューの[開く]を選択して、アイコン・エディタを起動できます。
</Para>
<Para>
アクション作成ツールは、[開く]アクションと[印刷]アクションの制限されたマッピングを提供します。その他のすべてのマップ・アクションは、手動で作成しなければなりません。
</Para>
</Sect2>
<Sect2 Id="SAG.CrAct.div.6">
<Title>TT_MSG (ToolTalk メッセージ) アクション<IndexTerm><Primary>アクション</Primary><Secondary>TT_MSG</Secondary></IndexTerm></Title>
<Para>
<Filename>TT_MSG</Filename> アクションは、ToolTalk メッセージを送信します。すべての <Filename>TT_MSG</Filename> アクションは手動で作成しなければなりません。
</Para>
</Sect2>
</Sect1>
<Sect1 Id="SAG.CrAct.div.7">
<Title Id="SAG.CrAct.mkr.4">手動によるアクションの作成: 一般的な手順<IndexTerm><Primary>アクション</Primary><Secondary>手動による作成</Secondary></IndexTerm></Title>
<Para>
この節では、アクション定義の構成ファイルを作成する方法について説明します。
</Para>
<Sect2 Id="SAG.CrAct.div.8">
<Title Id="SAG.CrAct.mkr.5">アクションの構成ファイル<IndexTerm><Primary>アクション</Primary><Secondary>構成ファイル</Secondary></IndexTerm><IndexTerm><Primary>構成ファイル</Primary><Secondary>アクション</Secondary></IndexTerm><IndexTerm><Primary>dt ファイル</Primary></IndexTerm></Title>
<Para>
アクション定義が入っている構成ファイルは、次の要件を満たしていなければなりません。	
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
ファイルは、<Symbol Role="Variable">name</Symbol><Filename>.dt</Filename> という命名規則を使用しなければなりません。
</Para>
</ListItem>
<ListItem>
<Para>
<IndexTerm><Primary>データベース検索パス</Primary></IndexTerm><IndexTerm><Primary>検索パス</Primary><Secondary>アクション</Secondary></IndexTerm>
ファイルは、データベース（アクションとデータ型）検索パス上になければなりません。デフォルトの検索パスは次のとおりです。
</Para>
<InformalTable>
<TGroup Cols="2" colsep="0" rowsep="0">
<colspec colwidth="144*">
<colspec colwidth="384*">
<TBody>
<Row>
<Entry><Para>個人用アクション</Para></Entry>
<Entry><Para><Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/types</Filename></Para></Entry>
</Row>
<Row>
<Entry><Para>システム共通アクション</Para></Entry>
<Entry><Para><Filename>/etc/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol></Para></Entry>
</Row>
<Row>
<Entry><Para>組み込みアクション</Para></Entry>
<Entry><Para><Filename>/usr/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol>
ただし、このディレクトリは使用しないでください。</Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
</ListItem>
</ItemizedList>
<Para>
アクションおよびデータ型検索パスの変更の詳細については、
<!--Original XRef content: '&xd2;Setting the Value of a Search Path&xd3; on page&numsp;115'--><XRef Role="SecTitleAndPageNum" Linkend="SAG.Datab.mkr.6"> を参照してください。
</Para>
</Sect2>
<Sect2 Id="SAG.CrAct.div.9" Role="Procedure">
<Title Id="SAG.CrAct.mkr.6">手動でアクションを作成するには<IndexTerm><Primary>アクション</Primary><Secondary>手動による作成</Secondary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>
既存のデータベース・ファイルを開くか、新規のデータベース・ファイルを作成します。
前節の
<!--Original XRef content: '&xd2;Configuration Files for Actions'--><XRef Role="SectionTitle" Linkend="SAG.CrAct.mkr.5"> を参照してください。
</Para>
</ListItem>
<ListItem>
<Para>
次の構文を使用してアクション定義を作成します。
</Para>
<programlisting>ACTION <Symbol Role="Variable">action_name</Symbol>
{
 TYPE <Symbol Role="Variable">action_type
 action_field</Symbol>
 &hellip;
}
</ProgramListing>
<Para>構文の意味を次に示します。</Para>
<InformalTable>
<TGroup Cols="2" colsep="0" rowsep="0">
<colspec colwidth="177*">
<colspec colwidth="351*">
<TBody>
<Row>
<Entry><Para><Emphasis>action_name</Emphasis><IndexTerm><Primary>アクション</Primary><Secondary>名前</Secondary></IndexTerm>
</Para></Entry>
<Entry><Para>アクションを実行するのに使用する名前</Para></Entry>
</Row>
<Row>
<Entry><Para><Emphasis>action_type</Emphasis><IndexTerm><Primary>アクション</Primary><Secondary>〜の型</Secondary></IndexTerm>
</Para></Entry>
<Entry><Para><Command>COMMAND</Command> (デフォルト)、<Command>MAP</Command>、または <Filename>TT_MSG</Filename></Para></Entry>
</Row>
<Row>
<Entry><Para><Emphasis>action_field</Emphasis><IndexTerm><Primary>アクション</Primary><Secondary>フィールド</Secondary></IndexTerm>
</Para></Entry>
<Entry><Para>この型のアクションの必須またはオプションとしてのフィールドのひとつ。すべてのフィールドは、キーワードと値から成ります。ほとんどのアクション・フィールドについて、この章で説明します。詳細については dtactionfile(4) のマニュアル・ページを参照してください。</Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
</ListItem>
<ListItem>
<Para>ファイルを保存します。</Para>
</ListItem>
<ListItem>
<Para>
アクション・アイコンが一意のイメージをもつようにするには、アクションのアイコンを作成します。アイコンのデフォルトの位置は次のとおりです。
</Para>
<ItemizedList Remap="Bullet2">
<ListItem>
<Para>
個人用アイコン: <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/icons</Filename></Para>
</ListItem>
<ListItem>
<Para>システム共通アイコン: <Filename>/etc/dt/appconfig/icons/</Filename><Symbol Role="Variable">language</Symbol>
デフォルトの <Symbol Role="Variable">language</Symbol> は <Command>C</Command> です。</Para>
<Para>
詳細については、
<!--Original XRef content: '&xd2;Specifying the Icon Image Used by an Action&xd3; on page&numsp;163'--><XRef Role="SecTitleAndPageNum" Linkend="SAG.CrAct.div.16"> を参照してください。
</Para>
</ListItem>
</ItemizedList>
</ListItem>
<ListItem>
<Para>
[デスクトップツール]アプリケーション・グループにある[アクションの再読込み]をダブルクリックします。
</Para>
</ListItem>
<ListItem>
<Para>
アクションのアクション・ファイルを作成します。アクション・ファイルは、アクションを表すアイコンをファイル・マネージャまたはアプリケーション・マネージャに作成します（アクションがアプリケーションを起動するために作成される場合、アイコンを
<IndexTerm><Primary>アプリケーション・アイコン</Primary></IndexTerm>
<Emphasis>アプリケーション・アイコン</Emphasis>と呼びます）。
</Para>
<Para>
アクション・ファイルを作成するには、<Emphasis>action_name</Emphasis> と同じ名前の実行可能ファイルを作成します。書き込み権をもっているディレクトリにそのファイル
を置くことができます。アクション・ファイルは好きな数だけ作成することができます。
</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="SAG.CrAct.div.10">
<Title Id="SAG.CrAct.mkr.7">COMMAND アクションの作成例<IndexTerm><Primary>COMMAND アクション</Primary><Secondary>作成例</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>作成例</Secondary></IndexTerm></Title>
<Para>
次の手順は、リモート・システム AppServerA にあるファックス・アプリケーションを起動する個人用アクションを作成します。ファックス・アプリケーションを起動するためのコマンドは、次のとおりです。
</Para>
<ProgramListing>/usr/fax/bin/faxcompose [<Symbol Role="Variable">filename</Symbol>]</ProgramListing>
<OrderedList>
<ListItem>
<Para>
ファイル <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/types/Fax.dt</Filename> を作成します。
</Para>
</ListItem>
<ListItem>
<Para>
次のアクション定義をファイルに記述します。
</Para>
<programlisting>ACTION FaxComposer
{
 TYPE         COMMAND
 ICON         fax
 WINDOW_TYPE  NO_STDIO
 EXEC_STRING  /usr/fax/bin/faxcompose -c &percnt;Arg_1&percnt;
 EXEC_HOST       AppServerA
 DESCRIPTION  Runs the fax composer
}</ProgramListing>
<Para>
<Filename>WINDOW_TYPE</Filename> フィールドと <Filename>EXEC_STRING</Filename> フィールドは、アクションの動作を説明します。
</Para>
<InformalTable>
<TGroup Cols="2" colsep="0" rowsep="0">
<colspec colwidth="127*">
<colspec colwidth="401*">
<TBody>
<Row>
<Entry><Para><Filename>WINDOW_TYPE</Filename></Para></Entry>
<Entry><Para>
<Filename>NO_STDIO</Filename> キーワードは、アクションが端末エミュレータ・ウィンドウで実行する必要がないように指定します。
<!--Original XRef content: '&xd2;Specifying the Window Support for the Action&xd3; on page&numsp;173'--><XRef Role="SecTitleAndPageNum" Linkend="SAG.CrAct.div.41"> を参照してください。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>EXEC_STRING</Filename></Para></Entry>
<Entry><Para>
構文 <Filename>&percnt;Arg_1&percnt;</Filename> はドロップされたファイルを受け取ります。アクション・アイコンをダブルクリックすると、アクションは空のファックス作成ウィンドウを開きます。
<!--Original XRef content: '&xd2;Building the Execution String for a COMMAND Action&xd3; on page&numsp;166'--><XRef Role="SecTitleAndPageNum" Linkend="SAG.CrAct.div.19"> を参照してください。
</Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
</ListItem>
<ListItem>
<Para>
ファイルを保存します。
</Para>
</ListItem>
<ListItem>
<Para>
アイコン・エディタを使用して、<Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/icons</Filename> ディレクトリに次のアイコン・イメージ・ファイルを作成します。
</Para>
<itemizedlist>
<ListItem>
<Para><literal>fax.m.pm</literal>、サイズ 32 × 32 ピクセル
</Para>
</ListItem>
<ListItem>
<Para><literal>fax.t.pm</literal>、サイズ 16 × 16 ピクセル
</Para>
</ListItem>
</itemizedlist>
</ListItem>
<ListItem>
<Para>
[デスクトップツール]アプリケーション・グループにある[アクションの再読込み]をダブルクリックします。
</Para>
</ListItem>
<ListItem>
<Para>
書き込み権をもっているディレクトリ（たとえば、ホーム・ディレクトリ）に <literal>FaxComposer</literal> という名前の実行可能ファイルを作成します。
</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="SAG.CrAct.div.11">
<Title Id="SAG.CrAct.mkr.8">MAP アクションの作成例<IndexTerm><Primary>MAP アクション</Primary><Secondary>作成例</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>作成例</Secondary></IndexTerm></Title>
<Para>
ファックス送信するファイルのほとんどがテキスト・エディタで作成され、データ型 TEXTFILE (フィイル名は *<Filename>.txt</Filename>) であるものとします。
</Para>
<Para>
次の手順は、データ型の[選択]メニューに Fax メニュー項目を追加します。
</Para>
<OrderedList>
<ListItem>
<Para>
前の例で作成したファイル <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/types/Fax.dt</Filename> を開きます。
</Para>
</ListItem>
<ListItem>
<Para>
次のマップ・アクション定義をファイルに追加します。
</Para>
<programlisting>ACTION Fax
{
 ARG_TYPE    TEXTFILE
 TYPE        MAP
 MAP_ACTION  FaxComposer
}
</ProgramListing>
</ListItem>
<ListItem>
<Para>
ファイルを保存します。
</Para>
</ListItem>
<ListItem>
<Para>
TEXTFILE のデータ型属性定義を <Filename>/usr/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol><Filename>/dtpad.dt</Filename> から新規ファイル <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/types/textfile.dt</Filename> にコピーします。Fax アクションを <Command>ACTIONS</Command> フィールドに追加します。
</Para>
<programlisting>DATA_ATTRIBUTES TEXTFILE
{
 ACTIONS  Open,Print,Fax
 ICON     Dtpenpd
 &hellip;
}
</ProgramListing>
</ListItem>
<ListItem>
<Para>
ファイルを保存します。
</Para>
</ListItem>
<ListItem>
<Para>
アプリケーション・マネージャを開き、[デスクトップツール]アプリケーション・グループにある[アクションの再読込み]をダブルクリックします。
</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="SAG.CrAct.div.12" Role="Procedure">
<Title Id="SAG.CrAct.mkr.9">アクションおよびデータ型データベースを再読み込みするには<IndexTerm><Primary>データ型</Primary><Secondary>再読み込み</Secondary></IndexTerm><IndexTerm><Primary>データ型</Primary><Secondary>アクションの再読み込み</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>再読み込み</Secondary></IndexTerm><IndexTerm><Primary>データベース</Primary><Secondary>アクションの再読み込み</Secondary></IndexTerm><IndexTerm><Primary>[アクションの再読込み]アクション</Primary></IndexTerm><IndexTerm><Primary>データベース</Primary><Secondary>再読み込み</Secondary></IndexTerm><IndexTerm><Primary>[アクションの再読込み]アクション</Primary></IndexTerm></Title>
<Para>
新規または編集されたアクション定義を有効にするには、デスクトップはデータベースを再読み込みしなければなりません。
</Para>
<OrderedList>
<ListItem>
<Para>
[デスクトップツール]アプリケーション・グループを開き、[アクションの再読込み]をダブルクリックします。
</Para>
</ListItem>
<ListItem>
<Para>
<Symbol Role="Variable">または</Symbol>、次のコマンドを実行します。
</Para>
<programlisting>dtaction ReloadActions
</ProgramListing>
</ListItem>
</OrderedList>
<Para>
<IndexTerm><Primary>[アクションの再読込み]アクション</Primary></IndexTerm>
ReloadActions は、アイコンのラベルが[アクションの再読込み]であるアクション名です。
</Para>
<Para>
アクション・データベースは、次を行う場合にも再読み込みされます。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>ログインする</Para>
</ListItem>
<ListItem>
<Para>ワークスペース・マネージャを再起動する</Para>
</ListItem>
<ListItem>
<Para>[ファイル]メニューから[保存]を選択することにより[アクション作成]ウィンドウにあるアクションを保存する</Para>
</ListItem>
</ItemizedList>
</Sect2>
<Sect2 Id="SAG.CrAct.div.13">
<Title>アクションのアクション・ファイル（アイコン）の作成<IndexTerm><Primary>アクション・アイコン</Primary><Secondary>作成</Secondary></IndexTerm><IndexTerm><Primary>アプリケーション・アイコン</Primary><Secondary>作成</Secondary></IndexTerm><IndexTerm><Primary>アクション・ファイル</Primary><Secondary>作成</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>ファイル表現、「アクション・ファイル」を参照してください</Secondary></IndexTerm><IndexTerm><Primary>アクション・アイコン</Primary></IndexTerm><IndexTerm><Primary>アイコン</Primary><Secondary>アクション・アイコン</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>アイコン表現</Secondary></IndexTerm></Title>
<Para>
<IndexTerm><Primary>アクション・ファイル</Primary></IndexTerm><Emphasis>アクション・ファイル</Emphasis> は、ファイル・マネージャまたはアプリケーション・マネージャにあるアクションを視覚的に表現するために作成されるファイルです。
</Para>
<Figure>
<Title>アプリケーション・マネージャにある「アクション・ファイル」（「アクション・アイコン」または「アプリケーション・アイコン」とも呼ばれます）</Title>
<Graphic Entityref="SAG.CrAct.fig.1" Id="SAG.CrAct.grph.1"></Graphic>
</Figure>
<Para>
アクション・ファイルのアイコンはアクションを表現するので、
<Emphasis><IndexTerm><Primary>アクション・アイコン</Primary></IndexTerm>アクション・アイコン</Emphasis>と呼ぶこともあります。基本となるアクションがアプリケーションを起動する場合、アクション・ファイル・アイコンを<Emphasis>アプリケーション・アイコン</Emphasis>と呼びます。
</Para>
<Para>
アクション・アイコンをダブルクリックすると、アクションを実行します。アクション・アイコンはドロップ領域にもなります。
</Para>
<Sect3 Id="SAG.CrAct.div.14" Role="Procedure">
<Title>アクション・ファイル（アクション・アイコン）を作成するには</Title>
<OrderedList>
<ListItem>
<Para>
<IndexTerm><Primary>アクション</Primary><Secondary>名前</Secondary></IndexTerm>
アクション名と同じ名前の実行可能ファイルを作成します。ファイルの内容は関係ありません。
</Para>
</ListItem>
</OrderedList>
<Para>
たとえば、アクション定義が次のようになっている場合、アクション・ファイルは <Command>MyFavoriteApp</Command> という名前の実行可能ファイルになります。
</Para>
<programlisting>ACTION  MyFavoriteApp
{
 EXEC_STRING    Mfa -file &percnt;Arg_1&percnt;
 DESCRIPTION    Runs MyFavoriteApp
 ICON           Mfapp
}
</ProgramListing>
<Para>
ファイル・マネージャとアプリケーション・マネージャでは、<Command>MyFavoriteApp</Command> ファイルはアイコン・イメージ <Filename>Mfapp.</Filename><Symbol Role="Variable">size</Symbol><Filename>.</Filename><Symbol Role="Variable">type</Symbol> を使用します。 <Command>MyFavoriteApp</Command> のアイコンをダブルクリックすると、アクションの実行文字列を実行し、アイコンのアイテムヘルプは <Command>DESCRIPTION</Command> フィールド (<Command>Runs MyFavoriteApp</Command>) の内容になります。
<IndexTerm><Primary>ヘルプ</Primary><Secondary>アクション・ファイルについて</Secondary></IndexTerm><IndexTerm><Primary>DESCRIPTION フィールド</Primary></IndexTerm>
</Para>
</Sect3>
<Sect3 Id="SAG.CrAct.div.15">
<Title>アクション・ラベル<IndexTerm><Primary>アクション</Primary><Secondary>ラベル</Secondary></IndexTerm><IndexTerm><Primary>ラベル</Primary><Secondary>アクション</Secondary></IndexTerm><IndexTerm><Primary>LABEL アクション・フィールド</Primary></IndexTerm></Title>
<Para>
アクション定義に <Command>LABEL</Command> フィールドが含まれている場合、ファイル・マネージャおよびアプリケーション・マネージャでは、ファイル名 (<Symbol Role="Variable">action_name</Symbol>) ではなく、このフィールドの内容によってアクション・ファイルにラベルが付けられます。たとえば、アクション定義に次のものが含まれる場合、アクション・アイコンには「Favorite Application」というラベルが付けられます。
</Para>
<programlisting>ACTION  MyFavoriteApp
{
 LABEL      Favorite Application
 &hellip;
}
</ProgramListing>
</Sect3>
</Sect2>
<Sect2 Id="SAG.CrAct.div.16">
<Title Id="SAG.CrAct.mkr.10">アクションが使用するアイコン・イメージの指定<IndexTerm><Primary>アクション</Primary><Secondary>〜のアイコン</Secondary></IndexTerm><IndexTerm><Primary>アイコン</Primary><Secondary>アクション</Secondary></IndexTerm></Title>
<Para>
<Command>ICON</Command> フィールドを使用して、アクション用に作成されたアクション・アイコン用にファイル・マネージャおよびアプリケーション・マネージャで使用されるアイコンを指定します。
</Para>
<Para>
アイコンを指定しないと、システムは
<IndexTerm><Primary>アクション</Primary><Secondary>デフォルト・アイコン</Secondary></IndexTerm>
デフォルトのアクション・アイコン・イメージ・ファイル <Filename>/usr/dt/appconfig/icons/</Filename><Symbol Role="Variable">language</Symbol><Filename>/Dtactn.*</Filename> を使用します。
</Para>
<Figure>
<Title>デフォルトのアクション・アイコン・イメージ</Title>
<Graphic Entityref="SAG.CrAct.fig.2" Id="SAG.CrAct.grph.2"></Graphic>
</Figure>
<Para>
デフォルトのアクション・アイコンは、次のようなリソースを使用して変更できます。
<IndexTerm><Primary>actionIcon リソース</Primary></IndexTerm>
</Para>
<programlisting>*actionIcon:    <Symbol Role="Variable">icon_file_name</Symbol>
</ProgramListing>
<Para>
<Symbol Role="Variable">icon_file_name</Symbol> は、ベース名または絶対パス名を指定できます。
</Para>
<Para>
<Command>ICON</Command> フィールドの値は次のようになります。
<IndexTerm><Primary>ICON フィールド</Primary><Secondary>可能な値</Secondary></IndexTerm>
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>ベース・ファイル名</Para>
<Para>
<IndexTerm><Primary>ベース・ファイル名</Primary></IndexTerm>
ベース・ファイル名は、アイコン・イメージが入っているファイル名からサイズ (<Command>m</Command> と <Command>t</Command>) およびイメージ型 (<Command>bm</Command> と <Command>pm</Command>) を表すファイル拡張子を取り除いたものです。たとえば、ファイル名が <Filename>GameIcon.m.pm</Filename> と <Filename>GameIcon.t.pm</Filename> の場合、<Command>GameIcon</Command> を使用します。
</Para>
<Para>
ベース・ファイル名を使用する場合、アイコン・ファイルは次のアイコン検索パスにあるディレクトリになければなりません。
</Para>
<ItemizedList Remap="Bullet2">
<ListItem>
<Para>個人用アイコン: <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/icons</Filename></Para>
</ListItem>
<ListItem>
<Para>システム共通アイコン: <Filename>/etc/dt/appconfig/icons/</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
</ItemizedList>
</ListItem>
<ListItem>
<Para>
アイコン・ファイルへの絶対パス。完全なファイル名も含まれます。
</Para>
<Para>
アイコン・ファイルがアイコン絶対パス上にない場合にだけ絶対パスを使用してください。たとえば、アイコン・ファイル <Filename>GameIcon.m.pm</Filename> がディレクトリ <Filename>/doc/projects</Filename> にある場合、アイコン検索パスにはないので、<Command>ICON</Command> フィールドの値は <Filename>/doc/projects/GameIcon.m.pm</Filename> になります。
</Para>
</ListItem>
</ItemizedList>
<Para>
<!--Original XRef content: 'Table&numsp;10&hyphen;1'--><XRef Role="CodeOrFigureOrTable" Linkend="SAG.CrAct.tbl.1"> は、作成しなければならないアイコンのサイズとそれに対応するファイル名の一覧です。
</Para>
<Table Id="SAG.CrAct.tbl.1" Frame="Topbot">
<Title Id="SAG.CrAct.mkr.11">アイコン名とアクション・アイコンのサイズ</Title>
<TGroup Cols="3" colsep="0" rowsep="0">
<ColSpec Colname="1" Colwidth="1.0 in">
<ColSpec Colname="2" Colwidth="1.25 in">
<ColSpec Colname="3" Colwidth="1.25 in">
<THead>
<Row>
<Entry><Para><Literal>サイズ（ピクセル単位）</Literal></Para></Entry>
<Entry><Para><Literal>ビットマップ名</Literal></Para></Entry>
<Entry><Para><Literal>ピックスマップ名</Literal></Para></Entry>
</Row>
</THead>
<TBody>
<Row>
<Entry><Para>48 × 48</Para></Entry>
<Entry><Para><Symbol Role="Variable">name</Symbol><Filename>.l.bm</Filename></Para></Entry>
<Entry><Para><Symbol Role="Variable">name</Symbol><Filename>.l.pm</Filename></Para></Entry>
</Row>
<Row>
<Entry><Para>32 × 32</Para></Entry>
<Entry><Para><Symbol Role="Variable">name</Symbol><Filename>.m.bm</Filename></Para></Entry>
<Entry><Para><Symbol Role="Variable">name</Symbol><Filename>.m.pm</Filename></Para></Entry>
</Row>
<Row>
<Entry><Para>16 × 16</Para></Entry>
<Entry><Para><Symbol Role="Variable">name</Symbol><Filename>.t.bm</Filename></Para></Entry>
<Entry><Para><Symbol Role="Variable">name</Symbol><Filename>.t.pm</Filename></Para></Entry>
</Row>
</TBody>
</TGroup>
</Table>
</Sect2>
<Sect2 Id="SAG.CrAct.div.17" Role="Procedure">
<Title>既存のアクション定義を変更するには<IndexTerm><Primary>アクション</Primary><Secondary>編集</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>変更</Secondary></IndexTerm><IndexTerm><Primary>アクションの変数</Primary></IndexTerm></Title>
<Para>
システムのどの使用可能なアクション（組み込みアクションも含む）も変更できます。
</Para>
<Note>
<Para>
組み込みアクション・データベースを変更するときは、注意してください。組み込みアクションは、デスクトップ・アプリケーションとよく動作するように設計されています。
</Para>
</Note>
<OrderedList>
<ListItem>
<Para>
変更するアクション定義を検出します。
</Para>
<Para>
アクション定義のデフォルトの位置は、次のとおりです。
</Para>
<ItemizedList Remap="Bullet2">
<ListItem>
<Para>組み込みアクション: <Filename>/usr/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
<ListItem>
<Para>システム共通アクション: <Filename>/etc/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
<ListItem>
<Para>個人用アクション: <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/types</Filename></Para>
<Para>
システム位置が追加されている可能性もあります。アクション用にシステムが使用している位置のリストを参照するには、次のコマンドを実行します。
<IndexTerm><Primary>アクション</Primary><Secondary>検索パス、「データベース検索パス」を参照してください</Secondary></IndexTerm>
</Para>
<ProgramListing>dtsearchpath -v<IndexTerm><Primary>dtsearchpath</Primary></IndexTerm>
</ProgramListing>
<Para>
システムは、
<IndexTerm><Primary>DTDATABASESEARCHPATH 変数</Primary><Secondary>使用方法</Secondary></IndexTerm> DTDATABASESEARCHPATH の下に表示されるディレクトリを使用しています。
</Para>
</ListItem>
</ItemizedList>
</ListItem>
<ListItem>
<Para>
必要に応じて、アクション定義のテキストを次のいずれかのディレクトリにある新規または既存のファイルにコピーします。
</Para>
<ItemizedList Remap="Bullet2">
<ListItem>
<Para>システム共通アクション: <Filename>/etc/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
<ListItem>
<Para>個人用アクション: <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/types</Filename></Para>
<Para>
<Filename>/usr/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol> ディレクトリにあるファイルの編集はできないため、組み込みアクションをコピーしなければなりません。
</Para>
</ListItem>
</ItemizedList>
</ListItem>
<ListItem>
<Para>
アクション定義を編集します。編集が終わったらファイルを保存します。
</Para>
</ListItem>
<ListItem>
<Para>
[デスクトップツール]アプリケーション・グループにある[アクションの再読込み]をダブルクリックします。
</Para>
</ListItem>
</OrderedList>
</Sect2>
<Sect2 Id="SAG.CrAct.div.18">
<Title Id="SAG.CrAct.mkr.12">アクション定義における優先順位<IndexTerm><Primary>アクション</Primary><Secondary>優先規則</Secondary></IndexTerm><IndexTerm><Primary>優先順位</Primary><Secondary>アクション・データベースの構成</Secondary></IndexTerm></Title>
<Para>
アクションを呼び出すと、システムはデータベースで一致するアクション名を検索します。その名前に対して２つ以上のアクションが存在する場合、システムはどちらを使用すべきかを決定するために優先規則を使用します。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
他の優先規則が適用されない場合、優先順位は定義の位置に基づきます。次のリストは、優先度の高い順に並べてあります。
</Para>
<ItemizedList Remap="Bullet2">
<ListItem>
<Para>
個人用アクション (<Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/types</Filename>)。
</Para>
</ListItem>
<ListItem>
<Para>
システム共通ローカル・アクション (<Filename>/etc/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol>)。
</Para>
</ListItem>
<ListItem>
<Para>
システム共通リモート・アクション
(<Symbol Role="Variable">hostname</Symbol>:<Filename>/etc/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol>)。検索されたリモート・ホストは、アプリケーション検索パス上にあります。
</Para>
</ListItem>
<ListItem>
<Para>
組み込みアクション (<Filename>/usr/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol>)。
</Para>
</ListItem>
</ItemizedList>
</ListItem>
<ListItem>
<Para>
指定のディレクトリ内で、<Filename>*.dt</Filename> ファイルはアルファベット順に読み込まれます。
</Para>
</ListItem>
<ListItem>
<Para>
<Filename><IndexTerm><Primary>ARG_CLASS フィールド</Primary></IndexTerm>ARG_CLASS</Filename>、
<Filename><IndexTerm><Primary>ARG_TYPE フィールド</Primary></IndexTerm>ARG_TYPE</Filename>、
<Filename><IndexTerm><Primary>ARG_MODE フィールド</Primary></IndexTerm>ARG_MODE</Filename>、または
<Filename><IndexTerm><Primary>ARG_COUNT フィールド</Primary></IndexTerm>ARG_COUNT</Filename>
によって制限されたアクションは、制限されていないアクションよりも優先されます（これらの４つのフィールドのデフォルト値は <Filename>*</Filename> です）。
</Para>
<Para>
２つ以上の制限が適用される場合、優先順位の高い順に並べると次のようになります。
</Para>
<ItemizedList Remap="Bullet2">
<ListItem>
<Para><Filename>ARG_CLASS</Filename></Para>
</ListItem>
<ListItem>
<Para><Filename>ARG_TYPE</Filename></Para>
</ListItem>
<ListItem>
<Para><Filename>ARG_MODE</Filename></Para>
</ListItem>
<ListItem>
<Para><Filename>ARG_COUNT</Filename></Para>
</ListItem>
</ItemizedList>
<Para>
２つ以上の制限された <Filename>ARG_COUNT</Filename> が存在する場合、優先順位の高い順に並べると次のようになります。
</Para>
<ItemizedList Remap="Bullet2">
<ListItem>
<Para>
特定の整数値 <Symbol Role="Variable">n</Symbol></Para>
</ListItem>
<ListItem>
<Para><Filename>&lt;</Filename><Symbol Role="Variable">n</Symbol></Para>
</ListItem>
<ListItem>
<Para><Filename>></Filename><Symbol Role="Variable">n</Symbol></Para>
</ListItem>
<ListItem>
<Para><Filename>*</Filename></Para>
</ListItem>
</ItemizedList>
</ListItem>
</ItemizedList>
<Para>
たとえば、次のアクション定義の一部分について考えてみます。
</Para>
<programlisting>ACTION EditGraphics
# EditGraphics-1
{
 ARG_TYPE    XWD
 &hellip;
}
ACTION EditGraphics
# EditGraphics-2
{
 ARG_COUNT      0
 &hellip;
}
ACTION EditGraphics
# EditGraphics-3
{
 ARG_TYPE    *
    &hellip;
}
</ProgramListing>
<Para>
EditGraphics アクション・アイコンをダブルクリックすると、引き数が指定されず <Filename>ARG_COUNT</Filename> <Filename>0</Filename> が優先されるので EditGraphics-2 を起動します。XWD 型ファイル引き数を指定すると、XWD <Filename>ARG_TYPE</Filename> が優先されるので EditGraphics-1 が使用されます。EditGraphics-3 は、その他のファイル引き数すべてに対して使用されます。
</Para>
</Sect2>
</Sect1>
<Sect1 Id="SAG.CrAct.div.19">
<Title Id="SAG.CrAct.mkr.13">COMMAND アクションの実行文字列の作成<IndexTerm><Primary>アクション</Primary><Secondary>実行文字列</Secondary></IndexTerm><IndexTerm><Primary>実行文字列</Primary></IndexTerm><IndexTerm><Primary>アクションのコマンド行</Primary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>実行文字列</Secondary></IndexTerm><IndexTerm><Primary>COMMAND アクション</Primary><Secondary>実行文字列</Secondary></IndexTerm><IndexTerm><Primary>EXEC_STRING フィールド、「実行文字列」を参照してください</Primary></IndexTerm></Title>
<Para>
<Command><IndexTerm><Primary>COMMAND アクション</Primary><Secondary>必要なフィールド</Secondary></IndexTerm>COMMAND</Command> アクションには、必ず <Command>ACTION</Command> と <Filename>EXEC_STRING</Filename> の２つのフィールドが必要です。
</Para>
<programlisting>ACTION <Symbol Role="Variable">action_name</Symbol>
{
    EXEC_STRING <Symbol Role="Variable">execution_string</Symbol>
}
</ProgramListing>
<Para>
実行文字列は、<Command>COMMAND</Command> アクション定義のもっとも重要な部分です。この文字列は、[端末エミュレータ]ウインドウで実行するコマンド行と類似の構文を使用しますが、ファイルと文字列の引き数を処理するための追加構文も含みます。
</Para>
<Sect2 Id="SAG.CrAct.div.20">
<Title>実行文字列の一般的な機能<IndexTerm><Primary>実行文字列</Primary><Secondary>一般的な機能</Secondary></IndexTerm></Title>
<Para>
実行文字列には次のものが含まれています。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>ファイル引き数と非ファイル引き数</Para>
</ListItem>
<ListItem>
<Para>シェル構文</Para>
</ListItem>
<ListItem>
<Para>実行可能ファイルの絶対パスまたは名前</Para>
</ListItem>
</ItemizedList>
<Sect3 Id="SAG.CrAct.div.21">
<Title>アクション引き数<IndexTerm><Primary>アクション</Primary><Secondary>引き数</Secondary></IndexTerm><IndexTerm><Primary>引き数</Primary><Secondary>アクションの〜</Secondary></IndexTerm></Title>
<Para>
引き数は、コマンドまたはアプリケーションを適切に実行するのに必要な情報です。たとえば、テキスト・エディタにあるファイルを開くのに使用できるコマンド行について考えてみます。
</Para>
<ProgramListing>dtpad <Symbol Role="Variable">filename</Symbol></ProgramListing>
<Para>
このコマンドでは、<Symbol Role="Variable">filename</Symbol> は <Command>dtpad</Command> コマンドのファイル引き数です。
</Para>
<Para>
アプリケーションやコマンドのようにアクションは引き数をもつことができます。<Command>COMMAND</Command> アクションが使用できるデータ型は、次の２つです。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>ファイル</Para>
</ListItem>
<ListItem>
<Para>文字列データ</Para>
</ListItem>
</ItemizedList>
</Sect3>
<Sect3 Id="SAG.CrAct.div.22">
<Title>実行文字列でのシェルの使用<IndexTerm><Primary>実行文字列</Primary><Secondary>シェル構文</Secondary></IndexTerm><IndexTerm><Primary>シェル</Primary><Secondary>実行文字列の構文</Secondary></IndexTerm></Title>
<Para>
実行文字列は、シェルを介してではなく直接実行されます。しかし、実行文字列でシェルを明示的に呼び出すことができます。
</Para>
<Para>次に例を示します。</Para>
<programlisting>EXEC_STRING    \
  /bin/sh -c \
  'tar -tvf &percnt;(File)Arg_1&percnt; 2>&amp;1 | \${PAGER:-more};\
  echo &ldquo;\\n*** Select Close from the Window menu to close ***&rdquo;'
</ProgramListing>
</Sect3>
<Sect3 Id="SAG.CrAct.div.23">
<Title>実行可能ファイルの名前または絶対パス<IndexTerm><Primary>実行文字列</Primary><Secondary>実行可能ファイルの指定</Secondary></IndexTerm></Title>
<Para>
アプリケーションが <IndexTerm><Primary>PATH 変数</Primary></IndexTerm>PATH 変数にリストされているディレクトリにある場合は、単純な実行可能ファイル名を使用できます。アプリケーションが他のどこかにある場合は、実行可能ファイルへの
<IndexTerm><Primary>実行文字列</Primary><Secondary>〜の絶対パス</Secondary></IndexTerm>
絶対パスを使用しなければなりません。
</Para>
</Sect3>
</Sect2>
<Sect2 Id="SAG.CrAct.div.24">
<Title Id="SAG.CrAct.mkr.14">引き数を使用しないアクションの作成<IndexTerm><Primary>実行文字列</Primary><Secondary>引き数なし</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>引き数なし</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>データなしで</Secondary></IndexTerm></Title>
<Para>
コマンド行からアプリケーションを起動するのに使用する <Filename>EXEC_STRING</Filename> に対しても同じ構文を使用します。
</Para>
<Sect3 Id="SAG.CrAct.div.25">
<Title>例</Title>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
次の実行文字列は、Ｘクライアント <Command>xcutsel</Command> を起動するアクションの一部です。
</Para>
<programlisting>EXEC_STRING xcutsel</programlisting>
</ListItem>
<ListItem>
<Para>
次の実行文字列は、デジタル・クロックでクライアント <Command>xclock</Command> を起動します。コマンド行にはコマンド行オプションが含まれていますが、引き数は必要ありません。
</Para>
<programlisting>EXEC_STRING xclock -digital</programlisting>
</ListItem>
</ItemizedList>
</Sect3>
</Sect2>
<Sect2 Id="SAG.CrAct.div.26">
<Title Id="SAG.CrAct.mkr.15">ドロップされたファイルを受け取るアクションの作成<IndexTerm><Primary>実行文字列</Primary><Secondary>ドロップされたファイル</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>ドロップされたファイルの受け取り</Secondary></IndexTerm><IndexTerm><Primary>ドロップ領域</Primary><Secondary>アクション・アイコン</Secondary></IndexTerm><IndexTerm><Primary>ドロップされたファイル、受け取るアクション</Primary></IndexTerm></Title>
<Para>
ファイル引き数に対して、次のいずれかの構文を使用します。
<IndexTerm><Primary>Arg_n 構文</Primary></IndexTerm>
</Para>
<ProgramListing>&percnt;Arg_<Symbol Role="Variable">n</Symbol>&percnt;
</ProgramListing>
<Para>あるいは</Para>
<ProgramListing>&percnt;(File)Arg_<Symbol Role="Variable">n</Symbol>&percnt;
</ProgramListing>
<Para>
<Filename>Arg_</Filename><Symbol Role="Variable">n</Symbol> に指定された引き数は（デフォルトでは）ファイルとみなされるので、<Filename>(File)</Filename> はオプションになります。
(<Filename>&percnt;(String)Arg_</Filename><Symbol Role="Variable">n</Symbol><Filename>&percnt;</Filename> の構文の使用については、
<!--Original XRef content: '&xd2;Interpreting a File Argument as a String&xd3; on page&numsp;170'--><XRef Role="SecTitleAndPageNum" Linkend="SAG.CrAct.div.31"> を参照してください。)
</Para>
<Para>
この構文により、アクション・アイコンにデータ・ファイル・オブジェクトをドロップし、そのファイル引き数でアクションを起動できます。コマンド行で <Symbol Role="Variable">n</Symbol> 番目の引き数を置き換えます。ローカル・ファイルまたはリモート・ファイルのどちらでも使用できます。
</Para>
<Sect3 Id="SAG.CrAct.div.27">
<Title>例</Title>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
次の実行文字列は、パラメータとしてドロップされたファイルを使用して、<Command>wc -w</Command> を実行します。
</Para>
<programlisting>EXEC_STRING wc -w &percnt;Arg_1&percnt;</programlisting>
</ListItem>
<ListItem>
<Para>
次の例は、ディレクトリ引き数によってのみ動作するアクションのための定義の一部を示します。ディレクトリがアクション・アイコンにドロップされると、アクションは読み取り権および書き込み権の両方をもつディレクトリにあるすべてのファイルのリストを表示します。
</Para>
<programlisting>ACTION  List_Writable_Files
{
    ARG_TYPE     FOLDER
    EXEC_STRING  /bin/sh -c 'ls -l &percnt;Arg_1&percnt; | grep rw-'
    &hellip;
}
</ProgramListing>
</ListItem>
</ItemizedList>
</Sect3>
</Sect2>
<Sect2 Id="SAG.CrAct.div.28">
<Title Id="SAG.CrAct.mkr.16">ファイル引き数を要求するアクションの作成<IndexTerm><Primary>実行文字列</Primary><Secondary>ファイルを要求する</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>ファイルを要求する</Secondary></IndexTerm><IndexTerm><Primary>引き数</Primary><Secondary>〜を要求する</Secondary></IndexTerm><IndexTerm><Primary>アクションを要求する</Primary></IndexTerm><IndexTerm><Primary>2</Primary></IndexTerm></Title>
<Para>
ファイル引き数に対しては、次の構文を使用します。
</Para>
<ProgramListing>&percnt;(File)&ldquo;<Symbol Role="Variable">prompt</Symbol>&rdquo;&percnt;</ProgramListing>
<Para>
この構文は、アクション・アイコンをダブルクリックしたときに、ファイル名の要求を表示するアクションを作成します。
</Para>
<Para>
たとえば、次の実行文字列は、<Command>wc -w</Command> コマンドのファイル引き数を要求するダイアログ・ボックスを表示します。
</Para>
<ProgramListing>EXEC_STRING wc -w &percnt;(File)&ldquo;Count words in file:&rdquo;&percnt;</ProgramListing>
</Sect2>
<Sect2 Id="SAG.CrAct.div.29">
<Title Id="SAG.CrAct.mkr.17">ドロップされたファイルを受け取るかファイルを要求するアクションの作成<IndexTerm><Primary>アクション</Primary><Secondary>ドロップされたファイルを受け取るか要求する</Secondary></IndexTerm></Title>
<Para>
ファイル引き数に対して、次のいずれかの構文を使用します。
</Para>
<ProgramListing>&percnt;Arg_<Symbol Role="Variable">n</Symbol>&ldquo;<Symbol Role="Variable">prompt</Symbol>&rdquo;&percnt;</ProgramListing>
<Para>あるいは</Para>
<ProgramListing>&percnt;(File)Arg_<Symbol Role="Variable">n</Symbol>&ldquo;<Symbol Role="Variable">prompt</Symbol>&rdquo;&percnt;</ProgramListing>
<Para>
この構文は、次の動作を行うアクションを作成します。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
ファイル引き数としてドロップされたファイルを受け取る。
</Para>
</ListItem>
<ListItem>
<Para>
アクション・アイコンをダブルクリックしたときに、ファイル名を要求するダイアログ・ボックスを表示する。
</Para>
</ListItem>
</ItemizedList>
<Para>
たとえば、次の実行文字列は、ドロップされたファイルで <Command>lp</Command> <Filename>-oraw</Filename> を実行します。アイコンをダブルクリックするとアクションが起動される場合、ダイアログ・ボックスが表示され、ファイル名を要求します。
</Para>
<ProgramListing>EXEC_STRING lp -oraw &percnt;Arg_1&ldquo;File to print:&rdquo;&percnt;</ProgramListing>
</Sect2>
<Sect2 Id="SAG.CrAct.div.30">
<Title Id="SAG.CrAct.mkr.18">非ファイル引き数を要求するアクションの作成<IndexTerm><Primary>実行文字列</Primary><Secondary>文字列の要求</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>非ファイル引き数</Secondary></IndexTerm><IndexTerm><Primary>引き数</Primary><Secondary>非ファイル</Secondary></IndexTerm><IndexTerm><Primary>文字列のアクション引き数</Primary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>引き数、非ファイル</Secondary></IndexTerm></Title>
<Para>
非ファイル・パラメータに対しては、次のいずれかの構文を使用します。
</Para>
<ProgramListing>&percnt;&ldquo;<Symbol Role="Variable">prompt</Symbol>&rdquo;&percnt;</ProgramListing>
<Para>あるいは</Para>
<ProgramListing>&percnt;(String)&ldquo;<Symbol Role="Variable">prompt</Symbol>&rdquo;&percnt;</ProgramListing>
<Para>
引用符で囲まれたテキストは、デフォルトでは文字列データとして解釈されるので、<Filename>(String)</Filename> はオプションになります。この構文は、非ファイル・データを要求するダイアログ・ボックスを表示します。ファイル名を要求するときは、この構文は使用しないでください。
</Para>
<Para>
たとえば、次の実行文字列は <Command>xwd</Command> コマンドを実行し、各ピクセルに追加される値を要求します。
</Para>
<ProgramListing>EXEC_STRING xwd -add &percnt;&ldquo;Add value:&rdquo;&percnt; -out &percnt;Arg_1&ldquo;Filename:&rdquo;&percnt;</ProgramListing>
</Sect2>
<Sect2 Id="SAG.CrAct.div.31">
<Title Id="SAG.CrAct.mkr.19">文字列としてのファイル引き数</Title>
<Para>
引き数に対して次の構文を使用します。
</Para>
<ProgramListing>&percnt;(String)Arg_<Symbol Role="Variable">n</Symbol>&percnt;</ProgramListing>
<Para>
たとえば、次の実行文字列は、コマンド <Command>lp -t</Command><Symbol Role="Variable">banner filename.</Symbol> を使用して、ファイル名が入っているバナーとファイルをいっしょに印刷します。
</Para>
<ProgramListing>EXEC_STRING lp -t&percnt;(String)Arg_1&percnt; &percnt;(File)Arg_1&ldquo;File to print:&rdquo;&percnt;</ProgramListing>
</Sect2>
<Sect2 Id="SAG.CrAct.div.32">
<Title Id="SAG.CrAct.mkr.20">アクションへのシェル機能の提供<IndexTerm><Primary>アクション</Primary><Secondary>シェルの提供</Secondary></IndexTerm><IndexTerm><Primary>シェル</Primary><Secondary>アクションへの〜</Secondary></IndexTerm><IndexTerm><Primary>シェル</Primary><Secondary>アクションで使用される</Secondary></IndexTerm></Title>
<Para>
次のように実行文字列にシェルを指定します。
</Para>
<programlisting>/bin/sh -c '<Symbol Role="Variable">command</Symbol>'
/bin/ksh -c '<Symbol Role="Variable">command</Symbol>'
/bin/csh -c '<Symbol Role="Variable">command'</Symbol>
</ProgramListing>
<Sect3 Id="SAG.CrAct.div.33">
<Title>例</Title>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
次の実行文字列は、シェルのパイプを使用するアクションを示します。
</Para>
</ListItem>
</ItemizedList>
<ProgramListing>EXEC_STRING /bin/sh -c 'ps | lp'</ProgramListing>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
次はさらに複雑な実行文字列で、シェルの処理を必要とし、ファイル引き数を受け取ります。
</Para>
</ListItem>
</ItemizedList>
<ProgramListing>EXEC_STRING /bin/sh -c 'tbl &percnt;Arg_1&ldquo;Man Page:&rdquo;&percnt; | troff -man'</ProgramListing>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
次の実行文字列では、引き数は圧縮ファイルである必要があります。アクションはファイルの圧縮を解除し、<Command>lp -oraw</Command> を使用してそのファイルを印刷します。
</Para>
</ListItem>
</ItemizedList>
<programlisting>EXEC_STRING  /bin/sh -c 'cat &percnt;Arg_1 &ldquo;File to print:&ldquo;&percnt; | \
             uncompress | lp -oraw'
</ProgramListing>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
次の実行文字列は、シェル・スクリプトを起動します。
</Para>
</ListItem>
</ItemizedList>
<ProgramListing>EXEC_STRING /usr/local/bin/StartGnuClient</ProgramListing>
</Sect3>
</Sect2>
<Sect2 Id="SAG.CrAct.div.34">
<Title>複数のファイル引き数を処理する COMMAND アクションの作成<IndexTerm><Primary>実行文字列</Primary><Secondary>複数のファイル引き数</Secondary></IndexTerm><IndexTerm><Primary>引き数</Primary><Secondary>アクションの複数</Secondary></IndexTerm></Title>
<Para>
アクションが複数のファイル引き数を処理するには、次の３つの方法があります。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
アクションは繰り返し（各引き数に対しては１回ずつ）実行できます。<Filename>EXEC_STRING</Filename> に単一のファイル引き数があり、アクション・アイコンに複数のファイルをドロップすることにより複数のファイル引き数が指定される場合、アクションは各ファイル引き数ごとに別々に実行されます。
</Para>
<Para>
たとえば、複数のファイル引き数が次のアクション定義に対して指定される場合、DisplayScreenImage アクションは繰り返し実行されます。
</Para>
<programlisting>ACTION DisplayScreenImage
{
 EXEC_STRING  xwud -in &percnt;Arg_1&percnt;
 &hellip;
}
</ProgramListing>
</ListItem>
<ListItem>
<Para>
アクションは、２つ以上の交換不可能なファイル引き数を使用できます。たとえば、次の例では、特定の順番で並んでいる２つの一意のファイルが必要です。
</Para>
<programlisting>xsetroot -cursor <Symbol Role="Variable">cursorfile maskfile</Symbol></programlisting>
</ListItem>
<ListItem>
<Para>
アクションは、各ファイル引き数で連続して同じコマンドを実行できます。たとえば、次の例では、１回の印刷ジョブで１つ以上のファイルを印刷します。
</Para>
<programlisting>pr <Symbol Role="Variable">file</Symbol> [<Symbol Role="Variable">file</Symbol> &hellip;]</programlisting>
</ListItem>
</ItemizedList>
<Sect3 Id="SAG.CrAct.div.35">
<Title Id="SAG.CrAct.mkr.21">交換不可能な引き数を処理するアクションの作成<IndexTerm><Primary>アクション</Primary><Secondary>交換不可能な引き数</Secondary></IndexTerm><IndexTerm><Primary>引き数</Primary><Secondary>交換不可能な、アクションの</Secondary></IndexTerm></Title>
<Para>
次の構文規約のいずれかひとつを使用します。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
アクションにファイル名をプロンプトさせる場合、各ファイル引き数ごとに次の構文を使用します。
</Para>
<programlisting>&percnt;(File)&ldquo;<Symbol Role="Variable">prompt</Symbol>&rdquo;&percnt;</programlisting>
<Para>
各引き数ごとに異なる <Symbol Role="Variable">prompt</Symbol> 文字列を使用します。
</Para>
<Para>
たとえば、次の実行文字列は２つのファイルをプロンプトします。
</Para>
<programlisting>EXEC_STRING  xsetroot -cursor &percnt;(File)&ldquo;Cursor bitmap:&rdquo;&percnt; \
             &percnt;(File)&ldquo;Mask bitmap:&rdquo;&percnt;
</ProgramListing>
</ListItem>
<ListItem>
<Para>
ドロップされたファイルを受け取るには、各ファイル引き数に対して次の構文を使用します。
</Para>
<programlisting>&percnt;Arg_<Symbol Role="Variable">n</Symbol>&percnt;</programlisting>
<Para>
この場合、各引き数ごとに異なる <Symbol Role="Variable">n</Symbol> の値を使用します。次に例を示します。
</Para>
<programlisting>EXEC_STRING  diff &percnt;Arg_1&percnt; &percnt;Arg_2&percnt;</programlisting>
</ListItem>
</ItemizedList>
</Sect3>
<Sect3 Id="SAG.CrAct.div.36">
<Title Id="SAG.CrAct.mkr.22">交換可能なファイル引き数を処理するアクションの作成<IndexTerm><Primary>アクション</Primary><Secondary>交換可能な、引き数</Secondary></IndexTerm><IndexTerm><Primary>引き数</Primary><Secondary>アクションの交換可能な〜</Secondary></IndexTerm></Title>
<Para>
次の構文規約のいずれかひとつを使用します。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
ドロップされたファイルを受け取り、<Symbol Role="Variable">command file</Symbol><Subscript>1</Subscript> <Symbol Role="Variable">file</Symbol><Subscript>2</Subscript> &hellip; という形式でコマンドを発行するアクションを作成するには、ファイル引き数に対して次の構文を使用します。
</Para>
<programlisting>&percnt;Args&percnt;</programlisting>
</ListItem>
<ListItem>
<Para>
複数のドロップされたファイルを受け取る、またはダブルクリックしたときに単一ファイルのプロンプトを表示するアクションを作成するには、ファイル引き数に対して次の構文を使用します。
</Para>
<programlisting>&percnt;Arg_<Filename>1</Filename>&ldquo;<Symbol Role="Variable">prompt</Symbol>&rdquo;&percnt; &percnt;Args&percnt;</programlisting>
<Para>
アクションは、<Symbol Role="Variable">command file</Symbol><Subscript>1</Subscript> <Symbol Role="Variable">file</Symbol><Subscript>2</Subscript> &hellip; という形式でコマンドを発行します。
</Para>
</ListItem>
</ItemizedList>
<Sect4 Id="SAG.CrAct.div.37">
<Title>例</Title>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
次の実行文字列は、複数のファイル引き数をもつアクションを作成します。
</Para>
<ProgramListing>EXEC_STRING pr &percnt;Args&percnt;</ProgramListing>
<Para>この実行文字列は、次のコマンド行を実行します。</Para>
<ProgramListing>pr <Symbol Role="Variable">file</Symbol><Subscript>1</Subscript> <Symbol Role="Variable">file</Symbol><Subscript>2</Subscript></ProgramListing>
</ListItem>
<ListItem>
<Para>
次の実行文字列は、前の例と似たアクションを作成しますが、この例のアクションをダブルクリックすると、プロンプトを表示します（ファイル引き数はありません）。
</Para>
</ListItem>
</ItemizedList>
<ProgramListing>EXEC_STRING  pr &percnt;Arg_1&ldquo;File(s) to print:&rdquo;&percnt; &percnt;Args&percnt;</ProgramListing>
</Sect4>
</Sect3>
<Sect3 Id="SAG.CrAct.div.38">
<Title Id="SAG.CrAct.mkr.23">複数のドロップされたファイルを処理するアクションの作成<IndexTerm><Primary>アクション</Primary><Secondary>複数のドロップされたファイルの受け取り</Secondary></IndexTerm></Title>
<Para>
複数のドロップされたファイル引き数を受け取り、<Symbol Role="Variable">command</Symbol> <Symbol Role="Variable">file</Symbol><Subscript>1</Subscript> <Symbol Role="Variable">file</Symbol><Subscript>2</Subscript> &hellip; という形式のコマンド行を実行するには、次の構文を使用します。
</Para>
<ProgramListing>&percnt;Args&percnt;</ProgramListing>
<Sect4 Id="SAG.CrAct.div.39">
<Title>例</Title>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
次の実行文字列は、複数のファイルに対して Checkout という名前のスクリプトを実行します。
</Para>
</ListItem>
</ItemizedList>
<programlisting>EXEC_STRING  /usr/local/bin/Checkout \
             &percnt;Arg_1&ldquo;Check out what file?&rdquo;&percnt; &percnt;Args&percnt;
</ProgramListing>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
次の実行文字列は、複数のファイルに対して <Command>lp -oraw</Command> を実行します。
</Para>
</ListItem>
</ItemizedList>
<ProgramListing>EXEC_STRING  lp -oraw &percnt;Arg_1&ldquo;File to print:&rdquo;&percnt; &percnt;Args&percnt;</ProgramListing>
</Sect4>
</Sect3>
</Sect2>
</Sect1>
<Sect1 Id="SAG.CrAct.div.40">
<Title Id="SAG.CrAct.mkr.24">COMMAND アクションのウィンドウ・サポートと端末エミュレータ<IndexTerm><Primary>アクション</Primary><Secondary>〜のウィンドウ・サポート</Secondary></IndexTerm><IndexTerm><Primary>端末エミュレータ</Primary><Secondary>アクションの〜</Secondary></IndexTerm></Title>
<Para>
<Command>COMMAND</Command> アクションがデスクトップ上でウィンドウをサポートするには、次の方法があります。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
アプリケーションがそれ自身のウィンドウをもっている場合、追加のウィンドウ・サポートを提供しないようにアクションに書き込むことができます。このオプションは、直接ユーザ入力を必要とせず、出力をもっていないコマンドをアクションが実行するときにも使用されます。
</Para>
</ListItem>
<ListItem>
<Para>
アプリケーションを端末エミュレータ・ウィンドウで実行しなければならない場合、ウィンドウを開いてからアプリケーションを実行するようにアクションに書き込むことができます。この場合、いくつかの端末オプションがあります。
</Para>
</ListItem>
</ItemizedList>
<Sect2 Id="SAG.CrAct.div.41">
<Title Id="SAG.CrAct.mkr.25">アクションのウィンドウ・サポートの指定</Title>
<Para>
<Filename>WINDOW_TYPE</Filename> フィールドを使用して、アクションが必要とするウィンドウ・サポートの型を指定します。
</Para>
<InformalTable>
<TGroup Cols="2" colsep="0" rowsep="0">
<colspec colwidth="145*">
<colspec colwidth="383*">
<TBody>
<Row>
<Entry><Para>WINDOW_TYPE<IndexTerm><Primary>WINDOW_TYPE フィールド</Primary></IndexTerm>
</Para></Entry>
<Entry><Para>提供されるウィンドウ・サポート</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>NO_STDIO</Filename><IndexTerm><Primary>NO_STDIO ウィンドウ・サポート</Primary></IndexTerm>
</Para></Entry>
<Entry><Para>提供されません。アプリケーションがそれ自身のウィンドウをもっているか、コマンドが表示できる出力をもっていない場合、<Filename>NO_STDIO</Filename> を使用します。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>PERM_TERMINAL</Filename><IndexTerm><Primary>PERM_TERMINAL ウィンドウ・サポート</Primary></IndexTerm>
</Para></Entry>
<Entry><Para>常時端末エミュレータ・ウィンドウ。アクションは端末ウィンドウを開き、明示的に閉じるまで開いたままにします。ウィンドウにデータを入力できます。入力を行い、出力を作成し、その後終了するコマンド（たとえば <Command>ls</Command> <Symbol Role="Variable">directory</Symbol>）で使用します。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Command>TERMINAL</Command><IndexTerm><Primary>TERMINAL ウィンドウ・サポート</Primary></IndexTerm>
</Para></Entry>
<Entry><Para>一時端末エミュレータ・ウィンドウ。アクションは端末ウィンドウを開き、コマンドが完了するとすぐに閉じます。全画面コマンド（たとえば <Command>vi</Command>）で使用します。
</Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
</Sect2>
<Sect2 Id="SAG.CrAct.div.42">
<Title Id="SAG.CrAct.mkr.26">端末エミュレータのコマンド行オプションの指定<IndexTerm><Primary>端末エミュレータ</Primary><Secondary>アクションのコマンド行オプション</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>端末オプション</Secondary></IndexTerm></Title>
<Para>
アクション定義にある <Filename>TERM_OPTS</Filename> フィールドを使用して、端末エミュレータのコマンド行オプションを指定します。
</Para>
<Para>
たとえば、次のアクションは実行ホストをプロンプトします。
</Para>
<programlisting>ACTION OpenTermOnSystemUserChooses
{
 WINDOW_TYPE    PERM_TERMINAL
 EXEC_HOST      &percnt;(String)&ldquo;Remote terminal on:&rdquo;&percnt;
 TERM_OPTS      -title &percnt;(String)&ldquo;Window title:&rdquo;&percnt;
 EXEC_STRING    $SHELL
}
</ProgramListing>
</Sect2>
<Sect2 Id="SAG.CrAct.div.43">
<Title Id="SAG.CrAct.mkr.27">他のデフォルト端末エミュレータの指定<IndexTerm><Primary>端末エミュレータ</Primary><Secondary>アクションのデフォルト</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>〜の端末エミュレータ・サポート</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>デフォルト端末エミュレータ</Secondary></IndexTerm></Title>
<Para>
アクションが使用するデフォルトの端末エミュレータは、<Command>dtterm</Command> です。これを別の端末エミュレータに変更できます。デフォルトの端末エミュレータは、アクションが使用する端末エミュレータを明示的に指定しないときに使用されます。
</Para>
<Para>
アクションが使用する端末エミュレータは、次のコマンド行オプションをもっていなければなりません。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para><Command>-title</Command> <Symbol Role="Variable">window_title</Symbol></Para>
</ListItem>
<ListItem>
<Para><Command>-e</Command> <Symbol Role="Variable">command</Symbol></Para>
</ListItem>
</ItemizedList>
<Para>
次の２つのリソースは、アクションが使用するデフォルトの端末エミュレータを決定します。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
<IndexTerm><Primary>localTerminal リソース</Primary></IndexTerm>
<Command>localTerminal</Command> リソースは、ローカル・アプリケーションが使用する端末エミュレータを指定します。
</Para>
<programlisting>*localTerminal:    <Symbol Role="Variable">terminal</Symbol></programlisting>
<Para>次に例を示します。</Para>
<Para>*localTerminal: xterm</Para>
</ListItem>
<ListItem>
<Para Id="SAG.CrAct.mkr.28">
<Command>remoteTerminal</Command> リソースは、リモート・アプリケーションが使用する端末エミュレータを指定します。
</Para>
<ProgramListing>*remoteTerminal:   <Symbol Role="Variable">host</Symbol>:<Symbol Role="Variable">terminal</Symbol> [,<Symbol Role="Variable">host</Symbol>:<Symbol Role="Variable">terminal</Symbol>&hellip;]</ProgramListing>
<Para>次に例を示します。</Para>
<ProgramListing>*remoteTerminal: sysibm1:/usr/bin/xterm,syshp2:/usr/bin/yterm</ProgramListing>
</ListItem>
</ItemizedList>
</Sect2>
</Sect1>
<Sect1 Id="SAG.CrAct.div.44">
<Title Id="SAG.CrAct.mkr.29">特定の引き数へのアクションの制限<IndexTerm><Primary>アクション</Primary><Secondary>引き数の制限</Secondary></IndexTerm><IndexTerm><Primary>引き数</Primary><Secondary>アクションの制限</Secondary></IndexTerm></Title>
<Para>
特定の型の引き数にアクションを制限すると、アクションが改良されます。たとえば、PostScript ファイル引き数に対してのみ PostScript ファイルのビューアを呼び出すようにアクションを制限すると有用です。つまり制限があると、PostScript ファイル以外を指定したときに、アクションはエラー・ダイアログを返してきます。
</Para>
<Para>
次のことに基づいてアクションを制限することができます。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
ファイル引き数のデータ型。
</Para>
</ListItem>
<ListItem>
<Para>
ファイル引き数の数 &mdash; たとえば、引き数なしとひとつ以上の引き数を指定する場合とでは、アクション・アイコンのドロップ・アンド・ダブルクリック動作が異なります。
</Para>
</ListItem>
<ListItem>
<Para>
引き数の読み取りまたは書き込みモード。
</Para>
</ListItem>
</ItemizedList>
<Sect2 Id="SAG.CrAct.div.45">
<Title Id="SAG.CrAct.mkr.30">指定されたデータ型へのアクションの制限<IndexTerm><Primary>アクション</Primary><Secondary>データ型によって制限された</Secondary></IndexTerm><IndexTerm><Primary>データ型</Primary><Secondary>〜に基づくアクションの制限</Secondary></IndexTerm></Title>
<Para>
<IndexTerm><Primary>ARG_TYPE フィールド</Primary></IndexTerm>
<Filename>ARG_TYPE</Filename> フィールドを使用して、アクションが有効であるデータ型を指定します。データ属性名を使用します。
</Para>
<Para>
コンマでエントリを区切ってデータ型のリストを入力することができます。
</Para>
<Para>
たとえば、次のアクション定義は Gif データ型が作成されたとした場合の例です。
</Para>
<programlisting>ACTION Open_Gif
{
 TYPE           COMMAND
 LABEL          &ldquo;Display Gif&rdquo;
 WINDOW_TYPE    NO_STDIO
 ARG_TYPE       Gif
 ICON           xgif
 DESCRIPTION    Displays gif files
 EXEC_STRING    xgif
}
</ProgramListing>
</Sect2>
<Sect2 Id="SAG.CrAct.div.46">
<Title>引き数の数に基づいたアクションの制限<IndexTerm><Primary>アクション</Primary><Secondary>引き数の数の制限</Secondary></IndexTerm><IndexTerm><Primary>引き数</Primary><Secondary>アクションの〜の数</Secondary></IndexTerm></Title>
<Para>
<IndexTerm><Primary>ARG_COUNT フィールド</Primary></IndexTerm>
<Filename>ARG_COUNT</Filename> フィールドを使用して、アクションが受け入れることができる引き数の数を指定します。有効な値は次のとおりです。
</Para>
<InformalTable>
<TGroup Cols="2" colsep="0" rowsep="0">
<colspec colwidth="42*">
<colspec colwidth="486*">
<TBody>
<Row>
<Entry><Para><Filename>*</Filename></Para></Entry>
<Entry><Para>(デフォルト) 任意の数の引き数。その他の値は <Filename>*</Filename> よりも優先されます。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Symbol Role="Variable">n</Symbol></Para></Entry>
<Entry><Para>任意の負でない値（0 を含む）。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>></Filename><Symbol Role="Variable">n</Symbol></Para></Entry>
<Entry><Para><Symbol Role="Variable">n</Symbol> よりも大きい引き数。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>&lt;</Filename><Symbol Role="Variable">n</Symbol></Para></Entry>
<Entry><Para><Symbol Role="Variable">n</Symbol> よりも小さい引き数。
</Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
<Para>
<Filename>ARG_COUNT</Filename> の使用方法のひとつは、アイコンをダブルクリックするか、あるいはそのアイコンにファイルをドロップするかに応じて、異なるアクション・アイコン動作を提供することです。次節の
<!--Original XRef content: '&xd2;To Provide Different Double-Click and Drop Behavior'--><XRef Role="SectionTitle" Linkend="SAG.CrAct.div.47"> を参照してください。
</Para>
</Sect2>
<Sect2 Id="SAG.CrAct.div.47" Role="Procedure">
<Title Id="SAG.CrAct.mkr.31">異なるダブルクリックとドロップ動作を提供するには<IndexTerm><Primary>アクション</Primary><Secondary>異なるダブルクリックとドロップ機能</Secondary></IndexTerm><IndexTerm><Primary>ARG_COUNT フィールド</Primary></IndexTerm></Title>
<Para>
次の手順を使用してドロップされたファイルを受け取るアクションを作成しますが、アクション・アイコンをダブルクリックしてもファイルを要求しません。
</Para>
<OrderedList>
<ListItem>
<Para>
ダブルクリック機能のためのアクション定義を作成します。
</Para>
<Para>
<Filename>ARG_COUNT</Filename> フィールドを使用して引き数 <Filename>0</Filename> を指定します。ドロップされた引き数を受け取らない <Filename>EXEC_STRING</Filename> の構文を使用します。
</Para>
</ListItem>
<ListItem>
<Para>
ドロップ機能のための２番目のアクション定義を作成します。
</Para>
<Para>
<Filename>ARG_COUNT</Filename> フィールドを使用して引き数 <Filename>>0</Filename> を指定します。ドロップされたファイルを受け取る <Filename>EXEC_STRING</Filename> の構文を使用します。
</Para>
</ListItem>
</OrderedList>
<Para>
たとえば、次の２つのコマンド行は <Command>vedit</Command> という名前のエディタを起動するのに使用できるものとします。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
ファイル引き数を使用しないでエディタを起動するには、次のようにします。
</Para>
<programlisting>vedit</programlisting>
</ListItem>
<ListItem>
<Para>
読み込み専用ドキュメントとして開かれるファイル引き数でエディタを起動するには、次のようにします。
</Para>
<programlisting>vedit -R <Symbol Role="Variable">filename</Symbol></programlisting>
</ListItem>
</ItemizedList>
<Para>
次の２つのアクションは、Vedit という名前のアクションのためのドロップとダブルクリック機能を作成します。<Filename>ARG_COUNT</Filename> <Filename>0</Filename> は暗黙的なドロップ機能定義の <Filename>ARG_COUNT</Filename> <Filename>*</Filename> よりも明確なので、データベースで一致するものを検索するときには最初のアクションが優先されます。
</Para>
<programlisting># Double-click functionality
ACTION Vedit
{
 TYPE         COMMAND
 ARG_COUNT    0
 WINDOW_TYPE  PERM_TERMINAL
 EXEC_STRING  vedit
}

# Drop functionality
ACTION Vedit
{
 TYPE          COMMAND
 WINDOW_TYPE   PERM_TERMINAL
 EXEC_STRING   vedit -R &percnt;Arg_1&percnt;
}
</ProgramListing>
</Sect2>
<Sect2 Id="SAG.CrAct.div.48">
<Title>引き数のモードに基づいたアクションの制限</Title>
<Para>
<Filename>ARG_MODE</Filename> フィールドを使用して、引き数の読み込みまたは書き込みモードを指定します。有効な値は、次のとおりです。
</Para>
<InformalTable>
<TGroup Cols="2" colsep="0" rowsep="0">
<colspec colwidth="41*">
<colspec colwidth="487*">
<TBody>
<Row>
<Entry><Para><Filename>*</Filename></Para></Entry>
<Entry><Para>(デフォルト) 任意のモード</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>!w</Filename></Para></Entry>
<Entry><Para>書き込み不可</Para></Entry>
</Row>
<Row>
<Entry><Para><Command>w</Command></Para></Entry>
<Entry><Para>書き込み可</Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
</Sect2>
</Sect1>
<Sect1 Id="SAG.CrAct.div.49">
<Title Id="SAG.CrAct.mkr.32">リモート・システムでアプリケーションを実行するアクションの作成<IndexTerm><Primary>アクション</Primary><Secondary>リモート・アプリケーションの実行</Secondary></IndexTerm><IndexTerm><Primary>リモート実行</Primary><Secondary>アクションによる</Secondary></IndexTerm></Title>
<Para>
アクションとリモート実行について説明する場合、次の２つの用語がよく使用されます。
</Para>
<InformalTable>
<TGroup Cols="2" colsep="0" rowsep="0">
<colspec colwidth="108*">
<colspec colwidth="420*">
<TBody>
<Row>
<Entry><Para>データベース・ホスト<IndexTerm><Primary>データベース・ホスト</Primary></IndexTerm>
</Para></Entry>
<Entry><Para>アクション定義が入っているシステム</Para></Entry>
</Row>
<Row>
<Entry><Para>実行ホスト<IndexTerm><Primary>実行ホスト</Primary><Secondary>〜のアクションの作成</Secondary></IndexTerm>
</Para></Entry>
<Entry><Para>実行可能ファイルを実行するシステム</Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
<Para>
ほとんどの場合、アクションとそのアプリケーションは同じシステム上にあります。つまり、アクションのデフォルトの実行ホストはデータベース・ホストであるため、特別な構文は必要ありません。
</Para>
<Para>
しかし、実行ホストがデータベース・ホストとは異なる場合、アクション定義はどこで実行文字列を実行するのか指定しなければなりません。
</Para>
<Para>
異なるシステム上にアクションとアプリケーションを配置するための機能は、デスクトップのクライアント/サーバ・アーキテクチャの一部です。ネットワーク・アプリケーションの詳細な説明については、
<!--Original XRef content: '&xd2;Administering Application Services&xd3; on page&numsp;99'--><XRef Role="SecTitleAndPageNum" Linkend="SAG.ClSrv.mkr.15"> を参照してください。
</Para>
<Sect2 Id="SAG.CrAct.div.50">
<Title Id="SAG.CrAct.mkr.33">リモート・アプリケーションを実行するアクションの作成<IndexTerm><Primary>EXEC_HOST フィールド</Primary></IndexTerm><IndexTerm><Primary>DatabaseHost&percnt;</Primary></IndexTerm><IndexTerm><Primary>LocalHost&percnt;</Primary></IndexTerm><IndexTerm><Primary>DisplayHost&percnt;</Primary></IndexTerm><IndexTerm><Primary>SessionHost&percnt;</Primary></IndexTerm></Title>
<Para>
<IndexTerm><Primary>EXEC_HOST フィールド</Primary></IndexTerm><IndexTerm><Primary>実行ホスト</Primary><Secondary>EXEC_HOST フィールドによって指定された</Secondary></IndexTerm>
アクション定義 <Filename>EXEC_HOST</Filename> フィールドを使用して、アプリケーションの位置を指定します。
</Para>
<Para><Filename>EXEC_HOST</Filename> の有効な値は次のとおりです。</Para>
<InformalTable>
<TGroup Cols="2" colsep="0" rowsep="0">
<colspec colwidth="148*">
<colspec colwidth="380*">
<TBody>
<Row>
<Entry><Para><Filename>&percnt;DatabaseHost&percnt;</Filename><IndexTerm><Primary>DataBaseHost キーワード</Primary></IndexTerm>
</Para></Entry>
<Entry><Para>アクションが定義されるホスト。</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>&percnt;LocalHost&percnt;</Filename></Para></Entry>
<Entry><Para>アクションが呼び出されるホスト (<Emphasis>セッション・サーバ</Emphasis>)。</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>&percnt;DisplayHost&percnt;</Filename><IndexTerm><Primary>DisplayHost キーワード</Primary></IndexTerm>
</Para></Entry>
<Entry><Para>Ｘサーバを実行中のホスト (Ｘ端末では使用できません)。</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>&percnt;SessionHost&percnt;</Filename><IndexTerm><Primary>SessionHost キーワード</Primary></IndexTerm>
</Para></Entry>
<Entry><Para>コントロールを行うログイン・マネージャが実行中のホスト。</Para></Entry>
</Row>
<Row>
<Entry><Para><Symbol Role="Variable">hostname</Symbol></Para></Entry>
<Entry><Para>名前付きホスト。アクションがひとつの特定ホスト上に必ず呼び出される環境でこの値を使用します。</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>&percnt;&ldquo;</Filename><Symbol Role="Variable">prompt</Symbol><Filename>&rdquo;&percnt;</Filename></Para></Entry>
<Entry><Para>アクションが呼び出されるたびにホスト名をプロンプトします。</Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
<Para>
デフォルト値は、<Filename>&percnt;DatabaseHost&percnt;</Filename>、<Filename>&percnt;LocalHost&percnt;</Filename> です。
<IndexTerm><Primary>EXEC_HOST フィールド</Primary><Secondary>デフォルト値</Secondary></IndexTerm>
したがって、<Filename>EXEC_HOST</Filename> フィールドが削除されると、アクションはアクション定義が入っているホストでコマンドの実行を最初に試みます。これに失敗すると、アクションはセッション・サーバでコマンドの実行を試みます。
</Para>
<Sect3 Id="SAG.CrAct.div.51">
<Title>例</Title>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
このフィールドは、ホスト <Command>ddsyd</Command> を指定します。
</Para>
</ListItem>
</ItemizedList>
<ProgramListing>EXEC_HOST  ddsyd</ProgramListing>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>このフィールドは、ホスト名をプロンプトします。
</Para>
</ListItem>
</ItemizedList>
<ProgramListing>EXEC_HOST  &percnt;&ldquo;Host containing application:&rdquo;&percnt;</ProgramListing>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>このフィールドは、アクション定義が入っているホストでアプリケーションの実行をアクションが試みるように指定します。これに失敗すると、アクションはホスト <Command>ddsyd</Command> でアプリケーションの実行を試みます。
</Para>
</ListItem>
</ItemizedList>
<ProgramListing>EXEC_HOST  &percnt;DatabaseHost&percnt;, ddsyd</ProgramListing>
</Sect3>
</Sect2>
</Sect1>
<Sect1 Id="SAG.CrAct.div.52">
<Title Id="SAG.CrAct.mkr.34">アクションおよびデータ型定義における変数の使用<IndexTerm><Primary>変数</Primary><Secondary>アクション定義における</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>定義における変数</Secondary></IndexTerm><IndexTerm><Primary>データ型</Primary><Secondary>定義における変数</Secondary></IndexTerm></Title>
<Para>
文字列変数と環境変数をアクションおよびデータ型定義ファイルに含むことができます。
</Para>
<Sect2 Id="SAG.CrAct.div.53">
<Title Id="SAG.CrAct.mkr.35">アクションにおける文字列変数の使用<IndexTerm><Primary>アクション定義における文字列変数</Primary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>〜の文字列変数</Secondary></IndexTerm></Title>
<Para>
文字列変数定義は、定義の位置からファイルの最後まで有効です。データベース用のグローバルな文字列変数はありません。
</Para>
<Para>
文字列変数と環境変数が同じ名前の場合、文字列変数が優先されます。
</Para>
<Sect3 Id="SAG.CrAct.div.54" Role="Procedure">
<Title>文字列変数を定義するには</Title>
<OrderedList>
<ListItem>
<Para>次の構文を使用します。</Para>
<programlisting>set <Symbol Role="Variable">variable_name</Symbol>=<Symbol Role="Variable">value</Symbol></programlisting>
</ListItem>
</OrderedList>
<Para>
変数名に英数字と下線文字 (<Filename>_</Filename>) を使用できます。各変数定義は別の行になければなりません。
</Para>
<Para>次に例を示します。</Para>
<programlisting>set Remote_Application_Server=sysapp
set Remote_File_Server=sysdata
</ProgramListing>
</Sect3>
<Sect3 Id="SAG.CrAct.div.55" Role="Procedure">
<Title>文字列変数を参照するには</Title>
<OrderedList>
<ListItem>
<Para>次の構文を使用します。</Para>
<programlisting>$[<Filename>{</Filename>]<Symbol Role="Variable">variable_name</Symbol>[<Filename>}</Filename>]</programlisting>
</ListItem>
</OrderedList>
<Para>次に例を示します。</Para>
<programlisting>EXEC-HOST   $Remote_Application_Server
CWD   /net/${Remote_File_Server}/doc/project
</ProgramListing>
</Sect3>
</Sect2>
<Sect2 Id="SAG.CrAct.div.56">
<Title Id="SAG.CrAct.mkr.36">アクションおよびデータ型における環境変数の使用<IndexTerm><Primary>環境変数</Primary><Secondary>アクション定義</Secondary></IndexTerm><IndexTerm><Primary>アクション</Primary><Secondary>環境変数</Secondary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>
次の構文を使用して環境変数を参照します。
</Para>
<programlisting><Filename>$[{]</Filename><Symbol Role="Variable">variable</Symbol>[<Filename>}]</Filename>.</programlisting>
</ListItem>
</OrderedList>
<Para>
データベースが読み込まれると変数は拡張されます（その値に置き換えられます）。文字列変数と環境変数が同じ名前の場合、文字列変数が優先されます。
</Para>
<Para>
たとえば、次の実行文字列はログイン名が入っているバナーでファイルを印刷します。
</Para>
<ProgramListing>EXEC-STRING lp -t$LOGNAME &percnt;(File)Arg_1&percnt;</ProgramListing>
</Sect2>
</Sect1>
<Sect1 Id="SAG.CrAct.div.57">
<Title Id="SAG.CrAct.mkr.37">コマンド行からのアクションの呼び出し<IndexTerm><Primary>アクション</Primary><Secondary>他のアクションの実行</Secondary></IndexTerm></Title>
<Para>
デスクトップは、コマンド行からアクションを実行するための <Command>dtaction</Command> コマンドを提供します。<Command>dtaction</Command> を使用して次の部分からアクションを実行できます。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>スクリプト</Para>
</ListItem>
<ListItem>
<Para>他のアクション</Para>
</ListItem>
<ListItem>
<Para>端末エミュレータ・コマンド行</Para>
</ListItem>
</ItemizedList>
<Sect2 Id="SAG.CrAct.div.58">
<Title>dtaction の構文<IndexTerm><Primary>dtaction</Primary><Secondary>構文</Secondary></IndexTerm></Title>
<ProgramListing>dtaction [-user <Symbol Role="Variable">user_name</Symbol>] [-execHost <Symbol Role="Variable">hostname</Symbol>] <Symbol Role="Variable">action_name</Symbol> [<Symbol Role="Variable">argument</Symbol> [<Symbol Role="Variable">argument</Symbol>]&hellip;]</ProgramListing>
<InformalTable>
<TGroup Cols="2" colsep="0" rowsep="0">
<colspec colwidth="95*">
<colspec colwidth="433*">
<TBody>
<Row>
<Entry><Para><Filename>-user</Filename> <Symbol Role="Variable">user_name</Symbol></Para></Entry>
<Entry><Para>
別のユーザとしてアクションを実行するための機能を提供します。<Command>dtaction</Command> が <Symbol Role="Variable">user_name</Symbol> 以外のユーザによって呼び出される場合、パスワードのプロンプトが表示されます。
</Para></Entry>
</Row>
<Row>
<Entry><Para>-<Command>execHost</Command> <Symbol Role="Variable">hostname</Symbol></Para></Entry>
<Entry><Para>
<Command>COMMAND</Command> アクションの場合のみ。コマンドが実行されるホストを指定します。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Symbol Role="Variable">argument</Symbol></Para></Entry>
<Entry><Para>
アクションに対する引き数。通常はファイル引き数です。
</Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
<Para>
<Command>dtaction</Command> クライアントは追加のコマンド行オプションをもっています。詳細については、<Filename MoreInfo="RefEntry">dtaction</Filename>(1) のマニュアル・ページを参照してください。
</Para>
</Sect2>
<Sect2 Id="SAG.CrAct.div.59">
<Title>異なるアクションを実行するアクションの作成<IndexTerm><Primary>アクション</Primary><Secondary>他のアクションの実行</Secondary></IndexTerm></Title>
<Para>
アクションの <Filename>EXEC_STRING</Filename> にある <Command>dtaction</Command> を使用します。
</Para>
<Para>
たとえば、次のアクションは Spell という名前の組み込みアクション（アクションはアプリケーション・マネージャで「スペルチェック」というラベルが付けられています）を使用します。新規アクションはテキスト・エディタと Spell アクションを実行し、別の端末エミュレータ・ウィンドウにスペルミスを表示します。
</Para>
<programlisting>ACTION EditAndSpell
{
 WINDOW_TYPE    NO_STDIO
 EXEC_STRING    /bin/sh -c 'dtaction Spell \
     &percnt;Arg_1&ldquo;File:&rdquo;&percnt;; dtpad &percnt;Arg_1&percnt;'
}
</ProgramListing>
</Sect2>
<Sect2 Id="SAG.CrAct.div.60">
<Title Id="SAG.CrAct.mkr.38">別のユーザとして実行するアクションの作成<IndexTerm><Primary>アクション</Primary><Secondary>別のユーザとして実行</Secondary></IndexTerm><IndexTerm><Primary>ユーザ、アクションの〜の変更</Primary></IndexTerm><IndexTerm><Primary>dtaction</Primary><Secondary>ユーザを変更するときに使用される</Secondary></IndexTerm></Title>
<Para>
<Filename>EXEC_STRING</Filename> にある次の構文を使用します。
</Para>
<ProgramListing>EXEC_STRING   dtaction -user <Symbol Role="Variable">user_name</Symbol> <Symbol Role="Variable">action_name</Symbol> [<Symbol Role="Variable">file_argument</Symbol>]</ProgramListing>
<Para>
新規ユーザ (<Symbol Role="Variable">user_name</Symbol>) は、次のいずれかの機構を介してシステムへのディスプレイ・アクセスをもたなければなりません。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
ログイン・ユーザの <Filename>.Xauthority</Filename> ファイルにある読み取り権</Para>
</ListItem>
<ListItem>
<Para><Emphasis>あるいは</Emphasis>、xhost アクセス権</Para>
</ListItem>
</ItemizedList>
<Para>
たとえば、次の２つのアクションは、root になるための機能と app-defaults ファイルを編集するための機能を提供します。
</Para>
<programlisting>ACTION AppDefaults
{
 WINDOW_TYPE  NO_STDIO
 EXEC_STRING  /usr/dt/bin/dtaction -user root \
              EditAppDefaults &percnt;Arg_1&ldquo;File:&rdquo;&percnt;
}
ACTION EditAppDefaults
{
 WINDOW_TYPE  TERMINAL
 EXEC_STRING  /bin/sh -c 'chmod +w &percnt;Arg_1&percnt;; \
              vi &percnt;Arg_1&percnt;; chmod -w &percnt;Arg_1&percnt;'
}
</ProgramListing>
</Sect2>
</Sect1>
<Sect1 Id="SAG.CrAct.div.61">
<Title Id="SAG.CrAct.mkr.39">ローカライズされたアクションの作成<IndexTerm><Primary>アクション</Primary><Secondary>ローカライズされた</Secondary></IndexTerm><IndexTerm><Primary>ローカリゼーション</Primary><Secondary>アクション</Secondary></IndexTerm></Title>
<Para>
データ型の検索パスには言語に依存する位置も含まれています。デスクトップは、LANG の値を使用して、データ型定義が検索される位置を決定します。 
</Para>
<Sect2 Id="SAG.CrAct.div.62">
<Title>ローカライズされたアクションの位置</Title>
<Para>
ローカライズされたアクション定義は、アクション検索パスに応じて適切な言語に依存するディレクトリに置かなければなりません。
</Para>
<Para>デフォルトの検索パスは次のとおりです。</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>個人用アクション: <Symbol Role="Variable">HomeDirectory</Symbol><Filename>/.dt/types</Filename></Para>
</ListItem>
<ListItem>
<Para>システム共通アクション: <Filename>/etc/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
<ListItem>
<Para>組み込みアクション: <Filename>/usr/dt/appconfig/types/</Filename><Symbol Role="Variable">language</Symbol></Para>
</ListItem>
</ItemizedList>
</Sect2>
<Sect2 Id="SAG.CrAct.div.63" Role="Procedure">
<Title>既存のアクションをローカライズするには<IndexTerm><Primary>アクション</Primary><Secondary>ラベル</Secondary></IndexTerm><IndexTerm><Primary>ラベル</Primary><Secondary>アクション</Secondary></IndexTerm><IndexTerm><Primary>ローカリゼーション</Primary><Secondary>アクション・ラベル</Secondary></IndexTerm></Title>
<OrderedList>
<ListItem>
<Para>
適切な言語に依存するディレクトリ（たとえば <Filename>/etc/dt/appconfig/types/japanese</Filename>）にファイルをコピーします。
</Para>
</ListItem>
<ListItem>
<Para>
アクション定義を言語に依存する構成ファイルにコピーします。
</Para>
<Para>
たとえば、アクション定義を <Symbol Role="Variable">app_root</Symbol>/dt/appconfig/types/C/<Symbol Role="Variable">file</Symbol>.dt から <Symbol Role="Variable">app_root</Symbol>/dt/appconfig/types/japanese/<Symbol Role="Variable">newfile</Symbol>.dt にコピーします。
</Para>
</ListItem>
<ListItem>
<Para>
<Command>LABEL</Command> フィールドを追加するか、既存の <Command>LABEL</Command> フィールドを変更します。
</Para>
<programlisting>LABEL   <Symbol Role="Variable">string</Symbol></programlisting>
<Para>
アプリケーション・マネージャとファイル・マネージャは、ラベル文字列を使用してアクションのアイコンを識別します。
</Para>
</ListItem>
<ListItem>
<Para>
アクション定義にある次のいずれかのフィールドをローカライズします。
</Para>
<ItemizedList Remap="Bullet2">
<ListItem>
<Para>ローカライズされたアイコンの場合: <Command>ICON</Command></Para>
</ListItem>
<ListItem>
<Para>ローカライズされたアイテムヘルプの場合: <Command>DESCRIPTION</Command></Para>
</ListItem>
<ListItem>
<Para>ローカライズされたプロンプトの場合: <Filename>EXEC_STRING</Filename> にある引用符で囲まれたテキスト</Para>
</ListItem>
</ItemizedList>
</ListItem>
</OrderedList>
</Sect2>
</Sect1>
<Sect1 Id="SAG.CrAct.div.64">
<Title Id="SAG.CrAct.mkr.40">ToolTalk アプリケーションのアクションの作成<IndexTerm><Primary>TT_MSG アクション</Primary><Secondary>作成</Secondary></IndexTerm><IndexTerm><Primary>ToolTalk</Primary><Secondary>アプリケーション、〜のアクション</Secondary></IndexTerm><IndexTerm><Primary>ToolTalk</Primary><Secondary>アクション、「TT_MSG アクション」を参照してください</Secondary></IndexTerm></Title>
<Note>
<Para>
次の情報は、ToolTalk メッセージをサポートするアプリケーションに対してのみ適用されます。
</Para>
</Note>
<Para>
<Filename>TT_MSG</Filename> アクション型を使用して、ToolTalk メッセージを送信するアクションを作成します。
</Para>
<programlisting>ACTION <Symbol Role="Variable">action_name</Symbol>
{
 TYPE  TT_MSG
 &hellip;
}
</ProgramListing>
<Sect2 Id="SAG.CrAct.div.65">
<Title>addressing フィールドと disposition フィールド</Title>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>
ToolTalk <Command>addressing</Command> フィールドは、常に <Filename>TT_PROCEDURE</Filename> に設定されます。
</Para>
</ListItem>
<ListItem>
<Para>
ToolTalk <Command>disposition</Command> フィールドは、静的メッセージ・パターンの指定がデフォルトの値です。
</Para>
</ListItem>
</ItemizedList>
<Sect3 Id="SAG.CrAct.div.66">
<Title>サポートされていないメッセージ</Title>
<Para>
<Filename>TT_MSG</Filename> 型アクションがサポートしていないものは、次のとおりです。
</Para>
<ItemizedList Remap="Bullet1">
<ListItem>
<Para>ToolTalk オブジェクト指向メッセージ</Para>
</ListItem>
<ListItem>
<Para>メッセージ内のコンテキスト引き数</Para>
</ListItem>
</ItemizedList>
</Sect3>
<Sect3 Id="SAG.CrAct.div.67">
<Title>TT_MSG アクションのキーワード<IndexTerm><Primary>TT_MSG アクション</Primary><Secondary>キーワード</Secondary></IndexTerm></Title>
<InformalTable>
<TGroup Cols="2" colsep="0" rowsep="0">
<colspec colwidth="140*">
<colspec colwidth="388*">
<THead>
<Row>
<Entry><Para>キーワード</Para></Entry>
<Entry><Para>使用目的</Para></Entry>
</Row>
</THead>
<TBody>
<Row>
<Entry><Para><Filename>TT_CLASS</Filename></Para></Entry>
<Entry><Para>
ToolTalk <Command>class</Command> メッセージ・フィールドの値を定義します。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>TT_SCOPE</Filename></Para></Entry>
<Entry><Para>
ToolTalk <Command>scope</Command> メッセージ・フィールドの値を定義します。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>TT_OPERATION</Filename></Para></Entry>
<Entry><Para>
ToolTalk <Command>operation</Command> メッセージ・フィールドの値を定義します。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>TT_FILE</Filename></Para></Entry>
<Entry><Para>
ToolTalk <Command>file</Command> メッセージ・フィールドの値を定義します。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>TT_ARGn_MODE</Filename></Para></Entry>
<Entry><Para>
<Symbol Role="Variable">n</Symbol> 番目のメッセージ引き数の ToolTalk <Command>mode</Command> 属性の値を定義します。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>TT_ARGn_VTYPE</Filename></Para></Entry>
<Entry><Para>
<Symbol Role="Variable">n</Symbol> 番目のメッセージ引き数の ToolTalk <Command>vtype</Command> 属性の値を定義します。
</Para></Entry>
</Row>
<Row>
<Entry><Para><Filename>TT_ARGn_VALUE</Filename></Para></Entry>
<Entry><Para>
<Symbol Role="Variable">n</Symbol> 番目のメッセージ引き数の値を定義します。
</Para></Entry>
</Row>
</TBody>
</TGroup>
</InformalTable>
</Sect3>
</Sect2>
</Sect1>
</Chapter>
<!--fickle 1.14 mif-to-docbook 1.7 01/02/96 06:16:56-->
