限定动作使用某种特定类型的参数可以改善动作的 性能。例如,调用 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-可写