1.1XWindow的体系结构 1
第1章 XWindow 1
1.1.1XServer 2
1.1.2XClient 2
1.1.3XProtocol 3
1.2窗口管理器 4
1.3XWindow启动过程 5
1.4XFree86配置文件分析 7
1.5.1Xlib编程 9
1.5XWindow程序设计简介 9
1.5.2Motif编程 11
1.5.3GTK/GNOME 12
1.5.4KDE 14
1.6显示驱动程序 14
1.6.1显卡驱动方式 14
1.6.2帧缓冲 15
1.6.3在台式机上使用通用帧缓冲 15
1.6.4帧缓冲设备驱动程序 18
1.7XWindow协议 21
1.7.1X协议 22
1.7.2X传输接口 26
1.7.3XDMCP协议 30
1.8XClient应用程序源代码分析 31
1.8.1xinit分析 31
1.8.2XOpenDisplay 35
1.8.3函数XCreateWindow分析 39
1.9.1XServer概述 43
1.9XServer应用程序分析 43
1.9.2DIX层 44
1.9.3OS层 48
1.9.4DDX层 56
1.9.5Screen 62
第2章 Qt编程核心技术 81
2.1Qt概述 81
2.2Qt对象模型 81
2.2.1信号和槽 83
2.2.2元对象系统 85
2.2.3元对象编译器限制 87
2.2.4属性 89
2.3QObject类 90
2.3.1对象树 91
2.3.2事件处理过程 92
2.3.3事件运行机制 95
2.3.4事件过滤器 95
2.3.5定时器 96
2.4Qt国际化 98
2.4.1软件中字符串国际化方法 98
2.3.7字符串翻译函数 98
2.3.6连接函数connect 98
2.4.2创建译本 100
2.4.3编码支持 101
2.5QMetaObject元对象类 102
2.5.1相关的数据结构 102
2.5.2QMetaObject对象 103
2.5.3QOBJECT宏及moc生成代码分析 106
2.6进程间通信——QCopChannel 109
2.7窗口部件类 111
2.7.1窗口部件的基类QWidget 112
2.7.2QFrame类 113
2.7.3QScrollView类 114
2.8Qt风格机制 117
2.8.1风格类 117
2.8.2窗口系统风格更新机制 120
2.9布局类 125
2.10Qt插件 130
2.11.1迭代器 131
2.11Qt模板库 131
2.11.2算法 132
2.11.3数据流串行化 134
2.12集合类 134
2.12.1基于指针的容器的结构 135
2.12.2管理集合条目 135
2.12.3迭代器 136
2.13Qt线程 137
2.13.1线程类QThread 137
2.13.2线程安全的事件传递 138
2.14鼠标拖放 140
2.15.1焦点移动的方式 143
2.15键盘焦点 143
2.15.2焦点策略及操作函数 145
2.16会话管理 145
2.16.1会话管理 145
2.16.2测试和调试会话管理 146
2.17.1命令行参数 147
2.17.2打印警告和调试消息 147
2.17调试技术 147
2.17.3调试宏 149
第3章 KDE窗口系统 151
3.1KDE3.5源代码说明 151
3.2KDE类库 153
3.3系统资源访问 154
3.3.1标准资源目录 154
3.3.2KDE系统配置缓冲 155
3.4图形支持 155
3.5.2用XML定义菜单和工具栏 156
3.5.1Action模式 156
3.5用户界面 156
3.5.3在线帮助 157
3.5.4复杂窗口部件 157
3.6MIME类型处理 157
3.6.1一个应用MIME类型的例子 158
3.6.2映射MIME类型到一个应用程序或服务 159
3.7KDE服务 160
3.7.1定义服务类型 161
3.7.2定义共享库服务 161
3.7.3定义DCOF服务 162
3.8KIO框架 163
3.8.1同步使用KIO 164
3.8.2同步使用KIO 164
3.8.3MetaData 164
3.8.4调度 165
3.8.5定义一个ioslave 166
3.9DCOP 167
3.9.1DCOP工具 167
3.9.2DCOP收发数据 168
3.10KDE应用程序启动其他应用程序的方法 173
3.11国际化和本地化 174
3.12编译方法 175
3.13桌面框架 179
3.13.1PanelApplets 179
3.13.2控制中心模块 181
3.14组件框架 182
3.14.1KParts组件 182
3.14.3集成Java 183
3.14.2系统托盘 183
3.15KDE协议说明 184
3.16KDE启动 185
3.16.1startkde脚本分析 186
3.16.2startkde中的应用程序说明 189
3.16.3桌面组件 191
3.17kicker应用程序 193
3.17.1kicker应用程序的类继承关系 194
3.17.2桌面配置文件 196
3.17.3kicker窗口的建立过程 197
3.17.4K菜单 203
4.1各种嵌入式GUI 212
第4章 Qt/Embedded客户/服务器 212
4.1.1XWindow 213
4.1.2MICROWindows 213
4.1.3MiniGUI 213
4.1.4QT/Embedded 214
4.2.2root文件系统 217
4.2.3裁剪Qt/Embedded库 217
4.2.1编译Linux内核 217
4.2Qt/Embedded的应用示例 217
4.2.4编译应用程序 218
4.2.5拷贝Qt库及应用程序 218
4.2.6打包 218
4.2.7下载及运行 219
4.3帧缓冲 220
4.3.1DirectFB介绍 220
4.3.2虚拟帧缓冲qvfb 220
4.4创建应用程序 221
4.4.1QApplication类 221
4.4.2QApplication构造函数 222
4.5.1QWSServer类说明 224
4.5构建服务器 224
4.5.2QWSServer类构造函数分析 225
4.6Qt/Embedded客户端与服务器通信 228
4.6.1服务器相关的类说明 229
4.6.2客户与服务器间的接收事件处理 230
4.6.3服务器对窗口的协调管理 235
4.7输入设备与应用程序通信 237
4.7.2打开鼠标设备的过程 238
4.7.1鼠标键盘相关类 238
4.7.3设备文件与socket连接 241
4.7.4服务器捕获设备输入信号 243
4.7.5服务器发送事件给客户 244
4.8应用程序显示 246
4.8.1与显示相关的类 246
4.8.2与字体相关的类 247
4.8.3函数initdisplay 248
4.8.4QWSDisplay构造函数分析 249
4.8.5QScreen 252
4.8.6与图形显示相关的类 259
4.8.7图形显示 262
4.9运行Qt/Embedded应用程序 268
4.10字符输入 269
4.11增加一个加速显示卡驱动程序到Qt/Embedded 270
4.12Qt/Embedded作为VNC服务器 271
5.1.1QtopiaPDA 272
5.1Qtopia简介 272
第5章 Qtopia的核心技术 272
5.1.2Qtopia手机版 273
5.1.3手机库 274
5.1.4QtopiaDesktop 275
5.2信道和消息 275
5.3国际化 278
5.3.1翻译操作步骤 278
5.3.2.qm文件位置 278
5.3.4文档国际化 279
5.4Qtopia文件系统标准 279
5.3.3Desktop文件国际化 279
5.5Qtopia插件 281
5.5.1建立插件的步骤 281
5.5.2装载插件的方法 283
5.6输入法插件 286
5.6.1创建弹出输入方法 287
5.6.2创建复合输入法 290
5.7.1改进主窗口创建时间 294
5.7快速启动应用程序 294
5.7.2QuickLauncher 295
5.7.3应用QuickLauncher 296
5.7.4QuickLauncher的宏定义 296
5.7.5运行QuickLauncher分析 299
5.8Qtopia核心类库说明 302
5.8.1QPEApplication类 302
5.8.2应用程序配置与连接类 304
5.8.3PIM管理类 310
5.8.4桌面相关类 312
5.8.5字体与输入法相关类 314
5.8.6StorageInfo和FileSystem类 315
5.8.7DeviceButtonManager和DeviceButton类 318
5.8.8图像处理相关类说明 319
5.8.9多媒体播放相关类说明 319
5.8.10网络相关类说明 320
5.8.11软件模块接口类 322
5.8.12Service和ServiceRequest类 324
5.8.13MimeType类 325
5.8.14其他类说明 330
6.1Qtopia服务器特定的类 332
第6章 Qtopia服务器 332
6.1.1ServerApplication类 333
6.1.2Server类 333
6.1.3Launcher类 334
6.1.4LauncherTabWidget、LauncherTabBar和LauncherTab类 335
6.1.5LauncherView和LauncherItem类 337
6.1.6AppLauncher和QuickLauncher类 337
6.1.7LoadingWidget和DocumentList类 338
6.1.8TaskBar类 338
6.1.10InputMethodSelector和InputMethods类 339
6.1.9StartMenu和StartPopupMenu类 339
6.1.11RunningAppBar和SysTray类 341
6.1.12服务器的其他类说明 341
6.2Qtopia服务器启动过程 343
6.2.1Qtopia服务器的main函数 343
6.2.2ServerApplication类构造函数 345
6.2.3Server类构造函数 347
6.2.4创建服务器主窗口界面UI 348
6.2.5创建应用程序图标视图 350
6.3应用程序启动过程 354
6.4文档的打开过程 360
6.5电池监控小应用程序 362
6.5.1电池状态窗口类 363
6.5.2电源状态管理器类 365
6.5.3插件装载 365
6.6外观设置 366
6.6.1main函数 367
6.6.2SampleWindow类 367
6.6.4AppearanceSettings类的构造函数分析 368
6.6.3AppearanceSettings类 368
6.7安装与卸载应用程序 376
6.8APPServices应用程序 377
6.8.1AppServices类 378
6.8.2ASCheckListItem类 381
6.9插件管理器 382
第7章 Qtopia的sysinfo应用程序分析 384
7.1SystemInfo类 384
7.2VersionInfo类 385
7.3StorageInfoViiew类 387
7.4负载信息LoadInfo 396
7.5内存信息 399
7.6DataView类 400
第8章 Qtopia编译及系统集成 401
8.1qmake介绍 401
8.1.1qmake编译过程 401
8.1.2.pro文件的语法分析 402
8.2Qtopia编译方法 404
8.2.1Qtopia编译步骤 404
8.2.2QtopiaDesktop编译步骤 406
8.2.3编译个应用程序 407
8.2.4使用NFS运行应用程序 409
8.2.5应用程序调试 410
8.3为设备定制Qtopia 411
8.3.1定制Qtopia启动器用户界面 411
8.3.2设备硬件因素 412
8.3.3不安装及不支持的组件 414
8.3.4安全模式需要的插件 414
8.3.5电源管理 414
8.3.6可移去的存储卡 415
8.3.7I18N 416
8.3.8访问权限和仅读文件系统 416
8.3.9MMS客户端 416
8.3.10GSM模块集成 417
8.3.11定制键盘 417
8.3.12配置硬件按钮 419
8.4系统集成 421
8.4.1创建设备特定交叉编译工具配置文件 421
8.4.2定制电源、背景灯控制和键盘扫描码 421
8.4.3在Qt/Embedded中创建键盘处理函数 422
8.4.4配置指针设备 423
8.4.5配置适合设备的Qt/Embedded库 424
8.4.6配置适合设备的Qtopia 428
8.4.7为目标设备创建和安装Qtopiaimage文件 428
8.4.8在设备上配置适合于Qtopia的环境变量 428
8.4.9安装另外的字体 428
8.4.10集成.Java 429
8.5Qtopia编译系统 429
8.5.1内部的编译系统项目文件说明 430
8.5.3src-components.pro和src.pro文件 434
8.5.2项目文件生成Makefile 434
8.5.4configure脚本生成Makefile 437
8.6Qtopia的编译过程 442
8.6.1编译库 442
8.6.2相互独立的应用程序及插件的编译 444
8.6.3文件的安装 444
8.6.4打包分发 446
8.7生成img文件并烧录 449
主要参考文献 450