| % File src/library/grid/man/makeContent.Rd |
| % Part of the R package, https://www.R-project.org |
| % Copyright 1995-2007 R Core Team |
| % Distributed under GPL 2 or later |
| |
| \name{makeContent} |
| \alias{makeContent} |
| \alias{makeContext} |
| \title{ Customised grid Grobs } |
| \description{ |
| These generic hook functions are called whenever a grid grob is drawn. |
| They provide an opportunity for customising the drawing context |
| and drawing content of a |
| new class derived from grob (or gTree). |
| } |
| \usage{ |
| makeContext(x) |
| makeContent(x) |
| } |
| \arguments{ |
| \item{x}{ A grid grob. } |
| } |
| \details{ |
| These functions are called by the \code{grid.draw} methods for grobs |
| and gTrees. |
| |
| \code{makeContext} is called first during the drawing of a grob. |
| This function should be used to \emph{modify} the \code{vp} slot |
| of \code{x} (and/or the \code{childrenvp} slot if \code{x} |
| is a gTree). The function \emph{must} return the modified \code{x}. |
| Note that |
| the default behaviour for grobs is to push any viewports in the |
| \code{vp} slot, and for gTrees is to also push and up any viewports in the |
| \code{childrenvp} slot, so this function is used to customise the |
| drawing context for a grob or gTree. |
| |
| \code{makeContent} is called next and is where any additional |
| calculations should occur and graphical content should |
| be generated (see, for example, |
| \code{grid:::makeContent.xaxis}). |
| This function should be used to \emph{modify} the \code{children} |
| of a gTree. |
| The function \emph{must} return the modified \code{x}. |
| Note that the default behaviour |
| for gTrees is to draw all grobs in the \code{children} slot, |
| so this function is used to customise the drawing content for a gTree. |
| It is also possible to customise the drawing content for a simple |
| grob, but more care needs to be taken; for example, the function |
| should return a standard grid primitive with a \code{drawDetails()} |
| method in this case. |
| |
| Note that these functions should be \emph{cumulative} in their |
| effects, so that the \code{x} returned by \code{makeContent()} |
| \emph{includes} any changes made by \code{makeContext()}. |
| |
| Note that \code{makeContext} is |
| also called in the calculation of \code{"grobwidth"} and |
| \code{"grobheight"} units. |
| } |
| \value{ |
| Both functions are expected to return a grob or gTree |
| (a modified version of \code{x}). |
| } |
| \author{ Paul Murrell } |
| \seealso{ \code{\link{grid.draw}} } |
| \keyword{ dplot } |