第1章 起步
1.1 使用仿真器
1.1.1 启动仿真器
1.1.2 GUI样式
1.2 文本版本的Hello World
1.2.1 程序hellotext
1.2.2 项目定义文件
1.2.3 组件定义文件
1.2.4 从命令行生成
1.2.5 在Metrowerks IDE中生成
1.2.6 在目标机器上运行
1.3 小结
第2章 系统结构
2.1 硬件资源
2.2 软件基础知识
2.3 进程、线程和上下文切换
2.4 可执行程序
2.4.1 执行的位置
2.4.2 载入和共享
2.4.3 缩减大小
2.4.4 启动应用程序和服务器
2.5 电源管理
2.6 内核和E32
2.7 设备驱动程序
2.8 定时器
2.9 内存
2.9.1 进程和线程内存
2.9.2 在DLL中无可写静态数据
2.10 文件
2.11 事件处理
2.12 剖析事件处理
2.13 活动对象
2.14 多任务处理和抢占
2.15 服务器
2.16 线程产生作用的地方
2.17 本书涉及的API
2.18 小结
第3章 C++和面向对象
3.1 基本类型
3.2 命名约定
3.2.1 类名
3.2.2 数据名
3.2.3 函数名
3.2.4 宏名
3.2.5 版式
3.2.6 小结
3.3 函数
3.3.1 函数参数
3.4 API
3.4.1 函数类型
3.4.2 DLL和其他API元素
3.4.3 导出的函数
3.4.4 虚函数和API
3.5 模板
3.5.1 瘦模板
3.5.2 模板中的数字
3.6 类型转换
3.7 类
3.7.1 接口
3.7.2 不良做法
3.8 设计模式
3.9 类图和UML
3.9.1 描述API
3.9.2 描述类
3.9.3 描述类之间的关系
3.9.4 描述派生关系
3.9.5 基数
3.10 小结
第4章 简单图形应用程序
4.1 名字变更的意义
4.2 图形架构简介
4.3 应用程序结构
4.4 图形化的“Hello World!”程序
4.4.1 程序
4.4.2 项目规范文件
4.4.3 获得UID
4.4.4 生成应用程序
4.4.5 在CodeWarrior IDE中生成
4.4.6 源代码
4.5 资源文件
4.5.1 头
4.5.2 定义快捷键和菜单
4.5.3 字符串资源
4.6 实际应用
4.7 启动应用程序
4.8 命令和事件处理
4.8.1 从菜单栏中由指针生成的命令
4.8.2 菜单栏中的键盘生成命令
4.8.3 快捷键中的命令
4.9 终止应用程序
4.10 目标式调试
4.11 设置MetroTRK
4.11.1 配置
4.12 启动MetroTRK
4.13 设置CodeWarrior ID
4.14 调试应用程序
4.15 小结
第5章 字符串和描述符
5.1 字符串与内存
5.1.1 C中的字符串
5.1.2 Symbian OS中的字符串
5.2 修改字符串
5.2.1 修改C字符串
5.2.2 修改Symbian OS的字符串
5.2.3 修改HBufC
5.2.4 描述符类型小结
5.2.5 在接口中使用抽象类
5.2.6 再论文字
5.3 标准描述符函数
5.3.1 基本函数
5.3.2 比较
5.3.3 搜索
5.3.4 提取
5.3.5 清除和设置
5.3.6 操作数据
5.3.7 字母操作
5.3.8 修剪和对齐
5.3.9 格式化
5.4 更多的文本API
5.5 Unicode和字符转换
5.6 二进制数据
5.7 小结
第6章 错误处理和清理
6.1 错误类型
6.2 处理内存不足的错误
6.2.1 Uikon 调试键
6.2.2 Memorymagic应用程序
6.2.3 分配、销毁和堆平衡
6.2.4 堆失败
6.2.5 异常退出的工作方式
6.2.6 清理栈
6.2.7 两阶段构造
6.3 清理规则小结
6.4 C类和T类
6.5 R类
6.5.1 作为成员变量的R类
6.5.2 错误码返回与L函数
6.5.3 清理栈上的R类
6.6 用户错误
6.7 严重提示的更多知识
6.8 测试引擎和库
6.9 小结
第7章 资源文件
7.1 为什么需要针对Symbian的资源编译器
7.1.1 资源文件语法
7.1.2 可本地化字符串
7.1.3 多资源文件
7.1.4 编译资源文件
7.1.5 已编译资源文件的内容
7.2 小结
第8章 基本API
8.1 几个优秀的API
8.1.1 User类
8.1.2 动态缓冲
8.1.3 集合
8.1.4 区域设置
8.1.5 数学
8.1.6 变量参数表
8.1.7 字符串格式化
8.1.8 RDebug类
8.2 C标准库
8.2.1 移植问题
8.2.2 移植多线程程序
8.2.3 全局数据
8.2.4 结论
8.3 小结
第9章 独立应用程序
9.1 战舰游戏
9.2 综述
9.2.1 程序结构
9.2.2 引擎
9.2.3 控制器
9.3 引擎类
9.3.1 舰船类
9.3.2 舰队类
9.3.3 游戏引擎类
9.4 视图类
9.4.1 构建视图
9.4.2 绘制视图
9.4.3 处理事件
9.5 换算和缩放
9.6 控制器
9.6.1 访问GUI环境
9.6.2 缩放
9.7 应用程序UI
9.8 持久性存储
9.8.1 作为基于文件的应用程序的Solo Ships
9.8.2 存储和还原
9.8.3 创建默认文档
9.8.4 应用程序UI和文档
9.9 双人战舰游戏
9.9.1 视图架构
9.9.2 双人战舰游戏视图
9.9.3 舰队视图
9.9.4 隐藏器视图
9.9.5 视图测试程序
9.9.6 声音效果
9.10 小结
第10章 对话框和具体控件
10.1 对话框介绍
10.1.1 查询对话框
10.1.2 单页对话框
10.1.3 多页对话框
10.1.4 提示文本
10.1.5 控件
10.1.6 对话框处理
10.1.7 模态
10.1.8 小结
10.2 一些简单对话框
10.2.1 资源文件定义
10.2.2 对话框代码
10.2.3 只读对话框
10.2.4 简单对话框处理
10.3 对话框API
10.3.1 资源规范
10.3.2 添加按钮
10.3.3 基本函数
10.4 对话框常用控件
10.4.1 按钮
10.4.2 列表
10.4.3 编辑器
10.4.4 在对话框中使用控件
10.4.5 访问控件
10.4.6 对话框中的自定义控件
10.5 标准对话框
10.5.1 警报
10.5.2 查询
10.5.3 其他标准对话框
10.6 小结
第11章 图形显示
11.1 绘图基础
11.1.1 控件
11.1.2 Draw()概览
11.2 CGraphicsContext API
11.2.1 坐标类
11.2.2 设置图形上下文
11.2.3 绘图函数
11.3 绘图和重绘
11.3.1 模型、视图和控制器模式
11.3.2 Draw()契约
11.4 无闪烁重绘
11.4.1 绘制一切
11.4.2 状态视图更新
11.4.3 命中报告
11.4.4 光标移动
11.5 屏幕共享
11.5.1 CONE
11.5.2 自主窗口和寄宿控件
11.5.3 复合控件
11.5.4 绘图的更多知识
11.6 CCoeControl的绘图支持
11.6.1 控件环境
11.6.2 自主窗口和寄宿
11.6.3 组件
11.6.4 位置与大小
11.6.5 绘图
11.7 特殊效果
11.7.1 阴影
11.7.2 后台备份
11.7.3 动画
11.7.4 Uikon调试键
11.7.5 控件上下文
11.7.6 滚动
11.8 小结
第12章 交互图形
12.1 键、指针和命令基础知识
12.1.1 处理键事件
12.1.2 处理指针事件
12.1.3 将事件转换成命令
12.2 对话框中的交互
12.2.1 用户需求
12.2.2 一些基本抽象
12.2.3 程序员需求
12.2.4 复合控件
12.2.5 键分布和焦点
12.2.6 变暗和可见性
12.2.7 验证
12.2.8 控件观察者
12.2.9 容器
12.3 键处理过程回顾
12.3.1 焦点
12.3.2 文本光标
12.4 指针处理回顾
12.4.1 交互范例
12.4.2 选取相关性
12.4.3 抓取指针按下控件
12.4.4 捕获指针
12.4.5 获得高分辨率的指针事件
12.4.6 处理指针事件
12.4.7 自定义指针和键声音
12.5 窗口服务器和控件环境API的更多知识
12.5.1 应用程序与窗口服务器的通信
12.5.2 窗口类型
12.5.3 标准窗口
12.5.4 窗口组
12.6 shell
12.7 小结
第13章 文件、流和存储
13.1 基于文件的应用程序
13.1.1 用户和系统文件
13.1.2 UIQ应用程序文件位置
13.1.3 命名和位置约定小结
13.2 API引论
13.3 文件服务器
13.3.1 文件服务器会话
13.3.2 当前目录
13.3.3 驱动器、文件系统和存储介质
13.3.4 文件
13.3.5 目录
13.3.6 文件名解析
13.4 streams程序
13.4.1 与文件服务器建立连接
13.4.2 文件写入
13.4.3 回读
13.4.4 文件名解析
13.4.5 文件API小结
13.5 流
13.5.1 内部格式和外部格式
13.5.2 外部化和内部化数据的途径
13.5.3 流类型
13.6 存储
13.6.1 直接文件存储
13.6.2 嵌入式存储
13.6.3 永久性文件存储
13.7 存储类型
13.8 字典存储和.ini文件
13.9 UIQ应用程序架构
13.10 小结