utils.multilistbox

Display a dialog box with choices in it in a multiple selection list box

Prototype

result = utils.multilistbox (msg, title, tbl, default)

Description

This displays a dialog box with a predetermined list of items for the user to choose from, in the form of a multiple-selection listbox. If the user cancels the dialog box, or does not make a selection, nil is returned. Otherwise the key of the selected item is returned.

There are three similar functions that have the same arguments: The utils.listbox function would be more suitable for longer lists, but that is probably partly personal preference.

The utils.multilistbox function allows multiple selections, so this is useful when you want the user to be able to select multiple items.

The calling sequence is:

result = utils.multilistbox ( msg, title, t, default )
The only required arguments are the message text and the table of choices (t). Return value = a table of the selected keys, or nil if nothing selected.

The third argument is a table of key/value pairs. The value is displayed, however the corresponding key is returned. The values are automatically sorted into ascending alphabetic order.

The fourth argument is a table of the keys of the wanted defaults. For no default selection just pass nil as the default.

Example:

t = { 
    fruit = "apple", 
    vegetable = "potato", 
    spice = "pepper", 
    herb = "parsley",
    } 

defaults = {
    fruit = true, 
    spice = true, 
    }

result = utils.multilistbox (
    "Choose a food", 
    "Foods ...", 
    t, 
    defaults
    )
Possible returned values would be:


Keys and values can be either strings or numbers. MUSHclient will distinguish between strings and numbers which are the same (eg. "10" and 10 are considered different keys).

Lua functions

Topics