目 录 1
绪论 1
0.1 X的发展历史 1
0.2 X为什么是这样? 2
0.2.1柔性窗口系统 2
0.2.2资源共享 3
0.2.3产品系列一致性 3
0.3 X是什么? 3
0.3.1客户(Client)/服务器(Serve)轴心 3
0.4.2 X工具箱 5
0.4.1 Xlib 5
0.4 X的组成 5
0.4.3 X网络协议 6
0.5 X运行环境 6
0.6编排介绍 6
第一部分X编程教程 7
第一章建立第一个X程序 8
1.1示例1:一个最小的X程序 9
1.1.1示例1源代码 10
1.2示例2:打开一个最小窗口 14
1.2.1创建一个窗口 14
1.2.2向窗口管理程序发送“提示(Hints)” 17
1.2.3 刷新显示器 18
1.2.5示例2源代码 19
1.2.4释放窗口 19
1.3示例3:对openWindow函数添加新的功能 23
1.3.1 图符(icon) 23
1.3.2示例3源代码 25
1.3.3图符位图(Icon Bitmap) 28
1.4小结 29
第二章用X绘图 30
2.1画直线和矩形 30
2.2图形关联 30
2.3示例1:画直线和矩形 31
2.2.1窗口创建图形关联 31
2.3.1示例1源代码 32
2.4 利用圆弧画椭圆形 41
2.5 填充椭圆形和矩形 42
2.6 示例2:画出并填充椭圆形和矩形 42
2.6.1 示例2源代码 42
2.7 画多条直线,多个矩形和圆弧 46
2.8 小结 49
第三章 颜色的使用 50
3.1 颜色应用软件的可移植性和其用法 50
3.2 X的彩色映象(Colormap) 51
3.3 示例1.用红色画一条直线 52
3.3.1 示例1源代码 53
3.4 示例2:使用更多的颜色 58
3.4.1 示例2源代码 59
3.5 小结 64
第四章 正文的使用 65
4.1 字体 65
4.1.1 加载字体 65
4.1.2 设置图形关联 66
4.1.3 画正文 66
4.1.5 指出字体大小 68
4.1.4 所画正文的位置 68
4.1.6 释放字体 69
4.1.7 使用字体的技巧 70
4.1.8 找到可用的字体 70
4.1.9 有限的X服务器资源 72
4.2 示例程序 72
4.2.1 示例程序源代码 72
4.3 小结 76
第五章 事件 77
5.1 事件驱动的编程 77
5.2 X事件模型 77
5.4 事件屏蔽 78
5.3 请求事件 78
5.5 从X服务器接收事件 79
5.6 查询事件 80
5.7 事件类型 81
5.8 鼠标按钮事件 82
5.9 键盘事件 84
5.10 进入/离开事件 85
5.11 暴露事件(Exposure Event) 87
5.12示例1:检查事件的程序 88
5.12.1示例1源代码 88
5.13示列2:基于鼠标的绘图程序 94
5.13.1示例2源代码 95
5.14用XEV程序进一步了解X事件模型 100
5.15小结 100
第六章键盘事件 101
6.1元按键(meta key) 104
6.2 鼠标按钮 105
6.3示例程序 106
6.3.1示例程序源代码 106
6.4键盘匹配的改变 112
6.5小结 113
第七章拖动画线 114
7.1光栅操作函数 114
73示例1:拖动画线 121
7.2 GC图形函数总结 121
7.3.1示例1源代码 123
7.4示例2:拖动画椭圆形 129
7.4.1示例2源代码 130
7.5示例3:光栅操作函数的演示 134
7.5.1示例3源代码 138
7.6小结 145
第八章X的标准以及与窗口管理程序的交互作用 146
8.1 X命令行参数 146
8.2显示器名 146
8.3 X几何 147
8.4为窗口创建光标 148
8.4.1光标为正文 149
8.4.2创建自己的光标 152
8.4.3光标资源的释放 153
8.5示例1:接收命令行参数并设置光标 153
8.5.1示例1:源代码 156
8.6示例2:向窗口管理程序发送更多的信息 169
8.6.1分类特征 170
8.6.2窗口大小 171
8.6.3图符名 172
8.6.4示例2源代码 172
8.7小结 177
第二部分 建立一个X窗口系统应用软件 178
第九章Draw应用软件简介 179
9.1浮动选择调色板 179
9.1.1点 180
9.1.2正文 180
9.1.3加载新文件 180
9.1.4消除绘图操作 181
9.2命令行参数 181
9.3特权用户的元按键简缩 182
9.4严格的错误处理 182
9.5处理致命的IO错误 184
9.6小结 186
第十章 多窗口应用程序 187
10.1浮动调色板 187
10.1.1加亮调色板选择项 194
10.1.2刷新调色板窗口 195
10.1.3调色板光标 198
10.2画图窗口 202
10.3 清除X窗口和GC资源 203
10.4 Draw应用程序中的文件格式 204
10.5 象图和窗口 206
10.5.1 XCopyPlane 206
10.5.2用象图进行撤销工作 207
10.6小结 208
第十一章draw应用程序中的事件处理 210
11.1事件屏蔽和事件选择 211
11.2画图事件 212
11.3调色板选择事件 219
11.4正文入口事件 222
11.5键盘简缩输入事件 225
11.6 X服务器产生的事件 228
11.7小结 230
第十二章弹出式窗口和对话框 232
12.1在X中创建弹出式窗口 232
12.2从调色板调出弹出式窗口 234
12.2.1查找鼠标指示器位置 235
12.2.2弹出式文件名对话框 237
12.2.3对话框的实现 238
12.2.4建立对话窗口 241
12.2.5 显示对话窗口的内容 242
12.2.6对话事件 243
12.2.7消除 246
12.3关于瞬间窗口的一些提示 246
12.4小结 247
第十三章Draw应用程序的源代码 249
14.1暴露事件的处理 319
14.2放大 319
第十四章Draw应用程序的改进 319
14.3滚动 320
14.4光标的编辑 320
14.5区域的截取与粘接/移动与拷贝 320
14.6获取 320
14.7倒置、反置或旋转 321
14.8小结 321
第三部分 X的工具箱 322
第十五章X的工具箱简介 323
15.2 Xt示例程序 324
15.2.1初始化Xt库 324
15.1 Xt工具箱 324
15.2.2创建子目标基 325
15.2.3 目标基的管理 326
15.2.4目标基的实现 326
15.2.5目标基事件循环 327
15.2.6 目标基示例程序源代码 327
15.2.7编译Xt程序 329
15.3 X Toolkit的进一步说明 329
15.4小结 329
附录A X的颜色库 330
附录B X事件类型和结构 332
附录C图形关联 344
附录D X客户程序的几个示例 346