Skip to content
Prev 164660 / 398506 Next

How to mimic select.list using RGtk2/gWidgetsRGtk2?

ronggui <ronggui.huang <at> gmail.com> writes:
Hi,

You can call foo in the handler above or for gWidgetsRGtk2 use gbasicdialog
which will create a modal dialog:

options(guiToolkit="RGtk2")
library(gWidgets)

select <- function(x,multiple=TRUE,...){
  ans<-new.env()

  x1<-ggroup(horizontal=FALSE) # no parent container here
  x2<-gtable(x,multiple=multiple,con=x1,expand=TRUE)
  ret <- gbasicdialog(title="select a widget", widget=x1,handler=function(h,...){
    value <- svalue(x2)
    if (length(value)==0) value=""
    assign("selected",value,env=h$action$env)
    dispose(x1)
  },action=list(env=ans))
  ans
}

ans <- select(c("a","b"))
print(ans$selected)

Hope that helps.