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

管理颜色

本节描述:

颜色调色板

调色板由一组颜色集组成。当前调色板所使用的颜色集显示在"式样管理器颜色"对话框中

每个调色板都对应一个文件。paletteDirectories 资源 指定了包含调色板文件的目录。缺省情况下,此资源包含:

颜色集

在"式样管理器颜色"对话框中,当前调色板中的每个颜色集由一个颜色按钮代表。每种颜色由一个颜色集 ID-从 1 到 8 的数字,来标识。

图形 17-1 HIGH_COLOR 的颜色集 ID 的值

Graphic

每个颜色集最多由五种颜色组成。每个颜色按钮显示颜色集的背景颜色。每个颜色集中五种颜色代表下列显示组件资源:

前景-应用程序窗口或窗框的前景。它通常是黑色或白色。这一般是用于窗口和标题内的文本。

背景-应用程序或窗框的背景。

topShadowColor-应用程序控制(象按钮)和窗口框架的左上bevel(斜面)的颜色。

bottomShadowColor-应用程序控制(象按钮)和窗口框架的右下bevel(斜面)的颜色。

selectColor-指示某些控制活动的活跃状态的颜色,象活动的切换和按钮。

每个调色板所使用的颜色集的数目取决于 colorUse 资源,用户可以使用"式样管理器所用颜色数目"对话框来设置其数目。

指定颜色值

在向其调色板文件写入颜色信息时,"式样管理器"使用 RGB 值。RGB 数字的语法为:

#RedGreenBlue

RedGreenBlue 是十六进制数,每个 1 到 4 位长,这表示所使用的颜色的数目。每个颜色必须具有相同的位数。这样,有效的颜色值由 3、6、9 或 12 个十六 进制位。

例如,白色可用下列任一方式来指定:

#fff #ffffff #fffffffff #fffffffffffff 

如果直接设置颜色资源,可使用颜色名称或 RGB 值。文件 /usr/lib/X11/rgb.txt 列出了全部已命名的颜色。

颜色集如何映射到资源

桌面通过资源将颜色集映射到各种显示单元,并作出如表 17-5中所示的指定。

表 17-5 将颜色集映射到资源的

资源 

显示单元 

activeColorSetId

活动窗框颜色

inactiveColorSetId

非活动窗框颜色

textColorSetId

文本输入区

primaryColorSetId

应用程序的主背景区

secondaryColorSetId

应用程序的菜单条、菜单、和对话框 

这些资源将颜色集 ID 作为它们的值。当使用"式样管理器"选定新的调色板时,带有颜色集 IDs 的彩色显示单元允许单元动态地更改为新的颜色方案。

可将这些资源用于个人应用程序。例如,下行显示如何通过使用颜色集 8 作为窗口的主颜色,将所有的 dtterm 窗口可视地分组。

dtterm*primaryColorSetId:   8

缺省颜色集的指定

用于显示单元的颜色集 IDs 取决于 在"式样管理器"中设置的颜色集数目:

表 17-6 显示高显色(8 个颜色集)的颜色集 IDs-"式样管理器"设置为"桌面使用更多颜色"。

表 17-6 高显色

颜色集 ID 

显示单元 

活动窗框颜色 

非活动窗框颜色 

未用(缺省情况下) 

文本输入区 

应用程序的主背景区 

应用程序的菜单条、菜单和对话框 

缺省情况下未用 

"前面板"背景 

表 17-7 显示中显色(4 个颜色集)的颜色集 IDs-"式样管理器"设置为"应用程序使用更多颜色"。

表 17-7 中显色

颜色集 ID 

显示单元 

活动窗框颜色 

非活动窗框颜色 

"应用程序"和"前面板"背景颜色 

文本输入区 

表 17-8 显示低显色(2 个颜色集)的颜色 IDs-"式样管理器"设置为"应用程序使用大多数颜色"。

表 17-8 低显色

颜色集 ID 

显示单元 

活动窗框,工作区选择按钮 

所有其它显示单元  

用式样管理器控制颜色

可以通过"式样管理器"动态地更改桌面应用程序和其它合作应用程序的颜色。由"式样管理器"设置的前景和背景颜色可用于非合作应用程序。

对于客户程序而言,要响应"式样管理器"的颜色更改,客户程序必须在使用桌面 Motif 库。用其它工具包写入的客户程序无法动态地更改颜色来响应"式样管理器"的更改。 对于客户程序的颜色更改只有在重新启动客户程序后才生效。

客户程序必须未应用其它专用的颜色资源。这包括指定用户的资源、appdefaults(应用缺省)和在应用程序中内置的资源。

客户程序可指定 primaryColorSetIdsecondaryColorSetId 资源在桌面调色板中使用某些颜色。

式样管理器所用的颜色数目

"式样管理器"所使用的颜色数取决于下列资源的值:

colorUse-配置桌面所使用的颜色数

shadowPixmaps-指示桌面用象素图来替换 这两种阴影颜色

foregroundColor-指定前景颜色是否动态地更改

dynamicColor-当切换调色板时控制 应用程序是否更改颜色

表 17-9 列出由桌面分配的最大颜色数。

表 17-9 桌面颜色的数目

显示 

最大颜色数 

数字采自 

B_W 

黑色和白色 

LOW_COLOR 

12 

两个颜色集乘以五种颜色,再加上黑色和白色 

MEDIUM_COLOR 

22  

四个颜色集乘以五种颜色,再加上黑色和白色 

HIGH_COLOR 

42 

八个颜色集乘以五种颜色,再加上黑色和白色 

要决定最大颜色数:

  1. 将调色板中颜色集的数目与每个颜色集中的颜色数相乘。

  2. 加上 2(代表黑色和白色)。

    但是,在下列配置情况下,在调色板中将只有十种颜色:四个颜色集乘以每个集中的两种颜色 (backgroundselectColor),再加上黑色和白色:

    *colorUse:	MEDIUM_COLOR *shadowPixmaps: 	True *foregroundColor:	White

    注意:

    多重颜色图标使用 14 种附加颜色。


colorUse 资源

colorUse 资源的缺省值为 MEDIUM_COLOR。此资源的值影响在调色板中使用的颜色集的数目。其它资源影响用于制造阴影的颜色数。colorUse 资源的值也影响多重颜色图标的使用。

值 

描述 

B_W 

"黑色和白色""式样管理器"将"显示"设置为 1 到 3 个颜色平面颜色集的数目:2 最大颜色数: 2 缺省颜色数:2 无多重颜色图标 

LOW_COLOR 

"应用程序使用大多数颜色""式样管理器"将"显示"设置为 4 到 5 个颜色平面颜色集的数目:2 最大颜色数:12 缺省颜色数:12 无多重颜色图标 

MEDIUM_COLOR 

"应用程序使用更多颜色""式样管理器"将"显示"设置为 6 个颜色平面 颜色集的数目:4 最大颜色数:22 缺省颜色数:22 多重颜色图标 

HIGH_COLOR 

"桌面使用更多颜色""式样管理器"将"显示"设置为 7 个或更多个颜色平面颜色集的数目:8 最大颜色数:42 缺省颜色数:42 多颜色图标 

缺省 

桌面为那个显示选择正确的值。(要减少桌面用于高显色显示的颜色数,请将缺省的colorUse 资源设置成 MEDIUM_COLOR。)

shadowPixmaps 资源

shadowPixmaps 资源指示桌面用象素图来代替两个阴影颜色。这些象素图将黑色或白色与背景颜色相混合,以便模拟顶部或底部阴影值。这将需要的颜色数减少了两个,因为不需要为阴影 颜色分配颜色单元。

值 

描述 

真 

桌面创建 topShadowPixmapbottomShadowPixmap 来代替阴影颜色使用。

假 

使用调色板的 topShadowColorbottomShadowColor

shadowPixmaps 的缺省值取决于所具有的 colorUse 资源和显示器的硬件支持。

foregroundColor 资源

foregroundColor 资源指定在调色板中前景是如何配置的。

设置 

结果 

白色 

前景设置为白色。 

黑色 

前景设置为黑色。 

动态(缺省) 

前景被动态地设置为黑色或白色,这取决于 background的值。例如,白色字母在黄色背景上很难阅读,所以系统选择黑色。

如果 foregroundColor 被设置为黑色或白色,则颜色集中的颜色数将减少一个,并且前景将不随背景颜色的更改而更改。

foregroundColor 的缺省值是"动态", colorUse 的值是 B_W 的位置除外。

dynamicColor 资源

dynamicColor 资源控制应用程序是否动态地更改颜色;就是说,当切换调色板时,客户程序是否更改颜色。

值 

描述 

真 

当选中新的调色板时,客户程序动态地更改颜色。 这是缺省值。 

假 

客户程序不动态地更改颜色。当选中了新的调色板时, 客户程序将在会话重新启动时,使用新的颜色。 

dynamicColor 资源的值为"真"时,与能够动态地更改颜色的客户程序相比,无法动态地更改颜色的客户程序(non-Motif 应用程序)分配颜色图中不同的单元,即使您看到的颜色是相同的。


注意:

由于所有的客户程序可以共享相同的颜色单元,将 dynamicColor 设置为"假"将减少桌面消耗的颜色数。