2006-01-26  Keith Packard  <keithp@keithp.com>

	* Makefile.am:
	* cairo-5c.h:
	Ick! Date format changes. Sigh.
	
	* init.c: (init_types):
	Oops -- wrong argument count for typeCairoRgbaColor
	constructor.

2005-09-15  Keith Packard  <keithp@keithp.com>

	* configure.in:
	Cairo now no longer implicitly adds fontconfig and freetype
	to include paths, so cairo-5c must explictly depend on them

2005-07-09  Keith Packard  <keithp@keithp.com>

	* cairo-5c.h:
	* cairo.c: (cairo_5c_get):
	* examples/animate.5c:
	* gtk.c: (configure_event), (expose_event), (delete_drawing_area),
	(gtk_repaint), (gtk_tool_free), (cairo_5c_tool_create),
	(cairo_5c_tool_destroy):
	* surface.c: (create_cairo_window):
	Pass GtkPixmap objects around as they're reference counted.
	Use proposed new cairo_xlib_surface_set_drawable API to
	deal with window back-buffer resize issue.

2005-07-07  Keith Packard  <keithp@keithp.com>

	* cairo-5c.h:
	* cairo.c: (do_Cairo_status_to_string):
	* examples/fob.5c:
	* gtk.c: (create_gtk_global):
	* init.c: (nickle_init):
	* pattern.c: (do_Cairo_Pattern_add_color_stop_rgba),
	(do_Cairo_Pattern_add_color_stop_rgb),
	(do_Cairo_Pattern_set_matrix), (do_Cairo_Pattern_set_extend),
	(do_Cairo_Pattern_set_filter):
	Match current cairo API.
	Use XInitThreads, as it's necessary for stable operation.
	Requires at least one bug fix not yet in Xlib CVS to work

2005-06-06  Bart Massey  <bart@cs.pdx.edu>
	* examples/Makefile.am:
	Add accumulated examples to the install list.

2005-06-06  Keith Packard  <keithp@keithp.com>

	* cairo.5c:
	* init.c: (init_types), (nickle_init):
	Enum order and names changed in API shuffle.
	
	* examples/fob.5c:
	Create .png files by default

2005-06-06  Keith Packard  <keithp@keithp.com>

	* cairo.5c:
	* examples/animate.5c:
	* gtk.c: (gtk_repaint_timeout), (gtk_thread_main),
	(cairo_5c_tool_dirty):
	Some locking changes.  Still locks up from time to time.

2005-05-17  Keith Packard  <keithp@keithp.com>

	* cairo-5c.h:
	* cairo.5c:
	* cairo.c: (cairo_5c_get), (do_Cairo_create), (cairo_5c_dirty),
	(cairo_5c_enable), (cairo_5c_disable), (do_Cairo_get_target):
	* draw.c: (do_Cairo_paint), (do_Cairo_paint_with_alpha),
	(do_Cairo_mask), (do_Cairo_mask_surface), (do_Cairo_fill_preserve),
	(do_Cairo_stroke_preserve), (path_elt_new), (path_array),
	(do_Cairo_copy_path), (do_Cairo_copy_path_flat),
	(do_Cairo_append_path):
	* event.c: (do_Cairo_Surface_open_event):
	* examples/animate.5c:
	* examples/draw.5c:
	* examples/fob.5c:
	* examples/metrics.5c:
	* examples/sin.5c:
	* examples/spin.5c:
	* examples/spinman.5c:
	* examples/test.5c:
	* gstate.c: (do_Cairo_set_source_surface),
	(do_Cairo_identity_matrix), (do_Cairo_transform),
	(do_Cairo_user_to_device), (do_Cairo_user_to_device_distance),
	(do_Cairo_device_to_user), (do_Cairo_device_to_user_distance),
	(do_Cairo_reset_clip), (do_Cairo_clip_preserve):
	* gtk.c: (create_gtk_global):
	* init.c: (init_types), (nickle_init):
	* pattern.c: (do_Cairo_Pattern_create_for_surface),
	(do_Cairo_Pattern_add_color_stop_rgba),
	(do_Cairo_Pattern_add_color_stop_rgb):
	* surface.c: (cairo_5c_surface_get), (cairo_5c_surface_mark),
	(cairo_5c_surface_destroy), (do_Cairo_Surface_write_to_png),
	(do_Cairo_Surface_write_to_png_file),
	(do_Cairo_Surface_set_device_offset),
	(do_Cairo_Surface_create_similar), (do_Cairo_Surface_finish),
	(do_Cairo_Surface_destroy), (do_Cairo_Surface_width),
	(do_Cairo_Surface_height), (do_Cairo_Image_surface_create),
	(do_Cairo_Image_surface_create_from_png),
	(do_Cairo_Image_surface_create_from_png_file),
	(do_Cairo_Pdf_surface_create):
	* text.c: (do_Cairo_select_font_face), (do_Cairo_get_font_matrix):
	Another round of API changes for cairo 0.5, the putative
	final API structure.

2005-05-02  Keith Packard  <keithp@keithp.com>

	* cairo-5c.h:
	* cairo.5c:
	* cairo.c: (cairo_5c_dirty), (cairo_5c_enable), (cairo_5c_disable),
	(do_Cairo_get_target_surface):
	* event.c: (do_Cairo_Surface_open_event):
	* gstate.c: (do_Cairo_set_source_rgb), (do_Cairo_set_source_rgba),
	(do_Cairo_get_matrix), (do_Cairo_concat_matrix),
	(do_Cairo_set_matrix), (do_Cairo_get_operator),
	(do_Cairo_get_tolerance), (do_Cairo_get_current_point),
	(do_Cairo_get_fill_rule), (do_Cairo_get_line_width),
	(do_Cairo_get_line_cap), (do_Cairo_get_line_join),
	(do_Cairo_get_miter_limit):
	* gtk.c: (delete_drawing_area), (motion_notify_event),
	(button_press_event), (button_release_event),
	(gtk_repaint_timeout), (gtk_thread_main), (gtk_global_free),
	(create_gtk_global), (cairo_5c_tool_dirty), (cairo_5c_tool_enable):
	* init.c: (init_types), (nickle_init):
	* matrix.c: (cairo_matrix_part), (new_cairo_matrix):
	* pattern.c: (do_Cairo_set_source), (do_Cairo_get_source),
	(do_Cairo_Pattern_set_matrix), (do_Cairo_Pattern_get_matrix):
	* surface.c: (cairo_5c_surface_get), (cairo_5c_surface_mark),
	(cairo_5c_surface_destroy), (do_Cairo_Surface_create_image),
	(do_Cairo_Surface_write_to_png):
	* text.c: (do_Cairo_set_font), (do_Cairo_set_font_size),
	(do_Cairo_set_font_matrix), (do_Cairo_font_extents):
	Match cairo API as of today.

	* examples/draw.5c:
	* examples/fob.5c:
	* examples/graph.5c:
	* examples/grid.5c:
	* examples/led.5c:
	* examples/pie-new.5c:
	* examples/pie.5c:
	* examples/rottext.5c:
	* examples/sin.5c:
	* examples/spin-cairo.5c:
	* examples/spin.5c:
	* examples/spinman.5c:
	* examples/test.5c:
	* examples/text45.5c:
	Update examples to match API changes

2005-03-14  Keith Packard  <keithp@keithp.com>

	* examples/animate.5c:
	* examples/fob.5c:
	* examples/grid.5c:
	* examples/led.5c:
	* examples/metrics.5c:
	* examples/pie-new.5c:
	* examples/spin-cairo.5c:
	* examples/spin.5c:
	* examples/spinman.5c:
	* examples/text45.5c:
	Add a bunch more examples, including the LED image
	generation program used by the PSAS control software
	and the FOB logo used by http://fob.po8.org

2005-03-14  Keith Packard  <keithp@keithp.com>

	* cairo-5c.h:
	Must explicitly reference desired backends
	
	* pattern.c: (do_Cairo_current_pattern), (create_surface_from_png):
	Switch from deprecated functions to current ones
	
	* text.c: (do_Cairo_set_font):
	Fix sizing from supplied pattern
	
	* examples/graph.5c:
	metrics got fixed.

2005-01-02  Keith Packard  <keithp@keithp.com>

	* cairo-5c.h:
	Add do_Cairo_copy_page and do_Cairo_show_page.
	Track whether copy_page/show_page have ever been called so
	that they can be when the surface is destroyed.

	* cairo.c: (cairo_5c_free), (cairo_5c_dirty):
	* draw.c: (do_Cairo_arc), (do_Cairo_arc_negative),
	(do_Cairo_copy_page), (do_Cairo_show_page):
	Fix arc arguments
	
	* event.c: (do_Cairo_Surface_open_event):
	* gtk.c: (cairo_5c_tool_destroy):
	* init.c: (nickle_init):
	* surface.c: (cairo_5c_surface_mark), (cairo_5c_surface_destroy),
	(cairo_5c_surface_free), (do_Cairo_Surface_create_window),
	(do_Cairo_Surface_create_png), (do_Cairo_Surface_create_ps),
	(do_Cairo_Surface_create_similar), (do_Cairo_Surface_destroy):
	dunno

2004-12-24  Keith Packard  <keithp@keithp.com>

	* cairo-5c.h:
	* cairo.5c:
	* cairo.c: (do_Cairo_set_target_surface):
	* gtk.c: (delete_drawing_area), (gtk_tool_free),
	(cairo_5c_tool_create), (cairo_5c_tool_destroy):
	* init.c: (nickle_init):
	* surface.c: (create_cairo_window), (cairo_5c_surface_get),
	(do_Cairo_Surface_create_window):
	Handle window delete more gracefully; report exception on drawing,
	report 'delete' event to event reader.
	Have default surface creation code re-create a surface when the old
	default surface has been destroyed.

2004-12-23  Keith Packard  <keithp@keithp.com>

	* examples/grid.5c:
	Destroy context to flush file
	* gtk.c: (gtk_thread_main):
	call gdk_threads_leave on thread exit to release mutex

2004-12-23  Keith Packard  <keithp@keithp.com>

	* Makefile.am:
	* cairo-5c.h:
	* cairo.5c:
	* cairo.c: (cairo_5c_get), (cairo_5c_mark), (cairo_5c_free),
	(cairo_foreign_mark), (cairo_foreign_free), (do_Cairo_create),
	(cairo_5c_dirty), (cairo_5c_enable), (cairo_5c_disable),
	(do_Cairo_set_target_surface), (do_Cairo_current_target_surface),
	(do_Cairo_destroy), (do_Cairo_copy), (do_Cairo_status),
	(do_Cairo_status_string), (do_Cairo_enable), (do_Cairo_disable):
	* draw.c: (do_Cairo_new_path), (do_Cairo_move_to),
	(do_Cairo_line_to), (do_Cairo_curve_to), (do_Cairo_arc),
	(do_Cairo_arc_negative), (do_Cairo_rel_move_to),
	(do_Cairo_rel_line_to), (do_Cairo_rel_curve_to),
	(do_Cairo_rectangle), (do_Cairo_close_path), (do_Cairo_fill),
	(do_Cairo_stroke), (do_Cairo_in_stroke), (do_Cairo_in_fill),
	(do_Cairo_stroke_extents), (do_Cairo_fill_extents),
	(do_Cairo_current_path_list), (do_Cairo_current_path_flat_list):
	* event.c: (do_Cairo_Surface_open_event):
	* examples/draw.5c:
	* examples/graph.5c:
	* examples/grid.5c:
	* examples/rottext.5c:
	* gstate.c: (do_Cairo_save), (do_Cairo_restore),
	(do_Cairo_set_operator), (do_Cairo_set_rgb_color),
	(do_Cairo_set_alpha), (do_Cairo_set_tolerance),
	(do_Cairo_set_fill_rule), (do_Cairo_set_line_width),
	(do_Cairo_set_line_cap), (do_Cairo_set_line_join),
	(do_Cairo_set_dash), (do_Cairo_set_miter_limit),
	(do_Cairo_identity_matrix), (do_Cairo_default_matrix),
	(do_Cairo_translate), (do_Cairo_scale), (do_Cairo_rotate),
	(do_Cairo_current_matrix), (do_Cairo_concat_matrix),
	(do_Cairo_set_matrix), (do_Cairo_transform_point),
	(do_Cairo_transform_distance), (do_Cairo_inverse_transform_point),
	(do_Cairo_inverse_transform_distance), (do_Cairo_init_clip),
	(do_Cairo_clip), (do_Cairo_current_operator),
	(do_Cairo_current_rgb_color), (do_Cairo_current_alpha),
	(do_Cairo_current_tolerance), (do_Cairo_current_point),
	(do_Cairo_current_fill_rule), (do_Cairo_current_line_width),
	(do_Cairo_current_line_cap), (do_Cairo_current_line_join),
	(do_Cairo_current_miter_limit):
	* gtk.c: (configure_event), (expose_event), (delete_drawing_area),
	(delete_event), (motion_notify_event), (button_press_event),
	(button_release_event), (gtk_repaint), (gtk_repaint_timeout),
	(gtk_global_mark), (gtk_global_free), (create_gtk_global),
	(gtk_tool_mark), (gtk_tool_free), (cairo_5c_tool_create),
	(cairo_5c_tool_destroy), (cairo_5c_tool_mark),
	(cairo_5c_tool_dirty), (cairo_5c_tool_disable),
	(cairo_5c_tool_enable), (cairo_5c_tool_display):
	* init.c: (init_types), (nickle_init):
	* pattern.c: (mark_cairo_pattern), (make_pattern_value),
	(do_Cairo_set_pattern), (do_Cairo_current_pattern),
	(do_Cairo_Pattern_create_for_surface):
	* surface.c: (create_cairo_window), (cairo_5c_surface_get),
	(cairo_5c_surface_mark), (cairo_5c_surface_free),
	(cairo_surface_foreign_mark), (cairo_surface_foreign_free),
	(do_Cairo_Surface_create_window), (do_Cairo_Surface_create_png),
	(do_Cairo_Surface_create_ps), (do_Cairo_Surface_create_similar),
	(do_Cairo_Surface_destroy), (do_Cairo_Surface_width),
	(do_Cairo_Surface_height):
	* text.c: (do_Cairo_select_font), (do_Cairo_set_font),
	(do_Cairo_scale_font), (do_Cairo_transform_font),
	(do_Cairo_current_font_extents), (do_Cairo_show_text),
	(do_Cairo_text_path), (do_Cairo_text_extents):
	Split cairo_t and cairo_surface_t functions apart, permitting
	more complex programs to be written that use more than a single
	window.  Switch allocations around to mostly use the nickle memory
	allocator now.  Requires updated nickle bits that expose this
	change in the foreign object API.

2004-12-18  Keith Packard  <keithp@keithp.com>

	* configure.in:
	Add -lpthread to link

2004-12-18  Keith Packard  <keithp@keithp.com>

	* cairo.5c:
	Add matrix operations
	
	* cairo-5c.h:
	* text.c: (do_Cairo_set_font), (do_Cairo_transform_font):
	* init.c: (nickle_init):
	Add set_font and transform_font interfaces
	
	* examples/animate.5c:
	* examples/pie.5c:
	use set_font interface
	
	* surface.c: (do_Cairo_dup):
	Duplicate gstate in dup operator
	

2004-12-18  Keith Packard  <keithp@keithp.com>

	* Makefile.am:
	* cairo.5c:
	* examples/animate.5c:
	* examples/draw.5c:
	* examples/pie.5c:
	* examples/rottext.5c:
	Fix examples to match API changes
	
	* gstate.c: (do_Cairo_transform_point),
	(do_Cairo_transform_distance), (do_Cairo_inverse_transform_point),
	(do_Cairo_inverse_transform_distance):
	transforms take point_t, return point_t
	
	* cairo-5c.h:
	* init.c: (nickle_init):
	* pattern.c: (do_Cairo_Pattern_create_for_surface),
	(premultiply_data), (create_surface_from_png),
	(do_Cairo_Pattern_create_png):
	* surface.c: (get_cairo_5c), (free_cairo_5c), (dirty_cairo_5c),
	(enable_cairo_5c), (disable_cairo_5c), (do_Cairo_new_png),
	(do_Cairo_new_scratch), (do_Cairo_dup), (do_Cairo_status):
	Add png loading, scratch surfaces and surface patterns

2004-12-17  Keith Packard  <keithp@keithp.com>

	* Makefile.am:
	* cairo-5c.h:
	* cairo.5c:
	* gstate.c: (do_Cairo_set_alpha), (do_Cairo_current_matrix),
	(do_Cairo_set_matrix):
	* init.c: (make_typedef), (init_types), (nickle_init):
	* matrix.c: (cairo_matrix_part), (new_cairo_matrix):
	* pattern.c: (get_cairo_pattern), (free_cairo_pattern),
	(make_pattern_value), (do_Cairo_set_pattern),
	(do_Cairo_current_pattern), (do_Cairo_Pattern_create_linear),
	(do_Cairo_Pattern_create_radial),
	(do_Cairo_Pattern_add_color_stop), (do_Cairo_Pattern_set_matrix),
	(do_Cairo_Pattern_get_matrix), (do_Cairo_Pattern_set_extend),
	(do_Cairo_Pattern_get_extend), (do_Cairo_Pattern_set_filter),
	(do_Cairo_Pattern_get_filter):
	Add gradient pattern support.
	Split out matrix support to share.

2004-12-17  Keith Packard  <keithp@keithp.com>

	* cairo.5c:
	Add HSV color space routine to cairo.5c

2004-12-17  Keith Packard  <keithp@keithp.com>

	* cairo-5c.h:
	* cairo.5c:
	* draw.c: (path_new), (path_box), (cairo_5c_move_to),
	(cairo_5c_line_to), (cairo_5c_curve_to), (cairo_5c_close_path),
	(do_Cairo_current_path_list), (do_Cairo_current_path_flat_list):
	* init.c: (make_typedef), (init_types), (nickle_init):
	* surface.c: (get_cairo_5c):
	Add current_path/current_path_flat by creating nickle structure in C
	code holding the entire path and walking it in nickle code.

	* examples/.cvsignore:
	ignore build files

2004-12-16  Keith Packard  <keithp@keithp.com>

	* examples/Makefile.am:
	Install example nickle programs

2004-12-16  Keith Packard  <keithp@keithp.com>

	* Makefile.am:
	* autogen.sh:
	* cairo.5c:
	* configure.in:
	Add cairo.5c and install it to nickle libary
	
	* cairo-5c.h:
	* draw.c: (do_Cairo_rectangle), (do_Cairo_in_stroke),
	(do_Cairo_in_fill), (do_Cairo_stroke_extents),
	(do_Cairo_fill_extents), (cairo_5c_move_to),
	(do_Cairo_current_path), (do_Cairo_current_path_flat):
	* gstate.c: (do_Cairo_set_operator), (do_Cairo_set_fill_rule),
	(do_Cairo_set_line_cap), (do_Cairo_set_line_join),
	(do_Cairo_set_dash), (do_Cairo_set_miter_limit),
	(do_Cairo_default_matrix), (do_Cairo_transform_point),
	(do_Cairo_transform_distance), (do_Cairo_inverse_transform_point),
	(do_Cairo_inverse_transform_distance), (do_Cairo_init_clip),
	(do_Cairo_clip), (do_Cairo_current_operator),
	(do_Cairo_current_rgb_color), (do_Cairo_current_alpha),
	(do_Cairo_current_tolerance), (do_Cairo_current_point),
	(do_Cairo_current_fill_rule), (do_Cairo_current_line_width),
	(do_Cairo_current_line_cap), (do_Cairo_current_line_join),
	(do_Cairo_current_miter_limit):
	* init.c: (make_typedef), (init_types), (EnumIntPart), (IntToEnum),
	(nickle_init):
	* text.c: (do_Cairo_select_font), (do_Cairo_text_extents),
	(do_Cairo_select_ft_font):
	Add a bunch more bindings.  Still more to do, especially the
	path walkers.
	Switch from int constants to enums for enumerated types.
	
	* gtk.c: (motion_notify_event), (button_press_event),
	(button_release_event), (cairo_5c_window_new):
	* surface.c: (do_Cairo_new):
	Add mouse input support.

	* examples/animate.5c:
	* examples/cairo.5c:
	* examples/draw.5c:
	* examples/graph.5c:
	* examples/pie.5c:
	* examples/rottext.5c:
	* examples/sin.5c:
	* examples/test.5c:
	Change examples to use cairo.5c file with autoimport
	
2004-12-14  Keith Packard  <keithp@keithp.com>

	* cairo-5c.h:
	* gtk.c: (gtk_repaint_timeout), (dirty_x), (disable_x), (enable_x):
	* init.c: (nickle_init):
	* surface.c: (enable_cairo_5c), (disable_cairo_5c),
	(do_Cairo_enable), (do_Cairo_disable):
	Add enable/disable to take advantage of double buffering for
	smooth animation.
	
	* examples/animate.5c:
	Use enable/disable to smooth this animation out

2004-12-14  Keith Packard  <keithp@keithp.com>

	* .cvsignore:
	* Makefile.am:
	* cairo-5c.h:
	* configure.in:
	* draw.c: (do_Cairo_fill), (do_Cairo_stroke):
	* gtk.c: (configure_event), (expose_event), (cairo_5c_window_new),
	(repaint_x), (gtk_repaint_timeout), (gtk_thread_main), (start_x),
	(dirty_x):
	* init.c: (nickle_init):
	* surface.c: (get_cairo_5c), (free_cairo_5c), (dirty_cairo_5c),
	(do_Cairo_new):
	* text.c: (do_Cairo_show_text):
	Replace lame Xlib-based output with more capable gtk+ based output,
	including backing storage and resize handling.  Input still
	isn't hooked up.
	
	* gstate.c: (do_Cairo_current_matrix), (do_Cairo_set_matrix):
	Add current_matrix and set_matrix functions; these only do affine
	matrices.
	
	* examples/animate.5c:
	* examples/pie.5c:
	* examples/rottext.5c:
	* examples/sin.5c:
	* examples/test.5c:
	Update examples to use installed library

2004-12-11  Keith Packard  <keithp@keithp.com>

	* examples/pie.5c:
	Replace hsv conversion functions with algorithms which
	use 0 <= h <= 1, 0 <= v <= 1 and 0 <= s <= 1.  The
	algorithms are adapted from the Modula III versions found at:
	http://research.compaq.com/SRC/m3sources/html/color/src/Color.i3.html

2004-12-10  Keith Packard  <keithp@keithp.com>

	* examples/pie.5c:
	Add text example
	* init.c: (nickle_init):
	Set return type of text_extents function correctly
