⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000004.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 2 页
字号:
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;应用程式介面决定了使用者和应用程式间交谈的风格,举例来说,如何用&nbsp;<BR>指标选一个选项等,X不提供标准的应用程式介面,只提供基本的结构以便建&nbsp;<BR>造它们。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;当那些具有一贯性的应用程式介面被放在一起,便叫做工具箱(toolkit),&nbsp;<BR>它是基础视窗系统软体中最高最有效率的层次,较低层次的细节,被隐藏起来,&nbsp;<BR>因此简化程式和维持介面的一贯风格变得容易执行,当使用者控制应用程式时&nbsp;<BR>好像有一套”虚拟文法(virtul&nbsp;grammer)”一般,需要注意很重要的一点是,&nbsp;<BR>工具箱在编译程式的时候被指定,所以一个client的应用程式介面在编译的时&nbsp;<BR>候就被决定了,如果不重新编译便无法改变。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MIT&nbsp;版的X大多数的应用程式均使用标准的工具箱和一套来自MIT&nbsp;的工具&nbsp;<BR>箱软体构成要素,这造成你可以得到一致性的介面。除此之外,有些结构更提&nbsp;<BR>供了定制的应用程式操作方法和设定它们的预设值。&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>3.3&nbsp;其它的系统面貌&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在本节中,我们讨论将应用程式之间传递资讯所用的性质结构(property&nbsp;<BR>mechanism),视窗的树状阶层组织,和X不包含在作业系统中的优点。&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;3.3.1&nbsp;client之间的通讯&nbsp;--&nbsp;”性质”&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;client和server之间的通讯是藉著送出&nbsp;&quot;需求&quot;&nbsp;和接收&nbsp;&quot;事件&quot;&nbsp;,但有时&nbsp;<BR>client需要和其它的client传递资讯,例如,正常的应用程式需要告诉视窗管&nbsp;<BR>理器它的位置和大小,这就需要X的性质结构了。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;”性质”是一小段资料的名称,这一小段资料存在server中且关联到一个&nbsp;<BR>特定的视窗,任何client均可向server查询某一特定视窗”性质”的值。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;让我们看一个client如何把它所喜欢的表徵图名称传递给视窗管理器的□&nbsp;<BR>例:client把表徵图名称存到这个视窗的WIM_ICON_NAME&nbsp;”性质”去,当视窗&nbsp;<BR>管理器执行表徵图化这个应用视窗时,它会去找这个应用视窗的WIM_ICON_NAME&nbsp;<BR>的”性质”,而後显示”性质”中的表徵图名称。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;应用程式也可以和不是视窗管理器的其它的应用程式通讯,一个常见的例&nbsp;<BR>子是在分属不同应用程式的视窗之间做剪贴(cut-and-paste)&nbsp;操作,一段本文&nbsp;<BR>从一个应用程式中”切下”(cut)&nbsp;稍後再”贴”到另一个应用视窗,”性质”&nbsp;<BR>在此被用到,”性质”依序编成”CUT_BUFFER0”,”CUT_BUFFER1”…等等,&nbsp;<BR>所有的应用视窗便可藉此交换资料。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;最後一个例子是称为resources&nbsp;的”性质”,它被用来定义应用程式的预&nbsp;<BR>设值设定,在根视窗(root&nbsp;window)&nbsp;中有一个名为RESOURSE_MANAGER的性质存&nbsp;<BR>放著所有设定的名单,它会被所有的应用程式存取,用来做是否要执行任何设&nbsp;<BR>定的依据。&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;3.3.2&nbsp;在X中视窗的阶层性&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;本节描述视窗在系统中的组织及如何建立,和对应用程式的影响。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;所有在X中的视窗都可视为一个树状结构阶层&nbsp;(hierarchy)的一部份,树&nbsp;<BR>的根部便是根视窗,涵盖了整个萤幕,应用视窗都是根视窗的子代(children),&nbsp;<BR>上层的视窗可以拥有它自己的子视窗,图3-1&nbsp;有两个应用视窗。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;┌———————————————┐&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;p34&nbsp;&nbsp;fig&nbsp;3.1&nbsp;&nbsp;&nbsp;(???)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;图3-1&nbsp;在萤幕上重叠的视窗&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└———————————————┘&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;”paint&nbsp;”程式包含了一个被当做选单用的子视窗,对每一个选择又有一&nbsp;<BR>个子视窗对应,相关的视窗树见图3-2&nbsp;。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;┌———————————————┐&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;p35&nbsp;&nbsp;fig&nbsp;3.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;图3-2&nbsp;视窗的树状结构阶层&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└———————————————┘&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在X的设计理念下,制造一个视窗非常容易,你可以利用视窗来控制选项&nbsp;<BR>,像选单、卷动棒(scrollbars)、控制钮(control&nbsp;button)等等,即使是大量&nbsp;<BR>也无妨,例如像试算表中的一个cell等。这种观点从程式设计师的角度大於使&nbsp;<BR>用者,但的确对使用者当他”定制”(customising)&nbsp;特定的程式时有影响,在&nbsp;<BR>本章以後的章节会再度提到。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;为了允许应用程式有子视窗,X提供了大量的设备程式供client程式使用,&nbsp;<BR>如此不但能达成一致性,也避免了相同的需求造成了重复的工作,例如像图3-1&nbsp;<BR>的下拉式选单,可以在应用程式中以一致子视窗完成,这个子视窗有它们自己&nbsp;<BR>的选单选择方框(pane),和用以侦测使用者碰触滑鼠按钮的标准结构,如果没&nbsp;<BR>有子视窗,复杂的程式和输入处理将无可避免。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;子视窗的位置和大小并不受父视窗的限制,子视窗可大可小,可以大过父&nbsp;<BR>视窗或只占父视窗的一部份,但是它会被父视窗剪裁(clipped)&nbsp;,也就是说,&nbsp;<BR>子视窗所有超出父视窗的部份将会消失不见。见图3-3&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;┌———————————————┐&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;p36&nbsp;&nbsp;fig&nbsp;3.3&nbsp;&nbsp;&nbsp;(???)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;图3-3&nbsp;受父视窗限制的子视窗&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└———————————————┘&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在实际的应用上,你可以将上层的视窗定义成几乎占住整个萤幕,就不必&nbsp;<BR>担心子视窗有些部份会看不到了。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;另外一种方式就是把下拉式选单定义成为根视窗的子视窗,如此选单便可&nbsp;<BR>以比应用视窗还大,如图3-4&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;┌————————————————┐&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;p36&nbsp;&nbsp;fig&nbsp;3.4&nbsp;&nbsp;&nbsp;(???)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;图3-4&nbsp;选单比用它的应用视窗还大&nbsp;│&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└————————————————┘&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;3.3.3&nbsp;X不是深植於作业系统&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;不像其它大多数的系统,X并非深植(embedded)於作业系统中,而只是比&nbsp;<BR>使用者层次稍高而已。更精确地说,X不需要深植於系统,虽然有些制造厂商&nbsp;<BR>可能是为了效率(performance)&nbsp;的理由将server和作业系统结合在一起,但不&nbsp;<BR>深植於作业系统的结构有下列利益:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;.易於安装和改版,或甚至去除。这种工作不需要重新启始系统,也不会&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对其它应用程式造成干扰。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;.第三集团很容易支援加强它的功能。例如你的制造厂商提供的系统不够&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;好,你可以向别人买更好或更快的版本。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;.X不会指定作业系统,因此成为一种标准,这也是第三集团发展软体的&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;原动力。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;.为了发展者利益。在server上发展工作时,当程式当掉只会当掉视窗系&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;统,不会造成机器的损坏或作业系统核心的破坏,没有作业系统核心码&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;的程式也较易除错。&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>3.4&nbsp;结论&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在本章中我们描述了许多X提供的使用者介面,我们介绍了你用以管理&nbsp;<BR>案头的程式&nbsp;--&nbsp;视窗管理器的概念,也描述了被用来做使用者和client应用程&nbsp;<BR>式间交互作用的设备程式。我们介绍了用来做client间通讯的性质结构,X视&nbsp;<BR>窗的阶层结构对系统的影响,最後对视窗系统不深植於作业系统的好处做一摘&nbsp;<BR>要。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;本章所强调的著眼点,在於针对你每天都用到的视窗系统的部份作一整体&nbsp;<BR>性的概观,了解这些将帮助你学习得更快,更能好好地运用系统。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;本书第一部份&nbsp;--&nbsp;系统概观就此结束,下一个部份将告诉你如何实际使用&nbsp;<BR>系统。&nbsp;<BR>&nbsp;<BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -