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

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

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

为 widgets (小工具),而Toolkit 的第二部份称为 widget set (小
工具组),我们认为这是能够替换的,不同的介面提供不同的Widget
Sets ,甚至他们都使用Intrinsics。

下面两个小节更周详地说明这两个部份。


15.2.1 Toolkit 的第一个部份 -- Intrinsics

Intrinsics定义的实体称为widgets,并提供了任何建立、管理和毁坏widget
所需的设施。理论上,一个widget是个处理特定动作的使用者介面的元素,实际
上一个widget是X视窗加上规则和功能以决定他的输入和输出的动作,也就是
说,他如何对使用者有所反应。

为了帮助解释widget的观念,我们将给一点□例,但是请注意!他们并不
是Intrinsics的一部份,而是我们将於下一小节讨论的一个特定的widget组的
一部份,在此提出目的只是为了方便。

Command Widget(命令widget):这是个在萤幕上含有一些文字的长方
形”按钮”(也就是个小视窗)。当指标在这个按钮之上时,他的边会呈现
高亮度,当一个滑鼠按钮在这个widget被碰触时,一个被程式师指定的软体常
式(routine) 便会被执行。

您已使用过command widget好几次了:在xedit 的命令选单和在xman的
主选项视窗。

Scrollbar Widget(卷动棒widget):同样的,您也已使用过了好几次,
在xterm 和xedit 中卷动本文,在xman中卷动本文和目录列。

Intrinsic 提供了基本的结构,任何一个提供介面的较高阶软体均需要使
用到他,他提供了以下的功能:

.建立和毁坏widget。

.把一群widget当成一个单元(unit)来管理。

.掌控geometry,也就是说位置,包括从最高阶(也就是应用程式的 -geometry
选项)到最低阶(管理应用程式用到的sub-widget的位置(例如选单按钮
的位置))。

.掌控”事件”,例如在一个widget中, 当滑鼠按钮被碰触时呼叫适当的程
序、管理视窗的曝光 (exposure)和掌控键盘的输入。

.管理给resources 和预设的每一个widget。


15.2.2 Toolkit 的第二部份 -- Widget Sets

广义来说,Intrinsics只提供您建造一个使用者介面的骨架,Widget Set则
实际地提供了一个既定的介面,且不同的widget组提供不同形式的介面,虽然
对任何□围的需求并无法预防混用widget,但一般仍希望一个系统固定在
一致性的widget set上。

在X core 版上只有一个widget set提供,我们描述於下:

Athena Widget Set (雅典娜widget set)

大部份的MIT core版的应用程式使用Toolkit 和Athena Widget Set.(名
称的来源是X由MIT 的Athena计画产生出来)。这些widget的定义您已在许多
的应用程式用过。

我们在前节提过了Command Widget和Scrollbar Widget,至於Athena Widget
Set 的其他部份包含:

Label Widget:这个您能够想像 -- 在视窗中显示的一个字串或图。(例
如在xman主选项选单中的”Manual Browser”的标题)

Text Widget :我们在第10章描述xedit 时提过的”building block”。
他提供我们所使用的编辑功能。

Viewport Widget :一个具备卷动棒的视窗,让您能够卷动视埠(viewport)
的内容,xman使用其中之一用以显示指南页之目录。

Box Widget:他以一个指定大小的盒管理sub-widget的布置,且试著将 sub-
widget尽量集中在一起,例如xmh 的Reply 、Forward 等命
令钮即是由Box Widget布置。

VPaned Widget :他管理sub-widget,将他们保存在垂直堆叠中,且显示了
在两个sub-widget之间的分隔线上的”把手”(grip),把手
能够选择性的让您改变一个widget的大小,而且另一个相
关的widget大小亦伴随变化,例如我们在图10-12 看到的
xman的视窗的主要的元素是被VPaned Widget 管理的。

Form Widget :另一种管理一组sub-widget的方法,但对位置的选择有更多
的弹性。

List Widget :他管理一群字串,将他们安排在行列中,任何的字串藉
著於其上碰触的动作而被选择:字串会转为高亮度,且呼叫
一个指定的函数以完成特定的动作。xman使用一个List
Widget来掌控在一个指南章节中指南页的表列。

我们现在来看一下如何组合widget以获得所需要功能,我们仍然以xman为
例。xman的指南页之目录在他的低阶是list widget ,管理目录页名称的表列
连同他本身的内容是用viewport widget (让使用者卷动至表列中所需的位置
),将指南页的widget聚集在一起,他们是包含在一个VPaned Widget 中,所
以事实上这是个阶层状(hierarchy) 的widget,每一个能够完成他的专门
功能,而任何的应用程式所使用的Toolkit 均含有这三个widget结构。


15.2.3 widget:名称和类别 (Names and Classes)

resource和预设结构是在widget名称的基础下工作,所以我们将以对名称
的处理做一个概观方式来结束对Toolkit 的观察,并回到先前讨论的resource。

Toolkit 提供一个物件导向程式系统(object-oriented programming system)
给程式设计师。他定义物件的类别(class) ,也就是指定何时物件被建立或如
何操作等等的物件性质。这些物件即是widget,系统将确保他们和其他的widget
连同其他部份的应用软体以定义明确的方式交谈。

当一个程式设计师建立一个特定类别的widget,他被称为该类别的成员
(instance)(概括的说,一个类别是个抽象的定义,而一个成员在某些地方
实际地符合这些定义。)建立widget有必须一个名称,由程式设计师指定,(
例如:程式码的实际型式为”Creat a widget, of the class Box Widget,
and call it topBox ”)在某些环境下widget的类别名称也会被参考到。总
结来说,一个widget有一个成员名称和类别名称;更简单的说,一个名称和一
个类别。


15.3 Resources 如何被管理 -- Resource管理器

让我们提醒自己一下我们试图用resource来做什麽?我们要能传递资讯给
一个应用程式,告诉他以某些方式改变他的一般性动作,例如,将视窗的边
以粉红色取代原来的黑色,或使用一些特别的字型。

X用下述的方式掌控这些需求。您设定一个包含许多项resource规格的资

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