前言 1
第一章 简介 3
1.1 面向对象的程序设计及其工具1.2 X Window System 4
1.3 应用程序与工作站之间的通讯 5
1.4 用户的操作环境 5
1.5 功能的分解和抽象 5
1.6 X Window System工具箱 6
1.7 低层次与高层次应用程序开发方法的对比 6
第二章 面向对象的程序设计和X Window System 9
2.1 面向对象程序设计原理: 9
2.1.1 封闭(Encapsulation) 9
2.1.2 继承性(inheritance) 11
2.1.3 动态联编(DynamicBinding) 11
2.2 使用Xlib图形库进行面向对象的程序设计 12
2.3 用Xt进行面向对象的程序设计 12
2.4 标准的协议与Xt Intrinsics 13
2.5 Xt的Widgets与C++的对象的比较 15
2.5.1 C++类的层次 15
2.5.2 Xt类的层次 17
2.5.3 Widget数据结构 18
2.5.4 比较Widget和对象 21
2.6 其它高级工具 22
第三章 Xlib程序设计的简介 24
3.1 Xclk:一经要求即显示当前时间 24
3.2 X面向显示的操作 25
3.3 Xclk的数据结构及程序初始化 27
3.4 与窗口相关的操作 30
3.5 Xclk中的事件处理 31
第四章 为Xlib应用程序创建高级接口 34
4.1 较高级抽象的重要性 34
4.2 函数调用的方便性及一致性 35
4.3 Xlib的窗口函数的一个高级接口 37
4.3.1 Simplewin.h接口文件 37
4.3.2 Simplewin.c实现文件(Implementation File) 39
4.4 高级接口及软件结构 46
第五章 Xdump:一个X Window System的十六 48
5.1 Xdump:X的一个汇编程序风格的十六进制转贮程序 48
5.2 xdump.c:实现文件 49
第六章 一个高级模块中包含自身的事件循环 54
6.1 实现一个简单的只接受按钮回答的对话框 54
6.1.1 按钮的数据结构 54
6.1.2 分配及重新分配对话框 55
6.1.3 增加一个包含自身的事件循环 58
6.1.4 操作中的对话框 60
6.2 完成一个支持字符串回答的对话框 61
6.2.1 response.h:接口文件 61
6.2.2 对话框的专用支持函数 62
6.2.3 基于字符串及鼠标输入的公有对话框函数 65
6.2.4 操作中的字符串回答的对话框 67
第七章 高级模块中的回调函数及构成 69
7.1 给一个对话框增加回调函数的支持 69
7.1.1 回调函数的数据结构 70
7.1.2 只接受按钮回答的对话框中的回调函数 70
7.1.3 接受字符串回答的对话框中的回调函数 71
7.1.4 操作中的字符串回答的对话框 73
7.2 使用合成来封装高级数据结构 74
7.2.1 回答:字符串回答的数据结构 74
7.2.2 response.c:一个对对话框的三个函数的接口 75
7.2.3 在应用程序中使用Response(响应)类 76
7.2.4 Xlib模块与工具箱比较: 77
第八章 Xt应用程序程序设计简介 79
8.1 Xt应用程序的框架 79
8.2 Xt应用程序中的回调函数 81
8.3 Simplepopup:举例说明回调函数的一个Xt应用程序 83
8.4 Xt应用程序中的动作 88
8.5 Simpleact:一个说明活动的应用程序 89
第九章 为Xt应用程序创建高级的接口 92
9.1 设计一个阻碍式的(blocking)对话框 92
9.2 Respbox.c:阻碍式对话框模块的简介 93
9.3 完成阻碍式对话框 94
9.4 一个应用程序中的阻碍式对话框 98
9.5 处理多个并发的对话框 100
第十章 xwaste一个Xt废纸篓应用程序 101
10.1 废纸篓设计思想 101
10.2 Commondel.c公共的数据结构与操作 104
10.3 delete.c:替代rm(1)的命令行例程 105
10.4 xwaste.c:xwaste的协调模块 110
10.4.1 应用程序资源 110
10.4.2 为废纸篓增加动作(Action) 113
10.4.3 其它数据结构: 114
10.4.4 起动步骤 114
10.4.5 顶层Widget层次 116
10.4.6 xwaste的动作函数 119
10.4.7 xwaste回调函数 120
10.4.8 其它细节——关于键盘焦点(focus) 123
10.5 xwaste.bskt.c:废纸篓模块 124
10.5.1 与xwastebskt相关的数据结构: 124
10.5.2 在浏览器窗口中管理文件名 126
10.5.3 废纸篓文件操作 128
10.6 xwaste.menu.c一个简单的xwaste菜单 131
10.7 alert.c一至三按钮报警框(alertbox) 134
10.8 废纸篓回顾 136
第十一章 Xt widget编程介绍(概述) 138
11.1 Xlib编程的重要性 138
11.2 Xlib编程的缺点 138
11.3 widget编程的重要性 139
11.4 增强现存的widget类 139
11.5 一般widget类 139
11.6 复合widget 140
11.7 widget数据结构及操作简介 143
11.8 widget数据结构 144
11.9 widget类及实例的初始化 147
11.10 继承性 150
11.11 单一与多重继承 152
第十二章 XiStrSelect:设计一个简单widget 155
12.1 Widget命名约定 155
12.2 XiStrSelect:简介 156
12.3 StrSelect.h:公共接口 157
12.4 StrSelectP.h:专用的Widget数据结构 159
12.5 StrSelect.c:执行文件 161
12.5.1 说明(declarations) 161
12.5.2 动作及转换(action and translation) 162
12.5.3 资源 162
12.5.4 类记录 164
12.5.5 XiStrSelect方法 168
12.5.6 动作函数(action functions) 173
12.5.7 公共接口 173
12.5.8 控制脱屏幕象素映象 176
12.6 一个字符串选择框的示例 178
第十三章 XiAlert:设计复合Widget 182
13.1 简单与复合Widget(的对比) 182
13.2 XiAlert:简介 183
13.3 Alert.h:公共接口 184
13.4 AlertP.h专用Widget数据结构: 185
13.5 Alert.c:执行文件 188
13.5.1 资源 188
13.5.2 类记录 188
13.5.3 XiAlert方法 192
13.5.4 公共接口 196
13.5.5 支持函数 199
13.6 一个报警框演示 199
13.7 XiAlert在一个应用程序中 203
第十四章 XiFileSelect:建立一高层widget接口 204
14.1 widget类的复用性 204
14.2 XiFileSelect:概述 204
14.3 FileSelect.h:公共接口 205
14.4 FileSelecP.h:专用widge.数据结构 206
14.5 FileSelect.c执行文件 208
14.5.1 资源 208
14.5.2 类记录 210
14.5.3 XiFle Select方法 212
14.5.4 动作(action)函数 217
14.5.5 公共接口 217
14.5.6 专用的回调函数 219
14.5.7 低层,依赖于系统的函数 220
14.6 一个文件选择框的演示 222
14.7 XiFileSelect与OSF/Motif的XmFleSelectionBox的对比 224
第十五章 XiButton:低级的非命令按钮 225
15.1 XiButton:简介 225
15.2 Button.h:公用的接口 226
15.3 ButtonP.h:专用的Widget数据结构 227
15.4 Button.c:工具文件 227
15.4.1 动作及转换 227
15.4.2 资源: 228
15.4.3 类记录 228
15.4.4 XiButton方法 229
15.4.5 动作函数 231
15.4.6 公共接口 231
15.4.7 辅助函数 233
第十六章 XiChoice:一个面向按钮的选择框 236
16.1 XiChoice:简介 236
16.2 Choice.h:公用接口 237
16.3 ChoiceP.h:专用的Widget数据结构 240
16.4 Choice.c:补充文件 241
16.4.1 资源 241
16.4.2 类记录 242
16.4.3 XiChoice方法(方法) 243
16.4.4 公用接口 247
16.4.5 辅助函数 252
第十七章 在应用程序中使用Xi Widget集合 254
17.1 xdelete:从一个文件选择框中删除一个文件 254
17.2 xconvert:十六进制的转换功能 256
附录A 显示屏幕模块 261
附录B xclk:一个X Window系统的时钟应用程序 263
附录C 字符和字符串显示模块 270
附录D 面向文本的窗口模块 272
附录E xdump:一个X Window系统的十六进制转储实用程序 282
附录F 面向按钮的对话框模块 286
附录G 具有回调函数支持的对话框 303
附录H Xt应用程序中的回调函数 323
附录I Xt应用程序中的动作函数 326
附录J 对话框的顶层Xt模块 330
附录K wasteasket:一个通用的Wastebasket实用程序 337
附录L 杂项库函数 372
附录M XiStrSekect:一个抽象化的字符串选择Widget 374
附录N XiAlbert:一个通用的Albert Widget 390
附录O 修改xwaster的alert.c模块以合并XiAlert 404
附录P XiFileSelect:一个通用文件选择Widget 407
附录Q XiButton:一个非命令的按钮Widget 428
附录R XiChoice:一个可配置的选项选择Widget 443
附录S xdelete:一个文件删除实用程序 467
附录T xconvert:一个基本版本的实用程序 469
附录U XiSImpleText:一个单线文本项Widget 474