[Rd] Qt device update

Martin Maechler maechler at stat.math.ethz.ch
Sat May 5 16:49:34 CEST 2007


>>>>> "BDR" == Prof Brian Ripley <ripley at stats.ox.ac.uk>
>>>>>     on Sat, 5 May 2007 15:22:30 +0100 (BST) writes:

    BDR> On Sat, 5 May 2007, Martin Maechler wrote:
    >>>>>>> "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).

    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, ripley at stats.ox.ac.uk 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



More information about the R-devel mailing list