X Window 系统使用指南--使用者介面( 三 )


重定大小,把它交给视窗管理器,也就是让使用者去决定 。在第6章中我们会看到一个视窗管理器uwm 如何使用 。
3.2 应用程式介面和工具箱应用程式介面决定了使用者和应用程式间交谈的风格,举例来说,如何用
指标选一个选项等,X不提供标准的应用程式介面,只提供基本的结构以便建
造它们 。当那些具有一贯性的应用程式介面被放在一起,便叫做工具箱(toolkit),
它是基础视窗系统软体中最高最有效率的层次,较低层次的细节,被隐藏起来,
因此简化程式和维持介面的一贯风格变得容易执行,当使用者控制应用程式时
好像有一套”虚拟文法(virtul grammer)”一般,需要注意很重要的一点是,
工具箱在编译程式的时候被指定,所以一个client的应用程式介面在编译的时
候就被决定了,如果不重新编译便无法改变 。MIT 版的X大多数的应用程式均使用标准的工具箱和一套来自MIT 的工具
箱软体构成要素,这造成你可以得到一致性的介面 。除此之外,有些结构更提
供了定制的应用程式操作方法和设定它们的预设值 。
3.3 其它的系统面貌在本节中,我们讨论将应用程式之间传递资讯所用的性质结构(property
mechanism),视窗的树状阶层组织,和X不包含在作业系统中的优点 。
3.3.1 client之间的通讯 -- ”性质”client和server之间的通讯是藉著送出 "需求" 和接收 "事件",但有时
client需要和其它的client传递资讯,例如,正常的应用程式需要告诉视窗管
理器它的位置和大小,这就需要X的性质结构了 。”性质”是一小段资料的名称,这一小段资料存在server中且关联到一个
特定的视窗,任何client均可向server查询某一特定视窗”性质”的值 。让我们看一个client如何把它所喜欢的表徵图名称传递给视窗管理器的□
例:client把表徵图名称存到这个视窗的WIM_ICON_NAME ”性质”去,当视窗
管理器执行表徵图化这个应用视窗时,它会去找这个应用视窗的WIM_ICON_NAME
的”性质”,而後显示”性质”中的表徵图名称 。应用程式也可以和不是视窗管理器的其它的应用程式通讯,一个常见的例
子是在分属不同应用程式的视窗之间做剪贴(cut-and-paste) 操作,一段本文
从一个应用程式中”切下”(cut) 稍後再”贴”到另一个应用视窗,”性质”
在此被用到,”性质”依序编成”CUT_BUFFER0”,”CUT_BUFFER1”…等等,
所有的应用视窗便可藉此交换资料 。最後一个例子是称为resources 的”性质”,它被用来定义应用程式的预
设值设定,在根视窗(root window) 中有一个名为RESOURSE_MANAGER的性质存
放著所有设定的名单,它会被所有的应用程式存取,用来做是否要执行任何设
定的依据 。
3.3.2 在X中视窗的阶层性本节描述视窗在系统中的组织及如何建立,和对应用程式的影响 。所有在X中的视窗都可视为一个树状结构阶层 (hierarchy)的一部份,树
的根部便是根视窗,涵盖了整个萤幕,应用视窗都是根视窗的子代(children),
上层的视窗可以拥有它自己的子视窗,图3-1 有两个应用视窗 。┌———————————————┐
│ p34 fig 3.1 (???) │
│ │
│ 图3-1 在萤幕上重叠的视窗 │
└———————————————┘”paint ”程式包含了一个被当做选单用的子视窗,对每一个选择又有一
个子视窗对应,相关的视窗树见图3-2。┌———————————————┐
│ p35 fig 3.2 │
│ │
│ 图3-2 视窗的树状结构阶层 │
└———————————————┘在X的设计理念下,制造一个视窗非常容易,你可以利用视窗来控制选项

推荐阅读