inst/doc/extensibility.R

### R code from vignette source 'extensibility.Rnw'

###################################################
### code chunk number 1: extensibility.Rnw:32-34
###################################################
library(grid)
library(gridSVG)


###################################################
### code chunk number 2: extensibility.Rnw:60-61
###################################################
tg <- grob(name="tg", cl="timegrob")


###################################################
### code chunk number 3: extensibility.Rnw:67-71
###################################################
timegrob <- function(x) {
    textGrob(paste("text generated at", Sys.time(), sep="\n"),
             gp=x$gp, name=x$name)
}


###################################################
### code chunk number 4: extensibility.Rnw:77-80
###################################################
drawDetails.timegrob <- function(x, ...) {
    grid.draw(timegrob(x))
}


###################################################
### code chunk number 5: simplegrob
###################################################
grid.draw(tg)


###################################################
### code chunk number 6: extensibility.Rnw:110-112
###################################################
bt <- grob(x=unit(.5, "npc"), y=unit(.5, "npc"), 
                  label="hi", name="bt", cl="boxedtext")


###################################################
### code chunk number 7: extensibility.Rnw:117-126
###################################################
boxedtext <- function(x) {
    tg <- textGrob(x$label, x$x, x$y,
                   name=paste(x$name, "text", sep=".")) 
    rg <- rectGrob(x$x, x$y, 
                   width=grobWidth(tg) + unit(2, "mm"),
                   height=grobHeight(tg) + unit(2, "mm"),
                   name=paste(x$name, "rect", sep="."))
    gTree(children=gList(tg, rg), gp=x$gp, name=x$name)
}


###################################################
### code chunk number 8: extensibility.Rnw:130-133
###################################################
drawDetails.boxedtext <- function(x, ...) {
    grid.draw(boxedtext(x))
}


###################################################
### code chunk number 9: notsimplegrob
###################################################
grid.draw(bt)


###################################################
### code chunk number 10: extensibility.Rnw:178-181
###################################################
primToDev.timegrob <- function(x, dev) {
    primToDev(timegrob(x), dev)
}


###################################################
### code chunk number 11: extensibility.Rnw:187-190
###################################################
grid.newpage()
grid.draw(tg)
gridToSVG("simpleclass.svg")


###################################################
### code chunk number 12: extensibility.Rnw:199-200
###################################################
library(XML)


###################################################
### code chunk number 13: extensibility.Rnw:203-205
###################################################
simpleclasssvg <- xmlParse("simpleclass.svg")
cat(saveXML(simpleclasssvg))


###################################################
### code chunk number 14: extensibility.Rnw:227-230
###################################################
primToDev.boxedtext <- function(x, dev) {
    primToDev(boxedtext(x), dev)
}


###################################################
### code chunk number 15: extensibility.Rnw:236-239
###################################################
grid.newpage()
grid.draw(bt)
gridToSVG("notsimpleclass.svg")


###################################################
### code chunk number 16: extensibility.Rnw:244-246
###################################################
notsimpleclasssvg <- xmlParse("notsimpleclass.svg")
cat(saveXML(notsimpleclasssvg))


###################################################
### code chunk number 17: extensibility.Rnw:280-286
###################################################
animate.timegrob <- function(x, ...) {
    tg <- timegrob(x)
    tg$animationSets <- x$animationSets
    tg$groupAnimationSets <- x$groupAnimationSets
    animate(tg, ...)
}


###################################################
### code chunk number 18: extensibility.Rnw:293-297
###################################################
grid.newpage()
grid.draw(tg)
grid.animate("tg", x=c(.3, .7))
gridToSVG("animsimpleclass.svg")


###################################################
### code chunk number 19: extensibility.Rnw:305-307
###################################################
animsimpleclasssvg <- xmlParse("animsimpleclass.svg")
cat(saveXML(animsimpleclasssvg))


###################################################
### code chunk number 20: extensibility.Rnw:325-337
###################################################
animate.boxedtext <- function(x, ...) {
    bt <- boxedtext(x)
    bt$groupAnimationSets <- x$groupAnimationSets
    animate(bt, ...)
    # Animate the children of bt 
    btrect <- getGrob(bt, "bt.rect")
    btrect$animationSets <- x$animationSets
    animate(btrect, ...)
    bttext <- getGrob(bt, "bt.text")
    bttext$animationSets <- x$animationSets
    animate(bttext, ...)
}


###################################################
### code chunk number 21: extensibility.Rnw:347-353
###################################################
grid.newpage()
grid.draw(bt)
grid.animate("bt", x=c(.3, .7))
grid.animate("bt", visibility=c("visible", "hidden"),
             begin=1, duration=0.1, group=TRUE)
gridToSVG("animnotsimpleclass.svg")


###################################################
### code chunk number 22: extensibility.Rnw:358-360
###################################################
animnotsimpleclasssvg <- xmlParse("animnotsimpleclass.svg")
cat(saveXML(animnotsimpleclasssvg))


###################################################
### code chunk number 23: extensibility.Rnw:391-397
###################################################
garnish.timegrob <- function(x, ...) {
    tg <- timegrob(x)
    tg$attributes <- x$attributes
    tg$groupAttributes <- x$groupAttributes 
    garnish(tg, ...)
}


###################################################
### code chunk number 24: extensibility.Rnw:405-409
###################################################
grid.newpage()
grid.draw(tg)
grid.garnish("tg", onmousedown="alert('ouch')")
gridToSVG("garnishsimpleclass.svg")


###################################################
### code chunk number 25: extensibility.Rnw:414-416
###################################################
garnishsimpleclasssvg <- xmlParse("garnishsimpleclass.svg")
cat(saveXML(garnishsimpleclasssvg))


###################################################
### code chunk number 26: extensibility.Rnw:423-429
###################################################
garnish.boxedtext <- function(x, ...) {
    bt <- boxedtext(x)
    bt$attributes <- x$attributes
    bt$groupAttributes <- x$groupAttributes 
    garnish(bt, ...)
}


###################################################
### code chunk number 27: extensibility.Rnw:443-449
###################################################
grid.newpage()
grid.draw(bt)
grid.garnish("bt", onmousedown="alert('ouch')")
grid.garnish("bt", onmouseover=c(bt.text="alert('watch it!')"),
             group=FALSE)
gridToSVG("garnishnotsimpleclass.svg")


###################################################
### code chunk number 28: extensibility.Rnw:454-456
###################################################
garnishnotsimpleclasssvg <- xmlParse("garnishnotsimpleclass.svg")
cat(saveXML(garnishnotsimpleclasssvg))

Try the gridSVG package in your browser

Any scripts or data that you put into this service are public.

gridSVG documentation built on March 31, 2023, 11:17 p.m.