gdiplus: Added GdipSetPageUnit.
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index e59516c..919efe6 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -306,7 +306,7 @@
@ stub GdipGetMetafileHeaderFromWmf
@ stub GdipGetNearestColor
@ stub GdipGetPageScale
-@ stub GdipGetPageUnit
+@ stdcall GdipGetPageUnit(ptr ptr)
@ stub GdipGetPathData
@ stdcall GdipGetPathFillMode(ptr ptr)
@ stub GdipGetPathGradientBlend
@@ -525,7 +525,7 @@
@ stub GdipSetMatrixElements
@ stub GdipSetMetafileDownLevelRasterizationLimit
@ stub GdipSetPageScale
-@ stub GdipSetPageUnit
+@ stdcall GdipSetPageUnit(ptr long)
@ stdcall GdipSetPathFillMode(ptr long)
@ stub GdipSetPathGradientBlend
@ stub GdipSetPathGradientCenterColor
diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h
index aac3278..72e2303 100644
--- a/dlls/gdiplus/gdiplus_private.h
+++ b/dlls/gdiplus/gdiplus_private.h
@@ -65,6 +65,7 @@
CompositingQuality compqual;
InterpolationMode interpolation;
PixelOffsetMode pixeloffset;
+ GpUnit unit; /* page unit */
};
struct GpBrush{
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 64ac4fe..7a26d87 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -701,6 +701,7 @@
(*graphics)->compqual = CompositingQualityDefault;
(*graphics)->interpolation = InterpolationModeDefault;
(*graphics)->pixeloffset = PixelOffsetModeDefault;
+ (*graphics)->unit = UnitDisplay;
return Ok;
}
@@ -1018,6 +1019,16 @@
return Ok;
}
+GpStatus WINGDIPAPI GdipGetPageUnit(GpGraphics *graphics, GpUnit *unit)
+{
+ if(!graphics || !unit)
+ return InvalidParameter;
+
+ *unit = graphics->unit;
+
+ return Ok;
+}
+
/* FIXME: Pixel offset mode is not used anywhere except the getter/setter. */
GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode
*mode)
@@ -1083,6 +1094,16 @@
return Ok;
}
+GpStatus WINGDIPAPI GdipSetPageUnit(GpGraphics *graphics, GpUnit unit)
+{
+ if(!graphics)
+ return InvalidParameter;
+
+ graphics->unit = unit;
+
+ return Ok;
+}
+
GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode
mode)
{
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index 706aa27..d0aae71 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -62,12 +62,14 @@
GpFillMode);
GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*);
GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics*,InterpolationMode*);
+GpStatus WINGDIPAPI GdipGetPageUnit(GpGraphics*,GpUnit*);
GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics*,PixelOffsetMode*);
GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics*,SmoothingMode*);
GpStatus WINGDIPAPI GdipRestoreGraphics(GpGraphics*,GraphicsState);
GpStatus WINGDIPAPI GdipSaveGraphics(GpGraphics*,GraphicsState*);
GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics*,CompositingQuality);
GpStatus WINGDIPAPI GdipSetInterpolationMode(GpGraphics*,InterpolationMode);
+GpStatus WINGDIPAPI GdipSetPageUnit(GpGraphics*,GpUnit);
GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics*,PixelOffsetMode);
GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics*,SmoothingMode);