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

手动创建动作:一般步骤

本节介绍如何为动作定义创建配置文件。

动作的配置文件

包含动作定义的配置文件必须满足下列要求:

关于更改动作/数据类型搜索路径的信息,请参阅"设置搜索路径的值"

手动创建动作

  1. 打开现有的数据库文件或创建新文件。

    请参阅上一节"动作的配置文件"

  2. 使用如下语法创建动作的定义:

    ACTIONaction_name
      {
       TYPE  action_type
            action_field
       ...
      }

    其中:

    action_name-运行动作所用的名称。

    action_type-COMMAND(缺省值)、MAP 或 TT_MSG

    action_field-该类 动作所需或任选的字段之一。所有字段都由关键字和值组成。

    本章讨论多种动作字段。关于动作字段的进一步信息,请参阅dtactionfile(4) 的手册页。

  3. 保存文件。

  4. 如果动作图标需要专用图像,请自己为动作创建图标。图标的缺省位置为:

    • 个人图标:HomeDirectory/.dt/icons

  5. 在 Desktop_Tools 应用程序组中双击"重新装入动作"。

  6. 为动作创建动作文件。该文件在"文件管理器"或"应用程序管理器"中创建代表动作的图标。(如果 动作被写成启动应用程序,则该图标被称为应用程序图标。)

    要创建动作文件,需要创建与action_name同 名的可执行文件。该文件可位于任何具有可写许可的目录内。可创建任意多个动作文件。

创建 COMMAND 动作的示例

下列步骤在远程系统 AppServerA上创建了启动传真应用程序的个人动作。启动传真应用程序的命令 是:

/usr/fax/bin/faxcompose [filename]
  1. 创建HomeDirectory/.dt/types/Fax.dt 文件。

  2. 在文件内写入下列动作定义:

    ACTION FaxComposer
        {
          TYPE      COMMAND
          ICON      fax
          WINDOW_TYPE    NO_STDIO
          EXEC_STRING    /usr/fax/bin/faxcompose -c%Arg_1%
          EXEC_HOST         AppServerA
          DESCRIPTION     Runs the fax composer
    
         }
    	
    

    其中WINDOW_TYPEEXEC_STRING 描述 了动作的特性。

    WINDOW_TYPE-NO_STDIO 关键字指定该动作不一定非在终端仿真程序窗口中运行不可。

    请参阅"为动作指定窗口支持"

    EXEC_STRING-语法%Arg _1%接受放置的文件。如果双击动作图标,将打开空的传真创作器窗口。

    请参阅"为 COMMAND 动作建立执行字符串"

  3. 保存文件。

  4. 用"图标编辑器"在HomeDirectory/.dt/icons 目录 中创建下列图标图像文件:

    • fax.m.pm, 大小为 32 乘 32 象素

    • fax.t.pm, 大小为 16 乘 16 象素

  5. 在 Desktop_Tools 应用程序组中双击"重新装入动作"。

  6. 在具有可写许可的目录中创建名为FaxComposer 的可执行文件(例如, 起始目录)。

创建 MAP 动作的示例

假设绝大部分传真文件用"文本编辑器"创建,而且属于数据类型 TEXTFILE (文件名为 *.txt)。

下列步骤在数据类型的"选定"菜单中加入"传真"目录项。

  1. 打开在上例中创建的HomeDirectory/.dt/types/Fax.dt 文件。

  2. 在文件中加入下列映射动作的定义:

    ACTION Fax
      {
       ARG_TYPE      TEXTFILE
       TYPE       MAP
       MAP_ACTION     FaxComposer
      }
  3. 保存文件。

  4. 将 TEXTFILE 的数据属性定义从/usr/dt/appconfig/types/language/dtpad.dt 复制到新的文件HomeDirectory/.dt/types/textfile.dt。在ACTIONS字段中加入"传真"动作。

    DATA_ATTRIBUTES TEXTFILE
      {
       ACTIONS     Open,Print,Fax
       ICON       Dtpenpd
       ...
      }
  5. 保存文件。

  6. 打开应用程序管理器,在 Desktop_Tools 应用程序组中双击"重新装入动作"。

重新装入动作/数据类型数据库

为使新的或经过编辑的动作定义有效, 桌面必须重新读取数据库。

    打开 Desktop_Tools 应用程序组,双击"重新装入动作"。

    或者,执行下列命令:

    	dtaction ReloadActions

    ReloadActions 是图标的标签为"重新装入动作"的动作的名称。

    当用户进行下列操作时,动作数据库也会被重新读取:

    • 登录

    • 重新启动工作区管理器

    • 在"创建动作"窗口的"文件"菜单内选择"保存"来保存动作

为动作创建动作文件(图标)

动作文件是在"文件管理器"或"应用程序管理器"中 提供动作的可视表象的文件。

图形 12-1 应用程序管理器中的动作文件(动作图标)

Graphic

由于动作文件的图标代表动作,因此有时也被称为动作图标。如果其所蕴含的动作启动 应用程序,则动作文件图标也被称为应用程序图标

双击动作图标来运行动作。动作图标同时也可能是放置区。

创建动作文件(动作图标)

    创建与动作同名的可执行文件,文件的内容 无关紧要。

例如,动作的定义如下:

ACTIONMyFavoriteApp
 {
   EXEC_STRING      Mfa -file%Arg _1%
   DESCRIPTION      Runs MyFavoriteApp
   ICON          Mfapp
 }

此时,动作文件是名为MyFavoriteApp的可执行文件。 在"文件管理器"和"应用程序管理器"中,MyFavoriteApp 文件使用的图标图像名为Mfapp.size.type。双击MyFavoriteApp 的图标,此时会运行动作的执行字符串,并且图标的"项目"帮助就是DESCRIPTION字段所包含的内容("运行MyFavoriteApp")。

动作标签

如果动作定义中包含LABEL字段,"文件管理器"和"应用程序 管理器"中动作文件的标签将不与文件名 (action_name) 相同,而是上述字段中定义的标签。例如,如果动作定义中包含下列定义:

ACTIONMyFavoriteApp
 {
   LABEL      Favorite Application
   ...
 }

此时动作图标的标记为"喜爱的应用程序"。

指定"动作所用的图标图像"

ICON字段来指定"文件管理器"和 "应用程序管理器"中所使用的图标是为动作创建的动作图标。

如果未指定图标,系统将使用缺省的动作图标的图像文件/usr/dt/appconfig/icons/language/Dtactn.*

图形 12-2 缺省的动作图标图像

Graphic

缺省的动作图标可使用下列资源加以更改:

*actionIcon:icon_file_name

其中icon_file_name可以是基本名称或绝对路径。

ICON字段可以取下列值:

表 12-1 动作图标的图标名和图标大小

象素大小 

位图名 

象素图名 

48 乘 48 

名称.l.bm

名称.l.pm

32 乘 32 

名称.m.bm

名称.m.pm

16 乘 16 

名称.t.bm

名称.t.pm

修改现有动作的定义

可修改系统内任何可用的动作,包括 内置动作。


注意:

修改内置动作数据库时必须小心,因为内置动作是为配合桌面应用程序工作而设计的。


  1. 找到需要修改的动作定义。

    动作定义的缺省位置是:

    • 内置动作:/usr/dt/appconfig/types/language

    • 系统范围动作:/etc/dt/appconfig/types/language

    • 个人动作:HomeDirectory/.dt/types

      系统也可能包括另外一些位置。要查看系统中所用动作 定义位置的列表,键入下列命令:

      	dtsearchpath -v 
      

      系统所用目录列在DTDATABASESEARCHPATH下。

  2. 如果必要的话,将动作定义的文本复制到下列目录中新的或现有的文件中:

    • 系统范围定义:/etc/dt/appconfig/types/language

    • 个人定义:HomeDirectory/.dt/types

      由于不应在/usr/dt/appconfig/types/language 目录中编辑文件,所以必须复制内置动作的定义。

  3. 编辑动作的定义。

  4. 编辑完毕后请保存文件。

  5. 在 Desktop_Tools 应用程序组中双击"重新装入动作"。

动作定义中的优先级

当用户调用动作时,系统在数据库中搜索匹配的动作名。如果存在多个动作,系统则利用 优先级规则来决定使用哪个动作。