You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.3 KiB
64 lines
2.3 KiB
//---------------------------------------------------------------------------
|
|
// TextDraw.h - implements the drawing API for text
|
|
//---------------------------------------------------------------------------
|
|
#pragma once
|
|
//---------------------------------------------------------------------------
|
|
#include "wrapper.h"
|
|
//---------------------------------------------------------------------------
|
|
class CRenderObj; // forward
|
|
//---------------------------------------------------------------------------
|
|
// Note: draw objects like CBorderFill cannot have virtual methods
|
|
// since they reside in the shared memory map file.
|
|
//---------------------------------------------------------------------------
|
|
class CTextDraw
|
|
{
|
|
public:
|
|
//---- methods ----
|
|
HRESULT PackProperties(CRenderObj *pRender, int iPartId, int iStateId);
|
|
|
|
static BOOL KeyProperty(int iPropId);
|
|
|
|
void DumpProperties(CSimpleFile *pFile, BYTE *pbThemeData, BOOL fFullInfo);
|
|
|
|
HRESULT DrawText(CRenderObj *pRender, HDC hdc, int iPartId, int iStateId, LPCWSTR _pszText,
|
|
DWORD dwCharCount, DWORD dwTextFlags, const RECT *pRect, const DTTOPTS *pOptions);
|
|
|
|
HRESULT DrawEdge(CRenderObj *pRender, HDC hdc, int iPartId, int iStateId, const RECT *pDestRect,
|
|
UINT uEdge, UINT uFlags, OUT RECT *pContentRect);
|
|
|
|
HRESULT GetTextExtent(CRenderObj *pRender, HDC hdc, int iPartId, int iStateId, LPCWSTR _pszText,
|
|
int iCharCount, DWORD dwTextFlags, const RECT *pBoundingRect, RECT *pExtentRect);
|
|
|
|
HRESULT GetTextMetrics(CRenderObj *pRender, HDC hdc, int iPartId, int iStateId, TEXTMETRIC* ptm);
|
|
|
|
public:
|
|
//---- data ----
|
|
|
|
//---- text ----
|
|
COLORREF _crText;
|
|
|
|
//---- edge ----
|
|
COLORREF _crEdgeLight;
|
|
COLORREF _crEdgeHighlight;
|
|
COLORREF _crEdgeShadow;
|
|
COLORREF _crEdgeDkShadow;
|
|
COLORREF _crEdgeFill;
|
|
|
|
//---- shadow ----
|
|
POINT _ptShadowOffset;
|
|
COLORREF _crShadow;
|
|
TEXTSHADOWTYPE _eShadowType;
|
|
|
|
//---- border ----
|
|
int _iBorderSize;
|
|
COLORREF _crBorder;
|
|
|
|
//---- font ----
|
|
LOGFONT _lfFont;
|
|
BOOL _fHaveFont;
|
|
|
|
//---- id ----
|
|
int _iSourcePartId;
|
|
int _iSourceStateId;
|
|
};
|
|
//---------------------------------------------------------------------------
|