2004-01-13  Bernie Solomon  <bernard@ugsolutions.com>

	* graphics-path.c (append): fix struct initialization
	for old fashioned C compilers

2004-01-13  Ravindra <rkumar@novell.com>

	* pen.c: Initialized pen.matrix field to identity matrix.

2004-01-10  Alexandre Pigolkine <pigolkine@gmx.de>
	* bitmap.c 
	* brush.c		cosmetic changes
	* gdip.h		new field added to GpPen structure
	* gdip_win32.h		conditional compilation flag used to reflect changes in Cairo > 0.14
	* graphics.c		restore position in GRAPHICS_STATE stack 
	* matrix.c		order of matrices in GdipMultiplyMatrix changed 
	* pen.c			initialization of fields, protection in GdipDeletePen function added
			

2003-12-25  Duncan Mak  <duncan@ximian.com>

	* graphics-path.c (GdipAddPathLine): Use append instead of
	append_point.
	(GdipTransformPath): Remember to reset the points after the
	transformation.

2003-12-25  Duncan Mak  <duncan@ximian.com>	

	* graphics.c (DrawBezier, DrawBezierI): Well, it's pretty obvious
	that the code was incorrect before. After Christmas, I'm gonna
	hook up the GraphicsPath code and work on testing and making sure
	this stuff is correct. I'm pretty sure, in a first pass, there are
	lots of littles bugs waiting to be fixed.

	* graphics-path.c (new_point): Removed, we now pack the point
	inside the append functions.
	(append): New function that takes the X, Y coordinates directly.
	(append_bezier): Take coordinates instead of GpPointFs. Use the
	new append function instead of append_point.

2003-12-23  Duncan Mak  <duncan@ximian.com>

	* graphics-path.c:
	* graphics-path.h: Implemented GraphicsPath.

	* Makefile: Added graphics-path.c.

	* gdip.h (GpPathPointType, GpWarpMode): Added.

2003-12-21  Duncan Mak  <duncan@ximian.com>

	* graphics.c (C1): Made it more precise.
	(make_pie): Fixed.
	(make_arc): New helper function for getting the right Bezier for
	an elliptical arc, based on an algorithm found in the
	comp.text.pdf FAQ.

2003-12-02  Bernie Solomon  <bernard@ugsolutions.com>

	* pen.c (GdipSetPenLineCap): fix arg type so it compiles
	using HP compiler.

	* gdip.h: fix spelling of GdipSetPenLineJoin and add
	prototype for GdipGetPenLineJoin

2003-11-28  Duncan Mak  <duncan@ximian.com>

	* brush.c (gdip_brush_setup): Check on the type of the brush and
	delegate the implementation to the concrete Brushes, 
	(GdipCloneBrush, GdipDeleteBrush, GdipGetBrushType): Implemented.

	* gdip.h (DashStyle): Fixed typo.
	(PenAlignment, BrushType): Added new enumerations.
	(GpBrush): Added new type field.
	(GpPen): Added new fields: color, brush, mode, dash_array and
	unit. Updated the header file to include new Pen functions.

	* pen.c (convert_dash_array): Utitlity function for converting
	from a float* from GDI+ to a double* for Cairo.
	(GdipCreatePen2, GdipClonePen): Implemented.
	(PenWidth, BrushFill, Color, PenMode, PenUnit, DashStyle):
	(DashOffset, DashCount, DashArray): Implemented the Get/Set
	function pairs for these properties.
	(GdipGetPenCompoundArray, GdipSetPenCompoundArray):
	(GdipGetPenCompoundArrayCount): Stubbed.

	* solidbrush.c (gdip_solidfill_init): Utility for initializing a
	SolidBrush. Sets type as BrushTypeSolidColor.
	(gdip_solidfill_setup): Moved from gdip_brush_setup.
	(gdip_solidfill_clone): Implementation for GdipCloneBrush for a
	GpSolidFill.
	(GdipSetSolidFillColor, GdipGetSolidFillColor): Implemented.

2003-11-22  Duncan Mak  <duncan@ximian.com>

	* matrix.c (GdipCreateMatrix3, GdipCreateMatrix3I): Implemented.
	(GdipCloneMatrix): Fixed.
	(GdipShearMatrix, set_shear): Implemented.
	
	* graphics.c:
	(GdipGetWorldTransform, GdipMultiplyWorldTransform): Implemented.
	(GdipRotatePenTransform, GdipTranslatePenTransform): Use GDI+
	functions instead.

	* gdip.h
	(GdipRotatePenTransform, GdipTranslatePenTransform): Fix
	signature.
	(GdipCreateMatrix3, GdipCreateMatrix3I): Use const appropriately.
	
2003-11-17  Duncan Mak  <duncan@ximian.com>

	* matrix.c (matrix_equals): New helper function help test matrix
	equality.
	(GdipIsMatrixIdentity, GdipIsMatrixEqual): Use matrix_equals.
	(GdipGetMatrixElements): Don't malloc here, because the caller
	should hand us an allocated array.

2003-11-16  Duncan Mak  <duncan@ximian.com>

	* matrix.c (GdipCreateMatrix2, GdipCreateMatrix3) 
	(GdipCreateMatrix3I): Implemented.

	* pen.c (GdipResetPenTransform):
	(GdipMultiplyPenTransform, GdipTranslatePenTransform):
	(GdipScalePenTransform, GdipRotatePenTransform): Implemented.

	* matrix.c (set_translate, set_scale, set_rotate): Helper
	functions copied from Cairo. We are doing this because you can
	specify the order of multiplcation in GDI+, but not in Cairo.

2003-11-15  Duncan Mak  <duncan@ximian.com>

	* graphics.c: Moved PI and GRADTORAD to gdip.h.
	* gdip.h: Renamed GRADTORAD to DEGTORAD.

	* matrix.c (GdipCloneMatrix): Fix argument order.
	* matrix.c
	(GdipMultiplyMatrix, GdipTranslateMatrix, GdipScaleMatrix):
	(GdipRotateMatrix, GdipInvertMatrix):
	(GdipTransformMatrixPoints, GdipVectorTransformMatrixPoints):
	(GdipSetMatrixElements, GdipGetMatrixElements):
	(GdipIsMatrixInvertible): Implemented.

	* matrix.c (GdipIsMatrixIdentity, GdipIsMatrixEqual): Implemented.

2003-11-14  Duncan Mak  <duncan@ximian.com>	

	* general.c (gdip_get_status): Take cairo_status_t instead of
	cairo_t. We need this because this is used in matrix.c and we only
	have cairo_matrix_t there.
	* graphics.c: Updated calls to gdip_get_status.

	* pen.c
	(convert_line_cap, convert_line_join): Added static keyword.
	(GdipDeletePen): Implemented.

	* matrix.c
	(GdipCreateMatrix2, GdipCloneMatrix, GdipInvertMatrix): Use
	gdip_get_status instead of just returning Ok.
	(GdipRotateMatrix, GdipScaleMatrix, GdipTranslateMatrix):
	Implemented.

2003-11-12  Duncan Mak  <duncan@ximian.com>

	* bitmap.c, brush.c, general.c:
	* graphics.c, image.c, matrix.c:
	* pen.c, solidbrush.c: Use gdip.h instead of gdip_main.h.
	
	* gdip.h: New header file, merged from gdip_main.h and
	gdip_defs.h.

	* gdip_main.h, gdip_defs.h: Removed.

	* pen.c
	(convert_line_join, convert_line_cap): new function for converting
	enumerations between GDI+ and Cairo.
	(gdip_pen_setup): set miter limit and line join.
	(GdipSetPenMiterLimit, GdipGetPenMiterLimit):
	(GdipSetPenLineJoin, GdipGetPenLineJoin): 
	(GdipSetPenLineJoin, GdipGetPenTransform): implemented.	
	
2003-11-12  Alexandre Pigolkine <pigolkine@gmx.de>
	* bitmap.c 		copy image funciton added
	
2003-11-06  Duncan Mak  <duncan@ximian.com>

	* graphics.c (GdipDrawRectangle): Add call to gdip_pen_setup so
	that we stroke with the right color.

2003-11-05  Duncan Mak  <duncan@ximian.com>

	* graphics.c
	(make_pie, make_ellipse, make_polygon): Add static keyword.

	* gdip_defs.h: Update headers to include DrawBezier, DrawBeziers,
	DrawEllipse, DrawPie, DrawPolygon, DrawRectangle, FillEllipse,
	FillPolygon and the RenderingOrigin property.

	* Makefile (install-local): Added missing semi-colons.

2003-11-03  Bernie Solomon <bernard@ugsolutions.com>

	* gdip_main.h, gdip_win32.h, gdip_win32.c:
	fixes for non-GCC compilers

2003-11-02  Alexandre Pigolkine <pigolkine@gmx.de>

	* bitmap.c 		convert 24/32 bpp images in LockBits

2003-11-01  Duncan Mak  <duncan@ximian.com>

	* matrix.c
	(GdipCreateMatrix, GdipCreateMatrix2, GdipCloneMatrix):
	(GdipDeleteMatrix, GdipInvertMatrix): Implemented; the rest of the
	functions are stubbed out.

	* gdip_defs.h (GpMatrixOrder): Added.	

	* gdip_main.h
	(GpRect, GpRectF): Synonyms for Rect and RectF.
	(GpMatrix): An alias of cairo_matrix_t.

	* Makefile: Added matrix.c.

2003-10-28  Duncan Mak  <duncan@ximian.com>

	* gdip_main.h, gdip_def.h:
	Renamed all gdip_foo_ptr types are now GpFoo *.
	Renamed Status to GpStatus.
	Reformatted all C++ style comments to C style comments.
	Reformatted all C function prototypes to the style used by GTK+.

	* gdip_main.h (GpPoint, GpPointF): Added.

	* gdip_defs.h (GpFillMode): Added.

	* graphics.c (make_ellipse):
	(make_polygon, make_polygon_from_integers):
	(make_pie): private functions (make_foo) to be reused by DrawFoo
	and FillFoo.
	
	(convert_fill_mode): Converts a GpFillMode to a cairo_fill_rule_t.

	(GdipDrawPie, GdipFillEllipse, GdipFillPolygon): Implemented.

2003-10-26  Duncan Mak  <duncan@ximian.com>

	* graphics.c
	(GdipSetRenderingOrigin, GdipGetRenderingOrigin): Implemented.

2003-10-25  Duncan Mak  <duncan@ximian.com>

	* graphics.c
	(GdipDrawBezier, GdipDrawBezierI):
	(GdipDrawBeziers, GdipDrawBeziersI):
	(GdipDrawLine, GdipDrawLineI):		
	(GdipDrawLines, GdipDrawLinesI): implemented.

	(GdipFillRectangle):
	(GdipDrawString): Make use of gdip_get_status.
	
	* general.c
	(gdip_get_status): A new function for retrieving a Status from a
	cairo_t.
	
2003-10-23  Miguel de Icaza  <miguel@ximian.com>

	* bitmap.c (GdipCreateBitmapFromScan0): Do not allocate buffer
	here, expect that our caller to allocate that.
	
	Do not compute the stride here, expect our caller to do this
	properly.

	* Use the Mono coding conventions.

2003-10-15  Alexandre Pigolkine <pigolkine@gmx.de>
	* image.c			GdipDrawImageRectI changed 
	
2003-10-14  Alexandre Pigolkine <pigolkine@gmx.de>
	* gdip_defs.h
	* graphics.c
	* gdip_main.h
						DrawString function added

2003-10-12  Alexandre Pigolkine <pigolkine@gmx.de>
	* bitmap.c
	* brush.c
	* gdip_defs.h
	* gdip_win32.c
	* gdip_win32.h
	* gdip_main.h
	* general.c
	* graphics.c
	* image.c
	* Makefile
	* pen.c
	* solidbrush.c
						Added
