A markable list is a selection list with the added marking feature. The user can mark any number of items on the list while browsing it, and then execute a single command, which is applied to all the marked items. This is analogous to the multiple-item highlight feature available on desktop computers.
The marking feature is typically applied to lists that contain a large number of items that can be, for example, sent, moved, or deleted. By marking items first and then selecting a command, the user can perform certain operations more quickly and with fewer key presses than if dealing with each item separately.
Marked items are indicated graphically.
Figure: Marking mode
The Mark and Unmark functions are available in the Options menu of the markable list. Alternatively, as a shortcut, the user can keep the Hash (#) key pressed while using the Arrow keys and the Selection key in the following way:
Pressing the Hash (#) key marks the current item. This is a toggling function, so pressing the Hash (#) key on a marked item unmarks the item.
Pressing an Arrow key (up or down) while holding down the Hash (#) key marks both the current item and the one onto which the focus moves. If the user keeps holding the Hash (#) key and scrolls further in the same direction, all the scrolled items are marked; to unmark the items in reverse order the user can scroll in the opposite direction while holding the Hash (#) key down.
Items can be unmarked by pressing the Hash (#) key together with scrolling: if the user holds the Hash (#) key down when on a marked item and then scrolls, all the scrolled items become unmarked.
Several marking actions can be done subsequently. The user can mark an item, then release the Hash (#) key, browse and move the focus onto some other item on the list, and then mark that item. The first item remains marked, and the ones between the two are not marked.
All items become unmarked when the user exits the list, for example, by back stepping. There may be exceptions to this rule in certain applications that require selecting items from several levels of folder hierarchy.
Pressing the Selection key when there are marked items on the list opens the context sensitive Options menu containing only those functions that apply to multiple items.
A markable list functions exactly like a normal selection list, except for the marking feature.
The user may access the Options menu to perform functions on all marked items at once. When user has one or more items marked, Options menu does not contain items that apply to one item only (such as Open). Exceptions are Help and Exit, which should appear in every Options menu. Appropriate error handling must be designed for functions that do not apply to some or all of the marked items.
When executing a function, if any of the items are marked, all the marked items are affected by the function. If the focus is on an item that is not marked, the function does not affect that item.
After the selected function is successfully done, all items are unmarked. In an error case, when the function cannot be applied, the marks should remain in place.
The Options menu includes the marking and unmarking functions in a submenu so that any user can find the feature. The submenu has also the Mark all and Unmark all options.
The API to use for markable lists is the Lists API. For more information, see Symbian C++ API specifications.