图书介绍
Xlib程序设计手册PDF|Epub|txt|kindle电子书版本网盘下载
![Xlib程序设计手册](https://www.shukui.net/cover/5/34348760.jpg)
- 刘连芳,廖宏,黄永宁等译 著
- 出版社: 南宁:广西科学技术出版社
- ISBN:7805654484
- 出版时间:1991
- 标注页数:514页
- 文件大小:24MB
- 文件页数:536页
- 主题词:
PDF下载
下载说明
Xlib程序设计手册PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
引言1
关于这本手册的说明1
内容概要1
目录1
如何使用这本手册2
实例程序3
一些要求3
手册中用到的字体约定3
有关文件3
欢迎指教4
关于发行执照4
致谢4
第一章引言6
1.1 X的版本6
1.2 X窗口系统概念6
图目录7
1-1. 由多个屏幕组成的显示系统7
1.2.2服务器-客户模式7
1.2.1显示器和屏幕7
1-2. 应用程序可以在横跨网络的任何系统上运行8
1.2.3窗口管理9
1.2.5对X的扩展10
1.2.4事件10
1.3 X窗口系统软件结构10
1.4 Xlib概貌11
1-3. 客户程序通过Xlib调用与服务器进行通信11
1-1.Xlib按功能分组的子程序12
表目录12
2.1 Xlib如何工作14
第二章X概念14
2.1.2缓冲15
2-1. 客户程序与服务器15
2.1.1 X协议15
2.1.3资源16
2-2. 服务器的事件队列和每个客户程序的事件队列17
2.1.4特性和标识号17
2.1.5窗口管理程序18
2-3. 用于建立窗口的xmh应用程序的例子19
2.2窗口是什么?19
2.2.1窗口特征20
2.2.2树形层次21
2-4. 窗口构造的组成成分21
2-5. 屏幕上的一个窗口层次22
2.2.3坐标系23
2-6. 窗口层次结构的图示23
2-7. 坐标系24
2.2.5映射和可见性24
2.2.4窗口叠次序(stacking order)24
2.3.1象点和颜色25
2.3 X图形入门25
2-8. 用着色图把象点值映射成颜色26
2.3.2象点和色板26
2.3.4画图和图形信息27
2.3.3三维象点图和可画物(drawable)27
2.4窗口特性的进一步介绍28
2-9. 如何用贴砖铺贴窗口的背景28
2.3.5贴砖和贴片28
2.4.2窗口结构29
2.4.1窗口属性29
2.4.4深度和着色类型30
2.4.5缩微窗口图象30
2.4.3类型、输入/输出和只输入窗口30
2.4.6根窗口的特殊性质31
2-10. 一个应用程序和它的缩微窗口图符31
2.5事件入门31
2.5.2事件的选择和传播32
2.5.1事件指什么32
2.5.3事件队列33
2.5.4事件结构33
2.6.1.1设计要求34
2.6.1设计一个应用程序34
2.6如何用Xlib进行程序设计34
2.5.5事件循环34
2.6.1.2用户接口35
2.6.2.2编译和链接X程序36
2.6.2.1用户缺省36
2.6.2编写X应用程序36
2.6.2.4使用结构、符号和表征码37
2.6.2.3命名约定37
2.6.3调试X应用程序38
2.6.2.5运行性能的优化38
2.6.3.2结构XErrorEvent39
2.6.3.1错误39
2.6.3.3同步的错误40
第三章基本的窗口程序41
3.1运行程序41
3.2Basicwin的主程序42
3-1. 程序basicwin的输出42
3.2.1包含文件和变量说明42
3.2.2与服务器连接44
3.2.3显示宏命令46
3.2.4获取窗口信息46
3.2.5建立窗口48
3.2.6颜色策略49
3.2.7准备图符的三维象点图50
3.2.8与窗口管理程序通信51
3.2.10建立资源54
3.2.9选择所希望的事件类型54
3.2.13建立事件采集循环55
3.2.12发送输出缓冲区55
3.2.11窗口映射55
3.2.13.1重画窗口58
3-2. 由一个用户动作引起的多个显露事件59
3.2.14什么时候可以画东西?63
3.2.16管理窗口尺寸的重设63
3.2.15所画的内容什么时候显现?63
3.2.17退出程序64
3.2.19小结65
3.2.18错误管理65
3.2.20 basicwin的全部源程序66
4.2窗口属性结构74
4.1建立窗口属性74
第四章窗口属性74
4-1. 窗口属性表征码符号75
4.3可通过程序设置的属性77
4-2. 可以单独设置的属性77
4.3.1窗口背景78
4.3.1.1 background_pixmap78
4.3.1.2 background_pixel79
4.3.2窗口边框79
4.3.2.1 border_pixmap79
4.3.2.2 border_pixel80
4.3.3内容重定位80
4-1. 画图程序的bit_gravity81
4.3.4窗口重定位82
4-2. 窗口重定位起作用的子窗口位置82
4.3.5后备存储83
4.3.6存储隐匿内容84
4.3.7事件处理85
4.3.8废除转送子结构重构请求特性85
4.3.10光标86
4.3.9着色图86
4.3.11窗口属性的缺省值87
4-3. 窗口属性的缺省值87
4.4结构XWindowAttributes的信息88
第五章图形信息90
5.1建立和设置图形信息91
5-1. 一个实心多边形的“源”91
5-1. 设置XGCValues结构的符号93
5.1.1建立和设置GC的例子94
5.2图形信息之间的转换95
5.3控制图形元语的影响96
5-2. GC中的逻辑函数97
5.3.1逻辑函数97
5-2a. 逻辑函数GXcopy的作用98
5-2b. 逻辑函数GXxor的作用98
5-2c. 逻辑函数GXand的作用99
5.3.2色板表征码99
5.3.3剪辑表征码99
5-3.plane_mask在12色板显示器上的作用100
5.4前景和背景100
5-5. 用XDrawlmageString画字符时,前景和背景的使用101
5-4. 使用剪辑原点定位相对于可画物的位置101
5.5线段特征101
5.5.1线宽102
5.5.4连接样式103
5-6. 线段样式103
5.5.2线段样式103
5.5.3线段端点的样式103
5-7. 线段端点的样式104
5.5.5长划线表和间距104
5-8. 线段连接样式105
5-9. 8象点宽的线段JoinRound说明105
5.5.6设置线段特征的例子107
5-10. 用例5-6中设置的GC画出的线108
5.6形成图案108
5-11. 用贴砖铺贴一个区域109
5.6.1贴砖109
5.6.2贴片110
5.6.3贴砖和贴片的尺寸110
5.6.4填充方式110
5.6.5填充规则111
5-13. 填充封闭多边形的常量fill_rull111
5-12. 在小三维象点图上示范fill_style111
5.6.6用于填充的弧方式112
5-14. 填充弧用的orc_mode常量112
5.7图形的显露113
5.8字体113
5.9子窗口方式114
5.10客户程序间共享GC114
5-15. 拷贝部分不可用的区域114
5-3. 图形信息缺省值115
5.11图形信息的缺省值115
第六章画图形和正文116
6.1画图116
6.1.1度量图形117
6-1.XDrawArc或者XDrawArcs的角度度量117
6.1.2画图实例118
6.1.3库程序draw_box119
6.1.5建立贴砖或贴片120
6.1.4填充120
6-2. 具有相同参数的XFillRectangle和XDrawRectangle画象点的效果对照121
6.1.6拷贝和清除区域123
6.2字体和正文123
6.2.1字符格式124
6.2.2装载字体124
6-3. XClearArca—— 当width或者height参数为0时,清除的区域124
6.2.3字符125
6.2.3.1结构XCharStruct126
6-4. 两个字符的尺度信息126
6.2.4正文的定位129
6.2.5画正文库程序130
6-5. 字符串的垂直定位130
6.2.6画正文的库程序131
6-1. 字体特性134
6.2.7字体特性135
6.3区136
6.2.8设置字体路径136
6.4 映象137
6.3.3返回有关区的信息137
6.3.2区的计算137
6.3.1区的移动和重新设置尺寸137
6.4.1管理映象139
6-6. bitmap_unit=16的映象的位和字节次序140
6.4.2使用映象的例子140
7-2. 象点值到RGB的映射:序140
6.5二维象点图的管理141
6.6光标141
6.6.1标准的光标字体143
6.6.2装载和改变光标144
7.1基本彩色项和概念145
第七章颜色145
7.2.2单色和灰度等级(Grayscale)146
7.2.1中等范围彩色显示器146
7-1. 象点值到RGB映象:彩显上利用着色图146
7-1. 象点值到RGB映象:彩显上利用着色图146
7.2显示硬件上的差别146
7.2.3高性能彩色显示器147
7-2. 象点值到RGB的映射:灰度显示器和单色显示器147
7.2.4 X如何管理不同的显示器类型148
7-3. 象点值到RGB的映射:高性能彩色显示器148
7.2.5可共享与可修改性149
7-1. 着色类型比较149
7-4. 着色类型等级150
7.2.6缺省着色类型150
7-2. 各种服务器上缺省着色图的着色类型151
7.2.7缺省着色图151
7.3分配共享颜色152
7.3.1 XColor结构153
7.3.2颜色名数据库153
7-3.颜色数据库154
7.3.3十六进制颜色说明155
7.3.4分配标准颜色的程序156
7.3.5指定明确的RGB值157
7-4. 指定粉红色的四种方法158
7.3.6选择缺省颜色158
7.4存贮客户私有的颜色159
7.4.1为图形的相互覆盖分配读/写色素160
7.4.2使用XAllocColorPlanes163
7.4.3单色显示器里的高亮度165
7.5建立和安装着色图165
7.5.1处理着色图的函数166
7.5.2事件ColormapNotify167
7.5.3需求着色图表(The required Colormap List)168
7.6标准着色图168
7.6.1标准着色图特性169
7.6.2结构XStandardColormap170
7-5. 将象点子字段移进象点值171
7.6.3 3/3/2标准着色图171
7.6.4安装标准着色图171
7.6.5 RGB值转换为象点值的例子172
7.7编写可移植的彩色程序174
7.7.1单色与彩色174
7.7.2检查着色类型175
7.7.3获取有关着色类型的信息176
7.7.3.1选择着色类型的实例177
7.8杂类颜色管理库程序179
第八章事件180
8.1事件处理概论180
8.2事件处理181
8.2.1事件结构181
8.2.2事件类型和XEvent联合182
8.2.3事件队列183
8.2.4处理事件183
8-1. 服务器的事件队列和每个客户程序的事件队列183
8.2.5输出事件类型187
8.2.6获取事件的库程序188
8-1. 读取事件库程序190
8.2.7判断子程序191
8.3选择事件193
8-2. 事件mask定义193
8.3.1事件表征码与事件间的对应关系195
8-3. 事件表征码,事件类型以及事件结构195
8.3.2设备事件的传播197
8-2a. 一种可能的选择方案198
8-2b. 另一种可能的选择方案198
8-2c. 又一种可能的选择方案199
8.3.2.1键盘聚焦窗口199
8.3.2.2独享键盘和指示器200
8.3.3.2 ButtonPressMask,ButtonReleaseMask和OwnerGrabButtonMask201
8.3.3事件表征码201
8.3.3.1 KeyPressMask和KeyReleaseMask201
8.3.3.3定位器运动表征码202
8.3.3.4 FocusChangeMask202
8.3.3.5 EnterWindowMask和LeaveWindowMask202
8-3. 降低窗口C产生成的Expose事件203
8.3.3.6 KeyMapStateMask203
8.3.3.7 ExposureMask203
8.3.3.9 ColormapChangeMask204
8-4. 引起VisibilityNotify事件的可见性转换204
8.3.3.8 VisibilityChangeMask204
8.3.3.10 PropertyChnageMask204
8.3.3.12 SubstructRedirectMask205
8.3.3.11 StructureNotifyMask和SubstructuredNotifyMask205
8.3.3.13 ResizeRedirectMask206
8.3.3.14自动选择事件206
8.4发送事件207
8-5. 介绍事件的其它章节208
8.5在何处有关每一个事件的更多资料208
9.1键盘210
第九章键盘和定位器210
9.1.1简单的键盘输入212
9.1.1.1获取字符串——对话窗口213
9.1.2键盘映射217
9.1.2.1键盘符号到字符串的映射218
9.1.2.2功能转换键219
9.1.2.3键代码到键符号的映射220
9-1. 逻辑功能转换键与一个典型的功能转换键的映射220
9.1.3键符号的背景221
9.1.3.1键符号的设计221
9.1.3.2键符号意义的约定222
9.1.4改变服务器范围的键盘映射222
9.1.4.1改变键代码到键符号的映射222
9.1.4.2改变功能转换224
9.1.5其它键盘管理库程序225
9.1.4.3改变X11.1的功能转换键映射225
9.2.1.1 获取所有的移动事件226
9.2定位器226
9.2.1跟踪定位器移动226
9.2.1.2使用定位器移动条件特性229
9.2.1.3移动历史232
9.2.2管理定位器按钮事件234
9.3边界跨越和键盘聚焦改变事件238
9.2.3改变定位器按钮映射238
9.2.4移动定位器238
9.3.1事件KeymapNotify240
9.4独享键盘和定位器240
9.5键盘缺省值242
9.5.1设置键盘缺省242
9-2. 键盘缺省值的设置——缺省值及范围243
9.5.2获取键盘缺省值244
9.6定位器缺省值244
第十章客户程序通信245
10.1特性和标识符245
10.2与窗口管理程序通信246
10.2.1客户程序的作用246
10.2.1.1建立一个顶层窗口246
10.2.2客户程序设置的特性247
10-1. 窗口管理程序条件特性项248
10.2.2.1XA_WM_NAME248
10.2.2.4应用程序命令及参数249
10.2.2.3 XA_WM_ICON_NAME249
10.2.2.2 XA_WM_CLASS249
10.2.2.5窗口尺寸条件特性——正常的和放大的窗口250
10-2.XSizeHints标志251
10-3. 设置和获取尺寸条件特性的库程序252
10.2.3其它的窗口管理程序条件特性252
10.2.3.1标志字段253
10.2.3.2输入字段和输入聚焦253
10-4. 窗口管理程序条件特性的标志253
10-5. 初始状态条件特性标志254
10.2.3.4图符条件特性254
10.2.3.3初始状态字段254
10.2.3.6临时窗口256
10.2.3.5窗口组256
10.2.5客户程序对窗口管理程序活动的响应257
10.2.4.1 XA_WM_ICON_SIZE257
10.2.4由窗口管理程序设置的特性257
10.3选择区258
10.3.1选择机构258
10.3.2选择区的例子259
10.3.3取得选择区所有权260
10.3.4选择区拥有者的责任261
10.3.5放弃选择区所有权262
10.3.8再谈选择特性和类型263
10.3.7大量数据的传送263
10.3.6请求选择区263
10.4剪裁缓冲区264
10.3.8.1目标标识号264
10-6. 内部特性类型265
第十一章管理用户缺省值266
11-1. 用XGetDefault处理用户缺省值的过程267
11.1使用XGetDefault267
11.2在应用程序里使用X11.2的资源管理程序273
11-2. 用资源管理程序处理缺省值的过程274
11.4管理用户缺省值数据库274
11.3标准几何参数274
11-3. 假设xmail显示276
11.4.1紧密粘结和松散粘结277
11.4.3存贮/访问规则278
11.4.2-name选择项278
11-1. 类设置279
11.5.1将资源放进数据库280
11.4.4资源管理程序值及表示类型280
11.5其它资源管理库程序280
11.5.2资源管理程序标识码281
第十二章一个完整的应用程序282
12.1 basecalc介绍282
12-1. 屏幕上的应用basecalc283
12.2包含文件284
12.3 basecalc的主程序284
12.4获取用户缺省值285
12.4.1 Basecalc的用户缺省值286
12.4.2命令行语法分析286
12.4.3获取数据库290
12.4.4从数据库中获取选择项292
12.6初始化计算器296
12.5打印有关用法的信息296
12.7形成窗口301
12.8选择事件301
12.9处理事件302
12.10画‘按键’305
12.11没有列出的子程序306
第十三章其它程序设计技巧308
13.1屏幕保存器(Screen Saver)308
13.2来自其它主机和结点的访问308
13.2.1增加、删除或者列出主机308
13.2.2允许和禁止访问控制309
13.3窗口层次结构的获取309
13.4关闭方式309
13.5连接关闭操作310
13.6数据管理311
13.6.2相关表311
13.6.1上下文相关管理程序311
13.7随后库程序(The after function)312
13.8坐标变换312
13.9将程序移植到X环境312
13.10 X扩展程序的使用313
13.9.1从X10向X11移植313
第十四章窗口管理315
14.1外观规定315
14.2转送子结构重构请求316
14.3.1 阴影317
14.3重设父窗口317
14-1. 背景阴影318
14-2. 背景阴影的窗口层次318
14.4窗口安全记录319
14-3. 阴影试验的实际效果319
14.5.2设置图符尺寸320
14.5.1读取条件特性320
14-1. 窗口管理程序的条件特性320
14.5窗口管理程序——客户程序通信320
14.6窗口管理程序功能321
14.7基本窗口管理程序322
14-3. 没有兄弟窗口的叠状态的含义322
14-2. 给出兄弟窗口的叠状态的含义322
14.7.1程序的操作323
14-4.winman生成的菜单323
14.7.2主程序说明324
14.7.4选择输入332
14.7.3窗口分层332
14-5. 菜单的窗口层333
14.7.5管理输入333
14.7.6转换区域的颜色334
14.7.9绘制菜单335
14.7.8独享定位器335
14.7.7光标335
14.7.10循环窗口336
14.7.11提升及降低窗口337
14.7.12移动窗口或改变窗口尺寸338
14-6. 拖动窗口轮廓343
14.7.13缩微或复原窗口343
14.7.14建立图符347
14.7.15获取图符尺寸349
14.7.16更新图符表351
14.7.17删除图符352
14.7.18改变键盘焦点352
14.7.19画聚焦窗口外框355
14.7.20执行shell命令356
14.8窗口管理程序未解决的问题357
附录A术语汇编358
附录B X10的兼容性372
XDraw和XDrawFilled372
B-1.顶点标志值373
附录C编写X的扩展程序375
基本协议支持库程序375
连结Xlib376
扩展程序的初始化376
连结程序库376
XESetCreateGC377
XESetCopyGC377
XESetCloseDisplay377
XESetCreateFont378
XESetFreeGC378
XESetFreeFont378
XESetWireToEvent379
XESetEventToWire379
XESetErrorString380
XESetError380
XFindOnExtensionList381
XAddToExtensionList381
XESetFlushGC381
连结Xlib数据结构381
图形批处理382
GC缓存382
分配一个资源ID382
请求的格式384
请求、回答和Xproto.h384
编写扩展的二级程序384
发送协议请求和参数386
数据结构的锁定386
开始编写二级功能程序386
可变长度参数387
应答388
可移植性考虑389
同步调用389
内存的分配和释放389
衍生正确的扩展程序操作码390
附录D应用程序basecalc391
附录E事件参考430
公用结构成分的意义430
ButtonPress,ButtonRelease433
CirculateNotify435
CirculateRequest436
ClientMessage437
ColormapNotify439
ConfigureNotify440
ConfigureRequest442
CreateNotify444
DestroyNotify446
EnterNotify,LeaveNotify447
E-1. 跨越边界事件和窗口的关系449
E-2. 事件的detail成分和窗口关系450
E-1. 定位指针在窗口间移动时所产生的事件451
E-2. 在各种窗口关系情况下,指针从窗口A转移到窗口B时451
产生的边界跨越事件和事件的detail成分451
Expose452
FocusIn,FocusOut454
E-3. 事件FocusIn和FocusOut以及各窗口的关系455
E-4. 事件的detail成分和窗口关系456
E-3a. 事件FocusIn和FocusOut示意图457
E-3b. 事件FocusIn和FocusOut示意图458
GraphicsExpose,NoExpose459
GravityNotify461
KeymapNotify462
KeyPress,KeyRelease464
MapNotify,UnampNotify466
MappingNotify468
MapRequest470
MotionNotify471
PropertyNotify473
ReparentNotify474
ResizeRequest475
SelectionClear476
SelectionNotify477
SelectionRequest478
VisibilityNotify479
E-5. 结构XVisibilityEvent的state值480
选择区约定的状况481
同级通过选择区通信481
简介481
附录F客户程序间通信约定提案481
询问选择区拥有权482
选择区拥有者的责任483
放弃选择区的所有权484
自愿放弃484
强制放弃484
请求一个选择区485
大量数据传送486
选择区标识符的用途487
选择区PRIMARY488
目标标识符488
选择区CLIPBOARD488
选择区SECONDARY488
选择标识符488
选择区特性的用途489
STRING特性489
INDIRECT特性489
F-1. 目标标志符及其含义490
INCREMENTAL特性490
客户程序与窗口管理程序的通信491
客户程序的动作492
建立顶层窗口492
客户程序特性493
XA_WM_NAME493
XA_WM_ICON_NAME494
XA_WM_NORMAL_HINTS494
XA_WM_HINTS495
F-2. 输入方式497
WM_TRANSIENT_FOR498
窗口管理程序特性498
WM_CLASS498
配置窗口499
映射窗口和解除对窗口的映射499
键盘聚焦500
着色图501
缩微窗口图符502
弹出式窗口502
窗口组502
客户程序对窗口管理程序操作的响应503
移动503
重新设置尺寸503
(非)缩微化503
着色图的修改503
键盘聚焦504
ClientMessages504
窗口管理程序约定的状态504
客户程序对会话管理程序操作的响应505
终止505
WM_CLIENT_MACHINE505
终止505
客户程序与会话管理程序的通信505
WM_COMMAND505
特性505
客户程序的作用505
会话管理程序的状态约定506
共享资源的处理506
键盘聚焦506
定位器506
着色图507
致谢507
附录G版本注释508
获得X软件509
附录H其它信息来源509
故障修复510
网络新闻511
其它Xlib书籍512
电话支持513
培训513
工具箱513
H-1. X集团513
自我发现514
X集团613