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

Modal Dialog Boxes

A modal dialog box is different from a modeless form in the following ways:

Appearance

A modal dialog box has a full-width title bar with the title centered and with buttons from left-to-right along the bottom. Most modal dialog boxes should have an Info button that provides additional help.

Behavior

The Find button doesn’t work while a modal dialog box is being displayed.

Dialog Box APIs

Here is a list of dialog box APIs:

UInt16 FrmDoDialog(FormType *formP)

This routine displays the given form and doesn’t return until the user presses one of the buttons or switches to another application (for example by tapping on the Application launcher icon). The return result is the ID of the pressed button. If the user switches to another application, it returns the default button ID.

If the form has an event handler, FrmDoDialog will call the event handler for each event.

Flexible Modal Dialog Boxes

The easiest way to display a modal dialog box is to use FrmAlert or FrmCustomAlert. The fixed structure of alerts (icon, text, and buttons) may not always match what you need, however. For example, you may need a checkbox or other control in your dialog box (see Figure 8-5).

Modal dialog box (on left) with “i” button bringing up help (on right)
Figure 8-5. Modal dialog box (on left) with “i” button bringing up help (on right)

If you need this type of flexible modal dialog box, then you should use a form resource (setting the modal and “save behind” ...

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