创建动作有下列两种方法:
使用"创建动作"桌面应用程序
手动创建动作的定义
手动创建动作需要编辑数据库文件。本章主要描述如何手动创建动作的定义。
关于动作的介绍,请参阅第 10 章,动作与数据类型的介绍 。
关于使用"创建动作"的信息,请参阅第 11 章,用创建动作命令来创建动作和数据类型。
关于动作定义的参考信息,请参阅 dtactionfile(4) 手册页。
COMMAND
MAP
TT_MSG
"创建动作"工具设计用来创建一些特定的COMMAND 和MAP动作。所有TT_MSG动作都必须手动创建。
关于进一步信息,请参阅"创建动作的限制"。
command 动作执行命令,该命令启动应用程序或实用程序、运行shell正文或执行操作系统命令。 动作的定义包括要执行的命令 (EXEC_STRING)。
"创建动作"工具能用于创建最为常见类型的命令动作。不过有时也可能必须手动来 创建动作。例如,如果动作中有以下指定就必须手动创建COMMAND 动作:
多文件参数,而且每个参数有不同的提示符。
动作调用-动作调用其它动作的能力。
参数数目所决定的性能-创建动作的能力,其动作性能随文件参数的数量不同而变化。
远程执行主机-在包含动作定义的系统之外的系统上运行应用程序的能力。
用户更换-作为不同用户运行该动作的能力(例如,提示输入超级口令, 然后以超级用户身份运行动作)。
映射动作不直接指定命令或 ToolTalk 消息, 而是"映射"到另一个动作
"映射"能为动作定义替代名。例如,名为 IconEditor 的内置命令动作启动 图标编辑器;在数据库中同时还有限于位图和象素图文件(由ARG_TYPE字段定义)的"打开"动作被映射到 IconEditor 动作。这使用户可以通过在"文件管理器"中选择位图或象素图文件并在"选定"菜单中选择"打开"来启动"图标编辑器"。
"创建动作"能为"打开"和"打印"动作提供有限的映射功能,但其它所有动作的映射都必须手动创建。
TT_MSG动作发送 ToolTalk 消息。所有TT_MSG动作都必须手动创建。
本节介绍如何为动作定义创建配置文件。
包含动作定义的配置文件必须满足下列要求:
文件名必须遵循命名惯例名称.dt
文件必须位于数据库(动作和数据类型)的搜索路径内。缺省的搜索路径为:
个人动作-HomeDirectory/.dt/types
系统范围动作-/etc/dt/appconfig/types/language
内置动作-/usr/dt/appconfig/types/language。你 不应使用该目录。
关于更改动作/数据类型搜索路径的信息,请参阅"设置搜索路径的值"。
打开现有的数据库文件或创建新文件。
请参阅上一节"动作的配置文件"。
使用如下语法创建动作的定义:
ACTIONaction_name { TYPE action_type action_field ... }
其中:
action_name-运行动作所用的名称。
action_type-COMMAND(缺省值)、MAP 或 TT_MSG
action_field-该类 动作所需或任选的字段之一。所有字段都由关键字和值组成。
本章讨论多种动作字段。关于动作字段的进一步信息,请参阅dtactionfile(4) 的手册页。
保存文件。
如果动作图标需要专用图像,请自己为动作创建图标。图标的缺省位置为:
个人图标:HomeDirectory/.dt/icons
系统范围图标:/etc/dt/appconfig/icons/language。缺省的语言是 C。
关于进一步信息,请参阅"指定"动作所用的图标图像""。
在 Desktop_Tools 应用程序组中双击"重新装入动作"。
为动作创建动作文件。该文件在"文件管理器"或"应用程序管理器"中创建代表动作的图标。(如果 动作被写成启动应用程序,则该图标被称为应用程序图标。)
要创建动作文件,需要创建与action_name同 名的可执行文件。该文件可位于任何具有可写许可的目录内。可创建任意多个动作文件。
下列步骤在远程系统 AppServerA上创建了启动传真应用程序的个人动作。启动传真应用程序的命令 是:
/usr/fax/bin/faxcompose [filename]
创建HomeDirectory/.dt/types/Fax.dt 文件。
在文件内写入下列动作定义:
ACTION FaxComposer { TYPE COMMAND ICON fax WINDOW_TYPE NO_STDIO EXEC_STRING /usr/fax/bin/faxcompose -c%Arg_1% EXEC_HOST AppServerA DESCRIPTION Runs the fax composer }
其中WINDOW_TYPE和EXEC_STRING 描述 了动作的特性。
WINDOW_TYPE-NO_STDIO 关键字指定该动作不一定非在终端仿真程序窗口中运行不可。
请参阅"为动作指定窗口支持"。
EXEC_STRING-语法%Arg _1%接受放置的文件。如果双击动作图标,将打开空的传真创作器窗口。
保存文件。
用"图标编辑器"在HomeDirectory/.dt/icons 目录 中创建下列图标图像文件:
fax.m.pm, 大小为 32 乘 32 象素
fax.t.pm, 大小为 16 乘 16 象素
在 Desktop_Tools 应用程序组中双击"重新装入动作"。
在具有可写许可的目录中创建名为FaxComposer 的可执行文件(例如, 起始目录)。
假设绝大部分传真文件用"文本编辑器"创建,而且属于数据类型 TEXTFILE (文件名为 *.txt)。
下列步骤在数据类型的"选定"菜单中加入"传真"目录项。
打开在上例中创建的HomeDirectory/.dt/types/Fax.dt 文件。
在文件中加入下列映射动作的定义:
ACTION Fax { ARG_TYPE TEXTFILE TYPE MAP MAP_ACTION FaxComposer }
保存文件。
将 TEXTFILE 的数据属性定义从/usr/dt/appconfig/types/language/dtpad.dt 复制到新的文件HomeDirectory/.dt/types/textfile.dt。在ACTIONS字段中加入"传真"动作。
DATA_ATTRIBUTES TEXTFILE { ACTIONS Open,Print,Fax ICON Dtpenpd ... }
保存文件。
打开应用程序管理器,在 Desktop_Tools 应用程序组中双击"重新装入动作"。
为使新的或经过编辑的动作定义有效, 桌面必须重新读取数据库。
打开 Desktop_Tools 应用程序组,双击"重新装入动作"。
或者,执行下列命令:
dtaction ReloadActions
ReloadActions 是图标的标签为"重新装入动作"的动作的名称。
当用户进行下列操作时,动作数据库也会被重新读取:
登录
重新启动工作区管理器
在"创建动作"窗口的"文件"菜单内选择"保存"来保存动作
动作文件是在"文件管理器"或"应用程序管理器"中 提供动作的可视表象的文件。
由于动作文件的图标代表动作,因此有时也被称为动作图标。如果其所蕴含的动作启动 应用程序,则动作文件图标也被称为应用程序图标。
双击动作图标来运行动作。动作图标同时也可能是放置区。
例如,动作的定义如下:
ACTIONMyFavoriteApp { EXEC_STRING Mfa -file%Arg _1% DESCRIPTION Runs MyFavoriteApp ICON Mfapp }
此时,动作文件是名为MyFavoriteApp的可执行文件。 在"文件管理器"和"应用程序管理器"中,MyFavoriteApp 文件使用的图标图像名为Mfapp.size.type。双击MyFavoriteApp 的图标,此时会运行动作的执行字符串,并且图标的"项目"帮助就是DESCRIPTION字段所包含的内容("运行MyFavoriteApp")。
如果动作定义中包含LABEL字段,"文件管理器"和"应用程序 管理器"中动作文件的标签将不与文件名 (action_name) 相同,而是上述字段中定义的标签。例如,如果动作定义中包含下列定义:
ACTIONMyFavoriteApp { LABEL Favorite Application ... }
此时动作图标的标记为"喜爱的应用程序"。
用ICON字段来指定"文件管理器"和 "应用程序管理器"中所使用的图标是为动作创建的动作图标。
如果未指定图标,系统将使用缺省的动作图标的图像文件/usr/dt/appconfig/icons/language/Dtactn.*。
*actionIcon:icon_file_name
其中icon_file_name可以是基本名称或绝对路径。
基本文件名
基本文件名是包含图标图像的全文件名减去有关图标大小(m 和t)和图标类型(bm和pm)的后缀。例如,如果全文件名为GameIcon.m.pm 和GameIcon.t.pm,则基本文件名 为GameIcon。
如果采用基本文件名,图标文件必须放置在位于图标搜索路径的目录内:
个人图标:HomeDirectory/.dt/icons
系统范围图标:/etc/dt/appconfig/icons/language
图标文件的绝对路径,包含全文件名
只有在图标文件不在图标搜索路径内时才使用绝对路径。例如,图标文件GameIcon.m.pm放置在图标搜索路径外的/doc/projects 目录 中,此时ICON字段的值应该是/doc/projects/GameIcon.m.pm。
表 12-1列出了所需创建图标的大小和相应的文件名。
象素大小 |
位图名 |
象素图名 |
---|---|---|
48 乘 48 |
名称.l.bm |
名称.l.pm |
32 乘 32 |
名称.m.bm |
名称.m.pm |
16 乘 16 |
名称.t.bm |
名称.t.pm |
可修改系统内任何可用的动作,包括 内置动作。
修改内置动作数据库时必须小心,因为内置动作是为配合桌面应用程序工作而设计的。
找到需要修改的动作定义。
动作定义的缺省位置是:
如果必要的话,将动作定义的文本复制到下列目录中新的或现有的文件中:
系统范围定义:/etc/dt/appconfig/types/language
个人定义:HomeDirectory/.dt/types
由于不应在/usr/dt/appconfig/types/language 目录中编辑文件,所以必须复制内置动作的定义。
编辑动作的定义。
编辑完毕后请保存文件。
在 Desktop_Tools 应用程序组中双击"重新装入动作"。
当用户调用动作时,系统在数据库中搜索匹配的动作名。如果存在多个动作,系统则利用 优先级规则来决定使用哪个动作。
如果没有其它优先级可用,将使用基于定义位置的优先级。下表按从高到低的 优先级排列:
个人动作 (HomeDirectory/.dt/types)
系统范围的本地动作 (/etc/dt/appconfig/types/language)
系统范围的远程动作 (hostname:/etc/dt/appconfig/types/language)。只搜索在应用程序搜索路径内的远程主 机。
内置动作 (/usr/dt/appconfig/types/language)
在给定的目录内,*.dt文件按字母顺序读取。
受ARG_CLASS、ARG_TYPE、ARG_MODE或ARG_COUNT限定的动作的优先级比没有此类限定的动作高。(上述四种字段的缺省值是*。)
当应用了多个限定时,从高到低的优先顺序是:
ARG_CLASS
ARG_TYPE
ARG_MODE
ARG_COUNT
其中当多个ARG_COUNT限定存在时,从高到低的优先顺序是:
特定整数值n
<n
>n
*
例如,考虑下列动作定义:
ACTION EditGraphics # EditGraphics-1 { ARG_TYPE XWD ... }
ACTION EditGraphics # EditGraphics-2 { ARG_COUNT 0 ... }
ACTION EditGraphics # EditGraphics-3 { ARG_TYPE * ... }
由于没有提供参数,ARG_COUNT0具有优先级,所以双击 EditGraphics 动作图标时会启动 EditGraphics-2; 相反,在提供 XWD 文件参数后使用的是 EditGraphics-1,因为它指定了 XWDARG_TYPE;对于所有其它文件的参数,则使用 EditGraphics-3。
COMMAND动作至少需要两个字段 -ACTION 和EXEC_STRING。
ACTIONaction_name { EXEC_STRINGexecution_string }
执行字符串是COMMAND动作定义中最重要的部分。它使用的语法与在"终端"仿真器窗口内执行的 命令行相似,但包含了用于处理文件和字符串变量的附加语法。
执行字符串可以包括:
文件和非文件参数
shell 语法
可执行文件的绝对路径或名称
参数是命令或应用程序正确运行所需要的信息。例如,考虑这样一个命令行,可能会用它来在"文本编辑器" 中打开文件:
dtpad文件名
在该命令中,文件名是dtpad 命令 的文件参数。
象应用程序和命令一样,动作也可以有参数。COMMAND 动作可以使用两种类型的数据:
文件
字符串数据
执行字符串一般不经过shell就直接执行。但是,也可以明确地在执行字符串中调用shell。
例如:
EXEC_STRING \ /bin/sh -c \ 'tar -tvf% (File)Arg_1% 2>&1 | \${PAGER:-more;\ echo "\\n*** Select Close from the Window menu to close ***"'
如果应用程序位于 PATH 变量所列的目录之中,则可以使用简单的可执行文件名。否则,必须使用 可执行文件的绝对路径。
EXEC_STRING使用象从命令行启动应用程序 一样的语法。
对文件参数使用如下语法:
%Arg_n%
或
%(File)Arg_n%
(File)是可选项,因为为Arg_n 提供的参数(缺省)假定为文件。(请查看"将文件参数解释成字符串",以获得% (String)Arg_n% 语法的使用方法。)
该语法使用户可以通过在动作图标上放置数据文件对象来启动以该文件为参数的动作。它取代了 命令行中第n个参数。放置文件可以是本地文件或远程文件。
下例所显示的是只适用于目录参数的动作的定义的一部分。当目录被放置在动作图标上时, 相应动作将该目录内所有有读写许可的文件列表显示出来。
ACTION List_Writable_Files { ARG_TYPE FOLDER EXEC_STRING /bin/sh -c 's -l%Arg _1% | grep rw-' ... }
文件参数使用如下语法:
%(File) "提示"%
该语法创建了一动作,该动作在用户双击动作图标时提示输入文件名。
例如,下列执行字符串显示对话框,提示输入wc-w命令的文件参数:
EXEC_STRING wc -w% (File)"Count words in file:"%
文件参数使用如下语法:
%Arg_n"提示"%
或
%(File)Arg_n"提示"%
该语法产生的动作:
接受放置文件作为文件参数。
用户双击动作图标时显示对话框,提示输入文件名。
例如,下列执行字符串对放置文件进行lp-oraw操 作。如果动作由双击图标启动,则出现对话框提示输入文件名。
EXEC_STRING lp -oraw%Arg _1"File to print:"%
对非文件参数使用如下语法:
%"提示"%
或
%(String) "提示"%
由于缺省情况下,引号内的文本被解释为字符串,所以 (String)是 可选项。该语法显示对话框,提示输入非文件数据;如果提示输入文件名就不能用该语法。
例如,下列执行字符串运行xwd命令,并提示输入每个象素要增加的值:
EXEC_STRING xwd -add% "增加值:"% -out%Arg _1"文件名:"%
参数使用如下语法:
%(String)Arg_n%
例如,下列执行字符串用于打印文件,并具有包含文件名的标识,所用命令为lp-t标识文件名。
EXEC_STRING lp -t%(String)Arg_1%% (File)Arg_1"File to print:"%
在执行字符串中指定shell:
/bin/sh -c 'command' /bin/ksh -c 'command' /bin/csh -c 'command'
下列执行字符串要求参数为压缩文件。该动作将文件解压缩,并用lp-oraw命令打印文件。
EXEC_STRING /bin/sh -c 'cat%Arg _1 "File to print:"% | \ uncompress | lp -oraw'
动作有三种处理多文件参数的方法:
该动作可以重复执行,每一参数重复一次。当EXEC_STRING 包含单个文件参数,而且通过在动作图标上放置多个文件来提供多文件参数时, 该动作则对每个文件参数分别运行。
例如,如果为下列动作定义提供多文件参数,则:
ACTION DisplayScreenImage { EXEC_STRING xwud -in%Arg _1% ... }
DisplayScreenImage 动作被重复运行。
采用下列语法惯例之一:
如果需要动作来提示输入文件名,则每个文件参数均使用如下语法:
%(File) "提示"%
对每个参数使用不同的提示字符串。
例如,下列执行字符串提示输入两个文件。
EXEC_STRING xsetroot -cursor% (File)"Cursor bitmap:"% \ %(File)"Mask bitmap:"%
采用下列语法惯例之一:
如要创建接受多重放置文件,或在双击时提示输入单个文件的动作,文件参数使用如下语法:
%Arg_1"提示"%%Args%
此时动作采用如下形式来发布命令:command file 1file 2...。
要接受多重放置文件并以下列形式执行命令行:
commandfile 1file 2...
使用如下语法:
%Args%
该执行字符串对多个文件执行名为 Checkout 的脚本:
EXEC_STRING /usr/local/bin/Checkout \ %Arg_1"Check out what file?"%%Args%
COMMAND动作有以下几种支持桌面窗口的方法。
如果应用程序有自己的窗口,动作可以写成不提供另外的窗口支持。该选项也适用于 运行不需要用户直接输入,也没有输出的 命令。
如果应用程序必须在终端仿真程序窗口内运行,动作可写成打开窗口,然后运行该应用程序。 终端可以有几种选项。
使用WINDOW_TYPE字段来指定动作所要求的窗口支持的类型, 如表 12-2所示。
表 12-2 WINDOW_TYPE 字段和提供的窗口支持
提供的窗口支持 |
|
---|---|
无。如果应用程序有自己的窗口,或命令无可见输出时,使用NO_STDIO选项。 |
|
永久的终端仿真程序窗口。此动作可打开终端窗口,该窗口在用户明确地关闭之前一直开着,用户可以在窗口内输 入数据。此选项用于带有输入,并产生 输出的命令,然后终止(例如,ls目录)的情况。 |
|
临时的终端仿真程序窗口。该动作打开终端窗口,而该窗口在命令完成后立即关闭。用于全屏幕命令(例如,vi)。 |
用动作定义中的TERM_OPTS字段来指定 终端仿真程序的命令行选项。
例如,下列动作提示输入执行主机:
ACTION OpenTermOnSystemUserChooses { WINDOW_TYPE PERM_TERMINAL EXEC_HOST %(String)"Remote terminal on:"% TERM_OPTS -title% (String)"Window title:"% EXEC_STRING $SHELL }
动作所使用的缺省终端仿真程序是dtterm。 可以将其改为另一终端仿真程序。如果没有明确 地指定终端仿真程序,动作将使用缺省终端仿真程序。
动作所使用的终端仿真程序必须有下列命令行选项。
-titlewindow_title
-ecommand
动作使用的缺省终端仿真程序由两类资源决定:
remoteTerminal资源指定远程应用程序所使用的 终端仿真程序。
*remoteTerminal: host:terminal [,host:terminal...]
例如:
*remoteTerminal: sysibm1:/usr/bin/xterm,syshp2:/usr/bin/yterm
限定动作使用某种特定类型的参数可以改善动作的 性能。例如,调用 PostScript 文件的浏览器的动作应限定只使用 PostScript 文件参数;使用此限定后,在指定非 PostScript 文件时,动作将会返回错误信息 对话框。
可以按下列方式来限定动作:
文件参数的数据类型。
文件参数的数量-例如,没有参数与一个或多个参数。这为动作图标提供了不同的放置 和双击性能。
参数的读/写模式。
使用ARG_TYPE字段来指定使动作有效的数据 类型。使用数据的属性名。
可以输入一长串数据类型;不同项之间用逗号隔开。
例如,下列动作定义假定已创建了 Gif 数据 类型。
ACTION Open_Gif { TYPE COMMAND LABEL "Display Gif" WINDOW_TYPE NO_STDIO ARG_TYPE Gif ICON xgif DESCRIPTION Displays gif files EXEC_STRING xgif }
使用ARG_COUNT字段指定动作可接受的参数 个数。有效值为:
*(缺省值)-任意个数的参数。其它值的优先级 都比*高。
n-任意非负整数,包括 0。
>n-多于n个参数。
<n-少于n个参数。
ARG_COUNT的一个用途是可以根据用户的双击 图标操作或在图标上放置一个文件来提供不同的动作图标性能。请参阅下一节,"提供不同的 双击和放置性能"
按此步骤来创建接受放置文件的动作,但当双击动作图标时,并不提示输入文件。
为双击功能创建动作定义。
用ARG_COUNT字段来指定0 参数。 对不接受放置变量的EXEC_STRING,使用语法。
为放置功能创建第二个动作定义。
用ARG_COUNT字段来指定>0 参数。对接受放置文件的EXEC_STRING,使用语法。
例如,假设下列两个命令行能用于启动 名为vedit 的编辑器:
带文件参数启动编辑器,文件以只读方式 打开:
vedit -Rfilename
下列两个动作为名为 Vedit 的动作分别创建放置 和双击功能。因为ARG_COUNT0比放置功能暗示的ARG_COUNT*更 确定,所以在对数据库进行匹配搜索时,第一个动作具有更高的优先 级。
# 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%Arg _1% }
使用ARG_MODE字段来指定参数的读/写模式。 有效值为:
*(缺省值)-任意状态
!w-不可写
w-可写
在讨论动作和远程执行时经常要使用的两个术语:
数据库主机-包含动作定义的系统
执行主机-运行可执行文件的系统
在大多数情况下,动作和应用程序位于同一系统 上;由于动作的缺省执行主机与数据库主机 相同,因此不需要特殊的语法。
但是,当执行主机与数据库主机不同 时,动作定义必须指定执行字符串在哪 个主机上运行。
在不同系统上定位动作和应用程序的能力是 桌面的客户/服务器结构的一部分。关于网络 应用更深层次的讨论,请参阅 "管理应用程序服务"。
使用动作定义的 EXEC_HOST 字段来指定 应用程序的位置。
EXEC_HOST 的有效值为:
%DatabaseHost%-定义了动作的主机。
%LocalHost%-调用了动作的主机(会话服务器)。
%DisplayHost%-运行 X 服务器的主机(不可以是 X 终端)。
%SessionHost%-运行控制性登录管理器的主机。
hostname-命名的主机。当动作只能在一 台特定主机上调用时,使用此值作为环境变量。
%"提示"%-在每次调用动作时,提示用户 输入主机名。
缺省值为 %DatabaseHost%,%LocalHost%。这样,当EXEC_HOST 字段 被省略时,动作首先试图在包含动作定义的主机上 运行命令。如果失败,动作再试图在会话服务器 上运行命令。
在动作和数据类型的定义文件中,可以使用 字符串变量和环境变量。
字符串变量定义只在定义位置至文件尾 之间有效。数据库没有全局的字符串变 量。
如果字符串变量和环境变量同名,字符串 变量的优先级高。
使用如下语法:
set variable_name=value
变量名可以使用任意字母字符和下划线 (_)。 每个变量的定义必须单独占一行。
例如:
set Remote_Application_Server=sysapp set Remote_File_Server=sysdata
使用如下语法:
$[{]variable_name[]
例如:
EXEC-HOST $Remote_Application_Server CWD /net/${Remote_File_Server/doc/project
使用如下语法来引用环境变量:
$[{]variable[].
变量是在装入数据库时展开的(被其实际值多取代)。 如果字符串变量和环境变量同名,字符串变量的 优先级高。
例如,此执行字符串打印具有登录名标识的 文件。
EXEC-STRING lp -t$LOGNAME% (File)Arg_1%
桌面提供 dtaction 命令来从命令行 运行动作。可使用 dtaction 从下列 途径运行动作:
正文
其它动作
终端仿真程序的命令行
dtaction [-user user_name] [-execHost hostname] \ action_name [argument [argument]...]
-user user_name-提供以另一用户身份 运行动作的能力。如果 dtaction 被 user_name 以外的用户调用,将显示提示符指示输入密码。
-execHost hostname-仅适用于 COMMAND 动作; 指定将要运行命令的主机。
argument-动作的参数;通常是文件参数。
dtaction 客户程序还有其它的命令行选项。关于 进一步的信息,请参阅 dtaction(1) 手册页。
将 dtaction 用在动作的 EXEC_STRING 中。
例如,下列动作使用名为"拼写"的内置动作( 该动作在应用程序管理器中的标签是 ``检查拼写'')。 新的动作运行"文本编辑器"和"拼写"动作,并在单独的终端仿真程序 窗口内显示拼写错误。
ACTION EditAndSpell { WINDOW_TYPE NO_STDIO EXEC_STRING /bin/sh -c 'dtaction Spell \ %Arg_1"File:"%; dtpad%Arg _1%'
EXEC_STRING 字段使用如下语法:
EXEC_STRING dtaction -user user_name action_name [file_argument]
新用户 (user_name) 必须通过下列机制之一 才能对本系统进行显示访问:
登录用户的 .Xauthority 文件的可读许可
或者 xhost 许可
例如,下列两个动作提供了成为超级用户, 并编辑 app-defaults 文件的能力。
ACTION AppDefaults { WINDOW_TYPE NO_STDIO EXEC_STRING /usr/dt/bin/dtaction -user root \ EditAppDefaults%Arg _1"File:"% } ACTION EditAppDefaults { WINDOW_TYPE TERMINAL EXEC_STRING /bin/sh -c 'chmod +w%Arg _1%; \ vi%Arg _1%; chmod -w%Arg _1%'
数据类型的搜索路径包括与语言相关的位置。 桌面利用 LANG 值来确定搜索数据类型定义 的位置。
本地化动作的定义必须放置在位于动作搜索 路径内的合适的语言目录中。
缺省的搜索路径为:
个人动作:HomeDirectory/.dt/types
系统范围动作:/etc/dt/appconfig/types/language
内置动作:/usr/dt/appconfig/types/language
在相应的与语言相关的目录中创建文件(例如 在 /etc/dt/appconfig/types/japanese中)。
将动作定义文件复制到与语言相关的配置文件。
例如,可以将动作定义文件从
app_root/dt/appconfig/types/C/file.dt
复制到
app_root/dt/appconfig/types/japanese/newfile.dt
添加 LABEL 字段或修改现有的 LABEL 字段。
LABEL string
"应用程序管理器"和"文件管理器"利用此标记字符串来 标识动作的图标。
在动作定义中本地化任意下列字段:
对于本地化的图标:ICON
对于本地化的 "项目"帮助:DESCRIPTION
对于本地化的提示符:EXEC_STRING
下列信息只适用于支持 ToolTalk 消息的 应用程序。
使用动作类型 TT_MSG
来创建发 送 ToolTalk 消息的动作。
ACTION action_name { TYPE TT_MSG ... }
ToolTalk 的寻址字段总是被设为 TT_PROCEDURE。
ToolTalk 的 disposition 字段的缺省值为静态 消息模式中的指定。
TT_MSG
型动作不支持下列消息:
ToolTalk 面向对象的消息
消息中的上下文参数
表 12-3显示 TT_MSG 动作的关键字及其用法。
表 12-3 TT_MSG 动作关键字及其用法
关键字 |
用法 |
---|---|
TT_CLASS |
定义 ToolTalk 的类消息字段的值 |
TT_SCOPE |
定义 ToolTalk 的范围消息字段的值 |
TT_OPERATION |
定义 ToolTalk 的操作消息字段的值 |
TT_FILE |
定义 ToolTalk 的文件消息字段的值 |
TT_ARGn_MODE |
为 ToolTalk 的第 n 个消息参数定义 模式属性的值 |
TT_ARGn_VTYPE |
定义 ToolTalk 的第 n 个消息参数的 vtype 属性的值 |
TT_ARGn_VALUE |
定义第 n 个消息参数的值 |