diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/R/fastrGridDevices.R b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/R/fastrGridDevices.R index ef9033a6676b28bbf9ca3be615466d6363d83c31..8660bce52947128fca619ed9ecad4d4d804c1b18 100644 --- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/R/fastrGridDevices.R +++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/fastrGrid/grDevices/R/fastrGridDevices.R @@ -21,38 +21,24 @@ eval(expression({ - assignInNs <- function(x, val) { - ns <- asNamespace("grDevices") - unlockBinding(x, ns) - assign(x, val, envir = ns, inherits = T) - lockBinding(x, ns) - } - # This should be preffered way of starting the FastR java device. # For compatibility reasons, both X11 and awt end up calling C_X11. - # In the future, this function may support extra parameters like a - # reference to java 2D graphics object, which will be used for the drawing. - assignInNs('awt', function(width = NULL, height = NULL, graphicsObj = NULL) { + awt <- function(width = NULL, height = NULL, graphicsObj = NULL) invisible(.External2(grDevices:::C_X11, ".FASTR.AWT", width, height, graphicsObj)) - }) # Allows to get the SVG code from SVG device, it also closes the device, # but the contents are not saved to the given file. - assignInNs('svg.off', function(which = dev.cur()) { + svg.off <- function(which = dev.cur()) { if (which == 1) { stop("cannot shut down device 1 (the null device)") } .External(C_devoff, as.integer(-which)) - }) + } # Allows to get the SVG code from SVG device without closing it + # the symbol info should be constant svgStringSymbol <- list(name='svgstring') - assignInNs('svg.string', function() { - .External(svgStringSymbol) - }) - - # Adds help files for the new public functions - .fastr.addHelpPath('/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd') + svg.string <- function() .External(svgStringSymbol) # GnuR version only works with "X11cairo" device. Our version of savePlot # works with "awt" device and "X11cairo", which is for us only alias for @@ -103,4 +89,13 @@ eval(expression({ grid:::grid.refresh() } -}), asNamespace("grDevices")) \ No newline at end of file +}), asNamespace("grDevices")) + +# export new public functions +exports <- asNamespace("grDevices")[[".__NAMESPACE__."]][['exports']] +assign('svg.off', 'svg.off', envir = exports) +assign('svg.string', 'svg.string', envir = exports) +assign('awt', 'awt', envir = exports) + +# add help files for the new public functions +.fastr.addHelpPath('/com/oracle/truffle/r/library/fastrGrid/grDevices/Rd') \ No newline at end of file