目 录 2
引言 2
1.X-Windows的历史 2
2.为什么现在流行X-Windows 2
3.什么是X-Windows 4
4.X-Windows的基本构成 5
5.运行X-Wirdows需要什么 6
6.本书对X-Windows的处理方法 6
第一部分学习X-Windows编程 7
第一章构造第一个X-Windows程序 7
1.1 例1:一个最小的X-Windows程序 8
1.1.1例1的源码 9
1.2 例2:开一个最简单的窗口 13
1.2.1 创建一个窗口 14
1.2.2向窗口管理程序发“暗示”(Hints) 17
1.2.3卸(Flushing)显示器 18
1.2.4关闭窗口 18
1.2.5例2的源码 19
1.3例3:增添开窗函数的内容 23
1.3.1 Icons(肖像) 23
1.3.2例3的源码 25
1.3.3 Icon的位象 28
1.4小结 29
第二章用X-windows画图 30
2.1 画线和矩形 30
2.2 图形上下文 31
2.2.1 为窗口创建一个图形上下文 31
2.3例1:画线和矩形 32
2.3.1例1的源码 32
2.4通过弧画椭圆 43
2.5填充椭圆和矩形 43
2.6.1例2的源码 44
2.6例2:画并填充椭圆和矩形 44
2.7 画多条线、多个矩形及圆弧 48
2.8小结 51
第三章颜色的使用 51
3.1 彩色应用的移植性及有用性 51
3.2 X-Windows中的颜色映象 52
3.3例1:用红色画一条线 53
3.3.1 例1的源码 54
3.4例2:使用更多的颜色,且重复使用 60
3.4.1例2的源码 60
第四章使用文本…………………………………………………………………………(67 )4.1 字型 67
3.5小结 67
4.1.1装入字型 68
4.1.2建立图形上下文 68
4.1.3写文本 69
4.1.4文本写在何处 70
4.1.5找到字型的大小 70
4.1.6释放字型 71
4.1.7使用字型时的小麻烦 71
4.1.8找到可用的字型 72
4.2.1范例程序的源码 75
4.2 范例程序 75
4.1.9有限的X服务器资源 75
4.3小结 79
第五章事件 80
5.1事件驱动型编程 80
5.2 X-Windows事件的模型 80
5.3要求事件 81
5.4事件Mask 81
5.5从X-Windows服务器接收事件 82
5.6轮询事件 83
5.8鼠标按钮事件 84
5.7事件类型 84
5.9键盘事件 87
5.10进入/离开事件 88
5.11暴露(exposure)事件 89
5.12例1:一个检查事件的程序 90
5.12.1例1的源码 91
5.13 例2:一个基于鼠标的画图程序 97
5.13.1例2的源码 98
5.14用xev程序获取有关事件模型的更多信息 104
5.15小结 104
第六章键盘事件 105
6.1 Meta(AJt)键 109
6.2鼠标按钮 110
6.3范例程序 112
6.3.1范例程序的源码 112
6.4键盘映象什么时候变化 119
6.5小结 120
第七章Rubber-Band线 120
7.1光栅操作函数 121
7.2 GC图形函数小结 126
7.3例1:Rubber-Band线 126
7.3.1例1的源代码 128
7.4例2:Rubber-Band椭圆 136
7.4.1例2的源代码 136
7.5例3:显示光栅操作函数 141
7.5.1例3的源代码 146
7.6小结 152
第八章X-Windows标准及与窗口管理程序的相互作用 153
8.1 X-Windows命令行参数 153
8.2显示器名 154
8.3 X-Windows几何 154
8.4为窗口创建光标 155
8.4.1 作为文本的光标 156
8.4.2创建你自己的光标 159
8.4.3释放光标资源 160
8.5例1:接收命令行参数及建立光标 160
8.5.1例1的源码 164
第十章 多窗口应用程序 168
8.6例2:向窗口管理程序发送更多信息 180
8.6.1类型性质(Class Property) 181
8.6.2改变窗口尺寸 181
8.6.3 Icon名 183
8.6.4例2的源码 183
8.7小结 189
第二部分构造一个X-Window s系统应用程序 190
第九章介绍一个绘图应用程序Draw:用户指南 190
9.1 浮动式选择查找表(Palette) 191
9.1.1点 192
9.1.2文本 192
9.1.3装进新文件 192
9.1.4恢复(Undo)绘图操作 193
9.2命令行参数 193
9.3熟练用户Meta键的妙用(shortcut) 194
9.4关键错误的处理 194
9.5处理致命性I/O错 196
9.6小结 197
10.1 浮动的查找表(Palette) 198
10.1.1 加亮一个查找表选择 207
10.1.2刷新查找表窗口 208
10.1.3查找表光标 211
10.2绘图窗口 216
10.3清除X-Windows及GC资源 218
10.4 Draw应用程序的文件格式 219
10.5.1 XCopyPlane 221
10.5 Pixmap及窗口 221
10.5.2用Pixmap恢复 222
10.6小结 224
第十一章Draw应用程序中的事件处理 224
11.1事件mεsk及选择事件 226
11.2绘图事件 227
11.3查找表选择事件 236
11.4文本输入事件 239
11.5键盘妙用事件 244
11.6 X-Windows服务器生成事件 247
11.7小结 249
第十二章弹出窗口及对话框 250
12.1 在X-Windows中建立一个弹出窗口 251
12.2从查找表中调用弹出窗口 253
12.3确定鼠标定位光标的位置 254
12.4一个弹出文件名对话框 256
12.5实现对话框 257
12.6建立对话窗口 261
12.7显示对话窗口的内容 263
12.8对话事件 264
12.9清除 267
4.ClientMessage 364
3.CirculateRequest 364
5.ColormapNotify 365
6.ConfigureNotify 365
7.ConfigureRequest 366
8.CreateNotify 366
9.DestroyNotify 366
10.EnterNotify,LeaveNotify 367
11.Expose 367
12.FocusIn,FocusOut 368
13.GraphicsExpose,NoExpose 368
15.KeyMapNotify 369
14.GravityNotify 369
16.KeyPress,KeyRelease 370
17.MapNotify,UnmapNotify 370
18.PropertyNotify 371
19.ReparentNotify 371
20.ResizeRequest 372
21.SelectionClear 372
22.SelectionNotify 372
23.SelectionRequest 373
24.VisibilityNotify 373
附录C图形上下文 373