目 录 1
第一篇引 论 1
第一章X窗口系统介绍 1
1.1 X窗口系统的产生背景及发展现状 1
1.2 X的结构组成及特点 2
1.2.1 X服务器 3
1.2.2 X协议 3
1.2.3 Xlib 3
1.2.5 X窗口系统的特点 4
1.2.4 X工具箱 4
1.3 X的概念、原理及应用编程 5
1.3.1 X的几个基本概念 6
1.3.2窗口 7
1.3.3像图和可画体 8
1.3.4绘图和图形上下文 9
1.3.5输入设备:键盘和鼠标 9
1.3.6 X的事件驱动方式编程 9
1.4 X工具箱 10
1.5应用程序开发的低级和高级方法 10
2.1 OO方法的起源 12
第二章面向对象程序设计与X窗口系统 12
2.2面向对象程序设计与窗口系统 13
2.3面向对象的程序设计原则 13
2.3.1封装 14
2.3.2继承 16
2.3.3动态联编 16
2.4 Xlib与面向对象程序设计 17
2.5 Xt与面向对象程序设计 17
2.6 Xt构件与C++对象 18
2.6.1 C++类分层结构树(Class Hierarchy) 18
2.6.2 Xt的类分层结构树(An Xt Class Hierarchy) 20
2.6.3构件数据结构 21
2.7 Xt与C++的面向对象程序设计比较 25
第二篇Xt应用程序设计 27
第三章Xt应用程序设计综述 27
3.1 Xt应用程序框架 27
3.2 Xt应用程序中的反调用函数 30
3.3一个使用反调用函数的Xt应用程序例 32
3.4 Xt应用程序中的动作函数 38
3.5 一个使用了动作函数的Xt应用程序例 39
4.1设计阻塞式对话框 43
第四章开发更高层接口 43
4.2 respbox.c:阻塞式对话框程序模块介绍 44
4.3实现阻塞式对话框 46
4.4一个使用了阻塞式对话框的应用程序 50
4.5关于处理多个并发对话框的问题 53
第五章一个大型的Xt应用程序例 54
5.1设计考虑 54
5.1.1方案 54
5.1.2具体设计问题 55
5.2 commondel.c:公共数据结构和操作 56
5.1.3模块分解 56
5.3 delete.c:命令行删除程序 60
5.4 xwaste.c:xwaste的总控模块 65
5.4.1应用程序资源 66
5.4.2为废物箱浏览器增加动作函数 69
5.4.3其它数据结构 70
5.4.4 main()函数:启动操作考虑 71
5.4.5顶层构件实例树分析 74
5.4.6 xwaste的动作函数 77
5.4.7 xwaste的反调用函数 79
5.5 xwaste.bskt.c:废物箱模块 84
5.4.8键盘聚焦函数 84
5.5.1与废物箱有关的数据结构 85
5.5.2管理废物箱浏览器窗口中的文件名 88
5.5.3废物箱文件操作 91
5.6 xwaste.menu.c:xwaste的菜单模块 94
5.7报警盒模块:alert.c 97
5.8 xwaste的构件实例树 100
5.9回顾与总结 102
6.2 Xlib编程的缺点 104
6.1 Xlib编程的重要性 104
第六章Xt构件程序设计综述 104
第三篇Xt构件程序设计 104
6.3构件编程的重要性 105
6.4扩充现有的构件集 105
6.5开发通用的构件类 105
6.6组合式构件 105
6.7构件数据结构和操作综述 107
6.8构件数据结构 109
6.9构件类和实例初始化 113
6.10继承 115
6.11单继承和多继承 118
7.2 XiStrSelect:简介 121
第七章设计简单构件 121
7.1构件命名约定 121
7.3 StrSelect.h:公共接口 122
7.4 StrSelectP.h:构件私有数据结构 125
7.5 StrSelect.C:实现文件 127
7.5.1声明 127
7.5.2动作函数表和翻译表 128
7.5.3资源 129
7.5.4类记录 130
7.5.5 XiStrSelect的方法函数 136
7.5.6动作函数 143
7.5.7公共接口函数 144
7.5.8操作脱屏像图 147
7.6字符串选择构件演示程序 150
第八章设计组合式构件 155
8.1简单构件与组合式构件比较 155
8.2 XiAlert:综述 156
8.3 Alert.h:公共接口 156
8.4 AlertP.h:构件私有数据结构 158
8.5.1资源 161
8.5 Alert.c:实现文件 161
8.5.2类记录 162
8.5.3 XiAlert方法函数 166
8.5.4公共接口函数 172
8.5.5支撑函数 175
8.6一个报警盒演示程序 176
8.7应用程序中的XiAlert 181
第九章设计高层接口构件 182
9.1构件类的可复用性 182
9.2构件XiFileSelect功能及实现简述 182
9.3 FileSelect.h:公共接口 183
9.4 FileSelectP.h:类私有数据结构 184
9.5 FileSelect.c:实现文件 187
9.5.1资源 188
9.5.2类记录 189
9.5.3方法函数 191
9.5.4动作函数 197
9.5.5公共接口函数 198
9.5.6私有反调用函数 200
9.5.7与系统有关的低级函数 201
9.6一个文件选择盒演示程序 204
9.7 XiFileSelect与OSF/Motif的XmFileSelectionBox 206
10.1 XiButton的功能及总体设计 207
第十章设计非命令式的选择按钮 207
10.2 Button.h:公共接口 208
10.3 ButtonP.h:私有数据结构 208
10.4 Button.c:实现文件 210
10.4.1动作函数表和翻译表 210
10.4.2资源表 210
10.4.3类记录 211
10.4.4 XiButton的方法函数 212
10.4.6公共接口函数 215
10.4.5动作函数 215
10.4.7其余的低级支撑函数 217
第十一章一个由按钮组成的选盒 221
11.1 XiChoice总体设计 221
11.2 Choice.h:公共接口 222
11.3 ChoiceP.h私有数据结构 224
11.4 Choice.c:实现文件 226
11.4.1资源 227
11.4.2类记录 228
11.4.3 XiChoice方法函数 230
11.4.4公共接口函数 235
11.4.5其余的低级支撑函数 241
第十二章使用Xi构件集开发应用程序 243
12.1 xdelete:文件删除实用程序 243
12.2 xconvert:整型数转换程序 246
附录 253
附录1 Xt应用程序中的反调用函数 253
附录2 Xt应用程序中的动作函数 258
附录3一个对话框高层模块 263
附录4废物箱实用程序 272
附录5杂项函数 320
附录6一个通用的字符串选择构件 322
附录7一个通用的报警盒构件 345
附录8用报警盒构件修改废物箱程序的模块alert.c 364
附录9一个文件选择盒构件 367
附录10一个非命令式按钮构件 395
附录11一个可配置的多项选盒构件 414
附录12一个文件删除实用程序 447
附录13一个整数基转换实用程序 450
附录14一个单行正文编辑构件 457
参考文献 471