Re: [Rd] Qt device update

From: Martin Maechler <maechler_at_stat.math.ethz.ch>
Date: Sat, 05 May 2007 16:04:46 +0200

>>>>> "BDR" == Prof Brian Ripley <ripley_at_stats.ox.ac.uk> >>>>> 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).
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



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sat 05 May 2007 - 14:10:06 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sat 05 May 2007 - 15:03:44 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.