| Index: fpdfsdk/include/pdfwindow/PWL_Utils.h
|
| diff --git a/fpdfsdk/include/pdfwindow/PWL_Utils.h b/fpdfsdk/include/pdfwindow/PWL_Utils.h
|
| index b58f30e3997ba62bf720d2f15fb55accdab051a1..e797510d50b8cbf161a62576fa87b7d1d431e115 100644
|
| --- a/fpdfsdk/include/pdfwindow/PWL_Utils.h
|
| +++ b/fpdfsdk/include/pdfwindow/PWL_Utils.h
|
| @@ -8,236 +8,406 @@
|
| #define FPDFSDK_INCLUDE_PDFWINDOW_PWL_UTILS_H_
|
|
|
| #include "../../../core/include/fpdfapi/fpdf_parser.h" // For CPDF_Point.
|
| -#include "../../../core/include/fpdfdoc/fpdf_vt.h" // For CPVT_WordRange.
|
| +#include "../../../core/include/fpdfdoc/fpdf_vt.h" // For CPVT_WordRange.
|
| #include "../fxedit/fx_edit.h"
|
| #include "PWL_Wnd.h"
|
|
|
| class CFX_PathData;
|
| struct CPWL_Color;
|
|
|
| -template<class T> T PWL_MIN (const T & i, const T & j) { return ((i < j) ? i : j); }
|
| -template<class T> T PWL_MAX (const T & i, const T & j) { return ((i > j) ? i : j); }
|
| -
|
| -#define PWL_PDF2WIN(color) (uint8_t(color*255))
|
| -#define PWL_WIN2PDF(color) ((FX_FLOAT)((FX_FLOAT)color/255.0f))
|
| -
|
| -#define PWL_MAKEDWORD(low,high) ((FX_DWORD)((FX_WORD)(low) | (FX_DWORD)(((FX_WORD)(high))<<16)))
|
| -#define PWL_GETLOWWORD(dword) ((FX_WORD)(dword))
|
| -#define PWL_GETHIGHWORD(dword) ((FX_WORD)(dword>>16))
|
| -
|
| -#define PWL_ICONTYPE_CHECKMARK 0
|
| -#define PWL_ICONTYPE_CIRCLE 1
|
| -#define PWL_ICONTYPE_COMMENT 2
|
| -#define PWL_ICONTYPE_CROSS 3
|
| -#define PWL_ICONTYPE_HELP 4
|
| -#define PWL_ICONTYPE_INSERTTEXT 5
|
| -#define PWL_ICONTYPE_KEY 6
|
| -#define PWL_ICONTYPE_NEWPARAGRAPH 7
|
| -#define PWL_ICONTYPE_TEXTNOTE 8
|
| -#define PWL_ICONTYPE_PARAGRAPH 9
|
| -#define PWL_ICONTYPE_RIGHTARROW 10
|
| -#define PWL_ICONTYPE_RIGHTPOINTER 11
|
| -#define PWL_ICONTYPE_STAR 12
|
| -#define PWL_ICONTYPE_UPARROW 13
|
| -#define PWL_ICONTYPE_UPLEFTARROW 14
|
| -
|
| -#define PWL_ICONTYPE_GRAPH 15
|
| -#define PWL_ICONTYPE_PAPERCLIP 16
|
| -#define PWL_ICONTYPE_ATTACHMENT 17
|
| -#define PWL_ICONTYPE_TAG 18
|
| -
|
| -#define PWL_ICONTYPE_FOXIT 19
|
| -
|
| -#define PWL_ICONTYPE_UNKNOWN -1
|
| -
|
| -//checkbox & radiobutton style
|
| -#define PCS_CHECK 0
|
| -#define PCS_CIRCLE 1
|
| -#define PCS_CROSS 2
|
| -#define PCS_DIAMOND 3
|
| -#define PCS_SQUARE 4
|
| -#define PCS_STAR 5
|
| -
|
| -#define PWL_PI 3.14159265358979f
|
| -#define PWL_BEZIER 0.5522847498308f
|
| -
|
| -//pushbutton layout style
|
| -#define PPBL_LABEL 0
|
| -#define PPBL_ICON 1
|
| -#define PPBL_ICONTOPLABELBOTTOM 2
|
| -#define PPBL_LABELTOPICONBOTTOM 3
|
| -#define PPBL_ICONLEFTLABELRIGHT 4
|
| -#define PPBL_LABELLEFTICONRIGHT 5
|
| -#define PPBL_LABELOVERICON 6
|
| -
|
| -class CPWL_Point : public CPDF_Point
|
| -{
|
| -public:
|
| - CPWL_Point() : CPDF_Point(0.0f,0.0f){}
|
| - CPWL_Point(FX_FLOAT fx, FX_FLOAT fy) : CPDF_Point(fx,fy) {}
|
| - CPWL_Point(const CPWL_Point& point) : CPDF_Point(point.x, point.y) {}
|
| +template <class T>
|
| +T PWL_MIN(const T& i, const T& j) {
|
| + return ((i < j) ? i : j);
|
| +}
|
| +template <class T>
|
| +T PWL_MAX(const T& i, const T& j) {
|
| + return ((i > j) ? i : j);
|
| +}
|
| +
|
| +#define PWL_PDF2WIN(color) (uint8_t(color * 255))
|
| +#define PWL_WIN2PDF(color) ((FX_FLOAT)((FX_FLOAT)color / 255.0f))
|
| +
|
| +#define PWL_MAKEDWORD(low, high) \
|
| + ((FX_DWORD)((FX_WORD)(low) | (FX_DWORD)(((FX_WORD)(high)) << 16)))
|
| +#define PWL_GETLOWWORD(dword) ((FX_WORD)(dword))
|
| +#define PWL_GETHIGHWORD(dword) ((FX_WORD)(dword >> 16))
|
| +
|
| +#define PWL_ICONTYPE_CHECKMARK 0
|
| +#define PWL_ICONTYPE_CIRCLE 1
|
| +#define PWL_ICONTYPE_COMMENT 2
|
| +#define PWL_ICONTYPE_CROSS 3
|
| +#define PWL_ICONTYPE_HELP 4
|
| +#define PWL_ICONTYPE_INSERTTEXT 5
|
| +#define PWL_ICONTYPE_KEY 6
|
| +#define PWL_ICONTYPE_NEWPARAGRAPH 7
|
| +#define PWL_ICONTYPE_TEXTNOTE 8
|
| +#define PWL_ICONTYPE_PARAGRAPH 9
|
| +#define PWL_ICONTYPE_RIGHTARROW 10
|
| +#define PWL_ICONTYPE_RIGHTPOINTER 11
|
| +#define PWL_ICONTYPE_STAR 12
|
| +#define PWL_ICONTYPE_UPARROW 13
|
| +#define PWL_ICONTYPE_UPLEFTARROW 14
|
| +
|
| +#define PWL_ICONTYPE_GRAPH 15
|
| +#define PWL_ICONTYPE_PAPERCLIP 16
|
| +#define PWL_ICONTYPE_ATTACHMENT 17
|
| +#define PWL_ICONTYPE_TAG 18
|
| +
|
| +#define PWL_ICONTYPE_FOXIT 19
|
| +
|
| +#define PWL_ICONTYPE_UNKNOWN -1
|
| +
|
| +// checkbox & radiobutton style
|
| +#define PCS_CHECK 0
|
| +#define PCS_CIRCLE 1
|
| +#define PCS_CROSS 2
|
| +#define PCS_DIAMOND 3
|
| +#define PCS_SQUARE 4
|
| +#define PCS_STAR 5
|
| +
|
| +#define PWL_PI 3.14159265358979f
|
| +#define PWL_BEZIER 0.5522847498308f
|
| +
|
| +// pushbutton layout style
|
| +#define PPBL_LABEL 0
|
| +#define PPBL_ICON 1
|
| +#define PPBL_ICONTOPLABELBOTTOM 2
|
| +#define PPBL_LABELTOPICONBOTTOM 3
|
| +#define PPBL_ICONLEFTLABELRIGHT 4
|
| +#define PPBL_LABELLEFTICONRIGHT 5
|
| +#define PPBL_LABELOVERICON 6
|
| +
|
| +class CPWL_Point : public CPDF_Point {
|
| + public:
|
| + CPWL_Point() : CPDF_Point(0.0f, 0.0f) {}
|
| + CPWL_Point(FX_FLOAT fx, FX_FLOAT fy) : CPDF_Point(fx, fy) {}
|
| + CPWL_Point(const CPWL_Point& point) : CPDF_Point(point.x, point.y) {}
|
| };
|
|
|
| -enum PWL_PATHDATA_TYPE
|
| -{
|
| - PWLPT_MOVETO,
|
| - PWLPT_LINETO,
|
| - PWLPT_BEZIERTO,
|
| - PWLPT_UNKNOWN
|
| +enum PWL_PATHDATA_TYPE {
|
| + PWLPT_MOVETO,
|
| + PWLPT_LINETO,
|
| + PWLPT_BEZIERTO,
|
| + PWLPT_UNKNOWN
|
| };
|
|
|
| -enum PWL_PATH_TYPE
|
| -{
|
| - PWLPT_PATHDATA,
|
| - PWLPT_STREAM
|
| -};
|
| +enum PWL_PATH_TYPE { PWLPT_PATHDATA, PWLPT_STREAM };
|
|
|
| -class CPWL_PathData
|
| -{
|
| -public:
|
| - CPWL_PathData() : point(), type(PWLPT_UNKNOWN){}
|
| - CPWL_PathData(const CPWL_Point& pt, PWL_PATHDATA_TYPE tp) : point(pt), type(tp) {}
|
| +class CPWL_PathData {
|
| + public:
|
| + CPWL_PathData() : point(), type(PWLPT_UNKNOWN) {}
|
| + CPWL_PathData(const CPWL_Point& pt, PWL_PATHDATA_TYPE tp)
|
| + : point(pt), type(tp) {}
|
|
|
| - CPWL_Point point;
|
| - PWL_PATHDATA_TYPE type;
|
| + CPWL_Point point;
|
| + PWL_PATHDATA_TYPE type;
|
| };
|
|
|
| class IPWL_SpellCheck;
|
|
|
| -class CPWL_Utils
|
| -{
|
| -public:
|
| - static CPDF_Rect InflateRect(const CPDF_Rect& rcRect, FX_FLOAT fSize);
|
| - static CPDF_Rect DeflateRect(const CPDF_Rect& rcRect, FX_FLOAT fSize);
|
| - static FX_BOOL IntersectRect(const CPDF_Rect& rect1, const CPDF_Rect& rect2);
|
| - static FX_BOOL ContainsRect(const CPDF_Rect& rcParent, const CPDF_Rect& rcChild);
|
| - static CPDF_Rect ScaleRect(const CPDF_Rect& rcRect,FX_FLOAT fScale);
|
| - static CPVT_WordRange OverlapWordRange(const CPVT_WordRange& wr1, const CPVT_WordRange& wr2);
|
| - static CPDF_Rect GetCenterSquare(const CPDF_Rect & rect);
|
| - static CPWL_Color SubstractColor(const CPWL_Color & sColor,FX_FLOAT fColorSub);
|
| - static CPWL_Color DevideColor(const CPWL_Color & sColor,FX_FLOAT fColorDevide);
|
| - static CPDF_Rect MaxRect(const CPDF_Rect & rect1,const CPDF_Rect & rect2);
|
| - static CPDF_Rect OffsetRect(const CPDF_Rect & rect,FX_FLOAT x,FX_FLOAT y);
|
| - static CPDF_Point OffsetPoint(const CPDF_Point & point,FX_FLOAT x,FX_FLOAT y);
|
| - static FX_COLORREF PWLColorToFXColor(const CPWL_Color& color, int32_t nTransparancy = 255);
|
| - static FX_BOOL IsBlackOrWhite(const CPWL_Color& color);
|
| - static CPWL_Color GetReverseColor(const CPWL_Color& color);
|
| -
|
| - static CFX_ByteString GetColorAppStream(const CPWL_Color & color,const FX_BOOL & bFillOrStroke = TRUE);
|
| - static CFX_ByteString GetBorderAppStream(const CPDF_Rect & rect, FX_FLOAT fWidth,
|
| - const CPWL_Color & color, const CPWL_Color & crLeftTop, const CPWL_Color & crRightBottom,
|
| - int32_t nStyle, const CPWL_Dash & dash);
|
| - static CFX_ByteString GetCircleBorderAppStream(const CPDF_Rect & rect, FX_FLOAT fWidth,
|
| - const CPWL_Color & color, const CPWL_Color & crLeftTop, const CPWL_Color & crRightBottom,
|
| - int32_t nStyle, const CPWL_Dash & dash);
|
| - static CFX_ByteString GetRectFillAppStream(const CPDF_Rect & rect,const CPWL_Color & color);
|
| - static CFX_ByteString GetCircleFillAppStream(const CPDF_Rect & rect,const CPWL_Color & color);
|
| -
|
| - static CFX_ByteString GetPushButtonAppStream(const CPDF_Rect & rcBBox,
|
| - IFX_Edit_FontMap * pFontMap,
|
| - CPDF_Stream * pIconStream,
|
| - CPDF_IconFit & IconFit,
|
| - const CFX_WideString & sLabel,
|
| - const CPWL_Color & crText,
|
| - FX_FLOAT fFontSize,
|
| - int32_t nLayOut);
|
| - static CFX_ByteString GetCheckBoxAppStream(const CPDF_Rect & rcBBox,
|
| - int32_t nStyle,
|
| - const CPWL_Color & crText);
|
| - static CFX_ByteString GetRadioButtonAppStream(const CPDF_Rect & rcBBox,
|
| - int32_t nStyle,
|
| - const CPWL_Color & crText);
|
| -
|
| - static CFX_ByteString GetEditAppStream(IFX_Edit* pEdit, const CPDF_Point & ptOffset, const CPVT_WordRange * pRange = NULL,
|
| - FX_BOOL bContinuous = TRUE, FX_WORD SubWord = 0);
|
| - static CFX_ByteString GetEditSelAppStream(IFX_Edit* pEdit, const CPDF_Point & ptOffset,
|
| - const CPVT_WordRange * pRange = NULL);
|
| - static CFX_ByteString GetSpellCheckAppStream(IFX_Edit* pEdit, IPWL_SpellCheck* pSpellCheck,
|
| - const CPDF_Point & ptOffset,
|
| - const CPVT_WordRange * pRange = NULL);
|
| - static CFX_ByteString GetTextAppStream(const CPDF_Rect & rcBBox,IFX_Edit_FontMap * pFontMap,
|
| - const CFX_WideString & sText, int32_t nAlignmentH, int32_t nAlignmentV,
|
| - FX_FLOAT fFontSize, FX_BOOL bMultiLine, FX_BOOL bAutoReturn, const CPWL_Color & crText);
|
| - static CFX_ByteString GetDropButtonAppStream(const CPDF_Rect & rcBBox);
|
| -
|
| - static void DrawFillRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,const CPDF_Rect & rect,
|
| - const CPWL_Color & color, int32_t nTransparancy);
|
| - static void DrawFillRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
|
| - const CPDF_Rect & rect,const FX_COLORREF & color);
|
| - static void DrawStrokeRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,const CPDF_Rect & rect,
|
| - const FX_COLORREF & color, FX_FLOAT fWidth);
|
| - static void DrawStrokeLine(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
|
| - const CPDF_Point & ptMoveTo, const CPDF_Point & ptLineTo, const FX_COLORREF & color, FX_FLOAT fWidth);
|
| - static void DrawBorder(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
|
| - const CPDF_Rect & rect, FX_FLOAT fWidth,
|
| - const CPWL_Color & color, const CPWL_Color & crLeftTop, const CPWL_Color & crRightBottom,
|
| - int32_t nStyle, const CPWL_Dash & dash, int32_t nTransparancy);
|
| - static void DrawFillArea(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
|
| - const CPDF_Point* pPts, int32_t nCount, const FX_COLORREF& color);
|
| - static void DrawShadow(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
|
| - FX_BOOL bVertical, FX_BOOL bHorizontal, CPDF_Rect rect,
|
| - int32_t nTransparancy, int32_t nStartGray, int32_t nEndGray);
|
| - static void DrawEditSpellCheck(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pEdit,
|
| - const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, const CPVT_WordRange* pRange,
|
| - IPWL_SpellCheck* pSpellCheck);
|
| -public:
|
| - static void ConvertCMYK2RGB(FX_FLOAT dC,FX_FLOAT dM,FX_FLOAT dY,FX_FLOAT dK,FX_FLOAT &dR,FX_FLOAT &dG,FX_FLOAT &dB);
|
| - static void ConvertRGB2CMYK(FX_FLOAT dR,FX_FLOAT dG,FX_FLOAT dB,FX_FLOAT &dC,FX_FLOAT &dM,FX_FLOAT &dY,FX_FLOAT &dK);
|
| -
|
| - static void ConvertRGB2GRAY(FX_FLOAT dR,FX_FLOAT dG,FX_FLOAT dB,FX_FLOAT &dGray);
|
| - static void ConvertGRAY2RGB(FX_FLOAT dGray,FX_FLOAT &dR,FX_FLOAT &dG,FX_FLOAT &dB);
|
| -
|
| - static void ConvertCMYK2GRAY(FX_FLOAT dC,FX_FLOAT dM,FX_FLOAT dY,FX_FLOAT dK,FX_FLOAT &dGray);
|
| - static void ConvertGRAY2CMYK(FX_FLOAT dGray,FX_FLOAT &dC,FX_FLOAT &dM,FX_FLOAT &dY,FX_FLOAT &dK);
|
| -
|
| - static void PWLColorToARGB(const CPWL_Color& color, int32_t& alpha, FX_FLOAT& red, FX_FLOAT& green, FX_FLOAT& blue);
|
| -
|
| -public:
|
| - static CFX_ByteString GetIconAppStream(int32_t nType, const CPDF_Rect& rect, const CPWL_Color& crFill,
|
| - const CPWL_Color& crStroke = PWL_DEFAULT_BLACKCOLOR);
|
| - static void DrawIconAppStream(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
|
| - int32_t nType, const CPDF_Rect & rect, const CPWL_Color& crFill,
|
| - const CPWL_Color& crStroke, const int32_t nTransparancy);
|
| -
|
| -private:
|
| - static CFX_ByteString GetAppStreamFromArray(const CPWL_PathData* pPathData, int32_t nCount);
|
| - static void GetPathDataFromArray(CFX_PathData& path, const CPWL_PathData* pPathData, int32_t nCount);
|
| -
|
| - static CFX_ByteString GetAppStream_Check(const CPDF_Rect & rcBBox, const CPWL_Color & crText);
|
| - static CFX_ByteString GetAppStream_Circle(const CPDF_Rect & rcBBox, const CPWL_Color & crText);
|
| - static CFX_ByteString GetAppStream_Cross(const CPDF_Rect & rcBBox, const CPWL_Color & crText);
|
| - static CFX_ByteString GetAppStream_Diamond(const CPDF_Rect & rcBBox, const CPWL_Color & crText);
|
| - static CFX_ByteString GetAppStream_Square(const CPDF_Rect & rcBBox, const CPWL_Color & crText);
|
| - static CFX_ByteString GetAppStream_Star(const CPDF_Rect & rcBBox, const CPWL_Color & crText);
|
| -
|
| - static CFX_ByteString GetAP_Check(const CPDF_Rect & crBBox);
|
| - static CFX_ByteString GetAP_Circle(const CPDF_Rect & crBBox);
|
| - static CFX_ByteString GetAP_Cross(const CPDF_Rect & crBBox);
|
| - static CFX_ByteString GetAP_Diamond(const CPDF_Rect & crBBox);
|
| - static CFX_ByteString GetAP_Square(const CPDF_Rect & crBBox);
|
| - static CFX_ByteString GetAP_Star(const CPDF_Rect & crBBox);
|
| - static CFX_ByteString GetAP_HalfCircle(const CPDF_Rect & crBBox,FX_FLOAT fRotate);
|
| -
|
| - static void GetGraphics_Checkmark(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_Circle(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_Comment(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_Cross(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_Help(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_InsertText(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_Key(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_NewParagraph(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_TextNote(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_Paragraph(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_RightArrow(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_RightPointer(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_Star(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_UpArrow(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_UpLeftArrow(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_Graph(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_Paperclip(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_Attachment(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_Tag(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| - static void GetGraphics_Foxit(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
|
| +class CPWL_Utils {
|
| + public:
|
| + static CPDF_Rect InflateRect(const CPDF_Rect& rcRect, FX_FLOAT fSize);
|
| + static CPDF_Rect DeflateRect(const CPDF_Rect& rcRect, FX_FLOAT fSize);
|
| + static FX_BOOL IntersectRect(const CPDF_Rect& rect1, const CPDF_Rect& rect2);
|
| + static FX_BOOL ContainsRect(const CPDF_Rect& rcParent,
|
| + const CPDF_Rect& rcChild);
|
| + static CPDF_Rect ScaleRect(const CPDF_Rect& rcRect, FX_FLOAT fScale);
|
| + static CPVT_WordRange OverlapWordRange(const CPVT_WordRange& wr1,
|
| + const CPVT_WordRange& wr2);
|
| + static CPDF_Rect GetCenterSquare(const CPDF_Rect& rect);
|
| + static CPWL_Color SubstractColor(const CPWL_Color& sColor,
|
| + FX_FLOAT fColorSub);
|
| + static CPWL_Color DevideColor(const CPWL_Color& sColor,
|
| + FX_FLOAT fColorDevide);
|
| + static CPDF_Rect MaxRect(const CPDF_Rect& rect1, const CPDF_Rect& rect2);
|
| + static CPDF_Rect OffsetRect(const CPDF_Rect& rect, FX_FLOAT x, FX_FLOAT y);
|
| + static CPDF_Point OffsetPoint(const CPDF_Point& point,
|
| + FX_FLOAT x,
|
| + FX_FLOAT y);
|
| + static FX_COLORREF PWLColorToFXColor(const CPWL_Color& color,
|
| + int32_t nTransparancy = 255);
|
| + static FX_BOOL IsBlackOrWhite(const CPWL_Color& color);
|
| + static CPWL_Color GetReverseColor(const CPWL_Color& color);
|
| +
|
| + static CFX_ByteString GetColorAppStream(const CPWL_Color& color,
|
| + const FX_BOOL& bFillOrStroke = TRUE);
|
| + static CFX_ByteString GetBorderAppStream(const CPDF_Rect& rect,
|
| + FX_FLOAT fWidth,
|
| + const CPWL_Color& color,
|
| + const CPWL_Color& crLeftTop,
|
| + const CPWL_Color& crRightBottom,
|
| + int32_t nStyle,
|
| + const CPWL_Dash& dash);
|
| + static CFX_ByteString GetCircleBorderAppStream(
|
| + const CPDF_Rect& rect,
|
| + FX_FLOAT fWidth,
|
| + const CPWL_Color& color,
|
| + const CPWL_Color& crLeftTop,
|
| + const CPWL_Color& crRightBottom,
|
| + int32_t nStyle,
|
| + const CPWL_Dash& dash);
|
| + static CFX_ByteString GetRectFillAppStream(const CPDF_Rect& rect,
|
| + const CPWL_Color& color);
|
| + static CFX_ByteString GetCircleFillAppStream(const CPDF_Rect& rect,
|
| + const CPWL_Color& color);
|
| +
|
| + static CFX_ByteString GetPushButtonAppStream(const CPDF_Rect& rcBBox,
|
| + IFX_Edit_FontMap* pFontMap,
|
| + CPDF_Stream* pIconStream,
|
| + CPDF_IconFit& IconFit,
|
| + const CFX_WideString& sLabel,
|
| + const CPWL_Color& crText,
|
| + FX_FLOAT fFontSize,
|
| + int32_t nLayOut);
|
| + static CFX_ByteString GetCheckBoxAppStream(const CPDF_Rect& rcBBox,
|
| + int32_t nStyle,
|
| + const CPWL_Color& crText);
|
| + static CFX_ByteString GetRadioButtonAppStream(const CPDF_Rect& rcBBox,
|
| + int32_t nStyle,
|
| + const CPWL_Color& crText);
|
| +
|
| + static CFX_ByteString GetEditAppStream(IFX_Edit* pEdit,
|
| + const CPDF_Point& ptOffset,
|
| + const CPVT_WordRange* pRange = NULL,
|
| + FX_BOOL bContinuous = TRUE,
|
| + FX_WORD SubWord = 0);
|
| + static CFX_ByteString GetEditSelAppStream(
|
| + IFX_Edit* pEdit,
|
| + const CPDF_Point& ptOffset,
|
| + const CPVT_WordRange* pRange = NULL);
|
| + static CFX_ByteString GetSpellCheckAppStream(
|
| + IFX_Edit* pEdit,
|
| + IPWL_SpellCheck* pSpellCheck,
|
| + const CPDF_Point& ptOffset,
|
| + const CPVT_WordRange* pRange = NULL);
|
| + static CFX_ByteString GetTextAppStream(const CPDF_Rect& rcBBox,
|
| + IFX_Edit_FontMap* pFontMap,
|
| + const CFX_WideString& sText,
|
| + int32_t nAlignmentH,
|
| + int32_t nAlignmentV,
|
| + FX_FLOAT fFontSize,
|
| + FX_BOOL bMultiLine,
|
| + FX_BOOL bAutoReturn,
|
| + const CPWL_Color& crText);
|
| + static CFX_ByteString GetDropButtonAppStream(const CPDF_Rect& rcBBox);
|
| +
|
| + static void DrawFillRect(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device,
|
| + const CPDF_Rect& rect,
|
| + const CPWL_Color& color,
|
| + int32_t nTransparancy);
|
| + static void DrawFillRect(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device,
|
| + const CPDF_Rect& rect,
|
| + const FX_COLORREF& color);
|
| + static void DrawStrokeRect(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device,
|
| + const CPDF_Rect& rect,
|
| + const FX_COLORREF& color,
|
| + FX_FLOAT fWidth);
|
| + static void DrawStrokeLine(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device,
|
| + const CPDF_Point& ptMoveTo,
|
| + const CPDF_Point& ptLineTo,
|
| + const FX_COLORREF& color,
|
| + FX_FLOAT fWidth);
|
| + static void DrawBorder(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device,
|
| + const CPDF_Rect& rect,
|
| + FX_FLOAT fWidth,
|
| + const CPWL_Color& color,
|
| + const CPWL_Color& crLeftTop,
|
| + const CPWL_Color& crRightBottom,
|
| + int32_t nStyle,
|
| + const CPWL_Dash& dash,
|
| + int32_t nTransparancy);
|
| + static void DrawFillArea(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device,
|
| + const CPDF_Point* pPts,
|
| + int32_t nCount,
|
| + const FX_COLORREF& color);
|
| + static void DrawShadow(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device,
|
| + FX_BOOL bVertical,
|
| + FX_BOOL bHorizontal,
|
| + CPDF_Rect rect,
|
| + int32_t nTransparancy,
|
| + int32_t nStartGray,
|
| + int32_t nEndGray);
|
| + static void DrawEditSpellCheck(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device,
|
| + IFX_Edit* pEdit,
|
| + const CPDF_Rect& rcClip,
|
| + const CPDF_Point& ptOffset,
|
| + const CPVT_WordRange* pRange,
|
| + IPWL_SpellCheck* pSpellCheck);
|
| +
|
| + public:
|
| + static void ConvertCMYK2RGB(FX_FLOAT dC,
|
| + FX_FLOAT dM,
|
| + FX_FLOAT dY,
|
| + FX_FLOAT dK,
|
| + FX_FLOAT& dR,
|
| + FX_FLOAT& dG,
|
| + FX_FLOAT& dB);
|
| + static void ConvertRGB2CMYK(FX_FLOAT dR,
|
| + FX_FLOAT dG,
|
| + FX_FLOAT dB,
|
| + FX_FLOAT& dC,
|
| + FX_FLOAT& dM,
|
| + FX_FLOAT& dY,
|
| + FX_FLOAT& dK);
|
| +
|
| + static void ConvertRGB2GRAY(FX_FLOAT dR,
|
| + FX_FLOAT dG,
|
| + FX_FLOAT dB,
|
| + FX_FLOAT& dGray);
|
| + static void ConvertGRAY2RGB(FX_FLOAT dGray,
|
| + FX_FLOAT& dR,
|
| + FX_FLOAT& dG,
|
| + FX_FLOAT& dB);
|
| +
|
| + static void ConvertCMYK2GRAY(FX_FLOAT dC,
|
| + FX_FLOAT dM,
|
| + FX_FLOAT dY,
|
| + FX_FLOAT dK,
|
| + FX_FLOAT& dGray);
|
| + static void ConvertGRAY2CMYK(FX_FLOAT dGray,
|
| + FX_FLOAT& dC,
|
| + FX_FLOAT& dM,
|
| + FX_FLOAT& dY,
|
| + FX_FLOAT& dK);
|
| +
|
| + static void PWLColorToARGB(const CPWL_Color& color,
|
| + int32_t& alpha,
|
| + FX_FLOAT& red,
|
| + FX_FLOAT& green,
|
| + FX_FLOAT& blue);
|
| +
|
| + public:
|
| + static CFX_ByteString GetIconAppStream(
|
| + int32_t nType,
|
| + const CPDF_Rect& rect,
|
| + const CPWL_Color& crFill,
|
| + const CPWL_Color& crStroke = PWL_DEFAULT_BLACKCOLOR);
|
| + static void DrawIconAppStream(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device,
|
| + int32_t nType,
|
| + const CPDF_Rect& rect,
|
| + const CPWL_Color& crFill,
|
| + const CPWL_Color& crStroke,
|
| + const int32_t nTransparancy);
|
| +
|
| + private:
|
| + static CFX_ByteString GetAppStreamFromArray(const CPWL_PathData* pPathData,
|
| + int32_t nCount);
|
| + static void GetPathDataFromArray(CFX_PathData& path,
|
| + const CPWL_PathData* pPathData,
|
| + int32_t nCount);
|
| +
|
| + static CFX_ByteString GetAppStream_Check(const CPDF_Rect& rcBBox,
|
| + const CPWL_Color& crText);
|
| + static CFX_ByteString GetAppStream_Circle(const CPDF_Rect& rcBBox,
|
| + const CPWL_Color& crText);
|
| + static CFX_ByteString GetAppStream_Cross(const CPDF_Rect& rcBBox,
|
| + const CPWL_Color& crText);
|
| + static CFX_ByteString GetAppStream_Diamond(const CPDF_Rect& rcBBox,
|
| + const CPWL_Color& crText);
|
| + static CFX_ByteString GetAppStream_Square(const CPDF_Rect& rcBBox,
|
| + const CPWL_Color& crText);
|
| + static CFX_ByteString GetAppStream_Star(const CPDF_Rect& rcBBox,
|
| + const CPWL_Color& crText);
|
| +
|
| + static CFX_ByteString GetAP_Check(const CPDF_Rect& crBBox);
|
| + static CFX_ByteString GetAP_Circle(const CPDF_Rect& crBBox);
|
| + static CFX_ByteString GetAP_Cross(const CPDF_Rect& crBBox);
|
| + static CFX_ByteString GetAP_Diamond(const CPDF_Rect& crBBox);
|
| + static CFX_ByteString GetAP_Square(const CPDF_Rect& crBBox);
|
| + static CFX_ByteString GetAP_Star(const CPDF_Rect& crBBox);
|
| + static CFX_ByteString GetAP_HalfCircle(const CPDF_Rect& crBBox,
|
| + FX_FLOAT fRotate);
|
| +
|
| + static void GetGraphics_Checkmark(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_Circle(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_Comment(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_Cross(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_Help(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_InsertText(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_Key(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_NewParagraph(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_TextNote(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_Paragraph(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_RightArrow(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_RightPointer(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_Star(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_UpArrow(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_UpLeftArrow(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_Graph(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_Paperclip(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_Attachment(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_Tag(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| + static void GetGraphics_Foxit(CFX_ByteString& sPathData,
|
| + CFX_PathData& path,
|
| + const CPDF_Rect& crBBox,
|
| + const PWL_PATH_TYPE type);
|
| };
|
|
|
| #endif // FPDFSDK_INCLUDE_PDFWINDOW_PWL_UTILS_H_
|
|
|