目 录 1
简介 1
第一章X Window System介绍 4
1.1服务程序和客户程序 6
1.2软件层次 8
1.3事件驱动编程 9
1.4窗口管理程序 10
1.5 X的扩展 10
第二章X Toolkit介绍 11
2.1用目标基编程 11
2.1.1目标基的内容 13
2.1.2 目标基类和实例 13
2.1.3使用资源的目标基可配置性 17
2.1.4目标基的独立性 18
2.1.5 目标基与应用程序之间的相互作用 18
2.1.6 Xt和面向对象编程 20
22 X Toolikt应用程序的结构 23
2.3一个简单的X Toolkit应用程序 23
2.3.1代码 24
2.3.2编译应用程序 26
2.3.3应用程序缺省文件 27
2.3.4硬码(hardcode)和非硬码 28
2.4连接目标基和应用程序代码 29
2.4.1反调用 30
2.4.2动作 32
2.5.1在应用程序中设置和获得资源 38
2.5资源的进一步讨论 38
2.52 Core资源 42
2.53其它继承的资源 43
第三章使用目标基的更多技术 47
3.1使用复合目标基 47
3.1.1为一个实例层次设置资源 49
3.1.2几何管理实践 50
3.2使用限制目标基 51
3.3使用弹出 54
3.4反调用的进一步讨论 60
3.4.1把数据传递给反调用 60
3.4.2反调用表 62
3.5.1应用程序数据结构 63
3.5应用程序资源 63
3.5.2资源表 64
3.5.3获得资源 66
3.6命令行选项 68
3.6.1标准命令行选项 68
3.6.2定义用户自己的命令行选项 68
3.7 防止用户定制目标基资源 72
3.7.1使用vararg接口 72
3.7.2使用argList接口 73
第四章一个应用程序例子 77
4.1 xbitmap1:使用BitmapEdit目标基的位图编辑器 77
4.1.1 目标基的公共函数 80
4.1.2应用程序缺省文件 80
4.2 xbitmap2:增加滚卷条以处理大型位图 80
4.2.2翻译表中的动作参数 84
4.2.3 resize_thumbs动作 84
4.2.1覆盖翻译 84
4.2.4滚卷条的反调用 85
4.3 xbitamp3:增加显示位图的图形 87
4.3.1应用程序的图形 89
4.3.2写位图文件 92
4.4 xbitmap4:不使用BitmapEdit目标基的位图编辑器 93
第五章目标基内部 95
5.1 目标基源文件组织 95
5.2私有头文件——BitmapEdip.h 96
5.2.1部分结构和记录 96
5.2.2类部分和类记录 97
5.2.3实例部分结构和实例记录 98
5.3 目标基实现文件——BitmapEdit.c 99
5.3.1约束包含文件 100
5.3.2定义资源表 101
5.3.3翻译表和动作表 103
5.3.4声明方法 104
5.3.5初始化类记录 105
5.3.6 Core方法介绍 109
5.3.7为应用程序使用而封装类记录 110
5.3.8一个方法例子 110
5.4公共头文件——BitmapEdit.h 112
5.5编写目标基的过程 114
5.6约定总结 115
第六章基本的目标基方法 117
6.1 目标基内部的图形模型 117
6.2方法initialize 118
6.2.1创建GC 119
6.3 expose方法 121
6.4 set_values方法 124
6.5 resize方法 126
6.6 query_geometry方法 128
6.7 destroy方法 130
6.8 目标基框架中的动作 131
第七章事件、翻译和加速器 134
7.1翻译表语法 134
7.1.1指令 135
7.1.2选择翻译的事件 135
7.1.3键盘事件的细节 138
7.1.4其它事件类型的细节 139
7.1.5修饰词 140
7.1.6事件序列 144
7.1.7翻译之间的相互作用 146
7.2加速器 147
7.2.1事件传播 149
7.2.2在多个目标基中安装加速器 151
7.2.3在代码中定义加速器 151
7.2.4 display_accelerators方法 152
第八章更多的输入技术 153
8.1事件处理程序 153
8.1.1增加事件处理程序 155
8.1.2增加不可屏蔽事件处理程序 156
8.1.3删除事件处理程序 157
8.1.4增加纯事件处理程序 157
8.2编写使用专门的事件数据的例程 158
8.2.1事件类型和结构名称 159
8.3.1获得文件输入 161
8.3文件、管道和插座输入 161
8.3.2获得管道输入 163
8.4超时(Timeouts) 163
8.4.1可见性问题 166
8.5工作过程 167
8.6事件队列的低级管理 169
8.6.1 XtPending和XtPeekEvent 169
8.6.2事件过滤程序 170
8.6.3输入敏感性 171
第九章资源管理和类型转换 172
9.1资源基础介绍 172
9.2资源数据库如何工作 175
9.2.1资源规格说明的格式 175
9.2.2资源文件的合并 176
9.2.3语言串 177
9.2.4备份资源 179
9.2.5资源匹配算法 180
9.2.6资源的优先规则 182
9.3类型转换 185
9.3.1 XtRString的转换 185
9.3.2其它已有的类型转换 186
9.3.3不用转换的特殊的缺省资源 187
9.3.4类型转换程序的登录 189
9.3.5显式地激活转换程序 193
9.3.6编写类型转换程序 194
9.4子部份和子资源 196
9.4.1 中继方法 197
9.4.2子资源的管理 197
10.1窗口管理程序交互 199
第十章 客户程序之间通讯 199
10.1.1 Shell子类 200
10.1.2 Shell资源的设置 200
10.1.3屏幕空间 202
10.1.4输入方式 203
10.1.5颜色表 204
10.1.6图符 206
10.1.7窗口管理程序的装饰 207
10.2 目标基之间通讯的选择机制 207
10.2.1原子选择如何工作 208
10.2.2高亮显示选取的数据(属主方面) 210
10.2.3用XtOwnSelection作出选择(属主方面) 215
10.2.4对选择的请求(请求者方面) 216
10.2.5选择的转换(属主方面) 218
10.2.6选择的最终粘贴过程(请求者方面) 220
10.2.7选择放弃时(属主方面) 222
10.2.8选择传送完成时(属主方面) 222
10.2.9 ICCCM的一致性 223
10.2.10增量选择如何工作 226
10.2.11其它的选择程序 227
第十一章几何管理 228
11.1复合管理如何工作 229
11.1.1 初始几何的协商 230
11.1.2复合目标基中基本的Core方法 233
11.1.3孩子目标基的布局 235
11.1.4 change_managed方法 237
11.1.5 XtQueryGeometry和query_geometry方法 237
11.1.6 XtMakeGeometryRequest和geometry_manager方法 238
11.2限制目标基如何工作 239
11.1.7 insert_child和delete_child方法 239
11.3限制目标基的编写 240
11.3.1 Core资源表 240
11.3.2限制资源表 240
11.3.3类结构的初始化 242
11.3.4 Constraint的initialize方法 244
11.3.5 class_part_init方法 245
11.3.6 geometry_manager方法 245
11.3.7 resize方法 249
11.3.8 Core和Constraint的set_values方法 251
11.3.9 change_managed方法 251
11.3.11重新安排几何的延迟处理 252
11.3.10 query_geometry方法 252
11.4组合目标基 253
11.5栈顺序 253
第十二章 菜单、辅助目标基和阶式弹出 255
12.1菜单方式及其实现 256
12.1.1如何弹出菜单 257
12.1.2菜单窗格 258
12.2创建和使用菜单的几种方法 259
12.2.1 呈现式菜单:指示器的获取 259
12.2.2下落式菜 266
12.2.3阶式菜单 268
12.2.4使用第4版的SimpleMenu目标基 272
12.2.5弹出创建的延迟 276
12.4辅助目标基 277
12.3关于对话盒 277
12.4.1辅助目标基内部 280
12.4.2专用头文件 280
12.4.3辅助目标基的源文件 281
12.4.4公共头文件 282
12.4.5辅助目标基父母 282
第十三章其它ToolKit编程技术 286
13.1出错和警告 286
13.2 对象 288
13.3取得信息的宏 289
13.4键盘聚焦和accept_focus方法 290
13.5键盘翻译 291
13.6存储分配 292
13.8 Xt的获取函数 293
13.7动作中继站和动作的直接调用 293
13.9文件的查找和国际化 294
13.10应用上下文 294
13.10.1多重应用上下文 295
13.10.2为多重应用上下文重写XtAppMainLoop 295
13.10.3多重应用上下文中使用的函数 296
13.11多重顶层Shell 296
13.12多重服务程序之间的连接 296
13.13类扩展结构 297
附录A OPEN LOOK和Motif 299
附录B字体和颜色的描述 319
附录C命名习惯 330
附录D版本注释 331
附录E xbitmap应用程序 352