mirror of
https://github.com/QB64Official/qb64.git
synced 2024-09-12 14:20:19 +00:00
131 lines
3.4 KiB
C++
131 lines
3.4 KiB
C++
/*
|
|
* gdipluslinecaps.h
|
|
*
|
|
* GDI+ AdjustableArrowCap class
|
|
*
|
|
* This file is part of the w32api package.
|
|
*
|
|
* Contributors:
|
|
* Created by Markus Koenig <markus@stber-koenig.de>
|
|
*
|
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
|
*
|
|
* This source code is offered for use in the public domain. You may
|
|
* use, modify or distribute it freely.
|
|
*
|
|
* This code is distributed in the hope that it will be useful but
|
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
|
* DISCLAIMED. This includes but is not limited to warranties of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
*/
|
|
|
|
#ifndef __GDIPLUS_LINECAPS_H
|
|
#define __GDIPLUS_LINECAPS_H
|
|
#if __GNUC__ >=3
|
|
#pragma GCC system_header
|
|
#endif
|
|
|
|
#ifndef __cplusplus
|
|
#error "A C++ compiler is required to include gdipluslinecaps.h."
|
|
#endif
|
|
|
|
class AdjustableArrowCap: public CustomLineCap
|
|
{
|
|
public:
|
|
AdjustableArrowCap(REAL height, REAL width, BOOL isFilled):
|
|
CustomLineCap(NULL, Ok)
|
|
{
|
|
GpAdjustableArrowCap *nativeAdjustableArrowCap = NULL;
|
|
lastStatus = DllExports::GdipCreateAdjustableArrowCap(
|
|
height, width, isFilled,
|
|
&nativeAdjustableArrowCap);
|
|
nativeCustomLineCap = nativeAdjustableArrowCap;
|
|
}
|
|
virtual ~AdjustableArrowCap()
|
|
{
|
|
}
|
|
virtual AdjustableArrowCap* Clone() const
|
|
{
|
|
GpCustomLineCap *cloneCustomLineCap = NULL;
|
|
Status status = updateStatus(DllExports::GdipCloneCustomLineCap(
|
|
nativeCustomLineCap, &cloneCustomLineCap));
|
|
if (status == Ok) {
|
|
AdjustableArrowCap *result = new AdjustableArrowCap(
|
|
cloneCustomLineCap, lastStatus);
|
|
if (!result) {
|
|
DllExports::GdipDeleteCustomLineCap(
|
|
cloneCustomLineCap);
|
|
lastStatus = OutOfMemory;
|
|
}
|
|
return result;
|
|
} else {
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
REAL GetHeight() const
|
|
{
|
|
REAL result = 0.0f;
|
|
updateStatus(DllExports::GdipGetAdjustableArrowCapHeight(
|
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
|
&result));
|
|
return result;
|
|
}
|
|
REAL GetMiddleInset() const
|
|
{
|
|
REAL result = 0.0f;
|
|
updateStatus(DllExports::GdipGetAdjustableArrowCapMiddleInset(
|
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
|
&result));
|
|
return result;
|
|
}
|
|
REAL GetWidth() const
|
|
{
|
|
REAL result = 0.0f;
|
|
updateStatus(DllExports::GdipGetAdjustableArrowCapWidth(
|
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
|
&result));
|
|
return result;
|
|
}
|
|
BOOL IsFilled() const
|
|
{
|
|
BOOL result = FALSE;
|
|
updateStatus(DllExports::GdipGetAdjustableArrowCapFillState(
|
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
|
&result));
|
|
return result;
|
|
}
|
|
Status SetFillState(BOOL isFilled)
|
|
{
|
|
return updateStatus(DllExports::GdipSetAdjustableArrowCapFillState(
|
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
|
isFilled));
|
|
}
|
|
Status SetHeight(REAL height)
|
|
{
|
|
return updateStatus(DllExports::GdipSetAdjustableArrowCapHeight(
|
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
|
height));
|
|
}
|
|
Status SetMiddleInset(REAL middleInset)
|
|
{
|
|
return updateStatus(DllExports::GdipSetAdjustableArrowCapMiddleInset(
|
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
|
middleInset));
|
|
}
|
|
Status SetWidth(REAL width)
|
|
{
|
|
return updateStatus(DllExports::GdipSetAdjustableArrowCapWidth(
|
|
(GpAdjustableArrowCap*) nativeCustomLineCap,
|
|
width));
|
|
}
|
|
|
|
private:
|
|
AdjustableArrowCap(GpCustomLineCap *customLineCap, Status status):
|
|
CustomLineCap(customLineCap, status) {}
|
|
AdjustableArrowCap(const AdjustableArrowCap&);
|
|
AdjustableArrowCap& operator=(const AdjustableArrowCap&);
|
|
};
|
|
|
|
#endif /* __GDIPLUS_LINECAPS_H */
|