Files
Leviathan/Library/External/XTToolkitPro/include/Markup/DeviceContext/XTPMarkupGdiPlusDeviceContext.h
T
2026-06-01 12:46:52 +02:00

53 lines
2.1 KiB
C++

typedef DWORD (WINAPI* PFNGETLAYOUT)(HDC hdc);
typedef DWORD (WINAPI* PFNSETLAYOUT)(HDC hdc, DWORD dwLayout);
class _XTP_EXT_CLASS CXTPMarkupGdiPlusDeviceContext : public CXTPMarkupDeviceContext
{
public:
CXTPMarkupGdiPlusDeviceContext(HDC hDC, HDC hAttribDC);
virtual ~CXTPMarkupGdiPlusDeviceContext();
public:
virtual void OffsetViewport(const POINT& ptViewortOrg);
virtual void SetSmoothingMode(XTPMarkupSmoothingMode smoothingMode);
protected:
Gdiplus::Status GdipCreateBitmapFromHICON_Fixed(HICON hicon, Gdiplus::GpBitmap** bitmap) const;
public:
virtual void Ellipse(CRect rc, CXTPMarkupStrokeStyle* pStrokeStyle, CXTPMarkupBrush* pFillBrush);
virtual void DrawRectangle(CRect rc, CXTPMarkupBrush* pBrush, CXTPMarkupThickness* pThickness);
virtual void FillRectangle(CRect rc, CXTPMarkupBrush* pBrush);
virtual void DrawLine(int x1, int y1, int x2, int y2, CXTPMarkupStrokeStyle* pStrokeStyle);
virtual void Polyline(const POINT* points, int nCount, CXTPMarkupStrokeStyle* pStrokeStyle);
virtual void Polygon(const POINT* points, int nCount, CXTPMarkupStrokeStyle* pStrokeStyle, CXTPMarkupBrush* pFillBrush);
virtual void DrawPath(CXTPMarkupPathData *pData, CXTPMarkupStrokeStyle* pStrokeStyle, CXTPMarkupBrush* pFillBrush);
virtual void DrawImage(CXTPImageManagerIcon* pIcon, CRect rc);
virtual void FillRoundRectangle(CRect rc, CXTPMarkupBrush* pBrush, double* pCornerRadius);
virtual void DrawRoundRectangle(CRect rc, CXTPMarkupBrush* pBrush, CXTPMarkupThickness* pThickness, double* pCornerRadius);
public:
static CXTPGdiPlus* GetGdiPlus();
static void Register(BOOL bInit);
virtual Gdiplus::GpGraphics* GetGraphics();
virtual void ReleaseGraphics(Gdiplus::GpGraphics* pGpGraphics);
protected:
Gdiplus::GpBrush* CreateGpBrush(CXTPMarkupBrush* pBrush, LPCRECT lpRect) const;
Gdiplus::GpPen* CreateGpPen(CXTPMarkupStrokeStyle* pStrokeStyle, LPCRECT lpRect) const;
CRect GetPointsBoundRect(const POINT* points, int nCount) const;
BOOL IsGDIBrush(CXTPMarkupBrush* pBrush) const;
Gdiplus::GpBitmap *IconToGdiplusBitmap(CXTPImageManagerIcon* pIcon) const;
Gdiplus::SmoothingMode m_smoothingMode;
};