rp.listbox {rpanel}R Documentation

Listbox for a panel

Description

This function adds a listbox to the panel. When an item is pressed, a variable is set and an action function is called.

Usage

rp.listbox(panel, var, vals, labels = vals, rows = length(vals), initval = vals[1], 
           parent = window, pos = NULL, title = deparse(substitute(var)), action = I, ...)

Arguments

panel

the panel in which the listbox should appear. This may be passed as a panelname string or the panel object itself.

var

the name of the variable whose value is set by the listbox.

vals

the values of var used by the listbox.

labels

the labels for values of var offered by the listbox.

rows

the number of rows in the list. This defaults to the number of labels. If the number of labels is greater than the number of rows the listbox will be displayed with a scrollbar.

initval

the initial value of <var> (optional). The initial value can also be specified in the call to rp.control.

parent

this specifies the widget inside which the listbox should appear. In the current version of rpanel, it should not normally be used.

pos

the layout instructions. Please see the rp.pos example and help for full details.

title

the label for the listbox.

action

the function which is called when an item is chosen.

...

information for pos can be passed individually as additional arguments.

Details

The function action should take one argument, which should be the panel to which the listbox is attached.

See rp.grid for details of the grid layout system.

Value

If the parameter panel is the panelname string the same string is returned. If the panel object is used the altered panel is assigned to both the calling level and panel's environment level.

Warning

The action function should return the panel. Without this assignment any widgets added or alterations made to panel parameters within the action function will be lost.

References

rpanel: Simple interactive controls for R functions using the tcltk package. Journal of Statistical Software, 17, issue 9.

See Also

rp.checkbox,rp.control

Examples

if (interactive()) {
   data.plotfn <- function(panel) {
     if (panel$plot.type == "histogram")
       hist(panel$x)
     else
       if (panel$plot.type == "boxplot")
         boxplot(panel$x)
       else
         plot(density(panel$x))
     panel
   }
   panel <- rp.control(x = rnorm(50))
   rp.listbox(panel, plot.type,
       c("histogram", "boxplot", "density estimate"),
       action = data.plotfn, title = "Plot type") 
   }

[Package rpanel version 1.0-6 Index]