O'Reilly logo

Palm OS Programming, 2nd Edition by Neil Rhodes, Julie McKeehan

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Examples

There are other communications between the Palm OS and your application that you might want to handle in your code. Particular events, or overall access might be important for you to control. In any case, here are events some applications want to handle:

  • A particular pen-down event

  • The input of a graffiti character

  • How to take over the hard buttons for your own use within your application

  • How to take over the entire device and not allow any other applications to run

Let’s take a look at the code required to handle each of these instances.

Handling a Pen-Down Event

Normally, you will not handle pen-down events directly, but instead handle higher-level events like ctlSelectEvent. However, occasionally, applications will want to be on the lookout for a penDown event. An example is the Address Book: tapping and releasing on the display of an address in the display view switches to the edit view.

The source code to the Address Book is part of the Palm OS 3.5 SDK. The RecordViewHandleEvent in Address.c from that example contains the following case:

case penDownEvent:
         handled = RecordViewHandlePen(event);
         break;

RecordViewHandlePen handles penDown events in the display-only view of the record (see Example 5-15).

Example 5-15. RecordViewHandlePen in the Address Book source
static Boolean RecordViewHandlePen (EventType * event) { Boolean handled = false; FormPtr frm; RectangleType r; Int16 x, y; Boolean penDown; // If the user taps in the RecordViewDisplay take her to the Edit View. ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required