// Copyright 2014 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #ifndef XFA_FDE_IFDE_TXTEDTENGINE_H_ #define XFA_FDE_IFDE_TXTEDTENGINE_H_ #include "core/fxge/fx_dib.h" #include "xfa/fgas/font/cfgas_fontmgr.h" class CFDE_TxtEdtEngine; class CFWL_Edit; #define FDE_TEXTEDITMODE_MultiLines (1L << 0) #define FDE_TEXTEDITMODE_AutoLineWrap (1L << 1) #define FDE_TEXTEDITMODE_ReadOnly (1L << 2) #define FDE_TEXTEDITMODE_LimitArea_Vert (1L << 3) #define FDE_TEXTEDITMODE_LimitArea_Horz (1L << 4) #define FDE_TEXTEDITMODE_Validate (1L << 8) #define FDE_TEXTEDITMODE_Password (1L << 9) #define FDE_TEXTEDITALIGN_Left 0 #define FDE_TEXTEDITALIGN_Center (1L << 0) #define FDE_TEXTEDITALIGN_Right (2L << 0) #define FDE_TEXTEDITALIGN_Normal (1L << 3) #define FDE_TEXTEDITALIGN_Justified (1L << 4) #define FDE_TEXTEDITLAYOUT_CombText (1L << 4) #define FDE_TEXTEDITLAYOUT_LastLineHeight (1L << 8) enum FDE_TXTEDTMOVECARET { MC_MoveNone = 0, MC_Left, MC_Right, MC_Up, MC_Down, MC_WordBackward, MC_WordForward, MC_LineStart, MC_LineEnd, MC_ParagStart, MC_ParagEnd, MC_PageUp, MC_PageDown, MC_Home, MC_End, }; enum FDE_TXTEDT_MODIFY_RET { FDE_TXTEDT_MODIFY_RET_F_Tab = -6, FDE_TXTEDT_MODIFY_RET_F_Locked = -5, FDE_TXTEDT_MODIFY_RET_F_Invalidate = -4, FDE_TXTEDT_MODIFY_RET_F_Boundary = -3, FDE_TXTEDT_MODIFY_RET_F_Full = -2, FDE_TXTEDT_MODIFY_RET_F_Normal = -1, FDE_TXTEDT_MODIFY_RET_S_Normal = 0, FDE_TXTEDT_MODIFY_RET_S_Full = 1, FDE_TXTEDT_MODIFY_RET_S_Part = 2, FDE_TXTEDT_MODIFY_RET_S_Empty = 3, FDE_TXTEDT_MODIFY_RET_T_Tab = 4, }; enum FDE_TXTEDIT_LINEEND { FDE_TXTEDIT_LINEEND_Auto, FDE_TXTEDIT_LINEEND_CRLF, FDE_TXTEDIT_LINEEND_CR, FDE_TXTEDIT_LINEEND_LF, }; struct FDE_TXTEDTPARAMS { FDE_TXTEDTPARAMS(); ~FDE_TXTEDTPARAMS(); float fPlateWidth; float fPlateHeight; int32_t nLineCount; uint32_t dwLayoutStyles; uint32_t dwAlignment; uint32_t dwMode; CFX_RetainPtr pFont; float fFontSize; FX_ARGB dwFontColor; float fLineSpace; float fTabWidth; bool bTabEquidistant; wchar_t wDefChar; wchar_t wLineBreakChar; int32_t nLineEnd; int32_t nHorzScale; float fCharSpace; CFWL_Edit* pEventSink; }; enum FDE_TXTEDT_TEXTCHANGE_TYPE { FDE_TXTEDT_TEXTCHANGE_TYPE_Insert = 0, FDE_TXTEDT_TEXTCHANGE_TYPE_Delete, FDE_TXTEDT_TEXTCHANGE_TYPE_Replace, }; struct FDE_TXTEDT_TEXTCHANGE_INFO { FDE_TXTEDT_TEXTCHANGE_INFO(); ~FDE_TXTEDT_TEXTCHANGE_INFO(); int32_t nChangeType; CFX_WideString wsInsert; CFX_WideString wsDelete; CFX_WideString wsPrevText; }; #endif // XFA_FDE_IFDE_TXTEDTENGINE_H_