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