
useDynLib(lattice, .registration = TRUE)

import(grid)

## importFrom(methods, hasArg) # replicated in hasGroupNumber()

importFrom(grDevices,

           dev.hold, dev.flush, dev.capabilities,
           dev.list, cm.colors, gray, col2rgb, rgb, adjustcolor,
           heat.colors, grey, hsv, xy.coords, axisTicks,
           boxplot.stats, contourLines, colorRamp, colorRampPalette,
           as.raster, hcl.colors, palette.colors, convertColor)

importFrom(graphics, par, plot, co.intervals, hist)

importFrom(utils, head, tail, modifyList)


importFrom(stats,

           as.formula, density, fitted.values, loess.smooth, median,
           ppoints, qnorm, residuals, update, var, coef, quantile, lm,
           dnorm, qunif, uniroot, smooth.spline, predict)


export(histogram,     # high level generics:
       densityplot,
       qqmath,
       qq,
       bwplot,
       dotplot,
       barchart,
       stripplot,
       xyplot, xyplot.ts, # needed by zoo
       contourplot,
       levelplot,
       cloud,
       wireframe,
       splom,
       parallelplot,
       tmd,

       rfs,
       oneway,

       ## default panel functions

       panel.histogram,
       panel.densityplot,
       panel.qqmath,
       panel.qq,
       panel.bwplot, 
       panel.dotplot,
       panel.barchart,
       panel.stripplot,
       panel.xyplot,
       panel.contourplot,
       panel.levelplot,   panel.levelplot.raster,
       panel.cloud,       panel.3dscatter, 
       panel.wireframe,   panel.3dwire,
       panel.pairs,
       panel.splom,       diag.panel.splom,
       panel.parallel,
       panel.tmd.default, panel.tmd.qqmath,
       
       panel.error,

       ## Components for use in custom panel functions:

       ## superposition (usually unnecessary)

       panel.superpose,
       panel.superpose.2,
       panel.superpose.plain,
       
       ## data-driven (usually summary of some sort)

       panel.smoothScatter,
       panel.violin,
       panel.rug,
       panel.average,
       panel.linejoin,
       panel.lmline,
       panel.loess,
       panel.spline,
       panel.qqmathline,

       ## decorative / adds reference

       panel.abline,
       panel.refline,
       panel.curve,
       panel.fill,
       panel.grid,
       panel.mathdensity,
       panel.axis,

       ## access relevant informations (works in strip/axis as well)

       current.row,
       current.column,
       panel.number,
       packet.number,
       which.packet,
       trellis.currentLayout,

       ## replacements for low level standard graphics functions

       lplot.xy,
       llines,    panel.lines,
       lpoints,   panel.points,
       lsegments, panel.segments,
       ltext,     panel.arrows,
       lrect,     panel.text,
       larrows,   panel.rect,
       lpolygon,  panel.polygon,
       lpolypath, panel.polypath,


       ## useful prepanel functions

       prepanel.tmd.default, prepanel.tmd.qqmath,
       prepanel.lmline,
       prepanel.loess,
       prepanel.spline,
       prepanel.qqmathline,


       ## default prepanel functions

       prepanel.default.bwplot,
       prepanel.default.histogram,
       prepanel.default.qq,
       prepanel.default.xyplot,
       prepanel.default.cloud,
       prepanel.default.levelplot,
       prepanel.default.qqmath,
       prepanel.default.densityplot,
       prepanel.default.parallel,
       prepanel.default.splom,

       ## shingles 

       shingle,
       is.shingle,
       as.shingle, 
       as.factorOrShingle,
       equal.count,

### construct.scales,


       draw.colorkey,
       draw.key,
       simpleKey, 
       latticeParseFormula,

       ## 3D utilities

       ltransform3dMatrix,
       ltransform3dto3d,

       ## miscellaneous utilities

       strip.default,
       strip.custom,
       packet.panel.default,
       axis.default,
       xscale.components.default,
       yscale.components.default,

       do.breaks,
       make.groups,
       banking, 
       Rows,
       level.colors,

       ## settings 

       show.settings,
       trellis.device,
       trellis.par.get,
       trellis.par.set,
       lattice.getOption,
       lattice.options,
       canonical.theme,
       standard.theme,
       classic.theme,
       col.whitebg,
       simpleTheme,
       makeShadePalette,       


       ## interaction etc
       
       panel.identify,
       panel.identify.qqmath,
       panel.identify.cloud,
       panel.link.splom,
       panel.brush.splom,
       trellis.focus,
       trellis.unfocus,
       trellis.switchFocus,
       trellis.panelArgs,
       trellis.vpname,
       trellis.grobname,
       current.panel.limits,

       trellis.last.object


       )

S3method(widthDetails, latticeKey)


## methods related to shingles

S3method("[",           shingle)
S3method(as.data.frame, shingle)
S3method(plot,          shingle)
S3method(print,         shingle)
S3method(summary,       shingle)
S3method(as.character,  shingleLevel)
S3method(print,         shingleLevel)

## methods for ``trellis'' objects (see also tmd below)

S3method(print,    trellis)
S3method(plot,     trellis)
S3method(update,   trellis)
S3method(dim,      trellis)
S3method(dimnames, trellis)
S3method("dimnames<-", trellis)
S3method("[",      trellis)
S3method(t,        trellis)
S3method(summary,  trellis)
S3method(print,    summary.trellis)


## methods for high level functions

S3method(barchart,      formula)
S3method(barchart,      data.frame)
S3method(barchart,      array)
S3method(barchart,      default)
S3method(barchart,      matrix)
S3method(barchart,      numeric)
S3method(barchart,      table)

S3method(bwplot,        formula)
S3method(bwplot,        data.frame)
S3method(bwplot,        numeric)
S3method(densityplot,   formula)
S3method(densityplot,   data.frame)
S3method(densityplot,   numeric)
S3method(dotplot,       formula)
S3method(dotplot,       data.frame)
S3method(dotplot,       array)
S3method(dotplot,       default)
S3method(dotplot,       matrix)
S3method(dotplot,       numeric)
S3method(dotplot,       table)
S3method(histogram,     formula)
S3method(histogram,     data.frame)
S3method(histogram,     factor)
S3method(histogram,     numeric)
S3method(qqmath,        formula)
S3method(qqmath,        data.frame)
S3method(qqmath,        numeric)
S3method(stripplot,     formula)
S3method(stripplot,     data.frame)
S3method(stripplot,     numeric)
S3method(qq,            formula)
S3method(qq,            data.frame)
S3method(xyplot,        formula)
S3method(xyplot,        data.frame)
S3method(xyplot,        ts)
S3method(levelplot,     formula)
S3method(levelplot,     data.frame)
S3method(levelplot,     table)
S3method(levelplot,     array)
S3method(levelplot,     matrix)
S3method(contourplot,   formula)
S3method(contourplot,   data.frame)
S3method(contourplot,   table)
S3method(contourplot,   array)
S3method(contourplot,   matrix)
S3method(cloud,         formula)
S3method(cloud,         data.frame)
S3method(cloud,         matrix)
S3method(cloud,         table)
S3method(wireframe,     formula)
S3method(wireframe,     data.frame)
S3method(wireframe,     matrix)
S3method(splom,         formula)
S3method(splom,         matrix)
S3method(splom,         data.frame)

S3method(parallelplot,  formula)
S3method(parallelplot,  matrix)
S3method(parallelplot,  data.frame)

S3method(tmd,           formula)
S3method(tmd,           data.frame)
S3method(tmd,           trellis)


S3method(larrows,       default)
S3method(llines,        default)
S3method(lpoints,       default)
S3method(lpolygon,      default)
S3method(lpolypath,     default)
S3method(lrect,         default)
S3method(lsegments,     default)
S3method(ltext,         default)


### Local variables:
### mode: R
### End:
