Solaris 公用桌面环境:高级用户和系统管理员指南

限定操作使用某些变量

限定操作使用某种特定类型的变量可以改善操作的性能。例如,应限定调用 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 的一个用途是提供不同的操作图标性能,取决于用户是双击图标还是在图标上拉放一个文件。请参见下一节,“提供不同的双击和拉放性能”。

提供不同的双击和拉放特性

按此步骤来创建接受拉放文件的操作,但当双击操作图标时,并不提示输入文件。

  1. 为双击功能创建操作定义。

    使用 ARG_COUNT 字段指定 0 变量。为 EXEC_STRING 使用的语法不接受拉放文件。

  2. 为放置功能创建第二个操作定义。

    使用 ARG_COUNT 字段指定 0 变量。 为 EXEC_STRING 使用的接受拉放文件。

    例如,假设下面的两个命令行能用于启动名为 vedit 的编辑器:

    • 不带文件变量启动编辑器:

      	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—可写