>>>>> "BDR" == Prof Brian Ripley <[EMAIL PROTECTED]> >>>>> on Sat, 5 May 2007 15:22:30 +0100 (BST) writes:
BDR> On Sat, 5 May 2007, Martin Maechler wrote: >>>>>>> "BDR" == Prof Brian Ripley <[EMAIL PROTECTED]> >>>>>>> on Fri, 4 May 2007 22:09:58 +0100 (BST) writes: >> BDR> On Fri, 4 May 2007, Simon Urbanek wrote: >> >> On May 3, 2007, at 8:52 PM, Deepayan Sarkar wrote: >> >> >> >>> [...] I have a couple of related questions. First, >> >>> dev.interactive (), used in example() and many >> demo()-s >>> to decide if the current device is >> interactive, is >>> currently implemented as: >> >>> >> >>>> dev.interactive >>> function (orNone = FALSE) { >> iDevs <- c("X11", "GTK", >>> "gnome", "quartz", >> "windows", "JavaGD") interactive() && >>> (.Device %in% >> iDevs || (orNone && .Device == "null >>> device" && >> getOption("device") %in% iDevs)) } >> >>> >> >>> This makes it impossible for new devices to be >> treated >>> as interactive. >> >> >> >> >> >> I think we should finally pass this question to the >> >> device itself. For some devices like Cairo the answer >> >> depends on the parameters with which the device was >> >> created (e.g. type='x11' is interactive whereas >> >> type='png' is not), so each instance of the device will >> >> answer differently. We could simply add an another >> >> capability flag - that is IMHO the only reliable >> >> solution. Any other ideas? >> BDR> Do we need a reliable solution? The worst that happens BDR> that if R thinks a device is interactive and it is not, BDR> you get asked to go on to the next page a few times. >> BDR> I've altered R-devel to look at the displaylist. All BDR> the devices I knew had that enabled by default iff they BDR> are screen devices, but I've just looked at Cairo and BDR> it seems that could be a bit less dumb about its BDR> setting. >> BDR> You can't in general ask the device, as there might be BDR> no device open and you need to know what the device BDR> that would automatically opened will do. And you don't BDR> want to open it, as it might not be needed. Allowing BDR> devices to say by name that they will be interactive is BDR> the only way anyone has come up with on this so far. >> I agree (particularly about the very logical reason >> above). But I tend to agree with Deepayan, that we >> should give the useR / programmeR a way to just add a >> name to that list (well "readably", i.e. with a >> selfexplainable function call). BDR> You meam as in BDR> o dev.interactive() regards devices with the BDR> displaylist enabled as interactive, and packages can BDR> register the names of their devices as interactive via BDR> deviceIsInteractive(). BDR> ? Yes, indeed... you are moving faster than I do thinking ;-) Martin >> Even for Cairo, the useR can add "cairo" to that list >> when she knows that cairo will be called in X11-mode; or >> maybe the cairo "initialization/setup" code code do that >> automatically when it's loaded.. >> >> Martin >> BDR> -- Brian D. Ripley, [EMAIL PROTECTED] Professor of BDR> Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ BDR> University of Oxford, Tel: +44 1865 272861 (self) 1 BDR> South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, BDR> UK Fax: +44 1865 272595 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel