动作是所写的指令,用于使桌面任务自动化,如运行应用程序和打开数据文件。动作与应用程序宏或编程函数十分相似。每个动作都具有用于运行该动作的名称。
一旦定义了动作,就可以用该动作来对桌面用户接口进行适配,从而使任务更易于完成。桌面提供了将用户接口组件,例如图标、"前面板"控制和菜单项,附加到动作的能力。
例如,"应用程序管理器"中的 Desktop_Tools 应用程序组包含了启动各种实用程序的图标。
双击其中的每个图标都运行一个动作。例如,当用户双击标记为 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 文件的数据类型定义里被指定的。该定义位于配置文件 /usr/dt/appconfig/types/language/xclients.dt中。
DATA_ATTRIBUTES XWD { ACTIONS Open,Print ICON Dtxwd ... }
XWD 数据类型,以及与其相关联的"打开"和"打印"动作,在 "数据类型如何将数据文件连接到动作"中有解释。
考虑在 Desktop_Tools 应用程序组中的"Xwd 显示"图标。双击此图标运行 X 客户程序 xwud。但是,此图标并不直接表示实际的 xwud 可执行文件 /usr/bin/X11/xwud。
标记为"Xwd 显示"的图标出现在应用程序组中,这是因为有一个文件在名为 Xwud (请参阅 图形 10-3)的目录中。此文件表示一个蕴含的动作,其名称与文件相同-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:"% 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 X 客户程序。
LABEL 字段指定了应用程序图标的标签。
DESCRIPTION 字段描述了当用户请求"项目"帮助时所 显示的文本。
Xwud 应用程序图标使用缺省的动作图标图象,因为其动作定义中不包含 用来指定不同图像的 ICON 字段。
相反,标记为"压缩文件"的图标使用不同的图标图象,因为它所蕴含的动作定义中包含 ICON 字段:
例如:
ACTION Compress { LABEL Compress File ICON Dtcmprs ... }
Xwud 动作被称作命令动作,因为其定义中包含了要 执行的命令 (EXEC_STRING)。在动作定义中的 TYPE 字段 定义动作的类型。
最初,"Xwd 显示"图标出现在 Desktop_Tools 应用程序组中。 但是,在任何具有写许可的目录中创建该动作图标的附加副本。 只要 Xwud 动作定义是数据库的一部分, 任何创建的名为 Xwud 的可执行文件都将成为表示该动作的动作文件,而且其在"文件管理器"或"应用程序管理器"中的图标 也可以用来运行该动作。
命令的参数(通常是一个文件)是命令执行的 对象。可以编辑动作来接受文件参数。
例如, Xwud 动作的 EXEC_STRING 字段指定了需要的 文件参数:
EXEC_STRING /usr/bin/X11/xwud -noclick -in \ %(File)Arg_1" 要显示的 Xwd 文件:"%
术语 Arg 代表词语 argument. 。语法 Arg_1 是指第一个参数,(File) 是指动作把 参数当文件来处理。
提供文件参数的最简单的办法是将 数据文件放置到应用程序的图标上。桌面确定所放置的文件 的路径,并且将它替换到命令行中,代替 % symbols 之间的文本。 (%(File)Arg_1"要显示的 Xwd 文件:"%)。这样,所执行的命令为:
/usr/bin/X11/xwud -noclick -in file_path
当用户双击应用程序图标时,桌面从 EXEC_STRING 判断需要的文件参数,并且显示对话框,提示用户输入文件名或路径。如果是 Xwud 动作,其提示为:
要显示的 Xwd 文件:
用户提供的文件名和路径会被作为文件参数使用。
除启动应用程序之外,在整个桌面范围内,动作还用于创建以下功能:
"前面板"
"前面板"控制的定义包括一些字段,用以指定当用户单击控制或放置文件在其上时运行的动作。 关于进一步信息,请参阅 "定义前面板控制"。
菜单
"窗口"和"工作区"菜单定义的语法允许通过菜单项指定要执行的动作。关于进一步信息,请参阅 "工作区管理器菜单" 和 dtwmrc(4)手册页。
应用程序之间的通信
应用程序可以设计成使用名为 ToolTalk message (TT_MSG) 的特殊类型的动作来发送和接收消息。 TT_MSG 动作在桌面的开发者环境文档中有描述。