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

注册应用程序的一般步骤


注意:

有关使用这些步骤来创建应用程序软件包的详细实例,请参阅"创建注册软件包的实例"


  1. 修改应用程序中任何设置字体和颜色的资源。否则, 桌面的动态字体和颜色将不能正常工作。

    请参阅 "第 1 步:修改字体和颜色资源"

  2. 创建应用程序根位置。

    请参阅 "第 2 步:创建桌面应用程序根"

  3. 在应用程序的根下创建目录结构。

    请参阅"第 3 步:创建注册软件包目录"

  4. 创建应用程序的操作和数据类型。

    请参阅"第 4 步:创建应用程序的操作和数据类型"

  5. 将帮助文件放置在相应的目录中。

    请参阅"第 5 步:将"帮助文件"放到"注册软件包"中"

  6. 创建应用程序的图标

    请参阅 "第 6 步:创建应用程序的图标"

  7. 创建应用程序的应用程序组。

    请参阅 "第 7 步:创建"应用程序组""

  8. dtappintegrate 注册应用程序。

    请参阅 "第 8 步:使用 dtappintegrate 注册应用程序"

第 1 步:修改字体和颜色资源


注意:

有关修改应用程序资源的实例,请参阅"创建注册软件包的实例"


桌面提供设置和操作界面字体和窗口颜色的机制。为了使应用程序正确地使用该机制,必须修改应用程序的 app-defaults 文件。

修改字体资源


注意:

本节适用于使用 OSF/Motif 1.2(TM) (或更高版本) 创建的应用程序。"式样管理器"无法为用更低版本的 OSF/Motif 编写的应用程序设置界面字体。


如果使用 OSF/Motif 1.2(TM) (或更高版本) 创建的应用程序没有指定应用程序特定的界面字体,桌面"式样管理器"就会为它设置界面字体。

"式样管理器"提供两种字体:

系统字体-适用于标号、菜单和按钮等系统区

用户字体-适用于文本字段等可编辑区

每种字体的大小都有 7 个级别,在字体对话框中用数字 1 到 7 标记。"式样管理器"的字体通过在 /usr/dt/app-defaults/language /Dtstyle 中的式样管理器资源设置连接到系统中的实际字体。

如果想让应用程序使用"式样管理器"的字体,就应该删除所有指定界面字体的应用程序资源。桌面会自动适当地设置应用程序资源:

FontList-设置为系统字体

XmText*FontList-设置为用户字体

XmTextField*FontList-设置为用户字体

修改颜色资源

"式样管理器"提供动态地更改应用程序颜色能力。应用程序必须是 OSF/Motif 1.1 或 1.2 客户机程序。用其他工具包编写的客户机程序不能动态更改颜色,颜色更改只能在客户机程序重新启动时生效。

使用桌面提供的动态颜色的最简单方法是删除所有用于背景色和前景色的应用程序颜色资源。

第 2 步:创建桌面应用程序根


注意:

有关创建应用程序的桌面应用程序根目录实例,请参阅"创建注册软件包的实例"的第 2 步。


应用程序的注册软件包文件都被集中到一个被称为应用程序根目录或 app_root 的目录下。桌面配置使用的 app_root 目录可以和应用程序的安装目录 app_root 是同一个目录,也可以是另外某个位置。

例如,假设应用程序安装在 /usr/BTE 目录下。此目录可用作桌面配置文件的 app_root 目录。但是,如果要集成一个现有的非桌面智能型应用程序,则需要另外创建桌面 app_root 目录。这样可以防止在更新应用程序时覆写所创建的配置文件。

例如,系统管理员可以创建 /etc/desktop_approots/BTE 作为桌面的 app_root 目录。

第 3 步:创建注册软件包目录


注意:

有关创建应用程序的注册软件包实例,请参阅"创建注册软件包的实例"的第 3 步。


注册软件包是桌面为应用程序提供图形界面所使用的那组桌面配置文件。

注册软件包内容

桌面配置文件包括:

图形 5-4 在应用程序根目录下的注册软件包

Graphic

app_root/dt/appconfig 目录下的配置字段的主要类显示于 表 5-1

表 5-1 配置区的主要类

子目录 

内容 

types

操作和数据类型定义文件 

help

桌面帮助文件 

icons

应用程序的操作和数据类型所使用的位图和像素图图像文件 

appmanager

创建应用程序组的目录和内容 

每个主要类别都有与语言相关文件的子目录。缺省语言的文件放置在 C 目录中。

创建注册软件包

    创建下面的目录。如果要提供与语言相关的配置文件,需要为每种语言创建单独的目录。如果只要提供一种语言,请把文件放置在 C 目录中。

图形 5-5 在应用程序管理器顶层的应用程序组

Graphic

dtappintegrate 工具只对类型帮助图标应用程序管理器目录下的桌面配置文件进行操作。应用程序的二进制可执行文件、app-defaults 和信息种类文件,都单独进行管理。

第 4 步:创建应用程序的操作和数据类型


注意:

有关创建应用程序操作和数据类型的实例,请参阅"创建注册软件包的实例"的第四步。


操作和数据类型为应用程序提供用户界面。

应用程序所需的操作和数据类型

典型的应用程序需要下面的操作和数据类型定义:

操作和数据类型定义配置文件的位置

操作和数据类型在配置文件中定义。命名包含操作和数据类型定义的文件的唯一要求是要使其带有 .dt 后缀。按照惯例,可以将文件命名为 action_name .dtapplication_name .dt

将包含操作和数据类型的文件放置在应用程序根目录下的 app_root /dt/appconfig/types/language 目录中。缺省的 languageC

图形 5-6 操作和数据类型定义文件

Graphic

创建操作和数据类型的方法

可以采用两种方法为应用程序创建操作和数据类型:

用创建操作工具来创建操作和数据类型

下面的过程采用"创建操作"公用程序为应用程序创建操作和数据类型。

有关"创建操作"的详细信息,请使用它的联机帮助或参阅 第 11 章,用创建操作命令来创建操作和数据类型

  1. 打开 Desktop_Apps 应用程序组,双击"创建操作"。

  2. 使用"创建操作"为应用程序及其数据类型创建操作和数据类型定义。

    由"创建操作"创建的配置文件会写入 HomeDirectory /.dt/type/ action_name .dt。 其操作文件 (与操作同名的可执行文件) 放置在起始目录中。

  3. 用起始目录中创建的操作文件测试操作。

  4. 将操作定义文件 HomeDirectory /.dt/type/ action_name .dt 复制到 app_root /dt/appconfig/types/language 目录下

  5. 创建应用程序组目录之后 (请参阅"第 7 步:创建"应用程序组"") ,把操作文件 HomeDirectory/ action_name 复制到 app_root /dt/appconfig/appmanager/language/appgroup_name 目录下。

手动创建操作和数据类型

    为应用程序创建包含操作和数据类型定义的配置文件。

操作和数据类型定义文件的命名必须遵循命名惯例 name .dt

可以将操作和数据类型的所有定义放置在一个文件中,也可以分别放置在多个文件内。每个文件使用的文件名都要使系统管理员容易将其与应用程序联系起来。

操作和数据类型名称必须是单词 (没有内嵌的空格)。可以使用下划线字符。 按照惯例,操作或数据类型名的第一个字母要大写。不要使用现有的操作名或文件名。要使用便于高级用户和系统管理员与您的应用程序联系起来的名称。

如果想让应用程序的图标所标记的名称与操作名不同,请让操作定义中包括 LABEL 字段。

有关创建操作和数据类型详细信息,请参阅:

第 5 步:将"帮助文件"放到"注册软件包"中


注意:

有关在注册软件包加入帮助文件的实例,请参阅"创建注册软件包的实例"的第 5 步。


如果应用程序包含桌面帮助卷 (用桌面的帮助开发者工具包创建的帮助卷),帮助卷的主文件 (*.sdl) 就应该放在 app_root /appconfig/help/language目录中。

帮助文件使用的图形通常放置在一个图形子目录中。 所有图形必须始终放在创建帮助卷时所建的与主帮助卷 (*.sdl) 文件相关的目录下。

在应用程序不提供帮助卷的情况下,如果有帮助开发者工具包,您就可以自行创建一个帮助卷。

帮助卷有两个级别的集成:

第 6 步:创建应用程序的图标


注意:

有关创建应用程序图标文件的实例,请参阅"创建注册软件包的实例"的第 6 步。


桌面为操作、数据类型和应用程序组提供缺省图标。但是,您可能需要为应用程序创建专用图标。

图标放置在 app_root /dt/appconfig/icons/language 目录中。

桌面所需图标

应用程序在桌面上使用下面的图标图像:

表 5-2 图标文件的命名惯例

大小 

像素维数 

位图名 

像素图名 

小 

16 乘 16 

basename .t.bm

basename .t.pm

中 

32 乘 32 

basename .m.bm

basename .m.pm

大 

48 乘 48 

basename .l.bm

basename.l.pm

如果未提供位图文件,桌面会将像素图的颜色规范映射为黑白两色。但是这种映射可能不会产生所期望的效果。

有关图标的详细信息,请参阅 "图标图像文件"

第 7 步:创建"应用程序组"


注意:

有关创建应用程序组的实例,请参阅"创建注册软件包的实例"的第 7 步。


应用程序的操作和数据类型定义一经创建后,还必须创建用于产生用户实际所见对象应用程序组及其内容的配置文件。

应用程序组是位于应用程序管理器顶层的目录 (请参阅图形 5-1)。

创建应用程序组分为三步:

创建应用程序组的目录

为创建应用程序组,需要在 appmanager 下的注册软件包中创建目录,如图形 5-7所示。

图形 5-7 appmanager 目录

Graphic

应用程序组名

图形 5-7 中的 <appgroup_name> 是应用程序组名。

图形 5-8 应用程序组名 (<appgroup_name>)

Graphic

应用程序组名可以是任何合法的文件 (目录) 名。请使用能描述应用程序功能的名称。

为应用程序组配置专用图标

虽然桌面可以为应用程序组提供缺省图标。 但是,您可能想提供定制图标。

如果想为应用程序组提供专用图标,则必须创建:

图形 5-9 应用程序组如何获得专用图标

Graphic

必须为应用程序组数据类型创建"打开"和"打印"操作:

ACTION Open
 {
   ARG_TYPE      Media_ToolsAppGroup
   TYPE          MAP
   MAP_ACTION    OpenAppGroup
 }
ACTION Print
 {
   ARG_TYPE      Media_ToolsAppGroup
   TYPE          MAP
   MAP_ACTION    PrintAppGroup
 }

OpenAppGroup 和 PrintAppGroup 操作是在 /usr/dt/appconfig/ types/language /dtappman.dt 中定义的内置操作。

创建应用程序组的内容

应用程序组中最重要的一项是启动应用程序的图标 (操作图标)。如果应用程序组包括一组应用程序,则通常每个应用程序都有操作图标。

除一个或多个操作图标外,应用程序组还可以包括:

创建操作文件 (应用程序图标)

应用程序组应该包含启动应用程序的图标。如果应用程序组提供一组应用程序,则每个程序都应该有图标。这些图标称作应用程序图标操作图标,因为它们代表所蕴含的操作。

操作图标是通过创建与它将运行的操作同名的可执行文件来创建的:

app_root /dt/appconfig/appmanager/appgroup_name/ action_name

这个文件被称为操作文件,因为它的目的是创建所蕴含的操作的视觉表示形式。

例如,如果已经创建了运行 BestTextEditor 应用程序的,名为 BestTextEditor 的操作,则应该创建名为 BestTextEditor 的可执行文件。在"文件管理器"和应用程序管理器中,操作文件会使用操作定义中指定的图标图像。

图形 5-10 说明操作定义、操作文件和"应用程序管理 器"窗口实际入口之间的关系。

图形 5-10 应用程序图标是应用程序组中的文件

Graphic

自述文件

桌面提供 README 数据类型供应用程序的 README 文件使用。请使用下列命名惯例之一:

创建专用前面板

绝大多数情况下,不必提供"前面板"的控制定义;用户可以通过在子面板的"安装图标"控制上放置操作图标,来将应用程序添加到"前面板"中。

如果想使用户可自行安装与操作图标性能不同的控制,例如,该控制监视一个文件并且随被监视文件的改变来改变外观,则可能需要创建包含应用程序控制定义的前面板配置文件。

"前面板"配置文件放置在 app_root /dt/appconfig/types/language 目录中。命名惯例是name.fp

提供包含控制定义的配置文件后,用户可以通过在子面板的"安装图标"控制上放置 *.fp 文件来将控制添加到子面板。

例如,下面的定义可以放置在应用程序组的"前面板"配置文件中。如果用户将这个文件放置在子面板的"安装图标"控制上,子面板中会创建运行 BestTextEditor 应用程序的单一实例的控制。如果 BestTextEditor 已在运行,该窗口会跳到当前工作区的窗口堆叠的顶部。

CONTROL BestTextEditorControl
 {
   TYPE     icon
   ICON     BTEFPanel
   PUSH_RECALL       True
   CLIENT_NAME       BTEd
   PUSH_ACTION       BTEditor
   DROP_ACTION       BTEditor
   HELP_STRING       Starts the BestTextEditor application.
 }

有关创建"前面板"配置文件的更多信息,请参阅:

第 8 步:使用 dtappintegrate 注册应用程序


注意:

有关注册应用程序的实例,请参阅"创建注册软件包的实例"的第 8 步。


在应用程序的根目录下一经创建注册软件包后, 即可开始实际的应用程序注册。

应用程序的注册在注册软件包和位于桌面查找路径内的目录之间建立链接 (请参阅 "dtappintegrate 如何集成应用程序")。

用 dtappintegrate 注册应用程序

如果应用程序是桌面智能型的,dtappintegrate 一般作为安装过程的最后一步自动执行。如果它没有自动执行,或者已创建了配置文件以集成非桌面智能型的应用程序,就可以手动运行 dtappintegrate

  1. 以超级用户登录。

  2. 运行下面的命令:

     /usr/dt/bin/dtappintegrate -s  app_root
    

    其中 app_root 是桌面应用程序的根目录。有关详细信息,请参阅 dtappintegrate(1) 手册页。

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

  4. 确认应用程序注册正确:

    1. 显示应用程序管理器的顶层。新的应用程序组应出现在应用程序管理器中。

    2. 打开应用程序组,双击操作图标。

dtappintegrate 的语法和选项

dtappintegrate -s app_root [-ttarget_path ] [-llanguage ] [-u]

-s app_root

必要参数,指定已安装应用程序的所在的应用程序根目录。 

-t target_path

可选参数,缺省为系统位置 /etc/dt/appconfig。指定桌面配置文件链接的位置。指定桌面配置文件链接到哪个位置。必须使用位于应用程序的查找路径中的某个位置。

-l language

可选参数,缺省设置为所有语言。指定集成哪一个与语言相关的桌面配置文件。 

-u

可选参数,解除应用程序的集成,删除集成期间建立的所有链接。 

dtappintegrate 如何集成应用程序

dtappintegrate 的功能是在已安装的文件和桌面查找配置文件的位置之间建立链接。

操作和数据类型

dtappintegrate 创建从注册软件包内的操作和数据类型定义文件到操作数据库帮助查找路径中的全系统目录的符号链接。此操作是通过创建从

app_root/dt/appconfig/types/language/*.dt

/etc/dt/appconfig/types/language/*.dt 的链接来完成的。

帮助信息文件

dtappintegrate 创建从注册软件包内的帮助文件到帮助查找路径中的全系统目录的符号链接。此操作是通过创建从

app_root/dt/appconfig/help/language/help_file.sdl

/etc/dt/appconfig/help/language/help_file.sdl 的链接来完成的。

图标文件

dtappintegrate创建从注册软件包内的图标文件到图标查找路径中的全系统目录的符号链接。此操作是通过创建从

app_root/dt/appconfig/types/language/*.dt

/etc/dt/appconfig/types/language/*.dt 的链接来完成的。

应用程序组

为把应用程序组放到应用程序管理器的顶层,dtappintegrate 在注册软件包内的应用程序组目录和应用程序查找路径中的全系统目录之间创建符号链接。这是通过创建从目录

app_root /dt/appconfig/appmanager/language/appgroup_name

 /etc/dt/appconfig/appmanager/language/appgroup_name 的链接来完成的。