📄 00000008.htm
字号:
剪缓冲区插入本文。 <BR>令列选 <BR> 在你的建构档中定义一个选单共有两个步骤。首先你定义选单上所需的 <BR>系结,其次你定义选单本身的内容。系结的部份像我们先前所用过的,但在尾 <BR>端增加了一栏选单名称。例如WindowOps 选单 (藉著在背景视窗中按下中按钮 <BR>来呼叫)的系结是: <BR> <BR> f.menu = : root : middle down : "WindowOps" <BR> <BR>在此,选单名称既是用以显示选单出现时的名称,也连结到建构档中的选单内 <BR>容规格。 <BR> <BR> 选单内容的格式很简单:对每一个选择项,包含了一列当选择项出现在选 <BR>单的 "名称" ,和当它被选择到时所做的动作。让我们观察一个缩水的WindowOps <BR>定义: <BR> <BR> menu = "WindowOps" { <BR> New Window : !"xterm &" <BR> RefreshScreen : f.refresh <BR> Redraw : f.redraw <BR> Move : f.move <BR>令列}□ <BR>从这里,我们可以看到其语法为: <BR> <BR> menu = "menu name" { <BR> ... <BR> selection lines <BR> ... <BR> } <BR> <BR>选单名称和系结所指定的相同。选择项列包含了选择项名称,分隔的冒号,和 <BR>负责的动作。这些动作为下列三者之一: <BR> <BR> 1.一个uwm 的功能:只用到它们的名称,在上例为move那一列。 <BR> <BR> 2.一个shell 命令:命令包含在双引号中间 (用shell 的& 语法使其在背 <BR> 景视窗中执行) 且在前面加一个惊叹号。在上例为xterm 那一列。 (如 <BR> 果你省& ,uwm 将被悬置 (hang) 起来,等待命令的完成,如果此程式 <BR> 为X的应用程式,它需要uwm 来安排它的视窗,这将会招致麻烦)。 <BR> <BR>令列3.一个本文字串:这将插入到一个 "剪" 的缓冲区,而後你可以像平常一 <BR> 样的 "贴" 它。 <BR> <BR>多种的选单连结到同一个键系结 <BR> <BR>通常你对一个特定的键/按钮的组合,只会系结到一个选单,但你可以对同一个 <BR>系结有多种选单:如果你在一个选单中不选择任何项目且把指标移动到选单的 <BR>边上,你将得到下一个选单。你已经实际地看过这种例子:在同时按下META和 <BR>SHIFT 键的情况下按下中按钮,你可以得到WindowOps 选单,然後是Preferences <BR>选单。 <BR> <BR> 系结多种选单非常的容易,只要在定义每一个系结时当作其它的系结并不 <BR>存在,而在定义选单的内容时用标准的方式即可。例如uwm 的预设设定包含了 <BR>系结: <BR> <BR> f.menu = meta | shift : : middle down : "WindowOps" <BR> f.menu = meta | shift : : middle down : "Preferences" <BR> <BR>注意一个选单只能定义一次,但你可以用它来做任意多次的系结。 (查看预设 <BR>设定,你将看到WindowOps 选单被定义了一次但使用到两次)。 <BR>令列 <BR>指定选单的颜色 <BR> <BR>你可以指定在一个选单中所用的色彩。对选单名称标题、每一个选择项、指标 <BR>所在的高亮度选择项,你都可以指定一个前景和背景色彩。一个有色彩的选单 <BR>的格式如下: <BR> <BR> menu = "menu name" (head-fg : head-bg : hilite-bg : hilite-fg) { <BR> ... <BR> selection-name : (item-fg : item-bg) : action <BR> ... <BR> } <BR> <BR>以下为一个混合的□例,使你的WindowOps 能拥有更多的色彩: <BR> <BR> menu = "WindowOps" (yellow : blue : red : green) { <BR> New Window : !"xterm &" <BR> RefreshScreen : f.refresh <BR> Redraw : (navy : magenta) : f.redraw <BR> Move : f.move <BR>令列} <BR> <BR>此选单标题为蓝底黄字,大多数的选择项为白底黑字 (预设值),只有 "Move" <BR>选择项为紫红色底海蓝色字,而目前指标所在的选择项为绿底红字。 <BR> <BR> 19.2.3 控制uwm 的参数变数 <BR> <BR>到目前为止,你可以用指定滑鼠和键的前後关系,来改变所指定的功能。在此 <BR>有一个另一种型态的uwm 的定制:你可以藉此改变许多内建功能操作的作法 ( <BR>mode) 和风格 (style),例如你可以指定在resize或move操作下,指示视窗新 <BR>的位置的九宫格,改变为只是一个外框而已。在指南页中有列出所有的变数和 <BR>它的意义,在此我们只提一些特别有用的,和解释一些比较模糊的。 <BR> <BR> 让预设建构档中的设定无效:uwm 并没有结构抑制读取系统和使用者建构 <BR>档。(-b 不会影响 $HOME/.uwmrc)。欲取消早先档案中的设定,可以含入uwm <BR>的变数resetbinding、resetmenus和resetvariables,将会分别的取消早先定 <BR>义的系结、选单和变数。 (确定你将这些变数放在档案的顶端,否则它将取消 <BR>在档案中所有在它之前的定义)。 <BR> <BR> 限制视窗和表徵图在萤幕的□围以内:X允许你指定你的视窗位於萤幕的 <BR>任何位置,甚至部份或全部在萤幕之外,这样有时会引起麻烦。当你建立一个 <BR>视窗,uwm 并未提供任何的帮助。但当你使用f.newiconify对一个表徵图作解 <BR>除表徵图化,如果变数normalw 被设定,则视窗会被完整的放在萤幕中,且尽 <BR>量接近你用指标指定的位置。 (如果你包含了normali 变数,同样可用於表徵 <BR>图)。 <BR> <BR> 控制push作用:预设f.pushxxx 功能将一个视窗往适当的方向推动一个像 <BR>素的距离。你可以藉著指定 push=num 来推动num 个像素。你也可以完全地改 <BR>变操作的作法:取代通常的推动固定数目的像素的作法 (叫做pushabsolute) <BR>,你可以指定pushrelative:这种情况视窗会被推动num 分之一大小的视窗。 <BR>例如如果你指定 <BR> <BR> push=5 <BR> pushrelative <BR> <BR>则一个f.pushup将把视窗向上推动视窗本身高度五分之一的距离。 <BR> <BR> 防止uwm 功能锁定应用程式:预设一些uwm 的操作,像resize和move会导 <BR>致所有其它的client应用程式被冻结,也就是说,防止它们输出到它们的视窗 <BR>。你可以藉著指定nofreeze取消它。 <BR> <BR> 如果你需要获得一些uwm 所属短暂视窗的视窗倾印,则这是必需的 (如在 <BR>图6 - 6 的resize盒)。 它的副作用为当使用resize和move时,外框格会大量 <BR>的闪动你以致难以看到。 <BR> <BR>19.3 结论 <BR> <BR> <BR>本章告诉你如何使用一些更多的uwm 的功能,现在你对系统有更多的经验且可 <BR>以利用它们。特别是看到不用预设选单如何建构视窗,它使你工作的更迅速。 <BR> <BR> 本章的第二个部份,列出你如何能定制uwm :如何附属uwm 的内建功能到 <BR>指定修饰键和滑鼠动作的组合,如何定义一般性的选单,如何使用uwm 的参数 <BR>变数修改操作的作法。 <BR> <BR>在结束之前说一点题外话,uwm 和 xterm、xclock、xedit等一样,只是server <BR>的一个client程式而已。所以,远端地执行uwm 是可能的,例如在saturn执行 <BR>uwm ,但是指定 -display venus:0,所以它是venus 的视窗管理器。这解释 <BR>了网路元素深殖於系统,在一般工作站,这只是好奇,但在X终端机 (它不提 <BR>供一般性目的的处理 (processes)) 它实际地需要。 <BR> <BR>我们现在接近尾声:你已有所有你执行视窗系统的所需的功能。你有视窗管理 <BR>器、应用程式、便利的工具、视窗有关的公用程式、大□围的设施所以可以修 <BR>改以适合你的显示器、你网路上的建构和你比较喜欢的工作。下一章,我们将 <BR>会把目前所学的放在一起,告诉你如何管理你完整的工作周期,且我们将包含 <BR>定义uwm 选单和perferences的实际的□例。 <BR> <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -