1 /*
2  * Copyright (C) 2007 Novell, Inc (http://www.novell.com)
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
5  * and associated documentation files (the "Software"), to deal in the Software without restriction,
6  * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
7  * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
8  * subject to the following conditions:
9  *
10  * The above copyright notice and this permission notice shall be included in all copies or substantial
11  * portions of the Software.
12  *
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
14  * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
15  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
16  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
17  * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18  *
19  * Authors:
20  *	Sebastien Pouliot  <sebastien@ximian.com>
21  */
22 
23 #ifndef __GRAPHICS_METAFILE_PRIVATE_H__
24 #define __GRAPHICS_METAFILE_PRIVATE_H__
25 
26 #include "gdiplus-private.h"
27 #include "matrix-private.h"
28 
29 GpStatus metafile_DrawArc (GpGraphics *graphics, GpPen *pen, float x, float y, float width, float height, float startAngle,
30 	float sweepAngle) GDIP_INTERNAL;
31 
32 GpStatus metafile_DrawBeziers (GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, int count) GDIP_INTERNAL;
33 
34 GpStatus metafile_DrawClosedCurve2 (GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, int count,
35 	float tension) GDIP_INTERNAL;
36 GpStatus metafile_FillClosedCurve2 (GpGraphics *graphics, GpBrush *brush, GDIPCONST GpPointF *points, int count,
37 	float tension, GpFillMode fillMode) GDIP_INTERNAL;
38 GpStatus metafile_DrawCurve3 (GpGraphics *graphics, GpPen* pen, GDIPCONST GpPointF *points, int count, int offset,
39 	int numOfSegments, float tension) GDIP_INTERNAL;
40 
41 GpStatus metafile_DrawEllipse (GpGraphics *graphics, GpPen *pen, float x, float y, float width, float height) GDIP_INTERNAL;
42 GpStatus metafile_FillEllipse (GpGraphics *graphics, GpBrush *brush, float x, float y, float width, float height) GDIP_INTERNAL;
43 
44 GpStatus metafile_DrawLines (GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, int count) GDIP_INTERNAL;
45 
46 GpStatus metafile_FillRectangle (GpGraphics *graphics, GpBrush *brush, float x, float y, float width, float height) GDIP_INTERNAL;
47 GpStatus metafile_DrawRectangles (GpGraphics *graphics, GpPen *pen, GDIPCONST GpRectF *rects, int count) GDIP_INTERNAL;
48 GpStatus metafile_FillRectangles (GpGraphics *graphics, GpBrush *brush, GDIPCONST GpRectF *rects, int count) GDIP_INTERNAL;
49 
50 GpStatus metafile_DrawPath (GpGraphics *graphics, GpPen *pen, GpPath *path) GDIP_INTERNAL;
51 GpStatus metafile_FillPath (GpGraphics *graphics, GpBrush *brush, GpPath *path) GDIP_INTERNAL;
52 
53 GpStatus metafile_DrawPie (GpGraphics *graphics, GpPen *pen, float x, float y, float width, float height,
54 	float startAngle, float sweepAngle) GDIP_INTERNAL;
55 GpStatus metafile_FillPie (GpGraphics *graphics, GpBrush *brush, float x, float y, float width, float height,
56 	float startAngle, float sweepAngle) GDIP_INTERNAL;
57 
58 GpStatus metafile_DrawPolygon (GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, int count) GDIP_INTERNAL;
59 GpStatus metafile_FillPolygon (GpGraphics *graphics, GpBrush *brush, GDIPCONST GpPointF *points, int count,
60 	FillMode fillMode) GDIP_INTERNAL;
61 
62 GpStatus metafile_FillRegion (GpGraphics *graphics, GpBrush *brush, GpRegion *region) GDIP_INTERNAL;
63 
64 GpStatus metafile_GraphicsClear (GpGraphics *graphics, ARGB color) GDIP_INTERNAL;
65 GpStatus metafile_SetCompositingMode (GpGraphics *graphics, CompositingMode compositingMode) GDIP_INTERNAL;
66 GpStatus metafile_SetCompositingQuality (GpGraphics *graphics, CompositingQuality compositingQuality) GDIP_INTERNAL;
67 GpStatus metafile_SetInterpolationMode (GpGraphics *graphics, InterpolationMode interpolationMode) GDIP_INTERNAL;
68 GpStatus metafile_SetPixelOffsetMode (GpGraphics *graphics, PixelOffsetMode pixelOffsetMode) GDIP_INTERNAL;
69 GpStatus metafile_SetRenderingOrigin (GpGraphics *graphics, int x, int y) GDIP_INTERNAL;
70 GpStatus metafile_SetPageTransform (GpGraphics *graphics, GpUnit unit, float scale) GDIP_INTERNAL;
71 GpStatus metafile_SetSmoothingMode (GpGraphics *graphics, SmoothingMode mode) GDIP_INTERNAL;
72 GpStatus metafile_SetTextContrast (GpGraphics *graphics, UINT contrast) GDIP_INTERNAL;
73 GpStatus metafile_SetTextRenderingHint (GpGraphics *graphics, TextRenderingHint mode) GDIP_INTERNAL;
74 
75 GpStatus metafile_ResetClip (GpGraphics *graphics) GDIP_INTERNAL;
76 GpStatus metafile_SetClipPath (GpGraphics *graphics, GpPath *path, CombineMode combineMode) GDIP_INTERNAL;
77 GpStatus metafile_SetClipRect (GpGraphics *graphics, float x, float y, float width, float height,
78 	CombineMode combineMode) GDIP_INTERNAL;
79 GpStatus metafile_SetClipRegion (GpGraphics *graphics, GpRegion *region, CombineMode combineMode) GDIP_INTERNAL;
80 GpStatus metafile_TranslateClip (GpGraphics *graphics, float dx, float dy) GDIP_INTERNAL;
81 
82 GpStatus metafile_ResetWorldTransform (GpGraphics *graphics) GDIP_INTERNAL;
83 GpStatus metafile_SetWorldTransform (GpGraphics *graphics, GpMatrix *matrix) GDIP_INTERNAL;
84 GpStatus metafile_MultiplyWorldTransform (GpGraphics *graphics, GpMatrix *matrix, GpMatrixOrder order) GDIP_INTERNAL;
85 GpStatus metafile_RotateWorldTransform (GpGraphics *graphics, float angle, GpMatrixOrder order) GDIP_INTERNAL;
86 GpStatus metafile_ScaleWorldTransform (GpGraphics *graphics, float sx, float sy, GpMatrixOrder order) GDIP_INTERNAL;
87 GpStatus metafile_TranslateWorldTransform (GpGraphics *graphics, float dx, float dy, GpMatrixOrder order) GDIP_INTERNAL;
88 
89 #endif
90