1 // Copyright 2014 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #ifndef XFA_FDE_IFDE_TXTEDTENGINE_H_ 8 #define XFA_FDE_IFDE_TXTEDTENGINE_H_ 9 10 #include "core/fxge/include/fx_dib.h" 11 #include "xfa/fgas/font/fgas_font.h" 12 13 class CFDE_TxtEdtEngine; 14 class CFWL_EditImp; 15 class IFDE_TxtEdtPage; 16 17 #define FDE_TEXTEDITMODE_MultiLines (1L << 0) 18 #define FDE_TEXTEDITMODE_AutoLineWrap (1L << 1) 19 #define FDE_TEXTEDITMODE_ReadOnly (1L << 2) 20 #define FDE_TEXTEDITMODE_LimitArea_Vert (1L << 3) 21 #define FDE_TEXTEDITMODE_LimitArea_Horz (1L << 4) 22 #define FDE_TEXTEDITMODE_NoRedoUndo (1L << 5) 23 #define FDE_TEXTEDITMODE_FIELD_TAB (1L << 6) 24 #define FDE_TEXTEDITMODE_FIELD_AUTO (1L << 7) 25 #define FDE_TEXTEDITMODE_Validate (1L << 8) 26 #define FDE_TEXTEDITMODE_Password (1L << 9) 27 28 #define FDE_TEXTEDITALIGN_Left (0L << 0) 29 #define FDE_TEXTEDITALIGN_Center (1L << 0) 30 #define FDE_TEXTEDITALIGN_Right (2L << 0) 31 #define FDE_TEXTEDITALIGN_Normal (1L << 3) 32 #define FDE_TEXTEDITALIGN_Justified (1L << 4) 33 #define FDE_TEXTEDITALIGN_Distributed (1L << 5) 34 35 #define FDE_TEXTEDITLAYOUT_DocVertical (1L << 0) 36 #define FDE_TEXTEDITLAYOUT_CharVertial (1L << 1) 37 #define FDE_TEXTEDITLAYOUT_LineReserve (1L << 2) 38 #define FDE_TEXTEDITLAYOUT_RTL (1L << 3) 39 #define FDE_TEXTEDITLAYOUT_CombText (1L << 4) 40 #define FDE_TEXTEDITLAYOUT_ExpandTab (1L << 5) 41 #define FDE_TEXTEDITLAYOUT_ArabicContext (1L << 6) 42 #define FDE_TEXTEDITLAYOUT_ArabicShapes (1L << 7) 43 #define FDE_TEXTEDITLAYOUT_LastLineHeight (1L << 8) 44 45 enum FDE_TXTEDTMOVECARET { 46 MC_MoveNone = 0, 47 MC_Left, 48 MC_Right, 49 MC_Up, 50 MC_Down, 51 MC_WordBackward, 52 MC_WordForward, 53 MC_LineStart, 54 MC_LineEnd, 55 MC_ParagStart, 56 MC_ParagEnd, 57 MC_PageUp, 58 MC_PageDown, 59 MC_Home, 60 MC_End, 61 }; 62 63 enum FDE_TXTEDT_MODIFY_RET { 64 FDE_TXTEDT_MODIFY_RET_F_Tab = -6, 65 FDE_TXTEDT_MODIFY_RET_F_Locked = -5, 66 FDE_TXTEDT_MODIFY_RET_F_Invalidate = -4, 67 FDE_TXTEDT_MODIFY_RET_F_Boundary = -3, 68 FDE_TXTEDT_MODIFY_RET_F_Full = -2, 69 FDE_TXTEDT_MODIFY_RET_F_Normal = -1, 70 FDE_TXTEDT_MODIFY_RET_S_Normal = 0, 71 FDE_TXTEDT_MODIFY_RET_S_Full = 1, 72 FDE_TXTEDT_MODIFY_RET_S_Part = 2, 73 FDE_TXTEDT_MODIFY_RET_S_Empty = 3, 74 FDE_TXTEDT_MODIFY_RET_T_Tab = 4, 75 }; 76 77 enum FDE_TXTEDIT_LINEEND { 78 FDE_TXTEDIT_LINEEND_Auto, 79 FDE_TXTEDIT_LINEEND_CRLF, 80 FDE_TXTEDIT_LINEEND_CR, 81 FDE_TXTEDIT_LINEEND_LF, 82 }; 83 84 struct FDE_TXTEDTPARAMS { 85 FDE_TXTEDTPARAMS(); 86 87 FX_FLOAT fPlateWidth; 88 FX_FLOAT fPlateHeight; 89 int32_t nLineCount; 90 uint32_t dwLayoutStyles; 91 uint32_t dwAlignment; 92 uint32_t dwMode; 93 CFGAS_GEFont* pFont; 94 FX_FLOAT fFontSize; 95 FX_ARGB dwFontColor; 96 FX_FLOAT fLineSpace; 97 FX_FLOAT fTabWidth; 98 FX_BOOL bTabEquidistant; 99 FX_WCHAR wDefChar; 100 FX_WCHAR wLineBreakChar; 101 int32_t nCharRotation; 102 int32_t nLineEnd; 103 int32_t nHorzScale; 104 FX_FLOAT fCharSpace; 105 CFWL_EditImp* pEventSink; 106 }; 107 108 enum FDE_TXTEDT_TEXTCHANGE_TYPE { 109 FDE_TXTEDT_TEXTCHANGE_TYPE_Insert = 0, 110 FDE_TXTEDT_TEXTCHANGE_TYPE_Delete, 111 FDE_TXTEDT_TEXTCHANGE_TYPE_Replace, 112 }; 113 114 struct FDE_TXTEDT_TEXTCHANGE_INFO { 115 FDE_TXTEDT_TEXTCHANGE_INFO(); 116 ~FDE_TXTEDT_TEXTCHANGE_INFO(); 117 118 int32_t nChangeType; 119 CFX_WideString wsInsert; 120 CFX_WideString wsDelete; 121 CFX_WideString wsPrevText; 122 }; 123 124 #endif // XFA_FDE_IFDE_TXTEDTENGINE_H_ 125