utextDynamic <- function(label,
                         x=.5, y=.5, default.units="npc",
                         just="centre", name="utext") {
    if (!is.unit(x)) x <- unit(x, default.units)
    if (!is.unit(y)) y <- unit(y, default.units)
    gTree(label=label, x=x, y=y, just=just, 
          cl="utextDynamic", name=name)
}

makeContent.utextDynamic <- function(x) {
    kids <- utextChildren(x$label, x$x, x$y, 
                          just=x$just, x$name) 
    setChildren(x, kids) 
}


ug <- utextDynamic("underlined text")
grid.draw(ug)


grid.edit("utext", gp=gpar(col="grey"))


grid.edit("utext", label="le texte soulign\U00E9")


grid.force()


grid.edit("utext.underline", gp=gpar(lwd=3))


postscript("Figures/interactgrid-utextgtreelowedit%1d.eps",
  paper="special", 
  onefile=FALSE, width=2, height=1, horizontal=FALSE)
grid.rect(gp=gpar(col="grey"))
ug <- utextDynamic("underlined text")
grid.draw(ug)
grid.edit("utext", gp=gpar(col="grey"))
grid.edit("utext", label="le texte soulign\U00E9")
grid.force()
grid.edit("utext.underline", gp=gpar(lwd=3))
dev.off()
pdf("Figures/interactgrid-utextgtreelowedit%1d.pdf",
  onefile=FALSE, width=2, height=1)
grid.rect(gp=gpar(col="grey"))
ug <- utextDynamic("underlined text")
grid.draw(ug)
grid.edit("utext", gp=gpar(col="grey"))
grid.edit("utext", label="le texte soulign\U00E9")
grid.force()
grid.edit("utext.underline", gp=gpar(lwd=3))
dev.off()
png("Web/interactgrid-utextgtreelowedit%1d.png",
    width=137, height=69)
grid.rect(gp=gpar(col="grey"))
ug <- utextDynamic("underlined text")
grid.draw(ug)
grid.edit("utext", gp=gpar(col="grey"))
grid.edit("utext", label="le texte soulign\U00E9")
grid.force()
grid.edit("utext.underline", gp=gpar(lwd=3))
dev.off()


