第1章 GTK+/GNOME概述 1
1.1 X Window System 1
1.2 桌面管理器 3
1.3 为什么要使用GTK+和GNOME 5
1.4 准备使用GTK+和GNOME 6
1.4.1 Tarballs 7
1.4.2 二进制程序包 8
1.5 GTK+/GNOME开发 9
1.6 GTK+/GNOME库 10
1.6.1 GLib 10
1.6.2 GDK 10
1.6.3 GTK+ 11
1.6.4 ImLib 11
1.6.5 GNOME 11
1.6.6 libGnome 11
1.6.7 libGnomeUI 11
1.6.8 LibGnorba 11
1.6.9 libart_lgpl 12
1.6.10 其他的库 12
1.7 开发应用程序 13
1.8 信息资源 17
1.9 本章小结 19
第2章 GLib 21
2.1 编译GLib应用程序 21
2.2 GLib数据类型 22
2.3 宏 24
2.4 错误检测 28
2.5 使用内存 29
2.6 表 32
2.6.1 表结构 33
2.6.2 建立和删除表 32
2.6.3 增加表项 32
2.6.4 在表中移动 34
2.6.5 使用比较函数 35
2.7 树 38
2.8 扩展数据类型 42
2.8.1 GString 42
2.8.2 串实用函数 44
2.9 计时器 46
2.9.1 建立和删除计时器 46
2.9.2 启动. 停止和重置计时器 46
2.9.3 查看计时器 47
2.9.4 幽灵计时器 47
2.10 本章小结 49
第3章 GTK+介绍 50
3.1 基础知识 50
3.1.1 基于非对象的面向对象的程序设计 52
3.1.2 初始化GTK+ 54
3.1.3 建立并显示窗口 54
3.1.4 gtk_main循环函数 55
3.1.5 编译和运行GTK+应用程序 55
3.1.6 gtk_config实用工具 55
3.1.7 运行应用程序 56
3.2 信号 57
3.2.1 连接信号 58
3.2.2 编写信号处理程序 59
3.2.3 事件 60
3.2.4 信号和事件的作用 61
3.2.5 断开信号连接 65
3.3 本章小结 65
第4章 控制用户界面的布局 67
4.1 窗口的介绍 67
4.1.1 给窗口加标题 67
4.1.2 窗口的尺寸和位置 68
4.1.3 将控件添加到窗口 71
4.1.4 将按钮添加到窗口 72
4.1.5 给窗口添加多个按钮 75
4.2 更好的容器 75
4.2.1 包装框 76
4.2.2 包装框的进一步介绍 84
4.2.3 表 86
4.3 本章小结 91
第5章 神奇的窗口小部件 92
5.1 概述 92
5.2 GtkLabel─标签窗口小部件 94
5.3 GtkEntry─获得用户的文本 97
5.4 GtkToggleButtons─开/关按钮 103
5.5 复选钮 105
5.6 单选钮 106
5.7 帧 109
5.8 本章小结 111
第6章 列表和批量数据窗口小部件 112
6.1 GtkList─基本的列表窗口小部件 112
6.1.1 将整个列表加到列表框 116
6.1.2 处理选择 121
6.2 可视项和滚动 124
6.3 GtkCombo. Combo框 124
6.4 GtkCList─新列表框 127
6.4.1 CList基础知识 127
6.4.2 将项加入到列表 129
6.4.3 CList选择 131
6.5 本章小结 131
第7章 对话框 133
7.1 建立自己的对话框 133
7.1.1 对话框和GtkWindow 134
7.1.2 关于gtk_main的更多内容 138
7.1.3 GtkDialog─预建的GtkWindow 140
7.2 使用内建对话框 142
7.2.1 GtkFileSelection 142
7.2.2 GtkColorSelectionDialog 146
7.3 本章小结 147
第8章 菜单 148
8.1 菜单概述 148
8.1.1 逐步地建立菜单 148
8.1.2 菜单的响应 154
8.1.3 菜单反馈 154
8.2 单选菜单项 154
8.3 加速键 155
8.4 利用Item Factory建立菜单 159
8.5 弹出菜单 162
8.6 本章小结 167
第9章 高级窗口小部件 168
9.1 填充窗口 168
9.1.1 工具提示 168
9.1.2 状态栏 174
9.1.3 工具栏 177
9.2 数字窗口小部件 179
9.2.1 进度栏 179
9.2.2 调节按钮 183
9.2.3 日历 185
9.3 范围控件 189
9.3.1 滚动条 189
9.3.2 滑块 191
9.4 滚动窗口小部件 193
9.5 本章小结 198
第10章 图形. 颜色和字体 199
10.1 样式 199
10.1.1 颜色 202
10.1.2 字体 205
10.1.3 组合使用颜色和字体样式 208
10.2 绘图 213
10.2.1 像素映射图 214
10.2.2 利用代码绘图 217
10.3 本章小结 220
第11章 GNOME介绍 221
11.1 GNOME的与众不同之处 221
11.1.1 源树 222
11.1.2 文本的本地化 225
11.1.3 配置文件和命令行参数 225
11.1.4 对象和库 226
11.2 开始 227
11.2.1 初始化 227
11.2.2 编译GNOME应用程序 228
11.2.3 命令行语法分析 229
11.2.4 GNOMEAPP 232
11.3 本章小结 239
第12章 GNOME对话框 240
12.1 GnomeDialog 240
12.1.1 现实中的对话框 242
12.1.2 定制对话框的性能 245
12.1.3 运行和关闭对话框 247
12.1.4 使对话框正确地工作 248
12.2 方便使用的对话框 249
12.3 About框 255
12.4 消息框 256
12.5 GnomePropertyBox 258
12.6 本章小结 263
第13章 GNOME窗口小部件 264
13.1 GnomeCalculator 264
13.2 GnomeNumberEntry 266
13.3 GnomeColorPicker 269
13.4 GnomeFontPicker 272
13.5 GnomeDateEdit 275
13.6 GnomeEntry 277
13.7 GnomeFileEntry 279
13.8 GnomeIconEntry 282
13.9 GnomeDruid 286
13.9.1 增加页面到Druid 287
13.9.2 Druid信号 289
13.10 本章小结 290
第14章 GNOME进一步介绍 292
14.1 配置文件 292
14.2 声音 298
14.3 帮助 298
14.4 Internet访问 300
14.4.1 DNS查找 301
14.4.2 浏览URL文档 304
14.5 本章小结 304
第15章 GNOME画布 305
15.1 画布介绍 305
15.1.1 GDK模式和平滑画布模式 307
15.1.2 GnomeCanvas坐标 308
15.2 GnomeCanvasItems 310
15.2.1 GnomeCanvasGroup 310
15.2.2 GnomeCanvasRect和
GnomeCanvasEllipse 311
15.2.3 GnomeCanvasLine 314
15.2.4 GnomeCanvasPolygon 317
15.2.5 GnomeCanvasText 317
15.2.6 GnomeCanvasWidget 319
15.2.7 GnomeCanvasImage 322
15.2.8 画布项的函数 322
15.3 事件 326
15.4 本章小节 329
第16章 GNOME集成开发环境 331
16.1 gIDE 331
16.2 安装gIDE 334
16.3 使用gIDE 336
16.3.1 使用文件 337
16.3.2 使用项目 338
16.3.3 定制gIDE 344
16.4 本章小结 347
第17章 Glade 348
17.1 安装/升级Glade 348
17.1.1 Glade的安装要求 348
17.1.2 在何处找到Glade 349
17.1.3 怎样安装/升级Glade 349
17.1.4 在何处寻找更多信息 350
17.2 第一部分─Glade 350
17.2.1 界面 350
17.2.2 功能 358
17.3 第二部分─编写第一个应用程序 359
17.3.1 建立自己的计算器 359
17.3.2 启动项目 360
17.3.3 建立计算器 360
17.3.4 编译计算器 366
17.3.5 添加代码 368
17.3.6 综合应用 376
17.4 本章小结 377
第18章 应用程序实例:图像浏览器 378
18.1 图像浏览器介绍 378
18.1.1 用户界面 378
18.1.2 设计原理 380
18.2 编写代码 380
18.2.1 开始编写应用程序 381
18.2.2 停止应用程序 381
18.2.3 建立用户界面 383
18.2.4 图像窗口 386
18.2.5 两个窗口间的交互 389
18.3 本章小结 392
第19章 应用程序实例:球和弹簧 394
19.1 球和弹簧 394
19.1.1 设置 394
19.1.2 建立窗口 396
19.1.3 图形项 399
19.2 图的更新 402
19.2.1 鼠标的交互作用 405
19.2.2 编译此应用程序 406
19.3 本章小结 406
附录A 信号回调 407
附录B 事件 419
附录C GNOME API参考 425
附录D “图像浏览器”实例代码 464
附录E “球和弹簧”实例代码 476