Hi Duncan,

thank you very much for your advice! That makes it all work. 

I check in addition for a "title" argument in the device via

if (any(names(getOption("device")) == TRUE)) {
        dev.new(title = "title")
} 

Thanks again!

Simon

On Jul 13, 2013, at 2:40 PM, Duncan Murdoch <murdoch.dun...@gmail.com> wrote:

> On 13-07-13 1:33 PM, Simon Zehnder wrote:
>> Dear R-Users,
>> 
>> I am writing a package using S4 classes. In the generic method "plot" I want 
>> to set the title for the plotting window as I will have several windows and 
>> window titles help the users to distinguish the graphics without putting a 
>> title into the plot itself (this can be done by users whenever they want)
>> 
>> So I created a helper function .setDeviceTitle which I called after the plot 
>> has been done:
>> 
>> ".setDeviceTitle" <- function(title = "title", dev = dev.cur()) {
>>      dev <- names(dev)[1]
>>      
>>      ## check for OS ##
>>      if (dev == "windows") {
>>              windows(title = title)
>>      } else if (dev == "X11") {
>>              X11(title = title)
>>      } else {
>>              quartz(title = title)
>>      }
>> }
>> 
>> The result is a new device with the title in addition to the old. Is it 
>> possible to give a window a title after the plot has been done? If not: 
>> Before I plot the device I cannot know what device it will be, so I thought 
>> about a check via capabilities():
>> 
>> if (any(names(capabilities()) == "X11")) {
>>      X11(title = title)
>> }
>> else if (any(names(capabilities)) == "windows") {
>>      windows(title = title)
>> } else {
>>      quartz(title = title)
>> }
>> 
>> I want to have a safe method, which works on each OS R can run. How would 
>> you solve the problem?
> 
> Use dev.new() rather than picking a particular device.  If all the possible 
> devices support the "title" argument, then
> 
> dev.new(title=title)
> 
> will be fine.  If you might need more customization (or want to protect 
> against a user who chooses a device that doesn't have "title" as an 
> argument), use getOption("device") to examine the call that will be used.
> 
> Duncan Murdoch
> 

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to