限定操作使用某种特定类型的变量可以改善操作的性能。例如,应限定调用 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 -R filename
下面的两个操作为名为 Vedit 的操作创建拉放和双击功能。当查找数据库以查找匹配项时,第一个操作优先,这是因为,ARG_COUNT 0 比隐含的 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-可写