\HeaderA{grid.grob}{Create a Grid Graphical Object}{grid.grob}
\aliasA{childNames}{grid.grob}{childNames}
\aliasA{gList}{grid.grob}{gList}
\aliasA{grob}{grid.grob}{grob}
\aliasA{grobTree}{grid.grob}{grobTree}
\aliasA{gTree}{grid.grob}{gTree}
\keyword{dplot}{grid.grob}
\begin{Description}\relax
These functions create grid graphical objects.
\end{Description}
\begin{Usage}
\begin{verbatim}
grid.grob(list.struct, cl = NULL, draw = TRUE)
grob(..., name = NULL, gp = NULL, vp = NULL, cl = NULL) 
gTree(..., name = NULL, gp = NULL, vp = NULL, children = NULL, 
      childrenvp = NULL, cl = NULL)
grobTree(..., name = NULL, gp = NULL, vp = NULL, 
         childrenvp = NULL, cl = NULL)
childNames(gTree)
gList(...)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{...}] For \code{grob} and \code{gTree}, the
named slots describing important features of
the graphical object. For \code{gList} and \code{grobTree},
a series of grob objects. 
\item[\code{list.struct}] A list (preferably with each element named).
\item[\code{name}] A character identifier for the grob.  Used to find the
grob on the display list and/or as a child of another grob. 
\item[\code{children}] A gList object. 
\item[\code{childrenvp}] A viewport object (or \code{NULL}).
\item[\code{gp}] A gpar object, typically the output
from a call to the function \code{gpar}.  This is basically
a list of graphical parameter settings.
\item[\code{vp}] A viewport object (or \code{NULL}).
\item[\code{cl}] A string giving the class attribute for the \code{list.struct}
\item[\code{draw}] A logical value to indicate whether to produce
graphical output.
\item[\code{gTree}] A gTree object.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
These functions can be used to create a basic grob, gTree, or gList
object, or a new class derived from one of these.

A grid graphical object (grob) is a description of a graphical
item.  These basic classes provide default behaviour for
validating, drawing,
and modifying graphical objects.  Both call the function
\code{validDetails} to check that the object returned is coherent.

A gTree can have other grobs as children;  when a gTree is drawn, it
draws all of its children.  Before drawing its children, a gTree
pushes its childrenvp slot and then navigates back up (calls
\code{upViewport}) so that the children can specify their location
within the childrenvp via a vpPath.

Grob names need not be unique in general, but all children of a
gTree must have different names.  
A grob name can be any string, though
it is not
advisable to use the gPath separator  (currently \code{::}) in
grob names.

The function \code{childNames} returns the names of the grobs
which are children of a gTree.

All grid primitives (\code{grid.lines}, \code{grid.rect}, ...) and
some higher-level grid components (e.g., \code{grid.xaxis} and
\code{grid.yaxis}) are derived from these classes.

\code{grobTree} is just a convenient wrapper for \code{gTree}
when the only components of the gTree are grobs (so all
unnamed arguments become children of the gTree).

\code{grid.grob} is deprecated.
\end{Details}
\begin{Value}
A grob object.
\end{Value}
\begin{Author}\relax
Paul Murrell
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{grid.draw}{grid.draw}},
\code{\LinkA{grid.edit}{grid.edit}},
\code{\LinkA{grid.get}{grid.get}}.
\end{SeeAlso}

