| Index: core/include/fxcrt/fx_ucd.h
|
| diff --git a/core/include/fxcrt/fx_ucd.h b/core/include/fxcrt/fx_ucd.h
|
| index 62c2dfdf6702bbe2ed00e699b7ce1d37fffc73f8..852a893843ae001492c21247bbe19c7e1f863a2a 100644
|
| --- a/core/include/fxcrt/fx_ucd.h
|
| +++ b/core/include/fxcrt/fx_ucd.h
|
| @@ -7,8 +7,55 @@
|
| #ifndef CORE_INCLUDE_FXCRT_FX_UCD_H_
|
| #define CORE_INCLUDE_FXCRT_FX_UCD_H_
|
|
|
| +#ifndef PDF_ENABLE_XFA
|
| #include "fx_system.h"
|
| +#else
|
| +#include "fx_basic.h"
|
| +#endif
|
|
|
| +#ifdef PDF_ENABLE_XFA
|
| +enum FX_CHARBREAKPROP {
|
| + FX_CBP_OP = 0,
|
| + FX_CBP_CL = 1,
|
| + FX_CBP_QU = 2,
|
| + FX_CBP_GL = 3,
|
| + FX_CBP_NS = 4,
|
| + FX_CBP_EX = 5,
|
| + FX_CBP_SY = 6,
|
| + FX_CBP_IS = 7,
|
| + FX_CBP_PR = 8,
|
| + FX_CBP_PO = 9,
|
| + FX_CBP_NU = 10,
|
| + FX_CBP_AL = 11,
|
| + FX_CBP_ID = 12,
|
| + FX_CBP_IN = 13,
|
| + FX_CBP_HY = 14,
|
| + FX_CBP_BA = 15,
|
| + FX_CBP_BB = 16,
|
| + FX_CBP_B2 = 17,
|
| + FX_CBP_ZW = 18,
|
| + FX_CBP_CM = 19,
|
| + FX_CBP_WJ = 20,
|
| + FX_CBP_H2 = 21,
|
| + FX_CBP_H3 = 22,
|
| + FX_CBP_JL = 23,
|
| + FX_CBP_JV = 24,
|
| + FX_CBP_JT = 25,
|
| +
|
| + FX_CBP_BK = 26,
|
| + FX_CBP_CR = 27,
|
| + FX_CBP_LF = 28,
|
| + FX_CBP_NL = 29,
|
| + FX_CBP_SA = 30,
|
| + FX_CBP_SG = 31,
|
| + FX_CBP_CB = 32,
|
| + FX_CBP_XX = 33,
|
| + FX_CBP_AI = 34,
|
| + FX_CBP_SP = 35,
|
| + FX_CBP_TB = 37,
|
| + FX_CBP_NONE = 36,
|
| +};
|
| +#endif
|
| #define FX_BIDICLASSBITS 6
|
| #define FX_BIDICLASSBITSMASK (31 << FX_BIDICLASSBITS)
|
| enum FX_BIDICLASS {
|
| @@ -43,7 +90,110 @@ extern const size_t kFXTextLayoutVerticalMirrorSize;
|
| extern const FX_WCHAR kFXTextLayoutBidiMirror[];
|
| extern const size_t kFXTextLayoutBidiMirrorSize;
|
|
|
| +#ifdef PDF_ENABLE_XFA
|
| +#define FX_CHARTYPEBITS 11
|
| +#define FX_CHARTYPEBITSMASK (15 << FX_CHARTYPEBITS)
|
| +enum FX_CHARTYPE {
|
| + FX_CHARTYPE_Unknown = 0,
|
| + FX_CHARTYPE_Tab = (1 << FX_CHARTYPEBITS),
|
| + FX_CHARTYPE_Space = (2 << FX_CHARTYPEBITS),
|
| + FX_CHARTYPE_Control = (3 << FX_CHARTYPEBITS),
|
| + FX_CHARTYPE_Combination = (4 << FX_CHARTYPEBITS),
|
| + FX_CHARTYPE_Numeric = (5 << FX_CHARTYPEBITS),
|
| + FX_CHARTYPE_Normal = (6 << FX_CHARTYPEBITS),
|
| + FX_CHARTYPE_ArabicAlef = (7 << FX_CHARTYPEBITS),
|
| + FX_CHARTYPE_ArabicSpecial = (8 << FX_CHARTYPEBITS),
|
| + FX_CHARTYPE_ArabicDistortion = (9 << FX_CHARTYPEBITS),
|
| + FX_CHARTYPE_ArabicNormal = (10 << FX_CHARTYPEBITS),
|
| + FX_CHARTYPE_ArabicForm = (11 << FX_CHARTYPEBITS),
|
| + FX_CHARTYPE_Arabic = (12 << FX_CHARTYPEBITS),
|
| +};
|
| +
|
| +#endif
|
| FX_DWORD FX_GetUnicodeProperties(FX_WCHAR wch);
|
| +#ifdef PDF_ENABLE_XFA
|
| +FX_BOOL FX_IsCtrlCode(FX_WCHAR ch);
|
| +#endif
|
| FX_WCHAR FX_GetMirrorChar(FX_WCHAR wch, FX_BOOL bRTL, FX_BOOL bVertical);
|
| +#ifdef PDF_ENABLE_XFA
|
| +FX_WCHAR FX_GetMirrorChar(FX_WCHAR wch,
|
| + FX_DWORD dwProps,
|
| + FX_BOOL bRTL,
|
| + FX_BOOL bVertical);
|
| +class CFX_Char {
|
| + public:
|
| + CFX_Char()
|
| + : m_wCharCode(0),
|
| + m_nBreakType(0),
|
| + m_nRotation(0),
|
| + m_dwCharProps(0),
|
| + m_dwCharStyles(0),
|
| + m_iCharWidth(0),
|
| + m_iHorizontalScale(100),
|
| + m_iVertialScale(100) {}
|
| + CFX_Char(FX_WORD wCharCode, FX_DWORD dwCharProps)
|
| + : m_wCharCode(wCharCode),
|
| + m_nBreakType(0),
|
| + m_nRotation(0),
|
| + m_dwCharProps(dwCharProps),
|
| + m_dwCharStyles(0),
|
| + m_iCharWidth(0),
|
| + m_iHorizontalScale(100),
|
| + m_iVertialScale(100) {}
|
| + FX_DWORD GetCharType() const { return m_dwCharProps & FX_CHARTYPEBITSMASK; }
|
| + FX_WORD m_wCharCode;
|
| + uint8_t m_nBreakType;
|
| + int8_t m_nRotation;
|
| + FX_DWORD m_dwCharProps;
|
| + FX_DWORD m_dwCharStyles;
|
| + int32_t m_iCharWidth;
|
| + int32_t m_iHorizontalScale;
|
| + int32_t m_iVertialScale;
|
| +};
|
| +typedef CFX_ArrayTemplate<CFX_Char> CFX_CharArray;
|
| +class CFX_TxtChar : public CFX_Char {
|
| + public:
|
| + CFX_TxtChar()
|
| + : CFX_Char(),
|
| + m_dwStatus(0),
|
| + m_iBidiClass(0),
|
| + m_iBidiLevel(0),
|
| + m_iBidiPos(0),
|
| + m_iBidiOrder(0),
|
| + m_pUserData(NULL) {}
|
| + FX_DWORD m_dwStatus;
|
| + int16_t m_iBidiClass;
|
| + int16_t m_iBidiLevel;
|
| + int16_t m_iBidiPos;
|
| + int16_t m_iBidiOrder;
|
| + void* m_pUserData;
|
| +};
|
| +typedef CFX_ArrayTemplate<CFX_TxtChar> CFX_TxtCharArray;
|
| +class CFX_RTFChar : public CFX_Char {
|
| + public:
|
| + CFX_RTFChar()
|
| + : CFX_Char(),
|
| + m_dwStatus(0),
|
| + m_iFontSize(0),
|
| + m_iFontHeight(0),
|
| + m_iBidiClass(0),
|
| + m_iBidiLevel(0),
|
| + m_iBidiPos(0),
|
| + m_dwLayoutStyles(0),
|
| + m_dwIdentity(0),
|
| + m_pUserData(NULL) {}
|
| + FX_DWORD m_dwStatus;
|
| + int32_t m_iFontSize;
|
| + int32_t m_iFontHeight;
|
| + int16_t m_iBidiClass;
|
| + int16_t m_iBidiLevel;
|
| + int16_t m_iBidiPos;
|
| + int16_t m_iBidiOrder;
|
| + FX_DWORD m_dwLayoutStyles;
|
| + FX_DWORD m_dwIdentity;
|
| + IFX_Unknown* m_pUserData;
|
| +};
|
| +typedef CFX_ArrayTemplate<CFX_RTFChar> CFX_RTFCharArray;
|
| +#endif
|
|
|
| #endif // CORE_INCLUDE_FXCRT_FX_UCD_H_
|
|
|