Acknowledgments | p. xvii |
Introduction | p. xix |
Understanding the Palm OS Environment | p. 1 |
Understanding How a Palm OS Device Differs from a PC | p. 2 |
Understanding Palm OS Input Operations | p. 3 |
Understanding the Palm OS Battery | p. 4 |
Palm OS Devices Have No Fixed Storage | p. 5 |
Using the Palm OS Emulator (POSE) | p. 6 |
Using Palm OS Software Development Kits (SDKs) | p. 7 |
Palm OS Is a Preemptive Multitasking Operating System | p. 8 |
Understanding Events | p. 8 |
Introducing the Players | p. 9 |
Selecting a Compiler | p. 10 |
Understanding Palm OS Programming Practices | p. 11 |
Understanding Web Clippings | p. 12 |
Summary | p. 13 |
Using Web Clippings to Access the Wireless Web | p. 15 |
Understanding How pqa Files Launch Web Clipping Applications | p. 16 |
Understanding How Users Get pqa Files | p. 18 |
Surfing pqa Files from Your PC | p. 18 |
Taking Web-Clippings for a Test Drive | p. 20 |
Designing a Web Clipping | p. 20 |
Understanding the Web-Clipping Development Process | p. 22 |
Behind the Scenes at the Remote Site | p. 23 |
HTML Features Web Clippings Do Not Support | p. 24 |
Understanding Web Clipping Security | p. 24 |
Creating Your First pqa File | p. 24 |
Adding an Image to a Web Clipping | p. 35 |
Building a Multipage PQA File | p. 37 |
Placing a Button Around a Link | p. 39 |
Building a Multipage Clipping | p. 40 |
Working with Fonts | p. 41 |
Assigning Background and Text Colors | p. 42 |
Using Tables to Organize Information | p. 44 |
Using a Form to Query the User for Information | p. 46 |
Using a Perl Script to Manage Your Grocery List | p. 55 |
Using an Active Server Page to Locate a Nearby Gas Station | p. 59 |
Valid HTML Tags for Use in Web Clippings | p. 61 |
Web Clippings and Palm OS 4 | p. 64 |
Summary | p. 64 |
Creating Your First Palm OS Applications | p. 65 |
Understanding the Hello, Palm OS World! Application | p. 66 |
Examining the Hello, Palm OS World! Application's Source Code | p. 68 |
Checking the Palm OS Device's ROM Version | p. 96 |
Summary | p. 103 |
Programming the Palm OS Interface | p. 105 |
Using Alerts to Interact with the User | p. 106 |
Understanding Form Objects | p. 113 |
Understanding Form Object Events | p. 115 |
Working with Various Form Objects | p. 118 |
Summary | p. 143 |
Performing File-Stream Operations | p. 145 |
Opening a File for Read or Write Operations | p. 146 |
Reading from and Writing to a File | p. 148 |
Closing a File | p. 150 |
Storing the Message Hello, Palm OS World! in a File | p. 150 |
Reading the HelloPalm.dat File | p. 154 |
Deleting a File | p. 158 |
Manipulating the File Pointer | p. 161 |
Understanding File Errors | p. 162 |
Using File Streams to Simulate Databases | p. 162 |
Summary | p. 169 |
Working with Graphics | p. 171 |
Understanding Graphics Windows | p. 172 |
Understanding the Window Data Structure | p. 173 |
Creating, Using, and Deleting a Window | p. 178 |
Drawing Pixels, Lines, and Rectangles | p. 183 |
Saving and Restoring the Image Beneath a Window | p. 189 |
Understanding Image Clipping | p. 192 |
Using Fill Patterns and Fill Lines | p. 195 |
Displaying Text Within a Graphics Window | p. 198 |
Using an Array to Represent an Image's Coordinates | p. 201 |
Erasing and Inverting Pixels, Lines, Rectangles, and the Window Itself | p. 201 |
Summary | p. 202 |
Creating 3D Graphics | p. 203 |
Projecting a 3D Image onto a 2D Surface | p. 204 |
Understanding X, Y, and Z Coordinates | p. 206 |
Representing 3D Images | p. 209 |
Building the CabinetCube Application | p. 211 |
Taking a Closer Look at the CabinetCube Application | p. 215 |
Changing Projection Angles | p. 215 |
Drawing a Cube Within a Cube | p. 218 |
Summary | p. 222 |
Programming Palm OS Device Colors | p. 223 |
Understanding Color | p. 224 |
Determining a Palm OS Device's Level of Color Support | p. 225 |
Understanding Palettes and Color Tables | p. 232 |
Drawing Images and Text Using Various Colors | p. 233 |
Assigning Colors to User Interface Elements | p. 238 |
Summary | p. 244 |
Taking Advantage of Palm OS Services | p. 245 |
Using the Clipboard to Perform Cut-and-Paste Operations | p. 246 |
Revisiting the Palm OS ROM Version | p. 254 |
Retrieving the Palm OS Device Serial Number | p. 257 |
Working with Dates and Times | p. 259 |
Performing a Soft Reset | p. 263 |
Getting Information about the Palm OS Device's Battery | p. 265 |
Displaying a Graffiti Reference Dialog Box | p. 268 |
Displaying the System Keyboard | p. 270 |
Summary | p. 271 |
Managing Palm OS Memory | p. 273 |
Understanding Palm OS Memory Management | p. 274 |
Understanding Memory Fragmentation | p. 274 |
Allocating Memory within the Palm OS | p. 276 |
Determining the Palm OS Memory Settings | p. 281 |
Taking a Closer Look at the Palm OS Memory Management Functions | p. 286 |
Using the Palm OS Memory Management Functions to Create a Linked List | p. 288 |
Summary | p. 297 |
Getting Started with Palm OS Databases | p. 299 |
Understanding Palm OS Databases | p. 300 |
Creating and Opening a Database | p. 301 |
Storing Information Within a Database | p. 303 |
Deleting a Database | p. 308 |
Retrieving Information from a Database | p. 310 |
Sorting a Database | p. 313 |
Deleting a Database Record | p. 317 |
Viewing the Databases that Reside on Your Palm OS Device | p. 317 |
Summary | p. 322 |
Advanced Database Operations | p. 323 |
Inserting Records at a Specific Location | p. 324 |
Viewing the Appointments | p. 332 |
Displaying Appointments Sorted by Time | p. 337 |
Taking Advantage of a Sorted Database | p. 345 |
Using Categories to Further Organize Data | p. 351 |
Viewing Records in a Category | p. 358 |
Summary | p. 365 |
Saving and Retrieving User Preferences | p. 367 |
Using the StartApplication and StopApplication Functions | p. 368 |
Defining Your Application's Preferences | p. 371 |
Retrieving an Application's Preferences | p. 372 |
Storing Preference Settings | p. 373 |
Storing and Retrieving Preference Settings | p. 373 |
Be Aware of Abandoned Preferences | p. 377 |
Retrieving System Preferences | p. 378 |
Storing Work in Progress | p. 381 |
Summary | p. 382 |
Creating and Processing Alarms | p. 383 |
Understanding Palm OS Alarms | p. 384 |
Handling an Alarm Within PilotMain | p. 384 |
Setting on Alarm | p. 386 |
Building a Reminder Application | p. 392 |
Summary | p. 404 |
Performing Network Operations | p. 405 |
Understanding the Palm OS Network Libraries | p. 406 |
Using the INet Library | p. 407 |
Retrieving Content from Across the Internet | p. 411 |
Using the Personal Web Server to Interact with Your Network Applications | p. 416 |
Sending Data to a Remote Site | p. 417 |
Implementing Network Applications Correctly | p. 423 |
Performing Low-Level Network Operations | p. 424 |
Summary | p. 425 |
Improving Palm OS Security | p. 427 |
Encrypting Your Palm OS Device | p. 428 |
Relying on the Palm OS Device ID | p. 430 |
Understanding Private Records | p. 432 |
Encrypting Your Own Data | p. 437 |
Encrypting the Database Contents | p. 442 |
Summary | p. 449 |
Creating Simple Animations | p. 451 |
Animating Text | p. 452 |
Creating a Simple Animation Using Time-Delayed Graphics | p. 456 |
Understanding Image Translation | p. 460 |
Translating a 3D Object | p. 464 |
Scaling an Object | p. 469 |
Scaling a 3D Object | p. 474 |
Using an Off-Screen Draw Window | p. 479 |
Summary | p. 479 |
Performing InfraRed Communication | p. 481 |
Understanding IR Communications | p. 482 |
Registering the Data Types and Application Supports | p. 483 |
Receiving IR Data | p. 484 |
Sending IR Data | p. 487 |
The Hello, IR World Application | p. 488 |
Receiving the IR Message | p. 492 |
Testing IR Applications Using Only One Palm OS Device | p. 497 |
Creating a Simple IR Chat Program | p. 497 |
Practical Changes to the HellolRSend Application | p. 503 |
Summary | p. 503 |
Creating Simple Palm OS Games | p. 505 |
Programs in the Palm OS Software Developer's Kit | p. 506 |
Creating a Simple Interactive Palm OS Game | p. 508 |
Extending the HoverCraft Game to Two Players | p. 526 |
Summary | p. 530 |
Index | p. 531 |
Table of Contents provided by Syndetics. All Rights Reserved. |