
Changes in Version 0.9-7

  o click on plot makes a pop-up menu with labels for nearby points.
    Select one to add that label to the plot.

  o clicks on plot avoid looking up data points unless neccessary.

  o reorder factor levels only once in latticist(), which removes
    lots of ugly reorderByFreq() from the plot calls.

  o latticist preloads some useful variable expressions and subsets.

  o latticist converts integers with only 1 or 2 levels to factor.

  o use shingle levels for labels in strips and on axes.

  o latticist gives more error messages in dialog boxes.

  o latticist passes labels argument to playwith(), which stops it
    from trying to guess labels from the plot call each time.

Changes in Version 0.9-6

  o use of equal.count and cutEq in latticist.

  o use of useOuterStrips and layout in latticist.

Changes in Version 0.9-5

  o marginals()

  o reorderByFreq()

  o fix click-and-hold identify, to account for lattice subscripts.

  o playGetIDs() now returns subscripts into original data from
    multi-panel lattice plots (was indexing data in each panel).
    (And the internal representation is now as lattice subscripts).

Changes in Version 0.9-4

  o latticist!

  o callArg gains a logical 'eval' argument.

  o fix error when using a single argument that is a formula.

  o fix error when identifying points with univariate lattice
    plots (e.g. data$x is NULL).

  o remove effect of 'title' on choosing replacement device.

Changes in Version 0.9-3

  o recognise un-named "data" argument to formula methods
    such as plot.formula, boxplot.formula.

Changes in Version 0.9-2

  o tooltips show labels for points when click and hold mouse button.

  o improvements to basic device mode (options(device="playwith")):
    preview button in annotation tool now works; and there is an
    "undo annotation" tool, allowing last annotation to be removed.
    (still some problems with mixing base and grid graphics).

  o improved code for guessing xy coordinates and labels.

  o improved code for guessing main function (assume "plot" if found).

Changes in Version 0.9-1

  o cairoDevice package in Depends rather than Imports, since
    it sets options(device="Cairo"), which is bad if not attached!

Changes in Version 0.9-0

  o user settings: playwith.options / playwith.getOption.

Changes in Version 0.8-57

  o now works on Linux!
    (had problems related to event loop -- sizing widgets etc).

  o new function playGetIDs() gives currently identified points.

  o device size, rather than window size, can now be specifed.
    This matches other devices. Also pointsize can now be set.

  o option to show tooltips for toolbar buttons (uses gtkMain()).

  o mouse clicks better distinguished from drags: time <= 1/4 sec.

  o xlim/ylim and time mode now handles date-time classes better,
    including "yearmon" and "yearqtr" from the zoo package.

  o zooming now tries to account for axis padding.

  o plot call is now deparsed without showAttributes option (for
    clarity). Call objects are used to maintain date time classes.

  o "clear" button now shows a graphical dialog under linux.

  o warning about lattice subscripts now checks the panelArgs
    (it was warning spuriously before, eg xyplot.zoo).

  o more use of locks to try to avoid multi-thread conflicts.

  o attempt to set GTK tooltips is now a *silent* try(), again.

  o zoom and identify tools check par("mfrow") in case it is a
    multi-figure base graphics plot, and omit themselves if so.

Changes in Version 0.8-56

  o arguments to `parameters` can use I() to force a spinbutton
    rather than slider.

Changes in Version 0.8-55

  o argument `parameters`: automatically constructs
    widgets to control parameter values appearing in the call.

  o default action when dragging on the plot is zoom.
    default action on right-click is zoomout.

  o restrict zooming to x axis in time.mode
    only if a time.vector was not specified.

  o whether to start in time.mode is determined by looking at
    the data: TRUE if the x data has a 'ts' or 'zoo' class.

  o concept of the "main function" which accepts typical plot
    arguments (xlim, ylim, main, etc) -- not necessarily the
    top-level call. By default, a depth-first search is used
    to find a function that accepts `xlim` or `...`.

  o use of relevant lattice plots without subscripts=TRUE
    will give a warning that identified points may be wrong.

  o callArg() now uses standard evaluation by default, rather than
    quoting its argument. Old code will need to be changed!

  o use RGtk2 rather than gWidgets for edit.call and edit.annotations
    because gWidgets is very slow.

  o reasonable guess for data points and labels with ggplot::qplot()

  o enabled pretty ggplot2 plots (print.ggplot with pretty=TRUE)
    if using grid package version >= 2.7
    (older versions had a problem with viewports being popped).

  o code reorganisation: split tools into separate files; ESS style.

