File: tk2swaplist.R

package info (click to toggle)
r-cran-tcltk2 1.2-10-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 5,356 kB
  • ctags: 1,386
  • sloc: tcl: 37,888; ansic: 792; python: 324; sh: 68; sed: 16; makefile: 1
file content (23 lines) | stat: -rw-r--r-- 836 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
tk2swaplist <- function(items, selection, title = "Select items", ...)
{
    win <- tktoplevel()
    res <- try(tclRequire("swaplist"), silent = TRUE)
    if (inherits(res, "try-error"))
        stop("swaplist Tcl package not available")
    sel <- tclVar()
    res <- tcl("swaplist::swaplist", win, sel, items, selection,
        title = title, ...)
    if (tclvalue(res) == 0) { # User cancelled
        res <- character(0)
    } else res <- tclObj(sel)
    if (is.ordered(items))
        return(ordered(as.character(res), levels = levels(items)))
    if (is.factor(items))
        return(factor(as.character(res), levels = levels(items)))
    switch(typeof(items),
        integer = as.integer(res),
        double = as.numeric(res),
        logical = as.logical(res),
        complex = as.complex(res),
        as.character(res))
}