第1章 关于Palm 1
1.1 Palm Computing的成功 1
1.2 Palm Computing的历史 2
1.3 Palm computing公司的整体结构 2
1.4 Palm操作系统 3
1.4.1 版本1.0 3
1.4.2 版本2.0 3
1.4.3 版本3.0 3
1.4.4 版本3.1 4
1.4.5 版本3.2 4
1.4.6 版本3.3 4
1.4.7 版本3.5 4
1.5 产品 5
1.6 Palm OS的开发软件 7
1.7 Palm设备的硬件 8
1.7.1 RAM和ROM 8
1.7.2 Motorola 68328“DragonBall” 8
1.7.3 模式 8
1.7.4 接口 9
1.7.5 时钟和定时器 9
1.7.6 屏幕 9
1.7.7 声音 10
1.7.8 复位 10
第2章 建立一个应用程序 11
2.1 编程环境 11
2.2 用Mac作为开发平台 11
2.3 对C语言应知道多少 11
2.4.1 Palm OS的存储器 12
2.4 Palm OS应用程序的剖析 12
2.4.2 Palm OS应用程序的执行和调试 13
2.5 开发环境的安装 13
2.6 检查你的开发环境 14
2.7 生成项目 17
2.8 生成资源 18
2.9 生成代码 19
2.10 代码分析 21
2.11 调试:使它工作起来 25
2.11.1 当运行程序时发生了什么? 27
2.11.2 把项目存放到固定的目录中 27
2.12 下一步 28
第3章 文本框中的乐趣 29
3.1 文本框究竟是什么 29
3.2 属性 31
3.3 再谈谈事件 32
3.4 焦点 34
3.5 使用字符串资源 37
3.6 菜单 38
3.7 支持各种不同版本的Palm OS 41
3.8 错误和警告 42
3.9 下一步 43
3.10 最后结果 43
第4章 窗体的编程 49
4.1 程序设置 49
4.1.1 创建大小应用程序图标 49
4.1.2 CodeWarrior集成开发环境中的项目设置 51
4.2 多窗体界面 52
4.2.1 对Contacts.rsrc文件内容的添加 52
4.2.2 对Contracts.c文件内容的添加 56
4.2.3 调试 62
4.3 下一步 62
4.4 程序清单 63
第5章 数据库 71
5.1 删除工作 71
5.1.1 备份Contacts程序 71
5.1.2 从资源文件中将原来的资源删除 71
5.1.3 删除代码 71
5.2 添加数据库 73
5.2.1 数据库技术和术语 73
5.2.2 对Contacts.rsrc文件内容的添加 74
5.2.3 对Contacts.c文件内容的添加 76
5.2.4 字段和数据库记录 82
5.2.5 调试 91
5.3 下一步 92
5.4 程序清单 92
第6章 控件 108
6.1 保存你的项目 108
6.2 对Contacts.rsrc文件内容的添加 108
6.2.1 添加日期和时间选择触发器 108
6.2.2 创建一个新的设置时间窗体 109
6.3 向Contacts.c添加代码 113
6.3.1 在数据库中初始化和保存日期和时间 113
6.3.2 支持日期和时间选择触发器 114
6.3.3 支持开关按钮(push buttons) 117
6.3.4 支持重复按钮(repeating buttons) 120
6.3.5 支持复选框 121
6.3.6 结束Enter Time窗体 122
6.4 调试 123
6.5 下一步 124
6.6 程序清单 124
第7章 列表框和排序 153
7.1 保存项目 153
7.2 列表框 153
7.2.1 对Contacts.rsrc文件内容的添加 153
7.2.2 对Contacts.c文件内容的添加 156
7.2.3 调试 164
7.3 排序 165
7.3.1 对Contacts.rsrc文件内容的添加 165
7.3.2 对Contacts.c文件内容的添加 166
7.3.3 调试 170
7.4 下一步 170
7.5 程序清单 171
第8章 表和滚动条 207
8.1 保存项目 207
8.2 删除旧的资源 207
8.3 删除旧代码 208
8.4 表 208
8.4.1 添加一个表 210
8.4.2 在表中显示记录 210
8.4.3 调试 218
8.5 三种滚动条 218
8.5.1 添加滚动按钮和滚动条资源 218
8.5.2 让滚动按钮工作起来 219
8.5.3 对Page Up和Page Down键的支持 222
8.5.4 设计滚动条 223
8.7 程序清单 224
8.6 下一步 224
8.5.5 调试 224
第9章 分类和查找 265
9.1 保存项目 265
9.2 分类 265
9.2.1 对Contacts.rsrc文件内容的添加 265
9.2.2 Contacts.c的修改 268
9.2.3 调试分类 284
9.2.4 保密记录 285
9.3 查找 285
9.3.1 对Contacts.c的修改 285
9.3.2 调试 292
9.5 程序清单 293
9.4 下一步 293
第10章 创建高效的用户界面 344
10.1 设计考虑 344
10.1.1 站在用户的角度 344
10.1.2 简单易用就是一切 345
10.1.3 点击(tap)因素 345
10.1.4 “七”的原则 346
10.1.5 屏幕的考虑 346
10.1.6 空间的重要性 346
10.1.7 输入笔的考虑 347
10.1.8 处理器的考虑 347
10.2 设计原则 348
10.2.1 文本框、手写区和剪贴板 348
10.2.3 按钮和控件 349
10.2.2 菜单 349
10.2.4 一般情况 350
10.2.5 窗体的布局 350
10.3 操作流程 352
10.3.1 分类 352
10.3.2 滚动 353
10.3.3 对象的优先顺序 353
10.3.4 主窗体 353
10.4 下一步 354
第11章 工具简介 355
11.1 Palm操作系统的开发工具 355
11.1.1 CodeWarrior 355
11.1.3 Palm OS Emulator 356
11.1.2 GCC/PRC-Tools 356
11.1.4 Palm OS SDK 357
11.1.5 Pendragon Forms 357
11.1.6 PilRC 357
11.1.7 Satellite Forms 358
11.2 Window Conduit开发工具 358
11.2.1 CDK 359
11.2.2 CDK Java Edition 359
11.2.3 Insider 359
11.2.4 Visual Cafe Professional 359
11.2.5 Visual C/C++ 360
11.3 Macintosh Conduit开发工具 360
11.3.1 CDK 360
11.3.2 用于MacOS的CodeWarrior 360
11.4.3 一般的外围设备 361
11.4.2 Visor卡 361
11.5 网址 361
11.4.1 TRGpro卡 361
11.4 外围设备 361
11.5.1 EScribe 362
11.5.2 Handspring 362
11.5.3 J.Marshall 362
11.5.4 Massena.com 362
11.5.5 Palm Computing 362
11.5.6 Qualcomm/Kyocera 362
11.5.7 Quality Partners 363
11.5.8 RoadCoders 363
11.5.9 Symbol 363
11.5.10 TRG 363
12.1 类型保护变量和可移植性 364
第12章 专业编程技巧 364
12.2 使用匈牙利符号(Hungarian Notation) 365
12.3 可重复使用的主模块 366
12.3.1 main.c模块 367
12.3.2 main.h模块 374
12.3.3 fcalc.c模块 375
12.3.4 fcalc.h模块 377
12.3.5 app.h模块 377
12.3.6 调试 380
12.3.7 程序清单 381
12.4 可重用的About窗体 387
12.4.1 对Calculator.rsrc文件内容的添加 387
12.4.2 fabout.c模块 389
12.4.3 fabout.h模块 391
12.4.4 fprefs.c模块 391
12.4.6 moptions.c模块 393
12.4.5 fprefs.h模块 393
12.4.7 moptions.h模块 395
12.4.8 app.h的内容添加 395
12.4.9 程序清单 397
12.4.10 调试 399
12.5 面向对象的编程 400
12.5.1 C++、Java和Palm OS 400
12.5.2 数据封装 400
12.5.3 数据抽象 401
12.5.4 继承 401
12.5.5 多态性 402
12.6 下一步 402
第13章 再论用户界面 403
13.1 计算器的设计 403
13.2.1 对Calculator.rsrc文件内容的添加 405
13.2 创建计算器 405
13.2.2 fcalc.c内容的添加 408
13.2.3 fcalc.h文件内容的添加 422
13.2.4 calc.h模块 423
13.2.5 对app.h文件内容的添加 424
13.2.6 安装MathLib 425
13.2.7 调试 425
13.3 下一步 425
13.4 程序清单 425
第14章 程序的可移植性 439
14.1 设计计算器核心 439
14.2 剩余代码 440
14.2.1 新的calc.h 440
14.2.2 calc.c的普通代码 441
14.2.3 可移植性问题 457
14.3 调试 458