前言 1
第1章UNIX经验 1
1.1 GNOME是什么 1
1.2 工具 3
1.2.1 获得方法 3
1.2.2 编辑器、编译器和调试器 3
1.2.3 Autoconf和Automake 5
1.2.4 Libtool 6
1.2.5 国际化 8
1.2.6 CORBA 8
1.3 X Window系统 9
1.3.1 系统 9
1.3.3 X的服务和延展 10
1.3.2 客户端和服务器 10
1.3.4 事件队列 11
1.3.5 X资源 12
1.3.6 图形 12
第2章 GTK+/GNOME系统 14
2.1 GLib 14
2.1.1 简单的数据类型 14
2.1.2 名称空间 15
2.1.3 登录 15
2.1.4 容器 17
2.1.5 其他工具 21
2.2 GDK 23
2.2.1 GTK+连接 23
2.2.2 空洞的软件包 23
2.2.3 GDK事件 24
2.2.5 参考计数 25
2.2.4 绘图的基本要素 25
2.3 GTK+ 26
2.3.1 小控件 26
2.3.2 GTK+键入系统 28
2.3.3 对象类 29
2.3.4 对象属性 31
2.3.5 信号 32
2.4 GNOME 35
2.4.1 核心库 35
2.4.2 图形库 36
2.4.3 组件 36
2.4.4 Gnome-xml 37
3.1.1 运行configure命令 38
第3章GNOME构建环境 38
3.1 配置脚本 38
3.1.2 configure脚本内部结构 39
3.1.3 Makefile变量替换 41
3.2 创建自己的配置 42
3.2.1 autoconf系统 42
3.2.2 配置头文件 43
3.2.3 检查工具 44
3.2.4 检查头文件 45
3.2.5 自定义检查 47
3.2.6 辅助工具 48
3.3 生成makefile 49
3.3.1 GNU makefile规范 49
3.3.2 使用automake工具 52
3.3.3 Automake变量 53
3.3.4 条件编译 56
3.3.5 削减一个分布 58
3.4 处理库 59
3.4.1 Libtool支持 59
3.4.2 libtool化 60
3.4.3 GRUMPY实例 61
3.4.4 显示结果 63
3.4.5 版本号参考 64
3.5 添加GNOME 65
3.5.1 GNOME宏 65
3.5.2 gnome-config工具 66
3.5.3 GNOME Makefile变量 69
3.5.4 autogen、sh脚本 70
3.5.5 Grumpy GNOME实例 71
第4章 国际化 79
4.1 国际化怎样工作 79
4.2 准备源文件 80
4.3 设置环境 81
4.4 创建翻译文件 82
4.5 升级翻译文件 85
4.6 集成到GNOME中 87
第5章 GNOME应用程序 89
5.1 头文件 89
5.2 GnomeApp小控件 89
5.3 主循环 91
5.4 命令行选项 93
5.4.1 popt库 93
5.4.2 增加命令行选项 96
5.5 存储选项 97
5.6 GNOME桌面文件 104
第6章 菜单和工具栏 106
6.1 GTK+菜单系统 106
6.1.1 GTK+菜单 106
6.1.2 GtkMenuItem窗口 107
6.1.3 GtkMenuBar和GtkMenu 108
6.2 GNOME菜单系统 108
6.2.1 GnomeUlInfo结构 109
6.2.2 菜单项目类型 110
6.2.3 菜单中的图形 112
6.2.4 菜单回调函数 114
6.2.5 菜单宏 114
6.2.6 菜单数组实例 117
6.3 GNOME菜单API 119
6.3.1 创建菜单 119
6.3.2 创建工具栏 122
6.4 弹出式菜单 123
6.4.1 单击后弹出 123
6.4.2 在事件中弹出 123
6.5 状态栏 125
6.5.1 GnomeAppBar与GtkStatusbar 125
6.5.2 创建GnomeAppBar窗口部件 125
6.5.3 设置消息 127
6.5.4 更新进度条 128
第7章 对话框 129
7.1 消息对话框 129
7.1.1 信息框 129
7.1.2 问题框 131
7.1.3 消息框 132
7.1.4 GnomeApp消息 134
7.2 GnomeDialog控件 135
7.2.1 创建GnomeDialog控件 135
7.2.2 运行对话框 137
7.2.3 对话框属性 138
7.2.4 关闭对话框 139
7.3 About对话框 140
7.4 属性框 142
7.4.1 创建属性框 142
7.4.2 属性框信号 143
8.1 GNOME系统中的MDI 147
8.1.1 Gnome MDI对象 147
第8章 GNOME 多文档界面 147
8.1.2 MDI样式 148
8.1.3 菜单模板 150
8.1.4 转换 152
8.1.5 注册 152
8.2 GnomeMDI的子对象 152
8.2.1 子对象 152
8.2.2 GnomeMDI子对象的回复 154
8.2.3 使用一般子对象 157
8.2.4 通过反馈函数创建菜单 158
8.3 MDI信号 160
8.3.1 添加和删除信号 160
8.3.2 改变信号 161
8.4 MDI应用程序的示例 162
9.1 GnomeClient 171
第9章 会话管理 171
9.2 会话指令 172
9.3 会话信号 173
9.4 在应用程序中加入会话管理 175
第10章 图形 182
10.1 X Window系统中的图形 182
10.1.1 帧缓冲区 182
10.1.2 颜色表 183
10.1.3 视件 183
10.1.4 可绘区 184
10.1.5 图像 185
10.2 GDK封装 186
10.2.1 简单API 186
10.2.2 在GDK中使用颜色 186
10.3 GdkRGB 188
10.3.1 RGB缓冲区 189
10.3.2 绘图函数 190
10.3.3 颜色管理 191
10.4 Libart 192
10.4.1 向量通道 193
10.4.2 贝济埃通道 194
10.4.3 分类向量通道 194
10.4.4 微平铺数组 195
10.4.5 仿射变换 196
10.4.6 像素缓冲区 198
10.5 Gdk-pixbuf 200
10.5.1 创建 200
10.5.2 绘制 202
10.5.3 缩放 205
10.5.4 分段加载 208
10.5.5 自动配置支持 209
10.5.6 Gdk-pixbuf 应用程序实例 210
第11章 GNOME Canvas工具 222
11.1 概述 222
11.1.1 双缓冲图纸表面 222
11.1.2 Canvas的抽象概念 222
11.1.3 Canvas群 224
11.1.4 事件 224
11.2 坐标系 224
11.2.1 通用坐标 224
11.2.2 对象坐标 225
11.2.4 视窗坐标系 226
11.2.3 Canvas坐标系 226
11.3 使用Canvas 227
11.3.1 GDK模式和AA模式 227
11.3.2 滚动区 228
11.3.3 添加Canvas对象 230
11.3.4 移动Canvas对象 231
11.3.5 变换 233
11.4 Canvas 对象 234
11.4.1 基于向量的绘图对象 234
11.4.2 线条类型 237
11.4.3 对象的形状 238
11.4.4 Canvas中的窗体 240
11.4.5 文本Canvas对象 241
11.4.6 图形Canvas对象 244
11.5.1 事件回应 247
11.5 Canvas事件 247
11.5.2 单击和双击鼠标 248
11.5.3 鼠标移动 251
11.5.4 滚动 253
11.5.5 键盘事件 254
11.5.6 捕获对象 256
11.5.7 拖拉和放置Canvas对象 257
第12章 文档编制 260
12.1 书写文档 260
12.1.1 HTML文档 260
12.1.2 DocBook文档 261
12.2 安装文档 263
12.2.1 帮助目录 263
12.2.2 设置Makefile.am 264
12.2.3 添加topic.dat文件 266
12.3 调用帮助系统 267
12.3.1 帮助浏览器 267
12.3.2 URL处理器 267
12.3.3 提出帮助 268
12.3.4 在菜单中添加帮助 269
12.3.5 在属性框中添加帮助 270
12.4 帮助应用程序实例 271
12.4.1 HTML帮助文件 271
12.4.2 topic.dat文件 272
12.4.3 configure.in文件 272
12.4.4 Makefile.am文件 272
12.4.5 main.c文件 273
12.4.6 编译和运行应用程序 274
附录A GNOME FAQ 276