第15章 定义应用程式的预设选项 -- Resources
大多数的X程式接受命令列选项,以便让您指定前景和背景的颜色、字型
、起始位置等等。这种需求是有必要的,因为假如您在程式内硬性规定使用某
种字型,而在执行此程式的机器上并没有这种字型,则将使得程式无法执行,
所以您不应硬性规定某些参数。
当您每次执行程式时不太可能在命令列中指定任何需要的选项,因为有太多种
可能的组合了,所以X提供了一个叫做resources 的一般性结构,用来传递预
设的设定给应用程式。当您阅读指南页时,您可能已注意到要您参照resources
,但却不知道什麽是resources ,我们将在此解释。
您在系统中几乎任何的定制动作都将运用到resources ,事实上您为一
个应用程式所选择的每一个选项的设定都要用到resources ,从简单的项目例
如色彩或字型,到定制您的键盘或管理您的显示器如何工作,他很的方便,
而且在系统中到处都用得到。
本章我们描述什麽是resources ,及关於他们是如何发展的资讯,接下来
我们描述X Toolkit(工具),他完全地使用到了resources 的结构;然後
告诉您一些resources 工作的细节,您该如何设定他们,及您能用他们设定哪些
型态。
这是相当长的一章,有几个新的观念被加进来,一开始会有些困难,但不
需太担心,原则上resources 结构很地简单,只是第一眼看起来似乎有许多
"魔术符号" 而已,也许您应该先很快地浏览一遍,然後再周详地重读一遍。
15.1 什麽是resources ?
在X的文献中,”resources ”有两种意义。第一种是相当低阶的,意指
被server管理或建立而被应用程式使用的东西。视窗、游标、字型等均属於这
种意义。
另一种意义也就是通常您在指南页中常看到”resources ”的意义:他是
一种传递预设设定、参数和其他值给应用程式的方法。在本章中我们局限於
讨论此种意义之resources 。在解释现行系统如何工作前,先回顾一下X的早
期版本是如何掌控这些功能的,因为现行的结构由此产生。
15.1.1 ”预设”的背景
在X较早的版本,对於像视窗背景颜色、视窗边界的颜色、应用程式所使
用的字型这类项目您能够轻易地设定其预设值。
预设值的设定方式很直接,您只需指定一个视窗的属性和他的预设值。例如:
.Border : red
意即任何的视窗均为红色的边(除非您在命令列中重新设定边的颜色),您也
能够把程式的名称放在属性之前,则只有被指名的程式才会改变,所以把以下
这个规格
xclock.Border:blue
和先前的规格结合在一起的意义为:预设任何视窗均为红色的边,只有xclock
的视窗为蓝色的边。
每当您设定预设值,程式会自动取用该值,所以您□需每次均指定您的选
择,他让您依照适合您的工作习惯来使用字型,不论是您要用较小的字型以获
得更多的资讯显示,或是用较大的字型以便阅读,他让您为特定的应用程式选
择颜色,您能够定义应用程式的起始位置,所以您能够自行设计一些启始萤
幕的布置,因为许多的预设值(字型、色彩等)实际上精确的意义为”resources”
,所以”resources ”的意义逐渐扩增为”预设值设定(default setting) ”
或”设定预设选项(setting default options) ”。
15.1.2 Resources 传递资讯到应用程式
随著X的发展,应用程式也随之扩增,需要有一个设施传递大量的资讯到应
用程式以定制或指定他们的行为,而不再只是有关色彩和字型的资讯而已,
例如您能够告诉 xbiff检查信件的频率,或定义 xterm的功能键(function-key)
12为插入某一特定的字串,或在 xedit中连续碰触两次滑鼠中按钮代表选择目
前这段本文等等。
所以逐渐地,resource及预设设施已遂一被发展出来,直到现在对於传递
任何资讯到一个应用程式已是个一般性的结构。您能够像文字串相同地指定
资讯,应用程式会在内部解释他:例如把这字串当作一个滑鼠按钮的名称,或一种颜
色,或由应用程式所发出的一个功能和 "resources"是如何指定的。
这个结构也逐渐地复杂起来以便让您能正确地指定在何处应用预设值。在
以前,您只能指定任何的程式或某一个特定的程式。现在的系统您能够设定的
预设值如:”终端机视窗的选单选项”或”在任何视窗的标签”或甚至”除了
xterm以外的任何编辑器视窗按钮盒中的功能按钮”。
X Toolkit, 使得resources在使用上有很大的包容性并且增进了应用的
精确度。您需要先了解 Toolkit是什麽,才能适当地使用resource 结构,我
们将在下一节讨论。
15.2 X Toolkit
我们先前曾提过,X并不决定使用者介面,他只是提供一些结构,让应用
程式设计者能组合成任何形式的介面。理论上这是很合乎需求的 -- 他使得
系统拥有一个一般性目的的工具且没有使用上的限制,但从另外的角度来看,
他有很大的缺点:
.对一个使用者而言,不同的应用程式有不同的介面,不只是难学难记,
且应用程式无法平顺地 (smoothly) 相互协调工作(例如无法在视窗之间
做剪贴),您得到的是一群个别的、单独的程式,而不是个一致的、
合作无间的系统。
.从程式设计师的立场,意味著基本Windows上的每一件事均需从头做起,
选单、卷动棒、时钟、功能钮等等都必须一一生产。甚至在单一的产品,
不同的程式师做了一点稍有不同的事,便会导致许多不相容的情况。
为了克服上述的问题,Toolkit(工具)的方式应运而生。
在某些□围,Toolkit 会决定使用者介面的形式,但是无论如何,他会尽
量减少这种影响,并让使用者介面发展者有更多选择的可能性,Toolkit 被分
为两个部份:
1. 一组基本的结构和函数用以建构使用者介面的元素,被称为Toolkit
Intrinsics(内部的工具)。不论是什麽样的介面,任何工具均需使
用到他,所以我们能够把Toolkit Intrinsics视为”固定的”,也就
是无可替代的。
2. 一组提供特定的使用者介面(或介面的形式)的元素,这些元素被称
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



