From 5110c4743751145c4ae1934cd1d83bc6c55bb43f Mon Sep 17 00:00:00 2001 From: John Abd-El-Malek Date: Sat, 17 May 2014 22:33:34 -0700 Subject: Initial commit. --- .../fxge/Microsoft SDK/include/GdiPlusLineCaps.h | 253 +++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 core/src/fxge/Microsoft SDK/include/GdiPlusLineCaps.h (limited to 'core/src/fxge/Microsoft SDK/include/GdiPlusLineCaps.h') diff --git a/core/src/fxge/Microsoft SDK/include/GdiPlusLineCaps.h b/core/src/fxge/Microsoft SDK/include/GdiPlusLineCaps.h new file mode 100644 index 0000000000..e8a2951f43 --- /dev/null +++ b/core/src/fxge/Microsoft SDK/include/GdiPlusLineCaps.h @@ -0,0 +1,253 @@ +/**************************************************************************\ +* +* Copyright (c) 2000, Microsoft Corp. All Rights Reserved. +* +* Module Name: +* +* GdiplusLineCaps.h +* +* Abstract: +* +* APIs for Custom Line Caps +* +\**************************************************************************/ + +#ifndef _GDIPLUSLINECAPS_H +#define _GDIPLUSLINECAPS_H + +inline +CustomLineCap::CustomLineCap( + IN const GraphicsPath* fillPath, + IN const GraphicsPath* strokePath, + IN LineCap baseCap, + IN REAL baseInset + ) +{ + nativeCap = NULL; + GpPath* nativeFillPath = NULL; + GpPath* nativeStrokePath = NULL; + + if(fillPath) + nativeFillPath = fillPath->nativePath; + if(strokePath) + nativeStrokePath = strokePath->nativePath; + + lastResult = DllExports::GdipCreateCustomLineCap( + nativeFillPath, nativeStrokePath, + baseCap, baseInset, &nativeCap); +} + +inline +CustomLineCap::CustomLineCap() +{ + // This is used for default constructor for subclasses. + // So don't create a nativeCap. + + nativeCap = NULL; + lastResult = Ok; +} + +inline +CustomLineCap::~CustomLineCap() +{ + DllExports::GdipDeleteCustomLineCap(nativeCap); +} + +inline Status +CustomLineCap::SetStrokeCaps( + IN LineCap startCap, + IN LineCap endCap) +{ + return SetStatus(DllExports::GdipSetCustomLineCapStrokeCaps(nativeCap, + startCap, endCap)); +} + +inline Status +CustomLineCap::GetStrokeCaps( + OUT LineCap* startCap, + OUT LineCap* endCap) const +{ + return SetStatus(DllExports::GdipGetCustomLineCapStrokeCaps(nativeCap, + startCap, endCap)); +} + +inline Status +CustomLineCap::SetStrokeJoin( + IN LineJoin lineJoin) +{ + return SetStatus(DllExports::GdipSetCustomLineCapStrokeJoin(nativeCap, lineJoin)); +} + +inline LineJoin +CustomLineCap::GetStrokeJoin() const +{ + LineJoin lineJoin; + + SetStatus(DllExports::GdipGetCustomLineCapStrokeJoin(nativeCap, &lineJoin)); + + return lineJoin; +} + +inline Status +CustomLineCap::SetBaseCap(IN LineCap baseCap) +{ + return SetStatus(DllExports::GdipSetCustomLineCapBaseCap(nativeCap, baseCap)); +} + +inline LineCap +CustomLineCap::GetBaseCap() const +{ + LineCap baseCap; + SetStatus(DllExports::GdipGetCustomLineCapBaseCap(nativeCap, &baseCap)); + + return baseCap; +} + +inline Status +CustomLineCap::SetBaseInset(IN REAL inset) +{ + return SetStatus(DllExports::GdipSetCustomLineCapBaseInset(nativeCap, inset)); +} + +inline REAL +CustomLineCap::GetBaseInset() const +{ + REAL inset; + SetStatus(DllExports::GdipGetCustomLineCapBaseInset(nativeCap, &inset)); + + return inset; +} + + +inline Status +CustomLineCap::SetWidthScale(IN REAL widthScale) +{ + return SetStatus(DllExports::GdipSetCustomLineCapWidthScale(nativeCap, widthScale)); +} + +inline REAL +CustomLineCap::GetWidthScale() const +{ + REAL widthScale; + SetStatus(DllExports::GdipGetCustomLineCapWidthScale(nativeCap, &widthScale)); + + return widthScale; +} + +inline CustomLineCap* +CustomLineCap::Clone() const +{ + GpCustomLineCap *newNativeLineCap = NULL; + + SetStatus(DllExports::GdipCloneCustomLineCap(nativeCap, &newNativeLineCap)); + + if (lastResult == Ok) + { + CustomLineCap *newLineCap = new CustomLineCap(newNativeLineCap, lastResult); + if (newLineCap == NULL) + { + SetStatus(DllExports::GdipDeleteCustomLineCap(newNativeLineCap)); + } + + return newLineCap; + } + + return NULL; +} + +class AdjustableArrowCap : public CustomLineCap +{ +public: + + AdjustableArrowCap( + IN REAL height, + IN REAL width, + IN BOOL isFilled = TRUE + ) + { + GpAdjustableArrowCap* cap = NULL; + + lastResult = DllExports::GdipCreateAdjustableArrowCap( + height, width, isFilled, &cap); + SetNativeCap(cap); + } + + Status SetHeight(IN REAL height) + { + GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; + return SetStatus(DllExports::GdipSetAdjustableArrowCapHeight( + cap, height)); + } + + REAL GetHeight() const + { + GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; + REAL height; + SetStatus(DllExports::GdipGetAdjustableArrowCapHeight( + cap, &height)); + + return height; + } + + Status SetWidth(IN REAL width) + { + GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; + return SetStatus(DllExports::GdipSetAdjustableArrowCapWidth( + cap, width)); + } + + REAL GetWidth() const + { + GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; + REAL width; + SetStatus(DllExports::GdipGetAdjustableArrowCapWidth( + cap, &width)); + + return width; + } + + Status SetMiddleInset(IN REAL middleInset) + { + GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; + return SetStatus(DllExports::GdipSetAdjustableArrowCapMiddleInset( + cap, middleInset)); + } + + REAL GetMiddleInset() const + { + GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; + REAL middleInset; + SetStatus(DllExports::GdipGetAdjustableArrowCapMiddleInset( + cap, &middleInset)); + + return middleInset; + } + + Status SetFillState(IN BOOL isFilled) + { + GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; + return SetStatus(DllExports::GdipSetAdjustableArrowCapFillState( + cap, isFilled)); + } + + BOOL IsFilled() const + { + GpAdjustableArrowCap* cap = (GpAdjustableArrowCap*) nativeCap; + BOOL isFilled; + SetStatus(DllExports::GdipGetAdjustableArrowCapFillState( + cap, &isFilled)); + + return isFilled; + } + +#ifdef DCR_USE_NEW_250932 + +private: + AdjustableArrowCap(const AdjustableArrowCap &); + AdjustableArrowCap& operator=(const AdjustableArrowCap &); + +#endif + +}; + +#endif -- cgit v1.2.3