本节介绍如何为操作定义创建配置文件。
包含操作定义的配置文件必须满足下面的要求:
文件必须使用命名惯例name.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 。缺省的 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 是图标的标记为"重新装入操作"的操作的名称。
当用户进行下面的操作时,操作数据库也被重新读取:
登录
重新启动"工作区管理器"
从"文件"菜单选择"保存"在"创建操作"窗口保存操作
操作文件是为在"文件管理器"或"应用程序管理器" 中提供操作的可视表示而创建文件。
由于操作文件的图标表示一个操作,因此有时也被称为操作图标。如果其潜在的操作启动应用程序,则操作文件图标也被称为应用程序图标。
双击操作图标来运行操作。操作图标同时也可能是拉放区。
例如,操作的定义如下:
ACTION MyFavoriteApp { EXEC_STRING Mfa -file%Arg _1% DESCRIPTION Runs MyFavoriteApp ICON Mfapp }
此时,操作文件是名为 MyFavoriteApp 的可执行文件。在"文件管理器"和"应用程序管理器"中,MyFavoriteApp 文件将使用图标图像 Mfapp.size.type。双击 MyFavoriteApp 的图标就运行该操作的执行字符串,图标的"针对项"帮助则为 DESCRIPTION 字段 ("运行 MyFavoriteApp") 的内容。
如果操作定义包含 LABEL 字段,该操作文件就在"文件管理器"和"应用程序管理器"中加上该字段内容的标号而不是文件名 (action_name)。例如,如果操作定义中包含下面的定义:
ACTION MyFavoriteApp { 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 |
name .l.bm |
name .l.pm |
32 乘 32 |
name .m.bm |
name .m.pm |
16 乘 16 |
name .t.bm |
name .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_COUNT 0 优先,双击 EditGraphics 操作图符启动 EditGraphics-2。当提供了 XWD 类型的文件变量时,使用 EditGraphics-1,因为它指定了 XWD ARG_TYPE。对于所有其他文件的变量,则使用 EditGraphics-3。