blob: 1678f2121053a629cde9e742de9abe46553b1a1e [file] [log] [blame]
% File src/library/grid/man/grid.edit.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2007 R Core Team
% Distributed under GPL 2 or later
\name{grid.edit}
\alias{grid.edit}
\alias{grid.gedit}
\alias{editGrob}
\title{Edit the Description of a Grid Graphical Object}
\description{
Changes the value of one of the slots of a grob
and redraws the grob.
}
\usage{
grid.edit(gPath, ..., strict = FALSE, grep = FALSE,
global = FALSE, allDevices = FALSE, redraw = TRUE)
grid.gedit(..., grep = TRUE, global = TRUE)
editGrob(grob, gPath = NULL, ..., strict = FALSE, grep = FALSE,
global = FALSE, warn = TRUE)
}
\arguments{
\item{grob}{A grob object.}
\item{\dots}{Zero or more named arguments specifying new slot values.}
\item{gPath}{ A gPath object. For \code{grid.edit} this
specifies a grob on the display list. For \code{editGrob} this
specifies a descendant of the specified grob. }
\item{strict}{ A boolean indicating whether the gPath must be
matched exactly. }
\item{grep}{A boolean indicating whether the \code{gPath} should
be treated as a regular expression. Values are recycled across
elements of the \code{gPath} (e.g., \code{c(TRUE, FALSE)} means
that every odd element of the \code{gPath} will be treated as
a regular expression).
}
\item{global}{ A boolean indicating whether the function should affect
just the first match of the \code{gPath}, or whether all matches
should be affected.
}
\item{warn}{A logical to indicate whether failing to find the
specified gPath should trigger an error. }
\item{allDevices}{ A boolean indicating whether all open devices
should
be searched for matches, or just the current device.
NOT YET IMPLEMENTED.
}
\item{redraw}{A logical value to indicate whether to redraw the grob. }
}
\details{
\code{editGrob} copies the specified grob and returns a modified
grob.
\code{grid.edit} destructively modifies a grob on the display list.
If \code{redraw}
is \code{TRUE} it then redraws everything to reflect the change.
Both functions call \code{editDetails} to allow a grob to perform
custom actions and \code{validDetails} to check that the modified grob
is still coherent.
\code{grid.gedit} (\code{g} for global) is just a convenience wrapper for
\code{grid.edit} with different defaults.
}
\value{
\code{editGrob} returns a grob object; \code{grid.edit} returns \code{NULL}.
}
\author{Paul Murrell}
\seealso{
\code{\link{grob}}, \code{\link{getGrob}},
\code{\link{addGrob}}, \code{\link{removeGrob}}.
}
\examples{
grid.newpage()
grid.xaxis(name = "xa", vp = viewport(width=.5, height=.5))
grid.edit("xa", gp = gpar(col="red"))
# won't work because no ticks (at is NULL)
try(grid.edit(gPath("xa", "ticks"), gp = gpar(col="green")))
grid.edit("xa", at = 1:4/5)
# Now it should work
try(grid.edit(gPath("xa", "ticks"), gp = gpar(col="green")))
}
\keyword{dplot}