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

Form-Level APIs

These are the APIs in the Form Manager having to do with the form as a whole (rather than form objects, which we’ll cover later). As always, we don’t cover every API, but only those that you will most commonly need in your application development.

FormType * FrmInitForm(UInt16 formID)

This reads the form resource with the specified form ID and creates an in-memory representation of that form. You call this from your application-wide event handler in response to a frmLoadEvent.

void FrmSetActiveForm(FormType *form)

This makes the passed-in form the one-and-only active form. You call this in response to a frmLoadEvent.

void FrmDrawForm(FormType *form)

This draws the specified form. As of the 3.5 OS, for modal forms, it will erase what is underneath before drawing. Prior to that, only forms with the “save behind” bit attribute set were erased before drawing.

Warning

Of course, it logically follows that you shouldn’t do any drawing yourself onto the screen before calling FrmDrawForm; if you do, it will be erased.

FormType *FrmGetFormPtr(UInt16 formID)

This returns the on-screen form whose form ID matches that of the passed-in value. If there is no matching form, it returns NULL.

FormType *FrmGetActiveForm( )

This returns the form that is active. Note that it will not always be your form. For example, when the OS needs to redraw the screen, it sends each form, whether active or not, a frmUpdateEvent. However, in those cases, the OS will temporarily set the ...

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