2000-05-03  Jon Trowbridge  <trow@gnu.org>

	* NEWS: Updated for release.

	* plug-ins/plot/boxplot/guppi-boxplot-state.c: Added hooks to deal
	with data setting and to select the horizontal or vertical status
	according to whether x- or y- data was set.

	* plug-ins/plot/slinreg/guppi-slinreg-state.c (set_x_data,
	get_x_data, set_y_data, get_y_data): Fixed typos that should have
	been causing horrible segfaults right and left.  I got lucky, I
	guess...

	* src/libguppidata/guppi-data.defs: Added bindings for accessing
	the quartiles of scalar sequences.

	* src/libguppidata/guppi-seq-scalar-core-impl.c
	(v_seq_scalar_quartiles): Added some (not very sophisticated or
	optimized) code to calculate and cache the data's quartiles.

	* src/libguppidata/guppi-seq-scalar-impl.h: Added a hook for
	quartile calculations to the implementation vtable.

	* src/libguppidata/guppi-seq-scalar.h: 
	* src/libguppidata/guppi-seq-scalar.c: Added an interface for
	getting the quartiles of a set of scalar data.

	* src/libguppiuseful/guppi-useful.h: Added #include <guppi-enums.h>.

	* src/libguppiuseful/guppi-enums.h: 
	* src/libguppiuseful/guppi-enums.c: Added utility routines for
	common enums.

	* plug-ins/plot/boxplot/guppi-boxplot-item.c
	(guppi_boxplot_item_update): Redirect stdout to /dev/null while
	calling art_svp_vpath_stroke(), to hide the damn "colinear!" spew.

	* src/guppi/guppi-app.c (hacked_scatter_plot_cb): Change the
	hard-coded scheme to build a plot with boxplots in the margins.

	* plug-ins/plot/scatter/guppi-scatter-style.c
	(guppi_scatter_style_new_stock): Changed style #1 to default to
	grey rather than black. 
	Make the default size of the circle marker smaller.

2000-04-30  Jon Trowbridge  <trow@gnu.org>

	* src/libguppibonobo: A placeholder for future bonobo support.

	* src/guppi/corba_guppi.c (guppi_corba_init): Changed to allow
	for passing in a popt table.

	* src/guppi/guppi.c (real_main): Added skeletal arg parsing with
	popt.

	* src/libguppiuseful/guppi-exit.c (do_shutdown): Check
	gtk_main_level() before calling gtk_main_quit().

	* src/libguppiplot/guppi-canvas-item.c:
	* src/libguppiplot/guppi-layout-grid.c:
	* src/libguppiplot/guppi-layout-grid-cell.c: I've spent the last
	few days decrufting dynamic layouts, to keep layout ops from
	occuring inside of canvas items' update call --- where they tend
	to trigger new updates, which is problematic.  Changes to an
	item's geometry now "schedules" an allocation; that is, a pending
	geometry allocation is set in an idle function.  Now there is no
	need for a freeze/thaw mechanism, since nothing happens if an
	allocation is already pending.  The new framework should be good
	about not doing extra work or repeating the same calculation
	unnecessarily.  (Getting the details of all of this right was
	rather tricky.  It might still have bugs.)

2000-04-25  Kjartan Maraas  <kmaraas@online.no>

	* configure.in: Added "no" to ALL_LINGUAS.
	
2000-04-25  Jon Trowbridge  <trow@gnu.org>

	* plug-ins/plot/boxplot: Added a boxplot plug-in.

	* src:
	* plug-ins: Lots of small i18n fixes.

	* src/libguppiplot: Lots of fine-tuning of the dynamics of layout
	geometry.

	* plug-ins/plot: 
	* src/libguppiplot/guppi-plot-element: Rationalized state handling
	for plug-ins; wrote a default make_canvas_item rather than requiring
	each plug-in to basically re-provide the same chunk of code.

2000-04-24  Jon Trowbridge  <trow@gnu.org>

	* src/libguppiuseful/guppi-string.c (guppi_string_is_boolean):
	i18n fix.
	(guppi_string2boolean): i18n fix.

	* src/guppi/guppi-app.c (guppi_app_save_visited_files): Fixed bug
	that was causing us to lose the last element of the visited files
	list (due to misplacing the g_snprintf, putting it after the if
	rather than outside).  Duh.

2000-04-21  Jon Trowbridge  <trow@gnu.org>

	* plug-ins/plot/graphpaper: Added a new plot type for drawing
	ruled lines behind our plot.

	* plug-ins/plot/axis/guppi-axis-item.c (guppi_axis_item_render):
	Hacked label rendering code to avoid unsightly clipped labels.
	Removed ruled lines from background and converted the axis item
	into a pure "marginal" axis, rather than something that lay
	superimposed over the plot itself.  Added some primitive,
	hard-wired geometry information.

	* src/libguppiplot/guppi-plot-element.h:
	* src/libguppiplot/guppi-plot-element.c:
	Added the ability to pass args to the state embedded in a
	plot element via the usual GtkArg mechanism.
	Also embedded layout grid positioning information in the element.

	* src/libguppiuseful/guppi-guile.h
	* src/libguppiuseful/guppi-guile.c: Added code for dealing with
	vectors of GtkArgs from guile.

	* src/libguppiplot/guppi-nice-values.c (guppi_nice_values): Moved
	the calculations of "round values" out of the axis plug-in code
	and into this function.

2000-04-20  Jon Trowbridge  <trow@gnu.org>

	* src/libguppidata/guppi-seq-integer.h
	* src/libguppidata/guppi-seq-integer.c
	* src/libguppidata/guppi-seq-integer-impl.h
	* src/libguppidata/guppi-seq-integer-impl.c
	* src/libguppidata/guppi-seq-integer-core-impl.h
	* src/libguppidata/guppi-seq-integer-core-impl.c: A new data type for
	integer sequences.  This will be the basis of the categorical data
	type.

	* src/libguppidata/guppi-seq-scalar-core-impl.c (v_data_copy):
	Fixed memory leak.

	* src/libguppiuseful/guppi-splash.c (guppi_splash_create): Made
	our splash window look nicer, with the color of the status label
	changed to match the bottom of the blue gradient in the guppi logo
	pixmap.

	* src/libguppidata/guppi-data.defs: Added definitions for
	GuppiSeqInteger functions.

	* configure.in: Made the necessary changes to enable gettext.

2000-04-18  Jon Trowbridge  <trow@gnu.org>

	* src/libguppidata/guppi-seq-scalar-core-impl.c
	(v_seq_scalar_set): Fixed bug in the code that tries to maintain
	the coherency of the cached min/max.

2000-04-17  Jon Trowbridge  <trow@gnu.org>

	* src/libguppidata/guppi-seq-scalar-core-impl.c
	(v_seq_scalar_range): Don't you love it when you find a simple
	error that, upon correction, immediately provides a nice
	performance boost?  Because I'd left out a "return", I was
	re-calculating the min/max of a scalar sequence every time it was
	asked for, even when the correct value was cached.  Silly me...

	* src/libguppidata/guppi-seq-boolean-core-impl.c
	(guppi_seq_boolean_core_impl_finalize): Fixed memory leak.

	* src/libguppidata/guppi-seq-scalar-core-impl.c
	(guppi_seq_scalar_core_impl_finalize): Fixed memory leak.

	* src/libguppidata/guppi-data.c (guppi_data_impl_class): Added
	this convenience function, which I should have added ages ago.

2000-04-15  Jon Trowbridge  <trow@gnu.org>

	* src/libguppiplot/guppi-layout-grid.h
	* src/libguppiplot/guppi-layout-grid.c
	* src/libguppiplot/guppi-layout-grid-allocate.h
	* src/libguppiplot/guppi-layout-grid-allocate.c
	* src/libguppiplot/guppi-layout-grid-cell.h
	* src/libguppiplot/guppi-layout-grid-cell.c: Created the
	infrastructure for handling nice plot layouts.

	* src/libguppiplot/guppi-plot-element.c
	(guppi_plot_element_make_canvas_item): Removed the canvas
	resize/GuppiCanvasItem resize hack.

	* plug-ins/plot/slinreg/guppi-slinreg-item.c
	(guppi_slinreg_item_render): Changed to clip properly via
	guppi_scatter_item_render().

	* plug-ins/plot/scatter/guppi-scatter-item.c
	(guppi_scatter_item_render): Changed to clip properly via
	guppi_scatter_item_render().

	* plug-ins/plot/axis/guppi-axis-item.c (guppi_axis_item_render):
	Chaned to clip properly via guppi_canvas_item_clip_buf().

	* src/libguppiplot/guppi-canvas-item.c (guppi_canvas_item_clip_buf): 
	Added function to simplify _render() code by producing a new
	GnomeCanvasBuf that is clipped to the bounds of a given
	GnomeCanvasItem.

2000-04-14  Jon Trowbridge  <trow@gnu.org>

	* plug-ins/plot/slinreg/guppi-slinreg-item.c
	(guppi_slinreg_item_update): Changed to get default font
	information from guppi_default_font() and the related functions.

	* plug-ins/plot/axis/guppi-axis-calc.c
	(optimal_guppi_axis_numerical_labels): Added 4 as a base 10 divisor,
	which will generate numbering on the quarters (i.e. 0, 0.25, 0.50,
	etc.)

	* plug-ins/plot/axis/guppi-axis-item.c (guppi_axis_item_render):
	Added some simple text labels.  The Axis item is now behaving
	really like a "gridline" object with labels slapped on... but that
	will have to do until I implement proper geometry management.
	
	* plug-ins/plot/axis/guppi-axis-item.c (guppi_axis_item_update):
	Boosted the label goal to 6, which seems to get better visual
	results.

	* src/libguppiuseful/guppi-rgb.h (PIXEL_RGBA): I hadn't been
	sufficiently paranoid in parenthesizing occurances of the args
	inside of the macro's body.  Weirdness ensured.

2000-04-13  Jon Trowbridge  <trow@gnu.org>

	* Updated e-mail addresses in lots of old headers, touching a
	whole lot of files in the process.

	* src/libguppiuseful/guppi-defaults.h
	* src/libguppiuseful/guppi-defaults.c: Added code to encapsulate
	some default values.  Right now, all are font-related.
	Eventually, this should be done in a proper way using something
	like gconf.

	* src/guppi/guppi-app.c (guppi_app_load_visited_files): Fixed
	glitch that was reversing the order of the file history list every
	time guppi was run.

2000-04-12  Jon Trowbridge  <trow@gnu.org>

	* src/libguppiplot/guppi-plot-element.c
	(guppi_plot_element_make_canvas_item): Made canvas items resize
	along with the canvas.  This is only a pathetic stop-gap hack
	until I can implement proper geometry management.

	* plug-ins/plot/slinreg/guppi-slinreg-item.c
	(guppi_slinreg_item_update): Optimized function to only re-render
	the label text if the text has actually changed.  This is a big
	performance win for operations like panning, in which _update() is
	getting called but the appearance of the text doesn't actually
	change.

	* src/libguppiplot/guppi-alpha-template.c
	(my_gt1_glyph_outline_lookup): Added some GINT_TO_POINTERs to
	silence compiler warnings.

	* src/guppi/file-open.c: Added some cruft, but got something out
	of it.  (1) We now remember what directory we most recently loaded
	a file from, and make that the default for the next file open.
	(2) When we open a file, it gets added to our list of
	recently-opened files.

	* src/libguppidata/guppi-data-importer.h
	* src/libguppidata/guppi-data-importer.c
	(guppi_data_importer_filename): Added this convenience function.

	* src/guppi/guppi.c
	* src/guppi/guppi-app.c: Broke out the code for building up the
	main app window for Guppi, moved it into a class derived from
	GnomeApp.  Added a bunch of code for remembering the most recently
	opened files.

2000-04-11  Jon Trowbridge  <trow@gnu.org>

	* plug-ins/plot/scatter/guppi-scatter-style.c
	(guppi_scatter_style_paint): I screwed up when I fixed a memory
	leak here a few days ago.  The situation is now (hopefully)
	unscrewed.

2000-04-10  Jon Trowbridge  <trow@gnu.org>

	* src/libguppimath/guppi-equation.c (guppi_equation_simplify):
	Adjusted to simplify 0/foo => 0 (as long as foo != 0).

	* plug-ins/plot/slinreg/guppi-slinreg-state.h
	* plug-ins/plot/slinreg/guppi-slinreg-state.c
	* plug-ins/plot/slinreg/guppi-slinreg-item.h
	* plug-ins/plot/slinreg/guppi-slinreg-item.c: Added an optional
	model equation/R^w label on the regression line.

	* src/libguppiplot/guppi-alpha-template.c
	(my_gt1_glyph_outline_lookup & get_gt1_font): Added the caches I'd
	left out in the first pass, thereby plugging some massive memory
	leaks.
	(guppi_alpha_template_text_general): Added support for rotated and
	outlined text.  Anti-aliased fonts rule.

2000-04-08  Jon Trowbridge  <trow@gnu.org>

	* src/libguppiplot/guppi-canvas-item.c (renrenegotiate_x_start &
	renegotiate_y_start): We reset the reneg_[xy]_started flag here
	rather than in renegotiate_*_accept.  This fixes a glitch
	involving objects that are passive wrt bounding boxes.

	* src/libguppiplot/guppi-alpha-template.c
	(guppi_alpha_template_text): Added a function to render nice
	anti-aliased text info an alpha template.

	* src/libguppiplot/guppi-alpha-template.h: Added a prototype for
	guppi_alpha_template_text().

	* plug-ins/plot/scatter/guppi-scatter-item.c: Macroified the
	MARGIN value.

	* plug-ins/plot/scatter/guppi-scatter-style.c
	(guppi_scatter_style_paint): Fixed a memory leak caused by adding
	an extra reference to our marker alpha templates.

2000-04-07  Jon Trowbridge  <trow@gnu.org>

	* src/libguppistat/guppi-simple-linreg.c
	(guppi_simple_linreg_recalc): The regression calculation now
	properly deals with the case of data sets with different bounds.

	* src/libguppiplot/guppi-canvas-item.c (renegotiate_x_accept &
	renegotiate_y_accept): A serious typo (a MIN had popped up where a
	MAX was expected) had totally screwed up the entire size
	negotiation process.  Fixed.

	* src/libguppimath: Added a chunk of code for dealing with
	symbolic math.

2000-04-06  Jon Trowbridge  <trow@gnu.org>

	* src/libguppiplot/guppi-plot-element.c (event_dispatcher):
	Removed a superfluous call to gnome_canvas_item_hide().  I don't
	remember what this was supposed to do in the first place...

	* src/libguppiuseful/guppi-paths.c (guppi_glade_path): .glade
	files are now searched for properly, by recursively searching
	through the directory structure.  This replaces a hideous
	hard-wired hack.

	* src/libguppiuseful/guppi-paths.h: Fixed const-ness of the
	string returned by guppi_glade_path().

	* src/libguppiuseful/guppi-useful.defs: Fixed the const-ness
	of the return value for the .defs-inition of guppi_glade_path.

	* src/libguppiuseful/guppi-debug.c: Added cool debugging functions
	stolen from Nautilus: the guppi_stop_in_debugger() function and
	the related functions to make log messages trigger it.

	This is why free software kicks ass; you can really learn so much
	by reading other people's code.

	* src/libguppiuseful/guppi-debug.h: Added prototypes for new
	functions, and the GUPPI_ENTER and GUPPI_EXIT macros.

	* plug-ins/plot/scatter/guppi-scatter-style.c
	(guppi_scatter_style_paint): Added code to properly handle the
	case of x- and y-data sets that are not the same size.  We plot
	the common range, if any.

	* plug-ins: Reorganized the directory structure so that all of the
	plug-ins of a particular type are grouped together in a
	sub-directory.

2000-04-02  Jon Trowbridge  <trow@gnu.org>

	* src/libguppiuseful/guppi-plug-in.c (register_plug_in): Fixed
	g_message()s to print the right version number for plug ins.
	(Thanks to Ji Yu <g.yu@mail.utexas.edu> for catching this.)

	
-----------------------------------

I used to be very bad about keeping a ChangeLog, in that I didn't; instead,
I put the change info in the CVS log entries.  After getting a lot of shit
from people at GUADEC in Mar 2000, about generating too much traffic on the
CVS commit mailing list with my file-by-file commits, I saw the error
in my ways. :-) 

So if you want to know what happened previous to this, look in the
CVS logs.  (It is still early enough in development that most changes
have either been the addition of large chunks of new code or
various bits of architectural thrashing...)

	