[R] Platform independent dialogs & menus?

Keith Chamberlain Keith.Chamberlain at colorado.edu
Mon Mar 20 19:45:56 CET 2006

Dear Philippe, (& list)

I am not sure what is meant by 'floating window' but thank you for
clarifying the 'win' prefix. I had been considering different possible
senses of that prefix: win as in 'ts' window & windowing functions (clearly
not), a generic 'win'dow function (abbreviated) for some GUI, or ms windows
GUI windowing function in particular. I'm noticing that the description in
{utils:winMenuAdd} indicates 'for windows', and it's quite clear (now,
anyway) that it is to be taken as ms windows. But cool, I WAS barking down
the wrong tree & can now refocus efforts. Curious how the correct meaning
did not pop out at me. 

I was not aware of the {Session} package. What I've merely glanced at
suggests the package is exactly (or really, really darn close) to what I had
in mind. I appreciate the suggestion.

I downloaded SciViews & Tinn-R 2 days ago, and LOVE Tinn-R so far; syntax
highlighting, oh yes! My rudimentary understanding, however, was that
SciViews was only compiled for MS Windows so far. Can I run SciViews
natively on a Mac now, or is the cross-platform part specific to some of the


-----Original Message-----
From: Philippe Grosjean [mailto:phgrosjean at sciviews.org] 
Sent: Monday, March 20, 2006 6:18 AM
To: Keith Chamberlain
Cc: r-help at stat.math.ethz.ch
Subject: Re: [R] Platform independent dialogs & menus?

Keith Chamberlain wrote:
> Dear list mates,
> Are {utils} dialog box functions, and winMenuAdd... functions used to
> change (e.g. Console) menus, platform dependent? 

Yes, Windows-only as the 'win' prefix suggests it.

> I'm writing a script loaded with .First that provides first time users in 
> a lab course with the ability to select, load, and change between what I
> called a 'session' (more specific save that focuses on the session object 
> I defined rather than the whole workspace, & intended to run many 
> different sessions through the course of what would be one workspace).

See also the 'session' package on CRAN for that.

> I'm using winMenuAdd() calls to generate their 'Session' menu at startup,
> the menus call functions sourced in for the menu actions. In the menu
> actions, I call routines that use select.list() and file.choose() calls to
> interact with users. 
> I do not work with Macs often, and from what I've gathered today in posts
> about cross-platform difficulties, my sense of being intimidated "seems"
> well placed to me (then again, breaks & some sleep would probably help). I
> have not had the chance to test routines on a Mac yet, so I have no idea
> what to expect. Is this tract I took with winMenuAdd() & related [{utils}
> windows build] an appropriate route to take wrt the Mac build of R, or
> I be better off using another package? 

For a platform-independent way of defining menus (you will have a 
floating window with your menu), look at ?MenuAdd in package svWidgets 
(SciViews bundle). With these functions, you even have more control on 
the menus (define shortcuts, trigger the menus through R code, for 
instance), and you can define your menu in one R instruction and a 
simple text file to describe the menu structure, like this:

# Create a Tk window then add a menu to it
||Objects  ~~ ls()
||Path	   ~~ search()

# Add menus to the RGui console (Windows only)
||One	  ~~ cat("One triggered!\n")
||Two	  ~~ cat("Two triggered!\n")  ~~ state = "disable"
|||Three  ~~ cat("Three triggered!\n")
|||Four	  ~~ cat("Four triggered!\n")
||Five	  ~~ cat("Five triggered!\n")

# Add menu to the RGui console popup (Windows only)
||Six	  ~~ cat("Six triggered!\n")

If the preceeding menu definition is in a file named "Menus.txt" in the 
/gui subdirectory of your "MyPackage" package, you can do:

 > tkWinAdd("MyTkWindow", title = "Menu window", pos ="-40+20")
 > MenuReadPackage("MyPackage")

... and you got all your menus configured at once (for MyTkWindows + 
RGui console + RGui console popup menu


Philippe Grosjean

> Please advise,
> KeithC.
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!

More information about the R-help mailing list