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

注册应用程序的一般步骤


注意:

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


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

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

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

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

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

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

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

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

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

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

  6. 创建应用程序的图标

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

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

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

  8. dtappintegrate 注册应用程序。

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

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


注意:

关于修改应用程序资源的示例,请参阅"创建注册包的示例"的第 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 配置区的主要类别

子目录 

内容 

类型

动作和数据类型定义文件 

帮助

桌面帮助文件 

图标

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

应用程序管理器

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

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

创建注册包

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

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

Graphic

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

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


注意:

关于创建应用程序动作和数据类型的示例,请参阅"创建注册包的示例"的第 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目录中。

帮助文件使用的图形通常放置在graphics子目录中。所有图形必须放置在与创建帮助卷时产生的主帮助卷文件 (*.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

"自述"文件

桌面提供"自述"数据类型供应用程序的"自述"文件使用。请从下列命名惯例中选用一种:

创建特定的前面板

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

如果想使用户可自行安装与动作图标特性不同的控制,可能需要创建包含应用程序控制定义的前面板配置文件,其中-例如,如果该控制需要监视文件,并且在被监视文件 变化时更改它的外观。

"前面板"配置文件放置在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 -sapp_root
    

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

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

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

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

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

dtappintegrate 的语法和选项

dtappintegrate -sapp_root
[-ttarget_path] [-llanguage
] [-u]

-sapp_root

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

-ttarget_path

可选参数,缺省为系统设置/etc/dt/appconfig。指定桌面配置文件链接的位置,注意该位置必须位于应用程序的搜索路径中。

-llanguage

可选参数,缺省设置为所有语言。指定所要集成的指定语言的桌面配置文件。 

-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/icons/language/icon_files

/etc/dt/appconfig/icons/language/icon_files

应用程序组

为把应用程序组放置到应用程序管理器的顶层,dtappintegrate 在注册包内的 应用程序组目录和沿着应用程序搜索路径的 系统目录之间创建符号链接。该过程建立的链接从目录

app_root/dt/appconfig/appmanager/language/appgroup_name

/etc/dt/appconfig/appmanager/language/appgroup_name