Communicator UI: 0 Foam UI Classes Overview

Up: GEOS SDK TechDocs | Up | Prev: Communicator UI | Next: 1 FoamSubApplicationClass

The foam library includes many new UI classes. This page lists these classes, briefly describes each class' utility, and displays an annotated snapshot of each UI class.

FFileSelectorClass

Inherits: GenFileSelectorClass

Use a FFileSelectorClass when you do not need a controller and the associated ComplexMoniker UI to select a file but only want to display a list of files (if you do want a full controller with complete UI, use FileOpenControlClass). FFileSelectorClass objects allow you to get and set the directory path using the FDocumentDir enum values for the directories which are specific to the Nokia 9000i Communicator.


An example of a FFileSelectorClass file selector.

Include: foam.goh

Reference: FileOpenControlClass, FFileSelectorClass.

ExtendedFileSelectorClass

Inherits: GenFileSelectorClass, but is a variant class.

This class is not available on build 4.8.8 or earlier versions of the Communicator.

The ExtendedFileSelectorClass expands the functionality of any subclass of GenFileSelectorClass, usually FFileSelectorClass. It allows multiple files to be selected, optionally provides the user with a search box that narrows the list of files to match the text typed in the search box, and can find files in any directory or subdirectory, not just the directories represented by the enumerated type FDocumentDir.

Include: foam.goh

Reference: ExtendedFileSelectorClass, FFileSelectorClass.

ComplexMonikerClass

Inherits: GenClass, but is a variant class.

The ComplexMonikerClass allows developers to create a moniker that contains both text and a bitmap icon. Since the text and icon are referred to generically, it is easy to localize the moniker. A complex moniker is a variant class - its parent class is dynamically created at runtime - so it can assume a variety of forms. The superclass of a ComplexMonikerClass object may be any child of GenClass. This allows complex monikers to be:

While each of the above items behaves quite differently, they all share the ComplexMonikerClass behavior of displaying a text and icon moniker.

Include: foam.goh

Reference: ComplexMonikerClass, GenTriggerClass, GenInteractionClass, GenItemGroupClass, GenItemClass, GenBooleanGroupClass, GenDynamicListClass, or ContactListClass.

TwoLevelTriggerClass

Inherits: ComplexMonikerClass

Applications that require more than four triggers may establish two panes of triggers. The user can toggle between these two panes using two TwoLevelTriggerClass trigger objects which usually have the monikers "More" or "Back". They are typically put in the fouth slot (slot 3). Since the "More" and "Back" triggers take up two slots, an application which uses two panes of triggers may define up to six of its own triggers.

Include: foam.goh

Reference: TwoLevelTriggerClass, ComplexMonikerClass, Nokia 9000i Communicator Topics: UI Conventions

FoamSubApplicationClass

Inherits: GenApplicationClass

Since the Nokia 9000i Communicator does not have a file manager per se, applications added to the device must be launched through a currently existing application. The FoamSubApplicationClass specifies in which pre-existing application an add-on application should reside.

Include: foam.goh

Reference: FoamSubApplicationClass, GenApplicationClass.

GreyFrameClass

Inherits: GenInteractionClass

Draws a gray beveled box around its children. It can be used with the ComplexMoniker variant class to add a moniker label (see FilterListClassexample).

Include: foam.goh

Reference: GreyFrameClass, GenInteractionClass.

ListWithUserDefinedClass

Inherits: GenItemGroupClass

GenItemClass and GenItemGroupClass work together to display a list of static monikers that the user may choose from. ListWithUserDefinedClass expands this to allow the user to navigate to an object and input information. The additional item may be a UnderlinedTextWithListClass, TextWithListClass, or GenValueWithListClass.

Include: foam.goh

Reference: ListWithUserDefinedClass, GenItemGroupClass.

RepeatingGenGlyphClass

Inherits: GenGlyphClass

RepeatingGenGlyphClass is used to create animations. It works be replacing the visMoniker of GenGlyphClass with the application-defined sequence of bitmapped icons, which it then cycles through. One common use of RepeatingGenGlyphClass is in dialog boxes which are opened with PutUpDialogViaUIThread(). This is done so that the animation is processed by another thread and thus doesn't burden the application.

Include: foam.goh

Reference: RepeatingGenGlyphClass, FoamProgressDialogClass.


Dialogs

FlashingNoteClass

Inherits: GenInteractionClass

The FlashingNoteClass is used to flash a note on the screen for a set length of time. The application specifies the minimum and maximum time the note will remain on the screen. If the user presses a key after the note has been on screen for the minimum duration, the note dialog box is dismissed. This dialog runs on its own thread and takes the responsibility for dismissing and destroying itself.

Include: foam.goh

Reference: FlashingNoteClass, GenInteractionClass.

SelfDestroyingDialogClass

Inherits: GenInteractionClass

The SelfDestroyingDialogClass is used to put up a dialog box that self-destructs upon dismissal.

Include: foam.goh

Reference: SelfDestroyingDialogClass, GenInteractionClass.

FoamProgressDialogClass

Inherits: GenControlClass

When an application starts a process that may take a while, it is good practice to put up a FoamProgressDialogClass dialog which notifies the user that the application is working and which indicates the status of the process. This dialog is put up on its own thread. The process is indicated by an animation of gears grinding away and by the status text which the application may append. If the user chooses the provided "Cancel" trigger a message is sent which indicates that the process should be terminated.

Include: foam.goh

Reference: FoamProgressDialogClass, GenControlClass.


Indicator Classes

The indicator classes exist in the foam library to facilitate drawing the status indicator at the left of the Nokia 9000i Communicator screen. As such, they are usually not as useful as Gen classes. Below is a brief listing of these classes followed by a screen shot of several UI objects which instantiate these classes.

GreyGenInteractionClass

Inherits: GenPrimaryClass

This class creates a primary window with a gray background. It is an inappropriate base for most applications because it only draws properly when placed against the left edge of the screen and it puts a gray background behind the trigger menu, thus making them look different from all other Communicator applications.

Include: foam.goh

Reference: GreyGenInteractionClass, GenPrimaryClass .

IndicatorClass

Inherits: GenGlyphClass

An IndicatorClass object is a GenGlyph that draws an etched border around itself.

Include: foam.goh

Reference: IndicatorClass, GenGlyphClass .

IconIndicatorClass

Inherits: IndicatorClass

This class is a GenGlyph that can draw one or two icons within etched borders from a list of bitmaps. The displayed icons can be changed dynamically.

Include: foam.goh

Reference: IconIndicatorClass, IndicatorClass.

LevelIndicatorClass

Inherits: IndicatorClass

The LevelIndicatorClass draws a bitmap followed by a sequence of bitmaps. This is used for displaying a level indicator such as the battery charge. The number of levels or the bitmap label can be changed dynamically.

Include: foam.goh

Reference: LevelIndicatorClass, IndicatorClass.

IndicatorInteractionClass

Inherits: IndicatorClass

This makes a GenInteraction with an etched border.

Include: foam.goh

Reference: IndicatorInteractionClass, GenInteractionClass.


Filter Lists

FilterListClass

Inherits: GenDynamicListClass

See below for description.

FilterTextClass

Inherits: TextWithListClass, which in turn inherits GenTextClass.

FilterListClass and FilterTextClass objects work together to provide the appropriate UI for interactive searches.

Include: foam.goh

Reference: FilterListClass, FilterTextClass, TextWithListClass, GenTextClass.


Underlined Text

UnderlinedGenTextClass

Inherits: GenTextClass

See below for description.

UnderlinedVisTextClass

Inherits: VisTextClass

UnderlinedGenTextClass and UnderlinedVisTextClass objects behave like the associated TextClass objects except that the text area has a dotted underline. These classes are used extensively for text-entry fields on the Nokia 9000i Communicator.

Include: foam.goh

Reference: UnderlinedGenTextClass, UnderlinedVisTextClass, GenTextClass, VisTextClass.


Text Style Controllers

FoamTextStyleControlClass

Inherits: GenControlClass

See below for description.

FoamFontControlClass

Inherits: GenControlClass

See below for description.

FoamPointSizeControlClass

Inherits: GenControlClass

See below for description.

FoamJustificationControlClass

Inherits: GenControlClass

The controllers FoamTextStyleControlClass, FoamFontControlClass, FoamPointSizeControlClass, and/or FoamJustificationControlClass attach to a text object and allow the user to change the displayed text styles. These controllers are functionally equivalent to the standard text object controllers (TextStyleControl, FontControl, etc.), but they have UI and features customized for the Nokia 9000i Communicator.

Include: foam.goh

Reference: FoamTextStyleControlClass, FoamFontControlClass, FoamPointSizeControlClass, FoamJustificationControlClass, GenControlClass.


Up: GEOS SDK TechDocs | Up | Prev: Communicator UI | Next: 1 FoamSubApplicationClass