手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

[转帖]X Window 系统使用指南--15

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

full class name Xedit.VPaned.Box.Command
attribute instance-names borderWidth,cursor,font,label,...
attribute class-names BorderWidth,Cursor,Font,Label,...

而後Resource Manager检查每一个在资料库中的规格,看他是否和应用程
式所传来的属性和物件名称相符。假如相符发生,在资料库中规格值的部份会
传回应用程式。

在这种相符的操作中,星号和句号的区别很重要。简单来说,我们能够
想到Resource Manager只是以单字为基准来对应文字串,句号正是每一个单字
的区隔号,星号也是分隔号,但不同的是他能够通用字元的方式代表从零到任
意数目的单字,对於对应唯一的限制是在资料库中规格的属性必需对应查询应
用程式所传来的属性,您不可对属性用通用字元。

现在您能够看到不同的规格如何工作:

*foreground:yellow

能够应用於任何应用程式中的任何物件。因为星号对应到任何的应用程式和所
有的限定和物件名称。

*Command.Foreground:violet

应用於任何应用程式中任何Command 型态中Foreground类别的任何属性。

xedit.vpaned.row1.Help.background:navy

是个完整的规格但是将只影响到命名当中的物件名称的属性。(本例中,
尽管事实上是大写的,"Help"是个成员名称,他的类别是"Command" 。)

除非您有一些很特别的需求,最好不要用句点当分隔号,尽量以星号代
替,如此可减少错误发生的可能,而且在重写应用程式时,比较不会受到阶层
结构改变的影响。

上述的对应结构解释了为什麽您能够输入奇怪的规格,或resource
和属性尚未定义:意即一个规格只有当应用程式查询资料库才会附著,甚至□
围的意义也是不足道的 -- 规格对应或不对应到查询。


15.3.4 当多种Resorce规格对应的居先(precedence) 规则

我们现在有一个很弹性的方法来指定应用程式的resource,但正因他太
笼统,以致当一个应用程式查询resources 资料库时常常有数种规格和之对应,
如何解决呢?

简单地说,假如同时有超过一个规格对应,则最具体的(specific)一个会
被使用,Resource Manager有一组的居先规则用来决定是否一个规格较另一个
具体。

.使用句号为分隔号较使用星号为具体,例如:*Command.Foreground 较
*Command*Foreground 为具体。

.成员名称较类别名称具体,例如:*foreground 较*Foreground 具体。

.指定一个元素较省略他具体,例如:xmh*command*foreground较
xmh*foreground具体。

.元素靠近规格左边的星号较靠近右边的具体,例如:xmh*foreground较
*command*foreground具体。

这些规则相当直接,他们大部份可用另一种方法来说明:”假如一个规格
对应到另一个规格而为其子集合者,则前者较後者具体。”


15.3.5 在Toolkit 程式中应用程式Resource

通常一个应用程式使用Resource Manager来定义程式阶层中widget的属性
预设值,但有时需要有和widget不直接相关的设定预设值(或传值)的能力。

为了达到这点,Toolkit 提供了一个叫做Application Resource的设施,
他和非Toolkit 预设的外表原则相同 -- 应用程式定义了他本身选择的属性。
类别名称也相同,所以事实上这些属性和一般常见的阶层没有什麽不同。

xman使用到一点这个设施,他让您能在求助视窗(help window) 指定不同
的本文档案,是否在主选择视窗中指定一个您要的视窗,或当程式启动时直接
进入一个指南页等。(查看指南页,在X Default那一节,他会明确地列出他
的”应用程式特定的resources ”)。


15.3.6 Resource和non-toolkit 应用程式

并非任何的程式均使用Toolkit ,但Toolkit 几乎掌控了任何对一个应用
程式的resource管理,特别是应用程式的widget结构定义了物件和子物件的阶
层,并能适当地查询Resource Manager。但是non-Toolkit 应用程式要如何使
用Resource Manager?

答案是应用程式只需明确地查询每一个他有兴趣的属性。稍早我们曾说过
Resource Manager对resource无限制,因此应用程式能使用任何他想要的属性
名称,只要程式的文档告诉使用者他们在何处,他们就如同其他的应用程式一
样。

xcalc 应用程式是个不使用Toolkit 的程式□例,他也利用上述方式掌
握resource规格。

有几点需要注意:

.此种型态的预设值没有类别。

.程式以类似类别名称(也就是说,第一个字母大写)来定义属性,例如
xcalc 使用Background, Foreground, BorderWidth 等等。

.假如大小写错误,您的规格不会工作,例如:规格

xcalc.foreground:green

会被xcalc 忽略。

.即使这个程式定义的属性并非阶层的一部份,您仍能使用星号当分隔号,
例如:

xcalc*Foregroundrange


15.4 Resources 的型态----如何指定值

直到现在我们仍然只看resource规格的”左半边”,而忽略了值(value)
的部份,或只是用色彩名称。现在,我们来看一看”右半边”(值的部份)。

简单地说,值只是个传递到应用程式的本文字串,和Resource Manager
完全相关,之後,应用程式以此值做他所要做的事。当然,在实际的操作上,
应用程式必须明确地做某些事,而Toolkit 的确也掌控了大多数这一部份的工
作,所以您可获得一致地介面。

所以当我们以一个Resource值传递我们所需时,实际上我们使用少数的型
态,您已看过他们的大部份,您在任何地方均能够resource规格来使用他们:

Colours (色彩):我们已广泛的使用过他们----毋需多做解释。

Fonts (字型):在一般的方法我们已描述过,在resource规格,您也
可使用通用字元或全名。例如:

*Font: *-courier-medium-r-*-140-*
xterm*Font: 8*13
xterm*boldFont: 8*13
demo*font: *-courier-medium-r-*-240-*
demo*boldFont: *-courier-bold-r-*-240-*

设定一个整体性的预设字型,但使用一个正常的xterm 指定一个明确的一对字

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!