From 9d8ec5a6e37e8d1d4d4edca9040de234e2d4728f Mon Sep 17 00:00:00 2001
From: Nico Weber <thakis@chromium.org>
Date: Tue, 4 Aug 2015 13:00:21 -0700
Subject: XFA: clang-format all pdfium code.

No behavior change.

Generated by:
  find . -name '*.cpp' -o -name '*.h' | \
  grep -E -v 'third_party|thirdparties|lpng_v163|tiff_v403' | \
  xargs ../../buildtools/mac/clang-format -i
Then manually merged https://codereview.chromium.org/1269223002/

See thread "tabs vs spaces" on pdfium@googlegroups.com for discussion.

BUG=none
---
 fpdfsdk/src/formfiller/FFL_CBA_Fontmap.cpp  |  503 ++-
 fpdfsdk/src/formfiller/FFL_CheckBox.cpp     |  213 +-
 fpdfsdk/src/formfiller/FFL_ComboBox.cpp     |  563 ++-
 fpdfsdk/src/formfiller/FFL_FormFiller.cpp   | 1152 +++--
 fpdfsdk/src/formfiller/FFL_IFormFiller.cpp  | 1937 ++++----
 fpdfsdk/src/formfiller/FFL_ListBox.cpp      |  431 +-
 fpdfsdk/src/formfiller/FFL_Notify.cpp       |  230 +-
 fpdfsdk/src/formfiller/FFL_PushButton.cpp   |   45 +-
 fpdfsdk/src/formfiller/FFL_RadioButton.cpp  |  205 +-
 fpdfsdk/src/formfiller/FFL_TextField.cpp    |  509 +--
 fpdfsdk/src/formfiller/FFL_Utils.cpp        |  173 +-
 fpdfsdk/src/fpdf_dataavail.cpp              |  246 +-
 fpdfsdk/src/fpdf_dataavail_embeddertest.cpp |    3 +-
 fpdfsdk/src/fpdf_ext.cpp                    |  369 +-
 fpdfsdk/src/fpdf_flatten.cpp                |  983 ++---
 fpdfsdk/src/fpdf_progressive.cpp            |  170 +-
 fpdfsdk/src/fpdf_searchex.cpp               |   12 +-
 fpdfsdk/src/fpdf_sysfontinfo.cpp            |  286 +-
 fpdfsdk/src/fpdf_transformpage.cpp          |  614 +--
 fpdfsdk/src/fpdfdoc.cpp                     |  494 +--
 fpdfsdk/src/fpdfdoc_embeddertest.cpp        |    3 +-
 fpdfsdk/src/fpdfeditimg.cpp                 |  121 +-
 fpdfsdk/src/fpdfeditpage.cpp                |  594 +--
 fpdfsdk/src/fpdfformfill.cpp                | 1143 ++---
 fpdfsdk/src/fpdfformfill_embeddertest.cpp   |    4 +-
 fpdfsdk/src/fpdfppo.cpp                     |  768 ++--
 fpdfsdk/src/fpdfsave.cpp                    |  577 ++-
 fpdfsdk/src/fpdftext.cpp                    |  457 +-
 fpdfsdk/src/fpdftext_embeddertest.cpp       |   71 +-
 fpdfsdk/src/fpdfview.cpp                    | 1677 +++----
 fpdfsdk/src/fpdfview_embeddertest.cpp       |   15 +-
 fpdfsdk/src/fpdfxfa/fpdfxfa_app.cpp         |  770 ++--
 fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp         | 2506 +++++------
 fpdfsdk/src/fpdfxfa/fpdfxfa_page.cpp        |  429 +-
 fpdfsdk/src/fpdfxfa/fpdfxfa_util.cpp        |   91 +-
 fpdfsdk/src/fsdk_actionhandler.cpp          | 1450 +++---
 fpdfsdk/src/fsdk_annothandler.cpp           | 2101 +++++----
 fpdfsdk/src/fsdk_baseannot.cpp              | 1618 ++++---
 fpdfsdk/src/fsdk_baseform.cpp               | 5732 ++++++++++++------------
 fpdfsdk/src/fsdk_mgr.cpp                    | 2107 +++++----
 fpdfsdk/src/fsdk_rendercontext.cpp          |   53 +-
 fpdfsdk/src/fxedit/fxet_ap.cpp              |  392 +-
 fpdfsdk/src/fxedit/fxet_edit.cpp            | 5308 ++++++++++------------
 fpdfsdk/src/fxedit/fxet_list.cpp            | 1511 +++----
 fpdfsdk/src/fxedit/fxet_module.cpp          |   37 +-
 fpdfsdk/src/fxedit/fxet_pageobjs.cpp        | 1243 +++---
 fpdfsdk/src/javascript/Consts.cpp           |  373 +-
 fpdfsdk/src/javascript/Document.cpp         | 2991 ++++++-------
 fpdfsdk/src/javascript/Field.cpp            | 6362 +++++++++++++--------------
 fpdfsdk/src/javascript/Icon.cpp             |   51 +-
 fpdfsdk/src/javascript/JS_Context.cpp       |  476 +-
 fpdfsdk/src/javascript/JS_EventHandler.cpp  |  927 ++--
 fpdfsdk/src/javascript/JS_GlobalData.cpp    |  840 ++--
 fpdfsdk/src/javascript/JS_Object.cpp        |  171 +-
 fpdfsdk/src/javascript/JS_Runtime.cpp       |  606 ++-
 fpdfsdk/src/javascript/JS_Value.cpp         |  784 ++--
 fpdfsdk/src/javascript/PublicMethods.cpp    | 3844 ++++++++--------
 fpdfsdk/src/javascript/app.cpp              | 1555 ++++---
 fpdfsdk/src/javascript/color.cpp            |  367 +-
 fpdfsdk/src/javascript/console.cpp          |   60 +-
 fpdfsdk/src/javascript/event.cpp            |  590 +--
 fpdfsdk/src/javascript/global.cpp           |  858 ++--
 fpdfsdk/src/javascript/report.cpp           |   26 +-
 fpdfsdk/src/javascript/resource.cpp         |   64 +-
 fpdfsdk/src/javascript/util.cpp             |  960 ++--
 fpdfsdk/src/jsapi/fxjs_v8.cpp               | 2039 +++++----
 fpdfsdk/src/pdfwindow/PWL_Button.cpp        |   46 +-
 fpdfsdk/src/pdfwindow/PWL_Caret.cpp         |  292 +-
 fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp      |  979 ++---
 fpdfsdk/src/pdfwindow/PWL_Edit.cpp          | 2170 +++++----
 fpdfsdk/src/pdfwindow/PWL_EditCtrl.cpp      |  985 ++---
 fpdfsdk/src/pdfwindow/PWL_FontMap.cpp       |  835 ++--
 fpdfsdk/src/pdfwindow/PWL_Icon.cpp          |  370 +-
 fpdfsdk/src/pdfwindow/PWL_IconList.cpp      |  893 ++--
 fpdfsdk/src/pdfwindow/PWL_Label.cpp         |  231 +-
 fpdfsdk/src/pdfwindow/PWL_ListBox.cpp       |  922 ++--
 fpdfsdk/src/pdfwindow/PWL_ListCtrl.cpp      |  305 +-
 fpdfsdk/src/pdfwindow/PWL_Note.cpp          | 2869 ++++++------
 fpdfsdk/src/pdfwindow/PWL_ScrollBar.cpp     | 2158 +++++----
 fpdfsdk/src/pdfwindow/PWL_Signature.cpp     |  274 +-
 fpdfsdk/src/pdfwindow/PWL_SpecialButton.cpp |   99 +-
 fpdfsdk/src/pdfwindow/PWL_Utils.cpp         | 6294 ++++++++++++++------------
 fpdfsdk/src/pdfwindow/PWL_Wnd.cpp           | 1674 +++----
 fpdfsdk/src/resource.h                      |    8 +-
 84 files changed, 41659 insertions(+), 43605 deletions(-)

(limited to 'fpdfsdk/src')

diff --git a/fpdfsdk/src/formfiller/FFL_CBA_Fontmap.cpp b/fpdfsdk/src/formfiller/FFL_CBA_Fontmap.cpp
index 53efe9fe3a..cb6d51939e 100644
--- a/fpdfsdk/src/formfiller/FFL_CBA_Fontmap.cpp
+++ b/fpdfsdk/src/formfiller/FFL_CBA_Fontmap.cpp
@@ -7,293 +7,280 @@
 #include "../../include/formfiller/FormFiller.h"
 #include "../../include/formfiller/FFL_CBA_Fontmap.h"
 
-CBA_FontMap::CBA_FontMap(CPDFSDK_Annot* pAnnot, IFX_SystemHandler* pSystemHandler) :
-	CPWL_FontMap(pSystemHandler),
-	m_pDocument(NULL),
-	m_pAnnotDict(NULL),
-	m_pDefaultFont(NULL),
-	m_sAPType("N")
-{
-	ASSERT(pAnnot != NULL);
-
-	CPDF_Page* pPage = pAnnot->GetPDFPage();
-
-	m_pDocument = pPage->m_pDocument;
-	m_pAnnotDict = pAnnot->GetPDFAnnot()->GetAnnotDict();
+CBA_FontMap::CBA_FontMap(CPDFSDK_Annot* pAnnot,
+                         IFX_SystemHandler* pSystemHandler)
+    : CPWL_FontMap(pSystemHandler),
+      m_pDocument(NULL),
+      m_pAnnotDict(NULL),
+      m_pDefaultFont(NULL),
+      m_sAPType("N") {
+  ASSERT(pAnnot != NULL);
+
+  CPDF_Page* pPage = pAnnot->GetPDFPage();
+
+  m_pDocument = pPage->m_pDocument;
+  m_pAnnotDict = pAnnot->GetPDFAnnot()->GetAnnotDict();
 }
 
-CBA_FontMap::CBA_FontMap(CPDF_Document* pDocument, CPDF_Dictionary* pAnnotDict,
-						 IFX_SystemHandler* pSystemHandler) :
-	CPWL_FontMap(pSystemHandler),
-	m_pDocument(pDocument),
-	m_pAnnotDict(pAnnotDict),
-	m_pDefaultFont(NULL),
-	m_sAPType("N")
-{
+CBA_FontMap::CBA_FontMap(CPDF_Document* pDocument,
+                         CPDF_Dictionary* pAnnotDict,
+                         IFX_SystemHandler* pSystemHandler)
+    : CPWL_FontMap(pSystemHandler),
+      m_pDocument(pDocument),
+      m_pAnnotDict(pAnnotDict),
+      m_pDefaultFont(NULL),
+      m_sAPType("N") {}
+
+CBA_FontMap::~CBA_FontMap() {}
+
+void CBA_FontMap::Reset() {
+  Empty();
+  m_pDefaultFont = NULL;
+  m_sDefaultFontName = "";
 }
 
-CBA_FontMap::~CBA_FontMap()
-{
+void CBA_FontMap::Initial(const FX_CHAR* fontname) {
+  int32_t nCharset = DEFAULT_CHARSET;
+
+  if (!m_pDefaultFont) {
+    m_pDefaultFont = GetAnnotDefaultFont(m_sDefaultFontName);
+    if (m_pDefaultFont) {
+      if (const CFX_SubstFont* pSubstFont = m_pDefaultFont->GetSubstFont())
+        nCharset = pSubstFont->m_Charset;
+      else {
+        if (m_sDefaultFontName == "Wingdings" ||
+            m_sDefaultFontName == "Wingdings2" ||
+            m_sDefaultFontName == "Wingdings3" ||
+            m_sDefaultFontName == "Webdings")
+          nCharset = SYMBOL_CHARSET;
+        else
+          nCharset = ANSI_CHARSET;
+      }
+      AddFontData(m_pDefaultFont, m_sDefaultFontName, nCharset);
+      AddFontToAnnotDict(m_pDefaultFont, m_sDefaultFontName);
+    }
+  }
+
+  if (nCharset != ANSI_CHARSET)
+    CPWL_FontMap::Initial(fontname);
 }
 
-void CBA_FontMap::Reset()
-{
-	Empty();
-	m_pDefaultFont = NULL;
-	m_sDefaultFontName = "";
-}
-
-void CBA_FontMap::Initial(const FX_CHAR* fontname)
-{
-	int32_t nCharset = DEFAULT_CHARSET;
-
-	if (!m_pDefaultFont)
-	{
-		m_pDefaultFont = GetAnnotDefaultFont(m_sDefaultFontName);
-		if (m_pDefaultFont)
-		{
-			if (const CFX_SubstFont* pSubstFont = m_pDefaultFont->GetSubstFont())
-				nCharset = pSubstFont->m_Charset;
-			else
-			{
-				if (m_sDefaultFontName == "Wingdings" || m_sDefaultFontName == "Wingdings2" ||
-					m_sDefaultFontName == "Wingdings3" || m_sDefaultFontName == "Webdings")
-						nCharset = SYMBOL_CHARSET;
-				else
-					nCharset = ANSI_CHARSET;
-			}
-			AddFontData(m_pDefaultFont, m_sDefaultFontName, nCharset);
-			AddFontToAnnotDict(m_pDefaultFont, m_sDefaultFontName);
-		}
-	}
-
-	if (nCharset != ANSI_CHARSET)
-		CPWL_FontMap::Initial(fontname);
-}
+void CBA_FontMap::SetDefaultFont(CPDF_Font* pFont,
+                                 const CFX_ByteString& sFontName) {
+  ASSERT(pFont != NULL);
 
-void CBA_FontMap::SetDefaultFont(CPDF_Font * pFont, const CFX_ByteString & sFontName)
-{
-	ASSERT(pFont != NULL);
+  if (m_pDefaultFont)
+    return;
 
-	if (m_pDefaultFont) return;
+  m_pDefaultFont = pFont;
+  m_sDefaultFontName = sFontName;
 
-	m_pDefaultFont = pFont;
-	m_sDefaultFontName = sFontName;
+  //	if (m_sDefaultFontName.IsEmpty())
+  //		m_sDefaultFontName = pFont->GetFontTypeName();
 
-//	if (m_sDefaultFontName.IsEmpty())
-//		m_sDefaultFontName = pFont->GetFontTypeName();
-
-	int32_t nCharset = DEFAULT_CHARSET;
-	if (const CFX_SubstFont* pSubstFont = m_pDefaultFont->GetSubstFont())
-		nCharset = pSubstFont->m_Charset;
-	AddFontData(m_pDefaultFont, m_sDefaultFontName, nCharset);
+  int32_t nCharset = DEFAULT_CHARSET;
+  if (const CFX_SubstFont* pSubstFont = m_pDefaultFont->GetSubstFont())
+    nCharset = pSubstFont->m_Charset;
+  AddFontData(m_pDefaultFont, m_sDefaultFontName, nCharset);
 }
 
-CPDF_Font* CBA_FontMap::FindFontSameCharset(CFX_ByteString& sFontAlias, int32_t nCharset)
-{
-	ASSERT(m_pAnnotDict != NULL);
+CPDF_Font* CBA_FontMap::FindFontSameCharset(CFX_ByteString& sFontAlias,
+                                            int32_t nCharset) {
+  ASSERT(m_pAnnotDict != NULL);
 
-	if (m_pAnnotDict->GetString("Subtype") == "Widget")
-	{
-		CPDF_Document* pDocument = GetDocument();
-		ASSERT(pDocument != NULL);
+  if (m_pAnnotDict->GetString("Subtype") == "Widget") {
+    CPDF_Document* pDocument = GetDocument();
+    ASSERT(pDocument != NULL);
 
-		CPDF_Dictionary * pRootDict = pDocument->GetRoot();
-		if (!pRootDict) return NULL;
+    CPDF_Dictionary* pRootDict = pDocument->GetRoot();
+    if (!pRootDict)
+      return NULL;
 
-		CPDF_Dictionary* pAcroFormDict = pRootDict->GetDict("AcroForm");
-		if (!pAcroFormDict) return NULL;
+    CPDF_Dictionary* pAcroFormDict = pRootDict->GetDict("AcroForm");
+    if (!pAcroFormDict)
+      return NULL;
 
-		CPDF_Dictionary * pDRDict = pAcroFormDict->GetDict("DR");
-		if (!pDRDict) return NULL;
+    CPDF_Dictionary* pDRDict = pAcroFormDict->GetDict("DR");
+    if (!pDRDict)
+      return NULL;
 
-		return FindResFontSameCharset(pDRDict, sFontAlias, nCharset);
-	}
+    return FindResFontSameCharset(pDRDict, sFontAlias, nCharset);
+  }
 
-	return NULL;
+  return NULL;
 }
 
-CPDF_Document* CBA_FontMap::GetDocument()
-{
-	return m_pDocument;
+CPDF_Document* CBA_FontMap::GetDocument() {
+  return m_pDocument;
 }
 
-CPDF_Font* CBA_FontMap::FindResFontSameCharset(CPDF_Dictionary* pResDict, CFX_ByteString& sFontAlias,
-													int32_t nCharset)
-{
-	if (!pResDict) return NULL;
-
-	CPDF_Document* pDocument = GetDocument();
-	ASSERT(pDocument != NULL);
-
-	CPDF_Dictionary* pFonts = pResDict->GetDict("Font");
-	if (pFonts == NULL) return NULL;
-
-	CPDF_Font* pFind = NULL;
-
-	FX_POSITION pos = pFonts->GetStartPos();
-	while (pos)
-	{
-		CPDF_Object* pObj = NULL;
-		CFX_ByteString csKey;
-		pObj = pFonts->GetNextElement(pos, csKey);
-		if (pObj == NULL) continue;
-
-		CPDF_Object* pDirect = pObj->GetDirect();
-		if (pDirect == NULL || pDirect->GetType() != PDFOBJ_DICTIONARY) continue;
-
-		CPDF_Dictionary* pElement = (CPDF_Dictionary*)pDirect;
-		if (pElement->GetString("Type") != "Font") continue;
-
-		CPDF_Font* pFont = pDocument->LoadFont(pElement);
-		if (pFont == NULL) continue;
-		const CFX_SubstFont* pSubst = pFont->GetSubstFont();
-		if (pSubst == NULL) continue;
-		if (pSubst->m_Charset == nCharset)
-		{
-			sFontAlias = csKey;
-			pFind = pFont;
-		}
-	}
-	return pFind;
+CPDF_Font* CBA_FontMap::FindResFontSameCharset(CPDF_Dictionary* pResDict,
+                                               CFX_ByteString& sFontAlias,
+                                               int32_t nCharset) {
+  if (!pResDict)
+    return NULL;
+
+  CPDF_Document* pDocument = GetDocument();
+  ASSERT(pDocument != NULL);
+
+  CPDF_Dictionary* pFonts = pResDict->GetDict("Font");
+  if (pFonts == NULL)
+    return NULL;
+
+  CPDF_Font* pFind = NULL;
+
+  FX_POSITION pos = pFonts->GetStartPos();
+  while (pos) {
+    CPDF_Object* pObj = NULL;
+    CFX_ByteString csKey;
+    pObj = pFonts->GetNextElement(pos, csKey);
+    if (pObj == NULL)
+      continue;
+
+    CPDF_Object* pDirect = pObj->GetDirect();
+    if (pDirect == NULL || pDirect->GetType() != PDFOBJ_DICTIONARY)
+      continue;
+
+    CPDF_Dictionary* pElement = (CPDF_Dictionary*)pDirect;
+    if (pElement->GetString("Type") != "Font")
+      continue;
+
+    CPDF_Font* pFont = pDocument->LoadFont(pElement);
+    if (pFont == NULL)
+      continue;
+    const CFX_SubstFont* pSubst = pFont->GetSubstFont();
+    if (pSubst == NULL)
+      continue;
+    if (pSubst->m_Charset == nCharset) {
+      sFontAlias = csKey;
+      pFind = pFont;
+    }
+  }
+  return pFind;
 }
 
-void CBA_FontMap::AddedFont(CPDF_Font* pFont, const CFX_ByteString& sFontAlias)
-{
-	AddFontToAnnotDict(pFont, sFontAlias);
+void CBA_FontMap::AddedFont(CPDF_Font* pFont,
+                            const CFX_ByteString& sFontAlias) {
+  AddFontToAnnotDict(pFont, sFontAlias);
 }
 
-void CBA_FontMap::AddFontToAnnotDict(CPDF_Font* pFont, const CFX_ByteString& sAlias)
-{
-	if (!pFont)	return;
-
-	ASSERT(m_pAnnotDict != NULL);
-	ASSERT(m_pDocument != NULL);
-
-	CPDF_Dictionary* pAPDict = m_pAnnotDict->GetDict("AP");
-
-	if (pAPDict == NULL)
-	{
-		pAPDict = FX_NEW CPDF_Dictionary;
-		m_pAnnotDict->SetAt("AP", pAPDict);
-	}
-
-	//to avoid checkbox and radiobutton
-	CPDF_Object* pObject = pAPDict->GetElement(m_sAPType);
-	if (pObject && pObject->GetType() == PDFOBJ_DICTIONARY)
-		return;
-
-	CPDF_Stream* pStream = pAPDict->GetStream(m_sAPType);
-	if (pStream == NULL)
-	{
-		pStream = new CPDF_Stream(NULL, 0, NULL);
-		int32_t objnum = m_pDocument->AddIndirectObject(pStream);
-		pAPDict->SetAtReference(m_sAPType, m_pDocument, objnum);
-	}
-
-	CPDF_Dictionary * pStreamDict = pStream->GetDict();
-
-	if (!pStreamDict)
-	{
-		pStreamDict = FX_NEW CPDF_Dictionary;
-		pStream->InitStream(NULL, 0, pStreamDict);
-	}
-
-	if (pStreamDict)
-	{
-		CPDF_Dictionary* pStreamResList = pStreamDict->GetDict("Resources");
-		if (!pStreamResList)
-		{
-			pStreamResList = FX_NEW CPDF_Dictionary();
-			pStreamDict->SetAt("Resources", pStreamResList);
-		}
-
-		if (pStreamResList)
-		{
-			CPDF_Dictionary* pStreamResFontList = pStreamResList->GetDict("Font");
-			if (!pStreamResFontList)
-			{
-				pStreamResFontList = new CPDF_Dictionary;
-				int32_t objnum = m_pDocument->AddIndirectObject(pStreamResFontList);
-				pStreamResList->SetAtReference("Font", m_pDocument, objnum);
-			}
-			if (!pStreamResFontList->KeyExist(sAlias))
-				pStreamResFontList->SetAtReference(sAlias, m_pDocument, pFont->GetFontDict());
-		}
-	}
+void CBA_FontMap::AddFontToAnnotDict(CPDF_Font* pFont,
+                                     const CFX_ByteString& sAlias) {
+  if (!pFont)
+    return;
+
+  ASSERT(m_pAnnotDict != NULL);
+  ASSERT(m_pDocument != NULL);
+
+  CPDF_Dictionary* pAPDict = m_pAnnotDict->GetDict("AP");
+
+  if (pAPDict == NULL) {
+    pAPDict = FX_NEW CPDF_Dictionary;
+    m_pAnnotDict->SetAt("AP", pAPDict);
+  }
+
+  // to avoid checkbox and radiobutton
+  CPDF_Object* pObject = pAPDict->GetElement(m_sAPType);
+  if (pObject && pObject->GetType() == PDFOBJ_DICTIONARY)
+    return;
+
+  CPDF_Stream* pStream = pAPDict->GetStream(m_sAPType);
+  if (pStream == NULL) {
+    pStream = new CPDF_Stream(NULL, 0, NULL);
+    int32_t objnum = m_pDocument->AddIndirectObject(pStream);
+    pAPDict->SetAtReference(m_sAPType, m_pDocument, objnum);
+  }
+
+  CPDF_Dictionary* pStreamDict = pStream->GetDict();
+
+  if (!pStreamDict) {
+    pStreamDict = FX_NEW CPDF_Dictionary;
+    pStream->InitStream(NULL, 0, pStreamDict);
+  }
+
+  if (pStreamDict) {
+    CPDF_Dictionary* pStreamResList = pStreamDict->GetDict("Resources");
+    if (!pStreamResList) {
+      pStreamResList = FX_NEW CPDF_Dictionary();
+      pStreamDict->SetAt("Resources", pStreamResList);
+    }
+
+    if (pStreamResList) {
+      CPDF_Dictionary* pStreamResFontList = pStreamResList->GetDict("Font");
+      if (!pStreamResFontList) {
+        pStreamResFontList = new CPDF_Dictionary;
+        int32_t objnum = m_pDocument->AddIndirectObject(pStreamResFontList);
+        pStreamResList->SetAtReference("Font", m_pDocument, objnum);
+      }
+      if (!pStreamResFontList->KeyExist(sAlias))
+        pStreamResFontList->SetAtReference(sAlias, m_pDocument,
+                                           pFont->GetFontDict());
+    }
+  }
 }
 
-CPDF_Font* CBA_FontMap::GetAnnotDefaultFont(CFX_ByteString &sAlias)
-{
-	ASSERT(m_pAnnotDict != NULL);
-	ASSERT(m_pDocument != NULL);
-
-	CPDF_Dictionary* pAcroFormDict = NULL;
-
-	FX_BOOL bWidget = (m_pAnnotDict->GetString("Subtype") == "Widget");
-
-	if (bWidget)
-	{
-		if (CPDF_Dictionary * pRootDict = m_pDocument->GetRoot())
-			pAcroFormDict = pRootDict->GetDict("AcroForm");
-	}
-
-	CFX_ByteString sDA;
-	CPDF_Object* pObj;
-	if ((pObj = FPDF_GetFieldAttr(m_pAnnotDict, "DA")))
-		sDA = pObj->GetString();
-
-	if (bWidget)
-	{
-		if (sDA.IsEmpty())
-		{
-			pObj = FPDF_GetFieldAttr(pAcroFormDict, "DA");
-			sDA = pObj ? pObj->GetString() : CFX_ByteString();
-		}
-	}
-
-	CPDF_Dictionary * pFontDict = NULL;
-
-	if (!sDA.IsEmpty())
-	{
-		CPDF_SimpleParser syntax(sDA);
-		syntax.FindTagParam("Tf", 2);
-		CFX_ByteString sFontName = syntax.GetWord();
-		sAlias = PDF_NameDecode(sFontName).Mid(1);
-
-		if (CPDF_Dictionary * pDRDict = m_pAnnotDict->GetDict("DR"))
-			if (CPDF_Dictionary* pDRFontDict = pDRDict->GetDict("Font"))
-				pFontDict = pDRFontDict->GetDict(sAlias);
-
-		if (!pFontDict)
-			if (CPDF_Dictionary* pAPDict = m_pAnnotDict->GetDict("AP"))
-				if (CPDF_Dictionary* pNormalDict = pAPDict->GetDict("N"))
-					if (CPDF_Dictionary* pNormalResDict = pNormalDict->GetDict("Resources"))
-						if (CPDF_Dictionary* pResFontDict = pNormalResDict->GetDict("Font"))
-							pFontDict = pResFontDict->GetDict(sAlias);
-
-		if (bWidget)
-		{
-			if (!pFontDict)
-			{
-				if (pAcroFormDict)
-				{
-					if (CPDF_Dictionary * pDRDict = pAcroFormDict->GetDict("DR"))
-						if (CPDF_Dictionary* pDRFontDict = pDRDict->GetDict("Font"))
-							pFontDict = pDRFontDict->GetDict(sAlias);
-				}
-			}
-		}
-	}
-
-    return pFontDict ? m_pDocument->LoadFont(pFontDict) : nullptr;
+CPDF_Font* CBA_FontMap::GetAnnotDefaultFont(CFX_ByteString& sAlias) {
+  ASSERT(m_pAnnotDict != NULL);
+  ASSERT(m_pDocument != NULL);
+
+  CPDF_Dictionary* pAcroFormDict = NULL;
+
+  FX_BOOL bWidget = (m_pAnnotDict->GetString("Subtype") == "Widget");
+
+  if (bWidget) {
+    if (CPDF_Dictionary* pRootDict = m_pDocument->GetRoot())
+      pAcroFormDict = pRootDict->GetDict("AcroForm");
+  }
+
+  CFX_ByteString sDA;
+  CPDF_Object* pObj;
+  if ((pObj = FPDF_GetFieldAttr(m_pAnnotDict, "DA")))
+    sDA = pObj->GetString();
+
+  if (bWidget) {
+    if (sDA.IsEmpty()) {
+      pObj = FPDF_GetFieldAttr(pAcroFormDict, "DA");
+      sDA = pObj ? pObj->GetString() : CFX_ByteString();
+    }
+  }
+
+  CPDF_Dictionary* pFontDict = NULL;
+
+  if (!sDA.IsEmpty()) {
+    CPDF_SimpleParser syntax(sDA);
+    syntax.FindTagParam("Tf", 2);
+    CFX_ByteString sFontName = syntax.GetWord();
+    sAlias = PDF_NameDecode(sFontName).Mid(1);
+
+    if (CPDF_Dictionary* pDRDict = m_pAnnotDict->GetDict("DR"))
+      if (CPDF_Dictionary* pDRFontDict = pDRDict->GetDict("Font"))
+        pFontDict = pDRFontDict->GetDict(sAlias);
+
+    if (!pFontDict)
+      if (CPDF_Dictionary* pAPDict = m_pAnnotDict->GetDict("AP"))
+        if (CPDF_Dictionary* pNormalDict = pAPDict->GetDict("N"))
+          if (CPDF_Dictionary* pNormalResDict =
+                  pNormalDict->GetDict("Resources"))
+            if (CPDF_Dictionary* pResFontDict = pNormalResDict->GetDict("Font"))
+              pFontDict = pResFontDict->GetDict(sAlias);
+
+    if (bWidget) {
+      if (!pFontDict) {
+        if (pAcroFormDict) {
+          if (CPDF_Dictionary* pDRDict = pAcroFormDict->GetDict("DR"))
+            if (CPDF_Dictionary* pDRFontDict = pDRDict->GetDict("Font"))
+              pFontDict = pDRFontDict->GetDict(sAlias);
+        }
+      }
+    }
+  }
+
+  return pFontDict ? m_pDocument->LoadFont(pFontDict) : nullptr;
 }
 
-void CBA_FontMap::SetAPType(const CFX_ByteString& sAPType)
-{
-	m_sAPType = sAPType;
+void CBA_FontMap::SetAPType(const CFX_ByteString& sAPType) {
+  m_sAPType = sAPType;
 
-	Reset();
-	Initial();
+  Reset();
+  Initial();
 }
-
diff --git a/fpdfsdk/src/formfiller/FFL_CheckBox.cpp b/fpdfsdk/src/formfiller/FFL_CheckBox.cpp
index 55d2d45bc2..42c6251d68 100644
--- a/fpdfsdk/src/formfiller/FFL_CheckBox.cpp
+++ b/fpdfsdk/src/formfiller/FFL_CheckBox.cpp
@@ -8,137 +8,122 @@
 #include "../../include/formfiller/FFL_FormFiller.h"
 #include "../../include/formfiller/FFL_CheckBox.h"
 
+/* ------------------------------- CFFL_CheckBox -------------------------------
+ */
 
-/* ------------------------------- CFFL_CheckBox ------------------------------- */
+CFFL_CheckBox::CFFL_CheckBox(CPDFDoc_Environment* pApp, CPDFSDK_Widget* pWidget)
+    : CFFL_Button(pApp, pWidget) {}
 
-CFFL_CheckBox::CFFL_CheckBox(CPDFDoc_Environment* pApp, CPDFSDK_Widget* pWidget) :
-	CFFL_Button(pApp, pWidget)
-{
-}
-
-CFFL_CheckBox::~CFFL_CheckBox()
-{
-}
+CFFL_CheckBox::~CFFL_CheckBox() {}
 
-CPWL_Wnd* CFFL_CheckBox::NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView* pPageView)
-{
-	CPWL_CheckBox* pWnd = new CPWL_CheckBox();
-	pWnd->Create(cp);
+CPWL_Wnd* CFFL_CheckBox::NewPDFWindow(const PWL_CREATEPARAM& cp,
+                                      CPDFSDK_PageView* pPageView) {
+  CPWL_CheckBox* pWnd = new CPWL_CheckBox();
+  pWnd->Create(cp);
 
-	ASSERT(m_pWidget != NULL);
-	pWnd->SetCheck(m_pWidget->IsChecked());
+  ASSERT(m_pWidget != NULL);
+  pWnd->SetCheck(m_pWidget->IsChecked());
 
-	return pWnd;
+  return pWnd;
 }
 
-FX_BOOL	CFFL_CheckBox::OnKeyDown(CPDFSDK_Annot* pAnnot, FX_UINT nKeyCode, FX_UINT nFlags)
-{
-	switch (nKeyCode)
-	{
-	case FWL_VKEY_Return:
-	case FWL_VKEY_Space:
-		return TRUE;
-	default:
-		return CFFL_FormFiller::OnKeyDown(pAnnot, nKeyCode, nFlags);
-	}
+FX_BOOL CFFL_CheckBox::OnKeyDown(CPDFSDK_Annot* pAnnot,
+                                 FX_UINT nKeyCode,
+                                 FX_UINT nFlags) {
+  switch (nKeyCode) {
+    case FWL_VKEY_Return:
+    case FWL_VKEY_Space:
+      return TRUE;
+    default:
+      return CFFL_FormFiller::OnKeyDown(pAnnot, nKeyCode, nFlags);
+  }
 }
-FX_BOOL	CFFL_CheckBox::OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags)
-{
-	switch (nChar)
-	{
-	case FWL_VKEY_Return:
-	case FWL_VKEY_Space:
-		{
-			CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller();
-			ASSERT(pIFormFiller != NULL);
-
-			CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
-			ASSERT(pPageView != NULL);
-
-			FX_BOOL bReset = FALSE;
-			FX_BOOL bExit = FALSE;
-
-			pIFormFiller->OnButtonUp(m_pWidget, pPageView, bReset, bExit,nFlags);
-
-			if (bReset) return TRUE;
-			if (bExit) return TRUE;
-
-			CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
-
-			if (CPWL_CheckBox * pWnd = (CPWL_CheckBox*)GetPDFWindow(pPageView, TRUE))
-				pWnd->SetCheck(!pWnd->IsChecked());
-
-			CommitData(pPageView,nFlags);
-			return TRUE;
-		}
-	default:
-		return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
-	}
+FX_BOOL CFFL_CheckBox::OnChar(CPDFSDK_Annot* pAnnot,
+                              FX_UINT nChar,
+                              FX_UINT nFlags) {
+  switch (nChar) {
+    case FWL_VKEY_Return:
+    case FWL_VKEY_Space: {
+      CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller();
+      ASSERT(pIFormFiller != NULL);
+
+      CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
+      ASSERT(pPageView != NULL);
+
+      FX_BOOL bReset = FALSE;
+      FX_BOOL bExit = FALSE;
+
+      pIFormFiller->OnButtonUp(m_pWidget, pPageView, bReset, bExit, nFlags);
+
+      if (bReset)
+        return TRUE;
+      if (bExit)
+        return TRUE;
+
+      CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
+
+      if (CPWL_CheckBox* pWnd = (CPWL_CheckBox*)GetPDFWindow(pPageView, TRUE))
+        pWnd->SetCheck(!pWnd->IsChecked());
+
+      CommitData(pPageView, nFlags);
+      return TRUE;
+    }
+    default:
+      return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
+  }
 }
 
-FX_BOOL CFFL_CheckBox::OnLButtonUp(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-	CFFL_Button::OnLButtonUp(pPageView, pAnnot, nFlags, point);
+FX_BOOL CFFL_CheckBox::OnLButtonUp(CPDFSDK_PageView* pPageView,
+                                   CPDFSDK_Annot* pAnnot,
+                                   FX_UINT nFlags,
+                                   const CPDF_Point& point) {
+  CFFL_Button::OnLButtonUp(pPageView, pAnnot, nFlags, point);
 
-	if (IsValid())
-	{
-		if (CPWL_CheckBox * pWnd = (CPWL_CheckBox*)GetPDFWindow(pPageView, TRUE))
-		{
-			CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-			pWnd->SetCheck(!pWidget->IsChecked());
-		//	pWnd->SetCheck(!pWnd->IsChecked());
-		}
+  if (IsValid()) {
+    if (CPWL_CheckBox* pWnd = (CPWL_CheckBox*)GetPDFWindow(pPageView, TRUE)) {
+      CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+      pWnd->SetCheck(!pWidget->IsChecked());
+      //	pWnd->SetCheck(!pWnd->IsChecked());
+    }
 
-		if (!CommitData(pPageView, nFlags)) return FALSE;
-	}
+    if (!CommitData(pPageView, nFlags))
+      return FALSE;
+  }
 
-	return TRUE;
+  return TRUE;
 }
 
-FX_BOOL	CFFL_CheckBox::IsDataChanged(CPDFSDK_PageView* pPageView)
-{
+FX_BOOL CFFL_CheckBox::IsDataChanged(CPDFSDK_PageView* pPageView) {
+  ASSERT(m_pWidget != NULL);
 
-	ASSERT(m_pWidget != NULL);
+  if (CPWL_CheckBox* pWnd = (CPWL_CheckBox*)GetPDFWindow(pPageView, FALSE)) {
+    return pWnd->IsChecked() != m_pWidget->IsChecked();
+  }
 
-	if (CPWL_CheckBox* pWnd = (CPWL_CheckBox*)GetPDFWindow(pPageView, FALSE))
-	{
-		return pWnd->IsChecked() != m_pWidget->IsChecked();
-	}
-
-	return FALSE;
+  return FALSE;
 }
 
-void CFFL_CheckBox::SaveData(CPDFSDK_PageView* pPageView)
-{
-
-	ASSERT(m_pWidget != NULL);
-
-	if (CPWL_CheckBox* pWnd = (CPWL_CheckBox*)GetPDFWindow(pPageView, FALSE))
-	{
-
-		FX_BOOL bNewChecked = pWnd->IsChecked();
-
-
-		if (bNewChecked)
-		{
-			CPDF_FormField* pField = m_pWidget->GetFormField();
-			ASSERT(pField != NULL);
-
-			for (int32_t i=0,sz=pField->CountControls(); i<sz; i++)
-			{
-				if (CPDF_FormControl* pCtrl = pField->GetControl(i))
-				{
-					if (pCtrl->IsChecked())
-					{
-						break;
-					}
-				}
-			}
-		}
-
-		m_pWidget->SetCheck(bNewChecked, FALSE);
-		m_pWidget->UpdateField();
-		SetChangeMark();
-	}
-
+void CFFL_CheckBox::SaveData(CPDFSDK_PageView* pPageView) {
+  ASSERT(m_pWidget != NULL);
+
+  if (CPWL_CheckBox* pWnd = (CPWL_CheckBox*)GetPDFWindow(pPageView, FALSE)) {
+    FX_BOOL bNewChecked = pWnd->IsChecked();
+
+    if (bNewChecked) {
+      CPDF_FormField* pField = m_pWidget->GetFormField();
+      ASSERT(pField != NULL);
+
+      for (int32_t i = 0, sz = pField->CountControls(); i < sz; i++) {
+        if (CPDF_FormControl* pCtrl = pField->GetControl(i)) {
+          if (pCtrl->IsChecked()) {
+            break;
+          }
+        }
+      }
+    }
+
+    m_pWidget->SetCheck(bNewChecked, FALSE);
+    m_pWidget->UpdateField();
+    SetChangeMark();
+  }
 }
diff --git a/fpdfsdk/src/formfiller/FFL_ComboBox.cpp b/fpdfsdk/src/formfiller/FFL_ComboBox.cpp
index 96574d66cb..1477e24c44 100644
--- a/fpdfsdk/src/formfiller/FFL_ComboBox.cpp
+++ b/fpdfsdk/src/formfiller/FFL_ComboBox.cpp
@@ -10,409 +10,358 @@
 #include "../../include/formfiller/FFL_CBA_Fontmap.h"
 #include "../../include/formfiller/FFL_ComboBox.h"
 
-
-/* ------------------------------- CFFL_ComboBox ------------------------------- */
-
-CFFL_ComboBox::CFFL_ComboBox(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pAnnot) :
-    CFFL_FormFiller(pApp, pAnnot), m_pFontMap( NULL )
-{
-        m_State.nIndex = 0;
-        m_State.nStart = 0;
-        m_State.nEnd   = 0;
+/* ------------------------------- CFFL_ComboBox -------------------------------
+ */
+
+CFFL_ComboBox::CFFL_ComboBox(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pAnnot)
+    : CFFL_FormFiller(pApp, pAnnot), m_pFontMap(NULL) {
+  m_State.nIndex = 0;
+  m_State.nStart = 0;
+  m_State.nEnd = 0;
 }
 
-CFFL_ComboBox::~CFFL_ComboBox()
-{
-    delete m_pFontMap;
+CFFL_ComboBox::~CFFL_ComboBox() {
+  delete m_pFontMap;
 }
 
-PWL_CREATEPARAM CFFL_ComboBox::GetCreateParam()
-{
-    PWL_CREATEPARAM cp = CFFL_FormFiller::GetCreateParam();
+PWL_CREATEPARAM CFFL_ComboBox::GetCreateParam() {
+  PWL_CREATEPARAM cp = CFFL_FormFiller::GetCreateParam();
 
-    ASSERT(m_pWidget != NULL);
+  ASSERT(m_pWidget != NULL);
 
-    int nFlags = m_pWidget->GetFieldFlags();
+  int nFlags = m_pWidget->GetFieldFlags();
 
-    if (nFlags & FIELDFLAG_EDIT)
-    {
-        cp.dwFlags |= PCBS_ALLOWCUSTOMTEXT;
-    }
+  if (nFlags & FIELDFLAG_EDIT) {
+    cp.dwFlags |= PCBS_ALLOWCUSTOMTEXT;
+  }
 
-    if (!m_pFontMap)
-    {
-        m_pFontMap = new CBA_FontMap(m_pWidget, GetSystemHandler());
-        m_pFontMap->Initial();
-    }
+  if (!m_pFontMap) {
+    m_pFontMap = new CBA_FontMap(m_pWidget, GetSystemHandler());
+    m_pFontMap->Initial();
+  }
 
-    cp.pFontMap = m_pFontMap;
-    cp.pFocusHandler = this;
+  cp.pFontMap = m_pFontMap;
+  cp.pFocusHandler = this;
 
-    return cp;
+  return cp;
 }
 
-CPWL_Wnd* CFFL_ComboBox::NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView* pPageView)
-{
-    CPWL_ComboBox * pWnd = new CPWL_ComboBox();
-    pWnd->AttachFFLData(this);
-    pWnd->Create(cp);
-
-    CFFL_IFormFiller* pFormFiller = m_pApp->GetIFormFiller();
-    pWnd->SetFillerNotify(pFormFiller);
-
-    int32_t nCurSel = m_pWidget->GetSelectedIndex(0);
-    CFX_WideString swText;
-    if (nCurSel < 0)
-        swText = m_pWidget->GetValue();
-    else
-        swText = m_pWidget->GetOptionLabel(nCurSel);
-
-    for (int32_t i=0,sz=m_pWidget->CountOptions(); i<sz; i++)
-    {
-        pWnd->AddString(m_pWidget->GetOptionLabel(i).c_str());
-    }
-
-    pWnd->SetSelect(nCurSel);
-    pWnd->SetText(swText.c_str());
-    return pWnd;
+CPWL_Wnd* CFFL_ComboBox::NewPDFWindow(const PWL_CREATEPARAM& cp,
+                                      CPDFSDK_PageView* pPageView) {
+  CPWL_ComboBox* pWnd = new CPWL_ComboBox();
+  pWnd->AttachFFLData(this);
+  pWnd->Create(cp);
+
+  CFFL_IFormFiller* pFormFiller = m_pApp->GetIFormFiller();
+  pWnd->SetFillerNotify(pFormFiller);
+
+  int32_t nCurSel = m_pWidget->GetSelectedIndex(0);
+  CFX_WideString swText;
+  if (nCurSel < 0)
+    swText = m_pWidget->GetValue();
+  else
+    swText = m_pWidget->GetOptionLabel(nCurSel);
+
+  for (int32_t i = 0, sz = m_pWidget->CountOptions(); i < sz; i++) {
+    pWnd->AddString(m_pWidget->GetOptionLabel(i).c_str());
+  }
+
+  pWnd->SetSelect(nCurSel);
+  pWnd->SetText(swText.c_str());
+  return pWnd;
 }
 
-
-FX_BOOL CFFL_ComboBox::OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags)
-{
-    return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
+FX_BOOL CFFL_ComboBox::OnChar(CPDFSDK_Annot* pAnnot,
+                              FX_UINT nChar,
+                              FX_UINT nFlags) {
+  return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
 }
 
-FX_BOOL CFFL_ComboBox::IsDataChanged(CPDFSDK_PageView* pPageView)
-{
-    CPWL_ComboBox* pWnd = (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE);
-    if (!pWnd)
-        return FALSE;
+FX_BOOL CFFL_ComboBox::IsDataChanged(CPDFSDK_PageView* pPageView) {
+  CPWL_ComboBox* pWnd = (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE);
+  if (!pWnd)
+    return FALSE;
 
-    int32_t nCurSel = pWnd->GetSelect();
-    if (!(m_pWidget->GetFieldFlags() & FIELDFLAG_EDIT))
-        return nCurSel != m_pWidget->GetSelectedIndex(0);
+  int32_t nCurSel = pWnd->GetSelect();
+  if (!(m_pWidget->GetFieldFlags() & FIELDFLAG_EDIT))
+    return nCurSel != m_pWidget->GetSelectedIndex(0);
 
-    if (nCurSel >= 0)
-        return nCurSel != m_pWidget->GetSelectedIndex(0);
+  if (nCurSel >= 0)
+    return nCurSel != m_pWidget->GetSelectedIndex(0);
 
-    return pWnd->GetText() != m_pWidget->GetValue();
+  return pWnd->GetText() != m_pWidget->GetValue();
 }
 
-void CFFL_ComboBox::SaveData(CPDFSDK_PageView* pPageView)
-{
-    ASSERT(m_pWidget != NULL);
-
-    if (CPWL_ComboBox* pWnd = (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE))
-    {
-        CFX_WideString swText = pWnd->GetText();
-        int32_t nCurSel = pWnd->GetSelect();
-
-        //mantis:0004157
-        FX_BOOL bSetValue = TRUE;
-
-        if (m_pWidget->GetFieldFlags() & FIELDFLAG_EDIT)
-        {
-            if (nCurSel >= 0)
-            {
-                if (swText != m_pWidget->GetOptionLabel(nCurSel))
-                    bSetValue = TRUE;
-                else
-                    bSetValue = FALSE;
-            }
-            else
-                bSetValue = TRUE;
-        }
-        else
-            bSetValue = FALSE;
+void CFFL_ComboBox::SaveData(CPDFSDK_PageView* pPageView) {
+  ASSERT(m_pWidget != NULL);
 
-        CFX_WideString sOldValue;
+  if (CPWL_ComboBox* pWnd = (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE)) {
+    CFX_WideString swText = pWnd->GetText();
+    int32_t nCurSel = pWnd->GetSelect();
 
+    // mantis:0004157
+    FX_BOOL bSetValue = TRUE;
 
-        if (bSetValue)
-        {
-            sOldValue = m_pWidget->GetValue();
-            m_pWidget->SetValue(swText, FALSE);
-        }
+    if (m_pWidget->GetFieldFlags() & FIELDFLAG_EDIT) {
+      if (nCurSel >= 0) {
+        if (swText != m_pWidget->GetOptionLabel(nCurSel))
+          bSetValue = TRUE;
         else
-        {
-            m_pWidget->GetSelectedIndex(0);
-            m_pWidget->SetOptionSelection(nCurSel, TRUE, FALSE);
-        }
-
-        m_pWidget->ResetFieldAppearance(TRUE);
-        m_pWidget->UpdateField();
-        SetChangeMark();
-
-        m_pWidget->GetPDFPage();
+          bSetValue = FALSE;
+      } else
+        bSetValue = TRUE;
+    } else
+      bSetValue = FALSE;
+
+    CFX_WideString sOldValue;
+
+    if (bSetValue) {
+      sOldValue = m_pWidget->GetValue();
+      m_pWidget->SetValue(swText, FALSE);
+    } else {
+      m_pWidget->GetSelectedIndex(0);
+      m_pWidget->SetOptionSelection(nCurSel, TRUE, FALSE);
+    }
 
+    m_pWidget->ResetFieldAppearance(TRUE);
+    m_pWidget->UpdateField();
+    SetChangeMark();
 
-    }
+    m_pWidget->GetPDFPage();
+  }
 }
 
- void CFFL_ComboBox::GetActionData( CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type, PDFSDK_FieldAction& fa)
-{
-    switch (type)
-    {
+void CFFL_ComboBox::GetActionData(CPDFSDK_PageView* pPageView,
+                                  CPDF_AAction::AActionType type,
+                                  PDFSDK_FieldAction& fa) {
+  switch (type) {
     case CPDF_AAction::KeyStroke:
-        if (CPWL_ComboBox* pComboBox = (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE))
-        {
-            if (CPWL_Edit* pEdit = (CPWL_Edit*)*pComboBox)
-            {
-                fa.bFieldFull = pEdit->IsTextFull();
-                int nSelStart = 0;
-                int nSelEnd = 0;
-                pEdit->GetSel(nSelStart, nSelEnd);
-                fa.nSelEnd = nSelEnd;
-                fa.nSelStart = nSelStart;
-                fa.sValue = pEdit->GetText();
-                fa.sChangeEx = GetSelectExportText();
-
-                if (fa.bFieldFull)
-                {
-                    fa.sChange = L"";
-                    fa.sChangeEx = L"";
-                }
-            }
+      if (CPWL_ComboBox* pComboBox =
+              (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE)) {
+        if (CPWL_Edit* pEdit = (CPWL_Edit*)*pComboBox) {
+          fa.bFieldFull = pEdit->IsTextFull();
+          int nSelStart = 0;
+          int nSelEnd = 0;
+          pEdit->GetSel(nSelStart, nSelEnd);
+          fa.nSelEnd = nSelEnd;
+          fa.nSelStart = nSelStart;
+          fa.sValue = pEdit->GetText();
+          fa.sChangeEx = GetSelectExportText();
+
+          if (fa.bFieldFull) {
+            fa.sChange = L"";
+            fa.sChangeEx = L"";
+          }
         }
-        break;
+      }
+      break;
     case CPDF_AAction::Validate:
-        if (CPWL_ComboBox* pComboBox = (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE))
-        {
-            if (CPWL_Edit* pEdit = (CPWL_Edit*)*pComboBox)
-            {
-                fa.sValue = pEdit->GetText();
-            }
+      if (CPWL_ComboBox* pComboBox =
+              (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE)) {
+        if (CPWL_Edit* pEdit = (CPWL_Edit*)*pComboBox) {
+          fa.sValue = pEdit->GetText();
         }
-        break;
+      }
+      break;
     case CPDF_AAction::LoseFocus:
     case CPDF_AAction::GetFocus:
-        ASSERT(m_pWidget != NULL);
-        fa.sValue = m_pWidget->GetValue();
-        break;
+      ASSERT(m_pWidget != NULL);
+      fa.sValue = m_pWidget->GetValue();
+      break;
     default:
-        break;
-    }
+      break;
+  }
 }
 
-
-
-void CFFL_ComboBox::SetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type,
-                                    const PDFSDK_FieldAction& fa)
-{
-    switch (type)
-    {
+void CFFL_ComboBox::SetActionData(CPDFSDK_PageView* pPageView,
+                                  CPDF_AAction::AActionType type,
+                                  const PDFSDK_FieldAction& fa) {
+  switch (type) {
     case CPDF_AAction::KeyStroke:
-        if (CPWL_ComboBox* pComboBox = (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE))
-        {
-            if (CPWL_Edit* pEdit = (CPWL_Edit*)*pComboBox)
-            {
-                pEdit->SetSel(fa.nSelStart, fa.nSelEnd);
-                pEdit->ReplaceSel(fa.sChange.c_str());
-            }
+      if (CPWL_ComboBox* pComboBox =
+              (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE)) {
+        if (CPWL_Edit* pEdit = (CPWL_Edit*)*pComboBox) {
+          pEdit->SetSel(fa.nSelStart, fa.nSelEnd);
+          pEdit->ReplaceSel(fa.sChange.c_str());
         }
-        break;
+      }
+      break;
     default:
-        break;
-    }
+      break;
+  }
 }
 
-FX_BOOL CFFL_ComboBox::IsActionDataChanged(CPDF_AAction::AActionType type, const PDFSDK_FieldAction& faOld,
-                                    const PDFSDK_FieldAction& faNew)
-{
-    switch (type)
-    {
+FX_BOOL CFFL_ComboBox::IsActionDataChanged(CPDF_AAction::AActionType type,
+                                           const PDFSDK_FieldAction& faOld,
+                                           const PDFSDK_FieldAction& faNew) {
+  switch (type) {
     case CPDF_AAction::KeyStroke:
-        return (!faOld.bFieldFull && faOld.nSelEnd != faNew.nSelEnd) || faOld.nSelStart != faNew.nSelStart ||
-            faOld.sChange != faNew.sChange;
+      return (!faOld.bFieldFull && faOld.nSelEnd != faNew.nSelEnd) ||
+             faOld.nSelStart != faNew.nSelStart ||
+             faOld.sChange != faNew.sChange;
     default:
-        break;
-    }
+      break;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-void CFFL_ComboBox::SaveState(CPDFSDK_PageView* pPageView)
-{
-    ASSERT(pPageView != NULL);
+void CFFL_ComboBox::SaveState(CPDFSDK_PageView* pPageView) {
+  ASSERT(pPageView != NULL);
 
-    if (CPWL_ComboBox* pComboBox = (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE))
-    {
-        m_State.nIndex = pComboBox->GetSelect();
+  if (CPWL_ComboBox* pComboBox =
+          (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE)) {
+    m_State.nIndex = pComboBox->GetSelect();
 
-        if (CPWL_Edit* pEdit = (CPWL_Edit*)*pComboBox)
-        {
-            pEdit->GetSel(m_State.nStart, m_State.nEnd);
-            m_State.sValue = pEdit->GetText();
-        }
+    if (CPWL_Edit* pEdit = (CPWL_Edit*)*pComboBox) {
+      pEdit->GetSel(m_State.nStart, m_State.nEnd);
+      m_State.sValue = pEdit->GetText();
     }
+  }
 }
 
-void CFFL_ComboBox::RestoreState(CPDFSDK_PageView* pPageView)
-{
-    ASSERT(pPageView != NULL);
-
-    if (CPWL_ComboBox* pComboBox = (CPWL_ComboBox*)GetPDFWindow(pPageView, TRUE))
-    {
-        if (m_State.nIndex >= 0)
-            pComboBox->SetSelect(m_State.nIndex);
-        else
-        {
-            if (CPWL_Edit* pEdit = (CPWL_Edit*)*pComboBox)
-            {
-                pEdit->SetText(m_State.sValue.c_str());
-                pEdit->SetSel(m_State.nStart, m_State.nEnd);
-            }
-        }
+void CFFL_ComboBox::RestoreState(CPDFSDK_PageView* pPageView) {
+  ASSERT(pPageView != NULL);
+
+  if (CPWL_ComboBox* pComboBox =
+          (CPWL_ComboBox*)GetPDFWindow(pPageView, TRUE)) {
+    if (m_State.nIndex >= 0)
+      pComboBox->SetSelect(m_State.nIndex);
+    else {
+      if (CPWL_Edit* pEdit = (CPWL_Edit*)*pComboBox) {
+        pEdit->SetText(m_State.sValue.c_str());
+        pEdit->SetSel(m_State.nStart, m_State.nEnd);
+      }
     }
+  }
 }
 
-CPWL_Wnd* CFFL_ComboBox::ResetPDFWindow(CPDFSDK_PageView* pPageView, FX_BOOL bRestoreValue)
-{
-    if (bRestoreValue)
-        SaveState(pPageView);
+CPWL_Wnd* CFFL_ComboBox::ResetPDFWindow(CPDFSDK_PageView* pPageView,
+                                        FX_BOOL bRestoreValue) {
+  if (bRestoreValue)
+    SaveState(pPageView);
 
-    DestroyPDFWindow(pPageView);
+  DestroyPDFWindow(pPageView);
 
-    CPWL_Wnd* pRet = NULL;
+  CPWL_Wnd* pRet = NULL;
 
-    if (bRestoreValue)
-    {
-        RestoreState(pPageView);
-        pRet = GetPDFWindow(pPageView, FALSE);
-    }
-    else
-        pRet = GetPDFWindow(pPageView, TRUE);
+  if (bRestoreValue) {
+    RestoreState(pPageView);
+    pRet = GetPDFWindow(pPageView, FALSE);
+  } else
+    pRet = GetPDFWindow(pPageView, TRUE);
 
-    m_pWidget->UpdateField();
+  m_pWidget->UpdateField();
 
-    return pRet;
+  return pRet;
 }
 
-void CFFL_ComboBox::OnKeyStroke(FX_BOOL bKeyDown, FX_UINT nFlag)
-{
-    ASSERT(m_pWidget != NULL);
+void CFFL_ComboBox::OnKeyStroke(FX_BOOL bKeyDown, FX_UINT nFlag) {
+  ASSERT(m_pWidget != NULL);
 
-    int nFlags = m_pWidget->GetFieldFlags();
+  int nFlags = m_pWidget->GetFieldFlags();
 
-    if (nFlags & FIELDFLAG_COMMITONSELCHANGE)
-    {
-        if (m_bValid)
-        {
-            CPDFSDK_PageView* pPageView = GetCurPageView();
-            ASSERT(pPageView != NULL);
+  if (nFlags & FIELDFLAG_COMMITONSELCHANGE) {
+    if (m_bValid) {
+      CPDFSDK_PageView* pPageView = GetCurPageView();
+      ASSERT(pPageView != NULL);
 
-            if (CommitData(pPageView, nFlag))
-            {
-                DestroyPDFWindow(pPageView);
-                m_bValid = FALSE;
-            }
-        }
+      if (CommitData(pPageView, nFlag)) {
+        DestroyPDFWindow(pPageView);
+        m_bValid = FALSE;
+      }
     }
+  }
 }
 
-FX_BOOL	CFFL_ComboBox::IsFieldFull(CPDFSDK_PageView* pPageView)
-{
-	if (CPWL_ComboBox* pComboBox = (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE))
-	{
-		if (CPWL_Edit* pEdit = (CPWL_Edit*)*pComboBox)
-		{
-			return pEdit->IsTextFull();
-		}
-	}
-
-	return FALSE;
+FX_BOOL CFFL_ComboBox::IsFieldFull(CPDFSDK_PageView* pPageView) {
+  if (CPWL_ComboBox* pComboBox =
+          (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE)) {
+    if (CPWL_Edit* pEdit = (CPWL_Edit*)*pComboBox) {
+      return pEdit->IsTextFull();
+    }
+  }
+
+  return FALSE;
 }
 
-void CFFL_ComboBox::OnSetFocus(CPWL_Wnd* pWnd)
-{
-    ASSERT(m_pApp != NULL);
+void CFFL_ComboBox::OnSetFocus(CPWL_Wnd* pWnd) {
+  ASSERT(m_pApp != NULL);
 
-    ASSERT(pWnd != NULL);
+  ASSERT(pWnd != NULL);
 
-    if (pWnd->GetClassName() == PWL_CLASSNAME_EDIT)
-    {
-        CPWL_Edit* pEdit = (CPWL_Edit*)pWnd;
-        pEdit->SetCharSet(134);
-        pEdit->SetCodePage(936);
+  if (pWnd->GetClassName() == PWL_CLASSNAME_EDIT) {
+    CPWL_Edit* pEdit = (CPWL_Edit*)pWnd;
+    pEdit->SetCharSet(134);
+    pEdit->SetCodePage(936);
 
-        pEdit->SetReadyToInput();
-        CFX_WideString wsText = pEdit->GetText();
-        int nCharacters = wsText.GetLength();
-        CFX_ByteString bsUTFText = wsText.UTF16LE_Encode();
-        unsigned short* pBuffer = (unsigned short*)bsUTFText.c_str();
-        m_pApp->FFI_OnSetFieldInputFocus(m_pWidget->GetFormField(), pBuffer, nCharacters, TRUE);
+    pEdit->SetReadyToInput();
+    CFX_WideString wsText = pEdit->GetText();
+    int nCharacters = wsText.GetLength();
+    CFX_ByteString bsUTFText = wsText.UTF16LE_Encode();
+    unsigned short* pBuffer = (unsigned short*)bsUTFText.c_str();
+    m_pApp->FFI_OnSetFieldInputFocus(m_pWidget->GetFormField(), pBuffer,
+                                     nCharacters, TRUE);
 
-        pEdit->SetEditNotify(this);
-    }
+    pEdit->SetEditNotify(this);
+  }
 }
 
-void CFFL_ComboBox::OnKillFocus(CPWL_Wnd* pWnd)
-{
-    ASSERT(m_pApp != NULL);
+void CFFL_ComboBox::OnKillFocus(CPWL_Wnd* pWnd) {
+  ASSERT(m_pApp != NULL);
 }
 
-FX_BOOL CFFL_ComboBox::CanCopy(CPDFSDK_Document* pDocument)
-{
-    ASSERT(pDocument != NULL);
+FX_BOOL CFFL_ComboBox::CanCopy(CPDFSDK_Document* pDocument) {
+  ASSERT(pDocument != NULL);
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_ComboBox::CanCut(CPDFSDK_Document* pDocument)
-{
-    ASSERT(pDocument != NULL);
+FX_BOOL CFFL_ComboBox::CanCut(CPDFSDK_Document* pDocument) {
+  ASSERT(pDocument != NULL);
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_ComboBox::CanPaste(CPDFSDK_Document* pDocument)
-{
-    ASSERT(pDocument != NULL);
+FX_BOOL CFFL_ComboBox::CanPaste(CPDFSDK_Document* pDocument) {
+  ASSERT(pDocument != NULL);
 
-    return FALSE;
+  return FALSE;
 }
 
-void CFFL_ComboBox::DoCopy(CPDFSDK_Document* pDocument)
-{
-	ASSERT(pDocument != NULL);
+void CFFL_ComboBox::DoCopy(CPDFSDK_Document* pDocument) {
+  ASSERT(pDocument != NULL);
 }
 
-void CFFL_ComboBox::DoCut(CPDFSDK_Document* pDocument)
-{
-	ASSERT(pDocument != NULL);
+void CFFL_ComboBox::DoCut(CPDFSDK_Document* pDocument) {
+  ASSERT(pDocument != NULL);
 }
 
-void CFFL_ComboBox::DoPaste(CPDFSDK_Document* pDocument)
-{
-	ASSERT(pDocument != NULL);
+void CFFL_ComboBox::DoPaste(CPDFSDK_Document* pDocument) {
+  ASSERT(pDocument != NULL);
 }
 
-void CFFL_ComboBox::OnAddUndo(CPWL_Edit* pEdit)
-{
-    ASSERT(pEdit != NULL);
+void CFFL_ComboBox::OnAddUndo(CPWL_Edit* pEdit) {
+  ASSERT(pEdit != NULL);
 }
 
-CFX_WideString CFFL_ComboBox::GetSelectExportText()
-{
-    CFX_WideString swRet;
-
-    int nExport = -1;
-    CPDFSDK_PageView *pPageView = GetCurPageView();
-    if (CPWL_ComboBox * pComboBox = (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE))
-    {
-        nExport = pComboBox->GetSelect();
-    }
-
-    if (nExport >= 0)
-    {
-        if (CPDF_FormField * pFormField = m_pWidget->GetFormField())
-        {
-            swRet = pFormField->GetOptionValue(nExport);
-            if (swRet.IsEmpty())
-                swRet = pFormField->GetOptionLabel(nExport);
-        }
+CFX_WideString CFFL_ComboBox::GetSelectExportText() {
+  CFX_WideString swRet;
+
+  int nExport = -1;
+  CPDFSDK_PageView* pPageView = GetCurPageView();
+  if (CPWL_ComboBox* pComboBox =
+          (CPWL_ComboBox*)GetPDFWindow(pPageView, FALSE)) {
+    nExport = pComboBox->GetSelect();
+  }
+
+  if (nExport >= 0) {
+    if (CPDF_FormField* pFormField = m_pWidget->GetFormField()) {
+      swRet = pFormField->GetOptionValue(nExport);
+      if (swRet.IsEmpty())
+        swRet = pFormField->GetOptionLabel(nExport);
     }
+  }
 
-    return swRet;
+  return swRet;
 }
diff --git a/fpdfsdk/src/formfiller/FFL_FormFiller.cpp b/fpdfsdk/src/formfiller/FFL_FormFiller.cpp
index 717d1a57b1..5eef5bc370 100644
--- a/fpdfsdk/src/formfiller/FFL_FormFiller.cpp
+++ b/fpdfsdk/src/formfiller/FFL_FormFiller.cpp
@@ -4,831 +4,763 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-
 #include "../../include/formfiller/FFL_FormFiller.h"
 #include "../../include/formfiller/FFL_Notify.h"
 #include "../../include/formfiller/FFL_CBA_Fontmap.h"
 
-#define GetRed(rgb)         ((uint8_t)(rgb))
-#define GetGreen(rgb)       ((uint8_t)(((FX_WORD)(rgb)) >> 8))
-#define GetBlue(rgb)        ((uint8_t)((rgb)>>16))
+#define GetRed(rgb) ((uint8_t)(rgb))
+#define GetGreen(rgb) ((uint8_t)(((FX_WORD)(rgb)) >> 8))
+#define GetBlue(rgb) ((uint8_t)((rgb) >> 16))
 
-#define FFL_HINT_ELAPSE     800
+#define FFL_HINT_ELAPSE 800
 
 /* ------------------------- CFFL_FormFiller ------------------------- */
 
-CFFL_FormFiller::CFFL_FormFiller(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pAnnot)
-    : m_pApp(pApp),
-      m_pAnnot(pAnnot),
-      m_bValid(FALSE),
-      m_ptOldPos(0,0)
-{
-    m_pWidget = (CPDFSDK_Widget*) pAnnot;
-}
-
-CFFL_FormFiller::~CFFL_FormFiller()
-{
-    for (auto& it : m_Maps) {
-        CPWL_Wnd* pWnd = it.second;
-        CFFL_PrivateData* pData = (CFFL_PrivateData*)pWnd->GetAttachedData();
-        pWnd->Destroy();
-        delete pWnd;
-        delete pData;
-    }
-    m_Maps.clear();
+CFFL_FormFiller::CFFL_FormFiller(CPDFDoc_Environment* pApp,
+                                 CPDFSDK_Annot* pAnnot)
+    : m_pApp(pApp), m_pAnnot(pAnnot), m_bValid(FALSE), m_ptOldPos(0, 0) {
+  m_pWidget = (CPDFSDK_Widget*)pAnnot;
 }
 
-void CFFL_FormFiller::SetWindowRect(CPDFSDK_PageView* pPageView, const CPDF_Rect& rcWindow)
-{
-    if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE))
-    {
-        pWnd->Move(CPDF_Rect(rcWindow), TRUE, FALSE);
-    }
+CFFL_FormFiller::~CFFL_FormFiller() {
+  for (auto& it : m_Maps) {
+    CPWL_Wnd* pWnd = it.second;
+    CFFL_PrivateData* pData = (CFFL_PrivateData*)pWnd->GetAttachedData();
+    pWnd->Destroy();
+    delete pWnd;
+    delete pData;
+  }
+  m_Maps.clear();
 }
 
-CPDF_Rect CFFL_FormFiller::GetWindowRect(CPDFSDK_PageView* pPageView)
-{
-    if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE))
-    {
-        return pWnd->GetWindowRect();
-    }
-
-    return CPDF_Rect(0,0,0,0);
+void CFFL_FormFiller::SetWindowRect(CPDFSDK_PageView* pPageView,
+                                    const CPDF_Rect& rcWindow) {
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) {
+    pWnd->Move(CPDF_Rect(rcWindow), TRUE, FALSE);
+  }
 }
 
-FX_RECT CFFL_FormFiller::GetViewBBox(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pPageView != NULL);
-    ASSERT(pAnnot != NULL);
+CPDF_Rect CFFL_FormFiller::GetWindowRect(CPDFSDK_PageView* pPageView) {
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) {
+    return pWnd->GetWindowRect();
+  }
 
-    CPDF_Rect rcAnnot = m_pWidget->GetRect();
+  return CPDF_Rect(0, 0, 0, 0);
+}
 
-    if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE))
-    {
-        CPDF_Rect rcWindow = pWnd->GetWindowRect();
-        rcAnnot = PWLtoFFL(rcWindow);
-    }
+FX_RECT CFFL_FormFiller::GetViewBBox(CPDFSDK_PageView* pPageView,
+                                     CPDFSDK_Annot* pAnnot) {
+  ASSERT(pPageView != NULL);
+  ASSERT(pAnnot != NULL);
 
-    CPDF_Rect rcWin = rcAnnot;
+  CPDF_Rect rcAnnot = m_pWidget->GetRect();
 
-    CPDF_Rect rcFocus = GetFocusBox(pPageView);
-    if (!rcFocus.IsEmpty())
-        rcWin.Union(rcFocus);
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) {
+    CPDF_Rect rcWindow = pWnd->GetWindowRect();
+    rcAnnot = PWLtoFFL(rcWindow);
+  }
 
-    CPDF_Rect rect = CPWL_Utils::InflateRect(rcWin,1);
+  CPDF_Rect rcWin = rcAnnot;
 
-    return rect.GetOutterRect();
-}
+  CPDF_Rect rcFocus = GetFocusBox(pPageView);
+  if (!rcFocus.IsEmpty())
+    rcWin.Union(rcFocus);
 
-void CFFL_FormFiller::OnDraw(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot,
-                             CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
-                             FX_DWORD dwFlags)
-{
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+  CPDF_Rect rect = CPWL_Utils::InflateRect(rcWin, 1);
 
-    if (CPWL_Wnd * pWnd = GetPDFWindow(pPageView, FALSE))
-    {
-        CPDF_Matrix mt = GetCurMatrix();
-        mt.Concat(*pUser2Device);
-        pWnd->DrawAppearance(pDevice,&mt);
-    }
-    else
-    {
-        CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-        if (CFFL_IFormFiller::IsVisible(pWidget))
-            pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
-    }
+  return rect.GetOutterRect();
 }
 
-void CFFL_FormFiller::OnDrawDeactive(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot,
-                                     CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
-                                     FX_DWORD dwFlags)
-{
+void CFFL_FormFiller::OnDraw(CPDFSDK_PageView* pPageView,
+                             CPDFSDK_Annot* pAnnot,
+                             CFX_RenderDevice* pDevice,
+                             CPDF_Matrix* pUser2Device,
+                             FX_DWORD dwFlags) {
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) {
+    CPDF_Matrix mt = GetCurMatrix();
+    mt.Concat(*pUser2Device);
+    pWnd->DrawAppearance(pDevice, &mt);
+  } else {
     CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-    pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
+    if (CFFL_IFormFiller::IsVisible(pWidget))
+      pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
+  }
 }
 
-
-void CFFL_FormFiller::OnCreate(CPDFSDK_Annot* pAnnot)
-{
+void CFFL_FormFiller::OnDrawDeactive(CPDFSDK_PageView* pPageView,
+                                     CPDFSDK_Annot* pAnnot,
+                                     CFX_RenderDevice* pDevice,
+                                     CPDF_Matrix* pUser2Device,
+                                     FX_DWORD dwFlags) {
+  CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+  pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
 }
 
-void CFFL_FormFiller::OnLoad(CPDFSDK_Annot* pAnnot)
-{
-}
+void CFFL_FormFiller::OnCreate(CPDFSDK_Annot* pAnnot) {}
 
-void CFFL_FormFiller::OnDelete(CPDFSDK_Annot* pAnnot)
-{
-}
+void CFFL_FormFiller::OnLoad(CPDFSDK_Annot* pAnnot) {}
 
-void CFFL_FormFiller::OnMouseEnter(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot)
-{
-}
+void CFFL_FormFiller::OnDelete(CPDFSDK_Annot* pAnnot) {}
+
+void CFFL_FormFiller::OnMouseEnter(CPDFSDK_PageView* pPageView,
+                                   CPDFSDK_Annot* pAnnot) {}
 
-void CFFL_FormFiller::OnMouseExit(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot)
-{
-    EndTimer();
-    ASSERT(m_pWidget != NULL);
+void CFFL_FormFiller::OnMouseExit(CPDFSDK_PageView* pPageView,
+                                  CPDFSDK_Annot* pAnnot) {
+  EndTimer();
+  ASSERT(m_pWidget != NULL);
 }
 
-FX_BOOL CFFL_FormFiller::OnLButtonDown(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    if (CPWL_Wnd * pWnd = GetPDFWindow(pPageView, TRUE))
-    {
-        m_bValid = TRUE;
-        FX_RECT rect = GetViewBBox(pPageView,pAnnot);
-        InvalidateRect(rect.left, rect.top, rect.right, rect.bottom);
+FX_BOOL CFFL_FormFiller::OnLButtonDown(CPDFSDK_PageView* pPageView,
+                                       CPDFSDK_Annot* pAnnot,
+                                       FX_UINT nFlags,
+                                       const CPDF_Point& point) {
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, TRUE)) {
+    m_bValid = TRUE;
+    FX_RECT rect = GetViewBBox(pPageView, pAnnot);
+    InvalidateRect(rect.left, rect.top, rect.right, rect.bottom);
 
-        if(!rect.Contains((int)point.x, (int)point.y))
-            return FALSE;
+    if (!rect.Contains((int)point.x, (int)point.y))
+      return FALSE;
 
-        return pWnd->OnLButtonDown(WndtoPWL(pPageView, point),nFlags);
-    }
+    return pWnd->OnLButtonDown(WndtoPWL(pPageView, point), nFlags);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_FormFiller::OnLButtonUp(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    if (CPWL_Wnd * pWnd = GetPDFWindow(pPageView, FALSE))
-    {
-        FX_RECT rcFFL = GetViewBBox(pPageView, pAnnot);
-        InvalidateRect(rcFFL.left, rcFFL.top, rcFFL.right, rcFFL.bottom);
-        pWnd->OnLButtonUp(WndtoPWL(pPageView, point),nFlags);
-        return TRUE;
-    }
+FX_BOOL CFFL_FormFiller::OnLButtonUp(CPDFSDK_PageView* pPageView,
+                                     CPDFSDK_Annot* pAnnot,
+                                     FX_UINT nFlags,
+                                     const CPDF_Point& point) {
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) {
+    FX_RECT rcFFL = GetViewBBox(pPageView, pAnnot);
+    InvalidateRect(rcFFL.left, rcFFL.top, rcFFL.right, rcFFL.bottom);
+    pWnd->OnLButtonUp(WndtoPWL(pPageView, point), nFlags);
+    return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_FormFiller::OnLButtonDblClk(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    if (CPWL_Wnd * pWnd = GetPDFWindow(pPageView, FALSE))
-    {
-        pWnd->OnLButtonDblClk(WndtoPWL(pPageView, point),nFlags);
-        return TRUE;
-    }
+FX_BOOL CFFL_FormFiller::OnLButtonDblClk(CPDFSDK_PageView* pPageView,
+                                         CPDFSDK_Annot* pAnnot,
+                                         FX_UINT nFlags,
+                                         const CPDF_Point& point) {
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) {
+    pWnd->OnLButtonDblClk(WndtoPWL(pPageView, point), nFlags);
+    return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_FormFiller::OnMouseMove(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    if ((m_ptOldPos.x != point.x) || (m_ptOldPos.y != point.y))
-    {
-        m_ptOldPos = point;
-    }
+FX_BOOL CFFL_FormFiller::OnMouseMove(CPDFSDK_PageView* pPageView,
+                                     CPDFSDK_Annot* pAnnot,
+                                     FX_UINT nFlags,
+                                     const CPDF_Point& point) {
+  if ((m_ptOldPos.x != point.x) || (m_ptOldPos.y != point.y)) {
+    m_ptOldPos = point;
+  }
 
-    if (CPWL_Wnd * pWnd = GetPDFWindow(pPageView, FALSE))
-    {
-        pWnd->OnMouseMove(WndtoPWL(pPageView, point),nFlags);
-        return TRUE;
-    }
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) {
+    pWnd->OnMouseMove(WndtoPWL(pPageView, point), nFlags);
+    return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_FormFiller::OnMouseWheel(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, short zDelta, const CPDF_Point& point)
-{
-    if (!IsValid()) return FALSE;
+FX_BOOL CFFL_FormFiller::OnMouseWheel(CPDFSDK_PageView* pPageView,
+                                      CPDFSDK_Annot* pAnnot,
+                                      FX_UINT nFlags,
+                                      short zDelta,
+                                      const CPDF_Point& point) {
+  if (!IsValid())
+    return FALSE;
 
-    if (CPWL_Wnd * pWnd = GetPDFWindow(pPageView, TRUE))
-    {
-        return pWnd->OnMouseWheel(zDelta, WndtoPWL(pPageView, point),nFlags);
-    }
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, TRUE)) {
+    return pWnd->OnMouseWheel(zDelta, WndtoPWL(pPageView, point), nFlags);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_FormFiller::OnRButtonDown(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    if (CPWL_Wnd * pWnd = GetPDFWindow(pPageView, TRUE))
-    {
-        pWnd->OnRButtonDown(WndtoPWL(pPageView, point),nFlags);
-        return TRUE;
-    }
+FX_BOOL CFFL_FormFiller::OnRButtonDown(CPDFSDK_PageView* pPageView,
+                                       CPDFSDK_Annot* pAnnot,
+                                       FX_UINT nFlags,
+                                       const CPDF_Point& point) {
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, TRUE)) {
+    pWnd->OnRButtonDown(WndtoPWL(pPageView, point), nFlags);
+    return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_FormFiller::OnRButtonUp(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    if (CPWL_Wnd * pWnd = GetPDFWindow(pPageView, FALSE))
-    {
-        pWnd->OnRButtonUp(WndtoPWL(pPageView, point),nFlags);
-        return TRUE;
-    }
+FX_BOOL CFFL_FormFiller::OnRButtonUp(CPDFSDK_PageView* pPageView,
+                                     CPDFSDK_Annot* pAnnot,
+                                     FX_UINT nFlags,
+                                     const CPDF_Point& point) {
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) {
+    pWnd->OnRButtonUp(WndtoPWL(pPageView, point), nFlags);
+    return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_FormFiller::OnRButtonDblClk(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    if (CPWL_Wnd * pWnd = GetPDFWindow(pPageView, FALSE))
-    {
-        pWnd->OnRButtonDblClk(WndtoPWL(pPageView, point),nFlags);
-        return TRUE;
-    }
+FX_BOOL CFFL_FormFiller::OnRButtonDblClk(CPDFSDK_PageView* pPageView,
+                                         CPDFSDK_Annot* pAnnot,
+                                         FX_UINT nFlags,
+                                         const CPDF_Point& point) {
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) {
+    pWnd->OnRButtonDblClk(WndtoPWL(pPageView, point), nFlags);
+    return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_FormFiller::OnKeyDown(CPDFSDK_Annot* pAnnot, FX_UINT nKeyCode, FX_UINT nFlags)
-{
-    if (IsValid())
-    {
-        CPDFSDK_PageView* pPageView = GetCurPageView();
-        ASSERT(pPageView != NULL);
+FX_BOOL CFFL_FormFiller::OnKeyDown(CPDFSDK_Annot* pAnnot,
+                                   FX_UINT nKeyCode,
+                                   FX_UINT nFlags) {
+  if (IsValid()) {
+    CPDFSDK_PageView* pPageView = GetCurPageView();
+    ASSERT(pPageView != NULL);
 
-        if (CPWL_Wnd * pWnd = GetPDFWindow(pPageView, FALSE))
-        {
-            return pWnd->OnKeyDown(nKeyCode,nFlags);
-        }
+    if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) {
+      return pWnd->OnKeyDown(nKeyCode, nFlags);
     }
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_FormFiller::OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags)
-{
-    if (IsValid())
-    {
-        CPDFSDK_PageView* pPageView = GetCurPageView();
-        ASSERT(pPageView != NULL);
+FX_BOOL CFFL_FormFiller::OnChar(CPDFSDK_Annot* pAnnot,
+                                FX_UINT nChar,
+                                FX_UINT nFlags) {
+  if (IsValid()) {
+    CPDFSDK_PageView* pPageView = GetCurPageView();
+    ASSERT(pPageView != NULL);
 
-        if (CPWL_Wnd * pWnd = GetPDFWindow(pPageView, FALSE))
-        {
-            return pWnd->OnChar(nChar,nFlags);
-        }
+    if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) {
+      return pWnd->OnChar(nChar, nFlags);
     }
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-void CFFL_FormFiller::OnDeSelected(CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(FALSE);
+void CFFL_FormFiller::OnDeSelected(CPDFSDK_Annot* pAnnot) {
+  ASSERT(FALSE);
 }
 
-void CFFL_FormFiller::OnSelected(CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(FALSE);
+void CFFL_FormFiller::OnSelected(CPDFSDK_Annot* pAnnot) {
+  ASSERT(FALSE);
 }
 
-FX_BOOL CFFL_FormFiller::OnSetFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag)
-{
-    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-    CPDFXFA_Page* pPage = pWidget->GetPDFXFAPage();
-    CPDFSDK_Document* pDoc = m_pApp->GetSDKDocument();
-    CPDFSDK_PageView* pPageView = pDoc->GetPageView(pPage);
-    if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, TRUE))
-        pWnd->SetFocus();
+FX_BOOL CFFL_FormFiller::OnSetFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) {
+  CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+  CPDFXFA_Page* pPage = pWidget->GetPDFXFAPage();
+  CPDFSDK_Document* pDoc = m_pApp->GetSDKDocument();
+  CPDFSDK_PageView* pPageView = pDoc->GetPageView(pPage);
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, TRUE))
+    pWnd->SetFocus();
 
-    m_bValid = TRUE;
-    FX_RECT rcRect = GetViewBBox(pPageView,pAnnot);
-    InvalidateRect(rcRect.left, rcRect.top, rcRect.right, rcRect.bottom);
-    return TRUE;
+  m_bValid = TRUE;
+  FX_RECT rcRect = GetViewBBox(pPageView, pAnnot);
+  InvalidateRect(rcRect.left, rcRect.top, rcRect.right, rcRect.bottom);
+  return TRUE;
 }
 
-FX_BOOL CFFL_FormFiller::OnKillFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag)
-{
-    if (!IsValid())
-        return TRUE;
+FX_BOOL CFFL_FormFiller::OnKillFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) {
+  if (!IsValid())
+    return TRUE;
 
-    CPDFSDK_PageView* pPageView = GetCurPageView();
-    CommitData(pPageView, nFlag);
+  CPDFSDK_PageView* pPageView = GetCurPageView();
+  CommitData(pPageView, nFlag);
 
-    if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE))
-        pWnd->KillFocus();
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE))
+    pWnd->KillFocus();
 
-    switch (m_pWidget->GetFieldType())
-    {
+  switch (m_pWidget->GetFieldType()) {
     case FIELDTYPE_PUSHBUTTON:
     case FIELDTYPE_CHECKBOX:
     case FIELDTYPE_RADIOBUTTON:
-        EscapeFiller(pPageView, TRUE);
-        break;
+      EscapeFiller(pPageView, TRUE);
+      break;
     default:
-        EscapeFiller(pPageView, FALSE);
-        break;
-    }
-    return TRUE;
+      EscapeFiller(pPageView, FALSE);
+      break;
+  }
+  return TRUE;
 }
 
-FX_BOOL CFFL_FormFiller::IsValid() const
-{
-    return m_bValid;
+FX_BOOL CFFL_FormFiller::IsValid() const {
+  return m_bValid;
 }
 
-PWL_CREATEPARAM CFFL_FormFiller::GetCreateParam()
-{
-    ASSERT(m_pApp != NULL);
+PWL_CREATEPARAM CFFL_FormFiller::GetCreateParam() {
+  ASSERT(m_pApp != NULL);
 
-    PWL_CREATEPARAM cp;
-    cp.pParentWnd = NULL;
-    cp.pProvider = this;
-    cp.rcRectWnd = GetPDFWindowRect();
+  PWL_CREATEPARAM cp;
+  cp.pParentWnd = NULL;
+  cp.pProvider = this;
+  cp.rcRectWnd = GetPDFWindowRect();
 
-    FX_DWORD dwCreateFlags = PWS_BORDER | PWS_BACKGROUND | PWS_VISIBLE;
-    FX_DWORD dwFieldFlag = m_pWidget->GetFieldFlags();
-    if (dwFieldFlag & FIELDFLAG_READONLY)
-    {
-        dwCreateFlags |= PWS_READONLY;
-    }
+  FX_DWORD dwCreateFlags = PWS_BORDER | PWS_BACKGROUND | PWS_VISIBLE;
+  FX_DWORD dwFieldFlag = m_pWidget->GetFieldFlags();
+  if (dwFieldFlag & FIELDFLAG_READONLY) {
+    dwCreateFlags |= PWS_READONLY;
+  }
 
-    FX_COLORREF color;
-    if (m_pWidget->GetFillColor(color))
-    {
-        cp.sBackgroundColor = CPWL_Color(GetRed(color), GetGreen(color), GetBlue(color));
-    }
+  FX_COLORREF color;
+  if (m_pWidget->GetFillColor(color)) {
+    cp.sBackgroundColor =
+        CPWL_Color(GetRed(color), GetGreen(color), GetBlue(color));
+  }
 
-    if (m_pWidget->GetBorderColor(color))
-    {
-        cp.sBorderColor = CPWL_Color(GetRed(color), GetGreen(color), GetBlue(color));
-    }
+  if (m_pWidget->GetBorderColor(color)) {
+    cp.sBorderColor =
+        CPWL_Color(GetRed(color), GetGreen(color), GetBlue(color));
+  }
 
-    cp.sTextColor = CPWL_Color(COLORTYPE_GRAY,0);
+  cp.sTextColor = CPWL_Color(COLORTYPE_GRAY, 0);
 
-    if (m_pWidget->GetTextColor(color))
-    {
-        cp.sTextColor = CPWL_Color(GetRed(color), GetGreen(color), GetBlue(color));
-    }
+  if (m_pWidget->GetTextColor(color)) {
+    cp.sTextColor = CPWL_Color(GetRed(color), GetGreen(color), GetBlue(color));
+  }
 
-    cp.fFontSize = m_pWidget->GetFontSize();
-    cp.dwBorderWidth = m_pWidget->GetBorderWidth();
+  cp.fFontSize = m_pWidget->GetFontSize();
+  cp.dwBorderWidth = m_pWidget->GetBorderWidth();
 
-    int nBorderStyle = m_pWidget->GetBorderStyle();
+  int nBorderStyle = m_pWidget->GetBorderStyle();
 
-    switch (nBorderStyle)
-    {
+  switch (nBorderStyle) {
     case BBS_SOLID:
-        cp.nBorderStyle = PBS_SOLID;
-        break;
+      cp.nBorderStyle = PBS_SOLID;
+      break;
     case BBS_DASH:
-        cp.nBorderStyle = PBS_DASH;
-        cp.sDash = CPWL_Dash(3,3,0);
-        break;
+      cp.nBorderStyle = PBS_DASH;
+      cp.sDash = CPWL_Dash(3, 3, 0);
+      break;
     case BBS_BEVELED:
-        cp.nBorderStyle = PBS_BEVELED;
-        cp.dwBorderWidth *= 2;
-        break;
+      cp.nBorderStyle = PBS_BEVELED;
+      cp.dwBorderWidth *= 2;
+      break;
     case BBS_INSET:
-        cp.nBorderStyle = PBS_INSET;
-        cp.dwBorderWidth *= 2;
-        break;
+      cp.nBorderStyle = PBS_INSET;
+      cp.dwBorderWidth *= 2;
+      break;
     case BBS_UNDERLINE:
-        cp.nBorderStyle = PBS_UNDERLINED;
-        break;
-    }
+      cp.nBorderStyle = PBS_UNDERLINED;
+      break;
+  }
 
-    if (cp.fFontSize <= 0)
-    {
-        dwCreateFlags |= PWS_AUTOFONTSIZE;
-    }
+  if (cp.fFontSize <= 0) {
+    dwCreateFlags |= PWS_AUTOFONTSIZE;
+  }
 
-    cp.dwFlags = dwCreateFlags;
-    cp.pSystemHandler = m_pApp->GetSysHandler();
-    return cp;
+  cp.dwFlags = dwCreateFlags;
+  cp.pSystemHandler = m_pApp->GetSysHandler();
+  return cp;
 }
 
-CPWL_Wnd* CFFL_FormFiller::GetPDFWindow(CPDFSDK_PageView* pPageView, FX_BOOL bNew)
-{
-    ASSERT(pPageView);
+CPWL_Wnd* CFFL_FormFiller::GetPDFWindow(CPDFSDK_PageView* pPageView,
+                                        FX_BOOL bNew) {
+  ASSERT(pPageView);
 
-    auto it = m_Maps.find(pPageView);
-    const bool found = it != m_Maps.end();
-    CPWL_Wnd* pWnd = found ? it->second : nullptr;
-    if (!bNew)
-        return pWnd;
+  auto it = m_Maps.find(pPageView);
+  const bool found = it != m_Maps.end();
+  CPWL_Wnd* pWnd = found ? it->second : nullptr;
+  if (!bNew)
+    return pWnd;
 
-    if (found) {
-        CFFL_PrivateData* pPrivateData =
-            (CFFL_PrivateData*)pWnd->GetAttachedData();
-        if (pPrivateData->nWidgetAge != m_pWidget->GetAppearanceAge()) {
-            return ResetPDFWindow(
-                pPageView, m_pWidget->GetValueAge() == pPrivateData->nValueAge);
-      }
-    } else {
-      PWL_CREATEPARAM cp = GetCreateParam();
-      cp.hAttachedWnd = (FX_HWND)m_pWidget;
+  if (found) {
+    CFFL_PrivateData* pPrivateData = (CFFL_PrivateData*)pWnd->GetAttachedData();
+    if (pPrivateData->nWidgetAge != m_pWidget->GetAppearanceAge()) {
+      return ResetPDFWindow(
+          pPageView, m_pWidget->GetValueAge() == pPrivateData->nValueAge);
+    }
+  } else {
+    PWL_CREATEPARAM cp = GetCreateParam();
+    cp.hAttachedWnd = (FX_HWND)m_pWidget;
 
-      CFFL_PrivateData* pPrivateData = new CFFL_PrivateData;
-      pPrivateData->pWidget = m_pWidget;
-      pPrivateData->pPageView = pPageView;
-      pPrivateData->nWidgetAge = m_pWidget->GetAppearanceAge();
-      pPrivateData->nValueAge = 0;
+    CFFL_PrivateData* pPrivateData = new CFFL_PrivateData;
+    pPrivateData->pWidget = m_pWidget;
+    pPrivateData->pPageView = pPageView;
+    pPrivateData->nWidgetAge = m_pWidget->GetAppearanceAge();
+    pPrivateData->nValueAge = 0;
 
-      cp.pAttachedData = pPrivateData;
+    cp.pAttachedData = pPrivateData;
 
-      pWnd = NewPDFWindow(cp, pPageView);
-      m_Maps[pPageView] = pWnd;
-    }
+    pWnd = NewPDFWindow(cp, pPageView);
+    m_Maps[pPageView] = pWnd;
+  }
 
-    return pWnd;
+  return pWnd;
 }
 
-void CFFL_FormFiller::DestroyPDFWindow(CPDFSDK_PageView* pPageView)
-{
-    auto it = m_Maps.find(pPageView);
-    if (it == m_Maps.end())
-        return;
+void CFFL_FormFiller::DestroyPDFWindow(CPDFSDK_PageView* pPageView) {
+  auto it = m_Maps.find(pPageView);
+  if (it == m_Maps.end())
+    return;
 
-    CPWL_Wnd* pWnd = it->second;
-    CFFL_PrivateData* pData = (CFFL_PrivateData*)pWnd->GetAttachedData();
-    pWnd->Destroy();
-    delete pWnd;
-    delete pData;
+  CPWL_Wnd* pWnd = it->second;
+  CFFL_PrivateData* pData = (CFFL_PrivateData*)pWnd->GetAttachedData();
+  pWnd->Destroy();
+  delete pWnd;
+  delete pData;
 
-    m_Maps.erase(it);
+  m_Maps.erase(it);
 }
 
-CPDF_Matrix CFFL_FormFiller::GetWindowMatrix(void* pAttachedData)
-{
-    if (CFFL_PrivateData* pPrivateData = (CFFL_PrivateData*)pAttachedData)
-    {
-        if (pPrivateData->pPageView)
-        {
-            CPDF_Matrix mtPageView;
-            pPrivateData->pPageView->GetCurrentMatrix(mtPageView);
-            CPDF_Matrix mt = GetCurMatrix();
-            mt.Concat(mtPageView);
+CPDF_Matrix CFFL_FormFiller::GetWindowMatrix(void* pAttachedData) {
+  if (CFFL_PrivateData* pPrivateData = (CFFL_PrivateData*)pAttachedData) {
+    if (pPrivateData->pPageView) {
+      CPDF_Matrix mtPageView;
+      pPrivateData->pPageView->GetCurrentMatrix(mtPageView);
+      CPDF_Matrix mt = GetCurMatrix();
+      mt.Concat(mtPageView);
 
-            return mt;
-        }
+      return mt;
     }
-    return CPDF_Matrix(1,0,0,1,0,0);
+  }
+  return CPDF_Matrix(1, 0, 0, 1, 0, 0);
 }
 
-CPDF_Matrix CFFL_FormFiller::GetCurMatrix()
-{
-    CPDF_Matrix mt;
-
-    ASSERT(m_pWidget != NULL);
+CPDF_Matrix CFFL_FormFiller::GetCurMatrix() {
+  CPDF_Matrix mt;
 
-    CPDF_Rect rcDA ;
-    m_pWidget->GetPDFAnnot()->GetRect(rcDA);
+  ASSERT(m_pWidget != NULL);
 
+  CPDF_Rect rcDA;
+  m_pWidget->GetPDFAnnot()->GetRect(rcDA);
 
-    switch (m_pWidget->GetRotate())
-    {
+  switch (m_pWidget->GetRotate()) {
     default:
     case 0:
-        mt = CPDF_Matrix(1,0,0,1,0,0);
-        break;
+      mt = CPDF_Matrix(1, 0, 0, 1, 0, 0);
+      break;
     case 90:
-        mt = CPDF_Matrix(0,1,-1,0,rcDA.right - rcDA.left,0);
-        break;
+      mt = CPDF_Matrix(0, 1, -1, 0, rcDA.right - rcDA.left, 0);
+      break;
     case 180:
-        mt = CPDF_Matrix(-1,0,0,-1,rcDA.right - rcDA.left,rcDA.top - rcDA.bottom);
-        break;
+      mt = CPDF_Matrix(-1, 0, 0, -1, rcDA.right - rcDA.left,
+                       rcDA.top - rcDA.bottom);
+      break;
     case 270:
-        mt = CPDF_Matrix(0,-1,1,0,0,rcDA.top - rcDA.bottom);
-        break;
-    }
-    mt.e += rcDA.left;
-    mt.f += rcDA.bottom;
+      mt = CPDF_Matrix(0, -1, 1, 0, 0, rcDA.top - rcDA.bottom);
+      break;
+  }
+  mt.e += rcDA.left;
+  mt.f += rcDA.bottom;
 
-    return mt;
+  return mt;
 }
 
-CFX_WideString CFFL_FormFiller::LoadPopupMenuString(int nIndex)
-{
-    ASSERT(m_pApp != NULL);
+CFX_WideString CFFL_FormFiller::LoadPopupMenuString(int nIndex) {
+  ASSERT(m_pApp != NULL);
 
-    return L"";
+  return L"";
 }
 
-CPDF_Rect CFFL_FormFiller::GetPDFWindowRect() const
-{
-    CPDF_Rect rectAnnot;
-    m_pWidget->GetPDFAnnot()->GetRect(rectAnnot);
+CPDF_Rect CFFL_FormFiller::GetPDFWindowRect() const {
+  CPDF_Rect rectAnnot;
+  m_pWidget->GetPDFAnnot()->GetRect(rectAnnot);
 
-    FX_FLOAT fWidth = rectAnnot.right - rectAnnot.left;
-    FX_FLOAT fHeight = rectAnnot.top - rectAnnot.bottom;
-    if ((m_pWidget->GetRotate() / 90) & 0x01)
-        return CPDF_Rect(0, 0, fHeight, fWidth);
+  FX_FLOAT fWidth = rectAnnot.right - rectAnnot.left;
+  FX_FLOAT fHeight = rectAnnot.top - rectAnnot.bottom;
+  if ((m_pWidget->GetRotate() / 90) & 0x01)
+    return CPDF_Rect(0, 0, fHeight, fWidth);
 
-    return CPDF_Rect(0, 0, fWidth, fHeight);
+  return CPDF_Rect(0, 0, fWidth, fHeight);
 }
 
-CPDFSDK_PageView* CFFL_FormFiller::GetCurPageView()
-{
-    CPDFXFA_Page* pPage = m_pAnnot->GetPDFXFAPage();
-    CPDFSDK_Document* pSDKDoc = m_pApp->GetSDKDocument();
-    if (!pSDKDoc)
-        return NULL;
-    return pSDKDoc->GetPageView(pPage);
+CPDFSDK_PageView* CFFL_FormFiller::GetCurPageView() {
+  CPDFXFA_Page* pPage = m_pAnnot->GetPDFXFAPage();
+  CPDFSDK_Document* pSDKDoc = m_pApp->GetSDKDocument();
+  if (!pSDKDoc)
+    return NULL;
+  return pSDKDoc->GetPageView(pPage);
 }
 
-CPDF_Rect CFFL_FormFiller::GetFocusBox(CPDFSDK_PageView* pPageView)
-{
-    if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE))
-    {
-        CPDF_Rect rcFocus = FFLtoWnd(pPageView, PWLtoFFL(pWnd->GetFocusRect()));
-        CPDF_Rect rcPage = pPageView->GetPDFPage()->GetPageBBox();
-        if (rcPage.Contains(rcFocus))
-            return rcFocus;
-    }
-    return CPDF_Rect(0,0,0,0);
+CPDF_Rect CFFL_FormFiller::GetFocusBox(CPDFSDK_PageView* pPageView) {
+  if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) {
+    CPDF_Rect rcFocus = FFLtoWnd(pPageView, PWLtoFFL(pWnd->GetFocusRect()));
+    CPDF_Rect rcPage = pPageView->GetPDFPage()->GetPageBBox();
+    if (rcPage.Contains(rcFocus))
+      return rcFocus;
+  }
+  return CPDF_Rect(0, 0, 0, 0);
 }
 
-CPDF_Rect CFFL_FormFiller::FFLtoPWL(const CPDF_Rect& rect)
-{
-    CPDF_Matrix mt;
-    mt.SetReverse(GetCurMatrix());
+CPDF_Rect CFFL_FormFiller::FFLtoPWL(const CPDF_Rect& rect) {
+  CPDF_Matrix mt;
+  mt.SetReverse(GetCurMatrix());
 
-    CPDF_Rect temp = rect;
-    mt.TransformRect(temp);
+  CPDF_Rect temp = rect;
+  mt.TransformRect(temp);
 
-    return temp;
+  return temp;
 }
 
-CPDF_Rect CFFL_FormFiller::PWLtoFFL(const CPDF_Rect& rect)
-{
-    CPDF_Matrix mt = GetCurMatrix();
+CPDF_Rect CFFL_FormFiller::PWLtoFFL(const CPDF_Rect& rect) {
+  CPDF_Matrix mt = GetCurMatrix();
 
-    CPDF_Rect temp = rect;
-    mt.TransformRect(temp);
+  CPDF_Rect temp = rect;
+  mt.TransformRect(temp);
 
-    return temp;
+  return temp;
 }
 
-CPDF_Point CFFL_FormFiller::FFLtoPWL(const CPDF_Point& point)
-{
-    CPDF_Matrix mt;
-    mt.SetReverse(GetCurMatrix());
+CPDF_Point CFFL_FormFiller::FFLtoPWL(const CPDF_Point& point) {
+  CPDF_Matrix mt;
+  mt.SetReverse(GetCurMatrix());
 
-    CPDF_Point pt = point;
-    mt.Transform(pt.x,pt.y);
+  CPDF_Point pt = point;
+  mt.Transform(pt.x, pt.y);
 
-    return pt;
+  return pt;
 }
 
-CPDF_Point CFFL_FormFiller::PWLtoFFL(const CPDF_Point & point)
-{
-    CPDF_Matrix mt = GetCurMatrix();
+CPDF_Point CFFL_FormFiller::PWLtoFFL(const CPDF_Point& point) {
+  CPDF_Matrix mt = GetCurMatrix();
 
-    CPDF_Point pt = point;
-    mt.Transform(pt.x,pt.y);
-
-    return pt;
-}
-
-CPDF_Point CFFL_FormFiller::WndtoPWL(CPDFSDK_PageView* pPageView, const CPDF_Point& pt)
-{
-    return FFLtoPWL(pt);
-}
-
-CPDF_Rect CFFL_FormFiller::FFLtoWnd(CPDFSDK_PageView* pPageView, const CPDF_Rect & rect)
-{
-    return rect;
-}
-
-FX_BOOL CFFL_FormFiller::CommitData(CPDFSDK_PageView* pPageView, FX_UINT nFlag)
-{
-    if (IsDataChanged(pPageView))
-    {
-        FX_BOOL bRC = TRUE;
-        FX_BOOL bExit = FALSE;
-        CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller();
-        pIFormFiller->OnKeyStrokeCommit(m_pWidget, pPageView, bRC, bExit, nFlag);
-        if (bExit)
-            return TRUE;
-        if (!bRC)
-        {
-            ResetPDFWindow(pPageView, FALSE);
-            return TRUE;
-        }
-
-        pIFormFiller->OnValidate(m_pWidget, pPageView, bRC, bExit, nFlag);
-        if (bExit)
-            return TRUE;
-        if (!bRC)
-        {
-            ResetPDFWindow(pPageView, FALSE);
-            return TRUE;
-        }
-
-        SaveData(pPageView);
-        pIFormFiller->OnCalculate(m_pWidget, pPageView, bExit,nFlag);
-        if (bExit)
-            return TRUE;
-
-        pIFormFiller->OnFormat(m_pWidget, pPageView, bExit,nFlag);
-    }
-    return TRUE;
-}
+  CPDF_Point pt = point;
+  mt.Transform(pt.x, pt.y);
 
-FX_BOOL CFFL_FormFiller::IsDataChanged(CPDFSDK_PageView* pPageView)
-{
-    return FALSE;
+  return pt;
 }
 
-void CFFL_FormFiller::SaveData(CPDFSDK_PageView* pPageView)
-{
+CPDF_Point CFFL_FormFiller::WndtoPWL(CPDFSDK_PageView* pPageView,
+                                     const CPDF_Point& pt) {
+  return FFLtoPWL(pt);
 }
 
-FX_BOOL CFFL_FormFiller::IsFieldFull(CPDFSDK_PageView* pPageView)
-{
-    return FALSE;
+CPDF_Rect CFFL_FormFiller::FFLtoWnd(CPDFSDK_PageView* pPageView,
+                                    const CPDF_Rect& rect) {
+  return rect;
 }
 
-void CFFL_FormFiller::SetChangeMark()
-{
-    m_pApp->FFI_OnChange();
-}
+FX_BOOL CFFL_FormFiller::CommitData(CPDFSDK_PageView* pPageView,
+                                    FX_UINT nFlag) {
+  if (IsDataChanged(pPageView)) {
+    FX_BOOL bRC = TRUE;
+    FX_BOOL bExit = FALSE;
+    CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller();
+    pIFormFiller->OnKeyStrokeCommit(m_pWidget, pPageView, bRC, bExit, nFlag);
+    if (bExit)
+      return TRUE;
+    if (!bRC) {
+      ResetPDFWindow(pPageView, FALSE);
+      return TRUE;
+    }
 
-void CFFL_FormFiller::GetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type,
-                            PDFSDK_FieldAction& fa)
-{
-    fa.sValue = m_pWidget->GetValue();
-}
+    pIFormFiller->OnValidate(m_pWidget, pPageView, bRC, bExit, nFlag);
+    if (bExit)
+      return TRUE;
+    if (!bRC) {
+      ResetPDFWindow(pPageView, FALSE);
+      return TRUE;
+    }
 
-void CFFL_FormFiller::SetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type,
-                                    const PDFSDK_FieldAction& fa)
-{
-}
+    SaveData(pPageView);
+    pIFormFiller->OnCalculate(m_pWidget, pPageView, bExit, nFlag);
+    if (bExit)
+      return TRUE;
 
-FX_BOOL CFFL_FormFiller::IsActionDataChanged(CPDF_AAction::AActionType type, const PDFSDK_FieldAction& faOld,
-                                    const PDFSDK_FieldAction& faNew)
-{
-    return FALSE;
+    pIFormFiller->OnFormat(m_pWidget, pPageView, bExit, nFlag);
+  }
+  return TRUE;
 }
 
-void CFFL_FormFiller::SaveState(CPDFSDK_PageView* pPageView)
-{
+FX_BOOL CFFL_FormFiller::IsDataChanged(CPDFSDK_PageView* pPageView) {
+  return FALSE;
 }
 
-void CFFL_FormFiller::RestoreState(CPDFSDK_PageView* pPageView)
-{
-}
+void CFFL_FormFiller::SaveData(CPDFSDK_PageView* pPageView) {}
 
-CPWL_Wnd*  CFFL_FormFiller::ResetPDFWindow(CPDFSDK_PageView* pPageView, FX_BOOL bRestoreValue)
-{
-    return GetPDFWindow(pPageView, FALSE);
+FX_BOOL CFFL_FormFiller::IsFieldFull(CPDFSDK_PageView* pPageView) {
+  return FALSE;
 }
 
-void CFFL_FormFiller::TimerProc()
-{
-
+void CFFL_FormFiller::SetChangeMark() {
+  m_pApp->FFI_OnChange();
 }
 
-IFX_SystemHandler* CFFL_FormFiller::GetSystemHandler() const
-{
-    return m_pApp->GetSysHandler();
+void CFFL_FormFiller::GetActionData(CPDFSDK_PageView* pPageView,
+                                    CPDF_AAction::AActionType type,
+                                    PDFSDK_FieldAction& fa) {
+  fa.sValue = m_pWidget->GetValue();
 }
 
-void CFFL_FormFiller::OnKeyStroke(FX_BOOL bKeyDown)
-{
+void CFFL_FormFiller::SetActionData(CPDFSDK_PageView* pPageView,
+                                    CPDF_AAction::AActionType type,
+                                    const PDFSDK_FieldAction& fa) {}
+
+FX_BOOL CFFL_FormFiller::IsActionDataChanged(CPDF_AAction::AActionType type,
+                                             const PDFSDK_FieldAction& faOld,
+                                             const PDFSDK_FieldAction& faNew) {
+  return FALSE;
 }
 
-void CFFL_FormFiller::EscapeFiller(CPDFSDK_PageView* pPageView, FX_BOOL bDestroyPDFWindow)
-{
-    m_bValid = FALSE;
+void CFFL_FormFiller::SaveState(CPDFSDK_PageView* pPageView) {}
 
-    FX_RECT rcRect = GetViewBBox(pPageView, m_pWidget);
-    InvalidateRect(rcRect.left, rcRect.top, rcRect.right, rcRect.bottom);
+void CFFL_FormFiller::RestoreState(CPDFSDK_PageView* pPageView) {}
 
-    if(bDestroyPDFWindow)
-        DestroyPDFWindow(pPageView);
+CPWL_Wnd* CFFL_FormFiller::ResetPDFWindow(CPDFSDK_PageView* pPageView,
+                                          FX_BOOL bRestoreValue) {
+  return GetPDFWindow(pPageView, FALSE);
 }
 
-FX_BOOL CFFL_FormFiller::CanCopy(CPDFSDK_Document* pDocument)
-{
-    return FALSE;
-}
+void CFFL_FormFiller::TimerProc() {}
 
-FX_BOOL CFFL_FormFiller::CanCut(CPDFSDK_Document* pDocument)
-{
-    return FALSE;
+IFX_SystemHandler* CFFL_FormFiller::GetSystemHandler() const {
+  return m_pApp->GetSysHandler();
 }
 
-FX_BOOL CFFL_FormFiller::CanPaste(CPDFSDK_Document* pDocument)
-{
-    return FALSE;
-}
+void CFFL_FormFiller::OnKeyStroke(FX_BOOL bKeyDown) {}
 
-void CFFL_FormFiller::DoCopy(CPDFSDK_Document* pDocument)
-{
-}
+void CFFL_FormFiller::EscapeFiller(CPDFSDK_PageView* pPageView,
+                                   FX_BOOL bDestroyPDFWindow) {
+  m_bValid = FALSE;
 
-void CFFL_FormFiller::DoCut(CPDFSDK_Document* pDocument)
-{
-}
+  FX_RECT rcRect = GetViewBBox(pPageView, m_pWidget);
+  InvalidateRect(rcRect.left, rcRect.top, rcRect.right, rcRect.bottom);
 
-void CFFL_FormFiller::DoPaste(CPDFSDK_Document* pDocument)
-{
+  if (bDestroyPDFWindow)
+    DestroyPDFWindow(pPageView);
 }
 
-void CFFL_FormFiller::InvalidateRect(double left, double top, double right, double bottom)
-{
-    CPDFXFA_Page* pPage = m_pWidget->GetPDFXFAPage();
-    m_pApp->FFI_Invalidate(pPage, left, top, right, bottom);
+FX_BOOL CFFL_FormFiller::CanCopy(CPDFSDK_Document* pDocument) {
+  return FALSE;
 }
 
-/* ------------------------- CFFL_Button ------------------------- */
-
-CFFL_Button::CFFL_Button(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pWidget) :
-    CFFL_FormFiller(pApp, pWidget),
-    m_bMouseIn(FALSE),
-    m_bMouseDown(FALSE)
-{
+FX_BOOL CFFL_FormFiller::CanCut(CPDFSDK_Document* pDocument) {
+  return FALSE;
 }
 
-CFFL_Button::~CFFL_Button()
-{
+FX_BOOL CFFL_FormFiller::CanPaste(CPDFSDK_Document* pDocument) {
+  return FALSE;
 }
 
-void CFFL_Button::OnMouseEnter(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot)
-{
-    m_bMouseIn = TRUE;
-    FX_RECT rect = GetViewBBox(pPageView,pAnnot);
-    InvalidateRect(rect.left, rect.top, rect.right, rect.bottom);
-}
+void CFFL_FormFiller::DoCopy(CPDFSDK_Document* pDocument) {}
 
-void CFFL_Button::OnMouseExit(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot)
-{
-    m_bMouseIn = FALSE;
+void CFFL_FormFiller::DoCut(CPDFSDK_Document* pDocument) {}
 
-    FX_RECT rect = GetViewBBox(pPageView,pAnnot);
-    InvalidateRect(rect.left, rect.top, rect.right, rect.bottom);
-    EndTimer();
-    ASSERT(m_pWidget != NULL);
+void CFFL_FormFiller::DoPaste(CPDFSDK_Document* pDocument) {}
+
+void CFFL_FormFiller::InvalidateRect(double left,
+                                     double top,
+                                     double right,
+                                     double bottom) {
+  CPDFXFA_Page* pPage = m_pWidget->GetPDFXFAPage();
+  m_pApp->FFI_Invalidate(pPage, left, top, right, bottom);
 }
 
-FX_BOOL CFFL_Button::OnLButtonDown(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    CPDF_Rect rcAnnot = pAnnot->GetRect();
-    if(!rcAnnot.Contains(point.x, point.y))
-        return FALSE;
+/* ------------------------- CFFL_Button ------------------------- */
 
-    m_bMouseDown = TRUE;
-    m_bValid = TRUE;
-    FX_RECT rect = GetViewBBox(pPageView, pAnnot);
-    InvalidateRect(rect.left, rect.top, rect.right, rect.bottom);
-    return TRUE;
-}
+CFFL_Button::CFFL_Button(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pWidget)
+    : CFFL_FormFiller(pApp, pWidget), m_bMouseIn(FALSE), m_bMouseDown(FALSE) {}
 
-FX_BOOL CFFL_Button::OnLButtonUp(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    CPDF_Rect rcAnnot = pAnnot->GetRect();
-    if(!rcAnnot.Contains(point.x, point.y))
-        return FALSE;
+CFFL_Button::~CFFL_Button() {}
 
-    m_bMouseDown = FALSE;
-    m_pWidget->GetPDFPage();
+void CFFL_Button::OnMouseEnter(CPDFSDK_PageView* pPageView,
+                               CPDFSDK_Annot* pAnnot) {
+  m_bMouseIn = TRUE;
+  FX_RECT rect = GetViewBBox(pPageView, pAnnot);
+  InvalidateRect(rect.left, rect.top, rect.right, rect.bottom);
+}
 
+void CFFL_Button::OnMouseExit(CPDFSDK_PageView* pPageView,
+                              CPDFSDK_Annot* pAnnot) {
+  m_bMouseIn = FALSE;
 
-    FX_RECT rect = GetViewBBox(pPageView, pAnnot);
-    InvalidateRect(rect.left, rect.top, rect.right, rect.bottom);
-    return TRUE;
+  FX_RECT rect = GetViewBBox(pPageView, pAnnot);
+  InvalidateRect(rect.left, rect.top, rect.right, rect.bottom);
+  EndTimer();
+  ASSERT(m_pWidget != NULL);
 }
 
-FX_BOOL CFFL_Button::OnMouseMove(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    ASSERT(m_pApp != NULL);
+FX_BOOL CFFL_Button::OnLButtonDown(CPDFSDK_PageView* pPageView,
+                                   CPDFSDK_Annot* pAnnot,
+                                   FX_UINT nFlags,
+                                   const CPDF_Point& point) {
+  CPDF_Rect rcAnnot = pAnnot->GetRect();
+  if (!rcAnnot.Contains(point.x, point.y))
+    return FALSE;
 
-    return TRUE;
+  m_bMouseDown = TRUE;
+  m_bValid = TRUE;
+  FX_RECT rect = GetViewBBox(pPageView, pAnnot);
+  InvalidateRect(rect.left, rect.top, rect.right, rect.bottom);
+  return TRUE;
 }
 
-void CFFL_Button::OnDraw(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot,
-                         CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
-                         FX_DWORD dwFlags)
-{
-    ASSERT(pPageView != NULL);
-    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-    CPDF_FormControl* pCtrl = pWidget->GetFormControl();
-    CPDF_FormControl::HighlightingMode eHM = pCtrl->GetHighlightingMode();
-
-    if (eHM == CPDF_FormControl::Push)
-    {
-        if (m_bMouseDown)
-        {
-            if (pWidget->IsWidgetAppearanceValid(CPDF_Annot::Down))
-                pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Down, NULL);
-            else
-                pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
-        }
-        else if (m_bMouseIn)
-        {
-            if (pWidget->IsWidgetAppearanceValid(CPDF_Annot::Rollover))
-                pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Rollover, NULL);
-            else
-                pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
-        }
-        else
-        {
-            pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
-        }
+FX_BOOL CFFL_Button::OnLButtonUp(CPDFSDK_PageView* pPageView,
+                                 CPDFSDK_Annot* pAnnot,
+                                 FX_UINT nFlags,
+                                 const CPDF_Point& point) {
+  CPDF_Rect rcAnnot = pAnnot->GetRect();
+  if (!rcAnnot.Contains(point.x, point.y))
+    return FALSE;
+
+  m_bMouseDown = FALSE;
+  m_pWidget->GetPDFPage();
+
+  FX_RECT rect = GetViewBBox(pPageView, pAnnot);
+  InvalidateRect(rect.left, rect.top, rect.right, rect.bottom);
+  return TRUE;
+}
+
+FX_BOOL CFFL_Button::OnMouseMove(CPDFSDK_PageView* pPageView,
+                                 CPDFSDK_Annot* pAnnot,
+                                 FX_UINT nFlags,
+                                 const CPDF_Point& point) {
+  ASSERT(m_pApp != NULL);
+
+  return TRUE;
+}
+
+void CFFL_Button::OnDraw(CPDFSDK_PageView* pPageView,
+                         CPDFSDK_Annot* pAnnot,
+                         CFX_RenderDevice* pDevice,
+                         CPDF_Matrix* pUser2Device,
+                         FX_DWORD dwFlags) {
+  ASSERT(pPageView != NULL);
+  CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+  CPDF_FormControl* pCtrl = pWidget->GetFormControl();
+  CPDF_FormControl::HighlightingMode eHM = pCtrl->GetHighlightingMode();
+
+  if (eHM == CPDF_FormControl::Push) {
+    if (m_bMouseDown) {
+      if (pWidget->IsWidgetAppearanceValid(CPDF_Annot::Down))
+        pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Down, NULL);
+      else
+        pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal,
+                                NULL);
+    } else if (m_bMouseIn) {
+      if (pWidget->IsWidgetAppearanceValid(CPDF_Annot::Rollover))
+        pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Rollover,
+                                NULL);
+      else
+        pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal,
+                                NULL);
+    } else {
+      pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
     }
-    else
-        pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
+  } else
+    pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
 }
 
-
-void CFFL_Button::OnDrawDeactive(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot,
-                                 CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
-                                 FX_DWORD dwFlags)
-{
-    OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
+void CFFL_Button::OnDrawDeactive(CPDFSDK_PageView* pPageView,
+                                 CPDFSDK_Annot* pAnnot,
+                                 CFX_RenderDevice* pDevice,
+                                 CPDF_Matrix* pUser2Device,
+                                 FX_DWORD dwFlags) {
+  OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
 }
diff --git a/fpdfsdk/src/formfiller/FFL_IFormFiller.cpp b/fpdfsdk/src/formfiller/FFL_IFormFiller.cpp
index bb9316da20..278169e878 100644
--- a/fpdfsdk/src/formfiller/FFL_IFormFiller.cpp
+++ b/fpdfsdk/src/formfiller/FFL_IFormFiller.cpp
@@ -13,1254 +13,1189 @@
 #include "../../include/formfiller/FFL_RadioButton.h"
 #include "../../include/formfiller/FFL_TextField.h"
 
-#define FFL_MAXLISTBOXHEIGHT        140.0f
+#define FFL_MAXLISTBOXHEIGHT 140.0f
 
 // HHOOK CFFL_IFormFiller::m_hookSheet = NULL;
 // MSG CFFL_IFormFiller::g_Msg;
 
-/* ----------------------------- CFFL_IFormFiller ----------------------------- */
+/* ----------------------------- CFFL_IFormFiller -----------------------------
+ */
 
-CFFL_IFormFiller::CFFL_IFormFiller(CPDFDoc_Environment* pApp) :
-    m_pApp(pApp),
-    m_bNotifying(FALSE)
-{
-}
+CFFL_IFormFiller::CFFL_IFormFiller(CPDFDoc_Environment* pApp)
+    : m_pApp(pApp), m_bNotifying(FALSE) {}
 
-CFFL_IFormFiller::~CFFL_IFormFiller()
-{
-    for (auto& it : m_Maps)
-        delete it.second;
-    m_Maps.clear();
+CFFL_IFormFiller::~CFFL_IFormFiller() {
+  for (auto& it : m_Maps)
+    delete it.second;
+  m_Maps.clear();
 }
 
-FX_BOOL CFFL_IFormFiller::Annot_HitTest(CPDFSDK_PageView* pPageView,CPDFSDK_Annot* pAnnot, CPDF_Point point)
-{
-    CPDF_Rect rc = pAnnot->GetRect();
-    if(rc.Contains(point.x, point.y))
-        return TRUE;
-    return FALSE;
+FX_BOOL CFFL_IFormFiller::Annot_HitTest(CPDFSDK_PageView* pPageView,
+                                        CPDFSDK_Annot* pAnnot,
+                                        CPDF_Point point) {
+  CPDF_Rect rc = pAnnot->GetRect();
+  if (rc.Contains(point.x, point.y))
+    return TRUE;
+  return FALSE;
 }
 
-FX_RECT CFFL_IFormFiller::GetViewBBox(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot)
-{
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-        return pFormFiller->GetViewBBox(pPageView, pAnnot);
+FX_RECT CFFL_IFormFiller::GetViewBBox(CPDFSDK_PageView* pPageView,
+                                      CPDFSDK_Annot* pAnnot) {
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
+    return pFormFiller->GetViewBBox(pPageView, pAnnot);
 
-    ASSERT(pPageView != NULL);
+  ASSERT(pPageView != NULL);
 
-    CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot();
-    CPDF_Rect rcAnnot;
-    pPDFAnnot->GetRect(rcAnnot);
+  CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot();
+  CPDF_Rect rcAnnot;
+  pPDFAnnot->GetRect(rcAnnot);
 
-    CPDF_Rect rcWin = CPWL_Utils::InflateRect(rcAnnot, 1);
-    return rcWin.GetOutterRect();
+  CPDF_Rect rcWin = CPWL_Utils::InflateRect(rcAnnot, 1);
+  return rcWin.GetOutterRect();
 }
 
-void CFFL_IFormFiller::OnDraw(CPDFSDK_PageView* pPageView, /*HDC hDC,*/ CPDFSDK_Annot* pAnnot,
-                        CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
-                        /*const CRect& rcWindow,*/ FX_DWORD dwFlags)
-{
-    ASSERT(pPageView != NULL);
-    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-
-    if (IsVisible(pWidget))
-    {
-        if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-        {
-            if (pFormFiller->IsValid())
-            {
-                pFormFiller->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
-                pAnnot->GetPDFPage();
-
-                CPDFSDK_Document* pDocument = m_pApp->GetSDKDocument();
-                if (pDocument->GetFocusAnnot() == pAnnot)
-                {
-                    CPDF_Rect rcFocus = pFormFiller->GetFocusBox(pPageView);
-                    if (!rcFocus.IsEmpty())
-                    {
-                        CFX_PathData path;
-                        path.SetPointCount(5);
-                        path.SetPoint(0, rcFocus.left,  rcFocus.top, FXPT_MOVETO);
-                        path.SetPoint(1, rcFocus.left,  rcFocus.bottom, FXPT_LINETO);
-                        path.SetPoint(2, rcFocus.right,  rcFocus.bottom, FXPT_LINETO);
-                        path.SetPoint(3, rcFocus.right,  rcFocus.top, FXPT_LINETO);
-                        path.SetPoint(4, rcFocus.left,  rcFocus.top, FXPT_LINETO);
-
-                        CFX_GraphStateData gsd;
-                        gsd.SetDashCount(1);
-                        gsd.m_DashArray[0] = 1.0f;
-                        gsd.m_DashPhase = 0;
-                        gsd.m_LineWidth = 1.0f;
-                        pDevice->DrawPath(&path, pUser2Device, &gsd, 0, ArgbEncode(255,0,0,0), FXFILL_ALTERNATE);
-                    }
-                }
-                return;
-            }
+void CFFL_IFormFiller::OnDraw(CPDFSDK_PageView* pPageView,
+                              /*HDC hDC,*/ CPDFSDK_Annot* pAnnot,
+                              CFX_RenderDevice* pDevice,
+                              CPDF_Matrix* pUser2Device,
+                              /*const CRect& rcWindow,*/ FX_DWORD dwFlags) {
+  ASSERT(pPageView != NULL);
+  CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+
+  if (IsVisible(pWidget)) {
+    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+      if (pFormFiller->IsValid()) {
+        pFormFiller->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
+        pAnnot->GetPDFPage();
+
+        CPDFSDK_Document* pDocument = m_pApp->GetSDKDocument();
+        if (pDocument->GetFocusAnnot() == pAnnot) {
+          CPDF_Rect rcFocus = pFormFiller->GetFocusBox(pPageView);
+          if (!rcFocus.IsEmpty()) {
+            CFX_PathData path;
+            path.SetPointCount(5);
+            path.SetPoint(0, rcFocus.left, rcFocus.top, FXPT_MOVETO);
+            path.SetPoint(1, rcFocus.left, rcFocus.bottom, FXPT_LINETO);
+            path.SetPoint(2, rcFocus.right, rcFocus.bottom, FXPT_LINETO);
+            path.SetPoint(3, rcFocus.right, rcFocus.top, FXPT_LINETO);
+            path.SetPoint(4, rcFocus.left, rcFocus.top, FXPT_LINETO);
+
+            CFX_GraphStateData gsd;
+            gsd.SetDashCount(1);
+            gsd.m_DashArray[0] = 1.0f;
+            gsd.m_DashPhase = 0;
+            gsd.m_LineWidth = 1.0f;
+            pDevice->DrawPath(&path, pUser2Device, &gsd, 0,
+                              ArgbEncode(255, 0, 0, 0), FXFILL_ALTERNATE);
+          }
         }
-
-        if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-            pFormFiller->OnDrawDeactive(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
-        else
-            pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
-
-        if (!IsReadOnly(pWidget) && IsFillingAllowed(pWidget))
-            pWidget->DrawShadow(pDevice, pPageView);
+        return;
+      }
     }
-}
 
-void CFFL_IFormFiller::OnCreate(CPDFSDK_Annot* pAnnot)
-{
     if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        pFormFiller->OnCreate(pAnnot);
-    }
-}
+      pFormFiller->OnDrawDeactive(pPageView, pAnnot, pDevice, pUser2Device,
+                                  dwFlags);
+    else
+      pWidget->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
 
-void CFFL_IFormFiller::OnLoad(CPDFSDK_Annot* pAnnot)
-{
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        pFormFiller->OnLoad(pAnnot);
-    }
+    if (!IsReadOnly(pWidget) && IsFillingAllowed(pWidget))
+      pWidget->DrawShadow(pDevice, pPageView);
+  }
 }
 
-void CFFL_IFormFiller::OnDelete(CPDFSDK_Annot* pAnnot)
-{
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        pFormFiller->OnDelete(pAnnot);
-    }
+void CFFL_IFormFiller::OnCreate(CPDFSDK_Annot* pAnnot) {
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    pFormFiller->OnCreate(pAnnot);
+  }
+}
 
-    UnRegisterFormFiller(pAnnot);
+void CFFL_IFormFiller::OnLoad(CPDFSDK_Annot* pAnnot) {
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    pFormFiller->OnLoad(pAnnot);
+  }
 }
 
-void CFFL_IFormFiller::OnMouseEnter(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlag)
-{
-    ASSERT(pAnnot != NULL);
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+void CFFL_IFormFiller::OnDelete(CPDFSDK_Annot* pAnnot) {
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    pFormFiller->OnDelete(pAnnot);
+  }
 
-    if (!m_bNotifying)
-    {
-        CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-        if (pWidget->GetAAction(CPDF_AAction::CursorEnter))
-        {
-            m_bNotifying = TRUE;
+  UnRegisterFormFiller(pAnnot);
+}
 
-            int nValueAge = pWidget->GetValueAge();
+void CFFL_IFormFiller::OnMouseEnter(CPDFSDK_PageView* pPageView,
+                                    CPDFSDK_Annot* pAnnot,
+                                    FX_UINT nFlag) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
-            pWidget->ClearAppModified();
+  if (!m_bNotifying) {
+    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+    if (pWidget->GetAAction(CPDF_AAction::CursorEnter)) {
+      m_bNotifying = TRUE;
 
-            ASSERT(pPageView != NULL);
+      int nValueAge = pWidget->GetValueAge();
 
+      pWidget->ClearAppModified();
 
+      ASSERT(pPageView != NULL);
 
-            PDFSDK_FieldAction fa;
-            fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
-            fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
-            pWidget->OnAAction(CPDF_AAction::CursorEnter, fa, pPageView );
-            m_bNotifying = FALSE;
+      PDFSDK_FieldAction fa;
+      fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
+      fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
+      pWidget->OnAAction(CPDF_AAction::CursorEnter, fa, pPageView);
+      m_bNotifying = FALSE;
 
-            //if ( !IsValidAnnot(pPageView, pAnnot) ) return;
+      // if ( !IsValidAnnot(pPageView, pAnnot) ) return;
 
-            if (pWidget->IsAppModified())
-            {
-                if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE))
-                {
-                    pFormFiller->ResetPDFWindow(pPageView, pWidget->GetValueAge() == nValueAge);
-                }
-            }
+      if (pWidget->IsAppModified()) {
+        if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE)) {
+          pFormFiller->ResetPDFWindow(pPageView,
+                                      pWidget->GetValueAge() == nValueAge);
         }
+      }
     }
+  }
 
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, TRUE))
-    {
-        pFormFiller->OnMouseEnter(pPageView, pAnnot);
-    }
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, TRUE)) {
+    pFormFiller->OnMouseEnter(pPageView, pAnnot);
+  }
 }
 
-void CFFL_IFormFiller::OnMouseExit(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlag)
-{
-    ASSERT(pAnnot != NULL);
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
-
-    if (!m_bNotifying)
-    {
-        CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-        if (pWidget->GetAAction(CPDF_AAction::CursorExit))
-        {
-            m_bNotifying = TRUE;
-            pWidget->GetAppearanceAge();
-            int nValueAge = pWidget->GetValueAge();
-            pWidget->ClearAppModified();
-
-            ASSERT(pPageView != NULL);
+void CFFL_IFormFiller::OnMouseExit(CPDFSDK_PageView* pPageView,
+                                   CPDFSDK_Annot* pAnnot,
+                                   FX_UINT nFlag) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
+  if (!m_bNotifying) {
+    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+    if (pWidget->GetAAction(CPDF_AAction::CursorExit)) {
+      m_bNotifying = TRUE;
+      pWidget->GetAppearanceAge();
+      int nValueAge = pWidget->GetValueAge();
+      pWidget->ClearAppModified();
 
+      ASSERT(pPageView != NULL);
 
-            PDFSDK_FieldAction fa;
-            fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
-            fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
+      PDFSDK_FieldAction fa;
+      fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
+      fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
 
-            pWidget->OnAAction(CPDF_AAction::CursorExit, fa, pPageView);
-            m_bNotifying = FALSE;
+      pWidget->OnAAction(CPDF_AAction::CursorExit, fa, pPageView);
+      m_bNotifying = FALSE;
 
-            //if (!IsValidAnnot(pPageView, pAnnot)) return;
+      // if (!IsValidAnnot(pPageView, pAnnot)) return;
 
-            if (pWidget->IsAppModified())
-            {
-                if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE))
-                {
-                    pFormFiller->ResetPDFWindow(pPageView, nValueAge == pWidget->GetValueAge());
-                }
-            }
+      if (pWidget->IsAppModified()) {
+        if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE)) {
+          pFormFiller->ResetPDFWindow(pPageView,
+                                      nValueAge == pWidget->GetValueAge());
         }
+      }
     }
+  }
 
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        pFormFiller->OnMouseExit(pPageView, pAnnot);
-    }
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    pFormFiller->OnMouseExit(pPageView, pAnnot);
+  }
 }
 
-FX_BOOL CFFL_IFormFiller::OnLButtonDown(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
-
-    if (!m_bNotifying)
-    {
-        CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-        if (Annot_HitTest(pPageView, pAnnot, point) && pWidget->GetAAction(CPDF_AAction::ButtonDown))
-        {
-            m_bNotifying = TRUE;
-            pWidget->GetAppearanceAge();
-            int nValueAge = pWidget->GetValueAge();
-            pWidget->ClearAppModified();
-
-            ASSERT(pPageView != NULL);
-
+FX_BOOL CFFL_IFormFiller::OnLButtonDown(CPDFSDK_PageView* pPageView,
+                                        CPDFSDK_Annot* pAnnot,
+                                        FX_UINT nFlags,
+                                        const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
+  if (!m_bNotifying) {
+    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+    if (Annot_HitTest(pPageView, pAnnot, point) &&
+        pWidget->GetAAction(CPDF_AAction::ButtonDown)) {
+      m_bNotifying = TRUE;
+      pWidget->GetAppearanceAge();
+      int nValueAge = pWidget->GetValueAge();
+      pWidget->ClearAppModified();
+
+      ASSERT(pPageView != NULL);
+
+      PDFSDK_FieldAction fa;
+      fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlags);
+      fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlags);
+      pWidget->OnAAction(CPDF_AAction::ButtonDown, fa, pPageView);
+      m_bNotifying = FALSE;
+
+      if (!IsValidAnnot(pPageView, pAnnot))
+        return TRUE;
 
-            PDFSDK_FieldAction fa;
-            fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlags);
-            fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlags);
-            pWidget->OnAAction(CPDF_AAction::ButtonDown, fa, pPageView);
-            m_bNotifying = FALSE;
-
-            if (!IsValidAnnot(pPageView, pAnnot)) return TRUE;
-
-            if (pWidget->IsAppModified())
-            {
-                if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE))
-                {
-                    pFormFiller->ResetPDFWindow(pPageView, nValueAge == pWidget->GetValueAge());
-                }
-            }
+      if (pWidget->IsAppModified()) {
+        if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE)) {
+          pFormFiller->ResetPDFWindow(pPageView,
+                                      nValueAge == pWidget->GetValueAge());
         }
+      }
     }
+  }
 
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        return pFormFiller->OnLButtonDown(pPageView, pAnnot, nFlags, point);
-    }
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    return pFormFiller->OnLButtonDown(pPageView, pAnnot, nFlags, point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_IFormFiller::OnLButtonUp(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
-    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-    CPDFSDK_Document* pDocument = m_pApp->GetSDKDocument();
+FX_BOOL CFFL_IFormFiller::OnLButtonUp(CPDFSDK_PageView* pPageView,
+                                      CPDFSDK_Annot* pAnnot,
+                                      FX_UINT nFlags,
+                                      const CPDF_Point& point) {
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+  CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+  CPDFSDK_Document* pDocument = m_pApp->GetSDKDocument();
 
-    switch (pWidget->GetFieldType())
-    {
+  switch (pWidget->GetFieldType()) {
     case FIELDTYPE_PUSHBUTTON:
     case FIELDTYPE_CHECKBOX:
     case FIELDTYPE_RADIOBUTTON:
-        if (GetViewBBox(pPageView, pAnnot).Contains((int)point.x, (int)point.y))
-            pDocument->SetFocusAnnot(pAnnot);
-        break;
-    default:
+      if (GetViewBBox(pPageView, pAnnot).Contains((int)point.x, (int)point.y))
         pDocument->SetFocusAnnot(pAnnot);
-        break;
-    }
-
-    FX_BOOL bRet = FALSE;
-
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        bRet = pFormFiller->OnLButtonUp(pPageView, pAnnot, nFlags, point);
-    }
-
-    if (pDocument->GetFocusAnnot() == pAnnot)
-    {
-        FX_BOOL bExit = FALSE;
-        FX_BOOL bReset = FALSE;
-        OnButtonUp(pWidget, pPageView, bReset, bExit,nFlags);
-        if (bExit) return TRUE;
-
-        OnClick(pWidget, pPageView, bReset, bExit, nFlags);
-        if (bExit) return TRUE;
-    }
-    return bRet;
+      break;
+    default:
+      pDocument->SetFocusAnnot(pAnnot);
+      break;
+  }
+
+  FX_BOOL bRet = FALSE;
+
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    bRet = pFormFiller->OnLButtonUp(pPageView, pAnnot, nFlags, point);
+  }
+
+  if (pDocument->GetFocusAnnot() == pAnnot) {
+    FX_BOOL bExit = FALSE;
+    FX_BOOL bReset = FALSE;
+    OnButtonUp(pWidget, pPageView, bReset, bExit, nFlags);
+    if (bExit)
+      return TRUE;
+
+    OnClick(pWidget, pPageView, bReset, bExit, nFlags);
+    if (bExit)
+      return TRUE;
+  }
+  return bRet;
 }
 
-void CFFL_IFormFiller::OnButtonUp(CPDFSDK_Widget* pWidget, CPDFSDK_PageView* pPageView, FX_BOOL& bReset, FX_BOOL& bExit,FX_UINT nFlag)
-{
-    ASSERT(pWidget != NULL);
-
-    if (!m_bNotifying)
-    {
-        if (pWidget->GetAAction(CPDF_AAction::ButtonUp))
-        {
-            m_bNotifying = TRUE;
-            int nAge = pWidget->GetAppearanceAge();
-            int nValueAge = pWidget->GetValueAge();
+void CFFL_IFormFiller::OnButtonUp(CPDFSDK_Widget* pWidget,
+                                  CPDFSDK_PageView* pPageView,
+                                  FX_BOOL& bReset,
+                                  FX_BOOL& bExit,
+                                  FX_UINT nFlag) {
+  ASSERT(pWidget != NULL);
 
-            ASSERT(pPageView != NULL);
-//          CReader_DocView* pDocView = pPageView->GetDocView();
-//          ASSERT(pDocView != NULL);
+  if (!m_bNotifying) {
+    if (pWidget->GetAAction(CPDF_AAction::ButtonUp)) {
+      m_bNotifying = TRUE;
+      int nAge = pWidget->GetAppearanceAge();
+      int nValueAge = pWidget->GetValueAge();
 
+      ASSERT(pPageView != NULL);
+      //          CReader_DocView* pDocView = pPageView->GetDocView();
+      //          ASSERT(pDocView != NULL);
 
+      PDFSDK_FieldAction fa;
+      fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
+      fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
 
-            PDFSDK_FieldAction fa;
-            fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
-            fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
+      pWidget->OnAAction(CPDF_AAction::ButtonUp, fa, pPageView);
+      m_bNotifying = FALSE;
 
-            pWidget->OnAAction(CPDF_AAction::ButtonUp, fa, pPageView);
-            m_bNotifying = FALSE;
-
-            if (!IsValidAnnot(pPageView, pWidget))
-            {
-                bExit = TRUE;
-                return;
-            }
-
-            if (nAge != pWidget->GetAppearanceAge())
-            {
-                if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE))
-                {
-                    pFormFiller->ResetPDFWindow(pPageView, nValueAge == pWidget->GetValueAge());
-                }
+      if (!IsValidAnnot(pPageView, pWidget)) {
+        bExit = TRUE;
+        return;
+      }
 
-                bReset = TRUE;
-            }
+      if (nAge != pWidget->GetAppearanceAge()) {
+        if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE)) {
+          pFormFiller->ResetPDFWindow(pPageView,
+                                      nValueAge == pWidget->GetValueAge());
         }
+
+        bReset = TRUE;
+      }
     }
+  }
 }
 
-FX_BOOL CFFL_IFormFiller::OnLButtonDblClk(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+FX_BOOL CFFL_IFormFiller::OnLButtonDblClk(CPDFSDK_PageView* pPageView,
+                                          CPDFSDK_Annot* pAnnot,
+                                          FX_UINT nFlags,
+                                          const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        return pFormFiller->OnLButtonDblClk(pPageView, pAnnot, nFlags, point);
-    }
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    return pFormFiller->OnLButtonDblClk(pPageView, pAnnot, nFlags, point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_IFormFiller::OnMouseMove(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+FX_BOOL CFFL_IFormFiller::OnMouseMove(CPDFSDK_PageView* pPageView,
+                                      CPDFSDK_Annot* pAnnot,
+                                      FX_UINT nFlags,
+                                      const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
-    //change cursor
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, TRUE))
-    {
-        return pFormFiller->OnMouseMove(pPageView, pAnnot, nFlags, point);
-    }
+  // change cursor
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, TRUE)) {
+    return pFormFiller->OnMouseMove(pPageView, pAnnot, nFlags, point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_IFormFiller::OnMouseWheel(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, short zDelta, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+FX_BOOL CFFL_IFormFiller::OnMouseWheel(CPDFSDK_PageView* pPageView,
+                                       CPDFSDK_Annot* pAnnot,
+                                       FX_UINT nFlags,
+                                       short zDelta,
+                                       const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        return pFormFiller->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta, point);
-    }
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    return pFormFiller->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta, point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_IFormFiller::OnRButtonDown(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+FX_BOOL CFFL_IFormFiller::OnRButtonDown(CPDFSDK_PageView* pPageView,
+                                        CPDFSDK_Annot* pAnnot,
+                                        FX_UINT nFlags,
+                                        const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        return pFormFiller->OnRButtonDown(pPageView, pAnnot, nFlags, point);
-    }
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    return pFormFiller->OnRButtonDown(pPageView, pAnnot, nFlags, point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_IFormFiller::OnRButtonUp(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+FX_BOOL CFFL_IFormFiller::OnRButtonUp(CPDFSDK_PageView* pPageView,
+                                      CPDFSDK_Annot* pAnnot,
+                                      FX_UINT nFlags,
+                                      const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        return pFormFiller->OnRButtonUp(pPageView, pAnnot, nFlags, point);
-    }
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    return pFormFiller->OnRButtonUp(pPageView, pAnnot, nFlags, point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_IFormFiller::OnRButtonDblClk(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+FX_BOOL CFFL_IFormFiller::OnRButtonDblClk(CPDFSDK_PageView* pPageView,
+                                          CPDFSDK_Annot* pAnnot,
+                                          FX_UINT nFlags,
+                                          const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        return pFormFiller->OnRButtonDblClk(pPageView, pAnnot, nFlags, point);
-    }
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    return pFormFiller->OnRButtonDblClk(pPageView, pAnnot, nFlags, point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_IFormFiller::OnKeyDown(CPDFSDK_Annot* pAnnot, FX_UINT nKeyCode, FX_UINT nFlags)
-{
-    ASSERT(pAnnot != NULL);
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+FX_BOOL CFFL_IFormFiller::OnKeyDown(CPDFSDK_Annot* pAnnot,
+                                    FX_UINT nKeyCode,
+                                    FX_UINT nFlags) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        return pFormFiller->OnKeyDown(pAnnot, nKeyCode, nFlags);
-    }
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    return pFormFiller->OnKeyDown(pAnnot, nKeyCode, nFlags);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFFL_IFormFiller::OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags)
-{
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
-    if (nChar == FWL_VKEY_Tab)
-        return TRUE;
+FX_BOOL CFFL_IFormFiller::OnChar(CPDFSDK_Annot* pAnnot,
+                                 FX_UINT nChar,
+                                 FX_UINT nFlags) {
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+  if (nChar == FWL_VKEY_Tab)
+    return TRUE;
 
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-        return pFormFiller->OnChar(pAnnot, nChar, nFlags);
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
+    return pFormFiller->OnChar(pAnnot, nChar, nFlags);
 
-    return FALSE;
+  return FALSE;
 }
 
-void CFFL_IFormFiller::OnDeSelected(CPDFSDK_Annot* pAnnot)
-{
-	ASSERT(pAnnot != NULL);
-	ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+void CFFL_IFormFiller::OnDeSelected(CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
-	if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-	{
-		pFormFiller->OnDeSelected(pAnnot);
-	}
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    pFormFiller->OnDeSelected(pAnnot);
+  }
 }
 
-void CFFL_IFormFiller::OnSelected(CPDFSDK_Annot* pAnnot)
-{
-	ASSERT(pAnnot != NULL);
-	ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+void CFFL_IFormFiller::OnSelected(CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
-	if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-	{
-		pFormFiller->OnSelected(pAnnot);
-	}
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    pFormFiller->OnSelected(pAnnot);
+  }
 }
 
-FX_BOOL CFFL_IFormFiller::OnSetFocus(CPDFSDK_Annot* pAnnot,FX_UINT nFlag)
-{
-    if (!pAnnot)
-        return FALSE;
+FX_BOOL CFFL_IFormFiller::OnSetFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) {
+  if (!pAnnot)
+    return FALSE;
 
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
-    if (!m_bNotifying)
-    {
-        CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-        if (pWidget->GetAAction(CPDF_AAction::GetFocus))
-        {
-            m_bNotifying = TRUE;
-            pWidget->GetAppearanceAge();
-
-            int nValueAge = pWidget->GetValueAge();
-            pWidget->ClearAppModified();
-
-            CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
-            ASSERT(pPageView != NULL);
-
-            PDFSDK_FieldAction fa;
-            fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
-            fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
-
-            CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, TRUE);
-            if(!pFormFiller) return FALSE;
-            pFormFiller->GetActionData(pPageView, CPDF_AAction::GetFocus, fa);
-            pWidget->OnAAction(CPDF_AAction::GetFocus, fa, pPageView);
-            m_bNotifying = FALSE;
-
-            if (pWidget->IsAppModified())
-            {
-                if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE))
-                {
-                    pFormFiller->ResetPDFWindow(pPageView, nValueAge == pWidget->GetValueAge());
-                }
-            }
-        }
-    }
+  if (!m_bNotifying) {
+    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+    if (pWidget->GetAAction(CPDF_AAction::GetFocus)) {
+      m_bNotifying = TRUE;
+      pWidget->GetAppearanceAge();
 
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, TRUE))
-        return pFormFiller->OnSetFocus(pAnnot, nFlag);
+      int nValueAge = pWidget->GetValueAge();
+      pWidget->ClearAppModified();
 
-    return TRUE;
-}
+      CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
+      ASSERT(pPageView != NULL);
 
-FX_BOOL CFFL_IFormFiller::OnKillFocus(CPDFSDK_Annot* pAnnot,FX_UINT nFlag)
-{
-    if(!pAnnot) return FALSE;
-    ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
+      PDFSDK_FieldAction fa;
+      fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
+      fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
 
-    if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE))
-    {
-        if (pFormFiller->OnKillFocus(pAnnot, nFlag))
-        {
-            if (!m_bNotifying)
-            {
-                CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-                if (pWidget->GetAAction(CPDF_AAction::LoseFocus))
-                {
-                    m_bNotifying = TRUE;
-                    pWidget->ClearAppModified();
-
-                    CPDFSDK_PageView* pPageView = pWidget->GetPageView();
-                    ASSERT(pPageView != NULL);
-
-                    PDFSDK_FieldAction fa;
-                    fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
-                    fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
-
-                    pFormFiller->GetActionData(pPageView, CPDF_AAction::LoseFocus, fa);
-
-                    pWidget->OnAAction(CPDF_AAction::LoseFocus, fa, pPageView);
-                    m_bNotifying = FALSE;
-
-                }
-            }
+      CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, TRUE);
+      if (!pFormFiller)
+        return FALSE;
+      pFormFiller->GetActionData(pPageView, CPDF_AAction::GetFocus, fa);
+      pWidget->OnAAction(CPDF_AAction::GetFocus, fa, pPageView);
+      m_bNotifying = FALSE;
+
+      if (pWidget->IsAppModified()) {
+        if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE)) {
+          pFormFiller->ResetPDFWindow(pPageView,
+                                      nValueAge == pWidget->GetValueAge());
         }
-        else
-            return FALSE;
+      }
     }
+  }
 
-    return TRUE;
-}
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, TRUE))
+    return pFormFiller->OnSetFocus(pAnnot, nFlag);
 
-FX_BOOL CFFL_IFormFiller::IsVisible(CPDFSDK_Widget* pWidget)
-{
-    return pWidget->IsVisible();
+  return TRUE;
 }
 
-FX_BOOL CFFL_IFormFiller::IsReadOnly(CPDFSDK_Widget* pWidget)
-{
-    ASSERT(pWidget != NULL);
+FX_BOOL CFFL_IFormFiller::OnKillFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) {
+  if (!pAnnot)
+    return FALSE;
+  ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
 
-    int nFieldFlags = pWidget->GetFieldFlags();
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
+    if (pFormFiller->OnKillFocus(pAnnot, nFlag)) {
+      if (!m_bNotifying) {
+        CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+        if (pWidget->GetAAction(CPDF_AAction::LoseFocus)) {
+          m_bNotifying = TRUE;
+          pWidget->ClearAppModified();
 
-    return (nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY;
-}
+          CPDFSDK_PageView* pPageView = pWidget->GetPageView();
+          ASSERT(pPageView != NULL);
 
-FX_BOOL CFFL_IFormFiller::IsFillingAllowed(CPDFSDK_Widget* pWidget)
-{
-    if (pWidget->GetFieldType() == FIELDTYPE_PUSHBUTTON)
-        return TRUE;
+          PDFSDK_FieldAction fa;
+          fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
+          fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
 
-    CPDF_Page* pPage = pWidget->GetPDFPage();
-    CPDF_Document* pDocument = pPage->m_pDocument;
-    FX_DWORD dwPermissions = pDocument->GetUserPermissions();
-    return (dwPermissions & FPDFPERM_FILL_FORM) ||
-            (dwPermissions & FPDFPERM_ANNOT_FORM) ||
-            (dwPermissions & FPDFPERM_MODIFY);
-}
+          pFormFiller->GetActionData(pPageView, CPDF_AAction::LoseFocus, fa);
 
-CFFL_FormFiller* CFFL_IFormFiller::GetFormFiller(CPDFSDK_Annot* pAnnot, FX_BOOL bRegister)
-{
-    auto it = m_Maps.find(pAnnot);
-    if (it != m_Maps.end())
-        return it->second;
+          pWidget->OnAAction(CPDF_AAction::LoseFocus, fa, pPageView);
+          m_bNotifying = FALSE;
+        }
+      }
+    } else
+      return FALSE;
+  }
 
-    if (!bRegister)
-        return nullptr;
+  return TRUE;
+}
 
-    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-    int nFieldType = pWidget->GetFieldType();
-    CFFL_FormFiller* pFormFiller;
-    switch (nFieldType) {
-        case FIELDTYPE_PUSHBUTTON:
-            pFormFiller = new CFFL_PushButton(m_pApp, pWidget);
-            break;
-        case FIELDTYPE_CHECKBOX:
-            pFormFiller = new CFFL_CheckBox(m_pApp, pWidget);
-            break;
-      case FIELDTYPE_RADIOBUTTON:
-            pFormFiller = new CFFL_RadioButton(m_pApp, pWidget);
-            break;
-      case FIELDTYPE_TEXTFIELD:
-            pFormFiller = new CFFL_TextField(m_pApp, pWidget);
-            break;
-      case FIELDTYPE_LISTBOX:
-            pFormFiller = new CFFL_ListBox(m_pApp, pWidget);
-            break;
-      case FIELDTYPE_COMBOBOX:
-            pFormFiller = new CFFL_ComboBox(m_pApp, pWidget);
-            break;
-      case FIELDTYPE_UNKNOWN:
-      default:
-            pFormFiller = nullptr;
-            break;
-    }
+FX_BOOL CFFL_IFormFiller::IsVisible(CPDFSDK_Widget* pWidget) {
+  return pWidget->IsVisible();
+}
 
-    if (!pFormFiller)
-        return nullptr;
+FX_BOOL CFFL_IFormFiller::IsReadOnly(CPDFSDK_Widget* pWidget) {
+  ASSERT(pWidget != NULL);
 
-    m_Maps[pAnnot] = pFormFiller;
-    return pFormFiller;
-}
+  int nFieldFlags = pWidget->GetFieldFlags();
 
-void CFFL_IFormFiller::RemoveFormFiller(CPDFSDK_Annot* pAnnot)
-{
-    if ( pAnnot != NULL )
-    {
-        UnRegisterFormFiller( pAnnot );
-    }
+  return (nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY;
 }
 
-void CFFL_IFormFiller::UnRegisterFormFiller(CPDFSDK_Annot* pAnnot)
-{
-    auto it = m_Maps.find(pAnnot);
-    if (it == m_Maps.end())
-        return;
+FX_BOOL CFFL_IFormFiller::IsFillingAllowed(CPDFSDK_Widget* pWidget) {
+  if (pWidget->GetFieldType() == FIELDTYPE_PUSHBUTTON)
+    return TRUE;
 
-    delete it->second;
-    m_Maps.erase(it);
+  CPDF_Page* pPage = pWidget->GetPDFPage();
+  CPDF_Document* pDocument = pPage->m_pDocument;
+  FX_DWORD dwPermissions = pDocument->GetUserPermissions();
+  return (dwPermissions & FPDFPERM_FILL_FORM) ||
+         (dwPermissions & FPDFPERM_ANNOT_FORM) ||
+         (dwPermissions & FPDFPERM_MODIFY);
 }
 
-void CFFL_IFormFiller::SetFocusAnnotTab(CPDFSDK_Annot* pWidget, FX_BOOL bSameField, FX_BOOL bNext)
-{
+CFFL_FormFiller* CFFL_IFormFiller::GetFormFiller(CPDFSDK_Annot* pAnnot,
+                                                 FX_BOOL bRegister) {
+  auto it = m_Maps.find(pAnnot);
+  if (it != m_Maps.end())
+    return it->second;
+
+  if (!bRegister)
+    return nullptr;
+
+  CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+  int nFieldType = pWidget->GetFieldType();
+  CFFL_FormFiller* pFormFiller;
+  switch (nFieldType) {
+    case FIELDTYPE_PUSHBUTTON:
+      pFormFiller = new CFFL_PushButton(m_pApp, pWidget);
+      break;
+    case FIELDTYPE_CHECKBOX:
+      pFormFiller = new CFFL_CheckBox(m_pApp, pWidget);
+      break;
+    case FIELDTYPE_RADIOBUTTON:
+      pFormFiller = new CFFL_RadioButton(m_pApp, pWidget);
+      break;
+    case FIELDTYPE_TEXTFIELD:
+      pFormFiller = new CFFL_TextField(m_pApp, pWidget);
+      break;
+    case FIELDTYPE_LISTBOX:
+      pFormFiller = new CFFL_ListBox(m_pApp, pWidget);
+      break;
+    case FIELDTYPE_COMBOBOX:
+      pFormFiller = new CFFL_ComboBox(m_pApp, pWidget);
+      break;
+    case FIELDTYPE_UNKNOWN:
+    default:
+      pFormFiller = nullptr;
+      break;
+  }
+
+  if (!pFormFiller)
+    return nullptr;
 
+  m_Maps[pAnnot] = pFormFiller;
+  return pFormFiller;
 }
 
-void CFFL_IFormFiller::QueryWherePopup(void* pPrivateData, FX_FLOAT fPopupMin,FX_FLOAT fPopupMax, int32_t & nRet, FX_FLOAT & fPopupRet)
-{
-    ASSERT(pPrivateData != NULL);
+void CFFL_IFormFiller::RemoveFormFiller(CPDFSDK_Annot* pAnnot) {
+  if (pAnnot != NULL) {
+    UnRegisterFormFiller(pAnnot);
+  }
+}
 
-    CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
+void CFFL_IFormFiller::UnRegisterFormFiller(CPDFSDK_Annot* pAnnot) {
+  auto it = m_Maps.find(pAnnot);
+  if (it == m_Maps.end())
+    return;
 
+  delete it->second;
+  m_Maps.erase(it);
+}
 
+void CFFL_IFormFiller::SetFocusAnnotTab(CPDFSDK_Annot* pWidget,
+                                        FX_BOOL bSameField,
+                                        FX_BOOL bNext) {}
 
+void CFFL_IFormFiller::QueryWherePopup(void* pPrivateData,
+                                       FX_FLOAT fPopupMin,
+                                       FX_FLOAT fPopupMax,
+                                       int32_t& nRet,
+                                       FX_FLOAT& fPopupRet) {
+  ASSERT(pPrivateData != NULL);
 
-    CPDF_Rect rcPageView(0,0,0,0);
-    rcPageView.right = pData->pWidget->GetPDFPage()->GetPageWidth();
-    rcPageView.bottom = pData->pWidget->GetPDFPage()->GetPageHeight();
-    rcPageView.Normalize();
+  CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
 
+  CPDF_Rect rcPageView(0, 0, 0, 0);
+  rcPageView.right = pData->pWidget->GetPDFPage()->GetPageWidth();
+  rcPageView.bottom = pData->pWidget->GetPDFPage()->GetPageHeight();
+  rcPageView.Normalize();
 
-    ASSERT(pData->pWidget != NULL);
-    CPDF_Rect rcAnnot = pData->pWidget->GetRect();
+  ASSERT(pData->pWidget != NULL);
+  CPDF_Rect rcAnnot = pData->pWidget->GetRect();
 
-    FX_FLOAT fTop = 0.0f;
-    FX_FLOAT fBottom = 0.0f;
+  FX_FLOAT fTop = 0.0f;
+  FX_FLOAT fBottom = 0.0f;
 
-    CPDFSDK_Widget * pWidget = (CPDFSDK_Widget*)pData->pWidget;
-    switch (pWidget->GetRotate() / 90)
-    {
+  CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pData->pWidget;
+  switch (pWidget->GetRotate() / 90) {
     default:
     case 0:
-        fTop = rcPageView.top - rcAnnot.top;
-        fBottom = rcAnnot.bottom - rcPageView.bottom;
-        break;
+      fTop = rcPageView.top - rcAnnot.top;
+      fBottom = rcAnnot.bottom - rcPageView.bottom;
+      break;
     case 1:
-        fTop = rcAnnot.left - rcPageView.left;
-        fBottom = rcPageView.right - rcAnnot.right;
-        break;
+      fTop = rcAnnot.left - rcPageView.left;
+      fBottom = rcPageView.right - rcAnnot.right;
+      break;
     case 2:
-        fTop = rcAnnot.bottom - rcPageView.bottom;
-        fBottom = rcPageView.top - rcAnnot.top;
-        break;
+      fTop = rcAnnot.bottom - rcPageView.bottom;
+      fBottom = rcPageView.top - rcAnnot.top;
+      break;
     case 3:
-        fTop = rcPageView.right - rcAnnot.right;
-        fBottom = rcAnnot.left - rcPageView.left;
-        break;
-    }
-
-    FX_FLOAT fFactHeight = 0;
-    FX_BOOL bBottom = TRUE;
-    FX_FLOAT fMaxListBoxHeight = 0;
-    if (fPopupMax > FFL_MAXLISTBOXHEIGHT)
-    {
-        if (fPopupMin > FFL_MAXLISTBOXHEIGHT)
-        {
-            fMaxListBoxHeight = fPopupMin;
-        }
-        else
-        {
-            fMaxListBoxHeight = FFL_MAXLISTBOXHEIGHT;
-        }
+      fTop = rcPageView.right - rcAnnot.right;
+      fBottom = rcAnnot.left - rcPageView.left;
+      break;
+  }
+
+  FX_FLOAT fFactHeight = 0;
+  FX_BOOL bBottom = TRUE;
+  FX_FLOAT fMaxListBoxHeight = 0;
+  if (fPopupMax > FFL_MAXLISTBOXHEIGHT) {
+    if (fPopupMin > FFL_MAXLISTBOXHEIGHT) {
+      fMaxListBoxHeight = fPopupMin;
+    } else {
+      fMaxListBoxHeight = FFL_MAXLISTBOXHEIGHT;
     }
-    else
-        fMaxListBoxHeight = fPopupMax;
-
-    if (fBottom > fMaxListBoxHeight)
-    {
-        fFactHeight = fMaxListBoxHeight;
+  } else
+    fMaxListBoxHeight = fPopupMax;
+
+  if (fBottom > fMaxListBoxHeight) {
+    fFactHeight = fMaxListBoxHeight;
+    bBottom = TRUE;
+  } else {
+    if (fTop > fMaxListBoxHeight) {
+      fFactHeight = fMaxListBoxHeight;
+      bBottom = FALSE;
+    } else {
+      if (fTop > fBottom) {
+        fFactHeight = fTop;
+        bBottom = FALSE;
+      } else {
+        fFactHeight = fBottom;
         bBottom = TRUE;
+      }
     }
-    else
-    {
-        if (fTop > fMaxListBoxHeight)
-        {
-            fFactHeight = fMaxListBoxHeight;
-            bBottom = FALSE;
-        }
-        else
-        {
-            if (fTop > fBottom)
-            {
-                fFactHeight = fTop;
-                bBottom = FALSE;
-            }
-            else
-            {
-                fFactHeight = fBottom;
-                bBottom = TRUE;
-            }
-        }
-    }
+  }
+
+  nRet = bBottom ? 0 : 1;
+  fPopupRet = fFactHeight;
+}
 
-    nRet = bBottom ? 0 : 1;
-    fPopupRet = fFactHeight;
+void CFFL_IFormFiller::OnSetWindowRect(void* pPrivateData,
+                                       const CPDF_Rect& rcWindow) {
+  ASSERT(pPrivateData != NULL);
+
+  CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
+
+  if (CFFL_FormFiller* pFormFiller = GetFormFiller(pData->pWidget, TRUE)) {
+    CPDF_Rect rcOld =
+        pFormFiller->PWLtoFFL(pFormFiller->GetWindowRect(pData->pPageView));
+    CPDF_Rect rcNew = pFormFiller->PWLtoFFL(rcWindow);
+    pFormFiller->SetWindowRect(pData->pPageView, rcWindow);
+
+    CPDF_Rect unRect = rcOld;
+    unRect.Union(rcNew);
+    // FX_RECT rcRect = unRect.GetOutterRect();
+    unRect.left = (FX_FLOAT)(unRect.left - 0.5);
+    unRect.right = (FX_FLOAT)(unRect.right + 0.5);
+    unRect.top = (FX_FLOAT)(unRect.top + 0.5);
+    unRect.bottom = (FX_FLOAT)(unRect.bottom - 0.5);
+    m_pApp->FFI_Invalidate(pData->pWidget->GetPDFXFAPage(), unRect.left,
+                           unRect.top, unRect.right, unRect.bottom);
+  }
 }
 
-void CFFL_IFormFiller::OnSetWindowRect(void* pPrivateData, const CPDF_Rect & rcWindow)
-{
-	ASSERT(pPrivateData != NULL);
+void CFFL_IFormFiller::OnKeyStroke(FX_BOOL bEditOrList,
+                                   void* pPrivateData,
+                                   int32_t nKeyCode,
+                                   CFX_WideString& strChange,
+                                   const CFX_WideString& strChangeEx,
+                                   FX_BOOL bKeyDown,
+                                   FX_BOOL& bRC,
+                                   FX_BOOL& bExit) {
+  ASSERT(pPrivateData != NULL);
+  CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
+  ASSERT(pData->pWidget != NULL);
+
+  CFFL_FormFiller* pFormFiller = GetFormFiller(pData->pWidget, FALSE);
+  ASSERT(pFormFiller != NULL);
+
+  pFormFiller->OnKeyStroke(bKeyDown);
+}
 
-	CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
+void CFFL_IFormFiller::OnKeyStrokeCommit(CPDFSDK_Widget* pWidget,
+                                         CPDFSDK_PageView* pPageView,
+                                         FX_BOOL& bRC,
+                                         FX_BOOL& bExit,
+                                         FX_DWORD nFlag) {
+  if (!m_bNotifying) {
+    ASSERT(pWidget != NULL);
+    if (pWidget->GetAAction(CPDF_AAction::KeyStroke)) {
+      m_bNotifying = TRUE;
+      pWidget->ClearAppModified();
 
-	if (CFFL_FormFiller* pFormFiller = GetFormFiller(pData->pWidget, TRUE))
-	{
+      ASSERT(pPageView != NULL);
 
-		CPDF_Rect rcOld = pFormFiller->PWLtoFFL(pFormFiller->GetWindowRect(pData->pPageView));
-		CPDF_Rect rcNew = pFormFiller->PWLtoFFL(rcWindow);
-		pFormFiller->SetWindowRect(pData->pPageView, rcWindow);
+      PDFSDK_FieldAction fa;
+      fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
+      fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
+      fa.bWillCommit = TRUE;
+      fa.bKeyDown = TRUE;
+      fa.bRC = TRUE;
 
-		CPDF_Rect unRect = rcOld;
-		unRect.Union(rcNew);
-		//FX_RECT rcRect = unRect.GetOutterRect();
-		unRect.left = (FX_FLOAT)(unRect.left - 0.5);
-		unRect.right = (FX_FLOAT)(unRect.right + 0.5);
-		unRect.top = (FX_FLOAT)(unRect.top + 0.5);
-		unRect.bottom = (FX_FLOAT)(unRect.bottom -0.5);
-		m_pApp->FFI_Invalidate(pData->pWidget->GetPDFXFAPage(), unRect.left, unRect.top, unRect.right, unRect.bottom);
-	}
-}
+      CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE);
+      ASSERT(pFormFiller != NULL);
 
-void CFFL_IFormFiller::OnKeyStroke(FX_BOOL bEditOrList, void* pPrivateData, int32_t nKeyCode, CFX_WideString& strChange,
-								   const CFX_WideString& strChangeEx, FX_BOOL bKeyDown,
-								   FX_BOOL & bRC, FX_BOOL & bExit)
-{
-	ASSERT(pPrivateData != NULL);
-	CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
-	ASSERT(pData->pWidget != NULL);
+      pFormFiller->GetActionData(pPageView, CPDF_AAction::KeyStroke, fa);
+      pFormFiller->SaveState(pPageView);
 
-	CFFL_FormFiller* pFormFiller = GetFormFiller(pData->pWidget, FALSE);
-	ASSERT(pFormFiller != NULL);
+      PDFSDK_FieldAction faOld = fa;
+      pWidget->OnAAction(CPDF_AAction::KeyStroke, fa, pPageView);
 
-	pFormFiller->OnKeyStroke(bKeyDown);
+      bRC = fa.bRC;
+      //          bExit = !IsValidAnnot(m_pApp, pDocument, pDocView, pPageView,
+      //          pWidget);
+
+      m_bNotifying = FALSE;
+    }
+  }
 }
 
-void CFFL_IFormFiller::OnKeyStrokeCommit(CPDFSDK_Widget* pWidget, CPDFSDK_PageView* pPageView, FX_BOOL& bRC, FX_BOOL& bExit, FX_DWORD nFlag)
-{
-    if (!m_bNotifying)
-    {
-        ASSERT(pWidget != NULL);
-        if (pWidget->GetAAction(CPDF_AAction::KeyStroke))
-        {
-            m_bNotifying = TRUE;
-            pWidget->ClearAppModified();
+void CFFL_IFormFiller::OnValidate(CPDFSDK_Widget* pWidget,
+                                  CPDFSDK_PageView* pPageView,
+                                  FX_BOOL& bRC,
+                                  FX_BOOL& bExit,
+                                  FX_DWORD nFlag) {
+  if (!m_bNotifying) {
+    ASSERT(pWidget != NULL);
+    if (pWidget->GetAAction(CPDF_AAction::Validate)) {
+      m_bNotifying = TRUE;
+      pWidget->ClearAppModified();
 
-            ASSERT(pPageView != NULL);
+      ASSERT(pPageView != NULL);
+      //          CReader_DocView* pDocView = pPageView->GetDocView();
+      //          ASSERT(pDocView != NULL);
 
-            PDFSDK_FieldAction fa;
-            fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
-            fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
-            fa.bWillCommit = TRUE;
-            fa.bKeyDown = TRUE;
-            fa.bRC = TRUE;
+      PDFSDK_FieldAction fa;
+      fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
+      fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
+      fa.bKeyDown = TRUE;
+      fa.bRC = TRUE;
 
-            CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE);
-            ASSERT(pFormFiller != NULL);
+      CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE);
+      ASSERT(pFormFiller != NULL);
 
-            pFormFiller->GetActionData(pPageView, CPDF_AAction::KeyStroke, fa);
-            pFormFiller->SaveState(pPageView);
+      pFormFiller->GetActionData(pPageView, CPDF_AAction::Validate, fa);
+      pFormFiller->SaveState(pPageView);
 
-            PDFSDK_FieldAction faOld = fa;
-            pWidget->OnAAction(CPDF_AAction::KeyStroke, fa, pPageView);
+      PDFSDK_FieldAction faOld = fa;
+      pWidget->OnAAction(CPDF_AAction::Validate, fa, pPageView);
 
-            bRC = fa.bRC;
-//          bExit = !IsValidAnnot(m_pApp, pDocument, pDocView, pPageView, pWidget);
+      bRC = fa.bRC;
+      //          bExit = !IsValidAnnot(m_pApp, pDocument, pDocView, pPageView,
+      //          pWidget);
 
-            m_bNotifying = FALSE;
-        }
+      m_bNotifying = FALSE;
     }
+  }
 }
 
-void CFFL_IFormFiller::OnValidate(CPDFSDK_Widget* pWidget, CPDFSDK_PageView* pPageView, FX_BOOL& bRC, FX_BOOL& bExit, FX_DWORD nFlag)
-{
-    if (!m_bNotifying)
-    {
-        ASSERT(pWidget != NULL);
-        if (pWidget->GetAAction(CPDF_AAction::Validate))
-        {
-            m_bNotifying = TRUE;
-            pWidget->ClearAppModified();
+void CFFL_IFormFiller::OnCalculate(CPDFSDK_Widget* pWidget,
+                                   CPDFSDK_PageView* pPageView,
+                                   FX_BOOL& bExit,
+                                   FX_DWORD nFlag) {
+  if (!m_bNotifying) {
+    ASSERT(pWidget != NULL);
+    ASSERT(pPageView != NULL);
+    //      CReader_DocView* pDocView = pPageView->GetDocView();
+    //      ASSERT(pDocView != NULL);
+    CPDFSDK_Document* pDocument = pPageView->GetSDKDocument();
+    ASSERT(pDocument != NULL);
+
+    CPDFSDK_InterForm* pInterForm =
+        (CPDFSDK_InterForm*)pDocument->GetInterForm();
+    ASSERT(pInterForm != NULL);
 
-            ASSERT(pPageView != NULL);
-//          CReader_DocView* pDocView = pPageView->GetDocView();
-//          ASSERT(pDocView != NULL);
+    pInterForm->OnCalculate(pWidget->GetFormField());
 
+    //      bExit = !IsValidAnnot(m_pApp, pDocument, pDocView, pPageView,
+    //      pWidget);
 
+    m_bNotifying = FALSE;
+  }
+}
 
-            PDFSDK_FieldAction fa;
-            fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
-            fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
-            fa.bKeyDown = TRUE;
-            fa.bRC = TRUE;
+void CFFL_IFormFiller::OnFormat(CPDFSDK_Widget* pWidget,
+                                CPDFSDK_PageView* pPageView,
+                                FX_BOOL& bExit,
+                                FX_DWORD nFlag) {
+  if (!m_bNotifying) {
+    ASSERT(pWidget != NULL);
+    ASSERT(pPageView != NULL);
+    //      CReader_DocView* pDocView = pPageView->GetDocView();
+    //      ASSERT(pDocView != NULL);
+    CPDFSDK_Document* pDocument = pPageView->GetSDKDocument();
+    ASSERT(pDocument != NULL);
 
-            CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE);
-            ASSERT(pFormFiller != NULL);
+    CPDFSDK_InterForm* pInterForm =
+        (CPDFSDK_InterForm*)pDocument->GetInterForm();
+    ASSERT(pInterForm != NULL);
 
-            pFormFiller->GetActionData(pPageView, CPDF_AAction::Validate, fa);
-            pFormFiller->SaveState(pPageView);
+    FX_BOOL bFormated = FALSE;
+    CFX_WideString sValue =
+        pInterForm->OnFormat(pWidget->GetFormField(), bFormated);
 
-            PDFSDK_FieldAction faOld = fa;
-            pWidget->OnAAction(CPDF_AAction::Validate, fa, pPageView);
+    //      bExit = !IsValidAnnot(m_pApp, pDocument, pDocView, pPageView,
+    //      pWidget);
 
-            bRC = fa.bRC;
-//          bExit = !IsValidAnnot(m_pApp, pDocument, pDocView, pPageView, pWidget);
+    if (bExit)
+      return;
 
-            m_bNotifying = FALSE;
-        }
+    if (bFormated) {
+      pInterForm->ResetFieldAppearance(pWidget->GetFormField(), sValue.c_str(),
+                                       TRUE);
+      pInterForm->UpdateField(pWidget->GetFormField());
     }
+
+    m_bNotifying = FALSE;
+  }
 }
 
-void CFFL_IFormFiller::OnCalculate(CPDFSDK_Widget* pWidget, CPDFSDK_PageView* pPageView, FX_BOOL& bExit, FX_DWORD nFlag)
-{
-    if (!m_bNotifying)
-    {
-        ASSERT(pWidget != NULL);
-        ASSERT(pPageView != NULL);
-//      CReader_DocView* pDocView = pPageView->GetDocView();
-//      ASSERT(pDocView != NULL);
-        CPDFSDK_Document* pDocument = pPageView->GetSDKDocument();
-        ASSERT(pDocument != NULL);
+void CFFL_IFormFiller::OnClick(CPDFSDK_Widget* pWidget,
+                               CPDFSDK_PageView* pPageView,
+                               FX_BOOL& bReset,
+                               FX_BOOL& bExit,
+                               FX_UINT nFlag) {
+  ASSERT(pWidget != NULL);
+
+  if (!m_bNotifying) {
+    if (pWidget->HasXFAAAction(PDFSDK_XFA_Click)) {
+      m_bNotifying = TRUE;
+      int nAge = pWidget->GetAppearanceAge();
+      int nValueAge = pWidget->GetValueAge();
+
+      PDFSDK_FieldAction fa;
+      fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
+      fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
 
-        CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
-        ASSERT(pInterForm != NULL);
+      pWidget->OnXFAAAction(PDFSDK_XFA_Click, fa, pPageView);
+      m_bNotifying = FALSE;
 
-        pInterForm->OnCalculate(pWidget->GetFormField());
+      if (!IsValidAnnot(pPageView, pWidget)) {
+        bExit = TRUE;
+        return;
+      }
 
-//      bExit = !IsValidAnnot(m_pApp, pDocument, pDocView, pPageView, pWidget);
+      if (nAge != pWidget->GetAppearanceAge()) {
+        if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE)) {
+          pFormFiller->ResetPDFWindow(pPageView,
+                                      nValueAge == pWidget->GetValueAge());
+        }
 
-        m_bNotifying = FALSE;
+        bReset = TRUE;
+      }
     }
+  }
 }
 
-void CFFL_IFormFiller::OnFormat(CPDFSDK_Widget* pWidget, CPDFSDK_PageView* pPageView, FX_BOOL& bExit, FX_DWORD nFlag)
-{
-    if (!m_bNotifying)
-    {
-        ASSERT(pWidget != NULL);
-        ASSERT(pPageView != NULL);
-//      CReader_DocView* pDocView = pPageView->GetDocView();
-//      ASSERT(pDocView != NULL);
-        CPDFSDK_Document* pDocument = pPageView->GetSDKDocument();
-        ASSERT(pDocument != NULL);
+void CFFL_IFormFiller::OnFull(CPDFSDK_Widget* pWidget,
+                              CPDFSDK_PageView* pPageView,
+                              FX_BOOL& bReset,
+                              FX_BOOL& bExit,
+                              FX_UINT nFlag) {
+  ASSERT(pWidget != NULL);
 
-        CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
-        ASSERT(pInterForm != NULL);
+  if (!m_bNotifying) {
+    if (pWidget->HasXFAAAction(PDFSDK_XFA_Full)) {
+      m_bNotifying = TRUE;
+      int nAge = pWidget->GetAppearanceAge();
+      int nValueAge = pWidget->GetValueAge();
 
-        FX_BOOL bFormated = FALSE;
-        CFX_WideString sValue = pInterForm->OnFormat(pWidget->GetFormField(), bFormated);
+      PDFSDK_FieldAction fa;
+      fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
+      fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
 
-//      bExit = !IsValidAnnot(m_pApp, pDocument, pDocView, pPageView, pWidget);
+      pWidget->OnXFAAAction(PDFSDK_XFA_Full, fa, pPageView);
+      m_bNotifying = FALSE;
 
-        if (bExit) return;
+      if (!IsValidAnnot(pPageView, pWidget)) {
+        bExit = TRUE;
+        return;
+      }
 
-        if (bFormated)
-        {
-            pInterForm->ResetFieldAppearance(pWidget->GetFormField(), sValue.c_str(), TRUE);
-            pInterForm->UpdateField(pWidget->GetFormField());
+      if (nAge != pWidget->GetAppearanceAge()) {
+        if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE)) {
+          pFormFiller->ResetPDFWindow(pPageView,
+                                      nValueAge == pWidget->GetValueAge());
         }
 
-        m_bNotifying = FALSE;
+        bReset = TRUE;
+      }
     }
+  }
 }
 
-void CFFL_IFormFiller::OnClick(CPDFSDK_Widget* pWidget, CPDFSDK_PageView* pPageView, FX_BOOL& bReset, FX_BOOL& bExit, FX_UINT nFlag)
-{
-    ASSERT(pWidget != NULL);
-
-    if (!m_bNotifying)
-    {
-        if (pWidget->HasXFAAAction(PDFSDK_XFA_Click))
-        {
-            m_bNotifying = TRUE;
-            int nAge = pWidget->GetAppearanceAge();
-            int nValueAge = pWidget->GetValueAge();
-
-            PDFSDK_FieldAction fa;
-            fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
-            fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
-
-            pWidget->OnXFAAAction(PDFSDK_XFA_Click, fa, pPageView);
-            m_bNotifying = FALSE;
-
-            if (!IsValidAnnot(pPageView, pWidget))
-            {
-                bExit = TRUE;
-                return;
-            }
-
-            if (nAge != pWidget->GetAppearanceAge())
-            {
-                if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE))
-                {
-                    pFormFiller->ResetPDFWindow(pPageView, nValueAge == pWidget->GetValueAge());
-                }
-
-                bReset = TRUE;
-            }
-        }
-    }
+void CFFL_IFormFiller::OnPopupPreOpen(void* pPrivateData,
+                                      FX_BOOL& bExit,
+                                      FX_DWORD nFlag) {
+  ASSERT(pPrivateData != NULL);
+  CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
+  ASSERT(pData->pWidget != NULL);
+
+  FX_BOOL bTempReset = FALSE;
+  FX_BOOL bTempExit = FALSE;
+  this->OnPreOpen(pData->pWidget, pData->pPageView, bTempReset, bTempExit,
+                  nFlag);
+
+  if (bTempReset || bTempExit) {
+    bExit = TRUE;
+  }
 }
 
-void CFFL_IFormFiller::OnFull(CPDFSDK_Widget* pWidget, CPDFSDK_PageView* pPageView, FX_BOOL& bReset, FX_BOOL& bExit, FX_UINT nFlag)
-{
-    ASSERT(pWidget != NULL);
-
-    if (!m_bNotifying)
-    {
-        if (pWidget->HasXFAAAction(PDFSDK_XFA_Full))
-        {
-            m_bNotifying = TRUE;
-            int nAge = pWidget->GetAppearanceAge();
-            int nValueAge = pWidget->GetValueAge();
-
-            PDFSDK_FieldAction fa;
-            fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
-            fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
-
-            pWidget->OnXFAAAction(PDFSDK_XFA_Full, fa, pPageView);
-            m_bNotifying = FALSE;
-
-            if (!IsValidAnnot(pPageView, pWidget))
-            {
-                bExit = TRUE;
-                return;
-            }
-
-            if (nAge != pWidget->GetAppearanceAge())
-            {
-                if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE))
-                {
-                    pFormFiller->ResetPDFWindow(pPageView, nValueAge == pWidget->GetValueAge());
-                }
-
-                bReset = TRUE;
-            }
-        }
-    }
+void CFFL_IFormFiller::OnPopupPostOpen(void* pPrivateData,
+                                       FX_BOOL& bExit,
+                                       FX_DWORD nFlag) {
+  ASSERT(pPrivateData != NULL);
+  CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
+  ASSERT(pData->pWidget != NULL);
+
+  FX_BOOL bTempReset = FALSE;
+  FX_BOOL bTempExit = FALSE;
+  this->OnPostOpen(pData->pWidget, pData->pPageView, bTempReset, bTempExit,
+                   nFlag);
+
+  if (bTempReset || bTempExit) {
+    bExit = TRUE;
+  }
 }
 
-void CFFL_IFormFiller::OnPopupPreOpen(void* pPrivateData, FX_BOOL& bExit, FX_DWORD nFlag)
-{
-	ASSERT(pPrivateData != NULL);
-	CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
-	ASSERT(pData->pWidget != NULL);
-
-	FX_BOOL bTempReset = FALSE;
-	FX_BOOL bTempExit = FALSE;
-	this->OnPreOpen(pData->pWidget, pData->pPageView, bTempReset, bTempExit, nFlag);
+void CFFL_IFormFiller::OnPreOpen(CPDFSDK_Widget* pWidget,
+                                 CPDFSDK_PageView* pPageView,
+                                 FX_BOOL& bReset,
+                                 FX_BOOL& bExit,
+                                 FX_UINT nFlag) {
+  ASSERT(pWidget != NULL);
 
-	if (bTempReset || bTempExit)
-	{
-		bExit = TRUE;
-	}
-}
+  if (!m_bNotifying) {
+    if (pWidget->HasXFAAAction(PDFSDK_XFA_PreOpen)) {
+      m_bNotifying = TRUE;
+      int nAge = pWidget->GetAppearanceAge();
+      int nValueAge = pWidget->GetValueAge();
 
-void CFFL_IFormFiller::OnPopupPostOpen(void* pPrivateData, FX_BOOL& bExit, FX_DWORD nFlag)
-{
-	ASSERT(pPrivateData != NULL);
-	CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
-	ASSERT(pData->pWidget != NULL);
+      PDFSDK_FieldAction fa;
+      fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
+      fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
 
-	FX_BOOL bTempReset = FALSE;
-	FX_BOOL bTempExit = FALSE;
-	this->OnPostOpen(pData->pWidget, pData->pPageView, bTempReset, bTempExit, nFlag);
+      pWidget->OnXFAAAction(PDFSDK_XFA_PreOpen, fa, pPageView);
+      m_bNotifying = FALSE;
 
-	if (bTempReset || bTempExit)
-	{
-		bExit = TRUE;
-	}
-}
+      if (!IsValidAnnot(pPageView, pWidget)) {
+        bExit = TRUE;
+        return;
+      }
 
-void CFFL_IFormFiller::OnPreOpen(CPDFSDK_Widget* pWidget, CPDFSDK_PageView* pPageView, FX_BOOL& bReset, FX_BOOL& bExit, FX_UINT nFlag)
-{
-	ASSERT(pWidget != NULL);
-
-	if (!m_bNotifying)
-	{
-		if (pWidget->HasXFAAAction(PDFSDK_XFA_PreOpen))
-		{
-			m_bNotifying = TRUE;
-			int nAge = pWidget->GetAppearanceAge();
-			int nValueAge = pWidget->GetValueAge();
-
-			PDFSDK_FieldAction fa;
-			fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
-			fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
-
-			pWidget->OnXFAAAction(PDFSDK_XFA_PreOpen, fa, pPageView);
-			m_bNotifying = FALSE;
-
-			if (!IsValidAnnot(pPageView, pWidget))
-			{
-				bExit = TRUE;
-				return;
-			}
-
-			if (nAge != pWidget->GetAppearanceAge())
-			{
-				if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE))
-				{
-					pFormFiller->ResetPDFWindow(pPageView, nValueAge == pWidget->GetValueAge());
-				}
-
-				bReset = TRUE;
-			}
-		}
-	}
-}
+      if (nAge != pWidget->GetAppearanceAge()) {
+        if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE)) {
+          pFormFiller->ResetPDFWindow(pPageView,
+                                      nValueAge == pWidget->GetValueAge());
+        }
 
-void CFFL_IFormFiller::OnPostOpen(CPDFSDK_Widget* pWidget, CPDFSDK_PageView* pPageView, FX_BOOL& bReset, FX_BOOL& bExit, FX_UINT nFlag)
-{
-	ASSERT(pWidget != NULL);
-
-	if (!m_bNotifying)
-	{
-		if (pWidget->HasXFAAAction(PDFSDK_XFA_PostOpen))
-		{
-			m_bNotifying = TRUE;
-			int nAge = pWidget->GetAppearanceAge();
-			int nValueAge = pWidget->GetValueAge();
-
-			PDFSDK_FieldAction fa;
-			fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
-			fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
-
-			pWidget->OnXFAAAction(PDFSDK_XFA_PostOpen, fa, pPageView);
-			m_bNotifying = FALSE;
-
-			if (!IsValidAnnot(pPageView, pWidget))
-			{
-				bExit = TRUE;
-				return;
-			}
-
-			if (nAge != pWidget->GetAppearanceAge())
-			{
-				if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE))
-				{
-					pFormFiller->ResetPDFWindow(pPageView, nValueAge == pWidget->GetValueAge());
-				}
-
-				bReset = TRUE;
-			}
-		}
-	}
+        bReset = TRUE;
+      }
+    }
+  }
 }
 
-FX_BOOL	CFFL_IFormFiller::IsValidAnnot(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot)
-{
-    if(pPageView)
-        return pPageView->IsValidAnnot(pAnnot->GetPDFAnnot());
+void CFFL_IFormFiller::OnPostOpen(CPDFSDK_Widget* pWidget,
+                                  CPDFSDK_PageView* pPageView,
+                                  FX_BOOL& bReset,
+                                  FX_BOOL& bExit,
+                                  FX_UINT nFlag) {
+  ASSERT(pWidget != NULL);
 
-    return FALSE;
-}
+  if (!m_bNotifying) {
+    if (pWidget->HasXFAAAction(PDFSDK_XFA_PostOpen)) {
+      m_bNotifying = TRUE;
+      int nAge = pWidget->GetAppearanceAge();
+      int nValueAge = pWidget->GetValueAge();
 
-void CFFL_IFormFiller::BeforeUndo(CPDFSDK_Document* pDocument)
-{
+      PDFSDK_FieldAction fa;
+      fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
+      fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
 
-}
+      pWidget->OnXFAAAction(PDFSDK_XFA_PostOpen, fa, pPageView);
+      m_bNotifying = FALSE;
 
-void CFFL_IFormFiller::BeforeRedo(CPDFSDK_Document* pDocument)
-{
-	BeforeUndo(pDocument);
-}
+      if (!IsValidAnnot(pPageView, pWidget)) {
+        bExit = TRUE;
+        return;
+      }
 
-void CFFL_IFormFiller::AfterUndo(CPDFSDK_Document* pDocument)
-{
-}
+      if (nAge != pWidget->GetAppearanceAge()) {
+        if (CFFL_FormFiller* pFormFiller = GetFormFiller(pWidget, FALSE)) {
+          pFormFiller->ResetPDFWindow(pPageView,
+                                      nValueAge == pWidget->GetValueAge());
+        }
 
-void CFFL_IFormFiller::AfterRedo(CPDFSDK_Document* pDocument)
-{
+        bReset = TRUE;
+      }
+    }
+  }
 }
 
-FX_BOOL	CFFL_IFormFiller::CanCopy(CPDFSDK_Document* pDocument)
-{
+FX_BOOL CFFL_IFormFiller::IsValidAnnot(CPDFSDK_PageView* pPageView,
+                                       CPDFSDK_Annot* pAnnot) {
+  if (pPageView)
+    return pPageView->IsValidAnnot(pAnnot->GetPDFAnnot());
 
-	return FALSE;
+  return FALSE;
 }
 
-FX_BOOL	CFFL_IFormFiller::CanCut(CPDFSDK_Document* pDocument)
-{
+void CFFL_IFormFiller::BeforeUndo(CPDFSDK_Document* pDocument) {}
 
-	return FALSE;
+void CFFL_IFormFiller::BeforeRedo(CPDFSDK_Document* pDocument) {
+  BeforeUndo(pDocument);
 }
 
-FX_BOOL	CFFL_IFormFiller::CanPaste(CPDFSDK_Document* pDocument)
-{
+void CFFL_IFormFiller::AfterUndo(CPDFSDK_Document* pDocument) {}
+
+void CFFL_IFormFiller::AfterRedo(CPDFSDK_Document* pDocument) {}
 
-	return FALSE;
+FX_BOOL CFFL_IFormFiller::CanCopy(CPDFSDK_Document* pDocument) {
+  return FALSE;
 }
 
-void CFFL_IFormFiller::DoCopy(CPDFSDK_Document* pDocument)
-{
+FX_BOOL CFFL_IFormFiller::CanCut(CPDFSDK_Document* pDocument) {
+  return FALSE;
 }
 
-void CFFL_IFormFiller::DoCut(CPDFSDK_Document* pDocument)
-{
+FX_BOOL CFFL_IFormFiller::CanPaste(CPDFSDK_Document* pDocument) {
+  return FALSE;
 }
 
-void CFFL_IFormFiller::DoPaste(CPDFSDK_Document* pDocument)
-{
+void CFFL_IFormFiller::DoCopy(CPDFSDK_Document* pDocument) {}
+
+void CFFL_IFormFiller::DoCut(CPDFSDK_Document* pDocument) {}
+
+void CFFL_IFormFiller::DoPaste(CPDFSDK_Document* pDocument) {}
+void CFFL_IFormFiller::OnBeforeKeyStroke(FX_BOOL bEditOrList,
+                                         void* pPrivateData,
+                                         int32_t nKeyCode,
+                                         CFX_WideString& strChange,
+                                         const CFX_WideString& strChangeEx,
+                                         int nSelStart,
+                                         int nSelEnd,
+                                         FX_BOOL bKeyDown,
+                                         FX_BOOL& bRC,
+                                         FX_BOOL& bExit,
+                                         FX_DWORD nFlag) {
+  ASSERT(pPrivateData != NULL);
+  CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
+  ASSERT(pData->pWidget != NULL);
+
+  CFFL_FormFiller* pFormFiller = GetFormFiller(pData->pWidget, FALSE);
+  ASSERT(pFormFiller != NULL);
+
+  if (pFormFiller->IsFieldFull(pData->pPageView)) {
+    FX_BOOL bFullExit = FALSE;
+    FX_BOOL bFullReset = FALSE;
+    OnFull(pData->pWidget, pData->pPageView, bFullReset, bFullExit, nFlag);
+
+    if (bFullReset || bFullExit) {
+      bExit = TRUE;
+      return;
+    }
+  }
+
+  if (!m_bNotifying) {
+    if (pData->pWidget->GetAAction(CPDF_AAction::KeyStroke)) {
+      m_bNotifying = TRUE;
+      int nAge = pData->pWidget->GetAppearanceAge();
+      int nValueAge = pData->pWidget->GetValueAge();
+
+      ASSERT(pData->pPageView != NULL);
+      CPDFSDK_Document* pDocument = pData->pPageView->GetSDKDocument();
+
+      PDFSDK_FieldAction fa;
+      fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
+      fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
+      fa.sChange = strChange;
+      fa.sChangeEx = strChangeEx;
+      fa.bKeyDown = bKeyDown;
+      fa.bWillCommit = FALSE;
+      fa.bRC = TRUE;
+      fa.nSelStart = nSelStart;
+      fa.nSelEnd = nSelEnd;
+
+      pFormFiller->GetActionData(pData->pPageView, CPDF_AAction::KeyStroke, fa);
+      pFormFiller->SaveState(pData->pPageView);
+
+      if (pData->pWidget->OnAAction(CPDF_AAction::KeyStroke, fa,
+                                    pData->pPageView)) {
+        if (!IsValidAnnot(pData->pPageView, pData->pWidget)) {
+          bExit = TRUE;
+          m_bNotifying = FALSE;
+          return;
+        }
 
-}
-void CFFL_IFormFiller::OnBeforeKeyStroke(FX_BOOL bEditOrList, void* pPrivateData, int32_t nKeyCode,
-											  CFX_WideString & strChange, const CFX_WideString& strChangeEx,
-											  int nSelStart, int nSelEnd,
-										FX_BOOL bKeyDown, FX_BOOL & bRC, FX_BOOL & bExit, FX_DWORD nFlag)
-{
-	ASSERT(pPrivateData != NULL);
-	CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
-	ASSERT(pData->pWidget != NULL);
-
-	CFFL_FormFiller* pFormFiller = GetFormFiller(pData->pWidget, FALSE);
-	ASSERT(pFormFiller != NULL);
-
-	if (pFormFiller->IsFieldFull(pData->pPageView))
-	{
-		FX_BOOL bFullExit = FALSE;
-		FX_BOOL bFullReset = FALSE;
-		OnFull(pData->pWidget, pData->pPageView, bFullReset, bFullExit, nFlag);
-
-		if (bFullReset || bFullExit)
-		{
-			bExit = TRUE;
-			return;
-		}
-	}
-
-	if (!m_bNotifying)
-	{
-		if (pData->pWidget->GetAAction(CPDF_AAction::KeyStroke))
-		{
-			m_bNotifying = TRUE;
-			int nAge = pData->pWidget->GetAppearanceAge();
-			int nValueAge = pData->pWidget->GetValueAge();
-
-			ASSERT(pData->pPageView != NULL);
-			CPDFSDK_Document* pDocument  = pData->pPageView->GetSDKDocument();
-
-			PDFSDK_FieldAction fa;
- 			fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag);
- 			fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag);
-			fa.sChange = strChange;
-			fa.sChangeEx = strChangeEx;
-			fa.bKeyDown = bKeyDown;
-			fa.bWillCommit = FALSE;
-			fa.bRC = TRUE;
-			fa.nSelStart = nSelStart;
-			fa.nSelEnd = nSelEnd;
-
-
-			pFormFiller->GetActionData(pData->pPageView, CPDF_AAction::KeyStroke, fa);
-			pFormFiller->SaveState(pData->pPageView);
-
-			if (pData->pWidget->OnAAction(CPDF_AAction::KeyStroke, fa, pData->pPageView))
-			{
-				if (!IsValidAnnot(pData->pPageView, pData->pWidget))
-				{
-					bExit = TRUE;
-					m_bNotifying = FALSE;
-					return;
-				}
-
-				if (nAge != pData->pWidget->GetAppearanceAge())
-				{
-					CPWL_Wnd* pWnd = pFormFiller->ResetPDFWindow(pData->pPageView, nValueAge == pData->pWidget->GetValueAge());
-					pData = (CFFL_PrivateData*)pWnd->GetAttachedData();
-					bExit = TRUE;
-				}
-
-				if (fa.bRC)
-				{
-					pFormFiller->SetActionData(pData->pPageView, CPDF_AAction::KeyStroke, fa);
-					bRC = FALSE;
-				}
-				else
-				{
-					pFormFiller->RestoreState(pData->pPageView);
-					bRC = FALSE;
-				}
-
-				if (pDocument->GetFocusAnnot() != pData->pWidget)
-				{
-					pFormFiller->CommitData(pData->pPageView,nFlag);
-					bExit = TRUE;
-				}
-			}
-			else
-			{
-				if (!IsValidAnnot(pData->pPageView, pData->pWidget))
-				{
-					bExit = TRUE;
-					m_bNotifying = FALSE;
-					return;
-				}
-			}
-
-			m_bNotifying = FALSE;
-		}
-	}
+        if (nAge != pData->pWidget->GetAppearanceAge()) {
+          CPWL_Wnd* pWnd = pFormFiller->ResetPDFWindow(
+              pData->pPageView, nValueAge == pData->pWidget->GetValueAge());
+          pData = (CFFL_PrivateData*)pWnd->GetAttachedData();
+          bExit = TRUE;
+        }
+
+        if (fa.bRC) {
+          pFormFiller->SetActionData(pData->pPageView, CPDF_AAction::KeyStroke,
+                                     fa);
+          bRC = FALSE;
+        } else {
+          pFormFiller->RestoreState(pData->pPageView);
+          bRC = FALSE;
+        }
+
+        if (pDocument->GetFocusAnnot() != pData->pWidget) {
+          pFormFiller->CommitData(pData->pPageView, nFlag);
+          bExit = TRUE;
+        }
+      } else {
+        if (!IsValidAnnot(pData->pPageView, pData->pWidget)) {
+          bExit = TRUE;
+          m_bNotifying = FALSE;
+          return;
+        }
+      }
+
+      m_bNotifying = FALSE;
+    }
+  }
 }
 
-void	CFFL_IFormFiller::OnAfterKeyStroke(FX_BOOL bEditOrList, void* pPrivateData, FX_BOOL & bExit,FX_DWORD nFlag)
-{
-	ASSERT(pPrivateData != NULL);
-	CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
-	ASSERT(pData->pWidget != NULL);
+void CFFL_IFormFiller::OnAfterKeyStroke(FX_BOOL bEditOrList,
+                                        void* pPrivateData,
+                                        FX_BOOL& bExit,
+                                        FX_DWORD nFlag) {
+  ASSERT(pPrivateData != NULL);
+  CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
+  ASSERT(pData->pWidget != NULL);
 
-	CFFL_FormFiller* pFormFiller = GetFormFiller(pData->pWidget, FALSE);
-	ASSERT(pFormFiller != NULL);
+  CFFL_FormFiller* pFormFiller = GetFormFiller(pData->pWidget, FALSE);
+  ASSERT(pFormFiller != NULL);
 
-	if (!bEditOrList)
-		pFormFiller->OnKeyStroke(bExit);
+  if (!bEditOrList)
+    pFormFiller->OnKeyStroke(bExit);
 }
diff --git a/fpdfsdk/src/formfiller/FFL_ListBox.cpp b/fpdfsdk/src/formfiller/FFL_ListBox.cpp
index c105cfcbdd..0735f48cf3 100644
--- a/fpdfsdk/src/formfiller/FFL_ListBox.cpp
+++ b/fpdfsdk/src/formfiller/FFL_ListBox.cpp
@@ -12,286 +12,237 @@
 //#include "../../include/formfiller/FFL_Undo.h"
 #include "../../include/formfiller/FFL_CBA_Fontmap.h"
 
+#define FFL_DEFAULTLISTBOXFONTSIZE 12.0f
 
-#define	FFL_DEFAULTLISTBOXFONTSIZE		12.0f
+/* ------------------------------- CFFL_ListBox -------------------------------
+ */
 
+CFFL_ListBox::CFFL_ListBox(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pWidget)
+    : CFFL_FormFiller(pApp, pWidget), m_pFontMap(NULL) {}
 
-/* ------------------------------- CFFL_ListBox ------------------------------- */
-
-CFFL_ListBox::CFFL_ListBox(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pWidget) :
-	CFFL_FormFiller(pApp, pWidget),
-	m_pFontMap(NULL)
-{
+CFFL_ListBox::~CFFL_ListBox() {
+  delete m_pFontMap;
 }
 
-CFFL_ListBox::~CFFL_ListBox()
-{
-    delete m_pFontMap;
+PWL_CREATEPARAM CFFL_ListBox::GetCreateParam() {
+  PWL_CREATEPARAM cp = CFFL_FormFiller::GetCreateParam();
+
+  ASSERT(m_pWidget != NULL);
+  FX_DWORD dwFieldFlag = m_pWidget->GetFieldFlags();
+
+  if (dwFieldFlag & FIELDFLAG_MULTISELECT) {
+    cp.dwFlags |= PLBS_MULTIPLESEL;
+  }
+
+  cp.dwFlags |= PWS_VSCROLL;
+
+  if (cp.dwFlags & PWS_AUTOFONTSIZE)
+    cp.fFontSize = FFL_DEFAULTLISTBOXFONTSIZE;
+
+  if (!m_pFontMap) {
+    m_pFontMap = new CBA_FontMap(m_pWidget, m_pApp->GetSysHandler());
+    m_pFontMap->Initial();
+  }
+  cp.pFontMap = m_pFontMap;
+
+  return cp;
 }
 
-PWL_CREATEPARAM	CFFL_ListBox::GetCreateParam()
-{
-	PWL_CREATEPARAM cp = CFFL_FormFiller::GetCreateParam();
+CPWL_Wnd* CFFL_ListBox::NewPDFWindow(const PWL_CREATEPARAM& cp,
+                                     CPDFSDK_PageView* pPageView) {
+  CPWL_ListBox* pWnd = new CPWL_ListBox();
+  pWnd->AttachFFLData(this);
+  pWnd->Create(cp);
 
-	ASSERT(m_pWidget != NULL);
-	FX_DWORD dwFieldFlag = m_pWidget->GetFieldFlags();
+  ASSERT(m_pApp != NULL);
+  CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller();
+  pWnd->SetFillerNotify(pIFormFiller);
 
-	if (dwFieldFlag & FIELDFLAG_MULTISELECT)
-	{
-		cp.dwFlags |= PLBS_MULTIPLESEL;
-	}
+  for (int32_t i = 0, sz = m_pWidget->CountOptions(); i < sz; i++)
+    pWnd->AddString(m_pWidget->GetOptionLabel(i).c_str());
 
-	cp.dwFlags |= PWS_VSCROLL;
+  if (pWnd->HasFlag(PLBS_MULTIPLESEL)) {
+    m_OriginSelections.clear();
 
-	if (cp.dwFlags & PWS_AUTOFONTSIZE)
-		cp.fFontSize = FFL_DEFAULTLISTBOXFONTSIZE;
+    FX_BOOL bSetCaret = FALSE;
+    for (int32_t i = 0, sz = m_pWidget->CountOptions(); i < sz; i++) {
+      if (m_pWidget->IsOptionSelected(i)) {
+        if (!bSetCaret) {
+          pWnd->SetCaret(i);
+          bSetCaret = TRUE;
+        }
+        pWnd->Select(i);
+        m_OriginSelections.insert(i);
+      }
+    }
+  } else {
+    for (int i = 0, sz = m_pWidget->CountOptions(); i < sz; i++) {
+      if (m_pWidget->IsOptionSelected(i)) {
+        pWnd->Select(i);
+        break;
+      }
+    }
+  }
 
-	if (!m_pFontMap)
-	{
-		m_pFontMap = new CBA_FontMap(m_pWidget, m_pApp->GetSysHandler());
-		m_pFontMap->Initial();
-	}
-	cp.pFontMap = m_pFontMap;
+  pWnd->SetTopVisibleIndex(m_pWidget->GetTopVisibleIndex());
 
-	return cp;
+  return pWnd;
 }
 
-CPWL_Wnd* CFFL_ListBox::NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView* pPageView)
-{
-	CPWL_ListBox* pWnd = new CPWL_ListBox();
-	pWnd->AttachFFLData(this);
-	pWnd->Create(cp);
-
-	ASSERT(m_pApp != NULL);
-	CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller();
-	pWnd->SetFillerNotify(pIFormFiller);
-
-	for (int32_t i=0,sz=m_pWidget->CountOptions(); i<sz; i++)
-		pWnd->AddString(m_pWidget->GetOptionLabel(i).c_str());
-
-	if (pWnd->HasFlag(PLBS_MULTIPLESEL))
-	{
-		m_OriginSelections.clear();
-
-		FX_BOOL bSetCaret = FALSE;
-		for (int32_t i=0,sz=m_pWidget->CountOptions(); i<sz; i++)
-		{
-			if (m_pWidget->IsOptionSelected(i))
-			{
-				if (!bSetCaret)
-				{
-					pWnd->SetCaret(i);
-					bSetCaret = TRUE;
-				}
-				pWnd->Select(i);
-				m_OriginSelections.insert(i);
-			}
-		}
-	}
-	else
-	{
-		for (int i=0,sz=m_pWidget->CountOptions(); i<sz; i++)
-		{
-			if (m_pWidget->IsOptionSelected(i))
-			{
-				pWnd->Select(i);
-				break;
-			}
-		}
-	}
-
-	pWnd->SetTopVisibleIndex(m_pWidget->GetTopVisibleIndex());
-
-	return pWnd;
+FX_BOOL CFFL_ListBox::OnChar(CPDFSDK_Annot* pAnnot,
+                             FX_UINT nChar,
+                             FX_UINT nFlags) {
+  return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
 }
 
+FX_BOOL CFFL_ListBox::IsDataChanged(CPDFSDK_PageView* pPageView) {
+  CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE);
+  if (!pListBox)
+    return FALSE;
 
-FX_BOOL	CFFL_ListBox::OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags)
-{
-	return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
+  if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) {
+    int nSelCount = 0;
+    for (int32_t i = 0, sz = pListBox->GetCount(); i < sz; ++i) {
+      if (pListBox->IsItemSelected(i)) {
+        if (m_OriginSelections.count(i) == 0)
+          return TRUE;
+
+        nSelCount++;
+      }
+    }
+
+    return nSelCount != m_OriginSelections.size();
+  }
+  return pListBox->GetCurSel() != m_pWidget->GetSelectedIndex(0);
 }
 
-FX_BOOL CFFL_ListBox::IsDataChanged(CPDFSDK_PageView* pPageView)
-{
-    CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE);
-    if (!pListBox)
-        return FALSE;
+void CFFL_ListBox::SaveData(CPDFSDK_PageView* pPageView) {
+  ASSERT(m_pWidget != NULL);
 
-    if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) {
-        int nSelCount = 0;
-        for (int32_t i = 0, sz = pListBox->GetCount(); i < sz; ++i) {
-            if (pListBox->IsItemSelected(i)) {
-                if (m_OriginSelections.count(i) == 0)
-                    return TRUE;
-
-                nSelCount++;
-            }
+  if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE)) {
+    CFX_IntArray aOldSelect, aNewSelect;
+
+    {
+      for (int i = 0, sz = m_pWidget->CountOptions(); i < sz; i++) {
+        if (m_pWidget->IsOptionSelected(i)) {
+          aOldSelect.Add(i);
         }
+      }
+    }
+
+    int32_t nNewTopIndex = pListBox->GetTopVisibleIndex();
 
-        return nSelCount != m_OriginSelections.size();
+    m_pWidget->ClearSelection(FALSE);
+
+    if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) {
+      for (int32_t i = 0, sz = pListBox->GetCount(); i < sz; i++) {
+        if (pListBox->IsItemSelected(i)) {
+          m_pWidget->SetOptionSelection(i, TRUE, FALSE);
+          aNewSelect.Add(i);
+        }
+      }
+    } else {
+      m_pWidget->SetOptionSelection(pListBox->GetCurSel(), TRUE, FALSE);
+      aNewSelect.Add(pListBox->GetCurSel());
     }
-    return pListBox->GetCurSel() != m_pWidget->GetSelectedIndex(0);
-}
 
-void CFFL_ListBox::SaveData(CPDFSDK_PageView* pPageView)
-{
-	ASSERT(m_pWidget != NULL);
-
-	if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE))
-	{
-		CFX_IntArray aOldSelect, aNewSelect;
-
-		{
-			for (int i=0,sz=m_pWidget->CountOptions(); i<sz; i++)
-			{
-				if (m_pWidget->IsOptionSelected(i))
-				{
-					aOldSelect.Add(i);
-				}
-			}
-		}
-
-
-		int32_t nNewTopIndex = pListBox->GetTopVisibleIndex();
-
-		m_pWidget->ClearSelection(FALSE);
-
-		if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT)
-		{
-			for (int32_t i=0,sz=pListBox->GetCount(); i<sz; i++)
-			{
-				if (pListBox->IsItemSelected(i))
-				{
-					m_pWidget->SetOptionSelection(i, TRUE, FALSE);
-					aNewSelect.Add(i);
-				}
-			}
-		}
-		else
-		{
-			m_pWidget->SetOptionSelection(pListBox->GetCurSel(), TRUE, FALSE);
-			aNewSelect.Add(pListBox->GetCurSel());
-		}
-
-		m_pWidget->SetTopVisibleIndex(nNewTopIndex);
-		m_pWidget->ResetFieldAppearance(TRUE);
-		m_pWidget->UpdateField();
-		SetChangeMark();
-	}
+    m_pWidget->SetTopVisibleIndex(nNewTopIndex);
+    m_pWidget->ResetFieldAppearance(TRUE);
+    m_pWidget->UpdateField();
+    SetChangeMark();
+  }
 }
 
-void CFFL_ListBox::GetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type,
-						PDFSDK_FieldAction& fa)
-{
-	switch (type)
-	{
-	case CPDF_AAction::Validate:
-		if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT)
-		{
-			fa.sValue = L"";
-		}
-		else
-		{
-			if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE))
-			{
-				ASSERT(m_pWidget != NULL);
-				int32_t nCurSel = pListBox->GetCurSel();
-				if (nCurSel >= 0)
-					fa.sValue = m_pWidget->GetOptionLabel(nCurSel);
-			}
-		}
-		break;
-	case CPDF_AAction::LoseFocus:
-	case CPDF_AAction::GetFocus:
-		if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT)
-		{
-			fa.sValue = L"";
-		}
-		else
-		{
-			ASSERT(m_pWidget != NULL);
-			int32_t nCurSel = m_pWidget->GetSelectedIndex(0);
-			if (nCurSel >= 0)
-				fa.sValue = m_pWidget->GetOptionLabel(nCurSel);
-		}
-		break;
-	default:
-		break;
-	}
+void CFFL_ListBox::GetActionData(CPDFSDK_PageView* pPageView,
+                                 CPDF_AAction::AActionType type,
+                                 PDFSDK_FieldAction& fa) {
+  switch (type) {
+    case CPDF_AAction::Validate:
+      if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) {
+        fa.sValue = L"";
+      } else {
+        if (CPWL_ListBox* pListBox =
+                (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE)) {
+          ASSERT(m_pWidget != NULL);
+          int32_t nCurSel = pListBox->GetCurSel();
+          if (nCurSel >= 0)
+            fa.sValue = m_pWidget->GetOptionLabel(nCurSel);
+        }
+      }
+      break;
+    case CPDF_AAction::LoseFocus:
+    case CPDF_AAction::GetFocus:
+      if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) {
+        fa.sValue = L"";
+      } else {
+        ASSERT(m_pWidget != NULL);
+        int32_t nCurSel = m_pWidget->GetSelectedIndex(0);
+        if (nCurSel >= 0)
+          fa.sValue = m_pWidget->GetOptionLabel(nCurSel);
+      }
+      break;
+    default:
+      break;
+  }
 }
 
+void CFFL_ListBox::SetActionData(CPDFSDK_PageView* pPageView,
+                                 CPDF_AAction::AActionType type,
+                                 const PDFSDK_FieldAction& fa) {}
 
-void CFFL_ListBox::SetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type,
-								const PDFSDK_FieldAction& fa)
-{
-}
+void CFFL_ListBox::SaveState(CPDFSDK_PageView* pPageView) {
+  ASSERT(pPageView != NULL);
 
-void CFFL_ListBox::SaveState(CPDFSDK_PageView* pPageView)
-{
-	ASSERT(pPageView != NULL);
-
-	if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE))
-	{
-		for (int32_t i=0,sz=pListBox->GetCount(); i<sz; i++)
-		{
-			if (pListBox->IsItemSelected(i))
-			{
-				m_State.Add(i);
-			}
-		}
-	}
+  if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE)) {
+    for (int32_t i = 0, sz = pListBox->GetCount(); i < sz; i++) {
+      if (pListBox->IsItemSelected(i)) {
+        m_State.Add(i);
+      }
+    }
+  }
 }
 
-void CFFL_ListBox::RestoreState(CPDFSDK_PageView* pPageView)
-{
-	if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE))
-	{
-		for (int i=0,sz=m_State.GetSize(); i<sz; i++)
-			pListBox->Select(m_State[i]);
-	}
+void CFFL_ListBox::RestoreState(CPDFSDK_PageView* pPageView) {
+  if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE)) {
+    for (int i = 0, sz = m_State.GetSize(); i < sz; i++)
+      pListBox->Select(m_State[i]);
+  }
 }
 
-CPWL_Wnd* CFFL_ListBox::ResetPDFWindow(CPDFSDK_PageView* pPageView, FX_BOOL bRestoreValue)
-{
-	if (bRestoreValue)
-		SaveState(pPageView);
+CPWL_Wnd* CFFL_ListBox::ResetPDFWindow(CPDFSDK_PageView* pPageView,
+                                       FX_BOOL bRestoreValue) {
+  if (bRestoreValue)
+    SaveState(pPageView);
 
-	DestroyPDFWindow(pPageView);
+  DestroyPDFWindow(pPageView);
 
-	CPWL_Wnd* pRet = NULL;
+  CPWL_Wnd* pRet = NULL;
 
-	if (bRestoreValue)
-	{
-		RestoreState(pPageView);
-		pRet = GetPDFWindow(pPageView, FALSE);
-	}
-	else
-		pRet = GetPDFWindow(pPageView, TRUE);
+  if (bRestoreValue) {
+    RestoreState(pPageView);
+    pRet = GetPDFWindow(pPageView, FALSE);
+  } else
+    pRet = GetPDFWindow(pPageView, TRUE);
 
-	m_pWidget->UpdateField();
+  m_pWidget->UpdateField();
 
-	return pRet;
+  return pRet;
 }
 
-void CFFL_ListBox::OnKeyStroke(FX_BOOL bKeyDown, FX_DWORD nFlag)
-{
-	ASSERT(m_pWidget != NULL);
-
-	int nFlags = m_pWidget->GetFieldFlags();
-
-	if (nFlags & FIELDFLAG_COMMITONSELCHANGE)
-	{
-		if (m_bValid)
-		{
-			CPDFSDK_PageView* pPageView = GetCurPageView();
-			ASSERT(pPageView != NULL);
-
-			if (CommitData(pPageView, nFlag))
-			{
-				DestroyPDFWindow(pPageView);
-				m_bValid = FALSE;
-			}
-		}
-	}
-}
+void CFFL_ListBox::OnKeyStroke(FX_BOOL bKeyDown, FX_DWORD nFlag) {
+  ASSERT(m_pWidget != NULL);
+
+  int nFlags = m_pWidget->GetFieldFlags();
 
+  if (nFlags & FIELDFLAG_COMMITONSELCHANGE) {
+    if (m_bValid) {
+      CPDFSDK_PageView* pPageView = GetCurPageView();
+      ASSERT(pPageView != NULL);
+
+      if (CommitData(pPageView, nFlag)) {
+        DestroyPDFWindow(pPageView);
+        m_bValid = FALSE;
+      }
+    }
+  }
+}
diff --git a/fpdfsdk/src/formfiller/FFL_Notify.cpp b/fpdfsdk/src/formfiller/FFL_Notify.cpp
index 58a2202b61..e348f8e0b9 100644
--- a/fpdfsdk/src/formfiller/FFL_Notify.cpp
+++ b/fpdfsdk/src/formfiller/FFL_Notify.cpp
@@ -10,164 +10,168 @@
 // #include "../../include/formfiller/FFL_ComboBox.h"
 // #include "../../include/formfiller/FFL_Module.h"
 
-/* -------------------------------- CFFL_Notify ------------------------------ */
+/* -------------------------------- CFFL_Notify ------------------------------
+ */
 
 //#pragma warning(disable: 4800)
 
-CFFL_Notify::CFFL_Notify(CFFL_FormFiller * pFormFiller) :
-	m_bDoActioning(FALSE),
-	m_nNotifyFlag(0)
-{
-	ASSERT(pFormFiller != NULL);
+CFFL_Notify::CFFL_Notify(CFFL_FormFiller* pFormFiller)
+    : m_bDoActioning(FALSE), m_nNotifyFlag(0) {
+  ASSERT(pFormFiller != NULL);
 }
 
-CFFL_Notify::~CFFL_Notify()
-{
-}
+CFFL_Notify::~CFFL_Notify() {}
 
-void CFFL_Notify::BeforeNotify()
-{
-	m_nNotifyFlag ++;
+void CFFL_Notify::BeforeNotify() {
+  m_nNotifyFlag++;
 }
 
-
-void CFFL_Notify::AfterNotify()
-{
-	m_nNotifyFlag --;
+void CFFL_Notify::AfterNotify() {
+  m_nNotifyFlag--;
 }
 
-FX_BOOL CFFL_Notify::OnMouseUp(FX_BOOL & bExit)
-{
-	BeforeNotify();
-	FX_BOOL bRet = FALSE;//DoAAction(CPDF_AAction::AActionType::ButtonUp, bExit);
-	AfterNotify();
-	return bRet;
+FX_BOOL CFFL_Notify::OnMouseUp(FX_BOOL& bExit) {
+  BeforeNotify();
+  FX_BOOL bRet =
+      FALSE;  // DoAAction(CPDF_AAction::AActionType::ButtonUp, bExit);
+  AfterNotify();
+  return bRet;
 }
 
-FX_BOOL CFFL_Notify::OnMouseDown(FX_BOOL & bExit)
-{
-	BeforeNotify();
-	FX_BOOL bRet = FALSE;//DoAAction(CPDF_AAction::AActionType::ButtonDown, bExit);
-	AfterNotify();
-	return bRet;
+FX_BOOL CFFL_Notify::OnMouseDown(FX_BOOL& bExit) {
+  BeforeNotify();
+  FX_BOOL bRet =
+      FALSE;  // DoAAction(CPDF_AAction::AActionType::ButtonDown, bExit);
+  AfterNotify();
+  return bRet;
 }
 
-FX_BOOL CFFL_Notify::OnMouseEnter(FX_BOOL & bExit)
-{
-	BeforeNotify();
-	FX_BOOL bRet = FALSE;//DoAAction(CPDF_AAction::AActionType::CursorEnter, bExit);
-	AfterNotify();
-	return bRet;
+FX_BOOL CFFL_Notify::OnMouseEnter(FX_BOOL& bExit) {
+  BeforeNotify();
+  FX_BOOL bRet =
+      FALSE;  // DoAAction(CPDF_AAction::AActionType::CursorEnter, bExit);
+  AfterNotify();
+  return bRet;
 }
 
-FX_BOOL CFFL_Notify::OnMouseExit(FX_BOOL & bExit)
-{
-	BeforeNotify();
-	FX_BOOL bRet = FALSE;//DoAAction(CPDF_AAction::AActionType::CursorExit, bExit);
-	AfterNotify();
-	return bRet;
+FX_BOOL CFFL_Notify::OnMouseExit(FX_BOOL& bExit) {
+  BeforeNotify();
+  FX_BOOL bRet =
+      FALSE;  // DoAAction(CPDF_AAction::AActionType::CursorExit, bExit);
+  AfterNotify();
+  return bRet;
 }
 
-FX_BOOL CFFL_Notify::OnSetFocus(FX_BOOL & bExit)
-{
-	BeforeNotify();
-	FX_BOOL bRet = FALSE;//DoAAction(CPDF_AAction::AActionType::GetFocus, bExit);
-	AfterNotify();
-	return bRet;
+FX_BOOL CFFL_Notify::OnSetFocus(FX_BOOL& bExit) {
+  BeforeNotify();
+  FX_BOOL bRet =
+      FALSE;  // DoAAction(CPDF_AAction::AActionType::GetFocus, bExit);
+  AfterNotify();
+  return bRet;
 }
 
-FX_BOOL CFFL_Notify::OnKillFocus(FX_BOOL & bExit)
-{
-	BeforeNotify();
-	FX_BOOL bRet = FALSE;//DoAAction(CPDF_AAction::AActionType::LoseFocus, bExit);
-	AfterNotify();
-	return bRet;
+FX_BOOL CFFL_Notify::OnKillFocus(FX_BOOL& bExit) {
+  BeforeNotify();
+  FX_BOOL bRet =
+      FALSE;  // DoAAction(CPDF_AAction::AActionType::LoseFocus, bExit);
+  AfterNotify();
+  return bRet;
 }
 
-FX_BOOL CFFL_Notify::OnCalculate()
-{
-	return TRUE;
+FX_BOOL CFFL_Notify::OnCalculate() {
+  return TRUE;
 }
 
-FX_BOOL CFFL_Notify::OnFormat(int iCommitKey)
-{
-	return TRUE;
+FX_BOOL CFFL_Notify::OnFormat(int iCommitKey) {
+  return TRUE;
 }
 
-FX_BOOL CFFL_Notify::OnKeyStroke(CPDF_FormField* pFormField, int nCommitKey, CFX_WideString& strValue, CFX_WideString& strChange,
-							   const CFX_WideString& strChangeEx, FX_BOOL bKeyDown, FX_BOOL bModifier,
-							   FX_BOOL bShift, FX_BOOL bWillCommit, FX_BOOL bFieldFull,
-							   int& nSelStart, int& nSelEnd, FX_BOOL& bRC)
-{
-	return TRUE;
+FX_BOOL CFFL_Notify::OnKeyStroke(CPDF_FormField* pFormField,
+                                 int nCommitKey,
+                                 CFX_WideString& strValue,
+                                 CFX_WideString& strChange,
+                                 const CFX_WideString& strChangeEx,
+                                 FX_BOOL bKeyDown,
+                                 FX_BOOL bModifier,
+                                 FX_BOOL bShift,
+                                 FX_BOOL bWillCommit,
+                                 FX_BOOL bFieldFull,
+                                 int& nSelStart,
+                                 int& nSelEnd,
+                                 FX_BOOL& bRC) {
+  return TRUE;
 }
 
-FX_BOOL CFFL_Notify::OnValidate(CPDF_FormField* pFormField, CFX_WideString& strValue, CFX_WideString & strChange,
-									   const CFX_WideString& strChangeEx, FX_BOOL bKeyDown, FX_BOOL bModifier,
-									   FX_BOOL bShift, FX_BOOL & bRC)
-{
-	return TRUE;
+FX_BOOL CFFL_Notify::OnValidate(CPDF_FormField* pFormField,
+                                CFX_WideString& strValue,
+                                CFX_WideString& strChange,
+                                const CFX_WideString& strChangeEx,
+                                FX_BOOL bKeyDown,
+                                FX_BOOL bModifier,
+                                FX_BOOL bShift,
+                                FX_BOOL& bRC) {
+  return TRUE;
 }
 
-FX_BOOL	CFFL_Notify::DoAAction(CPDF_AAction::AActionType eAAT, FX_BOOL & bExit)
-{
-    if (m_bDoActioning)
-        return FALSE;
+FX_BOOL CFFL_Notify::DoAAction(CPDF_AAction::AActionType eAAT, FX_BOOL& bExit) {
+  if (m_bDoActioning)
+    return FALSE;
 
-    CPDF_Action action;
-    if (!FindAAction(eAAT, action))
-        return FALSE;
+  CPDF_Action action;
+  if (!FindAAction(eAAT, action))
+    return FALSE;
 
-    m_bDoActioning = TRUE;
-    ExecuteActionTree(eAAT,action,bExit);
-    m_bDoActioning = FALSE;
-    return TRUE;
+  m_bDoActioning = TRUE;
+  ExecuteActionTree(eAAT, action, bExit);
+  m_bDoActioning = FALSE;
+  return TRUE;
 }
 
-FX_BOOL	CFFL_Notify::ExecuteActionTree(CPDF_AAction::AActionType eAAT,CPDF_Action & action, FX_BOOL& bExit)
-{
-	if (!ExecuteAction(eAAT,action,bExit)) return FALSE;
-	if (bExit) return TRUE;
+FX_BOOL CFFL_Notify::ExecuteActionTree(CPDF_AAction::AActionType eAAT,
+                                       CPDF_Action& action,
+                                       FX_BOOL& bExit) {
+  if (!ExecuteAction(eAAT, action, bExit))
+    return FALSE;
+  if (bExit)
+    return TRUE;
 
-	for (int32_t i=0,sz=action.GetSubActionsCount(); i<sz; i++)
-	{
-		CPDF_Action subaction = action.GetSubAction(i);
-		if (!ExecuteActionTree(eAAT,subaction,bExit)) return FALSE;
-		if (bExit) break;
-	}
+  for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) {
+    CPDF_Action subaction = action.GetSubAction(i);
+    if (!ExecuteActionTree(eAAT, subaction, bExit))
+      return FALSE;
+    if (bExit)
+      break;
+  }
 
-	return TRUE;
+  return TRUE;
 }
 
-
-FX_BOOL	CFFL_Notify::FindAAction(CPDF_AAction::AActionType eAAT,CPDF_Action & action)
-{
-	return FALSE;
+FX_BOOL CFFL_Notify::FindAAction(CPDF_AAction::AActionType eAAT,
+                                 CPDF_Action& action) {
+  return FALSE;
 }
 
-FX_BOOL CFFL_Notify::FindAAction(CPDF_AAction aaction,CPDF_AAction::AActionType eAAT,CPDF_Action & action)
-{
-	CPDF_Action MyAction;
-
-	if (aaction.ActionExist(eAAT))
-	{
-		MyAction = aaction.GetAction(eAAT);
-	}
-	else
-		return FALSE;
+FX_BOOL CFFL_Notify::FindAAction(CPDF_AAction aaction,
+                                 CPDF_AAction::AActionType eAAT,
+                                 CPDF_Action& action) {
+  CPDF_Action MyAction;
 
+  if (aaction.ActionExist(eAAT)) {
+    MyAction = aaction.GetAction(eAAT);
+  } else
+    return FALSE;
 
-	if (MyAction.GetType() == CPDF_Action::Unknown)
-		return FALSE;
+  if (MyAction.GetType() == CPDF_Action::Unknown)
+    return FALSE;
 
-	action = MyAction;
+  action = MyAction;
 
-	return TRUE;
+  return TRUE;
 }
 
-FX_BOOL	CFFL_Notify::ExecuteAction(CPDF_AAction::AActionType eAAT,CPDF_Action & action,FX_BOOL& bExit)
-{
-	return FALSE;
+FX_BOOL CFFL_Notify::ExecuteAction(CPDF_AAction::AActionType eAAT,
+                                   CPDF_Action& action,
+                                   FX_BOOL& bExit) {
+  return FALSE;
 }
 //#pragma warning(default: 4800)
-
diff --git a/fpdfsdk/src/formfiller/FFL_PushButton.cpp b/fpdfsdk/src/formfiller/FFL_PushButton.cpp
index a5df48840c..533d786177 100644
--- a/fpdfsdk/src/formfiller/FFL_PushButton.cpp
+++ b/fpdfsdk/src/formfiller/FFL_PushButton.cpp
@@ -8,36 +8,33 @@
 #include "../../include/formfiller/FFL_FormFiller.h"
 #include "../../include/formfiller/FFL_PushButton.h"
 
-/* ------------------------------- CFFL_PushButton ------------------------------- */
+/* ------------------------------- CFFL_PushButton
+ * ------------------------------- */
 
-CFFL_PushButton::CFFL_PushButton(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pAnnot):
-	CFFL_Button( pApp, pAnnot)
-{
-}
+CFFL_PushButton::CFFL_PushButton(CPDFDoc_Environment* pApp,
+                                 CPDFSDK_Annot* pAnnot)
+    : CFFL_Button(pApp, pAnnot) {}
 
-CFFL_PushButton::~CFFL_PushButton()
-{
-}
+CFFL_PushButton::~CFFL_PushButton() {}
 
-CPWL_Wnd* CFFL_PushButton::NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView* pPageView)
-{
-	CPWL_PushButton* pWnd = new CPWL_PushButton();
-	pWnd->Create(cp);
+CPWL_Wnd* CFFL_PushButton::NewPDFWindow(const PWL_CREATEPARAM& cp,
+                                        CPDFSDK_PageView* pPageView) {
+  CPWL_PushButton* pWnd = new CPWL_PushButton();
+  pWnd->Create(cp);
 
-	return pWnd;
+  return pWnd;
 }
 
-
-FX_BOOL	CFFL_PushButton::OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags)
-{
-	return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
+FX_BOOL CFFL_PushButton::OnChar(CPDFSDK_Annot* pAnnot,
+                                FX_UINT nChar,
+                                FX_UINT nFlags) {
+  return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
 }
 
-void CFFL_PushButton::OnDraw(CPDFSDK_PageView *pPageView,  CPDFSDK_Annot* pAnnot,
-							 CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
-							 FX_DWORD dwFlags)
-{
-	CFFL_Button::OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
+void CFFL_PushButton::OnDraw(CPDFSDK_PageView* pPageView,
+                             CPDFSDK_Annot* pAnnot,
+                             CFX_RenderDevice* pDevice,
+                             CPDF_Matrix* pUser2Device,
+                             FX_DWORD dwFlags) {
+  CFFL_Button::OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
 }
-
-
diff --git a/fpdfsdk/src/formfiller/FFL_RadioButton.cpp b/fpdfsdk/src/formfiller/FFL_RadioButton.cpp
index 1f73e8ccaa..7c4f9a9e49 100644
--- a/fpdfsdk/src/formfiller/FFL_RadioButton.cpp
+++ b/fpdfsdk/src/formfiller/FFL_RadioButton.cpp
@@ -9,129 +9,124 @@
 #include "../../include/formfiller/FFL_RadioButton.h"
 //#include "../include/FFL_Undo.h"
 
-/* ------------------------------- CFFL_RadioButton ------------------------------- */
+/* ------------------------------- CFFL_RadioButton
+ * ------------------------------- */
 
-CFFL_RadioButton::CFFL_RadioButton(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pWidget) :
-	CFFL_Button(pApp, pWidget)
-{
-}
+CFFL_RadioButton::CFFL_RadioButton(CPDFDoc_Environment* pApp,
+                                   CPDFSDK_Annot* pWidget)
+    : CFFL_Button(pApp, pWidget) {}
 
-CFFL_RadioButton::~CFFL_RadioButton()
-{
-}
+CFFL_RadioButton::~CFFL_RadioButton() {}
 
-CPWL_Wnd* CFFL_RadioButton::NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView* pPageView)
-{
-	CPWL_RadioButton* pWnd = new CPWL_RadioButton();
-	pWnd->Create(cp);
+CPWL_Wnd* CFFL_RadioButton::NewPDFWindow(const PWL_CREATEPARAM& cp,
+                                         CPDFSDK_PageView* pPageView) {
+  CPWL_RadioButton* pWnd = new CPWL_RadioButton();
+  pWnd->Create(cp);
 
-	ASSERT(m_pWidget != NULL);
-	pWnd->SetCheck(m_pWidget->IsChecked());
+  ASSERT(m_pWidget != NULL);
+  pWnd->SetCheck(m_pWidget->IsChecked());
 
-	return pWnd;
+  return pWnd;
 }
 
-FX_BOOL	CFFL_RadioButton::OnKeyDown(CPDFSDK_Annot* pAnnot, FX_UINT nKeyCode, FX_UINT nFlags)
-{
-	switch (nKeyCode)
-	{
-	case FWL_VKEY_Return:
-	case FWL_VKEY_Space:
-		return TRUE;
-	default:
-		return CFFL_FormFiller::OnKeyDown(pAnnot, nKeyCode, nFlags);
-	}
+FX_BOOL CFFL_RadioButton::OnKeyDown(CPDFSDK_Annot* pAnnot,
+                                    FX_UINT nKeyCode,
+                                    FX_UINT nFlags) {
+  switch (nKeyCode) {
+    case FWL_VKEY_Return:
+    case FWL_VKEY_Space:
+      return TRUE;
+    default:
+      return CFFL_FormFiller::OnKeyDown(pAnnot, nKeyCode, nFlags);
+  }
 }
 
-FX_BOOL	CFFL_RadioButton::OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags)
-{
-	switch (nChar)
-	{
-	case FWL_VKEY_Return:
-	case FWL_VKEY_Space:
-		{
-			CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller();
-			ASSERT(pIFormFiller != NULL);
-
-			CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
-			ASSERT(pPageView != NULL);
-
-			FX_BOOL bReset = FALSE;
-			FX_BOOL bExit = FALSE;
-
-			pIFormFiller->OnButtonUp(m_pWidget, pPageView, bReset, bExit,nFlags);
-
-			if (bReset) return TRUE;
-			if (bExit) return TRUE;
-
-			CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
-
-			if (CPWL_RadioButton * pWnd = (CPWL_RadioButton*)GetPDFWindow(pPageView, TRUE))
-				pWnd->SetCheck(TRUE);
-			CommitData(pPageView,nFlags);
-			return TRUE;
-		}
-	default:
-		return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
-	}
+FX_BOOL CFFL_RadioButton::OnChar(CPDFSDK_Annot* pAnnot,
+                                 FX_UINT nChar,
+                                 FX_UINT nFlags) {
+  switch (nChar) {
+    case FWL_VKEY_Return:
+    case FWL_VKEY_Space: {
+      CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller();
+      ASSERT(pIFormFiller != NULL);
+
+      CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
+      ASSERT(pPageView != NULL);
+
+      FX_BOOL bReset = FALSE;
+      FX_BOOL bExit = FALSE;
+
+      pIFormFiller->OnButtonUp(m_pWidget, pPageView, bReset, bExit, nFlags);
+
+      if (bReset)
+        return TRUE;
+      if (bExit)
+        return TRUE;
+
+      CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
+
+      if (CPWL_RadioButton* pWnd =
+              (CPWL_RadioButton*)GetPDFWindow(pPageView, TRUE))
+        pWnd->SetCheck(TRUE);
+      CommitData(pPageView, nFlags);
+      return TRUE;
+    }
+    default:
+      return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
+  }
 }
 
-FX_BOOL	CFFL_RadioButton::OnLButtonUp(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_UINT nFlags, const CPDF_Point& point)
-{
-	CFFL_Button::OnLButtonUp(pPageView, pAnnot, nFlags, point);
+FX_BOOL CFFL_RadioButton::OnLButtonUp(CPDFSDK_PageView* pPageView,
+                                      CPDFSDK_Annot* pAnnot,
+                                      FX_UINT nFlags,
+                                      const CPDF_Point& point) {
+  CFFL_Button::OnLButtonUp(pPageView, pAnnot, nFlags, point);
 
-	if (IsValid())
-	{
-		if (CPWL_RadioButton * pWnd = (CPWL_RadioButton*)GetPDFWindow(pPageView, TRUE))
-			pWnd->SetCheck(TRUE);
+  if (IsValid()) {
+    if (CPWL_RadioButton* pWnd =
+            (CPWL_RadioButton*)GetPDFWindow(pPageView, TRUE))
+      pWnd->SetCheck(TRUE);
 
-		if (!CommitData(pPageView,nFlags)) return FALSE;
-	}
+    if (!CommitData(pPageView, nFlags))
+      return FALSE;
+  }
 
-	return TRUE;
+  return TRUE;
 }
 
-FX_BOOL	CFFL_RadioButton::IsDataChanged(CPDFSDK_PageView* pPageView)
-{
-	ASSERT(m_pWidget != NULL);
+FX_BOOL CFFL_RadioButton::IsDataChanged(CPDFSDK_PageView* pPageView) {
+  ASSERT(m_pWidget != NULL);
 
-	if (CPWL_RadioButton* pWnd = (CPWL_RadioButton*)GetPDFWindow(pPageView, FALSE))
-	{
-		return pWnd->IsChecked() != m_pWidget->IsChecked();
-	}
+  if (CPWL_RadioButton* pWnd =
+          (CPWL_RadioButton*)GetPDFWindow(pPageView, FALSE)) {
+    return pWnd->IsChecked() != m_pWidget->IsChecked();
+  }
 
-	return FALSE;
+  return FALSE;
 }
 
-void CFFL_RadioButton::SaveData(CPDFSDK_PageView* pPageView)
-{
-	ASSERT(m_pWidget != NULL);
-
-	if (CPWL_RadioButton* pWnd = (CPWL_RadioButton*)GetPDFWindow(pPageView, FALSE))
-	{
-
-		FX_BOOL bNewChecked = pWnd->IsChecked();
-
-		if (bNewChecked)
-		{
-			CPDF_FormField* pField = m_pWidget->GetFormField();
-			ASSERT(pField != NULL);
-
-			for (int32_t i=0,sz=pField->CountControls(); i<sz; i++)
-			{
-				if (CPDF_FormControl* pCtrl = pField->GetControl(i))
-				{
-					if (pCtrl->IsChecked())
-					{
-						break;
-					}
-				}
-			}
-		}
-
-		m_pWidget->SetCheck(bNewChecked, FALSE);
-		m_pWidget->UpdateField();
-		SetChangeMark();
-	}
+void CFFL_RadioButton::SaveData(CPDFSDK_PageView* pPageView) {
+  ASSERT(m_pWidget != NULL);
+
+  if (CPWL_RadioButton* pWnd =
+          (CPWL_RadioButton*)GetPDFWindow(pPageView, FALSE)) {
+    FX_BOOL bNewChecked = pWnd->IsChecked();
+
+    if (bNewChecked) {
+      CPDF_FormField* pField = m_pWidget->GetFormField();
+      ASSERT(pField != NULL);
+
+      for (int32_t i = 0, sz = pField->CountControls(); i < sz; i++) {
+        if (CPDF_FormControl* pCtrl = pField->GetControl(i)) {
+          if (pCtrl->IsChecked()) {
+            break;
+          }
+        }
+      }
+    }
+
+    m_pWidget->SetCheck(bNewChecked, FALSE);
+    m_pWidget->UpdateField();
+    SetChangeMark();
+  }
 }
-
diff --git a/fpdfsdk/src/formfiller/FFL_TextField.cpp b/fpdfsdk/src/formfiller/FFL_TextField.cpp
index dbcf4e5739..38d74f065c 100644
--- a/fpdfsdk/src/formfiller/FFL_TextField.cpp
+++ b/fpdfsdk/src/formfiller/FFL_TextField.cpp
@@ -7,380 +7,317 @@
 #include "../../include/formfiller/FFL_TextField.h"
 #include "../../include/formfiller/FFL_CBA_Fontmap.h"
 
-/* ------------------------------- CFFL_TextField ------------------------------- */
+/* ------------------------------- CFFL_TextField
+ * ------------------------------- */
 
-CFFL_TextField::CFFL_TextField(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pAnnot) :
-    CFFL_FormFiller(pApp, pAnnot),
-    m_pFontMap(NULL)//,
-    //m_pSpellCheck(NULL)
+CFFL_TextField::CFFL_TextField(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pAnnot)
+    : CFFL_FormFiller(pApp, pAnnot),
+      m_pFontMap(NULL)  //,
+// m_pSpellCheck(NULL)
 {
-    m_State.nStart = m_State.nEnd = 0;
+  m_State.nStart = m_State.nEnd = 0;
 }
 
-CFFL_TextField::~CFFL_TextField()
-{
-    delete m_pFontMap;
+CFFL_TextField::~CFFL_TextField() {
+  delete m_pFontMap;
 }
 
-PWL_CREATEPARAM CFFL_TextField::GetCreateParam()
-{
-    PWL_CREATEPARAM cp = CFFL_FormFiller::GetCreateParam();
-
-    ASSERT(m_pWidget != NULL);
-    int nFlags = m_pWidget->GetFieldFlags();
+PWL_CREATEPARAM CFFL_TextField::GetCreateParam() {
+  PWL_CREATEPARAM cp = CFFL_FormFiller::GetCreateParam();
 
+  ASSERT(m_pWidget != NULL);
+  int nFlags = m_pWidget->GetFieldFlags();
 
-    if (nFlags & FIELDFLAG_PASSWORD)
-    {
-        cp.dwFlags |= PES_PASSWORD;
-    }
+  if (nFlags & FIELDFLAG_PASSWORD) {
+    cp.dwFlags |= PES_PASSWORD;
+  }
 
-    if (!(nFlags & FIELDFLAG_DONOTSPELLCHECK))
-    {
-    }
+  if (!(nFlags & FIELDFLAG_DONOTSPELLCHECK)) {
+  }
 
-    if (nFlags & FIELDFLAG_MULTILINE)
-    {
-        cp.dwFlags |= PES_MULTILINE | PES_AUTORETURN | PES_TOP;
+  if (nFlags & FIELDFLAG_MULTILINE) {
+    cp.dwFlags |= PES_MULTILINE | PES_AUTORETURN | PES_TOP;
 
-        if (!(nFlags & FIELDFLAG_DONOTSCROLL))
-        {
-            cp.dwFlags |= PWS_VSCROLL | PES_AUTOSCROLL;
-        }
+    if (!(nFlags & FIELDFLAG_DONOTSCROLL)) {
+      cp.dwFlags |= PWS_VSCROLL | PES_AUTOSCROLL;
     }
-    else
-    {
-        cp.dwFlags |= PES_CENTER;
+  } else {
+    cp.dwFlags |= PES_CENTER;
 
-        if (!(nFlags & FIELDFLAG_DONOTSCROLL))
-        {
-            cp.dwFlags |= PES_AUTOSCROLL;
-        }
+    if (!(nFlags & FIELDFLAG_DONOTSCROLL)) {
+      cp.dwFlags |= PES_AUTOSCROLL;
     }
+  }
 
-    if (nFlags & FIELDFLAG_COMB)
-    {
-        cp.dwFlags |= PES_CHARARRAY;
-    }
+  if (nFlags & FIELDFLAG_COMB) {
+    cp.dwFlags |= PES_CHARARRAY;
+  }
 
-    if (nFlags & FIELDFLAG_RICHTEXT)
-    {
-        cp.dwFlags |= PES_RICH;
-    }
+  if (nFlags & FIELDFLAG_RICHTEXT) {
+    cp.dwFlags |= PES_RICH;
+  }
 
-    cp.dwFlags |= PES_UNDO;
+  cp.dwFlags |= PES_UNDO;
 
-    switch (m_pWidget->GetAlignment())
-    {
+  switch (m_pWidget->GetAlignment()) {
     default:
     case BF_ALIGN_LEFT:
-        cp.dwFlags |= PES_LEFT;
-        break;
+      cp.dwFlags |= PES_LEFT;
+      break;
     case BF_ALIGN_MIDDLE:
-        cp.dwFlags |= PES_MIDDLE;
-        break;
+      cp.dwFlags |= PES_MIDDLE;
+      break;
     case BF_ALIGN_RIGHT:
-        cp.dwFlags |= PES_RIGHT;
-        break;
-    }
+      cp.dwFlags |= PES_RIGHT;
+      break;
+  }
+
+  if (!m_pFontMap) {
+    m_pFontMap = new CBA_FontMap(m_pWidget, m_pApp->GetSysHandler());
+    m_pFontMap->Initial();
+  }
+  cp.pFontMap = m_pFontMap;
+  cp.pFocusHandler = this;
+
+  return cp;
+}
 
-    if (!m_pFontMap)
-    {
-        m_pFontMap = new CBA_FontMap(m_pWidget, m_pApp->GetSysHandler());
-        m_pFontMap->Initial();
+CPWL_Wnd* CFFL_TextField::NewPDFWindow(const PWL_CREATEPARAM& cp,
+                                       CPDFSDK_PageView* pPageView) {
+  CPWL_Edit* pWnd = new CPWL_Edit();
+  pWnd->AttachFFLData(this);
+  pWnd->Create(cp);
+
+  ASSERT(m_pApp != NULL);
+  CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller();
+  pWnd->SetFillerNotify(pIFormFiller);
+
+  ASSERT(m_pWidget != NULL);
+  int32_t nMaxLen = m_pWidget->GetMaxLen();
+  CFX_WideString swValue = m_pWidget->GetValue();
+
+  if (nMaxLen > 0) {
+    if (pWnd->HasFlag(PES_CHARARRAY)) {
+      pWnd->SetCharArray(nMaxLen);
+      pWnd->SetAlignFormatV(PEAV_CENTER);
+    } else {
+      pWnd->SetLimitChar(nMaxLen);
     }
-    cp.pFontMap = m_pFontMap;
-    cp.pFocusHandler = this;
+  }
 
-    return cp;
+  pWnd->SetText(swValue.c_str());
+  return pWnd;
 }
 
-CPWL_Wnd* CFFL_TextField::NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView* pPageView)
-{
-    CPWL_Edit * pWnd = new CPWL_Edit();
-        pWnd->AttachFFLData(this);
-    pWnd->Create(cp);
-
-
-
-    ASSERT(m_pApp != NULL);
-    CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller();
-    pWnd->SetFillerNotify(pIFormFiller);
-
-    ASSERT(m_pWidget != NULL);
-    int32_t nMaxLen = m_pWidget->GetMaxLen();
-    CFX_WideString swValue = m_pWidget->GetValue();
-
-    if (nMaxLen > 0)
-    {
-        if (pWnd->HasFlag(PES_CHARARRAY))
-        {
-            pWnd->SetCharArray(nMaxLen);
-            pWnd->SetAlignFormatV(PEAV_CENTER);
-        }
-        else
-        {
-            pWnd->SetLimitChar(nMaxLen);
+FX_BOOL CFFL_TextField::OnChar(CPDFSDK_Annot* pAnnot,
+                               FX_UINT nChar,
+                               FX_UINT nFlags) {
+  switch (nChar) {
+    case FWL_VKEY_Return:
+      if (!(m_pWidget->GetFieldFlags() & FIELDFLAG_MULTILINE)) {
+        CPDFSDK_PageView* pPageView = GetCurPageView();
+        ASSERT(pPageView != NULL);
+        m_bValid = !m_bValid;
+        CPDF_Rect rcAnnot = pAnnot->GetRect();
+        m_pApp->FFI_Invalidate(pAnnot->GetPDFXFAPage(), rcAnnot.left,
+                               rcAnnot.top, rcAnnot.right, rcAnnot.bottom);
+
+        if (m_bValid) {
+          if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, TRUE))
+            pWnd->SetFocus();
+        } else {
+          if (CommitData(pPageView, nFlags)) {
+            DestroyPDFWindow(pPageView);
+            return TRUE;
+          } else {
+            return FALSE;
+          }
         }
+      }
+      break;
+    case FWL_VKEY_Escape: {
+      CPDFSDK_PageView* pPageView = GetCurPageView();
+      ASSERT(pPageView != NULL);
+      EscapeFiller(pPageView, TRUE);
+      return TRUE;
     }
+  }
 
-    pWnd->SetText(swValue.c_str());
-    return pWnd;
-}
-
-
-FX_BOOL CFFL_TextField::OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags)
-{
-	switch (nChar)
-	{
-	case FWL_VKEY_Return:
- 		if (!(m_pWidget->GetFieldFlags() & FIELDFLAG_MULTILINE))
- 		{
- 			CPDFSDK_PageView* pPageView = GetCurPageView();
- 			ASSERT(pPageView != NULL);
- 			m_bValid = !m_bValid;
-			CPDF_Rect rcAnnot = pAnnot->GetRect();
-			m_pApp->FFI_Invalidate(pAnnot->GetPDFXFAPage(), rcAnnot.left, rcAnnot.top, rcAnnot.right, rcAnnot.bottom);
-
- 			if (m_bValid)
- 			{
- 				if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, TRUE))
- 					pWnd->SetFocus();
- 			}
- 			else
- 			{
- 				if (CommitData(pPageView, nFlags))
- 				{
- 					DestroyPDFWindow(pPageView);
- 					return TRUE;
- 				}
- 				else
- 				{
- 					return FALSE;
- 				}
- 			}
- 		}
-		break;
-	case FWL_VKEY_Escape:
-		{
-			CPDFSDK_PageView* pPageView = GetCurPageView();
-			ASSERT(pPageView != NULL);
-			EscapeFiller(pPageView,TRUE);
-			return TRUE;
-		}
-	}
-
-	return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
+  return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
 }
 
-FX_BOOL CFFL_TextField::IsDataChanged(CPDFSDK_PageView* pPageView)
-{
-    ASSERT(m_pWidget != NULL);
+FX_BOOL CFFL_TextField::IsDataChanged(CPDFSDK_PageView* pPageView) {
+  ASSERT(m_pWidget != NULL);
 
-    if (CPWL_Edit * pEdit = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE))
-        return pEdit->GetText() != m_pWidget->GetValue();
+  if (CPWL_Edit* pEdit = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE))
+    return pEdit->GetText() != m_pWidget->GetValue();
 
-    return FALSE;
+  return FALSE;
 }
 
-void CFFL_TextField::SaveData(CPDFSDK_PageView* pPageView)
-{
-    ASSERT(m_pWidget != NULL);
+void CFFL_TextField::SaveData(CPDFSDK_PageView* pPageView) {
+  ASSERT(m_pWidget != NULL);
 
-    if (CPWL_Edit* pWnd = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE))
-    {
-        CFX_WideString sOldValue = m_pWidget->GetValue();
-        CFX_WideString sNewValue = pWnd->GetText();
+  if (CPWL_Edit* pWnd = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE)) {
+    CFX_WideString sOldValue = m_pWidget->GetValue();
+    CFX_WideString sNewValue = pWnd->GetText();
 
-        m_pWidget->SetValue(sNewValue, FALSE);
-        m_pWidget->ResetFieldAppearance(TRUE);
-        m_pWidget->UpdateField();
-        SetChangeMark();
-    }
+    m_pWidget->SetValue(sNewValue, FALSE);
+    m_pWidget->ResetFieldAppearance(TRUE);
+    m_pWidget->UpdateField();
+    SetChangeMark();
+  }
 }
 
-void CFFL_TextField::GetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type,
-                                    PDFSDK_FieldAction& fa)
-{
-    switch (type)
-    {
+void CFFL_TextField::GetActionData(CPDFSDK_PageView* pPageView,
+                                   CPDF_AAction::AActionType type,
+                                   PDFSDK_FieldAction& fa) {
+  switch (type) {
     case CPDF_AAction::KeyStroke:
-        if (CPWL_Edit* pWnd = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE))
-        {
-            fa.bFieldFull = pWnd->IsTextFull();
+      if (CPWL_Edit* pWnd = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE)) {
+        fa.bFieldFull = pWnd->IsTextFull();
 
-            fa.sValue = pWnd->GetText();
+        fa.sValue = pWnd->GetText();
 
-            if (fa.bFieldFull)
-            {
-                fa.sChange = L"";
-                fa.sChangeEx = L"";
-            }
+        if (fa.bFieldFull) {
+          fa.sChange = L"";
+          fa.sChangeEx = L"";
         }
-        break;
+      }
+      break;
     case CPDF_AAction::Validate:
-        if (CPWL_Edit* pWnd = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE))
-        {
-            fa.sValue = pWnd->GetText();
-        }
-        break;
+      if (CPWL_Edit* pWnd = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE)) {
+        fa.sValue = pWnd->GetText();
+      }
+      break;
     case CPDF_AAction::LoseFocus:
     case CPDF_AAction::GetFocus:
-        ASSERT(m_pWidget != NULL);
-        fa.sValue = m_pWidget->GetValue();
-        break;
+      ASSERT(m_pWidget != NULL);
+      fa.sValue = m_pWidget->GetValue();
+      break;
     default:
-        break;
-    }
+      break;
+  }
 }
 
-void CFFL_TextField::SetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type,
-                                    const PDFSDK_FieldAction& fa)
-{
-    switch (type)
-    {
+void CFFL_TextField::SetActionData(CPDFSDK_PageView* pPageView,
+                                   CPDF_AAction::AActionType type,
+                                   const PDFSDK_FieldAction& fa) {
+  switch (type) {
     case CPDF_AAction::KeyStroke:
-        if (CPWL_Edit * pEdit = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE))
-        {
-            pEdit->SetFocus();
-            pEdit->SetSel(fa.nSelStart, fa.nSelEnd);
-            pEdit->ReplaceSel(fa.sChange.c_str());
-        }
-        break;
+      if (CPWL_Edit* pEdit = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE)) {
+        pEdit->SetFocus();
+        pEdit->SetSel(fa.nSelStart, fa.nSelEnd);
+        pEdit->ReplaceSel(fa.sChange.c_str());
+      }
+      break;
     default:
-        break;
-    }
+      break;
+  }
 }
 
-
-FX_BOOL CFFL_TextField::IsActionDataChanged(CPDF_AAction::AActionType type, const PDFSDK_FieldAction& faOld,
-                                    const PDFSDK_FieldAction& faNew)
-{
-    switch (type)
-    {
+FX_BOOL CFFL_TextField::IsActionDataChanged(CPDF_AAction::AActionType type,
+                                            const PDFSDK_FieldAction& faOld,
+                                            const PDFSDK_FieldAction& faNew) {
+  switch (type) {
     case CPDF_AAction::KeyStroke:
-        return (!faOld.bFieldFull && faOld.nSelEnd != faNew.nSelEnd) || faOld.nSelStart != faNew.nSelStart ||
-            faOld.sChange != faNew.sChange;
+      return (!faOld.bFieldFull && faOld.nSelEnd != faNew.nSelEnd) ||
+             faOld.nSelStart != faNew.nSelStart ||
+             faOld.sChange != faNew.sChange;
     default:
-        break;
-    }
+      break;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-void CFFL_TextField::SaveState(CPDFSDK_PageView* pPageView)
-{
-    ASSERT(pPageView != NULL);
+void CFFL_TextField::SaveState(CPDFSDK_PageView* pPageView) {
+  ASSERT(pPageView != NULL);
 
-    if (CPWL_Edit* pWnd = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE))
-    {
-        pWnd->GetSel(m_State.nStart, m_State.nEnd);
-        m_State.sValue = pWnd->GetText();
-    }
+  if (CPWL_Edit* pWnd = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE)) {
+    pWnd->GetSel(m_State.nStart, m_State.nEnd);
+    m_State.sValue = pWnd->GetText();
+  }
 }
 
-void CFFL_TextField::RestoreState(CPDFSDK_PageView* pPageView)
-{
-    ASSERT(pPageView != NULL);
+void CFFL_TextField::RestoreState(CPDFSDK_PageView* pPageView) {
+  ASSERT(pPageView != NULL);
 
-    if (CPWL_Edit* pWnd = (CPWL_Edit*)GetPDFWindow(pPageView, TRUE))
-    {
-        pWnd->SetText(m_State.sValue.c_str());
-        pWnd->SetSel(m_State.nStart, m_State.nEnd);
-    }
+  if (CPWL_Edit* pWnd = (CPWL_Edit*)GetPDFWindow(pPageView, TRUE)) {
+    pWnd->SetText(m_State.sValue.c_str());
+    pWnd->SetSel(m_State.nStart, m_State.nEnd);
+  }
 }
 
-CPWL_Wnd* CFFL_TextField::ResetPDFWindow(CPDFSDK_PageView* pPageView, FX_BOOL bRestoreValue)
-{
-    if (bRestoreValue)
-        SaveState(pPageView);
+CPWL_Wnd* CFFL_TextField::ResetPDFWindow(CPDFSDK_PageView* pPageView,
+                                         FX_BOOL bRestoreValue) {
+  if (bRestoreValue)
+    SaveState(pPageView);
 
-    DestroyPDFWindow(pPageView);
+  DestroyPDFWindow(pPageView);
 
-    CPWL_Wnd* pRet = NULL;
+  CPWL_Wnd* pRet = NULL;
 
-    if (bRestoreValue)
-    {
-        RestoreState(pPageView);
-        pRet = GetPDFWindow(pPageView, FALSE);
-    }
-    else
-        pRet = GetPDFWindow(pPageView, TRUE);
+  if (bRestoreValue) {
+    RestoreState(pPageView);
+    pRet = GetPDFWindow(pPageView, FALSE);
+  } else
+    pRet = GetPDFWindow(pPageView, TRUE);
 
-    m_pWidget->UpdateField();
+  m_pWidget->UpdateField();
 
-    return pRet;
+  return pRet;
 }
 
-FX_BOOL	CFFL_TextField::IsFieldFull(CPDFSDK_PageView* pPageView)
-{
-	if (CPWL_Edit* pWnd = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE))
-	{
-		return pWnd->IsTextFull();
-	}
+FX_BOOL CFFL_TextField::IsFieldFull(CPDFSDK_PageView* pPageView) {
+  if (CPWL_Edit* pWnd = (CPWL_Edit*)GetPDFWindow(pPageView, FALSE)) {
+    return pWnd->IsTextFull();
+  }
 
-	return FALSE;
+  return FALSE;
 }
 
-void CFFL_TextField::OnSetFocus(CPWL_Wnd* pWnd)
-{
-    ASSERT(m_pApp != NULL);
+void CFFL_TextField::OnSetFocus(CPWL_Wnd* pWnd) {
+  ASSERT(m_pApp != NULL);
 
-    ASSERT(pWnd != NULL);
+  ASSERT(pWnd != NULL);
 
-    if (pWnd->GetClassName() == PWL_CLASSNAME_EDIT)
-    {
-        CPWL_Edit* pEdit = (CPWL_Edit*)pWnd;
-        pEdit->SetCharSet(134);
-        pEdit->SetCodePage(936);
+  if (pWnd->GetClassName() == PWL_CLASSNAME_EDIT) {
+    CPWL_Edit* pEdit = (CPWL_Edit*)pWnd;
+    pEdit->SetCharSet(134);
+    pEdit->SetCodePage(936);
 
-        pEdit->SetReadyToInput();
-        CFX_WideString wsText = pEdit->GetText();
-        int nCharacters = wsText.GetLength();
-        CFX_ByteString bsUTFText = wsText.UTF16LE_Encode();
-        unsigned short* pBuffer = (unsigned short*)bsUTFText.c_str();
-        m_pApp->FFI_OnSetFieldInputFocus(m_pWidget->GetFormField(), pBuffer, nCharacters, TRUE);
+    pEdit->SetReadyToInput();
+    CFX_WideString wsText = pEdit->GetText();
+    int nCharacters = wsText.GetLength();
+    CFX_ByteString bsUTFText = wsText.UTF16LE_Encode();
+    unsigned short* pBuffer = (unsigned short*)bsUTFText.c_str();
+    m_pApp->FFI_OnSetFieldInputFocus(m_pWidget->GetFormField(), pBuffer,
+                                     nCharacters, TRUE);
 
-        pEdit->SetEditNotify(this);
-        //pUndo->BeginEdit(pDocument);
-    }
+    pEdit->SetEditNotify(this);
+    // pUndo->BeginEdit(pDocument);
+  }
 }
 
-void CFFL_TextField::OnKillFocus(CPWL_Wnd* pWnd)
-{
+void CFFL_TextField::OnKillFocus(CPWL_Wnd* pWnd) {}
 
+FX_BOOL CFFL_TextField::CanCopy(CPDFSDK_Document* pDocument) {
+  return FALSE;
 }
 
-FX_BOOL CFFL_TextField::CanCopy(CPDFSDK_Document* pDocument)
-{
-    return FALSE;
+FX_BOOL CFFL_TextField::CanCut(CPDFSDK_Document* pDocument) {
+  return FALSE;
 }
 
-FX_BOOL CFFL_TextField::CanCut(CPDFSDK_Document* pDocument)
-{
-    return FALSE;
-}
-
-FX_BOOL CFFL_TextField::CanPaste(CPDFSDK_Document* pDocument)
-{
-    return FALSE;
+FX_BOOL CFFL_TextField::CanPaste(CPDFSDK_Document* pDocument) {
+  return FALSE;
 }
 
-void CFFL_TextField::DoCopy(CPDFSDK_Document* pDocument)
-{
+void CFFL_TextField::DoCopy(CPDFSDK_Document* pDocument) {}
 
-}
+void CFFL_TextField::DoCut(CPDFSDK_Document* pDocument) {}
 
-void CFFL_TextField::DoCut(CPDFSDK_Document* pDocument)
-{
-}
-
-void CFFL_TextField::DoPaste(CPDFSDK_Document* pDocument)
-{
-
-}
-
-void CFFL_TextField::OnAddUndo(CPWL_Edit* pEdit)
-{
-}
+void CFFL_TextField::DoPaste(CPDFSDK_Document* pDocument) {}
 
+void CFFL_TextField::OnAddUndo(CPWL_Edit* pEdit) {}
diff --git a/fpdfsdk/src/formfiller/FFL_Utils.cpp b/fpdfsdk/src/formfiller/FFL_Utils.cpp
index 8d2d76d73c..d2ce56ac52 100644
--- a/fpdfsdk/src/formfiller/FFL_Utils.cpp
+++ b/fpdfsdk/src/formfiller/FFL_Utils.cpp
@@ -9,106 +9,91 @@
 #include "../../include/formfiller/FormFiller.h"
 #include "../../include/formfiller/FFL_Utils.h"
 
-CPDF_Rect CFFL_Utils::MaxRect(const CPDF_Rect & rect1,const CPDF_Rect & rect2)
-{
-	CPDF_Rect rcRet;
+CPDF_Rect CFFL_Utils::MaxRect(const CPDF_Rect& rect1, const CPDF_Rect& rect2) {
+  CPDF_Rect rcRet;
 
-	rcRet.left = std::min(rect1.left, rect2.left);
-	rcRet.bottom = std::min(rect1.bottom, rect2.bottom);
-	rcRet.right = std::max(rect1.right, rect2.right);
-	rcRet.top = std::max(rect1.top, rect2.top);
+  rcRet.left = std::min(rect1.left, rect2.left);
+  rcRet.bottom = std::min(rect1.bottom, rect2.bottom);
+  rcRet.right = std::max(rect1.right, rect2.right);
+  rcRet.top = std::max(rect1.top, rect2.top);
 
-	return rcRet;
+  return rcRet;
 }
 
-CPDF_Rect CFFL_Utils::InflateRect(const CPDF_Rect & crRect,const FX_FLOAT & fSize)
-{
-	CPDF_Rect crNew(crRect.left - fSize,
-					crRect.bottom - fSize,
-					crRect.right + fSize,
-					crRect.top + fSize);
-	crNew.Normalize();
-	return crNew;
+CPDF_Rect CFFL_Utils::InflateRect(const CPDF_Rect& crRect,
+                                  const FX_FLOAT& fSize) {
+  CPDF_Rect crNew(crRect.left - fSize, crRect.bottom - fSize,
+                  crRect.right + fSize, crRect.top + fSize);
+  crNew.Normalize();
+  return crNew;
 }
 
-CPDF_Rect CFFL_Utils::DeflateRect(const CPDF_Rect & crRect,const FX_FLOAT & fSize)
-{
-	CPDF_Rect crNew(crRect.left + fSize,
-					crRect.bottom + fSize,
-					crRect.right - fSize,
-					crRect.top - fSize);
-	crNew.Normalize();
-	return crNew;
+CPDF_Rect CFFL_Utils::DeflateRect(const CPDF_Rect& crRect,
+                                  const FX_FLOAT& fSize) {
+  CPDF_Rect crNew(crRect.left + fSize, crRect.bottom + fSize,
+                  crRect.right - fSize, crRect.top - fSize);
+  crNew.Normalize();
+  return crNew;
 }
 
-FX_BOOL CFFL_Utils::TraceObject(CPDF_Object* pObj)
-{
-	if (!pObj) return FALSE;
-
-	FX_DWORD	dwObjNum = pObj->GetObjNum();
-	switch (pObj->GetType())
-	{
-	case PDFOBJ_ARRAY:
-		{
-			CPDF_Array* pArray = (CPDF_Array*)pObj;
-			for (FX_DWORD i = 0; i < pArray->GetCount(); i ++)
-			{
-				CPDF_Object* pElement = pArray->GetElementValue(i);
-				TraceObject(pElement);
-			}
-		}
-		break;
-
-	case PDFOBJ_DICTIONARY:
-		{
-			CPDF_Dictionary* pDict = (CPDF_Dictionary*)pObj;
-
-			FX_POSITION fPos = pDict->GetStartPos();
-			CFX_ByteString csKey;
-			do
-			{
-				CPDF_Object* pElement = pDict->GetNextElement(fPos, csKey);
- 				//TRACE(csKey + "\n");
-				if (!pElement) break;
-				TraceObject(pElement);
-			}while (TRUE);
-		}
-		break;
-
-	case PDFOBJ_STREAM:
-		{
-			CPDF_Stream* pStream = (CPDF_Stream*)pObj;
-			CPDF_Dictionary* pDict = pStream->GetDict();
-			TraceObject(pDict);
-		}
-		break;
-
-	case PDFOBJ_REFERENCE:
-		{
-			CPDF_Object* pDirectObj = pObj->GetDirect();
-			TraceObject(pDirectObj);
-		}
-		break;
-
-	case PDFOBJ_BOOLEAN:
-		break;
-	case PDFOBJ_NUMBER:
-		//TRACE("%d\n",(int32_t)pObj);
-		break;
-	case PDFOBJ_STRING:
-		//TRACE(((CPDF_String*)pObj)->GetString() + "\n");
-		break;
-	case PDFOBJ_NAME:
-		//TRACE(((CPDF_Name*)pObj)->GetString() + "\n");
-		break;
-	case PDFOBJ_NULL:
-//	case PDFOBJ_KEYWORD:
-//	case PDFOBJ_EOF:
-	default:
-		break;
-	}
-	if (dwObjNum == 0) return FALSE;
-
-	return TRUE;
+FX_BOOL CFFL_Utils::TraceObject(CPDF_Object* pObj) {
+  if (!pObj)
+    return FALSE;
+
+  FX_DWORD dwObjNum = pObj->GetObjNum();
+  switch (pObj->GetType()) {
+    case PDFOBJ_ARRAY: {
+      CPDF_Array* pArray = (CPDF_Array*)pObj;
+      for (FX_DWORD i = 0; i < pArray->GetCount(); i++) {
+        CPDF_Object* pElement = pArray->GetElementValue(i);
+        TraceObject(pElement);
+      }
+    } break;
+
+    case PDFOBJ_DICTIONARY: {
+      CPDF_Dictionary* pDict = (CPDF_Dictionary*)pObj;
+
+      FX_POSITION fPos = pDict->GetStartPos();
+      CFX_ByteString csKey;
+      do {
+        CPDF_Object* pElement = pDict->GetNextElement(fPos, csKey);
+        // TRACE(csKey + "\n");
+        if (!pElement)
+          break;
+        TraceObject(pElement);
+      } while (TRUE);
+    } break;
+
+    case PDFOBJ_STREAM: {
+      CPDF_Stream* pStream = (CPDF_Stream*)pObj;
+      CPDF_Dictionary* pDict = pStream->GetDict();
+      TraceObject(pDict);
+    } break;
+
+    case PDFOBJ_REFERENCE: {
+      CPDF_Object* pDirectObj = pObj->GetDirect();
+      TraceObject(pDirectObj);
+    } break;
+
+    case PDFOBJ_BOOLEAN:
+      break;
+    case PDFOBJ_NUMBER:
+      // TRACE("%d\n",(int32_t)pObj);
+      break;
+    case PDFOBJ_STRING:
+      // TRACE(((CPDF_String*)pObj)->GetString() + "\n");
+      break;
+    case PDFOBJ_NAME:
+      // TRACE(((CPDF_Name*)pObj)->GetString() + "\n");
+      break;
+    case PDFOBJ_NULL:
+    //	case PDFOBJ_KEYWORD:
+    //	case PDFOBJ_EOF:
+    default:
+      break;
+  }
+  if (dwObjNum == 0)
+    return FALSE;
+
+  return TRUE;
 }
-
diff --git a/fpdfsdk/src/fpdf_dataavail.cpp b/fpdfsdk/src/fpdf_dataavail.cpp
index 2121f2678a..0d5602fcf0 100644
--- a/fpdfsdk/src/fpdf_dataavail.cpp
+++ b/fpdfsdk/src/fpdf_dataavail.cpp
@@ -11,160 +11,138 @@
 #include "../include/fpdfxfa/fpdfxfa_app.h"
 
 extern void ProcessParseError(FX_DWORD err_code);
-class CFPDF_FileAvailWrap : public IFX_FileAvail
-{
-public:
-	CFPDF_FileAvailWrap()
-	{
-		m_pfileAvail = NULL;
-	}
-
-	void Set(FX_FILEAVAIL* pfileAvail)
-	{
-		m_pfileAvail = pfileAvail;
-	}
-
-	virtual FX_BOOL			IsDataAvail( FX_FILESIZE offset, FX_DWORD size)
-	{
-		return m_pfileAvail->IsDataAvail(m_pfileAvail, offset, size);
-	}
-
-private:
-	FX_FILEAVAIL* m_pfileAvail;
+class CFPDF_FileAvailWrap : public IFX_FileAvail {
+ public:
+  CFPDF_FileAvailWrap() { m_pfileAvail = NULL; }
+
+  void Set(FX_FILEAVAIL* pfileAvail) { m_pfileAvail = pfileAvail; }
+
+  virtual FX_BOOL IsDataAvail(FX_FILESIZE offset, FX_DWORD size) {
+    return m_pfileAvail->IsDataAvail(m_pfileAvail, offset, size);
+  }
+
+ private:
+  FX_FILEAVAIL* m_pfileAvail;
 };
 
-class CFPDF_FileAccessWrap : public IFX_FileRead
-{
-public:
-	CFPDF_FileAccessWrap()
-	{
-		m_pFileAccess = NULL;
-	}
-
-	void Set(FPDF_FILEACCESS* pFile)
-	{
-		m_pFileAccess = pFile;
-	}
-
-	virtual FX_FILESIZE		GetSize()
-	{
-		return m_pFileAccess->m_FileLen;
-	}
-
-	virtual FX_BOOL			ReadBlock(void* buffer, FX_FILESIZE offset, size_t size)
-	{
-		return m_pFileAccess->m_GetBlock(m_pFileAccess->m_Param, offset, (uint8_t*)buffer, size);
-	}
-
-	virtual void			Release()
-	{
-	}
-
-private:
-	FPDF_FILEACCESS*		m_pFileAccess;
+class CFPDF_FileAccessWrap : public IFX_FileRead {
+ public:
+  CFPDF_FileAccessWrap() { m_pFileAccess = NULL; }
+
+  void Set(FPDF_FILEACCESS* pFile) { m_pFileAccess = pFile; }
+
+  virtual FX_FILESIZE GetSize() { return m_pFileAccess->m_FileLen; }
+
+  virtual FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) {
+    return m_pFileAccess->m_GetBlock(m_pFileAccess->m_Param, offset,
+                                     (uint8_t*)buffer, size);
+  }
+
+  virtual void Release() {}
+
+ private:
+  FPDF_FILEACCESS* m_pFileAccess;
 };
 
-class CFPDF_DownloadHintsWrap : public IFX_DownloadHints
-{
-public:
-	CFPDF_DownloadHintsWrap(FX_DOWNLOADHINTS* pDownloadHints)
-	{
-		m_pDownloadHints = pDownloadHints;
-	}
-public:
-	virtual void			AddSegment(FX_FILESIZE offset, FX_DWORD size)
-	{
-		m_pDownloadHints->AddSegment(m_pDownloadHints, offset, size);
-	}
-private:
-	FX_DOWNLOADHINTS* m_pDownloadHints;
+class CFPDF_DownloadHintsWrap : public IFX_DownloadHints {
+ public:
+  CFPDF_DownloadHintsWrap(FX_DOWNLOADHINTS* pDownloadHints) {
+    m_pDownloadHints = pDownloadHints;
+  }
+
+ public:
+  virtual void AddSegment(FX_FILESIZE offset, FX_DWORD size) {
+    m_pDownloadHints->AddSegment(m_pDownloadHints, offset, size);
+  }
+
+ private:
+  FX_DOWNLOADHINTS* m_pDownloadHints;
 };
 
-class CFPDF_DataAvail
-{
-public:
-	CFPDF_DataAvail()
-	{
-		m_pDataAvail = NULL;
-	}
-
-	~CFPDF_DataAvail()
-	{
-            delete m_pDataAvail;
-	}
-
-	IPDF_DataAvail*			m_pDataAvail;
-	CFPDF_FileAvailWrap		m_FileAvail;
-	CFPDF_FileAccessWrap	m_FileRead;
+class CFPDF_DataAvail {
+ public:
+  CFPDF_DataAvail() { m_pDataAvail = NULL; }
+
+  ~CFPDF_DataAvail() { delete m_pDataAvail; }
+
+  IPDF_DataAvail* m_pDataAvail;
+  CFPDF_FileAvailWrap m_FileAvail;
+  CFPDF_FileAccessWrap m_FileRead;
 };
 
-DLLEXPORT FPDF_AVAIL STDCALL FPDFAvail_Create(FX_FILEAVAIL* file_avail, FPDF_FILEACCESS* file)
-{
-	CFPDF_DataAvail* pAvail = FX_NEW CFPDF_DataAvail;
-	pAvail->m_FileAvail.Set(file_avail);
-	pAvail->m_FileRead.Set(file);
-	pAvail->m_pDataAvail = IPDF_DataAvail::Create(&pAvail->m_FileAvail, &pAvail->m_FileRead);
-	return pAvail;
+DLLEXPORT FPDF_AVAIL STDCALL FPDFAvail_Create(FX_FILEAVAIL* file_avail,
+                                              FPDF_FILEACCESS* file) {
+  CFPDF_DataAvail* pAvail = FX_NEW CFPDF_DataAvail;
+  pAvail->m_FileAvail.Set(file_avail);
+  pAvail->m_FileRead.Set(file);
+  pAvail->m_pDataAvail =
+      IPDF_DataAvail::Create(&pAvail->m_FileAvail, &pAvail->m_FileRead);
+  return pAvail;
 }
 
-DLLEXPORT void STDCALL FPDFAvail_Destroy(FPDF_AVAIL avail)
-{
-    delete (CFPDF_DataAvail*)avail;
+DLLEXPORT void STDCALL FPDFAvail_Destroy(FPDF_AVAIL avail) {
+  delete (CFPDF_DataAvail*)avail;
 }
 
-DLLEXPORT int STDCALL FPDFAvail_IsDocAvail(FPDF_AVAIL avail, FX_DOWNLOADHINTS* hints)
-{
-	if (avail == NULL || hints == NULL) return 0;
-	CFPDF_DownloadHintsWrap hints_wrap(hints);
-	return ((CFPDF_DataAvail*)avail)->m_pDataAvail->IsDocAvail(&hints_wrap);
+DLLEXPORT int STDCALL FPDFAvail_IsDocAvail(FPDF_AVAIL avail,
+                                           FX_DOWNLOADHINTS* hints) {
+  if (avail == NULL || hints == NULL)
+    return 0;
+  CFPDF_DownloadHintsWrap hints_wrap(hints);
+  return ((CFPDF_DataAvail*)avail)->m_pDataAvail->IsDocAvail(&hints_wrap);
 }
 
-extern void CheckUnSupportError(CPDF_Document * pDoc, FX_DWORD err_code);
-
-DLLEXPORT FPDF_DOCUMENT STDCALL FPDFAvail_GetDocument(FPDF_AVAIL avail,	FPDF_BYTESTRING password)
-{
-	if (avail == NULL) return NULL;
-	CPDF_Parser* pParser = FX_NEW CPDF_Parser;
-	pParser->SetPassword(password);
-
-	FX_DWORD err_code = pParser->StartAsynParse(((CFPDF_DataAvail*)avail)->m_pDataAvail->GetFileRead());
-	if (err_code) {
-		delete pParser;
-		ProcessParseError(err_code);
-		return NULL;
-	}
-	((CFPDF_DataAvail*)avail)->m_pDataAvail->SetDocument(pParser->GetDocument());
-	CheckUnSupportError(pParser->GetDocument(), FPDF_ERR_SUCCESS);
-	CPDF_Document* pPDFDoc = pParser->GetDocument();
-	CPDFXFA_App* pApp = CPDFXFA_App::GetInstance();
-	CPDFXFA_Document* pDocument = FX_NEW CPDFXFA_Document(pPDFDoc, pApp);
-	return pDocument;
+extern void CheckUnSupportError(CPDF_Document* pDoc, FX_DWORD err_code);
+
+DLLEXPORT FPDF_DOCUMENT STDCALL
+FPDFAvail_GetDocument(FPDF_AVAIL avail, FPDF_BYTESTRING password) {
+  if (avail == NULL)
+    return NULL;
+  CPDF_Parser* pParser = FX_NEW CPDF_Parser;
+  pParser->SetPassword(password);
+
+  FX_DWORD err_code = pParser->StartAsynParse(
+      ((CFPDF_DataAvail*)avail)->m_pDataAvail->GetFileRead());
+  if (err_code) {
+    delete pParser;
+    ProcessParseError(err_code);
+    return NULL;
+  }
+  ((CFPDF_DataAvail*)avail)->m_pDataAvail->SetDocument(pParser->GetDocument());
+  CheckUnSupportError(pParser->GetDocument(), FPDF_ERR_SUCCESS);
+  CPDF_Document* pPDFDoc = pParser->GetDocument();
+  CPDFXFA_App* pApp = CPDFXFA_App::GetInstance();
+  CPDFXFA_Document* pDocument = FX_NEW CPDFXFA_Document(pPDFDoc, pApp);
+  return pDocument;
 }
 
-DLLEXPORT int STDCALL FPDFAvail_GetFirstPageNum(FPDF_DOCUMENT doc)
-{
-	if (doc == NULL) return 0;
-	CPDF_Document* pDoc = ((CPDFXFA_Document*)doc)->GetPDFDoc();
-	return ((CPDF_Parser*)pDoc->GetParser())->GetFirstPageNo();
+DLLEXPORT int STDCALL FPDFAvail_GetFirstPageNum(FPDF_DOCUMENT doc) {
+  if (doc == NULL)
+    return 0;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)doc)->GetPDFDoc();
+  return ((CPDF_Parser*)pDoc->GetParser())->GetFirstPageNo();
 }
 
-DLLEXPORT int STDCALL FPDFAvail_IsPageAvail(FPDF_AVAIL avail, int page_index, FX_DOWNLOADHINTS* hints)
-{
-	if (avail == NULL || hints == NULL) return 0;
-	CFPDF_DownloadHintsWrap hints_wrap(hints);
-	return ((CFPDF_DataAvail*)avail)->m_pDataAvail->IsPageAvail(page_index, &hints_wrap);
+DLLEXPORT int STDCALL FPDFAvail_IsPageAvail(FPDF_AVAIL avail,
+                                            int page_index,
+                                            FX_DOWNLOADHINTS* hints) {
+  if (avail == NULL || hints == NULL)
+    return 0;
+  CFPDF_DownloadHintsWrap hints_wrap(hints);
+  return ((CFPDF_DataAvail*)avail)
+      ->m_pDataAvail->IsPageAvail(page_index, &hints_wrap);
 }
 
-DLLEXPORT int STDCALL FPDFAvail_IsFormAvail(FPDF_AVAIL avail, FX_DOWNLOADHINTS* hints)
-{
-	if (avail == NULL || hints == NULL) return -1;
-	CFPDF_DownloadHintsWrap hints_wrap(hints);
-	return ((CFPDF_DataAvail*)avail)->m_pDataAvail->IsFormAvail(&hints_wrap);
+DLLEXPORT int STDCALL FPDFAvail_IsFormAvail(FPDF_AVAIL avail,
+                                            FX_DOWNLOADHINTS* hints) {
+  if (avail == NULL || hints == NULL)
+    return -1;
+  CFPDF_DownloadHintsWrap hints_wrap(hints);
+  return ((CFPDF_DataAvail*)avail)->m_pDataAvail->IsFormAvail(&hints_wrap);
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDFAvail_IsLinearized(FPDF_AVAIL avail)
-{
-		if (avail == NULL) return -1;
-	return ((CFPDF_DataAvail*)avail)->m_pDataAvail->IsLinearizedPDF();
-
+DLLEXPORT FPDF_BOOL STDCALL FPDFAvail_IsLinearized(FPDF_AVAIL avail) {
+  if (avail == NULL)
+    return -1;
+  return ((CFPDF_DataAvail*)avail)->m_pDataAvail->IsLinearizedPDF();
 }
diff --git a/fpdfsdk/src/fpdf_dataavail_embeddertest.cpp b/fpdfsdk/src/fpdf_dataavail_embeddertest.cpp
index d2f0b78b52..292ff79d05 100644
--- a/fpdfsdk/src/fpdf_dataavail_embeddertest.cpp
+++ b/fpdfsdk/src/fpdf_dataavail_embeddertest.cpp
@@ -7,8 +7,7 @@
 #include "../../testing/embedder_test.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-class FPDFDataAvailEmbeddertest : public EmbedderTest {
-};
+class FPDFDataAvailEmbeddertest : public EmbedderTest {};
 
 TEST_F(FPDFDataAvailEmbeddertest, TrailerUnterminated) {
   // Document doesn't even open under XFA but must not crash.
diff --git a/fpdfsdk/src/fpdf_ext.cpp b/fpdfsdk/src/fpdf_ext.cpp
index cc359e95b4..a198f9f63c 100644
--- a/fpdfsdk/src/fpdf_ext.cpp
+++ b/fpdfsdk/src/fpdf_ext.cpp
@@ -9,230 +9,199 @@
 #include "../include/fsdk_define.h"
 #include "../include/fpdfxfa/fpdfxfa_doc.h"
 
-#define  FPDFSDK_UNSUPPORT_CALL 100
-
-class CFSDK_UnsupportInfo_Adapter
-{
-public:
-    CFSDK_UnsupportInfo_Adapter(UNSUPPORT_INFO* unsp_info){ m_unsp_info = unsp_info;}
-//  FX_BOOL NeedToPauseNow();
-    void ReportError(int nErrorType);
-
-private:
-    UNSUPPORT_INFO* m_unsp_info;
+#define FPDFSDK_UNSUPPORT_CALL 100
+
+class CFSDK_UnsupportInfo_Adapter {
+ public:
+  CFSDK_UnsupportInfo_Adapter(UNSUPPORT_INFO* unsp_info) {
+    m_unsp_info = unsp_info;
+  }
+  //  FX_BOOL NeedToPauseNow();
+  void ReportError(int nErrorType);
+
+ private:
+  UNSUPPORT_INFO* m_unsp_info;
 };
 
-void CFSDK_UnsupportInfo_Adapter::ReportError(int nErrorType)
-{
-    if(m_unsp_info && m_unsp_info->FSDK_UnSupport_Handler)
-    {
-        m_unsp_info->FSDK_UnSupport_Handler(m_unsp_info,nErrorType);
-    }
+void CFSDK_UnsupportInfo_Adapter::ReportError(int nErrorType) {
+  if (m_unsp_info && m_unsp_info->FSDK_UnSupport_Handler) {
+    m_unsp_info->FSDK_UnSupport_Handler(m_unsp_info, nErrorType);
+  }
 }
 
-void FreeUnsupportInfo(void* pData)
-{
-    CFSDK_UnsupportInfo_Adapter * pAdapter = (CFSDK_UnsupportInfo_Adapter *)pData;
-    delete pAdapter;
+void FreeUnsupportInfo(void* pData) {
+  CFSDK_UnsupportInfo_Adapter* pAdapter = (CFSDK_UnsupportInfo_Adapter*)pData;
+  delete pAdapter;
 }
 
-FX_BOOL FPDF_UnSupportError(int nError)
-{
-    CFSDK_UnsupportInfo_Adapter * pAdapter = (CFSDK_UnsupportInfo_Adapter *)CPDF_ModuleMgr::Get()->GetPrivateData((void *)FPDFSDK_UNSUPPORT_CALL);
+FX_BOOL FPDF_UnSupportError(int nError) {
+  CFSDK_UnsupportInfo_Adapter* pAdapter =
+      (CFSDK_UnsupportInfo_Adapter*)CPDF_ModuleMgr::Get()->GetPrivateData(
+          (void*)FPDFSDK_UNSUPPORT_CALL);
 
-    if(!pAdapter)
-        return FALSE;
-    pAdapter->ReportError(nError);
-    return TRUE;
+  if (!pAdapter)
+    return FALSE;
+  pAdapter->ReportError(nError);
+  return TRUE;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FSDK_SetUnSpObjProcessHandler(UNSUPPORT_INFO* unsp_info)
-{
-    if (!unsp_info || unsp_info->version!=1)
-        return FALSE;
-    CFSDK_UnsupportInfo_Adapter * pAdapter = new CFSDK_UnsupportInfo_Adapter(unsp_info);
+DLLEXPORT FPDF_BOOL STDCALL
+FSDK_SetUnSpObjProcessHandler(UNSUPPORT_INFO* unsp_info) {
+  if (!unsp_info || unsp_info->version != 1)
+    return FALSE;
+  CFSDK_UnsupportInfo_Adapter* pAdapter =
+      new CFSDK_UnsupportInfo_Adapter(unsp_info);
 
-    CPDF_ModuleMgr::Get()->SetPrivateData((void *)FPDFSDK_UNSUPPORT_CALL,pAdapter, &FreeUnsupportInfo);
+  CPDF_ModuleMgr::Get()->SetPrivateData((void*)FPDFSDK_UNSUPPORT_CALL, pAdapter,
+                                        &FreeUnsupportInfo);
 
-    return TRUE;
+  return TRUE;
 }
 
-void CheckUnSupportAnnot(CPDF_Document * pDoc, CPDF_Annot* pPDFAnnot)
-{
-    CFX_ByteString cbSubType = pPDFAnnot->GetSubType();
-    if(cbSubType.Compare("3D") == 0)
-    {
-        FPDF_UnSupportError(FPDF_UNSP_ANNOT_3DANNOT);
-    }
-    else if(cbSubType.Compare("Screen") ==0)
-    {
-        CPDF_Dictionary* pAnnotDict = pPDFAnnot->GetAnnotDict();
-        CFX_ByteString cbString;
-        if(pAnnotDict->KeyExist("IT"))
-            cbString = pAnnotDict->GetString("IT");
-        if(cbString.Compare("Img") != 0)
-            FPDF_UnSupportError(FPDF_UNSP_ANNOT_SCREEN_MEDIA);
+void CheckUnSupportAnnot(CPDF_Document* pDoc, CPDF_Annot* pPDFAnnot) {
+  CFX_ByteString cbSubType = pPDFAnnot->GetSubType();
+  if (cbSubType.Compare("3D") == 0) {
+    FPDF_UnSupportError(FPDF_UNSP_ANNOT_3DANNOT);
+  } else if (cbSubType.Compare("Screen") == 0) {
+    CPDF_Dictionary* pAnnotDict = pPDFAnnot->GetAnnotDict();
+    CFX_ByteString cbString;
+    if (pAnnotDict->KeyExist("IT"))
+      cbString = pAnnotDict->GetString("IT");
+    if (cbString.Compare("Img") != 0)
+      FPDF_UnSupportError(FPDF_UNSP_ANNOT_SCREEN_MEDIA);
+  } else if (cbSubType.Compare("Movie") == 0) {
+    FPDF_UnSupportError(FPDF_UNSP_ANNOT_MOVIE);
+  } else if (cbSubType.Compare("Sound") == 0) {
+    FPDF_UnSupportError(FPDF_UNSP_ANNOT_SOUND);
+  } else if (cbSubType.Compare("RichMedia") == 0) {
+    FPDF_UnSupportError(FPDF_UNSP_ANNOT_SCREEN_RICHMEDIA);
+  } else if (cbSubType.Compare("FileAttachment") == 0) {
+    FPDF_UnSupportError(FPDF_UNSP_ANNOT_ATTACHMENT);
+  } else if (cbSubType.Compare("Widget") == 0) {
+    CPDF_Dictionary* pAnnotDict = pPDFAnnot->GetAnnotDict();
+    CFX_ByteString cbString;
+    if (pAnnotDict->KeyExist("FT")) {
+      cbString = pAnnotDict->GetString("FT");
     }
-    else if(cbSubType.Compare("Movie") ==0)
-    {
-        FPDF_UnSupportError(FPDF_UNSP_ANNOT_MOVIE);
+    if (cbString.Compare("Sig") == 0) {
+      FPDF_UnSupportError(FPDF_UNSP_ANNOT_SIG);
     }
-    else if(cbSubType.Compare("Sound") ==0)
-    {
-        FPDF_UnSupportError(FPDF_UNSP_ANNOT_SOUND);
-    }
-    else if(cbSubType.Compare("RichMedia") ==0)
-    {
-        FPDF_UnSupportError(FPDF_UNSP_ANNOT_SCREEN_RICHMEDIA);
-    }
-    else if(cbSubType.Compare("FileAttachment") ==0)
-    {
-        FPDF_UnSupportError(FPDF_UNSP_ANNOT_ATTACHMENT);
+  }
+}
+
+FX_BOOL CheckSharedForm(CXML_Element* pElement, CFX_ByteString cbName) {
+  int count = pElement->CountAttrs();
+  int i = 0;
+  for (i = 0; i < count; i++) {
+    CFX_ByteString space, name;
+    CFX_WideString value;
+    pElement->GetAttrByIndex(i, space, name, value);
+    if (space == FX_BSTRC("xmlns") && name == FX_BSTRC("adhocwf") &&
+        value == L"http://ns.adobe.com/AcrobatAdhocWorkflow/1.0/") {
+      CXML_Element* pVersion = pElement->GetElement("adhocwf", cbName);
+      if (!pVersion)
+        continue;
+      CFX_WideString wsContent = pVersion->GetContent(0);  // == 1.1
+      int nType = wsContent.GetInteger();
+      switch (nType) {
+        case 1:
+          FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDFORM_ACROBAT);
+          break;
+        case 2:
+          FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDFORM_FILESYSTEM);
+          break;
+        case 0:
+          FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDFORM_EMAIL);
+          break;
+      }
     }
-    else if(cbSubType.Compare("Widget") ==0)
-    {
-        CPDF_Dictionary* pAnnotDict = pPDFAnnot->GetAnnotDict();
-        CFX_ByteString cbString;
-        if(pAnnotDict->KeyExist("FT"))
-        {
-            cbString = pAnnotDict->GetString("FT");
-        }
-        if(cbString.Compare("Sig") == 0)
-        {
-            FPDF_UnSupportError(FPDF_UNSP_ANNOT_SIG);
-        }
+  }
+
+  FX_DWORD nCount = pElement->CountChildren();
+  for (i = 0; i < (int)nCount; i++) {
+    CXML_Element::ChildType childType = pElement->GetChildType(i);
+    if (childType == CXML_Element::Element) {
+      CXML_Element* pChild = pElement->GetElement(i);
+      if (CheckSharedForm(pChild, cbName))
+        return TRUE;
     }
-
+  }
+  return FALSE;
 }
 
-FX_BOOL CheckSharedForm(CXML_Element * pElement, CFX_ByteString cbName)
-{
-    int count = pElement->CountAttrs();
-    int i=0;
-    for (i = 0; i < count; i++)
-    {
-        CFX_ByteString space, name;
-        CFX_WideString value;
-        pElement->GetAttrByIndex(i, space, name, value);
-        if (space == FX_BSTRC("xmlns") && name == FX_BSTRC("adhocwf") && value ==  L"http://ns.adobe.com/AcrobatAdhocWorkflow/1.0/")
-        {
-            CXML_Element *pVersion = pElement->GetElement("adhocwf",cbName);
-            if (!pVersion)
-                continue;
-            CFX_WideString wsContent = pVersion->GetContent(0); // == 1.1
-            int nType = wsContent.GetInteger();
-            switch(nType)
-            {
-            case 1:
-                FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDFORM_ACROBAT);
-                break;
-            case 2:
-                FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDFORM_FILESYSTEM);
-                break;
-            case 0:
-                FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDFORM_EMAIL);
-                break;
-            }
-        }
+void CheckUnSupportError(CPDF_Document* pDoc, FX_DWORD err_code) {
+  // Security
+  if (err_code == FPDF_ERR_SECURITY) {
+    FPDF_UnSupportError(FPDF_UNSP_DOC_SECURITY);
+    return;
+  }
+  if (!pDoc)
+    return;
+
+  // Portfolios and Packages
+  CPDF_Dictionary* pRootDict = pDoc->GetRoot();
+  if (pRootDict) {
+    CFX_ByteString cbString;
+    if (pRootDict->KeyExist("Collection")) {
+      FPDF_UnSupportError(FPDF_UNSP_DOC_PORTABLECOLLECTION);
+      return;
     }
-
-    FX_DWORD nCount = pElement->CountChildren();
-    for(i=0; i<(int)nCount; i++)
-    {
-        CXML_Element::ChildType childType = pElement->GetChildType(i);
-        if(childType == CXML_Element::Element)
-        {
-            CXML_Element * pChild = pElement->GetElement(i);
-            if(CheckSharedForm(pChild, cbName))
-                return TRUE;
+    if (pRootDict->KeyExist("Names")) {
+      CPDF_Dictionary* pNameDict = pRootDict->GetDict("Names");
+      if (pNameDict && pNameDict->KeyExist("EmbeddedFiles")) {
+        FPDF_UnSupportError(FPDF_UNSP_DOC_ATTACHMENT);
+        return;
+      } else if (pNameDict && pNameDict->KeyExist("JavaScript")) {
+        CPDF_Dictionary* pJSDict = pNameDict->GetDict("JavaScript");
+        CPDF_Array* pArray = pJSDict ? pJSDict->GetArray("Names") : NULL;
+        if (pArray) {
+          int nCount = pArray->GetCount();
+          for (int i = 0; i < nCount; i++) {
+            CFX_ByteString cbStr = pArray->GetString(i);
+            if (cbStr.Compare("com.adobe.acrobat.SharedReview.Register") == 0) {
+              FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDREVIEW);
+              return;
+            }
+          }
         }
+      }
     }
-    return FALSE;
-}
-
-void CheckUnSupportError(CPDF_Document * pDoc, FX_DWORD err_code)
-{
-	// Security
-	if(err_code == FPDF_ERR_SECURITY)
-	{
-		FPDF_UnSupportError(FPDF_UNSP_DOC_SECURITY);
-		return ;
-	}
-	if(!pDoc)
-		return ;
-
-	// Portfolios and Packages
-	CPDF_Dictionary * pRootDict = pDoc->GetRoot();
-	if(pRootDict)
-	{
-		CFX_ByteString cbString;
-		if(pRootDict->KeyExist("Collection"))
-		{
-			FPDF_UnSupportError(FPDF_UNSP_DOC_PORTABLECOLLECTION);
-			return ;
-		}
-		if(pRootDict->KeyExist("Names"))
-		{
-			CPDF_Dictionary* pNameDict = pRootDict->GetDict("Names");
-			if (pNameDict && pNameDict->KeyExist("EmbeddedFiles"))
-			{
-				FPDF_UnSupportError(FPDF_UNSP_DOC_ATTACHMENT);
-				return;
-			}
-			else if (pNameDict && pNameDict->KeyExist("JavaScript"))
-			{
-				CPDF_Dictionary* pJSDict = pNameDict->GetDict("JavaScript");
-				CPDF_Array * pArray = pJSDict ? pJSDict->GetArray("Names") : NULL;
-				if (pArray) {
-					int nCount = pArray->GetCount();
-					for(int i=0; i<nCount; i++)
-					{
-						CFX_ByteString cbStr = pArray->GetString(i);
-						if(cbStr.Compare("com.adobe.acrobat.SharedReview.Register") == 0)
-						{
-							FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDREVIEW);
-							return;
-						}
-					}
-				}
-			}
-		}
-	}
-
-	// SharedForm
-	CPDF_Metadata metaData;
-	metaData.LoadDoc(pDoc);
-	CXML_Element * pElement = metaData.GetRoot();
-	if(pElement)
-		CheckSharedForm(pElement, "workflowType");
+  }
+
+  // SharedForm
+  CPDF_Metadata metaData;
+  metaData.LoadDoc(pDoc);
+  CXML_Element* pElement = metaData.GetRoot();
+  if (pElement)
+    CheckSharedForm(pElement, "workflowType");
 }
 
-DLLEXPORT int FPDFDoc_GetPageMode(FPDF_DOCUMENT document)
-{
-    if (!document)
-        return PAGEMODE_UNKNOWN;
-
-	CPDF_Dictionary *pRoot = (((CPDFXFA_Document*)document)->GetPDFDoc())->GetRoot();
-    if (!pRoot)
-        return PAGEMODE_UNKNOWN;
-
-    CPDF_Object* pName = pRoot->GetElement("PageMode");
-    if (!pName)
-        return PAGEMODE_USENONE;
-
-    CFX_ByteString strPageMode = pName->GetString();
-    if (strPageMode.IsEmpty()||strPageMode.EqualNoCase("UseNone"))
-        return PAGEMODE_USENONE;
-    if (strPageMode.EqualNoCase("UseOutlines"))
-        return PAGEMODE_USEOUTLINES;
-    if (strPageMode.EqualNoCase("UseThumbs"))
-        return PAGEMODE_USETHUMBS;
-    if (strPageMode.EqualNoCase("FullScreen"))
-        return PAGEMODE_FULLSCREEN;
-    if (strPageMode.EqualNoCase("UseOC"))
-        return PAGEMODE_USEOC;
-    if (strPageMode.EqualNoCase("UseAttachments"))
-        return PAGEMODE_USEATTACHMENTS;
+DLLEXPORT int FPDFDoc_GetPageMode(FPDF_DOCUMENT document) {
+  if (!document)
+    return PAGEMODE_UNKNOWN;
 
+  CPDF_Dictionary* pRoot =
+      (((CPDFXFA_Document*)document)->GetPDFDoc())->GetRoot();
+  if (!pRoot)
     return PAGEMODE_UNKNOWN;
+
+  CPDF_Object* pName = pRoot->GetElement("PageMode");
+  if (!pName)
+    return PAGEMODE_USENONE;
+
+  CFX_ByteString strPageMode = pName->GetString();
+  if (strPageMode.IsEmpty() || strPageMode.EqualNoCase("UseNone"))
+    return PAGEMODE_USENONE;
+  if (strPageMode.EqualNoCase("UseOutlines"))
+    return PAGEMODE_USEOUTLINES;
+  if (strPageMode.EqualNoCase("UseThumbs"))
+    return PAGEMODE_USETHUMBS;
+  if (strPageMode.EqualNoCase("FullScreen"))
+    return PAGEMODE_FULLSCREEN;
+  if (strPageMode.EqualNoCase("UseOC"))
+    return PAGEMODE_USEOC;
+  if (strPageMode.EqualNoCase("UseAttachments"))
+    return PAGEMODE_USEATTACHMENTS;
+
+  return PAGEMODE_UNKNOWN;
 }
diff --git a/fpdfsdk/src/fpdf_flatten.cpp b/fpdfsdk/src/fpdf_flatten.cpp
index 9ef6117fe2..5514b2b32b 100644
--- a/fpdfsdk/src/fpdf_flatten.cpp
+++ b/fpdfsdk/src/fpdf_flatten.cpp
@@ -15,544 +15,525 @@ typedef CFX_ArrayTemplate<CPDF_Rect> CPDF_RectArray;
 enum FPDF_TYPE { MAX, MIN };
 enum FPDF_VALUE { TOP, LEFT, RIGHT, BOTTOM };
 
-FX_BOOL IsValiableRect(CPDF_Rect rect, CPDF_Rect rcPage)
-{
-	if ( rect.left - rect.right > 0.000001f ||
-		 rect.bottom - rect.top > 0.000001f)
-		return FALSE;
-
-	if (rect.left == 0.0f &&
-		rect.top == 0.0f &&
-		rect.right == 0.0f &&
-		rect.bottom == 0.0f)
-		return FALSE;
-
-	if (!rcPage.IsEmpty())
-	{
-		if (rect.left - rcPage.left < -10.000001f ||
-			rect.right - rcPage.right > 10.000001f ||
-			rect.top - rcPage.top > 10.000001f ||
-			rect.bottom - rcPage.bottom < -10.000001f)
-			return FALSE;
-	}
-
-	return TRUE;
+FX_BOOL IsValiableRect(CPDF_Rect rect, CPDF_Rect rcPage) {
+  if (rect.left - rect.right > 0.000001f || rect.bottom - rect.top > 0.000001f)
+    return FALSE;
+
+  if (rect.left == 0.0f && rect.top == 0.0f && rect.right == 0.0f &&
+      rect.bottom == 0.0f)
+    return FALSE;
+
+  if (!rcPage.IsEmpty()) {
+    if (rect.left - rcPage.left < -10.000001f ||
+        rect.right - rcPage.right > 10.000001f ||
+        rect.top - rcPage.top > 10.000001f ||
+        rect.bottom - rcPage.bottom < -10.000001f)
+      return FALSE;
+  }
+
+  return TRUE;
 }
 
+FX_BOOL GetContentsRect(CPDF_Document* pDoc,
+                        CPDF_Dictionary* pDict,
+                        CPDF_RectArray* pRectArray) {
+  CPDF_Page* pPDFPage = FX_NEW CPDF_Page;
+  pPDFPage->Load(pDoc, pDict, FALSE);
+  pPDFPage->ParseContent();
 
-FX_BOOL GetContentsRect( CPDF_Document * pDoc, CPDF_Dictionary* pDict, CPDF_RectArray * pRectArray )
-{
-	CPDF_Page* pPDFPage = FX_NEW CPDF_Page;
-	pPDFPage->Load( pDoc, pDict, FALSE );
-	pPDFPage->ParseContent();
+  FX_POSITION pos = pPDFPage->GetFirstObjectPosition();
 
-	FX_POSITION pos = pPDFPage->GetFirstObjectPosition();
+  while (pos) {
+    CPDF_PageObject* pPageObject = pPDFPage->GetNextObject(pos);
+    if (!pPageObject)
+      continue;
 
-	while (pos)
-	{
-		CPDF_PageObject* pPageObject = pPDFPage->GetNextObject(pos);
-		if (!pPageObject)continue;
+    CPDF_Rect rc;
+    rc.left = pPageObject->m_Left;
+    rc.right = pPageObject->m_Right;
+    rc.bottom = pPageObject->m_Bottom;
+    rc.top = pPageObject->m_Top;
 
-		CPDF_Rect rc;
-		rc.left = pPageObject->m_Left;
-		rc.right = pPageObject->m_Right;
-		rc.bottom = pPageObject->m_Bottom;
-		rc.top = pPageObject->m_Top;
+    if (IsValiableRect(rc, pDict->GetRect("MediaBox"))) {
+      pRectArray->Add(rc);
+    }
+  }
 
-		if (IsValiableRect(rc, pDict->GetRect("MediaBox")))
-		{
-			pRectArray->Add(rc);
-		}
-	}
+  delete pPDFPage;
+  return TRUE;
+}
 
-	delete pPDFPage;
-	return TRUE;
+void ParserStream(CPDF_Dictionary* pPageDic,
+                  CPDF_Dictionary* pStream,
+                  CPDF_RectArray* pRectArray,
+                  CPDF_ObjectArray* pObjectArray) {
+  if (!pStream)
+    return;
+  CPDF_Rect rect;
+  if (pStream->KeyExist("Rect"))
+    rect = pStream->GetRect("Rect");
+  else if (pStream->KeyExist("BBox"))
+    rect = pStream->GetRect("BBox");
+
+  if (IsValiableRect(rect, pPageDic->GetRect("MediaBox")))
+    pRectArray->Add(rect);
+
+  pObjectArray->Add(pStream);
 }
 
+int ParserAnnots(CPDF_Document* pSourceDoc,
+                 CPDF_Dictionary* pPageDic,
+                 CPDF_RectArray* pRectArray,
+                 CPDF_ObjectArray* pObjectArray,
+                 int nUsage) {
+  if (!pSourceDoc || !pPageDic)
+    return FLATTEN_FAIL;
+
+  GetContentsRect(pSourceDoc, pPageDic, pRectArray);
+  CPDF_Array* pAnnots = pPageDic->GetArray("Annots");
+  if (!pAnnots)
+    return FLATTEN_NOTHINGTODO;
+
+  FX_DWORD dwSize = pAnnots->GetCount();
+  for (int i = 0; i < (int)dwSize; i++) {
+    CPDF_Object* pObj = pAnnots->GetElementValue(i);
+    if (!pObj || pObj->GetType() != PDFOBJ_DICTIONARY)
+      continue;
+
+    CPDF_Dictionary* pAnnotDic = (CPDF_Dictionary*)pObj;
+    CFX_ByteString sSubtype = pAnnotDic->GetString("Subtype");
+    if (sSubtype == "Popup")
+      continue;
+
+    int nAnnotFlag = pAnnotDic->GetInteger("F");
+    if (nAnnotFlag & ANNOTFLAG_HIDDEN)
+      continue;
+
+    if (nUsage == FLAT_NORMALDISPLAY) {
+      if (nAnnotFlag & ANNOTFLAG_INVISIBLE)
+        continue;
+
+      ParserStream(pPageDic, pAnnotDic, pRectArray, pObjectArray);
+    } else {
+      if (nAnnotFlag & ANNOTFLAG_PRINT)
+        ParserStream(pPageDic, pAnnotDic, pRectArray, pObjectArray);
+    }
+  }
+  return FLATTEN_SUCCESS;
+}
 
-void ParserStream( CPDF_Dictionary * pPageDic, CPDF_Dictionary* pStream, CPDF_RectArray * pRectArray, CPDF_ObjectArray * pObjectArray )
-{
-	if (!pStream)return;
-	CPDF_Rect rect;
-	if (pStream->KeyExist("Rect"))
-		rect = pStream->GetRect("Rect");
-	else if (pStream->KeyExist("BBox"))
-		rect = pStream->GetRect("BBox");
+FX_FLOAT GetMinMaxValue(CPDF_RectArray& array,
+                        FPDF_TYPE type,
+                        FPDF_VALUE value) {
+  int nRects = array.GetSize();
+  FX_FLOAT fRet = 0.0f;
 
-	if (IsValiableRect(rect, pPageDic->GetRect("MediaBox")))
-		pRectArray->Add(rect);
+  if (nRects <= 0)
+    return 0.0f;
 
-	pObjectArray->Add(pStream);
-}
+  FX_FLOAT* pArray = new FX_FLOAT[nRects];
+  switch (value) {
+    case LEFT: {
+      for (int i = 0; i < nRects; i++)
+        pArray[i] = CPDF_Rect(array.GetAt(i)).left;
 
+      break;
+    }
+    case TOP: {
+      for (int i = 0; i < nRects; i++)
+        pArray[i] = CPDF_Rect(array.GetAt(i)).top;
 
-int ParserAnnots( CPDF_Document* pSourceDoc, CPDF_Dictionary * pPageDic, CPDF_RectArray * pRectArray, CPDF_ObjectArray * pObjectArray, int nUsage)
-{
-    if (!pSourceDoc || !pPageDic)
-        return FLATTEN_FAIL;
+      break;
+    }
+    case RIGHT: {
+      for (int i = 0; i < nRects; i++)
+        pArray[i] = CPDF_Rect(array.GetAt(i)).right;
 
-    GetContentsRect( pSourceDoc, pPageDic, pRectArray );
-    CPDF_Array* pAnnots = pPageDic->GetArray("Annots");
-    if (!pAnnots)
-        return FLATTEN_NOTHINGTODO;
+      break;
+    }
+    case BOTTOM: {
+      for (int i = 0; i < nRects; i++)
+        pArray[i] = CPDF_Rect(array.GetAt(i)).bottom;
 
-    FX_DWORD dwSize = pAnnots->GetCount();
-    for (int i = 0; i < (int)dwSize; i++)
-    {
-        CPDF_Object* pObj = pAnnots->GetElementValue(i);
-        if (!pObj || pObj->GetType() != PDFOBJ_DICTIONARY)
-            continue;
+      break;
+    }
+    default:
+      break;
+  }
+  fRet = pArray[0];
+  if (type == MAX) {
+    for (int i = 1; i < nRects; i++)
+      if (fRet <= pArray[i])
+        fRet = pArray[i];
+  } else {
+    for (int i = 1; i < nRects; i++)
+      if (fRet >= pArray[i])
+        fRet = pArray[i];
+  }
+  delete[] pArray;
+  return fRet;
+}
 
-        CPDF_Dictionary* pAnnotDic = (CPDF_Dictionary*)pObj;
-        CFX_ByteString sSubtype = pAnnotDic->GetString("Subtype");
-        if (sSubtype == "Popup")
-            continue;
+CPDF_Rect CalculateRect(CPDF_RectArray* pRectArray) {
+  CPDF_Rect rcRet;
 
-        int nAnnotFlag = pAnnotDic->GetInteger("F");
-        if (nAnnotFlag & ANNOTFLAG_HIDDEN)
-            continue;
+  rcRet.left = GetMinMaxValue(*pRectArray, MIN, LEFT);
+  rcRet.top = GetMinMaxValue(*pRectArray, MAX, TOP);
+  rcRet.right = GetMinMaxValue(*pRectArray, MAX, RIGHT);
+  rcRet.bottom = GetMinMaxValue(*pRectArray, MIN, BOTTOM);
 
-        if(nUsage == FLAT_NORMALDISPLAY)
-        {
-            if (nAnnotFlag & ANNOTFLAG_INVISIBLE)
-                continue;
+  return rcRet;
+}
 
-            ParserStream( pPageDic, pAnnotDic, pRectArray, pObjectArray );
-        }
-        else
-        {
-            if (nAnnotFlag & ANNOTFLAG_PRINT)
-                ParserStream( pPageDic, pAnnotDic, pRectArray, pObjectArray );
-        }
+void SetPageContents(CFX_ByteString key,
+                     CPDF_Dictionary* pPage,
+                     CPDF_Document* pDocument) {
+  CPDF_Object* pContentsObj = pPage->GetStream("Contents");
+  if (!pContentsObj) {
+    pContentsObj = pPage->GetArray("Contents");
+  }
+
+  if (!pContentsObj) {
+    // Create a new contents dictionary
+    if (!key.IsEmpty()) {
+      CPDF_Stream* pNewContents =
+          FX_NEW CPDF_Stream(NULL, 0, FX_NEW CPDF_Dictionary);
+      if (!pNewContents)
+        return;
+      pPage->SetAtReference("Contents", pDocument,
+                            pDocument->AddIndirectObject(pNewContents));
+
+      CFX_ByteString sStream;
+      sStream.Format("q 1 0 0 1 0 0 cm /%s Do Q", key.c_str());
+      pNewContents->SetData((const uint8_t*)sStream, sStream.GetLength(), FALSE,
+                            FALSE);
+    }
+    return;
+  }
+
+  int iType = pContentsObj->GetType();
+  CPDF_Array* pContentsArray = NULL;
+
+  switch (iType) {
+    case PDFOBJ_STREAM: {
+      pContentsArray = FX_NEW CPDF_Array;
+      CPDF_Stream* pContents = (CPDF_Stream*)pContentsObj;
+      FX_DWORD dwObjNum = pDocument->AddIndirectObject(pContents);
+      CPDF_StreamAcc acc;
+      acc.LoadAllData(pContents);
+      CFX_ByteString sStream = "q\n";
+      CFX_ByteString sBody =
+          CFX_ByteString((const FX_CHAR*)acc.GetData(), acc.GetSize());
+      sStream = sStream + sBody + "\nQ";
+      pContents->SetData((const uint8_t*)sStream, sStream.GetLength(), FALSE,
+                         FALSE);
+      pContentsArray->AddReference(pDocument, dwObjNum);
+      break;
+    }
+
+    case PDFOBJ_ARRAY: {
+      pContentsArray = (CPDF_Array*)pContentsObj;
+      break;
     }
-    return FLATTEN_SUCCESS;
+    default:
+      break;
+  }
+
+  if (!pContentsArray)
+    return;
+
+  FX_DWORD dwObjNum = pDocument->AddIndirectObject(pContentsArray);
+  pPage->SetAtReference("Contents", pDocument, dwObjNum);
+
+  if (!key.IsEmpty()) {
+    CPDF_Stream* pNewContents =
+        FX_NEW CPDF_Stream(NULL, 0, FX_NEW CPDF_Dictionary);
+    dwObjNum = pDocument->AddIndirectObject(pNewContents);
+    pContentsArray->AddReference(pDocument, dwObjNum);
+
+    CFX_ByteString sStream;
+    sStream.Format("q 1 0 0 1 0 0 cm /%s Do Q", key.c_str());
+    pNewContents->SetData((const uint8_t*)sStream, sStream.GetLength(), FALSE,
+                          FALSE);
+  }
 }
 
+CFX_AffineMatrix GetMatrix(CPDF_Rect rcAnnot,
+                           CPDF_Rect rcStream,
+                           CFX_AffineMatrix matrix) {
+  if (rcStream.IsEmpty())
+    return CFX_AffineMatrix();
+
+  matrix.TransformRect(rcStream);
+  rcStream.Normalize();
 
-FX_FLOAT GetMinMaxValue( CPDF_RectArray& array, FPDF_TYPE type, FPDF_VALUE value)
-{
-	int nRects = array.GetSize();
-	FX_FLOAT fRet = 0.0f;
-
-	if (nRects <= 0)return 0.0f;
-
-	FX_FLOAT* pArray = new FX_FLOAT[nRects];
-	switch(value)
-	{
-	case LEFT:
-		{
-			for (int i = 0; i < nRects; i++)
-				pArray[i] = CPDF_Rect(array.GetAt(i)).left;
-
-			break;
-		}
-	case TOP:
-		{
-			for (int i = 0; i < nRects; i++)
-				pArray[i] = CPDF_Rect(array.GetAt(i)).top;
-
-			break;
-		}
-	case RIGHT:
-		{
-			for (int i = 0; i < nRects; i++)
-				pArray[i] = CPDF_Rect(array.GetAt(i)).right;
-
-			break;
-		}
-	case BOTTOM:
-		{
-			for (int i = 0; i < nRects; i++)
-				pArray[i] = CPDF_Rect(array.GetAt(i)).bottom;
-
-			break;
-		}
-	default:
-		break;
-	}
-	fRet = pArray[0];
-	if (type == MAX)
-	{
-		for (int i = 1; i < nRects; i++)
-			if (fRet <= pArray[i])
-				fRet = pArray[i];
-	}
-	else
-	{
-		for (int i = 1; i < nRects; i++)
-			if (fRet >= pArray[i])
-				fRet = pArray[i];
-	}
-	delete[] pArray;
-	return fRet;
+  FX_FLOAT a = rcAnnot.Width() / rcStream.Width();
+  FX_FLOAT d = rcAnnot.Height() / rcStream.Height();
+
+  FX_FLOAT e = rcAnnot.left - rcStream.left * a;
+  FX_FLOAT f = rcAnnot.bottom - rcStream.bottom * d;
+  return CFX_AffineMatrix(a, 0, 0, d, e, f);
 }
 
-CPDF_Rect CalculateRect( CPDF_RectArray * pRectArray )
-{
+void GetOffset(FX_FLOAT& fa,
+               FX_FLOAT& fd,
+               FX_FLOAT& fe,
+               FX_FLOAT& ff,
+               CPDF_Rect rcAnnot,
+               CPDF_Rect rcStream,
+               CFX_AffineMatrix matrix) {
+  FX_FLOAT fStreamWidth = 0.0f;
+  FX_FLOAT fStreamHeight = 0.0f;
+
+  if (matrix.a != 0 && matrix.d != 0) {
+    fStreamWidth = rcStream.right - rcStream.left;
+    fStreamHeight = rcStream.top - rcStream.bottom;
+  } else {
+    fStreamWidth = rcStream.top - rcStream.bottom;
+    fStreamHeight = rcStream.right - rcStream.left;
+  }
+
+  FX_FLOAT x1 =
+      matrix.a * rcStream.left + matrix.c * rcStream.bottom + matrix.e;
+  FX_FLOAT y1 =
+      matrix.b * rcStream.left + matrix.d * rcStream.bottom + matrix.f;
+  FX_FLOAT x2 = matrix.a * rcStream.left + matrix.c * rcStream.top + matrix.e;
+  FX_FLOAT y2 = matrix.b * rcStream.left + matrix.d * rcStream.top + matrix.f;
+  FX_FLOAT x3 =
+      matrix.a * rcStream.right + matrix.c * rcStream.bottom + matrix.e;
+  FX_FLOAT y3 =
+      matrix.b * rcStream.right + matrix.d * rcStream.bottom + matrix.f;
+  FX_FLOAT x4 = matrix.a * rcStream.right + matrix.c * rcStream.top + matrix.e;
+  FX_FLOAT y4 = matrix.b * rcStream.right + matrix.d * rcStream.top + matrix.f;
+
+  FX_FLOAT left = FX_MIN(FX_MIN(x1, x2), FX_MIN(x3, x4));
+  FX_FLOAT bottom = FX_MIN(FX_MIN(y1, y2), FX_MIN(y3, y4));
+
+  fa = (rcAnnot.right - rcAnnot.left) / fStreamWidth;
+  fd = (rcAnnot.top - rcAnnot.bottom) / fStreamHeight;
+  fe = rcAnnot.left - left * fa;
+  ff = rcAnnot.bottom - bottom * fd;
+}
 
-	CPDF_Rect rcRet;
+DLLEXPORT int STDCALL FPDFPage_Flatten(FPDF_PAGE page, int nFlag) {
+  if (!page) {
+    return FLATTEN_FAIL;
+  }
+
+  CPDF_Page* pPage = ((CPDFXFA_Page*)(page))->GetPDFPage();
+  if (!pPage)
+    return FLATTEN_FAIL;
+
+  CPDF_Document* pDocument = pPage->m_pDocument;
+  CPDF_Dictionary* pPageDict = pPage->m_pFormDict;
+
+  if (!pDocument || !pPageDict) {
+    return FLATTEN_FAIL;
+  }
+
+  CPDF_ObjectArray ObjectArray;
+  CPDF_RectArray RectArray;
+
+  int iRet = FLATTEN_FAIL;
+  iRet = ParserAnnots(pDocument, pPageDict, &RectArray, &ObjectArray, nFlag);
+  if (iRet == FLATTEN_NOTHINGTODO || iRet == FLATTEN_FAIL)
+    return iRet;
+
+  CPDF_Rect rcOriginalCB;
+  CPDF_Rect rcMerger = CalculateRect(&RectArray);
+  CPDF_Rect rcOriginalMB = pPageDict->GetRect("MediaBox");
+
+  if (pPageDict->KeyExist("CropBox"))
+    rcOriginalMB = pPageDict->GetRect("CropBox");
+
+  if (rcOriginalMB.IsEmpty()) {
+    rcOriginalMB = CPDF_Rect(0.0f, 0.0f, 612.0f, 792.0f);
+  }
+
+  rcMerger.left =
+      rcMerger.left < rcOriginalMB.left ? rcOriginalMB.left : rcMerger.left;
+  rcMerger.right =
+      rcMerger.right > rcOriginalMB.right ? rcOriginalMB.right : rcMerger.right;
+  rcMerger.top =
+      rcMerger.top > rcOriginalMB.top ? rcOriginalMB.top : rcMerger.top;
+  rcMerger.bottom = rcMerger.bottom < rcOriginalMB.bottom ? rcOriginalMB.bottom
+                                                          : rcMerger.bottom;
+
+  if (pPageDict->KeyExist("ArtBox"))
+    rcOriginalCB = pPageDict->GetRect("ArtBox");
+  else
+    rcOriginalCB = rcOriginalMB;
+
+  if (!rcOriginalMB.IsEmpty()) {
+    CPDF_Array* pMediaBox = FX_NEW CPDF_Array();
+
+    pMediaBox->Add(FX_NEW CPDF_Number(rcOriginalMB.left));
+    pMediaBox->Add(FX_NEW CPDF_Number(rcOriginalMB.bottom));
+    pMediaBox->Add(FX_NEW CPDF_Number(rcOriginalMB.right));
+    pMediaBox->Add(FX_NEW CPDF_Number(rcOriginalMB.top));
+
+    pPageDict->SetAt("MediaBox", pMediaBox);
+  }
+
+  if (!rcOriginalCB.IsEmpty()) {
+    CPDF_Array* pCropBox = FX_NEW CPDF_Array();
+    pCropBox->Add(FX_NEW CPDF_Number(rcOriginalCB.left));
+    pCropBox->Add(FX_NEW CPDF_Number(rcOriginalCB.bottom));
+    pCropBox->Add(FX_NEW CPDF_Number(rcOriginalCB.right));
+    pCropBox->Add(FX_NEW CPDF_Number(rcOriginalCB.top));
+    pPageDict->SetAt("ArtBox", pCropBox);
+  }
+
+  CPDF_Dictionary* pRes = NULL;
+  pRes = pPageDict->GetDict("Resources");
+  if (!pRes) {
+    pRes = FX_NEW CPDF_Dictionary;
+    pPageDict->SetAt("Resources", pRes);
+  }
+
+  CPDF_Stream* pNewXObject =
+      FX_NEW CPDF_Stream(NULL, 0, FX_NEW CPDF_Dictionary);
+  FX_DWORD dwObjNum = pDocument->AddIndirectObject(pNewXObject);
+  CPDF_Dictionary* pPageXObject = pRes->GetDict("XObject");
+  if (!pPageXObject) {
+    pPageXObject = FX_NEW CPDF_Dictionary;
+    pRes->SetAt("XObject", pPageXObject);
+  }
+
+  CFX_ByteString key = "";
+  int nStreams = ObjectArray.GetSize();
+
+  if (nStreams > 0) {
+    for (int iKey = 0; /*iKey < 100*/; iKey++) {
+      char sExtend[5] = {};
+      FXSYS_itoa(iKey, sExtend, 10);
+      key = CFX_ByteString("FFT") + CFX_ByteString(sExtend);
+
+      if (!pPageXObject->KeyExist(key))
+        break;
+    }
+  }
+
+  SetPageContents(key, pPageDict, pDocument);
+
+  CPDF_Dictionary* pNewXORes = NULL;
+
+  if (!key.IsEmpty()) {
+    pPageXObject->SetAtReference(key, pDocument, dwObjNum);
+    CPDF_Dictionary* pNewOXbjectDic = pNewXObject->GetDict();
+    pNewXORes = FX_NEW CPDF_Dictionary;
+    pNewOXbjectDic->SetAt("Resources", pNewXORes);
+    pNewOXbjectDic->SetAtName("Type", "XObject");
+    pNewOXbjectDic->SetAtName("Subtype", "Form");
+    pNewOXbjectDic->SetAtInteger("FormType", 1);
+    pNewOXbjectDic->SetAtName("Name", "FRM");
+    CPDF_Rect rcBBox = pPageDict->GetRect("ArtBox");
+    pNewOXbjectDic->SetAtRect("BBox", rcBBox);
+  }
+
+  for (int i = 0; i < nStreams; i++) {
+    CPDF_Dictionary* pAnnotDic = ObjectArray.GetAt(i);
+    if (!pAnnotDic)
+      continue;
+
+    CPDF_Rect rcAnnot = pAnnotDic->GetRect("Rect");
+    rcAnnot.Normalize();
+
+    CFX_ByteString sAnnotState = pAnnotDic->GetString("AS");
+    CPDF_Dictionary* pAnnotAP = pAnnotDic->GetDict("AP");
+    if (!pAnnotAP)
+      continue;
+
+    CPDF_Stream* pAPStream = pAnnotAP->GetStream("N");
+    if (!pAPStream) {
+      CPDF_Dictionary* pAPDic = pAnnotAP->GetDict("N");
+      if (!pAPDic)
+        continue;
+
+      if (!sAnnotState.IsEmpty()) {
+        pAPStream = pAPDic->GetStream(sAnnotState);
+      } else {
+        FX_POSITION pos = pAPDic->GetStartPos();
+        if (pos) {
+          CFX_ByteString sKey;
+          CPDF_Object* pFirstObj = pAPDic->GetNextElement(pos, sKey);
+          if (pFirstObj) {
+            if (pFirstObj->GetType() == PDFOBJ_REFERENCE)
+              pFirstObj = pFirstObj->GetDirect();
+
+            if (pFirstObj->GetType() != PDFOBJ_STREAM)
+              continue;
+
+            pAPStream = (CPDF_Stream*)pFirstObj;
+          }
+        }
+      }
+    }
 
-	rcRet.left = GetMinMaxValue(*pRectArray, MIN, LEFT);
-	rcRet.top = GetMinMaxValue(*pRectArray, MAX, TOP);
-	rcRet.right = GetMinMaxValue(*pRectArray, MAX, RIGHT);
-	rcRet.bottom = GetMinMaxValue(*pRectArray, MIN, BOTTOM);
+    if (!pAPStream)
+      continue;
 
-	return rcRet;
-}
+    CPDF_Dictionary* pAPDic = pAPStream->GetDict();
+    CFX_AffineMatrix matrix = pAPDic->GetMatrix("Matrix");
 
+    CPDF_Rect rcStream;
+    if (pAPDic->KeyExist("Rect"))
+      rcStream = pAPDic->GetRect("Rect");
+    else if (pAPDic->KeyExist("BBox"))
+      rcStream = pAPDic->GetRect("BBox");
 
-void SetPageContents(CFX_ByteString key, CPDF_Dictionary* pPage, CPDF_Document* pDocument)
-{
-	CPDF_Object* pContentsObj = pPage->GetStream("Contents");
-	if (!pContentsObj)
-	{
-		pContentsObj = pPage->GetArray("Contents");
-	}
-
-	if (!pContentsObj)
-	{
-		//Create a new contents dictionary
-		if (!key.IsEmpty())
-		{
-			CPDF_Stream* pNewContents = FX_NEW CPDF_Stream(NULL, 0, FX_NEW CPDF_Dictionary);
-			if (!pNewContents)return;
-			pPage->SetAtReference("Contents", pDocument, pDocument->AddIndirectObject(pNewContents));
-
-			CFX_ByteString sStream;
-			sStream.Format("q 1 0 0 1 0 0 cm /%s Do Q", key.c_str());
-			pNewContents->SetData((const uint8_t*)sStream, sStream.GetLength(), FALSE, FALSE);
-		}
-		return;
-	}
-
-	int iType = pContentsObj->GetType();
-	CPDF_Array* pContentsArray = NULL;
-
-	switch(iType)
-	{
-	case PDFOBJ_STREAM:
-		{
-			pContentsArray = FX_NEW CPDF_Array;
-			CPDF_Stream* pContents = (CPDF_Stream*)pContentsObj;
-			FX_DWORD dwObjNum = pDocument->AddIndirectObject(pContents);
-			CPDF_StreamAcc acc;
-			acc.LoadAllData(pContents);
-			CFX_ByteString sStream = "q\n";
-			CFX_ByteString sBody = CFX_ByteString((const FX_CHAR*)acc.GetData(), acc.GetSize());
-			sStream = sStream + sBody + "\nQ";
-			pContents->SetData((const uint8_t*)sStream, sStream.GetLength(), FALSE, FALSE);
-			pContentsArray->AddReference(pDocument, dwObjNum);
-			break;
-		}
-
-	case PDFOBJ_ARRAY:
-		{
-			pContentsArray = (CPDF_Array*)pContentsObj;
-			break;
-		}
-	default:
-		break;
-	}
-
-	if (!pContentsArray)return;
-
-	FX_DWORD dwObjNum = pDocument->AddIndirectObject(pContentsArray);
-	pPage->SetAtReference("Contents", pDocument, dwObjNum);
-
-	if (!key.IsEmpty())
-	{
-		CPDF_Stream* pNewContents = FX_NEW CPDF_Stream(NULL, 0, FX_NEW CPDF_Dictionary);
-		dwObjNum = pDocument->AddIndirectObject(pNewContents);
-		pContentsArray->AddReference(pDocument, dwObjNum);
-
-		CFX_ByteString sStream;
-		sStream.Format("q 1 0 0 1 0 0 cm /%s Do Q", key.c_str());
-		pNewContents->SetData((const uint8_t*)sStream, sStream.GetLength(), FALSE, FALSE);
-	}
-}
+    if (rcStream.IsEmpty())
+      continue;
 
-CFX_AffineMatrix GetMatrix(CPDF_Rect rcAnnot, CPDF_Rect rcStream, CFX_AffineMatrix matrix)
-{
-	if(rcStream.IsEmpty())
-		return CFX_AffineMatrix();
+    CPDF_Object* pObj = pAPStream;
 
-	matrix.TransformRect(rcStream);
-	rcStream.Normalize();
+    if (pObj) {
+      CPDF_Dictionary* pObjDic = pObj->GetDict();
+      if (pObjDic) {
+        pObjDic->SetAtName("Type", "XObject");
+        pObjDic->SetAtName("Subtype", "Form");
+      }
+    }
 
-	FX_FLOAT a = rcAnnot.Width()/rcStream.Width();
-	FX_FLOAT d = rcAnnot.Height()/rcStream.Height();
+    CPDF_Dictionary* pXObject = pNewXORes->GetDict("XObject");
+    if (!pXObject) {
+      pXObject = FX_NEW CPDF_Dictionary;
+      pNewXORes->SetAt("XObject", pXObject);
+    }
 
-	FX_FLOAT e = rcAnnot.left - rcStream.left * a;
-	FX_FLOAT f = rcAnnot.bottom - rcStream.bottom * d;
-	return CFX_AffineMatrix(a, 0, 0, d, e, f);
-}
+    CFX_ByteString sFormName;
+    sFormName.Format("F%d", i);
+    FX_DWORD dwObjNum = pDocument->AddIndirectObject(pObj);
+    pXObject->SetAtReference(sFormName, pDocument, dwObjNum);
+
+    CPDF_StreamAcc acc;
+    acc.LoadAllData(pNewXObject);
+
+    const uint8_t* pData = acc.GetData();
+    CFX_ByteString sStream(pData, acc.GetSize());
+    CFX_ByteString sTemp;
+
+    if (matrix.IsIdentity()) {
+      matrix.a = 1.0f;
+      matrix.b = 0.0f;
+      matrix.c = 0.0f;
+      matrix.d = 1.0f;
+      matrix.e = 0.0f;
+      matrix.f = 0.0f;
+    }
 
-void GetOffset(FX_FLOAT& fa, FX_FLOAT& fd, FX_FLOAT& fe, FX_FLOAT& ff, CPDF_Rect rcAnnot, CPDF_Rect rcStream, CFX_AffineMatrix matrix)
-{
-	FX_FLOAT fStreamWidth = 0.0f;
-	FX_FLOAT fStreamHeight = 0.0f;
-
-
-
-	if (matrix.a != 0 && matrix.d != 0)
-	{
-		fStreamWidth = rcStream.right - rcStream.left;
-		fStreamHeight = rcStream.top - rcStream.bottom;
-	}
-	else
-	{
-		fStreamWidth = rcStream.top - rcStream.bottom;
-		fStreamHeight = rcStream.right - rcStream.left;
-	}
-
-	FX_FLOAT x1 = matrix.a * rcStream.left + matrix.c * rcStream.bottom + matrix.e;
-	FX_FLOAT y1 = matrix.b * rcStream.left + matrix.d * rcStream.bottom + matrix.f;
-	FX_FLOAT x2 = matrix.a * rcStream.left + matrix.c * rcStream.top + matrix.e;
-	FX_FLOAT y2 = matrix.b * rcStream.left + matrix.d * rcStream.top + matrix.f;
-	FX_FLOAT x3 = matrix.a * rcStream.right + matrix.c * rcStream.bottom + matrix.e;
-	FX_FLOAT y3 = matrix.b * rcStream.right + matrix.d * rcStream.bottom + matrix.f;
-	FX_FLOAT x4 = matrix.a * rcStream.right + matrix.c * rcStream.top + matrix.e;
-	FX_FLOAT y4 = matrix.b * rcStream.right + matrix.d * rcStream.top + matrix.f;
-
-	FX_FLOAT left = FX_MIN(FX_MIN(x1, x2), FX_MIN(x3, x4));
-	FX_FLOAT bottom = FX_MIN(FX_MIN(y1, y2), FX_MIN(y3, y4));
-
-	fa = (rcAnnot.right - rcAnnot.left)/fStreamWidth;
-	fd = (rcAnnot.top - rcAnnot.bottom)/fStreamHeight;
-	fe = rcAnnot.left - left * fa;
-	ff = rcAnnot.bottom - bottom * fd;
-}
+    CFX_AffineMatrix m = GetMatrix(rcAnnot, rcStream, matrix);
+    sTemp.Format("q %f 0 0 %f %f %f cm /%s Do Q\n", m.a, m.d, m.e, m.f,
+                 sFormName.c_str());
+    sStream += sTemp;
+
+    pNewXObject->SetData((const uint8_t*)sStream, sStream.GetLength(), FALSE,
+                         FALSE);
+  }
+  pPageDict->RemoveAt("Annots");
 
+  ObjectArray.RemoveAll();
+  RectArray.RemoveAll();
 
-DLLEXPORT int STDCALL FPDFPage_Flatten( FPDF_PAGE page, int nFlag)
-{
-	if (!page)
-	{
-		return FLATTEN_FAIL;
-	}
-
-	CPDF_Page * pPage = ((CPDFXFA_Page*)( page ))->GetPDFPage();
-	if (!pPage)
-		return FLATTEN_FAIL;
-
-	CPDF_Document * pDocument = pPage->m_pDocument;
-	CPDF_Dictionary * pPageDict = pPage->m_pFormDict;
-
-	if ( !pDocument || !pPageDict )
-	{
-		return FLATTEN_FAIL;
-	}
-
-	CPDF_ObjectArray ObjectArray;
-	CPDF_RectArray  RectArray;
-
-	int iRet = FLATTEN_FAIL;
-	iRet = ParserAnnots( pDocument, pPageDict, &RectArray, &ObjectArray, nFlag);
-	if (iRet == FLATTEN_NOTHINGTODO || iRet == FLATTEN_FAIL)
-		return iRet;
-
-	CPDF_Rect rcOriginalCB;
-	CPDF_Rect rcMerger = CalculateRect( &RectArray );
-	CPDF_Rect rcOriginalMB = pPageDict->GetRect("MediaBox");
-
-	if (pPageDict->KeyExist("CropBox"))
-		rcOriginalMB = pPageDict->GetRect("CropBox");
-
-	if (rcOriginalMB.IsEmpty())
-	{
-		rcOriginalMB = CPDF_Rect(0.0f, 0.0f, 612.0f, 792.0f);
-	}
-
-	rcMerger.left = rcMerger.left < rcOriginalMB.left? rcOriginalMB.left : rcMerger.left;
-	rcMerger.right = rcMerger.right > rcOriginalMB.right? rcOriginalMB.right : rcMerger.right;
-	rcMerger.top = rcMerger.top > rcOriginalMB.top? rcOriginalMB.top : rcMerger.top;
-	rcMerger.bottom = rcMerger.bottom < rcOriginalMB.bottom? rcOriginalMB.bottom : rcMerger.bottom;
-
-	if (pPageDict->KeyExist("ArtBox"))
-		rcOriginalCB = pPageDict->GetRect("ArtBox");
-	else
-		rcOriginalCB = rcOriginalMB;
-
-	if (!rcOriginalMB.IsEmpty())
-	{
-		CPDF_Array* pMediaBox = FX_NEW CPDF_Array();
-
-		pMediaBox->Add(FX_NEW CPDF_Number(rcOriginalMB.left));
-		pMediaBox->Add(FX_NEW CPDF_Number(rcOriginalMB.bottom));
-		pMediaBox->Add(FX_NEW CPDF_Number(rcOriginalMB.right));
-		pMediaBox->Add(FX_NEW CPDF_Number(rcOriginalMB.top));
-
-		pPageDict->SetAt("MediaBox",pMediaBox);
-	}
-
-	if (!rcOriginalCB.IsEmpty())
-	{
-		CPDF_Array* pCropBox = FX_NEW CPDF_Array();
-		pCropBox->Add(FX_NEW CPDF_Number(rcOriginalCB.left));
-		pCropBox->Add(FX_NEW CPDF_Number(rcOriginalCB.bottom));
-		pCropBox->Add(FX_NEW CPDF_Number(rcOriginalCB.right));
-		pCropBox->Add(FX_NEW CPDF_Number(rcOriginalCB.top));
-		pPageDict->SetAt("ArtBox", pCropBox);
-	}
-
-	CPDF_Dictionary* pRes = NULL;
-	pRes = pPageDict->GetDict("Resources");
-	if (!pRes)
-	{
-		pRes = FX_NEW CPDF_Dictionary;
-		pPageDict->SetAt( "Resources", pRes );
-	}
-
-	CPDF_Stream* pNewXObject = FX_NEW CPDF_Stream(NULL, 0, FX_NEW CPDF_Dictionary);
-	FX_DWORD dwObjNum = pDocument->AddIndirectObject(pNewXObject);
-	CPDF_Dictionary* pPageXObject = pRes->GetDict("XObject");
-	if (!pPageXObject)
-	{
-		pPageXObject = FX_NEW CPDF_Dictionary;
-		pRes->SetAt("XObject", pPageXObject);
-	}
-
-	CFX_ByteString key = "";
-	int nStreams = ObjectArray.GetSize();
-
-	if (nStreams > 0)
-	{
-		for (int iKey = 0; /*iKey < 100*/; iKey++)
-		{
-			char sExtend[5] = {};
-			FXSYS_itoa(iKey, sExtend, 10);
-			key = CFX_ByteString("FFT") + CFX_ByteString(sExtend);
-
-			if (!pPageXObject->KeyExist(key))
-				break;
-		}
-	}
-
-	SetPageContents(key, pPageDict, pDocument);
-
-	CPDF_Dictionary* pNewXORes = NULL;
-
-	if (!key.IsEmpty())
-	{
-		pPageXObject->SetAtReference(key, pDocument, dwObjNum);
-		CPDF_Dictionary* pNewOXbjectDic = pNewXObject->GetDict();
-		pNewXORes = FX_NEW CPDF_Dictionary;
-		pNewOXbjectDic->SetAt("Resources", pNewXORes);
-		pNewOXbjectDic->SetAtName("Type", "XObject");
-		pNewOXbjectDic->SetAtName("Subtype", "Form");
-		pNewOXbjectDic->SetAtInteger("FormType", 1);
-		pNewOXbjectDic->SetAtName("Name", "FRM");
-		CPDF_Rect rcBBox = pPageDict->GetRect("ArtBox");
-		pNewOXbjectDic->SetAtRect("BBox", rcBBox);
-	}
-
-	for (int i = 0; i < nStreams; i++)
-	{
-		CPDF_Dictionary* pAnnotDic = ObjectArray.GetAt(i);
-		if (!pAnnotDic)continue;
-
-		CPDF_Rect rcAnnot = pAnnotDic->GetRect("Rect");
-		rcAnnot.Normalize();
-
-		CFX_ByteString sAnnotState = pAnnotDic->GetString("AS");
-		CPDF_Dictionary* pAnnotAP = pAnnotDic->GetDict("AP");
-		if (!pAnnotAP)continue;
-
-		CPDF_Stream* pAPStream = pAnnotAP->GetStream("N");
-		if (!pAPStream)
-		{
-			CPDF_Dictionary* pAPDic = pAnnotAP->GetDict("N");
-			if (!pAPDic)continue;
-
-			if (!sAnnotState.IsEmpty())
-			{
-				pAPStream = pAPDic->GetStream(sAnnotState);
-			}
-			else
-			{
-				FX_POSITION pos = pAPDic->GetStartPos();
-				if (pos)
-				{
-					CFX_ByteString sKey;
-					CPDF_Object* pFirstObj = pAPDic->GetNextElement(pos, sKey);
-					if (pFirstObj)
-					{
-						if (pFirstObj->GetType() == PDFOBJ_REFERENCE)
-							pFirstObj = pFirstObj->GetDirect();
-
-						if (pFirstObj->GetType() != PDFOBJ_STREAM)
-							continue;
-
-						pAPStream = (CPDF_Stream*)pFirstObj;
-					}
-				}
-			}
-		}
-
-		if (!pAPStream)continue;
-
-		CPDF_Dictionary* pAPDic = pAPStream->GetDict();
-		CFX_AffineMatrix matrix = pAPDic->GetMatrix("Matrix");
-
-		CPDF_Rect rcStream;
-		if (pAPDic->KeyExist("Rect"))
-			rcStream = pAPDic->GetRect("Rect");
-		else if (pAPDic->KeyExist("BBox"))
-			rcStream = pAPDic->GetRect("BBox");
-
-		if (rcStream.IsEmpty())continue;
-
-		CPDF_Object* pObj = pAPStream;
-
-		if (pObj)
-		{
-			CPDF_Dictionary* pObjDic = pObj->GetDict();
-			if (pObjDic)
-			{
-				pObjDic->SetAtName("Type", "XObject");
-				pObjDic->SetAtName("Subtype", "Form");
-			}
-		}
-
-		CPDF_Dictionary* pXObject = pNewXORes->GetDict("XObject");
-		if (!pXObject)
-		{
-			pXObject = FX_NEW CPDF_Dictionary;
-			pNewXORes->SetAt("XObject", pXObject);
-		}
-
-		CFX_ByteString sFormName;
-		sFormName.Format("F%d", i);
-		FX_DWORD dwObjNum = pDocument->AddIndirectObject(pObj);
-		pXObject->SetAtReference(sFormName, pDocument, dwObjNum);
-
-		CPDF_StreamAcc acc;
-		acc.LoadAllData(pNewXObject);
-
-		const uint8_t* pData = acc.GetData();
-		CFX_ByteString sStream(pData, acc.GetSize());
-		CFX_ByteString sTemp;
-
-		if (matrix.IsIdentity())
-		{
-			matrix.a = 1.0f;
-			matrix.b = 0.0f;
-			matrix.c = 0.0f;
-			matrix.d = 1.0f;
-			matrix.e = 0.0f;
-			matrix.f = 0.0f;
-		}
-
-		CFX_AffineMatrix m = GetMatrix(rcAnnot, rcStream, matrix);
-		sTemp.Format("q %f 0 0 %f %f %f cm /%s Do Q\n", m.a, m.d, m.e, m.f, sFormName.c_str());
-		sStream += sTemp;
-
-		pNewXObject->SetData((const uint8_t*)sStream, sStream.GetLength(), FALSE, FALSE);
-	}
-	pPageDict->RemoveAt( "Annots" );
-
-	ObjectArray.RemoveAll();
-	RectArray.RemoveAll();
-
-	return FLATTEN_SUCCESS;
+  return FLATTEN_SUCCESS;
 }
diff --git a/fpdfsdk/src/fpdf_progressive.cpp b/fpdfsdk/src/fpdf_progressive.cpp
index f47cd7dde6..9167a77c46 100644
--- a/fpdfsdk/src/fpdf_progressive.cpp
+++ b/fpdfsdk/src/fpdf_progressive.cpp
@@ -11,100 +11,104 @@
 #include "../include/fpdfxfa/fpdfxfa_doc.h"
 #include "../include/fpdfxfa/fpdfxfa_page.h"
 
-DLLEXPORT int STDCALL FPDF_RenderPageBitmap_Start( FPDF_BITMAP bitmap, FPDF_PAGE page,
-													int start_x, int start_y, int size_x,
-												    int size_y, int rotate, int flags,
-													IFSDK_PAUSE * pause )
-{
-	if (bitmap == NULL || page == NULL)
-		return FPDF_RENDER_FAILED;
-
- 	if (!pause)
- 		return FPDF_RENDER_FAILED;
-
-	if (pause->version !=1)
-		return FPDF_RENDER_FAILED;
-
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage)
-		return FPDF_RENDER_FAILED;
-
-//	FXMT_CSLOCK_OBJ(&pPage->m_PageLock);
-
-	CRenderContext* pContext = FX_NEW CRenderContext;
-	pPage->SetPrivateData((void*)1, pContext, DropContext );
+DLLEXPORT int STDCALL FPDF_RenderPageBitmap_Start(FPDF_BITMAP bitmap,
+                                                  FPDF_PAGE page,
+                                                  int start_x,
+                                                  int start_y,
+                                                  int size_x,
+                                                  int size_y,
+                                                  int rotate,
+                                                  int flags,
+                                                  IFSDK_PAUSE* pause) {
+  if (bitmap == NULL || page == NULL)
+    return FPDF_RENDER_FAILED;
+
+  if (!pause)
+    return FPDF_RENDER_FAILED;
+
+  if (pause->version != 1)
+    return FPDF_RENDER_FAILED;
+
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return FPDF_RENDER_FAILED;
+
+  //	FXMT_CSLOCK_OBJ(&pPage->m_PageLock);
+
+  CRenderContext* pContext = FX_NEW CRenderContext;
+  pPage->SetPrivateData((void*)1, pContext, DropContext);
 #ifdef _SKIA_SUPPORT_
-	pContext->m_pDevice = FX_NEW CFX_SkiaDevice;
-	if (flags & FPDF_REVERSE_BYTE_ORDER)
-		((CFX_SkiaDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap,0,TRUE);
-	else
-		((CFX_SkiaDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap);
+  pContext->m_pDevice = FX_NEW CFX_SkiaDevice;
+  if (flags & FPDF_REVERSE_BYTE_ORDER)
+    ((CFX_SkiaDevice*)pContext->m_pDevice)
+        ->Attach((CFX_DIBitmap*)bitmap, 0, TRUE);
+  else
+    ((CFX_SkiaDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap);
 #else
-	pContext->m_pDevice = FX_NEW CFX_FxgeDevice;
-	if (flags & FPDF_REVERSE_BYTE_ORDER)
-		((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap,0,TRUE);
-	else
-		((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap);
+  pContext->m_pDevice = FX_NEW CFX_FxgeDevice;
+  if (flags & FPDF_REVERSE_BYTE_ORDER)
+    ((CFX_FxgeDevice*)pContext->m_pDevice)
+        ->Attach((CFX_DIBitmap*)bitmap, 0, TRUE);
+  else
+    ((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap);
 #endif
-	IFSDK_PAUSE_Adapter IPauseAdapter(pause);
-
-    FPDF_RenderPage_Retail(pContext, page, start_x, start_y, size_x, size_y,
-                           rotate, flags,FALSE, &IPauseAdapter);
-
-	if ( pContext->m_pRenderer )
-	{
-		CPDF_ProgressiveRenderer::RenderStatus status = CPDF_ProgressiveRenderer::Failed;
-		status = pContext->m_pRenderer->GetStatus();
-		return status;
-	}
-	return FPDF_RENDER_FAILED;
+  IFSDK_PAUSE_Adapter IPauseAdapter(pause);
+
+  FPDF_RenderPage_Retail(pContext, page, start_x, start_y, size_x, size_y,
+                         rotate, flags, FALSE, &IPauseAdapter);
+
+  if (pContext->m_pRenderer) {
+    CPDF_ProgressiveRenderer::RenderStatus status =
+        CPDF_ProgressiveRenderer::Failed;
+    status = pContext->m_pRenderer->GetStatus();
+    return status;
+  }
+  return FPDF_RENDER_FAILED;
 }
 
-DLLEXPORT int STDCALL FPDF_RenderPage_Continue(FPDF_PAGE page,IFSDK_PAUSE * pause)
-{
-	if (page == NULL)
-		return FPDF_RENDER_FAILED;
+DLLEXPORT int STDCALL FPDF_RenderPage_Continue(FPDF_PAGE page,
+                                               IFSDK_PAUSE* pause) {
+  if (page == NULL)
+    return FPDF_RENDER_FAILED;
 
- 	if (!pause)
-		return FPDF_RENDER_FAILED;
+  if (!pause)
+    return FPDF_RENDER_FAILED;
 
-	if (pause->version !=1)
-		return FPDF_RENDER_FAILED;
+  if (pause->version != 1)
+    return FPDF_RENDER_FAILED;
 
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage)
-		return FPDF_RENDER_FAILED;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return FPDF_RENDER_FAILED;
 
-//	FXMT_CSLOCK_OBJ(&pPage->m_PageLock);
+  //	FXMT_CSLOCK_OBJ(&pPage->m_PageLock);
 
-	CRenderContext * pContext = (CRenderContext*)pPage->GetPrivateData((void*)1);
-	if (pContext && pContext->m_pRenderer)
-	{
-		IFSDK_PAUSE_Adapter IPauseAdapter(pause);
-		pContext->m_pRenderer->Continue(&IPauseAdapter);
+  CRenderContext* pContext = (CRenderContext*)pPage->GetPrivateData((void*)1);
+  if (pContext && pContext->m_pRenderer) {
+    IFSDK_PAUSE_Adapter IPauseAdapter(pause);
+    pContext->m_pRenderer->Continue(&IPauseAdapter);
 
-		CPDF_ProgressiveRenderer::RenderStatus status = CPDF_ProgressiveRenderer::Failed;
-		status = pContext->m_pRenderer->GetStatus();
-		return status;
-	}
-	return FPDF_RENDER_FAILED;
+    CPDF_ProgressiveRenderer::RenderStatus status =
+        CPDF_ProgressiveRenderer::Failed;
+    status = pContext->m_pRenderer->GetStatus();
+    return status;
+  }
+  return FPDF_RENDER_FAILED;
 }
 
-
-DLLEXPORT void STDCALL FPDF_RenderPage_Close(FPDF_PAGE page)
-{
-	if (page == NULL) return;
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage) return;
-
-//	FXMT_CSLOCK_OBJ(&pPage->m_PageLock);
-
-	CRenderContext * pContext = (CRenderContext*)pPage->GetPrivateData((void*)1);
-	if (pContext)
-	{
-		pContext->m_pDevice->RestoreState();
-		delete pContext;
-		pPage->RemovePrivateData((void*)1);
-	}
+DLLEXPORT void STDCALL FPDF_RenderPage_Close(FPDF_PAGE page) {
+  if (page == NULL)
+    return;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return;
+
+  //	FXMT_CSLOCK_OBJ(&pPage->m_PageLock);
+
+  CRenderContext* pContext = (CRenderContext*)pPage->GetPrivateData((void*)1);
+  if (pContext) {
+    pContext->m_pDevice->RestoreState();
+    delete pContext;
+    pPage->RemovePrivateData((void*)1);
+  }
 }
-
diff --git a/fpdfsdk/src/fpdf_searchex.cpp b/fpdfsdk/src/fpdf_searchex.cpp
index e012d30590..9747316305 100644
--- a/fpdfsdk/src/fpdf_searchex.cpp
+++ b/fpdfsdk/src/fpdf_searchex.cpp
@@ -8,11 +8,9 @@
 
 #include "../../core/include/fpdftext/fpdf_text.h"
 
-DLLEXPORT int STDCALL FPDFText_GetCharIndexFromTextIndex(
-    FPDF_TEXTPAGE text_page,
-    int nTextIndex)
-{
-    if (!text_page)
-        return -1;
-    return ((IPDF_TextPage*)text_page)->CharIndexFromTextIndex(nTextIndex);
+DLLEXPORT int STDCALL
+FPDFText_GetCharIndexFromTextIndex(FPDF_TEXTPAGE text_page, int nTextIndex) {
+  if (!text_page)
+    return -1;
+  return ((IPDF_TextPage*)text_page)->CharIndexFromTextIndex(nTextIndex);
 }
diff --git a/fpdfsdk/src/fpdf_sysfontinfo.cpp b/fpdfsdk/src/fpdf_sysfontinfo.cpp
index 6b7d6fbe4c..a0fdb5083d 100644
--- a/fpdfsdk/src/fpdf_sysfontinfo.cpp
+++ b/fpdfsdk/src/fpdf_sysfontinfo.cpp
@@ -8,167 +8,181 @@
 #include "../include/fsdk_define.h"
 #include "../include/pdfwindow/PWL_FontMap.h"
 
-class CFX_ExternalFontInfo final : public IFX_SystemFontInfo
-{
-public:
-	CFX_ExternalFontInfo(FPDF_SYSFONTINFO* pInfo) : m_pInfo(pInfo) { }
-
-	virtual void		Release() override
-	{
-		if (m_pInfo->Release)
-			m_pInfo->Release(m_pInfo);
-		delete this;
-	}
-
-	virtual	FX_BOOL		EnumFontList(CFX_FontMapper* pMapper) override
-	{
-		if (m_pInfo->EnumFonts) {
-			m_pInfo->EnumFonts(m_pInfo, pMapper);
-			return TRUE;
-		}
-		return FALSE;
-	}
-
-	virtual void*		MapFont(int weight, FX_BOOL bItalic, int charset, int pitch_family, const FX_CHAR* family, int& iExact)  override
-	{
-		if (m_pInfo->MapFont)
-			return m_pInfo->MapFont(m_pInfo, weight, bItalic, charset, pitch_family, family, &iExact);
-		return NULL;
-	}
-
-	virtual void*		GetFont(const FX_CHAR* family)  override
-	{
-		if (m_pInfo->GetFont)
-			return m_pInfo->GetFont(m_pInfo, family);
-		return NULL;
-	}
-
-	virtual FX_DWORD	GetFontData(void* hFont, FX_DWORD table, uint8_t* buffer, FX_DWORD size)  override
-	{
-		if (m_pInfo->GetFontData)
-			return m_pInfo->GetFontData(m_pInfo, hFont, table, buffer, size);
-		return 0;
-	}
-
-	virtual FX_BOOL		GetFaceName(void* hFont, CFX_ByteString& name)  override
-	{
-		if (m_pInfo->GetFaceName == NULL) return FALSE;
-		FX_DWORD size = m_pInfo->GetFaceName(m_pInfo, hFont, NULL, 0);
-		if (size == 0) return FALSE;
-		char* buffer = FX_Alloc(char, size);
-		size = m_pInfo->GetFaceName(m_pInfo, hFont, buffer, size);
-		name = CFX_ByteString(buffer, size);
-		FX_Free(buffer);
-		return TRUE;
-	}
-
-	virtual FX_BOOL		GetFontCharset(void* hFont, int& charset)  override
-	{
-		if (m_pInfo->GetFontCharset) {
-			charset = m_pInfo->GetFontCharset(m_pInfo, hFont);
-			return TRUE;
-		}
-		return FALSE;
-	}
-
-	virtual void		DeleteFont(void* hFont)  override
-	{
-		if (m_pInfo->DeleteFont)
-			m_pInfo->DeleteFont(m_pInfo, hFont);
-	}
-
-private:
-	~CFX_ExternalFontInfo() { }
-
-	FPDF_SYSFONTINFO* const m_pInfo;
+class CFX_ExternalFontInfo final : public IFX_SystemFontInfo {
+ public:
+  CFX_ExternalFontInfo(FPDF_SYSFONTINFO* pInfo) : m_pInfo(pInfo) {}
+
+  virtual void Release() override {
+    if (m_pInfo->Release)
+      m_pInfo->Release(m_pInfo);
+    delete this;
+  }
+
+  virtual FX_BOOL EnumFontList(CFX_FontMapper* pMapper) override {
+    if (m_pInfo->EnumFonts) {
+      m_pInfo->EnumFonts(m_pInfo, pMapper);
+      return TRUE;
+    }
+    return FALSE;
+  }
+
+  virtual void* MapFont(int weight,
+                        FX_BOOL bItalic,
+                        int charset,
+                        int pitch_family,
+                        const FX_CHAR* family,
+                        int& iExact) override {
+    if (m_pInfo->MapFont)
+      return m_pInfo->MapFont(m_pInfo, weight, bItalic, charset, pitch_family,
+                              family, &iExact);
+    return NULL;
+  }
+
+  virtual void* GetFont(const FX_CHAR* family) override {
+    if (m_pInfo->GetFont)
+      return m_pInfo->GetFont(m_pInfo, family);
+    return NULL;
+  }
+
+  virtual FX_DWORD GetFontData(void* hFont,
+                               FX_DWORD table,
+                               uint8_t* buffer,
+                               FX_DWORD size) override {
+    if (m_pInfo->GetFontData)
+      return m_pInfo->GetFontData(m_pInfo, hFont, table, buffer, size);
+    return 0;
+  }
+
+  virtual FX_BOOL GetFaceName(void* hFont, CFX_ByteString& name) override {
+    if (m_pInfo->GetFaceName == NULL)
+      return FALSE;
+    FX_DWORD size = m_pInfo->GetFaceName(m_pInfo, hFont, NULL, 0);
+    if (size == 0)
+      return FALSE;
+    char* buffer = FX_Alloc(char, size);
+    size = m_pInfo->GetFaceName(m_pInfo, hFont, buffer, size);
+    name = CFX_ByteString(buffer, size);
+    FX_Free(buffer);
+    return TRUE;
+  }
+
+  virtual FX_BOOL GetFontCharset(void* hFont, int& charset) override {
+    if (m_pInfo->GetFontCharset) {
+      charset = m_pInfo->GetFontCharset(m_pInfo, hFont);
+      return TRUE;
+    }
+    return FALSE;
+  }
+
+  virtual void DeleteFont(void* hFont) override {
+    if (m_pInfo->DeleteFont)
+      m_pInfo->DeleteFont(m_pInfo, hFont);
+  }
+
+ private:
+  ~CFX_ExternalFontInfo() {}
+
+  FPDF_SYSFONTINFO* const m_pInfo;
 };
 
-DLLEXPORT void STDCALL FPDF_AddInstalledFont(void* mapper, const char* name, int charset)
-{
-	((CFX_FontMapper*)mapper)->AddInstalledFont(name, charset);
+DLLEXPORT void STDCALL FPDF_AddInstalledFont(void* mapper,
+                                             const char* name,
+                                             int charset) {
+  ((CFX_FontMapper*)mapper)->AddInstalledFont(name, charset);
 }
 
-DLLEXPORT void STDCALL FPDF_SetSystemFontInfo(FPDF_SYSFONTINFO* pFontInfoExt)
-{
-	if (pFontInfoExt->version != 1)
-		return;
+DLLEXPORT void STDCALL FPDF_SetSystemFontInfo(FPDF_SYSFONTINFO* pFontInfoExt) {
+  if (pFontInfoExt->version != 1)
+    return;
 
-	CFX_GEModule::Get()->GetFontMgr()->SetSystemFontInfo(
-		new CFX_ExternalFontInfo(pFontInfoExt));
+  CFX_GEModule::Get()->GetFontMgr()->SetSystemFontInfo(
+      new CFX_ExternalFontInfo(pFontInfoExt));
 }
 
-DLLEXPORT const FPDF_CharsetFontMap* STDCALL FPDF_GetDefaultTTFMap()
-{
-    return CPWL_FontMap::defaultTTFMap;
+DLLEXPORT const FPDF_CharsetFontMap* STDCALL FPDF_GetDefaultTTFMap() {
+  return CPWL_FontMap::defaultTTFMap;
 }
 
-struct FPDF_SYSFONTINFO_DEFAULT : public FPDF_SYSFONTINFO
-{
-	IFX_SystemFontInfo*	m_pFontInfo;
+struct FPDF_SYSFONTINFO_DEFAULT : public FPDF_SYSFONTINFO {
+  IFX_SystemFontInfo* m_pFontInfo;
 };
 
-static void DefaultRelease(struct _FPDF_SYSFONTINFO* pThis)
-{
-	((FPDF_SYSFONTINFO_DEFAULT*)pThis)->m_pFontInfo->Release();
+static void DefaultRelease(struct _FPDF_SYSFONTINFO* pThis) {
+  ((FPDF_SYSFONTINFO_DEFAULT*)pThis)->m_pFontInfo->Release();
 }
 
-static void DefaultEnumFonts(struct _FPDF_SYSFONTINFO* pThis, void* pMapper)
-{
-	((FPDF_SYSFONTINFO_DEFAULT*)pThis)->m_pFontInfo->EnumFontList((CFX_FontMapper*)pMapper);
+static void DefaultEnumFonts(struct _FPDF_SYSFONTINFO* pThis, void* pMapper) {
+  ((FPDF_SYSFONTINFO_DEFAULT*)pThis)
+      ->m_pFontInfo->EnumFontList((CFX_FontMapper*)pMapper);
 }
 
-static void* DefaultMapFont(struct _FPDF_SYSFONTINFO* pThis, int weight, int bItalic, int charset, int pitch_family, const char* family, int* bExact)
-{
-	return ((FPDF_SYSFONTINFO_DEFAULT*)pThis)->m_pFontInfo->MapFont(weight, bItalic, charset, pitch_family, family, *bExact);
+static void* DefaultMapFont(struct _FPDF_SYSFONTINFO* pThis,
+                            int weight,
+                            int bItalic,
+                            int charset,
+                            int pitch_family,
+                            const char* family,
+                            int* bExact) {
+  return ((FPDF_SYSFONTINFO_DEFAULT*)pThis)
+      ->m_pFontInfo->MapFont(weight, bItalic, charset, pitch_family, family,
+                             *bExact);
 }
 
-void* DefaultGetFont(struct _FPDF_SYSFONTINFO* pThis, const char* family)
-{
-	return ((FPDF_SYSFONTINFO_DEFAULT*)pThis)->m_pFontInfo->GetFont(family);
+void* DefaultGetFont(struct _FPDF_SYSFONTINFO* pThis, const char* family) {
+  return ((FPDF_SYSFONTINFO_DEFAULT*)pThis)->m_pFontInfo->GetFont(family);
 }
 
-static unsigned long DefaultGetFontData(struct _FPDF_SYSFONTINFO* pThis, void* hFont,
-			unsigned int table, unsigned char* buffer, unsigned long buf_size)
-{
-	return ((FPDF_SYSFONTINFO_DEFAULT*)pThis)->m_pFontInfo->GetFontData(hFont, table, buffer, buf_size);
+static unsigned long DefaultGetFontData(struct _FPDF_SYSFONTINFO* pThis,
+                                        void* hFont,
+                                        unsigned int table,
+                                        unsigned char* buffer,
+                                        unsigned long buf_size) {
+  return ((FPDF_SYSFONTINFO_DEFAULT*)pThis)
+      ->m_pFontInfo->GetFontData(hFont, table, buffer, buf_size);
 }
 
-static unsigned long DefaultGetFaceName(struct _FPDF_SYSFONTINFO* pThis, void* hFont, char* buffer, unsigned long buf_size)
-{
-	CFX_ByteString name;
-	if (!((FPDF_SYSFONTINFO_DEFAULT*)pThis)->m_pFontInfo->GetFaceName(hFont, name)) return 0;
-	if (name.GetLength() >= (long)buf_size) return name.GetLength() + 1;
-	FXSYS_strcpy(buffer, name);
-	return name.GetLength() + 1;
+static unsigned long DefaultGetFaceName(struct _FPDF_SYSFONTINFO* pThis,
+                                        void* hFont,
+                                        char* buffer,
+                                        unsigned long buf_size) {
+  CFX_ByteString name;
+  if (!((FPDF_SYSFONTINFO_DEFAULT*)pThis)
+           ->m_pFontInfo->GetFaceName(hFont, name))
+    return 0;
+  if (name.GetLength() >= (long)buf_size)
+    return name.GetLength() + 1;
+  FXSYS_strcpy(buffer, name);
+  return name.GetLength() + 1;
 }
 
-static int DefaultGetFontCharset(struct _FPDF_SYSFONTINFO* pThis, void* hFont)
-{
-	int charset;
-	if (!((FPDF_SYSFONTINFO_DEFAULT*)pThis)->m_pFontInfo->GetFontCharset(hFont, charset)) return 0;
-	return charset;
+static int DefaultGetFontCharset(struct _FPDF_SYSFONTINFO* pThis, void* hFont) {
+  int charset;
+  if (!((FPDF_SYSFONTINFO_DEFAULT*)pThis)
+           ->m_pFontInfo->GetFontCharset(hFont, charset))
+    return 0;
+  return charset;
 }
 
-static void DefaultDeleteFont(struct _FPDF_SYSFONTINFO* pThis, void* hFont)
-{
-	((FPDF_SYSFONTINFO_DEFAULT*)pThis)->m_pFontInfo->DeleteFont(hFont);
+static void DefaultDeleteFont(struct _FPDF_SYSFONTINFO* pThis, void* hFont) {
+  ((FPDF_SYSFONTINFO_DEFAULT*)pThis)->m_pFontInfo->DeleteFont(hFont);
 }
 
-DLLEXPORT FPDF_SYSFONTINFO* STDCALL FPDF_GetDefaultSystemFontInfo()
-{
-	IFX_SystemFontInfo* pFontInfo = IFX_SystemFontInfo::CreateDefault();
-	if (pFontInfo == NULL) return NULL;
-
-	FPDF_SYSFONTINFO_DEFAULT* pFontInfoExt = FX_Alloc(FPDF_SYSFONTINFO_DEFAULT, 1);
-	pFontInfoExt->DeleteFont = DefaultDeleteFont;
-	pFontInfoExt->EnumFonts = DefaultEnumFonts;
-	pFontInfoExt->GetFaceName = DefaultGetFaceName;
-	pFontInfoExt->GetFont = DefaultGetFont;
-	pFontInfoExt->GetFontCharset = DefaultGetFontCharset;
-	pFontInfoExt->GetFontData = DefaultGetFontData;
-	pFontInfoExt->MapFont = DefaultMapFont;
-	pFontInfoExt->Release = DefaultRelease;
-	pFontInfoExt->version = 1;
-	pFontInfoExt->m_pFontInfo = pFontInfo;
-	return pFontInfoExt;
+DLLEXPORT FPDF_SYSFONTINFO* STDCALL FPDF_GetDefaultSystemFontInfo() {
+  IFX_SystemFontInfo* pFontInfo = IFX_SystemFontInfo::CreateDefault();
+  if (pFontInfo == NULL)
+    return NULL;
+
+  FPDF_SYSFONTINFO_DEFAULT* pFontInfoExt =
+      FX_Alloc(FPDF_SYSFONTINFO_DEFAULT, 1);
+  pFontInfoExt->DeleteFont = DefaultDeleteFont;
+  pFontInfoExt->EnumFonts = DefaultEnumFonts;
+  pFontInfoExt->GetFaceName = DefaultGetFaceName;
+  pFontInfoExt->GetFont = DefaultGetFont;
+  pFontInfoExt->GetFontCharset = DefaultGetFontCharset;
+  pFontInfoExt->GetFontData = DefaultGetFontData;
+  pFontInfoExt->MapFont = DefaultMapFont;
+  pFontInfoExt->Release = DefaultRelease;
+  pFontInfoExt->version = 1;
+  pFontInfoExt->m_pFontInfo = pFontInfo;
+  return pFontInfoExt;
 }
diff --git a/fpdfsdk/src/fpdf_transformpage.cpp b/fpdfsdk/src/fpdf_transformpage.cpp
index e49d74e1cb..ad5f7fd37b 100644
--- a/fpdfsdk/src/fpdf_transformpage.cpp
+++ b/fpdfsdk/src/fpdf_transformpage.cpp
@@ -9,326 +9,332 @@
 #include "../include/fpdfxfa/fpdfxfa_doc.h"
 #include "../include/fpdfxfa/fpdfxfa_page.h"
 
-DLLEXPORT void STDCALL FPDFPage_SetMediaBox(FPDF_PAGE page, float left, float bottom, float right, float top)
-{
-	if(!page)
-		return;
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage) return;
-	CPDF_Dictionary* pPageDict = pPage->m_pFormDict;
-	CPDF_Array* pMediaBoxArray = FX_NEW CPDF_Array;
-	pMediaBoxArray->Add(FX_NEW CPDF_Number(left));
-	pMediaBoxArray->Add(FX_NEW CPDF_Number(bottom));
-	pMediaBoxArray->Add(FX_NEW CPDF_Number(FX_FLOAT(right)));
-	pMediaBoxArray->Add(FX_NEW CPDF_Number(FX_FLOAT(top)));
-
-	pPageDict->SetAt("MediaBox", pMediaBoxArray);
+DLLEXPORT void STDCALL FPDFPage_SetMediaBox(FPDF_PAGE page,
+                                            float left,
+                                            float bottom,
+                                            float right,
+                                            float top) {
+  if (!page)
+    return;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return;
+  CPDF_Dictionary* pPageDict = pPage->m_pFormDict;
+  CPDF_Array* pMediaBoxArray = FX_NEW CPDF_Array;
+  pMediaBoxArray->Add(FX_NEW CPDF_Number(left));
+  pMediaBoxArray->Add(FX_NEW CPDF_Number(bottom));
+  pMediaBoxArray->Add(FX_NEW CPDF_Number(FX_FLOAT(right)));
+  pMediaBoxArray->Add(FX_NEW CPDF_Number(FX_FLOAT(top)));
+
+  pPageDict->SetAt("MediaBox", pMediaBoxArray);
 }
 
-
-DLLEXPORT void STDCALL FPDFPage_SetCropBox(FPDF_PAGE page, float left, float bottom, float right, float top)
-{
-	if(!page)
-		return;
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage) return;
-	CPDF_Dictionary* pPageDict = pPage->m_pFormDict;
-	CPDF_Array* pCropBoxArray = FX_NEW CPDF_Array;
-	pCropBoxArray->Add(FX_NEW CPDF_Number(left));
-	pCropBoxArray->Add(FX_NEW CPDF_Number(bottom));
-	pCropBoxArray->Add(FX_NEW CPDF_Number(FX_FLOAT(right)));
-	pCropBoxArray->Add(FX_NEW CPDF_Number(FX_FLOAT(top)));
-
-
-	pPageDict->SetAt("CropBox", pCropBoxArray);
+DLLEXPORT void STDCALL FPDFPage_SetCropBox(FPDF_PAGE page,
+                                           float left,
+                                           float bottom,
+                                           float right,
+                                           float top) {
+  if (!page)
+    return;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return;
+  CPDF_Dictionary* pPageDict = pPage->m_pFormDict;
+  CPDF_Array* pCropBoxArray = FX_NEW CPDF_Array;
+  pCropBoxArray->Add(FX_NEW CPDF_Number(left));
+  pCropBoxArray->Add(FX_NEW CPDF_Number(bottom));
+  pCropBoxArray->Add(FX_NEW CPDF_Number(FX_FLOAT(right)));
+  pCropBoxArray->Add(FX_NEW CPDF_Number(FX_FLOAT(top)));
+
+  pPageDict->SetAt("CropBox", pCropBoxArray);
 }
 
-
-DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GetMediaBox(FPDF_PAGE page, float* left, float* bottom, float* right, float* top)
-{
-	if(!page)
-		return FALSE;
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage) return FALSE;
-	CPDF_Dictionary* pPageDict = pPage->m_pFormDict;
-	CPDF_Array* pArray = pPageDict->GetArray("MediaBox");
-	if(pArray)
-	{
-		*left = pArray->GetFloat(0);
-		*bottom = pArray->GetFloat(1);
-		*right = pArray->GetFloat(2);
-		*top = pArray->GetFloat(3);
-		return TRUE;
-	}
-	return FALSE;
+DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GetMediaBox(FPDF_PAGE page,
+                                                 float* left,
+                                                 float* bottom,
+                                                 float* right,
+                                                 float* top) {
+  if (!page)
+    return FALSE;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return FALSE;
+  CPDF_Dictionary* pPageDict = pPage->m_pFormDict;
+  CPDF_Array* pArray = pPageDict->GetArray("MediaBox");
+  if (pArray) {
+    *left = pArray->GetFloat(0);
+    *bottom = pArray->GetFloat(1);
+    *right = pArray->GetFloat(2);
+    *top = pArray->GetFloat(3);
+    return TRUE;
+  }
+  return FALSE;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GetCropBox(FPDF_PAGE page, float* left, float* bottom, float* right, float* top)
-{
-	if(!page)
-		return FALSE;
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage) return FALSE;
-	CPDF_Dictionary* pPageDict = pPage->m_pFormDict;
-	CPDF_Array* pArray = pPageDict->GetArray("CropBox");
-	if(pArray)
-	{
-		*left = pArray->GetFloat(0);
-		*bottom = pArray->GetFloat(1);
-		*right = pArray->GetFloat(2);
-		*top = pArray->GetFloat(3);
-		return TRUE;
-	}
-	return FALSE;
+DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GetCropBox(FPDF_PAGE page,
+                                                float* left,
+                                                float* bottom,
+                                                float* right,
+                                                float* top) {
+  if (!page)
+    return FALSE;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return FALSE;
+  CPDF_Dictionary* pPageDict = pPage->m_pFormDict;
+  CPDF_Array* pArray = pPageDict->GetArray("CropBox");
+  if (pArray) {
+    *left = pArray->GetFloat(0);
+    *bottom = pArray->GetFloat(1);
+    *right = pArray->GetFloat(2);
+    *top = pArray->GetFloat(3);
+    return TRUE;
+  }
+  return FALSE;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDFPage_TransFormWithClip(FPDF_PAGE page, FS_MATRIX* matrix, FS_RECTF* clipRect)
-{
-	if(!page)
-		return FALSE;
-
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage)
-		return FALSE;
-
-	CFX_ByteTextBuf textBuf;
-	textBuf<<"q ";
-	CFX_FloatRect rect(clipRect->left, clipRect->bottom, clipRect->right, clipRect->top);
-	rect.Normalize();
-	CFX_ByteString bsClipping;
-	bsClipping.Format("%f %f %f %f re W* n ", rect.left, rect.bottom, rect.Width(), rect.Height());
-	textBuf<<bsClipping;
-
-	CFX_ByteString bsMatix;
-	bsMatix.Format("%f %f %f %f %f %f cm ", matrix->a, matrix->b,matrix->c,matrix->d,matrix->e,matrix->f);
-	textBuf<<bsMatix;
-
-
-	CPDF_Dictionary* pPageDic = pPage->m_pFormDict;
-	CPDF_Object* pContentObj = pPageDic ? pPageDic->GetElement("Contents") : NULL;
-	if(!pContentObj)
-		pContentObj = pPageDic ? pPageDic->GetArray("Contents") : NULL;
-	if(!pContentObj)
-		return FALSE;
-
-	CPDF_Dictionary* pDic = FX_NEW CPDF_Dictionary;
-	CPDF_Stream* pStream = FX_NEW CPDF_Stream(NULL,0, pDic);
-	pStream->SetData(textBuf.GetBuffer(), textBuf.GetSize(), FALSE, FALSE);
-	CPDF_Document* pDoc = pPage->m_pDocument;
-	if(!pDoc)
-		return FALSE;
-	pDoc->AddIndirectObject(pStream);
-
-	pDic = new CPDF_Dictionary;
-	CPDF_Stream* pEndStream = new CPDF_Stream(NULL,0, pDic);
-	pEndStream->SetData((const uint8_t*)" Q", 2, FALSE, FALSE);
-	pDoc->AddIndirectObject(pEndStream);
-
-	CPDF_Array* pContentArray = NULL;
-	if (pContentObj && pContentObj->GetType() == PDFOBJ_ARRAY)
-	{
-		pContentArray = (CPDF_Array*)pContentObj;
-		CPDF_Reference* pRef = FX_NEW CPDF_Reference(pDoc, pStream->GetObjNum());
-		pContentArray->InsertAt(0, pRef);
-		pContentArray->AddReference(pDoc,pEndStream);
-
-	}
-	else if(pContentObj && pContentObj->GetType() == PDFOBJ_REFERENCE)
-	{
-		CPDF_Reference* pReference = (CPDF_Reference*)pContentObj;
-		CPDF_Object* pDirectObj = pReference->GetDirect();
-		if(pDirectObj != NULL)
-		{
-			if(pDirectObj->GetType() == PDFOBJ_ARRAY)
-			{
-				pContentArray = (CPDF_Array*)pDirectObj;
-				CPDF_Reference* pRef = FX_NEW CPDF_Reference(pDoc, pStream->GetObjNum());
-				pContentArray->InsertAt(0, pRef);
-				pContentArray->AddReference(pDoc,pEndStream);
-
-			}
-			else if(pDirectObj->GetType() == PDFOBJ_STREAM)
-			{
-				pContentArray = FX_NEW CPDF_Array();
-				pContentArray->AddReference(pDoc,pStream->GetObjNum());
-				pContentArray->AddReference(pDoc,pDirectObj->GetObjNum());
-				pContentArray->AddReference(pDoc, pEndStream);
-				pPageDic->SetAtReference("Contents", pDoc, pDoc->AddIndirectObject(pContentArray));
-			}
-		}
-	}
-
-	//Need to transform the patterns as well.
-	CPDF_Dictionary* pRes = pPageDic->GetDict(FX_BSTRC("Resources"));
-	if(pRes)
-	{
-		CPDF_Dictionary* pPattenDict = pRes->GetDict(FX_BSTRC("Pattern"));
-		if(pPattenDict)
-		{
-			FX_POSITION pos = pPattenDict->GetStartPos();
-			while(pos)
-			{
-				CPDF_Dictionary* pDict = NULL;
-				CFX_ByteString key;
-				CPDF_Object* pObj = pPattenDict->GetNextElement(pos, key);
-				if(pObj->GetType() == PDFOBJ_REFERENCE)
-					pObj = pObj->GetDirect();
-				if(pObj->GetType() == PDFOBJ_DICTIONARY)
-				{
-					pDict = (CPDF_Dictionary*)pObj;
-				}
-				else if(pObj->GetType() == PDFOBJ_STREAM)
-				{
-					pDict = ((CPDF_Stream*)pObj)->GetDict();
-				}
-				else
-					continue;
-
-				CFX_AffineMatrix m = pDict->GetMatrix(FX_BSTRC("Matrix"));
-				CFX_AffineMatrix t = *(CFX_AffineMatrix*)matrix;
-				m.Concat(t);
-				pDict->SetAtMatrix(FX_BSTRC("Matrix"), m);
-			}
-		}
-	}
-
-	return TRUE;
+DLLEXPORT FPDF_BOOL STDCALL FPDFPage_TransFormWithClip(FPDF_PAGE page,
+                                                       FS_MATRIX* matrix,
+                                                       FS_RECTF* clipRect) {
+  if (!page)
+    return FALSE;
+
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return FALSE;
+
+  CFX_ByteTextBuf textBuf;
+  textBuf << "q ";
+  CFX_FloatRect rect(clipRect->left, clipRect->bottom, clipRect->right,
+                     clipRect->top);
+  rect.Normalize();
+  CFX_ByteString bsClipping;
+  bsClipping.Format("%f %f %f %f re W* n ", rect.left, rect.bottom,
+                    rect.Width(), rect.Height());
+  textBuf << bsClipping;
+
+  CFX_ByteString bsMatix;
+  bsMatix.Format("%f %f %f %f %f %f cm ", matrix->a, matrix->b, matrix->c,
+                 matrix->d, matrix->e, matrix->f);
+  textBuf << bsMatix;
+
+  CPDF_Dictionary* pPageDic = pPage->m_pFormDict;
+  CPDF_Object* pContentObj = pPageDic ? pPageDic->GetElement("Contents") : NULL;
+  if (!pContentObj)
+    pContentObj = pPageDic ? pPageDic->GetArray("Contents") : NULL;
+  if (!pContentObj)
+    return FALSE;
+
+  CPDF_Dictionary* pDic = FX_NEW CPDF_Dictionary;
+  CPDF_Stream* pStream = FX_NEW CPDF_Stream(NULL, 0, pDic);
+  pStream->SetData(textBuf.GetBuffer(), textBuf.GetSize(), FALSE, FALSE);
+  CPDF_Document* pDoc = pPage->m_pDocument;
+  if (!pDoc)
+    return FALSE;
+  pDoc->AddIndirectObject(pStream);
+
+  pDic = new CPDF_Dictionary;
+  CPDF_Stream* pEndStream = new CPDF_Stream(NULL, 0, pDic);
+  pEndStream->SetData((const uint8_t*)" Q", 2, FALSE, FALSE);
+  pDoc->AddIndirectObject(pEndStream);
+
+  CPDF_Array* pContentArray = NULL;
+  if (pContentObj && pContentObj->GetType() == PDFOBJ_ARRAY) {
+    pContentArray = (CPDF_Array*)pContentObj;
+    CPDF_Reference* pRef = FX_NEW CPDF_Reference(pDoc, pStream->GetObjNum());
+    pContentArray->InsertAt(0, pRef);
+    pContentArray->AddReference(pDoc, pEndStream);
+
+  } else if (pContentObj && pContentObj->GetType() == PDFOBJ_REFERENCE) {
+    CPDF_Reference* pReference = (CPDF_Reference*)pContentObj;
+    CPDF_Object* pDirectObj = pReference->GetDirect();
+    if (pDirectObj != NULL) {
+      if (pDirectObj->GetType() == PDFOBJ_ARRAY) {
+        pContentArray = (CPDF_Array*)pDirectObj;
+        CPDF_Reference* pRef =
+            FX_NEW CPDF_Reference(pDoc, pStream->GetObjNum());
+        pContentArray->InsertAt(0, pRef);
+        pContentArray->AddReference(pDoc, pEndStream);
+
+      } else if (pDirectObj->GetType() == PDFOBJ_STREAM) {
+        pContentArray = FX_NEW CPDF_Array();
+        pContentArray->AddReference(pDoc, pStream->GetObjNum());
+        pContentArray->AddReference(pDoc, pDirectObj->GetObjNum());
+        pContentArray->AddReference(pDoc, pEndStream);
+        pPageDic->SetAtReference("Contents", pDoc,
+                                 pDoc->AddIndirectObject(pContentArray));
+      }
+    }
+  }
+
+  // Need to transform the patterns as well.
+  CPDF_Dictionary* pRes = pPageDic->GetDict(FX_BSTRC("Resources"));
+  if (pRes) {
+    CPDF_Dictionary* pPattenDict = pRes->GetDict(FX_BSTRC("Pattern"));
+    if (pPattenDict) {
+      FX_POSITION pos = pPattenDict->GetStartPos();
+      while (pos) {
+        CPDF_Dictionary* pDict = NULL;
+        CFX_ByteString key;
+        CPDF_Object* pObj = pPattenDict->GetNextElement(pos, key);
+        if (pObj->GetType() == PDFOBJ_REFERENCE)
+          pObj = pObj->GetDirect();
+        if (pObj->GetType() == PDFOBJ_DICTIONARY) {
+          pDict = (CPDF_Dictionary*)pObj;
+        } else if (pObj->GetType() == PDFOBJ_STREAM) {
+          pDict = ((CPDF_Stream*)pObj)->GetDict();
+        } else
+          continue;
+
+        CFX_AffineMatrix m = pDict->GetMatrix(FX_BSTRC("Matrix"));
+        CFX_AffineMatrix t = *(CFX_AffineMatrix*)matrix;
+        m.Concat(t);
+        pDict->SetAtMatrix(FX_BSTRC("Matrix"), m);
+      }
+    }
+  }
+
+  return TRUE;
 }
 
-DLLEXPORT void STDCALL FPDFPageObj_TransformClipPath(FPDF_PAGEOBJECT page_object,double a, double b, double c, double d, double e, double f)
-{
-	CPDF_PageObject* pPageObj = (CPDF_PageObject*)page_object;
-	if(pPageObj == NULL)
-		return;
-	CFX_AffineMatrix matrix((FX_FLOAT)a,(FX_FLOAT)b,(FX_FLOAT)c,(FX_FLOAT)d,(FX_FLOAT)e,(FX_FLOAT)f);
-
-	//Special treatment to shading object, because the ClipPath for shading object is already transformed.
-	if(pPageObj->m_Type != PDFPAGE_SHADING)
-		pPageObj->TransformClipPath(matrix);
-	pPageObj->TransformGeneralState(matrix);
+DLLEXPORT void STDCALL
+FPDFPageObj_TransformClipPath(FPDF_PAGEOBJECT page_object,
+                              double a,
+                              double b,
+                              double c,
+                              double d,
+                              double e,
+                              double f) {
+  CPDF_PageObject* pPageObj = (CPDF_PageObject*)page_object;
+  if (pPageObj == NULL)
+    return;
+  CFX_AffineMatrix matrix((FX_FLOAT)a, (FX_FLOAT)b, (FX_FLOAT)c, (FX_FLOAT)d,
+                          (FX_FLOAT)e, (FX_FLOAT)f);
+
+  // Special treatment to shading object, because the ClipPath for shading
+  // object is already transformed.
+  if (pPageObj->m_Type != PDFPAGE_SHADING)
+    pPageObj->TransformClipPath(matrix);
+  pPageObj->TransformGeneralState(matrix);
 }
 
-
-DLLEXPORT FPDF_CLIPPATH STDCALL FPDF_CreateClipPath(float left, float bottom, float right, float top)
-{
-	CPDF_ClipPath* pNewClipPath =  FX_NEW CPDF_ClipPath();
-	pNewClipPath->GetModify();
-	CPDF_Path Path;
-	Path.GetModify();
-	Path.AppendRect(left, bottom, right, top);
-	pNewClipPath->AppendPath(Path, FXFILL_ALTERNATE, FALSE);
-	return pNewClipPath;
+DLLEXPORT FPDF_CLIPPATH STDCALL FPDF_CreateClipPath(float left,
+                                                    float bottom,
+                                                    float right,
+                                                    float top) {
+  CPDF_ClipPath* pNewClipPath = FX_NEW CPDF_ClipPath();
+  pNewClipPath->GetModify();
+  CPDF_Path Path;
+  Path.GetModify();
+  Path.AppendRect(left, bottom, right, top);
+  pNewClipPath->AppendPath(Path, FXFILL_ALTERNATE, FALSE);
+  return pNewClipPath;
 }
 
-DLLEXPORT void STDCALL FPDF_DestroyClipPath(FPDF_CLIPPATH clipPath)
-{
-    delete (CPDF_ClipPath*)clipPath;
+DLLEXPORT void STDCALL FPDF_DestroyClipPath(FPDF_CLIPPATH clipPath) {
+  delete (CPDF_ClipPath*)clipPath;
 }
 
-void OutputPath(CFX_ByteTextBuf& buf, CPDF_Path path)
-{
-	const CFX_PathData* pPathData = path;
-	if (pPathData == NULL) return;
-
-	FX_PATHPOINT* pPoints = pPathData->GetPoints();
-
-	if (path.IsRect()) {
-		buf << (pPoints[0].m_PointX) << " " << (pPoints[0].m_PointY) << " "
-			<< (pPoints[2].m_PointX - pPoints[0].m_PointX) << " "
-			<< (pPoints[2].m_PointY - pPoints[0].m_PointY) << " re\n";
-		return;
-	}
-
-	CFX_ByteString temp;
-	for (int i = 0; i < pPathData->GetPointCount(); i ++) {
-		buf << (pPoints[i].m_PointX) << " " << (pPoints[i].m_PointY);
-		int point_type = pPoints[i].m_Flag & FXPT_TYPE;
-		if (point_type == FXPT_MOVETO)
-			buf << " m\n";
-		else if (point_type == FXPT_BEZIERTO) {
-			buf << " " << (pPoints[i+1].m_PointX) << " " << (pPoints[i+1].m_PointY) << " " <<
-				(pPoints[i+2].m_PointX) << " " << (pPoints[i+2].m_PointY);
-			if (pPoints[i+2].m_Flag & FXPT_CLOSEFIGURE)
-				buf << " c h\n";
-			else
-				buf << " c\n";
-			i += 2;
-		} else if (point_type == FXPT_LINETO) {
-			if (pPoints[i].m_Flag & FXPT_CLOSEFIGURE)
-				buf << " l h\n";
-			else
-				buf << " l\n";
-		}
-	}
+void OutputPath(CFX_ByteTextBuf& buf, CPDF_Path path) {
+  const CFX_PathData* pPathData = path;
+  if (pPathData == NULL)
+    return;
+
+  FX_PATHPOINT* pPoints = pPathData->GetPoints();
+
+  if (path.IsRect()) {
+    buf << (pPoints[0].m_PointX) << " " << (pPoints[0].m_PointY) << " "
+        << (pPoints[2].m_PointX - pPoints[0].m_PointX) << " "
+        << (pPoints[2].m_PointY - pPoints[0].m_PointY) << " re\n";
+    return;
+  }
+
+  CFX_ByteString temp;
+  for (int i = 0; i < pPathData->GetPointCount(); i++) {
+    buf << (pPoints[i].m_PointX) << " " << (pPoints[i].m_PointY);
+    int point_type = pPoints[i].m_Flag & FXPT_TYPE;
+    if (point_type == FXPT_MOVETO)
+      buf << " m\n";
+    else if (point_type == FXPT_BEZIERTO) {
+      buf << " " << (pPoints[i + 1].m_PointX) << " "
+          << (pPoints[i + 1].m_PointY) << " " << (pPoints[i + 2].m_PointX)
+          << " " << (pPoints[i + 2].m_PointY);
+      if (pPoints[i + 2].m_Flag & FXPT_CLOSEFIGURE)
+        buf << " c h\n";
+      else
+        buf << " c\n";
+      i += 2;
+    } else if (point_type == FXPT_LINETO) {
+      if (pPoints[i].m_Flag & FXPT_CLOSEFIGURE)
+        buf << " l h\n";
+      else
+        buf << " l\n";
+    }
+  }
 }
 
-DLLEXPORT void STDCALL FPDFPage_InsertClipPath(FPDF_PAGE page,FPDF_CLIPPATH clipPath)
-{
-	if(!page)
-		return;
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage) return;
-	CPDF_Dictionary* pPageDic = pPage->m_pFormDict;
-	CPDF_Object* pContentObj = pPageDic ? pPageDic->GetElement("Contents") : NULL;
-	if(!pContentObj)
-		pContentObj = pPageDic ? pPageDic->GetArray("Contents") : NULL;
-	if(!pContentObj)
-		return;
-
-	CFX_ByteTextBuf strClip;
-	CPDF_ClipPath* pClipPath = (CPDF_ClipPath*)clipPath;
-	FX_DWORD i;
-	for (i = 0; i < pClipPath->GetPathCount(); i ++) {
-		CPDF_Path path = pClipPath->GetPath(i);
-		int iClipType = pClipPath->GetClipType(i);
-		if (path.GetPointCount() == 0) {
-			// Empty clipping (totally clipped out)
-			strClip << "0 0 m W n ";
-		} else {
-			OutputPath(strClip, path);
-			if (iClipType == FXFILL_WINDING)
-				strClip << "W n\n";
-			else
-				strClip << "W* n\n";
-		}
-	}
-	CPDF_Dictionary* pDic = FX_NEW CPDF_Dictionary;
-	CPDF_Stream* pStream = FX_NEW CPDF_Stream(NULL,0, pDic);
-	pStream->SetData(strClip.GetBuffer(), strClip.GetSize(), FALSE, FALSE);
-	CPDF_Document* pDoc = pPage->m_pDocument;
-	if(!pDoc)
-		return;
-	pDoc->AddIndirectObject(pStream);
-
-	CPDF_Array* pContentArray = NULL;
-	if (pContentObj && pContentObj->GetType() == PDFOBJ_ARRAY)
-	{
-		pContentArray = (CPDF_Array*)pContentObj;
-		CPDF_Reference* pRef = FX_NEW CPDF_Reference(pDoc, pStream->GetObjNum());
-		pContentArray->InsertAt(0, pRef);
-
-	}
-	else if(pContentObj && pContentObj->GetType() == PDFOBJ_REFERENCE)
-	{
-		CPDF_Reference* pReference = (CPDF_Reference*)pContentObj;
-		CPDF_Object* pDirectObj = pReference->GetDirect();
-		if(pDirectObj != NULL)
-		{
-			if(pDirectObj->GetType() == PDFOBJ_ARRAY)
-			{
-				pContentArray = (CPDF_Array*)pDirectObj;
-				CPDF_Reference* pRef = FX_NEW CPDF_Reference(pDoc, pStream->GetObjNum());
-				pContentArray->InsertAt(0, pRef);
-
-			}
-			else if(pDirectObj->GetType() == PDFOBJ_STREAM)
-			{
-				pContentArray = FX_NEW CPDF_Array();
-				pContentArray->AddReference(pDoc,pStream->GetObjNum());
-				pContentArray->AddReference(pDoc,pDirectObj->GetObjNum());
-				pPageDic->SetAtReference("Contents", pDoc, pDoc->AddIndirectObject(pContentArray));
-			}
-		}
-	}
+DLLEXPORT void STDCALL FPDFPage_InsertClipPath(FPDF_PAGE page,
+                                               FPDF_CLIPPATH clipPath) {
+  if (!page)
+    return;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return;
+  CPDF_Dictionary* pPageDic = pPage->m_pFormDict;
+  CPDF_Object* pContentObj = pPageDic ? pPageDic->GetElement("Contents") : NULL;
+  if (!pContentObj)
+    pContentObj = pPageDic ? pPageDic->GetArray("Contents") : NULL;
+  if (!pContentObj)
+    return;
+
+  CFX_ByteTextBuf strClip;
+  CPDF_ClipPath* pClipPath = (CPDF_ClipPath*)clipPath;
+  FX_DWORD i;
+  for (i = 0; i < pClipPath->GetPathCount(); i++) {
+    CPDF_Path path = pClipPath->GetPath(i);
+    int iClipType = pClipPath->GetClipType(i);
+    if (path.GetPointCount() == 0) {
+      // Empty clipping (totally clipped out)
+      strClip << "0 0 m W n ";
+    } else {
+      OutputPath(strClip, path);
+      if (iClipType == FXFILL_WINDING)
+        strClip << "W n\n";
+      else
+        strClip << "W* n\n";
+    }
+  }
+  CPDF_Dictionary* pDic = FX_NEW CPDF_Dictionary;
+  CPDF_Stream* pStream = FX_NEW CPDF_Stream(NULL, 0, pDic);
+  pStream->SetData(strClip.GetBuffer(), strClip.GetSize(), FALSE, FALSE);
+  CPDF_Document* pDoc = pPage->m_pDocument;
+  if (!pDoc)
+    return;
+  pDoc->AddIndirectObject(pStream);
+
+  CPDF_Array* pContentArray = NULL;
+  if (pContentObj && pContentObj->GetType() == PDFOBJ_ARRAY) {
+    pContentArray = (CPDF_Array*)pContentObj;
+    CPDF_Reference* pRef = FX_NEW CPDF_Reference(pDoc, pStream->GetObjNum());
+    pContentArray->InsertAt(0, pRef);
+
+  } else if (pContentObj && pContentObj->GetType() == PDFOBJ_REFERENCE) {
+    CPDF_Reference* pReference = (CPDF_Reference*)pContentObj;
+    CPDF_Object* pDirectObj = pReference->GetDirect();
+    if (pDirectObj != NULL) {
+      if (pDirectObj->GetType() == PDFOBJ_ARRAY) {
+        pContentArray = (CPDF_Array*)pDirectObj;
+        CPDF_Reference* pRef =
+            FX_NEW CPDF_Reference(pDoc, pStream->GetObjNum());
+        pContentArray->InsertAt(0, pRef);
+
+      } else if (pDirectObj->GetType() == PDFOBJ_STREAM) {
+        pContentArray = FX_NEW CPDF_Array();
+        pContentArray->AddReference(pDoc, pStream->GetObjNum());
+        pContentArray->AddReference(pDoc, pDirectObj->GetObjNum());
+        pPageDic->SetAtReference("Contents", pDoc,
+                                 pDoc->AddIndirectObject(pContentArray));
+      }
+    }
+  }
 }
-
diff --git a/fpdfsdk/src/fpdfdoc.cpp b/fpdfsdk/src/fpdfdoc.cpp
index 5128847e87..4688e49412 100644
--- a/fpdfsdk/src/fpdfdoc.cpp
+++ b/fpdfsdk/src/fpdfdoc.cpp
@@ -11,289 +11,293 @@
 
 static int THISMODULE = 0;
 
-static CPDF_Bookmark FindBookmark(const CPDF_BookmarkTree& tree, CPDF_Bookmark bookmark, const CFX_WideString& title)
-{
-    if (bookmark && bookmark.GetTitle().CompareNoCase(title.c_str()) == 0) {
-        // First check this item
-        return bookmark;
-    }
-    // go into children items
-    CPDF_Bookmark child = tree.GetFirstChild(bookmark);
-    while (child) {
-        // check if this item
-        CPDF_Bookmark found = FindBookmark(tree, child, title);
-        if (found)
-            return found;
-        child = tree.GetNextSibling(child);
-    }
-    return CPDF_Bookmark();
+static CPDF_Bookmark FindBookmark(const CPDF_BookmarkTree& tree,
+                                  CPDF_Bookmark bookmark,
+                                  const CFX_WideString& title) {
+  if (bookmark && bookmark.GetTitle().CompareNoCase(title.c_str()) == 0) {
+    // First check this item
+    return bookmark;
+  }
+  // go into children items
+  CPDF_Bookmark child = tree.GetFirstChild(bookmark);
+  while (child) {
+    // check if this item
+    CPDF_Bookmark found = FindBookmark(tree, child, title);
+    if (found)
+      return found;
+    child = tree.GetNextSibling(child);
+  }
+  return CPDF_Bookmark();
 }
 
-DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_GetFirstChild(FPDF_DOCUMENT document, FPDF_BOOKMARK pDict)
-{
-    if (!document || !pDict)
-        return NULL;
-    CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-    CPDF_BookmarkTree tree(pDoc);
-    CPDF_Bookmark bookmark = CPDF_Bookmark((CPDF_Dictionary*)pDict);
-    return tree.GetFirstChild(bookmark).GetDict();
+DLLEXPORT FPDF_BOOKMARK STDCALL
+FPDFBookmark_GetFirstChild(FPDF_DOCUMENT document, FPDF_BOOKMARK pDict) {
+  if (!document || !pDict)
+    return NULL;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  CPDF_BookmarkTree tree(pDoc);
+  CPDF_Bookmark bookmark = CPDF_Bookmark((CPDF_Dictionary*)pDict);
+  return tree.GetFirstChild(bookmark).GetDict();
 }
 
-DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_GetNextSibling(FPDF_DOCUMENT document, FPDF_BOOKMARK pDict)
-{
-    if (!document || !pDict)
-        return NULL;
-    CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-    CPDF_BookmarkTree tree(pDoc);
-    CPDF_Bookmark bookmark = CPDF_Bookmark((CPDF_Dictionary*)pDict);
-    return tree.GetNextSibling(bookmark).GetDict();
+DLLEXPORT FPDF_BOOKMARK STDCALL
+FPDFBookmark_GetNextSibling(FPDF_DOCUMENT document, FPDF_BOOKMARK pDict) {
+  if (!document || !pDict)
+    return NULL;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  CPDF_BookmarkTree tree(pDoc);
+  CPDF_Bookmark bookmark = CPDF_Bookmark((CPDF_Dictionary*)pDict);
+  return tree.GetNextSibling(bookmark).GetDict();
 }
 
-DLLEXPORT unsigned long STDCALL FPDFBookmark_GetTitle(FPDF_BOOKMARK pDict, void* buffer, unsigned long buflen)
-{
-    if (!pDict)
-        return 0;
-    CPDF_Bookmark bookmark((CPDF_Dictionary*)pDict);
-    CFX_WideString title = bookmark.GetTitle();
-    CFX_ByteString encodedTitle = title.UTF16LE_Encode();
-    unsigned long len = encodedTitle.GetLength();
-    if (buffer && buflen >= len) {
-        FXSYS_memcpy(buffer, encodedTitle.c_str(), len);
-    }
-    return len;
+DLLEXPORT unsigned long STDCALL FPDFBookmark_GetTitle(FPDF_BOOKMARK pDict,
+                                                      void* buffer,
+                                                      unsigned long buflen) {
+  if (!pDict)
+    return 0;
+  CPDF_Bookmark bookmark((CPDF_Dictionary*)pDict);
+  CFX_WideString title = bookmark.GetTitle();
+  CFX_ByteString encodedTitle = title.UTF16LE_Encode();
+  unsigned long len = encodedTitle.GetLength();
+  if (buffer && buflen >= len) {
+    FXSYS_memcpy(buffer, encodedTitle.c_str(), len);
+  }
+  return len;
 }
 
-DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_Find(FPDF_DOCUMENT document, FPDF_WIDESTRING title)
-{
-    if (!document)
-        return NULL;
-    if (!title || title[0] == 0)
-        return NULL;
-    CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-    CPDF_BookmarkTree tree(pDoc);
-    FX_STRSIZE len = CFX_WideString::WStringLength(title);
-    CFX_WideString encodedTitle = CFX_WideString::FromUTF16LE(title, len);
-    return FindBookmark(tree, CPDF_Bookmark(), encodedTitle).GetDict();
+DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_Find(FPDF_DOCUMENT document,
+                                                  FPDF_WIDESTRING title) {
+  if (!document)
+    return NULL;
+  if (!title || title[0] == 0)
+    return NULL;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  CPDF_BookmarkTree tree(pDoc);
+  FX_STRSIZE len = CFX_WideString::WStringLength(title);
+  CFX_WideString encodedTitle = CFX_WideString::FromUTF16LE(title, len);
+  return FindBookmark(tree, CPDF_Bookmark(), encodedTitle).GetDict();
 }
 
-DLLEXPORT FPDF_DEST STDCALL FPDFBookmark_GetDest(FPDF_DOCUMENT document, FPDF_BOOKMARK pDict)
-{
-    if (!document)
-        return NULL;
-    if (!pDict)
-        return NULL;
-    CPDF_Bookmark bookmark((CPDF_Dictionary*)pDict);
-    CPDF_Document* pDoc = (CPDF_Document*)document;
-    CPDF_Dest dest = bookmark.GetDest(pDoc);
-    if (dest)
-        return dest.GetObject();
-    // If this bookmark is not directly associated with a dest, we try to get action
-    CPDF_Action action = bookmark.GetAction();
-    if (!action)
-        return NULL;
-    return action.GetDest(pDoc).GetObject();
+DLLEXPORT FPDF_DEST STDCALL FPDFBookmark_GetDest(FPDF_DOCUMENT document,
+                                                 FPDF_BOOKMARK pDict) {
+  if (!document)
+    return NULL;
+  if (!pDict)
+    return NULL;
+  CPDF_Bookmark bookmark((CPDF_Dictionary*)pDict);
+  CPDF_Document* pDoc = (CPDF_Document*)document;
+  CPDF_Dest dest = bookmark.GetDest(pDoc);
+  if (dest)
+    return dest.GetObject();
+  // If this bookmark is not directly associated with a dest, we try to get
+  // action
+  CPDF_Action action = bookmark.GetAction();
+  if (!action)
+    return NULL;
+  return action.GetDest(pDoc).GetObject();
 }
 
-DLLEXPORT FPDF_ACTION STDCALL FPDFBookmark_GetAction(FPDF_BOOKMARK pDict)
-{
-    if (!pDict)
-        return NULL;
-    CPDF_Bookmark bookmark((CPDF_Dictionary*)pDict);
-    return bookmark.GetAction().GetDict();
+DLLEXPORT FPDF_ACTION STDCALL FPDFBookmark_GetAction(FPDF_BOOKMARK pDict) {
+  if (!pDict)
+    return NULL;
+  CPDF_Bookmark bookmark((CPDF_Dictionary*)pDict);
+  return bookmark.GetAction().GetDict();
 }
 
-DLLEXPORT unsigned long STDCALL FPDFAction_GetType(FPDF_ACTION pDict)
-{
-    if (!pDict)
-        return 0;
-    CPDF_Action action((CPDF_Dictionary*)pDict);
-    CPDF_Action::ActionType type = action.GetType();
-    switch (type) {
-        case CPDF_Action::GoTo:
-            return PDFACTION_GOTO;
-        case CPDF_Action::GoToR:
-            return PDFACTION_REMOTEGOTO;
-        case CPDF_Action::URI:
-            return PDFACTION_URI;
-        case CPDF_Action::Launch:
-            return PDFACTION_LAUNCH;
-        default:
-            return PDFACTION_UNSUPPORTED;
-    }
-    return PDFACTION_UNSUPPORTED;
+DLLEXPORT unsigned long STDCALL FPDFAction_GetType(FPDF_ACTION pDict) {
+  if (!pDict)
+    return 0;
+  CPDF_Action action((CPDF_Dictionary*)pDict);
+  CPDF_Action::ActionType type = action.GetType();
+  switch (type) {
+    case CPDF_Action::GoTo:
+      return PDFACTION_GOTO;
+    case CPDF_Action::GoToR:
+      return PDFACTION_REMOTEGOTO;
+    case CPDF_Action::URI:
+      return PDFACTION_URI;
+    case CPDF_Action::Launch:
+      return PDFACTION_LAUNCH;
+    default:
+      return PDFACTION_UNSUPPORTED;
+  }
+  return PDFACTION_UNSUPPORTED;
 }
 
-DLLEXPORT FPDF_DEST STDCALL FPDFAction_GetDest(FPDF_DOCUMENT document, FPDF_ACTION pDict)
-{
-    if (!document)
-        return NULL;
-    if (!pDict)
-        return NULL;
-    CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-    CPDF_Action action((CPDF_Dictionary*)pDict);
-    return action.GetDest(pDoc).GetObject();
+DLLEXPORT FPDF_DEST STDCALL FPDFAction_GetDest(FPDF_DOCUMENT document,
+                                               FPDF_ACTION pDict) {
+  if (!document)
+    return NULL;
+  if (!pDict)
+    return NULL;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  CPDF_Action action((CPDF_Dictionary*)pDict);
+  return action.GetDest(pDoc).GetObject();
 }
 
-DLLEXPORT unsigned long STDCALL FPDFAction_GetURIPath(FPDF_DOCUMENT document, FPDF_ACTION pDict,
-                                              void* buffer, unsigned long buflen)
-{
-    if (!document)
-        return 0;
-    if (!pDict)
-        return 0;
-    CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-    CPDF_Action action((CPDF_Dictionary*)pDict);
-    CFX_ByteString path = action.GetURI(pDoc);
-    unsigned long len = path.GetLength() + 1;
-    if (buffer != NULL && buflen >= len)
-        FXSYS_memcpy(buffer, path.c_str(), len);
-    return len;
+DLLEXPORT unsigned long STDCALL FPDFAction_GetURIPath(FPDF_DOCUMENT document,
+                                                      FPDF_ACTION pDict,
+                                                      void* buffer,
+                                                      unsigned long buflen) {
+  if (!document)
+    return 0;
+  if (!pDict)
+    return 0;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  CPDF_Action action((CPDF_Dictionary*)pDict);
+  CFX_ByteString path = action.GetURI(pDoc);
+  unsigned long len = path.GetLength() + 1;
+  if (buffer != NULL && buflen >= len)
+    FXSYS_memcpy(buffer, path.c_str(), len);
+  return len;
 }
 
-DLLEXPORT unsigned long STDCALL FPDFDest_GetPageIndex(FPDF_DOCUMENT document, FPDF_DEST pDict)
-{
-    if (!document)
-        return 0;
-    if (!pDict)
-        return 0;
-    CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-    CPDF_Dest dest((CPDF_Array*)pDict);
-    return dest.GetPageIndex(pDoc);
+DLLEXPORT unsigned long STDCALL FPDFDest_GetPageIndex(FPDF_DOCUMENT document,
+                                                      FPDF_DEST pDict) {
+  if (!document)
+    return 0;
+  if (!pDict)
+    return 0;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  CPDF_Dest dest((CPDF_Array*)pDict);
+  return dest.GetPageIndex(pDoc);
 }
 
-static void ReleaseLinkList(void* data)
-{
-    delete (CPDF_LinkList*)data;
+static void ReleaseLinkList(void* data) {
+  delete (CPDF_LinkList*)data;
 }
 
-DLLEXPORT FPDF_LINK STDCALL FPDFLink_GetLinkAtPoint(FPDF_PAGE page, double x, double y)
-{
-    if (!page)
-        return NULL;
-    CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-    if (!pPage)
-        return NULL;
-    // Link list is stored with the document
-    CPDF_Document* pDoc = pPage->m_pDocument;
-    CPDF_LinkList* pLinkList = (CPDF_LinkList*)pDoc->GetPrivateData(&THISMODULE);
-    if (!pLinkList) {
-        pLinkList = FX_NEW CPDF_LinkList(pDoc);
-        pDoc->SetPrivateData(&THISMODULE, pLinkList, ReleaseLinkList);
-    }
-    return pLinkList->GetLinkAtPoint(pPage, (FX_FLOAT)x, (FX_FLOAT)y).GetDict();
+DLLEXPORT FPDF_LINK STDCALL FPDFLink_GetLinkAtPoint(FPDF_PAGE page,
+                                                    double x,
+                                                    double y) {
+  if (!page)
+    return NULL;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return NULL;
+  // Link list is stored with the document
+  CPDF_Document* pDoc = pPage->m_pDocument;
+  CPDF_LinkList* pLinkList = (CPDF_LinkList*)pDoc->GetPrivateData(&THISMODULE);
+  if (!pLinkList) {
+    pLinkList = FX_NEW CPDF_LinkList(pDoc);
+    pDoc->SetPrivateData(&THISMODULE, pLinkList, ReleaseLinkList);
+  }
+  return pLinkList->GetLinkAtPoint(pPage, (FX_FLOAT)x, (FX_FLOAT)y).GetDict();
 }
 
-DLLEXPORT FPDF_DEST STDCALL FPDFLink_GetDest(FPDF_DOCUMENT document, FPDF_LINK pDict)
-{
-    if (!document)
-        return NULL;
-    if (!pDict)
-        return NULL;
-    CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-    CPDF_Link link((CPDF_Dictionary*)pDict);
-    FPDF_DEST dest = link.GetDest(pDoc).GetObject();
-    if (dest)
-        return dest;
-    // If this link is not directly associated with a dest, we try to get action
-    CPDF_Action action = link.GetAction();
-    if (!action)
-        return NULL;
-    return action.GetDest(pDoc).GetObject();
+DLLEXPORT FPDF_DEST STDCALL FPDFLink_GetDest(FPDF_DOCUMENT document,
+                                             FPDF_LINK pDict) {
+  if (!document)
+    return NULL;
+  if (!pDict)
+    return NULL;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  CPDF_Link link((CPDF_Dictionary*)pDict);
+  FPDF_DEST dest = link.GetDest(pDoc).GetObject();
+  if (dest)
+    return dest;
+  // If this link is not directly associated with a dest, we try to get action
+  CPDF_Action action = link.GetAction();
+  if (!action)
+    return NULL;
+  return action.GetDest(pDoc).GetObject();
 }
 
-DLLEXPORT FPDF_ACTION STDCALL FPDFLink_GetAction(FPDF_LINK pDict)
-{
-    if (!pDict)
-        return NULL;
-    CPDF_Link link((CPDF_Dictionary*)pDict);
-    return link.GetAction().GetDict();
+DLLEXPORT FPDF_ACTION STDCALL FPDFLink_GetAction(FPDF_LINK pDict) {
+  if (!pDict)
+    return NULL;
+  CPDF_Link link((CPDF_Dictionary*)pDict);
+  return link.GetAction().GetDict();
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDFLink_Enumerate(FPDF_PAGE page, int* startPos, FPDF_LINK* linkAnnot)
-{
-    if(!page || !startPos || !linkAnnot)
-        return FALSE;
-    CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-    if(!pPage->m_pFormDict)
-        return FALSE;
-    CPDF_Array* pAnnots = pPage->m_pFormDict->GetArray("Annots");
-    if(!pAnnots)
-        return FALSE;
-    for (int i = *startPos; i < (int)pAnnots->GetCount(); i++) {
-        CPDF_Dictionary* pDict = (CPDF_Dictionary*)pAnnots->GetElementValue(i);
-        if (!pDict || pDict->GetType() != PDFOBJ_DICTIONARY)
-            continue;
-        if(pDict->GetString(FX_BSTRC("Subtype")).Equal(FX_BSTRC("Link"))) {
-            *startPos = i + 1;
-            *linkAnnot = (FPDF_LINK)pDict;
-            return TRUE;
-        }
-    }
+DLLEXPORT FPDF_BOOL STDCALL FPDFLink_Enumerate(FPDF_PAGE page,
+                                               int* startPos,
+                                               FPDF_LINK* linkAnnot) {
+  if (!page || !startPos || !linkAnnot)
+    return FALSE;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage->m_pFormDict)
     return FALSE;
+  CPDF_Array* pAnnots = pPage->m_pFormDict->GetArray("Annots");
+  if (!pAnnots)
+    return FALSE;
+  for (int i = *startPos; i < (int)pAnnots->GetCount(); i++) {
+    CPDF_Dictionary* pDict = (CPDF_Dictionary*)pAnnots->GetElementValue(i);
+    if (!pDict || pDict->GetType() != PDFOBJ_DICTIONARY)
+      continue;
+    if (pDict->GetString(FX_BSTRC("Subtype")).Equal(FX_BSTRC("Link"))) {
+      *startPos = i + 1;
+      *linkAnnot = (FPDF_LINK)pDict;
+      return TRUE;
+    }
+  }
+  return FALSE;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetAnnotRect(FPDF_LINK linkAnnot, FS_RECTF* rect)
-{
-    if(!linkAnnot || !rect)
-        return FALSE;
-    CPDF_Dictionary* pAnnotDict = (CPDF_Dictionary*)linkAnnot;
-    CPDF_Rect rt = pAnnotDict->GetRect(FX_BSTRC("Rect"));
-    rect->left = rt.left;
-    rect->bottom = rt.bottom;
-    rect->right = rt.right;
-    rect->top = rt.top;
-    return TRUE;
+DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetAnnotRect(FPDF_LINK linkAnnot,
+                                                  FS_RECTF* rect) {
+  if (!linkAnnot || !rect)
+    return FALSE;
+  CPDF_Dictionary* pAnnotDict = (CPDF_Dictionary*)linkAnnot;
+  CPDF_Rect rt = pAnnotDict->GetRect(FX_BSTRC("Rect"));
+  rect->left = rt.left;
+  rect->bottom = rt.bottom;
+  rect->right = rt.right;
+  rect->top = rt.top;
+  return TRUE;
 }
 
-DLLEXPORT int STDCALL FPDFLink_CountQuadPoints(FPDF_LINK linkAnnot)
-{
-    if(!linkAnnot)
-        return 0;
-    CPDF_Dictionary* pAnnotDict = (CPDF_Dictionary*)linkAnnot;
-    CPDF_Array* pArray = pAnnotDict->GetArray(FX_BSTRC("QuadPoints"));
-    if (!pArray)
-        return 0;
-    return pArray->GetCount() / 8;
+DLLEXPORT int STDCALL FPDFLink_CountQuadPoints(FPDF_LINK linkAnnot) {
+  if (!linkAnnot)
+    return 0;
+  CPDF_Dictionary* pAnnotDict = (CPDF_Dictionary*)linkAnnot;
+  CPDF_Array* pArray = pAnnotDict->GetArray(FX_BSTRC("QuadPoints"));
+  if (!pArray)
+    return 0;
+  return pArray->GetCount() / 8;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetQuadPoints(FPDF_LINK linkAnnot, int quadIndex, FS_QUADPOINTSF* quadPoints)
-{
-    if(!linkAnnot || !quadPoints)
-        return FALSE;
-    CPDF_Dictionary* pAnnotDict = (CPDF_Dictionary*)linkAnnot;
-    CPDF_Array* pArray = pAnnotDict->GetArray(FX_BSTRC("QuadPoints"));
-    if (pArray) {
-        if (quadIndex < 0 || quadIndex >= (int)pArray->GetCount()/8 || ((quadIndex*8+7) >= (int)pArray->GetCount()))
-            return FALSE;
-        quadPoints->x1 = pArray->GetNumber(quadIndex*8);
-        quadPoints->y1 = pArray->GetNumber(quadIndex*8+1);
-        quadPoints->x2 = pArray->GetNumber(quadIndex*8+2);
-        quadPoints->y2 = pArray->GetNumber(quadIndex*8+3);
-        quadPoints->x3 = pArray->GetNumber(quadIndex*8+4);
-        quadPoints->y3 = pArray->GetNumber(quadIndex*8+5);
-        quadPoints->x4 = pArray->GetNumber(quadIndex*8+6);
-        quadPoints->y4 = pArray->GetNumber(quadIndex*8+7);
-        return TRUE;
-    }
+DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetQuadPoints(FPDF_LINK linkAnnot,
+                                                   int quadIndex,
+                                                   FS_QUADPOINTSF* quadPoints) {
+  if (!linkAnnot || !quadPoints)
     return FALSE;
+  CPDF_Dictionary* pAnnotDict = (CPDF_Dictionary*)linkAnnot;
+  CPDF_Array* pArray = pAnnotDict->GetArray(FX_BSTRC("QuadPoints"));
+  if (pArray) {
+    if (quadIndex < 0 || quadIndex >= (int)pArray->GetCount() / 8 ||
+        ((quadIndex * 8 + 7) >= (int)pArray->GetCount()))
+      return FALSE;
+    quadPoints->x1 = pArray->GetNumber(quadIndex * 8);
+    quadPoints->y1 = pArray->GetNumber(quadIndex * 8 + 1);
+    quadPoints->x2 = pArray->GetNumber(quadIndex * 8 + 2);
+    quadPoints->y2 = pArray->GetNumber(quadIndex * 8 + 3);
+    quadPoints->x3 = pArray->GetNumber(quadIndex * 8 + 4);
+    quadPoints->y3 = pArray->GetNumber(quadIndex * 8 + 5);
+    quadPoints->x4 = pArray->GetNumber(quadIndex * 8 + 6);
+    quadPoints->y4 = pArray->GetNumber(quadIndex * 8 + 7);
+    return TRUE;
+  }
+  return FALSE;
 }
 
-DLLEXPORT unsigned long STDCALL FPDF_GetMetaText(FPDF_DOCUMENT doc, FPDF_BYTESTRING tag,
-                                                 void* buffer, unsigned long buflen)
-{
-    if (!doc || !tag)
-        return 0;
-    CPDF_Document* pDoc = ((CPDFXFA_Document*)doc)->GetPDFDoc();
-    // Get info dictionary
-    CPDF_Dictionary* pInfo = pDoc->GetInfo();
-    if (!pInfo)
-        return 0;
-    CFX_WideString text = pInfo->GetUnicodeText(tag);
-    // Use UTF-16LE encoding
-    CFX_ByteString encodedText = text.UTF16LE_Encode();
-    unsigned long len = encodedText.GetLength();
-    if (buffer && buflen >= len) {
-        FXSYS_memcpy(buffer, encodedText.c_str(), len);
-    }
-    return len;
+DLLEXPORT unsigned long STDCALL FPDF_GetMetaText(FPDF_DOCUMENT doc,
+                                                 FPDF_BYTESTRING tag,
+                                                 void* buffer,
+                                                 unsigned long buflen) {
+  if (!doc || !tag)
+    return 0;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)doc)->GetPDFDoc();
+  // Get info dictionary
+  CPDF_Dictionary* pInfo = pDoc->GetInfo();
+  if (!pInfo)
+    return 0;
+  CFX_WideString text = pInfo->GetUnicodeText(tag);
+  // Use UTF-16LE encoding
+  CFX_ByteString encodedText = text.UTF16LE_Encode();
+  unsigned long len = encodedText.GetLength();
+  if (buffer && buflen >= len) {
+    FXSYS_memcpy(buffer, encodedText.c_str(), len);
+  }
+  return len;
 }
diff --git a/fpdfsdk/src/fpdfdoc_embeddertest.cpp b/fpdfsdk/src/fpdfdoc_embeddertest.cpp
index 1f11bef214..9c9fac8d15 100644
--- a/fpdfsdk/src/fpdfdoc_embeddertest.cpp
+++ b/fpdfsdk/src/fpdfdoc_embeddertest.cpp
@@ -7,8 +7,7 @@
 #include "../../testing/embedder_test.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-class FPDFDocEmbeddertest : public EmbedderTest {
-};
+class FPDFDocEmbeddertest : public EmbedderTest {};
 
 TEST_F(FPDFDocEmbeddertest, DestGetPageIndex) {
   EXPECT_TRUE(OpenDocument("testing/resources/named_dests.pdf"));
diff --git a/fpdfsdk/src/fpdfeditimg.cpp b/fpdfsdk/src/fpdfeditimg.cpp
index a6951d20d3..bfd9adea36 100644
--- a/fpdfsdk/src/fpdfeditimg.cpp
+++ b/fpdfsdk/src/fpdfeditimg.cpp
@@ -9,70 +9,77 @@
 #include "../include/fpdfxfa/fpdfxfa_doc.h"
 #include "../include/fpdfxfa/fpdfxfa_page.h"
 
-DLLEXPORT FPDF_PAGEOBJECT STDCALL FPDFPageObj_NewImgeObj(FPDF_DOCUMENT document)
-{
-	if (!document)
-		return NULL;
-	CPDF_ImageObject* pImageObj = FX_NEW CPDF_ImageObject;
-	CPDF_Image* pImg = FX_NEW CPDF_Image(((CPDFXFA_Document *)document)->GetPDFDoc());
-	pImageObj->m_pImage = pImg;
-	return pImageObj;
+DLLEXPORT FPDF_PAGEOBJECT STDCALL
+FPDFPageObj_NewImgeObj(FPDF_DOCUMENT document) {
+  if (!document)
+    return NULL;
+  CPDF_ImageObject* pImageObj = FX_NEW CPDF_ImageObject;
+  CPDF_Image* pImg =
+      FX_NEW CPDF_Image(((CPDFXFA_Document*)document)->GetPDFDoc());
+  pImageObj->m_pImage = pImg;
+  return pImageObj;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDFImageObj_LoadJpegFile(FPDF_PAGE* pages, int nCount,FPDF_PAGEOBJECT image_object, FPDF_FILEACCESS* fileAccess)
-{
-	if (!image_object || !fileAccess || !pages)
-		return FALSE;
+DLLEXPORT FPDF_BOOL STDCALL
+FPDFImageObj_LoadJpegFile(FPDF_PAGE* pages,
+                          int nCount,
+                          FPDF_PAGEOBJECT image_object,
+                          FPDF_FILEACCESS* fileAccess) {
+  if (!image_object || !fileAccess || !pages)
+    return FALSE;
 
-	IFX_FileRead* pFile = FX_NEW CPDF_CustomAccess(fileAccess);
+  IFX_FileRead* pFile = FX_NEW CPDF_CustomAccess(fileAccess);
 
-	CPDF_ImageObject* pImgObj = (CPDF_ImageObject*)image_object;
-	pImgObj->m_GeneralState.GetModify();
-	for (int index=0;index<nCount;index++)
-	{
-		CPDF_Page* pPage = ((CPDFXFA_Page*)pages[index])->GetPDFPage();
-		if (!pPage)
-			continue;
-		pImgObj->m_pImage->ResetCache(pPage,NULL);
-	}
-	pImgObj->m_pImage->SetJpegImage(pFile);
+  CPDF_ImageObject* pImgObj = (CPDF_ImageObject*)image_object;
+  pImgObj->m_GeneralState.GetModify();
+  for (int index = 0; index < nCount; index++) {
+    CPDF_Page* pPage = ((CPDFXFA_Page*)pages[index])->GetPDFPage();
+    if (!pPage)
+      continue;
+    pImgObj->m_pImage->ResetCache(pPage, NULL);
+  }
+  pImgObj->m_pImage->SetJpegImage(pFile);
 
-	return TRUE;
+  return TRUE;
 }
 
-
-DLLEXPORT FPDF_BOOL STDCALL FPDFImageObj_SetMatrix	(FPDF_PAGEOBJECT image_object,
-												 double a, double b, double c, double d, double e, double f)
-{
-	if (!image_object)
-		return FALSE;
-	CPDF_ImageObject* pImgObj = (CPDF_ImageObject*)image_object;
-	pImgObj->m_Matrix.a = (FX_FLOAT)a;
-	pImgObj->m_Matrix.b = (FX_FLOAT)b;
-	pImgObj->m_Matrix.c = (FX_FLOAT)c;
-	pImgObj->m_Matrix.d = (FX_FLOAT)d;
-	pImgObj->m_Matrix.e = (FX_FLOAT)e;
-	pImgObj->m_Matrix.f = (FX_FLOAT)f;
-	pImgObj->CalcBoundingBox();
-	return  TRUE;
+DLLEXPORT FPDF_BOOL STDCALL FPDFImageObj_SetMatrix(FPDF_PAGEOBJECT image_object,
+                                                   double a,
+                                                   double b,
+                                                   double c,
+                                                   double d,
+                                                   double e,
+                                                   double f) {
+  if (!image_object)
+    return FALSE;
+  CPDF_ImageObject* pImgObj = (CPDF_ImageObject*)image_object;
+  pImgObj->m_Matrix.a = (FX_FLOAT)a;
+  pImgObj->m_Matrix.b = (FX_FLOAT)b;
+  pImgObj->m_Matrix.c = (FX_FLOAT)c;
+  pImgObj->m_Matrix.d = (FX_FLOAT)d;
+  pImgObj->m_Matrix.e = (FX_FLOAT)e;
+  pImgObj->m_Matrix.f = (FX_FLOAT)f;
+  pImgObj->CalcBoundingBox();
+  return TRUE;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDFImageObj_SetBitmap(FPDF_PAGE* pages,int nCount,FPDF_PAGEOBJECT image_object,FPDF_BITMAP bitmap)
-{
-	if (!image_object || !bitmap || !pages)
-		return FALSE;
-	CFX_DIBitmap* pBmp = NULL;
-	pBmp = (CFX_DIBitmap*)bitmap;
-	CPDF_ImageObject* pImgObj = (CPDF_ImageObject*)image_object;
-	pImgObj->m_GeneralState.GetModify();
-	for (int index=0;index<nCount;index++)
-	{
-		CPDF_Page* pPage = ((CPDFXFA_Page*)pages[index])->GetPDFPage();
-		if (!pPage) continue;
-		pImgObj->m_pImage->ResetCache(pPage,NULL);
-	}
-	pImgObj->m_pImage->SetImage(pBmp,FALSE);
-	pImgObj->CalcBoundingBox();
-	return TRUE;
+DLLEXPORT FPDF_BOOL STDCALL FPDFImageObj_SetBitmap(FPDF_PAGE* pages,
+                                                   int nCount,
+                                                   FPDF_PAGEOBJECT image_object,
+                                                   FPDF_BITMAP bitmap) {
+  if (!image_object || !bitmap || !pages)
+    return FALSE;
+  CFX_DIBitmap* pBmp = NULL;
+  pBmp = (CFX_DIBitmap*)bitmap;
+  CPDF_ImageObject* pImgObj = (CPDF_ImageObject*)image_object;
+  pImgObj->m_GeneralState.GetModify();
+  for (int index = 0; index < nCount; index++) {
+    CPDF_Page* pPage = ((CPDFXFA_Page*)pages[index])->GetPDFPage();
+    if (!pPage)
+      continue;
+    pImgObj->m_pImage->ResetCache(pPage, NULL);
+  }
+  pImgObj->m_pImage->SetImage(pBmp, FALSE);
+  pImgObj->CalcBoundingBox();
+  return TRUE;
 }
-
diff --git a/fpdfsdk/src/fpdfeditpage.cpp b/fpdfsdk/src/fpdfeditpage.cpp
index d1068ae3be..a8447ce730 100644
--- a/fpdfsdk/src/fpdfeditpage.cpp
+++ b/fpdfsdk/src/fpdfeditpage.cpp
@@ -17,323 +17,333 @@
 #include <ctime>
 #endif
 
-DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_CreateNewDocument()
-{
-	CPDF_Document* pDoc = FX_NEW CPDF_Document;
-	if (!pDoc)
-		return NULL;
-	pDoc->CreateNewDoc();
-	time_t currentTime;
-
-	CFX_ByteString DateStr;
-
-	if(FSDK_IsSandBoxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS))
-	{
-		if ( -1 != time( &currentTime ) )
-		{
-			tm * pTM = localtime( &currentTime );
-			if ( pTM )
-			{
-				DateStr.Format(	"D:%04d%02d%02d%02d%02d%02d", pTM->tm_year+1900, pTM->tm_mon+1,
-					pTM->tm_mday, pTM->tm_hour, pTM->tm_min, pTM->tm_sec );
-			}
-		}
-	}
-
-	CPDF_Dictionary* pInfoDict = NULL;
-	pInfoDict = pDoc->GetInfo();
-	if (pInfoDict)
-	{
-		if(FSDK_IsSandBoxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS))
-			pInfoDict->SetAt("CreationDate", new CPDF_String(DateStr));
-		pInfoDict->SetAt("Creator",FX_NEW CPDF_String(L"PDFium"));
-	}
-
-	CPDFXFA_App* pApp = CPDFXFA_App::GetInstance();
-	CPDFXFA_Document* document = FX_NEW CPDFXFA_Document(pDoc, pApp);
-	return document;
+DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_CreateNewDocument() {
+  CPDF_Document* pDoc = FX_NEW CPDF_Document;
+  if (!pDoc)
+    return NULL;
+  pDoc->CreateNewDoc();
+  time_t currentTime;
+
+  CFX_ByteString DateStr;
+
+  if (FSDK_IsSandBoxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS)) {
+    if (-1 != time(&currentTime)) {
+      tm* pTM = localtime(&currentTime);
+      if (pTM) {
+        DateStr.Format("D:%04d%02d%02d%02d%02d%02d", pTM->tm_year + 1900,
+                       pTM->tm_mon + 1, pTM->tm_mday, pTM->tm_hour, pTM->tm_min,
+                       pTM->tm_sec);
+      }
+    }
+  }
+
+  CPDF_Dictionary* pInfoDict = NULL;
+  pInfoDict = pDoc->GetInfo();
+  if (pInfoDict) {
+    if (FSDK_IsSandBoxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS))
+      pInfoDict->SetAt("CreationDate", new CPDF_String(DateStr));
+    pInfoDict->SetAt("Creator", FX_NEW CPDF_String(L"PDFium"));
+  }
+
+  CPDFXFA_App* pApp = CPDFXFA_App::GetInstance();
+  CPDFXFA_Document* document = FX_NEW CPDFXFA_Document(pDoc, pApp);
+  return document;
 }
 
-DLLEXPORT void STDCALL FPDFPage_Delete(FPDF_DOCUMENT document, int page_index)
-{
-	CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-	if (pDoc == NULL)
-		return;
-	if (page_index < 0 || page_index >= pDoc->GetPageCount())
-		return;
+DLLEXPORT void STDCALL FPDFPage_Delete(FPDF_DOCUMENT document, int page_index) {
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  if (pDoc == NULL)
+    return;
+  if (page_index < 0 || page_index >= pDoc->GetPageCount())
+    return;
 
-	pDoc->DeletePage(page_index);
+  pDoc->DeletePage(page_index);
 }
 
-DLLEXPORT FPDF_PAGE STDCALL FPDFPage_New(FPDF_DOCUMENT document, int page_index, double width, double height)
-{
-	if (!document)
-		return NULL;
-
-//	CPDF_Parser* pParser = (CPDF_Parser*)document;
-	CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-	if(page_index < 0)
-		page_index = 0;
-	if(pDoc->GetPageCount()<page_index)
-		page_index = pDoc->GetPageCount();
-//	if (page_index < 0 || page_index >= pDoc->GetPageCount())
-//		return NULL;
-
-	CPDF_Dictionary* pPageDict = pDoc->CreateNewPage(page_index);
-	if(!pPageDict)
-		return NULL;
-	CPDF_Array* pMediaBoxArray = FX_NEW CPDF_Array;
-	pMediaBoxArray->Add(FX_NEW CPDF_Number(0));
-	pMediaBoxArray->Add(FX_NEW CPDF_Number(0));
-	pMediaBoxArray->Add(FX_NEW CPDF_Number(FX_FLOAT(width)));
-	pMediaBoxArray->Add(FX_NEW CPDF_Number(FX_FLOAT(height)));
-
-	pPageDict->SetAt("MediaBox", pMediaBoxArray);
-	pPageDict->SetAt("Rotate", FX_NEW CPDF_Number(0));
-	pPageDict->SetAt("Resources", FX_NEW CPDF_Dictionary);
-
-// 	CPDF_Page* pPage = FX_NEW CPDF_Page;
-// 	pPage->Load(pDoc,pPageDict);
-// 	pPage->ParseContent();
-
-	CPDFXFA_Page* pPage = FX_NEW CPDFXFA_Page((CPDFXFA_Document*)document, page_index);
-	pPage->LoadPDFPage(pPageDict);
-
-	return pPage;
+DLLEXPORT FPDF_PAGE STDCALL FPDFPage_New(FPDF_DOCUMENT document,
+                                         int page_index,
+                                         double width,
+                                         double height) {
+  if (!document)
+    return NULL;
+
+  //	CPDF_Parser* pParser = (CPDF_Parser*)document;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  if (page_index < 0)
+    page_index = 0;
+  if (pDoc->GetPageCount() < page_index)
+    page_index = pDoc->GetPageCount();
+  //	if (page_index < 0 || page_index >= pDoc->GetPageCount())
+  //		return NULL;
+
+  CPDF_Dictionary* pPageDict = pDoc->CreateNewPage(page_index);
+  if (!pPageDict)
+    return NULL;
+  CPDF_Array* pMediaBoxArray = FX_NEW CPDF_Array;
+  pMediaBoxArray->Add(FX_NEW CPDF_Number(0));
+  pMediaBoxArray->Add(FX_NEW CPDF_Number(0));
+  pMediaBoxArray->Add(FX_NEW CPDF_Number(FX_FLOAT(width)));
+  pMediaBoxArray->Add(FX_NEW CPDF_Number(FX_FLOAT(height)));
+
+  pPageDict->SetAt("MediaBox", pMediaBoxArray);
+  pPageDict->SetAt("Rotate", FX_NEW CPDF_Number(0));
+  pPageDict->SetAt("Resources", FX_NEW CPDF_Dictionary);
+
+  // 	CPDF_Page* pPage = FX_NEW CPDF_Page;
+  // 	pPage->Load(pDoc,pPageDict);
+  // 	pPage->ParseContent();
+
+  CPDFXFA_Page* pPage =
+      FX_NEW CPDFXFA_Page((CPDFXFA_Document*)document, page_index);
+  pPage->LoadPDFPage(pPageDict);
+
+  return pPage;
 }
 
-DLLEXPORT int STDCALL FPDFPage_GetRotation(FPDF_PAGE page)
-{
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") || !pPage->m_pFormDict->GetElement("Type")->GetDirect()
-		|| pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare("Page"))
-	{
-		return -1;
-	}
-	CPDF_Dictionary* pDict = pPage->m_pFormDict;
-
-	int rotate = 0;
-	if(pDict != NULL)
-	{
-		if (pDict->KeyExist("Rotate"))
-			rotate = pDict->GetElement("Rotate")->GetDirect()? pDict->GetElement("Rotate")->GetDirect()->GetInteger() / 90 : 0;
-		else
-		{
-			if(pDict->KeyExist("Parent"))
-			{
-				CPDF_Dictionary* pPages = (CPDF_Dictionary*)pDict->GetElement("Parent")->GetDirect();
-				while(pPages)
-				{
-					if(pPages->KeyExist("Rotate"))
-					{
-						rotate = pPages->GetElement("Rotate")->GetDirect()? pPages->GetElement("Rotate")->GetDirect()->GetInteger() / 90 : 0;
-						break;
-					}
-					else if(pPages->KeyExist("Parent"))
-						pPages = (CPDF_Dictionary*)pPages->GetElement("Parent")->GetDirect();
-					else break;
-				}
-			}
-		}
-	}
-	else
-	{
-		return -1;
-	}
-
-	return rotate;
+DLLEXPORT int STDCALL FPDFPage_GetRotation(FPDF_PAGE page) {
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") ||
+      !pPage->m_pFormDict->GetElement("Type")->GetDirect() ||
+      pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare(
+          "Page")) {
+    return -1;
+  }
+  CPDF_Dictionary* pDict = pPage->m_pFormDict;
+
+  int rotate = 0;
+  if (pDict != NULL) {
+    if (pDict->KeyExist("Rotate"))
+      rotate = pDict->GetElement("Rotate")->GetDirect()
+                   ? pDict->GetElement("Rotate")->GetDirect()->GetInteger() / 90
+                   : 0;
+    else {
+      if (pDict->KeyExist("Parent")) {
+        CPDF_Dictionary* pPages =
+            (CPDF_Dictionary*)pDict->GetElement("Parent")->GetDirect();
+        while (pPages) {
+          if (pPages->KeyExist("Rotate")) {
+            rotate =
+                pPages->GetElement("Rotate")->GetDirect()
+                    ? pPages->GetElement("Rotate")->GetDirect()->GetInteger() /
+                          90
+                    : 0;
+            break;
+          } else if (pPages->KeyExist("Parent"))
+            pPages =
+                (CPDF_Dictionary*)pPages->GetElement("Parent")->GetDirect();
+          else
+            break;
+        }
+      }
+    }
+  } else {
+    return -1;
+  }
+
+  return rotate;
 }
 
-DLLEXPORT void STDCALL FPDFPage_InsertObject(FPDF_PAGE page, FPDF_PAGEOBJECT page_obj)
-{
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") || !pPage->m_pFormDict->GetElement("Type")->GetDirect()
-		|| pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare("Page"))
-	{
-		return;
-	}
-	CPDF_PageObject* pPageObj = (CPDF_PageObject*)page_obj;
-	if(pPageObj == NULL)
-		return;
-	FX_POSITION LastPersition = pPage->GetLastObjectPosition();
-
-	pPage->InsertObject(LastPersition, pPageObj);
-	switch(pPageObj->m_Type)
-	{
-	case FPDF_PAGEOBJ_PATH:
-		{
-			CPDF_PathObject* pPathObj = (CPDF_PathObject*)pPageObj;
-			pPathObj->CalcBoundingBox();
-			break;
-		}
-	case FPDF_PAGEOBJ_TEXT:
-		{
-			//	CPDF_PathObject* pPathObj = (CPDF_PathObject*)pPageObj;
-			//	pPathObj->CalcBoundingBox();
-			break;
-		}
-	case FPDF_PAGEOBJ_IMAGE:
-		{
-			CPDF_ImageObject* pImageObj = (CPDF_ImageObject*)pPageObj;
-			pImageObj->CalcBoundingBox();
-			break;
-		}
-	case FPDF_PAGEOBJ_SHADING:
-		{
-			CPDF_ShadingObject* pShadingObj = (CPDF_ShadingObject*)pPageObj;
-			pShadingObj->CalcBoundingBox();
-			break;
-		}
-	case FPDF_PAGEOBJ_FORM:
-		{
-			CPDF_FormObject* pFormObj = (CPDF_FormObject*)pPageObj;
-			pFormObj->CalcBoundingBox();
-			break;
-		}
-	default:
-		break;
-	}
-
-	//	pPage->ParseContent();
-	//pPage->GenerateContent();
-
+DLLEXPORT void STDCALL FPDFPage_InsertObject(FPDF_PAGE page,
+                                             FPDF_PAGEOBJECT page_obj) {
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") ||
+      !pPage->m_pFormDict->GetElement("Type")->GetDirect() ||
+      pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare(
+          "Page")) {
+    return;
+  }
+  CPDF_PageObject* pPageObj = (CPDF_PageObject*)page_obj;
+  if (pPageObj == NULL)
+    return;
+  FX_POSITION LastPersition = pPage->GetLastObjectPosition();
+
+  pPage->InsertObject(LastPersition, pPageObj);
+  switch (pPageObj->m_Type) {
+    case FPDF_PAGEOBJ_PATH: {
+      CPDF_PathObject* pPathObj = (CPDF_PathObject*)pPageObj;
+      pPathObj->CalcBoundingBox();
+      break;
+    }
+    case FPDF_PAGEOBJ_TEXT: {
+      //	CPDF_PathObject* pPathObj = (CPDF_PathObject*)pPageObj;
+      //	pPathObj->CalcBoundingBox();
+      break;
+    }
+    case FPDF_PAGEOBJ_IMAGE: {
+      CPDF_ImageObject* pImageObj = (CPDF_ImageObject*)pPageObj;
+      pImageObj->CalcBoundingBox();
+      break;
+    }
+    case FPDF_PAGEOBJ_SHADING: {
+      CPDF_ShadingObject* pShadingObj = (CPDF_ShadingObject*)pPageObj;
+      pShadingObj->CalcBoundingBox();
+      break;
+    }
+    case FPDF_PAGEOBJ_FORM: {
+      CPDF_FormObject* pFormObj = (CPDF_FormObject*)pPageObj;
+      pFormObj->CalcBoundingBox();
+      break;
+    }
+    default:
+      break;
+  }
+
+  //	pPage->ParseContent();
+  // pPage->GenerateContent();
 }
 
-DLLEXPORT int STDCALL FPDFPage_CountObject(FPDF_PAGE page)
-{
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") || !pPage->m_pFormDict->GetElement("Type")->GetDirect()
-		|| pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare("Page"))
-	{
-		return -1;
-	}
-	return pPage->CountObjects();
-//	return 0;
+DLLEXPORT int STDCALL FPDFPage_CountObject(FPDF_PAGE page) {
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") ||
+      !pPage->m_pFormDict->GetElement("Type")->GetDirect() ||
+      pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare(
+          "Page")) {
+    return -1;
+  }
+  return pPage->CountObjects();
+  //	return 0;
 }
 
-DLLEXPORT FPDF_PAGEOBJECT STDCALL FPDFPage_GetObject(FPDF_PAGE page, int index)
-{
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type")
-		|| pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare("Page"))
-	{
-		return NULL;
-	}
-	return pPage->GetObjectByIndex(index);
-//	return NULL;
+DLLEXPORT FPDF_PAGEOBJECT STDCALL FPDFPage_GetObject(FPDF_PAGE page,
+                                                     int index) {
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") ||
+      pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare(
+          "Page")) {
+    return NULL;
+  }
+  return pPage->GetObjectByIndex(index);
+  //	return NULL;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDFPage_HasTransparency(FPDF_PAGE page)
-{
-	if(!page) return FALSE;
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage) return FALSE;
+DLLEXPORT FPDF_BOOL STDCALL FPDFPage_HasTransparency(FPDF_PAGE page) {
+  if (!page)
+    return FALSE;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return FALSE;
 
-	return pPage->BackgroundAlphaNeeded();
+  return pPage->BackgroundAlphaNeeded();
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDFPageObj_HasTransparency(FPDF_PAGEOBJECT pageObject)
-{
-	if(!pageObject) return FALSE;
-	CPDF_PageObject* pPageObj = (CPDF_PageObject*)pageObject;
-
-	const CPDF_GeneralStateData* pGeneralState = pPageObj->m_GeneralState;
-	int blend_type = pGeneralState ? pGeneralState->m_BlendType : FXDIB_BLEND_NORMAL;
-	if (blend_type != FXDIB_BLEND_NORMAL) return TRUE;
-
-	CPDF_Dictionary* pSMaskDict = pGeneralState ? (CPDF_Dictionary*)pGeneralState->m_pSoftMask : NULL;
-	if(pSMaskDict) return TRUE;
-
-	if(pGeneralState && pGeneralState->m_FillAlpha != 1.0f)
-		return TRUE;
-
-	if(pPageObj->m_Type == PDFPAGE_PATH)
-	{
-		if(pGeneralState && pGeneralState->m_StrokeAlpha != 1.0f)
-			return TRUE;
-	}
-
-	if(pPageObj->m_Type == PDFPAGE_FORM)
-	{
-		CPDF_FormObject* pFormObj = (CPDF_FormObject*)pPageObj;
-		if(pFormObj->m_pForm && (pFormObj->m_pForm->m_Transparency & PDFTRANS_ISOLATED))
-			return TRUE;
-		if(pFormObj->m_pForm && (!(pFormObj->m_pForm->m_Transparency & PDFTRANS_ISOLATED) && (pFormObj->m_pForm->m_Transparency & PDFTRANS_GROUP)))
-			return TRUE;
-	}
-	return FALSE;
+DLLEXPORT FPDF_BOOL STDCALL
+FPDFPageObj_HasTransparency(FPDF_PAGEOBJECT pageObject) {
+  if (!pageObject)
+    return FALSE;
+  CPDF_PageObject* pPageObj = (CPDF_PageObject*)pageObject;
+
+  const CPDF_GeneralStateData* pGeneralState = pPageObj->m_GeneralState;
+  int blend_type =
+      pGeneralState ? pGeneralState->m_BlendType : FXDIB_BLEND_NORMAL;
+  if (blend_type != FXDIB_BLEND_NORMAL)
+    return TRUE;
+
+  CPDF_Dictionary* pSMaskDict =
+      pGeneralState ? (CPDF_Dictionary*)pGeneralState->m_pSoftMask : NULL;
+  if (pSMaskDict)
+    return TRUE;
+
+  if (pGeneralState && pGeneralState->m_FillAlpha != 1.0f)
+    return TRUE;
+
+  if (pPageObj->m_Type == PDFPAGE_PATH) {
+    if (pGeneralState && pGeneralState->m_StrokeAlpha != 1.0f)
+      return TRUE;
+  }
+
+  if (pPageObj->m_Type == PDFPAGE_FORM) {
+    CPDF_FormObject* pFormObj = (CPDF_FormObject*)pPageObj;
+    if (pFormObj->m_pForm &&
+        (pFormObj->m_pForm->m_Transparency & PDFTRANS_ISOLATED))
+      return TRUE;
+    if (pFormObj->m_pForm &&
+        (!(pFormObj->m_pForm->m_Transparency & PDFTRANS_ISOLATED) &&
+         (pFormObj->m_pForm->m_Transparency & PDFTRANS_GROUP)))
+      return TRUE;
+  }
+  return FALSE;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GenerateContent(FPDF_PAGE page)
-{
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") || !pPage->m_pFormDict->GetElement("Type")->GetDirect()
-		|| pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare("Page"))
-	{
-		return FALSE;
-	}
-	CPDF_PageContentGenerate CG(pPage);
-	CG.GenerateContent();
-
-	return TRUE;
+DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GenerateContent(FPDF_PAGE page) {
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") ||
+      !pPage->m_pFormDict->GetElement("Type")->GetDirect() ||
+      pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare(
+          "Page")) {
+    return FALSE;
+  }
+  CPDF_PageContentGenerate CG(pPage);
+  CG.GenerateContent();
+
+  return TRUE;
 }
 
 DLLEXPORT void STDCALL FPDFPageObj_Transform(FPDF_PAGEOBJECT page_object,
-			 double a, double b, double c, double d, double e, double f)
-{
-	CPDF_PageObject* pPageObj = (CPDF_PageObject*)page_object;
-	if(pPageObj == NULL)
-		return;
-//PDF_ImageObject* pImageObj = FX_NEW CPDF_ImageObject;
-	CFX_AffineMatrix matrix((FX_FLOAT)a,(FX_FLOAT)b,(FX_FLOAT)c,(FX_FLOAT)d,(FX_FLOAT)e,(FX_FLOAT)f);
-	pPageObj->Transform(matrix);
+                                             double a,
+                                             double b,
+                                             double c,
+                                             double d,
+                                             double e,
+                                             double f) {
+  CPDF_PageObject* pPageObj = (CPDF_PageObject*)page_object;
+  if (pPageObj == NULL)
+    return;
+  // PDF_ImageObject* pImageObj = FX_NEW CPDF_ImageObject;
+  CFX_AffineMatrix matrix((FX_FLOAT)a, (FX_FLOAT)b, (FX_FLOAT)c, (FX_FLOAT)d,
+                          (FX_FLOAT)e, (FX_FLOAT)f);
+  pPageObj->Transform(matrix);
 }
 DLLEXPORT void STDCALL FPDFPage_TransformAnnots(FPDF_PAGE page,
-											   double a, double b, double c, double d, double e, double f)
-{
-	if(page == NULL)
-		return;
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage) return;
-	CPDF_AnnotList AnnotList(pPage);
-	for (int i=0; i<AnnotList.Count();i++)
-	{
-		CPDF_Annot* pAnnot = AnnotList.GetAt(i);
-		// transformAnnots Rectangle
-		CPDF_Rect rect;
-		pAnnot->GetRect(rect);
-		CFX_AffineMatrix matrix((FX_FLOAT)a,(FX_FLOAT)b,(FX_FLOAT)c,(FX_FLOAT)d,(FX_FLOAT)e,(FX_FLOAT)f);
-		rect.Transform(&matrix);
-		CPDF_Array *pRectArray = NULL;
-		pRectArray = pAnnot->GetAnnotDict()->GetArray("Rect");
-		if (!pRectArray) pRectArray=CPDF_Array::Create();
-		pRectArray->SetAt(0, new CPDF_Number(rect.left));
-		pRectArray->SetAt(1, new CPDF_Number(rect.bottom));
-		pRectArray->SetAt(2, new CPDF_Number(rect.right));
-		pRectArray->SetAt(3, new CPDF_Number(rect.top));
-		pAnnot->GetAnnotDict()->SetAt("Rect",pRectArray);
-
-		//Transform AP's rectangle
-		//To Do
-
-	}
-
+                                                double a,
+                                                double b,
+                                                double c,
+                                                double d,
+                                                double e,
+                                                double f) {
+  if (page == NULL)
+    return;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return;
+  CPDF_AnnotList AnnotList(pPage);
+  for (int i = 0; i < AnnotList.Count(); i++) {
+    CPDF_Annot* pAnnot = AnnotList.GetAt(i);
+    // transformAnnots Rectangle
+    CPDF_Rect rect;
+    pAnnot->GetRect(rect);
+    CFX_AffineMatrix matrix((FX_FLOAT)a, (FX_FLOAT)b, (FX_FLOAT)c, (FX_FLOAT)d,
+                            (FX_FLOAT)e, (FX_FLOAT)f);
+    rect.Transform(&matrix);
+    CPDF_Array* pRectArray = NULL;
+    pRectArray = pAnnot->GetAnnotDict()->GetArray("Rect");
+    if (!pRectArray)
+      pRectArray = CPDF_Array::Create();
+    pRectArray->SetAt(0, new CPDF_Number(rect.left));
+    pRectArray->SetAt(1, new CPDF_Number(rect.bottom));
+    pRectArray->SetAt(2, new CPDF_Number(rect.right));
+    pRectArray->SetAt(3, new CPDF_Number(rect.top));
+    pAnnot->GetAnnotDict()->SetAt("Rect", pRectArray);
+
+    // Transform AP's rectangle
+    // To Do
+  }
 }
 
-DLLEXPORT void STDCALL FPDFPage_SetRotation(FPDF_PAGE page, int rotate)
-{
-	if (page == NULL)
-		return;
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage) return;
-
-	if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") || !pPage->m_pFormDict->GetElement("Type")->GetDirect()
-		|| pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare("Page"))
-	{
-		return;
-	}
-	CPDF_Dictionary* pDict = pPage->m_pFormDict;
-	rotate %=4;
-
-	pDict->SetAt("Rotate", FX_NEW CPDF_Number(rotate * 90));
+DLLEXPORT void STDCALL FPDFPage_SetRotation(FPDF_PAGE page, int rotate) {
+  if (page == NULL)
+    return;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return;
+
+  if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") ||
+      !pPage->m_pFormDict->GetElement("Type")->GetDirect() ||
+      pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare(
+          "Page")) {
+    return;
+  }
+  CPDF_Dictionary* pDict = pPage->m_pFormDict;
+  rotate %= 4;
+
+  pDict->SetAt("Rotate", FX_NEW CPDF_Number(rotate * 90));
 }
diff --git a/fpdfsdk/src/fpdfformfill.cpp b/fpdfsdk/src/fpdfformfill.cpp
index aa1c04a5c4..369f9b4279 100644
--- a/fpdfsdk/src/fpdfformfill.cpp
+++ b/fpdfsdk/src/fpdfformfill.cpp
@@ -12,603 +12,656 @@
 #include "../include/fpdfxfa/fpdfxfa_page.h"
 #include "../include/fpdfxfa/fpdfxfa_app.h"
 
-
 #include "../include/javascript/IJavaScript.h"
 
 namespace {
 
-CPDFSDK_Document* FormHandleToSDKDoc(FPDF_FORMHANDLE hHandle)
-{
-    CPDFDoc_Environment* pEnv = (CPDFDoc_Environment*)hHandle;
-    return pEnv ? pEnv->GetSDKDocument() : nullptr;
+CPDFSDK_Document* FormHandleToSDKDoc(FPDF_FORMHANDLE hHandle) {
+  CPDFDoc_Environment* pEnv = (CPDFDoc_Environment*)hHandle;
+  return pEnv ? pEnv->GetSDKDocument() : nullptr;
 }
 
-CPDFSDK_InterForm* FormHandleToInterForm(FPDF_FORMHANDLE hHandle)
-{
-    CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
-    return pSDKDoc ? pSDKDoc->GetInterForm() : nullptr;
+CPDFSDK_InterForm* FormHandleToInterForm(FPDF_FORMHANDLE hHandle) {
+  CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
+  return pSDKDoc ? pSDKDoc->GetInterForm() : nullptr;
 }
 
-CPDFSDK_PageView* FormHandleToPageView(FPDF_FORMHANDLE hHandle, FPDF_PAGE page)
-{
-    if (!page)
-        return nullptr;
+CPDFSDK_PageView* FormHandleToPageView(FPDF_FORMHANDLE hHandle,
+                                       FPDF_PAGE page) {
+  if (!page)
+    return nullptr;
 
-    CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
-    return pSDKDoc ? pSDKDoc->GetPageView((CPDFXFA_Page*)page, TRUE) : nullptr;
+  CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
+  return pSDKDoc ? pSDKDoc->GetPageView((CPDFXFA_Page*)page, TRUE) : nullptr;
 }
 
 }  // namespace
 
-DLLEXPORT int STDCALL FPDPage_HasFormFieldAtPoint(
-    FPDF_FORMHANDLE hHandle, FPDF_PAGE page, double page_x, double page_y)
-{
-    if(!page || !hHandle)
-        return -1;
-    CPDF_Page * pPage = ((CPDFXFA_Page*) page)->GetPDFPage();
-    if (pPage)
-    {
-        CPDF_InterForm * pInterForm = NULL;
-        pInterForm = new CPDF_InterForm(pPage->m_pDocument,FALSE);
-        if (!pInterForm)
-            return -1;
-        CPDF_FormControl* pFormCtrl = pInterForm->GetControlAtPoint(pPage, (FX_FLOAT)page_x, (FX_FLOAT)page_y);
-        if(!pFormCtrl)
-        {
-            delete pInterForm;
-            return -1;
-        }
-        CPDF_FormField* pFormField = pFormCtrl->GetField();
-        if(!pFormField)
-        {
-            delete pInterForm;
-            return -1;
-        }
-
-        int nType = pFormField->GetFieldType();
-        delete pInterForm;
-        return nType;
+DLLEXPORT int STDCALL FPDPage_HasFormFieldAtPoint(FPDF_FORMHANDLE hHandle,
+                                                  FPDF_PAGE page,
+                                                  double page_x,
+                                                  double page_y) {
+  if (!page || !hHandle)
+    return -1;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (pPage) {
+    CPDF_InterForm* pInterForm = NULL;
+    pInterForm = new CPDF_InterForm(pPage->m_pDocument, FALSE);
+    if (!pInterForm)
+      return -1;
+    CPDF_FormControl* pFormCtrl = pInterForm->GetControlAtPoint(
+        pPage, (FX_FLOAT)page_x, (FX_FLOAT)page_y);
+    if (!pFormCtrl) {
+      delete pInterForm;
+      return -1;
+    }
+    CPDF_FormField* pFormField = pFormCtrl->GetField();
+    if (!pFormField) {
+      delete pInterForm;
+      return -1;
     }
 
-    IXFA_PageView* pPageView = ((CPDFXFA_Page*)page)->GetXFAPageView();
-    if (pPageView)
-    {
-        IXFA_WidgetHandler* pWidgetHandler = NULL;
-        IXFA_DocView* pDocView = pPageView->GetDocView();
-        if (!pDocView)
-            return -1;
-
-        pWidgetHandler = pDocView->GetWidgetHandler();
-        if (!pWidgetHandler)
-            return -1;
-
-        IXFA_Widget* pXFAAnnot = NULL;
-        IXFA_WidgetIterator* pWidgetIterator = pPageView->CreateWidgetIterator(XFA_TRAVERSEWAY_Form, XFA_WIDGETFILTER_Viewable|XFA_WIDGETFILTER_AllType);
-        if (!pWidgetIterator)
-            return -1;
-        pXFAAnnot = pWidgetIterator->MoveToNext();
-        while (pXFAAnnot) {
-            CFX_RectF rcBBox;
-            pWidgetHandler->GetBBox (pXFAAnnot, rcBBox, 0);
-            CFX_FloatRect rcWidget(rcBBox.left, rcBBox.top, rcBBox.left + rcBBox.width, rcBBox.top+rcBBox.height);
-            rcWidget.left -= 1.0f;
-            rcWidget.right += 1.0f;
-            rcWidget.bottom -= 1.0f;
-            rcWidget.top += 1.0f;
-
-            if (rcWidget.Contains(static_cast<FX_FLOAT>(page_x),
-                static_cast<FX_FLOAT>(page_y))) {
-                pWidgetIterator->Release();
-                return FPDF_FORMFIELD_XFA;
-            }
-            pXFAAnnot = pWidgetIterator->MoveToNext();
-        }
-
+    int nType = pFormField->GetFieldType();
+    delete pInterForm;
+    return nType;
+  }
+
+  IXFA_PageView* pPageView = ((CPDFXFA_Page*)page)->GetXFAPageView();
+  if (pPageView) {
+    IXFA_WidgetHandler* pWidgetHandler = NULL;
+    IXFA_DocView* pDocView = pPageView->GetDocView();
+    if (!pDocView)
+      return -1;
+
+    pWidgetHandler = pDocView->GetWidgetHandler();
+    if (!pWidgetHandler)
+      return -1;
+
+    IXFA_Widget* pXFAAnnot = NULL;
+    IXFA_WidgetIterator* pWidgetIterator = pPageView->CreateWidgetIterator(
+        XFA_TRAVERSEWAY_Form,
+        XFA_WIDGETFILTER_Viewable | XFA_WIDGETFILTER_AllType);
+    if (!pWidgetIterator)
+      return -1;
+    pXFAAnnot = pWidgetIterator->MoveToNext();
+    while (pXFAAnnot) {
+      CFX_RectF rcBBox;
+      pWidgetHandler->GetBBox(pXFAAnnot, rcBBox, 0);
+      CFX_FloatRect rcWidget(rcBBox.left, rcBBox.top,
+                             rcBBox.left + rcBBox.width,
+                             rcBBox.top + rcBBox.height);
+      rcWidget.left -= 1.0f;
+      rcWidget.right += 1.0f;
+      rcWidget.bottom -= 1.0f;
+      rcWidget.top += 1.0f;
+
+      if (rcWidget.Contains(static_cast<FX_FLOAT>(page_x),
+                            static_cast<FX_FLOAT>(page_y))) {
         pWidgetIterator->Release();
+        return FPDF_FORMFIELD_XFA;
+      }
+      pXFAAnnot = pWidgetIterator->MoveToNext();
     }
 
-    return -1;
-}
-
-DLLEXPORT FPDF_FORMHANDLE STDCALL FPDFDOC_InitFormFillEnvironment(FPDF_DOCUMENT document, FPDF_FORMFILLINFO* formInfo)
-{
-    if (!document || !formInfo || formInfo->version != 2)
-        return nullptr;
-
-    CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
-    CPDFDoc_Environment* pEnv = new CPDFDoc_Environment(pDocument, formInfo);
-    pEnv->SetSDKDocument(pDocument->GetSDKDocument(pEnv));
+    pWidgetIterator->Release();
+  }
 
-    CPDFXFA_App* pApp = CPDFXFA_App::GetInstance();
-    pApp->AddFormFillEnv(pEnv);
-
-    return pEnv;
+  return -1;
 }
 
-DLLEXPORT void STDCALL FPDFDOC_ExitFormFillEnvironment(FPDF_FORMHANDLE hHandle)
-{
-    if (!hHandle)
-        return;
-    CPDFXFA_App* pApp = CPDFXFA_App::GetInstance();
-    pApp->RemoveFormFillEnv((CPDFDoc_Environment*)hHandle);
-    delete (CPDFDoc_Environment*)hHandle;
-}
+DLLEXPORT FPDF_FORMHANDLE STDCALL
+FPDFDOC_InitFormFillEnvironment(FPDF_DOCUMENT document,
+                                FPDF_FORMFILLINFO* formInfo) {
+  if (!document || !formInfo || formInfo->version != 2)
+    return nullptr;
 
-DLLEXPORT FPDF_BOOL STDCALL FORM_OnMouseMove(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, double page_x, double page_y)
-{
-    CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
-    if (!pPageView)
-        return FALSE;
+  CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
+  CPDFDoc_Environment* pEnv = new CPDFDoc_Environment(pDocument, formInfo);
+  pEnv->SetSDKDocument(pDocument->GetSDKDocument(pEnv));
 
-    CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y);
-    return pPageView->OnMouseMove(pt, modifier);
-}
-
-DLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonDown(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, double page_x, double page_y)
-{
-    CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
-    if (!pPageView)
-        return FALSE;
+  CPDFXFA_App* pApp = CPDFXFA_App::GetInstance();
+  pApp->AddFormFillEnv(pEnv);
 
-    CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y);
-    return pPageView->OnLButtonDown(pt, modifier);
+  return pEnv;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonUp(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, double page_x, double page_y)
-{
-    CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
-    if (!pPageView)
-        return FALSE;
-
-    CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y);
-    return pPageView->OnLButtonUp(pt, modifier);
+DLLEXPORT void STDCALL
+FPDFDOC_ExitFormFillEnvironment(FPDF_FORMHANDLE hHandle) {
+  if (!hHandle)
+    return;
+  CPDFXFA_App* pApp = CPDFXFA_App::GetInstance();
+  pApp->RemoveFormFillEnv((CPDFDoc_Environment*)hHandle);
+  delete (CPDFDoc_Environment*)hHandle;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FORM_OnRButtonDown(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, double page_x, double page_y)
-{
-    CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
-    if (!pPageView)
-        return FALSE;
+DLLEXPORT FPDF_BOOL STDCALL FORM_OnMouseMove(FPDF_FORMHANDLE hHandle,
+                                             FPDF_PAGE page,
+                                             int modifier,
+                                             double page_x,
+                                             double page_y) {
+  CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
+  if (!pPageView)
+    return FALSE;
 
-    CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y);
-    return pPageView->OnRButtonDown(pt, modifier);
+  CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y);
+  return pPageView->OnMouseMove(pt, modifier);
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FORM_OnRButtonUp(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, double page_x, double page_y)
-{
-    CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
-    if (!pPageView)
-        return FALSE;
+DLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonDown(FPDF_FORMHANDLE hHandle,
+                                               FPDF_PAGE page,
+                                               int modifier,
+                                               double page_x,
+                                               double page_y) {
+  CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
+  if (!pPageView)
+    return FALSE;
 
-    CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y);
-    return pPageView->OnRButtonUp(pt, modifier);
+  CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y);
+  return pPageView->OnLButtonDown(pt, modifier);
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyDown(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int nKeyCode, int modifier)
-{
-    CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
-    if (!pPageView)
-        return FALSE;
+DLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonUp(FPDF_FORMHANDLE hHandle,
+                                             FPDF_PAGE page,
+                                             int modifier,
+                                             double page_x,
+                                             double page_y) {
+  CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
+  if (!pPageView)
+    return FALSE;
 
-    return pPageView->OnKeyDown(nKeyCode, modifier);
+  CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y);
+  return pPageView->OnLButtonUp(pt, modifier);
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyUp(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int nKeyCode, int modifier)
-{
-    CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
-    if (!pPageView)
-        return FALSE;
+DLLEXPORT FPDF_BOOL STDCALL FORM_OnRButtonDown(FPDF_FORMHANDLE hHandle,
+                                               FPDF_PAGE page,
+                                               int modifier,
+                                               double page_x,
+                                               double page_y) {
+  CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
+  if (!pPageView)
+    return FALSE;
 
-    return pPageView->OnKeyUp(nKeyCode, modifier);
+  CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y);
+  return pPageView->OnRButtonDown(pt, modifier);
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FORM_OnChar(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int nChar,  int modifier)
-{
-    CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
-    if (!pPageView)
-        return FALSE;
+DLLEXPORT FPDF_BOOL STDCALL FORM_OnRButtonUp(FPDF_FORMHANDLE hHandle,
+                                             FPDF_PAGE page,
+                                             int modifier,
+                                             double page_x,
+                                             double page_y) {
+  CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
+  if (!pPageView)
+    return FALSE;
 
-    return pPageView->OnChar(nChar, modifier);
+  CPDF_Point pt((FX_FLOAT)page_x, (FX_FLOAT)page_y);
+  return pPageView->OnRButtonUp(pt, modifier);
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FORM_ForceToKillFocus(FPDF_FORMHANDLE hHandle)
-{
-    CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
-    if (!pSDKDoc)
-        return FALSE;
-
-    return pSDKDoc->KillFocusAnnot(0);
-}
-
-DLLEXPORT void STDCALL FPDF_FFLDraw(FPDF_FORMHANDLE hHandle, FPDF_BITMAP bitmap, FPDF_PAGE page,
-                                    int start_x, int start_y, int size_x, int size_y, int rotate, int flags)
-{
-    if (!hHandle || !page)
-        return ;
-
-    CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
-    CPDFXFA_Document* pDocument = pPage->GetDocument();
-    if (!pDocument)
-        return;
-    CPDF_Document* pPDFDoc = pDocument->GetPDFDoc();
-    if (!pPDFDoc)
-        return;
-
-    CPDFDoc_Environment* pEnv = (CPDFDoc_Environment*)hHandle;
-    CPDFSDK_Document* pFXDoc = pEnv->GetSDKDocument();
-    if (!pFXDoc)
-        return;
-
-    CFX_AffineMatrix matrix;
-    pPage->GetDisplayMatrix(matrix, start_x, start_y, size_x, size_y, rotate);
+DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyDown(FPDF_FORMHANDLE hHandle,
+                                           FPDF_PAGE page,
+                                           int nKeyCode,
+                                           int modifier) {
+  CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
+  if (!pPageView)
+    return FALSE;
+
+  return pPageView->OnKeyDown(nKeyCode, modifier);
+}
+
+DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyUp(FPDF_FORMHANDLE hHandle,
+                                         FPDF_PAGE page,
+                                         int nKeyCode,
+                                         int modifier) {
+  CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
+  if (!pPageView)
+    return FALSE;
+
+  return pPageView->OnKeyUp(nKeyCode, modifier);
+}
+
+DLLEXPORT FPDF_BOOL STDCALL FORM_OnChar(FPDF_FORMHANDLE hHandle,
+                                        FPDF_PAGE page,
+                                        int nChar,
+                                        int modifier) {
+  CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
+  if (!pPageView)
+    return FALSE;
+
+  return pPageView->OnChar(nChar, modifier);
+}
+
+DLLEXPORT FPDF_BOOL STDCALL FORM_ForceToKillFocus(FPDF_FORMHANDLE hHandle) {
+  CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
+  if (!pSDKDoc)
+    return FALSE;
+
+  return pSDKDoc->KillFocusAnnot(0);
+}
+
+DLLEXPORT void STDCALL FPDF_FFLDraw(FPDF_FORMHANDLE hHandle,
+                                    FPDF_BITMAP bitmap,
+                                    FPDF_PAGE page,
+                                    int start_x,
+                                    int start_y,
+                                    int size_x,
+                                    int size_y,
+                                    int rotate,
+                                    int flags) {
+  if (!hHandle || !page)
+    return;
+
+  CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
+  CPDFXFA_Document* pDocument = pPage->GetDocument();
+  if (!pDocument)
+    return;
+  CPDF_Document* pPDFDoc = pDocument->GetPDFDoc();
+  if (!pPDFDoc)
+    return;
+
+  CPDFDoc_Environment* pEnv = (CPDFDoc_Environment*)hHandle;
+  CPDFSDK_Document* pFXDoc = pEnv->GetSDKDocument();
+  if (!pFXDoc)
+    return;
+
+  CFX_AffineMatrix matrix;
+  pPage->GetDisplayMatrix(matrix, start_x, start_y, size_x, size_y, rotate);
 
-    FX_RECT clip;
-    clip.left = start_x;
-    clip.right = start_x + size_x;
-    clip.top = start_y;
-    clip.bottom = start_y + size_y;
+  FX_RECT clip;
+  clip.left = start_x;
+  clip.right = start_x + size_x;
+  clip.top = start_y;
+  clip.bottom = start_y + size_y;
 
 #ifdef _SKIA_SUPPORT_
-    nonstd::unique_ptr<CFX_SkiaDevice> pDevice(new CFX_SkiaDevice);
+  nonstd::unique_ptr<CFX_SkiaDevice> pDevice(new CFX_SkiaDevice);
 #else
-    nonstd::unique_ptr<CFX_FxgeDevice> pDevice(new CFX_FxgeDevice);
+  nonstd::unique_ptr<CFX_FxgeDevice> pDevice(new CFX_FxgeDevice);
 #endif
 
-    if (!pDevice)
-        return;
-    pDevice->Attach((CFX_DIBitmap*)bitmap);
-    pDevice->SaveState();
-    pDevice->SetClip_Rect(&clip);
-
-    CPDF_RenderOptions options;
-    if (flags & FPDF_LCD_TEXT)
-        options.m_Flags |= RENDER_CLEARTYPE;
-    else
-        options.m_Flags &= ~RENDER_CLEARTYPE;
-
-    //Grayscale output
-    if (flags & FPDF_GRAYSCALE)
-    {
-        options.m_ColorMode = RENDER_COLOR_GRAY;
-        options.m_ForeColor = 0;
-        options.m_BackColor = 0xffffff;
-    }
-    options.m_AddFlags = flags >> 8;
-    options.m_pOCContext = FX_NEW CPDF_OCContext(pPDFDoc);
-
-    if (CPDFSDK_PageView* pPageView = pFXDoc->GetPageView((CPDFXFA_Page*)page))
-        pPageView->PageView_OnDraw(pDevice.get(), &matrix, &options, &clip);
-
-    pDevice->RestoreState();
-
-    delete options.m_pOCContext;
-    options.m_pOCContext = NULL;
-}
-DLLEXPORT void STDCALL FPDF_Widget_Undo(FPDF_DOCUMENT document, FPDF_WIDGET hWidget)
-{
-    if (NULL == hWidget || NULL == document)
-        return;
-
-    CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
-    if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && pDocument->GetDocType() != XFA_DOCTYPE_Static)
-        return;
-
-    IXFA_MenuHandler* pXFAMenuHander = CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
-    if (pXFAMenuHander == NULL)
-        return;
-
-    pXFAMenuHander->Undo((IXFA_Widget*)hWidget);
-
-}
-DLLEXPORT void STDCALL FPDF_Widget_Redo(FPDF_DOCUMENT document, FPDF_WIDGET hWidget)
-{
-    if (NULL == hWidget || NULL == document)
-        return;
-
-    CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
-    if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && pDocument->GetDocType() != XFA_DOCTYPE_Static)
-        return;
-
-    IXFA_MenuHandler* pXFAMenuHander = CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
-    if (pXFAMenuHander == NULL)
-        return;
-
-    pXFAMenuHander->Redo((IXFA_Widget*)hWidget);
-}
-
-DLLEXPORT void STDCALL FPDF_Widget_SelectAll(FPDF_DOCUMENT document, FPDF_WIDGET hWidget)
-{
-    if (NULL == hWidget || NULL == document)
-        return;
-
-    CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
-    if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && pDocument->GetDocType() != XFA_DOCTYPE_Static)
-        return;
-
-    IXFA_MenuHandler* pXFAMenuHander = CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
-    if (pXFAMenuHander == NULL)
-        return;
-
-    pXFAMenuHander->SelectAll((IXFA_Widget*)hWidget);
-}
-DLLEXPORT void STDCALL FPDF_Widget_Copy(FPDF_DOCUMENT document, FPDF_WIDGET hWidget, FPDF_WIDESTRING wsText, FPDF_DWORD* size)
-{
-    if (NULL == hWidget || NULL == document)
-        return;
-
-    CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
-    if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && pDocument->GetDocType() != XFA_DOCTYPE_Static)
-        return;
-
-    IXFA_MenuHandler* pXFAMenuHander = CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
-    if (pXFAMenuHander == NULL)
-        return;
-
-    CFX_WideString wsCpText;
-    pXFAMenuHander->Copy((IXFA_Widget*)hWidget, wsCpText);
-
-    CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode();
-    int len = bsCpText.GetLength()/sizeof(unsigned short);
-    if (wsText == NULL) {
-        *size = len;
-        return;
-    }
-
-    int real_size = len < *size ? len : *size;
-    if (real_size > 0)
-    {
-        FXSYS_memcpy((void*)wsText,bsCpText.GetBuffer(real_size*sizeof(unsigned short)),real_size*sizeof(unsigned short));
-        bsCpText.ReleaseBuffer(real_size*sizeof(unsigned short));
-    }
-    *size = real_size;
-}
-DLLEXPORT void STDCALL FPDF_Widget_Cut(FPDF_DOCUMENT document, FPDF_WIDGET hWidget, FPDF_WIDESTRING wsText, FPDF_DWORD* size)
-{
-    if (NULL == hWidget || NULL == document)
-        return;
-    CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
-    if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && pDocument->GetDocType() != XFA_DOCTYPE_Static)
-        return;
-
-    IXFA_MenuHandler* pXFAMenuHander = CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
-    if (pXFAMenuHander == NULL)
-        return;
-
-    CFX_WideString wsCpText;
-    pXFAMenuHander->Cut((IXFA_Widget*)hWidget, wsCpText);
-
-    CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode();
-    int len = bsCpText.GetLength()/sizeof(unsigned short);
-    if (wsText == NULL) {
-        *size = len;
-        return;
-    }
-
-    int real_size = len < *size ? len : *size;
-    if (real_size > 0)
-    {
-        FXSYS_memcpy((void*)wsText,bsCpText.GetBuffer(real_size*sizeof(unsigned short)),real_size*sizeof(unsigned short));
-        bsCpText.ReleaseBuffer(real_size*sizeof(unsigned short));
-    }
-    *size = real_size;
-}
-DLLEXPORT void STDCALL FPDF_Widget_Paste(FPDF_DOCUMENT document, FPDF_WIDGET hWidget, FPDF_WIDESTRING wsText, FPDF_DWORD size)
-{
-    if (NULL == hWidget || NULL == document)
-        return;
-
-    CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
-    if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && pDocument->GetDocType() != XFA_DOCTYPE_Static)
-        return;
-
-    IXFA_MenuHandler* pXFAMenuHander = CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
-    if (pXFAMenuHander == NULL)
-        return;
-
-    CFX_WideString wstr = CFX_WideString::FromUTF16LE(wsText, size);
-    pXFAMenuHander->Paste((IXFA_Widget*)hWidget, wstr);
-
-}
-DLLEXPORT void STDCALL FPDF_Widget_ReplaceSpellCheckWord(FPDF_DOCUMENT document, FPDF_WIDGET hWidget, float x, float y, FPDF_BYTESTRING bsText)
-{
-    if (NULL == hWidget || NULL == document)
-        return;
-
-    CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
-    if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && pDocument->GetDocType() != XFA_DOCTYPE_Static)
-        return;
-
-    IXFA_MenuHandler* pXFAMenuHander = CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
-    if (pXFAMenuHander == NULL)
-        return;
-
-    CFX_PointF ptPopup;
-    ptPopup.x = x;
-    ptPopup.y = y;
-    CFX_ByteStringC bs(bsText);
-    pXFAMenuHander->ReplaceSpellCheckWord((IXFA_Widget*)hWidget,ptPopup,bs);
-
-}
-DLLEXPORT void STDCALL FPDF_Widget_GetSpellCheckWords(FPDF_DOCUMENT document, FPDF_WIDGET hWidget, float x, float y, FPDF_STRINGHANDLE* stringHandle)
-{
-    if (NULL == hWidget || NULL == document)
-        return;
-
-    CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
-    if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && pDocument->GetDocType() != XFA_DOCTYPE_Static)
-        return;
-
-    IXFA_MenuHandler* pXFAMenuHander = CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
-    if (pXFAMenuHander == NULL)
-        return;
-
-    CFX_ByteStringArray* sSuggestWords = FX_NEW CFX_ByteStringArray;
-    CFX_PointF ptPopup;
-    ptPopup.x = x;
-    ptPopup.y = y;
-    pXFAMenuHander->GetSuggestWords((IXFA_Widget*)hWidget, ptPopup, *sSuggestWords);
-    *stringHandle = (FPDF_STRINGHANDLE)sSuggestWords;
-}
-DLLEXPORT int STDCALL FPDF_StringHandleCounts(FPDF_STRINGHANDLE stringHandle)
-{
-    if (stringHandle == NULL)
-        return -1;
-    CFX_ByteStringArray* sSuggestWords = (CFX_ByteStringArray*)stringHandle;
-    return sSuggestWords->GetSize();
-}
-DLLEXPORT FPDF_BOOL STDCALL FPDF_StringHandleGetStringByIndex(FPDF_STRINGHANDLE stringHandle, int index, FPDF_BYTESTRING bsText, FPDF_DWORD* size)
-{
-    if (stringHandle == NULL || size == NULL)
-        return FALSE;
-    int count = FPDF_StringHandleCounts(stringHandle);
-    if (index < 0|| index >= count)
-        return FALSE;
-
-    CFX_ByteStringArray sSuggestWords = *(CFX_ByteStringArray*)stringHandle;
-    int len = sSuggestWords[index].GetLength();
-
-    if (bsText == NULL) {
-        *size = len;
-        return TRUE;
-    }
-
-    int real_size = len < *size ? len : *size;
-    if (real_size > 0)
-        FXSYS_memcpy((void*)bsText, (const FX_CHAR*)(sSuggestWords[index]), real_size);
-    *size = real_size;
-
-    return TRUE;
-}
-DLLEXPORT void STDCALL FPDF_StringHandleRelease(FPDF_STRINGHANDLE stringHandle)
-{
-    if (stringHandle == NULL)
-        return;
-    CFX_ByteStringArray* sSuggestWords = (CFX_ByteStringArray*)stringHandle;
-    delete sSuggestWords;
-}
-
-DLLEXPORT FPDF_BOOL STDCALL FPDF_StringHandleAddString(FPDF_STRINGHANDLE stringHandle, FPDF_BYTESTRING bsText, FPDF_DWORD size)
-{
-    if (stringHandle == NULL || bsText == NULL || size <= 0)
-        return FALSE;
-
-    CFX_ByteStringArray* stringArr = (CFX_ByteStringArray*)stringHandle;
-    CFX_ByteString bsStr(bsText, size);
-
-    stringArr->Add(bsStr);
+  if (!pDevice)
+    return;
+  pDevice->Attach((CFX_DIBitmap*)bitmap);
+  pDevice->SaveState();
+  pDevice->SetClip_Rect(&clip);
+
+  CPDF_RenderOptions options;
+  if (flags & FPDF_LCD_TEXT)
+    options.m_Flags |= RENDER_CLEARTYPE;
+  else
+    options.m_Flags &= ~RENDER_CLEARTYPE;
+
+  // Grayscale output
+  if (flags & FPDF_GRAYSCALE) {
+    options.m_ColorMode = RENDER_COLOR_GRAY;
+    options.m_ForeColor = 0;
+    options.m_BackColor = 0xffffff;
+  }
+  options.m_AddFlags = flags >> 8;
+  options.m_pOCContext = FX_NEW CPDF_OCContext(pPDFDoc);
+
+  if (CPDFSDK_PageView* pPageView = pFXDoc->GetPageView((CPDFXFA_Page*)page))
+    pPageView->PageView_OnDraw(pDevice.get(), &matrix, &options, &clip);
+
+  pDevice->RestoreState();
+
+  delete options.m_pOCContext;
+  options.m_pOCContext = NULL;
+}
+DLLEXPORT void STDCALL FPDF_Widget_Undo(FPDF_DOCUMENT document,
+                                        FPDF_WIDGET hWidget) {
+  if (NULL == hWidget || NULL == document)
+    return;
+
+  CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
+  if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic &&
+      pDocument->GetDocType() != XFA_DOCTYPE_Static)
+    return;
+
+  IXFA_MenuHandler* pXFAMenuHander =
+      CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
+  if (pXFAMenuHander == NULL)
+    return;
+
+  pXFAMenuHander->Undo((IXFA_Widget*)hWidget);
+}
+DLLEXPORT void STDCALL FPDF_Widget_Redo(FPDF_DOCUMENT document,
+                                        FPDF_WIDGET hWidget) {
+  if (NULL == hWidget || NULL == document)
+    return;
+
+  CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
+  if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic &&
+      pDocument->GetDocType() != XFA_DOCTYPE_Static)
+    return;
+
+  IXFA_MenuHandler* pXFAMenuHander =
+      CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
+  if (pXFAMenuHander == NULL)
+    return;
+
+  pXFAMenuHander->Redo((IXFA_Widget*)hWidget);
+}
+
+DLLEXPORT void STDCALL FPDF_Widget_SelectAll(FPDF_DOCUMENT document,
+                                             FPDF_WIDGET hWidget) {
+  if (NULL == hWidget || NULL == document)
+    return;
+
+  CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
+  if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic &&
+      pDocument->GetDocType() != XFA_DOCTYPE_Static)
+    return;
+
+  IXFA_MenuHandler* pXFAMenuHander =
+      CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
+  if (pXFAMenuHander == NULL)
+    return;
+
+  pXFAMenuHander->SelectAll((IXFA_Widget*)hWidget);
+}
+DLLEXPORT void STDCALL FPDF_Widget_Copy(FPDF_DOCUMENT document,
+                                        FPDF_WIDGET hWidget,
+                                        FPDF_WIDESTRING wsText,
+                                        FPDF_DWORD* size) {
+  if (NULL == hWidget || NULL == document)
+    return;
+
+  CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
+  if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic &&
+      pDocument->GetDocType() != XFA_DOCTYPE_Static)
+    return;
+
+  IXFA_MenuHandler* pXFAMenuHander =
+      CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
+  if (pXFAMenuHander == NULL)
+    return;
+
+  CFX_WideString wsCpText;
+  pXFAMenuHander->Copy((IXFA_Widget*)hWidget, wsCpText);
+
+  CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode();
+  int len = bsCpText.GetLength() / sizeof(unsigned short);
+  if (wsText == NULL) {
+    *size = len;
+    return;
+  }
+
+  int real_size = len < *size ? len : *size;
+  if (real_size > 0) {
+    FXSYS_memcpy((void*)wsText,
+                 bsCpText.GetBuffer(real_size * sizeof(unsigned short)),
+                 real_size * sizeof(unsigned short));
+    bsCpText.ReleaseBuffer(real_size * sizeof(unsigned short));
+  }
+  *size = real_size;
+}
+DLLEXPORT void STDCALL FPDF_Widget_Cut(FPDF_DOCUMENT document,
+                                       FPDF_WIDGET hWidget,
+                                       FPDF_WIDESTRING wsText,
+                                       FPDF_DWORD* size) {
+  if (NULL == hWidget || NULL == document)
+    return;
+  CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
+  if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic &&
+      pDocument->GetDocType() != XFA_DOCTYPE_Static)
+    return;
+
+  IXFA_MenuHandler* pXFAMenuHander =
+      CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
+  if (pXFAMenuHander == NULL)
+    return;
+
+  CFX_WideString wsCpText;
+  pXFAMenuHander->Cut((IXFA_Widget*)hWidget, wsCpText);
+
+  CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode();
+  int len = bsCpText.GetLength() / sizeof(unsigned short);
+  if (wsText == NULL) {
+    *size = len;
+    return;
+  }
+
+  int real_size = len < *size ? len : *size;
+  if (real_size > 0) {
+    FXSYS_memcpy((void*)wsText,
+                 bsCpText.GetBuffer(real_size * sizeof(unsigned short)),
+                 real_size * sizeof(unsigned short));
+    bsCpText.ReleaseBuffer(real_size * sizeof(unsigned short));
+  }
+  *size = real_size;
+}
+DLLEXPORT void STDCALL FPDF_Widget_Paste(FPDF_DOCUMENT document,
+                                         FPDF_WIDGET hWidget,
+                                         FPDF_WIDESTRING wsText,
+                                         FPDF_DWORD size) {
+  if (NULL == hWidget || NULL == document)
+    return;
+
+  CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
+  if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic &&
+      pDocument->GetDocType() != XFA_DOCTYPE_Static)
+    return;
+
+  IXFA_MenuHandler* pXFAMenuHander =
+      CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
+  if (pXFAMenuHander == NULL)
+    return;
+
+  CFX_WideString wstr = CFX_WideString::FromUTF16LE(wsText, size);
+  pXFAMenuHander->Paste((IXFA_Widget*)hWidget, wstr);
+}
+DLLEXPORT void STDCALL
+FPDF_Widget_ReplaceSpellCheckWord(FPDF_DOCUMENT document,
+                                  FPDF_WIDGET hWidget,
+                                  float x,
+                                  float y,
+                                  FPDF_BYTESTRING bsText) {
+  if (NULL == hWidget || NULL == document)
+    return;
+
+  CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
+  if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic &&
+      pDocument->GetDocType() != XFA_DOCTYPE_Static)
+    return;
+
+  IXFA_MenuHandler* pXFAMenuHander =
+      CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
+  if (pXFAMenuHander == NULL)
+    return;
+
+  CFX_PointF ptPopup;
+  ptPopup.x = x;
+  ptPopup.y = y;
+  CFX_ByteStringC bs(bsText);
+  pXFAMenuHander->ReplaceSpellCheckWord((IXFA_Widget*)hWidget, ptPopup, bs);
+}
+DLLEXPORT void STDCALL
+FPDF_Widget_GetSpellCheckWords(FPDF_DOCUMENT document,
+                               FPDF_WIDGET hWidget,
+                               float x,
+                               float y,
+                               FPDF_STRINGHANDLE* stringHandle) {
+  if (NULL == hWidget || NULL == document)
+    return;
+
+  CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document;
+  if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic &&
+      pDocument->GetDocType() != XFA_DOCTYPE_Static)
+    return;
+
+  IXFA_MenuHandler* pXFAMenuHander =
+      CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler();
+  if (pXFAMenuHander == NULL)
+    return;
+
+  CFX_ByteStringArray* sSuggestWords = FX_NEW CFX_ByteStringArray;
+  CFX_PointF ptPopup;
+  ptPopup.x = x;
+  ptPopup.y = y;
+  pXFAMenuHander->GetSuggestWords((IXFA_Widget*)hWidget, ptPopup,
+                                  *sSuggestWords);
+  *stringHandle = (FPDF_STRINGHANDLE)sSuggestWords;
+}
+DLLEXPORT int STDCALL FPDF_StringHandleCounts(FPDF_STRINGHANDLE stringHandle) {
+  if (stringHandle == NULL)
+    return -1;
+  CFX_ByteStringArray* sSuggestWords = (CFX_ByteStringArray*)stringHandle;
+  return sSuggestWords->GetSize();
+}
+DLLEXPORT FPDF_BOOL STDCALL
+FPDF_StringHandleGetStringByIndex(FPDF_STRINGHANDLE stringHandle,
+                                  int index,
+                                  FPDF_BYTESTRING bsText,
+                                  FPDF_DWORD* size) {
+  if (stringHandle == NULL || size == NULL)
+    return FALSE;
+  int count = FPDF_StringHandleCounts(stringHandle);
+  if (index < 0 || index >= count)
+    return FALSE;
+
+  CFX_ByteStringArray sSuggestWords = *(CFX_ByteStringArray*)stringHandle;
+  int len = sSuggestWords[index].GetLength();
+
+  if (bsText == NULL) {
+    *size = len;
     return TRUE;
-}
-
-DLLEXPORT void STDCALL FPDF_SetFormFieldHighlightColor(FPDF_FORMHANDLE hHandle, int fieldType, unsigned long color)
-{
-    if (CPDFSDK_InterForm* pInterForm = FormHandleToInterForm(hHandle))
-        pInterForm->SetHighlightColor(color, fieldType);
-}
-
-DLLEXPORT void STDCALL FPDF_SetFormFieldHighlightAlpha(FPDF_FORMHANDLE hHandle, unsigned char alpha)
-{
-    if (CPDFSDK_InterForm* pInterForm = FormHandleToInterForm(hHandle))
-        pInterForm->SetHighlightAlpha(alpha);
-}
-
-DLLEXPORT void STDCALL FPDF_RemoveFormFieldHighlight(FPDF_FORMHANDLE hHandle)
-{
-    if (CPDFSDK_InterForm* pInterForm = FormHandleToInterForm(hHandle))
-        pInterForm->RemoveAllHighLight();
-}
-
-DLLEXPORT void STDCALL FORM_OnAfterLoadPage(FPDF_PAGE page, FPDF_FORMHANDLE hHandle)
-{
-    if (CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page))
-        pPageView->SetValid(TRUE);
-}
+  }
 
-DLLEXPORT void STDCALL FORM_OnBeforeClosePage(FPDF_PAGE page, FPDF_FORMHANDLE hHandle)
-{
-    if (!hHandle || !page)
-        return;
+  int real_size = len < *size ? len : *size;
+  if (real_size > 0)
+    FXSYS_memcpy((void*)bsText, (const FX_CHAR*)(sSuggestWords[index]),
+                 real_size);
+  *size = real_size;
 
-    CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument();
-    if (!pSDKDoc)
-        return;
-
-    CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
-    CPDFSDK_PageView* pPageView = pSDKDoc->GetPageView(pPage, FALSE);
-    if (pPageView)
-    {
-        pPageView->SetValid(FALSE);
-        // ReMovePageView() takes care of the delete for us.
-        pSDKDoc->ReMovePageView(pPage);
-    }
+  return TRUE;
 }
-
-DLLEXPORT void STDCALL FORM_DoDocumentJSAction(FPDF_FORMHANDLE hHandle)
-{
-    CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
-    if (pSDKDoc && ((CPDFDoc_Environment*)hHandle)->IsJSInitiated())
-        pSDKDoc->ProcJavascriptFun();
-}
-
-DLLEXPORT void STDCALL FORM_DoDocumentOpenAction(FPDF_FORMHANDLE hHandle)
-{
-    CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
-    if (pSDKDoc && ((CPDFDoc_Environment*)hHandle)->IsJSInitiated())
-        pSDKDoc->ProcOpenAction();
-}
-
-DLLEXPORT void STDCALL FORM_DoDocumentAAction(FPDF_FORMHANDLE hHandle, int aaType)
-{
-    CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
-    if (!pSDKDoc)
-        return;
-
-    CPDF_Document* pDoc = pSDKDoc->GetDocument()->GetPDFDoc();
-    CPDF_Dictionary* pDic = pDoc->GetRoot();
-    if (!pDic)
-        return;
-    CPDF_AAction aa = pDic->GetDict(FX_BSTRC("AA"));
-    if(aa.ActionExist((CPDF_AAction::AActionType)aaType))
-    {
-        CPDF_Action action = aa.GetAction((CPDF_AAction::AActionType)aaType);
-        CPDFSDK_ActionHandler *pActionHandler = ((CPDFDoc_Environment*)hHandle)->GetActionHander();
-        ASSERT(pActionHandler != NULL);
-        pActionHandler->DoAction_Document(action, (CPDF_AAction::AActionType)aaType, pSDKDoc);
-    }
-}
-
-DLLEXPORT void STDCALL FORM_DoPageAAction(FPDF_PAGE page, FPDF_FORMHANDLE hHandle, int aaType)
-{
-    if(!hHandle || !page)
-        return;
-    CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument();
-    CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
-    CPDFSDK_PageView* pPageView = pSDKDoc->GetPageView(pPage, FALSE);
-    if(pPageView)
-    {
-        CPDFDoc_Environment *pEnv = pSDKDoc->GetEnv();
-        CPDFSDK_ActionHandler *pActionHandler = pEnv->GetActionHander();
-        CPDF_Dictionary *pPageDict = pPage->GetPDFPage()->m_pFormDict;
-        CPDF_AAction aa = pPageDict->GetDict(FX_BSTRC("AA"));
-
-        FX_BOOL bExistOAAction = FALSE;
-        FX_BOOL bExistCAAction = FALSE;
-        if (FPDFPAGE_AACTION_OPEN == aaType)
-        {
-            bExistOAAction = aa.ActionExist(CPDF_AAction::OpenPage);
-            if (bExistOAAction)
-            {
-                CPDF_Action action = aa.GetAction(CPDF_AAction::OpenPage);
-                pActionHandler->DoAction_Page(action, CPDF_AAction::OpenPage, pSDKDoc);
-            }
-        }
-        else
-        {
-            bExistCAAction = aa.ActionExist(CPDF_AAction::ClosePage);
-            if (bExistCAAction)
-            {
-                CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage);
-                pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, pSDKDoc);
-            }
-        }
+DLLEXPORT void STDCALL
+FPDF_StringHandleRelease(FPDF_STRINGHANDLE stringHandle) {
+  if (stringHandle == NULL)
+    return;
+  CFX_ByteStringArray* sSuggestWords = (CFX_ByteStringArray*)stringHandle;
+  delete sSuggestWords;
+}
+
+DLLEXPORT FPDF_BOOL STDCALL
+FPDF_StringHandleAddString(FPDF_STRINGHANDLE stringHandle,
+                           FPDF_BYTESTRING bsText,
+                           FPDF_DWORD size) {
+  if (stringHandle == NULL || bsText == NULL || size <= 0)
+    return FALSE;
+
+  CFX_ByteStringArray* stringArr = (CFX_ByteStringArray*)stringHandle;
+  CFX_ByteString bsStr(bsText, size);
+
+  stringArr->Add(bsStr);
+  return TRUE;
+}
+
+DLLEXPORT void STDCALL FPDF_SetFormFieldHighlightColor(FPDF_FORMHANDLE hHandle,
+                                                       int fieldType,
+                                                       unsigned long color) {
+  if (CPDFSDK_InterForm* pInterForm = FormHandleToInterForm(hHandle))
+    pInterForm->SetHighlightColor(color, fieldType);
+}
+
+DLLEXPORT void STDCALL FPDF_SetFormFieldHighlightAlpha(FPDF_FORMHANDLE hHandle,
+                                                       unsigned char alpha) {
+  if (CPDFSDK_InterForm* pInterForm = FormHandleToInterForm(hHandle))
+    pInterForm->SetHighlightAlpha(alpha);
+}
+
+DLLEXPORT void STDCALL FPDF_RemoveFormFieldHighlight(FPDF_FORMHANDLE hHandle) {
+  if (CPDFSDK_InterForm* pInterForm = FormHandleToInterForm(hHandle))
+    pInterForm->RemoveAllHighLight();
+}
+
+DLLEXPORT void STDCALL FORM_OnAfterLoadPage(FPDF_PAGE page,
+                                            FPDF_FORMHANDLE hHandle) {
+  if (CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page))
+    pPageView->SetValid(TRUE);
+}
+
+DLLEXPORT void STDCALL FORM_OnBeforeClosePage(FPDF_PAGE page,
+                                              FPDF_FORMHANDLE hHandle) {
+  if (!hHandle || !page)
+    return;
+
+  CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument();
+  if (!pSDKDoc)
+    return;
+
+  CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
+  CPDFSDK_PageView* pPageView = pSDKDoc->GetPageView(pPage, FALSE);
+  if (pPageView) {
+    pPageView->SetValid(FALSE);
+    // ReMovePageView() takes care of the delete for us.
+    pSDKDoc->ReMovePageView(pPage);
+  }
+}
+
+DLLEXPORT void STDCALL FORM_DoDocumentJSAction(FPDF_FORMHANDLE hHandle) {
+  CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
+  if (pSDKDoc && ((CPDFDoc_Environment*)hHandle)->IsJSInitiated())
+    pSDKDoc->ProcJavascriptFun();
+}
+
+DLLEXPORT void STDCALL FORM_DoDocumentOpenAction(FPDF_FORMHANDLE hHandle) {
+  CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
+  if (pSDKDoc && ((CPDFDoc_Environment*)hHandle)->IsJSInitiated())
+    pSDKDoc->ProcOpenAction();
+}
+
+DLLEXPORT void STDCALL FORM_DoDocumentAAction(FPDF_FORMHANDLE hHandle,
+                                              int aaType) {
+  CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
+  if (!pSDKDoc)
+    return;
+
+  CPDF_Document* pDoc = pSDKDoc->GetDocument()->GetPDFDoc();
+  CPDF_Dictionary* pDic = pDoc->GetRoot();
+  if (!pDic)
+    return;
+  CPDF_AAction aa = pDic->GetDict(FX_BSTRC("AA"));
+  if (aa.ActionExist((CPDF_AAction::AActionType)aaType)) {
+    CPDF_Action action = aa.GetAction((CPDF_AAction::AActionType)aaType);
+    CPDFSDK_ActionHandler* pActionHandler =
+        ((CPDFDoc_Environment*)hHandle)->GetActionHander();
+    ASSERT(pActionHandler != NULL);
+    pActionHandler->DoAction_Document(action, (CPDF_AAction::AActionType)aaType,
+                                      pSDKDoc);
+  }
+}
+
+DLLEXPORT void STDCALL FORM_DoPageAAction(FPDF_PAGE page,
+                                          FPDF_FORMHANDLE hHandle,
+                                          int aaType) {
+  if (!hHandle || !page)
+    return;
+  CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument();
+  CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
+  CPDFSDK_PageView* pPageView = pSDKDoc->GetPageView(pPage, FALSE);
+  if (pPageView) {
+    CPDFDoc_Environment* pEnv = pSDKDoc->GetEnv();
+    CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander();
+    CPDF_Dictionary* pPageDict = pPage->GetPDFPage()->m_pFormDict;
+    CPDF_AAction aa = pPageDict->GetDict(FX_BSTRC("AA"));
+
+    FX_BOOL bExistOAAction = FALSE;
+    FX_BOOL bExistCAAction = FALSE;
+    if (FPDFPAGE_AACTION_OPEN == aaType) {
+      bExistOAAction = aa.ActionExist(CPDF_AAction::OpenPage);
+      if (bExistOAAction) {
+        CPDF_Action action = aa.GetAction(CPDF_AAction::OpenPage);
+        pActionHandler->DoAction_Page(action, CPDF_AAction::OpenPage, pSDKDoc);
+      }
+    } else {
+      bExistCAAction = aa.ActionExist(CPDF_AAction::ClosePage);
+      if (bExistCAAction) {
+        CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage);
+        pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, pSDKDoc);
+      }
     }
+  }
 }
diff --git a/fpdfsdk/src/fpdfformfill_embeddertest.cpp b/fpdfsdk/src/fpdfformfill_embeddertest.cpp
index 1c38770edb..6baad11531 100644
--- a/fpdfsdk/src/fpdfformfill_embeddertest.cpp
+++ b/fpdfsdk/src/fpdfformfill_embeddertest.cpp
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-
 #include "../../public/fpdf_formfill.h"
 #include "../../testing/embedder_test.h"
 #include "../../testing/embedder_test_mock_delegate.h"
@@ -13,8 +12,7 @@
 using testing::_;
 using testing::Return;
 
-class FPDFFormFillEmbeddertest : public EmbedderTest {
-};
+class FPDFFormFillEmbeddertest : public EmbedderTest {};
 
 TEST_F(FPDFFormFillEmbeddertest, FirstTest) {
   EmbedderTestMockDelegate mock;
diff --git a/fpdfsdk/src/fpdfppo.cpp b/fpdfsdk/src/fpdfppo.cpp
index 93766ee2cf..d3899156a2 100644
--- a/fpdfsdk/src/fpdfppo.cpp
+++ b/fpdfsdk/src/fpdfppo.cpp
@@ -8,455 +8,419 @@
 #include "../include/fsdk_define.h"
 #include "../include/fpdfxfa/fpdfxfa_doc.h"
 
-class CPDF_PageOrganizer
-{
-public:
-    CPDF_PageOrganizer();
-    ~CPDF_PageOrganizer();
-
-public:
-    FX_BOOL             PDFDocInit(CPDF_Document *pDestPDFDoc, CPDF_Document *pSrcPDFDoc);
-    FX_BOOL             ExportPage(CPDF_Document *pSrcPDFDoc, CFX_WordArray* nPageNum, CPDF_Document *pDestPDFDoc, int nIndex);
-    CPDF_Object*        PageDictGetInheritableTag(CPDF_Dictionary *pDict, CFX_ByteString nSrctag);
-    FX_BOOL             UpdateReference(CPDF_Object *pObj, CPDF_Document *pDoc, CFX_MapPtrToPtr* pMapPtrToPtr);
-    int                 GetNewObjId(CPDF_Document *pDoc, CFX_MapPtrToPtr* pMapPtrToPtr, CPDF_Reference *pRef);
-
+class CPDF_PageOrganizer {
+ public:
+  CPDF_PageOrganizer();
+  ~CPDF_PageOrganizer();
+
+ public:
+  FX_BOOL PDFDocInit(CPDF_Document* pDestPDFDoc, CPDF_Document* pSrcPDFDoc);
+  FX_BOOL ExportPage(CPDF_Document* pSrcPDFDoc,
+                     CFX_WordArray* nPageNum,
+                     CPDF_Document* pDestPDFDoc,
+                     int nIndex);
+  CPDF_Object* PageDictGetInheritableTag(CPDF_Dictionary* pDict,
+                                         CFX_ByteString nSrctag);
+  FX_BOOL UpdateReference(CPDF_Object* pObj,
+                          CPDF_Document* pDoc,
+                          CFX_MapPtrToPtr* pMapPtrToPtr);
+  int GetNewObjId(CPDF_Document* pDoc,
+                  CFX_MapPtrToPtr* pMapPtrToPtr,
+                  CPDF_Reference* pRef);
 };
 
+CPDF_PageOrganizer::CPDF_PageOrganizer() {}
 
-CPDF_PageOrganizer::CPDF_PageOrganizer()
-{
-
-}
-
-CPDF_PageOrganizer::~CPDF_PageOrganizer()
-{
-
-}
+CPDF_PageOrganizer::~CPDF_PageOrganizer() {}
 
-FX_BOOL CPDF_PageOrganizer::PDFDocInit(CPDF_Document *pDestPDFDoc, CPDF_Document *pSrcPDFDoc)
-{
-    if(!pDestPDFDoc || !pSrcPDFDoc)
-        return false;
+FX_BOOL CPDF_PageOrganizer::PDFDocInit(CPDF_Document* pDestPDFDoc,
+                                       CPDF_Document* pSrcPDFDoc) {
+  if (!pDestPDFDoc || !pSrcPDFDoc)
+    return false;
 
-    CPDF_Dictionary* pNewRoot = pDestPDFDoc->GetRoot();
-    if(!pNewRoot)   return FALSE;
+  CPDF_Dictionary* pNewRoot = pDestPDFDoc->GetRoot();
+  if (!pNewRoot)
+    return FALSE;
 
-    //Set the document information////////////////////////////////////////////
+  // Set the document information////////////////////////////////////////////
 
-    CPDF_Dictionary* DInfoDict = pDestPDFDoc->GetInfo();
+  CPDF_Dictionary* DInfoDict = pDestPDFDoc->GetInfo();
 
-    if(!DInfoDict)
-        return FALSE;
+  if (!DInfoDict)
+    return FALSE;
 
-    CFX_ByteString producerstr;
-    producerstr.Format("PDFium");
-    DInfoDict->SetAt("Producer", new CPDF_String(producerstr));
+  CFX_ByteString producerstr;
+  producerstr.Format("PDFium");
+  DInfoDict->SetAt("Producer", new CPDF_String(producerstr));
+
+  // Set type////////////////////////////////////////////////////////////////
+  CFX_ByteString cbRootType = pNewRoot->GetString("Type", "");
+  if (cbRootType.Equal("")) {
+    pNewRoot->SetAt("Type", new CPDF_Name("Catalog"));
+  }
+
+  CPDF_Dictionary* pNewPages =
+      (CPDF_Dictionary*)(pNewRoot->GetElement("Pages")
+                             ? pNewRoot->GetElement("Pages")->GetDirect()
+                             : NULL);
+  if (!pNewPages) {
+    pNewPages = new CPDF_Dictionary;
+    FX_DWORD NewPagesON = pDestPDFDoc->AddIndirectObject(pNewPages);
+    pNewRoot->SetAt("Pages", new CPDF_Reference(pDestPDFDoc, NewPagesON));
+  }
+
+  CFX_ByteString cbPageType = pNewPages->GetString("Type", "");
+  if (cbPageType.Equal("")) {
+    pNewPages->SetAt("Type", new CPDF_Name("Pages"));
+  }
+
+  CPDF_Array* pKeysArray = pNewPages->GetArray("Kids");
+  if (pKeysArray == NULL) {
+    CPDF_Array* pNewKids = new CPDF_Array;
+    FX_DWORD Kidsobjnum = -1;
+    Kidsobjnum =
+        pDestPDFDoc->AddIndirectObject(pNewKids);  //, Kidsobjnum, Kidsgennum);
+
+    pNewPages->SetAt(
+        "Kids", new CPDF_Reference(pDestPDFDoc, Kidsobjnum));  //, Kidsgennum));
+    pNewPages->SetAt("Count", new CPDF_Number(0));
+  }
+
+  return true;
+}
 
-    //Set type////////////////////////////////////////////////////////////////
-    CFX_ByteString cbRootType = pNewRoot->GetString("Type","");
-    if( cbRootType.Equal("") )
-    {
-        pNewRoot->SetAt("Type", new CPDF_Name("Catalog"));
+FX_BOOL CPDF_PageOrganizer::ExportPage(CPDF_Document* pSrcPDFDoc,
+                                       CFX_WordArray* nPageNum,
+                                       CPDF_Document* pDestPDFDoc,
+                                       int nIndex) {
+  int curpage = nIndex;
+
+  CFX_MapPtrToPtr* pMapPtrToPtr = new CFX_MapPtrToPtr;
+  pMapPtrToPtr->InitHashTable(1001);
+
+  for (int i = 0; i < nPageNum->GetSize(); i++) {
+    CPDF_Dictionary* pCurPageDict = pDestPDFDoc->CreateNewPage(curpage);
+    CPDF_Dictionary* pSrcPageDict = pSrcPDFDoc->GetPage(nPageNum->GetAt(i) - 1);
+    if (!pSrcPageDict || !pCurPageDict) {
+      delete pMapPtrToPtr;
+      return FALSE;
     }
 
-    CPDF_Dictionary* pNewPages = (CPDF_Dictionary*)(pNewRoot->GetElement("Pages")? pNewRoot->GetElement("Pages")->GetDirect() : NULL);
-    if(!pNewPages)
-    {
-        pNewPages = new CPDF_Dictionary;
-        FX_DWORD NewPagesON = pDestPDFDoc->AddIndirectObject(pNewPages);
-        pNewRoot->SetAt("Pages", new CPDF_Reference(pDestPDFDoc, NewPagesON));
+    // Clone the page dictionary///////////
+    FX_POSITION SrcPos = pSrcPageDict->GetStartPos();
+    while (SrcPos) {
+      CFX_ByteString cbSrcKeyStr;
+      CPDF_Object* pObj = pSrcPageDict->GetNextElement(SrcPos, cbSrcKeyStr);
+      if (cbSrcKeyStr.Compare(("Type")) && cbSrcKeyStr.Compare(("Parent"))) {
+        if (pCurPageDict->KeyExist(cbSrcKeyStr))
+          pCurPageDict->RemoveAt(cbSrcKeyStr);
+        pCurPageDict->SetAt(cbSrcKeyStr, pObj->Clone());
+      }
     }
 
-    CFX_ByteString cbPageType = pNewPages->GetString("Type","");
-    if(cbPageType.Equal(""))
-    {
-        pNewPages->SetAt("Type", new CPDF_Name("Pages"));
+    // inheritable item///////////////////////
+    CPDF_Object* pInheritable = NULL;
+    // 1 MediaBox  //required
+    if (!pCurPageDict->KeyExist("MediaBox")) {
+      pInheritable = PageDictGetInheritableTag(pSrcPageDict, "MediaBox");
+      if (!pInheritable) {
+        // Search the "CropBox" from source page dictionary, if not exists,we
+        // take the letter size.
+        pInheritable = PageDictGetInheritableTag(pSrcPageDict, "CropBox");
+        if (pInheritable)
+          pCurPageDict->SetAt("MediaBox", pInheritable->Clone());
+        else {
+          // Make the default size to be letter size (8.5'x11')
+          CPDF_Array* pArray = new CPDF_Array;
+          pArray->AddNumber(0);
+          pArray->AddNumber(0);
+          pArray->AddNumber(612);
+          pArray->AddNumber(792);
+          pCurPageDict->SetAt("MediaBox", pArray);
+        }
+      } else
+        pCurPageDict->SetAt("MediaBox", pInheritable->Clone());
     }
-
-    CPDF_Array* pKeysArray = pNewPages->GetArray("Kids");
-    if(pKeysArray == NULL)
-    {
-        CPDF_Array* pNewKids = new CPDF_Array;
-        FX_DWORD Kidsobjnum = -1;
-        Kidsobjnum = pDestPDFDoc->AddIndirectObject(pNewKids);//, Kidsobjnum, Kidsgennum);
-
-        pNewPages->SetAt("Kids", new CPDF_Reference(pDestPDFDoc, Kidsobjnum));//, Kidsgennum));
-        pNewPages->SetAt("Count", new CPDF_Number(0));
+    // 2 Resources //required
+    if (!pCurPageDict->KeyExist("Resources")) {
+      pInheritable = PageDictGetInheritableTag(pSrcPageDict, "Resources");
+      if (!pInheritable) {
+        delete pMapPtrToPtr;
+        return FALSE;
+      }
+      pCurPageDict->SetAt("Resources", pInheritable->Clone());
+    }
+    // 3 CropBox  //Optional
+    if (!pCurPageDict->KeyExist("CropBox")) {
+      pInheritable = PageDictGetInheritableTag(pSrcPageDict, "CropBox");
+      if (pInheritable)
+        pCurPageDict->SetAt("CropBox", pInheritable->Clone());
+    }
+    // 4 Rotate  //Optional
+    if (!pCurPageDict->KeyExist("Rotate")) {
+      pInheritable = PageDictGetInheritableTag(pSrcPageDict, "Rotate");
+      if (pInheritable)
+        pCurPageDict->SetAt("Rotate", pInheritable->Clone());
     }
 
-    return true;
-}
-
-FX_BOOL CPDF_PageOrganizer::ExportPage(CPDF_Document *pSrcPDFDoc, CFX_WordArray* nPageNum,
-                                                CPDF_Document *pDestPDFDoc,int nIndex)
-{
-    int curpage =nIndex;
-
-    CFX_MapPtrToPtr* pMapPtrToPtr = new CFX_MapPtrToPtr;
-    pMapPtrToPtr->InitHashTable(1001);
+    /////////////////////////////////////////////
+    // Update the reference
+    FX_DWORD dwOldPageObj = pSrcPageDict->GetObjNum();
+    FX_DWORD dwNewPageObj = pCurPageDict->GetObjNum();
 
-    for(int i=0; i<nPageNum->GetSize(); i++)
-    {
+    pMapPtrToPtr->SetAt((void*)(uintptr_t)dwOldPageObj,
+                        (void*)(uintptr_t)dwNewPageObj);
 
-        CPDF_Dictionary* pCurPageDict = pDestPDFDoc->CreateNewPage(curpage);
-        CPDF_Dictionary* pSrcPageDict = pSrcPDFDoc->GetPage(nPageNum->GetAt(i)-1);
-        if(!pSrcPageDict || !pCurPageDict)
-        {
-            delete pMapPtrToPtr;
-            return FALSE;
-        }
+    UpdateReference(pCurPageDict, pDestPDFDoc, pMapPtrToPtr);
+    curpage++;
+  }
 
-        // Clone the page dictionary///////////
-        FX_POSITION SrcPos = pSrcPageDict->GetStartPos();
-        while (SrcPos)
-        {
-            CFX_ByteString cbSrcKeyStr;
-            CPDF_Object* pObj = pSrcPageDict->GetNextElement(SrcPos, cbSrcKeyStr);
-            if(cbSrcKeyStr.Compare(("Type")) && cbSrcKeyStr.Compare(("Parent")))
-            {
-                if(pCurPageDict->KeyExist(cbSrcKeyStr))
-                    pCurPageDict->RemoveAt(cbSrcKeyStr);
-                pCurPageDict->SetAt(cbSrcKeyStr, pObj->Clone());
-            }
-        }
+  delete pMapPtrToPtr;
+  return TRUE;
+}
 
-        //inheritable item///////////////////////
-        CPDF_Object* pInheritable = NULL;
-        //1 MediaBox  //required
-        if(!pCurPageDict->KeyExist("MediaBox"))
-        {
-
-            pInheritable = PageDictGetInheritableTag(pSrcPageDict, "MediaBox");
-            if(!pInheritable)
-            {
-                //Search the "CropBox" from source page dictionary, if not exists,we take the letter size.
-                pInheritable = PageDictGetInheritableTag(pSrcPageDict, "CropBox");
-                if(pInheritable)
-                    pCurPageDict->SetAt("MediaBox", pInheritable->Clone());
-                else
-                {
-                    //Make the default size to be letter size (8.5'x11')
-                    CPDF_Array* pArray = new CPDF_Array;
-                    pArray->AddNumber(0);
-                    pArray->AddNumber(0);
-                    pArray->AddNumber(612);
-                    pArray->AddNumber(792);
-                    pCurPageDict->SetAt("MediaBox", pArray);
-                }
-            }
-            else
-                pCurPageDict->SetAt("MediaBox", pInheritable->Clone());
-        }
-        //2 Resources //required
-        if(!pCurPageDict->KeyExist("Resources"))
-        {
-            pInheritable = PageDictGetInheritableTag(pSrcPageDict, "Resources");
-            if(!pInheritable)
-            {
-                delete pMapPtrToPtr;
-                return FALSE;
-            }
-            pCurPageDict->SetAt("Resources", pInheritable->Clone());
-        }
-        //3 CropBox  //Optional
-        if(!pCurPageDict->KeyExist("CropBox"))
-        {
-            pInheritable = PageDictGetInheritableTag(pSrcPageDict, "CropBox");
-            if(pInheritable)
-                pCurPageDict->SetAt("CropBox", pInheritable->Clone());
-        }
-        //4 Rotate  //Optional
-        if(!pCurPageDict->KeyExist("Rotate"))
-        {
-            pInheritable = PageDictGetInheritableTag(pSrcPageDict, "Rotate");
-            if(pInheritable)
-                pCurPageDict->SetAt("Rotate", pInheritable->Clone());
-        }
+CPDF_Object* CPDF_PageOrganizer::PageDictGetInheritableTag(
+    CPDF_Dictionary* pDict,
+    CFX_ByteString nSrctag) {
+  if (!pDict || !pDict->KeyExist("Type") || nSrctag.IsEmpty())
+    return NULL;
 
-        /////////////////////////////////////////////
-        //Update the reference
-        FX_DWORD dwOldPageObj = pSrcPageDict->GetObjNum();
-        FX_DWORD dwNewPageObj = pCurPageDict->GetObjNum();
+  CPDF_Object* pType = pDict->GetElement("Type")->GetDirect();
+  if (!pType || pType->GetType() != PDFOBJ_NAME)
+    return NULL;
 
-        pMapPtrToPtr->SetAt((void*)(uintptr_t)dwOldPageObj, (void*)(uintptr_t)dwNewPageObj);
+  if (pType->GetString().Compare("Page"))
+    return NULL;
 
-        UpdateReference(pCurPageDict, pDestPDFDoc, pMapPtrToPtr);
-        curpage++;
-    }
+  if (!pDict->KeyExist("Parent"))
+    return NULL;
+  CPDF_Object* pParent = pDict->GetElement("Parent")->GetDirect();
+  if (!pParent || pParent->GetType() != PDFOBJ_DICTIONARY)
+    return NULL;
 
-    delete pMapPtrToPtr;
-    return TRUE;
+  CPDF_Dictionary* pp = (CPDF_Dictionary*)pParent;
+
+  if (pDict->KeyExist((const char*)nSrctag))
+    return pDict->GetElement((const char*)nSrctag);
+  while (pp) {
+    if (pp->KeyExist((const char*)nSrctag))
+      return pp->GetElement((const char*)nSrctag);
+    if (pp->KeyExist("Parent")) {
+      pp = (CPDF_Dictionary*)pp->GetElement("Parent")->GetDirect();
+      if (pp->GetType() == PDFOBJ_NULL)
+        break;
+    } else
+      break;
+  }
+
+  return NULL;
 }
 
-CPDF_Object* CPDF_PageOrganizer::PageDictGetInheritableTag(CPDF_Dictionary *pDict, CFX_ByteString nSrctag)
-{
-    if(!pDict || !pDict->KeyExist("Type") || nSrctag.IsEmpty())
-        return NULL;
-
-    CPDF_Object* pType = pDict->GetElement("Type")->GetDirect();
-    if(!pType || pType->GetType() != PDFOBJ_NAME)   return NULL;
-
-    if(pType->GetString().Compare("Page"))  return NULL;
-
-    if(!pDict->KeyExist("Parent"))  return NULL;
-    CPDF_Object* pParent = pDict->GetElement("Parent")->GetDirect();
-    if(!pParent || pParent->GetType() != PDFOBJ_DICTIONARY) return NULL;
-
-    CPDF_Dictionary* pp = (CPDF_Dictionary*)pParent;
-
-    if(pDict->KeyExist((const char*)nSrctag))
-        return pDict->GetElement((const char*)nSrctag);
-    while (pp)
-    {
-        if (pp->KeyExist((const char*)nSrctag))
-            return pp->GetElement((const char*)nSrctag);
-        if (pp->KeyExist("Parent"))
-        {
-            pp = (CPDF_Dictionary*)pp->GetElement("Parent")->GetDirect();
-            if (pp->GetType() == PDFOBJ_NULL)
-                break;
-        }
-        else
-            break;
+FX_BOOL CPDF_PageOrganizer::UpdateReference(CPDF_Object* pObj,
+                                            CPDF_Document* pDoc,
+                                            CFX_MapPtrToPtr* pMapPtrToPtr) {
+  switch (pObj->GetType()) {
+    case PDFOBJ_REFERENCE: {
+      CPDF_Reference* pReference = (CPDF_Reference*)pObj;
+      int newobjnum = GetNewObjId(pDoc, pMapPtrToPtr, pReference);
+      if (newobjnum == 0)
+        return FALSE;
+      pReference->SetRef(pDoc, newobjnum);  //, 0);
+      break;
     }
-
-    return NULL;
-}
-
-FX_BOOL CPDF_PageOrganizer::UpdateReference(CPDF_Object *pObj, CPDF_Document *pDoc,
-                                         CFX_MapPtrToPtr* pMapPtrToPtr)
-{
-    switch (pObj->GetType())
-    {
-    case PDFOBJ_REFERENCE:
-        {
-            CPDF_Reference* pReference = (CPDF_Reference*)pObj;
-            int newobjnum = GetNewObjId(pDoc, pMapPtrToPtr, pReference);
-            if (newobjnum == 0) return FALSE;
-            pReference->SetRef(pDoc, newobjnum);//, 0);
-            break;
-        }
-    case PDFOBJ_DICTIONARY:
-        {
-            CPDF_Dictionary* pDict = (CPDF_Dictionary*)pObj;
-
-            FX_POSITION pos = pDict->GetStartPos();
-            while(pos)
-            {
-                CFX_ByteString key("");
-                CPDF_Object* pNextObj = pDict->GetNextElement(pos, key);
-                if (!FXSYS_strcmp(key, "Parent") || !FXSYS_strcmp(key, "Prev") || !FXSYS_strcmp(key, "First"))
-                    continue;
-                if(pNextObj)
-                {
-                    if(!UpdateReference(pNextObj, pDoc, pMapPtrToPtr))
-                        pDict->RemoveAt(key);
-                }
-                else
-                    return FALSE;
-            }
-            break;
-        }
-    case    PDFOBJ_ARRAY:
-        {
-            CPDF_Array* pArray = (CPDF_Array*)pObj;
-            FX_DWORD count = pArray->GetCount();
-            for(FX_DWORD i = 0; i < count; i ++)
-            {
-                CPDF_Object* pNextObj = pArray->GetElement(i);
-                if(pNextObj)
-                {
-                    if(!UpdateReference(pNextObj, pDoc, pMapPtrToPtr))
-                        return FALSE;
-                }
-                else
-                    return FALSE;
-            }
-            break;
-        }
-    case    PDFOBJ_STREAM:
-        {
-            CPDF_Stream* pStream = (CPDF_Stream*)pObj;
-            CPDF_Dictionary* pDict = pStream->GetDict();
-            if(pDict)
-            {
-                if(!UpdateReference(pDict, pDoc, pMapPtrToPtr))
-                    return FALSE;
-            }
-            else
-                return FALSE;
-            break;
-        }
-    default:    break;
+    case PDFOBJ_DICTIONARY: {
+      CPDF_Dictionary* pDict = (CPDF_Dictionary*)pObj;
+
+      FX_POSITION pos = pDict->GetStartPos();
+      while (pos) {
+        CFX_ByteString key("");
+        CPDF_Object* pNextObj = pDict->GetNextElement(pos, key);
+        if (!FXSYS_strcmp(key, "Parent") || !FXSYS_strcmp(key, "Prev") ||
+            !FXSYS_strcmp(key, "First"))
+          continue;
+        if (pNextObj) {
+          if (!UpdateReference(pNextObj, pDoc, pMapPtrToPtr))
+            pDict->RemoveAt(key);
+        } else
+          return FALSE;
+      }
+      break;
     }
-
-    return TRUE;
-}
-
-int CPDF_PageOrganizer::GetNewObjId(CPDF_Document *pDoc, CFX_MapPtrToPtr* pMapPtrToPtr,
-                                    CPDF_Reference *pRef)
-{
-    if(!pRef)
-        return 0;
-
-    size_t dwObjnum = pRef->GetRefObjNum();
-    size_t dwNewObjNum = 0;
-
-    pMapPtrToPtr->Lookup((void*)dwObjnum, (void*&)dwNewObjNum);
-    if(dwNewObjNum)
-    {
-        return (int)dwNewObjNum;
+    case PDFOBJ_ARRAY: {
+      CPDF_Array* pArray = (CPDF_Array*)pObj;
+      FX_DWORD count = pArray->GetCount();
+      for (FX_DWORD i = 0; i < count; i++) {
+        CPDF_Object* pNextObj = pArray->GetElement(i);
+        if (pNextObj) {
+          if (!UpdateReference(pNextObj, pDoc, pMapPtrToPtr))
+            return FALSE;
+        } else
+          return FALSE;
+      }
+      break;
     }
-
-    CPDF_Object* pDirect = pRef->GetDirect();
-    if(!pDirect)
-    {
-        return 0;
+    case PDFOBJ_STREAM: {
+      CPDF_Stream* pStream = (CPDF_Stream*)pObj;
+      CPDF_Dictionary* pDict = pStream->GetDict();
+      if (pDict) {
+        if (!UpdateReference(pDict, pDoc, pMapPtrToPtr))
+          return FALSE;
+      } else
+        return FALSE;
+      break;
     }
+    default:
+      break;
+  }
 
-    CPDF_Object* pClone = pDirect->Clone();
-    if(!pClone)
-    {
-        return 0;
-    }
+  return TRUE;
+}
 
-    if(pClone->GetType() == PDFOBJ_DICTIONARY)
-    {
-        CPDF_Dictionary* pDictClone = (CPDF_Dictionary*)pClone;
-        if(pDictClone->KeyExist("Type"))
-        {
-            CFX_ByteString strType = pDictClone->GetString("Type");
-            if(!FXSYS_stricmp(strType, "Pages"))
-            {
-                pDictClone->Release();
-                return 4;
-            }
-            else if(!FXSYS_stricmp(strType, "Page"))
-            {
-                pDictClone->Release();
-                return  0;
-            }
-        }
-    }
+int CPDF_PageOrganizer::GetNewObjId(CPDF_Document* pDoc,
+                                    CFX_MapPtrToPtr* pMapPtrToPtr,
+                                    CPDF_Reference* pRef) {
+  if (!pRef)
+    return 0;
 
-    dwNewObjNum = pDoc->AddIndirectObject(pClone);
-    pMapPtrToPtr->SetAt((void*)dwObjnum, (void*)dwNewObjNum);
-    if(!UpdateReference(pClone, pDoc, pMapPtrToPtr))
-    {
-        pClone->Release();
+  size_t dwObjnum = pRef->GetRefObjNum();
+  size_t dwNewObjNum = 0;
+
+  pMapPtrToPtr->Lookup((void*)dwObjnum, (void*&)dwNewObjNum);
+  if (dwNewObjNum) {
+    return (int)dwNewObjNum;
+  }
+
+  CPDF_Object* pDirect = pRef->GetDirect();
+  if (!pDirect) {
+    return 0;
+  }
+
+  CPDF_Object* pClone = pDirect->Clone();
+  if (!pClone) {
+    return 0;
+  }
+
+  if (pClone->GetType() == PDFOBJ_DICTIONARY) {
+    CPDF_Dictionary* pDictClone = (CPDF_Dictionary*)pClone;
+    if (pDictClone->KeyExist("Type")) {
+      CFX_ByteString strType = pDictClone->GetString("Type");
+      if (!FXSYS_stricmp(strType, "Pages")) {
+        pDictClone->Release();
+        return 4;
+      } else if (!FXSYS_stricmp(strType, "Page")) {
+        pDictClone->Release();
         return 0;
+      }
     }
+  }
 
-    return (int)dwNewObjNum;
-}
+  dwNewObjNum = pDoc->AddIndirectObject(pClone);
+  pMapPtrToPtr->SetAt((void*)dwObjnum, (void*)dwNewObjNum);
+  if (!UpdateReference(pClone, pDoc, pMapPtrToPtr)) {
+    pClone->Release();
+    return 0;
+  }
 
-FPDF_BOOL ParserPageRangeString(CFX_ByteString rangstring, CFX_WordArray* pageArray,int nCount)
-{
-    if(rangstring.GetLength() != 0)
-    {
-        rangstring.Remove(' ');
-        int nLength = rangstring.GetLength();
-        CFX_ByteString cbCompareString("0123456789-,");
-        for(int i=0; i<nLength; i++)
-        {
-            if(cbCompareString.Find(rangstring[i]) == -1)
-                return FALSE;
-        }
-        CFX_ByteString cbMidRange;
-        int nStringFrom = 0;
-        int nStringTo=0;
-        while(nStringTo < nLength)
-        {
-            nStringTo = rangstring.Find(',',nStringFrom);
-            if(nStringTo == -1)
-            {
-                nStringTo = nLength;
-            }
-            cbMidRange = rangstring.Mid(nStringFrom,nStringTo-nStringFrom);
-
-            int nMid = cbMidRange.Find('-');
-            if(nMid == -1)
-            {
-                long lPageNum = atol(cbMidRange);
-                if(lPageNum <= 0 || lPageNum > nCount)
-                    return FALSE;
-
-                pageArray->Add((FX_WORD)lPageNum);
-            }
-            else
-            {
-                int nStartPageNum = atol(cbMidRange.Mid(0,nMid));
-                if (nStartPageNum ==0)
-                    return FALSE;
-
-                nMid = nMid+1;
-                int nEnd = cbMidRange.GetLength()-nMid;
-                if (nEnd ==0)
-                    return FALSE;
-
-                int nEndPageNum = atol(cbMidRange.Mid(nMid,nEnd));
-                if (nStartPageNum < 0 ||nStartPageNum >nEndPageNum|| nEndPageNum > nCount)
-                    return FALSE;
-
-                for (int nIndex = nStartPageNum; nIndex <= nEndPageNum; ++nIndex)
-                    pageArray->Add(nIndex);
-            }
-            nStringFrom = nStringTo + 1;
-        }
-    }
-    return TRUE;
+  return (int)dwNewObjNum;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDF_ImportPages(FPDF_DOCUMENT dest_doc,FPDF_DOCUMENT src_doc,
-                                             FPDF_BYTESTRING pagerange, int index)
-{
-    if(dest_doc == NULL || src_doc == NULL )
+FPDF_BOOL ParserPageRangeString(CFX_ByteString rangstring,
+                                CFX_WordArray* pageArray,
+                                int nCount) {
+  if (rangstring.GetLength() != 0) {
+    rangstring.Remove(' ');
+    int nLength = rangstring.GetLength();
+    CFX_ByteString cbCompareString("0123456789-,");
+    for (int i = 0; i < nLength; i++) {
+      if (cbCompareString.Find(rangstring[i]) == -1)
         return FALSE;
-    CFX_WordArray pageArray;
-    CPDFXFA_Document* pSrcDoc = (CPDFXFA_Document*)src_doc;
-    CPDF_Document* pSrcPDFDoc = pSrcDoc->GetPDFDoc();
-    int nCount = pSrcPDFDoc->GetPageCount();
-    if(pagerange)
-    {
-        if(ParserPageRangeString(pagerange,&pageArray,nCount) == FALSE)
-            return FALSE;
     }
-    else
-    {
-        for(int i=1; i<=nCount; i++)
-        {
-            pageArray.Add(i);
-        }
+    CFX_ByteString cbMidRange;
+    int nStringFrom = 0;
+    int nStringTo = 0;
+    while (nStringTo < nLength) {
+      nStringTo = rangstring.Find(',', nStringFrom);
+      if (nStringTo == -1) {
+        nStringTo = nLength;
+      }
+      cbMidRange = rangstring.Mid(nStringFrom, nStringTo - nStringFrom);
+
+      int nMid = cbMidRange.Find('-');
+      if (nMid == -1) {
+        long lPageNum = atol(cbMidRange);
+        if (lPageNum <= 0 || lPageNum > nCount)
+          return FALSE;
+
+        pageArray->Add((FX_WORD)lPageNum);
+      } else {
+        int nStartPageNum = atol(cbMidRange.Mid(0, nMid));
+        if (nStartPageNum == 0)
+          return FALSE;
+
+        nMid = nMid + 1;
+        int nEnd = cbMidRange.GetLength() - nMid;
+        if (nEnd == 0)
+          return FALSE;
+
+        int nEndPageNum = atol(cbMidRange.Mid(nMid, nEnd));
+        if (nStartPageNum < 0 || nStartPageNum > nEndPageNum ||
+            nEndPageNum > nCount)
+          return FALSE;
+
+        for (int nIndex = nStartPageNum; nIndex <= nEndPageNum; ++nIndex)
+          pageArray->Add(nIndex);
+      }
+      nStringFrom = nStringTo + 1;
     }
+  }
+  return TRUE;
+}
 
-    CPDFXFA_Document* pDestDoc = (CPDFXFA_Document*)dest_doc;
-    CPDF_Document* pDestPDFDoc = pDestDoc->GetPDFDoc();
-    CPDF_PageOrganizer pageOrg;
+DLLEXPORT FPDF_BOOL STDCALL FPDF_ImportPages(FPDF_DOCUMENT dest_doc,
+                                             FPDF_DOCUMENT src_doc,
+                                             FPDF_BYTESTRING pagerange,
+                                             int index) {
+  if (dest_doc == NULL || src_doc == NULL)
+    return FALSE;
+  CFX_WordArray pageArray;
+  CPDFXFA_Document* pSrcDoc = (CPDFXFA_Document*)src_doc;
+  CPDF_Document* pSrcPDFDoc = pSrcDoc->GetPDFDoc();
+  int nCount = pSrcPDFDoc->GetPageCount();
+  if (pagerange) {
+    if (ParserPageRangeString(pagerange, &pageArray, nCount) == FALSE)
+      return FALSE;
+  } else {
+    for (int i = 1; i <= nCount; i++) {
+      pageArray.Add(i);
+    }
+  }
 
-    pageOrg.PDFDocInit(pDestPDFDoc,pSrcPDFDoc);
+  CPDFXFA_Document* pDestDoc = (CPDFXFA_Document*)dest_doc;
+  CPDF_Document* pDestPDFDoc = pDestDoc->GetPDFDoc();
+  CPDF_PageOrganizer pageOrg;
 
-    if(pageOrg.ExportPage(pSrcPDFDoc,&pageArray,pDestPDFDoc,index))
-        return TRUE;
-    return FALSE;
-}
+  pageOrg.PDFDocInit(pDestPDFDoc, pSrcPDFDoc);
 
-DLLEXPORT FPDF_BOOL STDCALL FPDF_CopyViewerPreferences(FPDF_DOCUMENT dest_doc, FPDF_DOCUMENT src_doc)
-{
-    if(src_doc == NULL || dest_doc == NULL)
-        return false;
-    CPDFXFA_Document* pSrcDoc = (CPDFXFA_Document*)src_doc;
-    CPDF_Document* pSrcPDFDoc = pSrcDoc->GetPDFDoc();
-    CPDF_Dictionary* pSrcDict = pSrcPDFDoc->GetRoot();
-    pSrcDict = pSrcDict->GetDict(FX_BSTRC("ViewerPreferences"));
-    if(!pSrcDict)
-        return FALSE;
-    CPDFXFA_Document* pDstDoc = (CPDFXFA_Document*)dest_doc;
-    CPDF_Document* pDstPDFDoc = pDstDoc->GetPDFDoc();
-    CPDF_Dictionary* pDstDict = pDstPDFDoc->GetRoot();
-    if(!pDstDict)
-        return FALSE;
-    pDstDict->SetAt(FX_BSTRC("ViewerPreferences"), pSrcDict->Clone(TRUE));
+  if (pageOrg.ExportPage(pSrcPDFDoc, &pageArray, pDestPDFDoc, index))
     return TRUE;
+  return FALSE;
 }
 
+DLLEXPORT FPDF_BOOL STDCALL FPDF_CopyViewerPreferences(FPDF_DOCUMENT dest_doc,
+                                                       FPDF_DOCUMENT src_doc) {
+  if (src_doc == NULL || dest_doc == NULL)
+    return false;
+  CPDFXFA_Document* pSrcDoc = (CPDFXFA_Document*)src_doc;
+  CPDF_Document* pSrcPDFDoc = pSrcDoc->GetPDFDoc();
+  CPDF_Dictionary* pSrcDict = pSrcPDFDoc->GetRoot();
+  pSrcDict = pSrcDict->GetDict(FX_BSTRC("ViewerPreferences"));
+  if (!pSrcDict)
+    return FALSE;
+  CPDFXFA_Document* pDstDoc = (CPDFXFA_Document*)dest_doc;
+  CPDF_Document* pDstPDFDoc = pDstDoc->GetPDFDoc();
+  CPDF_Dictionary* pDstDict = pDstPDFDoc->GetRoot();
+  if (!pDstDict)
+    return FALSE;
+  pDstDict->SetAt(FX_BSTRC("ViewerPreferences"), pSrcDict->Clone(TRUE));
+  return TRUE;
+}
diff --git a/fpdfsdk/src/fpdfsave.cpp b/fpdfsdk/src/fpdfsave.cpp
index bea5392670..14f73095fa 100644
--- a/fpdfsdk/src/fpdfsave.cpp
+++ b/fpdfsdk/src/fpdfsave.cpp
@@ -18,339 +18,320 @@
 #include <ctime>
 #endif
 
-class CFX_IFileWrite final : public IFX_StreamWrite
-{
+class CFX_IFileWrite final : public IFX_StreamWrite {
+ public:
+  CFX_IFileWrite();
+  FX_BOOL Init(FPDF_FILEWRITE* pFileWriteStruct);
+  virtual FX_BOOL WriteBlock(const void* pData, size_t size) override;
+  virtual void Release() override {}
+
+ protected:
+  FPDF_FILEWRITE* m_pFileWriteStruct;
+};
 
-public:
-    CFX_IFileWrite();
-    FX_BOOL             Init( FPDF_FILEWRITE * pFileWriteStruct );
-    virtual FX_BOOL     WriteBlock(const void* pData, size_t size) override;
-    virtual void        Release() override {}
+CFX_IFileWrite::CFX_IFileWrite() {
+  m_pFileWriteStruct = NULL;
+}
 
-protected:
-    FPDF_FILEWRITE*     m_pFileWriteStruct;
-};
+FX_BOOL CFX_IFileWrite::Init(FPDF_FILEWRITE* pFileWriteStruct) {
+  if (!pFileWriteStruct)
+    return FALSE;
 
-CFX_IFileWrite::CFX_IFileWrite()
-{
-    m_pFileWriteStruct = NULL;
+  m_pFileWriteStruct = pFileWriteStruct;
+  return TRUE;
 }
 
-FX_BOOL CFX_IFileWrite::Init( FPDF_FILEWRITE * pFileWriteStruct )
-{
-    if (!pFileWriteStruct)
-        return FALSE;
+FX_BOOL CFX_IFileWrite::WriteBlock(const void* pData, size_t size) {
+  if (!m_pFileWriteStruct)
+    return FALSE;
 
-    m_pFileWriteStruct = pFileWriteStruct;
-    return TRUE;
+  m_pFileWriteStruct->WriteBlock(m_pFileWriteStruct, pData, size);
+  return TRUE;
 }
 
-FX_BOOL CFX_IFileWrite::WriteBlock(const void* pData, size_t size)
-{
-    if (!m_pFileWriteStruct)
-        return FALSE;
+#define XFA_DATASETS 0
+#define XFA_FORMS 1
 
-    m_pFileWriteStruct->WriteBlock( m_pFileWriteStruct, pData, size );
+FX_BOOL _SaveXFADocumentData(CPDFXFA_Document* pDocument,
+                             CFX_PtrArray& fileList) {
+  if (!pDocument)
+    return FALSE;
+  if (pDocument->GetDocType() != DOCTYPE_DYNIMIC_XFA &&
+      pDocument->GetDocType() != DOCTYPE_STATIC_XFA)
+    return TRUE;
+  if (!CPDFXFA_App::GetInstance()->GetXFAApp())
     return TRUE;
-}
 
-#define  XFA_DATASETS 0
-#define  XFA_FORMS    1
-
-FX_BOOL _SaveXFADocumentData(CPDFXFA_Document* pDocument, CFX_PtrArray& fileList)
-{
-    if (!pDocument)
-        return FALSE;
-    if (pDocument->GetDocType() != DOCTYPE_DYNIMIC_XFA && pDocument->GetDocType() != DOCTYPE_STATIC_XFA)
-        return TRUE;
-    if (!CPDFXFA_App::GetInstance()->GetXFAApp())
-        return TRUE;
-
-    IXFA_DocView* pXFADocView = pDocument->GetXFADocView();
-    if (NULL == pXFADocView)
-        return TRUE;
-
-    IXFA_DocHandler *pXFADocHandler = CPDFXFA_App::GetInstance()->GetXFAApp()->GetDocHandler();
-    CPDF_Document * pPDFDocument = pDocument->GetPDFDoc();
-    if (pDocument == NULL)
-        return FALSE;
-
-    CPDF_Dictionary* pRoot = pPDFDocument->GetRoot();
-    if (pRoot == NULL)
-        return FALSE;
-    CPDF_Dictionary* pAcroForm = pRoot->GetDict("AcroForm");
-    if (NULL == pAcroForm)
-        return FALSE;
-    CPDF_Object* pXFA = pAcroForm->GetElement("XFA");
-    if (pXFA == NULL)
-        return TRUE;
-    if(pXFA->GetType() != PDFOBJ_ARRAY)
-        return FALSE;
-    CPDF_Array* pArray = pXFA->GetArray();
-    if (NULL == pArray)
-        return FALSE;
-    int size = pArray->GetCount();
-    int iFormIndex = -1;
-    int iDataSetsIndex = -1;
-    int iTemplate = -1;
-    int iLast = size - 2;
-    for (int i = 0; i < size - 1; i++)
-    {
-        CPDF_Object* pPDFObj = pArray->GetElement(i);
-        if (pPDFObj->GetType() != PDFOBJ_STRING)
-            continue;
-        if (pPDFObj->GetString() == "form")
-            iFormIndex = i+1;
-        else if (pPDFObj->GetString() == "datasets")
-            iDataSetsIndex = i+1;
-        else if (pPDFObj->GetString() == FX_BSTRC("template"))
-            iTemplate = i + 1;
-    }
-    IXFA_ChecksumContext* pContext = NULL;
+  IXFA_DocView* pXFADocView = pDocument->GetXFADocView();
+  if (NULL == pXFADocView)
+    return TRUE;
+
+  IXFA_DocHandler* pXFADocHandler =
+      CPDFXFA_App::GetInstance()->GetXFAApp()->GetDocHandler();
+  CPDF_Document* pPDFDocument = pDocument->GetPDFDoc();
+  if (pDocument == NULL)
+    return FALSE;
+
+  CPDF_Dictionary* pRoot = pPDFDocument->GetRoot();
+  if (pRoot == NULL)
+    return FALSE;
+  CPDF_Dictionary* pAcroForm = pRoot->GetDict("AcroForm");
+  if (NULL == pAcroForm)
+    return FALSE;
+  CPDF_Object* pXFA = pAcroForm->GetElement("XFA");
+  if (pXFA == NULL)
+    return TRUE;
+  if (pXFA->GetType() != PDFOBJ_ARRAY)
+    return FALSE;
+  CPDF_Array* pArray = pXFA->GetArray();
+  if (NULL == pArray)
+    return FALSE;
+  int size = pArray->GetCount();
+  int iFormIndex = -1;
+  int iDataSetsIndex = -1;
+  int iTemplate = -1;
+  int iLast = size - 2;
+  for (int i = 0; i < size - 1; i++) {
+    CPDF_Object* pPDFObj = pArray->GetElement(i);
+    if (pPDFObj->GetType() != PDFOBJ_STRING)
+      continue;
+    if (pPDFObj->GetString() == "form")
+      iFormIndex = i + 1;
+    else if (pPDFObj->GetString() == "datasets")
+      iDataSetsIndex = i + 1;
+    else if (pPDFObj->GetString() == FX_BSTRC("template"))
+      iTemplate = i + 1;
+  }
+  IXFA_ChecksumContext* pContext = NULL;
 #define XFA_USECKSUM
 #ifdef XFA_USECKSUM
-    //Checksum
-    pContext = XFA_Checksum_Create();
-    FXSYS_assert(pContext);
-    pContext->StartChecksum();
-
-    //template
-    if (iTemplate > -1)
-    {
-        CPDF_Stream *pTemplateStream = pArray->GetStream(iTemplate);
-        CPDF_StreamAcc streamAcc;
-        streamAcc.LoadAllData(pTemplateStream);
-        uint8_t* pData = (uint8_t*)streamAcc.GetData();
-        FX_DWORD dwSize2 = streamAcc.GetSize();
-        IFX_FileStream *pTemplate = FX_CreateMemoryStream(pData, dwSize2);
-        pContext->UpdateChecksum((IFX_FileRead*)pTemplate);
-        pTemplate->Release();
-    }
+  // Checksum
+  pContext = XFA_Checksum_Create();
+  FXSYS_assert(pContext);
+  pContext->StartChecksum();
+
+  // template
+  if (iTemplate > -1) {
+    CPDF_Stream* pTemplateStream = pArray->GetStream(iTemplate);
+    CPDF_StreamAcc streamAcc;
+    streamAcc.LoadAllData(pTemplateStream);
+    uint8_t* pData = (uint8_t*)streamAcc.GetData();
+    FX_DWORD dwSize2 = streamAcc.GetSize();
+    IFX_FileStream* pTemplate = FX_CreateMemoryStream(pData, dwSize2);
+    pContext->UpdateChecksum((IFX_FileRead*)pTemplate);
+    pTemplate->Release();
+  }
 #endif
-    CPDF_Stream* pFormStream = NULL;
-    CPDF_Stream* pDataSetsStream = NULL;
-    if (iFormIndex != -1)
-    {
-        //Get form CPDF_Stream
-        CPDF_Object* pFormPDFObj = pArray->GetElement(iFormIndex);
-        if (pFormPDFObj->GetType() == PDFOBJ_REFERENCE)
-        {
-            CPDF_Reference* pFormRefObj = (CPDF_Reference*)pFormPDFObj;
-            CPDF_Object* pFormDircetObj = pFormPDFObj->GetDirect();
-            if (NULL != pFormDircetObj && pFormDircetObj->GetType() == PDFOBJ_STREAM)
-            {
-                pFormStream = (CPDF_Stream*)pFormDircetObj;
-            }
-        }
-        else if (pFormPDFObj->GetType() == PDFOBJ_STREAM)
-        {
-            pFormStream = (CPDF_Stream*)pFormPDFObj;
-        }
+  CPDF_Stream* pFormStream = NULL;
+  CPDF_Stream* pDataSetsStream = NULL;
+  if (iFormIndex != -1) {
+    // Get form CPDF_Stream
+    CPDF_Object* pFormPDFObj = pArray->GetElement(iFormIndex);
+    if (pFormPDFObj->GetType() == PDFOBJ_REFERENCE) {
+      CPDF_Reference* pFormRefObj = (CPDF_Reference*)pFormPDFObj;
+      CPDF_Object* pFormDircetObj = pFormPDFObj->GetDirect();
+      if (NULL != pFormDircetObj &&
+          pFormDircetObj->GetType() == PDFOBJ_STREAM) {
+        pFormStream = (CPDF_Stream*)pFormDircetObj;
+      }
+    } else if (pFormPDFObj->GetType() == PDFOBJ_STREAM) {
+      pFormStream = (CPDF_Stream*)pFormPDFObj;
     }
-
-    if (iDataSetsIndex != -1)
-    {
-        //Get datasets CPDF_Stream
-        CPDF_Object* pDataSetsPDFObj = pArray->GetElement(iDataSetsIndex);
-        if (pDataSetsPDFObj->GetType() == PDFOBJ_REFERENCE)
-        {
-            CPDF_Reference* pDataSetsRefObj = (CPDF_Reference*)pDataSetsPDFObj;
-            CPDF_Object* pDataSetsDircetObj = pDataSetsRefObj->GetDirect();
-            if (NULL != pDataSetsDircetObj && pDataSetsDircetObj->GetType() == PDFOBJ_STREAM)
-            {
-                pDataSetsStream = (CPDF_Stream*)pDataSetsDircetObj;
-            }
-        }
-        else if (pDataSetsPDFObj->GetType() == PDFOBJ_STREAM)
-        {
-            pDataSetsStream = (CPDF_Stream*)pDataSetsPDFObj;
-        }
+  }
+
+  if (iDataSetsIndex != -1) {
+    // Get datasets CPDF_Stream
+    CPDF_Object* pDataSetsPDFObj = pArray->GetElement(iDataSetsIndex);
+    if (pDataSetsPDFObj->GetType() == PDFOBJ_REFERENCE) {
+      CPDF_Reference* pDataSetsRefObj = (CPDF_Reference*)pDataSetsPDFObj;
+      CPDF_Object* pDataSetsDircetObj = pDataSetsRefObj->GetDirect();
+      if (NULL != pDataSetsDircetObj &&
+          pDataSetsDircetObj->GetType() == PDFOBJ_STREAM) {
+        pDataSetsStream = (CPDF_Stream*)pDataSetsDircetObj;
+      }
+    } else if (pDataSetsPDFObj->GetType() == PDFOBJ_STREAM) {
+      pDataSetsStream = (CPDF_Stream*)pDataSetsPDFObj;
     }
-    //end
-    //L"datasets"
-    {
-        IFX_FileStream* pDsfileWrite = FX_CreateMemoryStream();
-        if ( NULL == pDsfileWrite )
-        {
-            pContext->Release();
-            pDsfileWrite->Release();
-            return FALSE;
-        }
-        if (pXFADocHandler->SavePackage(pXFADocView->GetDoc(), CFX_WideStringC(L"datasets"), pDsfileWrite) && pDsfileWrite->GetSize()>0)
-        {
+  }
+  // end
+  // L"datasets"
+  {
+    IFX_FileStream* pDsfileWrite = FX_CreateMemoryStream();
+    if (NULL == pDsfileWrite) {
+      pContext->Release();
+      pDsfileWrite->Release();
+      return FALSE;
+    }
+    if (pXFADocHandler->SavePackage(pXFADocView->GetDoc(),
+                                    CFX_WideStringC(L"datasets"),
+                                    pDsfileWrite) &&
+        pDsfileWrite->GetSize() > 0) {
 #ifdef XFA_USECKSUM
-        //Datasets
-        pContext->UpdateChecksum((IFX_FileRead*)pDsfileWrite);
-        pContext->FinishChecksum();
+      // Datasets
+      pContext->UpdateChecksum((IFX_FileRead*)pDsfileWrite);
+      pContext->FinishChecksum();
 #endif
-            CPDF_Dictionary* pDataDict = FX_NEW CPDF_Dictionary;
-            if (iDataSetsIndex != -1)
-            {
-                if (pDataSetsStream)
-                    pDataSetsStream->InitStream(pDsfileWrite, pDataDict);
-            }
-            else
-            {
-                CPDF_Stream* pData = FX_NEW CPDF_Stream(NULL, 0, NULL);
-                pData->InitStream(pDsfileWrite, pDataDict);
-                FX_DWORD AppStreamobjnum = pPDFDocument->AddIndirectObject(pData);
-                CPDF_Reference* pRef = (CPDF_Reference*)pPDFDocument->GetIndirectObject(AppStreamobjnum);
-                {
-                    iLast = pArray->GetCount() -2;
-                    pArray->InsertAt(iLast,CPDF_String::Create("datasets"));
-                    pArray->InsertAt(iLast+1, pData, pPDFDocument);
-                }
-            }
-            fileList.Add(pDsfileWrite);
-        }
-    }
-
-
-    //L"form"
-    {
-
-        IFX_FileStream* pfileWrite = FX_CreateMemoryStream();
-        if (NULL == pfileWrite)
+      CPDF_Dictionary* pDataDict = FX_NEW CPDF_Dictionary;
+      if (iDataSetsIndex != -1) {
+        if (pDataSetsStream)
+          pDataSetsStream->InitStream(pDsfileWrite, pDataDict);
+      } else {
+        CPDF_Stream* pData = FX_NEW CPDF_Stream(NULL, 0, NULL);
+        pData->InitStream(pDsfileWrite, pDataDict);
+        FX_DWORD AppStreamobjnum = pPDFDocument->AddIndirectObject(pData);
+        CPDF_Reference* pRef =
+            (CPDF_Reference*)pPDFDocument->GetIndirectObject(AppStreamobjnum);
         {
-            pContext->Release();
-            return FALSE;
+          iLast = pArray->GetCount() - 2;
+          pArray->InsertAt(iLast, CPDF_String::Create("datasets"));
+          pArray->InsertAt(iLast + 1, pData, pPDFDocument);
         }
-        if(pXFADocHandler->SavePackage(pXFADocView->GetDoc(), CFX_WideStringC(L"form"), pfileWrite, pContext) && pfileWrite > 0)
+      }
+      fileList.Add(pDsfileWrite);
+    }
+  }
+
+  // L"form"
+  {
+    IFX_FileStream* pfileWrite = FX_CreateMemoryStream();
+    if (NULL == pfileWrite) {
+      pContext->Release();
+      return FALSE;
+    }
+    if (pXFADocHandler->SavePackage(pXFADocView->GetDoc(),
+                                    CFX_WideStringC(L"form"), pfileWrite,
+                                    pContext) &&
+        pfileWrite > 0) {
+      CPDF_Dictionary* pDataDict = FX_NEW CPDF_Dictionary;
+      if (iFormIndex != -1) {
+        if (pFormStream)
+          pFormStream->InitStream(pfileWrite, pDataDict);
+      } else {
+        CPDF_Stream* pData = FX_NEW CPDF_Stream(NULL, 0, NULL);
+        pData->InitStream(pfileWrite, pDataDict);
+        FX_DWORD AppStreamobjnum = pPDFDocument->AddIndirectObject(pData);
+        CPDF_Reference* pRef =
+            (CPDF_Reference*)pPDFDocument->GetIndirectObject(AppStreamobjnum);
         {
-            CPDF_Dictionary* pDataDict = FX_NEW CPDF_Dictionary;
-            if (iFormIndex != -1)
-            {
-                if (pFormStream)
-                    pFormStream->InitStream(pfileWrite, pDataDict);
-            }
-            else
-            {
-                CPDF_Stream* pData = FX_NEW CPDF_Stream(NULL, 0, NULL);
-                pData->InitStream(pfileWrite, pDataDict);
-                FX_DWORD AppStreamobjnum = pPDFDocument->AddIndirectObject(pData);
-                CPDF_Reference* pRef = (CPDF_Reference*)pPDFDocument->GetIndirectObject(AppStreamobjnum);
-                {
-                    iLast = pArray->GetCount() -2;
-                    pArray->InsertAt(iLast, CPDF_String::Create("form"));
-                    pArray->InsertAt(iLast+1, pData, pPDFDocument);
-                }
-            }
-            fileList.Add(pfileWrite);
+          iLast = pArray->GetCount() - 2;
+          pArray->InsertAt(iLast, CPDF_String::Create("form"));
+          pArray->InsertAt(iLast + 1, pData, pPDFDocument);
         }
+      }
+      fileList.Add(pfileWrite);
     }
-    pContext->Release();
-    return TRUE;
+  }
+  pContext->Release();
+  return TRUE;
 }
 
+FX_BOOL _SendPostSaveToXFADoc(CPDFXFA_Document* pDocument) {
+  if (!pDocument)
+    return FALSE;
 
-FX_BOOL _SendPostSaveToXFADoc(CPDFXFA_Document* pDocument)
-{
-    if (!pDocument)
-        return FALSE;
-
-    if (pDocument->GetDocType() != DOCTYPE_DYNIMIC_XFA && pDocument->GetDocType() != DOCTYPE_STATIC_XFA)
-        return TRUE;
-
-    IXFA_DocView* pXFADocView = pDocument->GetXFADocView();
-    if (NULL == pXFADocView)
-        return FALSE;
-    IXFA_WidgetHandler* pWidgetHander =  pXFADocView->GetWidgetHandler();
+  if (pDocument->GetDocType() != DOCTYPE_DYNIMIC_XFA &&
+      pDocument->GetDocType() != DOCTYPE_STATIC_XFA)
+    return TRUE;
 
-    CXFA_WidgetAcc* pWidgetAcc = NULL;
-    IXFA_WidgetAccIterator* pWidgetAccIterator = pXFADocView->CreateWidgetAccIterator();
+  IXFA_DocView* pXFADocView = pDocument->GetXFADocView();
+  if (NULL == pXFADocView)
+    return FALSE;
+  IXFA_WidgetHandler* pWidgetHander = pXFADocView->GetWidgetHandler();
+
+  CXFA_WidgetAcc* pWidgetAcc = NULL;
+  IXFA_WidgetAccIterator* pWidgetAccIterator =
+      pXFADocView->CreateWidgetAccIterator();
+  pWidgetAcc = pWidgetAccIterator->MoveToNext();
+  while (pWidgetAcc) {
+    CXFA_EventParam preParam;
+    preParam.m_eType = XFA_EVENT_PostSave;
+    pWidgetHander->ProcessEvent(pWidgetAcc, &preParam);
     pWidgetAcc = pWidgetAccIterator->MoveToNext();
-    while(pWidgetAcc)
-    {
-        CXFA_EventParam preParam;
-        preParam.m_eType =  XFA_EVENT_PostSave;
-        pWidgetHander->ProcessEvent(pWidgetAcc,&preParam);
-        pWidgetAcc = pWidgetAccIterator->MoveToNext();
-    }
-    pWidgetAccIterator->Release();
-    pXFADocView->UpdateDocView();
-    pDocument->_ClearChangeMark();
-    return TRUE;
+  }
+  pWidgetAccIterator->Release();
+  pXFADocView->UpdateDocView();
+  pDocument->_ClearChangeMark();
+  return TRUE;
 }
 
-
-FX_BOOL _SendPreSaveToXFADoc(CPDFXFA_Document* pDocument, CFX_PtrArray& fileList)
-{
-    if (pDocument->GetDocType() != DOCTYPE_DYNIMIC_XFA && pDocument->GetDocType() != DOCTYPE_STATIC_XFA)
-        return TRUE;
-    IXFA_DocView* pXFADocView = pDocument->GetXFADocView();
-    if (NULL == pXFADocView)
-        return TRUE;
-    IXFA_WidgetHandler* pWidgetHander =  pXFADocView->GetWidgetHandler();
-    CXFA_WidgetAcc* pWidgetAcc = NULL;
-    IXFA_WidgetAccIterator* pWidgetAccIterator = pXFADocView->CreateWidgetAccIterator();
+FX_BOOL _SendPreSaveToXFADoc(CPDFXFA_Document* pDocument,
+                             CFX_PtrArray& fileList) {
+  if (pDocument->GetDocType() != DOCTYPE_DYNIMIC_XFA &&
+      pDocument->GetDocType() != DOCTYPE_STATIC_XFA)
+    return TRUE;
+  IXFA_DocView* pXFADocView = pDocument->GetXFADocView();
+  if (NULL == pXFADocView)
+    return TRUE;
+  IXFA_WidgetHandler* pWidgetHander = pXFADocView->GetWidgetHandler();
+  CXFA_WidgetAcc* pWidgetAcc = NULL;
+  IXFA_WidgetAccIterator* pWidgetAccIterator =
+      pXFADocView->CreateWidgetAccIterator();
+  pWidgetAcc = pWidgetAccIterator->MoveToNext();
+  while (pWidgetAcc) {
+    CXFA_EventParam preParam;
+    preParam.m_eType = XFA_EVENT_PreSave;
+    pWidgetHander->ProcessEvent(pWidgetAcc, &preParam);
     pWidgetAcc = pWidgetAccIterator->MoveToNext();
-    while(pWidgetAcc)
-    {
-        CXFA_EventParam preParam;
-        preParam.m_eType =  XFA_EVENT_PreSave;
-        pWidgetHander->ProcessEvent(pWidgetAcc, &preParam);
-        pWidgetAcc = pWidgetAccIterator->MoveToNext();
-    }
-    pWidgetAccIterator->Release();
-    pXFADocView->UpdateDocView();
-    return _SaveXFADocumentData(pDocument, fileList);
+  }
+  pWidgetAccIterator->Release();
+  pXFADocView->UpdateDocView();
+  return _SaveXFADocumentData(pDocument, fileList);
 }
 
-FPDF_BOOL _FPDF_Doc_Save(FPDF_DOCUMENT document, FPDF_FILEWRITE * pFileWrite,FPDF_DWORD flags, FPDF_BOOL bSetVersion,
-                         int fileVerion)
-{
-    CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
-
-    CFX_PtrArray fileList;
-
-    _SendPreSaveToXFADoc(pDoc, fileList);
-
-    CPDF_Document* pPDFDoc = pDoc->GetPDFDoc();
-    if (!pPDFDoc)
-        return 0;
-
-    if ( flags < FPDF_INCREMENTAL || flags > FPDF_REMOVE_SECURITY )
-    {
-        flags = 0;
-    }
-
-    CPDF_Creator FileMaker(pPDFDoc);
-    if (bSetVersion)
-        FileMaker.SetFileVersion(fileVerion);
-    if (flags == FPDF_REMOVE_SECURITY)
-    {
-        flags =  0;
-        FileMaker.RemoveSecurity();
-    }
-    CFX_IFileWrite* pStreamWrite = NULL;
-    FX_BOOL bRet;
-    pStreamWrite = new CFX_IFileWrite;
-    pStreamWrite->Init( pFileWrite );
-    bRet = FileMaker.Create(pStreamWrite, flags);
-
-    _SendPostSaveToXFADoc(pDoc);
-    //pDoc->_ClearChangeMark();
-
-    for (int i = 0; i < fileList.GetSize(); i++)
-    {
-        IFX_FileStream* pFile = (IFX_FileStream*)fileList.GetAt(i);
-        pFile->Release();
-    }
-    fileList.RemoveAll();
-
-    delete pStreamWrite;
-    return bRet;
+FPDF_BOOL _FPDF_Doc_Save(FPDF_DOCUMENT document,
+                         FPDF_FILEWRITE* pFileWrite,
+                         FPDF_DWORD flags,
+                         FPDF_BOOL bSetVersion,
+                         int fileVerion) {
+  CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
+
+  CFX_PtrArray fileList;
+
+  _SendPreSaveToXFADoc(pDoc, fileList);
+
+  CPDF_Document* pPDFDoc = pDoc->GetPDFDoc();
+  if (!pPDFDoc)
+    return 0;
+
+  if (flags < FPDF_INCREMENTAL || flags > FPDF_REMOVE_SECURITY) {
+    flags = 0;
+  }
+
+  CPDF_Creator FileMaker(pPDFDoc);
+  if (bSetVersion)
+    FileMaker.SetFileVersion(fileVerion);
+  if (flags == FPDF_REMOVE_SECURITY) {
+    flags = 0;
+    FileMaker.RemoveSecurity();
+  }
+  CFX_IFileWrite* pStreamWrite = NULL;
+  FX_BOOL bRet;
+  pStreamWrite = new CFX_IFileWrite;
+  pStreamWrite->Init(pFileWrite);
+  bRet = FileMaker.Create(pStreamWrite, flags);
+
+  _SendPostSaveToXFADoc(pDoc);
+  // pDoc->_ClearChangeMark();
+
+  for (int i = 0; i < fileList.GetSize(); i++) {
+    IFX_FileStream* pFile = (IFX_FileStream*)fileList.GetAt(i);
+    pFile->Release();
+  }
+  fileList.RemoveAll();
+
+  delete pStreamWrite;
+  return bRet;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveAsCopy(    FPDF_DOCUMENT document,FPDF_FILEWRITE * pFileWrite,
-                                                FPDF_DWORD flags )
-{
-    return _FPDF_Doc_Save(document, pFileWrite, flags, FALSE , 0);
+DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveAsCopy(FPDF_DOCUMENT document,
+                                            FPDF_FILEWRITE* pFileWrite,
+                                            FPDF_DWORD flags) {
+  return _FPDF_Doc_Save(document, pFileWrite, flags, FALSE, 0);
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveWithVersion(   FPDF_DOCUMENT document,FPDF_FILEWRITE * pFileWrite,
-    FPDF_DWORD flags, int fileVersion)
-{
-    return _FPDF_Doc_Save(document, pFileWrite, flags, TRUE , fileVersion);
+DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveWithVersion(FPDF_DOCUMENT document,
+                                                 FPDF_FILEWRITE* pFileWrite,
+                                                 FPDF_DWORD flags,
+                                                 int fileVersion) {
+  return _FPDF_Doc_Save(document, pFileWrite, flags, TRUE, fileVersion);
 }
-
diff --git a/fpdfsdk/src/fpdftext.cpp b/fpdfsdk/src/fpdftext.cpp
index 7b07a13890..fad2b8479f 100644
--- a/fpdfsdk/src/fpdftext.cpp
+++ b/fpdfsdk/src/fpdftext.cpp
@@ -14,240 +14,281 @@
 #include <tchar.h>
 #endif
 
-	// jabdelmalek: commented out to build on Linux.  Not used.
-	// extern HANDLE g_hModule;
+// jabdelmalek: commented out to build on Linux.  Not used.
+// extern HANDLE g_hModule;
 
-DLLEXPORT FPDF_TEXTPAGE STDCALL FPDFText_LoadPage(FPDF_PAGE page)
-{
-	if (!page) return NULL;
-	IPDF_TextPage* textpage=NULL;
-	CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
-	if (!pPage->GetPDFPage()) return NULL;
-	CPDFXFA_Document* pDoc = pPage->GetDocument();
-	CPDF_ViewerPreferences viewRef(pDoc->GetPDFDoc());
-	textpage=IPDF_TextPage::CreateTextPage((CPDF_Page*)pPage->GetPDFPage(),viewRef.IsDirectionR2L());
-	textpage->ParseTextPage();
-
-	return textpage;
-}
-DLLEXPORT void STDCALL FPDFText_ClosePage(FPDF_TEXTPAGE text_page)
-{
-    delete (IPDF_TextPage*)text_page;
-}
-DLLEXPORT int STDCALL FPDFText_CountChars(FPDF_TEXTPAGE text_page)
-{
-	if (!text_page) return	-1;
-	IPDF_TextPage* textpage=(IPDF_TextPage*)text_page;
-	return  textpage->CountChars();
-}
-DLLEXPORT unsigned int STDCALL FPDFText_GetUnicode(FPDF_TEXTPAGE text_page, int index)
-{
-	if (!text_page) return -1;
-	IPDF_TextPage* textpage=(IPDF_TextPage*)text_page;
-
-	if (index<0 || index>=textpage->CountChars()) return 0;
+DLLEXPORT FPDF_TEXTPAGE STDCALL FPDFText_LoadPage(FPDF_PAGE page) {
+  if (!page)
+    return NULL;
+  IPDF_TextPage* textpage = NULL;
+  CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
+  if (!pPage->GetPDFPage())
+    return NULL;
+  CPDFXFA_Document* pDoc = pPage->GetDocument();
+  CPDF_ViewerPreferences viewRef(pDoc->GetPDFDoc());
+  textpage = IPDF_TextPage::CreateTextPage((CPDF_Page*)pPage->GetPDFPage(),
+                                           viewRef.IsDirectionR2L());
+  textpage->ParseTextPage();
 
-	FPDF_CHAR_INFO	charinfo;
-	textpage->GetCharInfo(index,charinfo);
-	return charinfo.m_Unicode;
+  return textpage;
 }
-DLLEXPORT double STDCALL FPDFText_GetFontSize(FPDF_TEXTPAGE text_page, int index)
-{
-	if (!text_page) return 0;
-	IPDF_TextPage* textpage=(IPDF_TextPage*)text_page;
+DLLEXPORT void STDCALL FPDFText_ClosePage(FPDF_TEXTPAGE text_page) {
+  delete (IPDF_TextPage*)text_page;
+}
+DLLEXPORT int STDCALL FPDFText_CountChars(FPDF_TEXTPAGE text_page) {
+  if (!text_page)
+    return -1;
+  IPDF_TextPage* textpage = (IPDF_TextPage*)text_page;
+  return textpage->CountChars();
+}
+DLLEXPORT unsigned int STDCALL FPDFText_GetUnicode(FPDF_TEXTPAGE text_page,
+                                                   int index) {
+  if (!text_page)
+    return -1;
+  IPDF_TextPage* textpage = (IPDF_TextPage*)text_page;
 
-	if (index<0 || index>=textpage->CountChars()) return 0;
+  if (index < 0 || index >= textpage->CountChars())
+    return 0;
 
-	FPDF_CHAR_INFO	charinfo;
-	textpage->GetCharInfo(index,charinfo);
-	return charinfo.m_FontSize;
+  FPDF_CHAR_INFO charinfo;
+  textpage->GetCharInfo(index, charinfo);
+  return charinfo.m_Unicode;
 }
+DLLEXPORT double STDCALL FPDFText_GetFontSize(FPDF_TEXTPAGE text_page,
+                                              int index) {
+  if (!text_page)
+    return 0;
+  IPDF_TextPage* textpage = (IPDF_TextPage*)text_page;
 
-DLLEXPORT void STDCALL FPDFText_GetCharBox(FPDF_TEXTPAGE text_page, int index,double* left,
-													double* right, double* bottom, double* top)
-{
-	if (!text_page) return;
-	IPDF_TextPage* textpage=(IPDF_TextPage*)text_page;
+  if (index < 0 || index >= textpage->CountChars())
+    return 0;
 
-	if (index<0 || index>=textpage->CountChars()) return ;
-	FPDF_CHAR_INFO	charinfo;
-	textpage->GetCharInfo(index,charinfo);
-	*left=charinfo.m_CharBox.left;
-	*right=charinfo.m_CharBox.right;
-	*bottom=charinfo.m_CharBox.bottom;
-	*top=charinfo.m_CharBox.top;
+  FPDF_CHAR_INFO charinfo;
+  textpage->GetCharInfo(index, charinfo);
+  return charinfo.m_FontSize;
 }
 
-//select
-DLLEXPORT int STDCALL FPDFText_GetCharIndexAtPos(FPDF_TEXTPAGE text_page,double x,double y,double xTorelance,double yTorelance)
-{
-	if (!text_page) return -3;
-	IPDF_TextPage* textpage=(IPDF_TextPage*)text_page;
-	return textpage->GetIndexAtPos((FX_FLOAT)x,(FX_FLOAT)y,(FX_FLOAT)xTorelance,(FX_FLOAT)yTorelance);
+DLLEXPORT void STDCALL FPDFText_GetCharBox(FPDF_TEXTPAGE text_page,
+                                           int index,
+                                           double* left,
+                                           double* right,
+                                           double* bottom,
+                                           double* top) {
+  if (!text_page)
+    return;
+  IPDF_TextPage* textpage = (IPDF_TextPage*)text_page;
+
+  if (index < 0 || index >= textpage->CountChars())
+    return;
+  FPDF_CHAR_INFO charinfo;
+  textpage->GetCharInfo(index, charinfo);
+  *left = charinfo.m_CharBox.left;
+  *right = charinfo.m_CharBox.right;
+  *bottom = charinfo.m_CharBox.bottom;
+  *top = charinfo.m_CharBox.top;
 }
 
-DLLEXPORT int STDCALL FPDFText_GetText(FPDF_TEXTPAGE text_page,int start,int count,unsigned short* result)
-{
-	if (!text_page) return 0;
-	IPDF_TextPage* textpage=(IPDF_TextPage*)text_page;
+// select
+DLLEXPORT int STDCALL FPDFText_GetCharIndexAtPos(FPDF_TEXTPAGE text_page,
+                                                 double x,
+                                                 double y,
+                                                 double xTorelance,
+                                                 double yTorelance) {
+  if (!text_page)
+    return -3;
+  IPDF_TextPage* textpage = (IPDF_TextPage*)text_page;
+  return textpage->GetIndexAtPos((FX_FLOAT)x, (FX_FLOAT)y, (FX_FLOAT)xTorelance,
+                                 (FX_FLOAT)yTorelance);
+}
 
-	if (start>=textpage->CountChars()) return 0;
+DLLEXPORT int STDCALL FPDFText_GetText(FPDF_TEXTPAGE text_page,
+                                       int start,
+                                       int count,
+                                       unsigned short* result) {
+  if (!text_page)
+    return 0;
+  IPDF_TextPage* textpage = (IPDF_TextPage*)text_page;
 
-	CFX_WideString str=textpage->GetPageText(start,count);
-	if(str.GetLength()>count)
-		str = str.Left(count);
+  if (start >= textpage->CountChars())
+    return 0;
 
-	CFX_ByteString cbUTF16str = str.UTF16LE_Encode();
-	FXSYS_memcpy(result,cbUTF16str.GetBuffer(cbUTF16str.GetLength()),cbUTF16str.GetLength());
-	cbUTF16str.ReleaseBuffer(cbUTF16str.GetLength());
+  CFX_WideString str = textpage->GetPageText(start, count);
+  if (str.GetLength() > count)
+    str = str.Left(count);
 
-	return cbUTF16str.GetLength()/sizeof(unsigned short);
-}
+  CFX_ByteString cbUTF16str = str.UTF16LE_Encode();
+  FXSYS_memcpy(result, cbUTF16str.GetBuffer(cbUTF16str.GetLength()),
+               cbUTF16str.GetLength());
+  cbUTF16str.ReleaseBuffer(cbUTF16str.GetLength());
 
-DLLEXPORT int STDCALL FPDFText_CountRects(FPDF_TEXTPAGE text_page,int start,int count)
-{
-	if (!text_page) return 0;
-	IPDF_TextPage* textpage=(IPDF_TextPage*)text_page;
-	return	textpage->CountRects(start,count);
+  return cbUTF16str.GetLength() / sizeof(unsigned short);
+}
 
+DLLEXPORT int STDCALL FPDFText_CountRects(FPDF_TEXTPAGE text_page,
+                                          int start,
+                                          int count) {
+  if (!text_page)
+    return 0;
+  IPDF_TextPage* textpage = (IPDF_TextPage*)text_page;
+  return textpage->CountRects(start, count);
 }
-DLLEXPORT void STDCALL FPDFText_GetRect(FPDF_TEXTPAGE text_page,int rect_index, double* left,double*  top,
-										double*  right, double*  bottom)
-{
-	if (!text_page) return;
-	IPDF_TextPage* textpage=(IPDF_TextPage*)text_page;
-	CFX_FloatRect	rect;
-	textpage->GetRect(rect_index,rect.left,rect.top,rect.right,rect.bottom);
-	*left=rect.left;
-	*top=rect.top;
-	*right=rect.right;
-	*bottom=rect.bottom;
+DLLEXPORT void STDCALL FPDFText_GetRect(FPDF_TEXTPAGE text_page,
+                                        int rect_index,
+                                        double* left,
+                                        double* top,
+                                        double* right,
+                                        double* bottom) {
+  if (!text_page)
+    return;
+  IPDF_TextPage* textpage = (IPDF_TextPage*)text_page;
+  CFX_FloatRect rect;
+  textpage->GetRect(rect_index, rect.left, rect.top, rect.right, rect.bottom);
+  *left = rect.left;
+  *top = rect.top;
+  *right = rect.right;
+  *bottom = rect.bottom;
 }
 
-DLLEXPORT int STDCALL FPDFText_GetBoundedText(FPDF_TEXTPAGE text_page,double left, double top,
-											  double right, double bottom,unsigned short* buffer,int buflen)
-{
-	if (!text_page) return 0;
-	IPDF_TextPage* textpage=(IPDF_TextPage*)text_page;
-	CFX_FloatRect rect((FX_FLOAT)left,(FX_FLOAT)bottom,(FX_FLOAT)right,(FX_FLOAT)top);
-	CFX_WideString str=textpage->GetTextByRect(rect);
-
-	if (buflen<=0 || buffer==NULL)
-	{
-		return str.GetLength();
-	}
+DLLEXPORT int STDCALL FPDFText_GetBoundedText(FPDF_TEXTPAGE text_page,
+                                              double left,
+                                              double top,
+                                              double right,
+                                              double bottom,
+                                              unsigned short* buffer,
+                                              int buflen) {
+  if (!text_page)
+    return 0;
+  IPDF_TextPage* textpage = (IPDF_TextPage*)text_page;
+  CFX_FloatRect rect((FX_FLOAT)left, (FX_FLOAT)bottom, (FX_FLOAT)right,
+                     (FX_FLOAT)top);
+  CFX_WideString str = textpage->GetTextByRect(rect);
 
-	CFX_ByteString cbUTF16Str = str.UTF16LE_Encode();
-	int len = cbUTF16Str.GetLength()/sizeof(unsigned short);
-	int size = buflen > len ? len : buflen;
-	FXSYS_memcpy(buffer,cbUTF16Str.GetBuffer(size*sizeof(unsigned short)),size*sizeof(unsigned short));
-	cbUTF16Str.ReleaseBuffer(size*sizeof(unsigned short));
+  if (buflen <= 0 || buffer == NULL) {
+    return str.GetLength();
+  }
 
-	return size;
+  CFX_ByteString cbUTF16Str = str.UTF16LE_Encode();
+  int len = cbUTF16Str.GetLength() / sizeof(unsigned short);
+  int size = buflen > len ? len : buflen;
+  FXSYS_memcpy(buffer, cbUTF16Str.GetBuffer(size * sizeof(unsigned short)),
+               size * sizeof(unsigned short));
+  cbUTF16Str.ReleaseBuffer(size * sizeof(unsigned short));
 
+  return size;
 }
 
-//Search
+// Search
 //-1 for end
-DLLEXPORT FPDF_SCHHANDLE STDCALL FPDFText_FindStart(FPDF_TEXTPAGE text_page,FPDF_WIDESTRING findwhat,unsigned long flags,int start_index)
-{
-	if (!text_page) return NULL;
-	IPDF_TextPageFind* textpageFind=NULL;
-	textpageFind=IPDF_TextPageFind::CreatePageFind((IPDF_TextPage*)text_page);
-	FX_STRSIZE len = CFX_WideString::WStringLength(findwhat);
-	textpageFind->FindFirst(CFX_WideString::FromUTF16LE(findwhat, len),flags,start_index);
-	return textpageFind;
-}
-DLLEXPORT FPDF_BOOL	STDCALL FPDFText_FindNext(FPDF_SCHHANDLE handle)
-{
-	if (!handle) return FALSE;
-	IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle;
-	return	textpageFind->FindNext();
-}
-DLLEXPORT FPDF_BOOL STDCALL FPDFText_FindPrev(FPDF_SCHHANDLE handle)
-{
-	if (!handle) return FALSE;
-	IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle;
-	return	textpageFind->FindPrev();
-}
-DLLEXPORT int STDCALL FPDFText_GetSchResultIndex(FPDF_SCHHANDLE handle)
-{
-	if (!handle) return 0;
-	IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle;
-	return textpageFind->GetCurOrder();
-}
-DLLEXPORT int STDCALL FPDFText_GetSchCount(FPDF_SCHHANDLE handle)
-{
-	if (!handle) return 0;
-	IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle;
-	return textpageFind->GetMatchedCount();
-}
-DLLEXPORT void STDCALL FPDFText_FindClose(FPDF_SCHHANDLE handle)
-{
-	if (!handle) return;
-	IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle;
-	delete	textpageFind;
-	handle=NULL;
-}
-
-//web link
-DLLEXPORT FPDF_PAGELINK STDCALL FPDFLink_LoadWebLinks(FPDF_TEXTPAGE text_page)
-{
-	if (!text_page) return NULL;
-	IPDF_LinkExtract* pageLink=NULL;
-	pageLink=IPDF_LinkExtract::CreateLinkExtract();
-	pageLink->ExtractLinks((IPDF_TextPage*)text_page);
-	return pageLink;
-}
-DLLEXPORT int STDCALL FPDFLink_CountWebLinks(FPDF_PAGELINK link_page)
-{
-	if (!link_page) return 0;
-	IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page;
-	return	pageLink->CountLinks();
-}
-DLLEXPORT int STDCALL FPDFLink_GetURL(FPDF_PAGELINK link_page,int link_index, unsigned short* buffer,int buflen)
-{
-	if (!link_page) return 0;
-	IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page;
-	CFX_WideString url=pageLink->GetURL(link_index);
-
-	CFX_ByteString cbUTF16URL = url.UTF16LE_Encode();
-	int len= cbUTF16URL.GetLength()/sizeof(unsigned short);
-	if (buffer==NULL || buflen<=0)
-		return len;
-	int size=len<buflen ? len :buflen;
-	if (size>0)
-	{
-		FXSYS_memcpy(buffer,cbUTF16URL.GetBuffer(size*sizeof(unsigned short)),size*sizeof(unsigned short));
-		cbUTF16URL.ReleaseBuffer(size*sizeof(unsigned short));
-	}
-	return size;
-}
-DLLEXPORT int STDCALL FPDFLink_CountRects(FPDF_PAGELINK link_page,int link_index)
-{
-	if (!link_page) return 0;
-	IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page;
-	CFX_RectArray rectArray;
-	pageLink->GetRects(link_index,rectArray);
-	return rectArray.GetSize();
-}
-DLLEXPORT void STDCALL FPDFLink_GetRect(FPDF_PAGELINK link_page,int link_index,  int rect_index, double* left,
-										double*  top,double*  right, double*  bottom)
-{
-	if (!link_page) return;
-	IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page;
-	CFX_RectArray rectArray;
-	pageLink->GetRects(link_index,rectArray);
-	if (rect_index >= 0 && rect_index < rectArray.GetSize()) {
-		CFX_FloatRect rect=rectArray.GetAt(rect_index);
-		*left=rect.left;
-		*right=rect.right;
-		*top=rect.top;
-		*bottom=rect.bottom;
-	}
-}
-DLLEXPORT void	STDCALL	FPDFLink_CloseWebLinks(FPDF_PAGELINK link_page)
-{
-    delete (IPDF_LinkExtract*)link_page;
+DLLEXPORT FPDF_SCHHANDLE STDCALL FPDFText_FindStart(FPDF_TEXTPAGE text_page,
+                                                    FPDF_WIDESTRING findwhat,
+                                                    unsigned long flags,
+                                                    int start_index) {
+  if (!text_page)
+    return NULL;
+  IPDF_TextPageFind* textpageFind = NULL;
+  textpageFind = IPDF_TextPageFind::CreatePageFind((IPDF_TextPage*)text_page);
+  FX_STRSIZE len = CFX_WideString::WStringLength(findwhat);
+  textpageFind->FindFirst(CFX_WideString::FromUTF16LE(findwhat, len), flags,
+                          start_index);
+  return textpageFind;
+}
+DLLEXPORT FPDF_BOOL STDCALL FPDFText_FindNext(FPDF_SCHHANDLE handle) {
+  if (!handle)
+    return FALSE;
+  IPDF_TextPageFind* textpageFind = (IPDF_TextPageFind*)handle;
+  return textpageFind->FindNext();
+}
+DLLEXPORT FPDF_BOOL STDCALL FPDFText_FindPrev(FPDF_SCHHANDLE handle) {
+  if (!handle)
+    return FALSE;
+  IPDF_TextPageFind* textpageFind = (IPDF_TextPageFind*)handle;
+  return textpageFind->FindPrev();
+}
+DLLEXPORT int STDCALL FPDFText_GetSchResultIndex(FPDF_SCHHANDLE handle) {
+  if (!handle)
+    return 0;
+  IPDF_TextPageFind* textpageFind = (IPDF_TextPageFind*)handle;
+  return textpageFind->GetCurOrder();
 }
+DLLEXPORT int STDCALL FPDFText_GetSchCount(FPDF_SCHHANDLE handle) {
+  if (!handle)
+    return 0;
+  IPDF_TextPageFind* textpageFind = (IPDF_TextPageFind*)handle;
+  return textpageFind->GetMatchedCount();
+}
+DLLEXPORT void STDCALL FPDFText_FindClose(FPDF_SCHHANDLE handle) {
+  if (!handle)
+    return;
+  IPDF_TextPageFind* textpageFind = (IPDF_TextPageFind*)handle;
+  delete textpageFind;
+  handle = NULL;
+}
+
+// web link
+DLLEXPORT FPDF_PAGELINK STDCALL FPDFLink_LoadWebLinks(FPDF_TEXTPAGE text_page) {
+  if (!text_page)
+    return NULL;
+  IPDF_LinkExtract* pageLink = NULL;
+  pageLink = IPDF_LinkExtract::CreateLinkExtract();
+  pageLink->ExtractLinks((IPDF_TextPage*)text_page);
+  return pageLink;
+}
+DLLEXPORT int STDCALL FPDFLink_CountWebLinks(FPDF_PAGELINK link_page) {
+  if (!link_page)
+    return 0;
+  IPDF_LinkExtract* pageLink = (IPDF_LinkExtract*)link_page;
+  return pageLink->CountLinks();
+}
+DLLEXPORT int STDCALL FPDFLink_GetURL(FPDF_PAGELINK link_page,
+                                      int link_index,
+                                      unsigned short* buffer,
+                                      int buflen) {
+  if (!link_page)
+    return 0;
+  IPDF_LinkExtract* pageLink = (IPDF_LinkExtract*)link_page;
+  CFX_WideString url = pageLink->GetURL(link_index);
 
+  CFX_ByteString cbUTF16URL = url.UTF16LE_Encode();
+  int len = cbUTF16URL.GetLength() / sizeof(unsigned short);
+  if (buffer == NULL || buflen <= 0)
+    return len;
+  int size = len < buflen ? len : buflen;
+  if (size > 0) {
+    FXSYS_memcpy(buffer, cbUTF16URL.GetBuffer(size * sizeof(unsigned short)),
+                 size * sizeof(unsigned short));
+    cbUTF16URL.ReleaseBuffer(size * sizeof(unsigned short));
+  }
+  return size;
+}
+DLLEXPORT int STDCALL FPDFLink_CountRects(FPDF_PAGELINK link_page,
+                                          int link_index) {
+  if (!link_page)
+    return 0;
+  IPDF_LinkExtract* pageLink = (IPDF_LinkExtract*)link_page;
+  CFX_RectArray rectArray;
+  pageLink->GetRects(link_index, rectArray);
+  return rectArray.GetSize();
+}
+DLLEXPORT void STDCALL FPDFLink_GetRect(FPDF_PAGELINK link_page,
+                                        int link_index,
+                                        int rect_index,
+                                        double* left,
+                                        double* top,
+                                        double* right,
+                                        double* bottom) {
+  if (!link_page)
+    return;
+  IPDF_LinkExtract* pageLink = (IPDF_LinkExtract*)link_page;
+  CFX_RectArray rectArray;
+  pageLink->GetRects(link_index, rectArray);
+  if (rect_index >= 0 && rect_index < rectArray.GetSize()) {
+    CFX_FloatRect rect = rectArray.GetAt(rect_index);
+    *left = rect.left;
+    *right = rect.right;
+    *top = rect.top;
+    *bottom = rect.bottom;
+  }
+}
+DLLEXPORT void STDCALL FPDFLink_CloseWebLinks(FPDF_PAGELINK link_page) {
+  delete (IPDF_LinkExtract*)link_page;
+}
diff --git a/fpdfsdk/src/fpdftext_embeddertest.cpp b/fpdfsdk/src/fpdftext_embeddertest.cpp
index 8384a41944..dd3737a40e 100644
--- a/fpdfsdk/src/fpdftext_embeddertest.cpp
+++ b/fpdfsdk/src/fpdftext_embeddertest.cpp
@@ -25,8 +25,7 @@ static bool check_unsigned_shorts(const char* expected,
 
 }  // namespace
 
-class FPDFTextEmbeddertest : public EmbedderTest {
-};
+class FPDFTextEmbeddertest : public EmbedderTest {};
 
 TEST_F(FPDFTextEmbeddertest, Text) {
   EXPECT_TRUE(OpenDocument("testing/resources/hello_world.pdf"));
@@ -63,18 +62,14 @@ TEST_F(FPDFTextEmbeddertest, Text) {
   EXPECT_NEAR(49.844, bottom, 0.001);
   EXPECT_NEAR(55.520, top, 0.001);
 
-  EXPECT_EQ(4, FPDFText_GetCharIndexAtPos(
-      textpage, 42.0, 50.0, 1.0, 1.0));
-  EXPECT_EQ(-1, FPDFText_GetCharIndexAtPos(
-      textpage, 0.0, 0.0, 1.0, 1.0));
-  EXPECT_EQ(-1, FPDFText_GetCharIndexAtPos(
-      textpage, 199.0, 199.0, 1.0, 1.0));
+  EXPECT_EQ(4, FPDFText_GetCharIndexAtPos(textpage, 42.0, 50.0, 1.0, 1.0));
+  EXPECT_EQ(-1, FPDFText_GetCharIndexAtPos(textpage, 0.0, 0.0, 1.0, 1.0));
+  EXPECT_EQ(-1, FPDFText_GetCharIndexAtPos(textpage, 199.0, 199.0, 1.0, 1.0));
 
   // Test out of range indicies.
-  EXPECT_EQ(-1, FPDFText_GetCharIndexAtPos(
-      textpage, 42.0, 10000000.0, 1.0, 1.0));
-  EXPECT_EQ(-1, FPDFText_GetCharIndexAtPos(
-      textpage, -1.0, 50.0, 1.0, 1.0));
+  EXPECT_EQ(-1,
+            FPDFText_GetCharIndexAtPos(textpage, 42.0, 10000000.0, 1.0, 1.0));
+  EXPECT_EQ(-1, FPDFText_GetCharIndexAtPos(textpage, -1.0, 50.0, 1.0, 1.0));
 
   // Count does not include the terminating NUL in the string literal.
   EXPECT_EQ(2, FPDFText_CountRects(textpage, 0, sizeof(expected) - 1));
@@ -110,25 +105,24 @@ TEST_F(FPDFTextEmbeddertest, Text) {
   EXPECT_EQ(0.0, bottom);
   EXPECT_EQ(0.0, top);
 
-  EXPECT_EQ(9, FPDFText_GetBoundedText(
-      textpage, 41.0, 56.0, 82.0, 48.0, 0, 0));
+  EXPECT_EQ(9, FPDFText_GetBoundedText(textpage, 41.0, 56.0, 82.0, 48.0, 0, 0));
 
   // Extract starting at character 4 as above.
   memset(fixed_buffer, 0xbd, sizeof(fixed_buffer));
-  EXPECT_EQ(1, FPDFText_GetBoundedText(
-      textpage, 41.0, 56.0, 82.0, 48.0, fixed_buffer, 1));
+  EXPECT_EQ(1, FPDFText_GetBoundedText(textpage, 41.0, 56.0, 82.0, 48.0,
+                                       fixed_buffer, 1));
   EXPECT_TRUE(check_unsigned_shorts(expected + 4, fixed_buffer, 1));
   EXPECT_EQ(0xbdbd, fixed_buffer[1]);
 
   memset(fixed_buffer, 0xbd, sizeof(fixed_buffer));
-  EXPECT_EQ(9, FPDFText_GetBoundedText(
-      textpage, 41.0, 56.0, 82.0, 48.0, fixed_buffer, 9));
+  EXPECT_EQ(9, FPDFText_GetBoundedText(textpage, 41.0, 56.0, 82.0, 48.0,
+                                       fixed_buffer, 9));
   EXPECT_TRUE(check_unsigned_shorts(expected + 4, fixed_buffer, 9));
   EXPECT_EQ(0xbdbd, fixed_buffer[9]);
 
   memset(fixed_buffer, 0xbd, sizeof(fixed_buffer));
-  EXPECT_EQ(10, FPDFText_GetBoundedText(
-      textpage, 41.0, 56.0, 82.0, 48.0, fixed_buffer, 128));
+  EXPECT_EQ(10, FPDFText_GetBoundedText(textpage, 41.0, 56.0, 82.0, 48.0,
+                                        fixed_buffer, 128));
   EXPECT_TRUE(check_unsigned_shorts(expected + 4, fixed_buffer, 9));
   EXPECT_EQ(0u, fixed_buffer[9]);
   EXPECT_EQ(0xbdbd, fixed_buffer[10]);
@@ -146,10 +140,10 @@ TEST_F(FPDFTextEmbeddertest, TextSearch) {
   EXPECT_NE(nullptr, textpage);
 
   // Avoid issues with system wchar_t width vs. FPDF_WideString.
-  const unsigned short nope[] = { 'n', 'o', 'p', 'e', '\0' };
-  const unsigned short world[] = { 'w', 'o', 'r', 'l', 'd', '\0' };
-  const unsigned short world_caps[] = { 'W', 'O', 'R', 'L', 'D', '\0' };
-  const unsigned short world_substr[] = { 'o', 'r', 'l', 'd', '\0' };
+  const unsigned short nope[] = {'n', 'o', 'p', 'e', '\0'};
+  const unsigned short world[] = {'w', 'o', 'r', 'l', 'd', '\0'};
+  const unsigned short world_caps[] = {'W', 'O', 'R', 'L', 'D', '\0'};
+  const unsigned short world_substr[] = {'o', 'r', 'l', 'd', '\0'};
 
   // No occurences of "nope" in test page.
   FPDF_SCHHANDLE search = FPDFText_FindStart(textpage, nope, 0, 0);
@@ -203,8 +197,8 @@ TEST_F(FPDFTextEmbeddertest, TextSearch) {
   FPDFText_FindClose(search);
 
   // Exact search unaffected by case sensitiity and whole word flags.
-  search = FPDFText_FindStart(
-      textpage, world, FPDF_MATCHCASE | FPDF_MATCHWHOLEWORD, 0);
+  search = FPDFText_FindStart(textpage, world,
+                              FPDF_MATCHCASE | FPDF_MATCHWHOLEWORD, 0);
   EXPECT_NE(nullptr, search);
   EXPECT_TRUE(FPDFText_FindNext(search));
   EXPECT_EQ(7, FPDFText_GetSchResultIndex(search));
@@ -293,27 +287,28 @@ TEST_F(FPDFTextEmbeddertest, WebLinks) {
 
   // Check buffer that doesn't have space for a terminating NUL.
   memset(fixed_buffer, 0xbd, sizeof(fixed_buffer));
-  EXPECT_EQ(sizeof(expected_url) - 1, FPDFLink_GetURL(
-      pagelink, 0, fixed_buffer, sizeof(expected_url) - 1));
-  EXPECT_TRUE(check_unsigned_shorts(
-      expected_url, fixed_buffer, sizeof(expected_url) - 1));
+  EXPECT_EQ(
+      sizeof(expected_url) - 1,
+      FPDFLink_GetURL(pagelink, 0, fixed_buffer, sizeof(expected_url) - 1));
+  EXPECT_TRUE(check_unsigned_shorts(expected_url, fixed_buffer,
+                                    sizeof(expected_url) - 1));
   EXPECT_EQ(0xbdbd, fixed_buffer[sizeof(expected_url) - 1]);
 
   // Retreive link with exactly-sized buffer.
   memset(fixed_buffer, 0xbd, sizeof(fixed_buffer));
-  EXPECT_EQ(sizeof(expected_url), FPDFLink_GetURL(
-      pagelink, 0, fixed_buffer, sizeof(expected_url)));
-  EXPECT_TRUE(check_unsigned_shorts(
-      expected_url, fixed_buffer, sizeof(expected_url)));
+  EXPECT_EQ(sizeof(expected_url),
+            FPDFLink_GetURL(pagelink, 0, fixed_buffer, sizeof(expected_url)));
+  EXPECT_TRUE(
+      check_unsigned_shorts(expected_url, fixed_buffer, sizeof(expected_url)));
   EXPECT_EQ(0u, fixed_buffer[sizeof(expected_url) - 1]);
   EXPECT_EQ(0xbdbd, fixed_buffer[sizeof(expected_url)]);
 
   // Retreive link with ample-sized-buffer.
   memset(fixed_buffer, 0xbd, sizeof(fixed_buffer));
-  EXPECT_EQ(sizeof(expected_url), FPDFLink_GetURL(
-      pagelink, 0, fixed_buffer, 128));
-  EXPECT_TRUE(check_unsigned_shorts(
-      expected_url, fixed_buffer, sizeof(expected_url)));
+  EXPECT_EQ(sizeof(expected_url),
+            FPDFLink_GetURL(pagelink, 0, fixed_buffer, 128));
+  EXPECT_TRUE(
+      check_unsigned_shorts(expected_url, fixed_buffer, sizeof(expected_url)));
   EXPECT_EQ(0u, fixed_buffer[sizeof(expected_url) - 1]);
   EXPECT_EQ(0xbdbd, fixed_buffer[sizeof(expected_url)]);
 
diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp
index d66252018a..159440de59 100644
--- a/fpdfsdk/src/fpdfview.cpp
+++ b/fpdfsdk/src/fpdfview.cpp
@@ -21,432 +21,433 @@
 #include "../include/fpdfxfa/fpdfxfa_page.h"
 #include "../include/fpdfxfa/fpdfxfa_util.h"
 
-CFPDF_FileStream::CFPDF_FileStream(FPDF_FILEHANDLER* pFS)
-{
-	m_pFS			=	pFS;
-	m_nCurPos		=	0;
+CFPDF_FileStream::CFPDF_FileStream(FPDF_FILEHANDLER* pFS) {
+  m_pFS = pFS;
+  m_nCurPos = 0;
 }
 
-IFX_FileStream* CFPDF_FileStream::Retain()
-{
-	return this;
+IFX_FileStream* CFPDF_FileStream::Retain() {
+  return this;
 }
 
-void CFPDF_FileStream::Release()
-{
-	if (m_pFS && m_pFS->Release)
-		m_pFS->Release(m_pFS->clientData);
-	delete this;
+void CFPDF_FileStream::Release() {
+  if (m_pFS && m_pFS->Release)
+    m_pFS->Release(m_pFS->clientData);
+  delete this;
 }
 
-FX_FILESIZE CFPDF_FileStream::GetSize()
-{
-	if (m_pFS && m_pFS->GetSize)
-		return (FX_FILESIZE)m_pFS->GetSize(m_pFS->clientData);
-	return 0;
+FX_FILESIZE CFPDF_FileStream::GetSize() {
+  if (m_pFS && m_pFS->GetSize)
+    return (FX_FILESIZE)m_pFS->GetSize(m_pFS->clientData);
+  return 0;
 }
 
-FX_BOOL CFPDF_FileStream::IsEOF()
-{
-	return m_nCurPos >= GetSize();
+FX_BOOL CFPDF_FileStream::IsEOF() {
+  return m_nCurPos >= GetSize();
 }
 
-FX_BOOL CFPDF_FileStream::ReadBlock(void* buffer, FX_FILESIZE offset, size_t size)
-{
-	if (!buffer || !size || !m_pFS->ReadBlock) return FALSE;
-
-	if (m_pFS->ReadBlock(m_pFS->clientData, (FPDF_DWORD)offset, buffer, (FPDF_DWORD)size) == 0)
-	{
-		m_nCurPos = offset + size;
-		return TRUE;
-	}
-	return FALSE;
+FX_BOOL CFPDF_FileStream::ReadBlock(void* buffer,
+                                    FX_FILESIZE offset,
+                                    size_t size) {
+  if (!buffer || !size || !m_pFS->ReadBlock)
+    return FALSE;
+
+  if (m_pFS->ReadBlock(m_pFS->clientData, (FPDF_DWORD)offset, buffer,
+                       (FPDF_DWORD)size) == 0) {
+    m_nCurPos = offset + size;
+    return TRUE;
+  }
+  return FALSE;
 }
 
-size_t CFPDF_FileStream::ReadBlock(void* buffer, size_t size)
-{
-	if (!buffer || !size || !m_pFS->ReadBlock) return 0;
-
-	FX_FILESIZE nSize = GetSize();
-	if (m_nCurPos >= nSize) return 0;
-	FX_FILESIZE dwAvail = nSize - m_nCurPos;
-	if (dwAvail < (FX_FILESIZE)size) size = (size_t)dwAvail;
-	if (m_pFS->ReadBlock(m_pFS->clientData, (FPDF_DWORD)m_nCurPos, buffer, (FPDF_DWORD)size) == 0)
-	{
-		m_nCurPos += size;
-		return size;
-	}
-
-	return 0;
+size_t CFPDF_FileStream::ReadBlock(void* buffer, size_t size) {
+  if (!buffer || !size || !m_pFS->ReadBlock)
+    return 0;
+
+  FX_FILESIZE nSize = GetSize();
+  if (m_nCurPos >= nSize)
+    return 0;
+  FX_FILESIZE dwAvail = nSize - m_nCurPos;
+  if (dwAvail < (FX_FILESIZE)size)
+    size = (size_t)dwAvail;
+  if (m_pFS->ReadBlock(m_pFS->clientData, (FPDF_DWORD)m_nCurPos, buffer,
+                       (FPDF_DWORD)size) == 0) {
+    m_nCurPos += size;
+    return size;
+  }
+
+  return 0;
 }
 
-FX_BOOL CFPDF_FileStream::WriteBlock(const void* buffer, FX_FILESIZE offset, size_t size)
-{
-	if (!m_pFS || !m_pFS->WriteBlock) return FALSE;
-
-	if(m_pFS->WriteBlock(m_pFS->clientData, (FPDF_DWORD)offset, buffer, (FPDF_DWORD)size) == 0)
-	{
-		m_nCurPos = offset + size;
-		return TRUE;
-	}
-	return FALSE;
+FX_BOOL CFPDF_FileStream::WriteBlock(const void* buffer,
+                                     FX_FILESIZE offset,
+                                     size_t size) {
+  if (!m_pFS || !m_pFS->WriteBlock)
+    return FALSE;
+
+  if (m_pFS->WriteBlock(m_pFS->clientData, (FPDF_DWORD)offset, buffer,
+                        (FPDF_DWORD)size) == 0) {
+    m_nCurPos = offset + size;
+    return TRUE;
+  }
+  return FALSE;
 }
 
-FX_BOOL CFPDF_FileStream::Flush()
-{
-	if (!m_pFS || !m_pFS->Flush) return TRUE;
+FX_BOOL CFPDF_FileStream::Flush() {
+  if (!m_pFS || !m_pFS->Flush)
+    return TRUE;
 
-	return m_pFS->Flush(m_pFS->clientData) == 0;
+  return m_pFS->Flush(m_pFS->clientData) == 0;
 }
 
-CPDF_CustomAccess::CPDF_CustomAccess(FPDF_FILEACCESS* pFileAccess)
-{
-	m_FileAccess = *pFileAccess;
-	m_BufferOffset = (FX_DWORD)-1;
+CPDF_CustomAccess::CPDF_CustomAccess(FPDF_FILEACCESS* pFileAccess) {
+  m_FileAccess = *pFileAccess;
+  m_BufferOffset = (FX_DWORD)-1;
 }
 
-FX_BOOL CPDF_CustomAccess::GetByte(FX_DWORD pos, uint8_t& ch)
-{
-	if (pos >= m_FileAccess.m_FileLen) return FALSE;
-	if (m_BufferOffset == (FX_DWORD)-1 || pos < m_BufferOffset || pos >= m_BufferOffset + 512) {
-		// Need to read from file access
-		m_BufferOffset = pos;
-		int size = 512;
-		if (pos + 512 > m_FileAccess.m_FileLen)
-			size = m_FileAccess.m_FileLen - pos;
-		if (!m_FileAccess.m_GetBlock(m_FileAccess.m_Param, m_BufferOffset, m_Buffer, size))
-			return FALSE;
-	}
-	ch = m_Buffer[pos - m_BufferOffset];
-	return TRUE;
+FX_BOOL CPDF_CustomAccess::GetByte(FX_DWORD pos, uint8_t& ch) {
+  if (pos >= m_FileAccess.m_FileLen)
+    return FALSE;
+  if (m_BufferOffset == (FX_DWORD)-1 || pos < m_BufferOffset ||
+      pos >= m_BufferOffset + 512) {
+    // Need to read from file access
+    m_BufferOffset = pos;
+    int size = 512;
+    if (pos + 512 > m_FileAccess.m_FileLen)
+      size = m_FileAccess.m_FileLen - pos;
+    if (!m_FileAccess.m_GetBlock(m_FileAccess.m_Param, m_BufferOffset, m_Buffer,
+                                 size))
+      return FALSE;
+  }
+  ch = m_Buffer[pos - m_BufferOffset];
+  return TRUE;
 }
 
-FX_BOOL CPDF_CustomAccess::GetBlock(FX_DWORD pos, uint8_t* pBuf, FX_DWORD size)
-{
-	if (pos + size > m_FileAccess.m_FileLen) return FALSE;
-	return m_FileAccess.m_GetBlock(m_FileAccess.m_Param, pos, pBuf, size);
+FX_BOOL CPDF_CustomAccess::GetBlock(FX_DWORD pos,
+                                    uint8_t* pBuf,
+                                    FX_DWORD size) {
+  if (pos + size > m_FileAccess.m_FileLen)
+    return FALSE;
+  return m_FileAccess.m_GetBlock(m_FileAccess.m_Param, pos, pBuf, size);
 }
 
-FX_BOOL CPDF_CustomAccess::ReadBlock(void* buffer, FX_FILESIZE offset, size_t size)
-{
-    if (offset < 0) {
-        return FALSE;
-    }
-    FX_SAFE_FILESIZE newPos = pdfium::base::checked_cast<FX_FILESIZE, size_t>(size);
-    newPos += offset;
-    if (!newPos.IsValid() || newPos.ValueOrDie() > m_FileAccess.m_FileLen) {
-        return FALSE;
-    }
-    return m_FileAccess.m_GetBlock(m_FileAccess.m_Param, offset,(uint8_t*) buffer, size);
+FX_BOOL CPDF_CustomAccess::ReadBlock(void* buffer,
+                                     FX_FILESIZE offset,
+                                     size_t size) {
+  if (offset < 0) {
+    return FALSE;
+  }
+  FX_SAFE_FILESIZE newPos =
+      pdfium::base::checked_cast<FX_FILESIZE, size_t>(size);
+  newPos += offset;
+  if (!newPos.IsValid() || newPos.ValueOrDie() > m_FileAccess.m_FileLen) {
+    return FALSE;
+  }
+  return m_FileAccess.m_GetBlock(m_FileAccess.m_Param, offset, (uint8_t*)buffer,
+                                 size);
 }
 
-//0 bit: FPDF_POLICY_MACHINETIME_ACCESS
+// 0 bit: FPDF_POLICY_MACHINETIME_ACCESS
 static FX_DWORD foxit_sandbox_policy = 0xFFFFFFFF;
 
-void FSDK_SetSandBoxPolicy(FPDF_DWORD policy, FPDF_BOOL enable)
-{
-	switch(policy)
-	{
-	case FPDF_POLICY_MACHINETIME_ACCESS:
-		{
-			if(enable)
-				foxit_sandbox_policy |= 0x01;
-			else
-				foxit_sandbox_policy &= 0xFFFFFFFE;
-		}
-		break;
-	default:
-		break;
-	}
+void FSDK_SetSandBoxPolicy(FPDF_DWORD policy, FPDF_BOOL enable) {
+  switch (policy) {
+    case FPDF_POLICY_MACHINETIME_ACCESS: {
+      if (enable)
+        foxit_sandbox_policy |= 0x01;
+      else
+        foxit_sandbox_policy &= 0xFFFFFFFE;
+    } break;
+    default:
+      break;
+  }
 }
 
-FPDF_BOOL FSDK_IsSandBoxPolicyEnabled(FPDF_DWORD policy)
-{
-	switch(policy)
-	{
-	case FPDF_POLICY_MACHINETIME_ACCESS:
-		{
-			if(foxit_sandbox_policy&0x01)
-				return TRUE;
-			else
-				return FALSE;
-		}
-		break;
-	default:
-		break;
-	}
-	return FALSE;
+FPDF_BOOL FSDK_IsSandBoxPolicyEnabled(FPDF_DWORD policy) {
+  switch (policy) {
+    case FPDF_POLICY_MACHINETIME_ACCESS: {
+      if (foxit_sandbox_policy & 0x01)
+        return TRUE;
+      else
+        return FALSE;
+    } break;
+    default:
+      break;
+  }
+  return FALSE;
 }
 
 CCodec_ModuleMgr* g_pCodecModule = nullptr;
 
-DLLEXPORT void STDCALL FPDF_InitLibrary()
-{
-    g_pCodecModule = new CCodec_ModuleMgr();
+DLLEXPORT void STDCALL FPDF_InitLibrary() {
+  g_pCodecModule = new CCodec_ModuleMgr();
 
-    CFX_GEModule::Create();
-    CFX_GEModule::Get()->SetCodecModule(g_pCodecModule);
+  CFX_GEModule::Create();
+  CFX_GEModule::Get()->SetCodecModule(g_pCodecModule);
 
-    CPDF_ModuleMgr::Create();
-    CPDF_ModuleMgr::Get()->SetCodecModule(g_pCodecModule);
-    CPDF_ModuleMgr::Get()->InitPageModule();
-    CPDF_ModuleMgr::Get()->InitRenderModule();
+  CPDF_ModuleMgr::Create();
+  CPDF_ModuleMgr::Get()->SetCodecModule(g_pCodecModule);
+  CPDF_ModuleMgr::Get()->InitPageModule();
+  CPDF_ModuleMgr::Get()->InitRenderModule();
 
-    CPDFXFA_App::GetInstance()->Initialize();
+  CPDFXFA_App::GetInstance()->Initialize();
 }
 
-DLLEXPORT void STDCALL FPDF_DestroyLibrary()
-{
-    CPDFXFA_App::ReleaseInstance();
-    CPDF_ModuleMgr::Destroy();
-    CFX_GEModule::Destroy();
+DLLEXPORT void STDCALL FPDF_DestroyLibrary() {
+  CPDFXFA_App::ReleaseInstance();
+  CPDF_ModuleMgr::Destroy();
+  CFX_GEModule::Destroy();
 
-    delete g_pCodecModule;
-    g_pCodecModule = nullptr;
+  delete g_pCodecModule;
+  g_pCodecModule = nullptr;
 }
 
 #ifndef _WIN32
 int g_LastError;
-void SetLastError(int err)
-{
-	g_LastError = err;
+void SetLastError(int err) {
+  g_LastError = err;
 }
 
-int GetLastError()
-{
-	return g_LastError;
+int GetLastError() {
+  return g_LastError;
 }
 #endif
 
-void ProcessParseError(FX_DWORD err_code)
-{
-	// Translate FPDFAPI error code to FPDFVIEW error code
-	switch (err_code) {
-		case PDFPARSE_ERROR_FILE:
-			err_code = FPDF_ERR_FILE;
-			break;
-		case PDFPARSE_ERROR_FORMAT:
-			err_code = FPDF_ERR_FORMAT;
-			break;
-		case PDFPARSE_ERROR_PASSWORD:
-			err_code = FPDF_ERR_PASSWORD;
-			break;
-		case PDFPARSE_ERROR_HANDLER:
-			err_code = FPDF_ERR_SECURITY;
-			break;
-	}
-	SetLastError(err_code);
+void ProcessParseError(FX_DWORD err_code) {
+  // Translate FPDFAPI error code to FPDFVIEW error code
+  switch (err_code) {
+    case PDFPARSE_ERROR_FILE:
+      err_code = FPDF_ERR_FILE;
+      break;
+    case PDFPARSE_ERROR_FORMAT:
+      err_code = FPDF_ERR_FORMAT;
+      break;
+    case PDFPARSE_ERROR_PASSWORD:
+      err_code = FPDF_ERR_PASSWORD;
+      break;
+    case PDFPARSE_ERROR_HANDLER:
+      err_code = FPDF_ERR_SECURITY;
+      break;
+  }
+  SetLastError(err_code);
 }
 
-DLLEXPORT void	STDCALL FPDF_SetSandBoxPolicy(FPDF_DWORD policy, FPDF_BOOL enable)
-{
-	return FSDK_SetSandBoxPolicy(policy, enable);
+DLLEXPORT void STDCALL FPDF_SetSandBoxPolicy(FPDF_DWORD policy,
+                                             FPDF_BOOL enable) {
+  return FSDK_SetSandBoxPolicy(policy, enable);
 }
 
-DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadDocument(FPDF_STRING file_path, FPDF_BYTESTRING password)
-{
-	CPDF_Parser* pParser = FX_NEW CPDF_Parser;
-	pParser->SetPassword(password);
-
-	FX_DWORD err_code = pParser->StartParse((const FX_CHAR*)file_path);
-	if (err_code) {
-		delete pParser;
-		ProcessParseError(err_code);
-		return NULL;
-	}
-	CPDF_Document* pPDFDoc = pParser->GetDocument();
-	if (!pPDFDoc)
-		return NULL;
-
-	CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
-	CPDFXFA_Document* pDocument = FX_NEW CPDFXFA_Document(pPDFDoc, pProvider);
-	return pDocument;
+DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadDocument(FPDF_STRING file_path,
+                                                  FPDF_BYTESTRING password) {
+  CPDF_Parser* pParser = FX_NEW CPDF_Parser;
+  pParser->SetPassword(password);
+
+  FX_DWORD err_code = pParser->StartParse((const FX_CHAR*)file_path);
+  if (err_code) {
+    delete pParser;
+    ProcessParseError(err_code);
+    return NULL;
+  }
+  CPDF_Document* pPDFDoc = pParser->GetDocument();
+  if (!pPDFDoc)
+    return NULL;
+
+  CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
+  CPDFXFA_Document* pDocument = FX_NEW CPDFXFA_Document(pPDFDoc, pProvider);
+  return pDocument;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDF_HasXFAField(FPDF_DOCUMENT document, int* docType)
-{
-	if (!document)
-		return FALSE;
+DLLEXPORT FPDF_BOOL STDCALL FPDF_HasXFAField(FPDF_DOCUMENT document,
+                                             int* docType) {
+  if (!document)
+    return FALSE;
 
-	CPDF_Document *pdfDoc = (static_cast<CPDFXFA_Document *>(document))->GetPDFDoc();
-	if (!pdfDoc)
-		return FALSE;
+  CPDF_Document* pdfDoc =
+      (static_cast<CPDFXFA_Document*>(document))->GetPDFDoc();
+  if (!pdfDoc)
+    return FALSE;
 
-	CPDF_Dictionary* pRoot = pdfDoc->GetRoot();
-	if (!pRoot)
-		return FALSE;
+  CPDF_Dictionary* pRoot = pdfDoc->GetRoot();
+  if (!pRoot)
+    return FALSE;
 
-	CPDF_Dictionary* pAcroForm = pRoot->GetDict("AcroForm");
-	if (!pAcroForm)
-		return FALSE;
+  CPDF_Dictionary* pAcroForm = pRoot->GetDict("AcroForm");
+  if (!pAcroForm)
+    return FALSE;
 
-	CPDF_Object* pXFA = pAcroForm->GetElement("XFA");
-	if (!pXFA)
-		return FALSE;
+  CPDF_Object* pXFA = pAcroForm->GetElement("XFA");
+  if (!pXFA)
+    return FALSE;
 
-	FX_BOOL bDynamicXFA = pRoot->GetBoolean("NeedsRendering", FALSE);
+  FX_BOOL bDynamicXFA = pRoot->GetBoolean("NeedsRendering", FALSE);
 
-	if (bDynamicXFA)
-		*docType = DOCTYPE_DYNIMIC_XFA;
-	else
-		*docType = DOCTYPE_STATIC_XFA;
+  if (bDynamicXFA)
+    *docType = DOCTYPE_DYNIMIC_XFA;
+  else
+    *docType = DOCTYPE_STATIC_XFA;
 
-	return TRUE;
+  return TRUE;
 }
 
-DLLEXPORT  FPDF_BOOL STDCALL FPDF_LoadXFA(FPDF_DOCUMENT document)
-{
-	return document && (static_cast<CPDFXFA_Document *>(document))->LoadXFADoc();
+DLLEXPORT FPDF_BOOL STDCALL FPDF_LoadXFA(FPDF_DOCUMENT document) {
+  return document && (static_cast<CPDFXFA_Document*>(document))->LoadXFADoc();
 }
 
+extern void CheckUnSupportError(CPDF_Document* pDoc, FX_DWORD err_code);
 
-extern void CheckUnSupportError(CPDF_Document * pDoc, FX_DWORD err_code);
-
-class CMemFile final : public IFX_FileRead
-{
-public:
-	CMemFile(uint8_t* pBuf, FX_FILESIZE size):m_pBuf(pBuf),m_size(size) {}
-
-	virtual void			Release() {delete this;}
-	virtual FX_FILESIZE		GetSize() {return m_size;}
-	virtual FX_BOOL			ReadBlock(void* buffer, FX_FILESIZE offset, size_t size)
-	{
-            if (offset < 0) {
-                return FALSE;
-            }
-            FX_SAFE_FILESIZE newPos = pdfium::base::checked_cast<FX_FILESIZE, size_t>(size);
-            newPos += offset;
-            if (!newPos.IsValid() || newPos.ValueOrDie() > (FX_DWORD)m_size) {
-                return FALSE;
-            }
-	    FXSYS_memcpy(buffer, m_pBuf+offset, size);
-	    return TRUE;
-	}
-private:
-	uint8_t* m_pBuf;
-	FX_FILESIZE m_size;
+class CMemFile final : public IFX_FileRead {
+ public:
+  CMemFile(uint8_t* pBuf, FX_FILESIZE size) : m_pBuf(pBuf), m_size(size) {}
+
+  virtual void Release() { delete this; }
+  virtual FX_FILESIZE GetSize() { return m_size; }
+  virtual FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) {
+    if (offset < 0) {
+      return FALSE;
+    }
+    FX_SAFE_FILESIZE newPos =
+        pdfium::base::checked_cast<FX_FILESIZE, size_t>(size);
+    newPos += offset;
+    if (!newPos.IsValid() || newPos.ValueOrDie() > (FX_DWORD)m_size) {
+      return FALSE;
+    }
+    FXSYS_memcpy(buffer, m_pBuf + offset, size);
+    return TRUE;
+  }
+
+ private:
+  uint8_t* m_pBuf;
+  FX_FILESIZE m_size;
 };
-DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadMemDocument(const void* data_buf, int size, FPDF_BYTESTRING password)
-{
-	CPDF_Parser* pParser = FX_NEW CPDF_Parser;
-	pParser->SetPassword(password);
-	CMemFile* pMemFile = new CMemFile((uint8_t*)data_buf, size);
-	FX_DWORD err_code = pParser->StartParse(pMemFile);
-	if (err_code) {
-		delete pParser;
-		ProcessParseError(err_code);
-		return NULL;
-	}
-	CPDF_Document * pDoc = NULL;
-	pDoc = pParser?pParser->GetDocument():NULL;
-	CheckUnSupportError(pDoc, err_code);
-	CPDF_Document* pPDFDoc = pParser->GetDocument();
-	if (!pPDFDoc)
-		return NULL;
-
-	CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
-	CPDFXFA_Document* pDocument = FX_NEW CPDFXFA_Document(pPDFDoc, pProvider);
-	return pDocument;
+DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadMemDocument(const void* data_buf,
+                                                     int size,
+                                                     FPDF_BYTESTRING password) {
+  CPDF_Parser* pParser = FX_NEW CPDF_Parser;
+  pParser->SetPassword(password);
+  CMemFile* pMemFile = new CMemFile((uint8_t*)data_buf, size);
+  FX_DWORD err_code = pParser->StartParse(pMemFile);
+  if (err_code) {
+    delete pParser;
+    ProcessParseError(err_code);
+    return NULL;
+  }
+  CPDF_Document* pDoc = NULL;
+  pDoc = pParser ? pParser->GetDocument() : NULL;
+  CheckUnSupportError(pDoc, err_code);
+  CPDF_Document* pPDFDoc = pParser->GetDocument();
+  if (!pPDFDoc)
+    return NULL;
+
+  CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
+  CPDFXFA_Document* pDocument = FX_NEW CPDFXFA_Document(pPDFDoc, pProvider);
+  return pDocument;
 }
 
-DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadCustomDocument(FPDF_FILEACCESS* pFileAccess, FPDF_BYTESTRING password)
-{
-	CPDF_Parser* pParser = FX_NEW CPDF_Parser;
-	pParser->SetPassword(password);
-	CPDF_CustomAccess* pFile = FX_NEW CPDF_CustomAccess(pFileAccess);
-	FX_DWORD err_code = pParser->StartParse(pFile);
-	if (err_code) {
-		delete pParser;
-		ProcessParseError(err_code);
-		return NULL;
-	}
-	CPDF_Document * pDoc = NULL;
-	pDoc = pParser?pParser->GetDocument():NULL;
-	CheckUnSupportError(pDoc, err_code);
-	CPDF_Document* pPDFDoc = pParser->GetDocument();
-	if (!pPDFDoc)
-		return NULL;
-
-	CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
-	CPDFXFA_Document* pDocument = FX_NEW CPDFXFA_Document(pPDFDoc, pProvider);
-	return pDocument;
+DLLEXPORT FPDF_DOCUMENT STDCALL
+FPDF_LoadCustomDocument(FPDF_FILEACCESS* pFileAccess,
+                        FPDF_BYTESTRING password) {
+  CPDF_Parser* pParser = FX_NEW CPDF_Parser;
+  pParser->SetPassword(password);
+  CPDF_CustomAccess* pFile = FX_NEW CPDF_CustomAccess(pFileAccess);
+  FX_DWORD err_code = pParser->StartParse(pFile);
+  if (err_code) {
+    delete pParser;
+    ProcessParseError(err_code);
+    return NULL;
+  }
+  CPDF_Document* pDoc = NULL;
+  pDoc = pParser ? pParser->GetDocument() : NULL;
+  CheckUnSupportError(pDoc, err_code);
+  CPDF_Document* pPDFDoc = pParser->GetDocument();
+  if (!pPDFDoc)
+    return NULL;
+
+  CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
+  CPDFXFA_Document* pDocument = FX_NEW CPDFXFA_Document(pPDFDoc, pProvider);
+  return pDocument;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDF_GetFileVersion(FPDF_DOCUMENT doc, int* fileVersion)
-{
-	if(!doc||!fileVersion) return FALSE;
-	*fileVersion = 0;
-	CPDFXFA_Document* pDoc = (CPDFXFA_Document*)doc;
-	CPDF_Document* pPDFDoc = pDoc->GetPDFDoc();
-	if (!pPDFDoc) return (FX_DWORD)-1;
-	CPDF_Parser* pParser = 	(CPDF_Parser*)pPDFDoc->GetParser();
-
-	if(!pParser)
-		return FALSE;
-	*fileVersion = pParser->GetFileVersion();
-	return TRUE;
+DLLEXPORT FPDF_BOOL STDCALL FPDF_GetFileVersion(FPDF_DOCUMENT doc,
+                                                int* fileVersion) {
+  if (!doc || !fileVersion)
+    return FALSE;
+  *fileVersion = 0;
+  CPDFXFA_Document* pDoc = (CPDFXFA_Document*)doc;
+  CPDF_Document* pPDFDoc = pDoc->GetPDFDoc();
+  if (!pPDFDoc)
+    return (FX_DWORD)-1;
+  CPDF_Parser* pParser = (CPDF_Parser*)pPDFDoc->GetParser();
+
+  if (!pParser)
+    return FALSE;
+  *fileVersion = pParser->GetFileVersion();
+  return TRUE;
 }
 
-// jabdelmalek: changed return type from FX_DWORD to build on Linux (and match header).
-DLLEXPORT unsigned long STDCALL FPDF_GetDocPermissions(FPDF_DOCUMENT document)
-{
-	if (document == NULL) return 0;
-	CPDFXFA_Document*pDoc = (CPDFXFA_Document*)document;
-	CPDF_Document* pPDFDoc = pDoc->GetPDFDoc();
-	if (!pPDFDoc) return (FX_DWORD)-1;
-	CPDF_Parser* pParser = 	(CPDF_Parser*)pPDFDoc->GetParser();
-	CPDF_Dictionary* pDict = pParser->GetEncryptDict();
-	if (pDict == NULL) return (FX_DWORD)-1;
-
-	return pDict->GetInteger("P");
+// jabdelmalek: changed return type from FX_DWORD to build on Linux (and match
+// header).
+DLLEXPORT unsigned long STDCALL FPDF_GetDocPermissions(FPDF_DOCUMENT document) {
+  if (document == NULL)
+    return 0;
+  CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
+  CPDF_Document* pPDFDoc = pDoc->GetPDFDoc();
+  if (!pPDFDoc)
+    return (FX_DWORD)-1;
+  CPDF_Parser* pParser = (CPDF_Parser*)pPDFDoc->GetParser();
+  CPDF_Dictionary* pDict = pParser->GetEncryptDict();
+  if (pDict == NULL)
+    return (FX_DWORD)-1;
+
+  return pDict->GetInteger("P");
 }
 
-DLLEXPORT int STDCALL FPDF_GetSecurityHandlerRevision(FPDF_DOCUMENT document)
-{
-    if (document == NULL) return -1;
-	CPDF_Document*pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-    CPDF_Parser* pParser = (CPDF_Parser*)pDoc->GetParser();
-    CPDF_Dictionary* pDict = pParser->GetEncryptDict();
-    if (pDict == NULL) return -1;
+DLLEXPORT int STDCALL FPDF_GetSecurityHandlerRevision(FPDF_DOCUMENT document) {
+  if (document == NULL)
+    return -1;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  CPDF_Parser* pParser = (CPDF_Parser*)pDoc->GetParser();
+  CPDF_Dictionary* pDict = pParser->GetEncryptDict();
+  if (pDict == NULL)
+    return -1;
 
-    return pDict->GetInteger("R");
+  return pDict->GetInteger("R");
 }
 
-DLLEXPORT int STDCALL FPDF_GetPageCount(FPDF_DOCUMENT document)
-{
-	if (document == NULL) return 0;
-	CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
-	return pDoc->GetPageCount();
-//	return ((CPDF_Document*)document)->GetPageCount();
+DLLEXPORT int STDCALL FPDF_GetPageCount(FPDF_DOCUMENT document) {
+  if (document == NULL)
+    return 0;
+  CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
+  return pDoc->GetPageCount();
+  //	return ((CPDF_Document*)document)->GetPageCount();
 }
 
-DLLEXPORT FPDF_PAGE STDCALL FPDF_LoadPage(FPDF_DOCUMENT document, int page_index)
-{
-	if (document == NULL) return NULL;
-	CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
-	if (page_index < 0 || page_index >= pDoc->GetPageCount()) return NULL;
-//	CPDF_Parser* pParser = (CPDF_Parser*)document;
-	return pDoc->GetPage(page_index);
+DLLEXPORT FPDF_PAGE STDCALL FPDF_LoadPage(FPDF_DOCUMENT document,
+                                          int page_index) {
+  if (document == NULL)
+    return NULL;
+  CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
+  if (page_index < 0 || page_index >= pDoc->GetPageCount())
+    return NULL;
+  //	CPDF_Parser* pParser = (CPDF_Parser*)document;
+  return pDoc->GetPage(page_index);
 }
 
-DLLEXPORT double STDCALL FPDF_GetPageWidth(FPDF_PAGE page)
-{
-	if (!page)
-		return 0.0;
-	return ((CPDFXFA_Page*)page)->GetPageWidth();
-//	return ((CPDF_Page*)page)->GetPageWidth();
+DLLEXPORT double STDCALL FPDF_GetPageWidth(FPDF_PAGE page) {
+  if (!page)
+    return 0.0;
+  return ((CPDFXFA_Page*)page)->GetPageWidth();
+  //	return ((CPDF_Page*)page)->GetPageWidth();
 }
 
-DLLEXPORT double STDCALL FPDF_GetPageHeight(FPDF_PAGE page)
-{
-	if (!page) return 0.0;
-//	return ((CPDF_Page*)page)->GetPageHeight();
-	return ((CPDFXFA_Page*)page)->GetPageHeight();
+DLLEXPORT double STDCALL FPDF_GetPageHeight(FPDF_PAGE page) {
+  if (!page)
+    return 0.0;
+  //	return ((CPDF_Page*)page)->GetPageHeight();
+  return ((CPDFXFA_Page*)page)->GetPageHeight();
 }
 
-void DropContext(void* data)
-{
-	delete (CRenderContext*)data;
+void DropContext(void* data) {
+  delete (CRenderContext*)data;
 }
 
 #if defined(_DEBUG) || defined(DEBUG)
@@ -454,580 +455,640 @@ void DropContext(void* data)
 #endif
 
 #if defined(_WIN32)
-DLLEXPORT void STDCALL FPDF_RenderPage(HDC dc, FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y,
-						int rotate, int flags)
-{
-	if (page==NULL) return;
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage) return;
-
-	CRenderContext* pContext = FX_NEW CRenderContext;
-	pPage->SetPrivateData((void*)1, pContext, DropContext);
+DLLEXPORT void STDCALL FPDF_RenderPage(HDC dc,
+                                       FPDF_PAGE page,
+                                       int start_x,
+                                       int start_y,
+                                       int size_x,
+                                       int size_y,
+                                       int rotate,
+                                       int flags) {
+  if (page == NULL)
+    return;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return;
+
+  CRenderContext* pContext = FX_NEW CRenderContext;
+  pPage->SetPrivateData((void*)1, pContext, DropContext);
 
 #ifndef _WIN32_WCE
-	CFX_DIBitmap* pBitmap = NULL;
-	FX_BOOL bBackgroundAlphaNeeded=FALSE;
-	bBackgroundAlphaNeeded = pPage->BackgroundAlphaNeeded();
-	if (bBackgroundAlphaNeeded)
-	{
-
-		pBitmap = FX_NEW CFX_DIBitmap;
-		pBitmap->Create(size_x, size_y, FXDIB_Argb);
-		pBitmap->Clear(0x00ffffff);
+  CFX_DIBitmap* pBitmap = NULL;
+  FX_BOOL bBackgroundAlphaNeeded = FALSE;
+  bBackgroundAlphaNeeded = pPage->BackgroundAlphaNeeded();
+  if (bBackgroundAlphaNeeded) {
+    pBitmap = FX_NEW CFX_DIBitmap;
+    pBitmap->Create(size_x, size_y, FXDIB_Argb);
+    pBitmap->Clear(0x00ffffff);
 #ifdef _SKIA_SUPPORT_
-		pContext->m_pDevice = FX_NEW CFX_SkiaDevice;
-		((CFX_SkiaDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)pBitmap);
+    pContext->m_pDevice = FX_NEW CFX_SkiaDevice;
+    ((CFX_SkiaDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)pBitmap);
 #else
-		pContext->m_pDevice = FX_NEW CFX_FxgeDevice;
-		((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)pBitmap);
+    pContext->m_pDevice = FX_NEW CFX_FxgeDevice;
+    ((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)pBitmap);
 #endif
-	}
-	else
-	    pContext->m_pDevice = FX_NEW CFX_WindowsDevice(dc);
-
-	FPDF_RenderPage_Retail(pContext, page, start_x, start_y, size_x, size_y,
-                           rotate, flags, TRUE, NULL);
-
-	if (bBackgroundAlphaNeeded)
-	{
-		if (pBitmap)
-		{
-			CFX_WindowsDevice WinDC(dc);
-
- 			if (WinDC.GetDeviceCaps(FXDC_DEVICE_CLASS) == FXDC_PRINTER)
- 			{
-				CFX_DIBitmap* pDst = FX_NEW CFX_DIBitmap;
-				int pitch = pBitmap->GetPitch();
-				pDst->Create(size_x, size_y, FXDIB_Rgb32);
-				FXSYS_memset(pDst->GetBuffer(), -1, pitch*size_y);
-				pDst->CompositeBitmap(0, 0, size_x, size_y, pBitmap, 0, 0, FXDIB_BLEND_NORMAL, NULL, FALSE, NULL);
-				WinDC.StretchDIBits(pDst,0,0,size_x,size_y);
-				delete pDst;
- 			}
- 			else
- 				WinDC.SetDIBits(pBitmap,0,0);
-
-		}
-	}
+  } else
+    pContext->m_pDevice = FX_NEW CFX_WindowsDevice(dc);
+
+  FPDF_RenderPage_Retail(pContext, page, start_x, start_y, size_x, size_y,
+                         rotate, flags, TRUE, NULL);
+
+  if (bBackgroundAlphaNeeded) {
+    if (pBitmap) {
+      CFX_WindowsDevice WinDC(dc);
+
+      if (WinDC.GetDeviceCaps(FXDC_DEVICE_CLASS) == FXDC_PRINTER) {
+        CFX_DIBitmap* pDst = FX_NEW CFX_DIBitmap;
+        int pitch = pBitmap->GetPitch();
+        pDst->Create(size_x, size_y, FXDIB_Rgb32);
+        FXSYS_memset(pDst->GetBuffer(), -1, pitch * size_y);
+        pDst->CompositeBitmap(0, 0, size_x, size_y, pBitmap, 0, 0,
+                              FXDIB_BLEND_NORMAL, NULL, FALSE, NULL);
+        WinDC.StretchDIBits(pDst, 0, 0, size_x, size_y);
+        delete pDst;
+      } else
+        WinDC.SetDIBits(pBitmap, 0, 0);
+    }
+  }
 #else
-	// get clip region
-	RECT rect, cliprect;
-	rect.left = start_x;
-	rect.top = start_y;
-	rect.right = start_x + size_x;
-	rect.bottom = start_y + size_y;
-	GetClipBox(dc, &cliprect);
-	IntersectRect(&rect, &rect, &cliprect);
-	int width = rect.right - rect.left;
-	int height = rect.bottom - rect.top;
+  // get clip region
+  RECT rect, cliprect;
+  rect.left = start_x;
+  rect.top = start_y;
+  rect.right = start_x + size_x;
+  rect.bottom = start_y + size_y;
+  GetClipBox(dc, &cliprect);
+  IntersectRect(&rect, &rect, &cliprect);
+  int width = rect.right - rect.left;
+  int height = rect.bottom - rect.top;
 
 #ifdef DEBUG_TRACE
-	{
-		char str[128];
-		memset(str, 0, sizeof(str));
-		FXSYS_snprintf(str, sizeof(str) - 1, "Rendering DIB %d x %d", width, height);
-		CPDF_ModuleMgr::Get()->ReportError(999, str);
-	}
+  {
+    char str[128];
+    memset(str, 0, sizeof(str));
+    FXSYS_snprintf(str, sizeof(str) - 1, "Rendering DIB %d x %d", width,
+                   height);
+    CPDF_ModuleMgr::Get()->ReportError(999, str);
+  }
 #endif
 
-	// Create a DIB section
-	LPVOID pBuffer;
-	BITMAPINFOHEADER bmih;
-	FXSYS_memset(&bmih, 0, sizeof bmih);
-	bmih.biSize = sizeof bmih;
-	bmih.biBitCount = 24;
-	bmih.biHeight = -height;
-	bmih.biPlanes = 1;
-	bmih.biWidth = width;
-	pContext->m_hBitmap = CreateDIBSection(dc, (BITMAPINFO*)&bmih, DIB_RGB_COLORS, &pBuffer, NULL, 0);
-	if (pContext->m_hBitmap == NULL) {
+  // Create a DIB section
+  LPVOID pBuffer;
+  BITMAPINFOHEADER bmih;
+  FXSYS_memset(&bmih, 0, sizeof bmih);
+  bmih.biSize = sizeof bmih;
+  bmih.biBitCount = 24;
+  bmih.biHeight = -height;
+  bmih.biPlanes = 1;
+  bmih.biWidth = width;
+  pContext->m_hBitmap = CreateDIBSection(dc, (BITMAPINFO*)&bmih, DIB_RGB_COLORS,
+                                         &pBuffer, NULL, 0);
+  if (pContext->m_hBitmap == NULL) {
 #if defined(DEBUG) || defined(_DEBUG)
-		char str[128];
-		memset(str, 0, sizeof(str));
-		FXSYS_snprintf(str, sizeof(str) - 1, "Error CreateDIBSection: %d x %d, error code = %d", width, height, GetLastError());
-		CPDF_ModuleMgr::Get()->ReportError(FPDFERR_OUT_OF_MEMORY, str);
+    char str[128];
+    memset(str, 0, sizeof(str));
+    FXSYS_snprintf(str, sizeof(str) - 1,
+                   "Error CreateDIBSection: %d x %d, error code = %d", width,
+                   height, GetLastError());
+    CPDF_ModuleMgr::Get()->ReportError(FPDFERR_OUT_OF_MEMORY, str);
 #else
-		CPDF_ModuleMgr::Get()->ReportError(FPDFERR_OUT_OF_MEMORY, NULL);
+    CPDF_ModuleMgr::Get()->ReportError(FPDFERR_OUT_OF_MEMORY, NULL);
 #endif
-	}
-	FXSYS_memset(pBuffer, 0xff, height*((width*3+3)/4*4));
+  }
+  FXSYS_memset(pBuffer, 0xff, height * ((width * 3 + 3) / 4 * 4));
 
 #ifdef DEBUG_TRACE
-	{
-		CPDF_ModuleMgr::Get()->ReportError(999, "DIBSection created");
-	}
+  { CPDF_ModuleMgr::Get()->ReportError(999, "DIBSection created"); }
 #endif
 
-	// Create a device with this external buffer
-	pContext->m_pBitmap = new CFX_DIBitmap;
-	pContext->m_pBitmap->Create(width, height, FXDIB_Rgb, (uint8_t*)pBuffer);
-	pContext->m_pDevice = new CPDF_FxgeDevice;
-	((CPDF_FxgeDevice*)pContext->m_pDevice)->Attach(pContext->m_pBitmap);
+  // Create a device with this external buffer
+  pContext->m_pBitmap = new CFX_DIBitmap;
+  pContext->m_pBitmap->Create(width, height, FXDIB_Rgb, (uint8_t*)pBuffer);
+  pContext->m_pDevice = new CPDF_FxgeDevice;
+  ((CPDF_FxgeDevice*)pContext->m_pDevice)->Attach(pContext->m_pBitmap);
 
 #ifdef DEBUG_TRACE
-	CPDF_ModuleMgr::Get()->ReportError(999, "Ready for PDF rendering");
+  CPDF_ModuleMgr::Get()->ReportError(999, "Ready for PDF rendering");
 #endif
 
-	// output to bitmap device
-	FPDF_RenderPage_Retail(pContext, page, start_x - rect.left,
-                           start_y - rect.top, size_x, size_y, rotate, flags);
+  // output to bitmap device
+  FPDF_RenderPage_Retail(pContext, page, start_x - rect.left,
+                         start_y - rect.top, size_x, size_y, rotate, flags);
 
 #ifdef DEBUG_TRACE
-	CPDF_ModuleMgr::Get()->ReportError(999, "Finished PDF rendering");
+  CPDF_ModuleMgr::Get()->ReportError(999, "Finished PDF rendering");
 #endif
 
-	// Now output to real device
-	HDC hMemDC = CreateCompatibleDC(dc);
-	if (hMemDC == NULL) {
+  // Now output to real device
+  HDC hMemDC = CreateCompatibleDC(dc);
+  if (hMemDC == NULL) {
 #if defined(DEBUG) || defined(_DEBUG)
-		char str[128];
-		memset(str, 0, sizeof(str));
-		FXSYS_snprintf(str, sizeof(str) - 1, "Error CreateCompatibleDC. Error code = %d", GetLastError());
-		CPDF_ModuleMgr::Get()->ReportError(FPDFERR_OUT_OF_MEMORY, str);
+    char str[128];
+    memset(str, 0, sizeof(str));
+    FXSYS_snprintf(str, sizeof(str) - 1,
+                   "Error CreateCompatibleDC. Error code = %d", GetLastError());
+    CPDF_ModuleMgr::Get()->ReportError(FPDFERR_OUT_OF_MEMORY, str);
 #else
-		CPDF_ModuleMgr::Get()->ReportError(FPDFERR_OUT_OF_MEMORY, NULL);
+    CPDF_ModuleMgr::Get()->ReportError(FPDFERR_OUT_OF_MEMORY, NULL);
 #endif
-	}
+  }
 
-	HGDIOBJ hOldBitmap = SelectObject(hMemDC, pContext->m_hBitmap);
+  HGDIOBJ hOldBitmap = SelectObject(hMemDC, pContext->m_hBitmap);
 
 #ifdef DEBUG_TRACE
-	CPDF_ModuleMgr::Get()->ReportError(999, "Ready for screen rendering");
+  CPDF_ModuleMgr::Get()->ReportError(999, "Ready for screen rendering");
 #endif
 
-	BitBlt(dc, rect.left, rect.top, width, height, hMemDC, 0, 0, SRCCOPY);
-	SelectObject(hMemDC, hOldBitmap);
-	DeleteDC(hMemDC);
+  BitBlt(dc, rect.left, rect.top, width, height, hMemDC, 0, 0, SRCCOPY);
+  SelectObject(hMemDC, hOldBitmap);
+  DeleteDC(hMemDC);
 
 #ifdef DEBUG_TRACE
-	CPDF_ModuleMgr::Get()->ReportError(999, "Finished screen rendering");
+  CPDF_ModuleMgr::Get()->ReportError(999, "Finished screen rendering");
 #endif
 
 #endif
-    if (bBackgroundAlphaNeeded) {
-        delete pBitmap;
-        pBitmap = NULL;
-    }
-    delete pContext;
-    pPage->RemovePrivateData((void*)1);
+  if (bBackgroundAlphaNeeded) {
+    delete pBitmap;
+    pBitmap = NULL;
+  }
+  delete pContext;
+  pPage->RemovePrivateData((void*)1);
 }
 #endif
 
-DLLEXPORT void STDCALL FPDF_RenderPageBitmap(FPDF_BITMAP bitmap, FPDF_PAGE page, int start_x, int start_y,
-						int size_x, int size_y, int rotate, int flags)
-{
-	if (bitmap == NULL || page == NULL) return;
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (!pPage) return;
-
-	CRenderContext* pContext = FX_NEW CRenderContext;
-	pPage->SetPrivateData((void*)1, pContext, DropContext);
+DLLEXPORT void STDCALL FPDF_RenderPageBitmap(FPDF_BITMAP bitmap,
+                                             FPDF_PAGE page,
+                                             int start_x,
+                                             int start_y,
+                                             int size_x,
+                                             int size_y,
+                                             int rotate,
+                                             int flags) {
+  if (bitmap == NULL || page == NULL)
+    return;
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (!pPage)
+    return;
+
+  CRenderContext* pContext = FX_NEW CRenderContext;
+  pPage->SetPrivateData((void*)1, pContext, DropContext);
 #ifdef _SKIA_SUPPORT_
-	pContext->m_pDevice = FX_NEW CFX_SkiaDevice;
+  pContext->m_pDevice = FX_NEW CFX_SkiaDevice;
 
-	if (flags & FPDF_REVERSE_BYTE_ORDER)
-		((CFX_SkiaDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap,0,TRUE);
-	else
-		((CFX_SkiaDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap);
+  if (flags & FPDF_REVERSE_BYTE_ORDER)
+    ((CFX_SkiaDevice*)pContext->m_pDevice)
+        ->Attach((CFX_DIBitmap*)bitmap, 0, TRUE);
+  else
+    ((CFX_SkiaDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap);
 #else
-	pContext->m_pDevice = FX_NEW CFX_FxgeDevice;
+  pContext->m_pDevice = FX_NEW CFX_FxgeDevice;
 
-	if (flags & FPDF_REVERSE_BYTE_ORDER)
-		((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap,0,TRUE);
-	else
-		((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap);
+  if (flags & FPDF_REVERSE_BYTE_ORDER)
+    ((CFX_FxgeDevice*)pContext->m_pDevice)
+        ->Attach((CFX_DIBitmap*)bitmap, 0, TRUE);
+  else
+    ((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap);
 #endif
 
-	FPDF_RenderPage_Retail(pContext, page, start_x, start_y, size_x, size_y,
-                           rotate, flags, TRUE, NULL);
+  FPDF_RenderPage_Retail(pContext, page, start_x, start_y, size_x, size_y,
+                         rotate, flags, TRUE, NULL);
 
-	delete pContext;
-	pPage->RemovePrivateData((void*)1);
+  delete pContext;
+  pPage->RemovePrivateData((void*)1);
 }
 
-DLLEXPORT void STDCALL FPDF_ClosePage(FPDF_PAGE page)
-{
-	if (!page) return;
+DLLEXPORT void STDCALL FPDF_ClosePage(FPDF_PAGE page) {
+  if (!page)
+    return;
 
-	CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
-	pPage->Release();
+  CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
+  pPage->Release();
 }
 
-DLLEXPORT void STDCALL FPDF_CloseDocument(FPDF_DOCUMENT document)
-{
-	if (!document)
-		return;
+DLLEXPORT void STDCALL FPDF_CloseDocument(FPDF_DOCUMENT document) {
+  if (!document)
+    return;
 
-	CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
-	delete pDoc;
+  CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
+  delete pDoc;
 }
 
-DLLEXPORT unsigned long STDCALL FPDF_GetLastError()
-{
-	return GetLastError();
+DLLEXPORT unsigned long STDCALL FPDF_GetLastError() {
+  return GetLastError();
 }
 
-DLLEXPORT void STDCALL FPDF_DeviceToPage(FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y,
-						int rotate, int device_x, int device_y, double* page_x, double* page_y)
-{
-	if (page == NULL || page_x == NULL || page_y == NULL) return;
-	CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
-
-	pPage->DeviceToPage(start_x, start_y, size_x, size_y, rotate, device_x, device_y, page_x, page_y);
+DLLEXPORT void STDCALL FPDF_DeviceToPage(FPDF_PAGE page,
+                                         int start_x,
+                                         int start_y,
+                                         int size_x,
+                                         int size_y,
+                                         int rotate,
+                                         int device_x,
+                                         int device_y,
+                                         double* page_x,
+                                         double* page_y) {
+  if (page == NULL || page_x == NULL || page_y == NULL)
+    return;
+  CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
+
+  pPage->DeviceToPage(start_x, start_y, size_x, size_y, rotate, device_x,
+                      device_y, page_x, page_y);
 }
 
-DLLEXPORT void STDCALL FPDF_PageToDevice(FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y,
-						int rotate, double page_x, double page_y, int* device_x, int* device_y)
-{
-	if (page == NULL || device_x == NULL || device_y == NULL) return;
-	CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
-	pPage->PageToDevice(start_x, start_y, size_x, size_y, rotate, page_x, page_y, device_x, device_y);
+DLLEXPORT void STDCALL FPDF_PageToDevice(FPDF_PAGE page,
+                                         int start_x,
+                                         int start_y,
+                                         int size_x,
+                                         int size_y,
+                                         int rotate,
+                                         double page_x,
+                                         double page_y,
+                                         int* device_x,
+                                         int* device_y) {
+  if (page == NULL || device_x == NULL || device_y == NULL)
+    return;
+  CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
+  pPage->PageToDevice(start_x, start_y, size_x, size_y, rotate, page_x, page_y,
+                      device_x, device_y);
 }
 
-DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_Create(int width, int height, int alpha)
-{
-    nonstd::unique_ptr<CFX_DIBitmap> pBitmap(new CFX_DIBitmap);
-    if (!pBitmap->Create(width, height, alpha ? FXDIB_Argb : FXDIB_Rgb32)) {
-        return NULL;
-    }
-    return pBitmap.release();
+DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_Create(int width,
+                                                int height,
+                                                int alpha) {
+  nonstd::unique_ptr<CFX_DIBitmap> pBitmap(new CFX_DIBitmap);
+  if (!pBitmap->Create(width, height, alpha ? FXDIB_Argb : FXDIB_Rgb32)) {
+    return NULL;
+  }
+  return pBitmap.release();
 }
 
-DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_CreateEx(int width, int height, int format, void* first_scan, int stride)
-{
-	FXDIB_Format fx_format;
-	switch (format) {
-		case FPDFBitmap_Gray:
-			fx_format = FXDIB_8bppRgb;
-			break;
-		case FPDFBitmap_BGR:
-			fx_format = FXDIB_Rgb;
-			break;
-		case FPDFBitmap_BGRx:
-			fx_format = FXDIB_Rgb32;
-			break;
-		case FPDFBitmap_BGRA:
-			fx_format = FXDIB_Argb;
-			break;
-		default:
-			return NULL;
-	}
-	CFX_DIBitmap* pBitmap = new CFX_DIBitmap;
-	pBitmap->Create(width, height, fx_format, (uint8_t*)first_scan, stride);
-	return pBitmap;
+DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_CreateEx(int width,
+                                                  int height,
+                                                  int format,
+                                                  void* first_scan,
+                                                  int stride) {
+  FXDIB_Format fx_format;
+  switch (format) {
+    case FPDFBitmap_Gray:
+      fx_format = FXDIB_8bppRgb;
+      break;
+    case FPDFBitmap_BGR:
+      fx_format = FXDIB_Rgb;
+      break;
+    case FPDFBitmap_BGRx:
+      fx_format = FXDIB_Rgb32;
+      break;
+    case FPDFBitmap_BGRA:
+      fx_format = FXDIB_Argb;
+      break;
+    default:
+      return NULL;
+  }
+  CFX_DIBitmap* pBitmap = new CFX_DIBitmap;
+  pBitmap->Create(width, height, fx_format, (uint8_t*)first_scan, stride);
+  return pBitmap;
 }
 
-DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap, int left, int top, int width, int height, FPDF_DWORD color)
-{
-	if (bitmap == NULL) return;
+DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap,
+                                           int left,
+                                           int top,
+                                           int width,
+                                           int height,
+                                           FPDF_DWORD color) {
+  if (bitmap == NULL)
+    return;
 #ifdef _SKIA_SUPPORT_
-	CFX_SkiaDevice device;
+  CFX_SkiaDevice device;
 #else
-	CFX_FxgeDevice device;
+  CFX_FxgeDevice device;
 #endif
-	device.Attach((CFX_DIBitmap*)bitmap);
-	if (!((CFX_DIBitmap*)bitmap)->HasAlpha()) color |= 0xFF000000;
-	FX_RECT rect(left, top, left+width, top+height);
-	device.FillRect(&rect, color);
+  device.Attach((CFX_DIBitmap*)bitmap);
+  if (!((CFX_DIBitmap*)bitmap)->HasAlpha())
+    color |= 0xFF000000;
+  FX_RECT rect(left, top, left + width, top + height);
+  device.FillRect(&rect, color);
 }
 
-DLLEXPORT void* STDCALL FPDFBitmap_GetBuffer(FPDF_BITMAP bitmap)
-{
-	if (bitmap == NULL) return NULL;
-	return ((CFX_DIBitmap*)bitmap)->GetBuffer();
+DLLEXPORT void* STDCALL FPDFBitmap_GetBuffer(FPDF_BITMAP bitmap) {
+  if (bitmap == NULL)
+    return NULL;
+  return ((CFX_DIBitmap*)bitmap)->GetBuffer();
 }
 
-DLLEXPORT int STDCALL FPDFBitmap_GetWidth(FPDF_BITMAP bitmap)
-{
-	if (bitmap == NULL) return 0;
-	return ((CFX_DIBitmap*)bitmap)->GetWidth();
+DLLEXPORT int STDCALL FPDFBitmap_GetWidth(FPDF_BITMAP bitmap) {
+  if (bitmap == NULL)
+    return 0;
+  return ((CFX_DIBitmap*)bitmap)->GetWidth();
 }
 
-DLLEXPORT int STDCALL FPDFBitmap_GetHeight(FPDF_BITMAP bitmap)
-{
-	if (bitmap == NULL) return 0;
-	return ((CFX_DIBitmap*)bitmap)->GetHeight();
+DLLEXPORT int STDCALL FPDFBitmap_GetHeight(FPDF_BITMAP bitmap) {
+  if (bitmap == NULL)
+    return 0;
+  return ((CFX_DIBitmap*)bitmap)->GetHeight();
 }
 
-DLLEXPORT int STDCALL FPDFBitmap_GetStride(FPDF_BITMAP bitmap)
-{
-	if (bitmap == NULL) return 0;
-	return ((CFX_DIBitmap*)bitmap)->GetPitch();
+DLLEXPORT int STDCALL FPDFBitmap_GetStride(FPDF_BITMAP bitmap) {
+  if (bitmap == NULL)
+    return 0;
+  return ((CFX_DIBitmap*)bitmap)->GetPitch();
 }
 
-DLLEXPORT void STDCALL FPDFBitmap_Destroy(FPDF_BITMAP bitmap)
-{
-    delete (CFX_DIBitmap*)bitmap;
+DLLEXPORT void STDCALL FPDFBitmap_Destroy(FPDF_BITMAP bitmap) {
+  delete (CFX_DIBitmap*)bitmap;
 }
 
-void FPDF_RenderPage_Retail(CRenderContext* pContext, FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y,
-                            int rotate, int flags,FX_BOOL bNeedToRestore, IFSDK_PAUSE_Adapter * pause )
-{
-	CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
-	if (pPage == NULL) return;
-
-	if (!pContext->m_pOptions)
-		pContext->m_pOptions = new CPDF_RenderOptions;
-
-	if (flags & FPDF_LCD_TEXT)
-		pContext->m_pOptions->m_Flags |= RENDER_CLEARTYPE;
-	else
-		pContext->m_pOptions->m_Flags &= ~RENDER_CLEARTYPE;
-	if (flags & FPDF_NO_NATIVETEXT)
-		pContext->m_pOptions->m_Flags |= RENDER_NO_NATIVETEXT;
-	if (flags & FPDF_RENDER_LIMITEDIMAGECACHE)
-		pContext->m_pOptions->m_Flags |= RENDER_LIMITEDIMAGECACHE;
-	if (flags & FPDF_RENDER_FORCEHALFTONE)
-		pContext->m_pOptions->m_Flags |= RENDER_FORCE_HALFTONE;
-	//Grayscale output
-	if (flags & FPDF_GRAYSCALE)
-	{
-		pContext->m_pOptions->m_ColorMode = RENDER_COLOR_GRAY;
-		pContext->m_pOptions->m_ForeColor = 0;
-		pContext->m_pOptions->m_BackColor = 0xffffff;
-	}
-	const CPDF_OCContext::UsageType usage = (flags & FPDF_PRINTING) ? CPDF_OCContext::Print : CPDF_OCContext::View;
-	pContext->m_pOptions->m_AddFlags = flags >> 8;
-	pContext->m_pOptions->m_pOCContext = new CPDF_OCContext(pPage->m_pDocument, usage);
-
-	CFX_AffineMatrix matrix;
-	pPage->GetDisplayMatrix(matrix, start_x, start_y, size_x, size_y, rotate);
-
-	FX_RECT clip;
-	clip.left = start_x;
-	clip.right = start_x + size_x;
-	clip.top = start_y;
-	clip.bottom = start_y + size_y;
-	pContext->m_pDevice->SaveState();
-	pContext->m_pDevice->SetClip_Rect(&clip);
-
-	pContext->m_pContext = FX_NEW CPDF_RenderContext;
-	pContext->m_pContext->Create(pPage);
-	pContext->m_pContext->AppendObjectList(pPage, &matrix);
-
-	if (flags & FPDF_ANNOT) {
-		pContext->m_pAnnots = FX_NEW CPDF_AnnotList(pPage);
-		FX_BOOL bPrinting = pContext->m_pDevice->GetDeviceClass() != FXDC_DISPLAY;
-		pContext->m_pAnnots->DisplayAnnots(pPage, pContext->m_pContext, bPrinting, &matrix, TRUE, NULL);
-	}
-
-	pContext->m_pRenderer = FX_NEW CPDF_ProgressiveRenderer;
-	pContext->m_pRenderer->Start(pContext->m_pContext, pContext->m_pDevice, pContext->m_pOptions, pause);
-	if (bNeedToRestore)
-	{
-		pContext->m_pDevice->RestoreState();
-	}
-
-//#endif
+void FPDF_RenderPage_Retail(CRenderContext* pContext,
+                            FPDF_PAGE page,
+                            int start_x,
+                            int start_y,
+                            int size_x,
+                            int size_y,
+                            int rotate,
+                            int flags,
+                            FX_BOOL bNeedToRestore,
+                            IFSDK_PAUSE_Adapter* pause) {
+  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  if (pPage == NULL)
+    return;
+
+  if (!pContext->m_pOptions)
+    pContext->m_pOptions = new CPDF_RenderOptions;
+
+  if (flags & FPDF_LCD_TEXT)
+    pContext->m_pOptions->m_Flags |= RENDER_CLEARTYPE;
+  else
+    pContext->m_pOptions->m_Flags &= ~RENDER_CLEARTYPE;
+  if (flags & FPDF_NO_NATIVETEXT)
+    pContext->m_pOptions->m_Flags |= RENDER_NO_NATIVETEXT;
+  if (flags & FPDF_RENDER_LIMITEDIMAGECACHE)
+    pContext->m_pOptions->m_Flags |= RENDER_LIMITEDIMAGECACHE;
+  if (flags & FPDF_RENDER_FORCEHALFTONE)
+    pContext->m_pOptions->m_Flags |= RENDER_FORCE_HALFTONE;
+  // Grayscale output
+  if (flags & FPDF_GRAYSCALE) {
+    pContext->m_pOptions->m_ColorMode = RENDER_COLOR_GRAY;
+    pContext->m_pOptions->m_ForeColor = 0;
+    pContext->m_pOptions->m_BackColor = 0xffffff;
+  }
+  const CPDF_OCContext::UsageType usage =
+      (flags & FPDF_PRINTING) ? CPDF_OCContext::Print : CPDF_OCContext::View;
+  pContext->m_pOptions->m_AddFlags = flags >> 8;
+  pContext->m_pOptions->m_pOCContext =
+      new CPDF_OCContext(pPage->m_pDocument, usage);
+
+  CFX_AffineMatrix matrix;
+  pPage->GetDisplayMatrix(matrix, start_x, start_y, size_x, size_y, rotate);
+
+  FX_RECT clip;
+  clip.left = start_x;
+  clip.right = start_x + size_x;
+  clip.top = start_y;
+  clip.bottom = start_y + size_y;
+  pContext->m_pDevice->SaveState();
+  pContext->m_pDevice->SetClip_Rect(&clip);
+
+  pContext->m_pContext = FX_NEW CPDF_RenderContext;
+  pContext->m_pContext->Create(pPage);
+  pContext->m_pContext->AppendObjectList(pPage, &matrix);
+
+  if (flags & FPDF_ANNOT) {
+    pContext->m_pAnnots = FX_NEW CPDF_AnnotList(pPage);
+    FX_BOOL bPrinting = pContext->m_pDevice->GetDeviceClass() != FXDC_DISPLAY;
+    pContext->m_pAnnots->DisplayAnnots(pPage, pContext->m_pContext, bPrinting,
+                                       &matrix, TRUE, NULL);
+  }
+
+  pContext->m_pRenderer = FX_NEW CPDF_ProgressiveRenderer;
+  pContext->m_pRenderer->Start(pContext->m_pContext, pContext->m_pDevice,
+                               pContext->m_pOptions, pause);
+  if (bNeedToRestore) {
+    pContext->m_pDevice->RestoreState();
+  }
+
+  //#endif
 }
 
-DLLEXPORT int STDCALL FPDF_GetPageSizeByIndex(FPDF_DOCUMENT document, int page_index, double* width, double* height)
-{
-// 	CPDF_Document* pDoc = (CPDF_Document*)document;
-// 	if(pDoc == NULL)
-// 		return FALSE;
-//
-// 	CPDF_Dictionary* pDict = pDoc->GetPage(page_index);
-// 	if (pDict == NULL) return FALSE;
-//
-// 	CPDF_Page page;
-// 	page.Load(pDoc, pDict);
-// 	*width = page.GetPageWidth();
-// 	*height = page.GetPageHeight();
-
-	CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
-	if (pDoc == NULL)
-		return FALSE;
-
-	int count = pDoc->GetPageCount();
-	if (page_index < 0 || page_index >= count)
-		return FALSE;
-
-	CPDFXFA_Page* pPage = pDoc->GetPage(page_index);
-	if (!pPage)
-		return FALSE;
-
-	*width = pPage->GetPageWidth();
-	*height = pPage->GetPageHeight();
-
-	return TRUE;
+DLLEXPORT int STDCALL FPDF_GetPageSizeByIndex(FPDF_DOCUMENT document,
+                                              int page_index,
+                                              double* width,
+                                              double* height) {
+  // 	CPDF_Document* pDoc = (CPDF_Document*)document;
+  // 	if(pDoc == NULL)
+  // 		return FALSE;
+  //
+  // 	CPDF_Dictionary* pDict = pDoc->GetPage(page_index);
+  // 	if (pDict == NULL) return FALSE;
+  //
+  // 	CPDF_Page page;
+  // 	page.Load(pDoc, pDict);
+  // 	*width = page.GetPageWidth();
+  // 	*height = page.GetPageHeight();
+
+  CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
+  if (pDoc == NULL)
+    return FALSE;
+
+  int count = pDoc->GetPageCount();
+  if (page_index < 0 || page_index >= count)
+    return FALSE;
+
+  CPDFXFA_Page* pPage = pDoc->GetPage(page_index);
+  if (!pPage)
+    return FALSE;
+
+  *width = pPage->GetPageWidth();
+  *height = pPage->GetPageHeight();
+
+  return TRUE;
 }
 
-DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_GetPrintScaling(FPDF_DOCUMENT document)
-{
-	CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
-	if (!pDoc) return TRUE;
-	CPDF_Document* pPDFDoc = pDoc->GetPDFDoc();
-	if (!pPDFDoc) return TRUE;
-	CPDF_ViewerPreferences viewRef(pPDFDoc);
-	return viewRef.PrintScaling();
+DLLEXPORT FPDF_BOOL STDCALL
+FPDF_VIEWERREF_GetPrintScaling(FPDF_DOCUMENT document) {
+  CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
+  if (!pDoc)
+    return TRUE;
+  CPDF_Document* pPDFDoc = pDoc->GetPDFDoc();
+  if (!pPDFDoc)
+    return TRUE;
+  CPDF_ViewerPreferences viewRef(pPDFDoc);
+  return viewRef.PrintScaling();
 }
 
-DLLEXPORT int STDCALL FPDF_VIEWERREF_GetNumCopies(FPDF_DOCUMENT document)
-{
-	CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-    if (!pDoc) return 1;
-    CPDF_ViewerPreferences viewRef(pDoc);
-    return viewRef.NumCopies();
+DLLEXPORT int STDCALL FPDF_VIEWERREF_GetNumCopies(FPDF_DOCUMENT document) {
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  if (!pDoc)
+    return 1;
+  CPDF_ViewerPreferences viewRef(pDoc);
+  return viewRef.NumCopies();
 }
 
-DLLEXPORT FPDF_PAGERANGE STDCALL FPDF_VIEWERREF_GetPrintPageRange(FPDF_DOCUMENT document)
-{
-	CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-    if (!pDoc) return NULL;
-    CPDF_ViewerPreferences viewRef(pDoc);
-    return viewRef.PrintPageRange();
+DLLEXPORT FPDF_PAGERANGE STDCALL
+FPDF_VIEWERREF_GetPrintPageRange(FPDF_DOCUMENT document) {
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  if (!pDoc)
+    return NULL;
+  CPDF_ViewerPreferences viewRef(pDoc);
+  return viewRef.PrintPageRange();
 }
 
-DLLEXPORT FPDF_DUPLEXTYPE STDCALL FPDF_VIEWERREF_GetDuplex(FPDF_DOCUMENT document)
-{
-	CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-    if (!pDoc) return DuplexUndefined;
-    CPDF_ViewerPreferences viewRef(pDoc);
-    CFX_ByteString duplex = viewRef.Duplex();
-    if (FX_BSTRC("Simplex") == duplex)
-        return Simplex;
-    if (FX_BSTRC("DuplexFlipShortEdge") == duplex)
-        return DuplexFlipShortEdge;
-    if (FX_BSTRC("DuplexFlipLongEdge") == duplex)
-        return DuplexFlipLongEdge;
+DLLEXPORT FPDF_DUPLEXTYPE STDCALL
+FPDF_VIEWERREF_GetDuplex(FPDF_DOCUMENT document) {
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+  if (!pDoc)
     return DuplexUndefined;
+  CPDF_ViewerPreferences viewRef(pDoc);
+  CFX_ByteString duplex = viewRef.Duplex();
+  if (FX_BSTRC("Simplex") == duplex)
+    return Simplex;
+  if (FX_BSTRC("DuplexFlipShortEdge") == duplex)
+    return DuplexFlipShortEdge;
+  if (FX_BSTRC("DuplexFlipLongEdge") == duplex)
+    return DuplexFlipLongEdge;
+  return DuplexUndefined;
 }
 
-DLLEXPORT FPDF_DWORD STDCALL FPDF_CountNamedDests(FPDF_DOCUMENT document)
-{
-    if (!document) return 0;
-	CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-
-    CPDF_Dictionary* pRoot = pDoc->GetRoot();
-    if (!pRoot) return 0;
-
-    CPDF_NameTree nameTree(pDoc, FX_BSTRC("Dests"));
-    int count = nameTree.GetCount();
-    CPDF_Dictionary* pDest = pRoot->GetDict(FX_BSTRC("Dests"));
-    if (pDest)
-        count += pDest->GetCount();
-    return count;
+DLLEXPORT FPDF_DWORD STDCALL FPDF_CountNamedDests(FPDF_DOCUMENT document) {
+  if (!document)
+    return 0;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+
+  CPDF_Dictionary* pRoot = pDoc->GetRoot();
+  if (!pRoot)
+    return 0;
+
+  CPDF_NameTree nameTree(pDoc, FX_BSTRC("Dests"));
+  int count = nameTree.GetCount();
+  CPDF_Dictionary* pDest = pRoot->GetDict(FX_BSTRC("Dests"));
+  if (pDest)
+    count += pDest->GetCount();
+  return count;
 }
 
-DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDestByName(FPDF_DOCUMENT document,FPDF_BYTESTRING name)
-{
-	if (!document)
-		return NULL;
-	if (!name || name[0] == 0)
-		return NULL;
-
-	CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
-	CPDF_Document* pPDFDoc = pDoc->GetPDFDoc();
-	if (!pPDFDoc)
-		return NULL;
-	CPDF_NameTree name_tree(pPDFDoc, FX_BSTRC("Dests"));
-	return name_tree.LookupNamedDest(pPDFDoc, name);
+DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDestByName(FPDF_DOCUMENT document,
+                                                    FPDF_BYTESTRING name) {
+  if (!document)
+    return NULL;
+  if (!name || name[0] == 0)
+    return NULL;
+
+  CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document;
+  CPDF_Document* pPDFDoc = pDoc->GetPDFDoc();
+  if (!pPDFDoc)
+    return NULL;
+  CPDF_NameTree name_tree(pPDFDoc, FX_BSTRC("Dests"));
+  return name_tree.LookupNamedDest(pPDFDoc, name);
 }
 
-FPDF_RESULT	FPDF_BStr_Init(FPDF_BSTR* str)
-{
-	if (!str)
-		return -1;
+FPDF_RESULT FPDF_BStr_Init(FPDF_BSTR* str) {
+  if (!str)
+    return -1;
 
-	FXSYS_memset(str, 0, sizeof(FPDF_BSTR));
-	return 0;
+  FXSYS_memset(str, 0, sizeof(FPDF_BSTR));
+  return 0;
 }
 
-FPDF_RESULT FPDF_BStr_Set(FPDF_BSTR* str, FPDF_LPCSTR bstr, int length)
-{
-	if (!str) return -1;
-	if (!bstr || !length)
-		return -1;
-	if (length == -1)
-		length = FXSYS_strlen(bstr);
-
-	if (length == 0)
-	{
-		if (str->str)
-		{
-			FX_Free(str->str);
-			str->str = NULL;
-		}
-		str->len = 0;
-		return 0;
-	}
-
-	if (str->str && str->len < length)
-		str->str = FX_Realloc(char, str->str, length+1);
-	else if (!str->str)
-		str->str = FX_Alloc(char, length+1);
-
-	str->str[length] = 0;
-	if (str->str == NULL)
-		return -1;
-
-	FXSYS_memcpy(str->str, bstr, length);
-	str->len = length;
-
-	return 0;
+FPDF_RESULT FPDF_BStr_Set(FPDF_BSTR* str, FPDF_LPCSTR bstr, int length) {
+  if (!str)
+    return -1;
+  if (!bstr || !length)
+    return -1;
+  if (length == -1)
+    length = FXSYS_strlen(bstr);
+
+  if (length == 0) {
+    if (str->str) {
+      FX_Free(str->str);
+      str->str = NULL;
+    }
+    str->len = 0;
+    return 0;
+  }
+
+  if (str->str && str->len < length)
+    str->str = FX_Realloc(char, str->str, length + 1);
+  else if (!str->str)
+    str->str = FX_Alloc(char, length + 1);
+
+  str->str[length] = 0;
+  if (str->str == NULL)
+    return -1;
+
+  FXSYS_memcpy(str->str, bstr, length);
+  str->len = length;
+
+  return 0;
 }
 
-FPDF_RESULT	FPDF_BStr_Clear(FPDF_BSTR* str)
-{
-	if(!str)
-		return -1;
-
-	if (str->str)
-	{
-		FX_Free(str->str);
-		str->str = NULL;
-	}
-	str->len = 0;
-	return 0;
+FPDF_RESULT FPDF_BStr_Clear(FPDF_BSTR* str) {
+  if (!str)
+    return -1;
+
+  if (str->str) {
+    FX_Free(str->str);
+    str->str = NULL;
+  }
+  str->len = 0;
+  return 0;
 }
 
-DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDest(FPDF_DOCUMENT document, int index, void* buffer, long* buflen)
-{
-    if (!buffer)
-        *buflen = 0;
-    if (!document || index < 0) return NULL;
-	CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
-
-    CPDF_Dictionary* pRoot = pDoc->GetRoot();
-    if (!pRoot) return NULL;
-
-    CPDF_Object* pDestObj = NULL;
-    CFX_ByteString bsName;
-    CPDF_NameTree nameTree(pDoc, FX_BSTRC("Dests"));
-    int count = nameTree.GetCount();
-    if (index >= count) {
-        CPDF_Dictionary* pDest = pRoot->GetDict(FX_BSTRC("Dests"));
-        if (!pDest) return NULL;
-        if (index >= count + pDest->GetCount()) return NULL;
-        index -= count;
-        FX_POSITION pos = pDest->GetStartPos();
-        int i = 0;
-        while (pos) {
-            pDestObj = pDest->GetNextElement(pos, bsName);
-            if (!pDestObj) continue;
-            if (i == index) break;
-            i++;
-        }
-    } else {
-        pDestObj = nameTree.LookupValue(index, bsName);
-    }
-    if (!pDestObj) return NULL;
-    if (pDestObj->GetType() == PDFOBJ_DICTIONARY) {
-        pDestObj = ((CPDF_Dictionary*)pDestObj)->GetArray(FX_BSTRC("D"));
-        if (!pDestObj) return NULL;
-    }
-    if (pDestObj->GetType() != PDFOBJ_ARRAY) return NULL;
-    CFX_WideString wsName = PDF_DecodeText(bsName);
-    CFX_ByteString utf16Name = wsName.UTF16LE_Encode();
-    unsigned int len = utf16Name.GetLength();
-    if (!buffer) {
-        *buflen = len;
-    } else if (*buflen >= len) {
-        memcpy(buffer, utf16Name.c_str(), len);
-        *buflen = len;
-    } else {
-        *buflen = -1;
+DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDest(FPDF_DOCUMENT document,
+                                              int index,
+                                              void* buffer,
+                                              long* buflen) {
+  if (!buffer)
+    *buflen = 0;
+  if (!document || index < 0)
+    return NULL;
+  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
+
+  CPDF_Dictionary* pRoot = pDoc->GetRoot();
+  if (!pRoot)
+    return NULL;
+
+  CPDF_Object* pDestObj = NULL;
+  CFX_ByteString bsName;
+  CPDF_NameTree nameTree(pDoc, FX_BSTRC("Dests"));
+  int count = nameTree.GetCount();
+  if (index >= count) {
+    CPDF_Dictionary* pDest = pRoot->GetDict(FX_BSTRC("Dests"));
+    if (!pDest)
+      return NULL;
+    if (index >= count + pDest->GetCount())
+      return NULL;
+    index -= count;
+    FX_POSITION pos = pDest->GetStartPos();
+    int i = 0;
+    while (pos) {
+      pDestObj = pDest->GetNextElement(pos, bsName);
+      if (!pDestObj)
+        continue;
+      if (i == index)
+        break;
+      i++;
     }
-    return (FPDF_DEST)pDestObj;
+  } else {
+    pDestObj = nameTree.LookupValue(index, bsName);
+  }
+  if (!pDestObj)
+    return NULL;
+  if (pDestObj->GetType() == PDFOBJ_DICTIONARY) {
+    pDestObj = ((CPDF_Dictionary*)pDestObj)->GetArray(FX_BSTRC("D"));
+    if (!pDestObj)
+      return NULL;
+  }
+  if (pDestObj->GetType() != PDFOBJ_ARRAY)
+    return NULL;
+  CFX_WideString wsName = PDF_DecodeText(bsName);
+  CFX_ByteString utf16Name = wsName.UTF16LE_Encode();
+  unsigned int len = utf16Name.GetLength();
+  if (!buffer) {
+    *buflen = len;
+  } else if (*buflen >= len) {
+    memcpy(buffer, utf16Name.c_str(), len);
+    *buflen = len;
+  } else {
+    *buflen = -1;
+  }
+  return (FPDF_DEST)pDestObj;
 }
diff --git a/fpdfsdk/src/fpdfview_embeddertest.cpp b/fpdfsdk/src/fpdfview_embeddertest.cpp
index d58399a9b1..e369ed8404 100644
--- a/fpdfsdk/src/fpdfview_embeddertest.cpp
+++ b/fpdfsdk/src/fpdfview_embeddertest.cpp
@@ -14,8 +14,7 @@ TEST(fpdf, CApiTest) {
   EXPECT_TRUE(CheckPDFiumCApi());
 }
 
-class FPDFViewEmbeddertest : public EmbedderTest {
-};
+class FPDFViewEmbeddertest : public EmbedderTest {};
 
 TEST_F(FPDFViewEmbeddertest, Document) {
   EXPECT_TRUE(OpenDocument("testing/resources/about_blank.pdf"));
@@ -54,7 +53,7 @@ TEST_F(FPDFViewEmbeddertest, NamedDests) {
   FPDF_DEST dest;
 
   // Query the size of the first item.
-  buffer_size = 2000000; // Absurdly large, check not used for this case.
+  buffer_size = 2000000;  // Absurdly large, check not used for this case.
   dest = FPDF_GetNamedDest(document(), 0, nullptr, &buffer_size);
   EXPECT_NE(nullptr, dest);
   EXPECT_EQ(12u, buffer_size);
@@ -104,9 +103,8 @@ TEST_F(FPDFViewEmbeddertest, NamedDests) {
   dest = FPDF_GetNamedDest(document(), 4, fixed_buffer, &buffer_size);
   EXPECT_NE(nullptr, dest);
   EXPECT_EQ(30u, buffer_size);
-  EXPECT_EQ(
-      std::string("F\0i\0r\0s\0t\0A\0l\0t\0e\0r\0n\0a\0t\0e\0\0\0", 30),
-      std::string(fixed_buffer, buffer_size));
+  EXPECT_EQ(std::string("F\0i\0r\0s\0t\0A\0l\0t\0e\0r\0n\0a\0t\0e\0\0\0", 30),
+            std::string(fixed_buffer, buffer_size));
 
   // Try to retrieve sixth item with ample buffer. Item istaken from the
   // old-style Dests dictionary object but has a sub-dictionary in
@@ -115,9 +113,8 @@ TEST_F(FPDFViewEmbeddertest, NamedDests) {
   dest = FPDF_GetNamedDest(document(), 5, fixed_buffer, &buffer_size);
   EXPECT_NE(nullptr, dest);
   EXPECT_EQ(28u, buffer_size);
-  EXPECT_EQ(
-      std::string("L\0a\0s\0t\0A\0l\0t\0e\0r\0n\0a\0t\0e\0\0\0", 28),
-      std::string(fixed_buffer, buffer_size));
+  EXPECT_EQ(std::string("L\0a\0s\0t\0A\0l\0t\0e\0r\0n\0a\0t\0e\0\0\0", 28),
+            std::string(fixed_buffer, buffer_size));
 
   // Try to retrieve non-existent item with ample buffer.
   buffer_size = sizeof(fixed_buffer);
diff --git a/fpdfsdk/src/fpdfxfa/fpdfxfa_app.cpp b/fpdfsdk/src/fpdfxfa/fpdfxfa_app.cpp
index 72fc91e708..a53381876a 100644
--- a/fpdfsdk/src/fpdfxfa/fpdfxfa_app.cpp
+++ b/fpdfsdk/src/fpdfxfa/fpdfxfa_app.cpp
@@ -15,546 +15,542 @@
 
 CPDFXFA_App* CPDFXFA_App::g_pApp = NULL;
 
-CPDFXFA_App* CPDFXFA_App::GetInstance()
-{
-    if (!g_pApp) {
-        g_pApp = FX_NEW CPDFXFA_App();
-    }
-    return g_pApp;
+CPDFXFA_App* CPDFXFA_App::GetInstance() {
+  if (!g_pApp) {
+    g_pApp = FX_NEW CPDFXFA_App();
+  }
+  return g_pApp;
 }
 
-void CPDFXFA_App::ReleaseInstance()
-{
-    delete g_pApp;
-    g_pApp = NULL;
+void CPDFXFA_App::ReleaseInstance() {
+  delete g_pApp;
+  g_pApp = NULL;
 }
 
-CJS_RuntimeFactory* g_GetJSRuntimeFactory()
-{
-    static CJS_RuntimeFactory g_JSRuntimeFactory;
-    return &g_JSRuntimeFactory;
+CJS_RuntimeFactory* g_GetJSRuntimeFactory() {
+  static CJS_RuntimeFactory g_JSRuntimeFactory;
+  return &g_JSRuntimeFactory;
 }
 
-CPDFXFA_App::CPDFXFA_App() :
-    m_bInitRuntime(FALSE),
-    m_pXFAApp(NULL),
-    m_pFontMgr(NULL),
-    m_hJSERuntime(NULL),
-    m_csAppType(JS_STR_VIEWERTYPE_STANDARD)
-{
-    m_pJSRuntimeFactory = g_GetJSRuntimeFactory();
-    m_pJSRuntimeFactory->AddRef();
-    m_pEnvList.RemoveAll();
+CPDFXFA_App::CPDFXFA_App()
+    : m_bInitRuntime(FALSE),
+      m_pXFAApp(NULL),
+      m_pFontMgr(NULL),
+      m_hJSERuntime(NULL),
+      m_csAppType(JS_STR_VIEWERTYPE_STANDARD) {
+  m_pJSRuntimeFactory = g_GetJSRuntimeFactory();
+  m_pJSRuntimeFactory->AddRef();
+  m_pEnvList.RemoveAll();
 }
 
-CPDFXFA_App::~CPDFXFA_App()
-{
-    delete m_pFontMgr;
-    m_pFontMgr = NULL;
+CPDFXFA_App::~CPDFXFA_App() {
+  delete m_pFontMgr;
+  m_pFontMgr = NULL;
 
-    delete m_pXFAApp;
-    m_pXFAApp = NULL;
+  delete m_pXFAApp;
+  m_pXFAApp = NULL;
 
-    m_pJSRuntimeFactory->Release();
-    FXJSE_Runtime_Release(m_hJSERuntime);
-    m_hJSERuntime = NULL;
+  m_pJSRuntimeFactory->Release();
+  FXJSE_Runtime_Release(m_hJSERuntime);
+  m_hJSERuntime = NULL;
 
-    FXJSE_Finalize();
-    BC_Library_Destory();
+  FXJSE_Finalize();
+  BC_Library_Destory();
 }
 
-FX_BOOL CPDFXFA_App::Initialize()
-{
-    BC_Library_Init();
-    FXJSE_Initialize();
+FX_BOOL CPDFXFA_App::Initialize() {
+  BC_Library_Init();
+  FXJSE_Initialize();
 
-    m_hJSERuntime = FXJSE_Runtime_Create();
-    if (!m_hJSERuntime)
-        return FALSE;
+  m_hJSERuntime = FXJSE_Runtime_Create();
+  if (!m_hJSERuntime)
+    return FALSE;
 
-    m_pXFAApp = IXFA_App::Create(this);
-    if (!m_pXFAApp)
-        return FALSE;
+  m_pXFAApp = IXFA_App::Create(this);
+  if (!m_pXFAApp)
+    return FALSE;
 
-    m_pFontMgr = IXFA_FontMgr::CreateDefault();
-    if (!m_pFontMgr)
-        return FALSE;
+  m_pFontMgr = IXFA_FontMgr::CreateDefault();
+  if (!m_pFontMgr)
+    return FALSE;
 
-    m_pXFAApp->SetDefaultFontMgr(m_pFontMgr);
-    return TRUE;
+  m_pXFAApp->SetDefaultFontMgr(m_pFontMgr);
+  return TRUE;
 }
 
 FX_BOOL CPDFXFA_App::InitRuntime(FX_BOOL bReset) {
-    if (bReset) {
-        m_bInitRuntime = FALSE;
-        return TRUE;
-    }
-    if (m_bInitRuntime) {
-        return TRUE;
-    }
-    m_bInitRuntime = TRUE;
-    return FALSE;
+  if (bReset) {
+    m_bInitRuntime = FALSE;
+    return TRUE;
+  }
+  if (m_bInitRuntime) {
+    return TRUE;
+  }
+  m_bInitRuntime = TRUE;
+  return FALSE;
 }
 
-FX_BOOL CPDFXFA_App::AddFormFillEnv(CPDFDoc_Environment* pEnv)
-{
-    if (!pEnv) return FALSE;
+FX_BOOL CPDFXFA_App::AddFormFillEnv(CPDFDoc_Environment* pEnv) {
+  if (!pEnv)
+    return FALSE;
 
-    m_pEnvList.Add(pEnv);
-    return TRUE;
+  m_pEnvList.Add(pEnv);
+  return TRUE;
 }
 
-FX_BOOL CPDFXFA_App::RemoveFormFillEnv(CPDFDoc_Environment* pEnv)
-{
-    if (!pEnv) return FALSE;
+FX_BOOL CPDFXFA_App::RemoveFormFillEnv(CPDFDoc_Environment* pEnv) {
+  if (!pEnv)
+    return FALSE;
 
-    int nFind = m_pEnvList.Find(pEnv);
-    if (nFind != -1) {
-        m_pEnvList.RemoveAt(nFind);
-        return TRUE;
-    }
+  int nFind = m_pEnvList.Find(pEnv);
+  if (nFind != -1) {
+    m_pEnvList.RemoveAt(nFind);
+    return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
-void CPDFXFA_App::ReleaseRuntime()
-{
-    v8::Global<v8::Context> context;
-    JS_ReleaseRuntime((IJS_Runtime*)m_hJSERuntime, context);
+void CPDFXFA_App::ReleaseRuntime() {
+  v8::Global<v8::Context> context;
+  JS_ReleaseRuntime((IJS_Runtime*)m_hJSERuntime, context);
 }
 
-void CPDFXFA_App::GetAppType(CFX_WideString &wsAppType)
-{
-    wsAppType = m_csAppType;
+void CPDFXFA_App::GetAppType(CFX_WideString& wsAppType) {
+  wsAppType = m_csAppType;
 }
 
-void CPDFXFA_App::GetAppName(CFX_WideString& wsName)
-{
-    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
-    if (pEnv)
-    {
-        wsName = pEnv->FFI_GetAppName();
-    }
+void CPDFXFA_App::GetAppName(CFX_WideString& wsName) {
+  CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
+  if (pEnv) {
+    wsName = pEnv->FFI_GetAppName();
+  }
 }
 
-void CPDFXFA_App::SetAppType(const CFX_WideStringC& wsAppType)
-{
-    m_csAppType = wsAppType;
+void CPDFXFA_App::SetAppType(const CFX_WideStringC& wsAppType) {
+  m_csAppType = wsAppType;
 }
 
-void CPDFXFA_App::GetLanguage(CFX_WideString &wsLanguage)
-{
-    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
-    if (pEnv)
-    {
-        wsLanguage = pEnv->FFI_GetLanguage();
-    }
+void CPDFXFA_App::GetLanguage(CFX_WideString& wsLanguage) {
+  CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
+  if (pEnv) {
+    wsLanguage = pEnv->FFI_GetLanguage();
+  }
 }
 
-void CPDFXFA_App::GetPlatform(CFX_WideString &wsPlatform)
-{
-    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
-    if (pEnv)
-    {
-        wsPlatform = pEnv->FFI_GetPlatform();
-    }
+void CPDFXFA_App::GetPlatform(CFX_WideString& wsPlatform) {
+  CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
+  if (pEnv) {
+    wsPlatform = pEnv->FFI_GetPlatform();
+  }
 }
 
-void CPDFXFA_App::GetVariation(CFX_WideString &wsVariation)
-{
-    wsVariation = JS_STR_VIEWERVARIATION;
+void CPDFXFA_App::GetVariation(CFX_WideString& wsVariation) {
+  wsVariation = JS_STR_VIEWERVARIATION;
 }
 
-void CPDFXFA_App::GetVersion(CFX_WideString &wsVersion)
-{
-    wsVersion = JS_STR_VIEWERVERSION_XFA;
+void CPDFXFA_App::GetVersion(CFX_WideString& wsVersion) {
+  wsVersion = JS_STR_VIEWERVERSION_XFA;
 }
 
-void CPDFXFA_App::Beep(FX_DWORD dwType)
-{
-    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
-    if (pEnv)
-    {
-        pEnv->JS_appBeep(dwType);
-    }
+void CPDFXFA_App::Beep(FX_DWORD dwType) {
+  CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
+  if (pEnv) {
+    pEnv->JS_appBeep(dwType);
+  }
 }
 
-int32_t CPDFXFA_App::MsgBox(const CFX_WideStringC& wsMessage, const CFX_WideStringC& wsTitle, FX_DWORD dwIconType, FX_DWORD dwButtonType)
-{
-    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
-    if (!pEnv)
-        return -1;
-
-    FX_DWORD iconType = 0;
-    int iButtonType = 0;
-    switch (dwIconType)
-    {
+int32_t CPDFXFA_App::MsgBox(const CFX_WideStringC& wsMessage,
+                            const CFX_WideStringC& wsTitle,
+                            FX_DWORD dwIconType,
+                            FX_DWORD dwButtonType) {
+  CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
+  if (!pEnv)
+    return -1;
+
+  FX_DWORD iconType = 0;
+  int iButtonType = 0;
+  switch (dwIconType) {
     case XFA_MBICON_Error:
-        iconType |= 0;
-        break;
+      iconType |= 0;
+      break;
     case XFA_MBICON_Warning:
-        iconType |= 1;
-        break;
+      iconType |= 1;
+      break;
     case XFA_MBICON_Question:
-        iconType |= 2;
-        break;
+      iconType |= 2;
+      break;
     case XFA_MBICON_Status:
-        iconType |= 3;
-        break;
-    }
-    switch (dwButtonType)
-    {
-    case  XFA_MB_OK:
-        iButtonType |= 0;
-        break;
+      iconType |= 3;
+      break;
+  }
+  switch (dwButtonType) {
+    case XFA_MB_OK:
+      iButtonType |= 0;
+      break;
     case XFA_MB_OKCancel:
-        iButtonType |= 1;
-        break;
+      iButtonType |= 1;
+      break;
     case XFA_MB_YesNo:
-        iButtonType |= 2;
-        break;
+      iButtonType |= 2;
+      break;
     case XFA_MB_YesNoCancel:
-        iButtonType |= 3;
-        break;
-    }
-    int32_t iRet = pEnv->JS_appAlert(wsMessage.GetPtr(), wsTitle.GetPtr(), iButtonType, iconType);
-    switch (iRet)
-    {
+      iButtonType |= 3;
+      break;
+  }
+  int32_t iRet = pEnv->JS_appAlert(wsMessage.GetPtr(), wsTitle.GetPtr(),
+                                   iButtonType, iconType);
+  switch (iRet) {
     case 1:
-        return XFA_IDOK;
+      return XFA_IDOK;
     case 2:
-        return XFA_IDCancel;
+      return XFA_IDCancel;
     case 3:
-        return XFA_IDNo;
+      return XFA_IDNo;
     case 4:
-        return XFA_IDYes;
-    }
-    return XFA_IDYes;
+      return XFA_IDYes;
+  }
+  return XFA_IDYes;
 }
 
-void CPDFXFA_App::Response(CFX_WideString &wsAnswer, const CFX_WideStringC& wsQuestion, const CFX_WideStringC& wsTitle, const CFX_WideStringC& wsDefaultAnswer, FX_BOOL bMark)
-{
-    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
-    if (pEnv)
-    {
-        int nLength = 2048;
-        char* pBuff = new char[nLength];
-        nLength = pEnv->JS_appResponse(wsQuestion.GetPtr(), wsTitle.GetPtr(), wsDefaultAnswer.GetPtr(), NULL, bMark, pBuff, nLength);
-        if(nLength > 0)
-        {
-            nLength = nLength>2046?2046:nLength;
-            pBuff[nLength] = 0;
-            pBuff[nLength+1] = 0;
-            wsAnswer = CFX_WideString::FromUTF16LE((unsigned short*)pBuff, nLength);
-        }
-        delete[] pBuff;
+void CPDFXFA_App::Response(CFX_WideString& wsAnswer,
+                           const CFX_WideStringC& wsQuestion,
+                           const CFX_WideStringC& wsTitle,
+                           const CFX_WideStringC& wsDefaultAnswer,
+                           FX_BOOL bMark) {
+  CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
+  if (pEnv) {
+    int nLength = 2048;
+    char* pBuff = new char[nLength];
+    nLength = pEnv->JS_appResponse(wsQuestion.GetPtr(), wsTitle.GetPtr(),
+                                   wsDefaultAnswer.GetPtr(), NULL, bMark, pBuff,
+                                   nLength);
+    if (nLength > 0) {
+      nLength = nLength > 2046 ? 2046 : nLength;
+      pBuff[nLength] = 0;
+      pBuff[nLength + 1] = 0;
+      wsAnswer = CFX_WideString::FromUTF16LE((unsigned short*)pBuff, nLength);
     }
+    delete[] pBuff;
+  }
 }
 
-int32_t CPDFXFA_App::GetCurDocumentInBatch()
-{
-    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
-    if (pEnv)
-    {
-        return pEnv->FFI_GetCurDocument();
-    }
-    return 0;
+int32_t CPDFXFA_App::GetCurDocumentInBatch() {
+  CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
+  if (pEnv) {
+    return pEnv->FFI_GetCurDocument();
+  }
+  return 0;
 }
 
-int32_t CPDFXFA_App::GetDocumentCountInBatch()
-{
-    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
-    if (pEnv)
-    {
-        return pEnv->FFI_GetDocumentCount();
-    }
+int32_t CPDFXFA_App::GetDocumentCountInBatch() {
+  CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
+  if (pEnv) {
+    return pEnv->FFI_GetDocumentCount();
+  }
 
-    return 0;
+  return 0;
 }
 
-IFX_FileRead* CPDFXFA_App::DownloadURL(const CFX_WideStringC& wsURL)
-{
-    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
-    if (pEnv)
-    {
-        return pEnv->FFI_DownloadFromURL(wsURL.GetPtr());
-    }
-    return NULL;
+IFX_FileRead* CPDFXFA_App::DownloadURL(const CFX_WideStringC& wsURL) {
+  CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
+  if (pEnv) {
+    return pEnv->FFI_DownloadFromURL(wsURL.GetPtr());
+  }
+  return NULL;
 }
 
-FX_BOOL CPDFXFA_App::PostRequestURL(const CFX_WideStringC& wsURL, const CFX_WideStringC& wsData, const CFX_WideStringC& wsContentType,
-                                            const CFX_WideStringC& wsEncode, const CFX_WideStringC& wsHeader, CFX_WideString &wsResponse)
-{
-    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
-    if (pEnv)
-    {
-        wsResponse = pEnv->FFI_PostRequestURL(wsURL.GetPtr(), wsData.GetPtr(), wsContentType.GetPtr(), wsEncode.GetPtr(), wsHeader.GetPtr());
-        return TRUE;
-    }
-    return FALSE;
+FX_BOOL CPDFXFA_App::PostRequestURL(const CFX_WideStringC& wsURL,
+                                    const CFX_WideStringC& wsData,
+                                    const CFX_WideStringC& wsContentType,
+                                    const CFX_WideStringC& wsEncode,
+                                    const CFX_WideStringC& wsHeader,
+                                    CFX_WideString& wsResponse) {
+  CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
+  if (pEnv) {
+    wsResponse = pEnv->FFI_PostRequestURL(wsURL.GetPtr(), wsData.GetPtr(),
+                                          wsContentType.GetPtr(),
+                                          wsEncode.GetPtr(), wsHeader.GetPtr());
+    return TRUE;
+  }
+  return FALSE;
 }
 
-FX_BOOL CPDFXFA_App::PutRequestURL(const CFX_WideStringC& wsURL, const CFX_WideStringC& wsData, const CFX_WideStringC& wsEncode)
-{
-    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
-    if (pEnv)
-    {
-        return pEnv->FFI_PutRequestURL(wsURL.GetPtr(), wsData.GetPtr(), wsEncode.GetPtr());
-    }
-    return FALSE;
+FX_BOOL CPDFXFA_App::PutRequestURL(const CFX_WideStringC& wsURL,
+                                   const CFX_WideStringC& wsData,
+                                   const CFX_WideStringC& wsEncode) {
+  CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
+  if (pEnv) {
+    return pEnv->FFI_PutRequestURL(wsURL.GetPtr(), wsData.GetPtr(),
+                                   wsEncode.GetPtr());
+  }
+  return FALSE;
 }
 
-void CPDFXFA_App::LoadString(int32_t iStringID, CFX_WideString &wsString)
-{
-    switch (iStringID)
-    {
+void CPDFXFA_App::LoadString(int32_t iStringID, CFX_WideString& wsString) {
+  switch (iStringID) {
     case XFA_IDS_ValidateFailed:
-        wsString = L"%s validate failed";
-        return;
+      wsString = L"%s validate failed";
+      return;
     case XFA_IDS_CalcOverride:
-        wsString = L"Calculate Override";
-        return;
+      wsString = L"Calculate Override";
+      return;
     case XFA_IDS_ModifyField:
-        wsString = L"Are you sure you want to modify this field?";
-        return;
+      wsString = L"Are you sure you want to modify this field?";
+      return;
     case XFA_IDS_NotModifyField:
-        wsString = L"You are not allowed to modify this field.";
-        return;
+      wsString = L"You are not allowed to modify this field.";
+      return;
     case XFA_IDS_AppName:
-        wsString = L"Foxit";
-        return;
+      wsString = L"Foxit";
+      return;
     case XFA_IDS_ImageFilter:
-        wsString = L"Image Files(*.bmp;*.jpg;*.png;*.gif;*.tif)|*.bmp;*.jpg;*.png;*.gif;*.tif|All Files(*.*)|*.*||";
-        return;
+      wsString =
+          L"Image "
+          L"Files(*.bmp;*.jpg;*.png;*.gif;*.tif)|*.bmp;*.jpg;*.png;*.gif;*.tif|"
+          L"All Files(*.*)|*.*||";
+      return;
     case XFA_IDS_UNKNOW_CATCHED:
-        wsString = L"unknown error is catched!";
-        return;
+      wsString = L"unknown error is catched!";
+      return;
     case XFA_IDS_Unable_TO_SET:
-        wsString = L"Unable to set ";
-        return;
+      wsString = L"Unable to set ";
+      return;
     case XFA_IDS_VALUE_EXCALMATORY:
-        wsString = L" value!";
-        return;
+      wsString = L" value!";
+      return;
     case XFA_IDS_INVALID_ENUM_VALUE:
-        wsString = L"Invalid enumerated value: ";
-        return;
+      wsString = L"Invalid enumerated value: ";
+      return;
     case XFA_IDS_UNSUPPORT_METHOD:
-        wsString = L"unsupport %s method.";
-        return;
+      wsString = L"unsupport %s method.";
+      return;
     case XFA_IDS_UNSUPPORT_PROP:
-        wsString = L"unsupport %s property.";
-        return;
+      wsString = L"unsupport %s property.";
+      return;
     case XFA_IDS_INVAlID_PROP_SET:
-        wsString = L"Invalid property set operation;";
-        return;
+      wsString = L"Invalid property set operation;";
+      return;
     case XFA_IDS_NOT_DEFAUL_VALUE:
-        wsString = L" doesn't have a default property";
-        return;
+      wsString = L" doesn't have a default property";
+      return;
     case XFA_IDS_UNABLE_SET_LANGUAGE:
-        wsString = L"Unable to set language value!";
-        return;
+      wsString = L"Unable to set language value!";
+      return;
     case XFA_IDS_UNABLE_SET_NUMPAGES:
-        wsString = L"Unable to set numPages value!";
-        return;
+      wsString = L"Unable to set numPages value!";
+      return;
     case XFA_IDS_UNABLE_SET_PLATFORM:
-        wsString = L"Unable to set platform value!";
-        return;
+      wsString = L"Unable to set platform value!";
+      return;
     case XFA_IDS_UNABLE_SET_VALIDATIONENABLE:
-        wsString = L"Unable to set validationsEnabled value!";
-        return;
+      wsString = L"Unable to set validationsEnabled value!";
+      return;
     case XFA_IDS_UNABLE_SET_VARIATION:
-        wsString = L"Unable to set variation value!";
-        return;
+      wsString = L"Unable to set variation value!";
+      return;
     case XFA_IDS_UNABLE_SET_VERSION:
-        wsString = L"Unable to set version value!";
-        return;
+      wsString = L"Unable to set version value!";
+      return;
     case XFA_IDS_UNABLE_SET_READY:
-        wsString = L"Unable to set ready value!";
-        return;
+      wsString = L"Unable to set ready value!";
+      return;
     case XFA_IDS_NUMBER_OF_OCCUR:
-        wsString = L"The element [%s] has violated its allowable number of occurrences";
-        return;
+      wsString =
+          L"The element [%s] has violated its allowable number of occurrences";
+      return;
     case XFA_IDS_UNABLE_SET_CLASS_NAME:
-        wsString = L"Unable to set className value!";
-        return;
+      wsString = L"Unable to set className value!";
+      return;
     case XFA_IDS_UNABLE_SET_LENGTH_VALUE:
-        wsString = L"Unable to set length value!";
-        return;
+      wsString = L"Unable to set length value!";
+      return;
     case XFA_IDS_UNSUPPORT_CHAR:
-        wsString = L"unsupported char '%c'";
-        return;
+      wsString = L"unsupported char '%c'";
+      return;
     case XFA_IDS_BAD_SUFFIX:
-        wsString = L"bad suffix on number";
-        return;
+      wsString = L"bad suffix on number";
+      return;
     case XFA_IDS_EXPECTED_IDENT:
-        wsString = L"expected identifier instead of '%s'";
-        return;
+      wsString = L"expected identifier instead of '%s'";
+      return;
     case XFA_IDS_EXPECTED_STRING:
-        wsString = L"expected '%s' instead of '%s'";
-        return;
+      wsString = L"expected '%s' instead of '%s'";
+      return;
     case XFA_IDS_INVALIDATE_CHAR:
-        wsString = L"invalidate char '%c'";
-        return;
+      wsString = L"invalidate char '%c'";
+      return;
     case XFA_IDS_REDEFINITION:
-        wsString = L"'%s' redefinition ";
-        return;
+      wsString = L"'%s' redefinition ";
+      return;
     case XFA_IDS_INVALIDATE_TOKEN:
-        wsString = L"invalidate token '%s'";
-        return;
+      wsString = L"invalidate token '%s'";
+      return;
     case XFA_IDS_INVALIDATE_EXPRESSION:
-        wsString = L"invalidate expression '%s'";
-        return;
+      wsString = L"invalidate expression '%s'";
+      return;
     case XFA_IDS_UNDEFINE_IDENTIFIER:
-        wsString = L"undefined identifier '%s'";
-        return;
+      wsString = L"undefined identifier '%s'";
+      return;
     case XFA_IDS_INVALIDATE_LEFTVALUE:
-        wsString = L"invalidate left-value '%s'";
-        return;
+      wsString = L"invalidate left-value '%s'";
+      return;
     case XFA_IDS_COMPILER_ERROR:
-        wsString = L"compiler error";
-        return;
+      wsString = L"compiler error";
+      return;
     case XFA_IDS_CANNOT_MODIFY_VALUE:
-        wsString = L"can't modify the '%s' value";
-        return;
+      wsString = L"can't modify the '%s' value";
+      return;
     case XFA_IDS_ERROR_PARAMETERS:
-        wsString = L"function '%s' has not %d parameters";
-        return;
+      wsString = L"function '%s' has not %d parameters";
+      return;
     case XFA_IDS_EXPECT_ENDIF:
-        wsString = L"expected 'endif' instead of '%s'";
-        return;
+      wsString = L"expected 'endif' instead of '%s'";
+      return;
     case XFA_IDS_UNEXPECTED_EXPRESSION:
-        wsString = L"unexpected expression '%s'";
-        return;
+      wsString = L"unexpected expression '%s'";
+      return;
     case XFA_IDS_CONDITION_IS_NULL:
-        wsString = L"condition is null";
-        return;
+      wsString = L"condition is null";
+      return;
     case XFA_IDS_ILLEGALBREAK:
-        wsString = L"illegal break";
-        return;
+      wsString = L"illegal break";
+      return;
     case XFA_IDS_ILLEGALCONTINUE:
-        wsString = L"illegal continue";
-        return;
+      wsString = L"illegal continue";
+      return;
     case XFA_IDS_EXPECTED_OPERATOR:
-        wsString = L"expected operator '%s' instead of '%s'";
-        return;
+      wsString = L"expected operator '%s' instead of '%s'";
+      return;
     case XFA_IDS_DIVIDE_ZERO:
-        wsString = L"divide by zero";
-        return;
+      wsString = L"divide by zero";
+      return;
     case XFA_IDS_CANNOT_COVERT_OBJECT:
-        wsString = L"%s.%s can not covert to object";
-        return;
+      wsString = L"%s.%s can not covert to object";
+      return;
     case XFA_IDS_NOT_FOUND_CONTAINER:
-        wsString = L"can not found container '%s'";
-        return;
+      wsString = L"can not found container '%s'";
+      return;
     case XFA_IDS_NOT_FOUND_PROPERTY:
-        wsString = L"can not found property '%s'";
-        return;
+      wsString = L"can not found property '%s'";
+      return;
     case XFA_IDS_NOT_FOUND_METHOD:
-        wsString = L"can not found method '%s'";
-        return;
+      wsString = L"can not found method '%s'";
+      return;
     case XFA_IDS_NOT_FOUND_CONST:
-        wsString = L"can not found const '%s'";
-        return;
+      wsString = L"can not found const '%s'";
+      return;
     case XFA_IDS_NOT_ASSIGN_OBJECT:
-        wsString = L"can not direct assign value to object";
-        return;
+      wsString = L"can not direct assign value to object";
+      return;
     case XFA_IDS_IVALIDATE_INSTRUCTION:
-        wsString = L"invalidate instruction";
-        return;
+      wsString = L"invalidate instruction";
+      return;
     case XFA_IDS_EXPECT_NUMBER:
-        wsString = L"expected number instead of '%s'";
-        return;
+      wsString = L"expected number instead of '%s'";
+      return;
     case XFA_IDS_VALIDATE_OUT_ARRAY:
-        wsString = L"validate access index '%s' out of array";
-        return;
+      wsString = L"validate access index '%s' out of array";
+      return;
     case XFA_IDS_CANNOT_ASSIGN_IDENT:
-        wsString = L"can not assign to %s";
-        return;
+      wsString = L"can not assign to %s";
+      return;
     case XFA_IDS_NOT_FOUNT_FUNCTION:
-        wsString = L"can not found '%s' function";
-        return;
+      wsString = L"can not found '%s' function";
+      return;
     case XFA_IDS_NOT_ARRAY:
-        wsString = L"'%s' doesn't an array";
-        return;
+      wsString = L"'%s' doesn't an array";
+      return;
     case XFA_IDS_OUT_ARRAY:
-        wsString = L"out of range of '%s' array";
-        return;
+      wsString = L"out of range of '%s' array";
+      return;
     case XFA_IDS_NOT_SUPPORT_CALC:
-        wsString = L"'%s' operator can not support array calculate";
-        return;
+      wsString = L"'%s' operator can not support array calculate";
+      return;
     case XFA_IDS_ARGUMENT_NOT_ARRAY:
-        wsString = L"'%s' function's %d argument can not be array";
-        return;
+      wsString = L"'%s' function's %d argument can not be array";
+      return;
     case XFA_IDS_ARGUMENT_EXPECT_CONTAINER:
-        wsString = L"'%s' argument expected a container";
-        return;
+      wsString = L"'%s' argument expected a container";
+      return;
     case XFA_IDS_ACCESS_PROPERTY_IN_NOT_OBJECT:
-        wsString = L"an attempt was made to reference property '%s' of a non-object in SOM expression %s";
-        return;
+      wsString =
+          L"an attempt was made to reference property '%s' of a non-object in "
+          L"SOM expression %s";
+      return;
     case XFA_IDS_FUNCTION_IS_BUILDIN:
-        wsString = L"function '%s' is buildin";
-        return;
+      wsString = L"function '%s' is buildin";
+      return;
     case XFA_IDS_ERROR_MSG:
-        wsString = L"%s : %s";
-        return;
+      wsString = L"%s : %s";
+      return;
     case XFA_IDS_INDEX_OUT_OF_BOUNDS:
-        wsString = L"Index value is out of bounds";
-        return;
+      wsString = L"Index value is out of bounds";
+      return;
     case XFA_IDS_INCORRECT_NUMBER_OF_METHOD:
-        wsString = L"Incorrect number of parameters calling method '%s'";
-        return;
+      wsString = L"Incorrect number of parameters calling method '%s'";
+      return;
     case XFA_IDS_ARGUMENT_MISMATCH:
-        wsString = L"Argument mismatch in property or function argument";
-        return;
+      wsString = L"Argument mismatch in property or function argument";
+      return;
     case XFA_IDS_INVALID_ENUMERATE:
-        wsString = L"Invalid enumerated value: %s";
-        return;
+      wsString = L"Invalid enumerated value: %s";
+      return;
     case XFA_IDS_INVALID_APPEND:
-        wsString = L"Invalid append operation: %s cannot have a child element of %s";
-        return;
+      wsString =
+          L"Invalid append operation: %s cannot have a child element of %s";
+      return;
     case XFA_IDS_SOM_EXPECTED_LIST:
-        wsString = L"SOM expression returned list when single result was expected";
-        return;
+      wsString =
+          L"SOM expression returned list when single result was expected";
+      return;
     case XFA_IDS_NOT_HAVE_PROPERTY:
-        wsString = L"'%s' doesn't have property '%s'";
-        return;
+      wsString = L"'%s' doesn't have property '%s'";
+      return;
     case XFA_IDS_INVALID_NODE_TYPE:
-        wsString = L"Invalid node type : '%s'";
-        return;
+      wsString = L"Invalid node type : '%s'";
+      return;
     case XFA_IDS_VIOLATE_BOUNDARY:
-        wsString = L"The element [%s] has violated its allowable number of occurrences";
-        return;
+      wsString =
+          L"The element [%s] has violated its allowable number of occurrences";
+      return;
     case XFA_IDS_SERVER_DENY:
-        wsString = L"Server does not permit";
-        return;
+      wsString = L"Server does not permit";
+      return;
     case XFA_IDS_ValidateLimit:
-        wsString = FX_WSTRC(L"Message limit exceeded. Remaining %d validation errors not reported.");
-        return;
+      wsString = FX_WSTRC(
+          L"Message limit exceeded. Remaining %d validation errors not "
+          L"reported.");
+      return;
     case XFA_IDS_ValidateNullWarning:
-        wsString = FX_WSTRC(L"%s cannot be left blank. To ignore validations for %s, click Ignore.");
-        return;
+      wsString = FX_WSTRC(
+          L"%s cannot be left blank. To ignore validations for %s, click "
+          L"Ignore.");
+      return;
     case XFA_IDS_ValidateNullError:
-        wsString = FX_WSTRC(L"%s cannot be left blank.");
-        return;
+      wsString = FX_WSTRC(L"%s cannot be left blank.");
+      return;
     case XFA_IDS_ValidateWarning:
-        wsString = FX_WSTRC(L"The value you entered for %s is invalid. To ignore validations for %s, click Ignore.");
-        return;
+      wsString = FX_WSTRC(
+          L"The value you entered for %s is invalid. To ignore validations for "
+          L"%s, click Ignore.");
+      return;
     case XFA_IDS_ValidateError:
-        wsString = FX_WSTRC(L"The value you entered for %s is invalid.");
-        return;
-    }
-
+      wsString = FX_WSTRC(L"The value you entered for %s is invalid.");
+      return;
+  }
 }
 
-FX_BOOL CPDFXFA_App::ShowFileDialog(const CFX_WideStringC& wsTitle, const CFX_WideStringC& wsFilter, CFX_WideStringArray &wsPathArr, FX_BOOL bOpen)
-{
-    return FALSE;
+FX_BOOL CPDFXFA_App::ShowFileDialog(const CFX_WideStringC& wsTitle,
+                                    const CFX_WideStringC& wsFilter,
+                                    CFX_WideStringArray& wsPathArr,
+                                    FX_BOOL bOpen) {
+  return FALSE;
 }
 
-IFWL_AdapterTimerMgr* CPDFXFA_App::GetTimerMgr()
-{
-    CXFA_FWLAdapterTimerMgr* pAdapter = NULL;
-    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
-    if (pEnv)
-        pAdapter = FX_NEW CXFA_FWLAdapterTimerMgr(pEnv);
-    return pAdapter;
+IFWL_AdapterTimerMgr* CPDFXFA_App::GetTimerMgr() {
+  CXFA_FWLAdapterTimerMgr* pAdapter = NULL;
+  CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);
+  if (pEnv)
+    pAdapter = FX_NEW CXFA_FWLAdapterTimerMgr(pEnv);
+  return pAdapter;
 }
diff --git a/fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp b/fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp
index 81f1edcc27..30be57e763 100644
--- a/fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp
+++ b/fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp
@@ -1,7 +1,7 @@
 // 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
 
 #include "../../../public/fpdf_formfill.h"
@@ -13,17 +13,19 @@
 #include "../../include/fpdfxfa/fpdfxfa_page.h"
 #include "../../include/javascript/IJavaScript.h"
 
-#define IDS_XFA_Validate_Input  "At least one required field was empty. Please fill in the required fields\r\n(highlighted) before continuing."
+#define IDS_XFA_Validate_Input                                          \
+  "At least one required field was empty. Please fill in the required " \
+  "fields\r\n(highlighted) before continuing."
 
 // submit
-#define FXFA_CONFIG				0x00000001
-#define FXFA_TEMPLATE			0x00000010
-#define FXFA_LOCALESET			0x00000100
-#define FXFA_DATASETS			0x00001000
-#define FXFA_XMPMETA			0x00010000
-#define FXFA_XFDF				0x00100000
-#define FXFA_FORM				0x01000000
-#define FXFA_PDF				0x10000000
+#define FXFA_CONFIG 0x00000001
+#define FXFA_TEMPLATE 0x00000010
+#define FXFA_LOCALESET 0x00000100
+#define FXFA_DATASETS 0x00001000
+#define FXFA_XMPMETA 0x00010000
+#define FXFA_XFDF 0x00100000
+#define FXFA_FORM 0x01000000
+#define FXFA_PDF 0x10000000
 
 #ifndef _WIN32
 extern void SetLastError(int err);
@@ -31,1409 +33,1319 @@ extern void SetLastError(int err);
 extern int GetLastError();
 #endif
 
-CPDFXFA_Document::CPDFXFA_Document(CPDF_Document* pPDFDoc, CPDFXFA_App* pProvider) :
-	m_pPDFDoc(pPDFDoc),
-	m_pApp(pProvider),
-	m_pXFADoc(NULL),
-	m_pXFADocView(NULL),
-	m_iDocType(DOCTYPE_PDF),
-	m_pJSContext(NULL),
-	m_pSDKDoc(NULL)
-{
-	m_XFAPageList.RemoveAll();
+CPDFXFA_Document::CPDFXFA_Document(CPDF_Document* pPDFDoc,
+                                   CPDFXFA_App* pProvider)
+    : m_pPDFDoc(pPDFDoc),
+      m_pApp(pProvider),
+      m_pXFADoc(NULL),
+      m_pXFADocView(NULL),
+      m_iDocType(DOCTYPE_PDF),
+      m_pJSContext(NULL),
+      m_pSDKDoc(NULL) {
+  m_XFAPageList.RemoveAll();
 }
 
-CPDFXFA_Document::~CPDFXFA_Document()
-{
-	if (m_pPDFDoc)
-	{
-		CPDF_Parser* pParser = (CPDF_Parser*)m_pPDFDoc->GetParser();
-		if (pParser == NULL) 
-		{
-		 	delete m_pPDFDoc;
-	 	}else 
-		{
-	 		delete pParser;
-		}
-		m_pPDFDoc = NULL;
-	}
-	if (m_pXFADoc)
-	{
-		IXFA_App* pApp = m_pApp->GetXFAApp();
-		if (pApp) 
-		{
-			IXFA_DocHandler* pDocHandler = pApp->GetDocHandler();
-			if (pDocHandler)
-			{
-				CloseXFADoc(pDocHandler);
-			}	
-		}
-	}
-
-	if (m_pJSContext)
-	{
-		if (m_pSDKDoc && m_pSDKDoc->GetEnv())
-		{
-			m_pSDKDoc->GetEnv()->GetJSRuntime()->ReleaseContext(m_pJSContext);
-			m_pJSContext = NULL;
-		}
-	}
-
-	
-	if (m_pSDKDoc)
-		delete m_pSDKDoc;
-	m_pSDKDoc = NULL;
+CPDFXFA_Document::~CPDFXFA_Document() {
+  if (m_pPDFDoc) {
+    CPDF_Parser* pParser = (CPDF_Parser*)m_pPDFDoc->GetParser();
+    if (pParser == NULL) {
+      delete m_pPDFDoc;
+    } else {
+      delete pParser;
+    }
+    m_pPDFDoc = NULL;
+  }
+  if (m_pXFADoc) {
+    IXFA_App* pApp = m_pApp->GetXFAApp();
+    if (pApp) {
+      IXFA_DocHandler* pDocHandler = pApp->GetDocHandler();
+      if (pDocHandler) {
+        CloseXFADoc(pDocHandler);
+      }
+    }
+  }
+
+  if (m_pJSContext) {
+    if (m_pSDKDoc && m_pSDKDoc->GetEnv()) {
+      m_pSDKDoc->GetEnv()->GetJSRuntime()->ReleaseContext(m_pJSContext);
+      m_pJSContext = NULL;
+    }
+  }
+
+  if (m_pSDKDoc)
+    delete m_pSDKDoc;
+  m_pSDKDoc = NULL;
 }
 
-FX_BOOL CPDFXFA_Document::LoadXFADoc()
-{
-	if (!m_pPDFDoc) 
-		return FALSE;
-
-	m_XFAPageList.RemoveAll();
-
-	IXFA_App* pApp = m_pApp->GetXFAApp();
-	if (!pApp)
-		return FALSE;
-
-	m_pXFADoc = pApp->CreateDoc(this, m_pPDFDoc);
-	if (!m_pXFADoc)
-	{
-		SetLastError(FPDF_ERR_XFALOAD);
-		return FALSE;
-	}
-
-	IXFA_DocHandler* pDocHandler = pApp->GetDocHandler();
-	if (!pDocHandler)
-	{
-		SetLastError(FPDF_ERR_XFALOAD);
-		return FALSE;
-	}
-
-	pDocHandler->StartLoad(m_pXFADoc);
-	int iStatus = pDocHandler->DoLoad(m_pXFADoc, NULL);
-	if (iStatus != XFA_PARSESTATUS_Done) 
-	{
-		CloseXFADoc(pDocHandler);
-		SetLastError(FPDF_ERR_XFALOAD);
-		return FALSE;
-	}
-	pDocHandler->StopLoad(m_pXFADoc);
-	pDocHandler->SetJSERuntime(m_pXFADoc, m_pApp->GetJSERuntime());
-
-	if (pDocHandler->GetDocType(m_pXFADoc) == XFA_DOCTYPE_Dynamic)
-		m_iDocType = DOCTYPE_DYNIMIC_XFA;
-	else
-		m_iDocType = DOCTYPE_STATIC_XFA;
-
-	m_pXFADocView = pDocHandler->CreateDocView(m_pXFADoc, XFA_DOCVIEW_View);
-	if (m_pXFADocView->StartLayout() < 0)
-	{
-		CloseXFADoc(pDocHandler);
-		SetLastError(FPDF_ERR_XFALAYOUT);
-		return FALSE;
-	}
-
-	m_pXFADocView->DoLayout(NULL);
-	m_pXFADocView->StopLayout();
-	return TRUE;
+FX_BOOL CPDFXFA_Document::LoadXFADoc() {
+  if (!m_pPDFDoc)
+    return FALSE;
+
+  m_XFAPageList.RemoveAll();
+
+  IXFA_App* pApp = m_pApp->GetXFAApp();
+  if (!pApp)
+    return FALSE;
+
+  m_pXFADoc = pApp->CreateDoc(this, m_pPDFDoc);
+  if (!m_pXFADoc) {
+    SetLastError(FPDF_ERR_XFALOAD);
+    return FALSE;
+  }
+
+  IXFA_DocHandler* pDocHandler = pApp->GetDocHandler();
+  if (!pDocHandler) {
+    SetLastError(FPDF_ERR_XFALOAD);
+    return FALSE;
+  }
+
+  pDocHandler->StartLoad(m_pXFADoc);
+  int iStatus = pDocHandler->DoLoad(m_pXFADoc, NULL);
+  if (iStatus != XFA_PARSESTATUS_Done) {
+    CloseXFADoc(pDocHandler);
+    SetLastError(FPDF_ERR_XFALOAD);
+    return FALSE;
+  }
+  pDocHandler->StopLoad(m_pXFADoc);
+  pDocHandler->SetJSERuntime(m_pXFADoc, m_pApp->GetJSERuntime());
+
+  if (pDocHandler->GetDocType(m_pXFADoc) == XFA_DOCTYPE_Dynamic)
+    m_iDocType = DOCTYPE_DYNIMIC_XFA;
+  else
+    m_iDocType = DOCTYPE_STATIC_XFA;
+
+  m_pXFADocView = pDocHandler->CreateDocView(m_pXFADoc, XFA_DOCVIEW_View);
+  if (m_pXFADocView->StartLayout() < 0) {
+    CloseXFADoc(pDocHandler);
+    SetLastError(FPDF_ERR_XFALAYOUT);
+    return FALSE;
+  }
+
+  m_pXFADocView->DoLayout(NULL);
+  m_pXFADocView->StopLayout();
+  return TRUE;
 }
 
-int CPDFXFA_Document::GetPageCount()
-{
-	if (!m_pPDFDoc && !m_pXFADoc)
-		return 0;
-
-	switch (m_iDocType)
-	{
-	case DOCTYPE_PDF:
-	case DOCTYPE_STATIC_XFA:
-		if (m_pPDFDoc)
-			return m_pPDFDoc->GetPageCount();
-	case DOCTYPE_DYNIMIC_XFA:
-		if (m_pXFADoc)
-			return m_pXFADocView->CountPageViews();
-	default:
-		return 0;
-	}
-
-	return 0;
+int CPDFXFA_Document::GetPageCount() {
+  if (!m_pPDFDoc && !m_pXFADoc)
+    return 0;
+
+  switch (m_iDocType) {
+    case DOCTYPE_PDF:
+    case DOCTYPE_STATIC_XFA:
+      if (m_pPDFDoc)
+        return m_pPDFDoc->GetPageCount();
+    case DOCTYPE_DYNIMIC_XFA:
+      if (m_pXFADoc)
+        return m_pXFADocView->CountPageViews();
+    default:
+      return 0;
+  }
+
+  return 0;
 }
 
-CPDFXFA_Page* CPDFXFA_Document::GetPage(int page_index)
-{
-	if (!m_pPDFDoc && !m_pXFADoc)
-		return NULL;
-
-	CPDFXFA_Page* pPage = NULL;
-	if (m_XFAPageList.GetSize())
-	{
-		pPage = m_XFAPageList.GetAt(page_index);
-		if (pPage)
-			pPage->AddRef();
-	}
-	else 
-	{
-		m_XFAPageList.SetSize(GetPageCount());
-	}
-
-	if (!pPage) 
-	{
-		pPage = FX_NEW CPDFXFA_Page(this, page_index);
-		FX_BOOL bRet = pPage->LoadPage();
-		if (!bRet) {
-			delete pPage;
-			return NULL;
-		}
-
-		m_XFAPageList.SetAt(page_index, pPage);
-	}
-
-	return pPage;
+CPDFXFA_Page* CPDFXFA_Document::GetPage(int page_index) {
+  if (!m_pPDFDoc && !m_pXFADoc)
+    return NULL;
+
+  CPDFXFA_Page* pPage = NULL;
+  if (m_XFAPageList.GetSize()) {
+    pPage = m_XFAPageList.GetAt(page_index);
+    if (pPage)
+      pPage->AddRef();
+  } else {
+    m_XFAPageList.SetSize(GetPageCount());
+  }
+
+  if (!pPage) {
+    pPage = FX_NEW CPDFXFA_Page(this, page_index);
+    FX_BOOL bRet = pPage->LoadPage();
+    if (!bRet) {
+      delete pPage;
+      return NULL;
+    }
+
+    m_XFAPageList.SetAt(page_index, pPage);
+  }
+
+  return pPage;
 }
 
-CPDFXFA_Page* CPDFXFA_Document::GetPage(IXFA_PageView* pPage)
-{
-	if (!pPage)
-		return NULL;
+CPDFXFA_Page* CPDFXFA_Document::GetPage(IXFA_PageView* pPage) {
+  if (!pPage)
+    return NULL;
 
-	if (!m_pXFADoc)
-		return NULL;
+  if (!m_pXFADoc)
+    return NULL;
 
-	if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
-		return NULL;
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
+    return NULL;
 
-	int nSize = m_XFAPageList.GetSize();
-	for (int i=0; i<nSize; i++)
-	{
-		CPDFXFA_Page* pTempPage = m_XFAPageList.GetAt(i);
-		if (!pTempPage) continue;
-		if (pTempPage->GetXFAPageView() && pTempPage->GetXFAPageView() == pPage)
-			return pTempPage;
-	}
+  int nSize = m_XFAPageList.GetSize();
+  for (int i = 0; i < nSize; i++) {
+    CPDFXFA_Page* pTempPage = m_XFAPageList.GetAt(i);
+    if (!pTempPage)
+      continue;
+    if (pTempPage->GetXFAPageView() && pTempPage->GetXFAPageView() == pPage)
+      return pTempPage;
+  }
 
-	return NULL;
+  return NULL;
 }
 
-void CPDFXFA_Document::RemovePage(CPDFXFA_Page* page)
-{
-	m_XFAPageList.SetAt(page->GetPageIndex(), NULL);
+void CPDFXFA_Document::RemovePage(CPDFXFA_Page* page) {
+  m_XFAPageList.SetAt(page->GetPageIndex(), NULL);
 }
 
-CPDFSDK_Document* CPDFXFA_Document::GetSDKDocument(CPDFDoc_Environment* pFormFillEnv)
-{
-	if (!pFormFillEnv)
-		return m_pSDKDoc;
+CPDFSDK_Document* CPDFXFA_Document::GetSDKDocument(
+    CPDFDoc_Environment* pFormFillEnv) {
+  if (!pFormFillEnv)
+    return m_pSDKDoc;
 
-	if (m_pSDKDoc)
-		return m_pSDKDoc;
+  if (m_pSDKDoc)
+    return m_pSDKDoc;
 
-	m_pSDKDoc = new CPDFSDK_Document(this, pFormFillEnv);
-	if (!m_pSDKDoc)
-		return NULL;
+  m_pSDKDoc = new CPDFSDK_Document(this, pFormFillEnv);
+  if (!m_pSDKDoc)
+    return NULL;
 
-	return m_pSDKDoc;
+  return m_pSDKDoc;
 }
 
-void CPDFXFA_Document::ReleaseSDKDoc()
-{
-	if (m_pSDKDoc)
-		delete m_pSDKDoc;
+void CPDFXFA_Document::ReleaseSDKDoc() {
+  if (m_pSDKDoc)
+    delete m_pSDKDoc;
 
-	m_pSDKDoc = NULL;
+  m_pSDKDoc = NULL;
 }
 
-void CPDFXFA_Document::FXRect2PDFRect(const CFX_RectF& fxRectF, CPDF_Rect& pdfRect)
-{
-	pdfRect.left = fxRectF.left;
-	pdfRect.top = fxRectF.bottom();
-	pdfRect.right = fxRectF.right();
-	pdfRect.bottom = fxRectF.top;
+void CPDFXFA_Document::FXRect2PDFRect(const CFX_RectF& fxRectF,
+                                      CPDF_Rect& pdfRect) {
+  pdfRect.left = fxRectF.left;
+  pdfRect.top = fxRectF.bottom();
+  pdfRect.right = fxRectF.right();
+  pdfRect.bottom = fxRectF.top;
 }
 
 //////////////////////////////////////////////////////////////////////////
-void CPDFXFA_Document::SetChangeMark(IXFA_Doc* hDoc)
-{
-	if (hDoc == m_pXFADoc && m_pSDKDoc)
-	{
-		m_pSDKDoc->SetChangeMark();
-	}
+void CPDFXFA_Document::SetChangeMark(IXFA_Doc* hDoc) {
+  if (hDoc == m_pXFADoc && m_pSDKDoc) {
+    m_pSDKDoc->SetChangeMark();
+  }
 }
 
-FX_BOOL CPDFXFA_Document::GetChangeMark(IXFA_Doc* hDoc)
-{
-	if (hDoc == m_pXFADoc && m_pSDKDoc)
-		return m_pSDKDoc->GetChangeMark();
-	return FALSE;
+FX_BOOL CPDFXFA_Document::GetChangeMark(IXFA_Doc* hDoc) {
+  if (hDoc == m_pXFADoc && m_pSDKDoc)
+    return m_pSDKDoc->GetChangeMark();
+  return FALSE;
 }
 
-void CPDFXFA_Document::InvalidateRect(IXFA_PageView* pPageView, const CFX_RectF& rt, FX_DWORD dwFlags /* = 0 */)
-{
-	if (!m_pXFADoc || !m_pSDKDoc)
-		return;
+void CPDFXFA_Document::InvalidateRect(IXFA_PageView* pPageView,
+                                      const CFX_RectF& rt,
+                                      FX_DWORD dwFlags /* = 0 */) {
+  if (!m_pXFADoc || !m_pSDKDoc)
+    return;
 
-	if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
-		return;
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
+    return;
 
-	CPDF_Rect rcPage;
-	FXRect2PDFRect(rt, rcPage);
+  CPDF_Rect rcPage;
+  FXRect2PDFRect(rt, rcPage);
 
-	CPDFXFA_Page* pPage = GetPage(pPageView);
+  CPDFXFA_Page* pPage = GetPage(pPageView);
 
-	if (pPage == NULL)
-		return;
+  if (pPage == NULL)
+    return;
 
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (!pEnv)
-		return;
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (!pEnv)
+    return;
 
-	pEnv->FFI_Invalidate((FPDF_PAGE)pPage, rcPage.left, rcPage.bottom, rcPage.right, rcPage.top);
+  pEnv->FFI_Invalidate((FPDF_PAGE)pPage, rcPage.left, rcPage.bottom,
+                       rcPage.right, rcPage.top);
 }
 
-void CPDFXFA_Document::InvalidateRect(IXFA_Widget* hWidget, FX_DWORD dwFlags /* = 0 */)
-{
-	if (!hWidget)
-		return;
+void CPDFXFA_Document::InvalidateRect(IXFA_Widget* hWidget,
+                                      FX_DWORD dwFlags /* = 0 */) {
+  if (!hWidget)
+    return;
 
-	if (!m_pXFADoc || !m_pSDKDoc || !m_pXFADocView)
-		return;
-	
-	if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
-		return;
+  if (!m_pXFADoc || !m_pSDKDoc || !m_pXFADocView)
+    return;
 
-	IXFA_WidgetHandler* pWidgetHandler = m_pXFADocView->GetWidgetHandler();
-	if (!pWidgetHandler)
-		return;
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
+    return;
 
-	IXFA_PageView* pPageView = pWidgetHandler->GetPageView(hWidget);
-	if (!pPageView)
-		return;
+  IXFA_WidgetHandler* pWidgetHandler = m_pXFADocView->GetWidgetHandler();
+  if (!pWidgetHandler)
+    return;
 
-	CFX_RectF rect;
-	pWidgetHandler->GetRect(hWidget, rect);
-	InvalidateRect(pPageView, rect, dwFlags);
-}
+  IXFA_PageView* pPageView = pWidgetHandler->GetPageView(hWidget);
+  if (!pPageView)
+    return;
 
-void CPDFXFA_Document::DisplayCaret(IXFA_Widget* hWidget, FX_BOOL bVisible, const CFX_RectF* pRtAnchor)
-{
-	if (!hWidget || pRtAnchor == NULL) 
-		return;
+  CFX_RectF rect;
+  pWidgetHandler->GetRect(hWidget, rect);
+  InvalidateRect(pPageView, rect, dwFlags);
+}
 
-	if (!m_pXFADoc || !m_pSDKDoc || !m_pXFADocView)
-		return;
+void CPDFXFA_Document::DisplayCaret(IXFA_Widget* hWidget,
+                                    FX_BOOL bVisible,
+                                    const CFX_RectF* pRtAnchor) {
+  if (!hWidget || pRtAnchor == NULL)
+    return;
 
-	if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
-		return;
+  if (!m_pXFADoc || !m_pSDKDoc || !m_pXFADocView)
+    return;
 
-	IXFA_WidgetHandler* pWidgetHandler = m_pXFADocView->GetWidgetHandler();
-	if (!pWidgetHandler)
-		return;
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
+    return;
 
-	IXFA_PageView* pPageView = pWidgetHandler->GetPageView(hWidget);
-	if (!pPageView)
-		return;
+  IXFA_WidgetHandler* pWidgetHandler = m_pXFADocView->GetWidgetHandler();
+  if (!pWidgetHandler)
+    return;
 
-	CPDFXFA_Page* pPage = GetPage(pPageView);
+  IXFA_PageView* pPageView = pWidgetHandler->GetPageView(hWidget);
+  if (!pPageView)
+    return;
 
-	if (pPage == NULL)
-		return;
+  CPDFXFA_Page* pPage = GetPage(pPageView);
 
-	CPDF_Rect rcCaret;
-	FXRect2PDFRect(*pRtAnchor, rcCaret);
+  if (pPage == NULL)
+    return;
 
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (!pEnv)
-		return;
+  CPDF_Rect rcCaret;
+  FXRect2PDFRect(*pRtAnchor, rcCaret);
 
-	pEnv->FFI_DisplayCaret((FPDF_PAGE)pPage, bVisible, rcCaret.left, rcCaret.top, rcCaret.right, rcCaret.bottom);
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (!pEnv)
+    return;
 
+  pEnv->FFI_DisplayCaret((FPDF_PAGE)pPage, bVisible, rcCaret.left, rcCaret.top,
+                         rcCaret.right, rcCaret.bottom);
 }
 
-FX_BOOL CPDFXFA_Document::GetPopupPos(IXFA_Widget* hWidget, FX_FLOAT fMinPopup, FX_FLOAT fMaxPopup, const CFX_RectF &rtAnchor, CFX_RectF &rtPopup)
-{
-	if (NULL == hWidget)
-	{
-		return FALSE;
-	}
-	IXFA_PageView* pXFAPageView = m_pXFADocView->GetWidgetHandler()->GetPageView(hWidget);
-	if (NULL == pXFAPageView)
-	{
-		return FALSE;
-	}
-	CPDFXFA_Page* pPage = GetPage(pXFAPageView);
-	if (pPage == NULL)
-		return FALSE;
-
-	CXFA_WidgetAcc* pWidgetAcc = m_pXFADocView->GetWidgetHandler()->GetDataAcc(hWidget);
-
-	int nRotate = pWidgetAcc->GetRotate();
-	
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return FALSE;
-	FS_RECTF pageViewRect;
-	pEnv->FFI_GetPageViewRect(pPage, pageViewRect);
-
-	CPDF_Rect rcAnchor;
-
-	rcAnchor.left = rtAnchor.left;
-	rcAnchor.top = rtAnchor.bottom();
-	rcAnchor.right = rtAnchor.right();
-	rcAnchor.bottom = rtAnchor.top;
-	
-	int t1,t2,t;
-	FX_DWORD dwPos; FX_FLOAT fPoupHeight;
-	switch(nRotate)
-	{
-		
-	case 90:
-		{
-			t1 = (int)(pageViewRect.right - rcAnchor.right);
- 			t2 = (int)(rcAnchor.left  - pageViewRect.left);
-			if (rcAnchor.bottom < pageViewRect.bottom) 
-			{
-				rtPopup.left += rcAnchor.bottom - pageViewRect.bottom;
-			}
-		 
-			break;
-		}
-		
-	case 180:
-		{
-			t2 = (int)(pageViewRect.top - rcAnchor.top);
-			t1 = (int)(rcAnchor.bottom - pageViewRect.bottom); 
-			if (rcAnchor.left < pageViewRect.left) 
-			{
-				rtPopup.left += rcAnchor.left - pageViewRect.left; 
-			}
-			break;
-		}
-	case 270:
-		{
-			t1 = (int)(rcAnchor.left  - pageViewRect.left);
-			t2 = (int)(pageViewRect.right - rcAnchor.right);
- 		
-			if (rcAnchor.top > pageViewRect.top) 
-			{
-				rtPopup.left -= rcAnchor.top - pageViewRect.top; 
-			}
-			break;
-		}
-	case 0:
-	default:
-		{
-			t1 = (int)(pageViewRect.top - rcAnchor.top);
-			t2 = (int)(rcAnchor.bottom - pageViewRect.bottom); 
-			if (rcAnchor.right > pageViewRect.right) 
-			{
-				rtPopup.left -= rcAnchor.right - pageViewRect.right; 
-			}
-			break;
-		}
-		
-	}
-
-	if (t1 <= 0 && t2 <= 0)
-	{
-		return FALSE;
-	}
-	if (t1 <= 0)
-	{
-		t = t2;
-		dwPos = 1;
-	}
-	else if(t2 <= 0)
-	{
-		t = t1;
-		dwPos = 0;
-	}
-	else if (t1 > t2 )
-	{
-		t = t1;
-		dwPos = 0;
-	}
-	else 
-	{
-		t = t2;
-		dwPos = 1;
-	}
-	if (t<fMinPopup)
-	{
-		fPoupHeight = fMinPopup;
-	}
-	else if (t > fMaxPopup)
-	{
-		fPoupHeight = fMaxPopup;
-	}
-	else
-	{
-		fPoupHeight = (FX_FLOAT)t;
-	}
-
-	switch(nRotate)
-	{
-		
-	case 0:
-	case 180:
-		{
-			if (dwPos == 0)
-			{
-				rtPopup.top = rtAnchor.height;
-				rtPopup.height = fPoupHeight;
-			}
-			else
-			{
-				rtPopup.top = - fPoupHeight;
-				rtPopup.height = fPoupHeight;
-			}
-			break;
-		}
-	case  90:
-	case  270:
-		{
-			if (dwPos == 0)
-			{
-				rtPopup.top = rtAnchor.width;
-				rtPopup.height = fPoupHeight;
-			}
-			else
-			{
-				rtPopup.top = - fPoupHeight;
-				rtPopup.height = fPoupHeight;
-			}
-			break;
-		}
-	default:
-			break;
-	}
-	
-	return TRUE;
+FX_BOOL CPDFXFA_Document::GetPopupPos(IXFA_Widget* hWidget,
+                                      FX_FLOAT fMinPopup,
+                                      FX_FLOAT fMaxPopup,
+                                      const CFX_RectF& rtAnchor,
+                                      CFX_RectF& rtPopup) {
+  if (NULL == hWidget) {
+    return FALSE;
+  }
+  IXFA_PageView* pXFAPageView =
+      m_pXFADocView->GetWidgetHandler()->GetPageView(hWidget);
+  if (NULL == pXFAPageView) {
+    return FALSE;
+  }
+  CPDFXFA_Page* pPage = GetPage(pXFAPageView);
+  if (pPage == NULL)
+    return FALSE;
+
+  CXFA_WidgetAcc* pWidgetAcc =
+      m_pXFADocView->GetWidgetHandler()->GetDataAcc(hWidget);
+
+  int nRotate = pWidgetAcc->GetRotate();
+
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return FALSE;
+  FS_RECTF pageViewRect;
+  pEnv->FFI_GetPageViewRect(pPage, pageViewRect);
+
+  CPDF_Rect rcAnchor;
+
+  rcAnchor.left = rtAnchor.left;
+  rcAnchor.top = rtAnchor.bottom();
+  rcAnchor.right = rtAnchor.right();
+  rcAnchor.bottom = rtAnchor.top;
+
+  int t1, t2, t;
+  FX_DWORD dwPos;
+  FX_FLOAT fPoupHeight;
+  switch (nRotate) {
+    case 90: {
+      t1 = (int)(pageViewRect.right - rcAnchor.right);
+      t2 = (int)(rcAnchor.left - pageViewRect.left);
+      if (rcAnchor.bottom < pageViewRect.bottom) {
+        rtPopup.left += rcAnchor.bottom - pageViewRect.bottom;
+      }
+
+      break;
+    }
+
+    case 180: {
+      t2 = (int)(pageViewRect.top - rcAnchor.top);
+      t1 = (int)(rcAnchor.bottom - pageViewRect.bottom);
+      if (rcAnchor.left < pageViewRect.left) {
+        rtPopup.left += rcAnchor.left - pageViewRect.left;
+      }
+      break;
+    }
+    case 270: {
+      t1 = (int)(rcAnchor.left - pageViewRect.left);
+      t2 = (int)(pageViewRect.right - rcAnchor.right);
+
+      if (rcAnchor.top > pageViewRect.top) {
+        rtPopup.left -= rcAnchor.top - pageViewRect.top;
+      }
+      break;
+    }
+    case 0:
+    default: {
+      t1 = (int)(pageViewRect.top - rcAnchor.top);
+      t2 = (int)(rcAnchor.bottom - pageViewRect.bottom);
+      if (rcAnchor.right > pageViewRect.right) {
+        rtPopup.left -= rcAnchor.right - pageViewRect.right;
+      }
+      break;
+    }
+  }
+
+  if (t1 <= 0 && t2 <= 0) {
+    return FALSE;
+  }
+  if (t1 <= 0) {
+    t = t2;
+    dwPos = 1;
+  } else if (t2 <= 0) {
+    t = t1;
+    dwPos = 0;
+  } else if (t1 > t2) {
+    t = t1;
+    dwPos = 0;
+  } else {
+    t = t2;
+    dwPos = 1;
+  }
+  if (t < fMinPopup) {
+    fPoupHeight = fMinPopup;
+  } else if (t > fMaxPopup) {
+    fPoupHeight = fMaxPopup;
+  } else {
+    fPoupHeight = (FX_FLOAT)t;
+  }
+
+  switch (nRotate) {
+    case 0:
+    case 180: {
+      if (dwPos == 0) {
+        rtPopup.top = rtAnchor.height;
+        rtPopup.height = fPoupHeight;
+      } else {
+        rtPopup.top = -fPoupHeight;
+        rtPopup.height = fPoupHeight;
+      }
+      break;
+    }
+    case 90:
+    case 270: {
+      if (dwPos == 0) {
+        rtPopup.top = rtAnchor.width;
+        rtPopup.height = fPoupHeight;
+      } else {
+        rtPopup.top = -fPoupHeight;
+        rtPopup.height = fPoupHeight;
+      }
+      break;
+    }
+    default:
+      break;
+  }
+
+  return TRUE;
 }
 
-FX_BOOL	CPDFXFA_Document::PopupMenu(IXFA_Widget* hWidget, CFX_PointF ptPopup, const CFX_RectF* pRectExclude)
-{
-	if (NULL == hWidget)
-	{
-		return FALSE;
-	}
-	IXFA_PageView* pXFAPageView = m_pXFADocView->GetWidgetHandler()->GetPageView(hWidget);
-	if (pXFAPageView == NULL)
-		return FALSE;
-	CPDFXFA_Page* pPage = GetPage(pXFAPageView);
-
-	if (pPage == NULL)
-		return FALSE;
-
-	int menuFlag = 0;
-
-	IXFA_MenuHandler* pXFAMenuHander = m_pApp->GetXFAApp()->GetMenuHandler();
-	if (pXFAMenuHander->CanUndo(hWidget))
-		menuFlag |= FXFA_MEMU_UNDO;
-	if (pXFAMenuHander->CanRedo(hWidget))
-		menuFlag |= FXFA_MEMU_REDO;
-	if (pXFAMenuHander->CanPaste(hWidget))
-		menuFlag |= FXFA_MEMU_PASTE;
-	if (pXFAMenuHander->CanCopy(hWidget))
-		menuFlag |= FXFA_MEMU_COPY;
-	if (pXFAMenuHander->CanCut(hWidget))
-		menuFlag |= FXFA_MEMU_CUT;
-	if (pXFAMenuHander->CanSelectAll(hWidget))
-		menuFlag |= FXFA_MEMU_SELECTALL;
-
-
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return FALSE;
-
-	return pEnv->FFI_PopupMenu(pPage, hWidget, menuFlag, ptPopup, NULL);
+FX_BOOL CPDFXFA_Document::PopupMenu(IXFA_Widget* hWidget,
+                                    CFX_PointF ptPopup,
+                                    const CFX_RectF* pRectExclude) {
+  if (NULL == hWidget) {
+    return FALSE;
+  }
+  IXFA_PageView* pXFAPageView =
+      m_pXFADocView->GetWidgetHandler()->GetPageView(hWidget);
+  if (pXFAPageView == NULL)
+    return FALSE;
+  CPDFXFA_Page* pPage = GetPage(pXFAPageView);
+
+  if (pPage == NULL)
+    return FALSE;
+
+  int menuFlag = 0;
+
+  IXFA_MenuHandler* pXFAMenuHander = m_pApp->GetXFAApp()->GetMenuHandler();
+  if (pXFAMenuHander->CanUndo(hWidget))
+    menuFlag |= FXFA_MEMU_UNDO;
+  if (pXFAMenuHander->CanRedo(hWidget))
+    menuFlag |= FXFA_MEMU_REDO;
+  if (pXFAMenuHander->CanPaste(hWidget))
+    menuFlag |= FXFA_MEMU_PASTE;
+  if (pXFAMenuHander->CanCopy(hWidget))
+    menuFlag |= FXFA_MEMU_COPY;
+  if (pXFAMenuHander->CanCut(hWidget))
+    menuFlag |= FXFA_MEMU_CUT;
+  if (pXFAMenuHander->CanSelectAll(hWidget))
+    menuFlag |= FXFA_MEMU_SELECTALL;
+
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return FALSE;
+
+  return pEnv->FFI_PopupMenu(pPage, hWidget, menuFlag, ptPopup, NULL);
 }
 
-void CPDFXFA_Document::PageViewEvent(IXFA_PageView* pPageView, FX_DWORD dwFlags)
-{
-	if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
-		return;
-
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return;
-
-	CPDFXFA_Page* pPage = GetPage(pPageView);
-	if (pPage == NULL)
-		return;
-
-	if (dwFlags == FXFA_PAGEVIEWEVENT_POSTADDED)
-	{
-		//pEnv->FFI_PageEvent(pPage, FXFA_PAGEVIEWEVENT_POSTADDED);
-	}
-	else if (dwFlags == FXFA_PAGEVIEWEVENT_POSTREMOVED)
-	{
-		//pEnv->FFI_PageEvent(pPage, FXFA_PAGEVIEWEVENT_POSTREMOVED);
-		//RemovePage(pPage);
-		//delete pPage;
-	}
+void CPDFXFA_Document::PageViewEvent(IXFA_PageView* pPageView,
+                                     FX_DWORD dwFlags) {
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
+    return;
+
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return;
+
+  CPDFXFA_Page* pPage = GetPage(pPageView);
+  if (pPage == NULL)
+    return;
+
+  if (dwFlags == FXFA_PAGEVIEWEVENT_POSTADDED) {
+    // pEnv->FFI_PageEvent(pPage, FXFA_PAGEVIEWEVENT_POSTADDED);
+  } else if (dwFlags == FXFA_PAGEVIEWEVENT_POSTREMOVED) {
+    // pEnv->FFI_PageEvent(pPage, FXFA_PAGEVIEWEVENT_POSTREMOVED);
+    // RemovePage(pPage);
+    // delete pPage;
+  }
 }
 
-void CPDFXFA_Document::WidgetEvent(IXFA_Widget* hWidget, CXFA_WidgetAcc* pWidgetData, FX_DWORD dwEvent, void* pParam, void* pAdditional)
-{
-	if (m_iDocType != DOCTYPE_DYNIMIC_XFA || NULL == hWidget)
-		return;
-	
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return;
-
-	if (NULL == hWidget) return;
-
-	IXFA_PageView* pPageView = m_pXFADocView->GetWidgetHandler()->GetPageView(hWidget);
-
-	if (pPageView == NULL)
-		return;
-	CPDFXFA_Page* pXFAPage = GetPage(pPageView);
-	if (pXFAPage == NULL)
-		return;
-
-	CPDFSDK_PageView* pSdkPageView = m_pSDKDoc->GetPageView(pXFAPage);
-
-	CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
-
-
-	if (dwEvent == XFA_WIDGETEVENT_PostAdded)
-	{
-// 			CPDFSDK_Annot* pAnnot = pAnnotHandlerMgr->NewAnnot(hWidget, pSdkPageView);
-// 			pAnnotHandlerMgr->Annot_OnLoad(pAnnot);
-
-			//pEnv->FFI_WidgetEvent(hWidget, XFA_WIDGETEVENT_PostAdded);
-// 		IXFA_PageView* pOldPageView = (IXFA_PageView*)pAdditional;
-// 		if (pOldPageView)
-// 		{
-// 			CPDFXFA_Page* pDestPage = m_pSDKDoc->GetPageView((IXFA_PageView*)pOldPageView);
-// 			ASSERT(pDestPage);
-// 			CPDFSDK_Annot* pAnnot = pDestPage->GetAnnotByXFAWidget(hWidget);
-// 			if (pAnnot)
-// 			{
-// 				if (m_pSDKDoc->GetFocusAnnot() == pAnnot)
-// 				{
-// 					m_pSDKDoc->SetFocusAnnot(NULL);
-// 				}
-// 				pDestPage->DeleteAnnot(pAnnot);
-// 			}
-// 		}
-		pSdkPageView->AddAnnot(hWidget);
-
-	}
-	else if (dwEvent == XFA_WIDGETEVENT_PreRemoved)
-	{	
-		CPDFSDK_Annot* pAnnot = pSdkPageView->GetAnnotByXFAWidget(hWidget);
-		if (pAnnot) {
-			pSdkPageView->DeleteAnnot(pAnnot);
-			//pEnv->FFI_WidgetEvent(hWidget, XFA_WIDGETEVENT_PreRemoved);
-		}
-	}
+void CPDFXFA_Document::WidgetEvent(IXFA_Widget* hWidget,
+                                   CXFA_WidgetAcc* pWidgetData,
+                                   FX_DWORD dwEvent,
+                                   void* pParam,
+                                   void* pAdditional) {
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA || NULL == hWidget)
+    return;
+
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return;
+
+  if (NULL == hWidget)
+    return;
+
+  IXFA_PageView* pPageView =
+      m_pXFADocView->GetWidgetHandler()->GetPageView(hWidget);
+
+  if (pPageView == NULL)
+    return;
+  CPDFXFA_Page* pXFAPage = GetPage(pPageView);
+  if (pXFAPage == NULL)
+    return;
+
+  CPDFSDK_PageView* pSdkPageView = m_pSDKDoc->GetPageView(pXFAPage);
+
+  CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
+
+  if (dwEvent == XFA_WIDGETEVENT_PostAdded) {
+    // 			CPDFSDK_Annot* pAnnot = pAnnotHandlerMgr->NewAnnot(hWidget,
+    // pSdkPageView);
+    // 			pAnnotHandlerMgr->Annot_OnLoad(pAnnot);
+
+    // pEnv->FFI_WidgetEvent(hWidget, XFA_WIDGETEVENT_PostAdded);
+    // 		IXFA_PageView* pOldPageView = (IXFA_PageView*)pAdditional;
+    // 		if (pOldPageView)
+    // 		{
+    // 			CPDFXFA_Page* pDestPage =
+    // m_pSDKDoc->GetPageView((IXFA_PageView*)pOldPageView);
+    // 			ASSERT(pDestPage);
+    // 			CPDFSDK_Annot* pAnnot =
+    // pDestPage->GetAnnotByXFAWidget(hWidget);
+    // 			if (pAnnot)
+    // 			{
+    // 				if (m_pSDKDoc->GetFocusAnnot() == pAnnot)
+    // 				{
+    // 					m_pSDKDoc->SetFocusAnnot(NULL);
+    // 				}
+    // 				pDestPage->DeleteAnnot(pAnnot);
+    // 			}
+    // 		}
+    pSdkPageView->AddAnnot(hWidget);
+
+  } else if (dwEvent == XFA_WIDGETEVENT_PreRemoved) {
+    CPDFSDK_Annot* pAnnot = pSdkPageView->GetAnnotByXFAWidget(hWidget);
+    if (pAnnot) {
+      pSdkPageView->DeleteAnnot(pAnnot);
+      // pEnv->FFI_WidgetEvent(hWidget, XFA_WIDGETEVENT_PreRemoved);
+    }
+  }
 }
 
-int32_t CPDFXFA_Document::CountPages(IXFA_Doc* hDoc)
-{
-	if (hDoc == m_pXFADoc && m_pSDKDoc)
-	{
-		return GetPageCount();
-	}
-	return 0;
+int32_t CPDFXFA_Document::CountPages(IXFA_Doc* hDoc) {
+  if (hDoc == m_pXFADoc && m_pSDKDoc) {
+    return GetPageCount();
+  }
+  return 0;
 }
-int32_t CPDFXFA_Document::GetCurrentPage(IXFA_Doc* hDoc)
-{
-	if (hDoc != m_pXFADoc || !m_pSDKDoc)
-		return -1;
-	if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
-		return -1;
-
-	
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return -1;
-
-	return pEnv->FFI_GetCurrentPageIndex(this);
-}
-void CPDFXFA_Document::SetCurrentPage(IXFA_Doc* hDoc, int32_t iCurPage)
-{
-	if (hDoc != m_pXFADoc || !m_pSDKDoc)
-		return;
-	if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
-		return;
-		
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return;
-
-	pEnv->FFI_SetCurrentPage(this, iCurPage);
+int32_t CPDFXFA_Document::GetCurrentPage(IXFA_Doc* hDoc) {
+  if (hDoc != m_pXFADoc || !m_pSDKDoc)
+    return -1;
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
+    return -1;
+
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return -1;
+
+  return pEnv->FFI_GetCurrentPageIndex(this);
 }
-FX_BOOL	CPDFXFA_Document::IsCalculationsEnabled(IXFA_Doc* hDoc)
-{
-	if (hDoc != m_pXFADoc || !m_pSDKDoc)
-		return FALSE;
-	if (m_pSDKDoc->GetInterForm())
-		return m_pSDKDoc->GetInterForm()->IsXfaCalculateEnabled();
+void CPDFXFA_Document::SetCurrentPage(IXFA_Doc* hDoc, int32_t iCurPage) {
+  if (hDoc != m_pXFADoc || !m_pSDKDoc)
+    return;
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
+    return;
 
-	return FALSE;
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return;
 
+  pEnv->FFI_SetCurrentPage(this, iCurPage);
 }
-void CPDFXFA_Document::SetCalculationsEnabled(IXFA_Doc* hDoc, FX_BOOL bEnabled)
-{
-	if (hDoc != m_pXFADoc || !m_pSDKDoc)
-		return;
-	if (m_pSDKDoc->GetInterForm())
-		m_pSDKDoc->GetInterForm()->XfaEnableCalculate(bEnabled);
+FX_BOOL CPDFXFA_Document::IsCalculationsEnabled(IXFA_Doc* hDoc) {
+  if (hDoc != m_pXFADoc || !m_pSDKDoc)
+    return FALSE;
+  if (m_pSDKDoc->GetInterForm())
+    return m_pSDKDoc->GetInterForm()->IsXfaCalculateEnabled();
+
+  return FALSE;
+}
+void CPDFXFA_Document::SetCalculationsEnabled(IXFA_Doc* hDoc,
+                                              FX_BOOL bEnabled) {
+  if (hDoc != m_pXFADoc || !m_pSDKDoc)
+    return;
+  if (m_pSDKDoc->GetInterForm())
+    m_pSDKDoc->GetInterForm()->XfaEnableCalculate(bEnabled);
 }
 
-void CPDFXFA_Document::GetTitle(IXFA_Doc* hDoc, CFX_WideString &wsTitle)
-{
-	if (hDoc != m_pXFADoc)
-		return;
-	if (m_pPDFDoc == NULL)
-		return;
-	CPDF_Dictionary* pInfoDict = m_pPDFDoc->GetInfo();
-
-	if (pInfoDict == NULL)
-		return;
-	
-	CFX_ByteString csTitle = pInfoDict->GetString("Title");
-    wsTitle = wsTitle.FromLocal(csTitle.GetBuffer(csTitle.GetLength()));
-	csTitle.ReleaseBuffer(csTitle.GetLength());
+void CPDFXFA_Document::GetTitle(IXFA_Doc* hDoc, CFX_WideString& wsTitle) {
+  if (hDoc != m_pXFADoc)
+    return;
+  if (m_pPDFDoc == NULL)
+    return;
+  CPDF_Dictionary* pInfoDict = m_pPDFDoc->GetInfo();
+
+  if (pInfoDict == NULL)
+    return;
+
+  CFX_ByteString csTitle = pInfoDict->GetString("Title");
+  wsTitle = wsTitle.FromLocal(csTitle.GetBuffer(csTitle.GetLength()));
+  csTitle.ReleaseBuffer(csTitle.GetLength());
 }
-void CPDFXFA_Document::SetTitle(IXFA_Doc* hDoc, const CFX_WideStringC& wsTitle)
-{
-	if (hDoc != m_pXFADoc)
-		return;
-	if (m_pPDFDoc == NULL)
-		return;
-	CPDF_Dictionary* pInfoDict = m_pPDFDoc->GetInfo();
-
-	if (pInfoDict == NULL)
-		return;
-	pInfoDict->SetAt("Title", FX_NEW CPDF_String(wsTitle));
+void CPDFXFA_Document::SetTitle(IXFA_Doc* hDoc,
+                                const CFX_WideStringC& wsTitle) {
+  if (hDoc != m_pXFADoc)
+    return;
+  if (m_pPDFDoc == NULL)
+    return;
+  CPDF_Dictionary* pInfoDict = m_pPDFDoc->GetInfo();
+
+  if (pInfoDict == NULL)
+    return;
+  pInfoDict->SetAt("Title", FX_NEW CPDF_String(wsTitle));
 }
-void CPDFXFA_Document::ExportData(IXFA_Doc* hDoc, const CFX_WideStringC& wsFilePath, FX_BOOL bXDP)
-{
-	if (hDoc != m_pXFADoc)
-		return;
-	if (m_iDocType != DOCTYPE_DYNIMIC_XFA && m_iDocType != DOCTYPE_STATIC_XFA)
-		return;
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return;
-	int fileType = bXDP?FXFA_SAVEAS_XDP:FXFA_SAVEAS_XML;
-	CFX_ByteString bs = CFX_WideString(wsFilePath).UTF16LE_Encode();
-
-	if (wsFilePath.IsEmpty()) {
-		if (!pEnv->GetFormFillInfo() || pEnv->GetFormFillInfo()->m_pJsPlatform == NULL)
-			return;
-		CFX_WideString filepath = pEnv->JS_fieldBrowse();
-		bs = filepath.UTF16LE_Encode();
-	}
-	int len = bs.GetLength()/sizeof(unsigned short);
-	FPDF_FILEHANDLER* pFileHandler = pEnv->FFI_OpenFile(bXDP?FXFA_SAVEAS_XDP:FXFA_SAVEAS_XML, (FPDF_WIDESTRING)bs.GetBuffer(len*sizeof(unsigned short)), "wb");
-	bs.ReleaseBuffer(len*sizeof(unsigned short));
-
-	if (pFileHandler == NULL)
-		return;
-
-	CFPDF_FileStream fileWrite(pFileHandler);
-
-	IXFA_DocHandler *pXFADocHander = m_pApp->GetXFAApp()->GetDocHandler();
-	CFX_ByteString content;
-	if (fileType == FXFA_SAVEAS_XML)
-	{
-		content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
-		fileWrite.WriteBlock((const FX_CHAR*)content, fileWrite.GetSize(), content.GetLength());
-		CFX_WideStringC data(L"data");
-		if( pXFADocHander->SavePackage(m_pXFADocView->GetDoc(),data, &fileWrite))
-		{
-			NULL;
-		}
-	}
-	/*else if (fileType == FXFA_FILE_STATIC_XDP)
-	{
-		content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
-		fileWrite.WriteBlock((const FX_CHAR*)content, fileWrite.GetSize(), content.GetLength());
-		CFX_WideStringC data(L"data");
-		if( pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), data, &fileWrite))
-		{
-			NULL;
-		}
-		CFX_WideString wPath = pEnv->FFI_GetFilePath(pFileHandler);
+void CPDFXFA_Document::ExportData(IXFA_Doc* hDoc,
+                                  const CFX_WideStringC& wsFilePath,
+                                  FX_BOOL bXDP) {
+  if (hDoc != m_pXFADoc)
+    return;
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA && m_iDocType != DOCTYPE_STATIC_XFA)
+    return;
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return;
+  int fileType = bXDP ? FXFA_SAVEAS_XDP : FXFA_SAVEAS_XML;
+  CFX_ByteString bs = CFX_WideString(wsFilePath).UTF16LE_Encode();
+
+  if (wsFilePath.IsEmpty()) {
+    if (!pEnv->GetFormFillInfo() ||
+        pEnv->GetFormFillInfo()->m_pJsPlatform == NULL)
+      return;
+    CFX_WideString filepath = pEnv->JS_fieldBrowse();
+    bs = filepath.UTF16LE_Encode();
+  }
+  int len = bs.GetLength() / sizeof(unsigned short);
+  FPDF_FILEHANDLER* pFileHandler = pEnv->FFI_OpenFile(
+      bXDP ? FXFA_SAVEAS_XDP : FXFA_SAVEAS_XML,
+      (FPDF_WIDESTRING)bs.GetBuffer(len * sizeof(unsigned short)), "wb");
+  bs.ReleaseBuffer(len * sizeof(unsigned short));
+
+  if (pFileHandler == NULL)
+    return;
+
+  CFPDF_FileStream fileWrite(pFileHandler);
+
+  IXFA_DocHandler* pXFADocHander = m_pApp->GetXFAApp()->GetDocHandler();
+  CFX_ByteString content;
+  if (fileType == FXFA_SAVEAS_XML) {
+    content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
+    fileWrite.WriteBlock((const FX_CHAR*)content, fileWrite.GetSize(),
+                         content.GetLength());
+    CFX_WideStringC data(L"data");
+    if (pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), data, &fileWrite)) {
+      NULL;
+    }
+  }
+  /*else if (fileType == FXFA_FILE_STATIC_XDP)
+  {
+          content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
+          fileWrite.WriteBlock((const FX_CHAR*)content, fileWrite.GetSize(),
+content.GetLength());
+          CFX_WideStringC data(L"data");
+          if( pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), data,
+&fileWrite))
+          {
+                  NULL;
+          }
+          CFX_WideString wPath = pEnv->FFI_GetFilePath(pFileHandler);
 // 		CFX_WideString wPath;
 // 		wPath.FromUTF16LE(filePath);
-		CFX_ByteString bPath = wPath.UTF8Encode();
-		CFX_ByteString szFormat = "\n<pdf href=\"%s\" xmlns=\"http://ns.adobe.com/xdp/pdf/\"/>";
-		content.Format(szFormat,(char*)(const FX_CHAR*)bPath);
-		fileWrite.WriteBlock((const FX_CHAR*)content,fileWrite.GetSize(), content.GetLength());
-	}
-	*/
-	else if (fileType == FXFA_SAVEAS_XDP)
-	{	
-		if (m_pPDFDoc == NULL)
-			return;
-		CPDF_Dictionary* pRoot = m_pPDFDoc->GetRoot();
-		if (pRoot == NULL)
-			return;
-		CPDF_Dictionary* pAcroForm = pRoot->GetDict("AcroForm");
-		if (NULL == pAcroForm)
-			return;
-		CPDF_Object* pXFA = pAcroForm->GetElement("XFA");
-		if (pXFA == NULL)
-			return;
-		if (pXFA->GetType() != PDFOBJ_ARRAY)
-			return;
-		CPDF_Array* pArray = pXFA->GetArray();
-		if (NULL == pArray)
-			return;
-		int size = pArray->GetCount();
-		int iFormIndex = -1;
-		int iDataSetsIndex = -1;
-		for (int i=1; i<size;i+=2)
-		{
-			CPDF_Object* pPDFObj = pArray->GetElement(i);
-			CPDF_Object* pPrePDFObj = pArray->GetElement(i-1);
-			if(pPrePDFObj->GetType() != PDFOBJ_STRING)
-				continue;
-			if (pPDFObj->GetType() != PDFOBJ_REFERENCE)
-				continue;
-			CPDF_Object* pDirectObj = pPDFObj->GetDirect();
-			if(pDirectObj->GetType() != PDFOBJ_STREAM)
-				continue;
-			if (pPrePDFObj->GetString()=="form")
-			{
-				CFX_WideStringC form(L"form");
-				pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), form, &fileWrite);
-			}
-			else if (pPrePDFObj->GetString()=="datasets")
-			{
-				CFX_WideStringC datasets(L"datasets");
-				pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), datasets, &fileWrite);
-			}
-			else 
-			{	
-				if (i == size-1)
-				{
-					//CFX_WideString wPath = pEnv->FFI_GetFilePath(pFileHandler);
-					CFX_WideString wPath = CFX_WideString::FromUTF16LE((unsigned short*)(const FX_CHAR*)bs, bs.GetLength()/sizeof(unsigned short));
-					CFX_ByteString bPath = wPath.UTF8Encode();
-					CFX_ByteString szFormat = "\n<pdf href=\"%s\" xmlns=\"http://ns.adobe.com/xdp/pdf/\"/>";
-					content.Format(szFormat,(char*)(const FX_CHAR*)bPath);
-					fileWrite.WriteBlock((const FX_CHAR*)content,fileWrite.GetSize(), content.GetLength());
-				}
-
-				CPDF_Stream* pStream = (CPDF_Stream*)pDirectObj;
-				CPDF_StreamAcc* pAcc = FX_NEW CPDF_StreamAcc;
-				pAcc->LoadAllData(pStream);
-				fileWrite.WriteBlock(pAcc->GetData(), fileWrite.GetSize(), pAcc->GetSize());
-				delete pAcc;
-			}
-		}
-	}
-	FX_BOOL bError= fileWrite.Flush();
+          CFX_ByteString bPath = wPath.UTF8Encode();
+          CFX_ByteString szFormat = "\n<pdf href=\"%s\"
+xmlns=\"http://ns.adobe.com/xdp/pdf/\"/>";
+          content.Format(szFormat,(char*)(const FX_CHAR*)bPath);
+          fileWrite.WriteBlock((const FX_CHAR*)content,fileWrite.GetSize(),
+content.GetLength());
+  }
+  */
+  else if (fileType == FXFA_SAVEAS_XDP) {
+    if (m_pPDFDoc == NULL)
+      return;
+    CPDF_Dictionary* pRoot = m_pPDFDoc->GetRoot();
+    if (pRoot == NULL)
+      return;
+    CPDF_Dictionary* pAcroForm = pRoot->GetDict("AcroForm");
+    if (NULL == pAcroForm)
+      return;
+    CPDF_Object* pXFA = pAcroForm->GetElement("XFA");
+    if (pXFA == NULL)
+      return;
+    if (pXFA->GetType() != PDFOBJ_ARRAY)
+      return;
+    CPDF_Array* pArray = pXFA->GetArray();
+    if (NULL == pArray)
+      return;
+    int size = pArray->GetCount();
+    int iFormIndex = -1;
+    int iDataSetsIndex = -1;
+    for (int i = 1; i < size; i += 2) {
+      CPDF_Object* pPDFObj = pArray->GetElement(i);
+      CPDF_Object* pPrePDFObj = pArray->GetElement(i - 1);
+      if (pPrePDFObj->GetType() != PDFOBJ_STRING)
+        continue;
+      if (pPDFObj->GetType() != PDFOBJ_REFERENCE)
+        continue;
+      CPDF_Object* pDirectObj = pPDFObj->GetDirect();
+      if (pDirectObj->GetType() != PDFOBJ_STREAM)
+        continue;
+      if (pPrePDFObj->GetString() == "form") {
+        CFX_WideStringC form(L"form");
+        pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), form, &fileWrite);
+      } else if (pPrePDFObj->GetString() == "datasets") {
+        CFX_WideStringC datasets(L"datasets");
+        pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), datasets,
+                                   &fileWrite);
+      } else {
+        if (i == size - 1) {
+          // CFX_WideString wPath = pEnv->FFI_GetFilePath(pFileHandler);
+          CFX_WideString wPath = CFX_WideString::FromUTF16LE(
+              (unsigned short*)(const FX_CHAR*)bs,
+              bs.GetLength() / sizeof(unsigned short));
+          CFX_ByteString bPath = wPath.UTF8Encode();
+          CFX_ByteString szFormat =
+              "\n<pdf href=\"%s\" xmlns=\"http://ns.adobe.com/xdp/pdf/\"/>";
+          content.Format(szFormat, (char*)(const FX_CHAR*)bPath);
+          fileWrite.WriteBlock((const FX_CHAR*)content, fileWrite.GetSize(),
+                               content.GetLength());
+        }
+
+        CPDF_Stream* pStream = (CPDF_Stream*)pDirectObj;
+        CPDF_StreamAcc* pAcc = FX_NEW CPDF_StreamAcc;
+        pAcc->LoadAllData(pStream);
+        fileWrite.WriteBlock(pAcc->GetData(), fileWrite.GetSize(),
+                             pAcc->GetSize());
+        delete pAcc;
+      }
+    }
+  }
+  FX_BOOL bError = fileWrite.Flush();
 }
-void CPDFXFA_Document::ImportData(IXFA_Doc* hDoc, const CFX_WideStringC& wsFilePath)
-{
-	//TODO...
+void CPDFXFA_Document::ImportData(IXFA_Doc* hDoc,
+                                  const CFX_WideStringC& wsFilePath) {
+  // TODO...
 }
 
-void CPDFXFA_Document::GotoURL(IXFA_Doc* hDoc, const CFX_WideStringC& bsURL, FX_BOOL bAppend)
-{
-	if (hDoc != m_pXFADoc)
-		return;
-
-	if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
-		return;
-		
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return;
-	
-	CFX_WideStringC str(bsURL.GetPtr());
-	
-	pEnv->FFI_GotoURL(this, str, bAppend);
+void CPDFXFA_Document::GotoURL(IXFA_Doc* hDoc,
+                               const CFX_WideStringC& bsURL,
+                               FX_BOOL bAppend) {
+  if (hDoc != m_pXFADoc)
+    return;
+
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA)
+    return;
+
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return;
 
+  CFX_WideStringC str(bsURL.GetPtr());
+
+  pEnv->FFI_GotoURL(this, str, bAppend);
 }
 
-FX_BOOL	CPDFXFA_Document::IsValidationsEnabled(IXFA_Doc* hDoc)
-{
-	if (hDoc != m_pXFADoc || !m_pSDKDoc)
-		return FALSE;
-	if (m_pSDKDoc->GetInterForm())
-		return m_pSDKDoc->GetInterForm()->IsXfaValidationsEnabled();
+FX_BOOL CPDFXFA_Document::IsValidationsEnabled(IXFA_Doc* hDoc) {
+  if (hDoc != m_pXFADoc || !m_pSDKDoc)
+    return FALSE;
+  if (m_pSDKDoc->GetInterForm())
+    return m_pSDKDoc->GetInterForm()->IsXfaValidationsEnabled();
 
-	return TRUE;
+  return TRUE;
 }
-void CPDFXFA_Document::SetValidationsEnabled(IXFA_Doc* hDoc, FX_BOOL bEnabled)
-{
-	if (hDoc != m_pXFADoc || !m_pSDKDoc)
-		return;
-	if (m_pSDKDoc->GetInterForm())
-		m_pSDKDoc->GetInterForm()->XfaSetValidationsEnabled(bEnabled);
+void CPDFXFA_Document::SetValidationsEnabled(IXFA_Doc* hDoc, FX_BOOL bEnabled) {
+  if (hDoc != m_pXFADoc || !m_pSDKDoc)
+    return;
+  if (m_pSDKDoc->GetInterForm())
+    m_pSDKDoc->GetInterForm()->XfaSetValidationsEnabled(bEnabled);
 }
-void  CPDFXFA_Document::SetFocusWidget(IXFA_Doc* hDoc, IXFA_Widget* hWidget)
-{
-	if (hDoc != m_pXFADoc)
-		return;
-
-	if (NULL == hWidget) {
-		m_pSDKDoc->SetFocusAnnot(NULL);
-		return;
-	}
-
-	int pageViewCount = m_pSDKDoc->GetPageViewCount();
-	for (int i = 0; i < pageViewCount; i++)
-	{
-		CPDFSDK_PageView* pPageView = m_pSDKDoc->GetPageView(i);
-		if (pPageView == NULL)
-			continue;
-		CPDFSDK_Annot* pAnnot = pPageView->GetAnnotByXFAWidget(hWidget);
-		if (pAnnot) {
-			m_pSDKDoc->SetFocusAnnot(pAnnot);
-			break;
-		}
-	}
+void CPDFXFA_Document::SetFocusWidget(IXFA_Doc* hDoc, IXFA_Widget* hWidget) {
+  if (hDoc != m_pXFADoc)
+    return;
+
+  if (NULL == hWidget) {
+    m_pSDKDoc->SetFocusAnnot(NULL);
+    return;
+  }
+
+  int pageViewCount = m_pSDKDoc->GetPageViewCount();
+  for (int i = 0; i < pageViewCount; i++) {
+    CPDFSDK_PageView* pPageView = m_pSDKDoc->GetPageView(i);
+    if (pPageView == NULL)
+      continue;
+    CPDFSDK_Annot* pAnnot = pPageView->GetAnnotByXFAWidget(hWidget);
+    if (pAnnot) {
+      m_pSDKDoc->SetFocusAnnot(pAnnot);
+      break;
+    }
+  }
 }
-void CPDFXFA_Document::Print(IXFA_Doc* hDoc, int32_t nStartPage, int32_t nEndPage, FX_DWORD dwOptions)
-{
-	if (hDoc != m_pXFADoc)
-		return;
-		
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return;
-
-	if (!pEnv->GetFormFillInfo() || pEnv->GetFormFillInfo()->m_pJsPlatform == NULL)
-		return;
-	if (pEnv->GetFormFillInfo()->m_pJsPlatform->Doc_print == NULL)
-		return;
-	pEnv->GetFormFillInfo()->m_pJsPlatform->Doc_print(pEnv->GetFormFillInfo()->m_pJsPlatform,dwOptions&XFA_PRINTOPT_ShowDialog,
-		nStartPage,nEndPage,dwOptions&XFA_PRINTOPT_CanCancel,dwOptions&XFA_PRINTOPT_ShrinkPage,dwOptions&XFA_PRINTOPT_AsImage,
-		dwOptions&XFA_PRINTOPT_ReverseOrder,dwOptions&XFA_PRINTOPT_PrintAnnot);
+void CPDFXFA_Document::Print(IXFA_Doc* hDoc,
+                             int32_t nStartPage,
+                             int32_t nEndPage,
+                             FX_DWORD dwOptions) {
+  if (hDoc != m_pXFADoc)
+    return;
+
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return;
+
+  if (!pEnv->GetFormFillInfo() ||
+      pEnv->GetFormFillInfo()->m_pJsPlatform == NULL)
+    return;
+  if (pEnv->GetFormFillInfo()->m_pJsPlatform->Doc_print == NULL)
+    return;
+  pEnv->GetFormFillInfo()->m_pJsPlatform->Doc_print(
+      pEnv->GetFormFillInfo()->m_pJsPlatform,
+      dwOptions & XFA_PRINTOPT_ShowDialog, nStartPage, nEndPage,
+      dwOptions & XFA_PRINTOPT_CanCancel, dwOptions & XFA_PRINTOPT_ShrinkPage,
+      dwOptions & XFA_PRINTOPT_AsImage, dwOptions & XFA_PRINTOPT_ReverseOrder,
+      dwOptions & XFA_PRINTOPT_PrintAnnot);
 }
 
-void CPDFXFA_Document::GetURL(IXFA_Doc* hDoc, CFX_WideString &wsDocURL)
-{
-	if (hDoc != m_pXFADoc)
-		return;
+void CPDFXFA_Document::GetURL(IXFA_Doc* hDoc, CFX_WideString& wsDocURL) {
+  if (hDoc != m_pXFADoc)
+    return;
 
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return;
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return;
 
-	pEnv->FFI_GetURL(this, wsDocURL);
+  pEnv->FFI_GetURL(this, wsDocURL);
 }
 
-FX_ARGB	CPDFXFA_Document::GetHighlightColor(IXFA_Doc* hDoc)
-{
-	if (hDoc != m_pXFADoc)
-		return 0;
-	if (m_pSDKDoc)
-	{
-		if(CPDFSDK_InterForm* pInterForm = m_pSDKDoc->GetInterForm())
-		{
-			FX_COLORREF color = pInterForm->GetHighlightColor(FPDF_FORMFIELD_XFA);
-			uint8_t alpha = pInterForm->GetHighlightAlpha();
-			FX_ARGB argb = ArgbEncode((int)alpha, color);
-			return argb;
-		}	
-	}
-	return 0;
+FX_ARGB CPDFXFA_Document::GetHighlightColor(IXFA_Doc* hDoc) {
+  if (hDoc != m_pXFADoc)
+    return 0;
+  if (m_pSDKDoc) {
+    if (CPDFSDK_InterForm* pInterForm = m_pSDKDoc->GetInterForm()) {
+      FX_COLORREF color = pInterForm->GetHighlightColor(FPDF_FORMFIELD_XFA);
+      uint8_t alpha = pInterForm->GetHighlightAlpha();
+      FX_ARGB argb = ArgbEncode((int)alpha, color);
+      return argb;
+    }
+  }
+  return 0;
 }
 
-void CPDFXFA_Document::AddDoRecord(IXFA_Widget* hWidget)
-{
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return;
-	return;
-	//pEnv->FFI_AddDoRecord(this, hWidget);
+void CPDFXFA_Document::AddDoRecord(IXFA_Widget* hWidget) {
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return;
+  return;
+  // pEnv->FFI_AddDoRecord(this, hWidget);
 }
 
-FX_BOOL CPDFXFA_Document::_NotifySubmit(FX_BOOL bPrevOrPost)
-{
-	if (bPrevOrPost)
-		return _OnBeforeNotifySumbit();
-	else
-		_OnAfterNotifySumbit();
-	return TRUE;
+FX_BOOL CPDFXFA_Document::_NotifySubmit(FX_BOOL bPrevOrPost) {
+  if (bPrevOrPost)
+    return _OnBeforeNotifySumbit();
+  else
+    _OnAfterNotifySumbit();
+  return TRUE;
 }
 
-FX_BOOL CPDFXFA_Document::_OnBeforeNotifySumbit()
-{
-	if (m_iDocType != DOCTYPE_DYNIMIC_XFA && m_iDocType != DOCTYPE_STATIC_XFA)
-		return TRUE;
-	if (m_pXFADocView == NULL)
-		return TRUE;
-	IXFA_WidgetHandler* pWidgetHandler = m_pXFADocView->GetWidgetHandler();
-	if (pWidgetHandler == NULL)
-		return TRUE;
-	IXFA_WidgetAccIterator* pWidgetAccIterator = m_pXFADocView->CreateWidgetAccIterator();
-	if (pWidgetAccIterator)
-	{
-		CXFA_EventParam Param;
-		Param.m_eType = XFA_EVENT_PreSubmit;
-		CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext();
-		while (pWidgetAcc)
-		{
-			pWidgetHandler->ProcessEvent(pWidgetAcc, &Param);
-			pWidgetAcc = pWidgetAccIterator->MoveToNext();
-		}
-		pWidgetAccIterator->Release();
-	}
-	pWidgetAccIterator = m_pXFADocView->CreateWidgetAccIterator();
-	if (pWidgetAccIterator)
-	{
-		CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext();
-		pWidgetAcc = pWidgetAccIterator->MoveToNext();
-		while (pWidgetAcc)
-		{
-			int fRet = pWidgetAcc->ProcessValidate(-1);
-			if (fRet == XFA_EVENTERROR_Error)
-			{
-				CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-				if (pEnv == NULL)
-					return FALSE;
-				CFX_WideString ws;
-				ws.FromLocal(IDS_XFA_Validate_Input);
-				CFX_ByteString bs = ws.UTF16LE_Encode();
-				int len = bs.GetLength()/sizeof(unsigned short);
-				pEnv->FFI_Alert((FPDF_WIDESTRING)bs.GetBuffer(len*sizeof(unsigned short)), (FPDF_WIDESTRING)L"", 0, 1);
-				bs.ReleaseBuffer(len*sizeof(unsigned short));
-				pWidgetAccIterator->Release();
-				return FALSE;
-			}
-			pWidgetAcc = pWidgetAccIterator->MoveToNext();
-		}
-		pWidgetAccIterator->Release();
-		m_pXFADocView->UpdateDocView();
-	}
-	
-	return TRUE;
-
+FX_BOOL CPDFXFA_Document::_OnBeforeNotifySumbit() {
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA && m_iDocType != DOCTYPE_STATIC_XFA)
+    return TRUE;
+  if (m_pXFADocView == NULL)
+    return TRUE;
+  IXFA_WidgetHandler* pWidgetHandler = m_pXFADocView->GetWidgetHandler();
+  if (pWidgetHandler == NULL)
+    return TRUE;
+  IXFA_WidgetAccIterator* pWidgetAccIterator =
+      m_pXFADocView->CreateWidgetAccIterator();
+  if (pWidgetAccIterator) {
+    CXFA_EventParam Param;
+    Param.m_eType = XFA_EVENT_PreSubmit;
+    CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext();
+    while (pWidgetAcc) {
+      pWidgetHandler->ProcessEvent(pWidgetAcc, &Param);
+      pWidgetAcc = pWidgetAccIterator->MoveToNext();
+    }
+    pWidgetAccIterator->Release();
+  }
+  pWidgetAccIterator = m_pXFADocView->CreateWidgetAccIterator();
+  if (pWidgetAccIterator) {
+    CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext();
+    pWidgetAcc = pWidgetAccIterator->MoveToNext();
+    while (pWidgetAcc) {
+      int fRet = pWidgetAcc->ProcessValidate(-1);
+      if (fRet == XFA_EVENTERROR_Error) {
+        CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+        if (pEnv == NULL)
+          return FALSE;
+        CFX_WideString ws;
+        ws.FromLocal(IDS_XFA_Validate_Input);
+        CFX_ByteString bs = ws.UTF16LE_Encode();
+        int len = bs.GetLength() / sizeof(unsigned short);
+        pEnv->FFI_Alert(
+            (FPDF_WIDESTRING)bs.GetBuffer(len * sizeof(unsigned short)),
+            (FPDF_WIDESTRING)L"", 0, 1);
+        bs.ReleaseBuffer(len * sizeof(unsigned short));
+        pWidgetAccIterator->Release();
+        return FALSE;
+      }
+      pWidgetAcc = pWidgetAccIterator->MoveToNext();
+    }
+    pWidgetAccIterator->Release();
+    m_pXFADocView->UpdateDocView();
+  }
+
+  return TRUE;
 }
-void CPDFXFA_Document::_OnAfterNotifySumbit()
-{
-	if (m_iDocType != DOCTYPE_DYNIMIC_XFA && m_iDocType != DOCTYPE_STATIC_XFA)
-		return;
-	if (m_pXFADocView == NULL)
-		return;
-	IXFA_WidgetHandler* pWidgetHandler = m_pXFADocView->GetWidgetHandler();
-	if (pWidgetHandler == NULL)
-		return;
-	IXFA_WidgetAccIterator* pWidgetAccIterator = m_pXFADocView->CreateWidgetAccIterator();
-	if (pWidgetAccIterator == NULL)
-		return;
-	CXFA_EventParam Param; 
-	Param.m_eType =  XFA_EVENT_PostSubmit;
-
-	CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext();
-	while (pWidgetAcc)
-	{
-		pWidgetHandler->ProcessEvent(pWidgetAcc, &Param);
-		pWidgetAcc = pWidgetAccIterator->MoveToNext();
-	}
-	pWidgetAccIterator->Release();
-	m_pXFADocView->UpdateDocView();
+void CPDFXFA_Document::_OnAfterNotifySumbit() {
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA && m_iDocType != DOCTYPE_STATIC_XFA)
+    return;
+  if (m_pXFADocView == NULL)
+    return;
+  IXFA_WidgetHandler* pWidgetHandler = m_pXFADocView->GetWidgetHandler();
+  if (pWidgetHandler == NULL)
+    return;
+  IXFA_WidgetAccIterator* pWidgetAccIterator =
+      m_pXFADocView->CreateWidgetAccIterator();
+  if (pWidgetAccIterator == NULL)
+    return;
+  CXFA_EventParam Param;
+  Param.m_eType = XFA_EVENT_PostSubmit;
+
+  CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext();
+  while (pWidgetAcc) {
+    pWidgetHandler->ProcessEvent(pWidgetAcc, &Param);
+    pWidgetAcc = pWidgetAccIterator->MoveToNext();
+  }
+  pWidgetAccIterator->Release();
+  m_pXFADocView->UpdateDocView();
 }
 
-FX_BOOL CPDFXFA_Document::SubmitData(IXFA_Doc* hDoc, CXFA_Submit submit)
-{
-	if (!_NotifySubmit(TRUE))
-		return FALSE;
-	if (NULL == m_pXFADocView)
-		return FALSE;
-	m_pXFADocView->UpdateDocView();
-
-	FX_BOOL ret = _SubmitData(hDoc, submit);
-	_NotifySubmit(FALSE);
-	return ret;
+FX_BOOL CPDFXFA_Document::SubmitData(IXFA_Doc* hDoc, CXFA_Submit submit) {
+  if (!_NotifySubmit(TRUE))
+    return FALSE;
+  if (NULL == m_pXFADocView)
+    return FALSE;
+  m_pXFADocView->UpdateDocView();
+
+  FX_BOOL ret = _SubmitData(hDoc, submit);
+  _NotifySubmit(FALSE);
+  return ret;
 }
 
-IFX_FileRead* CPDFXFA_Document::OpenLinkedFile(IXFA_Doc* hDoc, const CFX_WideString& wsLink)
-{
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return FALSE;
-	CFX_ByteString bs = wsLink.UTF16LE_Encode();
-	int len = bs.GetLength()/sizeof(unsigned short);
-	FPDF_FILEHANDLER* pFileHandler = pEnv->FFI_OpenFile(0, (FPDF_WIDESTRING)bs.GetBuffer(len*sizeof(unsigned short)), "rb");
-	bs.ReleaseBuffer(len*sizeof(unsigned short));
-
-	if (pFileHandler == NULL)
-		return NULL;
-	CFPDF_FileStream* pFileRead = FX_NEW CFPDF_FileStream(pFileHandler);
-	return pFileRead;
+IFX_FileRead* CPDFXFA_Document::OpenLinkedFile(IXFA_Doc* hDoc,
+                                               const CFX_WideString& wsLink) {
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return FALSE;
+  CFX_ByteString bs = wsLink.UTF16LE_Encode();
+  int len = bs.GetLength() / sizeof(unsigned short);
+  FPDF_FILEHANDLER* pFileHandler = pEnv->FFI_OpenFile(
+      0, (FPDF_WIDESTRING)bs.GetBuffer(len * sizeof(unsigned short)), "rb");
+  bs.ReleaseBuffer(len * sizeof(unsigned short));
+
+  if (pFileHandler == NULL)
+    return NULL;
+  CFPDF_FileStream* pFileRead = FX_NEW CFPDF_FileStream(pFileHandler);
+  return pFileRead;
 }
-FX_BOOL CPDFXFA_Document::_ExportSubmitFile(FPDF_FILEHANDLER* pFileHandler, int fileType, FPDF_DWORD encodeType, FPDF_DWORD flag)
-{
-	if (NULL == m_pXFADocView)
-		return FALSE;
-	IXFA_DocHandler* pDocHandler = m_pApp->GetXFAApp()->GetDocHandler();
-	CFX_ByteString content;
-
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return FALSE;
-	
-	CFPDF_FileStream fileStream(pFileHandler);
-
-	if (fileType == FXFA_SAVEAS_XML)
-	{
-		CFX_WideString ws;
-		ws.FromLocal("data");
-		CFX_ByteString content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
-		fileStream.WriteBlock((const FX_CHAR*)content,0,content.GetLength());
-		pDocHandler->SavePackage(m_pXFADoc, ws, &fileStream);
-	}
-	else if (fileType == FXFA_SAVEAS_XDP)
-	{	
-		if (flag == 0)
-			flag = FXFA_CONFIG|FXFA_TEMPLATE|FXFA_LOCALESET|FXFA_DATASETS|FXFA_XMPMETA|FXFA_XFDF|FXFA_FORM;
-		if (m_pPDFDoc == NULL) 
-		{
-			fileStream.Flush();
-			return FALSE;
-		}	
-		CPDF_Dictionary* pRoot = m_pPDFDoc->GetRoot();
-		if (pRoot == NULL) 
-		{
-			fileStream.Flush();
-			return FALSE;
-		}
-		CPDF_Dictionary* pAcroForm = pRoot->GetDict("AcroForm");
-		if (NULL == pAcroForm)
-		{
-			fileStream.Flush();
-			return FALSE;
-		}
-		CPDF_Object* pXFA = pAcroForm->GetElement("XFA");
-		if (pXFA == NULL) 
-		{
-			fileStream.Flush();
-			return FALSE;
-		}
-		if (pXFA->GetType() != PDFOBJ_ARRAY)
-		{
-			fileStream.Flush();
-			return FALSE;
-		}
-		CPDF_Array* pArray = pXFA->GetArray();
-		if (NULL == pArray)
-		{
-			fileStream.Flush();
-			return FALSE;
-		}
-		int size = pArray->GetCount();
-		int iFormIndex = -1;
-		int iDataSetsIndex = -1;
-		for (int i=1; i<size;i+=2)
-		{
-			CPDF_Object* pPDFObj = pArray->GetElement(i);
-			CPDF_Object* pPrePDFObj = pArray->GetElement(i-1);
-			if(pPrePDFObj->GetType() != PDFOBJ_STRING)
-				continue;
-			if (pPDFObj->GetType() != PDFOBJ_REFERENCE)
-				continue;
-			CPDF_Object* pDirectObj = pPDFObj->GetDirect();
-			if (pDirectObj->GetType() != PDFOBJ_STREAM)
-				continue;
-			if (pPrePDFObj->GetString()=="config" && !(flag & FXFA_CONFIG))
-				continue;
-			if (pPrePDFObj->GetString()=="template" && !(flag & FXFA_TEMPLATE))
-				continue;
-			if (pPrePDFObj->GetString()=="localeSet" && !(flag & FXFA_LOCALESET))
-				continue;
-			if (pPrePDFObj->GetString()=="datasets" && !(flag & FXFA_DATASETS))
-				continue;
-			if (pPrePDFObj->GetString()=="xmpmeta" && !(flag & FXFA_XMPMETA))
-				continue;
-			if (pPrePDFObj->GetString()=="xfdf" && !(flag & FXFA_XFDF))
-				continue;
-			if (pPrePDFObj->GetString()=="form" && !(flag & FXFA_FORM))
-				continue;
-			if (pPrePDFObj->GetString()=="form")
-			{
-				CFX_WideString ws;
-				ws.FromLocal("form");
-				pDocHandler->SavePackage(m_pXFADoc, ws, &fileStream);
-			}
-			else if (pPrePDFObj->GetString()=="datasets")
-			{
-				CFX_WideString ws;
-				ws.FromLocal("datasets");
-				pDocHandler->SavePackage(m_pXFADoc, ws, &fileStream);
-			}
-			else 
-			{	
-				//PDF,creator.
-				//TODO:
-			}
-		}
-	}
-	return TRUE;
+FX_BOOL CPDFXFA_Document::_ExportSubmitFile(FPDF_FILEHANDLER* pFileHandler,
+                                            int fileType,
+                                            FPDF_DWORD encodeType,
+                                            FPDF_DWORD flag) {
+  if (NULL == m_pXFADocView)
+    return FALSE;
+  IXFA_DocHandler* pDocHandler = m_pApp->GetXFAApp()->GetDocHandler();
+  CFX_ByteString content;
+
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return FALSE;
+
+  CFPDF_FileStream fileStream(pFileHandler);
+
+  if (fileType == FXFA_SAVEAS_XML) {
+    CFX_WideString ws;
+    ws.FromLocal("data");
+    CFX_ByteString content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
+    fileStream.WriteBlock((const FX_CHAR*)content, 0, content.GetLength());
+    pDocHandler->SavePackage(m_pXFADoc, ws, &fileStream);
+  } else if (fileType == FXFA_SAVEAS_XDP) {
+    if (flag == 0)
+      flag = FXFA_CONFIG | FXFA_TEMPLATE | FXFA_LOCALESET | FXFA_DATASETS |
+             FXFA_XMPMETA | FXFA_XFDF | FXFA_FORM;
+    if (m_pPDFDoc == NULL) {
+      fileStream.Flush();
+      return FALSE;
+    }
+    CPDF_Dictionary* pRoot = m_pPDFDoc->GetRoot();
+    if (pRoot == NULL) {
+      fileStream.Flush();
+      return FALSE;
+    }
+    CPDF_Dictionary* pAcroForm = pRoot->GetDict("AcroForm");
+    if (NULL == pAcroForm) {
+      fileStream.Flush();
+      return FALSE;
+    }
+    CPDF_Object* pXFA = pAcroForm->GetElement("XFA");
+    if (pXFA == NULL) {
+      fileStream.Flush();
+      return FALSE;
+    }
+    if (pXFA->GetType() != PDFOBJ_ARRAY) {
+      fileStream.Flush();
+      return FALSE;
+    }
+    CPDF_Array* pArray = pXFA->GetArray();
+    if (NULL == pArray) {
+      fileStream.Flush();
+      return FALSE;
+    }
+    int size = pArray->GetCount();
+    int iFormIndex = -1;
+    int iDataSetsIndex = -1;
+    for (int i = 1; i < size; i += 2) {
+      CPDF_Object* pPDFObj = pArray->GetElement(i);
+      CPDF_Object* pPrePDFObj = pArray->GetElement(i - 1);
+      if (pPrePDFObj->GetType() != PDFOBJ_STRING)
+        continue;
+      if (pPDFObj->GetType() != PDFOBJ_REFERENCE)
+        continue;
+      CPDF_Object* pDirectObj = pPDFObj->GetDirect();
+      if (pDirectObj->GetType() != PDFOBJ_STREAM)
+        continue;
+      if (pPrePDFObj->GetString() == "config" && !(flag & FXFA_CONFIG))
+        continue;
+      if (pPrePDFObj->GetString() == "template" && !(flag & FXFA_TEMPLATE))
+        continue;
+      if (pPrePDFObj->GetString() == "localeSet" && !(flag & FXFA_LOCALESET))
+        continue;
+      if (pPrePDFObj->GetString() == "datasets" && !(flag & FXFA_DATASETS))
+        continue;
+      if (pPrePDFObj->GetString() == "xmpmeta" && !(flag & FXFA_XMPMETA))
+        continue;
+      if (pPrePDFObj->GetString() == "xfdf" && !(flag & FXFA_XFDF))
+        continue;
+      if (pPrePDFObj->GetString() == "form" && !(flag & FXFA_FORM))
+        continue;
+      if (pPrePDFObj->GetString() == "form") {
+        CFX_WideString ws;
+        ws.FromLocal("form");
+        pDocHandler->SavePackage(m_pXFADoc, ws, &fileStream);
+      } else if (pPrePDFObj->GetString() == "datasets") {
+        CFX_WideString ws;
+        ws.FromLocal("datasets");
+        pDocHandler->SavePackage(m_pXFADoc, ws, &fileStream);
+      } else {
+        // PDF,creator.
+        // TODO:
+      }
+    }
+  }
+  return TRUE;
 }
 
-void CPDFXFA_Document::_ClearChangeMark()
-{
-	if (m_pSDKDoc)
-		m_pSDKDoc->ClearChangeMark();
+void CPDFXFA_Document::_ClearChangeMark() {
+  if (m_pSDKDoc)
+    m_pSDKDoc->ClearChangeMark();
 }
 
-void CPDFXFA_Document::_ToXFAContentFlags(CFX_WideString csSrcContent, FPDF_DWORD& flag)
-{
-	if (csSrcContent.Find(L" config ", 0) != -1)
-		flag |= FXFA_CONFIG;
-	if (csSrcContent.Find(L" template ", 0) != -1)
-		flag  |= FXFA_TEMPLATE;
-	if (csSrcContent.Find(L" localeSet ", 0) != -1)
-		flag  |= FXFA_LOCALESET;
-	if (csSrcContent.Find(L" datasets ", 0) != -1)
-		flag  |= FXFA_DATASETS;
-	if (csSrcContent.Find(L" xmpmeta ", 0) != -1)
-		flag  |= FXFA_XMPMETA;
-	if (csSrcContent.Find(L" xfdf ", 0) != -1)
-		flag  |= FXFA_XFDF;
-	if (csSrcContent.Find(L" form ", 0) != -1)
-		flag  |= FXFA_FORM;
-	if (flag == 0)
-		flag = FXFA_CONFIG|FXFA_TEMPLATE|FXFA_LOCALESET|FXFA_DATASETS|FXFA_XMPMETA|FXFA_XFDF|FXFA_FORM;
+void CPDFXFA_Document::_ToXFAContentFlags(CFX_WideString csSrcContent,
+                                          FPDF_DWORD& flag) {
+  if (csSrcContent.Find(L" config ", 0) != -1)
+    flag |= FXFA_CONFIG;
+  if (csSrcContent.Find(L" template ", 0) != -1)
+    flag |= FXFA_TEMPLATE;
+  if (csSrcContent.Find(L" localeSet ", 0) != -1)
+    flag |= FXFA_LOCALESET;
+  if (csSrcContent.Find(L" datasets ", 0) != -1)
+    flag |= FXFA_DATASETS;
+  if (csSrcContent.Find(L" xmpmeta ", 0) != -1)
+    flag |= FXFA_XMPMETA;
+  if (csSrcContent.Find(L" xfdf ", 0) != -1)
+    flag |= FXFA_XFDF;
+  if (csSrcContent.Find(L" form ", 0) != -1)
+    flag |= FXFA_FORM;
+  if (flag == 0)
+    flag = FXFA_CONFIG | FXFA_TEMPLATE | FXFA_LOCALESET | FXFA_DATASETS |
+           FXFA_XMPMETA | FXFA_XFDF | FXFA_FORM;
 }
-FX_BOOL CPDFXFA_Document::_MailToInfo(CFX_WideString& csURL, CFX_WideString& csToAddress, CFX_WideString& csCCAddress, CFX_WideString& csBCCAddress, CFX_WideString& csSubject, CFX_WideString& csMsg)
-{
-	CFX_WideString srcURL = csURL;
-	srcURL.TrimLeft();
-	if (0 != srcURL.Left(7).CompareNoCase(L"mailto:"))
-		return FALSE;
-	int pos = srcURL.Find(L'?',0);
-	CFX_WideString tmp;
-	if (pos == -1) {
-		pos = srcURL.Find(L'@',0);
-		if (pos == -1)
-			return FALSE;
-		else
-		{
-			tmp = srcURL.Right(csURL.GetLength()-7);
-			tmp.TrimLeft();
-			tmp.TrimRight();
-		}
-	} else {
-		tmp = srcURL.Left(pos);
-		tmp = tmp.Right(tmp.GetLength()-7);
-		tmp.TrimLeft();
-		tmp.TrimRight();
-	}
-	
-	csToAddress = tmp;
-	
-	srcURL = srcURL.Right(srcURL.GetLength()-(pos+1));
-	while (	!srcURL.IsEmpty() )
-	{
-		srcURL.TrimLeft();
-		srcURL.TrimRight();
-		pos = srcURL.Find(L'&',0);
-		if (pos == -1)
-			tmp = srcURL;
-		else
-			tmp = srcURL.Left(pos);
-		
-		tmp.TrimLeft();
-		tmp.TrimRight();
-		if (tmp.GetLength() >= 3 && 0 == tmp.Left(3).CompareNoCase(L"cc=") )
-		{
-			tmp = tmp.Right(tmp.GetLength()-3);
-			if (!csCCAddress.IsEmpty())
-				csCCAddress += L';';
-			csCCAddress += tmp;
-			
-		} 
-		else if (tmp.GetLength() >= 4 && 0 == tmp.Left(4).CompareNoCase(L"bcc="))
-		{
-			tmp = tmp.Right(tmp.GetLength() - 4);
-			if (!csBCCAddress.IsEmpty())
-				csBCCAddress += L';';
-			csBCCAddress += tmp;
-		}
-		else if (tmp.GetLength() >= 8 && 0 ==tmp.Left(8).CompareNoCase(L"subject=") )
-		{
-			tmp=tmp.Right(tmp.GetLength()-8);
-			csSubject += tmp;
-		}
-		else if(tmp.GetLength() >= 5 && 0 ==tmp.Left(5).CompareNoCase(L"body=") )
-		{
-			tmp=tmp.Right(tmp.GetLength() - 5);
-			csMsg += tmp;
-		}
-		if (pos == -1)
-			srcURL = L"";
-		else
-			srcURL = srcURL.Right(csURL.GetLength()-(pos+1));
-	}
-	csToAddress.Replace(L",", L";");
-	csCCAddress.Replace(L",", L";");
-	csBCCAddress.Replace(L",", L";");
-	return TRUE;
+FX_BOOL CPDFXFA_Document::_MailToInfo(CFX_WideString& csURL,
+                                      CFX_WideString& csToAddress,
+                                      CFX_WideString& csCCAddress,
+                                      CFX_WideString& csBCCAddress,
+                                      CFX_WideString& csSubject,
+                                      CFX_WideString& csMsg) {
+  CFX_WideString srcURL = csURL;
+  srcURL.TrimLeft();
+  if (0 != srcURL.Left(7).CompareNoCase(L"mailto:"))
+    return FALSE;
+  int pos = srcURL.Find(L'?', 0);
+  CFX_WideString tmp;
+  if (pos == -1) {
+    pos = srcURL.Find(L'@', 0);
+    if (pos == -1)
+      return FALSE;
+    else {
+      tmp = srcURL.Right(csURL.GetLength() - 7);
+      tmp.TrimLeft();
+      tmp.TrimRight();
+    }
+  } else {
+    tmp = srcURL.Left(pos);
+    tmp = tmp.Right(tmp.GetLength() - 7);
+    tmp.TrimLeft();
+    tmp.TrimRight();
+  }
+
+  csToAddress = tmp;
+
+  srcURL = srcURL.Right(srcURL.GetLength() - (pos + 1));
+  while (!srcURL.IsEmpty()) {
+    srcURL.TrimLeft();
+    srcURL.TrimRight();
+    pos = srcURL.Find(L'&', 0);
+    if (pos == -1)
+      tmp = srcURL;
+    else
+      tmp = srcURL.Left(pos);
+
+    tmp.TrimLeft();
+    tmp.TrimRight();
+    if (tmp.GetLength() >= 3 && 0 == tmp.Left(3).CompareNoCase(L"cc=")) {
+      tmp = tmp.Right(tmp.GetLength() - 3);
+      if (!csCCAddress.IsEmpty())
+        csCCAddress += L';';
+      csCCAddress += tmp;
+
+    } else if (tmp.GetLength() >= 4 &&
+               0 == tmp.Left(4).CompareNoCase(L"bcc=")) {
+      tmp = tmp.Right(tmp.GetLength() - 4);
+      if (!csBCCAddress.IsEmpty())
+        csBCCAddress += L';';
+      csBCCAddress += tmp;
+    } else if (tmp.GetLength() >= 8 &&
+               0 == tmp.Left(8).CompareNoCase(L"subject=")) {
+      tmp = tmp.Right(tmp.GetLength() - 8);
+      csSubject += tmp;
+    } else if (tmp.GetLength() >= 5 &&
+               0 == tmp.Left(5).CompareNoCase(L"body=")) {
+      tmp = tmp.Right(tmp.GetLength() - 5);
+      csMsg += tmp;
+    }
+    if (pos == -1)
+      srcURL = L"";
+    else
+      srcURL = srcURL.Right(csURL.GetLength() - (pos + 1));
+  }
+  csToAddress.Replace(L",", L";");
+  csCCAddress.Replace(L",", L";");
+  csBCCAddress.Replace(L",", L";");
+  return TRUE;
 }
 
-FX_BOOL CPDFXFA_Document::_SubmitData(IXFA_Doc* hDoc, CXFA_Submit submit)
-{
-	CFX_WideStringC csURLC;
-	submit.GetSubmitTarget(csURLC);
-	CFX_WideString csURL = csURLC;
-	CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-	if (pEnv == NULL)
-		return FALSE;
-	if (csURL.IsEmpty()){	 
-		CFX_WideString ws;
-		ws.FromLocal("Submit cancelled.");
-		CFX_ByteString bs = ws.UTF16LE_Encode();
-		int len = bs.GetLength()/sizeof(unsigned short);
-		pEnv->FFI_Alert((FPDF_WIDESTRING)bs.GetBuffer(len*sizeof(unsigned short)), (FPDF_WIDESTRING)L"", 0, 4);
-		bs.ReleaseBuffer(len*sizeof(unsigned short));
-		return FALSE;
-	}
-
-	FPDF_BOOL bRet = TRUE;
-	FPDF_FILEHANDLER* pFileHandler = NULL;
-	int fileFlag = -1;
-
-	if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Xdp)
-	{
-		CFX_WideStringC csContentC;
-		submit.GetSubmitXDPContent(csContentC);
-		CFX_WideString csContent;
-		csContent = csContentC.GetPtr();
-		csContent.TrimLeft();
-		csContent.TrimRight();
-		CFX_WideString space;
-		space.FromLocal(" ");
-		csContent = space + csContent + space;
-		FPDF_DWORD flag = 0;
-		if (submit.IsSubmitEmbedPDF())
-			flag |= FXFA_PDF;
-		_ToXFAContentFlags(csContent, flag);
-		pFileHandler = pEnv->FFI_OpenFile(FXFA_SAVEAS_XDP, NULL, "wb");
-		fileFlag = FXFA_SAVEAS_XDP;
-		_ExportSubmitFile(pFileHandler, FXFA_SAVEAS_XDP, 0, flag);
-	}
-	else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Xml )
-	{
-		pFileHandler = pEnv->FFI_OpenFile(FXFA_SAVEAS_XML, NULL, "wb");
-		fileFlag = FXFA_SAVEAS_XML;
-		_ExportSubmitFile(pFileHandler, FXFA_SAVEAS_XML, 0);
-	}
-	else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Pdf )
-	{
-			//csfilename = csDocName;
-	}
-	else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Formdata )
-	{
-		return FALSE;
-	}
-	else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Urlencoded )
-	{
-		pFileHandler = pEnv->FFI_OpenFile(FXFA_SAVEAS_XML, NULL, "wb");
-		fileFlag = FXFA_SAVEAS_XML;
-		_ExportSubmitFile(pFileHandler, FXFA_SAVEAS_XML, 0);
-	}
-	else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Xfd )
-	{
-		return FALSE;
-	}
-	else
-	{
-		return FALSE;
-	}
-	if (pFileHandler == NULL)
-		return FALSE;
-	if (0 == csURL.Left(7).CompareNoCase(L"mailto:"))
-	{
-		CFX_WideString csToAddress; 
-		CFX_WideString csCCAddress;
-		CFX_WideString csBCCAddress;
-		CFX_WideString csSubject;
-		CFX_WideString csMsg;
-
-		bRet = _MailToInfo(csURL, csToAddress, csCCAddress, csBCCAddress, csSubject, csMsg);
-		if (FALSE == bRet)
-			return FALSE;
-
-		CFX_ByteString bsTo = CFX_WideString(csToAddress).UTF16LE_Encode();
-		CFX_ByteString bsCC = CFX_WideString(csCCAddress).UTF16LE_Encode();
-		CFX_ByteString bsBcc = CFX_WideString(csBCCAddress).UTF16LE_Encode();
-		CFX_ByteString bsSubject = CFX_WideString(csSubject).UTF16LE_Encode();
-		CFX_ByteString bsMsg = CFX_WideString(csMsg).UTF16LE_Encode();
-
-		FPDF_WIDESTRING pTo = (FPDF_WIDESTRING)bsTo.GetBuffer(bsTo.GetLength());
-		FPDF_WIDESTRING pCC = (FPDF_WIDESTRING)bsCC.GetBuffer(bsCC.GetLength());
-		FPDF_WIDESTRING pBcc = (FPDF_WIDESTRING)bsBcc.GetBuffer(bsBcc.GetLength());
-		FPDF_WIDESTRING pSubject = (FPDF_WIDESTRING)bsSubject.GetBuffer(bsSubject.GetLength());
-		FPDF_WIDESTRING pMsg = (FPDF_WIDESTRING)bsMsg.GetBuffer(bsMsg.GetLength());
-
-		pEnv->FFI_EmailTo(pFileHandler, pTo, pSubject, pCC, pBcc, pMsg);
-		bsTo.ReleaseBuffer();
-		bsCC.ReleaseBuffer();
-		bsBcc.ReleaseBuffer();
-		bsSubject.ReleaseBuffer();
-		bsMsg.ReleaseBuffer();
-	}
-	else
-	{
-		//http��ftp
-		CFX_WideString ws;
-		CFX_ByteString bs = csURL.UTF16LE_Encode();
-		int len = bs.GetLength()/sizeof(unsigned short);
-		pEnv->FFI_UploadTo(pFileHandler, fileFlag, (FPDF_WIDESTRING)bs.GetBuffer(len*sizeof(unsigned short)));
-		bs.ReleaseBuffer(len*sizeof(unsigned short));
-	}
-
-	return bRet;
+FX_BOOL CPDFXFA_Document::_SubmitData(IXFA_Doc* hDoc, CXFA_Submit submit) {
+  CFX_WideStringC csURLC;
+  submit.GetSubmitTarget(csURLC);
+  CFX_WideString csURL = csURLC;
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  if (pEnv == NULL)
+    return FALSE;
+  if (csURL.IsEmpty()) {
+    CFX_WideString ws;
+    ws.FromLocal("Submit cancelled.");
+    CFX_ByteString bs = ws.UTF16LE_Encode();
+    int len = bs.GetLength() / sizeof(unsigned short);
+    pEnv->FFI_Alert((FPDF_WIDESTRING)bs.GetBuffer(len * sizeof(unsigned short)),
+                    (FPDF_WIDESTRING)L"", 0, 4);
+    bs.ReleaseBuffer(len * sizeof(unsigned short));
+    return FALSE;
+  }
+
+  FPDF_BOOL bRet = TRUE;
+  FPDF_FILEHANDLER* pFileHandler = NULL;
+  int fileFlag = -1;
+
+  if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Xdp) {
+    CFX_WideStringC csContentC;
+    submit.GetSubmitXDPContent(csContentC);
+    CFX_WideString csContent;
+    csContent = csContentC.GetPtr();
+    csContent.TrimLeft();
+    csContent.TrimRight();
+    CFX_WideString space;
+    space.FromLocal(" ");
+    csContent = space + csContent + space;
+    FPDF_DWORD flag = 0;
+    if (submit.IsSubmitEmbedPDF())
+      flag |= FXFA_PDF;
+    _ToXFAContentFlags(csContent, flag);
+    pFileHandler = pEnv->FFI_OpenFile(FXFA_SAVEAS_XDP, NULL, "wb");
+    fileFlag = FXFA_SAVEAS_XDP;
+    _ExportSubmitFile(pFileHandler, FXFA_SAVEAS_XDP, 0, flag);
+  } else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Xml) {
+    pFileHandler = pEnv->FFI_OpenFile(FXFA_SAVEAS_XML, NULL, "wb");
+    fileFlag = FXFA_SAVEAS_XML;
+    _ExportSubmitFile(pFileHandler, FXFA_SAVEAS_XML, 0);
+  } else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Pdf) {
+    // csfilename = csDocName;
+  } else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Formdata) {
+    return FALSE;
+  } else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Urlencoded) {
+    pFileHandler = pEnv->FFI_OpenFile(FXFA_SAVEAS_XML, NULL, "wb");
+    fileFlag = FXFA_SAVEAS_XML;
+    _ExportSubmitFile(pFileHandler, FXFA_SAVEAS_XML, 0);
+  } else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Xfd) {
+    return FALSE;
+  } else {
+    return FALSE;
+  }
+  if (pFileHandler == NULL)
+    return FALSE;
+  if (0 == csURL.Left(7).CompareNoCase(L"mailto:")) {
+    CFX_WideString csToAddress;
+    CFX_WideString csCCAddress;
+    CFX_WideString csBCCAddress;
+    CFX_WideString csSubject;
+    CFX_WideString csMsg;
+
+    bRet = _MailToInfo(csURL, csToAddress, csCCAddress, csBCCAddress, csSubject,
+                       csMsg);
+    if (FALSE == bRet)
+      return FALSE;
+
+    CFX_ByteString bsTo = CFX_WideString(csToAddress).UTF16LE_Encode();
+    CFX_ByteString bsCC = CFX_WideString(csCCAddress).UTF16LE_Encode();
+    CFX_ByteString bsBcc = CFX_WideString(csBCCAddress).UTF16LE_Encode();
+    CFX_ByteString bsSubject = CFX_WideString(csSubject).UTF16LE_Encode();
+    CFX_ByteString bsMsg = CFX_WideString(csMsg).UTF16LE_Encode();
+
+    FPDF_WIDESTRING pTo = (FPDF_WIDESTRING)bsTo.GetBuffer(bsTo.GetLength());
+    FPDF_WIDESTRING pCC = (FPDF_WIDESTRING)bsCC.GetBuffer(bsCC.GetLength());
+    FPDF_WIDESTRING pBcc = (FPDF_WIDESTRING)bsBcc.GetBuffer(bsBcc.GetLength());
+    FPDF_WIDESTRING pSubject =
+        (FPDF_WIDESTRING)bsSubject.GetBuffer(bsSubject.GetLength());
+    FPDF_WIDESTRING pMsg = (FPDF_WIDESTRING)bsMsg.GetBuffer(bsMsg.GetLength());
+
+    pEnv->FFI_EmailTo(pFileHandler, pTo, pSubject, pCC, pBcc, pMsg);
+    bsTo.ReleaseBuffer();
+    bsCC.ReleaseBuffer();
+    bsBcc.ReleaseBuffer();
+    bsSubject.ReleaseBuffer();
+    bsMsg.ReleaseBuffer();
+  } else {
+    // http��ftp
+    CFX_WideString ws;
+    CFX_ByteString bs = csURL.UTF16LE_Encode();
+    int len = bs.GetLength() / sizeof(unsigned short);
+    pEnv->FFI_UploadTo(
+        pFileHandler, fileFlag,
+        (FPDF_WIDESTRING)bs.GetBuffer(len * sizeof(unsigned short)));
+    bs.ReleaseBuffer(len * sizeof(unsigned short));
+  }
+
+  return bRet;
 }
 
-FX_BOOL	CPDFXFA_Document::SetGlobalProperty(IXFA_Doc* hDoc, const CFX_ByteStringC& szPropName, FXJSE_HVALUE hValue)
-{
-	if (hDoc != m_pXFADoc)
-		return FALSE;
+FX_BOOL CPDFXFA_Document::SetGlobalProperty(IXFA_Doc* hDoc,
+                                            const CFX_ByteStringC& szPropName,
+                                            FXJSE_HVALUE hValue) {
+  if (hDoc != m_pXFADoc)
+    return FALSE;
 
-	if (m_pSDKDoc && m_pSDKDoc->GetEnv()->GetJSRuntime()) 
-		return m_pSDKDoc->GetEnv()->GetJSRuntime()->SetHValueByName(szPropName, hValue);
-	return FALSE;
+  if (m_pSDKDoc && m_pSDKDoc->GetEnv()->GetJSRuntime())
+    return m_pSDKDoc->GetEnv()->GetJSRuntime()->SetHValueByName(szPropName,
+                                                                hValue);
+  return FALSE;
 }
-FX_BOOL	CPDFXFA_Document::GetPDFScriptObject(IXFA_Doc* hDoc, const CFX_ByteStringC& utf8Name, FXJSE_HVALUE hValue)
-{
-	if (hDoc != m_pXFADoc)
-		return FALSE;
-
-	if (!m_pSDKDoc || !m_pSDKDoc->GetEnv()->GetJSRuntime())
-		return FALSE;
-
-	if (!m_pJSContext)
-	{
-		m_pSDKDoc->GetEnv()->GetJSRuntime()->SetReaderDocument(m_pSDKDoc);
-		m_pJSContext =m_pSDKDoc->GetEnv()->GetJSRuntime()->NewContext();
-	}
-
-	return _GetHValueByName(utf8Name, hValue, m_pSDKDoc->GetEnv()->GetJSRuntime());
-
+FX_BOOL CPDFXFA_Document::GetPDFScriptObject(IXFA_Doc* hDoc,
+                                             const CFX_ByteStringC& utf8Name,
+                                             FXJSE_HVALUE hValue) {
+  if (hDoc != m_pXFADoc)
+    return FALSE;
+
+  if (!m_pSDKDoc || !m_pSDKDoc->GetEnv()->GetJSRuntime())
+    return FALSE;
+
+  if (!m_pJSContext) {
+    m_pSDKDoc->GetEnv()->GetJSRuntime()->SetReaderDocument(m_pSDKDoc);
+    m_pJSContext = m_pSDKDoc->GetEnv()->GetJSRuntime()->NewContext();
+  }
+
+  return _GetHValueByName(utf8Name, hValue,
+                          m_pSDKDoc->GetEnv()->GetJSRuntime());
 }
-FX_BOOL CPDFXFA_Document::GetGlobalProperty(IXFA_Doc* hDoc, const CFX_ByteStringC& szPropName, FXJSE_HVALUE hValue)
-{
-	if (hDoc != m_pXFADoc)
-		return FALSE;
-	if (!m_pSDKDoc || !m_pSDKDoc->GetEnv()->GetJSRuntime())
-		return FALSE;
-
-	if (!m_pJSContext)
-	{
-		m_pSDKDoc->GetEnv()->GetJSRuntime()->SetReaderDocument(m_pSDKDoc);
-		m_pJSContext = m_pSDKDoc->GetEnv()->GetJSRuntime()->NewContext();
-	}
-
-	return _GetHValueByName(szPropName, hValue, m_pSDKDoc->GetEnv()->GetJSRuntime());
-
+FX_BOOL CPDFXFA_Document::GetGlobalProperty(IXFA_Doc* hDoc,
+                                            const CFX_ByteStringC& szPropName,
+                                            FXJSE_HVALUE hValue) {
+  if (hDoc != m_pXFADoc)
+    return FALSE;
+  if (!m_pSDKDoc || !m_pSDKDoc->GetEnv()->GetJSRuntime())
+    return FALSE;
+
+  if (!m_pJSContext) {
+    m_pSDKDoc->GetEnv()->GetJSRuntime()->SetReaderDocument(m_pSDKDoc);
+    m_pJSContext = m_pSDKDoc->GetEnv()->GetJSRuntime()->NewContext();
+  }
+
+  return _GetHValueByName(szPropName, hValue,
+                          m_pSDKDoc->GetEnv()->GetJSRuntime());
 }
-FX_BOOL CPDFXFA_Document::_GetHValueByName(const CFX_ByteStringC& utf8Name, FXJSE_HVALUE hValue, IFXJS_Runtime* runTime)
-{
-	return runTime->GetHValueByName(utf8Name, hValue);
+FX_BOOL CPDFXFA_Document::_GetHValueByName(const CFX_ByteStringC& utf8Name,
+                                           FXJSE_HVALUE hValue,
+                                           IFXJS_Runtime* runTime) {
+  return runTime->GetHValueByName(utf8Name, hValue);
 }
-
diff --git a/fpdfsdk/src/fpdfxfa/fpdfxfa_page.cpp b/fpdfsdk/src/fpdfxfa/fpdfxfa_page.cpp
index 7cd72de503..f8fbbd4997 100644
--- a/fpdfsdk/src/fpdfxfa/fpdfxfa_page.cpp
+++ b/fpdfsdk/src/fpdfxfa/fpdfxfa_page.cpp
@@ -1,7 +1,7 @@
 // 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
 
 #include "../../include/fsdk_define.h"
@@ -10,264 +10,249 @@
 #include "../../include/fpdfxfa/fpdfxfa_doc.h"
 #include "../../include/fpdfxfa/fpdfxfa_page.h"
 
-CPDFXFA_Page::CPDFXFA_Page(CPDFXFA_Document* pDoc, int page_index) :
-	m_pPDFPage(NULL),
-	m_pXFAPageView(NULL),
-	m_iPageIndex(page_index),
-	m_pDocument(pDoc),
-	m_iRef(1)
-{
-
+CPDFXFA_Page::CPDFXFA_Page(CPDFXFA_Document* pDoc, int page_index)
+    : m_pPDFPage(NULL),
+      m_pXFAPageView(NULL),
+      m_iPageIndex(page_index),
+      m_pDocument(pDoc),
+      m_iRef(1) {}
+
+CPDFXFA_Page::~CPDFXFA_Page() {
+  if (m_pPDFPage)
+    delete m_pPDFPage;
+  m_pPDFPage = NULL;
+  m_pXFAPageView = NULL;
 }
 
-CPDFXFA_Page::~CPDFXFA_Page()
-{
-	if (m_pPDFPage)
-		delete m_pPDFPage;
-	m_pPDFPage = NULL;
-	m_pXFAPageView = NULL;
-}
+void CPDFXFA_Page::Release() {
+  m_iRef--;
+  if (m_iRef > 0)
+    return;
 
-void CPDFXFA_Page::Release()
-{
-	m_iRef--;
-	if (m_iRef > 0)
-		return;
-	
-	if (m_pDocument)
-		m_pDocument->RemovePage(this);
+  if (m_pDocument)
+    m_pDocument->RemovePage(this);
 
-	delete this;
+  delete this;
 }
 
-FX_BOOL CPDFXFA_Page::LoadPDFPage()
-{
-	if (!m_pDocument) return FALSE;
-	CPDF_Document* pPDFDoc = m_pDocument->GetPDFDoc();
-	if (pPDFDoc)
-	{
-		CPDF_Dictionary* pDict = pPDFDoc->GetPage(m_iPageIndex);
-		if (pDict == NULL) return FALSE;
-		if (m_pPDFPage) {
-			if (m_pPDFPage->m_pFormDict == pDict)
-				return TRUE;
-
-			delete m_pPDFPage;
-			m_pPDFPage = NULL;
-		}
-
-		m_pPDFPage = FX_NEW CPDF_Page;
-		m_pPDFPage->Load(pPDFDoc, pDict);
-		m_pPDFPage->ParseContent();
-		return TRUE;
-	}
-
-	return FALSE;
+FX_BOOL CPDFXFA_Page::LoadPDFPage() {
+  if (!m_pDocument)
+    return FALSE;
+  CPDF_Document* pPDFDoc = m_pDocument->GetPDFDoc();
+  if (pPDFDoc) {
+    CPDF_Dictionary* pDict = pPDFDoc->GetPage(m_iPageIndex);
+    if (pDict == NULL)
+      return FALSE;
+    if (m_pPDFPage) {
+      if (m_pPDFPage->m_pFormDict == pDict)
+        return TRUE;
+
+      delete m_pPDFPage;
+      m_pPDFPage = NULL;
+    }
+
+    m_pPDFPage = FX_NEW CPDF_Page;
+    m_pPDFPage->Load(pPDFDoc, pDict);
+    m_pPDFPage->ParseContent();
+    return TRUE;
+  }
+
+  return FALSE;
 }
 
-FX_BOOL CPDFXFA_Page::LoadXFAPageView()
-{
-	if (!m_pDocument)
-		return FALSE;
-	IXFA_Doc* pXFADoc = m_pDocument->GetXFADoc();
-	if (pXFADoc)
-	{
-		IXFA_DocView* pXFADocView = m_pDocument->GetXFADocView();
-		if (!pXFADocView) 
-			return FALSE;
+FX_BOOL CPDFXFA_Page::LoadXFAPageView() {
+  if (!m_pDocument)
+    return FALSE;
+  IXFA_Doc* pXFADoc = m_pDocument->GetXFADoc();
+  if (pXFADoc) {
+    IXFA_DocView* pXFADocView = m_pDocument->GetXFADocView();
+    if (!pXFADocView)
+      return FALSE;
 
-		IXFA_PageView* pPageView = pXFADocView->GetPageView(m_iPageIndex);
-		if (!pPageView)
-			return FALSE;
+    IXFA_PageView* pPageView = pXFADocView->GetPageView(m_iPageIndex);
+    if (!pPageView)
+      return FALSE;
 
-		if (m_pXFAPageView)
-			if (m_pXFAPageView == pPageView)
-				return TRUE;
+    if (m_pXFAPageView)
+      if (m_pXFAPageView == pPageView)
+        return TRUE;
 
-		m_pXFAPageView = pPageView;
-		int iStatus = m_pXFAPageView->LoadPageView(NULL);
+    m_pXFAPageView = pPageView;
+    int iStatus = m_pXFAPageView->LoadPageView(NULL);
 
-		return TRUE;
-	}
+    return TRUE;
+  }
 
-	return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPDFXFA_Page::LoadPage()
-{
-	if (!m_pDocument || m_iPageIndex < 0)
-		return FALSE;
-
-	int iDocType = m_pDocument->GetDocType();
-	switch (iDocType)
-	{
-	case DOCTYPE_PDF:
-	case DOCTYPE_STATIC_XFA:
-		{
-			return LoadPDFPage();
-		}
-	case DOCTYPE_DYNIMIC_XFA:
-		{
-			return LoadXFAPageView();
-		}
-	default:
-		return FALSE;
-	}
-
-	return FALSE;
+FX_BOOL CPDFXFA_Page::LoadPage() {
+  if (!m_pDocument || m_iPageIndex < 0)
+    return FALSE;
+
+  int iDocType = m_pDocument->GetDocType();
+  switch (iDocType) {
+    case DOCTYPE_PDF:
+    case DOCTYPE_STATIC_XFA: {
+      return LoadPDFPage();
+    }
+    case DOCTYPE_DYNIMIC_XFA: {
+      return LoadXFAPageView();
+    }
+    default:
+      return FALSE;
+  }
+
+  return FALSE;
 }
 
-FX_BOOL CPDFXFA_Page::LoadPDFPage(CPDF_Dictionary* pageDict)
-{
-	if (!m_pDocument || m_iPageIndex < 0 || !pageDict)
-		return FALSE;
+FX_BOOL CPDFXFA_Page::LoadPDFPage(CPDF_Dictionary* pageDict) {
+  if (!m_pDocument || m_iPageIndex < 0 || !pageDict)
+    return FALSE;
 
-	if (m_pPDFPage)
-		delete m_pPDFPage;
+  if (m_pPDFPage)
+    delete m_pPDFPage;
 
-	m_pPDFPage = FX_NEW CPDF_Page();
-	m_pPDFPage->Load(m_pDocument->GetPDFDoc(), pageDict);
-	m_pPDFPage->ParseContent();
+  m_pPDFPage = FX_NEW CPDF_Page();
+  m_pPDFPage->Load(m_pDocument->GetPDFDoc(), pageDict);
+  m_pPDFPage->ParseContent();
 
-	return TRUE;
+  return TRUE;
 }
 
-FX_FLOAT CPDFXFA_Page::GetPageWidth()
-{
-	ASSERT(m_pDocument != NULL);
-
-	if (!m_pPDFPage && !m_pXFAPageView)
-		return 0.0f;
-
-	int nDocType = m_pDocument->GetDocType();
-	switch (nDocType)
-	{
-	case DOCTYPE_DYNIMIC_XFA:
-		{
-			if (m_pXFAPageView)
-			{
-				CFX_RectF rect;
-				m_pXFAPageView->GetPageViewRect(rect);
-				return rect.width;
-			}
-		}
-		break;
-	case DOCTYPE_STATIC_XFA:
-	case DOCTYPE_PDF:
-		{
-			if (m_pPDFPage)
-				return m_pPDFPage->GetPageWidth();
-		}
-		break;
-	default:
-		return 0.0f;
-	}
-
-	return 0.0f;
+FX_FLOAT CPDFXFA_Page::GetPageWidth() {
+  ASSERT(m_pDocument != NULL);
+
+  if (!m_pPDFPage && !m_pXFAPageView)
+    return 0.0f;
+
+  int nDocType = m_pDocument->GetDocType();
+  switch (nDocType) {
+    case DOCTYPE_DYNIMIC_XFA: {
+      if (m_pXFAPageView) {
+        CFX_RectF rect;
+        m_pXFAPageView->GetPageViewRect(rect);
+        return rect.width;
+      }
+    } break;
+    case DOCTYPE_STATIC_XFA:
+    case DOCTYPE_PDF: {
+      if (m_pPDFPage)
+        return m_pPDFPage->GetPageWidth();
+    } break;
+    default:
+      return 0.0f;
+  }
+
+  return 0.0f;
 }
 
-FX_FLOAT CPDFXFA_Page::GetPageHeight()
-{
-	ASSERT(m_pDocument != NULL);
-
-	if (!m_pPDFPage && !m_pXFAPageView)
-		return 0.0f;
-
-	int nDocType = m_pDocument->GetDocType();
-	switch (nDocType)
-	{
-	case DOCTYPE_PDF:
-	case DOCTYPE_STATIC_XFA:
-		{
-			if (m_pPDFPage)
-				return m_pPDFPage->GetPageHeight();
-		}
-		break;
-	case DOCTYPE_DYNIMIC_XFA:
-		{
-			if (m_pXFAPageView)
-			{
-				CFX_RectF rect;
-				m_pXFAPageView->GetPageViewRect(rect);
-				return rect.height;
-			}
-		}
-		break;
-	default:
-		return 0.0f;
-	}
-
-	return 0.0f;
+FX_FLOAT CPDFXFA_Page::GetPageHeight() {
+  ASSERT(m_pDocument != NULL);
+
+  if (!m_pPDFPage && !m_pXFAPageView)
+    return 0.0f;
+
+  int nDocType = m_pDocument->GetDocType();
+  switch (nDocType) {
+    case DOCTYPE_PDF:
+    case DOCTYPE_STATIC_XFA: {
+      if (m_pPDFPage)
+        return m_pPDFPage->GetPageHeight();
+    } break;
+    case DOCTYPE_DYNIMIC_XFA: {
+      if (m_pXFAPageView) {
+        CFX_RectF rect;
+        m_pXFAPageView->GetPageViewRect(rect);
+        return rect.height;
+      }
+    } break;
+    default:
+      return 0.0f;
+  }
+
+  return 0.0f;
 }
 
-void CPDFXFA_Page::DeviceToPage(int start_x, int start_y, int size_x, int size_y, int rotate, int device_x, int device_y, double* page_x, double* page_y)
-{
-	ASSERT(m_pDocument != NULL);
+void CPDFXFA_Page::DeviceToPage(int start_x,
+                                int start_y,
+                                int size_x,
+                                int size_y,
+                                int rotate,
+                                int device_x,
+                                int device_y,
+                                double* page_x,
+                                double* page_y) {
+  ASSERT(m_pDocument != NULL);
 
-	if (!m_pPDFPage && !m_pXFAPageView)
-		return;
+  if (!m_pPDFPage && !m_pXFAPageView)
+    return;
 
-	CPDF_Matrix page2device;
-	CPDF_Matrix device2page;
-	FX_FLOAT page_x_f, page_y_f;
+  CPDF_Matrix page2device;
+  CPDF_Matrix device2page;
+  FX_FLOAT page_x_f, page_y_f;
 
-	GetDisplayMatrix(page2device, start_x, start_y, size_x, size_y, rotate);
+  GetDisplayMatrix(page2device, start_x, start_y, size_x, size_y, rotate);
 
-	device2page.SetReverse(page2device);
-	device2page.Transform((FX_FLOAT)(device_x), (FX_FLOAT)(device_y), page_x_f, page_y_f);
+  device2page.SetReverse(page2device);
+  device2page.Transform((FX_FLOAT)(device_x), (FX_FLOAT)(device_y), page_x_f,
+                        page_y_f);
 
-	*page_x = (page_x_f);
-	*page_y = (page_y_f);
+  *page_x = (page_x_f);
+  *page_y = (page_y_f);
 }
 
-void CPDFXFA_Page::PageToDevice(int start_x, int start_y, int size_x, int size_y, int rotate, double page_x, double page_y, int* device_x, int* device_y)
-{
-	if (!m_pPDFPage && !m_pXFAPageView)
-		return;
+void CPDFXFA_Page::PageToDevice(int start_x,
+                                int start_y,
+                                int size_x,
+                                int size_y,
+                                int rotate,
+                                double page_x,
+                                double page_y,
+                                int* device_x,
+                                int* device_y) {
+  if (!m_pPDFPage && !m_pXFAPageView)
+    return;
 
-	CPDF_Matrix page2device;
-	FX_FLOAT device_x_f, device_y_f;
+  CPDF_Matrix page2device;
+  FX_FLOAT device_x_f, device_y_f;
 
-	GetDisplayMatrix(page2device, start_x, start_y, size_x, size_y, rotate);
+  GetDisplayMatrix(page2device, start_x, start_y, size_x, size_y, rotate);
 
-	page2device.Transform(((FX_FLOAT)page_x), ((FX_FLOAT)page_y), device_x_f, device_y_f);
+  page2device.Transform(((FX_FLOAT)page_x), ((FX_FLOAT)page_y), device_x_f,
+                        device_y_f);
 
-	*device_x = FXSYS_round(device_x_f);
-	*device_y = FXSYS_round(device_y_f);
+  *device_x = FXSYS_round(device_x_f);
+  *device_y = FXSYS_round(device_y_f);
 }
 
-void CPDFXFA_Page::GetDisplayMatrix(CFX_AffineMatrix& matrix, int xPos, int yPos, 
-	int xSize, int ySize, int iRotate) const
-{
-	ASSERT(m_pDocument != NULL);
-
-	if (!m_pPDFPage && !m_pXFAPageView)
-		return;
-
-	int nDocType = m_pDocument->GetDocType();
-	switch (nDocType)
-	{
-	case DOCTYPE_DYNIMIC_XFA:
-		{
-			if (m_pXFAPageView)
-			{
-				CFX_Rect rect;
-				rect.Set(xPos, yPos, xSize, ySize);
-				m_pXFAPageView->GetDisplayMatrix(matrix, rect, iRotate);
-			}
-		}
-		break;
-	case DOCTYPE_PDF:
-	case DOCTYPE_STATIC_XFA:
-		{
-			if (m_pPDFPage) 
-			{
-				m_pPDFPage->GetDisplayMatrix(matrix, xPos, yPos, xSize, ySize, iRotate);
-			}
-		}
-		break;
-	default:
-		return;
-	}
-
+void CPDFXFA_Page::GetDisplayMatrix(CFX_AffineMatrix& matrix,
+                                    int xPos,
+                                    int yPos,
+                                    int xSize,
+                                    int ySize,
+                                    int iRotate) const {
+  ASSERT(m_pDocument != NULL);
+
+  if (!m_pPDFPage && !m_pXFAPageView)
+    return;
+
+  int nDocType = m_pDocument->GetDocType();
+  switch (nDocType) {
+    case DOCTYPE_DYNIMIC_XFA: {
+      if (m_pXFAPageView) {
+        CFX_Rect rect;
+        rect.Set(xPos, yPos, xSize, ySize);
+        m_pXFAPageView->GetDisplayMatrix(matrix, rect, iRotate);
+      }
+    } break;
+    case DOCTYPE_PDF:
+    case DOCTYPE_STATIC_XFA: {
+      if (m_pPDFPage) {
+        m_pPDFPage->GetDisplayMatrix(matrix, xPos, yPos, xSize, ySize, iRotate);
+      }
+    } break;
+    default:
+      return;
+  }
 }
diff --git a/fpdfsdk/src/fpdfxfa/fpdfxfa_util.cpp b/fpdfsdk/src/fpdfxfa/fpdfxfa_util.cpp
index ac5ef21f58..3e1eedf8ea 100644
--- a/fpdfsdk/src/fpdfxfa/fpdfxfa_util.cpp
+++ b/fpdfsdk/src/fpdfxfa/fpdfxfa_util.cpp
@@ -1,7 +1,7 @@
 // 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
 
 #include "../../include/fsdk_define.h"
@@ -10,59 +10,56 @@
 
 CFX_PtrArray CXFA_FWLAdapterTimerMgr::ms_timerArray;
 
-FWL_ERR CXFA_FWLAdapterTimerMgr::Start(IFWL_Timer *pTimer, FX_DWORD dwElapse, FWL_HTIMER &hTimer, FX_BOOL bImmediately /* = TRUE */)
-{
-	if (m_pEnv)
-	{
-		uint32_t uIDEvent = m_pEnv->FFI_SetTimer(dwElapse, TimerProc);
-		CFWL_TimerInfo *pInfo = FX_NEW CFWL_TimerInfo;
-		pInfo->uIDEvent = uIDEvent;
-		pInfo->pTimer = pTimer;
-		ms_timerArray.Add(pInfo);
+FWL_ERR CXFA_FWLAdapterTimerMgr::Start(IFWL_Timer* pTimer,
+                                       FX_DWORD dwElapse,
+                                       FWL_HTIMER& hTimer,
+                                       FX_BOOL bImmediately /* = TRUE */) {
+  if (m_pEnv) {
+    uint32_t uIDEvent = m_pEnv->FFI_SetTimer(dwElapse, TimerProc);
+    CFWL_TimerInfo* pInfo = FX_NEW CFWL_TimerInfo;
+    pInfo->uIDEvent = uIDEvent;
+    pInfo->pTimer = pTimer;
+    ms_timerArray.Add(pInfo);
+
+    hTimer = (FWL_HTIMER)pInfo;
+    return FWL_ERR_Succeeded;
+  }
 
-		hTimer = (FWL_HTIMER)pInfo;
-		return FWL_ERR_Succeeded;
-	}
-	
-	return FWL_ERR_Indefinite;
+  return FWL_ERR_Indefinite;
 }
 
-FWL_ERR CXFA_FWLAdapterTimerMgr::Stop(FWL_HTIMER hTimer)
-{
-	if (!hTimer) return FWL_ERR_Indefinite;
+FWL_ERR CXFA_FWLAdapterTimerMgr::Stop(FWL_HTIMER hTimer) {
+  if (!hTimer)
+    return FWL_ERR_Indefinite;
 
-	if (m_pEnv)
-	{
-		CFWL_TimerInfo *pInfo = (CFWL_TimerInfo*)hTimer;
+  if (m_pEnv) {
+    CFWL_TimerInfo* pInfo = (CFWL_TimerInfo*)hTimer;
 
-		m_pEnv->FFI_KillTimer(pInfo->uIDEvent);
+    m_pEnv->FFI_KillTimer(pInfo->uIDEvent);
 
-		int32_t index = ms_timerArray.Find(pInfo);
-		if (index >= 0)
-		{
-			ms_timerArray.RemoveAt(index);
-			delete pInfo;
-		}
-		return FWL_ERR_Succeeded;
-	}
+    int32_t index = ms_timerArray.Find(pInfo);
+    if (index >= 0) {
+      ms_timerArray.RemoveAt(index);
+      delete pInfo;
+    }
+    return FWL_ERR_Succeeded;
+  }
 
-	return FWL_ERR_Indefinite;
+  return FWL_ERR_Indefinite;
 }
 
-void CXFA_FWLAdapterTimerMgr::TimerProc(int32_t idEvent)
-{
-	CFWL_TimerInfo *pInfo = NULL;
-	int32_t iCount = CXFA_FWLAdapterTimerMgr::ms_timerArray.GetSize();
-	for (int32_t i = 0; i < iCount; i++)
-	{
-		CFWL_TimerInfo *pTemp = (CFWL_TimerInfo*)CXFA_FWLAdapterTimerMgr::ms_timerArray.GetAt(i);
-		if (pTemp->uIDEvent == idEvent)
-		{
-			pInfo = pTemp; break;
-		}
-	}
-	if (pInfo)
-	{
-		pInfo->pTimer->Run((FWL_HTIMER)pInfo);
-	}
+void CXFA_FWLAdapterTimerMgr::TimerProc(int32_t idEvent) {
+  CFWL_TimerInfo* pInfo = NULL;
+  int32_t iCount = CXFA_FWLAdapterTimerMgr::ms_timerArray.GetSize();
+  for (int32_t i = 0; i < iCount; i++) {
+    CFWL_TimerInfo* pTemp =
+        (CFWL_TimerInfo*)CXFA_FWLAdapterTimerMgr::ms_timerArray.GetAt(i);
+    if (pTemp->uIDEvent == idEvent) {
+      pInfo = pTemp;
+      break;
+    }
+  }
+  if (pInfo) {
+    pInfo->pTimer->Run((FWL_HTIMER)pInfo);
+  }
 }
diff --git a/fpdfsdk/src/fsdk_actionhandler.cpp b/fpdfsdk/src/fsdk_actionhandler.cpp
index 485852ca00..c72bdfd79b 100644
--- a/fpdfsdk/src/fsdk_actionhandler.cpp
+++ b/fpdfsdk/src/fsdk_actionhandler.cpp
@@ -14,235 +14,224 @@
 
 CPDFSDK_ActionHandler::CPDFSDK_ActionHandler(CPDFDoc_Environment* pEvi)
     : m_pFormActionHandler(new CPDFSDK_FormActionHandler),
-      m_pMediaActionHandler(NULL) {
-}
-
-void CPDFSDK_ActionHandler::SetMediaActionHandler(CPDFSDK_MediaActionHandler* pHandler)
-{
-	ASSERT(pHandler != NULL);
-	ASSERT(m_pMediaActionHandler == NULL);
-	m_pMediaActionHandler = pHandler;
-}
-
-//document open
-FX_BOOL	CPDFSDK_ActionHandler::DoAction_DocOpen(const CPDF_Action& action, CPDFSDK_Document* pDocument)
-{
-	CFX_PtrList list;
-	return ExecuteDocumentOpenAction(action, pDocument, list);
-}
-
-//document open
-FX_BOOL	CPDFSDK_ActionHandler::DoAction_JavaScript(const CPDF_Action& JsAction,CFX_WideString csJSName,
-							CPDFSDK_Document* pDocument)
-{
-	if (JsAction.GetType() == CPDF_Action::JavaScript)
-	{
-		CFX_WideString swJS = JsAction.GetJavaScript();
-		if (!swJS.IsEmpty())
-		{
-			RunDocumentOpenJavaScript(pDocument, csJSName, swJS);
-			return TRUE;
-		}
-	}
-
-	return FALSE;
-}
-
-FX_BOOL	CPDFSDK_ActionHandler::DoAction_FieldJavaScript(const CPDF_Action& JsAction, CPDF_AAction::AActionType type,
-									CPDFSDK_Document* pDocument, CPDF_FormField* pFormField,
-									PDFSDK_FieldAction& data)
-{
-	CPDFDoc_Environment* pEnv = pDocument->GetEnv();
-	ASSERT(pEnv);
-	if (pEnv->IsJSInitiated() && JsAction.GetType() == CPDF_Action::JavaScript)
-	{
-		CFX_WideString swJS = JsAction.GetJavaScript();
-		if (!swJS.IsEmpty())
-		{
-			RunFieldJavaScript(pDocument, pFormField, type, data, swJS);
-			return TRUE;
-		}
-	}
-	return FALSE;
-}
-
-FX_BOOL	CPDFSDK_ActionHandler::DoAction_Page(const CPDF_Action& action, enum CPDF_AAction::AActionType eType,
-										CPDFSDK_Document* pDocument)
-{
-	CFX_PtrList list;
-	return ExecuteDocumentPageAction(action, eType, pDocument, list);
-}
-
-FX_BOOL	CPDFSDK_ActionHandler::DoAction_Document(const CPDF_Action& action, enum CPDF_AAction::AActionType eType,
-											 CPDFSDK_Document* pDocument)
-{
-	CFX_PtrList list;
-	return ExecuteDocumentPageAction(action, eType, pDocument, list);
-}
-
-FX_BOOL	CPDFSDK_ActionHandler::DoAction_BookMark(CPDF_Bookmark *pBookMark, const CPDF_Action& action, CPDF_AAction::AActionType type,
-							CPDFSDK_Document* pDocument)
-{
-	CFX_PtrList list;
-	return ExecuteBookMark(action, pDocument, pBookMark, list);
-}
-
-FX_BOOL	CPDFSDK_ActionHandler::DoAction_Screen(const CPDF_Action& action, CPDF_AAction::AActionType type,
-										CPDFSDK_Document* pDocument, CPDFSDK_Annot* pScreen)
-{
-	CFX_PtrList list;
-	return ExecuteScreenAction(action, type, pDocument, pScreen, list);
-}
-
-FX_BOOL	CPDFSDK_ActionHandler::DoAction_Link(const CPDF_Action& action,
-										CPDFSDK_Document* pDocument)
-{
-	CFX_PtrList list;
-	return ExecuteLinkAction(action, pDocument, list);
-}
-
-FX_BOOL	CPDFSDK_ActionHandler::DoAction_Field(const CPDF_Action& action, CPDF_AAction::AActionType type,
-										CPDFSDK_Document* pDocument,
-										CPDF_FormField* pFormField, PDFSDK_FieldAction& data)
-{
-	CFX_PtrList list;
-	return ExecuteFieldAction(action, type, pDocument, pFormField, data, list);
-}
-
-FX_BOOL	CPDFSDK_ActionHandler::ExecuteDocumentOpenAction(const CPDF_Action& action, CPDFSDK_Document* pDocument,
-                                                         CFX_PtrList& list)
-{
-	CPDF_Dictionary* pDict = action.GetDict();
-	if (list.Find(pDict))
-		return FALSE;
-
-	list.AddTail(pDict);
-
-	CPDFDoc_Environment* pEnv = pDocument->GetEnv();
-	ASSERT(pEnv);
-	if (action.GetType() == CPDF_Action::JavaScript)
-	{
-		if(pEnv->IsJSInitiated())
-		{
-			CFX_WideString swJS = action.GetJavaScript();
-			if (!swJS.IsEmpty())
-			{
-				RunDocumentOpenJavaScript(pDocument, L"", swJS);
-			}
-		}
-	}
-	else
-	{
-		DoAction_NoJs(action, pDocument);
-	}
-
-	for (int32_t i=0,sz=action.GetSubActionsCount(); i<sz; i++)
-	{
-		CPDF_Action subaction = action.GetSubAction(i);
-		if (!ExecuteDocumentOpenAction(subaction, pDocument, list)) return FALSE;
-	}
-
-	return TRUE;
-}
-
-FX_BOOL CPDFSDK_ActionHandler::ExecuteLinkAction(const CPDF_Action& action,	CPDFSDK_Document* pDocument,
-												  CFX_PtrList& list)
-{
-	ASSERT(pDocument != NULL);
-
-	CPDF_Dictionary* pDict = action.GetDict();
-	if (list.Find(pDict))
-		return FALSE;
-
-	list.AddTail(pDict);
-
-	CPDFDoc_Environment* pEnv = pDocument->GetEnv();
-	ASSERT(pEnv);
-	if (action.GetType() == CPDF_Action::JavaScript)
-	{
-		if(pEnv->IsJSInitiated())
-		{
-			CFX_WideString swJS = action.GetJavaScript();
-			if (!swJS.IsEmpty())
-			{
-				IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime(); //????
-				ASSERT(pRuntime != NULL);
-
-				pRuntime->SetReaderDocument(pDocument);
-
-				IFXJS_Context* pContext = pRuntime->NewContext();
-				ASSERT(pContext != NULL);
-
-				pContext->OnLink_MouseUp(pDocument);
-
-				CFX_WideString csInfo;
-				FX_BOOL bRet = pContext->RunScript(swJS, csInfo);
-				if (!bRet)
-				{
-					// FIXME: return error.
-				}
-
-				pRuntime->ReleaseContext(pContext);
-			}
-		}
-	}
-	else
-	{
-		DoAction_NoJs(action, pDocument);
-	}
-
-	for (int32_t i=0,sz=action.GetSubActionsCount(); i<sz; i++)
-	{
-		CPDF_Action subaction = action.GetSubAction(i);
-		if (!ExecuteLinkAction(subaction, pDocument, list)) return FALSE;
-	}
-
-	return TRUE;
-}
-
-FX_BOOL	CPDFSDK_ActionHandler::ExecuteDocumentPageAction(const CPDF_Action& action, CPDF_AAction::AActionType type,
-												 CPDFSDK_Document* pDocument, CFX_PtrList& list)
-{
-	ASSERT(pDocument != NULL);
-
-	CPDF_Dictionary* pDict = action.GetDict();
-	if (list.Find(pDict))
-		return FALSE;
-
-	list.AddTail(pDict);
-
-	CPDFDoc_Environment* pEnv = pDocument->GetEnv();
-	ASSERT(pEnv);
-	if (action.GetType() == CPDF_Action::JavaScript)
-	{
-		if(pEnv->IsJSInitiated())
-		{
-			CFX_WideString swJS = action.GetJavaScript();
-			if (!swJS.IsEmpty())
-			{
-				RunDocumentPageJavaScript(pDocument, type, swJS);
-			}
-		}
-	}
-	else
-	{
-		DoAction_NoJs(action, pDocument);
-	}
-
-	if (!IsValidDocView(pDocument))
-		return FALSE;
-
-	for (int32_t i=0,sz=action.GetSubActionsCount(); i<sz; i++)
-	{
-		CPDF_Action subaction = action.GetSubAction(i);
-		if (!ExecuteDocumentPageAction(subaction, type, pDocument, list)) return FALSE;
-	}
-
-	return TRUE;
-}
-
-FX_BOOL	CPDFSDK_ActionHandler::IsValidField(CPDFSDK_Document* pDocument, CPDF_Dictionary* pFieldDict)
-{
+      m_pMediaActionHandler(NULL) {}
+
+void CPDFSDK_ActionHandler::SetMediaActionHandler(
+    CPDFSDK_MediaActionHandler* pHandler) {
+  ASSERT(pHandler != NULL);
+  ASSERT(m_pMediaActionHandler == NULL);
+  m_pMediaActionHandler = pHandler;
+}
+
+// document open
+FX_BOOL CPDFSDK_ActionHandler::DoAction_DocOpen(const CPDF_Action& action,
+                                                CPDFSDK_Document* pDocument) {
+  CFX_PtrList list;
+  return ExecuteDocumentOpenAction(action, pDocument, list);
+}
+
+// document open
+FX_BOOL CPDFSDK_ActionHandler::DoAction_JavaScript(
+    const CPDF_Action& JsAction,
+    CFX_WideString csJSName,
+    CPDFSDK_Document* pDocument) {
+  if (JsAction.GetType() == CPDF_Action::JavaScript) {
+    CFX_WideString swJS = JsAction.GetJavaScript();
+    if (!swJS.IsEmpty()) {
+      RunDocumentOpenJavaScript(pDocument, csJSName, swJS);
+      return TRUE;
+    }
+  }
+
+  return FALSE;
+}
+
+FX_BOOL CPDFSDK_ActionHandler::DoAction_FieldJavaScript(
+    const CPDF_Action& JsAction,
+    CPDF_AAction::AActionType type,
+    CPDFSDK_Document* pDocument,
+    CPDF_FormField* pFormField,
+    PDFSDK_FieldAction& data) {
+  CPDFDoc_Environment* pEnv = pDocument->GetEnv();
+  ASSERT(pEnv);
+  if (pEnv->IsJSInitiated() && JsAction.GetType() == CPDF_Action::JavaScript) {
+    CFX_WideString swJS = JsAction.GetJavaScript();
+    if (!swJS.IsEmpty()) {
+      RunFieldJavaScript(pDocument, pFormField, type, data, swJS);
+      return TRUE;
+    }
+  }
+  return FALSE;
+}
+
+FX_BOOL CPDFSDK_ActionHandler::DoAction_Page(
+    const CPDF_Action& action,
+    enum CPDF_AAction::AActionType eType,
+    CPDFSDK_Document* pDocument) {
+  CFX_PtrList list;
+  return ExecuteDocumentPageAction(action, eType, pDocument, list);
+}
+
+FX_BOOL CPDFSDK_ActionHandler::DoAction_Document(
+    const CPDF_Action& action,
+    enum CPDF_AAction::AActionType eType,
+    CPDFSDK_Document* pDocument) {
+  CFX_PtrList list;
+  return ExecuteDocumentPageAction(action, eType, pDocument, list);
+}
+
+FX_BOOL CPDFSDK_ActionHandler::DoAction_BookMark(CPDF_Bookmark* pBookMark,
+                                                 const CPDF_Action& action,
+                                                 CPDF_AAction::AActionType type,
+                                                 CPDFSDK_Document* pDocument) {
+  CFX_PtrList list;
+  return ExecuteBookMark(action, pDocument, pBookMark, list);
+}
+
+FX_BOOL CPDFSDK_ActionHandler::DoAction_Screen(const CPDF_Action& action,
+                                               CPDF_AAction::AActionType type,
+                                               CPDFSDK_Document* pDocument,
+                                               CPDFSDK_Annot* pScreen) {
+  CFX_PtrList list;
+  return ExecuteScreenAction(action, type, pDocument, pScreen, list);
+}
+
+FX_BOOL CPDFSDK_ActionHandler::DoAction_Link(const CPDF_Action& action,
+                                             CPDFSDK_Document* pDocument) {
+  CFX_PtrList list;
+  return ExecuteLinkAction(action, pDocument, list);
+}
+
+FX_BOOL CPDFSDK_ActionHandler::DoAction_Field(const CPDF_Action& action,
+                                              CPDF_AAction::AActionType type,
+                                              CPDFSDK_Document* pDocument,
+                                              CPDF_FormField* pFormField,
+                                              PDFSDK_FieldAction& data) {
+  CFX_PtrList list;
+  return ExecuteFieldAction(action, type, pDocument, pFormField, data, list);
+}
+
+FX_BOOL CPDFSDK_ActionHandler::ExecuteDocumentOpenAction(
+    const CPDF_Action& action,
+    CPDFSDK_Document* pDocument,
+    CFX_PtrList& list) {
+  CPDF_Dictionary* pDict = action.GetDict();
+  if (list.Find(pDict))
+    return FALSE;
+
+  list.AddTail(pDict);
+
+  CPDFDoc_Environment* pEnv = pDocument->GetEnv();
+  ASSERT(pEnv);
+  if (action.GetType() == CPDF_Action::JavaScript) {
+    if (pEnv->IsJSInitiated()) {
+      CFX_WideString swJS = action.GetJavaScript();
+      if (!swJS.IsEmpty()) {
+        RunDocumentOpenJavaScript(pDocument, L"", swJS);
+      }
+    }
+  } else {
+    DoAction_NoJs(action, pDocument);
+  }
+
+  for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) {
+    CPDF_Action subaction = action.GetSubAction(i);
+    if (!ExecuteDocumentOpenAction(subaction, pDocument, list))
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
+FX_BOOL CPDFSDK_ActionHandler::ExecuteLinkAction(const CPDF_Action& action,
+                                                 CPDFSDK_Document* pDocument,
+                                                 CFX_PtrList& list) {
+  ASSERT(pDocument != NULL);
+
+  CPDF_Dictionary* pDict = action.GetDict();
+  if (list.Find(pDict))
+    return FALSE;
+
+  list.AddTail(pDict);
+
+  CPDFDoc_Environment* pEnv = pDocument->GetEnv();
+  ASSERT(pEnv);
+  if (action.GetType() == CPDF_Action::JavaScript) {
+    if (pEnv->IsJSInitiated()) {
+      CFX_WideString swJS = action.GetJavaScript();
+      if (!swJS.IsEmpty()) {
+        IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime();  //????
+        ASSERT(pRuntime != NULL);
+
+        pRuntime->SetReaderDocument(pDocument);
+
+        IFXJS_Context* pContext = pRuntime->NewContext();
+        ASSERT(pContext != NULL);
+
+        pContext->OnLink_MouseUp(pDocument);
+
+        CFX_WideString csInfo;
+        FX_BOOL bRet = pContext->RunScript(swJS, csInfo);
+        if (!bRet) {
+          // FIXME: return error.
+        }
+
+        pRuntime->ReleaseContext(pContext);
+      }
+    }
+  } else {
+    DoAction_NoJs(action, pDocument);
+  }
+
+  for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) {
+    CPDF_Action subaction = action.GetSubAction(i);
+    if (!ExecuteLinkAction(subaction, pDocument, list))
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
+FX_BOOL CPDFSDK_ActionHandler::ExecuteDocumentPageAction(
+    const CPDF_Action& action,
+    CPDF_AAction::AActionType type,
+    CPDFSDK_Document* pDocument,
+    CFX_PtrList& list) {
+  ASSERT(pDocument != NULL);
+
+  CPDF_Dictionary* pDict = action.GetDict();
+  if (list.Find(pDict))
+    return FALSE;
+
+  list.AddTail(pDict);
+
+  CPDFDoc_Environment* pEnv = pDocument->GetEnv();
+  ASSERT(pEnv);
+  if (action.GetType() == CPDF_Action::JavaScript) {
+    if (pEnv->IsJSInitiated()) {
+      CFX_WideString swJS = action.GetJavaScript();
+      if (!swJS.IsEmpty()) {
+        RunDocumentPageJavaScript(pDocument, type, swJS);
+      }
+    }
+  } else {
+    DoAction_NoJs(action, pDocument);
+  }
+
+  if (!IsValidDocView(pDocument))
+    return FALSE;
+
+  for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) {
+    CPDF_Action subaction = action.GetSubAction(i);
+    if (!ExecuteDocumentPageAction(subaction, type, pDocument, list))
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
+FX_BOOL CPDFSDK_ActionHandler::IsValidField(CPDFSDK_Document* pDocument,
+                                            CPDF_Dictionary* pFieldDict) {
   ASSERT(pDocument != NULL);
   ASSERT(pFieldDict != NULL);
 
@@ -255,554 +244,545 @@ FX_BOOL	CPDFSDK_ActionHandler::IsValidField(CPDFSDK_Document* pDocument, CPDF_Di
   return pPDFInterForm->GetFieldByDict(pFieldDict) != NULL;
 }
 
-FX_BOOL	CPDFSDK_ActionHandler::ExecuteFieldAction(const CPDF_Action& action, CPDF_AAction::AActionType type,
-										  CPDFSDK_Document* pDocument, CPDF_FormField* pFormField,
-										  PDFSDK_FieldAction& data, CFX_PtrList& list)
-{
-	ASSERT(pDocument != NULL);
-
-	CPDF_Dictionary* pDict = action.GetDict();
-	if (list.Find(pDict))
-		return FALSE;
-
-	list.AddTail(pDict);
-
-	CPDFDoc_Environment* pEnv = pDocument->GetEnv();
-	ASSERT(pEnv);
-	if (action.GetType() == CPDF_Action::JavaScript)
-	{
-		if(pEnv->IsJSInitiated())
-		{
-			CFX_WideString swJS = action.GetJavaScript();
-			if (!swJS.IsEmpty())
-			{
-				RunFieldJavaScript(pDocument, pFormField, type, data, swJS);
-				if (!IsValidField(pDocument, pFormField->GetFieldDict()))
-					return FALSE;
-			}
-		}
-	}
-	else
-	{
-		DoAction_NoJs(action, pDocument);
-	}
-
-	for (int32_t i=0,sz=action.GetSubActionsCount(); i<sz; i++)
-	{
-		CPDF_Action subaction = action.GetSubAction(i);
-		if (!ExecuteFieldAction(subaction, type, pDocument, pFormField, data, list)) return FALSE;
-	}
-
-	return TRUE;
-}
-
-FX_BOOL CPDFSDK_ActionHandler::ExecuteScreenAction(const CPDF_Action& action, CPDF_AAction::AActionType type,
-										CPDFSDK_Document* pDocument, CPDFSDK_Annot* pScreen, CFX_PtrList& list)
-{
-	ASSERT(pDocument != NULL);
-
-	CPDF_Dictionary* pDict = action.GetDict();
-	if (list.Find(pDict))
-		return FALSE;
-
-	list.AddTail(pDict);
-
-	CPDFDoc_Environment* pEnv = pDocument->GetEnv();
-	ASSERT(pEnv);
-	if (action.GetType() == CPDF_Action::JavaScript)
-	{
-		if(pEnv->IsJSInitiated())
-		{
-			CFX_WideString swJS = action.GetJavaScript();
-			if (!swJS.IsEmpty())
-			{
-				IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime();
-				ASSERT(pRuntime != NULL);
-
-				pRuntime->SetReaderDocument(pDocument);
-
-				IFXJS_Context* pContext = pRuntime->NewContext();
-				ASSERT(pContext != NULL);
-
-	// 			switch (type)
-	// 			{
-	// 			case CPDF_AAction::CursorEnter:
-	// 				pContext->OnScreen_MouseEnter(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
-	// 				break;
-	// 			case CPDF_AAction::CursorExit:
-	// 				pContext->OnScreen_MouseExit(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
-	// 				break;
-	// 			case CPDF_AAction::ButtonDown:
-	// 				pContext->OnScreen_MouseDown(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
-	// 				break;
-	// 			case CPDF_AAction::ButtonUp:
-	// 				pContext->OnScreen_MouseUp(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
-	// 				break;
-	// 			case CPDF_AAction::GetFocus:
-	// 				pContext->OnScreen_Focus(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
-	// 				break;
-	// 			case CPDF_AAction::LoseFocus:
-	// 				pContext->OnScreen_Blur(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
-	// 				break;
-	// 			case CPDF_AAction::PageOpen:
-	// 				pContext->OnScreen_Open(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
-	// 				break;
-	// 			case CPDF_AAction::PageClose:
-	// 				pContext->OnScreen_Close(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
-	// 				break;
-	// 			case CPDF_AAction::PageVisible:
-	// 				pContext->OnScreen_InView(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
-	// 				break;
-	// 			case CPDF_AAction::PageInvisible:
-	// 				pContext->OnScreen_OutView(IsCTRLpressed(), IsSHIFTpressed(), pScreen);
-	// 				break;
-	// 			default:
-	// 				ASSERT(FALSE);
-	// 				break;
-	// 			}
-
-				CFX_WideString csInfo;
-				FX_BOOL bRet = pContext->RunScript(swJS, csInfo);
-				if (!bRet)
-				{
-					//CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo);
-				}
-
-				pRuntime->ReleaseContext(pContext);
-			}
-		}
-	}
-	else
-	{
-		DoAction_NoJs(action, pDocument);
-	}
-
-	for (int32_t i=0,sz=action.GetSubActionsCount(); i<sz; i++)
-	{
-		CPDF_Action subaction = action.GetSubAction(i);
-		if (!ExecuteScreenAction(subaction, type, pDocument, pScreen, list)) return FALSE;
-	}
-
-	return TRUE;
-}
-
-FX_BOOL	CPDFSDK_ActionHandler::ExecuteBookMark(const CPDF_Action& action, CPDFSDK_Document* pDocument,
-										 CPDF_Bookmark* pBookmark, CFX_PtrList& list)
-{
-	ASSERT(pDocument != NULL);
-
-	CPDF_Dictionary* pDict = action.GetDict();
-	if (list.Find(pDict))
-		return FALSE;
-
-	list.AddTail(pDict);
-
-	CPDFDoc_Environment* pEnv = pDocument->GetEnv();
-	ASSERT(pEnv);
-	if (action.GetType() == CPDF_Action::JavaScript)
-	{
-		if(pEnv->IsJSInitiated())
-		{
-			CFX_WideString swJS = action.GetJavaScript();
-			if (!swJS.IsEmpty())
-			{
-				IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime();
-				ASSERT(pRuntime != NULL);
-
-				pRuntime->SetReaderDocument(pDocument);
-
-				IFXJS_Context* pContext = pRuntime->NewContext();
-				ASSERT(pContext != NULL);
-
-				pContext->OnBookmark_MouseUp(pBookmark);
-
-				CFX_WideString csInfo;
-				FX_BOOL bRet = pContext->RunScript(swJS, csInfo);
-				if (!bRet)
-				{
-					//CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo);
-				}
-
-				pRuntime->ReleaseContext(pContext);
-			}
-		}
-	}
-	else
-	{
-		DoAction_NoJs(action, pDocument);
-	}
-
-	for (int32_t i=0,sz=action.GetSubActionsCount(); i<sz; i++)
-	{
-		CPDF_Action subaction = action.GetSubAction(i);
-		if (!ExecuteBookMark(subaction, pDocument, pBookmark, list)) return FALSE;
-	}
-
-	return TRUE;
-}
-
-void CPDFSDK_ActionHandler::DoAction_NoJs(const CPDF_Action& action, CPDFSDK_Document* pDocument)
-{
-	ASSERT(pDocument != NULL);
-
-	switch (action.GetType())
-	{
-	case CPDF_Action::GoTo:
-		DoAction_GoTo(pDocument, action);
-		break;
-	case CPDF_Action::GoToR:
-		DoAction_GoToR(pDocument, action);
-		break;
-	case CPDF_Action::GoToE:
-		break;
-	case CPDF_Action::Launch:
-		DoAction_Launch(pDocument, action);
-		break;
-	case CPDF_Action::Thread:
-		break;
-	case CPDF_Action::URI:
-		DoAction_URI(pDocument, action);
-		break;
-	case CPDF_Action::Sound:
-		if (m_pMediaActionHandler)
-		{
-			m_pMediaActionHandler->DoAction_Sound(action, pDocument);
-		}
-		break;
-	case CPDF_Action::Movie:
-		if (m_pMediaActionHandler)
-		{
-			m_pMediaActionHandler->DoAction_Movie(action, pDocument);
-		}
-		break;
-	case CPDF_Action::Hide:
-		if (m_pFormActionHandler)
-		{
-			m_pFormActionHandler->DoAction_Hide(action, pDocument);
-		}
-		break;
-	case CPDF_Action::Named:
-		DoAction_Named(pDocument, action);
-		break;
-	case CPDF_Action::SubmitForm:
-		if (m_pFormActionHandler)
-		{
-			m_pFormActionHandler->DoAction_SubmitForm(action, pDocument);
-		}
-		break;
-	case CPDF_Action::ResetForm:
-		if (m_pFormActionHandler)
-		{
-			m_pFormActionHandler->DoAction_ResetForm(action, pDocument);
-		}
-		break;
-	case CPDF_Action::ImportData:
-		if (m_pFormActionHandler)
-		{
-			m_pFormActionHandler->DoAction_ImportData(action, pDocument);
-		}
-		break;
-	case CPDF_Action::JavaScript:
-		ASSERT(FALSE);
-		break;
-	case CPDF_Action::SetOCGState:
-		DoAction_SetOCGState(pDocument,  action);
-		break;
-	case CPDF_Action::Rendition:
-		if (m_pMediaActionHandler)
-		{
-			m_pMediaActionHandler->DoAction_Rendition(action, pDocument);
-		}
-		break;
-	case CPDF_Action::Trans:
-		break;
-	case CPDF_Action::GoTo3DView:
-		break;
-	default:
-		break;
-	}
-}
-
-FX_BOOL	CPDFSDK_ActionHandler::IsValidDocView(CPDFSDK_Document* pDocument)
-{
-	ASSERT(pDocument != NULL);
-	return TRUE;
+FX_BOOL CPDFSDK_ActionHandler::ExecuteFieldAction(
+    const CPDF_Action& action,
+    CPDF_AAction::AActionType type,
+    CPDFSDK_Document* pDocument,
+    CPDF_FormField* pFormField,
+    PDFSDK_FieldAction& data,
+    CFX_PtrList& list) {
+  ASSERT(pDocument != NULL);
+
+  CPDF_Dictionary* pDict = action.GetDict();
+  if (list.Find(pDict))
+    return FALSE;
+
+  list.AddTail(pDict);
+
+  CPDFDoc_Environment* pEnv = pDocument->GetEnv();
+  ASSERT(pEnv);
+  if (action.GetType() == CPDF_Action::JavaScript) {
+    if (pEnv->IsJSInitiated()) {
+      CFX_WideString swJS = action.GetJavaScript();
+      if (!swJS.IsEmpty()) {
+        RunFieldJavaScript(pDocument, pFormField, type, data, swJS);
+        if (!IsValidField(pDocument, pFormField->GetFieldDict()))
+          return FALSE;
+      }
+    }
+  } else {
+    DoAction_NoJs(action, pDocument);
+  }
+
+  for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) {
+    CPDF_Action subaction = action.GetSubAction(i);
+    if (!ExecuteFieldAction(subaction, type, pDocument, pFormField, data, list))
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
+FX_BOOL CPDFSDK_ActionHandler::ExecuteScreenAction(
+    const CPDF_Action& action,
+    CPDF_AAction::AActionType type,
+    CPDFSDK_Document* pDocument,
+    CPDFSDK_Annot* pScreen,
+    CFX_PtrList& list) {
+  ASSERT(pDocument != NULL);
+
+  CPDF_Dictionary* pDict = action.GetDict();
+  if (list.Find(pDict))
+    return FALSE;
+
+  list.AddTail(pDict);
+
+  CPDFDoc_Environment* pEnv = pDocument->GetEnv();
+  ASSERT(pEnv);
+  if (action.GetType() == CPDF_Action::JavaScript) {
+    if (pEnv->IsJSInitiated()) {
+      CFX_WideString swJS = action.GetJavaScript();
+      if (!swJS.IsEmpty()) {
+        IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime();
+        ASSERT(pRuntime != NULL);
+
+        pRuntime->SetReaderDocument(pDocument);
+
+        IFXJS_Context* pContext = pRuntime->NewContext();
+        ASSERT(pContext != NULL);
+
+        // 			switch (type)
+        // 			{
+        // 			case CPDF_AAction::CursorEnter:
+        // 				pContext->OnScreen_MouseEnter(IsCTRLpressed(),
+        // IsSHIFTpressed(), pScreen);
+        // 				break;
+        // 			case CPDF_AAction::CursorExit:
+        // 				pContext->OnScreen_MouseExit(IsCTRLpressed(),
+        // IsSHIFTpressed(), pScreen);
+        // 				break;
+        // 			case CPDF_AAction::ButtonDown:
+        // 				pContext->OnScreen_MouseDown(IsCTRLpressed(),
+        // IsSHIFTpressed(), pScreen);
+        // 				break;
+        // 			case CPDF_AAction::ButtonUp:
+        // 				pContext->OnScreen_MouseUp(IsCTRLpressed(),
+        // IsSHIFTpressed(), pScreen);
+        // 				break;
+        // 			case CPDF_AAction::GetFocus:
+        // 				pContext->OnScreen_Focus(IsCTRLpressed(),
+        // IsSHIFTpressed(), pScreen);
+        // 				break;
+        // 			case CPDF_AAction::LoseFocus:
+        // 				pContext->OnScreen_Blur(IsCTRLpressed(),
+        // IsSHIFTpressed(), pScreen);
+        // 				break;
+        // 			case CPDF_AAction::PageOpen:
+        // 				pContext->OnScreen_Open(IsCTRLpressed(),
+        // IsSHIFTpressed(), pScreen);
+        // 				break;
+        // 			case CPDF_AAction::PageClose:
+        // 				pContext->OnScreen_Close(IsCTRLpressed(),
+        // IsSHIFTpressed(), pScreen);
+        // 				break;
+        // 			case CPDF_AAction::PageVisible:
+        // 				pContext->OnScreen_InView(IsCTRLpressed(),
+        // IsSHIFTpressed(), pScreen);
+        // 				break;
+        // 			case CPDF_AAction::PageInvisible:
+        // 				pContext->OnScreen_OutView(IsCTRLpressed(),
+        // IsSHIFTpressed(), pScreen);
+        // 				break;
+        // 			default:
+        // 				ASSERT(FALSE);
+        // 				break;
+        // 			}
+
+        CFX_WideString csInfo;
+        FX_BOOL bRet = pContext->RunScript(swJS, csInfo);
+        if (!bRet) {
+          // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(),
+          // csInfo);
+        }
+
+        pRuntime->ReleaseContext(pContext);
+      }
+    }
+  } else {
+    DoAction_NoJs(action, pDocument);
+  }
+
+  for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) {
+    CPDF_Action subaction = action.GetSubAction(i);
+    if (!ExecuteScreenAction(subaction, type, pDocument, pScreen, list))
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
+FX_BOOL CPDFSDK_ActionHandler::ExecuteBookMark(const CPDF_Action& action,
+                                               CPDFSDK_Document* pDocument,
+                                               CPDF_Bookmark* pBookmark,
+                                               CFX_PtrList& list) {
+  ASSERT(pDocument != NULL);
+
+  CPDF_Dictionary* pDict = action.GetDict();
+  if (list.Find(pDict))
+    return FALSE;
+
+  list.AddTail(pDict);
+
+  CPDFDoc_Environment* pEnv = pDocument->GetEnv();
+  ASSERT(pEnv);
+  if (action.GetType() == CPDF_Action::JavaScript) {
+    if (pEnv->IsJSInitiated()) {
+      CFX_WideString swJS = action.GetJavaScript();
+      if (!swJS.IsEmpty()) {
+        IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime();
+        ASSERT(pRuntime != NULL);
+
+        pRuntime->SetReaderDocument(pDocument);
+
+        IFXJS_Context* pContext = pRuntime->NewContext();
+        ASSERT(pContext != NULL);
+
+        pContext->OnBookmark_MouseUp(pBookmark);
+
+        CFX_WideString csInfo;
+        FX_BOOL bRet = pContext->RunScript(swJS, csInfo);
+        if (!bRet) {
+          // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(),
+          // csInfo);
+        }
+
+        pRuntime->ReleaseContext(pContext);
+      }
+    }
+  } else {
+    DoAction_NoJs(action, pDocument);
+  }
+
+  for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) {
+    CPDF_Action subaction = action.GetSubAction(i);
+    if (!ExecuteBookMark(subaction, pDocument, pBookmark, list))
+      return FALSE;
+  }
+
+  return TRUE;
 }
 
-void CPDFSDK_ActionHandler::DoAction_GoTo(CPDFSDK_Document* pDocument,
-								  const CPDF_Action& action)
-{
-	ASSERT(action);
-
-	CPDF_Document* pPDFDocument = pDocument->GetDocument()->GetPDFDoc();
-	ASSERT(pPDFDocument != NULL);
-	CPDFDoc_Environment* pApp = pDocument->GetEnv();
-	ASSERT(pApp != NULL);
-
-	CPDF_Dest MyDest = action.GetDest(pPDFDocument);
-	int nPageIndex = MyDest.GetPageIndex(pPDFDocument);
-	int nFitType = MyDest.GetZoomMode();
-	const CPDF_Array * pMyArray = (CPDF_Array*)MyDest.GetObject();
-	float* pPosAry = NULL;
-	int sizeOfAry = 0;
-	if (pMyArray != NULL)
-	{
-		pPosAry = new float[pMyArray->GetCount()];
-		int j = 0;
-		for (int i = 2; i < (int)pMyArray->GetCount(); i++)
-		{
-			pPosAry[j++] = pMyArray->GetFloat(i);
-		}
-		sizeOfAry = j;
-	}
-	pApp->FFI_DoGoToAction(nPageIndex, nFitType, pPosAry, sizeOfAry);
-	if(pPosAry)
-		delete[] pPosAry;
-}
-
-void CPDFSDK_ActionHandler::DoAction_GoToR(CPDFSDK_Document* pDocument, const CPDF_Action& action)
-{
-
-}
-
-void CPDFSDK_ActionHandler::DoAction_Launch(CPDFSDK_Document* pDocument, const CPDF_Action& action)
-{
+void CPDFSDK_ActionHandler::DoAction_NoJs(const CPDF_Action& action,
+                                          CPDFSDK_Document* pDocument) {
+  ASSERT(pDocument != NULL);
 
+  switch (action.GetType()) {
+    case CPDF_Action::GoTo:
+      DoAction_GoTo(pDocument, action);
+      break;
+    case CPDF_Action::GoToR:
+      DoAction_GoToR(pDocument, action);
+      break;
+    case CPDF_Action::GoToE:
+      break;
+    case CPDF_Action::Launch:
+      DoAction_Launch(pDocument, action);
+      break;
+    case CPDF_Action::Thread:
+      break;
+    case CPDF_Action::URI:
+      DoAction_URI(pDocument, action);
+      break;
+    case CPDF_Action::Sound:
+      if (m_pMediaActionHandler) {
+        m_pMediaActionHandler->DoAction_Sound(action, pDocument);
+      }
+      break;
+    case CPDF_Action::Movie:
+      if (m_pMediaActionHandler) {
+        m_pMediaActionHandler->DoAction_Movie(action, pDocument);
+      }
+      break;
+    case CPDF_Action::Hide:
+      if (m_pFormActionHandler) {
+        m_pFormActionHandler->DoAction_Hide(action, pDocument);
+      }
+      break;
+    case CPDF_Action::Named:
+      DoAction_Named(pDocument, action);
+      break;
+    case CPDF_Action::SubmitForm:
+      if (m_pFormActionHandler) {
+        m_pFormActionHandler->DoAction_SubmitForm(action, pDocument);
+      }
+      break;
+    case CPDF_Action::ResetForm:
+      if (m_pFormActionHandler) {
+        m_pFormActionHandler->DoAction_ResetForm(action, pDocument);
+      }
+      break;
+    case CPDF_Action::ImportData:
+      if (m_pFormActionHandler) {
+        m_pFormActionHandler->DoAction_ImportData(action, pDocument);
+      }
+      break;
+    case CPDF_Action::JavaScript:
+      ASSERT(FALSE);
+      break;
+    case CPDF_Action::SetOCGState:
+      DoAction_SetOCGState(pDocument, action);
+      break;
+    case CPDF_Action::Rendition:
+      if (m_pMediaActionHandler) {
+        m_pMediaActionHandler->DoAction_Rendition(action, pDocument);
+      }
+      break;
+    case CPDF_Action::Trans:
+      break;
+    case CPDF_Action::GoTo3DView:
+      break;
+    default:
+      break;
+  }
+}
+
+FX_BOOL CPDFSDK_ActionHandler::IsValidDocView(CPDFSDK_Document* pDocument) {
+  ASSERT(pDocument != NULL);
+  return TRUE;
 }
 
-void CPDFSDK_ActionHandler::DoAction_URI(CPDFSDK_Document* pDocument, const CPDF_Action& action)
-{
- 	ASSERT(action);
-
- 	CPDFDoc_Environment* pApp = pDocument->GetEnv();
- 	ASSERT(pApp != NULL);
-
- 	CFX_ByteString sURI = action.GetURI(pDocument->GetDocument()->GetPDFDoc());
- 	pApp->FFI_DoURIAction(sURI.c_str());
+void CPDFSDK_ActionHandler::DoAction_GoTo(CPDFSDK_Document* pDocument,
+                                          const CPDF_Action& action) {
+  ASSERT(action);
+
+  CPDF_Document* pPDFDocument = pDocument->GetDocument()->GetPDFDoc();
+  ASSERT(pPDFDocument != NULL);
+  CPDFDoc_Environment* pApp = pDocument->GetEnv();
+  ASSERT(pApp != NULL);
+
+  CPDF_Dest MyDest = action.GetDest(pPDFDocument);
+  int nPageIndex = MyDest.GetPageIndex(pPDFDocument);
+  int nFitType = MyDest.GetZoomMode();
+  const CPDF_Array* pMyArray = (CPDF_Array*)MyDest.GetObject();
+  float* pPosAry = NULL;
+  int sizeOfAry = 0;
+  if (pMyArray != NULL) {
+    pPosAry = new float[pMyArray->GetCount()];
+    int j = 0;
+    for (int i = 2; i < (int)pMyArray->GetCount(); i++) {
+      pPosAry[j++] = pMyArray->GetFloat(i);
+    }
+    sizeOfAry = j;
+  }
+  pApp->FFI_DoGoToAction(nPageIndex, nFitType, pPosAry, sizeOfAry);
+  if (pPosAry)
+    delete[] pPosAry;
 }
 
-void CPDFSDK_ActionHandler::DoAction_Named(CPDFSDK_Document* pDocument, const CPDF_Action& action)
-{
- 	ASSERT(action);
+void CPDFSDK_ActionHandler::DoAction_GoToR(CPDFSDK_Document* pDocument,
+                                           const CPDF_Action& action) {}
+
+void CPDFSDK_ActionHandler::DoAction_Launch(CPDFSDK_Document* pDocument,
+                                            const CPDF_Action& action) {}
+
+void CPDFSDK_ActionHandler::DoAction_URI(CPDFSDK_Document* pDocument,
+                                         const CPDF_Action& action) {
+  ASSERT(action);
+
+  CPDFDoc_Environment* pApp = pDocument->GetEnv();
+  ASSERT(pApp != NULL);
 
- 	CFX_ByteString csName = action.GetNamedAction();
- 	pDocument->GetEnv()->FFI_ExecuteNamedAction(csName);
+  CFX_ByteString sURI = action.GetURI(pDocument->GetDocument()->GetPDFDoc());
+  pApp->FFI_DoURIAction(sURI.c_str());
 }
 
+void CPDFSDK_ActionHandler::DoAction_Named(CPDFSDK_Document* pDocument,
+                                           const CPDF_Action& action) {
+  ASSERT(action);
 
-void CPDFSDK_ActionHandler::DoAction_SetOCGState(CPDFSDK_Document* pDocument, const CPDF_Action& action)
-{
+  CFX_ByteString csName = action.GetNamedAction();
+  pDocument->GetEnv()->FFI_ExecuteNamedAction(csName);
 }
 
-void CPDFSDK_ActionHandler::RunFieldJavaScript(CPDFSDK_Document* pDocument, CPDF_FormField* pFormField, CPDF_AAction::AActionType type,
-										PDFSDK_FieldAction& data, const CFX_WideString& script)
-{
-	ASSERT(type != CPDF_AAction::Calculate);
-	ASSERT(type != CPDF_AAction::Format);
-
-	ASSERT(pDocument != NULL);
-
-	IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime();
-	ASSERT(pRuntime != NULL);
-
-	pRuntime->SetReaderDocument(pDocument);
-
-	IFXJS_Context* pContext = pRuntime->NewContext();
-	ASSERT(pContext != NULL);
-
-	switch (type)
-	{
-	case CPDF_AAction::CursorEnter:
-		pContext->OnField_MouseEnter(data.bModifier, data.bShift, pFormField);
-		break;
-	case CPDF_AAction::CursorExit:
-		pContext->OnField_MouseExit(data.bModifier, data.bShift, pFormField);
-		break;
-	case CPDF_AAction::ButtonDown:
-		pContext->OnField_MouseDown(data.bModifier, data.bShift, pFormField);
-		break;
-	case CPDF_AAction::ButtonUp:
-		pContext->OnField_MouseUp(data.bModifier, data.bShift, pFormField);
-		break;
-	case CPDF_AAction::GetFocus:
-		pContext->OnField_Focus(data.bModifier, data.bShift, pFormField, data.sValue);
-		break;
-	case CPDF_AAction::LoseFocus:
-		pContext->OnField_Blur(data.bModifier, data.bShift, pFormField, data.sValue);
-		break;
-	case CPDF_AAction::KeyStroke:
-		pContext->OnField_Keystroke(data.sChange, data.sChangeEx, data.bKeyDown,
-			data.bModifier, data.nSelEnd, data.nSelStart, data.bShift, pFormField, data.sValue,
-			data.bWillCommit, data.bFieldFull, data.bRC);
-		break;
-	case CPDF_AAction::Validate:
-		pContext->OnField_Validate(data.sChange, data.sChangeEx, data.bKeyDown, data.bModifier,
-			data.bShift, pFormField, data.sValue, data.bRC);
-		break;
-	default:
-		ASSERT(FALSE);
-		break;
-	}
-
-	CFX_WideString csInfo;
-	FX_BOOL bRet = pContext->RunScript(script, csInfo);
-	if (!bRet)
-	{
-		//CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo);
-	}
-
-	pRuntime->ReleaseContext(pContext);
-}
-
-void CPDFSDK_ActionHandler::RunDocumentOpenJavaScript(CPDFSDK_Document* pDocument, const CFX_WideString& sScriptName, const CFX_WideString& script)
-{
-	ASSERT(pDocument != NULL);
+void CPDFSDK_ActionHandler::DoAction_SetOCGState(CPDFSDK_Document* pDocument,
+                                                 const CPDF_Action& action) {}
 
-	IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime();
-	ASSERT(pRuntime != NULL);
+void CPDFSDK_ActionHandler::RunFieldJavaScript(CPDFSDK_Document* pDocument,
+                                               CPDF_FormField* pFormField,
+                                               CPDF_AAction::AActionType type,
+                                               PDFSDK_FieldAction& data,
+                                               const CFX_WideString& script) {
+  ASSERT(type != CPDF_AAction::Calculate);
+  ASSERT(type != CPDF_AAction::Format);
 
-	pRuntime->SetReaderDocument(pDocument);
+  ASSERT(pDocument != NULL);
+
+  IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime();
+  ASSERT(pRuntime != NULL);
+
+  pRuntime->SetReaderDocument(pDocument);
+
+  IFXJS_Context* pContext = pRuntime->NewContext();
+  ASSERT(pContext != NULL);
+
+  switch (type) {
+    case CPDF_AAction::CursorEnter:
+      pContext->OnField_MouseEnter(data.bModifier, data.bShift, pFormField);
+      break;
+    case CPDF_AAction::CursorExit:
+      pContext->OnField_MouseExit(data.bModifier, data.bShift, pFormField);
+      break;
+    case CPDF_AAction::ButtonDown:
+      pContext->OnField_MouseDown(data.bModifier, data.bShift, pFormField);
+      break;
+    case CPDF_AAction::ButtonUp:
+      pContext->OnField_MouseUp(data.bModifier, data.bShift, pFormField);
+      break;
+    case CPDF_AAction::GetFocus:
+      pContext->OnField_Focus(data.bModifier, data.bShift, pFormField,
+                              data.sValue);
+      break;
+    case CPDF_AAction::LoseFocus:
+      pContext->OnField_Blur(data.bModifier, data.bShift, pFormField,
+                             data.sValue);
+      break;
+    case CPDF_AAction::KeyStroke:
+      pContext->OnField_Keystroke(data.sChange, data.sChangeEx, data.bKeyDown,
+                                  data.bModifier, data.nSelEnd, data.nSelStart,
+                                  data.bShift, pFormField, data.sValue,
+                                  data.bWillCommit, data.bFieldFull, data.bRC);
+      break;
+    case CPDF_AAction::Validate:
+      pContext->OnField_Validate(data.sChange, data.sChangeEx, data.bKeyDown,
+                                 data.bModifier, data.bShift, pFormField,
+                                 data.sValue, data.bRC);
+      break;
+    default:
+      ASSERT(FALSE);
+      break;
+  }
+
+  CFX_WideString csInfo;
+  FX_BOOL bRet = pContext->RunScript(script, csInfo);
+  if (!bRet) {
+    // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo);
+  }
+
+  pRuntime->ReleaseContext(pContext);
+}
+
+void CPDFSDK_ActionHandler::RunDocumentOpenJavaScript(
+    CPDFSDK_Document* pDocument,
+    const CFX_WideString& sScriptName,
+    const CFX_WideString& script) {
+  ASSERT(pDocument != NULL);
+
+  IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime();
+  ASSERT(pRuntime != NULL);
 
-	IFXJS_Context* pContext = pRuntime->NewContext();
-	ASSERT(pContext != NULL);
-
-	pContext->OnDoc_Open(pDocument, sScriptName);
+  pRuntime->SetReaderDocument(pDocument);
 
-	CFX_WideString csInfo;
-	FX_BOOL bRet = pContext->RunScript(script, csInfo);
-	if (!bRet)
-	{
-		//CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo);
-	}
-
-	pRuntime->ReleaseContext(pContext);
-}
-
-void CPDFSDK_ActionHandler::RunDocumentPageJavaScript(CPDFSDK_Document* pDocument, CPDF_AAction::AActionType type, const CFX_WideString& script)
-{
-	ASSERT(pDocument != NULL);
-
-	IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime();
-	ASSERT(pRuntime != NULL);
-
-	pRuntime->SetReaderDocument(pDocument);
-
-	IFXJS_Context* pContext = pRuntime->NewContext();
-	ASSERT(pContext != NULL);
-
-	switch (type)
-	{
-	case CPDF_AAction::OpenPage:
-		pContext->OnPage_Open(pDocument);
-		break;
-	case CPDF_AAction::ClosePage:
-		pContext->OnPage_Close(pDocument);
-		break;
-	case CPDF_AAction::CloseDocument:
-		pContext->OnDoc_WillClose(pDocument);
-		break;
-	case CPDF_AAction::SaveDocument:
-		pContext->OnDoc_WillSave(pDocument);
-		break;
-	case CPDF_AAction::DocumentSaved:
-		pContext->OnDoc_DidSave(pDocument);
-		break;
-	case CPDF_AAction::PrintDocument:
-		pContext->OnDoc_WillPrint(pDocument);
-		break;
-	case CPDF_AAction::DocumentPrinted:
-		pContext->OnDoc_DidPrint(pDocument);
-		break;
-	case CPDF_AAction::PageVisible:
-		pContext->OnPage_InView(pDocument);
-		break;
-	case CPDF_AAction::PageInvisible:
-		pContext->OnPage_OutView(pDocument);
-		break;
-	default:
-		ASSERT(FALSE);
-		break;
-	}
-
-	CFX_WideString csInfo;
-	FX_BOOL bRet = pContext->RunScript(script, csInfo);
-	if (!bRet)
-	{
-		//CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo);
-	}
+  IFXJS_Context* pContext = pRuntime->NewContext();
+  ASSERT(pContext != NULL);
 
-	pRuntime->ReleaseContext(pContext);
+  pContext->OnDoc_Open(pDocument, sScriptName);
+
+  CFX_WideString csInfo;
+  FX_BOOL bRet = pContext->RunScript(script, csInfo);
+  if (!bRet) {
+    // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo);
+  }
+
+  pRuntime->ReleaseContext(pContext);
 }
 
+void CPDFSDK_ActionHandler::RunDocumentPageJavaScript(
+    CPDFSDK_Document* pDocument,
+    CPDF_AAction::AActionType type,
+    const CFX_WideString& script) {
+  ASSERT(pDocument != NULL);
 
-FX_BOOL	CPDFSDK_FormActionHandler::DoAction_Hide(const CPDF_Action& action, CPDFSDK_Document* pDocument)
-{
-	ASSERT(pDocument != NULL);
+  IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime();
+  ASSERT(pRuntime != NULL);
+
+  pRuntime->SetReaderDocument(pDocument);
+
+  IFXJS_Context* pContext = pRuntime->NewContext();
+  ASSERT(pContext != NULL);
+
+  switch (type) {
+    case CPDF_AAction::OpenPage:
+      pContext->OnPage_Open(pDocument);
+      break;
+    case CPDF_AAction::ClosePage:
+      pContext->OnPage_Close(pDocument);
+      break;
+    case CPDF_AAction::CloseDocument:
+      pContext->OnDoc_WillClose(pDocument);
+      break;
+    case CPDF_AAction::SaveDocument:
+      pContext->OnDoc_WillSave(pDocument);
+      break;
+    case CPDF_AAction::DocumentSaved:
+      pContext->OnDoc_DidSave(pDocument);
+      break;
+    case CPDF_AAction::PrintDocument:
+      pContext->OnDoc_WillPrint(pDocument);
+      break;
+    case CPDF_AAction::DocumentPrinted:
+      pContext->OnDoc_DidPrint(pDocument);
+      break;
+    case CPDF_AAction::PageVisible:
+      pContext->OnPage_InView(pDocument);
+      break;
+    case CPDF_AAction::PageInvisible:
+      pContext->OnPage_OutView(pDocument);
+      break;
+    default:
+      ASSERT(FALSE);
+      break;
+  }
+
+  CFX_WideString csInfo;
+  FX_BOOL bRet = pContext->RunScript(script, csInfo);
+  if (!bRet) {
+    // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo);
+  }
+
+  pRuntime->ReleaseContext(pContext);
+}
+
+FX_BOOL CPDFSDK_FormActionHandler::DoAction_Hide(const CPDF_Action& action,
+                                                 CPDFSDK_Document* pDocument) {
+  ASSERT(pDocument != NULL);
 
-	CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
-	ASSERT(pInterForm != NULL);
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-	if (pInterForm->DoAction_Hide(action))
-	{
-		pDocument->SetChangeMark();
-		return TRUE;
-	}
+  if (pInterForm->DoAction_Hide(action)) {
+    pDocument->SetChangeMark();
+    return TRUE;
+  }
 
-	return FALSE;
+  return FALSE;
 }
 
-FX_BOOL	CPDFSDK_FormActionHandler::DoAction_SubmitForm(const CPDF_Action& action, CPDFSDK_Document* pDocument)
-{
-	ASSERT(pDocument != NULL);
+FX_BOOL CPDFSDK_FormActionHandler::DoAction_SubmitForm(
+    const CPDF_Action& action,
+    CPDFSDK_Document* pDocument) {
+  ASSERT(pDocument != NULL);
 
-	CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
-	ASSERT(pInterForm != NULL);
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-	return pInterForm->DoAction_SubmitForm(action);
+  return pInterForm->DoAction_SubmitForm(action);
 }
 
-FX_BOOL	CPDFSDK_FormActionHandler::DoAction_ResetForm(const CPDF_Action& action, CPDFSDK_Document* pDocument)
-{
-	ASSERT(pDocument != NULL);
+FX_BOOL CPDFSDK_FormActionHandler::DoAction_ResetForm(
+    const CPDF_Action& action,
+    CPDFSDK_Document* pDocument) {
+  ASSERT(pDocument != NULL);
 
-	CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
-	ASSERT(pInterForm != NULL);
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-	if (pInterForm->DoAction_ResetForm(action))
-	{
-		return TRUE;
-	}
+  if (pInterForm->DoAction_ResetForm(action)) {
+    return TRUE;
+  }
 
-	return FALSE;
+  return FALSE;
 }
 
-FX_BOOL	CPDFSDK_FormActionHandler::DoAction_ImportData(const CPDF_Action& action, CPDFSDK_Document* pDocument)
-{
-	ASSERT(pDocument != NULL);
+FX_BOOL CPDFSDK_FormActionHandler::DoAction_ImportData(
+    const CPDF_Action& action,
+    CPDFSDK_Document* pDocument) {
+  ASSERT(pDocument != NULL);
 
-	CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
-	ASSERT(pInterForm != NULL);
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-	if (pInterForm->DoAction_ImportData(action))
-	{
-		pDocument->SetChangeMark();
-		return TRUE;
-	}
+  if (pInterForm->DoAction_ImportData(action)) {
+    pDocument->SetChangeMark();
+    return TRUE;
+  }
 
-	return FALSE;
+  return FALSE;
 }
 
-FX_BOOL	CPDFSDK_MediaActionHandler::DoAction_Rendition(const CPDF_Action& action, CPDFSDK_Document* pDocument)
-{
-	return FALSE;
+FX_BOOL CPDFSDK_MediaActionHandler::DoAction_Rendition(
+    const CPDF_Action& action,
+    CPDFSDK_Document* pDocument) {
+  return FALSE;
 }
 
-FX_BOOL	CPDFSDK_MediaActionHandler::DoAction_Sound(const CPDF_Action& action, CPDFSDK_Document* pDocument)
-{
-	return FALSE;
+FX_BOOL CPDFSDK_MediaActionHandler::DoAction_Sound(
+    const CPDF_Action& action,
+    CPDFSDK_Document* pDocument) {
+  return FALSE;
 }
 
-FX_BOOL	CPDFSDK_MediaActionHandler::DoAction_Movie(const CPDF_Action& action, CPDFSDK_Document* pDocument)
-{
-	return FALSE;
+FX_BOOL CPDFSDK_MediaActionHandler::DoAction_Movie(
+    const CPDF_Action& action,
+    CPDFSDK_Document* pDocument) {
+  return FALSE;
 }
diff --git a/fpdfsdk/src/fsdk_annothandler.cpp b/fpdfsdk/src/fsdk_annothandler.cpp
index ebdd67e4ef..a729fb78eb 100644
--- a/fpdfsdk/src/fsdk_annothandler.cpp
+++ b/fpdfsdk/src/fsdk_annothandler.cpp
@@ -11,1347 +11,1310 @@
 #include "../include/formfiller/FFL_FormFiller.h"
 #include "../include/fsdk_annothandler.h"
 
+CPDFSDK_AnnotHandlerMgr::CPDFSDK_AnnotHandlerMgr(CPDFDoc_Environment* pApp) {
+  m_pApp = pApp;
 
-CPDFSDK_AnnotHandlerMgr::CPDFSDK_AnnotHandlerMgr(CPDFDoc_Environment* pApp)
-{
-    m_pApp = pApp;
+  CPDFSDK_BFAnnotHandler* pHandler = new CPDFSDK_BFAnnotHandler(m_pApp);
+  pHandler->SetFormFiller(m_pApp->GetIFormFiller());
+  RegisterAnnotHandler(pHandler);
 
-    CPDFSDK_BFAnnotHandler* pHandler = new CPDFSDK_BFAnnotHandler(m_pApp);
-    pHandler->SetFormFiller(m_pApp->GetIFormFiller());
-    RegisterAnnotHandler(pHandler);
-
-    CPDFSDK_XFAAnnotHandler* pXFAAnnotHandler = new CPDFSDK_XFAAnnotHandler(m_pApp);
-    RegisterAnnotHandler(pXFAAnnotHandler);
+  CPDFSDK_XFAAnnotHandler* pXFAAnnotHandler =
+      new CPDFSDK_XFAAnnotHandler(m_pApp);
+  RegisterAnnotHandler(pXFAAnnotHandler);
 }
 
-CPDFSDK_AnnotHandlerMgr::~CPDFSDK_AnnotHandlerMgr()
-{
-    for(int i=0; i<m_Handlers.GetSize(); i++)
-    {
-        IPDFSDK_AnnotHandler* pHandler = m_Handlers.GetAt(i);
-        delete pHandler;
-    }
-    m_Handlers.RemoveAll();
-    m_mapType2Handler.RemoveAll();
+CPDFSDK_AnnotHandlerMgr::~CPDFSDK_AnnotHandlerMgr() {
+  for (int i = 0; i < m_Handlers.GetSize(); i++) {
+    IPDFSDK_AnnotHandler* pHandler = m_Handlers.GetAt(i);
+    delete pHandler;
+  }
+  m_Handlers.RemoveAll();
+  m_mapType2Handler.RemoveAll();
 }
 
-void    CPDFSDK_AnnotHandlerMgr::RegisterAnnotHandler(IPDFSDK_AnnotHandler* pAnnotHandler)
-{
-    ASSERT(pAnnotHandler != NULL);
+void CPDFSDK_AnnotHandlerMgr::RegisterAnnotHandler(
+    IPDFSDK_AnnotHandler* pAnnotHandler) {
+  ASSERT(pAnnotHandler != NULL);
 
-    ASSERT(GetAnnotHandler(pAnnotHandler->GetType()) == NULL);
+  ASSERT(GetAnnotHandler(pAnnotHandler->GetType()) == NULL);
 
-    m_Handlers.Add(pAnnotHandler);
-    m_mapType2Handler.SetAt(pAnnotHandler->GetType(), (void*)pAnnotHandler);
+  m_Handlers.Add(pAnnotHandler);
+  m_mapType2Handler.SetAt(pAnnotHandler->GetType(), (void*)pAnnotHandler);
 }
 
-void CPDFSDK_AnnotHandlerMgr::UnRegisterAnnotHandler(IPDFSDK_AnnotHandler* pAnnotHandler)
-{
-    ASSERT(pAnnotHandler != NULL);
+void CPDFSDK_AnnotHandlerMgr::UnRegisterAnnotHandler(
+    IPDFSDK_AnnotHandler* pAnnotHandler) {
+  ASSERT(pAnnotHandler != NULL);
 
-    m_mapType2Handler.RemoveKey(pAnnotHandler->GetType());
+  m_mapType2Handler.RemoveKey(pAnnotHandler->GetType());
 
-    for (int i=0, sz=m_Handlers.GetSize(); i<sz; i++)
-    {
-        if (m_Handlers.GetAt(i) == pAnnotHandler)
-        {
-            m_Handlers.RemoveAt(i);
-            break;
-        }
+  for (int i = 0, sz = m_Handlers.GetSize(); i < sz; i++) {
+    if (m_Handlers.GetAt(i) == pAnnotHandler) {
+      m_Handlers.RemoveAt(i);
+      break;
     }
+  }
 }
 
-CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::NewAnnot(CPDF_Annot * pAnnot, CPDFSDK_PageView *pPageView)
-{
-    ASSERT(pAnnot != NULL);
-    ASSERT(pPageView != NULL);
+CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::NewAnnot(CPDF_Annot* pAnnot,
+                                                 CPDFSDK_PageView* pPageView) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pPageView != NULL);
 
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot->GetSubType()))
-    {
-        return pAnnotHandler->NewAnnot(pAnnot, pPageView);
-    }
+  if (IPDFSDK_AnnotHandler* pAnnotHandler =
+          GetAnnotHandler(pAnnot->GetSubType())) {
+    return pAnnotHandler->NewAnnot(pAnnot, pPageView);
+  }
 
-    return new CPDFSDK_BAAnnot(pAnnot, pPageView);
+  return new CPDFSDK_BAAnnot(pAnnot, pPageView);
 }
 
-CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::NewAnnot(IXFA_Widget* pAnnot, CPDFSDK_PageView* pPageView)
-{
-    ASSERT(pAnnot != NULL);
-    ASSERT(pPageView != NULL);
+CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::NewAnnot(IXFA_Widget* pAnnot,
+                                                 CPDFSDK_PageView* pPageView) {
+  ASSERT(pAnnot != NULL);
+  ASSERT(pPageView != NULL);
 
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(FSDK_XFAWIDGET_TYPENAME))
-    {
-        return pAnnotHandler->NewAnnot(pAnnot, pPageView);
-    }
+  if (IPDFSDK_AnnotHandler* pAnnotHandler =
+          GetAnnotHandler(FSDK_XFAWIDGET_TYPENAME)) {
+    return pAnnotHandler->NewAnnot(pAnnot, pPageView);
+  }
 
-    return NULL;
+  return NULL;
 }
 
-void CPDFSDK_AnnotHandlerMgr::ReleaseAnnot(CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pAnnot != NULL);
+void CPDFSDK_AnnotHandlerMgr::ReleaseAnnot(CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot != NULL);
 
-    pAnnot->GetPDFPage();
+  pAnnot->GetPDFPage();
 
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        pAnnotHandler->OnRelease(pAnnot);
-        pAnnotHandler->ReleaseAnnot(pAnnot);
-    }
-    else
-    {
-        delete (CPDFSDK_Annot*)pAnnot;
-    }
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    pAnnotHandler->OnRelease(pAnnot);
+    pAnnotHandler->ReleaseAnnot(pAnnot);
+  } else {
+    delete (CPDFSDK_Annot*)pAnnot;
+  }
 }
 
-void CPDFSDK_AnnotHandlerMgr::Annot_OnCreate(CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pAnnot != NULL);
+void CPDFSDK_AnnotHandlerMgr::Annot_OnCreate(CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot != NULL);
 
-    CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot();
+  CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot();
 
-    CPDFSDK_DateTime curTime;
-    pPDFAnnot->GetAnnotDict()->SetAtString("M", curTime.ToPDFDateTimeString());
-    pPDFAnnot->GetAnnotDict()->SetAtNumber("F", 0);
+  CPDFSDK_DateTime curTime;
+  pPDFAnnot->GetAnnotDict()->SetAtString("M", curTime.ToPDFDateTimeString());
+  pPDFAnnot->GetAnnotDict()->SetAtNumber("F", 0);
 
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        pAnnotHandler->OnCreate(pAnnot);
-    }
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    pAnnotHandler->OnCreate(pAnnot);
+  }
 }
 
-void CPDFSDK_AnnotHandlerMgr::Annot_OnLoad(CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pAnnot != NULL);
+void CPDFSDK_AnnotHandlerMgr::Annot_OnLoad(CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot != NULL);
 
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        pAnnotHandler->OnLoad(pAnnot);
-    }
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    pAnnotHandler->OnLoad(pAnnot);
+  }
 }
 
-IPDFSDK_AnnotHandler* CPDFSDK_AnnotHandlerMgr::GetAnnotHandler(CPDFSDK_Annot* pAnnot) const
-{
-    ASSERT(pAnnot != NULL);
-
-    CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot();
-    if (pPDFAnnot)
-        return GetAnnotHandler(pPDFAnnot->GetSubType());
-    else if (pAnnot->GetXFAWidget())
-        return GetAnnotHandler(FSDK_XFAWIDGET_TYPENAME);
-    return NULL;
-}
-
-IPDFSDK_AnnotHandler* CPDFSDK_AnnotHandlerMgr::GetAnnotHandler(const CFX_ByteString& sType) const
-{
-    void* pRet = NULL;
-    m_mapType2Handler.Lookup(sType, pRet);
-    return (IPDFSDK_AnnotHandler*)pRet;
-}
+IPDFSDK_AnnotHandler* CPDFSDK_AnnotHandlerMgr::GetAnnotHandler(
+    CPDFSDK_Annot* pAnnot) const {
+  ASSERT(pAnnot != NULL);
 
-void CPDFSDK_AnnotHandlerMgr::Annot_OnDraw(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot, CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,FX_DWORD dwFlags)
-{
-    ASSERT(pAnnot != NULL);
-
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        pAnnotHandler->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
-    }
-    else
-    {
-        if (!pAnnot->IsXFAField())
-            ((CPDFSDK_BAAnnot*)pAnnot)->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
-    }
-}
-
-
-FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonDown(CPDFSDK_PageView * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        return pAnnotHandler->OnLButtonDown(pPageView, pAnnot, nFlags, point);
-    }
-    return FALSE;
-}
-FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonUp(CPDFSDK_PageView * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
- {
-    ASSERT(pAnnot != NULL);
-
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        return pAnnotHandler->OnLButtonUp(pPageView, pAnnot, nFlags, point);
-    }
-    return FALSE;
- }
-FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonDblClk(CPDFSDK_PageView * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        return pAnnotHandler->OnLButtonDblClk(pPageView, pAnnot, nFlags, point);
-    }
-    return FALSE;
+  CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot();
+  if (pPDFAnnot)
+    return GetAnnotHandler(pPDFAnnot->GetSubType());
+  else if (pAnnot->GetXFAWidget())
+    return GetAnnotHandler(FSDK_XFAWIDGET_TYPENAME);
+  return NULL;
 }
-FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnMouseMove(CPDFSDK_PageView * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
 
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        return pAnnotHandler->OnMouseMove(pPageView, pAnnot, nFlags, point);
-    }
-    return FALSE;
+IPDFSDK_AnnotHandler* CPDFSDK_AnnotHandlerMgr::GetAnnotHandler(
+    const CFX_ByteString& sType) const {
+  void* pRet = NULL;
+  m_mapType2Handler.Lookup(sType, pRet);
+  return (IPDFSDK_AnnotHandler*)pRet;
 }
-FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnMouseWheel(CPDFSDK_PageView * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, short zDelta, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
 
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        return pAnnotHandler->OnMouseWheel(pPageView, pAnnot,nFlags,zDelta, point);
-    }
-    return FALSE;
+void CPDFSDK_AnnotHandlerMgr::Annot_OnDraw(CPDFSDK_PageView* pPageView,
+                                           CPDFSDK_Annot* pAnnot,
+                                           CFX_RenderDevice* pDevice,
+                                           CPDF_Matrix* pUser2Device,
+                                           FX_DWORD dwFlags) {
+  ASSERT(pAnnot != NULL);
+
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    pAnnotHandler->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
+  } else {
+    if (!pAnnot->IsXFAField())
+      ((CPDFSDK_BAAnnot*)pAnnot)
+          ->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
+  }
 }
-FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnRButtonDown(CPDFSDK_PageView * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
 
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        return pAnnotHandler->OnRButtonDown(pPageView, pAnnot, nFlags, point);
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonDown(
+    CPDFSDK_PageView* pPageView,
+    CPDFSDK_Annot* pAnnot,
+    FX_DWORD nFlags,
+    const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    return pAnnotHandler->OnLButtonDown(pPageView, pAnnot, nFlags, point);
+  }
+  return FALSE;
+}
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonUp(CPDFSDK_PageView* pPageView,
+                                                   CPDFSDK_Annot* pAnnot,
+                                                   FX_DWORD nFlags,
+                                                   const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    return pAnnotHandler->OnLButtonUp(pPageView, pAnnot, nFlags, point);
+  }
+  return FALSE;
+}
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonDblClk(
+    CPDFSDK_PageView* pPageView,
+    CPDFSDK_Annot* pAnnot,
+    FX_DWORD nFlags,
+    const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    return pAnnotHandler->OnLButtonDblClk(pPageView, pAnnot, nFlags, point);
+  }
+  return FALSE;
+}
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnMouseMove(CPDFSDK_PageView* pPageView,
+                                                   CPDFSDK_Annot* pAnnot,
+                                                   FX_DWORD nFlags,
+                                                   const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    return pAnnotHandler->OnMouseMove(pPageView, pAnnot, nFlags, point);
+  }
+  return FALSE;
+}
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnMouseWheel(CPDFSDK_PageView* pPageView,
+                                                    CPDFSDK_Annot* pAnnot,
+                                                    FX_DWORD nFlags,
+                                                    short zDelta,
+                                                    const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    return pAnnotHandler->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta,
+                                       point);
+  }
+  return FALSE;
+}
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnRButtonDown(
+    CPDFSDK_PageView* pPageView,
+    CPDFSDK_Annot* pAnnot,
+    FX_DWORD nFlags,
+    const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    return pAnnotHandler->OnRButtonDown(pPageView, pAnnot, nFlags, point);
+  }
+  return FALSE;
+}
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnRButtonUp(CPDFSDK_PageView* pPageView,
+                                                   CPDFSDK_Annot* pAnnot,
+                                                   FX_DWORD nFlags,
+                                                   const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    return pAnnotHandler->OnRButtonUp(pPageView, pAnnot, nFlags, point);
+  }
+  return FALSE;
+}
+
+void CPDFSDK_AnnotHandlerMgr::Annot_OnMouseEnter(CPDFSDK_PageView* pPageView,
+                                                 CPDFSDK_Annot* pAnnot,
+                                                 FX_DWORD nFlag) {
+  ASSERT(pAnnot != NULL);
+
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    pAnnotHandler->OnMouseEnter(pPageView, pAnnot, nFlag);
+  }
+  return;
+}
+
+void CPDFSDK_AnnotHandlerMgr::Annot_OnMouseExit(CPDFSDK_PageView* pPageView,
+                                                CPDFSDK_Annot* pAnnot,
+                                                FX_DWORD nFlag) {
+  ASSERT(pAnnot != NULL);
+
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    pAnnotHandler->OnMouseExit(pPageView, pAnnot, nFlag);
+  }
+  return;
+}
+
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnChar(CPDFSDK_Annot* pAnnot,
+                                              FX_DWORD nChar,
+                                              FX_DWORD nFlags) {
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    return pAnnotHandler->OnChar(pAnnot, nChar, nFlags);
+  }
+  return FALSE;
+}
+
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKeyDown(CPDFSDK_Annot* pAnnot,
+                                                 int nKeyCode,
+                                                 int nFlag) {
+  if (!m_pApp->FFI_IsCTRLKeyDown(nFlag) && !m_pApp->FFI_IsALTKeyDown(nFlag)) {
+    CPDFSDK_PageView* pPage = pAnnot->GetPageView();
+    CPDFSDK_Annot* pFocusAnnot = pPage->GetFocusAnnot();
+    if (pFocusAnnot && (nKeyCode == FWL_VKEY_Tab)) {
+      CPDFSDK_Annot* pNext =
+          GetNextAnnot(pFocusAnnot, !m_pApp->FFI_IsSHIFTKeyDown(nFlag));
+
+      if (pNext && pNext != pFocusAnnot) {
+        CPDFSDK_Document* pDocument = pPage->GetSDKDocument();
+        pDocument->SetFocusAnnot(pNext);
+        return TRUE;
+      }
     }
-    return FALSE;
-}
-FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnRButtonUp(CPDFSDK_PageView * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
+  }
 
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        return pAnnotHandler->OnRButtonUp(pPageView, pAnnot, nFlags, point);
-    }
-    return FALSE;
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    return pAnnotHandler->OnKeyDown(pAnnot, nKeyCode, nFlag);
+  }
+  return FALSE;
 }
-
-void CPDFSDK_AnnotHandlerMgr::Annot_OnMouseEnter(CPDFSDK_PageView * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
-{
-    ASSERT(pAnnot != NULL);
-
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        pAnnotHandler->OnMouseEnter(pPageView, pAnnot, nFlag);
-    }
-    return ;
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKeyUp(CPDFSDK_Annot* pAnnot,
+                                               int nKeyCode,
+                                               int nFlag) {
+  return FALSE;
 }
 
-void CPDFSDK_AnnotHandlerMgr::Annot_OnMouseExit(CPDFSDK_PageView * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
-{
-    ASSERT(pAnnot != NULL);
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus(CPDFSDK_Annot* pAnnot,
+                                                  FX_DWORD nFlag) {
+  ASSERT(pAnnot != NULL);
 
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        pAnnotHandler->OnMouseExit(pPageView, pAnnot, nFlag);
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    if (pAnnotHandler->OnSetFocus(pAnnot, nFlag)) {
+      CPDFSDK_PageView* pPage = pAnnot->GetPageView();
+      pPage->GetSDKDocument();
+      return TRUE;
     }
-    return;
+  }
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnChar(CPDFSDK_Annot* pAnnot, FX_DWORD nChar, FX_DWORD nFlags)
-{
-
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        return pAnnotHandler->OnChar(pAnnot,nChar, nFlags);
-    }
-    return FALSE;
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKillFocus(CPDFSDK_Annot* pAnnot,
+                                                   FX_DWORD nFlag) {
+  ASSERT(pAnnot);
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
+    return pAnnotHandler->OnKillFocus(pAnnot, nFlag);
 
+  return FALSE;
 }
 
-FX_BOOL         CPDFSDK_AnnotHandlerMgr::Annot_OnKeyDown(CPDFSDK_Annot* pAnnot, int nKeyCode, int nFlag)
-{
-
-    if (!m_pApp->FFI_IsCTRLKeyDown(nFlag) && !m_pApp->FFI_IsALTKeyDown(nFlag))
-    {
-        CPDFSDK_PageView* pPage = pAnnot->GetPageView();
-        CPDFSDK_Annot* pFocusAnnot = pPage->GetFocusAnnot();
-        if (pFocusAnnot && (nKeyCode == FWL_VKEY_Tab))
-        {
-            CPDFSDK_Annot* pNext = GetNextAnnot(pFocusAnnot, !m_pApp->FFI_IsSHIFTKeyDown(nFlag));
-
-            if(pNext && pNext != pFocusAnnot)
-            {
-                CPDFSDK_Document* pDocument = pPage->GetSDKDocument();
-                pDocument->SetFocusAnnot(pNext);
-                return TRUE;
-            }
-        }
-    }
-
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        return pAnnotHandler->OnKeyDown(pAnnot,nKeyCode, nFlag);
-    }
-    return FALSE;
-}
-FX_BOOL         CPDFSDK_AnnotHandlerMgr::Annot_OnKeyUp(CPDFSDK_Annot* pAnnot, int nKeyCode, int nFlag)
-{
-    return FALSE;
-}
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnChangeFocus(
+    CPDFSDK_Annot* pSetAnnot,
+    CPDFSDK_Annot* pKillAnnot) {
+  FX_BOOL bXFA = (pSetAnnot && pSetAnnot->GetXFAWidget()) ||
+                 (pKillAnnot && pKillAnnot->GetXFAWidget());
 
-FX_BOOL         CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
-{
-    ASSERT(pAnnot != NULL);
+  if (bXFA) {
+    if (IPDFSDK_AnnotHandler* pXFAAnnotHandler =
+            GetAnnotHandler(FSDK_XFAWIDGET_TYPENAME))
+      return pXFAAnnotHandler->OnXFAChangedFocus(pKillAnnot, pSetAnnot);
+  }
 
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        if (pAnnotHandler->OnSetFocus(pAnnot, nFlag))
-        {
-            CPDFSDK_PageView* pPage = pAnnot->GetPageView();
-            pPage->GetSDKDocument();
-            return TRUE;
-        }
-    }
-    return FALSE;
+  return TRUE;
 }
 
-FX_BOOL         CPDFSDK_AnnotHandlerMgr::Annot_OnKillFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
-{
-    ASSERT(pAnnot);
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-        return pAnnotHandler->OnKillFocus(pAnnot, nFlag);
+CPDF_Rect CPDFSDK_AnnotHandlerMgr::Annot_OnGetViewBBox(
+    CPDFSDK_PageView* pPageView,
+    CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot);
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
+    return pAnnotHandler->GetViewBBox(pPageView, pAnnot);
 
-    return FALSE;
+  return pAnnot->GetRect();
 }
 
-FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnChangeFocus(CPDFSDK_Annot* pSetAnnot,CPDFSDK_Annot* pKillAnnot)
-{
-    FX_BOOL bXFA = (pSetAnnot && pSetAnnot->GetXFAWidget()) ||
-        (pKillAnnot && pKillAnnot->GetXFAWidget());
-
-    if (bXFA)
-    {
-        if (IPDFSDK_AnnotHandler* pXFAAnnotHandler = GetAnnotHandler(FSDK_XFAWIDGET_TYPENAME))
-            return pXFAAnnotHandler->OnXFAChangedFocus(pKillAnnot, pSetAnnot);
-    }
-
-    return TRUE;
+FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnHitTest(CPDFSDK_PageView* pPageView,
+                                                 CPDFSDK_Annot* pAnnot,
+                                                 const CPDF_Point& point) {
+  ASSERT(pAnnot);
+  if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
+    if (pAnnotHandler->CanAnswer(pAnnot))
+      return pAnnotHandler->HitTest(pPageView, pAnnot, point);
+  }
+  return FALSE;
 }
 
-CPDF_Rect   CPDFSDK_AnnotHandlerMgr::Annot_OnGetViewBBox(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pAnnot);
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-        return pAnnotHandler->GetViewBBox(pPageView, pAnnot);
+CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::GetNextAnnot(CPDFSDK_Annot* pSDKAnnot,
+                                                     FX_BOOL bNext) {
+  CPDFSDK_PageView* pPageView = pSDKAnnot->GetPageView();
+  CPDFXFA_Page* pPage = pPageView->GetPDFXFAPage();
+  if (pPage == NULL)
+    return NULL;
+  if (pPage->GetPDFPage()) {  // for pdf annots.
+    CBA_AnnotIterator ai(pSDKAnnot->GetPageView(), pSDKAnnot->GetType(), "");
+    CPDFSDK_Annot* pNext =
+        bNext ? ai.GetNextAnnot(pSDKAnnot) : ai.GetPrevAnnot(pSDKAnnot);
+    return pNext;
+  }
+  // for xfa annots
+  IXFA_WidgetIterator* pWidgetIterator =
+      pPage->GetXFAPageView()->CreateWidgetIterator(
+          XFA_TRAVERSEWAY_Tranvalse, XFA_WIDGETFILTER_Visible |
+                                         XFA_WIDGETFILTER_Viewable |
+                                         XFA_WIDGETFILTER_Field);
+  if (pWidgetIterator == NULL)
+    return NULL;
+  if (pWidgetIterator->GetCurrentWidget() != pSDKAnnot->GetXFAWidget())
+    pWidgetIterator->SetCurrentWidget(pSDKAnnot->GetXFAWidget());
+  IXFA_Widget* hNextFocus = NULL;
+  hNextFocus =
+      bNext ? pWidgetIterator->MoveToNext() : pWidgetIterator->MoveToPrevious();
+  if (hNextFocus == NULL && pSDKAnnot != NULL)
+    hNextFocus = pWidgetIterator->MoveToFirst();
 
-    return pAnnot->GetRect();
+  pWidgetIterator->Release();
+  return pPageView->GetAnnotByXFAWidget(hNextFocus);
 }
 
-FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnHitTest(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, const CPDF_Point& point)
-{
-    ASSERT(pAnnot);
-    if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
-    {
-        if (pAnnotHandler->CanAnswer(pAnnot))
-            return pAnnotHandler->HitTest(pPageView, pAnnot, point);
-    }
+FX_BOOL CPDFSDK_BFAnnotHandler::CanAnswer(CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot->GetType() == "Widget");
+  if (pAnnot->GetSubType() == BFFT_SIGNATURE)
     return FALSE;
-}
 
-CPDFSDK_Annot*  CPDFSDK_AnnotHandlerMgr::GetNextAnnot(CPDFSDK_Annot* pSDKAnnot,FX_BOOL bNext)
-{
-    CPDFSDK_PageView* pPageView =  pSDKAnnot->GetPageView();
-    CPDFXFA_Page* pPage = pPageView->GetPDFXFAPage();
-    if (pPage == NULL)
-        return NULL;
-    if (pPage->GetPDFPage()) { // for pdf annots.
-        CBA_AnnotIterator ai(pSDKAnnot->GetPageView(), pSDKAnnot->GetType(), "");
-        CPDFSDK_Annot* pNext = bNext ?
-        ai.GetNextAnnot(pSDKAnnot) :
-        ai.GetPrevAnnot(pSDKAnnot);
-        return pNext;
-    }
-    // for xfa annots
-    IXFA_WidgetIterator* pWidgetIterator = pPage->GetXFAPageView()->CreateWidgetIterator(XFA_TRAVERSEWAY_Tranvalse, XFA_WIDGETFILTER_Visible | XFA_WIDGETFILTER_Viewable | XFA_WIDGETFILTER_Field);
-    if (pWidgetIterator == NULL)
-        return  NULL;
-    if (pWidgetIterator->GetCurrentWidget() != pSDKAnnot->GetXFAWidget())
-        pWidgetIterator->SetCurrentWidget(pSDKAnnot->GetXFAWidget());
-    IXFA_Widget* hNextFocus = NULL;
-    hNextFocus = bNext?pWidgetIterator->MoveToNext():pWidgetIterator->MoveToPrevious();
-    if (hNextFocus == NULL && pSDKAnnot != NULL)
-        hNextFocus = pWidgetIterator->MoveToFirst();
-
-    pWidgetIterator->Release();
-    return pPageView->GetAnnotByXFAWidget(hNextFocus);
-}
-
-FX_BOOL CPDFSDK_BFAnnotHandler::CanAnswer(CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pAnnot->GetType() == "Widget");
-    if (pAnnot->GetSubType() == BFFT_SIGNATURE)
-        return FALSE;
-
-    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-    if (!pWidget->IsVisible())
-            return FALSE;
+  CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+  if (!pWidget->IsVisible())
+    return FALSE;
 
-    int nFieldFlags = pWidget->GetFieldFlags();
-    if ((nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY)
-        return FALSE;
+  int nFieldFlags = pWidget->GetFieldFlags();
+  if ((nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY)
+    return FALSE;
 
-    if (pWidget->GetFieldType() == FIELDTYPE_PUSHBUTTON)
-        return TRUE;
+  if (pWidget->GetFieldType() == FIELDTYPE_PUSHBUTTON)
+    return TRUE;
 
-    CPDF_Page* pPage = pWidget->GetPDFPage();
-    CPDF_Document* pDocument = pPage->m_pDocument;
-    FX_DWORD dwPermissions = pDocument->GetUserPermissions();
-    return (dwPermissions & FPDFPERM_FILL_FORM) ||
-            (dwPermissions & FPDFPERM_ANNOT_FORM);
+  CPDF_Page* pPage = pWidget->GetPDFPage();
+  CPDF_Document* pDocument = pPage->m_pDocument;
+  FX_DWORD dwPermissions = pDocument->GetUserPermissions();
+  return (dwPermissions & FPDFPERM_FILL_FORM) ||
+         (dwPermissions & FPDFPERM_ANNOT_FORM);
 }
 
-CPDFSDK_Annot* CPDFSDK_BFAnnotHandler::NewAnnot(CPDF_Annot* pAnnot, CPDFSDK_PageView* pPage)
-{
-    CPDFSDK_Document* pSDKDoc = m_pApp->GetSDKDocument();
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pSDKDoc->GetInterForm();
-    CPDF_FormControl* pCtrl = CPDFSDK_Widget::GetFormControl(pInterForm->GetInterForm(), pAnnot->GetAnnotDict());
-    if (!pCtrl)
-        return nullptr;
+CPDFSDK_Annot* CPDFSDK_BFAnnotHandler::NewAnnot(CPDF_Annot* pAnnot,
+                                                CPDFSDK_PageView* pPage) {
+  CPDFSDK_Document* pSDKDoc = m_pApp->GetSDKDocument();
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pSDKDoc->GetInterForm();
+  CPDF_FormControl* pCtrl = CPDFSDK_Widget::GetFormControl(
+      pInterForm->GetInterForm(), pAnnot->GetAnnotDict());
+  if (!pCtrl)
+    return nullptr;
 
-    CPDFSDK_Widget* pWidget = new CPDFSDK_Widget(pAnnot, pPage, pInterForm);
-    pInterForm->AddMap(pCtrl, pWidget);
-    CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm();
-    if (pPDFInterForm && pPDFInterForm->NeedConstructAP())
-        pWidget->ResetAppearance(nullptr, FALSE);
+  CPDFSDK_Widget* pWidget = new CPDFSDK_Widget(pAnnot, pPage, pInterForm);
+  pInterForm->AddMap(pCtrl, pWidget);
+  CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm();
+  if (pPDFInterForm && pPDFInterForm->NeedConstructAP())
+    pWidget->ResetAppearance(nullptr, FALSE);
 
-    return pWidget;
+  return pWidget;
 }
 
-CPDFSDK_Annot*      CPDFSDK_BFAnnotHandler::NewAnnot(IXFA_Widget* hWidget, CPDFSDK_PageView* pPage)
-{
-    return NULL;
+CPDFSDK_Annot* CPDFSDK_BFAnnotHandler::NewAnnot(IXFA_Widget* hWidget,
+                                                CPDFSDK_PageView* pPage) {
+  return NULL;
 }
 
-void CPDFSDK_BFAnnotHandler::ReleaseAnnot(CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pAnnot != NULL);
+void CPDFSDK_BFAnnotHandler::ReleaseAnnot(CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot != NULL);
 
-    if (m_pFormFiller)
-        m_pFormFiller->OnDelete(pAnnot);
+  if (m_pFormFiller)
+    m_pFormFiller->OnDelete(pAnnot);
 
-    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-    CPDFSDK_InterForm* pInterForm = pWidget->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+  CPDFSDK_InterForm* pInterForm = pWidget->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    CPDF_FormControl* pCtrol = pWidget->GetFormControl();
-    pInterForm->RemoveMap(pCtrol);
+  CPDF_FormControl* pCtrol = pWidget->GetFormControl();
+  pInterForm->RemoveMap(pCtrol);
 
-
-    delete pWidget;
-}
-
-
-void CPDFSDK_BFAnnotHandler::OnDraw(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,  FX_DWORD dwFlags)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
-
-    if (sSubType == BFFT_SIGNATURE)
-    {
-        ((CPDFSDK_BAAnnot*)pAnnot)->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
-    }
-    else
-    {
-        if (m_pFormFiller)
-        {
-            m_pFormFiller->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
-        }
-    }
+  delete pWidget;
 }
 
-void CPDFSDK_BFAnnotHandler::OnMouseEnter(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+void CPDFSDK_BFAnnotHandler::OnDraw(CPDFSDK_PageView* pPageView,
+                                    CPDFSDK_Annot* pAnnot,
+                                    CFX_RenderDevice* pDevice,
+                                    CPDF_Matrix* pUser2Device,
+                                    FX_DWORD dwFlags) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-             m_pFormFiller->OnMouseEnter(pPageView, pAnnot, nFlag);
+  if (sSubType == BFFT_SIGNATURE) {
+    ((CPDFSDK_BAAnnot*)pAnnot)
+        ->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
+  } else {
+    if (m_pFormFiller) {
+      m_pFormFiller->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
     }
-
-
+  }
 }
-void CPDFSDK_BFAnnotHandler::OnMouseExit(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-             m_pFormFiller->OnMouseExit(pPageView, pAnnot, nFlag);
-    }
+void CPDFSDK_BFAnnotHandler::OnMouseEnter(CPDFSDK_PageView* pPageView,
+                                          CPDFSDK_Annot* pAnnot,
+                                          FX_DWORD nFlag) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      m_pFormFiller->OnMouseEnter(pPageView, pAnnot, nFlag);
+  }
 }
-FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonDown(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+void CPDFSDK_BFAnnotHandler::OnMouseExit(CPDFSDK_PageView* pPageView,
+                                         CPDFSDK_Annot* pAnnot,
+                                         FX_DWORD nFlag) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            return m_pFormFiller->OnLButtonDown(pPageView, pAnnot, nFlags, point);
-    }
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      m_pFormFiller->OnMouseExit(pPageView, pAnnot, nFlag);
+  }
+}
+FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonDown(CPDFSDK_PageView* pPageView,
+                                              CPDFSDK_Annot* pAnnot,
+                                              FX_DWORD nFlags,
+                                              const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
+
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      return m_pFormFiller->OnLButtonDown(pPageView, pAnnot, nFlags, point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonUp(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonUp(CPDFSDK_PageView* pPageView,
+                                            CPDFSDK_Annot* pAnnot,
+                                            FX_DWORD nFlags,
+                                            const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            return m_pFormFiller->OnLButtonUp(pPageView, pAnnot, nFlags, point);
-    }
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      return m_pFormFiller->OnLButtonUp(pPageView, pAnnot, nFlags, point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonDblClk(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonDblClk(CPDFSDK_PageView* pPageView,
+                                                CPDFSDK_Annot* pAnnot,
+                                                FX_DWORD nFlags,
+                                                const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            return m_pFormFiller->OnLButtonDblClk(pPageView, pAnnot, nFlags, point);
-    }
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      return m_pFormFiller->OnLButtonDblClk(pPageView, pAnnot, nFlags, point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_BFAnnotHandler::OnMouseMove(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+FX_BOOL CPDFSDK_BFAnnotHandler::OnMouseMove(CPDFSDK_PageView* pPageView,
+                                            CPDFSDK_Annot* pAnnot,
+                                            FX_DWORD nFlags,
+                                            const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            return m_pFormFiller->OnMouseMove(pPageView, pAnnot, nFlags, point);
-    }
-
-    return FALSE;
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      return m_pFormFiller->OnMouseMove(pPageView, pAnnot, nFlags, point);
+  }
 
+  return FALSE;
 }
 
+FX_BOOL CPDFSDK_BFAnnotHandler::OnMouseWheel(CPDFSDK_PageView* pPageView,
+                                             CPDFSDK_Annot* pAnnot,
+                                             FX_DWORD nFlags,
+                                             short zDelta,
+                                             const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-FX_BOOL CPDFSDK_BFAnnotHandler::OnMouseWheel(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, short zDelta, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
-
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            return m_pFormFiller->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta,point);
-    }
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      return m_pFormFiller->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta,
+                                         point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_BFAnnotHandler::OnRButtonDown(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+FX_BOOL CPDFSDK_BFAnnotHandler::OnRButtonDown(CPDFSDK_PageView* pPageView,
+                                              CPDFSDK_Annot* pAnnot,
+                                              FX_DWORD nFlags,
+                                              const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            return m_pFormFiller->OnRButtonDown(pPageView, pAnnot, nFlags, point);
-    }
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      return m_pFormFiller->OnRButtonDown(pPageView, pAnnot, nFlags, point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
-FX_BOOL CPDFSDK_BFAnnotHandler::OnRButtonUp(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+FX_BOOL CPDFSDK_BFAnnotHandler::OnRButtonUp(CPDFSDK_PageView* pPageView,
+                                            CPDFSDK_Annot* pAnnot,
+                                            FX_DWORD nFlags,
+                                            const CPDF_Point& point) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            return m_pFormFiller->OnRButtonUp(pPageView, pAnnot, nFlags, point);
-    }
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      return m_pFormFiller->OnRButtonUp(pPageView, pAnnot, nFlags, point);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_BFAnnotHandler::OnChar(CPDFSDK_Annot* pAnnot, FX_DWORD nChar, FX_DWORD nFlags)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+FX_BOOL CPDFSDK_BFAnnotHandler::OnChar(CPDFSDK_Annot* pAnnot,
+                                       FX_DWORD nChar,
+                                       FX_DWORD nFlags) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            return m_pFormFiller->OnChar(pAnnot,nChar, nFlags);
-    }
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      return m_pFormFiller->OnChar(pAnnot, nChar, nFlags);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_BFAnnotHandler::OnKeyDown(CPDFSDK_Annot* pAnnot, int nKeyCode, int nFlag)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+FX_BOOL CPDFSDK_BFAnnotHandler::OnKeyDown(CPDFSDK_Annot* pAnnot,
+                                          int nKeyCode,
+                                          int nFlag) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            return m_pFormFiller->OnKeyDown(pAnnot,nKeyCode, nFlag);
-    }
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      return m_pFormFiller->OnKeyDown(pAnnot, nKeyCode, nFlag);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_BFAnnotHandler::OnKeyUp(CPDFSDK_Annot* pAnnot, int nKeyCode, int nFlag)
-{
-
-    return FALSE;
+FX_BOOL CPDFSDK_BFAnnotHandler::OnKeyUp(CPDFSDK_Annot* pAnnot,
+                                        int nKeyCode,
+                                        int nFlag) {
+  return FALSE;
 }
-void    CPDFSDK_BFAnnotHandler::OnCreate(CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+void CPDFSDK_BFAnnotHandler::OnCreate(CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            m_pFormFiller->OnCreate(pAnnot);
-    }
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      m_pFormFiller->OnCreate(pAnnot);
+  }
 }
 
-void CPDFSDK_BFAnnotHandler::OnLoad(CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pAnnot != NULL);
+void CPDFSDK_BFAnnotHandler::OnLoad(CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot != NULL);
 
-    CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
-    ASSERT(pPageView != NULL);
+  CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
+  ASSERT(pPageView != NULL);
 
-    CPDFSDK_Document* pSDKDoc = pPageView->GetSDKDocument();
-    ASSERT(pSDKDoc != NULL);
+  CPDFSDK_Document* pSDKDoc = pPageView->GetSDKDocument();
+  ASSERT(pSDKDoc != NULL);
 
-    CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
-    ASSERT(pDoc != NULL);
+  CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
+  ASSERT(pDoc != NULL);
 
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
+    if (!pWidget->IsAppearanceValid())
+      pWidget->ResetAppearance(NULL, FALSE);
+
+    int nFieldType = pWidget->GetFieldType();
+    if (nFieldType == FIELDTYPE_TEXTFIELD || nFieldType == FIELDTYPE_COMBOBOX) {
+      FX_BOOL bFormated = FALSE;
+      CFX_WideString sValue = pWidget->OnFormat(bFormated);
+      if (bFormated && nFieldType == FIELDTYPE_COMBOBOX) {
+        pWidget->ResetAppearance(sValue.c_str(), FALSE);
+      }
     }
-    else
-    {
-        CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
-        if (!pWidget->IsAppearanceValid())
-            pWidget->ResetAppearance(NULL, FALSE);
-
-        int nFieldType = pWidget->GetFieldType();
-        if (nFieldType == FIELDTYPE_TEXTFIELD || nFieldType == FIELDTYPE_COMBOBOX)
-        {
-            FX_BOOL bFormated = FALSE;
-            CFX_WideString sValue = pWidget->OnFormat(bFormated);
-            if (bFormated && nFieldType == FIELDTYPE_COMBOBOX)
-            {
-                pWidget->ResetAppearance(sValue.c_str(), FALSE);
-            }
-        }
-
-        if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA)
-        {
-            if (!pWidget->IsAppearanceValid() && !pWidget->GetValue().IsEmpty())
-                pWidget->ResetAppearance(FALSE);
-        }
-
-
-        if (m_pFormFiller)
-            m_pFormFiller->OnLoad(pAnnot);
+
+    if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) {
+      if (!pWidget->IsAppearanceValid() && !pWidget->GetValue().IsEmpty())
+        pWidget->ResetAppearance(FALSE);
     }
+
+    if (m_pFormFiller)
+      m_pFormFiller->OnLoad(pAnnot);
+  }
 }
 
-FX_BOOL CPDFSDK_BFAnnotHandler::OnSetFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+FX_BOOL CPDFSDK_BFAnnotHandler::OnSetFocus(CPDFSDK_Annot* pAnnot,
+                                           FX_DWORD nFlag) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            return m_pFormFiller->OnSetFocus(pAnnot,nFlag);
-    }
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      return m_pFormFiller->OnSetFocus(pAnnot, nFlag);
+  }
 
-    return TRUE;
+  return TRUE;
 }
-FX_BOOL CPDFSDK_BFAnnotHandler::OnKillFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+FX_BOOL CPDFSDK_BFAnnotHandler::OnKillFocus(CPDFSDK_Annot* pAnnot,
+                                            FX_DWORD nFlag) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            return m_pFormFiller->OnKillFocus(pAnnot,nFlag);
-    }
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      return m_pFormFiller->OnKillFocus(pAnnot, nFlag);
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-CPDF_Rect CPDFSDK_BFAnnotHandler::GetViewBBox(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pAnnot != NULL);
-    CFX_ByteString sSubType = pAnnot->GetSubType();
+CPDF_Rect CPDFSDK_BFAnnotHandler::GetViewBBox(CPDFSDK_PageView* pPageView,
+                                              CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot != NULL);
+  CFX_ByteString sSubType = pAnnot->GetSubType();
 
-    if (sSubType == BFFT_SIGNATURE)
-    {
-    }
-    else
-    {
-        if (m_pFormFiller)
-            return m_pFormFiller->GetViewBBox(pPageView, pAnnot);
-
-    }
+  if (sSubType == BFFT_SIGNATURE) {
+  } else {
+    if (m_pFormFiller)
+      return m_pFormFiller->GetViewBBox(pPageView, pAnnot);
+  }
 
-    return CPDF_Rect(0,0,0,0);
+  return CPDF_Rect(0, 0, 0, 0);
 }
 
-FX_BOOL CPDFSDK_BFAnnotHandler::HitTest(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, const CPDF_Point& point)
-{
-    ASSERT(pPageView);
-    ASSERT(pAnnot);
+FX_BOOL CPDFSDK_BFAnnotHandler::HitTest(CPDFSDK_PageView* pPageView,
+                                        CPDFSDK_Annot* pAnnot,
+                                        const CPDF_Point& point) {
+  ASSERT(pPageView);
+  ASSERT(pAnnot);
 
-    CPDF_Rect rect = GetViewBBox(pPageView, pAnnot);
-    return rect.Contains(point.x, point.y);
+  CPDF_Rect rect = GetViewBBox(pPageView, pAnnot);
+  return rect.Contains(point.x, point.y);
 }
 
-//CPDFSDK_XFAAnnotHandler
+// CPDFSDK_XFAAnnotHandler
 
-#define FWL_WGTHITTEST_Unknown          0
-#define FWL_WGTHITTEST_Client           1 //arrow
-#define FWL_WGTHITTEST_Titlebar         11 //caption
-#define FWL_WGTHITTEST_HScrollBar       15
-#define FWL_WGTHITTEST_VScrollBar       16
-#define FWL_WGTHITTEST_Border           17
-#define FWL_WGTHITTEST_Edit             19
-#define FWL_WGTHITTEST_HyperLink        20
+#define FWL_WGTHITTEST_Unknown 0
+#define FWL_WGTHITTEST_Client 1  // arrow
+#define FWL_WGTHITTEST_Titlebar 11  // caption
+#define FWL_WGTHITTEST_HScrollBar 15
+#define FWL_WGTHITTEST_VScrollBar 16
+#define FWL_WGTHITTEST_Border 17
+#define FWL_WGTHITTEST_Edit 19
+#define FWL_WGTHITTEST_HyperLink 20
 
-CPDFSDK_XFAAnnotHandler::CPDFSDK_XFAAnnotHandler(CPDFDoc_Environment* pApp) :
-    m_pApp(pApp)
-{
+CPDFSDK_XFAAnnotHandler::CPDFSDK_XFAAnnotHandler(CPDFDoc_Environment* pApp)
+    : m_pApp(pApp) {}
 
+CPDFSDK_Annot* CPDFSDK_XFAAnnotHandler::NewAnnot(IXFA_Widget* pAnnot,
+                                                 CPDFSDK_PageView* pPage) {
+  CPDFSDK_Document* pSDKDoc = m_pApp->GetSDKDocument();
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pSDKDoc->GetInterForm();
+  CPDFSDK_XFAWidget* pWidget = new CPDFSDK_XFAWidget(pAnnot, pPage, pInterForm);
+  pInterForm->AddXFAMap(pAnnot, pWidget);
+  return pWidget;
 }
 
-CPDFSDK_Annot* CPDFSDK_XFAAnnotHandler::NewAnnot(IXFA_Widget* pAnnot, CPDFSDK_PageView* pPage)
-{
-    CPDFSDK_Document* pSDKDoc = m_pApp->GetSDKDocument();
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pSDKDoc->GetInterForm();
-    CPDFSDK_XFAWidget* pWidget = new CPDFSDK_XFAWidget(pAnnot, pPage, pInterForm);
-    pInterForm->AddXFAMap(pAnnot, pWidget);
-    return pWidget;
+FX_BOOL CPDFSDK_XFAAnnotHandler::CanAnswer(CPDFSDK_Annot* pAnnot) {
+  return pAnnot->GetXFAWidget() != NULL;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::CanAnswer(CPDFSDK_Annot* pAnnot)
-{
-    return pAnnot->GetXFAWidget() != NULL;
-}
-
-void CPDFSDK_XFAAnnotHandler::OnDraw(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, FX_DWORD dwFlags)
-{
-    ASSERT(pPageView != NULL);
-    ASSERT(pAnnot != NULL);
+void CPDFSDK_XFAAnnotHandler::OnDraw(CPDFSDK_PageView* pPageView,
+                                     CPDFSDK_Annot* pAnnot,
+                                     CFX_RenderDevice* pDevice,
+                                     CPDF_Matrix* pUser2Device,
+                                     FX_DWORD dwFlags) {
+  ASSERT(pPageView != NULL);
+  ASSERT(pAnnot != NULL);
 
-    CPDFSDK_Document* pSDKDoc = pPageView->GetSDKDocument();
-    ASSERT(pSDKDoc != NULL);
+  CPDFSDK_Document* pSDKDoc = pPageView->GetSDKDocument();
+  ASSERT(pSDKDoc != NULL);
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    CFX_Graphics gs;
-    gs.Create(pDevice);
+  CFX_Graphics gs;
+  gs.Create(pDevice);
 
-    CFX_Matrix mt;
-    mt = *(CFX_Matrix*)pUser2Device;
+  CFX_Matrix mt;
+  mt = *(CFX_Matrix*)pUser2Device;
 
-    IXFA_Widget* hWidget = pAnnot->GetXFAWidget();
-    ASSERT(hWidget != NULL);
+  IXFA_Widget* hWidget = pAnnot->GetXFAWidget();
+  ASSERT(hWidget != NULL);
 
-    FX_BOOL bIsHighlight = FALSE;
-    if (pSDKDoc->GetFocusAnnot() != pAnnot)
-        bIsHighlight = TRUE;
+  FX_BOOL bIsHighlight = FALSE;
+  if (pSDKDoc->GetFocusAnnot() != pAnnot)
+    bIsHighlight = TRUE;
 
-    pWidgetHandler->RenderWidget(pAnnot->GetXFAWidget(), &gs, &mt, bIsHighlight);
-
-    // to do highlight and shadow
+  pWidgetHandler->RenderWidget(pAnnot->GetXFAWidget(), &gs, &mt, bIsHighlight);
 
+  // to do highlight and shadow
 }
 
-void CPDFSDK_XFAAnnotHandler::ReleaseAnnot(CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pAnnot != NULL);
+void CPDFSDK_XFAAnnotHandler::ReleaseAnnot(CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot != NULL);
 
-    CPDFSDK_XFAWidget* pWidget = (CPDFSDK_XFAWidget*)pAnnot;
-    CPDFSDK_InterForm* pInterForm = pWidget->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  CPDFSDK_XFAWidget* pWidget = (CPDFSDK_XFAWidget*)pAnnot;
+  CPDFSDK_InterForm* pInterForm = pWidget->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    pInterForm->RemoveXFAMap(pWidget->GetXFAWidget());
+  pInterForm->RemoveXFAMap(pWidget->GetXFAWidget());
 
-    delete pWidget;
+  delete pWidget;
 }
 
-CPDF_Rect CPDFSDK_XFAAnnotHandler::GetViewBBox(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pAnnot != NULL);
+CPDF_Rect CPDFSDK_XFAAnnotHandler::GetViewBBox(CPDFSDK_PageView* pPageView,
+                                               CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot != NULL);
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    XFA_ELEMENT eType = pWidgetHandler->GetDataAcc(pAnnot->GetXFAWidget())->GetUIType();
-    CFX_RectF rcBBox;
-    if (eType == XFA_ELEMENT_Signature)
-        pWidgetHandler->GetBBox (pAnnot->GetXFAWidget(), rcBBox, XFA_WIDGETSTATUS_Visible, TRUE);
-    else
-        pWidgetHandler->GetBBox (pAnnot->GetXFAWidget(), rcBBox, 0);
+  XFA_ELEMENT eType =
+      pWidgetHandler->GetDataAcc(pAnnot->GetXFAWidget())->GetUIType();
+  CFX_RectF rcBBox;
+  if (eType == XFA_ELEMENT_Signature)
+    pWidgetHandler->GetBBox(pAnnot->GetXFAWidget(), rcBBox,
+                            XFA_WIDGETSTATUS_Visible, TRUE);
+  else
+    pWidgetHandler->GetBBox(pAnnot->GetXFAWidget(), rcBBox, 0);
 
-    CFX_FloatRect rcWidget(rcBBox.left, rcBBox.top, rcBBox.left + rcBBox.width, rcBBox.top+rcBBox.height);
-    rcWidget.left -= 1.0f;
-    rcWidget.right += 1.0f;
-    rcWidget.bottom -= 1.0f;
-    rcWidget.top += 1.0f;
+  CFX_FloatRect rcWidget(rcBBox.left, rcBBox.top, rcBBox.left + rcBBox.width,
+                         rcBBox.top + rcBBox.height);
+  rcWidget.left -= 1.0f;
+  rcWidget.right += 1.0f;
+  rcWidget.bottom -= 1.0f;
+  rcWidget.top += 1.0f;
 
-    return rcWidget;
+  return rcWidget;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::HitTest(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, const CPDF_Point& point)
-{
-    if (!pPageView || !pAnnot)
-        return FALSE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::HitTest(CPDFSDK_PageView* pPageView,
+                                         CPDFSDK_Annot* pAnnot,
+                                         const CPDF_Point& point) {
+  if (!pPageView || !pAnnot)
+    return FALSE;
 
-    CPDFSDK_Document* pSDKDoc = pPageView->GetSDKDocument();
-    if (!pSDKDoc)
-        return FALSE;
+  CPDFSDK_Document* pSDKDoc = pPageView->GetSDKDocument();
+  if (!pSDKDoc)
+    return FALSE;
 
-    CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
-    if (!pDoc)
-        return FALSE;
+  CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
+  if (!pDoc)
+    return FALSE;
 
-    IXFA_DocView* pDocView = pDoc->GetXFADocView();
-    if (!pDocView)
-        return FALSE;
+  IXFA_DocView* pDocView = pDoc->GetXFADocView();
+  if (!pDocView)
+    return FALSE;
 
-    IXFA_WidgetHandler* pWidgetHandler = pDocView->GetWidgetHandler();
-    if (!pWidgetHandler)
-        return FALSE;
+  IXFA_WidgetHandler* pWidgetHandler = pDocView->GetWidgetHandler();
+  if (!pWidgetHandler)
+    return FALSE;
 
-    FX_DWORD dwHitTest = pWidgetHandler->OnHitTest(pAnnot->GetXFAWidget(), point.x, point.y);
-    return (dwHitTest != FWL_WGTHITTEST_Unknown);
+  FX_DWORD dwHitTest =
+      pWidgetHandler->OnHitTest(pAnnot->GetXFAWidget(), point.x, point.y);
+  return (dwHitTest != FWL_WGTHITTEST_Unknown);
 }
 
-void CPDFSDK_XFAAnnotHandler::OnMouseEnter(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
-{
-    if (!pPageView || !pAnnot)
-        return;
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+void CPDFSDK_XFAAnnotHandler::OnMouseEnter(CPDFSDK_PageView* pPageView,
+                                           CPDFSDK_Annot* pAnnot,
+                                           FX_DWORD nFlag) {
+  if (!pPageView || !pAnnot)
+    return;
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    pWidgetHandler->OnMouseEnter(pAnnot->GetXFAWidget());
+  pWidgetHandler->OnMouseEnter(pAnnot->GetXFAWidget());
 }
 
-void CPDFSDK_XFAAnnotHandler::OnMouseExit(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
-{
-    if (!pPageView || !pAnnot)
-        return;
+void CPDFSDK_XFAAnnotHandler::OnMouseExit(CPDFSDK_PageView* pPageView,
+                                          CPDFSDK_Annot* pAnnot,
+                                          FX_DWORD nFlag) {
+  if (!pPageView || !pAnnot)
+    return;
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    pWidgetHandler->OnMouseExit(pAnnot->GetXFAWidget());
+  pWidgetHandler->OnMouseExit(pAnnot->GetXFAWidget());
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnLButtonDown(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    if (!pPageView || !pAnnot)
-        return FALSE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnLButtonDown(CPDFSDK_PageView* pPageView,
+                                               CPDFSDK_Annot* pAnnot,
+                                               FX_DWORD nFlags,
+                                               const CPDF_Point& point) {
+  if (!pPageView || !pAnnot)
+    return FALSE;
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    FX_BOOL bRet = FALSE;
-    bRet = pWidgetHandler->OnLButtonDown(pAnnot->GetXFAWidget(), GetFWLFlags(nFlags), point.x, point.y);
+  FX_BOOL bRet = FALSE;
+  bRet = pWidgetHandler->OnLButtonDown(pAnnot->GetXFAWidget(),
+                                       GetFWLFlags(nFlags), point.x, point.y);
 
-    return bRet;
+  return bRet;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnLButtonUp(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    if (!pPageView || !pAnnot)
-        return FALSE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnLButtonUp(CPDFSDK_PageView* pPageView,
+                                             CPDFSDK_Annot* pAnnot,
+                                             FX_DWORD nFlags,
+                                             const CPDF_Point& point) {
+  if (!pPageView || !pAnnot)
+    return FALSE;
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    FX_BOOL bRet = FALSE;
-    bRet = pWidgetHandler->OnLButtonUp(pAnnot->GetXFAWidget(), GetFWLFlags(nFlags), point.x, point.y);
+  FX_BOOL bRet = FALSE;
+  bRet = pWidgetHandler->OnLButtonUp(pAnnot->GetXFAWidget(),
+                                     GetFWLFlags(nFlags), point.x, point.y);
 
-    return bRet;
+  return bRet;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnLButtonDblClk(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    if (!pPageView || !pAnnot)
-        return FALSE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnLButtonDblClk(CPDFSDK_PageView* pPageView,
+                                                 CPDFSDK_Annot* pAnnot,
+                                                 FX_DWORD nFlags,
+                                                 const CPDF_Point& point) {
+  if (!pPageView || !pAnnot)
+    return FALSE;
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    FX_BOOL bRet = FALSE;
-    bRet = pWidgetHandler->OnLButtonDblClk(pAnnot->GetXFAWidget(), GetFWLFlags(nFlags), point.x, point.y);
+  FX_BOOL bRet = FALSE;
+  bRet = pWidgetHandler->OnLButtonDblClk(pAnnot->GetXFAWidget(),
+                                         GetFWLFlags(nFlags), point.x, point.y);
 
-    return bRet;
+  return bRet;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnMouseMove(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    if (!pPageView || !pAnnot)
-        return FALSE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnMouseMove(CPDFSDK_PageView* pPageView,
+                                             CPDFSDK_Annot* pAnnot,
+                                             FX_DWORD nFlags,
+                                             const CPDF_Point& point) {
+  if (!pPageView || !pAnnot)
+    return FALSE;
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    FX_BOOL bRet = FALSE;
-    bRet = pWidgetHandler->OnMouseMove(pAnnot->GetXFAWidget(), GetFWLFlags(nFlags), point.x, point.y);
+  FX_BOOL bRet = FALSE;
+  bRet = pWidgetHandler->OnMouseMove(pAnnot->GetXFAWidget(),
+                                     GetFWLFlags(nFlags), point.x, point.y);
 
-    return bRet;
+  return bRet;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnMouseWheel(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, short zDelta, const CPDF_Point& point)
-{
-    if (!pPageView || !pAnnot)
-        return FALSE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnMouseWheel(CPDFSDK_PageView* pPageView,
+                                              CPDFSDK_Annot* pAnnot,
+                                              FX_DWORD nFlags,
+                                              short zDelta,
+                                              const CPDF_Point& point) {
+  if (!pPageView || !pAnnot)
+    return FALSE;
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    FX_BOOL bRet = FALSE;
-    bRet = pWidgetHandler->OnMouseWheel(pAnnot->GetXFAWidget(), GetFWLFlags(nFlags), zDelta, point.x, point.y);
+  FX_BOOL bRet = FALSE;
+  bRet = pWidgetHandler->OnMouseWheel(
+      pAnnot->GetXFAWidget(), GetFWLFlags(nFlags), zDelta, point.x, point.y);
 
-    return bRet;
+  return bRet;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnRButtonDown(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    if (!pPageView || !pAnnot)
-        return FALSE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnRButtonDown(CPDFSDK_PageView* pPageView,
+                                               CPDFSDK_Annot* pAnnot,
+                                               FX_DWORD nFlags,
+                                               const CPDF_Point& point) {
+  if (!pPageView || !pAnnot)
+    return FALSE;
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    FX_BOOL bRet = FALSE;
-    bRet = pWidgetHandler->OnRButtonDown(pAnnot->GetXFAWidget(), GetFWLFlags(nFlags), point.x, point.y);
+  FX_BOOL bRet = FALSE;
+  bRet = pWidgetHandler->OnRButtonDown(pAnnot->GetXFAWidget(),
+                                       GetFWLFlags(nFlags), point.x, point.y);
 
-    return bRet;
+  return bRet;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnRButtonUp(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    if (!pPageView || !pAnnot)
-        return FALSE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnRButtonUp(CPDFSDK_PageView* pPageView,
+                                             CPDFSDK_Annot* pAnnot,
+                                             FX_DWORD nFlags,
+                                             const CPDF_Point& point) {
+  if (!pPageView || !pAnnot)
+    return FALSE;
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    FX_BOOL bRet = FALSE;
-    bRet = pWidgetHandler->OnRButtonUp(pAnnot->GetXFAWidget(), GetFWLFlags(nFlags), point.x, point.y);
+  FX_BOOL bRet = FALSE;
+  bRet = pWidgetHandler->OnRButtonUp(pAnnot->GetXFAWidget(),
+                                     GetFWLFlags(nFlags), point.x, point.y);
 
-    return bRet;
+  return bRet;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnRButtonDblClk(CPDFSDK_PageView *pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
-{
-    if (!pPageView || !pAnnot)
-        return FALSE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnRButtonDblClk(CPDFSDK_PageView* pPageView,
+                                                 CPDFSDK_Annot* pAnnot,
+                                                 FX_DWORD nFlags,
+                                                 const CPDF_Point& point) {
+  if (!pPageView || !pAnnot)
+    return FALSE;
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    FX_BOOL bRet = FALSE;
-    bRet = pWidgetHandler->OnRButtonDblClk(pAnnot->GetXFAWidget(), GetFWLFlags(nFlags), point.x, point.y);
+  FX_BOOL bRet = FALSE;
+  bRet = pWidgetHandler->OnRButtonDblClk(pAnnot->GetXFAWidget(),
+                                         GetFWLFlags(nFlags), point.x, point.y);
 
-    return bRet;
+  return bRet;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnChar(CPDFSDK_Annot* pAnnot, FX_DWORD nChar, FX_DWORD nFlags)
-{
-    if (!pAnnot)
-        return FALSE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnChar(CPDFSDK_Annot* pAnnot,
+                                        FX_DWORD nChar,
+                                        FX_DWORD nFlags) {
+  if (!pAnnot)
+    return FALSE;
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    FX_BOOL bRet = FALSE;
-    bRet = pWidgetHandler->OnChar(pAnnot->GetXFAWidget(), nChar, GetFWLFlags(nFlags));
+  FX_BOOL bRet = FALSE;
+  bRet = pWidgetHandler->OnChar(pAnnot->GetXFAWidget(), nChar,
+                                GetFWLFlags(nFlags));
 
-    return bRet;
+  return bRet;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnKeyDown(CPDFSDK_Annot* pAnnot, int nKeyCode, int nFlag)
-{
-    if (!pAnnot)
-        return FALSE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnKeyDown(CPDFSDK_Annot* pAnnot,
+                                           int nKeyCode,
+                                           int nFlag) {
+  if (!pAnnot)
+    return FALSE;
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    FX_BOOL bRet = FALSE;
-    bRet = pWidgetHandler->OnKeyDown(pAnnot->GetXFAWidget(), nKeyCode, GetFWLFlags(nFlag));
+  FX_BOOL bRet = FALSE;
+  bRet = pWidgetHandler->OnKeyDown(pAnnot->GetXFAWidget(), nKeyCode,
+                                   GetFWLFlags(nFlag));
 
-    return bRet;
+  return bRet;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnKeyUp(CPDFSDK_Annot* pAnnot, int nKeyCode, int nFlag)
-{
-    if (!pAnnot)
-        return FALSE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnKeyUp(CPDFSDK_Annot* pAnnot,
+                                         int nKeyCode,
+                                         int nFlag) {
+  if (!pAnnot)
+    return FALSE;
 
-    IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
-    ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot);
+  ASSERT(pWidgetHandler != NULL);
 
-    FX_BOOL bRet = FALSE;
-    bRet = pWidgetHandler->OnKeyUp(pAnnot->GetXFAWidget(), nKeyCode, GetFWLFlags(nFlag));
+  FX_BOOL bRet = FALSE;
+  bRet = pWidgetHandler->OnKeyUp(pAnnot->GetXFAWidget(), nKeyCode,
+                                 GetFWLFlags(nFlag));
 
-    return bRet;
+  return bRet;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnSetFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
-{
-    return TRUE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnSetFocus(CPDFSDK_Annot* pAnnot,
+                                            FX_DWORD nFlag) {
+  return TRUE;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnKillFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
-{
-    return TRUE;
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnKillFocus(CPDFSDK_Annot* pAnnot,
+                                             FX_DWORD nFlag) {
+  return TRUE;
 }
 
-FX_BOOL CPDFSDK_XFAAnnotHandler::OnXFAChangedFocus(CPDFSDK_Annot* pOldAnnot, CPDFSDK_Annot* pNewAnnot)
-{
-    IXFA_WidgetHandler* pWidgetHandler = NULL;
-
-    if (pOldAnnot)
-        pWidgetHandler = GetXFAWidgetHandler(pOldAnnot);
-    else if (pNewAnnot)
-        pWidgetHandler = GetXFAWidgetHandler(pNewAnnot);
-
-    if (pWidgetHandler)
-    {
-        FX_BOOL bRet = TRUE;
-        IXFA_Widget* hWidget = pNewAnnot ? pNewAnnot->GetXFAWidget() : NULL;
-        if (hWidget)
-        {
-            IXFA_PageView* pXFAPageView = pWidgetHandler->GetPageView(hWidget);
-            if (pXFAPageView)
-            {
-                bRet = pXFAPageView->GetDocView()->SetFocus(hWidget);
-                if (pXFAPageView->GetDocView()->GetFocusWidget() == hWidget)
-                    bRet = TRUE;
-            }
-        }
-        return bRet;
-    }
+FX_BOOL CPDFSDK_XFAAnnotHandler::OnXFAChangedFocus(CPDFSDK_Annot* pOldAnnot,
+                                                   CPDFSDK_Annot* pNewAnnot) {
+  IXFA_WidgetHandler* pWidgetHandler = NULL;
 
-    return TRUE;
-}
+  if (pOldAnnot)
+    pWidgetHandler = GetXFAWidgetHandler(pOldAnnot);
+  else if (pNewAnnot)
+    pWidgetHandler = GetXFAWidgetHandler(pNewAnnot);
 
-IXFA_WidgetHandler* CPDFSDK_XFAAnnotHandler::GetXFAWidgetHandler(CPDFSDK_Annot* pAnnot)
-{
-    if (!pAnnot)
-        return NULL;
-
-    CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
-    if (!pPageView)
-        return NULL;
-
-    CPDFSDK_Document* pSDKDoc = pPageView->GetSDKDocument();
-    if (!pSDKDoc)
-        return NULL;
-
-    CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
-    if (!pDoc)
-        return NULL;
-
-    IXFA_DocView* pDocView = pDoc->GetXFADocView();
-    if (!pDocView)
-        return NULL;
-
-    return pDocView->GetWidgetHandler();
-}
-
-#define FWL_KEYFLAG_Ctrl                    (1 << 0)
-#define FWL_KEYFLAG_Alt                     (1 << 1)
-#define FWL_KEYFLAG_Shift                   (1 << 2)
-#define FWL_KEYFLAG_LButton                 (1 << 3)
-#define FWL_KEYFLAG_RButton                 (1 << 4)
-#define FWL_KEYFLAG_MButton                 (1 << 5)
-
-FX_DWORD CPDFSDK_XFAAnnotHandler::GetFWLFlags(FX_DWORD dwFlag)
-{
-    FX_DWORD dwFWLFlag = 0;
-
-    if (dwFlag & FWL_EVENTFLAG_ControlKey)
-        dwFWLFlag |= FWL_KEYFLAG_Ctrl;
-    if (dwFlag & FWL_EVENTFLAG_LeftButtonDown)
-        dwFWLFlag |= FWL_KEYFLAG_LButton;
-    if (dwFlag & FWL_EVENTFLAG_MiddleButtonDown)
-        dwFWLFlag |= FWL_KEYFLAG_MButton;
-    if (dwFlag & FWL_EVENTFLAG_RightButtonDown)
-        dwFWLFlag |= FWL_KEYFLAG_RButton;
-    if (dwFlag & FWL_EVENTFLAG_ShiftKey)
-        dwFWLFlag |= FWL_KEYFLAG_Shift;
-    if (dwFlag & FWL_EVENTFLAG_AltKey)
-        dwFWLFlag |= FWL_KEYFLAG_Alt;
-
-    return dwFWLFlag;
-}
-
-//CReader_AnnotIteratorEx
-
-CPDFSDK_AnnotIterator::CPDFSDK_AnnotIterator(CPDFSDK_PageView * pPageView,FX_BOOL bReverse,
-                                                 FX_BOOL bIgnoreTopmost/*=FALSE*/,
-                                                 FX_BOOL bCircle/*=FALSE*/,
-                                                 CFX_PtrArray *pList/*=NULL*/)
-{
-    ASSERT(pPageView);
-    m_bReverse=bReverse;
-    m_bIgnoreTopmost= bIgnoreTopmost;
-    m_bCircle=bCircle;
-    m_pIteratorAnnotList.RemoveAll();
-    InitIteratorAnnotList(pPageView,pList);
-}
-
-CPDFSDK_Annot*  CPDFSDK_AnnotIterator::NextAnnot (const CPDFSDK_Annot* pCurrent)
-{
-
-    int index = -1;
-    int nCount = m_pIteratorAnnotList.GetSize();
-    if (pCurrent) {
-        for(int i=0;i<nCount;i++){
-            CPDFSDK_Annot * pReaderAnnot= (CPDFSDK_Annot *)m_pIteratorAnnotList.GetAt(i);
-            if(pReaderAnnot ==pCurrent){
-                index=i;
-                break;
-            }
-        }
-    }
-    return NextAnnot(index);
-}
-CPDFSDK_Annot*  CPDFSDK_AnnotIterator::PrevAnnot (const CPDFSDK_Annot*pCurrent)
-{
-    int index = -1;
-    int nCount = m_pIteratorAnnotList.GetSize();
-    if(pCurrent){
-        for(int i=0;i<nCount;i++){
-            CPDFSDK_Annot * pReaderAnnot= (CPDFSDK_Annot*)m_pIteratorAnnotList.GetAt(i);
-            if(pReaderAnnot ==pCurrent){
-                index=i;
-                break;
-            }
-        }
-    }
-    return PrevAnnot(index);
-}
-CPDFSDK_Annot*  CPDFSDK_AnnotIterator::NextAnnot (int& index)
-{
-
-    int nCount=m_pIteratorAnnotList.GetSize();
-    if(nCount<=0) index=-1;
-    else{
-        if(index<0){
-            index=0;
-        }
-        else{
-            if(m_bCircle){
-                index=( index <nCount-1) ? (index+1) :0;
-            }
-            else{
-                index=( index <nCount-1) ? (index+1) :-1;
-            }
-
-        }
-    }
-    return (index <0) ? NULL : (CPDFSDK_Annot*)m_pIteratorAnnotList.GetAt(index);
-}
-
-
-CPDFSDK_Annot*  CPDFSDK_AnnotIterator::PrevAnnot (int& index)
-{
-
-    int nCount=m_pIteratorAnnotList.GetSize();
-    if(nCount<=0) index=-1;
-    else{
-        if(index<0){
-            index=nCount-1;
-        }
-        else{
-            if(m_bCircle){
-                index = ( index >0) ? (index-1) :nCount-1;
-            }
-            else{
-                index = ( index >0) ? (index-1) :-1;
-            }
-        }
+  if (pWidgetHandler) {
+    FX_BOOL bRet = TRUE;
+    IXFA_Widget* hWidget = pNewAnnot ? pNewAnnot->GetXFAWidget() : NULL;
+    if (hWidget) {
+      IXFA_PageView* pXFAPageView = pWidgetHandler->GetPageView(hWidget);
+      if (pXFAPageView) {
+        bRet = pXFAPageView->GetDocView()->SetFocus(hWidget);
+        if (pXFAPageView->GetDocView()->GetFocusWidget() == hWidget)
+          bRet = TRUE;
+      }
     }
-    return (index <0) ? NULL : (CPDFSDK_Annot*)m_pIteratorAnnotList.GetAt(index);
-}
-
-
-CPDFSDK_Annot*CPDFSDK_AnnotIterator::Next(const CPDFSDK_Annot* pCurrent)
-{
-
-    return (m_bReverse) ? PrevAnnot(pCurrent):NextAnnot(pCurrent);
-
-}
-
-CPDFSDK_Annot*  CPDFSDK_AnnotIterator::Prev(const CPDFSDK_Annot* pCurrent)
-{
-
-    return (m_bReverse) ? NextAnnot(pCurrent):PrevAnnot(pCurrent);
-}
-
-CPDFSDK_Annot*CPDFSDK_AnnotIterator::Next(int& index )
-{
-
-    return (m_bReverse) ? PrevAnnot(index):NextAnnot(index);
-
-}
-
-CPDFSDK_Annot*  CPDFSDK_AnnotIterator::Prev(int& index )
-{
+    return bRet;
+  }
 
-    return (m_bReverse) ? NextAnnot(index):PrevAnnot(index);
+  return TRUE;
 }
 
+IXFA_WidgetHandler* CPDFSDK_XFAAnnotHandler::GetXFAWidgetHandler(
+    CPDFSDK_Annot* pAnnot) {
+  if (!pAnnot)
+    return NULL;
 
-void CPDFSDK_AnnotIterator::InsertSort(CFX_PtrArray &arrayList, AI_COMPARE pCompare)
-{
-    for (int i = 1; i < arrayList.GetSize(); i++)
-    {
-        if (pCompare((CPDFSDK_Annot*)(arrayList[i]) , (CPDFSDK_Annot*)(arrayList[i-1])) < 0)
-        {
-            int j = i-1;
-            CPDFSDK_Annot* pTemp = (CPDFSDK_Annot*)arrayList[i];
+  CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
+  if (!pPageView)
+    return NULL;
 
-            do
-            {
-                arrayList[j + 1] = arrayList[j];
-            } while (--j >= 0 && pCompare(pTemp, (CPDFSDK_Annot*)arrayList[j]) < 0);
+  CPDFSDK_Document* pSDKDoc = pPageView->GetSDKDocument();
+  if (!pSDKDoc)
+    return NULL;
 
-            arrayList[j+1] = pTemp;
-        }
-    }
-}
+  CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
+  if (!pDoc)
+    return NULL;
 
-int LyOrderCompare(CPDFSDK_Annot* p1, CPDFSDK_Annot* p2)
-{
-    if (p1->GetLayoutOrder() < p2->GetLayoutOrder())
-        return -1;
-    if (p1->GetLayoutOrder() > p2->GetLayoutOrder())
-        return 1;
-    return 0;
-}
+  IXFA_DocView* pDocView = pDoc->GetXFADocView();
+  if (!pDocView)
+    return NULL;
 
-FX_BOOL CPDFSDK_AnnotIterator::InitIteratorAnnotList(CPDFSDK_PageView* pPageView,CFX_PtrArray * pAnnotList)
-{
-    ASSERT(pPageView);
+  return pDocView->GetWidgetHandler();
+}
+
+#define FWL_KEYFLAG_Ctrl (1 << 0)
+#define FWL_KEYFLAG_Alt (1 << 1)
+#define FWL_KEYFLAG_Shift (1 << 2)
+#define FWL_KEYFLAG_LButton (1 << 3)
+#define FWL_KEYFLAG_RButton (1 << 4)
+#define FWL_KEYFLAG_MButton (1 << 5)
+
+FX_DWORD CPDFSDK_XFAAnnotHandler::GetFWLFlags(FX_DWORD dwFlag) {
+  FX_DWORD dwFWLFlag = 0;
+
+  if (dwFlag & FWL_EVENTFLAG_ControlKey)
+    dwFWLFlag |= FWL_KEYFLAG_Ctrl;
+  if (dwFlag & FWL_EVENTFLAG_LeftButtonDown)
+    dwFWLFlag |= FWL_KEYFLAG_LButton;
+  if (dwFlag & FWL_EVENTFLAG_MiddleButtonDown)
+    dwFWLFlag |= FWL_KEYFLAG_MButton;
+  if (dwFlag & FWL_EVENTFLAG_RightButtonDown)
+    dwFWLFlag |= FWL_KEYFLAG_RButton;
+  if (dwFlag & FWL_EVENTFLAG_ShiftKey)
+    dwFWLFlag |= FWL_KEYFLAG_Shift;
+  if (dwFlag & FWL_EVENTFLAG_AltKey)
+    dwFWLFlag |= FWL_KEYFLAG_Alt;
+
+  return dwFWLFlag;
+}
+
+// CReader_AnnotIteratorEx
+
+CPDFSDK_AnnotIterator::CPDFSDK_AnnotIterator(CPDFSDK_PageView* pPageView,
+                                             FX_BOOL bReverse,
+                                             FX_BOOL bIgnoreTopmost /*=FALSE*/,
+                                             FX_BOOL bCircle /*=FALSE*/,
+                                             CFX_PtrArray* pList /*=NULL*/) {
+  ASSERT(pPageView);
+  m_bReverse = bReverse;
+  m_bIgnoreTopmost = bIgnoreTopmost;
+  m_bCircle = bCircle;
+  m_pIteratorAnnotList.RemoveAll();
+  InitIteratorAnnotList(pPageView, pList);
+}
+
+CPDFSDK_Annot* CPDFSDK_AnnotIterator::NextAnnot(const CPDFSDK_Annot* pCurrent) {
+  int index = -1;
+  int nCount = m_pIteratorAnnotList.GetSize();
+  if (pCurrent) {
+    for (int i = 0; i < nCount; i++) {
+      CPDFSDK_Annot* pReaderAnnot =
+          (CPDFSDK_Annot*)m_pIteratorAnnotList.GetAt(i);
+      if (pReaderAnnot == pCurrent) {
+        index = i;
+        break;
+      }
+    }
+  }
+  return NextAnnot(index);
+}
+CPDFSDK_Annot* CPDFSDK_AnnotIterator::PrevAnnot(const CPDFSDK_Annot* pCurrent) {
+  int index = -1;
+  int nCount = m_pIteratorAnnotList.GetSize();
+  if (pCurrent) {
+    for (int i = 0; i < nCount; i++) {
+      CPDFSDK_Annot* pReaderAnnot =
+          (CPDFSDK_Annot*)m_pIteratorAnnotList.GetAt(i);
+      if (pReaderAnnot == pCurrent) {
+        index = i;
+        break;
+      }
+    }
+  }
+  return PrevAnnot(index);
+}
+CPDFSDK_Annot* CPDFSDK_AnnotIterator::NextAnnot(int& index) {
+  int nCount = m_pIteratorAnnotList.GetSize();
+  if (nCount <= 0)
+    index = -1;
+  else {
+    if (index < 0) {
+      index = 0;
+    } else {
+      if (m_bCircle) {
+        index = (index < nCount - 1) ? (index + 1) : 0;
+      } else {
+        index = (index < nCount - 1) ? (index + 1) : -1;
+      }
+    }
+  }
+  return (index < 0) ? NULL : (CPDFSDK_Annot*)m_pIteratorAnnotList.GetAt(index);
+}
+
+CPDFSDK_Annot* CPDFSDK_AnnotIterator::PrevAnnot(int& index) {
+  int nCount = m_pIteratorAnnotList.GetSize();
+  if (nCount <= 0)
+    index = -1;
+  else {
+    if (index < 0) {
+      index = nCount - 1;
+    } else {
+      if (m_bCircle) {
+        index = (index > 0) ? (index - 1) : nCount - 1;
+      } else {
+        index = (index > 0) ? (index - 1) : -1;
+      }
+    }
+  }
+  return (index < 0) ? NULL : (CPDFSDK_Annot*)m_pIteratorAnnotList.GetAt(index);
+}
+
+CPDFSDK_Annot* CPDFSDK_AnnotIterator::Next(const CPDFSDK_Annot* pCurrent) {
+  return (m_bReverse) ? PrevAnnot(pCurrent) : NextAnnot(pCurrent);
+}
+
+CPDFSDK_Annot* CPDFSDK_AnnotIterator::Prev(const CPDFSDK_Annot* pCurrent) {
+  return (m_bReverse) ? NextAnnot(pCurrent) : PrevAnnot(pCurrent);
+}
+
+CPDFSDK_Annot* CPDFSDK_AnnotIterator::Next(int& index) {
+  return (m_bReverse) ? PrevAnnot(index) : NextAnnot(index);
+}
+
+CPDFSDK_Annot* CPDFSDK_AnnotIterator::Prev(int& index) {
+  return (m_bReverse) ? NextAnnot(index) : PrevAnnot(index);
+}
+
+void CPDFSDK_AnnotIterator::InsertSort(CFX_PtrArray& arrayList,
+                                       AI_COMPARE pCompare) {
+  for (int i = 1; i < arrayList.GetSize(); i++) {
+    if (pCompare((CPDFSDK_Annot*)(arrayList[i]),
+                 (CPDFSDK_Annot*)(arrayList[i - 1])) < 0) {
+      int j = i - 1;
+      CPDFSDK_Annot* pTemp = (CPDFSDK_Annot*)arrayList[i];
+
+      do {
+        arrayList[j + 1] = arrayList[j];
+      } while (--j >= 0 && pCompare(pTemp, (CPDFSDK_Annot*)arrayList[j]) < 0);
+
+      arrayList[j + 1] = pTemp;
+    }
+  }
+}
+
+int LyOrderCompare(CPDFSDK_Annot* p1, CPDFSDK_Annot* p2) {
+  if (p1->GetLayoutOrder() < p2->GetLayoutOrder())
+    return -1;
+  if (p1->GetLayoutOrder() > p2->GetLayoutOrder())
+    return 1;
+  return 0;
+}
+
+FX_BOOL CPDFSDK_AnnotIterator::InitIteratorAnnotList(
+    CPDFSDK_PageView* pPageView,
+    CFX_PtrArray* pAnnotList) {
+  ASSERT(pPageView);
 
-    if(pAnnotList==NULL){
-        pAnnotList=pPageView->GetAnnotList();
-    }
+  if (pAnnotList == NULL) {
+    pAnnotList = pPageView->GetAnnotList();
+  }
 
-    m_pIteratorAnnotList.RemoveAll();
-    if(!pAnnotList) return FALSE;
+  m_pIteratorAnnotList.RemoveAll();
+  if (!pAnnotList)
+    return FALSE;
 
-    CPDFSDK_Annot * pTopMostAnnot= (m_bIgnoreTopmost) ? NULL : pPageView->GetFocusAnnot();
+  CPDFSDK_Annot* pTopMostAnnot =
+      (m_bIgnoreTopmost) ? NULL : pPageView->GetFocusAnnot();
 
+  int nCount = pAnnotList->GetSize();
 
-    int nCount =pAnnotList->GetSize();
+  for (int i = nCount - 1; i >= 0; i--) {
+    CPDFSDK_Annot* pReaderAnnot = (CPDFSDK_Annot*)pAnnotList->GetAt(i);
+    m_pIteratorAnnotList.Add(pReaderAnnot);
+  }
 
-    for(int i = nCount- 1 ;i >= 0;i--)
-    {
-        CPDFSDK_Annot * pReaderAnnot= (CPDFSDK_Annot*)pAnnotList->GetAt(i);
-        m_pIteratorAnnotList.Add(pReaderAnnot);
-    }
+  InsertSort(m_pIteratorAnnotList, &LyOrderCompare);
 
-    InsertSort(m_pIteratorAnnotList,&LyOrderCompare);
-
-    if(pTopMostAnnot)
-    {
-        for(int i=0 ;i<nCount;i++)
-        {
-            CPDFSDK_Annot * pReaderAnnot = (CPDFSDK_Annot*)m_pIteratorAnnotList.GetAt(i);
-            if(pReaderAnnot == pTopMostAnnot)
-            {
-                m_pIteratorAnnotList.RemoveAt(i);
-                m_pIteratorAnnotList.InsertAt(0, pReaderAnnot);
-                break;
-            }
-        }
+  if (pTopMostAnnot) {
+    for (int i = 0; i < nCount; i++) {
+      CPDFSDK_Annot* pReaderAnnot =
+          (CPDFSDK_Annot*)m_pIteratorAnnotList.GetAt(i);
+      if (pReaderAnnot == pTopMostAnnot) {
+        m_pIteratorAnnotList.RemoveAt(i);
+        m_pIteratorAnnotList.InsertAt(0, pReaderAnnot);
+        break;
+      }
     }
+  }
 
-    return TRUE;
+  return TRUE;
 }
diff --git a/fpdfsdk/src/fsdk_baseannot.cpp b/fpdfsdk/src/fsdk_baseannot.cpp
index a862ea7723..83cd49858b 100644
--- a/fpdfsdk/src/fsdk_baseannot.cpp
+++ b/fpdfsdk/src/fsdk_baseannot.cpp
@@ -9,30 +9,24 @@
 #include "../include/fsdk_mgr.h"
 #include "../include/fsdk_baseannot.h"
 
-
 //---------------------------------------------------------------------------
 //                              CPDFSDK_DateTime
 //---------------------------------------------------------------------------
-int _gAfxGetTimeZoneInSeconds(FX_CHAR tzhour, uint8_t tzminute)
-{
-    return (int)tzhour * 3600 + (int)tzminute * (tzhour >= 0 ? 60 : -60);
+int _gAfxGetTimeZoneInSeconds(FX_CHAR tzhour, uint8_t tzminute) {
+  return (int)tzhour * 3600 + (int)tzminute * (tzhour >= 0 ? 60 : -60);
 }
 
-FX_BOOL _gAfxIsLeapYear(int16_t year)
-{
-    return ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)));
+FX_BOOL _gAfxIsLeapYear(int16_t year) {
+  return ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)));
 }
 
-FX_WORD _gAfxGetYearDays(int16_t year)
-{
-    return (_gAfxIsLeapYear(year) == TRUE ? 366 : 365);
+FX_WORD _gAfxGetYearDays(int16_t year) {
+  return (_gAfxIsLeapYear(year) == TRUE ? 366 : 365);
 }
 
-uint8_t _gAfxGetMonthDays(int16_t year, uint8_t month)
-{
-    uint8_t mDays;
-    switch (month)
-    {
+uint8_t _gAfxGetMonthDays(int16_t year, uint8_t month) {
+  uint8_t mDays;
+  switch (month) {
     case 1:
     case 3:
     case 5:
@@ -40,1049 +34,981 @@ uint8_t _gAfxGetMonthDays(int16_t year, uint8_t month)
     case 8:
     case 10:
     case 12:
-        mDays = 31;
-        break;
+      mDays = 31;
+      break;
 
     case 4:
     case 6:
     case 9:
     case 11:
-        mDays = 30;
-        break;
+      mDays = 30;
+      break;
 
     case 2:
-        if (_gAfxIsLeapYear(year) == TRUE)
-            mDays = 29;
-        else
-            mDays = 28;
-        break;
+      if (_gAfxIsLeapYear(year) == TRUE)
+        mDays = 29;
+      else
+        mDays = 28;
+      break;
 
     default:
-        mDays = 0;
-        break;
-    }
+      mDays = 0;
+      break;
+  }
 
-    return mDays;
+  return mDays;
 }
 
-CPDFSDK_DateTime::CPDFSDK_DateTime()
-{
-    ResetDateTime();
+CPDFSDK_DateTime::CPDFSDK_DateTime() {
+  ResetDateTime();
 }
 
-CPDFSDK_DateTime::CPDFSDK_DateTime(const CFX_ByteString& dtStr)
-{
-    ResetDateTime();
+CPDFSDK_DateTime::CPDFSDK_DateTime(const CFX_ByteString& dtStr) {
+  ResetDateTime();
 
-    FromPDFDateTimeString(dtStr);
+  FromPDFDateTimeString(dtStr);
 }
 
-CPDFSDK_DateTime::CPDFSDK_DateTime(const CPDFSDK_DateTime& datetime)
-{
-    operator = (datetime);
+CPDFSDK_DateTime::CPDFSDK_DateTime(const CPDFSDK_DateTime& datetime) {
+  operator=(datetime);
 }
 
-CPDFSDK_DateTime::CPDFSDK_DateTime(const FX_SYSTEMTIME& st)
-{
-    operator = (st) ;
+CPDFSDK_DateTime::CPDFSDK_DateTime(const FX_SYSTEMTIME& st) {
+  operator=(st);
 }
 
+void CPDFSDK_DateTime::ResetDateTime() {
+  tzset();
 
-void CPDFSDK_DateTime::ResetDateTime()
-{
-    tzset();
+  time_t curTime;
+  time(&curTime);
+  struct tm* newtime;
+  // newtime = gmtime(&curTime);
+  newtime = localtime(&curTime);
 
-    time_t  curTime;
-    time(&curTime);
-    struct tm* newtime;
-    //newtime = gmtime(&curTime);
-    newtime = localtime(&curTime);
-
-    dt.year = newtime->tm_year + 1900;
-    dt.month = newtime->tm_mon + 1;
-    dt.day = newtime->tm_mday;
-    dt.hour = newtime->tm_hour;
-    dt.minute = newtime->tm_min;
-    dt.second = newtime->tm_sec;
-//  dt.tzHour = _timezone / 3600 * -1;
-//  dt.tzMinute = (abs(_timezone) % 3600) / 60;
+  dt.year = newtime->tm_year + 1900;
+  dt.month = newtime->tm_mon + 1;
+  dt.day = newtime->tm_mday;
+  dt.hour = newtime->tm_hour;
+  dt.minute = newtime->tm_min;
+  dt.second = newtime->tm_sec;
+  //  dt.tzHour = _timezone / 3600 * -1;
+  //  dt.tzMinute = (abs(_timezone) % 3600) / 60;
 }
 
-CPDFSDK_DateTime& CPDFSDK_DateTime::operator = (const CPDFSDK_DateTime& datetime)
-{
-    FXSYS_memcpy(&dt, &datetime.dt, sizeof(FX_DATETIME));
-    return *this;
+CPDFSDK_DateTime& CPDFSDK_DateTime::operator=(
+    const CPDFSDK_DateTime& datetime) {
+  FXSYS_memcpy(&dt, &datetime.dt, sizeof(FX_DATETIME));
+  return *this;
 }
 
-CPDFSDK_DateTime& CPDFSDK_DateTime::operator = (const FX_SYSTEMTIME& st)
-{
-    tzset();
+CPDFSDK_DateTime& CPDFSDK_DateTime::operator=(const FX_SYSTEMTIME& st) {
+  tzset();
 
-    dt.year = (int16_t)st.wYear;
-    dt.month = (uint8_t)st.wMonth;
-    dt.day = (uint8_t)st.wDay;
-    dt.hour = (uint8_t)st.wHour;
-    dt.minute = (uint8_t)st.wMinute;
-    dt.second = (uint8_t)st.wSecond;
-//  dt.tzHour = _timezone / 3600 * -1;
-//  dt.tzMinute = (abs(_timezone) % 3600) / 60;
-    return *this;
+  dt.year = (int16_t)st.wYear;
+  dt.month = (uint8_t)st.wMonth;
+  dt.day = (uint8_t)st.wDay;
+  dt.hour = (uint8_t)st.wHour;
+  dt.minute = (uint8_t)st.wMinute;
+  dt.second = (uint8_t)st.wSecond;
+  //  dt.tzHour = _timezone / 3600 * -1;
+  //  dt.tzMinute = (abs(_timezone) % 3600) / 60;
+  return *this;
 }
 
-FX_BOOL CPDFSDK_DateTime::operator == (CPDFSDK_DateTime& datetime)
-{
-    return (FXSYS_memcmp(&dt, &datetime.dt, sizeof(FX_DATETIME)) == 0);
+FX_BOOL CPDFSDK_DateTime::operator==(CPDFSDK_DateTime& datetime) {
+  return (FXSYS_memcmp(&dt, &datetime.dt, sizeof(FX_DATETIME)) == 0);
 }
 
-FX_BOOL CPDFSDK_DateTime::operator != (CPDFSDK_DateTime& datetime)
-{
-    return (FXSYS_memcmp(&dt, &datetime.dt, sizeof(FX_DATETIME)) != 0);
+FX_BOOL CPDFSDK_DateTime::operator!=(CPDFSDK_DateTime& datetime) {
+  return (FXSYS_memcmp(&dt, &datetime.dt, sizeof(FX_DATETIME)) != 0);
 }
 
-FX_BOOL CPDFSDK_DateTime::operator > (CPDFSDK_DateTime& datetime)
-{
-    CPDFSDK_DateTime dt1 = ToGMT();
-    CPDFSDK_DateTime dt2 = datetime.ToGMT();
-    int d1 = (((int)dt1.dt.year) << 16) | (((int)dt1.dt.month) << 8) | (int)dt1.dt.day;
-    int d2 = (((int)dt1.dt.hour) << 16) | (((int)dt1.dt.minute) << 8) | (int)dt1.dt.second;
-    int d3 = (((int)dt2.dt.year) << 16) | (((int)dt2.dt.month) << 8) | (int)dt2.dt.day;
-    int d4 = (((int)dt2.dt.hour) << 16) | (((int)dt2.dt.minute) << 8) | (int)dt2.dt.second;
-
-    if (d1 > d3) return TRUE;
-    if (d2 > d4) return TRUE;
-    return FALSE;
-}
+FX_BOOL CPDFSDK_DateTime::operator>(CPDFSDK_DateTime& datetime) {
+  CPDFSDK_DateTime dt1 = ToGMT();
+  CPDFSDK_DateTime dt2 = datetime.ToGMT();
+  int d1 =
+      (((int)dt1.dt.year) << 16) | (((int)dt1.dt.month) << 8) | (int)dt1.dt.day;
+  int d2 = (((int)dt1.dt.hour) << 16) | (((int)dt1.dt.minute) << 8) |
+           (int)dt1.dt.second;
+  int d3 =
+      (((int)dt2.dt.year) << 16) | (((int)dt2.dt.month) << 8) | (int)dt2.dt.day;
+  int d4 = (((int)dt2.dt.hour) << 16) | (((int)dt2.dt.minute) << 8) |
+           (int)dt2.dt.second;
 
-FX_BOOL CPDFSDK_DateTime::operator >= (CPDFSDK_DateTime& datetime)
-{
-    CPDFSDK_DateTime dt1 = ToGMT();
-    CPDFSDK_DateTime dt2 = datetime.ToGMT();
-    int d1 = (((int)dt1.dt.year) << 16) | (((int)dt1.dt.month) << 8) | (int)dt1.dt.day;
-    int d2 = (((int)dt1.dt.hour) << 16) | (((int)dt1.dt.minute) << 8) | (int)dt1.dt.second;
-    int d3 = (((int)dt2.dt.year) << 16) | (((int)dt2.dt.month) << 8) | (int)dt2.dt.day;
-    int d4 = (((int)dt2.dt.hour) << 16) | (((int)dt2.dt.minute) << 8) | (int)dt2.dt.second;
-
-    if (d1 >= d3) return TRUE;
-    if (d2 >= d4) return TRUE;
-    return FALSE;
+  if (d1 > d3)
+    return TRUE;
+  if (d2 > d4)
+    return TRUE;
+  return FALSE;
+}
+
+FX_BOOL CPDFSDK_DateTime::operator>=(CPDFSDK_DateTime& datetime) {
+  CPDFSDK_DateTime dt1 = ToGMT();
+  CPDFSDK_DateTime dt2 = datetime.ToGMT();
+  int d1 =
+      (((int)dt1.dt.year) << 16) | (((int)dt1.dt.month) << 8) | (int)dt1.dt.day;
+  int d2 = (((int)dt1.dt.hour) << 16) | (((int)dt1.dt.minute) << 8) |
+           (int)dt1.dt.second;
+  int d3 =
+      (((int)dt2.dt.year) << 16) | (((int)dt2.dt.month) << 8) | (int)dt2.dt.day;
+  int d4 = (((int)dt2.dt.hour) << 16) | (((int)dt2.dt.minute) << 8) |
+           (int)dt2.dt.second;
+
+  if (d1 >= d3)
+    return TRUE;
+  if (d2 >= d4)
+    return TRUE;
+  return FALSE;
+}
+
+FX_BOOL CPDFSDK_DateTime::operator<(CPDFSDK_DateTime& datetime) {
+  CPDFSDK_DateTime dt1 = ToGMT();
+  CPDFSDK_DateTime dt2 = datetime.ToGMT();
+  int d1 =
+      (((int)dt1.dt.year) << 16) | (((int)dt1.dt.month) << 8) | (int)dt1.dt.day;
+  int d2 = (((int)dt1.dt.hour) << 16) | (((int)dt1.dt.minute) << 8) |
+           (int)dt1.dt.second;
+  int d3 =
+      (((int)dt2.dt.year) << 16) | (((int)dt2.dt.month) << 8) | (int)dt2.dt.day;
+  int d4 = (((int)dt2.dt.hour) << 16) | (((int)dt2.dt.minute) << 8) |
+           (int)dt2.dt.second;
+
+  if (d1 < d3)
+    return TRUE;
+  if (d2 < d4)
+    return TRUE;
+  return FALSE;
+}
+
+FX_BOOL CPDFSDK_DateTime::operator<=(CPDFSDK_DateTime& datetime) {
+  CPDFSDK_DateTime dt1 = ToGMT();
+  CPDFSDK_DateTime dt2 = datetime.ToGMT();
+  int d1 =
+      (((int)dt1.dt.year) << 16) | (((int)dt1.dt.month) << 8) | (int)dt1.dt.day;
+  int d2 = (((int)dt1.dt.hour) << 16) | (((int)dt1.dt.minute) << 8) |
+           (int)dt1.dt.second;
+  int d3 =
+      (((int)dt2.dt.year) << 16) | (((int)dt2.dt.month) << 8) | (int)dt2.dt.day;
+  int d4 = (((int)dt2.dt.hour) << 16) | (((int)dt2.dt.minute) << 8) |
+           (int)dt2.dt.second;
+
+  if (d1 <= d3)
+    return TRUE;
+  if (d2 <= d4)
+    return TRUE;
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_DateTime::operator < (CPDFSDK_DateTime& datetime)
-{
-    CPDFSDK_DateTime dt1 = ToGMT();
-    CPDFSDK_DateTime dt2 = datetime.ToGMT();
-    int d1 = (((int)dt1.dt.year) << 16) | (((int)dt1.dt.month) << 8) | (int)dt1.dt.day;
-    int d2 = (((int)dt1.dt.hour) << 16) | (((int)dt1.dt.minute) << 8) | (int)dt1.dt.second;
-    int d3 = (((int)dt2.dt.year) << 16) | (((int)dt2.dt.month) << 8) | (int)dt2.dt.day;
-    int d4 = (((int)dt2.dt.hour) << 16) | (((int)dt2.dt.minute) << 8) | (int)dt2.dt.second;
+CPDFSDK_DateTime::operator time_t() {
+  struct tm newtime;
 
-    if (d1 < d3) return TRUE;
-    if (d2 < d4) return TRUE;
-    return FALSE;
-}
+  newtime.tm_year = dt.year - 1900;
+  newtime.tm_mon = dt.month - 1;
+  newtime.tm_mday = dt.day;
+  newtime.tm_hour = dt.hour;
+  newtime.tm_min = dt.minute;
+  newtime.tm_sec = dt.second;
 
-FX_BOOL CPDFSDK_DateTime::operator <= (CPDFSDK_DateTime& datetime)
-{
-    CPDFSDK_DateTime dt1 = ToGMT();
-    CPDFSDK_DateTime dt2 = datetime.ToGMT();
-    int d1 = (((int)dt1.dt.year) << 16) | (((int)dt1.dt.month) << 8) | (int)dt1.dt.day;
-    int d2 = (((int)dt1.dt.hour) << 16) | (((int)dt1.dt.minute) << 8) | (int)dt1.dt.second;
-    int d3 = (((int)dt2.dt.year) << 16) | (((int)dt2.dt.month) << 8) | (int)dt2.dt.day;
-    int d4 = (((int)dt2.dt.hour) << 16) | (((int)dt2.dt.minute) << 8) | (int)dt2.dt.second;
-
-    if (d1 <= d3) return TRUE;
-    if (d2 <= d4) return TRUE;
-    return FALSE;
+  return mktime(&newtime);
 }
 
-CPDFSDK_DateTime::operator time_t()
-{
-    struct tm newtime;
-
-    newtime.tm_year = dt.year - 1900;
-    newtime.tm_mon = dt.month - 1;
-    newtime.tm_mday = dt.day;
-    newtime.tm_hour = dt.hour;
-    newtime.tm_min = dt.minute;
-    newtime.tm_sec = dt.second;
-
-    return mktime(&newtime);
-}
-
-CPDFSDK_DateTime& CPDFSDK_DateTime::FromPDFDateTimeString(const CFX_ByteString& dtStr)
-{
-    int strLength = dtStr.GetLength();
-    if (strLength > 0)
-    {
-        int i = 0;
-        int j, k;
-        FX_CHAR ch;
-        while (i < strLength)
-        {
-            ch = dtStr[i];
-            if (ch >= '0' && ch <= '9') break;
-            i ++;
-        }
-        if (i >= strLength) return *this;
-
-        j = 0;
-        k = 0;
-        while (i < strLength && j < 4)
-        {
-            ch = dtStr[i];
-            k = k * 10 + ch - '0';
-            j ++;
-            if (ch < '0' || ch > '9') break;
-            i ++;
-        }
-        dt.year = (int16_t)k;
-        if (i >= strLength || j < 4) return *this;
-
-        j = 0;
-        k = 0;
-        while (i < strLength && j < 2)
-        {
-            ch = dtStr[i];
-            k = k * 10 + ch - '0';
-            j ++;
-            if (ch < '0' || ch > '9') break;
-            i ++;
-        }
-        dt.month = (uint8_t)k;
-        if (i >= strLength || j < 2) return *this;
-
-        j = 0;
-        k = 0;
-        while (i < strLength && j < 2)
-        {
-            ch = dtStr[i];
-            k = k * 10 + ch - '0';
-            j ++;
-            if (ch < '0' || ch > '9') break;
-            i ++;
-        }
-        dt.day = (uint8_t)k;
-        if (i >= strLength || j < 2) return *this;
-
-        j = 0;
-        k = 0;
-        while (i < strLength && j < 2)
-        {
-            ch = dtStr[i];
-            k = k * 10 + ch - '0';
-            j ++;
-            if (ch < '0' || ch > '9') break;
-            i ++;
-        }
-        dt.hour = (uint8_t)k;
-        if (i >= strLength || j < 2) return *this;
-
-        j = 0;
-        k = 0;
-        while (i < strLength && j < 2)
-        {
-            ch = dtStr[i];
-            k = k * 10 + ch - '0';
-            j ++;
-            if (ch < '0' || ch > '9') break;
-            i ++;
-        }
-        dt.minute = (uint8_t)k;
-        if (i >= strLength || j < 2) return *this;
-
-        j = 0;
-        k = 0;
-        while (i < strLength && j < 2)
-        {
-            ch = dtStr[i];
-            k = k * 10 + ch - '0';
-            j ++;
-            if (ch < '0' || ch > '9') break;
-            i ++;
-        }
-        dt.second = (uint8_t)k;
-        if (i >= strLength || j < 2) return *this;
-
-        ch = dtStr[i ++];
-        if (ch != '-' && ch != '+') return *this;
-        if (ch == '-')
-            dt.tzHour = -1;
-        else
-            dt.tzHour = 1;
-        j = 0;
-        k = 0;
-        while (i < strLength && j < 2)
-        {
-            ch = dtStr[i];
-            k = k * 10 + ch - '0';
-            j ++;
-            if (ch < '0' || ch > '9') break;
-            i ++;
-        }
-        dt.tzHour *= (FX_CHAR)k;
-        if (i >= strLength || j < 2) return *this;
-
-        ch = dtStr[i ++];
-        if (ch != '\'') return *this;
-        j = 0;
-        k = 0;
-        while (i < strLength && j < 2)
-        {
-            ch = dtStr[i];
-            k = k * 10 + ch - '0';
-            j ++;
-            if (ch < '0' || ch > '9') break;
-            i ++;
-        }
-        dt.tzMinute = (uint8_t)k;
-        if (i >= strLength || j < 2) return *this;
+CPDFSDK_DateTime& CPDFSDK_DateTime::FromPDFDateTimeString(
+    const CFX_ByteString& dtStr) {
+  int strLength = dtStr.GetLength();
+  if (strLength > 0) {
+    int i = 0;
+    int j, k;
+    FX_CHAR ch;
+    while (i < strLength) {
+      ch = dtStr[i];
+      if (ch >= '0' && ch <= '9')
+        break;
+      i++;
     }
-
-    return  *this;
-}
-
-CFX_ByteString CPDFSDK_DateTime::ToCommonDateTimeString()
-{
-    CFX_ByteString str1;
-    str1.Format("%04d-%02d-%02d %02d:%02d:%02d ", dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second);
-    if (dt.tzHour < 0)
-        str1 += "-";
-    else
-        str1 += "+";
-    CFX_ByteString str2;
-    str2.Format("%02d:%02d", abs(dt.tzHour), dt.tzMinute);
-    return str1 + str2;
-}
-
-CFX_ByteString CPDFSDK_DateTime::ToPDFDateTimeString()
-{
-    CFX_ByteString dtStr;
-    char tempStr[32];
-    memset(tempStr, 0, sizeof(tempStr));
-    FXSYS_snprintf(tempStr, sizeof(tempStr) - 1, "D:%04d%02d%02d%02d%02d%02d",
-                   dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second);
-    dtStr = CFX_ByteString(tempStr);
-    if (dt.tzHour < 0)
-        dtStr += CFX_ByteString("-");
+    if (i >= strLength)
+      return *this;
+
+    j = 0;
+    k = 0;
+    while (i < strLength && j < 4) {
+      ch = dtStr[i];
+      k = k * 10 + ch - '0';
+      j++;
+      if (ch < '0' || ch > '9')
+        break;
+      i++;
+    }
+    dt.year = (int16_t)k;
+    if (i >= strLength || j < 4)
+      return *this;
+
+    j = 0;
+    k = 0;
+    while (i < strLength && j < 2) {
+      ch = dtStr[i];
+      k = k * 10 + ch - '0';
+      j++;
+      if (ch < '0' || ch > '9')
+        break;
+      i++;
+    }
+    dt.month = (uint8_t)k;
+    if (i >= strLength || j < 2)
+      return *this;
+
+    j = 0;
+    k = 0;
+    while (i < strLength && j < 2) {
+      ch = dtStr[i];
+      k = k * 10 + ch - '0';
+      j++;
+      if (ch < '0' || ch > '9')
+        break;
+      i++;
+    }
+    dt.day = (uint8_t)k;
+    if (i >= strLength || j < 2)
+      return *this;
+
+    j = 0;
+    k = 0;
+    while (i < strLength && j < 2) {
+      ch = dtStr[i];
+      k = k * 10 + ch - '0';
+      j++;
+      if (ch < '0' || ch > '9')
+        break;
+      i++;
+    }
+    dt.hour = (uint8_t)k;
+    if (i >= strLength || j < 2)
+      return *this;
+
+    j = 0;
+    k = 0;
+    while (i < strLength && j < 2) {
+      ch = dtStr[i];
+      k = k * 10 + ch - '0';
+      j++;
+      if (ch < '0' || ch > '9')
+        break;
+      i++;
+    }
+    dt.minute = (uint8_t)k;
+    if (i >= strLength || j < 2)
+      return *this;
+
+    j = 0;
+    k = 0;
+    while (i < strLength && j < 2) {
+      ch = dtStr[i];
+      k = k * 10 + ch - '0';
+      j++;
+      if (ch < '0' || ch > '9')
+        break;
+      i++;
+    }
+    dt.second = (uint8_t)k;
+    if (i >= strLength || j < 2)
+      return *this;
+
+    ch = dtStr[i++];
+    if (ch != '-' && ch != '+')
+      return *this;
+    if (ch == '-')
+      dt.tzHour = -1;
     else
-        dtStr += CFX_ByteString("+");
-    memset(tempStr, 0, sizeof(tempStr));
-    FXSYS_snprintf(tempStr, sizeof(tempStr) - 1, "%02d'%02d'", abs(dt.tzHour), dt.tzMinute);
-    dtStr += CFX_ByteString(tempStr);
-    return dtStr;
-}
-
-void CPDFSDK_DateTime::ToSystemTime(FX_SYSTEMTIME& st)
-{
-    CPDFSDK_DateTime dt = *this;
-    time_t t = (time_t)dt;
-    struct tm* pTime = localtime(&t);
-    if(pTime){
-        st.wYear = (FX_WORD)pTime->tm_year + 1900;
-        st.wMonth = (FX_WORD)pTime->tm_mon + 1;
-        st.wDay = (FX_WORD)pTime->tm_mday;
-        st.wDayOfWeek = (FX_WORD)pTime->tm_wday;
-        st.wHour = (FX_WORD)pTime->tm_hour;
-        st.wMinute = (FX_WORD)pTime->tm_min;
-        st.wSecond = (FX_WORD)pTime->tm_sec;
-        st.wMilliseconds = 0;
+      dt.tzHour = 1;
+    j = 0;
+    k = 0;
+    while (i < strLength && j < 2) {
+      ch = dtStr[i];
+      k = k * 10 + ch - '0';
+      j++;
+      if (ch < '0' || ch > '9')
+        break;
+      i++;
     }
-}
+    dt.tzHour *= (FX_CHAR)k;
+    if (i >= strLength || j < 2)
+      return *this;
+
+    ch = dtStr[i++];
+    if (ch != '\'')
+      return *this;
+    j = 0;
+    k = 0;
+    while (i < strLength && j < 2) {
+      ch = dtStr[i];
+      k = k * 10 + ch - '0';
+      j++;
+      if (ch < '0' || ch > '9')
+        break;
+      i++;
+    }
+    dt.tzMinute = (uint8_t)k;
+    if (i >= strLength || j < 2)
+      return *this;
+  }
+
+  return *this;
+}
+
+CFX_ByteString CPDFSDK_DateTime::ToCommonDateTimeString() {
+  CFX_ByteString str1;
+  str1.Format("%04d-%02d-%02d %02d:%02d:%02d ", dt.year, dt.month, dt.day,
+              dt.hour, dt.minute, dt.second);
+  if (dt.tzHour < 0)
+    str1 += "-";
+  else
+    str1 += "+";
+  CFX_ByteString str2;
+  str2.Format("%02d:%02d", abs(dt.tzHour), dt.tzMinute);
+  return str1 + str2;
+}
+
+CFX_ByteString CPDFSDK_DateTime::ToPDFDateTimeString() {
+  CFX_ByteString dtStr;
+  char tempStr[32];
+  memset(tempStr, 0, sizeof(tempStr));
+  FXSYS_snprintf(tempStr, sizeof(tempStr) - 1, "D:%04d%02d%02d%02d%02d%02d",
+                 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second);
+  dtStr = CFX_ByteString(tempStr);
+  if (dt.tzHour < 0)
+    dtStr += CFX_ByteString("-");
+  else
+    dtStr += CFX_ByteString("+");
+  memset(tempStr, 0, sizeof(tempStr));
+  FXSYS_snprintf(tempStr, sizeof(tempStr) - 1, "%02d'%02d'", abs(dt.tzHour),
+                 dt.tzMinute);
+  dtStr += CFX_ByteString(tempStr);
+  return dtStr;
+}
+
+void CPDFSDK_DateTime::ToSystemTime(FX_SYSTEMTIME& st) {
+  CPDFSDK_DateTime dt = *this;
+  time_t t = (time_t)dt;
+  struct tm* pTime = localtime(&t);
+  if (pTime) {
+    st.wYear = (FX_WORD)pTime->tm_year + 1900;
+    st.wMonth = (FX_WORD)pTime->tm_mon + 1;
+    st.wDay = (FX_WORD)pTime->tm_mday;
+    st.wDayOfWeek = (FX_WORD)pTime->tm_wday;
+    st.wHour = (FX_WORD)pTime->tm_hour;
+    st.wMinute = (FX_WORD)pTime->tm_min;
+    st.wSecond = (FX_WORD)pTime->tm_sec;
+    st.wMilliseconds = 0;
+  }
+}
+
+CPDFSDK_DateTime CPDFSDK_DateTime::ToGMT() {
+  CPDFSDK_DateTime dt = *this;
+  dt.AddSeconds(-_gAfxGetTimeZoneInSeconds(dt.dt.tzHour, dt.dt.tzMinute));
+  dt.dt.tzHour = 0;
+  dt.dt.tzMinute = 0;
+  return dt;
+}
+
+CPDFSDK_DateTime& CPDFSDK_DateTime::AddDays(short days) {
+  if (days == 0)
+    return *this;
 
-CPDFSDK_DateTime CPDFSDK_DateTime::ToGMT()
-{
-    CPDFSDK_DateTime dt = *this;
-    dt.AddSeconds(-_gAfxGetTimeZoneInSeconds(dt.dt.tzHour, dt.dt.tzMinute));
-    dt.dt.tzHour = 0;
-    dt.dt.tzMinute = 0;
-    return dt;
-}
-
-CPDFSDK_DateTime& CPDFSDK_DateTime::AddDays(short days)
-{
-    if (days == 0) return *this;
-
-    int16_t y = dt.year, yy;
-    uint8_t     m = dt.month;
-    uint8_t     d = dt.day;
-    int         mdays, ydays, ldays;
-
-    ldays = days;
-    if (ldays > 0)
-    {
-        yy = y;
-        if (((FX_WORD)m * 100 + d) > 300) yy ++;
-        ydays = _gAfxGetYearDays(yy);
-        while (ldays >= ydays)
-        {
-            y ++;
-            ldays -= ydays;
-            yy ++;
-            mdays = _gAfxGetMonthDays(y, m);
-            if (d > mdays)
-            {
-                m ++;
-                d -= mdays;
-            }
-            ydays = _gAfxGetYearDays(yy);
-        }
-        mdays = _gAfxGetMonthDays(y, m) - d + 1;
-        while (ldays >= mdays)
-        {
-            ldays -= mdays;
-            m ++;
-            d = 1;
-            mdays = _gAfxGetMonthDays(y, m);
-        }
-        d += ldays;
+  int16_t y = dt.year, yy;
+  uint8_t m = dt.month;
+  uint8_t d = dt.day;
+  int mdays, ydays, ldays;
+
+  ldays = days;
+  if (ldays > 0) {
+    yy = y;
+    if (((FX_WORD)m * 100 + d) > 300)
+      yy++;
+    ydays = _gAfxGetYearDays(yy);
+    while (ldays >= ydays) {
+      y++;
+      ldays -= ydays;
+      yy++;
+      mdays = _gAfxGetMonthDays(y, m);
+      if (d > mdays) {
+        m++;
+        d -= mdays;
+      }
+      ydays = _gAfxGetYearDays(yy);
     }
-    else
-    {
-        ldays *= -1;
-        yy = y;
-        if (((FX_WORD)m * 100 + d) < 300) yy --;
-        ydays = _gAfxGetYearDays(yy);
-        while (ldays >= ydays)
-        {
-            y --;
-            ldays -= ydays;
-            yy --;
-            mdays = _gAfxGetMonthDays(y, m);
-            if (d > mdays)
-            {
-                m ++;
-                d -= mdays;
-            }
-            ydays = _gAfxGetYearDays(yy);
-        }
-        while (ldays >= d)
-        {
-            ldays -= d;
-            m --;
-            mdays = _gAfxGetMonthDays(y, m);
-            d = mdays;
-        }
-        d -= ldays;
+    mdays = _gAfxGetMonthDays(y, m) - d + 1;
+    while (ldays >= mdays) {
+      ldays -= mdays;
+      m++;
+      d = 1;
+      mdays = _gAfxGetMonthDays(y, m);
+    }
+    d += ldays;
+  } else {
+    ldays *= -1;
+    yy = y;
+    if (((FX_WORD)m * 100 + d) < 300)
+      yy--;
+    ydays = _gAfxGetYearDays(yy);
+    while (ldays >= ydays) {
+      y--;
+      ldays -= ydays;
+      yy--;
+      mdays = _gAfxGetMonthDays(y, m);
+      if (d > mdays) {
+        m++;
+        d -= mdays;
+      }
+      ydays = _gAfxGetYearDays(yy);
     }
+    while (ldays >= d) {
+      ldays -= d;
+      m--;
+      mdays = _gAfxGetMonthDays(y, m);
+      d = mdays;
+    }
+    d -= ldays;
+  }
 
-    dt.year = y;
-    dt.month = m;
-    dt.day = d;
+  dt.year = y;
+  dt.month = m;
+  dt.day = d;
 
-    return *this;
+  return *this;
 }
 
-CPDFSDK_DateTime& CPDFSDK_DateTime::AddSeconds(int seconds)
-{
-    if (seconds == 0) return *this;
+CPDFSDK_DateTime& CPDFSDK_DateTime::AddSeconds(int seconds) {
+  if (seconds == 0)
+    return *this;
 
-    int n;
-    int days;
+  int n;
+  int days;
 
-    n = dt.hour * 3600 + dt.minute * 60 + dt.second + seconds;
-    if (n < 0)
-    {
-        days = (n - 86399) / 86400;
-        n -= days * 86400;
-    }
-    else
-    {
-        days = n / 86400;
-        n %= 86400;
-    }
-    dt.hour = (uint8_t)(n / 3600);
-    dt.hour %= 24;
-    n %= 3600;
-    dt.minute = (uint8_t)(n / 60);
-    dt.second = (uint8_t)(n % 60);
-    if (days != 0) AddDays(days);
+  n = dt.hour * 3600 + dt.minute * 60 + dt.second + seconds;
+  if (n < 0) {
+    days = (n - 86399) / 86400;
+    n -= days * 86400;
+  } else {
+    days = n / 86400;
+    n %= 86400;
+  }
+  dt.hour = (uint8_t)(n / 3600);
+  dt.hour %= 24;
+  n %= 3600;
+  dt.minute = (uint8_t)(n / 60);
+  dt.second = (uint8_t)(n % 60);
+  if (days != 0)
+    AddDays(days);
 
-    return *this;
+  return *this;
 }
 
-
 //---------------------------------------------------------------------------
 //                              CPDFSDK_Annot
 //---------------------------------------------------------------------------
-CPDFSDK_Annot::CPDFSDK_Annot(CPDFSDK_PageView* pPageView) :
-m_pPageView(pPageView),
-m_bSelected(FALSE),
-m_nTabOrder(-1)
-{
-}
+CPDFSDK_Annot::CPDFSDK_Annot(CPDFSDK_PageView* pPageView)
+    : m_pPageView(pPageView), m_bSelected(FALSE), m_nTabOrder(-1) {}
 
+// CPDFSDK_BAAnnot
+CPDFSDK_BAAnnot::CPDFSDK_BAAnnot(CPDF_Annot* pAnnot,
+                                 CPDFSDK_PageView* pPageView)
+    : CPDFSDK_Annot(pPageView), m_pAnnot(pAnnot) {}
 
-//CPDFSDK_BAAnnot
-CPDFSDK_BAAnnot::CPDFSDK_BAAnnot(CPDF_Annot* pAnnot, CPDFSDK_PageView* pPageView) :
-    CPDFSDK_Annot(pPageView),
-        m_pAnnot(pAnnot)
-{
-}
-
-CPDFSDK_BAAnnot::~CPDFSDK_BAAnnot()
-{
-    m_pAnnot = NULL;
+CPDFSDK_BAAnnot::~CPDFSDK_BAAnnot() {
+  m_pAnnot = NULL;
 }
 
-CPDF_Annot* CPDFSDK_BAAnnot::GetPDFAnnot()
-{
-    return m_pAnnot;
+CPDF_Annot* CPDFSDK_BAAnnot::GetPDFAnnot() {
+  return m_pAnnot;
 }
 
-FX_BOOL CPDFSDK_Annot::IsSelected()
-{
-    return m_bSelected;
+FX_BOOL CPDFSDK_Annot::IsSelected() {
+  return m_bSelected;
 }
 
-void CPDFSDK_Annot::SetSelected(FX_BOOL bSelected)
-{
-    m_bSelected = bSelected;
+void CPDFSDK_Annot::SetSelected(FX_BOOL bSelected) {
+  m_bSelected = bSelected;
 }
 
 // Tab Order
-int CPDFSDK_Annot::GetTabOrder()
-{
-    return m_nTabOrder;
+int CPDFSDK_Annot::GetTabOrder() {
+  return m_nTabOrder;
 }
 
-void CPDFSDK_Annot::SetTabOrder(int iTabOrder)
-{
-    m_nTabOrder = iTabOrder;
+void CPDFSDK_Annot::SetTabOrder(int iTabOrder) {
+  m_nTabOrder = iTabOrder;
 }
 
-CPDF_Dictionary* CPDFSDK_BAAnnot::GetAnnotDict() const
-{
-    ASSERT(m_pAnnot != NULL);
+CPDF_Dictionary* CPDFSDK_BAAnnot::GetAnnotDict() const {
+  ASSERT(m_pAnnot != NULL);
 
-    return m_pAnnot->GetAnnotDict();
+  return m_pAnnot->GetAnnotDict();
 }
 
-void CPDFSDK_BAAnnot::SetRect(const CPDF_Rect& rect)
-{
-    ASSERT(rect.right - rect.left >= GetMinWidth());
-    ASSERT(rect.top - rect.bottom >= GetMinHeight());
+void CPDFSDK_BAAnnot::SetRect(const CPDF_Rect& rect) {
+  ASSERT(rect.right - rect.left >= GetMinWidth());
+  ASSERT(rect.top - rect.bottom >= GetMinHeight());
 
-    m_pAnnot->GetAnnotDict()->SetAtRect("Rect", rect);
+  m_pAnnot->GetAnnotDict()->SetAtRect("Rect", rect);
 }
 
-CPDF_Rect CPDFSDK_BAAnnot::GetRect() const
-{
-    ASSERT(m_pAnnot != NULL);
+CPDF_Rect CPDFSDK_BAAnnot::GetRect() const {
+  ASSERT(m_pAnnot != NULL);
 
-    CPDF_Rect rect;
-    m_pAnnot->GetRect(rect);
+  CPDF_Rect rect;
+  m_pAnnot->GetRect(rect);
 
-    return rect;
+  return rect;
 }
 
-CFX_ByteString CPDFSDK_BAAnnot::GetType() const
-{
-    ASSERT(m_pAnnot != NULL);
+CFX_ByteString CPDFSDK_BAAnnot::GetType() const {
+  ASSERT(m_pAnnot != NULL);
 
-    return m_pAnnot->GetSubType();
+  return m_pAnnot->GetSubType();
 }
 
-CFX_ByteString CPDFSDK_BAAnnot::GetSubType() const
-{
-    return "";
+CFX_ByteString CPDFSDK_BAAnnot::GetSubType() const {
+  return "";
 }
 
-void CPDFSDK_BAAnnot::ResetAppearance()
-{
-    ASSERT(FALSE);
+void CPDFSDK_BAAnnot::ResetAppearance() {
+  ASSERT(FALSE);
 }
 
-void CPDFSDK_BAAnnot::DrawAppearance(CFX_RenderDevice* pDevice, const CPDF_Matrix* pUser2Device,
-                                   CPDF_Annot::AppearanceMode mode, const CPDF_RenderOptions* pOptions)
-{
-    ASSERT(m_pPageView != NULL);
-    ASSERT(m_pAnnot != NULL);
+void CPDFSDK_BAAnnot::DrawAppearance(CFX_RenderDevice* pDevice,
+                                     const CPDF_Matrix* pUser2Device,
+                                     CPDF_Annot::AppearanceMode mode,
+                                     const CPDF_RenderOptions* pOptions) {
+  ASSERT(m_pPageView != NULL);
+  ASSERT(m_pAnnot != NULL);
 
-    m_pAnnot->DrawAppearance(m_pPageView->GetPDFPage(), pDevice, pUser2Device, mode, pOptions);
+  m_pAnnot->DrawAppearance(m_pPageView->GetPDFPage(), pDevice, pUser2Device,
+                           mode, pOptions);
 }
 
-FX_BOOL CPDFSDK_BAAnnot::IsAppearanceValid()
-{
-    return m_pAnnot->GetAnnotDict()->GetDict("AP") != NULL;
+FX_BOOL CPDFSDK_BAAnnot::IsAppearanceValid() {
+  return m_pAnnot->GetAnnotDict()->GetDict("AP") != NULL;
 }
 
-FX_BOOL CPDFSDK_BAAnnot::IsAppearanceValid(CPDF_Annot::AppearanceMode mode)
-{
-    CPDF_Dictionary* pAP = m_pAnnot->GetAnnotDict()->GetDict("AP");
-    if (pAP == NULL) return FALSE;
-
-    // Choose the right sub-ap
-    const FX_CHAR* ap_entry = "N";
-    if (mode == CPDF_Annot::Down)
-        ap_entry = "D";
-    else if (mode == CPDF_Annot::Rollover)
-        ap_entry = "R";
-    if (!pAP->KeyExist(ap_entry))
-        ap_entry = "N";
+FX_BOOL CPDFSDK_BAAnnot::IsAppearanceValid(CPDF_Annot::AppearanceMode mode) {
+  CPDF_Dictionary* pAP = m_pAnnot->GetAnnotDict()->GetDict("AP");
+  if (pAP == NULL)
+    return FALSE;
 
-    // Get the AP stream or subdirectory
-    CPDF_Object* psub = pAP->GetElementValue(ap_entry);
-    if (psub == NULL) return FALSE;
+  // Choose the right sub-ap
+  const FX_CHAR* ap_entry = "N";
+  if (mode == CPDF_Annot::Down)
+    ap_entry = "D";
+  else if (mode == CPDF_Annot::Rollover)
+    ap_entry = "R";
+  if (!pAP->KeyExist(ap_entry))
+    ap_entry = "N";
+
+  // Get the AP stream or subdirectory
+  CPDF_Object* psub = pAP->GetElementValue(ap_entry);
+  if (psub == NULL)
+    return FALSE;
 
-    return TRUE;
+  return TRUE;
 }
 
-void CPDFSDK_BAAnnot::DrawBorder(CFX_RenderDevice* pDevice, const CPDF_Matrix* pUser2Device,
-                           const CPDF_RenderOptions* pOptions)
-{
-    ASSERT(m_pAnnot != NULL);
-    m_pAnnot->DrawBorder(pDevice, pUser2Device, pOptions);
+void CPDFSDK_BAAnnot::DrawBorder(CFX_RenderDevice* pDevice,
+                                 const CPDF_Matrix* pUser2Device,
+                                 const CPDF_RenderOptions* pOptions) {
+  ASSERT(m_pAnnot != NULL);
+  m_pAnnot->DrawBorder(pDevice, pUser2Device, pOptions);
 }
 
-void CPDFSDK_BAAnnot::ClearCachedAP()
-{
-    ASSERT(m_pAnnot != NULL);
-    m_pAnnot->ClearCachedAP();
+void CPDFSDK_BAAnnot::ClearCachedAP() {
+  ASSERT(m_pAnnot != NULL);
+  m_pAnnot->ClearCachedAP();
 }
 
-void CPDFSDK_BAAnnot::SetContents(const CFX_WideString& sContents)
-{
-    if (sContents.IsEmpty())
-        m_pAnnot->GetAnnotDict()->RemoveAt("Contents");
-    else
-        m_pAnnot->GetAnnotDict()->SetAtString("Contents", PDF_EncodeText(sContents));
+void CPDFSDK_BAAnnot::SetContents(const CFX_WideString& sContents) {
+  if (sContents.IsEmpty())
+    m_pAnnot->GetAnnotDict()->RemoveAt("Contents");
+  else
+    m_pAnnot->GetAnnotDict()->SetAtString("Contents",
+                                          PDF_EncodeText(sContents));
 }
 
-CFX_WideString CPDFSDK_BAAnnot::GetContents() const
-{
-    return m_pAnnot->GetAnnotDict()->GetUnicodeText("Contents");
+CFX_WideString CPDFSDK_BAAnnot::GetContents() const {
+  return m_pAnnot->GetAnnotDict()->GetUnicodeText("Contents");
 }
 
-void CPDFSDK_BAAnnot::SetAnnotName(const CFX_WideString& sName)
-{
-    if (sName.IsEmpty())
-        m_pAnnot->GetAnnotDict()->RemoveAt("NM");
-    else
-        m_pAnnot->GetAnnotDict()->SetAtString("NM", PDF_EncodeText(sName));
+void CPDFSDK_BAAnnot::SetAnnotName(const CFX_WideString& sName) {
+  if (sName.IsEmpty())
+    m_pAnnot->GetAnnotDict()->RemoveAt("NM");
+  else
+    m_pAnnot->GetAnnotDict()->SetAtString("NM", PDF_EncodeText(sName));
 }
 
-CFX_WideString CPDFSDK_BAAnnot::GetAnnotName() const
-{
-    return m_pAnnot->GetAnnotDict()->GetUnicodeText("NM");
+CFX_WideString CPDFSDK_BAAnnot::GetAnnotName() const {
+  return m_pAnnot->GetAnnotDict()->GetUnicodeText("NM");
 }
 
-void CPDFSDK_BAAnnot::SetModifiedDate(const FX_SYSTEMTIME& st)
-{
-    CPDFSDK_DateTime dt(st);
-    CFX_ByteString str = dt.ToPDFDateTimeString();
+void CPDFSDK_BAAnnot::SetModifiedDate(const FX_SYSTEMTIME& st) {
+  CPDFSDK_DateTime dt(st);
+  CFX_ByteString str = dt.ToPDFDateTimeString();
 
-    if (str.IsEmpty())
-        m_pAnnot->GetAnnotDict()->RemoveAt("M");
-    else
-        m_pAnnot->GetAnnotDict()->SetAtString("M", str);
+  if (str.IsEmpty())
+    m_pAnnot->GetAnnotDict()->RemoveAt("M");
+  else
+    m_pAnnot->GetAnnotDict()->SetAtString("M", str);
 }
 
-FX_SYSTEMTIME CPDFSDK_BAAnnot::GetModifiedDate() const
-{
-    FX_SYSTEMTIME systime;
-    CFX_ByteString str = m_pAnnot->GetAnnotDict()->GetString("M");
+FX_SYSTEMTIME CPDFSDK_BAAnnot::GetModifiedDate() const {
+  FX_SYSTEMTIME systime;
+  CFX_ByteString str = m_pAnnot->GetAnnotDict()->GetString("M");
 
-    CPDFSDK_DateTime dt(str);
-    dt.ToSystemTime(systime);
+  CPDFSDK_DateTime dt(str);
+  dt.ToSystemTime(systime);
 
-    return systime;
+  return systime;
 }
 
-void CPDFSDK_BAAnnot::SetFlags(int nFlags)
-{
-    m_pAnnot->GetAnnotDict()->SetAtInteger("F", nFlags);
+void CPDFSDK_BAAnnot::SetFlags(int nFlags) {
+  m_pAnnot->GetAnnotDict()->SetAtInteger("F", nFlags);
 }
 
-int CPDFSDK_BAAnnot::GetFlags() const
-{
-    return m_pAnnot->GetAnnotDict()->GetInteger("F");
+int CPDFSDK_BAAnnot::GetFlags() const {
+  return m_pAnnot->GetAnnotDict()->GetInteger("F");
 }
 
-void CPDFSDK_BAAnnot::SetAppState(const CFX_ByteString& str)
-{
-    if (str.IsEmpty())
-        m_pAnnot->GetAnnotDict()->RemoveAt("AS");
-    else
-        m_pAnnot->GetAnnotDict()->SetAtString("AS", str);
+void CPDFSDK_BAAnnot::SetAppState(const CFX_ByteString& str) {
+  if (str.IsEmpty())
+    m_pAnnot->GetAnnotDict()->RemoveAt("AS");
+  else
+    m_pAnnot->GetAnnotDict()->SetAtString("AS", str);
 }
 
-CFX_ByteString CPDFSDK_BAAnnot::GetAppState() const
-{
-    return m_pAnnot->GetAnnotDict()->GetString("AS");
+CFX_ByteString CPDFSDK_BAAnnot::GetAppState() const {
+  return m_pAnnot->GetAnnotDict()->GetString("AS");
 }
 
-void CPDFSDK_BAAnnot::SetStructParent(int key)
-{
-    m_pAnnot->GetAnnotDict()->SetAtInteger("StructParent", key);
+void CPDFSDK_BAAnnot::SetStructParent(int key) {
+  m_pAnnot->GetAnnotDict()->SetAtInteger("StructParent", key);
 }
 
-int CPDFSDK_BAAnnot::GetStructParent() const
-{
-    return m_pAnnot->GetAnnotDict()->GetInteger("StructParent");
+int CPDFSDK_BAAnnot::GetStructParent() const {
+  return m_pAnnot->GetAnnotDict()->GetInteger("StructParent");
 }
 
-//border
-void CPDFSDK_BAAnnot::SetBorderWidth(int nWidth)
-{
-    CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArray("Border");
-
-    if (pBorder)
-    {
-        pBorder->SetAt(2, FX_NEW CPDF_Number(nWidth));
-    }
-    else
-    {
-        CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDict("BS");
+// border
+void CPDFSDK_BAAnnot::SetBorderWidth(int nWidth) {
+  CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArray("Border");
 
-        if (!pBSDict)
-        {
-            pBSDict = FX_NEW CPDF_Dictionary;
-            m_pAnnot->GetAnnotDict()->SetAt("BS", pBSDict);
-        }
+  if (pBorder) {
+    pBorder->SetAt(2, FX_NEW CPDF_Number(nWidth));
+  } else {
+    CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDict("BS");
 
-        pBSDict->SetAtInteger("W", nWidth);
+    if (!pBSDict) {
+      pBSDict = FX_NEW CPDF_Dictionary;
+      m_pAnnot->GetAnnotDict()->SetAt("BS", pBSDict);
     }
+
+    pBSDict->SetAtInteger("W", nWidth);
+  }
 }
 
-int CPDFSDK_BAAnnot::GetBorderWidth() const
-{
-    if (CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArray("Border")) {
-        return pBorder->GetInteger(2);
-    }
-    if (CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDict("BS")) {
-        return pBSDict->GetInteger("W", 1);
-    }
-    return 1;
+int CPDFSDK_BAAnnot::GetBorderWidth() const {
+  if (CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArray("Border")) {
+    return pBorder->GetInteger(2);
+  }
+  if (CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDict("BS")) {
+    return pBSDict->GetInteger("W", 1);
+  }
+  return 1;
 }
 
-void CPDFSDK_BAAnnot::SetBorderStyle(int nStyle)
-{
-    CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDict("BS");
-    if (!pBSDict)
-    {
-        pBSDict = new CPDF_Dictionary;
-        m_pAnnot->GetAnnotDict()->SetAt("BS", pBSDict);
-    }
+void CPDFSDK_BAAnnot::SetBorderStyle(int nStyle) {
+  CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDict("BS");
+  if (!pBSDict) {
+    pBSDict = new CPDF_Dictionary;
+    m_pAnnot->GetAnnotDict()->SetAt("BS", pBSDict);
+  }
 
-    switch (nStyle)
-    {
+  switch (nStyle) {
     case BBS_SOLID:
-        pBSDict->SetAtName("S", "S");
-        break;
+      pBSDict->SetAtName("S", "S");
+      break;
     case BBS_DASH:
-        pBSDict->SetAtName("S", "D");
-        break;
+      pBSDict->SetAtName("S", "D");
+      break;
     case BBS_BEVELED:
-        pBSDict->SetAtName("S", "B");
-        break;
+      pBSDict->SetAtName("S", "B");
+      break;
     case BBS_INSET:
-        pBSDict->SetAtName("S", "I");
-        break;
+      pBSDict->SetAtName("S", "I");
+      break;
     case BBS_UNDERLINE:
-        pBSDict->SetAtName("S", "U");
-        break;
-    }
-}
-
-int CPDFSDK_BAAnnot::GetBorderStyle() const
-{
-    CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDict("BS");
-    if (pBSDict)
-    {
-        CFX_ByteString sBorderStyle = pBSDict->GetString("S", "S");
-        if (sBorderStyle == "S") return BBS_SOLID;
-        if (sBorderStyle == "D") return BBS_DASH;
-        if (sBorderStyle == "B") return BBS_BEVELED;
-        if (sBorderStyle == "I") return BBS_INSET;
-        if (sBorderStyle == "U") return BBS_UNDERLINE;
+      pBSDict->SetAtName("S", "U");
+      break;
+  }
+}
+
+int CPDFSDK_BAAnnot::GetBorderStyle() const {
+  CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDict("BS");
+  if (pBSDict) {
+    CFX_ByteString sBorderStyle = pBSDict->GetString("S", "S");
+    if (sBorderStyle == "S")
+      return BBS_SOLID;
+    if (sBorderStyle == "D")
+      return BBS_DASH;
+    if (sBorderStyle == "B")
+      return BBS_BEVELED;
+    if (sBorderStyle == "I")
+      return BBS_INSET;
+    if (sBorderStyle == "U")
+      return BBS_UNDERLINE;
+  }
+
+  CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArray("Border");
+  if (pBorder) {
+    if (pBorder->GetCount() >= 4) {
+      CPDF_Array* pDP = pBorder->GetArray(3);
+      if (pDP && pDP->GetCount() > 0)
+        return BBS_DASH;
     }
+  }
 
-    CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArray("Border");
-    if (pBorder)
-    {
-        if (pBorder->GetCount() >= 4)
-        {
-            CPDF_Array *pDP = pBorder->GetArray(3);
-            if (pDP && pDP->GetCount() > 0)
-                return BBS_DASH;
-        }
-    }
-
-    return BBS_SOLID;
+  return BBS_SOLID;
 }
 
-void CPDFSDK_BAAnnot::SetBorderDash(const CFX_IntArray& array)
-{
-    CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDict("BS");
-    if (!pBSDict)
-    {
-        pBSDict = new CPDF_Dictionary;
-        m_pAnnot->GetAnnotDict()->SetAt("BS", pBSDict);
-    }
+void CPDFSDK_BAAnnot::SetBorderDash(const CFX_IntArray& array) {
+  CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDict("BS");
+  if (!pBSDict) {
+    pBSDict = new CPDF_Dictionary;
+    m_pAnnot->GetAnnotDict()->SetAt("BS", pBSDict);
+  }
 
-    CPDF_Array* pArray = FX_NEW CPDF_Array;
-    for (int i=0,sz=array.GetSize(); i<sz; i++)
-    {
-        pArray->AddInteger(array[i]);
-    }
+  CPDF_Array* pArray = FX_NEW CPDF_Array;
+  for (int i = 0, sz = array.GetSize(); i < sz; i++) {
+    pArray->AddInteger(array[i]);
+  }
 
-    pBSDict->SetAt("D", pArray);
+  pBSDict->SetAt("D", pArray);
 }
 
-void CPDFSDK_BAAnnot::GetBorderDash(CFX_IntArray& array) const
-{
-    CPDF_Array* pDash = NULL;
+void CPDFSDK_BAAnnot::GetBorderDash(CFX_IntArray& array) const {
+  CPDF_Array* pDash = NULL;
 
-    CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArray("Border");
-    if (pBorder)
-    {
-        pDash = pBorder->GetArray(3);
-    }
-    else
-    {
-        CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDict("BS");
-        if (pBSDict)
-        {
-            pDash = pBSDict->GetArray("D");
-        }
+  CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArray("Border");
+  if (pBorder) {
+    pDash = pBorder->GetArray(3);
+  } else {
+    CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDict("BS");
+    if (pBSDict) {
+      pDash = pBSDict->GetArray("D");
     }
+  }
 
-    if (pDash)
-    {
-        for (int i=0,sz=pDash->GetCount(); i<sz; i++)
-        {
-            array.Add(pDash->GetInteger(i));
-        }
+  if (pDash) {
+    for (int i = 0, sz = pDash->GetCount(); i < sz; i++) {
+      array.Add(pDash->GetInteger(i));
     }
+  }
 }
 
-void CPDFSDK_BAAnnot::SetColor(FX_COLORREF color)
-{
-    CPDF_Array* pArray = new CPDF_Array;
-    pArray->AddNumber((FX_FLOAT)FXSYS_GetRValue(color) / 255.0f);
-    pArray->AddNumber((FX_FLOAT)FXSYS_GetGValue(color) / 255.0f);
-    pArray->AddNumber((FX_FLOAT)FXSYS_GetBValue(color) / 255.0f);
-    m_pAnnot->GetAnnotDict()->SetAt("C", pArray);
+void CPDFSDK_BAAnnot::SetColor(FX_COLORREF color) {
+  CPDF_Array* pArray = new CPDF_Array;
+  pArray->AddNumber((FX_FLOAT)FXSYS_GetRValue(color) / 255.0f);
+  pArray->AddNumber((FX_FLOAT)FXSYS_GetGValue(color) / 255.0f);
+  pArray->AddNumber((FX_FLOAT)FXSYS_GetBValue(color) / 255.0f);
+  m_pAnnot->GetAnnotDict()->SetAt("C", pArray);
 }
 
-void CPDFSDK_BAAnnot::RemoveColor()
-{
-    m_pAnnot->GetAnnotDict()->RemoveAt("C");
+void CPDFSDK_BAAnnot::RemoveColor() {
+  m_pAnnot->GetAnnotDict()->RemoveAt("C");
 }
 
-FX_BOOL CPDFSDK_BAAnnot::GetColor(FX_COLORREF& color) const
-{
-    if (CPDF_Array* pEntry = m_pAnnot->GetAnnotDict()->GetArray("C"))
-    {
-        int nCount = pEntry->GetCount();
-        if (nCount == 1)
-        {
-            FX_FLOAT g = pEntry->GetNumber(0) * 255;
+FX_BOOL CPDFSDK_BAAnnot::GetColor(FX_COLORREF& color) const {
+  if (CPDF_Array* pEntry = m_pAnnot->GetAnnotDict()->GetArray("C")) {
+    int nCount = pEntry->GetCount();
+    if (nCount == 1) {
+      FX_FLOAT g = pEntry->GetNumber(0) * 255;
 
-            color = FXSYS_RGB((int)g, (int)g, (int)g);
+      color = FXSYS_RGB((int)g, (int)g, (int)g);
 
-            return TRUE;
-        }
-        else if (nCount == 3)
-        {
-            FX_FLOAT r = pEntry->GetNumber(0) * 255;
-            FX_FLOAT g = pEntry->GetNumber(1) * 255;
-            FX_FLOAT b = pEntry->GetNumber(2) * 255;
+      return TRUE;
+    } else if (nCount == 3) {
+      FX_FLOAT r = pEntry->GetNumber(0) * 255;
+      FX_FLOAT g = pEntry->GetNumber(1) * 255;
+      FX_FLOAT b = pEntry->GetNumber(2) * 255;
 
-            color = FXSYS_RGB((int)r, (int)g, (int)b);
+      color = FXSYS_RGB((int)r, (int)g, (int)b);
 
-            return TRUE;
-        }
-        else if (nCount == 4)
-        {
-            FX_FLOAT c = pEntry->GetNumber(0);
-            FX_FLOAT m = pEntry->GetNumber(1);
-            FX_FLOAT y = pEntry->GetNumber(2);
-            FX_FLOAT k = pEntry->GetNumber(3);
+      return TRUE;
+    } else if (nCount == 4) {
+      FX_FLOAT c = pEntry->GetNumber(0);
+      FX_FLOAT m = pEntry->GetNumber(1);
+      FX_FLOAT y = pEntry->GetNumber(2);
+      FX_FLOAT k = pEntry->GetNumber(3);
 
-            FX_FLOAT r = 1.0f - FX_MIN(1.0f, c + k);
-            FX_FLOAT g = 1.0f - FX_MIN(1.0f, m + k);
-            FX_FLOAT b = 1.0f - FX_MIN(1.0f, y + k);
+      FX_FLOAT r = 1.0f - FX_MIN(1.0f, c + k);
+      FX_FLOAT g = 1.0f - FX_MIN(1.0f, m + k);
+      FX_FLOAT b = 1.0f - FX_MIN(1.0f, y + k);
 
-            color = FXSYS_RGB((int)(r * 255), (int)(g * 255), (int)(b * 255));
+      color = FXSYS_RGB((int)(r * 255), (int)(g * 255), (int)(b * 255));
 
-            return TRUE;
-        }
+      return TRUE;
     }
-
-    return FALSE;
-}
-
-
-void CPDFSDK_BAAnnot::WriteAppearance(const CFX_ByteString& sAPType, const CPDF_Rect& rcBBox,
-                                const CPDF_Matrix& matrix, const CFX_ByteString& sContents,
-                                const CFX_ByteString& sAPState)
-{
-    CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDict("AP");
-
-    if (!pAPDict)
-    {
-        pAPDict = new CPDF_Dictionary;
-        m_pAnnot->GetAnnotDict()->SetAt("AP", pAPDict);
+  }
+
+  return FALSE;
+}
+
+void CPDFSDK_BAAnnot::WriteAppearance(const CFX_ByteString& sAPType,
+                                      const CPDF_Rect& rcBBox,
+                                      const CPDF_Matrix& matrix,
+                                      const CFX_ByteString& sContents,
+                                      const CFX_ByteString& sAPState) {
+  CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDict("AP");
+
+  if (!pAPDict) {
+    pAPDict = new CPDF_Dictionary;
+    m_pAnnot->GetAnnotDict()->SetAt("AP", pAPDict);
+  }
+
+  CPDF_Stream* pStream = NULL;
+  CPDF_Dictionary* pParentDict = NULL;
+
+  if (sAPState.IsEmpty()) {
+    pParentDict = pAPDict;
+    pStream = pAPDict->GetStream(sAPType);
+  } else {
+    CPDF_Dictionary* pAPTypeDict = pAPDict->GetDict(sAPType);
+    if (!pAPTypeDict) {
+      pAPTypeDict = FX_NEW CPDF_Dictionary;
+      pAPDict->SetAt(sAPType, pAPTypeDict);
     }
 
-    CPDF_Stream* pStream = NULL;
-    CPDF_Dictionary* pParentDict = NULL;
+    pParentDict = pAPTypeDict;
+    pStream = pAPTypeDict->GetStream(sAPState);
+  }
 
-    if (sAPState.IsEmpty())
-    {
-        pParentDict = pAPDict;
-        pStream = pAPDict->GetStream(sAPType);
-    }
-    else
-    {
-        CPDF_Dictionary* pAPTypeDict = pAPDict->GetDict(sAPType);
-        if (!pAPTypeDict)
-        {
-            pAPTypeDict = FX_NEW CPDF_Dictionary;
-            pAPDict->SetAt(sAPType, pAPTypeDict);
-        }
-
-        pParentDict = pAPTypeDict;
-        pStream = pAPTypeDict->GetStream(sAPState);
-    }
+  if (!pStream) {
+    ASSERT(m_pPageView != NULL);
+    CPDF_Document* pDoc = m_pPageView->GetPDFDocument();
+    ASSERT(pDoc != NULL);
 
-    if (!pStream)
-    {
-        ASSERT(m_pPageView != NULL);
-        CPDF_Document* pDoc = m_pPageView->GetPDFDocument();
-        ASSERT(pDoc != NULL);
-
-        pStream = FX_NEW CPDF_Stream(NULL, 0, NULL);
-        int32_t objnum = pDoc->AddIndirectObject(pStream);
-        //pAPDict->SetAtReference(sAPType, pDoc, objnum);
-        ASSERT(pParentDict != NULL);
-        pParentDict->SetAtReference(sAPType, pDoc, objnum);
-    }
+    pStream = FX_NEW CPDF_Stream(NULL, 0, NULL);
+    int32_t objnum = pDoc->AddIndirectObject(pStream);
+    // pAPDict->SetAtReference(sAPType, pDoc, objnum);
+    ASSERT(pParentDict != NULL);
+    pParentDict->SetAtReference(sAPType, pDoc, objnum);
+  }
 
-    CPDF_Dictionary * pStreamDict = pStream->GetDict();
+  CPDF_Dictionary* pStreamDict = pStream->GetDict();
 
-    if (!pStreamDict)
-    {
-        pStreamDict = FX_NEW CPDF_Dictionary;
-        pStreamDict->SetAtName("Type", "XObject");
-        pStreamDict->SetAtName("Subtype", "Form");
-        pStreamDict->SetAtInteger("FormType", 1);
-        pStream->InitStream(NULL,0,pStreamDict);
-    }
+  if (!pStreamDict) {
+    pStreamDict = FX_NEW CPDF_Dictionary;
+    pStreamDict->SetAtName("Type", "XObject");
+    pStreamDict->SetAtName("Subtype", "Form");
+    pStreamDict->SetAtInteger("FormType", 1);
+    pStream->InitStream(NULL, 0, pStreamDict);
+  }
 
-    if (pStreamDict)
-    {
-        pStreamDict->SetAtMatrix("Matrix",matrix);
-        pStreamDict->SetAtRect("BBox", rcBBox);
-    }
+  if (pStreamDict) {
+    pStreamDict->SetAtMatrix("Matrix", matrix);
+    pStreamDict->SetAtRect("BBox", rcBBox);
+  }
 
-    pStream->SetData((uint8_t*)sContents.c_str(), sContents.GetLength(), FALSE, FALSE);
+  pStream->SetData((uint8_t*)sContents.c_str(), sContents.GetLength(), FALSE,
+                   FALSE);
 }
 
-#define BA_ANNOT_MINWIDTH           1
-#define BA_ANNOT_MINHEIGHT          1
+#define BA_ANNOT_MINWIDTH 1
+#define BA_ANNOT_MINHEIGHT 1
 
-FX_FLOAT CPDFSDK_Annot::GetMinWidth() const
-{
-    return BA_ANNOT_MINWIDTH;
+FX_FLOAT CPDFSDK_Annot::GetMinWidth() const {
+  return BA_ANNOT_MINWIDTH;
 }
 
-FX_FLOAT CPDFSDK_Annot::GetMinHeight() const
-{
-    return BA_ANNOT_MINHEIGHT;
+FX_FLOAT CPDFSDK_Annot::GetMinHeight() const {
+  return BA_ANNOT_MINHEIGHT;
 }
 
-FX_BOOL CPDFSDK_BAAnnot::CreateFormFiller()
-{
-    return TRUE;
+FX_BOOL CPDFSDK_BAAnnot::CreateFormFiller() {
+  return TRUE;
 }
-FX_BOOL CPDFSDK_BAAnnot::IsVisible() const
-{
-    int nFlags = GetFlags();
-    return !((nFlags & ANNOTFLAG_INVISIBLE) || (nFlags & ANNOTFLAG_HIDDEN) || (nFlags & ANNOTFLAG_NOVIEW));
+FX_BOOL CPDFSDK_BAAnnot::IsVisible() const {
+  int nFlags = GetFlags();
+  return !((nFlags & ANNOTFLAG_INVISIBLE) || (nFlags & ANNOTFLAG_HIDDEN) ||
+           (nFlags & ANNOTFLAG_NOVIEW));
 }
 
-CPDF_Action CPDFSDK_BAAnnot::GetAction() const
-{
-    return CPDF_Action(m_pAnnot->GetAnnotDict()->GetDict("A"));
+CPDF_Action CPDFSDK_BAAnnot::GetAction() const {
+  return CPDF_Action(m_pAnnot->GetAnnotDict()->GetDict("A"));
 }
 
-void CPDFSDK_BAAnnot::SetAction(const CPDF_Action& action)
-{
-    ASSERT(action);
-    if ((CPDF_Action&)action != CPDF_Action(m_pAnnot->GetAnnotDict()->GetDict("A")))
-    {
-        CPDF_Document* pDoc = m_pPageView->GetPDFDocument();
-        CPDF_Dictionary* pDict = action.GetDict();
-        if (pDict && pDict->GetObjNum() == 0) {
-            pDoc->AddIndirectObject(pDict);
-        }
-        m_pAnnot->GetAnnotDict()->SetAtReference("A", pDoc, pDict->GetObjNum());
+void CPDFSDK_BAAnnot::SetAction(const CPDF_Action& action) {
+  ASSERT(action);
+  if ((CPDF_Action&)action !=
+      CPDF_Action(m_pAnnot->GetAnnotDict()->GetDict("A"))) {
+    CPDF_Document* pDoc = m_pPageView->GetPDFDocument();
+    CPDF_Dictionary* pDict = action.GetDict();
+    if (pDict && pDict->GetObjNum() == 0) {
+      pDoc->AddIndirectObject(pDict);
     }
+    m_pAnnot->GetAnnotDict()->SetAtReference("A", pDoc, pDict->GetObjNum());
+  }
 }
 
-void CPDFSDK_BAAnnot::RemoveAction()
-{
-    m_pAnnot->GetAnnotDict()->RemoveAt("A");
+void CPDFSDK_BAAnnot::RemoveAction() {
+  m_pAnnot->GetAnnotDict()->RemoveAt("A");
 }
 
-CPDF_AAction CPDFSDK_BAAnnot::GetAAction() const
-{
-    return m_pAnnot->GetAnnotDict()->GetDict("AA");
+CPDF_AAction CPDFSDK_BAAnnot::GetAAction() const {
+  return m_pAnnot->GetAnnotDict()->GetDict("AA");
 }
 
-void CPDFSDK_BAAnnot::SetAAction(const CPDF_AAction& aa)
-{
-    ASSERT(aa != NULL);
+void CPDFSDK_BAAnnot::SetAAction(const CPDF_AAction& aa) {
+  ASSERT(aa != NULL);
 
-    if ((CPDF_AAction&)aa != m_pAnnot->GetAnnotDict()->GetDict("AA"))
-        m_pAnnot->GetAnnotDict()->SetAt("AA", (CPDF_AAction&)aa);
+  if ((CPDF_AAction&)aa != m_pAnnot->GetAnnotDict()->GetDict("AA"))
+    m_pAnnot->GetAnnotDict()->SetAt("AA", (CPDF_AAction&)aa);
 }
 
-void CPDFSDK_BAAnnot::RemoveAAction()
-{
-    m_pAnnot->GetAnnotDict()->RemoveAt("AA");
+void CPDFSDK_BAAnnot::RemoveAAction() {
+  m_pAnnot->GetAnnotDict()->RemoveAt("AA");
 }
 
-CPDF_Action CPDFSDK_BAAnnot::GetAAction(CPDF_AAction::AActionType eAAT)
-{
-    CPDF_AAction AAction = GetAAction();
+CPDF_Action CPDFSDK_BAAnnot::GetAAction(CPDF_AAction::AActionType eAAT) {
+  CPDF_AAction AAction = GetAAction();
 
-    if (AAction.ActionExist(eAAT))
-        return AAction.GetAction(eAAT);
+  if (AAction.ActionExist(eAAT))
+    return AAction.GetAction(eAAT);
 
-    if (eAAT == CPDF_AAction::ButtonUp)
-        return GetAction();
+  if (eAAT == CPDF_AAction::ButtonUp)
+    return GetAction();
 
-    return CPDF_Action();
+  return CPDF_Action();
 }
 
-FX_BOOL CPDFSDK_BAAnnot::IsXFAField()
-{
-    return FALSE;
+FX_BOOL CPDFSDK_BAAnnot::IsXFAField() {
+  return FALSE;
 }
 
-void  CPDFSDK_BAAnnot::Annot_OnDraw(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, CPDF_RenderOptions* pOptions)
-{
-
-    m_pAnnot->GetAPForm(m_pPageView->GetPDFPage(), CPDF_Annot::Normal);
-    m_pAnnot->DrawAppearance(m_pPageView->GetPDFPage(), pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
+void CPDFSDK_BAAnnot::Annot_OnDraw(CFX_RenderDevice* pDevice,
+                                   CPDF_Matrix* pUser2Device,
+                                   CPDF_RenderOptions* pOptions) {
+  m_pAnnot->GetAPForm(m_pPageView->GetPDFPage(), CPDF_Annot::Normal);
+  m_pAnnot->DrawAppearance(m_pPageView->GetPDFPage(), pDevice, pUser2Device,
+                           CPDF_Annot::Normal, NULL);
 
-    return ;
+  return;
 }
 
-CPDF_Page* CPDFSDK_Annot::GetPDFPage()
-{
-    if(m_pPageView)
-        return m_pPageView->GetPDFPage();
-    return NULL;
+CPDF_Page* CPDFSDK_Annot::GetPDFPage() {
+  if (m_pPageView)
+    return m_pPageView->GetPDFPage();
+  return NULL;
 }
 
-CPDFXFA_Page* CPDFSDK_Annot::GetPDFXFAPage()
-{
-    if (m_pPageView)
-        return m_pPageView->GetPDFXFAPage();
-    return NULL;
+CPDFXFA_Page* CPDFSDK_Annot::GetPDFXFAPage() {
+  if (m_pPageView)
+    return m_pPageView->GetPDFXFAPage();
+  return NULL;
 }
-
diff --git a/fpdfsdk/src/fsdk_baseform.cpp b/fpdfsdk/src/fsdk_baseform.cpp
index b26a7f40fc..5c76149a0d 100644
--- a/fpdfsdk/src/fsdk_baseform.cpp
+++ b/fpdfsdk/src/fsdk_baseform.cpp
@@ -20,3651 +20,3355 @@
 //*                                     CPDFSDK_Widget
 //------------------------------------------------------------------------------------
 
-#define IsFloatZero(f)                      ((f) < 0.01 && (f) > -0.01)
-#define IsFloatBigger(fa,fb)                ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatSmaller(fa,fb)               ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatEqual(fa,fb)                 IsFloatZero((fa)-(fb))
-
-CPDFSDK_Widget::CPDFSDK_Widget(CPDF_Annot* pAnnot, CPDFSDK_PageView* pPageView, CPDFSDK_InterForm* pInterForm) :
-					CPDFSDK_BAAnnot(pAnnot, pPageView),
-					m_pInterForm(pInterForm),
-					m_nAppAge(0),
-					m_nValueAge(0),
-					m_hMixXFAWidget(NULL),
-					m_pWidgetHandler(NULL)
-{
-    ASSERT(m_pInterForm != NULL);
+#define IsFloatZero(f) ((f) < 0.01 && (f) > -0.01)
+#define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb))
+
+CPDFSDK_Widget::CPDFSDK_Widget(CPDF_Annot* pAnnot,
+                               CPDFSDK_PageView* pPageView,
+                               CPDFSDK_InterForm* pInterForm)
+    : CPDFSDK_BAAnnot(pAnnot, pPageView),
+      m_pInterForm(pInterForm),
+      m_nAppAge(0),
+      m_nValueAge(0),
+      m_hMixXFAWidget(NULL),
+      m_pWidgetHandler(NULL) {
+  ASSERT(m_pInterForm != NULL);
+}
+
+CPDFSDK_Widget::~CPDFSDK_Widget() {}
+
+IXFA_Widget* CPDFSDK_Widget::GetMixXFAWidget() {
+  ASSERT(m_pPageView != NULL);
+
+  CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
+  ASSERT(pSDKDoc != NULL);
+
+  CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
+  ASSERT(pDoc != NULL);
+
+  if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) {
+    if (!m_hMixXFAWidget) {
+      if (IXFA_DocView* pDocView = pDoc->GetXFADocView()) {
+        CFX_WideString sName;
+        if (this->GetFieldType() == FIELDTYPE_RADIOBUTTON) {
+          sName = this->GetAnnotName();
+          if (sName.IsEmpty())
+            sName = GetName();
+        } else
+          sName = GetName();
+
+        if (!sName.IsEmpty())
+          m_hMixXFAWidget = pDocView->GetWidgetByName(sName);
+      }
+    }
+    return m_hMixXFAWidget;
+  }
+
+  return NULL;
 }
 
-CPDFSDK_Widget::~CPDFSDK_Widget()
-{
+IXFA_Widget* CPDFSDK_Widget::GetGroupMixXFAWidget() {
+  ASSERT(m_pPageView != NULL);
+
+  CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
+  ASSERT(pSDKDoc != NULL);
+
+  CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
+  ASSERT(pDoc != NULL);
+
+  if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) {
+    if (IXFA_DocView* pDocView = pDoc->GetXFADocView()) {
+      CFX_WideString sName = GetName();
 
+      if (!sName.IsEmpty())
+        return pDocView->GetWidgetByName(sName);
+    }
+  }
+
+  return NULL;
 }
 
-IXFA_Widget*	CPDFSDK_Widget::GetMixXFAWidget()
-{
-	ASSERT(m_pPageView != NULL);
-
-	CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
-	ASSERT(pSDKDoc != NULL);
+IXFA_WidgetHandler* CPDFSDK_Widget::GetXFAWidgetHandler() {
+  ASSERT(m_pPageView != NULL);
 
-	CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
-	ASSERT(pDoc != NULL);
+  CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
+  ASSERT(pSDKDoc != NULL);
 
-	if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA)
-	{
-		if (!m_hMixXFAWidget)
-		{
-			if (IXFA_DocView* pDocView = pDoc->GetXFADocView())
-			{
-				CFX_WideString sName;
-				if (this->GetFieldType() == FIELDTYPE_RADIOBUTTON)
-				{
-					sName = this->GetAnnotName();
-					if (sName.IsEmpty())
-						sName = GetName();
-				}
-				else
-					sName = GetName();
-
-				if (!sName.IsEmpty())
-					m_hMixXFAWidget = pDocView->GetWidgetByName(sName);
-			}
-		}
-		return m_hMixXFAWidget;
-	}
-
-	return NULL;
-}
-
-IXFA_Widget*	CPDFSDK_Widget::GetGroupMixXFAWidget()
-{
-	ASSERT(m_pPageView != NULL);
-
-	CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
-	ASSERT(pSDKDoc != NULL);
-
-	CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
-	ASSERT(pDoc != NULL);
-
-	if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA)
-	{
-		if (IXFA_DocView* pDocView = pDoc->GetXFADocView())
-		{
-			CFX_WideString sName = GetName();
-
-			if (!sName.IsEmpty())
-				return pDocView->GetWidgetByName(sName);
-		}
-	}
-
-	return NULL;
-}
-
-IXFA_WidgetHandler* CPDFSDK_Widget::GetXFAWidgetHandler()
-{
-	ASSERT(m_pPageView != NULL);
-
-	CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
-	ASSERT(pSDKDoc != NULL);
-
-	CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
-	ASSERT(pDoc != NULL);
-
-	if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA)
-	{
-		if (!m_pWidgetHandler)
-		{
-			if (IXFA_DocView* pDocView = pDoc->GetXFADocView())
-			{
-				m_pWidgetHandler = pDocView->GetWidgetHandler();
-			}
-		}
-		return m_pWidgetHandler;
-	}
-
-	return NULL;
-}
-
-static XFA_EVENTTYPE GetXFAEventType(PDFSDK_XFAAActionType eXFAAAT)
-{
-	XFA_EVENTTYPE eEventType = XFA_EVENT_Unknown;
-
-	switch (eXFAAAT)
-	{
-	case PDFSDK_XFA_Click:
-		eEventType = XFA_EVENT_Click;
-		break;
-	case PDFSDK_XFA_Full:
-		eEventType = XFA_EVENT_Full;
-		break;
-	case PDFSDK_XFA_PreOpen:
-		eEventType = XFA_EVENT_PreOpen;
-		break;
-	case PDFSDK_XFA_PostOpen:
-		eEventType = XFA_EVENT_PostOpen;
-		break;
-	}
-
-	return eEventType;
-}
-
-static XFA_EVENTTYPE GetXFAEventType(CPDF_AAction::AActionType eAAT, FX_BOOL bWillCommit)
-{
-	XFA_EVENTTYPE eEventType = XFA_EVENT_Unknown;
-
-	switch (eAAT)
-	{
-	case CPDF_AAction::CursorEnter:
-		eEventType =  XFA_EVENT_MouseEnter;
-		break;
-	case CPDF_AAction::CursorExit:
-		eEventType =  XFA_EVENT_MouseExit;
-		break;
-	case CPDF_AAction::ButtonDown:
-		eEventType =  XFA_EVENT_MouseDown;
-		break;
-	case CPDF_AAction::ButtonUp:
-		eEventType =  XFA_EVENT_MouseUp;
-		break;
-	case CPDF_AAction::GetFocus:
-		eEventType =  XFA_EVENT_Enter;
-		break;
-	case CPDF_AAction::LoseFocus:
-		eEventType =  XFA_EVENT_Exit;
-		break;
-	case CPDF_AAction::PageOpen:
-		break;
-	case CPDF_AAction::PageClose:
-		break;
-	case CPDF_AAction::PageVisible:
-		break;
-	case CPDF_AAction::PageInvisible:
-		break;
-	case CPDF_AAction::KeyStroke:
-		if (!bWillCommit)
-		{
-			eEventType =  XFA_EVENT_Change;
-		}
-		break;
-	case CPDF_AAction::Validate:
-		eEventType =  XFA_EVENT_Validate;
-		break;
-	case CPDF_AAction::OpenPage:
-	case CPDF_AAction::ClosePage:
-	case CPDF_AAction::Format:
-	case CPDF_AAction::Calculate:
-	case CPDF_AAction::CloseDocument:
-	case CPDF_AAction::SaveDocument:
-	case CPDF_AAction::DocumentSaved:
-	case CPDF_AAction::PrintDocument:
-	case CPDF_AAction::DocumentPrinted:
-		break;
-	}
-
-	return eEventType;
-}
-
-FX_BOOL CPDFSDK_Widget::HasXFAAAction(PDFSDK_XFAAActionType eXFAAAT)
-{
-	if (IXFA_Widget* hWidget = this->GetMixXFAWidget())
-	{
-		if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler())
-		{
-			XFA_EVENTTYPE eEventType = GetXFAEventType(eXFAAAT);
-
-			if ((eEventType == XFA_EVENT_Click ||
-				eEventType == XFA_EVENT_Change) &&
-				GetFieldType() == FIELDTYPE_RADIOBUTTON)
-			{
-				if (IXFA_Widget* hGroupWidget = GetGroupMixXFAWidget())
-				{
-					CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hGroupWidget);
-					if (pXFAWidgetHandler->HasEvent(pAcc, eEventType))
-						return TRUE;
-				}
-			}
-
-			{
-				CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hWidget);
-				return pXFAWidgetHandler->HasEvent(pAcc, eEventType);
-			}
-		}
-	}
-
-	return FALSE;
-}
-
-FX_BOOL	CPDFSDK_Widget::OnXFAAAction(PDFSDK_XFAAActionType eXFAAAT, PDFSDK_FieldAction& data, CPDFSDK_PageView* pPageView)
-{
-	ASSERT(m_pPageView != NULL);
-
-	CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
-	ASSERT(pSDKDoc != NULL);
-
-	CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
-	ASSERT(pDoc != NULL);
-
-	if (IXFA_Widget* hWidget = this->GetMixXFAWidget())
-	{
-		XFA_EVENTTYPE eEventType = GetXFAEventType(eXFAAAT);
-
-		if (eEventType != XFA_EVENT_Unknown)
-		{
-			if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler())
-			{
-				CXFA_EventParam param;
-				param.m_eType = eEventType;
-				param.m_wsChange = data.sChange;
-				param.m_iCommitKey = data.nCommitKey;
-				param.m_bShift = data.bShift;
-				param.m_iSelStart = data.nSelStart;
-				param.m_iSelEnd = data.nSelEnd;
-				param.m_wsFullText = data.sValue;
-				param.m_bKeyDown = data.bKeyDown;
-				param.m_bModifier = data.bModifier;
-				param.m_wsNewText = data.sValue;
-				if (data.nSelEnd > data.nSelStart)
-					param.m_wsNewText.Delete(data.nSelStart, data.nSelEnd - data.nSelStart);
-				for (int i=0; i<data.sChange.GetLength(); i++)
-					param.m_wsNewText.Insert(data.nSelStart, data.sChange[i]);
-				param.m_wsPrevText = data.sValue;
-
-				if ((eEventType == XFA_EVENT_Click ||
-					eEventType == XFA_EVENT_Change) &&
-					GetFieldType() == FIELDTYPE_RADIOBUTTON)
-				{
-					if (IXFA_Widget* hGroupWidget = GetGroupMixXFAWidget())
-					{
-						CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hGroupWidget);
-						param.m_pTarget = pAcc;
-						pXFAWidgetHandler->ProcessEvent(pAcc, &param);
-					}
-
-					{
-						CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hWidget);
-						param.m_pTarget = pAcc;
-						int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, &param);
-						return nRet == XFA_EVENTERROR_Sucess;
-					}
-				}
-				else
-				{
-					CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hWidget);
-					param.m_pTarget = pAcc;
-					int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, &param);
-					return nRet == XFA_EVENTERROR_Sucess;
-				}
-
-				if (IXFA_DocView* pDocView = pDoc->GetXFADocView())
-				{
-					pDocView->UpdateDocView();
-				}
-			}
-		}
-	}
-
-	return FALSE;
-}
-
-void CPDFSDK_Widget::Synchronize(FX_BOOL bSynchronizeElse)
-{
-	if (IXFA_Widget* hWidget = this->GetMixXFAWidget())
-	{
-		if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler())
-		{
-			CPDF_FormField*	pFormField = GetFormField();
-			ASSERT(pFormField != NULL);
-
-			if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget))
-			{
-				switch (GetFieldType())
-				{
-				case FIELDTYPE_CHECKBOX:
-				case FIELDTYPE_RADIOBUTTON:
-					{
-						CPDF_FormControl* pFormCtrl = GetFormControl();
-						ASSERT(pFormCtrl != NULL);
-
-						XFA_CHECKSTATE eCheckState = pFormCtrl->IsChecked() ? XFA_CHECKSTATE_On : XFA_CHECKSTATE_Off;
-						pWidgetAcc->SetCheckState(eCheckState);
-					}
-					break;
-				case FIELDTYPE_TEXTFIELD:
-					pWidgetAcc->SetValue(pFormField->GetValue(), XFA_VALUEPICTURE_Edit);
-					break;
-				case FIELDTYPE_LISTBOX:
-					{
-						pWidgetAcc->ClearAllSelections();
-
-						for (int i=0,sz=pFormField->CountSelectedItems(); i<sz; i++)
-						{
-							int nIndex = pFormField->GetSelectedIndex(i);
-							if (nIndex > -1 && nIndex < pWidgetAcc->CountChoiceListItems())
-								pWidgetAcc->SetItemState(nIndex, TRUE, FALSE);
-						}
-					}
-					break;
-				case FIELDTYPE_COMBOBOX:
-					{
-						pWidgetAcc->ClearAllSelections();
-
-						for (int i=0,sz=pFormField->CountSelectedItems(); i<sz; i++)
-						{
-							int nIndex = pFormField->GetSelectedIndex(i);
-							if (nIndex > -1 && nIndex < pWidgetAcc->CountChoiceListItems())
-								pWidgetAcc->SetItemState(nIndex, TRUE, FALSE);
-						}
-					}
-
-					pWidgetAcc->SetValue(pFormField->GetValue(), XFA_VALUEPICTURE_Edit);
-					break;
-				}
-
-				if (bSynchronizeElse)
-					pWidgetAcc->ProcessValueChanged();
-			}
-		}
-	}
-}
-
-void CPDFSDK_Widget::SynchronizeXFAValue()
-{
-	ASSERT(m_pPageView != NULL);
-
-	CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
-	ASSERT(pSDKDoc != NULL);
-
-	CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
-	ASSERT(pDoc != NULL);
-
-	IXFA_DocView* pXFADocView = pDoc->GetXFADocView();
-	if (!pXFADocView) return;
-
-	if (IXFA_Widget* hWidget = this->GetMixXFAWidget())
-	{
-		if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler())
-		{
-			CPDF_FormField*	pFormField = GetFormField();
-			ASSERT(pFormField != NULL);
-
-			CPDF_FormControl* pFormCtrl = GetFormControl();
-			ASSERT(pFormCtrl != NULL);
-
-			CPDFSDK_Widget::SynchronizeXFAValue(pXFADocView, hWidget, pFormField, pFormCtrl);
-		}
-	}
-}
-
-void CPDFSDK_Widget::SynchronizeXFAItems()
-{
-	ASSERT(m_pPageView != NULL);
-
-	CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
-	ASSERT(pSDKDoc != NULL);
-
-	CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
-	ASSERT(pDoc != NULL);
-
-	IXFA_DocView* pXFADocView = pDoc->GetXFADocView();
-	if (!pXFADocView) return;
-
-	if (IXFA_Widget* hWidget = this->GetMixXFAWidget())
-	{
-		if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler())
-		{
-			CPDF_FormField*	pFormField = GetFormField();
-			ASSERT(pFormField != NULL);
-
-			SynchronizeXFAItems(pXFADocView, hWidget, pFormField, NULL);
-		}
-	}
-}
-
-void CPDFSDK_Widget::SynchronizeXFAValue(IXFA_DocView* pXFADocView, IXFA_Widget* hWidget,
-	CPDF_FormField* pFormField, CPDF_FormControl* pFormControl)
-{
-	ASSERT(pXFADocView != NULL);
-	ASSERT(hWidget != NULL);
-
-	if (IXFA_WidgetHandler* pXFAWidgetHandler = pXFADocView->GetWidgetHandler())
-	{
-		ASSERT(pFormField != NULL);
-		ASSERT(pFormControl != NULL);
-
-		switch (pFormField->GetFieldType())
-		{
-		case FIELDTYPE_CHECKBOX:
-			{
-				if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget))
-				{
-					FX_BOOL bChecked = pWidgetAcc->GetCheckState() == XFA_CHECKSTATE_On;
-
-					pFormField->CheckControl(pFormField->GetControlIndex(pFormControl),
-						bChecked, TRUE);
-				}
-			}
-			break;
-		case FIELDTYPE_RADIOBUTTON:
-			{
-				if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget))
-				{
-					FX_BOOL bChecked = pWidgetAcc->GetCheckState() == XFA_CHECKSTATE_On;
-
-					pFormField->CheckControl(pFormField->GetControlIndex(pFormControl),
-						bChecked, TRUE);
-				}
-			}
-			break;
-		case FIELDTYPE_TEXTFIELD:
-			{
-				if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget))
-				{
-					CFX_WideString sValue;
-					pWidgetAcc->GetValue(sValue, XFA_VALUEPICTURE_Display);
-					pFormField->SetValue(sValue, TRUE);
-				}
-			}
-			break;
-		case FIELDTYPE_LISTBOX:
-			{
-				pFormField->ClearSelection(FALSE);
-
-				if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget))
-				{
-					for (int i=0,sz=pWidgetAcc->CountSelectedItems(); i<sz; i++)
-					{
-						int nIndex = pWidgetAcc->GetSelectedItem(i);
-
-						if (nIndex > -1 && nIndex < pFormField->CountOptions())
-						{
-							pFormField->SetItemSelection(nIndex, TRUE, TRUE);
-						}
-					}
-				}
-			}
-			break;
-		case FIELDTYPE_COMBOBOX:
-			{
-				pFormField->ClearSelection(FALSE);
-
-				if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget))
-				{
-					for (int i=0,sz=pWidgetAcc->CountSelectedItems(); i<sz; i++)
-					{
-						int nIndex = pWidgetAcc->GetSelectedItem(i);
-
-						if (nIndex > -1 && nIndex < pFormField->CountOptions())
-						{
-							pFormField->SetItemSelection(nIndex, TRUE, TRUE);
-						}
-					}
-
-					CFX_WideString sValue;
-					pWidgetAcc->GetValue(sValue, XFA_VALUEPICTURE_Display);
-					pFormField->SetValue(sValue, TRUE);
-				}
-			}
-			break;
-		}
-	}
-}
-
-void CPDFSDK_Widget::SynchronizeXFAItems(IXFA_DocView* pXFADocView, IXFA_Widget* hWidget,
-	CPDF_FormField* pFormField, CPDF_FormControl* pFormControl)
-{
-	ASSERT(pXFADocView != NULL);
-	ASSERT(hWidget != NULL);
-
-	if (IXFA_WidgetHandler* pXFAWidgetHandler = pXFADocView->GetWidgetHandler())
-	{
-		ASSERT(pFormField != NULL);
-
-		switch (pFormField->GetFieldType())
-		{
-		case FIELDTYPE_LISTBOX:
-			{
-				pFormField->ClearSelection(FALSE);
-				pFormField->ClearOptions(TRUE);
-
-				if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget))
-				{
-					for (int i=0,sz=pWidgetAcc->CountChoiceListItems(); i<sz; i++)
-					{
-						CFX_WideString swText;
-						pWidgetAcc->GetChoiceListItem(swText, i);
-
-						pFormField->InsertOption(swText, i, TRUE);
-					}
-				}
-			}
-			break;
-		case FIELDTYPE_COMBOBOX:
-			{
-				pFormField->ClearSelection(FALSE);
-				pFormField->ClearOptions(FALSE);
-
-				if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget))
-				{
-					for (int i=0,sz=pWidgetAcc->CountChoiceListItems(); i<sz; i++)
-					{
-						CFX_WideString swText;
-						pWidgetAcc->GetChoiceListItem(swText, i);
-
-						pFormField->InsertOption(swText, i, FALSE);
-					}
-				}
-
-				pFormField->SetValue(L"", TRUE);
-			}
-			break;
-		}
-	}
-}
-
-FX_BOOL		CPDFSDK_Widget::IsWidgetAppearanceValid(CPDF_Annot::AppearanceMode mode)
-{
-	CPDF_Dictionary* pAP = m_pAnnot->GetAnnotDict()->GetDict("AP");
-	if (!pAP)
-        return FALSE;
+  CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
+  ASSERT(pDoc != NULL);
 
-	// Choose the right sub-ap
-	const FX_CHAR* ap_entry = "N";
-	if (mode == CPDF_Annot::Down)
-		ap_entry = "D";
-	else if (mode == CPDF_Annot::Rollover)
-		ap_entry = "R";
-	if (!pAP->KeyExist(ap_entry))
-		ap_entry = "N";
-
-	// Get the AP stream or subdirectory
-	CPDF_Object* psub = pAP->GetElementValue(ap_entry);
-	if (!psub)
-        return FALSE;
+  if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) {
+    if (!m_pWidgetHandler) {
+      if (IXFA_DocView* pDocView = pDoc->GetXFADocView()) {
+        m_pWidgetHandler = pDocView->GetWidgetHandler();
+      }
+    }
+    return m_pWidgetHandler;
+  }
+
+  return NULL;
+}
+
+static XFA_EVENTTYPE GetXFAEventType(PDFSDK_XFAAActionType eXFAAAT) {
+  XFA_EVENTTYPE eEventType = XFA_EVENT_Unknown;
+
+  switch (eXFAAAT) {
+    case PDFSDK_XFA_Click:
+      eEventType = XFA_EVENT_Click;
+      break;
+    case PDFSDK_XFA_Full:
+      eEventType = XFA_EVENT_Full;
+      break;
+    case PDFSDK_XFA_PreOpen:
+      eEventType = XFA_EVENT_PreOpen;
+      break;
+    case PDFSDK_XFA_PostOpen:
+      eEventType = XFA_EVENT_PostOpen;
+      break;
+  }
+
+  return eEventType;
+}
+
+static XFA_EVENTTYPE GetXFAEventType(CPDF_AAction::AActionType eAAT,
+                                     FX_BOOL bWillCommit) {
+  XFA_EVENTTYPE eEventType = XFA_EVENT_Unknown;
+
+  switch (eAAT) {
+    case CPDF_AAction::CursorEnter:
+      eEventType = XFA_EVENT_MouseEnter;
+      break;
+    case CPDF_AAction::CursorExit:
+      eEventType = XFA_EVENT_MouseExit;
+      break;
+    case CPDF_AAction::ButtonDown:
+      eEventType = XFA_EVENT_MouseDown;
+      break;
+    case CPDF_AAction::ButtonUp:
+      eEventType = XFA_EVENT_MouseUp;
+      break;
+    case CPDF_AAction::GetFocus:
+      eEventType = XFA_EVENT_Enter;
+      break;
+    case CPDF_AAction::LoseFocus:
+      eEventType = XFA_EVENT_Exit;
+      break;
+    case CPDF_AAction::PageOpen:
+      break;
+    case CPDF_AAction::PageClose:
+      break;
+    case CPDF_AAction::PageVisible:
+      break;
+    case CPDF_AAction::PageInvisible:
+      break;
+    case CPDF_AAction::KeyStroke:
+      if (!bWillCommit) {
+        eEventType = XFA_EVENT_Change;
+      }
+      break;
+    case CPDF_AAction::Validate:
+      eEventType = XFA_EVENT_Validate;
+      break;
+    case CPDF_AAction::OpenPage:
+    case CPDF_AAction::ClosePage:
+    case CPDF_AAction::Format:
+    case CPDF_AAction::Calculate:
+    case CPDF_AAction::CloseDocument:
+    case CPDF_AAction::SaveDocument:
+    case CPDF_AAction::DocumentSaved:
+    case CPDF_AAction::PrintDocument:
+    case CPDF_AAction::DocumentPrinted:
+      break;
+  }
+
+  return eEventType;
+}
+
+FX_BOOL CPDFSDK_Widget::HasXFAAAction(PDFSDK_XFAAActionType eXFAAAT) {
+  if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
+    if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
+      XFA_EVENTTYPE eEventType = GetXFAEventType(eXFAAAT);
+
+      if ((eEventType == XFA_EVENT_Click || eEventType == XFA_EVENT_Change) &&
+          GetFieldType() == FIELDTYPE_RADIOBUTTON) {
+        if (IXFA_Widget* hGroupWidget = GetGroupMixXFAWidget()) {
+          CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hGroupWidget);
+          if (pXFAWidgetHandler->HasEvent(pAcc, eEventType))
+            return TRUE;
+        }
+      }
 
-	int nFieldType = GetFieldType();
-	switch (nFieldType)
-	{
-	case FIELDTYPE_PUSHBUTTON:
-	case FIELDTYPE_COMBOBOX:
-	case FIELDTYPE_LISTBOX:
-	case FIELDTYPE_TEXTFIELD:
-	case FIELDTYPE_SIGNATURE:
-		return psub->GetType() == PDFOBJ_STREAM;
-	case FIELDTYPE_CHECKBOX:
-	case FIELDTYPE_RADIOBUTTON:
-		if (psub->GetType() == PDFOBJ_DICTIONARY)
-		{
-			CPDF_Dictionary* pSubDict = (CPDF_Dictionary*)psub;
-			return pSubDict->GetStream(GetAppState()) != NULL;
-		}
-        return FALSE;
-	}
-    return TRUE;
-}
+      {
+        CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hWidget);
+        return pXFAWidgetHandler->HasEvent(pAcc, eEventType);
+      }
+    }
+  }
+
+  return FALSE;
+}
+
+FX_BOOL CPDFSDK_Widget::OnXFAAAction(PDFSDK_XFAAActionType eXFAAAT,
+                                     PDFSDK_FieldAction& data,
+                                     CPDFSDK_PageView* pPageView) {
+  ASSERT(m_pPageView != NULL);
+
+  CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
+  ASSERT(pSDKDoc != NULL);
+
+  CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
+  ASSERT(pDoc != NULL);
+
+  if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
+    XFA_EVENTTYPE eEventType = GetXFAEventType(eXFAAAT);
+
+    if (eEventType != XFA_EVENT_Unknown) {
+      if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
+        CXFA_EventParam param;
+        param.m_eType = eEventType;
+        param.m_wsChange = data.sChange;
+        param.m_iCommitKey = data.nCommitKey;
+        param.m_bShift = data.bShift;
+        param.m_iSelStart = data.nSelStart;
+        param.m_iSelEnd = data.nSelEnd;
+        param.m_wsFullText = data.sValue;
+        param.m_bKeyDown = data.bKeyDown;
+        param.m_bModifier = data.bModifier;
+        param.m_wsNewText = data.sValue;
+        if (data.nSelEnd > data.nSelStart)
+          param.m_wsNewText.Delete(data.nSelStart,
+                                   data.nSelEnd - data.nSelStart);
+        for (int i = 0; i < data.sChange.GetLength(); i++)
+          param.m_wsNewText.Insert(data.nSelStart, data.sChange[i]);
+        param.m_wsPrevText = data.sValue;
+
+        if ((eEventType == XFA_EVENT_Click || eEventType == XFA_EVENT_Change) &&
+            GetFieldType() == FIELDTYPE_RADIOBUTTON) {
+          if (IXFA_Widget* hGroupWidget = GetGroupMixXFAWidget()) {
+            CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hGroupWidget);
+            param.m_pTarget = pAcc;
+            pXFAWidgetHandler->ProcessEvent(pAcc, &param);
+          }
+
+          {
+            CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hWidget);
+            param.m_pTarget = pAcc;
+            int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, &param);
+            return nRet == XFA_EVENTERROR_Sucess;
+          }
+        } else {
+          CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hWidget);
+          param.m_pTarget = pAcc;
+          int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, &param);
+          return nRet == XFA_EVENTERROR_Sucess;
+        }
 
-int CPDFSDK_Widget::GetFieldType() const
-{
-    CPDF_FormField* pField = GetFormField();
-    ASSERT(pField != NULL);
+        if (IXFA_DocView* pDocView = pDoc->GetXFADocView()) {
+          pDocView->UpdateDocView();
+        }
+      }
+    }
+  }
 
-    return pField->GetFieldType();
+  return FALSE;
 }
 
-FX_BOOL	CPDFSDK_Widget::IsAppearanceValid()
-{
-	ASSERT(m_pPageView != NULL);
+void CPDFSDK_Widget::Synchronize(FX_BOOL bSynchronizeElse) {
+  if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
+    if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
+      CPDF_FormField* pFormField = GetFormField();
+      ASSERT(pFormField != NULL);
 
-	CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
-	ASSERT(pSDKDoc != NULL);
+      if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) {
+        switch (GetFieldType()) {
+          case FIELDTYPE_CHECKBOX:
+          case FIELDTYPE_RADIOBUTTON: {
+            CPDF_FormControl* pFormCtrl = GetFormControl();
+            ASSERT(pFormCtrl != NULL);
 
-	CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
-	ASSERT(pDoc != NULL);
+            XFA_CHECKSTATE eCheckState =
+                pFormCtrl->IsChecked() ? XFA_CHECKSTATE_On : XFA_CHECKSTATE_Off;
+            pWidgetAcc->SetCheckState(eCheckState);
+          } break;
+          case FIELDTYPE_TEXTFIELD:
+            pWidgetAcc->SetValue(pFormField->GetValue(), XFA_VALUEPICTURE_Edit);
+            break;
+          case FIELDTYPE_LISTBOX: {
+            pWidgetAcc->ClearAllSelections();
+
+            for (int i = 0, sz = pFormField->CountSelectedItems(); i < sz;
+                 i++) {
+              int nIndex = pFormField->GetSelectedIndex(i);
+              if (nIndex > -1 && nIndex < pWidgetAcc->CountChoiceListItems())
+                pWidgetAcc->SetItemState(nIndex, TRUE, FALSE);
+            }
+          } break;
+          case FIELDTYPE_COMBOBOX: {
+            pWidgetAcc->ClearAllSelections();
+
+            for (int i = 0, sz = pFormField->CountSelectedItems(); i < sz;
+                 i++) {
+              int nIndex = pFormField->GetSelectedIndex(i);
+              if (nIndex > -1 && nIndex < pWidgetAcc->CountChoiceListItems())
+                pWidgetAcc->SetItemState(nIndex, TRUE, FALSE);
+            }
+          }
 
-	int nDocType = pDoc->GetDocType();
-	if (nDocType == DOCTYPE_PDF || nDocType == DOCTYPE_STATIC_XFA)
-		return CPDFSDK_BAAnnot::IsAppearanceValid();
+            pWidgetAcc->SetValue(pFormField->GetValue(), XFA_VALUEPICTURE_Edit);
+            break;
+        }
 
-	return TRUE;
+        if (bSynchronizeElse)
+          pWidgetAcc->ProcessValueChanged();
+      }
+    }
+  }
 }
 
-int CPDFSDK_Widget::GetFieldFlags() const
-{
-    CPDF_InterForm* pPDFInterForm = m_pInterForm->GetInterForm();
-    ASSERT(pPDFInterForm != NULL);
+void CPDFSDK_Widget::SynchronizeXFAValue() {
+  ASSERT(m_pPageView != NULL);
 
-    CPDF_FormControl* pFormControl = pPDFInterForm->GetControlByDict(m_pAnnot->GetAnnotDict());
-    CPDF_FormField* pFormField = pFormControl->GetField();
-    return pFormField->GetFieldFlags();
-}
+  CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
+  ASSERT(pSDKDoc != NULL);
 
-CFX_ByteString CPDFSDK_Widget::GetSubType() const
-{
-    int nType = GetFieldType();
+  CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
+  ASSERT(pDoc != NULL);
 
-    if (nType == FIELDTYPE_SIGNATURE)
-        return BFFT_SIGNATURE;
-    return CPDFSDK_Annot::GetSubType();
-}
+  IXFA_DocView* pXFADocView = pDoc->GetXFADocView();
+  if (!pXFADocView)
+    return;
 
-CPDF_FormField* CPDFSDK_Widget::GetFormField() const
-{
-    ASSERT(m_pInterForm != NULL);
+  if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
+    if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
+      CPDF_FormField* pFormField = GetFormField();
+      ASSERT(pFormField != NULL);
 
-    CPDF_FormControl* pCtrl = GetFormControl();
-    ASSERT(pCtrl != NULL);
+      CPDF_FormControl* pFormCtrl = GetFormControl();
+      ASSERT(pFormCtrl != NULL);
 
-    return pCtrl->GetField();
+      CPDFSDK_Widget::SynchronizeXFAValue(pXFADocView, hWidget, pFormField,
+                                          pFormCtrl);
+    }
+  }
 }
 
-CPDF_FormControl* CPDFSDK_Widget::GetFormControl() const
-{
-    ASSERT(m_pInterForm != NULL);
+void CPDFSDK_Widget::SynchronizeXFAItems() {
+  ASSERT(m_pPageView != NULL);
 
-    CPDF_InterForm* pPDFInterForm = m_pInterForm->GetInterForm();
-    ASSERT(pPDFInterForm != NULL);
+  CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
+  ASSERT(pSDKDoc != NULL);
 
-    return pPDFInterForm->GetControlByDict(GetAnnotDict());
-}
+  CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
+  ASSERT(pDoc != NULL);
 
-CPDF_FormControl* CPDFSDK_Widget::GetFormControl(CPDF_InterForm* pInterForm, CPDF_Dictionary* pAnnotDict)
-{
-    ASSERT(pInterForm != NULL);
-    ASSERT(pAnnotDict != NULL);
+  IXFA_DocView* pXFADocView = pDoc->GetXFADocView();
+  if (!pXFADocView)
+    return;
 
-    CPDF_FormControl* pControl = pInterForm->GetControlByDict(pAnnotDict);
+  if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
+    if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
+      CPDF_FormField* pFormField = GetFormField();
+      ASSERT(pFormField != NULL);
 
-    return pControl;
+      SynchronizeXFAItems(pXFADocView, hWidget, pFormField, NULL);
+    }
+  }
 }
 
-int CPDFSDK_Widget::GetRotate() const
-{
-    CPDF_FormControl* pCtrl = GetFormControl();
-    ASSERT(pCtrl != NULL);
+void CPDFSDK_Widget::SynchronizeXFAValue(IXFA_DocView* pXFADocView,
+                                         IXFA_Widget* hWidget,
+                                         CPDF_FormField* pFormField,
+                                         CPDF_FormControl* pFormControl) {
+  ASSERT(pXFADocView != NULL);
+  ASSERT(hWidget != NULL);
 
-    return pCtrl->GetRotation() % 360;
-}
+  if (IXFA_WidgetHandler* pXFAWidgetHandler = pXFADocView->GetWidgetHandler()) {
+    ASSERT(pFormField != NULL);
+    ASSERT(pFormControl != NULL);
 
-CFX_WideString	CPDFSDK_Widget::GetName()
-{
-	ASSERT(m_pInterForm != NULL);
+    switch (pFormField->GetFieldType()) {
+      case FIELDTYPE_CHECKBOX: {
+        if (CXFA_WidgetAcc* pWidgetAcc =
+                pXFAWidgetHandler->GetDataAcc(hWidget)) {
+          FX_BOOL bChecked = pWidgetAcc->GetCheckState() == XFA_CHECKSTATE_On;
 
-	CPDF_FormField* pFormField = GetFormField();
-	ASSERT(pFormField != NULL);
+          pFormField->CheckControl(pFormField->GetControlIndex(pFormControl),
+                                   bChecked, TRUE);
+        }
+      } break;
+      case FIELDTYPE_RADIOBUTTON: {
+        if (CXFA_WidgetAcc* pWidgetAcc =
+                pXFAWidgetHandler->GetDataAcc(hWidget)) {
+          FX_BOOL bChecked = pWidgetAcc->GetCheckState() == XFA_CHECKSTATE_On;
+
+          pFormField->CheckControl(pFormField->GetControlIndex(pFormControl),
+                                   bChecked, TRUE);
+        }
+      } break;
+      case FIELDTYPE_TEXTFIELD: {
+        if (CXFA_WidgetAcc* pWidgetAcc =
+                pXFAWidgetHandler->GetDataAcc(hWidget)) {
+          CFX_WideString sValue;
+          pWidgetAcc->GetValue(sValue, XFA_VALUEPICTURE_Display);
+          pFormField->SetValue(sValue, TRUE);
+        }
+      } break;
+      case FIELDTYPE_LISTBOX: {
+        pFormField->ClearSelection(FALSE);
 
-	return pFormField->GetFullName();
-}
+        if (CXFA_WidgetAcc* pWidgetAcc =
+                pXFAWidgetHandler->GetDataAcc(hWidget)) {
+          for (int i = 0, sz = pWidgetAcc->CountSelectedItems(); i < sz; i++) {
+            int nIndex = pWidgetAcc->GetSelectedItem(i);
 
-FX_BOOL	CPDFSDK_Widget::GetFillColor(FX_COLORREF& color) const
-{
-    CPDF_FormControl* pFormCtrl = GetFormControl();
-    ASSERT(pFormCtrl != NULL);
+            if (nIndex > -1 && nIndex < pFormField->CountOptions()) {
+              pFormField->SetItemSelection(nIndex, TRUE, TRUE);
+            }
+          }
+        }
+      } break;
+      case FIELDTYPE_COMBOBOX: {
+        pFormField->ClearSelection(FALSE);
 
-    int iColorType = 0;
-    color = FX_ARGBTOCOLORREF(pFormCtrl->GetBackgroundColor(iColorType));
+        if (CXFA_WidgetAcc* pWidgetAcc =
+                pXFAWidgetHandler->GetDataAcc(hWidget)) {
+          for (int i = 0, sz = pWidgetAcc->CountSelectedItems(); i < sz; i++) {
+            int nIndex = pWidgetAcc->GetSelectedItem(i);
 
-    return iColorType != COLORTYPE_TRANSPARENT;
+            if (nIndex > -1 && nIndex < pFormField->CountOptions()) {
+              pFormField->SetItemSelection(nIndex, TRUE, TRUE);
+            }
+          }
+
+          CFX_WideString sValue;
+          pWidgetAcc->GetValue(sValue, XFA_VALUEPICTURE_Display);
+          pFormField->SetValue(sValue, TRUE);
+        }
+      } break;
+    }
+  }
 }
 
-FX_BOOL CPDFSDK_Widget::GetBorderColor(FX_COLORREF& color) const
-{
-    CPDF_FormControl* pFormCtrl = GetFormControl();
-    ASSERT(pFormCtrl != NULL);
+void CPDFSDK_Widget::SynchronizeXFAItems(IXFA_DocView* pXFADocView,
+                                         IXFA_Widget* hWidget,
+                                         CPDF_FormField* pFormField,
+                                         CPDF_FormControl* pFormControl) {
+  ASSERT(pXFADocView != NULL);
+  ASSERT(hWidget != NULL);
 
-    int iColorType = 0;
-    color = FX_ARGBTOCOLORREF(pFormCtrl->GetBorderColor(iColorType));
+  if (IXFA_WidgetHandler* pXFAWidgetHandler = pXFADocView->GetWidgetHandler()) {
+    ASSERT(pFormField != NULL);
 
-    return iColorType != COLORTYPE_TRANSPARENT;
-}
+    switch (pFormField->GetFieldType()) {
+      case FIELDTYPE_LISTBOX: {
+        pFormField->ClearSelection(FALSE);
+        pFormField->ClearOptions(TRUE);
 
-FX_BOOL CPDFSDK_Widget::GetTextColor(FX_COLORREF& color) const
-{
-    CPDF_FormControl* pFormCtrl = GetFormControl();
-    ASSERT(pFormCtrl != NULL);
+        if (CXFA_WidgetAcc* pWidgetAcc =
+                pXFAWidgetHandler->GetDataAcc(hWidget)) {
+          for (int i = 0, sz = pWidgetAcc->CountChoiceListItems(); i < sz;
+               i++) {
+            CFX_WideString swText;
+            pWidgetAcc->GetChoiceListItem(swText, i);
 
-    CPDF_DefaultAppearance da = pFormCtrl->GetDefaultAppearance();
-    if (da.HasColor())
-    {
-        FX_ARGB argb;
-        int iColorType = COLORTYPE_TRANSPARENT;
-        da.GetColor(argb, iColorType);
-        color = FX_ARGBTOCOLORREF(argb);
+            pFormField->InsertOption(swText, i, TRUE);
+          }
+        }
+      } break;
+      case FIELDTYPE_COMBOBOX: {
+        pFormField->ClearSelection(FALSE);
+        pFormField->ClearOptions(FALSE);
+
+        if (CXFA_WidgetAcc* pWidgetAcc =
+                pXFAWidgetHandler->GetDataAcc(hWidget)) {
+          for (int i = 0, sz = pWidgetAcc->CountChoiceListItems(); i < sz;
+               i++) {
+            CFX_WideString swText;
+            pWidgetAcc->GetChoiceListItem(swText, i);
+
+            pFormField->InsertOption(swText, i, FALSE);
+          }
+        }
 
-        return iColorType != COLORTYPE_TRANSPARENT;
+        pFormField->SetValue(L"", TRUE);
+      } break;
     }
+  }
+}
 
+FX_BOOL CPDFSDK_Widget::IsWidgetAppearanceValid(
+    CPDF_Annot::AppearanceMode mode) {
+  CPDF_Dictionary* pAP = m_pAnnot->GetAnnotDict()->GetDict("AP");
+  if (!pAP)
     return FALSE;
+
+  // Choose the right sub-ap
+  const FX_CHAR* ap_entry = "N";
+  if (mode == CPDF_Annot::Down)
+    ap_entry = "D";
+  else if (mode == CPDF_Annot::Rollover)
+    ap_entry = "R";
+  if (!pAP->KeyExist(ap_entry))
+    ap_entry = "N";
+
+  // Get the AP stream or subdirectory
+  CPDF_Object* psub = pAP->GetElementValue(ap_entry);
+  if (!psub)
+    return FALSE;
+
+  int nFieldType = GetFieldType();
+  switch (nFieldType) {
+    case FIELDTYPE_PUSHBUTTON:
+    case FIELDTYPE_COMBOBOX:
+    case FIELDTYPE_LISTBOX:
+    case FIELDTYPE_TEXTFIELD:
+    case FIELDTYPE_SIGNATURE:
+      return psub->GetType() == PDFOBJ_STREAM;
+    case FIELDTYPE_CHECKBOX:
+    case FIELDTYPE_RADIOBUTTON:
+      if (psub->GetType() == PDFOBJ_DICTIONARY) {
+        CPDF_Dictionary* pSubDict = (CPDF_Dictionary*)psub;
+        return pSubDict->GetStream(GetAppState()) != NULL;
+      }
+      return FALSE;
+  }
+  return TRUE;
 }
 
-FX_FLOAT CPDFSDK_Widget::GetFontSize() const
-{
-    CPDF_FormControl* pFormCtrl = GetFormControl();
-    ASSERT(pFormCtrl != NULL);
+int CPDFSDK_Widget::GetFieldType() const {
+  CPDF_FormField* pField = GetFormField();
+  ASSERT(pField != NULL);
 
-    CPDF_DefaultAppearance pDa = pFormCtrl->GetDefaultAppearance();
-    CFX_ByteString csFont = "";
-    FX_FLOAT fFontSize = 0.0f;
-    pDa.GetFont(csFont, fFontSize);
-
-    return fFontSize;
-}
-
-int	CPDFSDK_Widget::GetSelectedIndex(int nIndex)
-{
-	if (IXFA_Widget* hWidget = this->GetMixXFAWidget())
-	{
-		if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler())
-		{
-			if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget))
-			{
-				if (nIndex < pWidgetAcc->CountSelectedItems())
-					return pWidgetAcc->GetSelectedItem(nIndex);
-			}
-		}
-	}
-
-	CPDF_FormField*	pFormField = GetFormField();
-	ASSERT(pFormField != NULL);
-
-    return pFormField->GetSelectedIndex(nIndex);
-}
-
-CFX_WideString CPDFSDK_Widget::GetValue(FX_BOOL bDisplay)
-{
-	if (IXFA_Widget* hWidget = this->GetMixXFAWidget())
-	{
-		if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler())
-		{
-			if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget))
-			{
-				CFX_WideString sValue;
-				pWidgetAcc->GetValue(sValue, bDisplay ? XFA_VALUEPICTURE_Display : XFA_VALUEPICTURE_Edit);
-				return sValue;
-			}
-		}
-	}
-
-	CPDF_FormField*	pFormField = GetFormField();
-	ASSERT(pFormField != NULL);
-
-    return pFormField->GetValue();
-}
-
-CFX_WideString CPDFSDK_Widget::GetDefaultValue() const
-{
-    CPDF_FormField* pFormField = GetFormField();
-    ASSERT(pFormField != NULL);
+  return pField->GetFieldType();
+}
 
-    return pFormField->GetDefaultValue();
+FX_BOOL CPDFSDK_Widget::IsAppearanceValid() {
+  ASSERT(m_pPageView != NULL);
+
+  CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
+  ASSERT(pSDKDoc != NULL);
+
+  CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
+  ASSERT(pDoc != NULL);
+
+  int nDocType = pDoc->GetDocType();
+  if (nDocType == DOCTYPE_PDF || nDocType == DOCTYPE_STATIC_XFA)
+    return CPDFSDK_BAAnnot::IsAppearanceValid();
+
+  return TRUE;
 }
 
-CFX_WideString CPDFSDK_Widget::GetOptionLabel(int nIndex) const
-{
-    CPDF_FormField* pFormField = GetFormField();
-    ASSERT(pFormField != NULL);
+int CPDFSDK_Widget::GetFieldFlags() const {
+  CPDF_InterForm* pPDFInterForm = m_pInterForm->GetInterForm();
+  ASSERT(pPDFInterForm != NULL);
 
-    return pFormField->GetOptionLabel(nIndex);
+  CPDF_FormControl* pFormControl =
+      pPDFInterForm->GetControlByDict(m_pAnnot->GetAnnotDict());
+  CPDF_FormField* pFormField = pFormControl->GetField();
+  return pFormField->GetFieldFlags();
 }
 
-int CPDFSDK_Widget::CountOptions() const
-{
-    CPDF_FormField* pFormField = GetFormField();
-    ASSERT(pFormField != NULL);
+CFX_ByteString CPDFSDK_Widget::GetSubType() const {
+  int nType = GetFieldType();
 
-    return pFormField->CountOptions();
+  if (nType == FIELDTYPE_SIGNATURE)
+    return BFFT_SIGNATURE;
+  return CPDFSDK_Annot::GetSubType();
 }
 
-FX_BOOL	CPDFSDK_Widget::IsOptionSelected(int nIndex)
-{
-	if (IXFA_Widget* hWidget = this->GetMixXFAWidget())
-	{
-		if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler())
-		{
-			if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget))
-			{
-				if (nIndex > -1 && nIndex < pWidgetAcc->CountChoiceListItems())
-					return pWidgetAcc->GetItemState(nIndex);
+CPDF_FormField* CPDFSDK_Widget::GetFormField() const {
+  ASSERT(m_pInterForm != NULL);
 
-                return FALSE;
-			}
-		}
-	}
+  CPDF_FormControl* pCtrl = GetFormControl();
+  ASSERT(pCtrl != NULL);
 
-	CPDF_FormField*	pFormField = GetFormField();
-    return pFormField->IsItemSelected(nIndex);
+  return pCtrl->GetField();
 }
 
-int CPDFSDK_Widget::GetTopVisibleIndex() const
-{
-    CPDF_FormField* pFormField = GetFormField();
-    return pFormField->GetTopVisibleIndex();
+CPDF_FormControl* CPDFSDK_Widget::GetFormControl() const {
+  ASSERT(m_pInterForm != NULL);
+
+  CPDF_InterForm* pPDFInterForm = m_pInterForm->GetInterForm();
+  ASSERT(pPDFInterForm != NULL);
+
+  return pPDFInterForm->GetControlByDict(GetAnnotDict());
 }
 
-FX_BOOL	CPDFSDK_Widget::IsChecked()
-{
-	if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler())
-	{
-		if (IXFA_Widget* hWidget = this->GetMixXFAWidget())
-		{
-			if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget))
-			{
-				FX_BOOL bChecked = pWidgetAcc->GetCheckState() == XFA_CHECKSTATE_On;
-				return bChecked;
-			}
-		}
-	}
+CPDF_FormControl* CPDFSDK_Widget::GetFormControl(CPDF_InterForm* pInterForm,
+                                                 CPDF_Dictionary* pAnnotDict) {
+  ASSERT(pInterForm != NULL);
+  ASSERT(pAnnotDict != NULL);
 
-	CPDF_FormControl* pFormCtrl = GetFormControl();
-	ASSERT(pFormCtrl != NULL);
+  CPDF_FormControl* pControl = pInterForm->GetControlByDict(pAnnotDict);
 
-    return pFormCtrl->IsChecked();
+  return pControl;
 }
 
-int CPDFSDK_Widget::GetAlignment() const
-{
-    CPDF_FormControl* pFormCtrl = GetFormControl();
-    ASSERT(pFormCtrl != NULL);
+int CPDFSDK_Widget::GetRotate() const {
+  CPDF_FormControl* pCtrl = GetFormControl();
+  ASSERT(pCtrl != NULL);
 
-    return pFormCtrl->GetControlAlignment();
+  return pCtrl->GetRotation() % 360;
 }
 
-int CPDFSDK_Widget::GetMaxLen() const
-{
-    CPDF_FormField* pFormField = GetFormField();
-    ASSERT(pFormField != NULL);
+CFX_WideString CPDFSDK_Widget::GetName() {
+  ASSERT(m_pInterForm != NULL);
+
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
 
-    return pFormField->GetMaxLen();
+  return pFormField->GetFullName();
 }
 
-void CPDFSDK_Widget::SetCheck(FX_BOOL bChecked, FX_BOOL bNotify)
-{
-    CPDF_FormControl* pFormCtrl = GetFormControl();
-    ASSERT(pFormCtrl != NULL);
+FX_BOOL CPDFSDK_Widget::GetFillColor(FX_COLORREF& color) const {
+  CPDF_FormControl* pFormCtrl = GetFormControl();
+  ASSERT(pFormCtrl != NULL);
 
-    CPDF_FormField* pFormField = pFormCtrl->GetField();
-    ASSERT(pFormField != NULL);
+  int iColorType = 0;
+  color = FX_ARGBTOCOLORREF(pFormCtrl->GetBackgroundColor(iColorType));
 
-	pFormField->CheckControl(pFormField->GetControlIndex(pFormCtrl), bChecked, bNotify);
-	if (!IsWidgetAppearanceValid(CPDF_Annot::Normal))
-		ResetAppearance(TRUE);
-	if (!bNotify)
-		Synchronize(TRUE);
+  return iColorType != COLORTYPE_TRANSPARENT;
 }
 
-void CPDFSDK_Widget::SetValue(const CFX_WideString& sValue, FX_BOOL bNotify)
-{
-    CPDF_FormField* pFormField = GetFormField();
-    ASSERT(pFormField != NULL);
+FX_BOOL CPDFSDK_Widget::GetBorderColor(FX_COLORREF& color) const {
+  CPDF_FormControl* pFormCtrl = GetFormControl();
+  ASSERT(pFormCtrl != NULL);
 
-	pFormField->SetValue(sValue, bNotify);
+  int iColorType = 0;
+  color = FX_ARGBTOCOLORREF(pFormCtrl->GetBorderColor(iColorType));
 
-	if (!bNotify)
-		Synchronize(TRUE);
+  return iColorType != COLORTYPE_TRANSPARENT;
 }
 
-void CPDFSDK_Widget::SetDefaultValue(const CFX_WideString& sValue)
-{
-}
-void CPDFSDK_Widget::SetOptionSelection(int index, FX_BOOL bSelected, FX_BOOL bNotify)
-{
-    CPDF_FormField* pFormField = GetFormField();
-    ASSERT(pFormField != NULL);
+FX_BOOL CPDFSDK_Widget::GetTextColor(FX_COLORREF& color) const {
+  CPDF_FormControl* pFormCtrl = GetFormControl();
+  ASSERT(pFormCtrl != NULL);
+
+  CPDF_DefaultAppearance da = pFormCtrl->GetDefaultAppearance();
+  if (da.HasColor()) {
+    FX_ARGB argb;
+    int iColorType = COLORTYPE_TRANSPARENT;
+    da.GetColor(argb, iColorType);
+    color = FX_ARGBTOCOLORREF(argb);
 
-	pFormField->SetItemSelection(index, bSelected, bNotify);
+    return iColorType != COLORTYPE_TRANSPARENT;
+  }
 
-	if (!bNotify)
-		Synchronize(TRUE);
+  return FALSE;
 }
 
-void CPDFSDK_Widget::ClearSelection(FX_BOOL bNotify)
-{
-    CPDF_FormField* pFormField = GetFormField();
-    ASSERT(pFormField != NULL);
+FX_FLOAT CPDFSDK_Widget::GetFontSize() const {
+  CPDF_FormControl* pFormCtrl = GetFormControl();
+  ASSERT(pFormCtrl != NULL);
 
-	pFormField->ClearSelection(bNotify);
+  CPDF_DefaultAppearance pDa = pFormCtrl->GetDefaultAppearance();
+  CFX_ByteString csFont = "";
+  FX_FLOAT fFontSize = 0.0f;
+  pDa.GetFont(csFont, fFontSize);
 
-	if (!bNotify)
-		Synchronize(TRUE);
+  return fFontSize;
 }
 
-void CPDFSDK_Widget::SetTopVisibleIndex(int index)
-{
-}
+int CPDFSDK_Widget::GetSelectedIndex(int nIndex) {
+  if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
+    if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
+      if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) {
+        if (nIndex < pWidgetAcc->CountSelectedItems())
+          return pWidgetAcc->GetSelectedItem(nIndex);
+      }
+    }
+  }
+
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
 
-void CPDFSDK_Widget::SetAppModified()
-{
-    m_bAppModified = TRUE;
+  return pFormField->GetSelectedIndex(nIndex);
 }
 
-void CPDFSDK_Widget::ClearAppModified()
-{
-    m_bAppModified = FALSE;
+CFX_WideString CPDFSDK_Widget::GetValue(FX_BOOL bDisplay) {
+  if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
+    if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
+      if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) {
+        CFX_WideString sValue;
+        pWidgetAcc->GetValue(sValue, bDisplay ? XFA_VALUEPICTURE_Display
+                                              : XFA_VALUEPICTURE_Edit);
+        return sValue;
+      }
+    }
+  }
+
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
+
+  return pFormField->GetValue();
 }
 
-FX_BOOL CPDFSDK_Widget::IsAppModified() const
-{
-    return m_bAppModified;
+CFX_WideString CPDFSDK_Widget::GetDefaultValue() const {
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
+
+  return pFormField->GetDefaultValue();
 }
 
-void CPDFSDK_Widget::ResetAppearance(FX_BOOL bValueChanged)
-{
-	switch (GetFieldType())
-	{
-	case FIELDTYPE_TEXTFIELD:
-	case FIELDTYPE_COMBOBOX:
-		{
-			FX_BOOL bFormated = FALSE;
-			CFX_WideString sValue = this->OnFormat(bFormated);
-			if (bFormated)
-				this->ResetAppearance(sValue, TRUE);
-			else
-				this->ResetAppearance(NULL, TRUE);
-		}
-		break;
-	default:
-		this->ResetAppearance(NULL, FALSE);
-		break;
-	}
+CFX_WideString CPDFSDK_Widget::GetOptionLabel(int nIndex) const {
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
+
+  return pFormField->GetOptionLabel(nIndex);
 }
 
-void CPDFSDK_Widget::ResetAppearance(const FX_WCHAR* sValue, FX_BOOL bValueChanged)
-{
-    SetAppModified();
+int CPDFSDK_Widget::CountOptions() const {
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
 
-    m_nAppAge++;
-    if (m_nAppAge > 999999)
-        m_nAppAge = 0;
-    if (bValueChanged)
-        m_nValueAge++;
+  return pFormField->CountOptions();
+}
 
-    int nFieldType = GetFieldType();
+FX_BOOL CPDFSDK_Widget::IsOptionSelected(int nIndex) {
+  if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
+    if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
+      if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) {
+        if (nIndex > -1 && nIndex < pWidgetAcc->CountChoiceListItems())
+          return pWidgetAcc->GetItemState(nIndex);
 
-    switch (nFieldType)
-    {
-    case FIELDTYPE_PUSHBUTTON:
-        ResetAppearance_PushButton();
-        break;
-    case FIELDTYPE_CHECKBOX:
-        ResetAppearance_CheckBox();
-        break;
-    case FIELDTYPE_RADIOBUTTON:
-        ResetAppearance_RadioButton();
-        break;
-    case FIELDTYPE_COMBOBOX:
-        ResetAppearance_ComboBox(sValue);
-        break;
-    case FIELDTYPE_LISTBOX:
-        ResetAppearance_ListBox();
-        break;
-    case FIELDTYPE_TEXTFIELD:
-        ResetAppearance_TextField(sValue);
-        break;
+        return FALSE;
+      }
     }
+  }
 
-    ASSERT(m_pAnnot != NULL);
-    m_pAnnot->ClearCachedAP();
+  CPDF_FormField* pFormField = GetFormField();
+  return pFormField->IsItemSelected(nIndex);
 }
 
-CFX_WideString CPDFSDK_Widget::OnFormat(FX_BOOL& bFormated)
-{
-    CPDF_FormField* pFormField = GetFormField();
-    ASSERT(pFormField != NULL);
-    return m_pInterForm->OnFormat(pFormField, bFormated);
+int CPDFSDK_Widget::GetTopVisibleIndex() const {
+  CPDF_FormField* pFormField = GetFormField();
+  return pFormField->GetTopVisibleIndex();
 }
 
-void CPDFSDK_Widget::ResetFieldAppearance(FX_BOOL bValueChanged)
-{
-    CPDF_FormField* pFormField = GetFormField();
-    ASSERT(pFormField != NULL);
+FX_BOOL CPDFSDK_Widget::IsChecked() {
+  if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
+    if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
+      if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) {
+        FX_BOOL bChecked = pWidgetAcc->GetCheckState() == XFA_CHECKSTATE_On;
+        return bChecked;
+      }
+    }
+  }
 
-    ASSERT(m_pInterForm != NULL);
+  CPDF_FormControl* pFormCtrl = GetFormControl();
+  ASSERT(pFormCtrl != NULL);
 
-    m_pInterForm->ResetFieldAppearance(pFormField, NULL, bValueChanged);
+  return pFormCtrl->IsChecked();
 }
 
-void    CPDFSDK_Widget::DrawAppearance(CFX_RenderDevice* pDevice, const CPDF_Matrix* pUser2Device,
-        CPDF_Annot::AppearanceMode mode, const CPDF_RenderOptions* pOptions)
-{
-    int nFieldType = GetFieldType();
+int CPDFSDK_Widget::GetAlignment() const {
+  CPDF_FormControl* pFormCtrl = GetFormControl();
+  ASSERT(pFormCtrl != NULL);
+
+  return pFormCtrl->GetControlAlignment();
+}
 
-    if ((nFieldType == FIELDTYPE_CHECKBOX || nFieldType == FIELDTYPE_RADIOBUTTON) &&
-        mode == CPDF_Annot::Normal &&
-        !IsWidgetAppearanceValid(CPDF_Annot::Normal))
-    {
-        CFX_PathData pathData;
+int CPDFSDK_Widget::GetMaxLen() const {
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
 
-        CPDF_Rect rcAnnot = GetRect();
+  return pFormField->GetMaxLen();
+}
 
-        pathData.AppendRect(rcAnnot.left, rcAnnot.bottom,
-            rcAnnot.right, rcAnnot.top);
+void CPDFSDK_Widget::SetCheck(FX_BOOL bChecked, FX_BOOL bNotify) {
+  CPDF_FormControl* pFormCtrl = GetFormControl();
+  ASSERT(pFormCtrl != NULL);
 
-        CFX_GraphStateData gsd;
-        gsd.m_LineWidth = 0.0f;
+  CPDF_FormField* pFormField = pFormCtrl->GetField();
+  ASSERT(pFormField != NULL);
 
-		pDevice->DrawPath(&pathData, pUser2Device, &gsd, 0, 0xFFAAAAAA, FXFILL_ALTERNATE);
-	}
-	else
-	{
-		CPDFSDK_BAAnnot::DrawAppearance(pDevice, pUser2Device, mode, pOptions);
-	}
+  pFormField->CheckControl(pFormField->GetControlIndex(pFormCtrl), bChecked,
+                           bNotify);
+  if (!IsWidgetAppearanceValid(CPDF_Annot::Normal))
+    ResetAppearance(TRUE);
+  if (!bNotify)
+    Synchronize(TRUE);
 }
 
-void CPDFSDK_Widget::UpdateField()
-{
-    CPDF_FormField* pFormField = GetFormField();
-    ASSERT(pFormField != NULL);
+void CPDFSDK_Widget::SetValue(const CFX_WideString& sValue, FX_BOOL bNotify) {
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
 
-    ASSERT(m_pInterForm != NULL);
-    m_pInterForm->UpdateField(pFormField);
+  pFormField->SetValue(sValue, bNotify);
+
+  if (!bNotify)
+    Synchronize(TRUE);
 }
 
-void CPDFSDK_Widget::DrawShadow(CFX_RenderDevice* pDevice, CPDFSDK_PageView* pPageView)
-{
-    ASSERT(m_pInterForm != NULL);
+void CPDFSDK_Widget::SetDefaultValue(const CFX_WideString& sValue) {}
+void CPDFSDK_Widget::SetOptionSelection(int index,
+                                        FX_BOOL bSelected,
+                                        FX_BOOL bNotify) {
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
 
-    int nFieldType = GetFieldType();
-    if (m_pInterForm->IsNeedHighLight(nFieldType))
-    {
-
-//          if (nFieldType != FIELDTYPE_PUSHBUTTON)
-//          {
-            CPDF_Rect rc  = GetRect();
-            FX_COLORREF color = m_pInterForm->GetHighlightColor(nFieldType);
-            uint8_t alpha = m_pInterForm->GetHighlightAlpha();
-
-            CFX_FloatRect rcDevice;
-            ASSERT(m_pInterForm->GetDocument());
-            CPDFDoc_Environment* pEnv = m_pInterForm->GetDocument()->GetEnv();
-            if(!pEnv)
-                return;
-            CFX_AffineMatrix page2device;
-            pPageView->GetCurrentMatrix(page2device);
-            page2device.Transform(((FX_FLOAT)rc.left), ((FX_FLOAT)rc.bottom), rcDevice.left, rcDevice.bottom);
-//          pEnv->FFI_PageToDevice(m_pPageView->GetPDFPage(), rc.left, rc.bottom, &rcDevice.left, &rcDevice.bottom);
-//          pEnv->FFI_PageToDevice(m_pPageView->GetPDFPage(), rc.right, rc.top, &rcDevice.right, &rcDevice.top);
-            page2device.Transform(((FX_FLOAT)rc.right), ((FX_FLOAT)rc.top), rcDevice.right, rcDevice.top);
-
-            rcDevice.Normalize();
-
-            FX_ARGB argb = ArgbEncode((int)alpha, color);
-            FX_RECT rcDev((int)rcDevice.left,(int)rcDevice.top,(int)rcDevice.right,(int)rcDevice.bottom);
-            pDevice->FillRect(&rcDev, argb);
-            /*      }*/
-    }
+  pFormField->SetItemSelection(index, bSelected, bNotify);
+
+  if (!bNotify)
+    Synchronize(TRUE);
 }
 
-void CPDFSDK_Widget::ResetAppearance_PushButton()
-{
-    CPDF_FormControl* pControl = GetFormControl();
-    ASSERT(pControl != NULL);
+void CPDFSDK_Widget::ClearSelection(FX_BOOL bNotify) {
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
 
+  pFormField->ClearSelection(bNotify);
 
+  if (!bNotify)
+    Synchronize(TRUE);
+}
 
-    CPDF_Rect rcWindow = GetRotatedRect();
+void CPDFSDK_Widget::SetTopVisibleIndex(int index) {}
 
-    int32_t nLayout = 0;
+void CPDFSDK_Widget::SetAppModified() {
+  m_bAppModified = TRUE;
+}
 
-    switch (pControl->GetTextPosition())
-    {
-    case TEXTPOS_ICON:
-        nLayout = PPBL_ICON;
-        break;
-    case TEXTPOS_BELOW:
-        nLayout = PPBL_ICONTOPLABELBOTTOM;
-        break;
-    case TEXTPOS_ABOVE:
-        nLayout = PPBL_LABELTOPICONBOTTOM;
-        break;
-    case TEXTPOS_RIGHT:
-        nLayout = PPBL_ICONLEFTLABELRIGHT;
-        break;
-    case TEXTPOS_LEFT:
-        nLayout = PPBL_LABELLEFTICONRIGHT;
-        break;
-    case TEXTPOS_OVERLAID:
-        nLayout = PPBL_LABELOVERICON;
-        break;
-    default:
-        nLayout = PPBL_LABEL;
-        break;
-    }
+void CPDFSDK_Widget::ClearAppModified() {
+  m_bAppModified = FALSE;
+}
 
-    CPWL_Color crBackground, crBorder;
+FX_BOOL CPDFSDK_Widget::IsAppModified() const {
+  return m_bAppModified;
+}
 
-    int iColorType;
-    FX_FLOAT fc[4];
+void CPDFSDK_Widget::ResetAppearance(FX_BOOL bValueChanged) {
+  switch (GetFieldType()) {
+    case FIELDTYPE_TEXTFIELD:
+    case FIELDTYPE_COMBOBOX: {
+      FX_BOOL bFormated = FALSE;
+      CFX_WideString sValue = this->OnFormat(bFormated);
+      if (bFormated)
+        this->ResetAppearance(sValue, TRUE);
+      else
+        this->ResetAppearance(NULL, TRUE);
+    } break;
+    default:
+      this->ResetAppearance(NULL, FALSE);
+      break;
+  }
+}
 
-    pControl->GetOriginalBackgroundColor(iColorType, fc);
-    if (iColorType > 0)
-        crBackground = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+void CPDFSDK_Widget::ResetAppearance(const FX_WCHAR* sValue,
+                                     FX_BOOL bValueChanged) {
+  SetAppModified();
 
-    pControl->GetOriginalBorderColor(iColorType, fc);
-    if (iColorType > 0)
-        crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+  m_nAppAge++;
+  if (m_nAppAge > 999999)
+    m_nAppAge = 0;
+  if (bValueChanged)
+    m_nValueAge++;
 
-    FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
-    int32_t nBorderStyle = 0;
-    CPWL_Dash dsBorder(3,0,0);
-    CPWL_Color crLeftTop,crRightBottom;
+  int nFieldType = GetFieldType();
 
-    switch (GetBorderStyle())
-    {
-    case BBS_DASH:
-        nBorderStyle = PBS_DASH;
-        dsBorder = CPWL_Dash(3, 3, 0);
-        break;
-    case BBS_BEVELED:
-        nBorderStyle = PBS_BEVELED;
-        fBorderWidth *= 2;
-        crLeftTop = CPWL_Color(COLORTYPE_GRAY,1);
-        crRightBottom = CPWL_Utils::DevideColor(crBackground,2);
-        break;
-    case BBS_INSET:
-        nBorderStyle = PBS_INSET;
-        fBorderWidth *= 2;
-        crLeftTop = CPWL_Color(COLORTYPE_GRAY,0.5);
-        crRightBottom = CPWL_Color(COLORTYPE_GRAY,0.75);
-        break;
-    case BBS_UNDERLINE:
-        nBorderStyle = PBS_UNDERLINED;
-        break;
-    default:
-        nBorderStyle = PBS_SOLID;
-        break;
-    }
+  switch (nFieldType) {
+    case FIELDTYPE_PUSHBUTTON:
+      ResetAppearance_PushButton();
+      break;
+    case FIELDTYPE_CHECKBOX:
+      ResetAppearance_CheckBox();
+      break;
+    case FIELDTYPE_RADIOBUTTON:
+      ResetAppearance_RadioButton();
+      break;
+    case FIELDTYPE_COMBOBOX:
+      ResetAppearance_ComboBox(sValue);
+      break;
+    case FIELDTYPE_LISTBOX:
+      ResetAppearance_ListBox();
+      break;
+    case FIELDTYPE_TEXTFIELD:
+      ResetAppearance_TextField(sValue);
+      break;
+  }
 
-    CPDF_Rect rcClient = CPWL_Utils::DeflateRect(rcWindow,fBorderWidth);
+  ASSERT(m_pAnnot != NULL);
+  m_pAnnot->ClearCachedAP();
+}
 
-    CPWL_Color crText(COLORTYPE_GRAY,0);
+CFX_WideString CPDFSDK_Widget::OnFormat(FX_BOOL& bFormated) {
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
+  return m_pInterForm->OnFormat(pFormField, bFormated);
+}
 
-    FX_FLOAT fFontSize = 12.0f;
-    CFX_ByteString csNameTag;
+void CPDFSDK_Widget::ResetFieldAppearance(FX_BOOL bValueChanged) {
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
 
-    CPDF_DefaultAppearance da = pControl->GetDefaultAppearance();
-    if (da.HasColor())
-    {
-        da.GetColor(iColorType, fc);
-        crText = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
-    }
+  ASSERT(m_pInterForm != NULL);
 
-    if (da.HasFont())
-        da.GetFont(csNameTag, fFontSize);
+  m_pInterForm->ResetFieldAppearance(pFormField, NULL, bValueChanged);
+}
 
-    CFX_WideString csWCaption;
-    CFX_WideString csNormalCaption, csRolloverCaption, csDownCaption;
+void CPDFSDK_Widget::DrawAppearance(CFX_RenderDevice* pDevice,
+                                    const CPDF_Matrix* pUser2Device,
+                                    CPDF_Annot::AppearanceMode mode,
+                                    const CPDF_RenderOptions* pOptions) {
+  int nFieldType = GetFieldType();
 
-    if (pControl->HasMKEntry("CA"))
-    {
-        csNormalCaption = pControl->GetNormalCaption();
-    }
-    if (pControl->HasMKEntry("RC"))
-    {
-        csRolloverCaption = pControl->GetRolloverCaption();
-    }
-    if (pControl->HasMKEntry("AC"))
-    {
-        csDownCaption = pControl->GetDownCaption();
-    }
+  if ((nFieldType == FIELDTYPE_CHECKBOX ||
+       nFieldType == FIELDTYPE_RADIOBUTTON) &&
+      mode == CPDF_Annot::Normal &&
+      !IsWidgetAppearanceValid(CPDF_Annot::Normal)) {
+    CFX_PathData pathData;
 
-    CPDF_Stream* pNormalIcon = NULL;
-    CPDF_Stream* pRolloverIcon = NULL;
-    CPDF_Stream* pDownIcon = NULL;
+    CPDF_Rect rcAnnot = GetRect();
 
-    if (pControl->HasMKEntry("I"))
-    {
-        pNormalIcon = pControl->GetNormalIcon();
-    }
-    if (pControl->HasMKEntry("RI"))
-    {
-        pRolloverIcon = pControl->GetRolloverIcon();
-    }
-    if (pControl->HasMKEntry("IX"))
-    {
-        pDownIcon = pControl->GetDownIcon();
-    }
+    pathData.AppendRect(rcAnnot.left, rcAnnot.bottom, rcAnnot.right,
+                        rcAnnot.top);
 
-    if (pNormalIcon)
-    {
-        if (CPDF_Dictionary* pImageDict = pNormalIcon->GetDict())
-        {
-            if (pImageDict->GetString("Name").IsEmpty())
-                pImageDict->SetAtString("Name", "ImgA");
-        }
-    }
+    CFX_GraphStateData gsd;
+    gsd.m_LineWidth = 0.0f;
 
-    if (pRolloverIcon)
-    {
-        if (CPDF_Dictionary* pImageDict = pRolloverIcon->GetDict())
-        {
-            if (pImageDict->GetString("Name").IsEmpty())
-                pImageDict->SetAtString("Name", "ImgB");
-        }
-    }
+    pDevice->DrawPath(&pathData, pUser2Device, &gsd, 0, 0xFFAAAAAA,
+                      FXFILL_ALTERNATE);
+  } else {
+    CPDFSDK_BAAnnot::DrawAppearance(pDevice, pUser2Device, mode, pOptions);
+  }
+}
 
-    if (pDownIcon)
-    {
-        if (CPDF_Dictionary* pImageDict = pDownIcon->GetDict())
-        {
-            if (pImageDict->GetString("Name").IsEmpty())
-                pImageDict->SetAtString("Name", "ImgC");
-        }
-    }
+void CPDFSDK_Widget::UpdateField() {
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
+
+  ASSERT(m_pInterForm != NULL);
+  m_pInterForm->UpdateField(pFormField);
+}
 
-    CPDF_IconFit iconFit = pControl->GetIconFit();
+void CPDFSDK_Widget::DrawShadow(CFX_RenderDevice* pDevice,
+                                CPDFSDK_PageView* pPageView) {
+  ASSERT(m_pInterForm != NULL);
 
-    CPDFSDK_Document* pDoc = m_pInterForm->GetDocument();
-    ASSERT(pDoc != NULL);
-    CPDFDoc_Environment* pEnv = pDoc->GetEnv();
+  int nFieldType = GetFieldType();
+  if (m_pInterForm->IsNeedHighLight(nFieldType)) {
+    //          if (nFieldType != FIELDTYPE_PUSHBUTTON)
+    //          {
+    CPDF_Rect rc = GetRect();
+    FX_COLORREF color = m_pInterForm->GetHighlightColor(nFieldType);
+    uint8_t alpha = m_pInterForm->GetHighlightAlpha();
 
-    CBA_FontMap FontMap(this,pEnv->GetSysHandler());//, ISystemHandle::GetSystemHandler(m_pBaseForm->GetEnv()));
-    FontMap.Initial();
+    CFX_FloatRect rcDevice;
+    ASSERT(m_pInterForm->GetDocument());
+    CPDFDoc_Environment* pEnv = m_pInterForm->GetDocument()->GetEnv();
+    if (!pEnv)
+      return;
+    CFX_AffineMatrix page2device;
+    pPageView->GetCurrentMatrix(page2device);
+    page2device.Transform(((FX_FLOAT)rc.left), ((FX_FLOAT)rc.bottom),
+                          rcDevice.left, rcDevice.bottom);
+    //          pEnv->FFI_PageToDevice(m_pPageView->GetPDFPage(), rc.left,
+    //          rc.bottom, &rcDevice.left, &rcDevice.bottom);
+    //          pEnv->FFI_PageToDevice(m_pPageView->GetPDFPage(), rc.right,
+    //          rc.top, &rcDevice.right, &rcDevice.top);
+    page2device.Transform(((FX_FLOAT)rc.right), ((FX_FLOAT)rc.top),
+                          rcDevice.right, rcDevice.top);
 
-    FontMap.SetAPType("N");
+    rcDevice.Normalize();
 
-    CFX_ByteString csAP = CPWL_Utils::GetRectFillAppStream(rcWindow, crBackground) +
-        CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder, crLeftTop, crRightBottom, nBorderStyle, dsBorder) +
-        CPWL_Utils::GetPushButtonAppStream(iconFit.GetFittingBounds() ? rcWindow : rcClient, &FontMap, pNormalIcon, iconFit, csNormalCaption, crText, fFontSize, nLayout);
+    FX_ARGB argb = ArgbEncode((int)alpha, color);
+    FX_RECT rcDev((int)rcDevice.left, (int)rcDevice.top, (int)rcDevice.right,
+                  (int)rcDevice.bottom);
+    pDevice->FillRect(&rcDev, argb);
+    /*      }*/
+  }
+}
 
-    WriteAppearance("N", GetRotatedRect(), GetMatrix(), csAP);
-    if (pNormalIcon)
-        AddImageToAppearance("N", pNormalIcon);
+void CPDFSDK_Widget::ResetAppearance_PushButton() {
+  CPDF_FormControl* pControl = GetFormControl();
+  ASSERT(pControl != NULL);
 
-    CPDF_FormControl::HighlightingMode eHLM = pControl->GetHighlightingMode();
-    if (eHLM == CPDF_FormControl::Push || eHLM == CPDF_FormControl::Toggle)
-    {
-        if (csRolloverCaption.IsEmpty() && !pRolloverIcon)
-        {
-            csRolloverCaption = csNormalCaption;
-            pRolloverIcon = pNormalIcon;
-        }
+  CPDF_Rect rcWindow = GetRotatedRect();
 
-        FontMap.SetAPType("R");
+  int32_t nLayout = 0;
 
-        csAP = CPWL_Utils::GetRectFillAppStream(rcWindow, crBackground) +
-                CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder, crLeftTop, crRightBottom, nBorderStyle, dsBorder) +
-                CPWL_Utils::GetPushButtonAppStream(iconFit.GetFittingBounds() ? rcWindow : rcClient, &FontMap, pRolloverIcon, iconFit, csRolloverCaption, crText, fFontSize, nLayout);
+  switch (pControl->GetTextPosition()) {
+    case TEXTPOS_ICON:
+      nLayout = PPBL_ICON;
+      break;
+    case TEXTPOS_BELOW:
+      nLayout = PPBL_ICONTOPLABELBOTTOM;
+      break;
+    case TEXTPOS_ABOVE:
+      nLayout = PPBL_LABELTOPICONBOTTOM;
+      break;
+    case TEXTPOS_RIGHT:
+      nLayout = PPBL_ICONLEFTLABELRIGHT;
+      break;
+    case TEXTPOS_LEFT:
+      nLayout = PPBL_LABELLEFTICONRIGHT;
+      break;
+    case TEXTPOS_OVERLAID:
+      nLayout = PPBL_LABELOVERICON;
+      break;
+    default:
+      nLayout = PPBL_LABEL;
+      break;
+  }
 
-        WriteAppearance("R", GetRotatedRect(), GetMatrix(), csAP);
-        if (pRolloverIcon)
-            AddImageToAppearance("R", pRolloverIcon);
+  CPWL_Color crBackground, crBorder;
 
-        if (csDownCaption.IsEmpty() && !pDownIcon)
-        {
-            csDownCaption = csNormalCaption;
-            pDownIcon = pNormalIcon;
-        }
+  int iColorType;
+  FX_FLOAT fc[4];
 
-        switch (nBorderStyle)
-        {
-        case PBS_BEVELED:
-            {
-                CPWL_Color crTemp = crLeftTop;
-                crLeftTop = crRightBottom;
-                crRightBottom = crTemp;
-            }
-            break;
-        case PBS_INSET:
-            crLeftTop = CPWL_Color(COLORTYPE_GRAY,0);
-            crRightBottom = CPWL_Color(COLORTYPE_GRAY,1);
-            break;
-        }
+  pControl->GetOriginalBackgroundColor(iColorType, fc);
+  if (iColorType > 0)
+    crBackground = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
 
-        FontMap.SetAPType("D");
+  pControl->GetOriginalBorderColor(iColorType, fc);
+  if (iColorType > 0)
+    crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
 
-        csAP = CPWL_Utils::GetRectFillAppStream(rcWindow, CPWL_Utils::SubstractColor(crBackground,0.25f)) +
-            CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder, crLeftTop, crRightBottom, nBorderStyle, dsBorder) +
-            CPWL_Utils::GetPushButtonAppStream(iconFit.GetFittingBounds() ? rcWindow : rcClient, &FontMap, pDownIcon, iconFit, csDownCaption, crText, fFontSize, nLayout);
+  FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
+  int32_t nBorderStyle = 0;
+  CPWL_Dash dsBorder(3, 0, 0);
+  CPWL_Color crLeftTop, crRightBottom;
 
-        WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP);
-        if (pDownIcon)
-            AddImageToAppearance("D", pDownIcon);
-    }
-    else
-    {
-        RemoveAppearance("D");
-        RemoveAppearance("R");
+  switch (GetBorderStyle()) {
+    case BBS_DASH:
+      nBorderStyle = PBS_DASH;
+      dsBorder = CPWL_Dash(3, 3, 0);
+      break;
+    case BBS_BEVELED:
+      nBorderStyle = PBS_BEVELED;
+      fBorderWidth *= 2;
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 1);
+      crRightBottom = CPWL_Utils::DevideColor(crBackground, 2);
+      break;
+    case BBS_INSET:
+      nBorderStyle = PBS_INSET;
+      fBorderWidth *= 2;
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 0.5);
+      crRightBottom = CPWL_Color(COLORTYPE_GRAY, 0.75);
+      break;
+    case BBS_UNDERLINE:
+      nBorderStyle = PBS_UNDERLINED;
+      break;
+    default:
+      nBorderStyle = PBS_SOLID;
+      break;
+  }
+
+  CPDF_Rect rcClient = CPWL_Utils::DeflateRect(rcWindow, fBorderWidth);
+
+  CPWL_Color crText(COLORTYPE_GRAY, 0);
+
+  FX_FLOAT fFontSize = 12.0f;
+  CFX_ByteString csNameTag;
+
+  CPDF_DefaultAppearance da = pControl->GetDefaultAppearance();
+  if (da.HasColor()) {
+    da.GetColor(iColorType, fc);
+    crText = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+  }
+
+  if (da.HasFont())
+    da.GetFont(csNameTag, fFontSize);
+
+  CFX_WideString csWCaption;
+  CFX_WideString csNormalCaption, csRolloverCaption, csDownCaption;
+
+  if (pControl->HasMKEntry("CA")) {
+    csNormalCaption = pControl->GetNormalCaption();
+  }
+  if (pControl->HasMKEntry("RC")) {
+    csRolloverCaption = pControl->GetRolloverCaption();
+  }
+  if (pControl->HasMKEntry("AC")) {
+    csDownCaption = pControl->GetDownCaption();
+  }
+
+  CPDF_Stream* pNormalIcon = NULL;
+  CPDF_Stream* pRolloverIcon = NULL;
+  CPDF_Stream* pDownIcon = NULL;
+
+  if (pControl->HasMKEntry("I")) {
+    pNormalIcon = pControl->GetNormalIcon();
+  }
+  if (pControl->HasMKEntry("RI")) {
+    pRolloverIcon = pControl->GetRolloverIcon();
+  }
+  if (pControl->HasMKEntry("IX")) {
+    pDownIcon = pControl->GetDownIcon();
+  }
+
+  if (pNormalIcon) {
+    if (CPDF_Dictionary* pImageDict = pNormalIcon->GetDict()) {
+      if (pImageDict->GetString("Name").IsEmpty())
+        pImageDict->SetAtString("Name", "ImgA");
+    }
+  }
+
+  if (pRolloverIcon) {
+    if (CPDF_Dictionary* pImageDict = pRolloverIcon->GetDict()) {
+      if (pImageDict->GetString("Name").IsEmpty())
+        pImageDict->SetAtString("Name", "ImgB");
+    }
+  }
+
+  if (pDownIcon) {
+    if (CPDF_Dictionary* pImageDict = pDownIcon->GetDict()) {
+      if (pImageDict->GetString("Name").IsEmpty())
+        pImageDict->SetAtString("Name", "ImgC");
+    }
+  }
+
+  CPDF_IconFit iconFit = pControl->GetIconFit();
+
+  CPDFSDK_Document* pDoc = m_pInterForm->GetDocument();
+  ASSERT(pDoc != NULL);
+  CPDFDoc_Environment* pEnv = pDoc->GetEnv();
+
+  CBA_FontMap FontMap(
+      this,
+      pEnv->GetSysHandler());  //,
+                               //ISystemHandle::GetSystemHandler(m_pBaseForm->GetEnv()));
+  FontMap.Initial();
+
+  FontMap.SetAPType("N");
+
+  CFX_ByteString csAP =
+      CPWL_Utils::GetRectFillAppStream(rcWindow, crBackground) +
+      CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder,
+                                     crLeftTop, crRightBottom, nBorderStyle,
+                                     dsBorder) +
+      CPWL_Utils::GetPushButtonAppStream(
+          iconFit.GetFittingBounds() ? rcWindow : rcClient, &FontMap,
+          pNormalIcon, iconFit, csNormalCaption, crText, fFontSize, nLayout);
+
+  WriteAppearance("N", GetRotatedRect(), GetMatrix(), csAP);
+  if (pNormalIcon)
+    AddImageToAppearance("N", pNormalIcon);
+
+  CPDF_FormControl::HighlightingMode eHLM = pControl->GetHighlightingMode();
+  if (eHLM == CPDF_FormControl::Push || eHLM == CPDF_FormControl::Toggle) {
+    if (csRolloverCaption.IsEmpty() && !pRolloverIcon) {
+      csRolloverCaption = csNormalCaption;
+      pRolloverIcon = pNormalIcon;
+    }
+
+    FontMap.SetAPType("R");
+
+    csAP = CPWL_Utils::GetRectFillAppStream(rcWindow, crBackground) +
+           CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder,
+                                          crLeftTop, crRightBottom,
+                                          nBorderStyle, dsBorder) +
+           CPWL_Utils::GetPushButtonAppStream(
+               iconFit.GetFittingBounds() ? rcWindow : rcClient, &FontMap,
+               pRolloverIcon, iconFit, csRolloverCaption, crText, fFontSize,
+               nLayout);
+
+    WriteAppearance("R", GetRotatedRect(), GetMatrix(), csAP);
+    if (pRolloverIcon)
+      AddImageToAppearance("R", pRolloverIcon);
+
+    if (csDownCaption.IsEmpty() && !pDownIcon) {
+      csDownCaption = csNormalCaption;
+      pDownIcon = pNormalIcon;
+    }
+
+    switch (nBorderStyle) {
+      case PBS_BEVELED: {
+        CPWL_Color crTemp = crLeftTop;
+        crLeftTop = crRightBottom;
+        crRightBottom = crTemp;
+      } break;
+      case PBS_INSET:
+        crLeftTop = CPWL_Color(COLORTYPE_GRAY, 0);
+        crRightBottom = CPWL_Color(COLORTYPE_GRAY, 1);
+        break;
     }
-}
 
-void CPDFSDK_Widget::ResetAppearance_CheckBox()
-{
-    CPDF_FormControl* pControl = GetFormControl();
-    ASSERT(pControl != NULL);
+    FontMap.SetAPType("D");
 
+    csAP = CPWL_Utils::GetRectFillAppStream(
+               rcWindow, CPWL_Utils::SubstractColor(crBackground, 0.25f)) +
+           CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder,
+                                          crLeftTop, crRightBottom,
+                                          nBorderStyle, dsBorder) +
+           CPWL_Utils::GetPushButtonAppStream(
+               iconFit.GetFittingBounds() ? rcWindow : rcClient, &FontMap,
+               pDownIcon, iconFit, csDownCaption, crText, fFontSize, nLayout);
 
+    WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP);
+    if (pDownIcon)
+      AddImageToAppearance("D", pDownIcon);
+  } else {
+    RemoveAppearance("D");
+    RemoveAppearance("R");
+  }
+}
 
-    CPWL_Color crBackground, crBorder, crText;
+void CPDFSDK_Widget::ResetAppearance_CheckBox() {
+  CPDF_FormControl* pControl = GetFormControl();
+  ASSERT(pControl != NULL);
 
-    int iColorType;
-    FX_FLOAT fc[4];
+  CPWL_Color crBackground, crBorder, crText;
 
-    pControl->GetOriginalBackgroundColor(iColorType, fc);
-    if (iColorType > 0)
-        crBackground = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+  int iColorType;
+  FX_FLOAT fc[4];
 
-    pControl->GetOriginalBorderColor(iColorType, fc);
-    if (iColorType > 0)
-        crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+  pControl->GetOriginalBackgroundColor(iColorType, fc);
+  if (iColorType > 0)
+    crBackground = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
 
-    FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
-    int32_t nBorderStyle = 0;
-    CPWL_Dash dsBorder(3,0,0);
-    CPWL_Color crLeftTop,crRightBottom;
+  pControl->GetOriginalBorderColor(iColorType, fc);
+  if (iColorType > 0)
+    crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
 
-    switch (GetBorderStyle())
-    {
+  FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
+  int32_t nBorderStyle = 0;
+  CPWL_Dash dsBorder(3, 0, 0);
+  CPWL_Color crLeftTop, crRightBottom;
+
+  switch (GetBorderStyle()) {
     case BBS_DASH:
-        nBorderStyle = PBS_DASH;
-        dsBorder = CPWL_Dash(3, 3, 0);
-        break;
+      nBorderStyle = PBS_DASH;
+      dsBorder = CPWL_Dash(3, 3, 0);
+      break;
     case BBS_BEVELED:
-        nBorderStyle = PBS_BEVELED;
-        fBorderWidth *= 2;
-        crLeftTop = CPWL_Color(COLORTYPE_GRAY,1);
-        crRightBottom = CPWL_Utils::DevideColor(crBackground,2);
-        break;
+      nBorderStyle = PBS_BEVELED;
+      fBorderWidth *= 2;
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 1);
+      crRightBottom = CPWL_Utils::DevideColor(crBackground, 2);
+      break;
     case BBS_INSET:
-        nBorderStyle = PBS_INSET;
-        fBorderWidth *= 2;
-        crLeftTop = CPWL_Color(COLORTYPE_GRAY,0.5);
-        crRightBottom = CPWL_Color(COLORTYPE_GRAY,0.75);
-        break;
+      nBorderStyle = PBS_INSET;
+      fBorderWidth *= 2;
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 0.5);
+      crRightBottom = CPWL_Color(COLORTYPE_GRAY, 0.75);
+      break;
     case BBS_UNDERLINE:
-        nBorderStyle = PBS_UNDERLINED;
-        break;
+      nBorderStyle = PBS_UNDERLINED;
+      break;
     default:
-        nBorderStyle = PBS_SOLID;
-        break;
-    }
+      nBorderStyle = PBS_SOLID;
+      break;
+  }
 
-    CPDF_Rect rcWindow = GetRotatedRect();
-    CPDF_Rect rcClient = CPWL_Utils::DeflateRect(rcWindow,fBorderWidth);
+  CPDF_Rect rcWindow = GetRotatedRect();
+  CPDF_Rect rcClient = CPWL_Utils::DeflateRect(rcWindow, fBorderWidth);
 
-    CPDF_DefaultAppearance da = pControl->GetDefaultAppearance();
-    if (da.HasColor())
-    {
-        da.GetColor(iColorType, fc);
-        crText = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
-    }
+  CPDF_DefaultAppearance da = pControl->GetDefaultAppearance();
+  if (da.HasColor()) {
+    da.GetColor(iColorType, fc);
+    crText = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+  }
 
-    int32_t nStyle = 0;
+  int32_t nStyle = 0;
 
-    CFX_WideString csWCaption = pControl->GetNormalCaption();
-    if (csWCaption.GetLength() > 0)
-    {
-        switch (csWCaption[0])
-        {
-        case L'l':
-            nStyle = PCS_CIRCLE;
-            break;
-        case L'8':
-            nStyle = PCS_CROSS;
-            break;
-        case L'u':
-            nStyle = PCS_DIAMOND;
-            break;
-        case L'n':
-            nStyle = PCS_SQUARE;
-            break;
-        case L'H':
-            nStyle = PCS_STAR;
-            break;
-        default: //L'4'
-            nStyle = PCS_CHECK;
-            break;
-        }
-    }
-    else
-    {
+  CFX_WideString csWCaption = pControl->GetNormalCaption();
+  if (csWCaption.GetLength() > 0) {
+    switch (csWCaption[0]) {
+      case L'l':
+        nStyle = PCS_CIRCLE;
+        break;
+      case L'8':
+        nStyle = PCS_CROSS;
+        break;
+      case L'u':
+        nStyle = PCS_DIAMOND;
+        break;
+      case L'n':
+        nStyle = PCS_SQUARE;
+        break;
+      case L'H':
+        nStyle = PCS_STAR;
+        break;
+      default:  // L'4'
         nStyle = PCS_CHECK;
+        break;
     }
+  } else {
+    nStyle = PCS_CHECK;
+  }
 
-    CFX_ByteString csAP_N_ON = CPWL_Utils::GetRectFillAppStream(rcWindow,crBackground) +
-        CPWL_Utils::GetBorderAppStream(rcWindow,fBorderWidth,crBorder,crLeftTop,crRightBottom,nBorderStyle,dsBorder);
+  CFX_ByteString csAP_N_ON =
+      CPWL_Utils::GetRectFillAppStream(rcWindow, crBackground) +
+      CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder,
+                                     crLeftTop, crRightBottom, nBorderStyle,
+                                     dsBorder);
 
-    CFX_ByteString csAP_N_OFF = csAP_N_ON;
+  CFX_ByteString csAP_N_OFF = csAP_N_ON;
 
-    switch (nBorderStyle)
-    {
-    case PBS_BEVELED:
-        {
-            CPWL_Color crTemp = crLeftTop;
-            crLeftTop = crRightBottom;
-            crRightBottom = crTemp;
-        }
-        break;
+  switch (nBorderStyle) {
+    case PBS_BEVELED: {
+      CPWL_Color crTemp = crLeftTop;
+      crLeftTop = crRightBottom;
+      crRightBottom = crTemp;
+    } break;
     case PBS_INSET:
-        crLeftTop = CPWL_Color(COLORTYPE_GRAY,0);
-        crRightBottom = CPWL_Color(COLORTYPE_GRAY,1);
-        break;
-    }
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 0);
+      crRightBottom = CPWL_Color(COLORTYPE_GRAY, 1);
+      break;
+  }
 
-    CFX_ByteString csAP_D_ON = CPWL_Utils::GetRectFillAppStream(rcWindow,CPWL_Utils::SubstractColor(crBackground,0.25f)) +
-        CPWL_Utils::GetBorderAppStream(rcWindow,fBorderWidth,crBorder,crLeftTop,crRightBottom,nBorderStyle,dsBorder);
+  CFX_ByteString csAP_D_ON =
+      CPWL_Utils::GetRectFillAppStream(
+          rcWindow, CPWL_Utils::SubstractColor(crBackground, 0.25f)) +
+      CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder,
+                                     crLeftTop, crRightBottom, nBorderStyle,
+                                     dsBorder);
 
-    CFX_ByteString csAP_D_OFF = csAP_D_ON;
+  CFX_ByteString csAP_D_OFF = csAP_D_ON;
 
-    csAP_N_ON += CPWL_Utils::GetCheckBoxAppStream(rcClient,nStyle,crText);
-    csAP_D_ON += CPWL_Utils::GetCheckBoxAppStream(rcClient,nStyle,crText);
+  csAP_N_ON += CPWL_Utils::GetCheckBoxAppStream(rcClient, nStyle, crText);
+  csAP_D_ON += CPWL_Utils::GetCheckBoxAppStream(rcClient, nStyle, crText);
 
-    WriteAppearance("N", GetRotatedRect(), GetMatrix(), csAP_N_ON, pControl->GetCheckedAPState());
-    WriteAppearance("N", GetRotatedRect(), GetMatrix(), csAP_N_OFF, "Off");
+  WriteAppearance("N", GetRotatedRect(), GetMatrix(), csAP_N_ON,
+                  pControl->GetCheckedAPState());
+  WriteAppearance("N", GetRotatedRect(), GetMatrix(), csAP_N_OFF, "Off");
 
-    WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP_D_ON, pControl->GetCheckedAPState());
-    WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP_D_OFF, "Off");
+  WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP_D_ON,
+                  pControl->GetCheckedAPState());
+  WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP_D_OFF, "Off");
 
-    CFX_ByteString csAS = GetAppState();
-    if (csAS.IsEmpty())
-        SetAppState("Off");
+  CFX_ByteString csAS = GetAppState();
+  if (csAS.IsEmpty())
+    SetAppState("Off");
 }
 
-void CPDFSDK_Widget::ResetAppearance_RadioButton()
-{
-    CPDF_FormControl* pControl = GetFormControl();
-    ASSERT(pControl != NULL);
-
+void CPDFSDK_Widget::ResetAppearance_RadioButton() {
+  CPDF_FormControl* pControl = GetFormControl();
+  ASSERT(pControl != NULL);
 
+  CPWL_Color crBackground, crBorder, crText;
 
-    CPWL_Color crBackground, crBorder, crText;
+  int iColorType;
+  FX_FLOAT fc[4];
 
-    int iColorType;
-    FX_FLOAT fc[4];
-
-    pControl->GetOriginalBackgroundColor(iColorType, fc);
-    if (iColorType > 0)
-        crBackground = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+  pControl->GetOriginalBackgroundColor(iColorType, fc);
+  if (iColorType > 0)
+    crBackground = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
 
-    pControl->GetOriginalBorderColor(iColorType, fc);
-    if (iColorType > 0)
-        crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+  pControl->GetOriginalBorderColor(iColorType, fc);
+  if (iColorType > 0)
+    crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
 
-    FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
-    int32_t nBorderStyle = 0;
-    CPWL_Dash dsBorder(3,0,0);
-    CPWL_Color crLeftTop,crRightBottom;
+  FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
+  int32_t nBorderStyle = 0;
+  CPWL_Dash dsBorder(3, 0, 0);
+  CPWL_Color crLeftTop, crRightBottom;
 
-    switch (GetBorderStyle())
-    {
+  switch (GetBorderStyle()) {
     case BBS_DASH:
-        nBorderStyle = PBS_DASH;
-        dsBorder = CPWL_Dash(3, 3, 0);
-        break;
+      nBorderStyle = PBS_DASH;
+      dsBorder = CPWL_Dash(3, 3, 0);
+      break;
     case BBS_BEVELED:
-        nBorderStyle = PBS_BEVELED;
-        fBorderWidth *= 2;
-        crLeftTop = CPWL_Color(COLORTYPE_GRAY,1);
-        crRightBottom = CPWL_Utils::DevideColor(crBackground,2);
-        break;
+      nBorderStyle = PBS_BEVELED;
+      fBorderWidth *= 2;
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 1);
+      crRightBottom = CPWL_Utils::DevideColor(crBackground, 2);
+      break;
     case BBS_INSET:
-        nBorderStyle = PBS_INSET;
-        fBorderWidth *= 2;
-        crLeftTop = CPWL_Color(COLORTYPE_GRAY,0.5);
-        crRightBottom = CPWL_Color(COLORTYPE_GRAY,0.75);
-        break;
+      nBorderStyle = PBS_INSET;
+      fBorderWidth *= 2;
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 0.5);
+      crRightBottom = CPWL_Color(COLORTYPE_GRAY, 0.75);
+      break;
     case BBS_UNDERLINE:
-        nBorderStyle = PBS_UNDERLINED;
-        break;
+      nBorderStyle = PBS_UNDERLINED;
+      break;
     default:
-        nBorderStyle = PBS_SOLID;
-        break;
-    }
+      nBorderStyle = PBS_SOLID;
+      break;
+  }
 
-    CPDF_Rect rcWindow = GetRotatedRect();
-    CPDF_Rect rcClient = CPWL_Utils::DeflateRect(rcWindow, fBorderWidth);
+  CPDF_Rect rcWindow = GetRotatedRect();
+  CPDF_Rect rcClient = CPWL_Utils::DeflateRect(rcWindow, fBorderWidth);
 
-    CPDF_DefaultAppearance da = pControl->GetDefaultAppearance();
-    if (da.HasColor())
-    {
-        da.GetColor(iColorType, fc);
-        crText = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
-    }
+  CPDF_DefaultAppearance da = pControl->GetDefaultAppearance();
+  if (da.HasColor()) {
+    da.GetColor(iColorType, fc);
+    crText = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+  }
 
-    int32_t nStyle = 0;
+  int32_t nStyle = 0;
 
-    CFX_WideString csWCaption = pControl->GetNormalCaption();
-    if (csWCaption.GetLength() > 0)
-    {
-        switch (csWCaption[0])
-        {
-        default: //L'l':
-            nStyle = PCS_CIRCLE;
-            break;
-        case L'8':
-            nStyle = PCS_CROSS;
-            break;
-        case L'u':
-            nStyle = PCS_DIAMOND;
-            break;
-        case L'n':
-            nStyle = PCS_SQUARE;
-            break;
-        case L'H':
-            nStyle = PCS_STAR;
-            break;
-        case L'4':
-            nStyle = PCS_CHECK;
-            break;
-        }
-    }
-    else
-    {
+  CFX_WideString csWCaption = pControl->GetNormalCaption();
+  if (csWCaption.GetLength() > 0) {
+    switch (csWCaption[0]) {
+      default:  // L'l':
         nStyle = PCS_CIRCLE;
+        break;
+      case L'8':
+        nStyle = PCS_CROSS;
+        break;
+      case L'u':
+        nStyle = PCS_DIAMOND;
+        break;
+      case L'n':
+        nStyle = PCS_SQUARE;
+        break;
+      case L'H':
+        nStyle = PCS_STAR;
+        break;
+      case L'4':
+        nStyle = PCS_CHECK;
+        break;
     }
+  } else {
+    nStyle = PCS_CIRCLE;
+  }
+
+  CFX_ByteString csAP_N_ON;
+
+  CPDF_Rect rcCenter =
+      CPWL_Utils::DeflateRect(CPWL_Utils::GetCenterSquare(rcWindow), 1.0f);
+
+  if (nStyle == PCS_CIRCLE) {
+    if (nBorderStyle == PBS_BEVELED) {
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 1);
+      crRightBottom = CPWL_Utils::SubstractColor(crBackground, 0.25f);
+    } else if (nBorderStyle == PBS_INSET) {
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 0.5f);
+      crRightBottom = CPWL_Color(COLORTYPE_GRAY, 0.75f);
+    }
+
+    csAP_N_ON = CPWL_Utils::GetCircleFillAppStream(rcCenter, crBackground) +
+                CPWL_Utils::GetCircleBorderAppStream(
+                    rcCenter, fBorderWidth, crBorder, crLeftTop, crRightBottom,
+                    nBorderStyle, dsBorder);
+  } else {
+    csAP_N_ON = CPWL_Utils::GetRectFillAppStream(rcWindow, crBackground) +
+                CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder,
+                                               crLeftTop, crRightBottom,
+                                               nBorderStyle, dsBorder);
+  }
+
+  CFX_ByteString csAP_N_OFF = csAP_N_ON;
+
+  switch (nBorderStyle) {
+    case PBS_BEVELED: {
+      CPWL_Color crTemp = crLeftTop;
+      crLeftTop = crRightBottom;
+      crRightBottom = crTemp;
+    } break;
+    case PBS_INSET:
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 0);
+      crRightBottom = CPWL_Color(COLORTYPE_GRAY, 1);
+      break;
+  }
+
+  CFX_ByteString csAP_D_ON;
+
+  if (nStyle == PCS_CIRCLE) {
+    CPWL_Color crBK = CPWL_Utils::SubstractColor(crBackground, 0.25f);
+    if (nBorderStyle == PBS_BEVELED) {
+      crLeftTop = CPWL_Utils::SubstractColor(crBackground, 0.25f);
+      crRightBottom = CPWL_Color(COLORTYPE_GRAY, 1);
+      crBK = crBackground;
+    } else if (nBorderStyle == PBS_INSET) {
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 0);
+      crRightBottom = CPWL_Color(COLORTYPE_GRAY, 1);
+    }
+
+    csAP_D_ON = CPWL_Utils::GetCircleFillAppStream(rcCenter, crBK) +
+                CPWL_Utils::GetCircleBorderAppStream(
+                    rcCenter, fBorderWidth, crBorder, crLeftTop, crRightBottom,
+                    nBorderStyle, dsBorder);
+  } else {
+    csAP_D_ON = CPWL_Utils::GetRectFillAppStream(
+                    rcWindow, CPWL_Utils::SubstractColor(crBackground, 0.25f)) +
+                CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder,
+                                               crLeftTop, crRightBottom,
+                                               nBorderStyle, dsBorder);
+  }
+
+  CFX_ByteString csAP_D_OFF = csAP_D_ON;
+
+  csAP_N_ON += CPWL_Utils::GetRadioButtonAppStream(rcClient, nStyle, crText);
+  csAP_D_ON += CPWL_Utils::GetRadioButtonAppStream(rcClient, nStyle, crText);
+
+  WriteAppearance("N", GetRotatedRect(), GetMatrix(), csAP_N_ON,
+                  pControl->GetCheckedAPState());
+  WriteAppearance("N", GetRotatedRect(), GetMatrix(), csAP_N_OFF, "Off");
+
+  WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP_D_ON,
+                  pControl->GetCheckedAPState());
+  WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP_D_OFF, "Off");
+
+  CFX_ByteString csAS = GetAppState();
+  if (csAS.IsEmpty())
+    SetAppState("Off");
+}
+
+void CPDFSDK_Widget::ResetAppearance_ComboBox(const FX_WCHAR* sValue) {
+  CPDF_FormControl* pControl = GetFormControl();
+  ASSERT(pControl != NULL);
+  CPDF_FormField* pField = pControl->GetField();
+  ASSERT(pField != NULL);
+
+  CFX_ByteTextBuf sBody, sLines;
+
+  CPDF_Rect rcClient = GetClientRect();
+  CPDF_Rect rcButton = rcClient;
+  rcButton.left = rcButton.right - 13;
+  rcButton.Normalize();
+
+  if (IFX_Edit* pEdit = IFX_Edit::NewEdit()) {
+    pEdit->EnableRefresh(FALSE);
 
-    CFX_ByteString csAP_N_ON;
+    CPDFSDK_Document* pDoc = m_pInterForm->GetDocument();
+    ASSERT(pDoc != NULL);
+    CPDFDoc_Environment* pEnv = pDoc->GetEnv();
+    CBA_FontMap FontMap(this, pEnv->GetSysHandler());
+    FontMap.Initial();
+    pEdit->SetFontMap(&FontMap);
 
-    CPDF_Rect rcCenter = CPWL_Utils::DeflateRect(CPWL_Utils::GetCenterSquare(rcWindow), 1.0f);
+    CPDF_Rect rcEdit = rcClient;
+    rcEdit.right = rcButton.left;
+    rcEdit.Normalize();
 
-    if (nStyle == PCS_CIRCLE)
-    {
-        if (nBorderStyle == PBS_BEVELED)
-        {
-            crLeftTop = CPWL_Color(COLORTYPE_GRAY, 1);
-            crRightBottom = CPWL_Utils::SubstractColor(crBackground,0.25f);
-        }
-        else if (nBorderStyle == PBS_INSET)
-        {
-            crLeftTop = CPWL_Color(COLORTYPE_GRAY,0.5f);
-            crRightBottom = CPWL_Color(COLORTYPE_GRAY,0.75f);
-        }
+    pEdit->SetPlateRect(rcEdit);
+    pEdit->SetAlignmentV(1);
 
-        csAP_N_ON = CPWL_Utils::GetCircleFillAppStream(rcCenter,crBackground) +
-            CPWL_Utils::GetCircleBorderAppStream(rcCenter,fBorderWidth,crBorder,crLeftTop,crRightBottom,nBorderStyle,dsBorder);
-    }
+    FX_FLOAT fFontSize = GetFontSize();
+    if (IsFloatZero(fFontSize))
+      pEdit->SetAutoFontSize(TRUE);
     else
-    {
-        csAP_N_ON = CPWL_Utils::GetRectFillAppStream(rcWindow,crBackground) +
-            CPWL_Utils::GetBorderAppStream(rcWindow,fBorderWidth,crBorder,crLeftTop,crRightBottom,nBorderStyle,dsBorder);
-    }
+      pEdit->SetFontSize(fFontSize);
 
-    CFX_ByteString csAP_N_OFF = csAP_N_ON;
+    pEdit->Initialize();
 
-    switch (nBorderStyle)
-    {
-    case PBS_BEVELED:
-        {
-            CPWL_Color crTemp = crLeftTop;
-            crLeftTop = crRightBottom;
-            crRightBottom = crTemp;
-        }
-        break;
-    case PBS_INSET:
-        crLeftTop = CPWL_Color(COLORTYPE_GRAY,0);
-        crRightBottom = CPWL_Color(COLORTYPE_GRAY,1);
-        break;
+    if (sValue)
+      pEdit->SetText(sValue);
+    else {
+      int32_t nCurSel = pField->GetSelectedIndex(0);
+
+      if (nCurSel < 0)
+        pEdit->SetText(pField->GetValue().c_str());
+      else
+        pEdit->SetText(pField->GetOptionLabel(nCurSel).c_str());
     }
 
-    CFX_ByteString csAP_D_ON;
+    CPDF_Rect rcContent = pEdit->GetContentRect();
 
-    if (nStyle == PCS_CIRCLE)
-    {
-        CPWL_Color crBK = CPWL_Utils::SubstractColor(crBackground,0.25f);
-        if (nBorderStyle == PBS_BEVELED)
-        {
-            crLeftTop = CPWL_Utils::SubstractColor(crBackground,0.25f);
-            crRightBottom = CPWL_Color(COLORTYPE_GRAY, 1);
-            crBK = crBackground;
-        }
-        else if (nBorderStyle == PBS_INSET)
-        {
-            crLeftTop = CPWL_Color(COLORTYPE_GRAY,0);
-            crRightBottom = CPWL_Color(COLORTYPE_GRAY,1);
-        }
+    CFX_ByteString sEdit =
+        CPWL_Utils::GetEditAppStream(pEdit, CPDF_Point(0.0f, 0.0f));
+    if (sEdit.GetLength() > 0) {
+      sBody << "/Tx BMC\n"
+            << "q\n";
+      if (rcContent.Width() > rcEdit.Width() ||
+          rcContent.Height() > rcEdit.Height()) {
+        sBody << rcEdit.left << " " << rcEdit.bottom << " " << rcEdit.Width()
+              << " " << rcEdit.Height() << " re\nW\nn\n";
+      }
 
-        csAP_D_ON = CPWL_Utils::GetCircleFillAppStream(rcCenter,crBK)
-            + CPWL_Utils::GetCircleBorderAppStream(rcCenter,fBorderWidth,crBorder,crLeftTop,crRightBottom,nBorderStyle,dsBorder);
-    }
-    else
-    {
-        csAP_D_ON = CPWL_Utils::GetRectFillAppStream(rcWindow,CPWL_Utils::SubstractColor(crBackground,0.25f)) +
-            CPWL_Utils::GetBorderAppStream(rcWindow,fBorderWidth,crBorder,crLeftTop,crRightBottom,nBorderStyle,dsBorder);
+      CPWL_Color crText = GetTextPWLColor();
+      sBody << "BT\n" << CPWL_Utils::GetColorAppStream(crText) << sEdit
+            << "ET\n"
+            << "Q\nEMC\n";
     }
 
-    CFX_ByteString csAP_D_OFF = csAP_D_ON;
-
-    csAP_N_ON += CPWL_Utils::GetRadioButtonAppStream(rcClient,nStyle,crText);
-    csAP_D_ON += CPWL_Utils::GetRadioButtonAppStream(rcClient,nStyle,crText);
+    IFX_Edit::DelEdit(pEdit);
+  }
 
-    WriteAppearance("N", GetRotatedRect(), GetMatrix(), csAP_N_ON, pControl->GetCheckedAPState());
-    WriteAppearance("N", GetRotatedRect(), GetMatrix(), csAP_N_OFF, "Off");
+  sBody << CPWL_Utils::GetDropButtonAppStream(rcButton);
 
-    WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP_D_ON, pControl->GetCheckedAPState());
-    WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP_D_OFF, "Off");
+  CFX_ByteString sAP = GetBackgroundAppStream() + GetBorderAppStream() +
+                       sLines.GetByteString() + sBody.GetByteString();
 
-    CFX_ByteString csAS = GetAppState();
-    if (csAS.IsEmpty())
-        SetAppState("Off");
+  WriteAppearance("N", GetRotatedRect(), GetMatrix(), sAP);
 }
 
-void CPDFSDK_Widget::ResetAppearance_ComboBox(const FX_WCHAR* sValue)
-{
-    CPDF_FormControl* pControl = GetFormControl();
-    ASSERT(pControl != NULL);
-    CPDF_FormField* pField = pControl->GetField();
-    ASSERT(pField != NULL);
-
-    CFX_ByteTextBuf sBody, sLines;
+void CPDFSDK_Widget::ResetAppearance_ListBox() {
+  CPDF_FormControl* pControl = GetFormControl();
+  ASSERT(pControl != NULL);
+  CPDF_FormField* pField = pControl->GetField();
+  ASSERT(pField != NULL);
 
-    CPDF_Rect rcClient = GetClientRect();
-    CPDF_Rect rcButton = rcClient;
-    rcButton.left = rcButton.right - 13;
-    rcButton.Normalize();
+  CPDF_Rect rcClient = GetClientRect();
 
-    if (IFX_Edit * pEdit = IFX_Edit::NewEdit())
-    {
-        pEdit->EnableRefresh(FALSE);
+  CFX_ByteTextBuf sBody, sLines;
 
-        CPDFSDK_Document* pDoc = m_pInterForm->GetDocument();
-        ASSERT(pDoc != NULL);
-        CPDFDoc_Environment* pEnv = pDoc->GetEnv();
-        CBA_FontMap FontMap(this,pEnv->GetSysHandler());
-        FontMap.Initial();
-        pEdit->SetFontMap(&FontMap);
+  if (IFX_Edit* pEdit = IFX_Edit::NewEdit()) {
+    pEdit->EnableRefresh(FALSE);
 
-        CPDF_Rect rcEdit = rcClient;
-        rcEdit.right = rcButton.left;
-        rcEdit.Normalize();
+    CPDFSDK_Document* pDoc = m_pInterForm->GetDocument();
+    ASSERT(pDoc != NULL);
+    CPDFDoc_Environment* pEnv = pDoc->GetEnv();
 
-        pEdit->SetPlateRect(rcEdit);
-        pEdit->SetAlignmentV(1);
+    CBA_FontMap FontMap(this, pEnv->GetSysHandler());
+    FontMap.Initial();
+    pEdit->SetFontMap(&FontMap);
 
-        FX_FLOAT fFontSize = GetFontSize();
-        if (IsFloatZero(fFontSize))
-            pEdit->SetAutoFontSize(TRUE);
-        else
-            pEdit->SetFontSize(fFontSize);
+    pEdit->SetPlateRect(CPDF_Rect(rcClient.left, 0.0f, rcClient.right, 0.0f));
 
-        pEdit->Initialize();
+    FX_FLOAT fFontSize = GetFontSize();
 
-        if (sValue)
-            pEdit->SetText(sValue);
-        else
-        {
-            int32_t nCurSel = pField->GetSelectedIndex(0);
+    if (IsFloatZero(fFontSize))
+      pEdit->SetFontSize(12.0f);
+    else
+      pEdit->SetFontSize(fFontSize);
 
-            if (nCurSel < 0)
-                pEdit->SetText(pField->GetValue().c_str());
-            else
-                pEdit->SetText(pField->GetOptionLabel(nCurSel).c_str());
-        }
+    pEdit->Initialize();
 
-        CPDF_Rect rcContent = pEdit->GetContentRect();
+    CFX_ByteTextBuf sList;
+    FX_FLOAT fy = rcClient.top;
 
-        CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(pEdit,CPDF_Point(0.0f,0.0f));
-        if (sEdit.GetLength() > 0)
-        {
-            sBody << "/Tx BMC\n" << "q\n";
-            if (rcContent.Width() > rcEdit.Width() ||
-                rcContent.Height() > rcEdit.Height())
-            {
-                sBody << rcEdit.left << " " << rcEdit.bottom << " "
-                    << rcEdit.Width() << " " << rcEdit.Height() << " re\nW\nn\n";
-            }
+    int32_t nTop = pField->GetTopVisibleIndex();
+    int32_t nCount = pField->CountOptions();
+    int32_t nSelCount = pField->CountSelectedItems();
 
-            CPWL_Color crText = GetTextPWLColor();
-            sBody << "BT\n" << CPWL_Utils::GetColorAppStream(crText) << sEdit << "ET\n" << "Q\nEMC\n";
+    for (int32_t i = nTop; i < nCount; i++) {
+      FX_BOOL bSelected = FALSE;
+      for (int32_t j = 0; j < nSelCount; j++) {
+        if (pField->GetSelectedIndex(j) == i) {
+          bSelected = TRUE;
+          break;
         }
+      }
 
-        IFX_Edit::DelEdit(pEdit);
+      pEdit->SetText(pField->GetOptionLabel(i).c_str());
+
+      CPDF_Rect rcContent = pEdit->GetContentRect();
+      FX_FLOAT fItemHeight = rcContent.Height();
+
+      if (bSelected) {
+        CPDF_Rect rcItem =
+            CPDF_Rect(rcClient.left, fy - fItemHeight, rcClient.right, fy);
+        sList << "q\n" << CPWL_Utils::GetColorAppStream(
+                              CPWL_Color(COLORTYPE_RGB, 0, 51.0f / 255.0f,
+                                         113.0f / 255.0f),
+                              TRUE)
+              << rcItem.left << " " << rcItem.bottom << " " << rcItem.Width()
+              << " " << rcItem.Height() << " re f\n"
+              << "Q\n";
+
+        sList << "BT\n" << CPWL_Utils::GetColorAppStream(
+                               CPWL_Color(COLORTYPE_GRAY, 1), TRUE)
+              << CPWL_Utils::GetEditAppStream(pEdit, CPDF_Point(0.0f, fy))
+              << "ET\n";
+      } else {
+        CPWL_Color crText = GetTextPWLColor();
+        sList << "BT\n" << CPWL_Utils::GetColorAppStream(crText, TRUE)
+              << CPWL_Utils::GetEditAppStream(pEdit, CPDF_Point(0.0f, fy))
+              << "ET\n";
+      }
+
+      fy -= fItemHeight;
+    }
+
+    if (sList.GetSize() > 0) {
+      sBody << "/Tx BMC\n"
+            << "q\n" << rcClient.left << " " << rcClient.bottom << " "
+            << rcClient.Width() << " " << rcClient.Height() << " re\nW\nn\n";
+      sBody << sList << "Q\nEMC\n";
     }
 
-    sBody << CPWL_Utils::GetDropButtonAppStream(rcButton);
+    IFX_Edit::DelEdit(pEdit);
+  }
 
-    CFX_ByteString sAP = GetBackgroundAppStream() + GetBorderAppStream() + sLines.GetByteString() + sBody.GetByteString();
+  CFX_ByteString sAP = GetBackgroundAppStream() + GetBorderAppStream() +
+                       sLines.GetByteString() + sBody.GetByteString();
 
-    WriteAppearance("N", GetRotatedRect(), GetMatrix(), sAP);
+  WriteAppearance("N", GetRotatedRect(), GetMatrix(), sAP);
 }
 
-void CPDFSDK_Widget::ResetAppearance_ListBox()
-{
-    CPDF_FormControl* pControl = GetFormControl();
-    ASSERT(pControl != NULL);
-    CPDF_FormField* pField = pControl->GetField();
-    ASSERT(pField != NULL);
+void CPDFSDK_Widget::ResetAppearance_TextField(const FX_WCHAR* sValue) {
+  CPDF_FormControl* pControl = GetFormControl();
+  ASSERT(pControl != NULL);
+  CPDF_FormField* pField = pControl->GetField();
+  ASSERT(pField != NULL);
 
-    CPDF_Rect rcClient = GetClientRect();
+  CFX_ByteTextBuf sBody, sLines;
 
-    CFX_ByteTextBuf sBody, sLines;
+  if (IFX_Edit* pEdit = IFX_Edit::NewEdit()) {
+    pEdit->EnableRefresh(FALSE);
 
-    if (IFX_Edit * pEdit = IFX_Edit::NewEdit())
-    {
-        pEdit->EnableRefresh(FALSE);
+    CPDFSDK_Document* pDoc = m_pInterForm->GetDocument();
+    ASSERT(pDoc != NULL);
+    CPDFDoc_Environment* pEnv = pDoc->GetEnv();
 
-        CPDFSDK_Document* pDoc = m_pInterForm->GetDocument();
-        ASSERT(pDoc != NULL);
-        CPDFDoc_Environment* pEnv = pDoc->GetEnv();
+    CBA_FontMap FontMap(
+        this,
+        pEnv->GetSysHandler());  //,
+                                 //ISystemHandle::GetSystemHandler(m_pBaseForm->GetEnv()));
+    FontMap.Initial();
+    pEdit->SetFontMap(&FontMap);
 
-        CBA_FontMap FontMap(this,pEnv->GetSysHandler());
-        FontMap.Initial();
-        pEdit->SetFontMap(&FontMap);
+    CPDF_Rect rcClient = GetClientRect();
+    pEdit->SetPlateRect(rcClient);
+    pEdit->SetAlignmentH(pControl->GetControlAlignment());
 
-        pEdit->SetPlateRect(CPDF_Rect(rcClient.left,0.0f,rcClient.right,0.0f));
+    FX_DWORD dwFieldFlags = pField->GetFieldFlags();
+    FX_BOOL bMultiLine = (dwFieldFlags >> 12) & 1;
 
-        FX_FLOAT fFontSize = GetFontSize();
+    if (bMultiLine) {
+      pEdit->SetMultiLine(TRUE);
+      pEdit->SetAutoReturn(TRUE);
+    } else {
+      pEdit->SetAlignmentV(1);
+    }
 
-        if (IsFloatZero(fFontSize))
-            pEdit->SetFontSize(12.0f);
-        else
-            pEdit->SetFontSize(fFontSize);
+    FX_WORD subWord = 0;
+    if ((dwFieldFlags >> 13) & 1) {
+      subWord = '*';
+      pEdit->SetPasswordChar(subWord);
+    }
 
-        pEdit->Initialize();
+    int nMaxLen = pField->GetMaxLen();
+    FX_BOOL bCharArray = (dwFieldFlags >> 24) & 1;
+    FX_FLOAT fFontSize = GetFontSize();
 
-        CFX_ByteTextBuf sList;
-        FX_FLOAT fy = rcClient.top;
+    CFX_WideString sValueTmp;
+    if (!sValue && (NULL != this->GetMixXFAWidget())) {
+      sValueTmp = GetValue(TRUE);
+      sValue = sValueTmp;
+    }
 
-        int32_t nTop = pField->GetTopVisibleIndex();
-        int32_t nCount = pField->CountOptions();
-        int32_t nSelCount = pField->CountSelectedItems();
+    if (nMaxLen > 0) {
+      if (bCharArray) {
+        pEdit->SetCharArray(nMaxLen);
 
-        for (int32_t i=nTop; i<nCount; i++)
-        {
-            FX_BOOL bSelected = FALSE;
-            for (int32_t j=0; j<nSelCount; j++)
-            {
-                if (pField->GetSelectedIndex(j) == i)
-                {
-                    bSelected = TRUE;
-                    break;
-                }
-            }
+        if (IsFloatZero(fFontSize)) {
+          fFontSize = CPWL_Edit::GetCharArrayAutoFontSize(FontMap.GetPDFFont(0),
+                                                          rcClient, nMaxLen);
+        }
+      } else {
+        if (sValue)
+          nMaxLen = wcslen((const wchar_t*)sValue);
+        pEdit->SetLimitChar(nMaxLen);
+      }
+    }
 
-            pEdit->SetText(pField->GetOptionLabel(i).c_str());
+    if (IsFloatZero(fFontSize))
+      pEdit->SetAutoFontSize(TRUE);
+    else
+      pEdit->SetFontSize(fFontSize);
+
+    pEdit->Initialize();
+
+    if (sValue)
+      pEdit->SetText(sValue);
+    else
+      pEdit->SetText(pField->GetValue().c_str());
 
-            CPDF_Rect rcContent = pEdit->GetContentRect();
-            FX_FLOAT fItemHeight = rcContent.Height();
+    CPDF_Rect rcContent = pEdit->GetContentRect();
 
-            if (bSelected)
-            {
-                CPDF_Rect rcItem = CPDF_Rect(rcClient.left,fy-fItemHeight,rcClient.right,fy);
-                sList << "q\n" << CPWL_Utils::GetColorAppStream(CPWL_Color(COLORTYPE_RGB,0,51.0f/255.0f,113.0f/255.0f),TRUE)
-                    << rcItem.left << " " << rcItem.bottom << " " << rcItem.Width() << " " << rcItem.Height() << " re f\n" << "Q\n";
+    CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(
+        pEdit, CPDF_Point(0.0f, 0.0f), NULL, !bCharArray, subWord);
 
-                sList << "BT\n" << CPWL_Utils::GetColorAppStream(CPWL_Color(COLORTYPE_GRAY,1),TRUE) <<
-                    CPWL_Utils::GetEditAppStream(pEdit,CPDF_Point(0.0f,fy)) << "ET\n";
+    if (sEdit.GetLength() > 0) {
+      sBody << "/Tx BMC\n"
+            << "q\n";
+      if (rcContent.Width() > rcClient.Width() ||
+          rcContent.Height() > rcClient.Height()) {
+        sBody << rcClient.left << " " << rcClient.bottom << " "
+              << rcClient.Width() << " " << rcClient.Height() << " re\nW\nn\n";
+      }
+      CPWL_Color crText = GetTextPWLColor();
+      sBody << "BT\n" << CPWL_Utils::GetColorAppStream(crText) << sEdit
+            << "ET\n"
+            << "Q\nEMC\n";
+    }
+
+    if (bCharArray) {
+      switch (GetBorderStyle()) {
+        case BBS_SOLID: {
+          CFX_ByteString sColor =
+              CPWL_Utils::GetColorAppStream(GetBorderPWLColor(), FALSE);
+          if (sColor.GetLength() > 0) {
+            sLines << "q\n" << GetBorderWidth() << " w\n"
+                   << CPWL_Utils::GetColorAppStream(GetBorderPWLColor(), FALSE)
+                   << " 2 J 0 j\n";
+
+            for (int32_t i = 1; i < nMaxLen; i++) {
+              sLines << rcClient.left +
+                            ((rcClient.right - rcClient.left) / nMaxLen) * i
+                     << " " << rcClient.bottom << " m\n"
+                     << rcClient.left +
+                            ((rcClient.right - rcClient.left) / nMaxLen) * i
+                     << " " << rcClient.top << " l S\n";
             }
-            else
-            {
-                CPWL_Color crText = GetTextPWLColor();
-                sList << "BT\n" << CPWL_Utils::GetColorAppStream(crText,TRUE) <<
-                CPWL_Utils::GetEditAppStream(pEdit,CPDF_Point(0.0f,fy)) << "ET\n";
+
+            sLines << "Q\n";
+          }
+        } break;
+        case BBS_DASH: {
+          CFX_ByteString sColor =
+              CPWL_Utils::GetColorAppStream(GetBorderPWLColor(), FALSE);
+          if (sColor.GetLength() > 0) {
+            CPWL_Dash dsBorder = CPWL_Dash(3, 3, 0);
+
+            sLines << "q\n" << GetBorderWidth() << " w\n"
+                   << CPWL_Utils::GetColorAppStream(GetBorderPWLColor(), FALSE)
+                   << "[" << dsBorder.nDash << " " << dsBorder.nGap << "] "
+                   << dsBorder.nPhase << " d\n";
+
+            for (int32_t i = 1; i < nMaxLen; i++) {
+              sLines << rcClient.left +
+                            ((rcClient.right - rcClient.left) / nMaxLen) * i
+                     << " " << rcClient.bottom << " m\n"
+                     << rcClient.left +
+                            ((rcClient.right - rcClient.left) / nMaxLen) * i
+                     << " " << rcClient.top << " l S\n";
             }
 
-            fy -= fItemHeight;
-        }
+            sLines << "Q\n";
+          }
+        } break;
+      }
+    }
 
-        if (sList.GetSize() > 0)
-        {
-            sBody << "/Tx BMC\n" << "q\n" << rcClient.left << " " << rcClient.bottom << " "
-                    << rcClient.Width() << " " << rcClient.Height() << " re\nW\nn\n";
-            sBody << sList << "Q\nEMC\n";
-        }
+    IFX_Edit::DelEdit(pEdit);
+  }
 
-        IFX_Edit::DelEdit(pEdit);
-    }
+  CFX_ByteString sAP = GetBackgroundAppStream() + GetBorderAppStream() +
+                       sLines.GetByteString() + sBody.GetByteString();
+  WriteAppearance("N", GetRotatedRect(), GetMatrix(), sAP);
+}
 
-    CFX_ByteString sAP = GetBackgroundAppStream() + GetBorderAppStream() + sLines.GetByteString() + sBody.GetByteString();
-
-    WriteAppearance("N", GetRotatedRect(), GetMatrix(), sAP);
-}
-
-void CPDFSDK_Widget::ResetAppearance_TextField(const FX_WCHAR* sValue)
-{
-	CPDF_FormControl* pControl = GetFormControl();
-	ASSERT(pControl != NULL);
-	CPDF_FormField* pField = pControl->GetField();
-	ASSERT(pField != NULL);
-
-	CFX_ByteTextBuf sBody, sLines;
-
-	if (IFX_Edit * pEdit = IFX_Edit::NewEdit())
-	{
-		pEdit->EnableRefresh(FALSE);
-
-		CPDFSDK_Document* pDoc = m_pInterForm->GetDocument();
-		ASSERT(pDoc != NULL);
-		CPDFDoc_Environment* pEnv = pDoc->GetEnv();
-
-		CBA_FontMap FontMap(this,pEnv->GetSysHandler());//, ISystemHandle::GetSystemHandler(m_pBaseForm->GetEnv()));
-		FontMap.Initial();
-		pEdit->SetFontMap(&FontMap);
-
-		CPDF_Rect rcClient = GetClientRect();
-		pEdit->SetPlateRect(rcClient);
-		pEdit->SetAlignmentH(pControl->GetControlAlignment());
-
-		FX_DWORD dwFieldFlags = pField->GetFieldFlags();
-		FX_BOOL bMultiLine = (dwFieldFlags >> 12) & 1;
-
-		if (bMultiLine)
-		{
-			pEdit->SetMultiLine(TRUE);
-			pEdit->SetAutoReturn(TRUE);
-		}
-		else
-		{
-			pEdit->SetAlignmentV(1);
-		}
-
-		FX_WORD subWord = 0;
-		if ((dwFieldFlags >> 13) & 1)
-		{
-			subWord = '*';
-			pEdit->SetPasswordChar(subWord);
-		}
-
-		int nMaxLen = pField->GetMaxLen();
-		FX_BOOL bCharArray = (dwFieldFlags >> 24) & 1;
-		FX_FLOAT fFontSize = GetFontSize();
-
-		CFX_WideString sValueTmp;
-		if (!sValue && (NULL != this->GetMixXFAWidget()))
-		{
-			sValueTmp = GetValue(TRUE);
-			sValue = sValueTmp;
-		}
-
-		if (nMaxLen > 0)
-		{
-			if (bCharArray)
-			{
-				pEdit->SetCharArray(nMaxLen);
-
-				if (IsFloatZero(fFontSize))
-				{
-					fFontSize = CPWL_Edit::GetCharArrayAutoFontSize(FontMap.GetPDFFont(0),rcClient,nMaxLen);
-				}
-			}
-			else
-			{
-				if (sValue)
-					nMaxLen = wcslen((const wchar_t*)sValue);
-				pEdit->SetLimitChar(nMaxLen);
-			}
-		}
-
-		if (IsFloatZero(fFontSize))
-			pEdit->SetAutoFontSize(TRUE);
-		else
-			pEdit->SetFontSize(fFontSize);
-
-		pEdit->Initialize();
-
-		if (sValue)
-			pEdit->SetText(sValue);
-		else
-			pEdit->SetText(pField->GetValue().c_str());
-
-		CPDF_Rect rcContent = pEdit->GetContentRect();
-
-		CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(pEdit,CPDF_Point(0.0f,0.0f),
-																	NULL,!bCharArray,subWord);
-
-		if (sEdit.GetLength() > 0)
-		{
-			sBody << "/Tx BMC\n" << "q\n";
-			if (rcContent.Width() > rcClient.Width() ||
-				rcContent.Height() > rcClient.Height())
-			{
-				sBody << rcClient.left << " " << rcClient.bottom << " "
-					<< rcClient.Width() << " " << rcClient.Height() << " re\nW\nn\n";
-			}
-			CPWL_Color crText = GetTextPWLColor();
-			sBody << "BT\n" << CPWL_Utils::GetColorAppStream(crText) << sEdit << "ET\n" << "Q\nEMC\n";
-		}
-
-		if (bCharArray)
-		{
-			switch (GetBorderStyle())
-			{
-			case BBS_SOLID:
-				{
-					CFX_ByteString sColor = CPWL_Utils::GetColorAppStream(GetBorderPWLColor(),FALSE);
-					if (sColor.GetLength() > 0)
-					{
-						sLines << "q\n" << GetBorderWidth() << " w\n"
-							<< CPWL_Utils::GetColorAppStream(GetBorderPWLColor(),FALSE) << " 2 J 0 j\n";
-
-						for (int32_t i=1;i<nMaxLen;i++)
-						{
-							sLines << rcClient.left + ((rcClient.right - rcClient.left)/nMaxLen)*i << " "
-								<< rcClient.bottom << " m\n"
-								<< rcClient.left + ((rcClient.right - rcClient.left)/nMaxLen)*i << " "
-								<< rcClient.top << " l S\n";
-						}
-
-						sLines << "Q\n";
-					}
-				}
-				break;
-			case BBS_DASH:
-				{
-					CFX_ByteString sColor = CPWL_Utils::GetColorAppStream(GetBorderPWLColor(),FALSE);
-					if (sColor.GetLength() > 0)
-					{
-						CPWL_Dash dsBorder = CPWL_Dash(3, 3, 0);
-
-						sLines << "q\n" << GetBorderWidth() << " w\n"
-							<< CPWL_Utils::GetColorAppStream(GetBorderPWLColor(),FALSE)
-							<< "[" << dsBorder.nDash << " "
-							<< dsBorder.nGap << "] "
-							<< dsBorder.nPhase << " d\n";
-
-						for (int32_t i=1;i<nMaxLen;i++)
-						{
-							sLines << rcClient.left + ((rcClient.right - rcClient.left)/nMaxLen)*i << " "
-								<< rcClient.bottom << " m\n"
-								<< rcClient.left + ((rcClient.right - rcClient.left)/nMaxLen)*i << " "
-								<< rcClient.top << " l S\n";
-						}
-
-						sLines << "Q\n";
-					}
-				}
-				break;
-			}
-		}
-
-		IFX_Edit::DelEdit(pEdit);
-	}
-
-	CFX_ByteString sAP = GetBackgroundAppStream() + GetBorderAppStream() + sLines.GetByteString() + sBody.GetByteString();
-	WriteAppearance("N", GetRotatedRect(), GetMatrix(), sAP);
-}
-
-CPDF_Rect CPDFSDK_Widget::GetClientRect() const
-{
-    CPDF_Rect rcWindow = GetRotatedRect();
-    FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
-    switch (GetBorderStyle())
-    {
+CPDF_Rect CPDFSDK_Widget::GetClientRect() const {
+  CPDF_Rect rcWindow = GetRotatedRect();
+  FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
+  switch (GetBorderStyle()) {
     case BBS_BEVELED:
     case BBS_INSET:
-        fBorderWidth *= 2.0f;
-        break;
-    }
+      fBorderWidth *= 2.0f;
+      break;
+  }
 
-    return CPWL_Utils::DeflateRect(rcWindow, fBorderWidth);
+  return CPWL_Utils::DeflateRect(rcWindow, fBorderWidth);
 }
 
-CPDF_Rect CPDFSDK_Widget::GetRotatedRect() const
-{
-    CPDF_Rect rectAnnot = GetRect();
-    FX_FLOAT fWidth = rectAnnot.right - rectAnnot.left;
-    FX_FLOAT fHeight = rectAnnot.top - rectAnnot.bottom;
+CPDF_Rect CPDFSDK_Widget::GetRotatedRect() const {
+  CPDF_Rect rectAnnot = GetRect();
+  FX_FLOAT fWidth = rectAnnot.right - rectAnnot.left;
+  FX_FLOAT fHeight = rectAnnot.top - rectAnnot.bottom;
 
-    CPDF_FormControl* pControl = GetFormControl();
-    CPDF_Rect rcPDFWindow;
-    switch(abs(pControl->GetRotation() % 360))
-    {
-        case 0:
-        case 180:
-        default:
-            rcPDFWindow = CPDF_Rect(0, 0, fWidth, fHeight);
-            break;
-        case 90:
-        case 270:
-            rcPDFWindow = CPDF_Rect(0, 0, fHeight, fWidth);
-            break;
-    }
+  CPDF_FormControl* pControl = GetFormControl();
+  CPDF_Rect rcPDFWindow;
+  switch (abs(pControl->GetRotation() % 360)) {
+    case 0:
+    case 180:
+    default:
+      rcPDFWindow = CPDF_Rect(0, 0, fWidth, fHeight);
+      break;
+    case 90:
+    case 270:
+      rcPDFWindow = CPDF_Rect(0, 0, fHeight, fWidth);
+      break;
+  }
 
-    return rcPDFWindow;
+  return rcPDFWindow;
 }
 
-CFX_ByteString CPDFSDK_Widget::GetBackgroundAppStream() const
-{
-    CPWL_Color crBackground = GetFillPWLColor();
-    if (crBackground.nColorType != COLORTYPE_TRANSPARENT) {
-        return CPWL_Utils::GetRectFillAppStream(GetRotatedRect(), crBackground);
-    }
-    return "";
+CFX_ByteString CPDFSDK_Widget::GetBackgroundAppStream() const {
+  CPWL_Color crBackground = GetFillPWLColor();
+  if (crBackground.nColorType != COLORTYPE_TRANSPARENT) {
+    return CPWL_Utils::GetRectFillAppStream(GetRotatedRect(), crBackground);
+  }
+  return "";
 }
 
-CFX_ByteString CPDFSDK_Widget::GetBorderAppStream() const
-{
-    CPDF_Rect rcWindow = GetRotatedRect();
-    CPWL_Color crBorder = GetBorderPWLColor();
-    CPWL_Color crBackground = GetFillPWLColor();
-    CPWL_Color crLeftTop, crRightBottom;
+CFX_ByteString CPDFSDK_Widget::GetBorderAppStream() const {
+  CPDF_Rect rcWindow = GetRotatedRect();
+  CPWL_Color crBorder = GetBorderPWLColor();
+  CPWL_Color crBackground = GetFillPWLColor();
+  CPWL_Color crLeftTop, crRightBottom;
 
-    FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
-    int32_t nBorderStyle = 0;
-    CPWL_Dash dsBorder(3,0,0);
+  FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
+  int32_t nBorderStyle = 0;
+  CPWL_Dash dsBorder(3, 0, 0);
 
-    switch (GetBorderStyle())
-    {
+  switch (GetBorderStyle()) {
     case BBS_DASH:
-        nBorderStyle = PBS_DASH;
-        dsBorder = CPWL_Dash(3, 3, 0);
-        break;
+      nBorderStyle = PBS_DASH;
+      dsBorder = CPWL_Dash(3, 3, 0);
+      break;
     case BBS_BEVELED:
-        nBorderStyle = PBS_BEVELED;
-        fBorderWidth *= 2;
-        crLeftTop = CPWL_Color(COLORTYPE_GRAY, 1);
-        crRightBottom = CPWL_Utils::DevideColor(crBackground, 2);
-        break;
+      nBorderStyle = PBS_BEVELED;
+      fBorderWidth *= 2;
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 1);
+      crRightBottom = CPWL_Utils::DevideColor(crBackground, 2);
+      break;
     case BBS_INSET:
-        nBorderStyle = PBS_INSET;
-        fBorderWidth *= 2;
-        crLeftTop = CPWL_Color(COLORTYPE_GRAY, 0.5);
-        crRightBottom = CPWL_Color(COLORTYPE_GRAY, 0.75);
-        break;
+      nBorderStyle = PBS_INSET;
+      fBorderWidth *= 2;
+      crLeftTop = CPWL_Color(COLORTYPE_GRAY, 0.5);
+      crRightBottom = CPWL_Color(COLORTYPE_GRAY, 0.75);
+      break;
     case BBS_UNDERLINE:
-        nBorderStyle = PBS_UNDERLINED;
-        break;
+      nBorderStyle = PBS_UNDERLINED;
+      break;
     default:
-        nBorderStyle = PBS_SOLID;
-        break;
-    }
+      nBorderStyle = PBS_SOLID;
+      break;
+  }
 
-    return CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder, crLeftTop,
-        crRightBottom, nBorderStyle, dsBorder);
+  return CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder,
+                                        crLeftTop, crRightBottom, nBorderStyle,
+                                        dsBorder);
 }
 
-CPDF_Matrix CPDFSDK_Widget::GetMatrix() const
-{
-    CPDF_Matrix mt;
-    CPDF_FormControl* pControl = GetFormControl();
-    ASSERT(pControl != NULL);
+CPDF_Matrix CPDFSDK_Widget::GetMatrix() const {
+  CPDF_Matrix mt;
+  CPDF_FormControl* pControl = GetFormControl();
+  ASSERT(pControl != NULL);
 
-    CPDF_Rect rcAnnot = GetRect();
-    FX_FLOAT fWidth = rcAnnot.right - rcAnnot.left;
-    FX_FLOAT fHeight = rcAnnot.top - rcAnnot.bottom;
+  CPDF_Rect rcAnnot = GetRect();
+  FX_FLOAT fWidth = rcAnnot.right - rcAnnot.left;
+  FX_FLOAT fHeight = rcAnnot.top - rcAnnot.bottom;
 
+  switch (abs(pControl->GetRotation() % 360)) {
+    case 0:
+    default:
+      mt = CPDF_Matrix(1, 0, 0, 1, 0, 0);
+      break;
+    case 90:
+      mt = CPDF_Matrix(0, 1, -1, 0, fWidth, 0);
+      break;
+    case 180:
+      mt = CPDF_Matrix(-1, 0, 0, -1, fWidth, fHeight);
+      break;
+    case 270:
+      mt = CPDF_Matrix(0, -1, 1, 0, 0, fHeight);
+      break;
+  }
+
+  return mt;
+}
+
+CPWL_Color CPDFSDK_Widget::GetTextPWLColor() const {
+  CPWL_Color crText = CPWL_Color(COLORTYPE_GRAY, 0);
+
+  CPDF_FormControl* pFormCtrl = GetFormControl();
+  ASSERT(pFormCtrl != NULL);
+
+  CPDF_DefaultAppearance da = pFormCtrl->GetDefaultAppearance();
+  if (da.HasColor()) {
+    int32_t iColorType;
+    FX_FLOAT fc[4];
+    da.GetColor(iColorType, fc);
+    crText = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+  }
 
+  return crText;
+}
 
-    switch (abs(pControl->GetRotation() % 360))
-    {
-        case 0:
-        default:
-            mt = CPDF_Matrix(1, 0, 0, 1, 0, 0);
-            break;
-        case 90:
-            mt = CPDF_Matrix(0, 1, -1, 0, fWidth, 0);
-            break;
-        case 180:
-            mt = CPDF_Matrix(-1, 0, 0, -1, fWidth, fHeight);
-            break;
-        case 270:
-            mt = CPDF_Matrix(0, -1, 1, 0, 0, fHeight);
-            break;
-    }
+CPWL_Color CPDFSDK_Widget::GetBorderPWLColor() const {
+  CPWL_Color crBorder;
+
+  CPDF_FormControl* pFormCtrl = GetFormControl();
+  ASSERT(pFormCtrl != NULL);
 
-    return mt;
+  int32_t iColorType;
+  FX_FLOAT fc[4];
+  pFormCtrl->GetOriginalBorderColor(iColorType, fc);
+  if (iColorType > 0)
+    crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+
+  return crBorder;
 }
 
-CPWL_Color CPDFSDK_Widget::GetTextPWLColor() const
-{
-    CPWL_Color crText = CPWL_Color(COLORTYPE_GRAY, 0);
+CPWL_Color CPDFSDK_Widget::GetFillPWLColor() const {
+  CPWL_Color crFill;
 
-    CPDF_FormControl* pFormCtrl = GetFormControl();
-    ASSERT(pFormCtrl != NULL);
+  CPDF_FormControl* pFormCtrl = GetFormControl();
+  ASSERT(pFormCtrl != NULL);
 
-    CPDF_DefaultAppearance da = pFormCtrl->GetDefaultAppearance();
-    if (da.HasColor())
-    {
-        int32_t iColorType;
-        FX_FLOAT fc[4];
-        da.GetColor(iColorType, fc);
-        crText = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
-    }
+  int32_t iColorType;
+  FX_FLOAT fc[4];
+  pFormCtrl->GetOriginalBackgroundColor(iColorType, fc);
+  if (iColorType > 0)
+    crFill = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
 
-    return crText;
+  return crFill;
 }
 
-CPWL_Color CPDFSDK_Widget::GetBorderPWLColor() const
-{
-    CPWL_Color crBorder;
+void CPDFSDK_Widget::AddImageToAppearance(const CFX_ByteString& sAPType,
+                                          CPDF_Stream* pImage) {
+  ASSERT(pImage != NULL);
 
-    CPDF_FormControl* pFormCtrl = GetFormControl();
-    ASSERT(pFormCtrl != NULL);
+  CPDF_Document* pDoc =
+      m_pPageView->GetPDFDocument();  // pDocument->GetDocument();
+  ASSERT(pDoc != NULL);
 
-    int32_t iColorType;
-    FX_FLOAT fc[4];
-    pFormCtrl->GetOriginalBorderColor(iColorType, fc);
-    if (iColorType > 0)
-        crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+  CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDict("AP");
+  ASSERT(pAPDict != NULL);
 
-    return crBorder;
-}
+  CPDF_Stream* pStream = pAPDict->GetStream(sAPType);
+  ASSERT(pStream != NULL);
+
+  CPDF_Dictionary* pStreamDict = pStream->GetDict();
+  ASSERT(pStreamDict != NULL);
+
+  CFX_ByteString sImageAlias = "IMG";
 
-CPWL_Color CPDFSDK_Widget::GetFillPWLColor() const
-{
-    CPWL_Color crFill;
+  if (CPDF_Dictionary* pImageDict = pImage->GetDict()) {
+    sImageAlias = pImageDict->GetString("Name");
+    if (sImageAlias.IsEmpty())
+      sImageAlias = "IMG";
+  }
 
-    CPDF_FormControl* pFormCtrl = GetFormControl();
-    ASSERT(pFormCtrl != NULL);
+  CPDF_Dictionary* pStreamResList = pStreamDict->GetDict("Resources");
+  if (!pStreamResList) {
+    pStreamResList = FX_NEW CPDF_Dictionary();
+    pStreamDict->SetAt("Resources", pStreamResList);
+  }
 
-    int32_t iColorType;
-    FX_FLOAT fc[4];
-    pFormCtrl->GetOriginalBackgroundColor(iColorType, fc);
-    if (iColorType > 0)
-        crFill = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
+  if (pStreamResList) {
+    CPDF_Dictionary* pXObject = FX_NEW CPDF_Dictionary;
+    pXObject->SetAtReference(sImageAlias, pDoc, pImage);
+    pStreamResList->SetAt("XObject", pXObject);
+  }
+}
 
-    return crFill;
+void CPDFSDK_Widget::RemoveAppearance(const CFX_ByteString& sAPType) {
+  if (CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDict("AP")) {
+    pAPDict->RemoveAt(sAPType);
+  }
 }
 
-void CPDFSDK_Widget::AddImageToAppearance(const CFX_ByteString& sAPType, CPDF_Stream* pImage)
-{
-    ASSERT(pImage != NULL);
+FX_BOOL CPDFSDK_Widget::OnAAction(CPDF_AAction::AActionType type,
+                                  PDFSDK_FieldAction& data,
+                                  CPDFSDK_PageView* pPageView) {
+  CPDFSDK_Document* pDocument = pPageView->GetSDKDocument();
+  ASSERT(pDocument != NULL);
 
-    CPDF_Document* pDoc = m_pPageView->GetPDFDocument();//pDocument->GetDocument();
-    ASSERT(pDoc != NULL);
+  CPDFXFA_Document* pDoc = pDocument->GetDocument();
+  ASSERT(pDoc != NULL);
 
-    CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDict("AP");
-    ASSERT(pAPDict != NULL);
+  CPDFDoc_Environment* pEnv = pDocument->GetEnv();
+  ASSERT(pEnv != NULL);
 
-    CPDF_Stream* pStream = pAPDict->GetStream(sAPType);
-    ASSERT(pStream != NULL);
+  if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
+    XFA_EVENTTYPE eEventType = GetXFAEventType(type, data.bWillCommit);
 
-    CPDF_Dictionary* pStreamDict = pStream->GetDict();
-    ASSERT(pStreamDict != NULL);
+    if (eEventType != XFA_EVENT_Unknown) {
+      if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
+        CXFA_EventParam param;
+        param.m_eType = eEventType;
+        param.m_wsChange = data.sChange;
+        param.m_iCommitKey = data.nCommitKey;
+        param.m_bShift = data.bShift;
+        param.m_iSelStart = data.nSelStart;
+        param.m_iSelEnd = data.nSelEnd;
+        param.m_wsFullText = data.sValue;
+        param.m_bKeyDown = data.bKeyDown;
+        param.m_bModifier = data.bModifier;
+        param.m_wsNewText = data.sValue;
+        if (data.nSelEnd > data.nSelStart)
+          param.m_wsNewText.Delete(data.nSelStart,
+                                   data.nSelEnd - data.nSelStart);
+        for (int i = data.sChange.GetLength() - 1; i >= 0; i--)
+          param.m_wsNewText.Insert(data.nSelStart, data.sChange[i]);
+        param.m_wsPrevText = data.sValue;
 
-    CFX_ByteString sImageAlias = "IMG";
+        CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hWidget);
+        param.m_pTarget = pAcc;
+        int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, &param);
 
-    if (CPDF_Dictionary* pImageDict = pImage->GetDict())
-    {
-        sImageAlias = pImageDict->GetString("Name");
-        if (sImageAlias.IsEmpty())
-            sImageAlias = "IMG";
-    }
+        if (IXFA_DocView* pDocView = pDoc->GetXFADocView()) {
+          pDocView->UpdateDocView();
+        }
 
-	CPDF_Dictionary* pStreamResList = pStreamDict->GetDict("Resources");
-	if (!pStreamResList)
-	{
-		pStreamResList = FX_NEW CPDF_Dictionary();
-		pStreamDict->SetAt("Resources", pStreamResList);
-	}
-
-	if (pStreamResList)
-	{
-		CPDF_Dictionary* pXObject = FX_NEW CPDF_Dictionary;
-		pXObject->SetAtReference(sImageAlias, pDoc, pImage);
-		pStreamResList->SetAt("XObject", pXObject);
-	}
-}
-
-void CPDFSDK_Widget::RemoveAppearance(const CFX_ByteString& sAPType)
-{
-    if (CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDict("AP"))
-    {
-        pAPDict->RemoveAt(sAPType);
+        if (nRet == XFA_EVENTERROR_Sucess)
+          return TRUE;
+      }
     }
-}
-
-FX_BOOL CPDFSDK_Widget::OnAAction(CPDF_AAction::AActionType type, PDFSDK_FieldAction& data, CPDFSDK_PageView* pPageView)
-{
-	CPDFSDK_Document* pDocument = pPageView->GetSDKDocument();
-	ASSERT(pDocument != NULL);
-
-	CPDFXFA_Document* pDoc = pDocument->GetDocument();
-	ASSERT(pDoc != NULL);
-
-	CPDFDoc_Environment* pEnv = pDocument->GetEnv();
-	ASSERT(pEnv != NULL);
-
-	if (IXFA_Widget* hWidget = this->GetMixXFAWidget())
-	{
-		XFA_EVENTTYPE eEventType = GetXFAEventType(type, data.bWillCommit);
-
-		if (eEventType != XFA_EVENT_Unknown)
-		{
-			if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler())
-			{
-				CXFA_EventParam param;
-				param.m_eType = eEventType;
-				param.m_wsChange = data.sChange;
-				param.m_iCommitKey = data.nCommitKey;
-				param.m_bShift = data.bShift;
-				param.m_iSelStart = data.nSelStart;
-				param.m_iSelEnd = data.nSelEnd;
-				param.m_wsFullText = data.sValue;
-				param.m_bKeyDown = data.bKeyDown;
-				param.m_bModifier = data.bModifier;
-				param.m_wsNewText = data.sValue;
-				if (data.nSelEnd > data.nSelStart)
-					param.m_wsNewText.Delete(data.nSelStart, data.nSelEnd - data.nSelStart);
-				for (int i=data.sChange.GetLength() - 1; i>=0; i--)
-					param.m_wsNewText.Insert(data.nSelStart, data.sChange[i]);
-				param.m_wsPrevText = data.sValue;
-
-				CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hWidget);
-				param.m_pTarget = pAcc;
-				int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, &param);
-
-				if (IXFA_DocView* pDocView = pDoc->GetXFADocView())
-				{
-					pDocView->UpdateDocView();
-				}
-
-				if (nRet == XFA_EVENTERROR_Sucess)
-					return TRUE;
-			}
-		}
-	}
-
-	CPDF_Action action = GetAAction(type);
-
-	if (action && action.GetType() != CPDF_Action::Unknown)
-	{
-        CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander();
-        return pActionHandler->DoAction_Field(action, type, pDocument, GetFormField(), data);
+  }
+
+  CPDF_Action action = GetAAction(type);
+
+  if (action && action.GetType() != CPDF_Action::Unknown) {
+    CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander();
+    return pActionHandler->DoAction_Field(action, type, pDocument,
+                                          GetFormField(), data);
+  }
+  return FALSE;
+}
+
+CPDF_Action CPDFSDK_Widget::GetAAction(CPDF_AAction::AActionType eAAT) {
+  switch (eAAT) {
+    case CPDF_AAction::CursorEnter:
+    case CPDF_AAction::CursorExit:
+    case CPDF_AAction::ButtonDown:
+    case CPDF_AAction::ButtonUp:
+    case CPDF_AAction::GetFocus:
+    case CPDF_AAction::LoseFocus:
+    case CPDF_AAction::PageOpen:
+    case CPDF_AAction::PageClose:
+    case CPDF_AAction::PageVisible:
+    case CPDF_AAction::PageInvisible:
+      return CPDFSDK_BAAnnot::GetAAction(eAAT);
+
+    case CPDF_AAction::KeyStroke:
+    case CPDF_AAction::Format:
+    case CPDF_AAction::Validate:
+    case CPDF_AAction::Calculate: {
+      CPDF_FormField* pField = GetFormField();
+      if (CPDF_AAction aa = pField->GetAdditionalAction())
+        return aa.GetAction(eAAT);
+      return CPDFSDK_BAAnnot::GetAAction(eAAT);
     }
-	return FALSE;
-}
-
-CPDF_Action	CPDFSDK_Widget::GetAAction(CPDF_AAction::AActionType eAAT)
-{
-	switch (eAAT)
-	{
-	case CPDF_AAction::CursorEnter:
-	case CPDF_AAction::CursorExit:
-	case CPDF_AAction::ButtonDown:
-	case CPDF_AAction::ButtonUp:
-	case CPDF_AAction::GetFocus:
-	case CPDF_AAction::LoseFocus:
-	case CPDF_AAction::PageOpen:
-	case CPDF_AAction::PageClose:
-	case CPDF_AAction::PageVisible:
-	case CPDF_AAction::PageInvisible:
-		return CPDFSDK_BAAnnot::GetAAction(eAAT);
-
-	case CPDF_AAction::KeyStroke:
-	case CPDF_AAction::Format:
-	case CPDF_AAction::Validate:
-	case CPDF_AAction::Calculate:
-		{
-			CPDF_FormField* pField = GetFormField();
-			if (CPDF_AAction aa = pField->GetAdditionalAction())
-				return aa.GetAction(eAAT);
-			return CPDFSDK_BAAnnot::GetAAction(eAAT);
-		}
-	default:
-		break;
-	}
-
-    return CPDF_Action();
-}
-
-
-CFX_WideString CPDFSDK_Widget::GetAlternateName() const
-{
-    CPDF_FormField* pFormField = GetFormField();
-    ASSERT(pFormField != NULL);
+    default:
+      break;
+  }
 
-    return pFormField->GetAlternateName();
+  return CPDF_Action();
 }
 
-int32_t CPDFSDK_Widget::GetAppearanceAge() const
-{
-    return m_nAppAge;
+CFX_WideString CPDFSDK_Widget::GetAlternateName() const {
+  CPDF_FormField* pFormField = GetFormField();
+  ASSERT(pFormField != NULL);
+
+  return pFormField->GetAlternateName();
 }
 
-int32_t CPDFSDK_Widget::GetValueAge() const
-{
-    return m_nValueAge;
+int32_t CPDFSDK_Widget::GetAppearanceAge() const {
+  return m_nAppAge;
 }
 
+int32_t CPDFSDK_Widget::GetValueAge() const {
+  return m_nValueAge;
+}
 
-FX_BOOL CPDFSDK_Widget::HitTest(FX_FLOAT pageX, FX_FLOAT pageY)
-{
-    CPDF_Annot* pAnnot = GetPDFAnnot();
-    CFX_FloatRect annotRect;
-    pAnnot->GetRect(annotRect);
-    if(annotRect.Contains(pageX, pageY))
-    {
-        if (!IsVisible()) return FALSE;
+FX_BOOL CPDFSDK_Widget::HitTest(FX_FLOAT pageX, FX_FLOAT pageY) {
+  CPDF_Annot* pAnnot = GetPDFAnnot();
+  CFX_FloatRect annotRect;
+  pAnnot->GetRect(annotRect);
+  if (annotRect.Contains(pageX, pageY)) {
+    if (!IsVisible())
+      return FALSE;
 
-        int nFieldFlags = GetFieldFlags();
-        if ((nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY)
-            return FALSE;
+    int nFieldFlags = GetFieldFlags();
+    if ((nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY)
+      return FALSE;
 
-        return TRUE;
-    }
-    return FALSE;
+    return TRUE;
+  }
+  return FALSE;
 }
 
-//CPDFSDK_XFAWidget
-CPDFSDK_XFAWidget::CPDFSDK_XFAWidget(IXFA_Widget* pAnnot, CPDFSDK_PageView* pPageView, CPDFSDK_InterForm* pInterForm) :
-	CPDFSDK_Annot(pPageView),
-	m_hXFAWidget(pAnnot),
-	m_pInterForm(pInterForm)
-{
-
-}
+// CPDFSDK_XFAWidget
+CPDFSDK_XFAWidget::CPDFSDK_XFAWidget(IXFA_Widget* pAnnot,
+                                     CPDFSDK_PageView* pPageView,
+                                     CPDFSDK_InterForm* pInterForm)
+    : CPDFSDK_Annot(pPageView),
+      m_hXFAWidget(pAnnot),
+      m_pInterForm(pInterForm) {}
 
-FX_BOOL CPDFSDK_XFAWidget::IsXFAField()
-{
-	return TRUE;
+FX_BOOL CPDFSDK_XFAWidget::IsXFAField() {
+  return TRUE;
 }
 
-CFX_ByteString CPDFSDK_XFAWidget::GetType() const
-{
-	return FSDK_XFAWIDGET_TYPENAME;
+CFX_ByteString CPDFSDK_XFAWidget::GetType() const {
+  return FSDK_XFAWIDGET_TYPENAME;
 }
 
-CFX_FloatRect CPDFSDK_XFAWidget::GetRect()
-{
-	CPDFSDK_PageView* pPageView = GetPageView();
-	ASSERT(pPageView != NULL);
+CFX_FloatRect CPDFSDK_XFAWidget::GetRect() {
+  CPDFSDK_PageView* pPageView = GetPageView();
+  ASSERT(pPageView != NULL);
 
-	CPDFSDK_Document* pDocument = pPageView->GetSDKDocument();
-	ASSERT(pDocument != NULL);
+  CPDFSDK_Document* pDocument = pPageView->GetSDKDocument();
+  ASSERT(pDocument != NULL);
 
-	CPDFXFA_Document* pDoc = pDocument->GetDocument();
-	ASSERT(pDoc != NULL);
+  CPDFXFA_Document* pDoc = pDocument->GetDocument();
+  ASSERT(pDoc != NULL);
 
-	IXFA_DocView* pDocView = pDoc->GetXFADocView();
-	ASSERT(pDocView != NULL);
+  IXFA_DocView* pDocView = pDoc->GetXFADocView();
+  ASSERT(pDocView != NULL);
 
-	IXFA_WidgetHandler* pWidgetHandler = pDocView->GetWidgetHandler();
-	ASSERT(pWidgetHandler != NULL);
+  IXFA_WidgetHandler* pWidgetHandler = pDocView->GetWidgetHandler();
+  ASSERT(pWidgetHandler != NULL);
 
-	CFX_RectF rcBBox;
-	pWidgetHandler->GetRect(GetXFAWidget(), rcBBox);
+  CFX_RectF rcBBox;
+  pWidgetHandler->GetRect(GetXFAWidget(), rcBBox);
 
-	return CFX_FloatRect(rcBBox.left, rcBBox.top, rcBBox.left + rcBBox.width, rcBBox.top+rcBBox.height);
+  return CFX_FloatRect(rcBBox.left, rcBBox.top, rcBBox.left + rcBBox.width,
+                       rcBBox.top + rcBBox.height);
 }
 
-//CPDFSDK_InterForm
+// CPDFSDK_InterForm
 CPDFSDK_InterForm::CPDFSDK_InterForm(CPDFSDK_Document* pDocument)
-	:m_pDocument(pDocument),
-	m_pInterForm(NULL),
-	m_bCalculate(TRUE),
-	m_bXfaCalculate(TRUE),
-	m_bXfaValidationsEnabled(TRUE),
-	m_bBusy(FALSE)
-{
-	ASSERT(m_pDocument != NULL);
-	m_pInterForm = new CPDF_InterForm(m_pDocument->GetDocument()->GetPDFDoc(), FALSE);
-	ASSERT(m_pInterForm != NULL);
-	m_pInterForm->SetFormNotify(this);
-
-    for(int i=0; i<6; i++)
-        m_bNeedHightlight[i] = FALSE;
-    m_iHighlightAlpha = 0;
-}
-
-CPDFSDK_InterForm::~CPDFSDK_InterForm()
-{
-    delete m_pInterForm;
-    m_pInterForm = nullptr;
-
-    m_Map.clear();
-    m_XFAMap.RemoveAll();
-}
-
-FX_BOOL CPDFSDK_InterForm::HighlightWidgets()
-{
-    return FALSE;
+    : m_pDocument(pDocument),
+      m_pInterForm(NULL),
+      m_bCalculate(TRUE),
+      m_bXfaCalculate(TRUE),
+      m_bXfaValidationsEnabled(TRUE),
+      m_bBusy(FALSE) {
+  ASSERT(m_pDocument != NULL);
+  m_pInterForm =
+      new CPDF_InterForm(m_pDocument->GetDocument()->GetPDFDoc(), FALSE);
+  ASSERT(m_pInterForm != NULL);
+  m_pInterForm->SetFormNotify(this);
+
+  for (int i = 0; i < 6; i++)
+    m_bNeedHightlight[i] = FALSE;
+  m_iHighlightAlpha = 0;
 }
 
-CPDFSDK_Widget* CPDFSDK_InterForm::GetSibling(CPDFSDK_Widget* pWidget, FX_BOOL bNext) const
-{
-    nonstd::unique_ptr<CBA_AnnotIterator> pIterator(
-        new CBA_AnnotIterator(pWidget->GetPageView(), "Widget", ""));
+CPDFSDK_InterForm::~CPDFSDK_InterForm() {
+  delete m_pInterForm;
+  m_pInterForm = nullptr;
 
-    if (bNext) {
-        return (CPDFSDK_Widget*)pIterator->GetNextAnnot(pWidget);
-    }
-    return (CPDFSDK_Widget*)pIterator->GetPrevAnnot(pWidget);
+  m_Map.clear();
+  m_XFAMap.RemoveAll();
 }
 
-CPDFSDK_Widget* CPDFSDK_InterForm::GetWidget(CPDF_FormControl* pControl) const
-{
-    if (!pControl || !m_pInterForm)
-        return nullptr;
+FX_BOOL CPDFSDK_InterForm::HighlightWidgets() {
+  return FALSE;
+}
 
-    CPDFSDK_Widget* pWidget = nullptr;
-    const auto it = m_Map.find(pControl);
-    if (it != m_Map.end())
-        pWidget = it->second;
+CPDFSDK_Widget* CPDFSDK_InterForm::GetSibling(CPDFSDK_Widget* pWidget,
+                                              FX_BOOL bNext) const {
+  nonstd::unique_ptr<CBA_AnnotIterator> pIterator(
+      new CBA_AnnotIterator(pWidget->GetPageView(), "Widget", ""));
 
-    if (pWidget)
-        return pWidget;
+  if (bNext) {
+    return (CPDFSDK_Widget*)pIterator->GetNextAnnot(pWidget);
+  }
+  return (CPDFSDK_Widget*)pIterator->GetPrevAnnot(pWidget);
+}
 
-    CPDF_Dictionary* pControlDict = pControl->GetWidget();
-    CPDF_Document* pDocument = m_pDocument->GetDocument()->GetPDFDoc();
-    CPDFSDK_PageView* pPage = nullptr;
+CPDFSDK_Widget* CPDFSDK_InterForm::GetWidget(CPDF_FormControl* pControl) const {
+  if (!pControl || !m_pInterForm)
+    return nullptr;
 
-    if (CPDF_Dictionary* pPageDict = pControlDict->GetDict("P")) {
-        int nPageIndex = pDocument->GetPageIndex(pPageDict->GetObjNum());
-        if (nPageIndex >= 0) {
-            pPage = m_pDocument->GetPageView(nPageIndex);
-      }
+  CPDFSDK_Widget* pWidget = nullptr;
+  const auto it = m_Map.find(pControl);
+  if (it != m_Map.end())
+    pWidget = it->second;
+
+  if (pWidget)
+    return pWidget;
+
+  CPDF_Dictionary* pControlDict = pControl->GetWidget();
+  CPDF_Document* pDocument = m_pDocument->GetDocument()->GetPDFDoc();
+  CPDFSDK_PageView* pPage = nullptr;
+
+  if (CPDF_Dictionary* pPageDict = pControlDict->GetDict("P")) {
+    int nPageIndex = pDocument->GetPageIndex(pPageDict->GetObjNum());
+    if (nPageIndex >= 0) {
+      pPage = m_pDocument->GetPageView(nPageIndex);
     }
+  }
 
-    if (!pPage) {
-        int nPageIndex = GetPageIndexByAnnotDict(pDocument, pControlDict);
-        if (nPageIndex >= 0) {
-            pPage = m_pDocument->GetPageView(nPageIndex);
-        }
+  if (!pPage) {
+    int nPageIndex = GetPageIndexByAnnotDict(pDocument, pControlDict);
+    if (nPageIndex >= 0) {
+      pPage = m_pDocument->GetPageView(nPageIndex);
     }
+  }
 
-    if (!pPage)
-        return nullptr;
-    return (CPDFSDK_Widget*)pPage->GetAnnotByDict(pControlDict);
+  if (!pPage)
+    return nullptr;
+  return (CPDFSDK_Widget*)pPage->GetAnnotByDict(pControlDict);
 }
 
-void CPDFSDK_InterForm::GetWidgets(const CFX_WideString& sFieldName, CFX_PtrArray& widgets)
-{
-    ASSERT(m_pInterForm != NULL);
+void CPDFSDK_InterForm::GetWidgets(const CFX_WideString& sFieldName,
+                                   CFX_PtrArray& widgets) {
+  ASSERT(m_pInterForm != NULL);
 
-    for (int i=0,sz=m_pInterForm->CountFields(sFieldName); i<sz; i++)
-    {
-        CPDF_FormField* pFormField = m_pInterForm->GetField(i, sFieldName);
-        ASSERT(pFormField != NULL);
+  for (int i = 0, sz = m_pInterForm->CountFields(sFieldName); i < sz; i++) {
+    CPDF_FormField* pFormField = m_pInterForm->GetField(i, sFieldName);
+    ASSERT(pFormField != NULL);
 
-        GetWidgets(pFormField, widgets);
-    }
+    GetWidgets(pFormField, widgets);
+  }
 }
 
-void CPDFSDK_InterForm::GetWidgets(CPDF_FormField* pField, CFX_PtrArray& widgets)
-{
-    ASSERT(pField != NULL);
-
-    for (int i=0,isz=pField->CountControls(); i<isz; i++)
-    {
-        CPDF_FormControl* pFormCtrl = pField->GetControl(i);
-        ASSERT(pFormCtrl != NULL);
-
-        CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl);
+void CPDFSDK_InterForm::GetWidgets(CPDF_FormField* pField,
+                                   CFX_PtrArray& widgets) {
+  ASSERT(pField != NULL);
 
-        if (pWidget)
-            widgets.Add(pWidget);
-    }
-}
+  for (int i = 0, isz = pField->CountControls(); i < isz; i++) {
+    CPDF_FormControl* pFormCtrl = pField->GetControl(i);
+    ASSERT(pFormCtrl != NULL);
 
-int CPDFSDK_InterForm::GetPageIndexByAnnotDict(CPDF_Document* pDocument, CPDF_Dictionary* pAnnotDict) const
-{
-    ASSERT(pDocument != NULL);
-    ASSERT(pAnnotDict != NULL);
+    CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl);
 
-    for (int i=0,sz=pDocument->GetPageCount(); i<sz; i++)
-    {
-        if (CPDF_Dictionary* pPageDict = pDocument->GetPage(i))
-        {
-            if (CPDF_Array* pAnnots = pPageDict->GetArray("Annots"))
-            {
-                for (int j=0,jsz=pAnnots->GetCount(); j<jsz; j++)
-                {
-                    CPDF_Object* pDict = pAnnots->GetElementValue(j);
-                    if (pAnnotDict == pDict)
-                    {
-                        return i;
-                    }
-                }
-            }
+    if (pWidget)
+      widgets.Add(pWidget);
+  }
+}
+
+int CPDFSDK_InterForm::GetPageIndexByAnnotDict(
+    CPDF_Document* pDocument,
+    CPDF_Dictionary* pAnnotDict) const {
+  ASSERT(pDocument != NULL);
+  ASSERT(pAnnotDict != NULL);
+
+  for (int i = 0, sz = pDocument->GetPageCount(); i < sz; i++) {
+    if (CPDF_Dictionary* pPageDict = pDocument->GetPage(i)) {
+      if (CPDF_Array* pAnnots = pPageDict->GetArray("Annots")) {
+        for (int j = 0, jsz = pAnnots->GetCount(); j < jsz; j++) {
+          CPDF_Object* pDict = pAnnots->GetElementValue(j);
+          if (pAnnotDict == pDict) {
+            return i;
+          }
         }
+      }
     }
+  }
 
-    return -1;
+  return -1;
 }
 
-void CPDFSDK_InterForm::AddMap(CPDF_FormControl* pControl, CPDFSDK_Widget* pWidget)
-{
-    m_Map[pControl] = pWidget;
+void CPDFSDK_InterForm::AddMap(CPDF_FormControl* pControl,
+                               CPDFSDK_Widget* pWidget) {
+  m_Map[pControl] = pWidget;
 }
 
-void CPDFSDK_InterForm::RemoveMap(CPDF_FormControl* pControl)
-{
-    m_Map.erase(pControl);
+void CPDFSDK_InterForm::RemoveMap(CPDF_FormControl* pControl) {
+  m_Map.erase(pControl);
 }
 
-void CPDFSDK_InterForm::AddXFAMap(IXFA_Widget* hWidget, CPDFSDK_XFAWidget* pWidget)
-{
-	m_XFAMap.SetAt(hWidget, pWidget);
+void CPDFSDK_InterForm::AddXFAMap(IXFA_Widget* hWidget,
+                                  CPDFSDK_XFAWidget* pWidget) {
+  m_XFAMap.SetAt(hWidget, pWidget);
 }
 
-void CPDFSDK_InterForm::RemoveXFAMap(IXFA_Widget* hWidget)
-{
-	m_XFAMap.RemoveKey(hWidget);
+void CPDFSDK_InterForm::RemoveXFAMap(IXFA_Widget* hWidget) {
+  m_XFAMap.RemoveKey(hWidget);
 }
 
-CPDFSDK_XFAWidget* CPDFSDK_InterForm::GetXFAWidget(IXFA_Widget* hWidget)
-{
-	CPDFSDK_XFAWidget* pWidget = NULL;
-	m_XFAMap.Lookup(hWidget, pWidget);
+CPDFSDK_XFAWidget* CPDFSDK_InterForm::GetXFAWidget(IXFA_Widget* hWidget) {
+  CPDFSDK_XFAWidget* pWidget = NULL;
+  m_XFAMap.Lookup(hWidget, pWidget);
 
-	return pWidget;
+  return pWidget;
 }
 
-void CPDFSDK_InterForm::EnableCalculate(FX_BOOL bEnabled)
-{
-    m_bCalculate = bEnabled;
+void CPDFSDK_InterForm::EnableCalculate(FX_BOOL bEnabled) {
+  m_bCalculate = bEnabled;
 }
 
-FX_BOOL CPDFSDK_InterForm::IsCalculateEnabled() const
-{
-    return m_bCalculate;
+FX_BOOL CPDFSDK_InterForm::IsCalculateEnabled() const {
+  return m_bCalculate;
 }
 
-void CPDFSDK_InterForm::XfaEnableCalculate(FX_BOOL bEnabled)
-{
-	m_bXfaCalculate = bEnabled;
+void CPDFSDK_InterForm::XfaEnableCalculate(FX_BOOL bEnabled) {
+  m_bXfaCalculate = bEnabled;
 }
-FX_BOOL CPDFSDK_InterForm::IsXfaCalculateEnabled() const
-{
-	return m_bXfaCalculate;
+FX_BOOL CPDFSDK_InterForm::IsXfaCalculateEnabled() const {
+  return m_bXfaCalculate;
 }
 
-FX_BOOL CPDFSDK_InterForm::IsXfaValidationsEnabled()
-{
-	return m_bXfaValidationsEnabled;
+FX_BOOL CPDFSDK_InterForm::IsXfaValidationsEnabled() {
+  return m_bXfaValidationsEnabled;
 }
-void CPDFSDK_InterForm::XfaSetValidationsEnabled(FX_BOOL bEnabled)
-{
-	m_bXfaValidationsEnabled = bEnabled;
+void CPDFSDK_InterForm::XfaSetValidationsEnabled(FX_BOOL bEnabled) {
+  m_bXfaValidationsEnabled = bEnabled;
 }
 
 #ifdef _WIN32
-CPDF_Stream* CPDFSDK_InterForm::LoadImageFromFile(const CFX_WideString& sFile)
-{
-	ASSERT(m_pDocument != NULL);
-	CPDF_Document* pDocument = m_pDocument->GetDocument()->GetPDFDoc();
-	ASSERT(pDocument != NULL);
-
-	CPDF_Stream* pRetStream = NULL;
-
-	if (CFX_DIBitmap* pBmp = CFX_WindowsDIB::LoadFromFile(sFile.c_str()))
-	{
-		int nWidth = pBmp->GetWidth();
-		int nHeight = pBmp->GetHeight();
-
-		CPDF_Image Image(pDocument);
-		Image.SetImage(pBmp, FALSE);
-		CPDF_Stream* pImageStream = Image.GetStream();
-		if (pImageStream)
-		{
-			if (pImageStream->GetObjNum() == 0)
-				pDocument->AddIndirectObject(pImageStream);
-
-			CPDF_Dictionary* pStreamDict = new CPDF_Dictionary();
-			pStreamDict->SetAtName("Subtype", "Form");
-			pStreamDict->SetAtName("Name", "IMG");
-			CPDF_Array* pMatrix = new CPDF_Array();
-			pStreamDict->SetAt("Matrix", pMatrix);
-			pMatrix->AddInteger(1);
-			pMatrix->AddInteger(0);
-			pMatrix->AddInteger(0);
-			pMatrix->AddInteger(1);
-			pMatrix->AddInteger(-nWidth / 2);
-			pMatrix->AddInteger(-nHeight / 2);
-			CPDF_Dictionary* pResource = new CPDF_Dictionary();
-			pStreamDict->SetAt("Resources", pResource);
-			CPDF_Dictionary* pXObject = new CPDF_Dictionary();
-			pResource->SetAt("XObject", pXObject);
-			pXObject->SetAtReference("Img", pDocument, pImageStream);
-			CPDF_Array* pProcSet = new CPDF_Array();
-			pResource->SetAt("ProcSet", pProcSet);
-			pProcSet->AddName("PDF");
-			pProcSet->AddName("ImageC");
-			pStreamDict->SetAtName("Type", "XObject");
-			CPDF_Array* pBBox = new CPDF_Array();
-			pStreamDict->SetAt("BBox", pBBox);
-			pBBox->AddInteger(0);
-			pBBox->AddInteger(0);
-			pBBox->AddInteger(nWidth);
-			pBBox->AddInteger(nHeight);
-			pStreamDict->SetAtInteger("FormType", 1);
-
-			pRetStream = new CPDF_Stream(NULL, 0, NULL);
-			CFX_ByteString csStream;
-			csStream.Format("q\n%d 0 0 %d 0 0 cm\n/Img Do\nQ", nWidth, nHeight);
-			pRetStream->InitStream((uint8_t*)csStream.c_str(), csStream.GetLength(), pStreamDict);
-			pDocument->AddIndirectObject(pRetStream);
-		}
-
-		delete pBmp;
-	}
-
-	return pRetStream;
+CPDF_Stream* CPDFSDK_InterForm::LoadImageFromFile(const CFX_WideString& sFile) {
+  ASSERT(m_pDocument != NULL);
+  CPDF_Document* pDocument = m_pDocument->GetDocument()->GetPDFDoc();
+  ASSERT(pDocument != NULL);
+
+  CPDF_Stream* pRetStream = NULL;
+
+  if (CFX_DIBitmap* pBmp = CFX_WindowsDIB::LoadFromFile(sFile.c_str())) {
+    int nWidth = pBmp->GetWidth();
+    int nHeight = pBmp->GetHeight();
+
+    CPDF_Image Image(pDocument);
+    Image.SetImage(pBmp, FALSE);
+    CPDF_Stream* pImageStream = Image.GetStream();
+    if (pImageStream) {
+      if (pImageStream->GetObjNum() == 0)
+        pDocument->AddIndirectObject(pImageStream);
+
+      CPDF_Dictionary* pStreamDict = new CPDF_Dictionary();
+      pStreamDict->SetAtName("Subtype", "Form");
+      pStreamDict->SetAtName("Name", "IMG");
+      CPDF_Array* pMatrix = new CPDF_Array();
+      pStreamDict->SetAt("Matrix", pMatrix);
+      pMatrix->AddInteger(1);
+      pMatrix->AddInteger(0);
+      pMatrix->AddInteger(0);
+      pMatrix->AddInteger(1);
+      pMatrix->AddInteger(-nWidth / 2);
+      pMatrix->AddInteger(-nHeight / 2);
+      CPDF_Dictionary* pResource = new CPDF_Dictionary();
+      pStreamDict->SetAt("Resources", pResource);
+      CPDF_Dictionary* pXObject = new CPDF_Dictionary();
+      pResource->SetAt("XObject", pXObject);
+      pXObject->SetAtReference("Img", pDocument, pImageStream);
+      CPDF_Array* pProcSet = new CPDF_Array();
+      pResource->SetAt("ProcSet", pProcSet);
+      pProcSet->AddName("PDF");
+      pProcSet->AddName("ImageC");
+      pStreamDict->SetAtName("Type", "XObject");
+      CPDF_Array* pBBox = new CPDF_Array();
+      pStreamDict->SetAt("BBox", pBBox);
+      pBBox->AddInteger(0);
+      pBBox->AddInteger(0);
+      pBBox->AddInteger(nWidth);
+      pBBox->AddInteger(nHeight);
+      pStreamDict->SetAtInteger("FormType", 1);
+
+      pRetStream = new CPDF_Stream(NULL, 0, NULL);
+      CFX_ByteString csStream;
+      csStream.Format("q\n%d 0 0 %d 0 0 cm\n/Img Do\nQ", nWidth, nHeight);
+      pRetStream->InitStream((uint8_t*)csStream.c_str(), csStream.GetLength(),
+                             pStreamDict);
+      pDocument->AddIndirectObject(pRetStream);
+    }
+
+    delete pBmp;
+  }
+
+  return pRetStream;
 }
 #endif
 
-void CPDFSDK_InterForm::OnCalculate(CPDF_FormField* pFormField)
-{
-    ASSERT(m_pDocument != NULL);
-    CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
-    ASSERT(pEnv);
-    if(!pEnv->IsJSInitiated())
-        return;
+void CPDFSDK_InterForm::OnCalculate(CPDF_FormField* pFormField) {
+  ASSERT(m_pDocument != NULL);
+  CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
+  ASSERT(pEnv);
+  if (!pEnv->IsJSInitiated())
+    return;
+
+  if (m_bBusy)
+    return;
+
+  m_bBusy = TRUE;
+
+  if (IsCalculateEnabled()) {
+    IFXJS_Runtime* pRuntime = m_pDocument->GetJsRuntime();
+    ASSERT(pRuntime != NULL);
 
-    if (m_bBusy) return;
+    pRuntime->SetReaderDocument(m_pDocument);
 
-    m_bBusy = TRUE;
+    int nSize = m_pInterForm->CountFieldsInCalculationOrder();
+    for (int i = 0; i < nSize; i++) {
+      if (CPDF_FormField* pField =
+              m_pInterForm->GetFieldInCalculationOrder(i)) {
+        //          ASSERT(pField != NULL);
+        int nType = pField->GetFieldType();
+        if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD) {
+          CPDF_AAction aAction = pField->GetAdditionalAction();
+          if (aAction && aAction.ActionExist(CPDF_AAction::Calculate)) {
+            CPDF_Action action = aAction.GetAction(CPDF_AAction::Calculate);
+            if (action) {
+              CFX_WideString csJS = action.GetJavaScript();
+              if (!csJS.IsEmpty()) {
+                IFXJS_Context* pContext = pRuntime->NewContext();
+                ASSERT(pContext != NULL);
 
-    if (IsCalculateEnabled())
-    {
-        IFXJS_Runtime* pRuntime = m_pDocument->GetJsRuntime();
-        ASSERT(pRuntime != NULL);
+                CFX_WideString sOldValue = pField->GetValue();
+                CFX_WideString sValue = sOldValue;
+                FX_BOOL bRC = TRUE;
+                pContext->OnField_Calculate(pFormField, pField, sValue, bRC);
 
-        pRuntime->SetReaderDocument(m_pDocument);
+                CFX_WideString sInfo;
+                FX_BOOL bRet = pContext->RunScript(csJS, sInfo);
+                pRuntime->ReleaseContext(pContext);
 
-        int nSize = m_pInterForm->CountFieldsInCalculationOrder();
-        for (int i=0; i<nSize; i++)
-        {
-            if(CPDF_FormField* pField = m_pInterForm->GetFieldInCalculationOrder(i))
-            {
-//          ASSERT(pField != NULL);
-                int nType = pField->GetFieldType();
-                if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD)
-                {
-                    CPDF_AAction aAction = pField->GetAdditionalAction();
-                    if (aAction && aAction.ActionExist(CPDF_AAction::Calculate))
-                    {
-                        CPDF_Action action = aAction.GetAction(CPDF_AAction::Calculate);
-                        if (action)
-                        {
-                            CFX_WideString csJS = action.GetJavaScript();
-                            if (!csJS.IsEmpty())
-                            {
-                                IFXJS_Context* pContext = pRuntime->NewContext();
-                                ASSERT(pContext != NULL);
-
-                                CFX_WideString sOldValue = pField->GetValue();
-                                CFX_WideString sValue = sOldValue;
-                                FX_BOOL bRC = TRUE;
-                                pContext->OnField_Calculate(pFormField, pField, sValue, bRC);
-
-                                CFX_WideString sInfo;
-                                FX_BOOL bRet = pContext->RunScript(csJS, sInfo);
-                                pRuntime->ReleaseContext(pContext);
-
-                                if (bRet)
-                                {
-                                    if (bRC)
-                                    {
-                                        if (sValue.Compare(sOldValue) != 0)
-                                            pField->SetValue(sValue, TRUE);
-                                    }
-                                }
-                            }
-                        }
-                    }
+                if (bRet) {
+                  if (bRC) {
+                    if (sValue.Compare(sOldValue) != 0)
+                      pField->SetValue(sValue, TRUE);
+                  }
                 }
+              }
             }
+          }
         }
-
-
+      }
     }
+  }
 
-    m_bBusy = FALSE;
+  m_bBusy = FALSE;
 }
 
-CFX_WideString CPDFSDK_InterForm::OnFormat(CPDF_FormField* pFormField, FX_BOOL& bFormated)
-{
-    ASSERT(m_pDocument != NULL);
-    ASSERT(pFormField != NULL);
+CFX_WideString CPDFSDK_InterForm::OnFormat(CPDF_FormField* pFormField,
+                                           FX_BOOL& bFormated) {
+  ASSERT(m_pDocument != NULL);
+  ASSERT(pFormField != NULL);
 
-    CFX_WideString sValue = pFormField->GetValue();
-    CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
-    ASSERT(pEnv);
-    if(!pEnv->IsJSInitiated())
-    {
-        bFormated = FALSE;
-        return sValue;
-    }
+  CFX_WideString sValue = pFormField->GetValue();
+  CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
+  ASSERT(pEnv);
+  if (!pEnv->IsJSInitiated()) {
+    bFormated = FALSE;
+    return sValue;
+  }
 
-    IFXJS_Runtime* pRuntime = m_pDocument->GetJsRuntime();
-    ASSERT(pRuntime != NULL);
+  IFXJS_Runtime* pRuntime = m_pDocument->GetJsRuntime();
+  ASSERT(pRuntime != NULL);
 
-    pRuntime->SetReaderDocument(m_pDocument);
+  pRuntime->SetReaderDocument(m_pDocument);
 
-    if (pFormField->GetFieldType() == FIELDTYPE_COMBOBOX)
-    {
-        if (pFormField->CountSelectedItems() > 0)
-        {
-            int index = pFormField->GetSelectedIndex(0);
-            if (index >= 0)
-                sValue = pFormField->GetOptionLabel(index);
-        }
+  if (pFormField->GetFieldType() == FIELDTYPE_COMBOBOX) {
+    if (pFormField->CountSelectedItems() > 0) {
+      int index = pFormField->GetSelectedIndex(0);
+      if (index >= 0)
+        sValue = pFormField->GetOptionLabel(index);
     }
+  }
 
-    bFormated = FALSE;
+  bFormated = FALSE;
 
-    CPDF_AAction aAction = pFormField->GetAdditionalAction();
-    if (aAction != NULL && aAction.ActionExist(CPDF_AAction::Format))
-    {
-        CPDF_Action action = aAction.GetAction(CPDF_AAction::Format);
-        if (action)
-        {
-            CFX_WideString script = action.GetJavaScript();
-            if (!script.IsEmpty())
-            {
-                CFX_WideString Value = sValue;
+  CPDF_AAction aAction = pFormField->GetAdditionalAction();
+  if (aAction != NULL && aAction.ActionExist(CPDF_AAction::Format)) {
+    CPDF_Action action = aAction.GetAction(CPDF_AAction::Format);
+    if (action) {
+      CFX_WideString script = action.GetJavaScript();
+      if (!script.IsEmpty()) {
+        CFX_WideString Value = sValue;
 
-                IFXJS_Context* pContext = pRuntime->NewContext();
-                ASSERT(pContext != NULL);
+        IFXJS_Context* pContext = pRuntime->NewContext();
+        ASSERT(pContext != NULL);
 
-                pContext->OnField_Format(pFormField, Value, TRUE);
+        pContext->OnField_Format(pFormField, Value, TRUE);
 
-                CFX_WideString sInfo;
-                FX_BOOL bRet = pContext->RunScript(script, sInfo);
-                pRuntime->ReleaseContext(pContext);
+        CFX_WideString sInfo;
+        FX_BOOL bRet = pContext->RunScript(script, sInfo);
+        pRuntime->ReleaseContext(pContext);
 
-                if (bRet)
-                {
-                    sValue = Value;
-                    bFormated = TRUE;
-                }
-            }
+        if (bRet) {
+          sValue = Value;
+          bFormated = TRUE;
         }
+      }
     }
+  }
 
-    return sValue;
+  return sValue;
 }
 
-void CPDFSDK_InterForm::ResetFieldAppearance(CPDF_FormField* pFormField, const FX_WCHAR* sValue, FX_BOOL bValueChanged)
-{
-    ASSERT(pFormField != NULL);
+void CPDFSDK_InterForm::ResetFieldAppearance(CPDF_FormField* pFormField,
+                                             const FX_WCHAR* sValue,
+                                             FX_BOOL bValueChanged) {
+  ASSERT(pFormField != NULL);
 
-    for (int i=0,sz=pFormField->CountControls(); i<sz; i++)
-    {
-        CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
-        ASSERT(pFormCtrl != NULL);
+  for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
+    CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
+    ASSERT(pFormCtrl != NULL);
 
-        ASSERT(m_pInterForm != NULL);
-        if(CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl))
-            pWidget->ResetAppearance(sValue, bValueChanged);
-    }
+    ASSERT(m_pInterForm != NULL);
+    if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl))
+      pWidget->ResetAppearance(sValue, bValueChanged);
+  }
 }
 
-void CPDFSDK_InterForm::UpdateField(CPDF_FormField* pFormField)
-{
-    ASSERT(pFormField != NULL);
+void CPDFSDK_InterForm::UpdateField(CPDF_FormField* pFormField) {
+  ASSERT(pFormField != NULL);
 
-    for (int i=0,sz=pFormField->CountControls(); i<sz; i++)
-    {
-        CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
-        ASSERT(pFormCtrl != NULL);
+  for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
+    CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
+    ASSERT(pFormCtrl != NULL);
 
-        if(CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl))
-        {
-            CPDFDoc_Environment * pEnv = m_pDocument->GetEnv();
-            CFFL_IFormFiller* pIFormFiller = pEnv->GetIFormFiller();
+    if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl)) {
+      CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
+      CFFL_IFormFiller* pIFormFiller = pEnv->GetIFormFiller();
 
-			CPDFXFA_Page * pPage = pWidget->GetPDFXFAPage();
-			CPDFSDK_PageView * pPageView = m_pDocument->GetPageView(pPage,FALSE);
+      CPDFXFA_Page* pPage = pWidget->GetPDFXFAPage();
+      CPDFSDK_PageView* pPageView = m_pDocument->GetPageView(pPage, FALSE);
 
-            FX_RECT rcBBox = pIFormFiller->GetViewBBox(pPageView, pWidget);
+      FX_RECT rcBBox = pIFormFiller->GetViewBBox(pPageView, pWidget);
 
-            pEnv->FFI_Invalidate(pPage,rcBBox.left, rcBBox.top, rcBBox.right, rcBBox.bottom);
-        }
+      pEnv->FFI_Invalidate(pPage, rcBBox.left, rcBBox.top, rcBBox.right,
+                           rcBBox.bottom);
     }
+  }
 }
 
-void CPDFSDK_InterForm::OnKeyStrokeCommit(CPDF_FormField* pFormField, CFX_WideString& csValue, FX_BOOL& bRC)
-{
-    ASSERT(pFormField != NULL);
+void CPDFSDK_InterForm::OnKeyStrokeCommit(CPDF_FormField* pFormField,
+                                          CFX_WideString& csValue,
+                                          FX_BOOL& bRC) {
+  ASSERT(pFormField != NULL);
 
-    CPDF_AAction aAction = pFormField->GetAdditionalAction();
-    if (aAction != NULL && aAction.ActionExist(CPDF_AAction::KeyStroke))
-    {
-        CPDF_Action action = aAction.GetAction(CPDF_AAction::KeyStroke);
-        if (action)
-        {
-            ASSERT(m_pDocument != NULL);
-            CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
-            ASSERT(pEnv != NULL);
+  CPDF_AAction aAction = pFormField->GetAdditionalAction();
+  if (aAction != NULL && aAction.ActionExist(CPDF_AAction::KeyStroke)) {
+    CPDF_Action action = aAction.GetAction(CPDF_AAction::KeyStroke);
+    if (action) {
+      ASSERT(m_pDocument != NULL);
+      CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
+      ASSERT(pEnv != NULL);
 
-            CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander();
-            ASSERT(pActionHandler != NULL);
+      CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander();
+      ASSERT(pActionHandler != NULL);
 
-            PDFSDK_FieldAction fa;
-            fa.bModifier = pEnv->FFI_IsCTRLKeyDown(0);
-            fa.bShift = pEnv->FFI_IsSHIFTKeyDown(0);
-            fa.sValue = csValue;
+      PDFSDK_FieldAction fa;
+      fa.bModifier = pEnv->FFI_IsCTRLKeyDown(0);
+      fa.bShift = pEnv->FFI_IsSHIFTKeyDown(0);
+      fa.sValue = csValue;
 
-            pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::KeyStroke,
-                m_pDocument, pFormField, fa);
-            bRC = fa.bRC;
-        }
+      pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::KeyStroke,
+                                               m_pDocument, pFormField, fa);
+      bRC = fa.bRC;
     }
+  }
 }
 
-void CPDFSDK_InterForm::OnValidate(CPDF_FormField* pFormField, CFX_WideString& csValue, FX_BOOL& bRC)
-{
-    ASSERT(pFormField != NULL);
-
-    CPDF_AAction aAction = pFormField->GetAdditionalAction();
-    if (aAction != NULL && aAction.ActionExist(CPDF_AAction::Validate))
-    {
-        CPDF_Action action = aAction.GetAction(CPDF_AAction::Validate);
-        if (action)
-        {
-            ASSERT(m_pDocument != NULL);
-            CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
-            ASSERT(pEnv != NULL);
+void CPDFSDK_InterForm::OnValidate(CPDF_FormField* pFormField,
+                                   CFX_WideString& csValue,
+                                   FX_BOOL& bRC) {
+  ASSERT(pFormField != NULL);
 
-            CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander();
-            ASSERT(pActionHandler != NULL);
+  CPDF_AAction aAction = pFormField->GetAdditionalAction();
+  if (aAction != NULL && aAction.ActionExist(CPDF_AAction::Validate)) {
+    CPDF_Action action = aAction.GetAction(CPDF_AAction::Validate);
+    if (action) {
+      ASSERT(m_pDocument != NULL);
+      CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
+      ASSERT(pEnv != NULL);
 
-            PDFSDK_FieldAction fa;
-            fa.bModifier = pEnv->FFI_IsCTRLKeyDown(0);
-            fa.bShift = pEnv->FFI_IsSHIFTKeyDown(0);
-            fa.sValue = csValue;
+      CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander();
+      ASSERT(pActionHandler != NULL);
 
-            pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::Validate, m_pDocument, pFormField, fa);
-            bRC = fa.bRC;
+      PDFSDK_FieldAction fa;
+      fa.bModifier = pEnv->FFI_IsCTRLKeyDown(0);
+      fa.bShift = pEnv->FFI_IsSHIFTKeyDown(0);
+      fa.sValue = csValue;
 
-        }
+      pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::Validate,
+                                               m_pDocument, pFormField, fa);
+      bRC = fa.bRC;
     }
+  }
 }
 
 /* ----------------------------- action ----------------------------- */
 
-FX_BOOL CPDFSDK_InterForm::DoAction_Hide(const CPDF_Action& action)
-{
-    ASSERT(action);
-
-    CPDF_ActionFields af = action.GetWidgets();
-    CFX_PtrArray fieldObjects;
-    af.GetAllFields(fieldObjects);
-    CFX_PtrArray widgetArray;
-    CFX_PtrArray fields;
-    GetFieldFromObjects(fieldObjects, fields);
-
-    FX_BOOL bHide = action.GetHideStatus();
-
-    FX_BOOL bChanged = FALSE;
+FX_BOOL CPDFSDK_InterForm::DoAction_Hide(const CPDF_Action& action) {
+  ASSERT(action);
 
-    for (int i=0, sz=fields.GetSize(); i<sz; i++)
-    {
-        CPDF_FormField* pField = (CPDF_FormField*)fields[i];
-        ASSERT(pField != NULL);
+  CPDF_ActionFields af = action.GetWidgets();
+  CFX_PtrArray fieldObjects;
+  af.GetAllFields(fieldObjects);
+  CFX_PtrArray widgetArray;
+  CFX_PtrArray fields;
+  GetFieldFromObjects(fieldObjects, fields);
 
+  FX_BOOL bHide = action.GetHideStatus();
 
-        for (int j=0,jsz=pField->CountControls(); j<jsz; j++)
-        {
-            CPDF_FormControl* pControl = pField->GetControl(j);
-            ASSERT(pControl != NULL);
-
-            if (CPDFSDK_Widget* pWidget = GetWidget(pControl))
-            {
-                int nFlags = pWidget->GetFlags();
-                if (bHide)
-                {
-                    nFlags &= (~ANNOTFLAG_INVISIBLE);
-                    nFlags &= (~ANNOTFLAG_NOVIEW);
-                    nFlags |= (ANNOTFLAG_HIDDEN);
-                }
-                else
-                {
-                    nFlags &= (~ANNOTFLAG_INVISIBLE);
-                    nFlags &= (~ANNOTFLAG_HIDDEN);
-                    nFlags &= (~ANNOTFLAG_NOVIEW);
-                }
-                pWidget->SetFlags(nFlags);
-
-                CPDFSDK_PageView* pPageView = pWidget->GetPageView();
-                ASSERT(pPageView != NULL);
+  FX_BOOL bChanged = FALSE;
 
-                pPageView->UpdateView(pWidget);
+  for (int i = 0, sz = fields.GetSize(); i < sz; i++) {
+    CPDF_FormField* pField = (CPDF_FormField*)fields[i];
+    ASSERT(pField != NULL);
 
-                bChanged = TRUE;
-            }
+    for (int j = 0, jsz = pField->CountControls(); j < jsz; j++) {
+      CPDF_FormControl* pControl = pField->GetControl(j);
+      ASSERT(pControl != NULL);
+
+      if (CPDFSDK_Widget* pWidget = GetWidget(pControl)) {
+        int nFlags = pWidget->GetFlags();
+        if (bHide) {
+          nFlags &= (~ANNOTFLAG_INVISIBLE);
+          nFlags &= (~ANNOTFLAG_NOVIEW);
+          nFlags |= (ANNOTFLAG_HIDDEN);
+        } else {
+          nFlags &= (~ANNOTFLAG_INVISIBLE);
+          nFlags &= (~ANNOTFLAG_HIDDEN);
+          nFlags &= (~ANNOTFLAG_NOVIEW);
         }
-    }
-
-    return bChanged;
-}
+        pWidget->SetFlags(nFlags);
 
-FX_BOOL CPDFSDK_InterForm::DoAction_SubmitForm(const CPDF_Action& action)
-{
-    ASSERT(m_pInterForm != NULL);
-    CFX_WideString sDestination = action.GetFilePath();
-    if (sDestination.IsEmpty())
-        return FALSE;
+        CPDFSDK_PageView* pPageView = pWidget->GetPageView();
+        ASSERT(pPageView != NULL);
 
-    CPDF_Dictionary* pActionDict = action.GetDict();
-    if (pActionDict->KeyExist("Fields"))
-    {
-        CPDF_ActionFields af = action.GetWidgets();
-        FX_DWORD dwFlags = action.GetFlags();
-        CFX_PtrArray fieldObjects;
-        af.GetAllFields(fieldObjects);
-
-        CFX_PtrArray fields;
-        GetFieldFromObjects(fieldObjects, fields);
-        if (fields.GetSize() != 0)
-        {
-            FX_BOOL bIncludeOrExclude = !(dwFlags & 0x01);
-            if (m_pInterForm->CheckRequiredFields(&fields, bIncludeOrExclude))
-                return FALSE;
+        pPageView->UpdateView(pWidget);
 
-            return SubmitFields(sDestination, fields, bIncludeOrExclude, FALSE);
-        }
+        bChanged = TRUE;
+      }
     }
-    if (m_pInterForm->CheckRequiredFields())
-        return FALSE;
+  }
 
-    return SubmitForm(sDestination, FALSE);
+  return bChanged;
 }
 
-FX_BOOL CPDFSDK_InterForm::SubmitFields(const CFX_WideString& csDestination, const CFX_PtrArray& fields,
-                                    FX_BOOL bIncludeOrExclude, FX_BOOL bUrlEncoded)
-{
-    CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
-    ASSERT(pEnv != NULL);
+FX_BOOL CPDFSDK_InterForm::DoAction_SubmitForm(const CPDF_Action& action) {
+  ASSERT(m_pInterForm != NULL);
+  CFX_WideString sDestination = action.GetFilePath();
+  if (sDestination.IsEmpty())
+    return FALSE;
 
-    CFX_ByteTextBuf textBuf;
-    ExportFieldsToFDFTextBuf(fields, bIncludeOrExclude, textBuf);
+  CPDF_Dictionary* pActionDict = action.GetDict();
+  if (pActionDict->KeyExist("Fields")) {
+    CPDF_ActionFields af = action.GetWidgets();
+    FX_DWORD dwFlags = action.GetFlags();
+    CFX_PtrArray fieldObjects;
+    af.GetAllFields(fieldObjects);
 
-    uint8_t* pBuffer = textBuf.GetBuffer();
-    FX_STRSIZE nBufSize = textBuf.GetLength();
+    CFX_PtrArray fields;
+    GetFieldFromObjects(fieldObjects, fields);
+    if (fields.GetSize() != 0) {
+      FX_BOOL bIncludeOrExclude = !(dwFlags & 0x01);
+      if (m_pInterForm->CheckRequiredFields(&fields, bIncludeOrExclude))
+        return FALSE;
 
-    if (bUrlEncoded)
-    {
-        if(!FDFToURLEncodedData(pBuffer, nBufSize))
-            return FALSE;
+      return SubmitFields(sDestination, fields, bIncludeOrExclude, FALSE);
     }
+  }
+  if (m_pInterForm->CheckRequiredFields())
+    return FALSE;
 
-    pEnv->JS_docSubmitForm(pBuffer, nBufSize, csDestination.c_str());
-
-    return TRUE;
+  return SubmitForm(sDestination, FALSE);
 }
 
-void CPDFSDK_InterForm::DoFDFBuffer(CFX_ByteString sBuffer)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL CPDFSDK_InterForm::SubmitFields(const CFX_WideString& csDestination,
+                                        const CFX_PtrArray& fields,
+                                        FX_BOOL bIncludeOrExclude,
+                                        FX_BOOL bUrlEncoded) {
+  CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
+  ASSERT(pEnv != NULL);
 
-    if (CFDF_Document *pFDFDocument = CFDF_Document::ParseMemory((const unsigned char *)sBuffer.GetBuffer(sBuffer.GetLength()), sBuffer.GetLength()))
-    {
-        CPDF_Dictionary* pRootDic = pFDFDocument->GetRoot();
-        if(pRootDic)
-        {
-            CPDF_Dictionary * pFDFDict=pRootDic->GetDict("FDF");
-            if(pFDFDict)
-            {
-                CPDF_Dictionary * pJSDict = pFDFDict->GetDict("JavaScript");
-                if(pJSDict)
-                {
-                    CFX_WideString csJS;
-
-                    CPDF_Object* pJS = pJSDict->GetElementValue("Before");
-                    if (pJS != NULL)
-                    {
-                        int iType = pJS->GetType();
-                        if (iType == PDFOBJ_STRING)
-                            csJS = pJSDict->GetUnicodeText("Before");
-                        else if (iType == PDFOBJ_STREAM)
-                            csJS = pJS->GetUnicodeText();
-                    }
+  CFX_ByteTextBuf textBuf;
+  ExportFieldsToFDFTextBuf(fields, bIncludeOrExclude, textBuf);
 
-                }
-            }
-        }
-        delete pFDFDocument;
-    }
+  uint8_t* pBuffer = textBuf.GetBuffer();
+  FX_STRSIZE nBufSize = textBuf.GetLength();
 
-    sBuffer.ReleaseBuffer();
-}
+  if (bUrlEncoded) {
+    if (!FDFToURLEncodedData(pBuffer, nBufSize))
+      return FALSE;
+  }
 
-FX_BOOL CPDFSDK_InterForm::FDFToURLEncodedData(CFX_WideString csFDFFile, CFX_WideString csTxtFile)
-{
-    return TRUE;
-}
+  pEnv->JS_docSubmitForm(pBuffer, nBufSize, csDestination.c_str());
 
-FX_BOOL CPDFSDK_InterForm::FDFToURLEncodedData(uint8_t*& pBuf, FX_STRSIZE& nBufSize)
-{
-    CFDF_Document* pFDF = CFDF_Document::ParseMemory(pBuf, nBufSize);
-    if (pFDF)
-    {
-        CPDF_Dictionary* pMainDict = pFDF->GetRoot()->GetDict("FDF");
-        if (pMainDict == NULL) return FALSE;
+  return TRUE;
+}
 
-        // Get fields
-        CPDF_Array* pFields = pMainDict->GetArray("Fields");
-        if (pFields == NULL) return FALSE;
+void CPDFSDK_InterForm::DoFDFBuffer(CFX_ByteString sBuffer) {
+  ASSERT(m_pDocument != NULL);
 
-        CFX_ByteTextBuf fdfEncodedData;
+  if (CFDF_Document* pFDFDocument = CFDF_Document::ParseMemory(
+          (const unsigned char*)sBuffer.GetBuffer(sBuffer.GetLength()),
+          sBuffer.GetLength())) {
+    CPDF_Dictionary* pRootDic = pFDFDocument->GetRoot();
+    if (pRootDic) {
+      CPDF_Dictionary* pFDFDict = pRootDic->GetDict("FDF");
+      if (pFDFDict) {
+        CPDF_Dictionary* pJSDict = pFDFDict->GetDict("JavaScript");
+        if (pJSDict) {
+          CFX_WideString csJS;
 
-        for (FX_DWORD i = 0; i < pFields->GetCount(); i ++)
-        {
-            CPDF_Dictionary* pField = pFields->GetDict(i);
-            if (pField == NULL) continue;
-            CFX_WideString name;
-            name = pField->GetUnicodeText("T");
-            CFX_ByteString name_b = CFX_ByteString::FromUnicode(name);
-            CFX_ByteString csBValue = pField->GetString("V");
-            CFX_WideString csWValue = PDF_DecodeText(csBValue);
-            CFX_ByteString csValue_b = CFX_ByteString::FromUnicode(csWValue);
-
-            fdfEncodedData = fdfEncodedData<<name_b.GetBuffer(name_b.GetLength());
-            name_b.ReleaseBuffer();
-            fdfEncodedData = fdfEncodedData<<"=";
-            fdfEncodedData = fdfEncodedData<<csValue_b.GetBuffer(csValue_b.GetLength());
-            csValue_b.ReleaseBuffer();
-            if(i != pFields->GetCount()-1)
-                fdfEncodedData = fdfEncodedData<<"&";
+          CPDF_Object* pJS = pJSDict->GetElementValue("Before");
+          if (pJS != NULL) {
+            int iType = pJS->GetType();
+            if (iType == PDFOBJ_STRING)
+              csJS = pJSDict->GetUnicodeText("Before");
+            else if (iType == PDFOBJ_STREAM)
+              csJS = pJS->GetUnicodeText();
+          }
         }
-
-        nBufSize = fdfEncodedData.GetLength();
-        pBuf = FX_Alloc(uint8_t, nBufSize);
-        FXSYS_memcpy(pBuf, fdfEncodedData.GetBuffer(), nBufSize);
+      }
     }
-    return TRUE;
-}
-
-FX_BOOL CPDFSDK_InterForm::ExportFieldsToFDFTextBuf(const CFX_PtrArray& fields,FX_BOOL bIncludeOrExclude, CFX_ByteTextBuf& textBuf)
-{
-    ASSERT(m_pDocument != NULL);
-    ASSERT(m_pInterForm != NULL);
-
-    CFDF_Document* pFDF = m_pInterForm->ExportToFDF(m_pDocument->GetPath(),(CFX_PtrArray&)fields, bIncludeOrExclude);
-    if (!pFDF) return FALSE;
-    FX_BOOL bRet = pFDF->WriteBuf(textBuf); // = FALSE;//
-    delete pFDF;
+    delete pFDFDocument;
+  }
+
+  sBuffer.ReleaseBuffer();
+}
+
+FX_BOOL CPDFSDK_InterForm::FDFToURLEncodedData(CFX_WideString csFDFFile,
+                                               CFX_WideString csTxtFile) {
+  return TRUE;
+}
+
+FX_BOOL CPDFSDK_InterForm::FDFToURLEncodedData(uint8_t*& pBuf,
+                                               FX_STRSIZE& nBufSize) {
+  CFDF_Document* pFDF = CFDF_Document::ParseMemory(pBuf, nBufSize);
+  if (pFDF) {
+    CPDF_Dictionary* pMainDict = pFDF->GetRoot()->GetDict("FDF");
+    if (pMainDict == NULL)
+      return FALSE;
+
+    // Get fields
+    CPDF_Array* pFields = pMainDict->GetArray("Fields");
+    if (pFields == NULL)
+      return FALSE;
+
+    CFX_ByteTextBuf fdfEncodedData;
+
+    for (FX_DWORD i = 0; i < pFields->GetCount(); i++) {
+      CPDF_Dictionary* pField = pFields->GetDict(i);
+      if (pField == NULL)
+        continue;
+      CFX_WideString name;
+      name = pField->GetUnicodeText("T");
+      CFX_ByteString name_b = CFX_ByteString::FromUnicode(name);
+      CFX_ByteString csBValue = pField->GetString("V");
+      CFX_WideString csWValue = PDF_DecodeText(csBValue);
+      CFX_ByteString csValue_b = CFX_ByteString::FromUnicode(csWValue);
+
+      fdfEncodedData = fdfEncodedData << name_b.GetBuffer(name_b.GetLength());
+      name_b.ReleaseBuffer();
+      fdfEncodedData = fdfEncodedData << "=";
+      fdfEncodedData = fdfEncodedData
+                       << csValue_b.GetBuffer(csValue_b.GetLength());
+      csValue_b.ReleaseBuffer();
+      if (i != pFields->GetCount() - 1)
+        fdfEncodedData = fdfEncodedData << "&";
+    }
+
+    nBufSize = fdfEncodedData.GetLength();
+    pBuf = FX_Alloc(uint8_t, nBufSize);
+    FXSYS_memcpy(pBuf, fdfEncodedData.GetBuffer(), nBufSize);
+  }
+  return TRUE;
+}
+
+FX_BOOL CPDFSDK_InterForm::ExportFieldsToFDFTextBuf(const CFX_PtrArray& fields,
+                                                    FX_BOOL bIncludeOrExclude,
+                                                    CFX_ByteTextBuf& textBuf) {
+  ASSERT(m_pDocument != NULL);
+  ASSERT(m_pInterForm != NULL);
+
+  CFDF_Document* pFDF = m_pInterForm->ExportToFDF(
+      m_pDocument->GetPath(), (CFX_PtrArray&)fields, bIncludeOrExclude);
+  if (!pFDF)
+    return FALSE;
+  FX_BOOL bRet = pFDF->WriteBuf(textBuf);  // = FALSE;//
+  delete pFDF;
 
-    return bRet;
+  return bRet;
 }
 
-void CPDFSDK_InterForm::SynchronizeField(CPDF_FormField* pFormField, FX_BOOL bSynchronizeElse)
-{
-	ASSERT(pFormField != NULL);
+void CPDFSDK_InterForm::SynchronizeField(CPDF_FormField* pFormField,
+                                         FX_BOOL bSynchronizeElse) {
+  ASSERT(pFormField != NULL);
 
-	int x = 0;
-	if (m_FieldSynchronizeMap.Lookup(pFormField, x))
-		return;
+  int x = 0;
+  if (m_FieldSynchronizeMap.Lookup(pFormField, x))
+    return;
 
-	for (int i=0,sz=pFormField->CountControls(); i<sz; i++)
-	{
-		CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
-		ASSERT(pFormCtrl != NULL);
+  for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
+    CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
+    ASSERT(pFormCtrl != NULL);
 
-		ASSERT(m_pInterForm != NULL);
-		if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl))
-		{
-			pWidget->Synchronize(bSynchronizeElse);
-		}
-	}
+    ASSERT(m_pInterForm != NULL);
+    if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl)) {
+      pWidget->Synchronize(bSynchronizeElse);
+    }
+  }
 }
 
-CFX_WideString CPDFSDK_InterForm::GetTemporaryFileName(const CFX_WideString& sFileExt)
-{
-    CFX_WideString sFileName;
-    return L"";
+CFX_WideString CPDFSDK_InterForm::GetTemporaryFileName(
+    const CFX_WideString& sFileExt) {
+  CFX_WideString sFileName;
+  return L"";
 }
 
-FX_BOOL CPDFSDK_InterForm::SubmitForm(const CFX_WideString& sDestination, FX_BOOL bUrlEncoded)
-{
-    if (sDestination.IsEmpty()) return FALSE;
+FX_BOOL CPDFSDK_InterForm::SubmitForm(const CFX_WideString& sDestination,
+                                      FX_BOOL bUrlEncoded) {
+  if (sDestination.IsEmpty())
+    return FALSE;
 
-    CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
-    ASSERT(pEnv != NULL);
+  CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
+  ASSERT(pEnv != NULL);
 
-    if(NULL == m_pDocument) return FALSE;
-    CFX_WideString wsPDFFilePath = m_pDocument->GetPath();
+  if (NULL == m_pDocument)
+    return FALSE;
+  CFX_WideString wsPDFFilePath = m_pDocument->GetPath();
 
-    if(NULL == m_pInterForm) return FALSE;
-    CFDF_Document* pFDFDoc = m_pInterForm->ExportToFDF(wsPDFFilePath);
-    if (NULL == pFDFDoc) return FALSE;
+  if (NULL == m_pInterForm)
+    return FALSE;
+  CFDF_Document* pFDFDoc = m_pInterForm->ExportToFDF(wsPDFFilePath);
+  if (NULL == pFDFDoc)
+    return FALSE;
 
-    CFX_ByteTextBuf FdfBuffer;
-    FX_BOOL bRet = pFDFDoc->WriteBuf(FdfBuffer);
-    delete pFDFDoc;
-    if (!bRet) return FALSE;
+  CFX_ByteTextBuf FdfBuffer;
+  FX_BOOL bRet = pFDFDoc->WriteBuf(FdfBuffer);
+  delete pFDFDoc;
+  if (!bRet)
+    return FALSE;
 
-    uint8_t* pBuffer = FdfBuffer.GetBuffer();
-    FX_STRSIZE nBufSize = FdfBuffer.GetLength();
+  uint8_t* pBuffer = FdfBuffer.GetBuffer();
+  FX_STRSIZE nBufSize = FdfBuffer.GetLength();
 
-    if (bUrlEncoded)
-    {
-        if(!FDFToURLEncodedData(pBuffer, nBufSize))
-            return FALSE;
-    }
+  if (bUrlEncoded) {
+    if (!FDFToURLEncodedData(pBuffer, nBufSize))
+      return FALSE;
+  }
 
-    pEnv->JS_docSubmitForm(pBuffer, nBufSize, sDestination.c_str());
+  pEnv->JS_docSubmitForm(pBuffer, nBufSize, sDestination.c_str());
 
-    if (bUrlEncoded && pBuffer)
-    {
-        FX_Free(pBuffer);
-        pBuffer = NULL;
-    }
+  if (bUrlEncoded && pBuffer) {
+    FX_Free(pBuffer);
+    pBuffer = NULL;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL CPDFSDK_InterForm::ExportFormToFDFTextBuf(CFX_ByteTextBuf& textBuf)
-{
+FX_BOOL CPDFSDK_InterForm::ExportFormToFDFTextBuf(CFX_ByteTextBuf& textBuf) {
+  ASSERT(m_pInterForm != NULL);
+  ASSERT(m_pDocument != NULL);
 
-    ASSERT(m_pInterForm != NULL);
-    ASSERT(m_pDocument != NULL);
-
-    CFDF_Document* pFDF = m_pInterForm->ExportToFDF(m_pDocument->GetPath());
-    if (!pFDF) return FALSE;
+  CFDF_Document* pFDF = m_pInterForm->ExportToFDF(m_pDocument->GetPath());
+  if (!pFDF)
+    return FALSE;
 
-    FX_BOOL bRet = pFDF->WriteBuf(textBuf);
-    delete pFDF;
+  FX_BOOL bRet = pFDF->WriteBuf(textBuf);
+  delete pFDF;
 
-    return bRet;
+  return bRet;
 }
 
+FX_BOOL CPDFSDK_InterForm::DoAction_ResetForm(const CPDF_Action& action) {
+  ASSERT(action);
 
-FX_BOOL CPDFSDK_InterForm::DoAction_ResetForm(const CPDF_Action& action)
-{
-    ASSERT(action);
-
-    CPDF_Dictionary* pActionDict = action.GetDict();
-    if (pActionDict->KeyExist("Fields"))
-    {
-        CPDF_ActionFields af = action.GetWidgets();
-        FX_DWORD dwFlags = action.GetFlags();
+  CPDF_Dictionary* pActionDict = action.GetDict();
+  if (pActionDict->KeyExist("Fields")) {
+    CPDF_ActionFields af = action.GetWidgets();
+    FX_DWORD dwFlags = action.GetFlags();
 
-        CFX_PtrArray fieldObjects;
-        af.GetAllFields(fieldObjects);
-        CFX_PtrArray fields;
-        GetFieldFromObjects(fieldObjects, fields);
-        return m_pInterForm->ResetForm(fields, !(dwFlags & 0x01), TRUE);
-    }
+    CFX_PtrArray fieldObjects;
+    af.GetAllFields(fieldObjects);
+    CFX_PtrArray fields;
+    GetFieldFromObjects(fieldObjects, fields);
+    return m_pInterForm->ResetForm(fields, !(dwFlags & 0x01), TRUE);
+  }
 
-    return m_pInterForm->ResetForm(TRUE);
+  return m_pInterForm->ResetForm(TRUE);
 }
 
-FX_BOOL CPDFSDK_InterForm::DoAction_ImportData(const CPDF_Action& action)
-{
-    return FALSE;
+FX_BOOL CPDFSDK_InterForm::DoAction_ImportData(const CPDF_Action& action) {
+  return FALSE;
 }
 
-void CPDFSDK_InterForm::GetFieldFromObjects(const CFX_PtrArray& objects, CFX_PtrArray& fields)
-{
-    ASSERT(m_pInterForm != NULL);
+void CPDFSDK_InterForm::GetFieldFromObjects(const CFX_PtrArray& objects,
+                                            CFX_PtrArray& fields) {
+  ASSERT(m_pInterForm != NULL);
 
-    int iCount = objects.GetSize();
-    for (int i = 0; i < iCount; i ++)
-    {
-        CPDF_Object* pObject = (CPDF_Object*)objects[i];
-        if (pObject == NULL) continue;
+  int iCount = objects.GetSize();
+  for (int i = 0; i < iCount; i++) {
+    CPDF_Object* pObject = (CPDF_Object*)objects[i];
+    if (pObject == NULL)
+      continue;
 
-        int iType = pObject->GetType();
-        if (iType == PDFOBJ_STRING)
-        {
-            CFX_WideString csName = pObject->GetUnicodeText();
-            CPDF_FormField* pField = m_pInterForm->GetField(0, csName);
-            if (pField != NULL)
-                fields.Add(pField);
-        }
-        else if (iType == PDFOBJ_DICTIONARY)
-        {
-            if (m_pInterForm->IsValidFormField(pObject))
-                fields.Add(pObject);
-        }
+    int iType = pObject->GetType();
+    if (iType == PDFOBJ_STRING) {
+      CFX_WideString csName = pObject->GetUnicodeText();
+      CPDF_FormField* pField = m_pInterForm->GetField(0, csName);
+      if (pField != NULL)
+        fields.Add(pField);
+    } else if (iType == PDFOBJ_DICTIONARY) {
+      if (m_pInterForm->IsValidFormField(pObject))
+        fields.Add(pObject);
     }
+  }
 }
 
-/* ----------------------------- CPDF_FormNotify ----------------------------- */
+/* ----------------------------- CPDF_FormNotify -----------------------------
+ */
 
-int CPDFSDK_InterForm::BeforeValueChange(const CPDF_FormField* pField, CFX_WideString& csValue)
-{
-    CPDF_FormField* pFormField = (CPDF_FormField*)pField;
-    int nType = pFormField->GetFieldType();
-    if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD)
-    {
-        FX_BOOL bRC = TRUE;
-        OnKeyStrokeCommit(pFormField, csValue, bRC);
-        if (bRC)
-        {
-            OnValidate(pFormField, csValue, bRC);
-            return bRC ? 1 : -1;
-        }
-        return -1;
+int CPDFSDK_InterForm::BeforeValueChange(const CPDF_FormField* pField,
+                                         CFX_WideString& csValue) {
+  CPDF_FormField* pFormField = (CPDF_FormField*)pField;
+  int nType = pFormField->GetFieldType();
+  if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD) {
+    FX_BOOL bRC = TRUE;
+    OnKeyStrokeCommit(pFormField, csValue, bRC);
+    if (bRC) {
+      OnValidate(pFormField, csValue, bRC);
+      return bRC ? 1 : -1;
     }
-    return 0;
+    return -1;
+  }
+  return 0;
 }
 
-int	CPDFSDK_InterForm::AfterValueChange(const CPDF_FormField* pField)
-{
-	ASSERT(pField != NULL);
+int CPDFSDK_InterForm::AfterValueChange(const CPDF_FormField* pField) {
+  ASSERT(pField != NULL);
 
-	CPDF_FormField* pFormField = (CPDF_FormField*)pField;
+  CPDF_FormField* pFormField = (CPDF_FormField*)pField;
 
-	SynchronizeField(pFormField, FALSE);
+  SynchronizeField(pFormField, FALSE);
 
-	int nType = pFormField->GetFieldType();
+  int nType = pFormField->GetFieldType();
 
-	if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD)
-	{
-		OnCalculate(pFormField);
-		FX_BOOL bFormated = FALSE;
-		CFX_WideString sValue = OnFormat(pFormField, bFormated);
-		if (bFormated)
-			ResetFieldAppearance(pFormField, sValue.c_str(), TRUE);
-		else
-			ResetFieldAppearance(pFormField, NULL, TRUE);
-		UpdateField(pFormField);
-	}
+  if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD) {
+    OnCalculate(pFormField);
+    FX_BOOL bFormated = FALSE;
+    CFX_WideString sValue = OnFormat(pFormField, bFormated);
+    if (bFormated)
+      ResetFieldAppearance(pFormField, sValue.c_str(), TRUE);
+    else
+      ResetFieldAppearance(pFormField, NULL, TRUE);
+    UpdateField(pFormField);
+  }
 
-	return 0;
+  return 0;
 }
 
-int CPDFSDK_InterForm::BeforeSelectionChange(const CPDF_FormField* pField, CFX_WideString& csValue)
-{
-    CPDF_FormField* pFormField = (CPDF_FormField*)pField;
-    if (pFormField->GetFieldType() != FIELDTYPE_LISTBOX)
-        return 0;
+int CPDFSDK_InterForm::BeforeSelectionChange(const CPDF_FormField* pField,
+                                             CFX_WideString& csValue) {
+  CPDF_FormField* pFormField = (CPDF_FormField*)pField;
+  if (pFormField->GetFieldType() != FIELDTYPE_LISTBOX)
+    return 0;
 
-    FX_BOOL bRC = TRUE;
-    OnKeyStrokeCommit(pFormField, csValue, bRC);
-    if (!bRC)
-        return -1;
+  FX_BOOL bRC = TRUE;
+  OnKeyStrokeCommit(pFormField, csValue, bRC);
+  if (!bRC)
+    return -1;
 
-    OnValidate(pFormField, csValue, bRC);
-    if (!bRC)
-        return -1;
+  OnValidate(pFormField, csValue, bRC);
+  if (!bRC)
+    return -1;
 
-    return 1;
+  return 1;
 }
 
-int CPDFSDK_InterForm::AfterSelectionChange(const CPDF_FormField* pField)
-{
-    CPDF_FormField* pFormField = (CPDF_FormField*)pField;
-    if (pFormField->GetFieldType() == FIELDTYPE_LISTBOX)
-    {
-        OnCalculate(pFormField);
-        ResetFieldAppearance(pFormField, NULL, TRUE);
-        UpdateField(pFormField);
-    }
-    return 0;
+int CPDFSDK_InterForm::AfterSelectionChange(const CPDF_FormField* pField) {
+  CPDF_FormField* pFormField = (CPDF_FormField*)pField;
+  if (pFormField->GetFieldType() == FIELDTYPE_LISTBOX) {
+    OnCalculate(pFormField);
+    ResetFieldAppearance(pFormField, NULL, TRUE);
+    UpdateField(pFormField);
+  }
+  return 0;
 }
 
-int CPDFSDK_InterForm::AfterCheckedStatusChange(const CPDF_FormField* pField, const CFX_ByteArray& statusArray)
-{
-    CPDF_FormField* pFormField = (CPDF_FormField*)pField;
-    int nType = pFormField->GetFieldType();
-    if (nType == FIELDTYPE_CHECKBOX || nType == FIELDTYPE_RADIOBUTTON)
-    {
-        OnCalculate(pFormField);
-        UpdateField(pFormField);
-    }
-    return 0;
+int CPDFSDK_InterForm::AfterCheckedStatusChange(
+    const CPDF_FormField* pField,
+    const CFX_ByteArray& statusArray) {
+  CPDF_FormField* pFormField = (CPDF_FormField*)pField;
+  int nType = pFormField->GetFieldType();
+  if (nType == FIELDTYPE_CHECKBOX || nType == FIELDTYPE_RADIOBUTTON) {
+    OnCalculate(pFormField);
+    UpdateField(pFormField);
+  }
+  return 0;
 }
 
-int CPDFSDK_InterForm::BeforeFormReset(const CPDF_InterForm* pForm)
-{
-    return 0;
+int CPDFSDK_InterForm::BeforeFormReset(const CPDF_InterForm* pForm) {
+  return 0;
 }
 
-int CPDFSDK_InterForm::AfterFormReset(const CPDF_InterForm* pForm)
-{
-    OnCalculate(nullptr);
-    return 0;
+int CPDFSDK_InterForm::AfterFormReset(const CPDF_InterForm* pForm) {
+  OnCalculate(nullptr);
+  return 0;
 }
 
-int CPDFSDK_InterForm::BeforeFormImportData(const CPDF_InterForm* pForm)
-{
-    return 0;
+int CPDFSDK_InterForm::BeforeFormImportData(const CPDF_InterForm* pForm) {
+  return 0;
 }
 
-int CPDFSDK_InterForm::AfterFormImportData(const CPDF_InterForm* pForm)
-{
-    OnCalculate(nullptr);
-    return 0;
+int CPDFSDK_InterForm::AfterFormImportData(const CPDF_InterForm* pForm) {
+  OnCalculate(nullptr);
+  return 0;
+}
+
+FX_BOOL CPDFSDK_InterForm::IsNeedHighLight(int nFieldType) {
+  if (nFieldType < 1 || nFieldType > 7)
+    return FALSE;
+  return m_bNeedHightlight[nFieldType - 1];
+}
+
+void CPDFSDK_InterForm::RemoveAllHighLight() {
+  memset((void*)m_bNeedHightlight, 0, 7 * sizeof(FX_BOOL));
+}
+void CPDFSDK_InterForm::SetHighlightColor(FX_COLORREF clr, int nFieldType) {
+  if (nFieldType < 0 || nFieldType > 7)
+    return;
+  switch (nFieldType) {
+    case 0: {
+      for (int i = 0; i < 7; i++) {
+        m_aHighlightColor[i] = clr;
+        m_bNeedHightlight[i] = TRUE;
+      }
+      break;
+    }
+    default: {
+      m_aHighlightColor[nFieldType - 1] = clr;
+      m_bNeedHightlight[nFieldType - 1] = TRUE;
+      break;
+    }
+  }
 }
 
-FX_BOOL CPDFSDK_InterForm::IsNeedHighLight(int nFieldType)
-{
-	if(nFieldType <1 || nFieldType > 7)
-		return FALSE;
-	return m_bNeedHightlight[nFieldType-1];
-}
-
-void CPDFSDK_InterForm::RemoveAllHighLight()
-{
-	memset((void*)m_bNeedHightlight, 0, 7*sizeof(FX_BOOL));
-}
-void   CPDFSDK_InterForm::SetHighlightColor(FX_COLORREF clr, int nFieldType)
-{
-	if(nFieldType <0 || nFieldType > 7) return;
-	switch(nFieldType)
-	{
-	case 0:
-		{
-			for(int i=0; i<7; i++)
-			{
-				m_aHighlightColor[i] = clr;
-				m_bNeedHightlight[i] = TRUE;
-			}
-			break;
-		}
-	default:
-		{
-			m_aHighlightColor[nFieldType-1] = clr;
-			m_bNeedHightlight[nFieldType-1] = TRUE;
-			break;
-		}
-	}
-
-}
-
-FX_COLORREF CPDFSDK_InterForm::GetHighlightColor(int nFieldType)
-{
-	if (nFieldType < 0 || nFieldType > 7)
-        return FXSYS_RGB(255,255,255);
-	if (nFieldType == 0)
-		return m_aHighlightColor[0];
-    return m_aHighlightColor[nFieldType-1];
+FX_COLORREF CPDFSDK_InterForm::GetHighlightColor(int nFieldType) {
+  if (nFieldType < 0 || nFieldType > 7)
+    return FXSYS_RGB(255, 255, 255);
+  if (nFieldType == 0)
+    return m_aHighlightColor[0];
+  return m_aHighlightColor[nFieldType - 1];
 }
 
 /* ------------------------- CBA_AnnotIterator ------------------------- */
 
-CBA_AnnotIterator::CBA_AnnotIterator(CPDFSDK_PageView* pPageView, const CFX_ByteString& sType, const CFX_ByteString& sSubType)
-    :m_pPageView(pPageView),
-    m_sType(sType),
-    m_sSubType(sSubType),
-    m_nTabs(BAI_STRUCTURE)
-{
-    ASSERT(m_pPageView != NULL);
+CBA_AnnotIterator::CBA_AnnotIterator(CPDFSDK_PageView* pPageView,
+                                     const CFX_ByteString& sType,
+                                     const CFX_ByteString& sSubType)
+    : m_pPageView(pPageView),
+      m_sType(sType),
+      m_sSubType(sSubType),
+      m_nTabs(BAI_STRUCTURE) {
+  ASSERT(m_pPageView != NULL);
 
-    CPDF_Page* pPDFPage = m_pPageView->GetPDFPage();
-    ASSERT(pPDFPage != NULL);
-    ASSERT(pPDFPage->m_pFormDict != NULL);
+  CPDF_Page* pPDFPage = m_pPageView->GetPDFPage();
+  ASSERT(pPDFPage != NULL);
+  ASSERT(pPDFPage->m_pFormDict != NULL);
 
-    CFX_ByteString sTabs = pPDFPage->m_pFormDict->GetString("Tabs");
+  CFX_ByteString sTabs = pPDFPage->m_pFormDict->GetString("Tabs");
 
-    if (sTabs == "R")
-    {
-        m_nTabs = BAI_ROW;
-    }
-    else if (sTabs == "C")
-    {
-        m_nTabs = BAI_COLUMN;
-    }
-    else
-    {
-        m_nTabs = BAI_STRUCTURE;
-    }
+  if (sTabs == "R") {
+    m_nTabs = BAI_ROW;
+  } else if (sTabs == "C") {
+    m_nTabs = BAI_COLUMN;
+  } else {
+    m_nTabs = BAI_STRUCTURE;
+  }
 
-    GenerateResults();
+  GenerateResults();
 }
 
-CBA_AnnotIterator::~CBA_AnnotIterator()
-{
-    m_Annots.RemoveAll();
+CBA_AnnotIterator::~CBA_AnnotIterator() {
+  m_Annots.RemoveAll();
 }
 
-CPDFSDK_Annot* CBA_AnnotIterator::GetFirstAnnot()
-{
-    if (m_Annots.GetSize() > 0)
-        return m_Annots[0];
+CPDFSDK_Annot* CBA_AnnotIterator::GetFirstAnnot() {
+  if (m_Annots.GetSize() > 0)
+    return m_Annots[0];
 
-    return NULL;
+  return NULL;
 }
 
-CPDFSDK_Annot* CBA_AnnotIterator::GetLastAnnot()
-{
-    if (m_Annots.GetSize() > 0)
-        return m_Annots[m_Annots.GetSize() - 1];
+CPDFSDK_Annot* CBA_AnnotIterator::GetLastAnnot() {
+  if (m_Annots.GetSize() > 0)
+    return m_Annots[m_Annots.GetSize() - 1];
 
-    return NULL;
+  return NULL;
 }
 
-CPDFSDK_Annot* CBA_AnnotIterator::GetNextAnnot(CPDFSDK_Annot* pAnnot)
-{
-    for (int i = 0, sz = m_Annots.GetSize(); i < sz; ++i) {
-        if (m_Annots[i] == pAnnot)
-            return (i + 1 < sz) ? m_Annots[i+1] : m_Annots[0];
-    }
-    return NULL;
+CPDFSDK_Annot* CBA_AnnotIterator::GetNextAnnot(CPDFSDK_Annot* pAnnot) {
+  for (int i = 0, sz = m_Annots.GetSize(); i < sz; ++i) {
+    if (m_Annots[i] == pAnnot)
+      return (i + 1 < sz) ? m_Annots[i + 1] : m_Annots[0];
+  }
+  return NULL;
 }
 
-CPDFSDK_Annot* CBA_AnnotIterator::GetPrevAnnot(CPDFSDK_Annot* pAnnot)
-{
-    for (int i = 0, sz = m_Annots.GetSize(); i < sz; ++i) {
-        if (m_Annots[i] == pAnnot)
-            return (i - 1 >= 0) ? m_Annots[i-1] : m_Annots[sz-1];
-    }
-    return NULL;
+CPDFSDK_Annot* CBA_AnnotIterator::GetPrevAnnot(CPDFSDK_Annot* pAnnot) {
+  for (int i = 0, sz = m_Annots.GetSize(); i < sz; ++i) {
+    if (m_Annots[i] == pAnnot)
+      return (i - 1 >= 0) ? m_Annots[i - 1] : m_Annots[sz - 1];
+  }
+  return NULL;
 }
 
-int CBA_AnnotIterator::CompareByLeft(CPDFSDK_Annot* p1, CPDFSDK_Annot* p2)
-{
-    ASSERT(p1);
-    ASSERT(p2);
+int CBA_AnnotIterator::CompareByLeft(CPDFSDK_Annot* p1, CPDFSDK_Annot* p2) {
+  ASSERT(p1);
+  ASSERT(p2);
 
-    CPDF_Rect rcAnnot1 = GetAnnotRect(p1);
-    CPDF_Rect rcAnnot2 = GetAnnotRect(p2);
+  CPDF_Rect rcAnnot1 = GetAnnotRect(p1);
+  CPDF_Rect rcAnnot2 = GetAnnotRect(p2);
 
-    if (rcAnnot1.left < rcAnnot2.left)
-        return -1;
-    if (rcAnnot1.left > rcAnnot2.left)
-        return 1;
-    return 0;
+  if (rcAnnot1.left < rcAnnot2.left)
+    return -1;
+  if (rcAnnot1.left > rcAnnot2.left)
+    return 1;
+  return 0;
 }
 
+int CBA_AnnotIterator::CompareByTop(CPDFSDK_Annot* p1, CPDFSDK_Annot* p2) {
+  ASSERT(p1 != NULL);
+  ASSERT(p2 != NULL);
 
-int CBA_AnnotIterator::CompareByTop(CPDFSDK_Annot* p1, CPDFSDK_Annot* p2)
-{
-    ASSERT(p1 != NULL);
-    ASSERT(p2 != NULL);
-
-    CPDF_Rect rcAnnot1 = GetAnnotRect(p1);
-    CPDF_Rect rcAnnot2 = GetAnnotRect(p2);
+  CPDF_Rect rcAnnot1 = GetAnnotRect(p1);
+  CPDF_Rect rcAnnot2 = GetAnnotRect(p2);
 
-    if (rcAnnot1.top < rcAnnot2.top)
-        return -1;
-    if (rcAnnot1.top > rcAnnot2.top)
-        return 1;
-    return 0;
+  if (rcAnnot1.top < rcAnnot2.top)
+    return -1;
+  if (rcAnnot1.top > rcAnnot2.top)
+    return 1;
+  return 0;
 }
 
-void CBA_AnnotIterator::GenerateResults()
-{
-    ASSERT(m_pPageView != NULL);
+void CBA_AnnotIterator::GenerateResults() {
+  ASSERT(m_pPageView != NULL);
 
-    switch (m_nTabs)
-    {
-    case BAI_STRUCTURE:
-        {
-            for (int i=0,sz=m_pPageView->CountAnnots(); i<sz; i++)
-            {
-                CPDFSDK_Annot* pAnnot = m_pPageView->GetAnnot(i);
-                ASSERT(pAnnot != NULL);
-
-                if (pAnnot->GetType() == m_sType
-                    && pAnnot->GetSubType() == m_sSubType)
-                    m_Annots.Add(pAnnot);
-            }
+  switch (m_nTabs) {
+    case BAI_STRUCTURE: {
+      for (int i = 0, sz = m_pPageView->CountAnnots(); i < sz; i++) {
+        CPDFSDK_Annot* pAnnot = m_pPageView->GetAnnot(i);
+        ASSERT(pAnnot != NULL);
+
+        if (pAnnot->GetType() == m_sType && pAnnot->GetSubType() == m_sSubType)
+          m_Annots.Add(pAnnot);
+      }
+    } break;
+    case BAI_ROW: {
+      CPDFSDK_SortAnnots sa;
+
+      {
+        for (int i = 0, sz = m_pPageView->CountAnnots(); i < sz; i++) {
+          CPDFSDK_Annot* pAnnot = m_pPageView->GetAnnot(i);
+          ASSERT(pAnnot != NULL);
+
+          if (pAnnot->GetType() == m_sType &&
+              pAnnot->GetSubType() == m_sSubType)
+            sa.Add(pAnnot);
         }
-        break;
-    case BAI_ROW:
-        {
-            CPDFSDK_SortAnnots sa;
+      }
 
-            {
+      if (sa.GetSize() > 0) {
+        sa.Sort(CBA_AnnotIterator::CompareByLeft);
+      }
 
-                for (int i=0,sz=m_pPageView->CountAnnots(); i<sz; i++)
-                {
-                    CPDFSDK_Annot* pAnnot = m_pPageView->GetAnnot(i);
-                    ASSERT(pAnnot != NULL);
+      while (sa.GetSize() > 0) {
+        int nLeftTopIndex = -1;
 
-                    if (pAnnot->GetType() == m_sType
-                        && pAnnot->GetSubType() == m_sSubType)
-                        sa.Add(pAnnot);
-                }
-            }
+        {
+          FX_FLOAT fTop = 0.0f;
 
-            if (sa.GetSize() > 0)
-            {
-                sa.Sort(CBA_AnnotIterator::CompareByLeft);
-            }
+          for (int i = sa.GetSize() - 1; i >= 0; i--) {
+            CPDFSDK_Annot* pAnnot = sa.GetAt(i);
+            ASSERT(pAnnot != NULL);
 
-            while (sa.GetSize() > 0)
-            {
-                int nLeftTopIndex = -1;
+            CPDF_Rect rcAnnot = GetAnnotRect(pAnnot);
 
-                {
-                    FX_FLOAT fTop = 0.0f;
+            if (rcAnnot.top > fTop) {
+              nLeftTopIndex = i;
+              fTop = rcAnnot.top;
+            }
+          }
+        }
 
-                    for (int i=sa.GetSize()-1; i>=0; i--)
-                    {
-                        CPDFSDK_Annot* pAnnot = sa.GetAt(i);
-                        ASSERT(pAnnot != NULL);
+        if (nLeftTopIndex >= 0) {
+          CPDFSDK_Annot* pLeftTopAnnot = sa.GetAt(nLeftTopIndex);
+          ASSERT(pLeftTopAnnot != NULL);
 
-                        CPDF_Rect rcAnnot = GetAnnotRect(pAnnot);
+          CPDF_Rect rcLeftTop = GetAnnotRect(pLeftTopAnnot);
 
-                        if (rcAnnot.top > fTop)
-                        {
-                            nLeftTopIndex = i;
-                            fTop = rcAnnot.top;
-                        }
-                    }
-                }
+          m_Annots.Add(pLeftTopAnnot);
+          sa.RemoveAt(nLeftTopIndex);
 
-                if (nLeftTopIndex >= 0)
-                {
-                    CPDFSDK_Annot* pLeftTopAnnot = sa.GetAt(nLeftTopIndex);
-                    ASSERT(pLeftTopAnnot != NULL);
+          CFX_ArrayTemplate<int> aSelect;
 
-                    CPDF_Rect rcLeftTop = GetAnnotRect(pLeftTopAnnot);
+          {
+            for (int i = 0, sz = sa.GetSize(); i < sz; i++) {
+              CPDFSDK_Annot* pAnnot = sa.GetAt(i);
+              ASSERT(pAnnot != NULL);
 
-                    m_Annots.Add(pLeftTopAnnot);
-                    sa.RemoveAt(nLeftTopIndex);
+              CPDF_Rect rcAnnot = GetAnnotRect(pAnnot);
 
-                    CFX_ArrayTemplate<int> aSelect;
+              FX_FLOAT fCenterY = (rcAnnot.top + rcAnnot.bottom) / 2.0f;
 
-                    {
-                        for (int i=0,sz=sa.GetSize(); i<sz; i++)
-                        {
-                            CPDFSDK_Annot* pAnnot = sa.GetAt(i);
-                            ASSERT(pAnnot != NULL);
+              if (fCenterY > rcLeftTop.bottom && fCenterY < rcLeftTop.top)
+                aSelect.Add(i);
+            }
+          }
 
-                            CPDF_Rect rcAnnot = GetAnnotRect(pAnnot);
+          {
+            for (int i = 0, sz = aSelect.GetSize(); i < sz; i++) {
+              m_Annots.Add(sa[aSelect[i]]);
+            }
+          }
 
-                            FX_FLOAT fCenterY = (rcAnnot.top + rcAnnot.bottom) / 2.0f;
+          {
+            for (int i = aSelect.GetSize() - 1; i >= 0; i--) {
+              sa.RemoveAt(aSelect[i]);
+            }
+          }
 
-                            if (fCenterY > rcLeftTop.bottom && fCenterY < rcLeftTop.top)
-                                aSelect.Add(i);
-                        }
-                    }
+          aSelect.RemoveAll();
+        }
+      }
+      sa.RemoveAll();
+    } break;
+    case BAI_COLUMN: {
+      CPDFSDK_SortAnnots sa;
+
+      {
+        for (int i = 0, sz = m_pPageView->CountAnnots(); i < sz; i++) {
+          CPDFSDK_Annot* pAnnot = m_pPageView->GetAnnot(i);
+          ASSERT(pAnnot != NULL);
+
+          if (pAnnot->GetType() == m_sType &&
+              pAnnot->GetSubType() == m_sSubType)
+            sa.Add(pAnnot);
+        }
+      }
 
-                    {
-                        for (int i=0,sz=aSelect.GetSize(); i<sz; i++)
-                        {
-                            m_Annots.Add(sa[aSelect[i]]);
-                        }
-                    }
+      if (sa.GetSize() > 0) {
+        sa.Sort(CBA_AnnotIterator::CompareByTop, FALSE);
+      }
 
-                    {
-                        for (int i=aSelect.GetSize()-1; i>=0; i--)
-                        {
-                            sa.RemoveAt(aSelect[i]);
-                        }
-                    }
+      while (sa.GetSize() > 0) {
+        int nLeftTopIndex = -1;
 
-                    aSelect.RemoveAll();
-                }
-            }
-            sa.RemoveAll();
-        }
-        break;
-    case BAI_COLUMN:
         {
-            CPDFSDK_SortAnnots sa;
+          FX_FLOAT fLeft = -1.0f;
 
-            {
-                for (int i=0,sz=m_pPageView->CountAnnots(); i<sz; i++)
-                {
-                    CPDFSDK_Annot* pAnnot = m_pPageView->GetAnnot(i);
-                    ASSERT(pAnnot != NULL);
+          for (int i = sa.GetSize() - 1; i >= 0; i--) {
+            CPDFSDK_Annot* pAnnot = sa.GetAt(i);
+            ASSERT(pAnnot != NULL);
 
-                    if (pAnnot->GetType() == m_sType
-                        && pAnnot->GetSubType() == m_sSubType)
-                        sa.Add(pAnnot);
-                }
-            }
+            CPDF_Rect rcAnnot = GetAnnotRect(pAnnot);
 
-            if (sa.GetSize() > 0)
-            {
-                sa.Sort(CBA_AnnotIterator::CompareByTop, FALSE);
+            if (fLeft < 0) {
+              nLeftTopIndex = 0;
+              fLeft = rcAnnot.left;
+            } else if (rcAnnot.left < fLeft) {
+              nLeftTopIndex = i;
+              fLeft = rcAnnot.left;
             }
+          }
+        }
 
-            while (sa.GetSize() > 0)
-            {
-                int nLeftTopIndex = -1;
-
-                {
-                    FX_FLOAT fLeft = -1.0f;
-
-                    for (int i=sa.GetSize()-1; i>=0; i--)
-                    {
-                        CPDFSDK_Annot* pAnnot = sa.GetAt(i);
-                        ASSERT(pAnnot != NULL);
-
-                        CPDF_Rect rcAnnot = GetAnnotRect(pAnnot);
-
-                        if (fLeft < 0)
-                        {
-                            nLeftTopIndex = 0;
-                            fLeft = rcAnnot.left;
-                        }
-                        else if (rcAnnot.left < fLeft)
-                        {
-                            nLeftTopIndex = i;
-                            fLeft = rcAnnot.left;
-                        }
-                    }
-                }
-
-                if (nLeftTopIndex >= 0)
-                {
-                    CPDFSDK_Annot* pLeftTopAnnot = sa.GetAt(nLeftTopIndex);
-                    ASSERT(pLeftTopAnnot != NULL);
-
-                    CPDF_Rect rcLeftTop = GetAnnotRect(pLeftTopAnnot);
+        if (nLeftTopIndex >= 0) {
+          CPDFSDK_Annot* pLeftTopAnnot = sa.GetAt(nLeftTopIndex);
+          ASSERT(pLeftTopAnnot != NULL);
 
-                    m_Annots.Add(pLeftTopAnnot);
-                    sa.RemoveAt(nLeftTopIndex);
+          CPDF_Rect rcLeftTop = GetAnnotRect(pLeftTopAnnot);
 
-                    CFX_ArrayTemplate<int> aSelect;
+          m_Annots.Add(pLeftTopAnnot);
+          sa.RemoveAt(nLeftTopIndex);
 
-                    {
-                        for (int i=0,sz=sa.GetSize(); i<sz; i++)
-                        {
-                            CPDFSDK_Annot* pAnnot = sa.GetAt(i);
-                            ASSERT(pAnnot != NULL);
+          CFX_ArrayTemplate<int> aSelect;
 
-                            CPDF_Rect rcAnnot = GetAnnotRect(pAnnot);
+          {
+            for (int i = 0, sz = sa.GetSize(); i < sz; i++) {
+              CPDFSDK_Annot* pAnnot = sa.GetAt(i);
+              ASSERT(pAnnot != NULL);
 
-                            FX_FLOAT fCenterX = (rcAnnot.left + rcAnnot.right) / 2.0f;
+              CPDF_Rect rcAnnot = GetAnnotRect(pAnnot);
 
-                            if (fCenterX > rcLeftTop.left && fCenterX < rcLeftTop.right)
-                                aSelect.Add(i);
-                        }
-                    }
+              FX_FLOAT fCenterX = (rcAnnot.left + rcAnnot.right) / 2.0f;
 
-                    {
-                        for (int i=0,sz=aSelect.GetSize(); i<sz; i++)
-                        {
-                            m_Annots.Add(sa[aSelect[i]]);
-                        }
-                    }
+              if (fCenterX > rcLeftTop.left && fCenterX < rcLeftTop.right)
+                aSelect.Add(i);
+            }
+          }
 
-                    {
-                        for (int i=aSelect.GetSize()-1; i>=0; i--)
-                        {
-                            sa.RemoveAt(aSelect[i]);
-                        }
-                    }
+          {
+            for (int i = 0, sz = aSelect.GetSize(); i < sz; i++) {
+              m_Annots.Add(sa[aSelect[i]]);
+            }
+          }
 
-                    aSelect.RemoveAll();
-                }
+          {
+            for (int i = aSelect.GetSize() - 1; i >= 0; i--) {
+              sa.RemoveAt(aSelect[i]);
             }
-            sa.RemoveAll();
+          }
+
+          aSelect.RemoveAll();
         }
-        break;
-    }
+      }
+      sa.RemoveAll();
+    } break;
+  }
 }
 
-CPDF_Rect CBA_AnnotIterator::GetAnnotRect(CPDFSDK_Annot* pAnnot)
-{
-    ASSERT(pAnnot != NULL);
+CPDF_Rect CBA_AnnotIterator::GetAnnotRect(CPDFSDK_Annot* pAnnot) {
+  ASSERT(pAnnot != NULL);
 
-    CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot();
-    ASSERT(pPDFAnnot != NULL);
+  CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot();
+  ASSERT(pPDFAnnot != NULL);
 
-    CPDF_Rect rcAnnot;
-    pPDFAnnot->GetRect(rcAnnot);
+  CPDF_Rect rcAnnot;
+  pPDFAnnot->GetRect(rcAnnot);
 
-    return rcAnnot;
+  return rcAnnot;
 }
-
diff --git a/fpdfsdk/src/fsdk_mgr.cpp b/fpdfsdk/src/fsdk_mgr.cpp
index 6190eff4ea..d471dc1e83 100644
--- a/fpdfsdk/src/fsdk_mgr.cpp
+++ b/fpdfsdk/src/fsdk_mgr.cpp
@@ -20,1267 +20,1202 @@
 #include <ctime>
 #endif
 
-//extern CPDFDoc_Environment* g_pFormFillApp;
-class CFX_SystemHandler:public IFX_SystemHandler
-{
-public:
-    CFX_SystemHandler(CPDFDoc_Environment* pEnv):m_pEnv(pEnv),m_nCharSet(-1) {}
-public:
-    virtual void                InvalidateRect(FX_HWND hWnd, FX_RECT rect) ;
-    virtual void                OutputSelectedRect(void* pFormFiller, CPDF_Rect& rect);
-
-    virtual FX_BOOL             IsSelectionImplemented();
-
-    virtual CFX_WideString      GetClipboardText(FX_HWND hWnd){return L"";}
-    virtual FX_BOOL             SetClipboardText(FX_HWND hWnd, CFX_WideString string) {return FALSE;}
-
-    virtual void                ClientToScreen(FX_HWND hWnd, int32_t& x, int32_t& y) {}
-    virtual void                ScreenToClient(FX_HWND hWnd, int32_t& x, int32_t& y) {}
-
-    /*cursor style
-    FXCT_ARROW
-    FXCT_NESW
-    FXCT_NWSE
-    FXCT_VBEAM
-    FXCT_HBEAM
-    FXCT_HAND
-    */
-    virtual void                SetCursor(int32_t nCursorType);
-
-    virtual FX_HMENU            CreatePopupMenu() {return NULL;}
-    virtual FX_BOOL             AppendMenuItem(FX_HMENU hMenu, int32_t nIDNewItem, CFX_WideString string) {return FALSE;}
-    virtual FX_BOOL             EnableMenuItem(FX_HMENU hMenu, int32_t nIDItem, FX_BOOL bEnabled) {return FALSE;}
-    virtual int32_t         TrackPopupMenu(FX_HMENU hMenu, int32_t x, int32_t y, FX_HWND hParent) {return -1;}
-    virtual void                DestroyMenu(FX_HMENU hMenu) {}
-
-    virtual CFX_ByteString      GetNativeTrueTypeFont(int32_t nCharset);
-    virtual FX_BOOL             FindNativeTrueTypeFont(int32_t nCharset, CFX_ByteString sFontFaceName);
-    virtual CPDF_Font*          AddNativeTrueTypeFontToPDF(CPDF_Document* pDoc, CFX_ByteString sFontFaceName, uint8_t nCharset);
-
-    virtual int32_t         SetTimer(int32_t uElapse, TimerCallback lpTimerFunc) ;
-    virtual void                KillTimer(int32_t nID) ;
-
-
-    virtual FX_BOOL             IsSHIFTKeyDown(FX_DWORD nFlag) {return m_pEnv->FFI_IsSHIFTKeyDown(nFlag);}
-    virtual FX_BOOL             IsCTRLKeyDown(FX_DWORD nFlag) {return m_pEnv->FFI_IsCTRLKeyDown(nFlag);}
-    virtual FX_BOOL             IsALTKeyDown(FX_DWORD nFlag) {return m_pEnv->FFI_IsALTKeyDown(nFlag);}
-    virtual FX_BOOL             IsINSERTKeyDown(FX_DWORD nFlag) {return m_pEnv->FFI_IsINSERTKeyDown(nFlag);}
-
-    virtual FX_SYSTEMTIME       GetLocalTime();
-
-    virtual int32_t         GetCharSet() {return m_nCharSet;}
-    virtual void                SetCharSet(int32_t nCharSet) {m_nCharSet = nCharSet;}
-private:
-    CPDFDoc_Environment* m_pEnv;
-    int     m_nCharSet;
-};
-
-void CFX_SystemHandler::SetCursor(int32_t nCursorType)
-{
-
-    m_pEnv->FFI_SetCursor(nCursorType);
-}
-
-void CFX_SystemHandler::InvalidateRect(FX_HWND hWnd, FX_RECT rect)
-{
-    //g_pFormFillApp->FFI_Invalidate();
-    CPDFSDK_Annot* pSDKAnnot = (CPDFSDK_Annot*)hWnd;
-    CPDFXFA_Page* pPage = NULL;
-    CPDFSDK_PageView* pPageView = NULL;
-    pPageView = pSDKAnnot->GetPageView();
-    pPage = pSDKAnnot->GetPDFXFAPage();
-    if(!pPage || !pPageView)
-        return;
-    CPDF_Matrix page2device;
-    pPageView->GetCurrentMatrix(page2device);
-    CPDF_Matrix device2page;
-    device2page.SetReverse(page2device);
-    FX_FLOAT left, top, right,bottom;
-    device2page.Transform((FX_FLOAT)rect.left, (FX_FLOAT)rect.top, left, top);
-    device2page.Transform((FX_FLOAT)rect.right, (FX_FLOAT)rect.bottom, right, bottom);
-//  m_pEnv->FFI_DeviceToPage(pPage, rect.left, rect.top, (double*)&left, (double*)&top);
-//  m_pEnv->FFI_DeviceToPage(pPage, rect.right, rect.bottom, (double*)&right, (double*)&bottom);
-    CPDF_Rect rcPDF(left, bottom, right, top);
-    rcPDF.Normalize();
-
-    m_pEnv->FFI_Invalidate(pPage, rcPDF.left, rcPDF.top, rcPDF.right, rcPDF.bottom);
-}
-void CFX_SystemHandler::OutputSelectedRect(void* pFormFiller, CPDF_Rect& rect)
-{
-    CFFL_FormFiller* pFFL = (CFFL_FormFiller*)pFormFiller;
-    if(pFFL)
-    {
-        CPDF_Point leftbottom = CPDF_Point(rect.left, rect.bottom);
-        CPDF_Point righttop = CPDF_Point(rect.right, rect.top);
-        CPDF_Point ptA = pFFL->PWLtoFFL(leftbottom);
-        CPDF_Point ptB = pFFL->PWLtoFFL(righttop);
-        CPDFSDK_Annot* pAnnot  = pFFL->GetSDKAnnot();
-        ASSERT(pAnnot);
-        CPDFXFA_Page* pPage = pAnnot->GetPDFXFAPage();
-        ASSERT(pPage);
-        m_pEnv->FFI_OutputSelectedRect(pPage, ptA.x, ptB.y, ptB.x, ptA.y);
-    }
-}
+// extern CPDFDoc_Environment* g_pFormFillApp;
+class CFX_SystemHandler : public IFX_SystemHandler {
+ public:
+  CFX_SystemHandler(CPDFDoc_Environment* pEnv) : m_pEnv(pEnv), m_nCharSet(-1) {}
 
-FX_BOOL CFX_SystemHandler::IsSelectionImplemented()
-{
-    if(m_pEnv)
-    {
-        FPDF_FORMFILLINFO* pInfo = m_pEnv->GetFormFillInfo();
-        if(pInfo && pInfo->FFI_OutputSelectedRect)
-            return TRUE;
-    }
-    return FALSE;
-}
+ public:
+  virtual void InvalidateRect(FX_HWND hWnd, FX_RECT rect);
+  virtual void OutputSelectedRect(void* pFormFiller, CPDF_Rect& rect);
 
-CFX_ByteString CFX_SystemHandler::GetNativeTrueTypeFont(int32_t nCharset)
-{
-    return "";
-}
-
-FX_BOOL CFX_SystemHandler::FindNativeTrueTypeFont(int32_t nCharset, CFX_ByteString sFontFaceName)
-{
-    CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr();
-    if(pFontMgr)
-    {
-        CFX_FontMapper* pFontMapper = pFontMgr->m_pBuiltinMapper;
-        if(pFontMapper)
-        {
-            int nSize = pFontMapper->m_InstalledTTFonts.GetSize();
-            if(nSize ==0)
-            {
-                pFontMapper->LoadInstalledFonts();
-                nSize = pFontMapper->m_InstalledTTFonts.GetSize();
-            }
-
-            for(int i=0; i<nSize; i++)
-            {
-                if(pFontMapper->m_InstalledTTFonts[i].Compare(sFontFaceName))
-                    return TRUE;
-            }
-        }
-
-    }
+  virtual FX_BOOL IsSelectionImplemented();
 
+  virtual CFX_WideString GetClipboardText(FX_HWND hWnd) { return L""; }
+  virtual FX_BOOL SetClipboardText(FX_HWND hWnd, CFX_WideString string) {
     return FALSE;
-}
+  }
+
+  virtual void ClientToScreen(FX_HWND hWnd, int32_t& x, int32_t& y) {}
+  virtual void ScreenToClient(FX_HWND hWnd, int32_t& x, int32_t& y) {}
+
+  /*cursor style
+  FXCT_ARROW
+  FXCT_NESW
+  FXCT_NWSE
+  FXCT_VBEAM
+  FXCT_HBEAM
+  FXCT_HAND
+  */
+  virtual void SetCursor(int32_t nCursorType);
+
+  virtual FX_HMENU CreatePopupMenu() { return NULL; }
+  virtual FX_BOOL AppendMenuItem(FX_HMENU hMenu,
+                                 int32_t nIDNewItem,
+                                 CFX_WideString string) {
+    return FALSE;
+  }
+  virtual FX_BOOL EnableMenuItem(FX_HMENU hMenu,
+                                 int32_t nIDItem,
+                                 FX_BOOL bEnabled) {
+    return FALSE;
+  }
+  virtual int32_t TrackPopupMenu(FX_HMENU hMenu,
+                                 int32_t x,
+                                 int32_t y,
+                                 FX_HWND hParent) {
+    return -1;
+  }
+  virtual void DestroyMenu(FX_HMENU hMenu) {}
+
+  virtual CFX_ByteString GetNativeTrueTypeFont(int32_t nCharset);
+  virtual FX_BOOL FindNativeTrueTypeFont(int32_t nCharset,
+                                         CFX_ByteString sFontFaceName);
+  virtual CPDF_Font* AddNativeTrueTypeFontToPDF(CPDF_Document* pDoc,
+                                                CFX_ByteString sFontFaceName,
+                                                uint8_t nCharset);
+
+  virtual int32_t SetTimer(int32_t uElapse, TimerCallback lpTimerFunc);
+  virtual void KillTimer(int32_t nID);
+
+  virtual FX_BOOL IsSHIFTKeyDown(FX_DWORD nFlag) {
+    return m_pEnv->FFI_IsSHIFTKeyDown(nFlag);
+  }
+  virtual FX_BOOL IsCTRLKeyDown(FX_DWORD nFlag) {
+    return m_pEnv->FFI_IsCTRLKeyDown(nFlag);
+  }
+  virtual FX_BOOL IsALTKeyDown(FX_DWORD nFlag) {
+    return m_pEnv->FFI_IsALTKeyDown(nFlag);
+  }
+  virtual FX_BOOL IsINSERTKeyDown(FX_DWORD nFlag) {
+    return m_pEnv->FFI_IsINSERTKeyDown(nFlag);
+  }
+
+  virtual FX_SYSTEMTIME GetLocalTime();
+
+  virtual int32_t GetCharSet() { return m_nCharSet; }
+  virtual void SetCharSet(int32_t nCharSet) { m_nCharSet = nCharSet; }
+
+ private:
+  CPDFDoc_Environment* m_pEnv;
+  int m_nCharSet;
+};
 
-static int CharSet2CP(int charset)
-{
-    if (charset == 128)
-        return 932;
-    if (charset == 134)
-        return 936;
-    if (charset == 129)
-        return 949;
-    if (charset == 136)
-        return 950;
-    return 0;
-}
-CPDF_Font* CFX_SystemHandler::AddNativeTrueTypeFontToPDF(CPDF_Document* pDoc, CFX_ByteString sFontFaceName,
-                                                         uint8_t nCharset)
-{
-    if(pDoc)
-    {
-        CFX_Font* pFXFont = new CFX_Font();
-        pFXFont->LoadSubst(sFontFaceName,TRUE,0,0,0,CharSet2CP(nCharset),FALSE);
-        CPDF_Font* pFont = pDoc->AddFont(pFXFont,nCharset,FALSE);
-        delete pFXFont;
-        return pFont;
+void CFX_SystemHandler::SetCursor(int32_t nCursorType) {
+  m_pEnv->FFI_SetCursor(nCursorType);
+}
+
+void CFX_SystemHandler::InvalidateRect(FX_HWND hWnd, FX_RECT rect) {
+  // g_pFormFillApp->FFI_Invalidate();
+  CPDFSDK_Annot* pSDKAnnot = (CPDFSDK_Annot*)hWnd;
+  CPDFXFA_Page* pPage = NULL;
+  CPDFSDK_PageView* pPageView = NULL;
+  pPageView = pSDKAnnot->GetPageView();
+  pPage = pSDKAnnot->GetPDFXFAPage();
+  if (!pPage || !pPageView)
+    return;
+  CPDF_Matrix page2device;
+  pPageView->GetCurrentMatrix(page2device);
+  CPDF_Matrix device2page;
+  device2page.SetReverse(page2device);
+  FX_FLOAT left, top, right, bottom;
+  device2page.Transform((FX_FLOAT)rect.left, (FX_FLOAT)rect.top, left, top);
+  device2page.Transform((FX_FLOAT)rect.right, (FX_FLOAT)rect.bottom, right,
+                        bottom);
+  //  m_pEnv->FFI_DeviceToPage(pPage, rect.left, rect.top, (double*)&left,
+  //  (double*)&top);
+  //  m_pEnv->FFI_DeviceToPage(pPage, rect.right, rect.bottom, (double*)&right,
+  //  (double*)&bottom);
+  CPDF_Rect rcPDF(left, bottom, right, top);
+  rcPDF.Normalize();
+
+  m_pEnv->FFI_Invalidate(pPage, rcPDF.left, rcPDF.top, rcPDF.right,
+                         rcPDF.bottom);
+}
+void CFX_SystemHandler::OutputSelectedRect(void* pFormFiller, CPDF_Rect& rect) {
+  CFFL_FormFiller* pFFL = (CFFL_FormFiller*)pFormFiller;
+  if (pFFL) {
+    CPDF_Point leftbottom = CPDF_Point(rect.left, rect.bottom);
+    CPDF_Point righttop = CPDF_Point(rect.right, rect.top);
+    CPDF_Point ptA = pFFL->PWLtoFFL(leftbottom);
+    CPDF_Point ptB = pFFL->PWLtoFFL(righttop);
+    CPDFSDK_Annot* pAnnot = pFFL->GetSDKAnnot();
+    ASSERT(pAnnot);
+    CPDFXFA_Page* pPage = pAnnot->GetPDFXFAPage();
+    ASSERT(pPage);
+    m_pEnv->FFI_OutputSelectedRect(pPage, ptA.x, ptB.y, ptB.x, ptA.y);
+  }
+}
+
+FX_BOOL CFX_SystemHandler::IsSelectionImplemented() {
+  if (m_pEnv) {
+    FPDF_FORMFILLINFO* pInfo = m_pEnv->GetFormFillInfo();
+    if (pInfo && pInfo->FFI_OutputSelectedRect)
+      return TRUE;
+  }
+  return FALSE;
+}
+
+CFX_ByteString CFX_SystemHandler::GetNativeTrueTypeFont(int32_t nCharset) {
+  return "";
+}
+
+FX_BOOL CFX_SystemHandler::FindNativeTrueTypeFont(
+    int32_t nCharset,
+    CFX_ByteString sFontFaceName) {
+  CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr();
+  if (pFontMgr) {
+    CFX_FontMapper* pFontMapper = pFontMgr->m_pBuiltinMapper;
+    if (pFontMapper) {
+      int nSize = pFontMapper->m_InstalledTTFonts.GetSize();
+      if (nSize == 0) {
+        pFontMapper->LoadInstalledFonts();
+        nSize = pFontMapper->m_InstalledTTFonts.GetSize();
+      }
+
+      for (int i = 0; i < nSize; i++) {
+        if (pFontMapper->m_InstalledTTFonts[i].Compare(sFontFaceName))
+          return TRUE;
+      }
     }
-
+  }
+
+  return FALSE;
+}
+
+static int CharSet2CP(int charset) {
+  if (charset == 128)
+    return 932;
+  if (charset == 134)
+    return 936;
+  if (charset == 129)
+    return 949;
+  if (charset == 136)
+    return 950;
+  return 0;
+}
+CPDF_Font* CFX_SystemHandler::AddNativeTrueTypeFontToPDF(
+    CPDF_Document* pDoc,
+    CFX_ByteString sFontFaceName,
+    uint8_t nCharset) {
+  if (pDoc) {
+    CFX_Font* pFXFont = new CFX_Font();
+    pFXFont->LoadSubst(sFontFaceName, TRUE, 0, 0, 0, CharSet2CP(nCharset),
+                       FALSE);
+    CPDF_Font* pFont = pDoc->AddFont(pFXFont, nCharset, FALSE);
+    delete pFXFont;
+    return pFont;
+  }
+
+  return NULL;
+}
+
+int32_t CFX_SystemHandler::SetTimer(int32_t uElapse,
+                                    TimerCallback lpTimerFunc) {
+  return m_pEnv->FFI_SetTimer(uElapse, lpTimerFunc);
+}
+void CFX_SystemHandler::KillTimer(int32_t nID) {
+  m_pEnv->FFI_KillTimer(nID);
+}
+
+FX_SYSTEMTIME CFX_SystemHandler::GetLocalTime() {
+  return m_pEnv->FFI_GetLocalTime();
+}
+
+CPDFDoc_Environment::CPDFDoc_Environment(CPDFXFA_Document* pDoc,
+                                         FPDF_FORMFILLINFO* pFFinfo)
+    : m_pAnnotHandlerMgr(NULL),
+      m_pActionHandler(NULL),
+      m_pJSRuntime(NULL),
+      m_pInfo(pFFinfo),
+      m_pSDKDoc(NULL),
+      m_pXFADoc(pDoc),
+      m_pIFormFiller(NULL) {
+  m_pSysHandler = new CFX_SystemHandler(this);
+}
+
+CPDFDoc_Environment::~CPDFDoc_Environment() {
+  delete m_pIFormFiller;
+  m_pIFormFiller = NULL;
+
+  CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
+  if (m_pJSRuntime && pProvider->GetRuntimeFactory())
+    pProvider->GetRuntimeFactory()->DeleteJSRuntime(m_pJSRuntime);
+
+  if (pProvider->m_pEnvList.GetSize() == 0) {
+    pProvider->ReleaseRuntime();
+    pProvider->InitRuntime(TRUE);
+  }
+
+  delete m_pSysHandler;
+  m_pSysHandler = NULL;
+
+  delete m_pAnnotHandlerMgr;
+  m_pAnnotHandlerMgr = NULL;
+
+  delete m_pActionHandler;
+  m_pActionHandler = NULL;
+}
+
+int CPDFDoc_Environment::JS_appAlert(const FX_WCHAR* Msg,
+                                     const FX_WCHAR* Title,
+                                     FX_UINT Type,
+                                     FX_UINT Icon) {
+  if (m_pInfo && m_pInfo->m_pJsPlatform && m_pInfo->m_pJsPlatform->app_alert) {
+    CFX_ByteString bsMsg = CFX_WideString(Msg).UTF16LE_Encode();
+    CFX_ByteString bsTitle = CFX_WideString(Title).UTF16LE_Encode();
+    FPDF_WIDESTRING pMsg = (FPDF_WIDESTRING)bsMsg.GetBuffer(bsMsg.GetLength());
+    FPDF_WIDESTRING pTitle =
+        (FPDF_WIDESTRING)bsTitle.GetBuffer(bsTitle.GetLength());
+    int ret = m_pInfo->m_pJsPlatform->app_alert(m_pInfo->m_pJsPlatform, pMsg,
+                                                pTitle, Type, Icon);
+    bsMsg.ReleaseBuffer();
+    bsTitle.ReleaseBuffer();
+    return ret;
+  }
+  return -1;
+}
+
+int CPDFDoc_Environment::JS_appResponse(const FX_WCHAR* Question,
+                                        const FX_WCHAR* Title,
+                                        const FX_WCHAR* Default,
+                                        const FX_WCHAR* cLabel,
+                                        FPDF_BOOL bPassword,
+                                        void* response,
+                                        int length) {
+  if (m_pInfo && m_pInfo->m_pJsPlatform &&
+      m_pInfo->m_pJsPlatform->app_response) {
+    CFX_ByteString bsQuestion = CFX_WideString(Question).UTF16LE_Encode();
+    CFX_ByteString bsTitle = CFX_WideString(Title).UTF16LE_Encode();
+    CFX_ByteString bsDefault = CFX_WideString(Default).UTF16LE_Encode();
+    CFX_ByteString bsLabel = CFX_WideString(cLabel).UTF16LE_Encode();
+    FPDF_WIDESTRING pQuestion =
+        (FPDF_WIDESTRING)bsQuestion.GetBuffer(bsQuestion.GetLength());
+    FPDF_WIDESTRING pTitle =
+        (FPDF_WIDESTRING)bsTitle.GetBuffer(bsTitle.GetLength());
+    FPDF_WIDESTRING pDefault =
+        (FPDF_WIDESTRING)bsDefault.GetBuffer(bsDefault.GetLength());
+    FPDF_WIDESTRING pLabel =
+        (FPDF_WIDESTRING)bsLabel.GetBuffer(bsLabel.GetLength());
+    int ret = m_pInfo->m_pJsPlatform->app_response(
+        m_pInfo->m_pJsPlatform, pQuestion, pTitle, pDefault, pLabel, bPassword,
+        response, length);
+    bsQuestion.ReleaseBuffer();
+    bsTitle.ReleaseBuffer();
+    bsDefault.ReleaseBuffer();
+    bsLabel.ReleaseBuffer();
+    return ret;
+  }
+  return -1;
+}
+
+CFX_WideString CPDFDoc_Environment::JS_fieldBrowse() {
+  if (!m_pInfo || !m_pInfo->m_pJsPlatform ||
+      !m_pInfo->m_pJsPlatform->Field_browse) {
+    return L"";
+  }
+
+  const int nRequiredLen =
+      m_pInfo->m_pJsPlatform->Field_browse(m_pInfo->m_pJsPlatform, nullptr, 0);
+  if (nRequiredLen <= 0)
+    return L"";
+
+  nonstd::unique_ptr<char[]> pBuff(new char[nRequiredLen]);
+  memset(pBuff.get(), 0, nRequiredLen);
+  const int nActualLen = m_pInfo->m_pJsPlatform->Field_browse(
+      m_pInfo->m_pJsPlatform, pBuff.get(), nRequiredLen);
+  if (nActualLen <= 0 || nActualLen > nRequiredLen)
+    return L"";
+
+  CFX_ByteString bsRet = CFX_ByteString(pBuff.get(), nActualLen);
+  CFX_WideString wsRet = CFX_WideString::FromLocal(bsRet);
+  return wsRet;
+}
+
+CFX_WideString CPDFDoc_Environment::JS_docGetFilePath() {
+  if (!m_pInfo || !m_pInfo->m_pJsPlatform ||
+      !m_pInfo->m_pJsPlatform->Doc_getFilePath) {
+    return L"";
+  }
+
+  const int nRequiredLen = m_pInfo->m_pJsPlatform->Doc_getFilePath(
+      m_pInfo->m_pJsPlatform, nullptr, 0);
+  if (nRequiredLen <= 0)
+    return L"";
+
+  nonstd::unique_ptr<char[]> pBuff(new char[nRequiredLen]);
+  memset(pBuff.get(), 0, nRequiredLen);
+  const int nActualLen = m_pInfo->m_pJsPlatform->Doc_getFilePath(
+      m_pInfo->m_pJsPlatform, pBuff.get(), nRequiredLen);
+  if (nActualLen <= 0 || nActualLen > nRequiredLen)
+    return L"";
+
+  CFX_ByteString bsRet = CFX_ByteString(pBuff.get(), nActualLen);
+  CFX_WideString wsRet = CFX_WideString::FromLocal(bsRet);
+  return wsRet;
+}
+
+void CPDFDoc_Environment::JS_docSubmitForm(void* formData,
+                                           int length,
+                                           const FX_WCHAR* URL) {
+  if (m_pInfo && m_pInfo->m_pJsPlatform &&
+      m_pInfo->m_pJsPlatform->Doc_submitForm) {
+    CFX_ByteString bsDestination = CFX_WideString(URL).UTF16LE_Encode();
+    FPDF_WIDESTRING pDestination =
+        (FPDF_WIDESTRING)bsDestination.GetBuffer(bsDestination.GetLength());
+    m_pInfo->m_pJsPlatform->Doc_submitForm(m_pInfo->m_pJsPlatform, formData,
+                                           length, pDestination);
+    bsDestination.ReleaseBuffer();
+  }
+}
+
+void CPDFDoc_Environment::JS_docmailForm(void* mailData,
+                                         int length,
+                                         FPDF_BOOL bUI,
+                                         const FX_WCHAR* To,
+                                         const FX_WCHAR* Subject,
+                                         const FX_WCHAR* CC,
+                                         const FX_WCHAR* BCC,
+                                         const FX_WCHAR* Msg) {
+  if (m_pInfo && m_pInfo->m_pJsPlatform && m_pInfo->m_pJsPlatform->Doc_mail) {
+    CFX_ByteString bsTo = CFX_WideString(To).UTF16LE_Encode();
+    CFX_ByteString bsCC = CFX_WideString(Subject).UTF16LE_Encode();
+    CFX_ByteString bsBcc = CFX_WideString(BCC).UTF16LE_Encode();
+    CFX_ByteString bsSubject = CFX_WideString(Subject).UTF16LE_Encode();
+    CFX_ByteString bsMsg = CFX_WideString(Msg).UTF16LE_Encode();
+    FPDF_WIDESTRING pTo = (FPDF_WIDESTRING)bsTo.GetBuffer(bsTo.GetLength());
+    FPDF_WIDESTRING pCC = (FPDF_WIDESTRING)bsCC.GetBuffer(bsCC.GetLength());
+    FPDF_WIDESTRING pBcc = (FPDF_WIDESTRING)bsBcc.GetBuffer(bsBcc.GetLength());
+    FPDF_WIDESTRING pSubject =
+        (FPDF_WIDESTRING)bsSubject.GetBuffer(bsSubject.GetLength());
+    FPDF_WIDESTRING pMsg = (FPDF_WIDESTRING)bsMsg.GetBuffer(bsMsg.GetLength());
+    m_pInfo->m_pJsPlatform->Doc_mail(m_pInfo->m_pJsPlatform, mailData, length,
+                                     bUI, pTo, pSubject, pCC, pBcc, pMsg);
+    bsTo.ReleaseBuffer();
+    bsCC.ReleaseBuffer();
+    bsBcc.ReleaseBuffer();
+    bsSubject.ReleaseBuffer();
+    bsMsg.ReleaseBuffer();
+  }
+}
+
+IFXJS_Runtime* CPDFDoc_Environment::GetJSRuntime() {
+  if (!IsJSInitiated())
     return NULL;
+  if (!m_pJSRuntime)
+    m_pJSRuntime =
+        CPDFXFA_App::GetInstance()->GetRuntimeFactory()->NewJSRuntime(this);
+  return m_pJSRuntime;
 }
 
-
-int32_t CFX_SystemHandler::SetTimer(int32_t uElapse, TimerCallback lpTimerFunc)
-{
-    return m_pEnv->FFI_SetTimer(uElapse, lpTimerFunc);
-}
-void CFX_SystemHandler::KillTimer(int32_t nID)
-{
-    m_pEnv->FFI_KillTimer(nID);
+CPDFSDK_AnnotHandlerMgr* CPDFDoc_Environment::GetAnnotHandlerMgr() {
+  if (!m_pAnnotHandlerMgr)
+    m_pAnnotHandlerMgr = new CPDFSDK_AnnotHandlerMgr(this);
+  return m_pAnnotHandlerMgr;
 }
 
-FX_SYSTEMTIME CFX_SystemHandler::GetLocalTime()
-{
-    return m_pEnv->FFI_GetLocalTime();
+CPDFSDK_ActionHandler* CPDFDoc_Environment::GetActionHander() {
+  if (!m_pActionHandler)
+    m_pActionHandler = new CPDFSDK_ActionHandler(this);
+  return m_pActionHandler;
 }
 
-CPDFDoc_Environment::CPDFDoc_Environment(CPDFXFA_Document* pDoc, FPDF_FORMFILLINFO* pFFinfo) :
-    m_pAnnotHandlerMgr(NULL),
-    m_pActionHandler(NULL),
-    m_pJSRuntime(NULL),
-    m_pInfo(pFFinfo),
-    m_pSDKDoc(NULL),
-    m_pXFADoc(pDoc),
-    m_pIFormFiller(NULL)
-{
-    m_pSysHandler = new CFX_SystemHandler(this);
+CFFL_IFormFiller* CPDFDoc_Environment::GetIFormFiller() {
+  if (!m_pIFormFiller)
+    m_pIFormFiller = new CFFL_IFormFiller(this);
+  return m_pIFormFiller;
 }
 
-CPDFDoc_Environment::~CPDFDoc_Environment()
-{
-    delete m_pIFormFiller;
-    m_pIFormFiller = NULL;
+CPDFSDK_Document::CPDFSDK_Document(CPDFXFA_Document* pDoc,
+                                   CPDFDoc_Environment* pEnv)
+    : m_pDoc(pDoc),
+      m_pInterForm(nullptr),
+      m_pFocusAnnot(nullptr),
+      m_pEnv(pEnv),
+      m_pOccontent(nullptr),
+      m_bChangeMask(FALSE) {}
 
-    CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
-    if (m_pJSRuntime && pProvider->GetRuntimeFactory())
-        pProvider->GetRuntimeFactory()->DeleteJSRuntime(m_pJSRuntime);
+CPDFSDK_Document::~CPDFSDK_Document() {
+  for (auto& it : m_pageMap)
+    delete it.second;
+  m_pageMap.clear();
 
-    if (pProvider->m_pEnvList.GetSize() == 0)
-    {
-        pProvider->ReleaseRuntime();
-        pProvider->InitRuntime(TRUE);
-    }
+  delete m_pInterForm;
+  m_pInterForm = nullptr;
 
-    delete m_pSysHandler;
-    m_pSysHandler = NULL;
+  delete m_pOccontent;
+  m_pOccontent = nullptr;
+}
 
-    delete m_pAnnotHandlerMgr;
-    m_pAnnotHandlerMgr = NULL;
+CPDFSDK_PageView* CPDFSDK_Document::GetPageView(CPDFXFA_Page* pPDFXFAPage,
+                                                FX_BOOL ReNew) {
+  auto it = m_pageMap.find(pPDFXFAPage);
+  if (it != m_pageMap.end())
+    return it->second;
 
-    delete m_pActionHandler;
-    m_pActionHandler = NULL;
-}
+  if (!ReNew)
+    return nullptr;
 
-int CPDFDoc_Environment::JS_appAlert(const FX_WCHAR* Msg, const FX_WCHAR* Title, FX_UINT Type, FX_UINT Icon)
-{
-    if (m_pInfo && m_pInfo->m_pJsPlatform && m_pInfo->m_pJsPlatform->app_alert)
-    {
-        CFX_ByteString bsMsg = CFX_WideString(Msg).UTF16LE_Encode();
-        CFX_ByteString bsTitle = CFX_WideString(Title).UTF16LE_Encode();
-        FPDF_WIDESTRING pMsg = (FPDF_WIDESTRING)bsMsg.GetBuffer(bsMsg.GetLength());
-        FPDF_WIDESTRING pTitle = (FPDF_WIDESTRING)bsTitle.GetBuffer(bsTitle.GetLength());
-        int ret = m_pInfo->m_pJsPlatform->app_alert(m_pInfo->m_pJsPlatform, pMsg, pTitle, Type, Icon);
-        bsMsg.ReleaseBuffer();
-        bsTitle.ReleaseBuffer();
-        return ret;
-    }
-    return -1;
+  CPDFSDK_PageView* pPageView = new CPDFSDK_PageView(this, pPDFXFAPage);
+  m_pageMap[pPDFXFAPage] = pPageView;
+  // Delay to load all the annotations, to avoid endless loop.
+  pPageView->LoadFXAnnots();
+  return pPageView;
 }
 
-int CPDFDoc_Environment::JS_appResponse(const FX_WCHAR* Question, const FX_WCHAR* Title, const FX_WCHAR* Default,
-                                        const FX_WCHAR* cLabel, FPDF_BOOL bPassword, void* response, int length)
-{
-    if (m_pInfo && m_pInfo->m_pJsPlatform && m_pInfo->m_pJsPlatform->app_response)
-    {
-        CFX_ByteString bsQuestion = CFX_WideString(Question).UTF16LE_Encode();
-        CFX_ByteString bsTitle = CFX_WideString(Title).UTF16LE_Encode();
-        CFX_ByteString bsDefault = CFX_WideString(Default).UTF16LE_Encode();
-        CFX_ByteString bsLabel = CFX_WideString(cLabel).UTF16LE_Encode();
-        FPDF_WIDESTRING pQuestion = (FPDF_WIDESTRING)bsQuestion.GetBuffer(bsQuestion.GetLength());
-        FPDF_WIDESTRING pTitle = (FPDF_WIDESTRING)bsTitle.GetBuffer(bsTitle.GetLength());
-        FPDF_WIDESTRING pDefault = (FPDF_WIDESTRING)bsDefault.GetBuffer(bsDefault.GetLength());
-        FPDF_WIDESTRING pLabel = (FPDF_WIDESTRING)bsLabel.GetBuffer(bsLabel.GetLength());
-        int ret = m_pInfo->m_pJsPlatform->app_response(m_pInfo->m_pJsPlatform, pQuestion, pTitle,
-                                                       pDefault, pLabel, bPassword, response, length);
-        bsQuestion.ReleaseBuffer();
-        bsTitle.ReleaseBuffer();
-        bsDefault.ReleaseBuffer();
-        bsLabel.ReleaseBuffer();
-        return ret;
-    }
-    return -1;
+CPDFSDK_PageView* CPDFSDK_Document::GetCurrentView() {
+  CPDFXFA_Page* pPage = (CPDFXFA_Page*)m_pEnv->FFI_GetCurrentPage(m_pDoc);
+  return pPage ? GetPageView(pPage, TRUE) : nullptr;
 }
 
-CFX_WideString CPDFDoc_Environment::JS_fieldBrowse()
-{
-    if (!m_pInfo ||
-        !m_pInfo->m_pJsPlatform ||
-        !m_pInfo->m_pJsPlatform->Field_browse) {
-        return L"";
-    }
+CPDFSDK_PageView* CPDFSDK_Document::GetPageView(int nIndex) {
+  CPDFXFA_Page* pTempPage = (CPDFXFA_Page*)m_pEnv->FFI_GetPage(m_pDoc, nIndex);
+  if (!pTempPage)
+    return nullptr;
 
-    const int nRequiredLen = m_pInfo->m_pJsPlatform->Field_browse(
-            m_pInfo->m_pJsPlatform, nullptr, 0);
-    if (nRequiredLen <= 0)
-        return L"";
-
-    nonstd::unique_ptr<char[]> pBuff(new char[nRequiredLen]);
-    memset(pBuff.get(), 0, nRequiredLen);
-    const int nActualLen = m_pInfo->m_pJsPlatform->Field_browse(
-            m_pInfo->m_pJsPlatform, pBuff.get(), nRequiredLen);
-    if (nActualLen <= 0 || nActualLen > nRequiredLen)
-        return L"";
-
-    CFX_ByteString bsRet = CFX_ByteString(pBuff.get(), nActualLen);
-    CFX_WideString wsRet = CFX_WideString::FromLocal(bsRet);
-    return wsRet;
-}
-
-CFX_WideString CPDFDoc_Environment::JS_docGetFilePath()
-{
-    if (!m_pInfo ||
-        !m_pInfo->m_pJsPlatform ||
-        !m_pInfo->m_pJsPlatform->Doc_getFilePath) {
-        return L"";
-    }
-
-    const int nRequiredLen = m_pInfo->m_pJsPlatform->Doc_getFilePath(
-            m_pInfo->m_pJsPlatform, nullptr, 0);
-    if (nRequiredLen <= 0)
-        return L"";
-
-    nonstd::unique_ptr<char[]> pBuff(new char[nRequiredLen]);
-    memset(pBuff.get(), 0, nRequiredLen);
-    const int nActualLen = m_pInfo->m_pJsPlatform->Doc_getFilePath(
-            m_pInfo->m_pJsPlatform, pBuff.get(), nRequiredLen);
-    if (nActualLen <= 0 || nActualLen > nRequiredLen)
-        return L"";
-
-    CFX_ByteString bsRet = CFX_ByteString(pBuff.get(), nActualLen);
-    CFX_WideString wsRet = CFX_WideString::FromLocal(bsRet);
-    return wsRet;
-}
-
-void CPDFDoc_Environment::JS_docSubmitForm(void* formData, int length, const FX_WCHAR* URL)
-{
-    if (m_pInfo && m_pInfo->m_pJsPlatform && m_pInfo->m_pJsPlatform->Doc_submitForm)
-    {
-        CFX_ByteString bsDestination = CFX_WideString(URL).UTF16LE_Encode();
-        FPDF_WIDESTRING pDestination = (FPDF_WIDESTRING)bsDestination.GetBuffer(bsDestination.GetLength());
-        m_pInfo->m_pJsPlatform->Doc_submitForm(m_pInfo->m_pJsPlatform, formData, length, pDestination);
-        bsDestination.ReleaseBuffer();
-    }
+  auto it = m_pageMap.find(pTempPage);
+  return it->second;
 }
 
-void CPDFDoc_Environment::JS_docmailForm(void* mailData, int length, FPDF_BOOL bUI,
-                                         const FX_WCHAR* To, const FX_WCHAR* Subject,
-                                         const FX_WCHAR* CC, const FX_WCHAR* BCC,
-                                         const FX_WCHAR* Msg)
-{
-    if (m_pInfo && m_pInfo->m_pJsPlatform && m_pInfo->m_pJsPlatform->Doc_mail)
-    {
-        CFX_ByteString bsTo = CFX_WideString(To).UTF16LE_Encode();
-        CFX_ByteString bsCC = CFX_WideString(Subject).UTF16LE_Encode();
-        CFX_ByteString bsBcc = CFX_WideString(BCC).UTF16LE_Encode();
-        CFX_ByteString bsSubject = CFX_WideString(Subject).UTF16LE_Encode();
-        CFX_ByteString bsMsg = CFX_WideString(Msg).UTF16LE_Encode();
-        FPDF_WIDESTRING pTo = (FPDF_WIDESTRING)bsTo.GetBuffer(bsTo.GetLength());
-        FPDF_WIDESTRING pCC = (FPDF_WIDESTRING)bsCC.GetBuffer(bsCC.GetLength());
-        FPDF_WIDESTRING pBcc = (FPDF_WIDESTRING)bsBcc.GetBuffer(bsBcc.GetLength());
-        FPDF_WIDESTRING pSubject = (FPDF_WIDESTRING)bsSubject.GetBuffer(bsSubject.GetLength());
-        FPDF_WIDESTRING pMsg = (FPDF_WIDESTRING)bsMsg.GetBuffer(bsMsg.GetLength());
-        m_pInfo->m_pJsPlatform->Doc_mail(m_pInfo->m_pJsPlatform, mailData, length, bUI, pTo, pSubject,
-                                         pCC, pBcc, pMsg);
-        bsTo.ReleaseBuffer();
-        bsCC.ReleaseBuffer();
-        bsBcc.ReleaseBuffer();
-        bsSubject.ReleaseBuffer();
-        bsMsg.ReleaseBuffer();
-    }
+void CPDFSDK_Document::ProcJavascriptFun() {
+  CPDFXFA_Document* pPDFDoc = GetDocument();
+  CPDF_DocJSActions docJS(pPDFDoc->GetPDFDoc());
+  int iCount = docJS.CountJSActions();
+  if (iCount < 1)
+    return;
+  for (int i = 0; i < iCount; i++) {
+    CFX_ByteString csJSName;
+    CPDF_Action jsAction = docJS.GetJSAction(i, csJSName);
+    if (m_pEnv->GetActionHander())
+      m_pEnv->GetActionHander()->DoAction_JavaScript(
+          jsAction, CFX_WideString::FromLocal(csJSName), this);
+  }
 }
 
-IFXJS_Runtime* CPDFDoc_Environment::GetJSRuntime()
-{
-    if (!IsJSInitiated())
-        return NULL;
-    if (!m_pJSRuntime)
-        m_pJSRuntime = CPDFXFA_App::GetInstance()->GetRuntimeFactory()->NewJSRuntime(this);
-    return m_pJSRuntime;
-}
-
-CPDFSDK_AnnotHandlerMgr* CPDFDoc_Environment::GetAnnotHandlerMgr()
-{
-    if (!m_pAnnotHandlerMgr)
-        m_pAnnotHandlerMgr = new CPDFSDK_AnnotHandlerMgr(this);
-    return m_pAnnotHandlerMgr;
-}
+FX_BOOL CPDFSDK_Document::ProcOpenAction() {
+  if (!m_pDoc)
+    return FALSE;
 
-CPDFSDK_ActionHandler* CPDFDoc_Environment::GetActionHander()
-{
-    if (!m_pActionHandler)
-        m_pActionHandler = new CPDFSDK_ActionHandler(this);
-    return m_pActionHandler;
-}
+  CPDF_Dictionary* pRoot = m_pDoc->GetPDFDoc()->GetRoot();
+  if (!pRoot)
+    return FALSE;
 
-CFFL_IFormFiller* CPDFDoc_Environment::GetIFormFiller()
-{
-    if (!m_pIFormFiller)
-        m_pIFormFiller = new CFFL_IFormFiller(this);
-    return m_pIFormFiller;
-}
+  CPDF_Object* pOpenAction = pRoot->GetDict("OpenAction");
+  if (!pOpenAction)
+    pOpenAction = pRoot->GetArray("OpenAction");
 
-CPDFSDK_Document::CPDFSDK_Document(CPDFXFA_Document* pDoc,CPDFDoc_Environment* pEnv) :
-    m_pDoc(pDoc),
-    m_pInterForm(nullptr),
-    m_pFocusAnnot(nullptr),
-    m_pEnv(pEnv),
-    m_pOccontent(nullptr),
-    m_bChangeMask(FALSE)
-{
-}
+  if (!pOpenAction)
+    return FALSE;
 
-CPDFSDK_Document::~CPDFSDK_Document()
-{
-    for (auto& it : m_pageMap)
-        delete it.second;
-    m_pageMap.clear();
+  if (pOpenAction->GetType() == PDFOBJ_ARRAY)
+    return TRUE;
 
-    delete m_pInterForm;
-    m_pInterForm = nullptr;
+  if (pOpenAction->GetType() == PDFOBJ_DICTIONARY) {
+    CPDF_Dictionary* pDict = (CPDF_Dictionary*)pOpenAction;
+    CPDF_Action action(pDict);
+    if (m_pEnv->GetActionHander())
+      m_pEnv->GetActionHander()->DoAction_DocOpen(action, this);
+    return TRUE;
+  }
+  return FALSE;
+}
 
-    delete m_pOccontent;
-    m_pOccontent = nullptr;
+CPDF_OCContext* CPDFSDK_Document::GetOCContext() {
+  if (!m_pOccontent)
+    m_pOccontent = new CPDF_OCContext(m_pDoc->GetPDFDoc());
+  return m_pOccontent;
 }
 
-CPDFSDK_PageView* CPDFSDK_Document::GetPageView(CPDFXFA_Page* pPDFXFAPage, FX_BOOL ReNew)
-{
-    auto it = m_pageMap.find(pPDFXFAPage);
-    if (it != m_pageMap.end())
-        return it->second;
+void CPDFSDK_Document::ReMovePageView(CPDFXFA_Page* pPDFXFAPage) {
+  auto it = m_pageMap.find(pPDFXFAPage);
+  if (it == m_pageMap.end())
+    return;
 
-    if (!ReNew)
-        return nullptr;
+  CPDFSDK_PageView* pPageView = it->second;
+  if (pPageView->IsLocked())
+    return;
 
-    CPDFSDK_PageView* pPageView = new CPDFSDK_PageView(this, pPDFXFAPage);
-    m_pageMap[pPDFXFAPage] = pPageView;
-    // Delay to load all the annotations, to avoid endless loop.
-    pPageView->LoadFXAnnots();
-    return pPageView;
+  delete pPageView;
+  m_pageMap.erase(it);
 }
 
-CPDFSDK_PageView* CPDFSDK_Document::GetCurrentView()
-{
-    CPDFXFA_Page* pPage = (CPDFXFA_Page *)m_pEnv->FFI_GetCurrentPage(m_pDoc);
-    return pPage ? GetPageView(pPage, TRUE) : nullptr;
+CPDFXFA_Page* CPDFSDK_Document::GetPage(int nIndex) {
+  CPDFXFA_Page* pTempPage = (CPDFXFA_Page*)m_pEnv->FFI_GetPage(m_pDoc, nIndex);
+  if (!pTempPage)
+    return NULL;
+  return pTempPage;
 }
 
-CPDFSDK_PageView* CPDFSDK_Document::GetPageView(int nIndex)
-{
-    CPDFXFA_Page* pTempPage =
-        (CPDFXFA_Page*)m_pEnv->FFI_GetPage(m_pDoc, nIndex);
-    if (!pTempPage)
-        return nullptr;
-
-    auto it = m_pageMap.find(pTempPage);
-    return it->second;
+CPDFSDK_InterForm* CPDFSDK_Document::GetInterForm() {
+  if (!m_pInterForm)
+    m_pInterForm = new CPDFSDK_InterForm(this);
+  return m_pInterForm;
 }
 
-void CPDFSDK_Document:: ProcJavascriptFun()
-{
-    CPDFXFA_Document* pPDFDoc = GetDocument();
-    CPDF_DocJSActions docJS(pPDFDoc->GetPDFDoc());
-    int iCount = docJS.CountJSActions();
-    if (iCount < 1) return;
-    for (int i = 0; i < iCount; i ++)
-    {
-        CFX_ByteString csJSName;
-        CPDF_Action jsAction = docJS.GetJSAction(i, csJSName);
-        if(m_pEnv->GetActionHander())
-            m_pEnv->GetActionHander()->DoAction_JavaScript(jsAction,CFX_WideString::FromLocal(csJSName),this);
+void CPDFSDK_Document::UpdateAllViews(CPDFSDK_PageView* pSender,
+                                      CPDFSDK_Annot* pAnnot) {
+  for (const auto& it : m_pageMap) {
+    CPDFSDK_PageView* pPageView = it.second;
+    if (pPageView != pSender) {
+      pPageView->UpdateView(pAnnot);
     }
+  }
 }
 
-FX_BOOL CPDFSDK_Document::ProcOpenAction()
-{
-    if(!m_pDoc)
-        return FALSE;
+CPDFSDK_Annot* CPDFSDK_Document::GetFocusAnnot() {
+  return m_pFocusAnnot;
+}
 
-    CPDF_Dictionary* pRoot = m_pDoc->GetPDFDoc()->GetRoot();
-    if (!pRoot)
-        return FALSE;
+FX_BOOL CPDFSDK_Document::SetFocusAnnot(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) {
+  if (m_pFocusAnnot == pAnnot)
+    return TRUE;
 
-    CPDF_Object* pOpenAction = pRoot->GetDict("OpenAction");
-    if(!pOpenAction)
-        pOpenAction = pRoot->GetArray("OpenAction");
+  CPDFSDK_Annot* pLastFocusAnnot = m_pFocusAnnot;
 
-    if(!pOpenAction)
-        return FALSE;
+  if (m_pFocusAnnot) {
+    if (!KillFocusAnnot(nFlag))
+      return FALSE;
+  }
+  CPDFSDK_PageView* pPageView = NULL;
+  if (pAnnot)
+    pPageView = pAnnot->GetPageView();
+  if (pAnnot && pPageView->IsValid()) {
+    CPDFSDK_AnnotHandlerMgr* pAnnotHandler = m_pEnv->GetAnnotHandlerMgr();
 
-    if(pOpenAction->GetType()==PDFOBJ_ARRAY)
-        return TRUE;
+    if (pAnnotHandler && !m_pFocusAnnot) {
+      if (!pAnnotHandler->Annot_OnChangeFocus(pAnnot, pLastFocusAnnot))
+        return FALSE;
 
-    if(pOpenAction->GetType()==PDFOBJ_DICTIONARY)
-    {
-        CPDF_Dictionary * pDict=(CPDF_Dictionary*)pOpenAction;
-        CPDF_Action action(pDict);
-        if(m_pEnv->GetActionHander())
-            m_pEnv->GetActionHander()->DoAction_DocOpen(action, this);
+      if (!pAnnotHandler->Annot_OnSetFocus(pAnnot, nFlag))
+        return FALSE;
+      if (!m_pFocusAnnot) {
+        m_pFocusAnnot = pAnnot;
         return TRUE;
+      }
     }
-    return FALSE;
+  }
+  return FALSE;
 }
 
-CPDF_OCContext* CPDFSDK_Document::GetOCContext()
-{
-    if(!m_pOccontent)
-        m_pOccontent = new CPDF_OCContext(m_pDoc->GetPDFDoc());
-    return m_pOccontent;
-}
+FX_BOOL CPDFSDK_Document::KillFocusAnnot(FX_UINT nFlag) {
+  if (m_pFocusAnnot) {
+    CPDFSDK_AnnotHandlerMgr* pAnnotHandler = m_pEnv->GetAnnotHandlerMgr();
+    if (pAnnotHandler) {
+      CPDFSDK_Annot* pFocusAnnot = m_pFocusAnnot;
+      m_pFocusAnnot = NULL;
 
-void CPDFSDK_Document::ReMovePageView(CPDFXFA_Page* pPDFXFAPage)
-{
-    auto it = m_pageMap.find(pPDFXFAPage);
-    if (it == m_pageMap.end())
-        return;
-
-    CPDFSDK_PageView* pPageView = it->second;
-    if (pPageView->IsLocked())
-        return;
-
-    delete pPageView;
-    m_pageMap.erase(it);
-}
-
-CPDFXFA_Page * CPDFSDK_Document::GetPage(int nIndex)
-{
-    CPDFXFA_Page * pTempPage = (CPDFXFA_Page*)m_pEnv->FFI_GetPage(m_pDoc,nIndex);
-    if(!pTempPage)
-        return NULL;
-    return pTempPage;
-}
-
-CPDFSDK_InterForm* CPDFSDK_Document::GetInterForm()
-{
-    if(!m_pInterForm)
-        m_pInterForm = new CPDFSDK_InterForm(this);
-    return m_pInterForm;
-}
+      if (!pAnnotHandler->Annot_OnChangeFocus(NULL, pFocusAnnot))
+        return FALSE;
 
-void CPDFSDK_Document::UpdateAllViews(CPDFSDK_PageView* pSender, CPDFSDK_Annot* pAnnot)
-{
-    for (const auto& it : m_pageMap) {
-        CPDFSDK_PageView* pPageView = it.second;
-        if (pPageView != pSender) {
-            pPageView->UpdateView(pAnnot);
+      if (pAnnotHandler->Annot_OnKillFocus(pFocusAnnot, nFlag)) {
+        if (pFocusAnnot->GetType() == FX_BSTRC("Widget")) {
+          CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pFocusAnnot;
+          int nFieldType = pWidget->GetFieldType();
+          if (FIELDTYPE_TEXTFIELD == nFieldType ||
+              FIELDTYPE_COMBOBOX == nFieldType)
+            m_pEnv->FFI_OnSetFieldInputFocus(NULL, NULL, 0, FALSE);
         }
-    }
-}
-
-CPDFSDK_Annot* CPDFSDK_Document::GetFocusAnnot()
-{
-    return m_pFocusAnnot;
-}
-
-FX_BOOL CPDFSDK_Document::SetFocusAnnot(CPDFSDK_Annot* pAnnot,FX_UINT nFlag)
-{
-
-    if(m_pFocusAnnot==pAnnot) return TRUE;
 
-    CPDFSDK_Annot* pLastFocusAnnot = m_pFocusAnnot;
-
-    if(m_pFocusAnnot)
-    {
-        if(!KillFocusAnnot(nFlag) ) return FALSE;
-    }
-    CPDFSDK_PageView* pPageView = NULL;
-    if (pAnnot)
-        pPageView = pAnnot->GetPageView();
-    if(pAnnot && pPageView->IsValid())
-    {
-        CPDFSDK_AnnotHandlerMgr *pAnnotHandler=m_pEnv->GetAnnotHandlerMgr();
-
-        if(pAnnotHandler&&!m_pFocusAnnot)
-        {
-            if (!pAnnotHandler->Annot_OnChangeFocus(pAnnot,pLastFocusAnnot))
-                return FALSE;
-
-            if (!pAnnotHandler->Annot_OnSetFocus(pAnnot,nFlag))
-                return FALSE;
-            if(!m_pFocusAnnot)
-            {
-                m_pFocusAnnot=pAnnot;
-                return TRUE;
-            }
-        }
+        if (!m_pFocusAnnot)
+          return TRUE;
+      } else {
+        m_pFocusAnnot = pFocusAnnot;
+      }
     }
-    return FALSE;
+  }
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_Document::KillFocusAnnot(FX_UINT nFlag)
-{
-    if(m_pFocusAnnot)
-    {
-        CPDFSDK_AnnotHandlerMgr *pAnnotHandler=m_pEnv->GetAnnotHandlerMgr();
-        if(pAnnotHandler)
-        {
-            CPDFSDK_Annot* pFocusAnnot = m_pFocusAnnot;
-            m_pFocusAnnot = NULL;
-
-            if (!pAnnotHandler->Annot_OnChangeFocus(NULL, pFocusAnnot))
-                return FALSE;
-
-            if(pAnnotHandler->Annot_OnKillFocus(pFocusAnnot, nFlag))
-            {
-
-                if(pFocusAnnot->GetType() == FX_BSTRC("Widget"))
-                {
-                    CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pFocusAnnot;
-                    int nFieldType = pWidget->GetFieldType();
-                    if(FIELDTYPE_TEXTFIELD == nFieldType || FIELDTYPE_COMBOBOX == nFieldType)
-                        m_pEnv->FFI_OnSetFieldInputFocus(NULL, NULL, 0, FALSE);
-                }
-
-                if(!m_pFocusAnnot)
-                    return TRUE;
-            }
-            else
-            {
-                m_pFocusAnnot = pFocusAnnot;
-            }
-        }
-    }
+FX_BOOL CPDFSDK_Document::DeletePages(int nStart, int nCount) {
+  if (nStart < 0 || nStart >= GetPageCount() || nCount <= 0) {
     return FALSE;
-}
+  }
 
-FX_BOOL CPDFSDK_Document::DeletePages(int nStart, int  nCount)
-{
-    if ( nStart < 0 || nStart >= GetPageCount() || nCount <= 0 )
-    {
-        return FALSE;
-    }
-
-    CPDFXFA_Page * pTempPage = NULL;
-    for ( int i = nCount-1; i >= 0; i-- )
-    {
-        pTempPage = GetPage(nStart+i);
-        if ( pTempPage != NULL )
-        {
-            ReMovePageView(pTempPage);
-        }
+  CPDFXFA_Page* pTempPage = NULL;
+  for (int i = nCount - 1; i >= 0; i--) {
+    pTempPage = GetPage(nStart + i);
+    if (pTempPage != NULL) {
+      ReMovePageView(pTempPage);
     }
-    return TRUE;
-}
-
-void CPDFSDK_Document::OnCloseDocument()
-{
-    KillFocusAnnot();
+  }
+  return TRUE;
 }
 
-FX_BOOL CPDFSDK_Document::GetPermissions(int nFlag)
-{
-    FX_DWORD dwPermissions = m_pDoc->GetPDFDoc()->GetUserPermissions();
-    return dwPermissions&nFlag;
+void CPDFSDK_Document::OnCloseDocument() {
+  KillFocusAnnot();
 }
 
-IFXJS_Runtime * CPDFSDK_Document::GetJsRuntime()
-{
-    ASSERT(m_pEnv!=NULL);
-    return m_pEnv->GetJSRuntime();
+FX_BOOL CPDFSDK_Document::GetPermissions(int nFlag) {
+  FX_DWORD dwPermissions = m_pDoc->GetPDFDoc()->GetUserPermissions();
+  return dwPermissions & nFlag;
 }
 
-CFX_WideString  CPDFSDK_Document::GetPath()
-{
-    ASSERT(m_pEnv != NULL);
-    return m_pEnv->JS_docGetFilePath();
+IFXJS_Runtime* CPDFSDK_Document::GetJsRuntime() {
+  ASSERT(m_pEnv != NULL);
+  return m_pEnv->GetJSRuntime();
 }
 
-
-CPDFSDK_PageView::CPDFSDK_PageView(CPDFSDK_Document* pSDKDoc,CPDFXFA_Page* page):m_page(page),m_pSDKDoc(pSDKDoc)
-{
-    CPDFSDK_InterForm* pInterForm = pSDKDoc->GetInterForm();
-    if(pInterForm)
-    {
-        CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm();
-        if (page->GetPDFPage())
-            pPDFInterForm->FixPageFields(page->GetPDFPage());
-    }
-    m_fxAnnotArray.RemoveAll();
-
-    m_bEnterWidget = FALSE;
-    m_bExitWidget = FALSE;
-    m_bOnWidget = FALSE;
-    m_CaptureWidget = NULL;
-    m_bValid = FALSE;
-    m_bLocked = FALSE;
-    m_pAnnotList = NULL;
+CFX_WideString CPDFSDK_Document::GetPath() {
+  ASSERT(m_pEnv != NULL);
+  return m_pEnv->JS_docGetFilePath();
 }
 
-CPDFSDK_PageView::~CPDFSDK_PageView()
-{
-    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-    int nAnnotCount = m_fxAnnotArray.GetSize();
-    for (int i=0; i<nAnnotCount; i++)
-    {
-        CPDFSDK_Annot* pAnnot = (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(i);
-        //if there is a focused annot on the page, we should kill the focus first.
-        if(pAnnot == m_pSDKDoc->GetFocusAnnot())
-            KillFocusAnnot();
-        CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
-        ASSERT(pAnnotHandlerMgr);
-        pAnnotHandlerMgr->ReleaseAnnot(pAnnot);
-    }
-    m_fxAnnotArray.RemoveAll();
+CPDFSDK_PageView::CPDFSDK_PageView(CPDFSDK_Document* pSDKDoc,
+                                   CPDFXFA_Page* page)
+    : m_page(page), m_pSDKDoc(pSDKDoc) {
+  CPDFSDK_InterForm* pInterForm = pSDKDoc->GetInterForm();
+  if (pInterForm) {
+    CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm();
+    if (page->GetPDFPage())
+      pPDFInterForm->FixPageFields(page->GetPDFPage());
+  }
+  m_fxAnnotArray.RemoveAll();
 
-    delete m_pAnnotList;
-    m_pAnnotList = NULL;
+  m_bEnterWidget = FALSE;
+  m_bExitWidget = FALSE;
+  m_bOnWidget = FALSE;
+  m_CaptureWidget = NULL;
+  m_bValid = FALSE;
+  m_bLocked = FALSE;
+  m_pAnnotList = NULL;
 }
 
-void CPDFSDK_PageView::PageView_OnDraw(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,CPDF_RenderOptions* pOptions, FX_RECT* pClip)
-{
-    m_curMatrix = *pUser2Device;
-    //  m_pAnnotList->DisplayAnnots(m_page, pDevice, pUser2Device, FALSE, pOptions);
-    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-    CPDFXFA_Page* pPage = GetPDFXFAPage();
-
-    if (pPage == NULL) return;
-
-    if (pPage->GetDocument()->GetDocType() == DOCTYPE_DYNIMIC_XFA) {
-        CFX_Graphics gs;
-        gs.Create(pDevice);
-        if (pClip) {
-            CFX_RectF rectClip;
-            rectClip.Set(static_cast<FX_FLOAT>(pClip->left),
-                static_cast<FX_FLOAT>(pClip->top),
-                static_cast<FX_FLOAT>(pClip->Width()),
-                static_cast<FX_FLOAT>(pClip->Height()));
-            gs.SetClipRect(rectClip);
-        }
-        IXFA_RenderContext* pRenderContext = XFA_RenderContext_Create();
-        if (!pRenderContext)
-            return;
-        CXFA_RenderOptions renderOptions;
-        renderOptions.m_bHighlight = TRUE;
-        pRenderContext->StartRender(pPage->GetXFAPageView(), &gs, *pUser2Device, renderOptions);
-        pRenderContext->DoRender();
-        pRenderContext->StopRender();
-        pRenderContext->Release();
-        return;
+CPDFSDK_PageView::~CPDFSDK_PageView() {
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  int nAnnotCount = m_fxAnnotArray.GetSize();
+  for (int i = 0; i < nAnnotCount; i++) {
+    CPDFSDK_Annot* pAnnot = (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(i);
+    // if there is a focused annot on the page, we should kill the focus first.
+    if (pAnnot == m_pSDKDoc->GetFocusAnnot())
+      KillFocusAnnot();
+    CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
+    ASSERT(pAnnotHandlerMgr);
+    pAnnotHandlerMgr->ReleaseAnnot(pAnnot);
+  }
+  m_fxAnnotArray.RemoveAll();
+
+  delete m_pAnnotList;
+  m_pAnnotList = NULL;
+}
+
+void CPDFSDK_PageView::PageView_OnDraw(CFX_RenderDevice* pDevice,
+                                       CPDF_Matrix* pUser2Device,
+                                       CPDF_RenderOptions* pOptions,
+                                       FX_RECT* pClip) {
+  m_curMatrix = *pUser2Device;
+  //  m_pAnnotList->DisplayAnnots(m_page, pDevice, pUser2Device, FALSE,
+  //  pOptions);
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  CPDFXFA_Page* pPage = GetPDFXFAPage();
+
+  if (pPage == NULL)
+    return;
+
+  if (pPage->GetDocument()->GetDocType() == DOCTYPE_DYNIMIC_XFA) {
+    CFX_Graphics gs;
+    gs.Create(pDevice);
+    if (pClip) {
+      CFX_RectF rectClip;
+      rectClip.Set(static_cast<FX_FLOAT>(pClip->left),
+                   static_cast<FX_FLOAT>(pClip->top),
+                   static_cast<FX_FLOAT>(pClip->Width()),
+                   static_cast<FX_FLOAT>(pClip->Height()));
+      gs.SetClipRect(rectClip);
     }
-    // for pdf/static xfa.
-    CPDFSDK_AnnotIterator annotIterator(this, TRUE);
-    CPDFSDK_Annot * pSDKAnnot=NULL;
-    int index=-1;
+    IXFA_RenderContext* pRenderContext = XFA_RenderContext_Create();
+    if (!pRenderContext)
+      return;
+    CXFA_RenderOptions renderOptions;
+    renderOptions.m_bHighlight = TRUE;
+    pRenderContext->StartRender(pPage->GetXFAPageView(), &gs, *pUser2Device,
+                                renderOptions);
+    pRenderContext->DoRender();
+    pRenderContext->StopRender();
+    pRenderContext->Release();
+    return;
+  }
+  // for pdf/static xfa.
+  CPDFSDK_AnnotIterator annotIterator(this, TRUE);
+  CPDFSDK_Annot* pSDKAnnot = NULL;
+  int index = -1;
+  pSDKAnnot = annotIterator.Next(index);
+  while (pSDKAnnot) {
+    CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
+    ASSERT(pAnnotHandlerMgr);
+    pAnnotHandlerMgr->Annot_OnDraw(this, pSDKAnnot, pDevice, pUser2Device, 0);
     pSDKAnnot = annotIterator.Next(index);
-    while(pSDKAnnot)
-    {
-        CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
-        ASSERT(pAnnotHandlerMgr);
-        pAnnotHandlerMgr->Annot_OnDraw(this, pSDKAnnot, pDevice, pUser2Device, 0);
-        pSDKAnnot = annotIterator.Next(index);
+  }
+}
+CPDF_Annot* CPDFSDK_PageView::GetPDFAnnotAtPoint(FX_FLOAT pageX,
+                                                 FX_FLOAT pageY) {
+  int nCount = m_pAnnotList->Count();
+  for (int i = 0; i < nCount; i++) {
+    CPDF_Annot* pAnnot = m_pAnnotList->GetAt(i);
+    CFX_FloatRect annotRect;
+    pAnnot->GetRect(annotRect);
+    if (annotRect.Contains(pageX, pageY))
+      return pAnnot;
+  }
+  return NULL;
+}
+
+CPDF_Annot* CPDFSDK_PageView::GetPDFWidgetAtPoint(FX_FLOAT pageX,
+                                                  FX_FLOAT pageY) {
+  int nCount = m_pAnnotList->Count();
+  for (int i = 0; i < nCount; i++) {
+    CPDF_Annot* pAnnot = m_pAnnotList->GetAt(i);
+    if (pAnnot->GetSubType() == "Widget") {
+      CFX_FloatRect annotRect;
+      pAnnot->GetRect(annotRect);
+      if (annotRect.Contains(pageX, pageY))
+        return pAnnot;
     }
-}
-CPDF_Annot* CPDFSDK_PageView::GetPDFAnnotAtPoint(FX_FLOAT pageX, FX_FLOAT pageY)
-{
-
-    int nCount = m_pAnnotList->Count();
-    for(int i = 0 ; i<nCount; i++)
-    {
-        CPDF_Annot* pAnnot = m_pAnnotList->GetAt(i);
-        CFX_FloatRect annotRect;
-        pAnnot->GetRect(annotRect);
-        if(annotRect.Contains(pageX, pageY))
-            return pAnnot;
-    }
-    return NULL;
-}
-
-CPDF_Annot* CPDFSDK_PageView::GetPDFWidgetAtPoint(FX_FLOAT pageX, FX_FLOAT pageY)
-{
-
-    int nCount = m_pAnnotList->Count();
-    for(int i = 0 ; i<nCount; i++)
-    {
-        CPDF_Annot* pAnnot = m_pAnnotList->GetAt(i);
-        if(pAnnot->GetSubType() == "Widget")
-        {
-            CFX_FloatRect annotRect;
-            pAnnot->GetRect(annotRect);
-            if(annotRect.Contains(pageX, pageY))
-                return pAnnot;
-        }
-    }
-    return NULL;
-}
-
-CPDFSDK_Annot* CPDFSDK_PageView::GetFXAnnotAtPoint(FX_FLOAT pageX, FX_FLOAT pageY)
-{
-    CPDFSDK_AnnotIterator annotIterator(this, FALSE);
-    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-    CPDFSDK_AnnotHandlerMgr* pAnnotMgr = pEnv->GetAnnotHandlerMgr();
-    CPDFSDK_Annot* pSDKAnnot = NULL;
-    int index = -1;
+  }
+  return NULL;
+}
+
+CPDFSDK_Annot* CPDFSDK_PageView::GetFXAnnotAtPoint(FX_FLOAT pageX,
+                                                   FX_FLOAT pageY) {
+  CPDFSDK_AnnotIterator annotIterator(this, FALSE);
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  CPDFSDK_AnnotHandlerMgr* pAnnotMgr = pEnv->GetAnnotHandlerMgr();
+  CPDFSDK_Annot* pSDKAnnot = NULL;
+  int index = -1;
+  pSDKAnnot = annotIterator.Next(index);
+  while (pSDKAnnot) {
+    CPDF_Rect rc = pAnnotMgr->Annot_OnGetViewBBox(this, pSDKAnnot);
+    if (rc.Contains(pageX, pageY))
+      return pSDKAnnot;
     pSDKAnnot = annotIterator.Next(index);
-    while(pSDKAnnot)
-    {
-        CPDF_Rect rc = pAnnotMgr->Annot_OnGetViewBBox(this, pSDKAnnot);
-        if(rc.Contains(pageX, pageY))
-            return pSDKAnnot;
-        pSDKAnnot = annotIterator.Next(index);
+  }
+
+  return NULL;
+}
+
+CPDFSDK_Annot* CPDFSDK_PageView::GetFXWidgetAtPoint(FX_FLOAT pageX,
+                                                    FX_FLOAT pageY) {
+  CPDFSDK_AnnotIterator annotIterator(this, FALSE);
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  CPDFSDK_AnnotHandlerMgr* pAnnotMgr = pEnv->GetAnnotHandlerMgr();
+  CPDFSDK_Annot* pSDKAnnot = NULL;
+  int index = -1;
+  pSDKAnnot = annotIterator.Next(index);
+  while (pSDKAnnot) {
+    if (pSDKAnnot->GetType() == "Widget" ||
+        pSDKAnnot->GetType() == FSDK_XFAWIDGET_TYPENAME) {
+      pAnnotMgr->Annot_OnGetViewBBox(this, pSDKAnnot);
+      CPDF_Point point(pageX, pageY);
+      if (pAnnotMgr->Annot_OnHitTest(this, pSDKAnnot, point))
+        return pSDKAnnot;
     }
-
-    return NULL;
-}
-
-CPDFSDK_Annot* CPDFSDK_PageView::GetFXWidgetAtPoint(FX_FLOAT pageX, FX_FLOAT pageY)
-{
-    CPDFSDK_AnnotIterator annotIterator(this, FALSE);
-    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-    CPDFSDK_AnnotHandlerMgr* pAnnotMgr = pEnv->GetAnnotHandlerMgr();
-    CPDFSDK_Annot* pSDKAnnot = NULL;
-    int index = -1;
     pSDKAnnot = annotIterator.Next(index);
-    while(pSDKAnnot)
-    {
-        if(pSDKAnnot->GetType() == "Widget" || pSDKAnnot->GetType() == FSDK_XFAWIDGET_TYPENAME)
-        {
-            pAnnotMgr->Annot_OnGetViewBBox(this, pSDKAnnot);
-            CPDF_Point point(pageX, pageY);
-            if (pAnnotMgr->Annot_OnHitTest(this, pSDKAnnot, point))
-                return pSDKAnnot;
-        }
-        pSDKAnnot = annotIterator.Next(index);
-    }
+  }
 
-    return NULL;
+  return NULL;
 }
 
-
-FX_BOOL CPDFSDK_PageView::Annot_HasAppearance(CPDF_Annot* pAnnot)
-{
-    CPDF_Dictionary* pAnnotDic = pAnnot->GetAnnotDict();
-    if(pAnnotDic)
-        return  pAnnotDic->KeyExist("AS");
-    return FALSE;
+FX_BOOL CPDFSDK_PageView::Annot_HasAppearance(CPDF_Annot* pAnnot) {
+  CPDF_Dictionary* pAnnotDic = pAnnot->GetAnnotDict();
+  if (pAnnotDic)
+    return pAnnotDic->KeyExist("AS");
+  return FALSE;
 }
 
-CPDFSDK_Annot*  CPDFSDK_PageView::AddAnnot(CPDF_Annot * pPDFAnnot)
-{
-    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-    ASSERT(pEnv);
-    CPDFSDK_AnnotHandlerMgr * pAnnotHandler= pEnv->GetAnnotHandlerMgr();
-
-    CPDFSDK_Annot* pSDKAnnot =NULL;
+CPDFSDK_Annot* CPDFSDK_PageView::AddAnnot(CPDF_Annot* pPDFAnnot) {
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  ASSERT(pEnv);
+  CPDFSDK_AnnotHandlerMgr* pAnnotHandler = pEnv->GetAnnotHandlerMgr();
 
-    if(pAnnotHandler)
-    {
-        pSDKAnnot = pAnnotHandler->NewAnnot(pPDFAnnot, this);
-    }
-    if(!pSDKAnnot)
-        return NULL;
+  CPDFSDK_Annot* pSDKAnnot = NULL;
 
-    m_fxAnnotArray.Add(pSDKAnnot);
+  if (pAnnotHandler) {
+    pSDKAnnot = pAnnotHandler->NewAnnot(pPDFAnnot, this);
+  }
+  if (!pSDKAnnot)
+    return NULL;
 
-    if(pAnnotHandler)
-    {
-        pAnnotHandler->Annot_OnCreate(pSDKAnnot);
+  m_fxAnnotArray.Add(pSDKAnnot);
 
-    }
+  if (pAnnotHandler) {
+    pAnnotHandler->Annot_OnCreate(pSDKAnnot);
+  }
 
-     return pSDKAnnot;
+  return pSDKAnnot;
 }
 
-CPDFSDK_Annot* CPDFSDK_PageView::AddAnnot(IXFA_Widget* pPDFAnnot)
-{
-    if (!pPDFAnnot) return NULL;
+CPDFSDK_Annot* CPDFSDK_PageView::AddAnnot(IXFA_Widget* pPDFAnnot) {
+  if (!pPDFAnnot)
+    return NULL;
 
-    CPDFSDK_Annot* pSDKAnnot = GetAnnotByXFAWidget(pPDFAnnot);
-    if (pSDKAnnot)
-        return pSDKAnnot;
+  CPDFSDK_Annot* pSDKAnnot = GetAnnotByXFAWidget(pPDFAnnot);
+  if (pSDKAnnot)
+    return pSDKAnnot;
 
-    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-    ASSERT(pEnv);
-    CPDFSDK_AnnotHandlerMgr * pAnnotHandler= pEnv->GetAnnotHandlerMgr();
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  ASSERT(pEnv);
+  CPDFSDK_AnnotHandlerMgr* pAnnotHandler = pEnv->GetAnnotHandlerMgr();
 
-    pSDKAnnot =NULL;
+  pSDKAnnot = NULL;
 
-    if(pAnnotHandler)
-    {
-        pSDKAnnot = pAnnotHandler->NewAnnot(pPDFAnnot, this);
-    }
-    if(!pSDKAnnot)
-        return NULL;
+  if (pAnnotHandler) {
+    pSDKAnnot = pAnnotHandler->NewAnnot(pPDFAnnot, this);
+  }
+  if (!pSDKAnnot)
+    return NULL;
 
-    m_fxAnnotArray.Add(pSDKAnnot);
+  m_fxAnnotArray.Add(pSDKAnnot);
 
-    return pSDKAnnot;
+  return pSDKAnnot;
 }
 
-CPDFSDK_Annot* CPDFSDK_PageView::AddAnnot(CPDF_Dictionary * pDict)
-{
-    return pDict ? AddAnnot(pDict->GetString("Subtype"), pDict) : nullptr;
+CPDFSDK_Annot* CPDFSDK_PageView::AddAnnot(CPDF_Dictionary* pDict) {
+  return pDict ? AddAnnot(pDict->GetString("Subtype"), pDict) : nullptr;
 }
 
-CPDFSDK_Annot* CPDFSDK_PageView::AddAnnot(const FX_CHAR* lpSubType,CPDF_Dictionary * pDict)
-{
-    return NULL;
+CPDFSDK_Annot* CPDFSDK_PageView::AddAnnot(const FX_CHAR* lpSubType,
+                                          CPDF_Dictionary* pDict) {
+  return NULL;
 }
 
-FX_BOOL  CPDFSDK_PageView::DeleteAnnot(CPDFSDK_Annot* pAnnot)
-{
-    if (!pAnnot)
-        return FALSE;
-    CPDFXFA_Page* pPage = pAnnot->GetPDFXFAPage();
-    if (!pPage || (pPage->GetDocument()->GetDocType() != DOCTYPE_STATIC_XFA && pPage->GetDocument()->GetDocType() != DOCTYPE_DYNIMIC_XFA))
-        return FALSE;
+FX_BOOL CPDFSDK_PageView::DeleteAnnot(CPDFSDK_Annot* pAnnot) {
+  if (!pAnnot)
+    return FALSE;
+  CPDFXFA_Page* pPage = pAnnot->GetPDFXFAPage();
+  if (!pPage || (pPage->GetDocument()->GetDocType() != DOCTYPE_STATIC_XFA &&
+                 pPage->GetDocument()->GetDocType() != DOCTYPE_DYNIMIC_XFA))
+    return FALSE;
 
-    int index = m_fxAnnotArray.Find(pAnnot);
-    m_fxAnnotArray.RemoveAt(index);
-    if (m_CaptureWidget == pAnnot)
-        m_CaptureWidget = NULL;
+  int index = m_fxAnnotArray.Find(pAnnot);
+  m_fxAnnotArray.RemoveAt(index);
+  if (m_CaptureWidget == pAnnot)
+    m_CaptureWidget = NULL;
 
-    return TRUE;
+  return TRUE;
 }
 
-CPDF_Document* CPDFSDK_PageView::GetPDFDocument()
-{
-    if(m_page)
-    {
-        return m_page->GetDocument()->GetPDFDoc();
-    }
-    return NULL;
+CPDF_Document* CPDFSDK_PageView::GetPDFDocument() {
+  if (m_page) {
+    return m_page->GetDocument()->GetPDFDoc();
+  }
+  return NULL;
 }
 
-CPDF_Page* CPDFSDK_PageView::GetPDFPage()
-{
-    if (m_page)
-    {
-        return m_page->GetPDFPage();
-    }
+CPDF_Page* CPDFSDK_PageView::GetPDFPage() {
+  if (m_page) {
+    return m_page->GetPDFPage();
+  }
 
-    return NULL;
+  return NULL;
 }
 
-int CPDFSDK_PageView::CountAnnots()
-{
-    return m_fxAnnotArray.GetSize();
+int CPDFSDK_PageView::CountAnnots() {
+  return m_fxAnnotArray.GetSize();
 }
 
-CPDFSDK_Annot*  CPDFSDK_PageView::GetAnnot(int nIndex)
-{
-    int nCount = m_fxAnnotArray.GetSize();
-    if ( nIndex < 0 || nIndex >= nCount )
-    {
-        return NULL;
-    }
+CPDFSDK_Annot* CPDFSDK_PageView::GetAnnot(int nIndex) {
+  int nCount = m_fxAnnotArray.GetSize();
+  if (nIndex < 0 || nIndex >= nCount) {
+    return NULL;
+  }
 
-    return (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(nIndex);
+  return (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(nIndex);
 }
 
-CPDFSDK_Annot* CPDFSDK_PageView::GetAnnotByDict(CPDF_Dictionary * pDict)
-{
-    int nCount = m_fxAnnotArray.GetSize();
-    for(int i=0; i<nCount; i++)
-    {
-        CPDFSDK_Annot* pAnnot = (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(i);
-        if (pDict == pAnnot->GetPDFAnnot()->GetAnnotDict())
-            return pAnnot;
-    }
-    return NULL;
+CPDFSDK_Annot* CPDFSDK_PageView::GetAnnotByDict(CPDF_Dictionary* pDict) {
+  int nCount = m_fxAnnotArray.GetSize();
+  for (int i = 0; i < nCount; i++) {
+    CPDFSDK_Annot* pAnnot = (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(i);
+    if (pDict == pAnnot->GetPDFAnnot()->GetAnnotDict())
+      return pAnnot;
+  }
+  return NULL;
 }
-CPDFSDK_Annot* CPDFSDK_PageView::GetAnnotByXFAWidget(IXFA_Widget* hWidget)
-{
-    if (hWidget == NULL)
-        return NULL;
-    int annotCount = m_fxAnnotArray.GetSize();
-
-    for(int i = 0; i < annotCount; i++)
-    {
-        CPDFSDK_Annot* pAnnot = (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(i);
-        if(pAnnot->GetXFAWidget() == hWidget)
-            return pAnnot;
-    }
+CPDFSDK_Annot* CPDFSDK_PageView::GetAnnotByXFAWidget(IXFA_Widget* hWidget) {
+  if (hWidget == NULL)
     return NULL;
-}
+  int annotCount = m_fxAnnotArray.GetSize();
+
+  for (int i = 0; i < annotCount; i++) {
+    CPDFSDK_Annot* pAnnot = (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(i);
+    if (pAnnot->GetXFAWidget() == hWidget)
+      return pAnnot;
+  }
+  return NULL;
+}
+
+FX_BOOL CPDFSDK_PageView::OnLButtonDown(const CPDF_Point& point,
+                                        FX_UINT nFlag) {
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  ASSERT(pEnv);
+  CPDFSDK_Annot* pFXAnnot = GetFXWidgetAtPoint(point.x, point.y);
+  if (!pFXAnnot) {
+    KillFocusAnnot(nFlag);
+  } else {
+    CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
+    ASSERT(pAnnotHandlerMgr);
 
-FX_BOOL CPDFSDK_PageView::OnLButtonDown(const CPDF_Point & point, FX_UINT nFlag)
-{
-    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-    ASSERT(pEnv);
-    CPDFSDK_Annot* pFXAnnot = GetFXWidgetAtPoint(point.x, point.y);
-    if(!pFXAnnot)
-    {
-        KillFocusAnnot(nFlag);
-    }
-    else
-    {
-        CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
-        ASSERT(pAnnotHandlerMgr);
-
-        FX_BOOL bRet = pAnnotHandlerMgr->Annot_OnLButtonDown(this, pFXAnnot, nFlag,point);
-        if(bRet)
-        {
-            SetFocusAnnot(pFXAnnot);
-        }
-        return bRet;
+    FX_BOOL bRet =
+        pAnnotHandlerMgr->Annot_OnLButtonDown(this, pFXAnnot, nFlag, point);
+    if (bRet) {
+      SetFocusAnnot(pFXAnnot);
     }
-    return FALSE;
+    return bRet;
+  }
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_PageView::OnRButtonDown(const CPDF_Point & point, FX_UINT nFlag)
-{
-    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-    ASSERT(pEnv);
-    CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
-    ASSERT(pAnnotHandlerMgr);
+FX_BOOL CPDFSDK_PageView::OnRButtonDown(const CPDF_Point& point,
+                                        FX_UINT nFlag) {
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  ASSERT(pEnv);
+  CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
+  ASSERT(pAnnotHandlerMgr);
 
-    CPDFSDK_Annot* pFXAnnot = GetFXWidgetAtPoint(point.x, point.y);
+  CPDFSDK_Annot* pFXAnnot = GetFXWidgetAtPoint(point.x, point.y);
 
-    if (pFXAnnot == NULL)
-        return FALSE;
+  if (pFXAnnot == NULL)
+    return FALSE;
 
-    FX_BOOL bRet = pAnnotHandlerMgr->Annot_OnRButtonDown(this, pFXAnnot, nFlag,point);
-    if (bRet)
-    {
-        SetFocusAnnot(pFXAnnot);
-    }
-    return TRUE;
+  FX_BOOL bRet =
+      pAnnotHandlerMgr->Annot_OnRButtonDown(this, pFXAnnot, nFlag, point);
+  if (bRet) {
+    SetFocusAnnot(pFXAnnot);
+  }
+  return TRUE;
 }
 
-FX_BOOL CPDFSDK_PageView::OnRButtonUp(const CPDF_Point & point, FX_UINT nFlag)
-{
-    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-    ASSERT(pEnv);
-    CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
-    ASSERT(pAnnotHandlerMgr);
+FX_BOOL CPDFSDK_PageView::OnRButtonUp(const CPDF_Point& point, FX_UINT nFlag) {
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  ASSERT(pEnv);
+  CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
+  ASSERT(pAnnotHandlerMgr);
 
-    CPDFSDK_Annot* pFXAnnot = GetFXWidgetAtPoint(point.x, point.y);
+  CPDFSDK_Annot* pFXAnnot = GetFXWidgetAtPoint(point.x, point.y);
 
-    if (pFXAnnot == NULL)
-        return FALSE;
+  if (pFXAnnot == NULL)
+    return FALSE;
 
-    FX_BOOL bRet = pAnnotHandlerMgr->Annot_OnRButtonUp(this, pFXAnnot, nFlag,point);
-    if (bRet)
-    {
-        SetFocusAnnot(pFXAnnot);
+  FX_BOOL bRet =
+      pAnnotHandlerMgr->Annot_OnRButtonUp(this, pFXAnnot, nFlag, point);
+  if (bRet) {
+    SetFocusAnnot(pFXAnnot);
+  }
+  return TRUE;
+}
+
+FX_BOOL CPDFSDK_PageView::OnLButtonUp(const CPDF_Point& point, FX_UINT nFlag) {
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  ASSERT(pEnv);
+  CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
+  ASSERT(pAnnotHandlerMgr);
+  CPDFSDK_Annot* pFXAnnot = GetFXWidgetAtPoint(point.x, point.y);
+  CPDFSDK_Annot* pFocusAnnot = GetFocusAnnot();
+  FX_BOOL bRet = FALSE;
+  if (pFocusAnnot && pFocusAnnot != pFXAnnot) {
+    // Last focus Annot gets a chance to handle the event.
+    bRet = pAnnotHandlerMgr->Annot_OnLButtonUp(this, pFocusAnnot, nFlag, point);
+  }
+  if (pFXAnnot && !bRet) {
+    bRet = pAnnotHandlerMgr->Annot_OnLButtonUp(this, pFXAnnot, nFlag, point);
+    return bRet;
+  }
+  return bRet;
+}
+
+FX_BOOL CPDFSDK_PageView::OnMouseMove(const CPDF_Point& point, int nFlag) {
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
+  ASSERT(pAnnotHandlerMgr);
+  if (CPDFSDK_Annot* pFXAnnot = GetFXWidgetAtPoint(point.x, point.y)) {
+    if (m_CaptureWidget && m_CaptureWidget != pFXAnnot) {
+      m_bExitWidget = TRUE;
+      m_bEnterWidget = FALSE;
+      pAnnotHandlerMgr->Annot_OnMouseExit(this, m_CaptureWidget, nFlag);
+    }
+    m_CaptureWidget = (CPDFSDK_Widget*)pFXAnnot;
+    m_bOnWidget = TRUE;
+    if (!m_bEnterWidget) {
+      m_bEnterWidget = TRUE;
+      m_bExitWidget = FALSE;
+      pAnnotHandlerMgr->Annot_OnMouseEnter(this, pFXAnnot, nFlag);
     }
+    pAnnotHandlerMgr->Annot_OnMouseMove(this, pFXAnnot, nFlag, point);
     return TRUE;
+  }
+  if (m_bOnWidget) {
+    m_bOnWidget = FALSE;
+    m_bExitWidget = TRUE;
+    m_bEnterWidget = FALSE;
+    if (m_CaptureWidget) {
+      pAnnotHandlerMgr->Annot_OnMouseExit(this, m_CaptureWidget, nFlag);
+      m_CaptureWidget = NULL;
+    }
+  }
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_PageView::OnLButtonUp(const CPDF_Point & point, FX_UINT nFlag)
-{
+FX_BOOL CPDFSDK_PageView::OnMouseWheel(double deltaX,
+                                       double deltaY,
+                                       const CPDF_Point& point,
+                                       int nFlag) {
+  if (CPDFSDK_Annot* pAnnot = GetFXWidgetAtPoint(point.x, point.y)) {
     CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-    ASSERT(pEnv);
     CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
     ASSERT(pAnnotHandlerMgr);
-    CPDFSDK_Annot* pFXAnnot = GetFXWidgetAtPoint(point.x, point.y);
-    CPDFSDK_Annot* pFocusAnnot = GetFocusAnnot();
-    FX_BOOL bRet  = FALSE;
-    if(pFocusAnnot && pFocusAnnot != pFXAnnot)
-    {
-        //Last focus Annot gets a chance to handle the event.
-        bRet = pAnnotHandlerMgr->Annot_OnLButtonUp(this, pFocusAnnot, nFlag,point);
-    }
-    if(pFXAnnot && !bRet)
-    {
-        bRet = pAnnotHandlerMgr->Annot_OnLButtonUp(this, pFXAnnot, nFlag,point);
-        return bRet;
-    }
-    return bRet;
+    return pAnnotHandlerMgr->Annot_OnMouseWheel(this, pAnnot, nFlag,
+                                                (int)deltaY, point);
+  }
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_PageView::OnMouseMove(const CPDF_Point & point, int nFlag)
-{
-
+FX_BOOL CPDFSDK_PageView::OnChar(int nChar, FX_UINT nFlag) {
+  if (CPDFSDK_Annot* pAnnot = GetFocusAnnot()) {
     CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
     CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
     ASSERT(pAnnotHandlerMgr);
-    if(CPDFSDK_Annot* pFXAnnot = GetFXWidgetAtPoint(point.x, point.y))
-    {
-        if(m_CaptureWidget && m_CaptureWidget != pFXAnnot)
-        {
-            m_bExitWidget = TRUE;
-            m_bEnterWidget = FALSE;
-            pAnnotHandlerMgr->Annot_OnMouseExit(this, m_CaptureWidget, nFlag);
-        }
-        m_CaptureWidget = (CPDFSDK_Widget*)pFXAnnot;
-        m_bOnWidget = TRUE;
-        if(!m_bEnterWidget)
-        {
-            m_bEnterWidget = TRUE;
-            m_bExitWidget = FALSE;
-            pAnnotHandlerMgr->Annot_OnMouseEnter(this, pFXAnnot,nFlag);
-        }
-        pAnnotHandlerMgr->Annot_OnMouseMove(this, pFXAnnot, nFlag, point);
-        return TRUE;
-    }
-    if(m_bOnWidget)
-    {
-        m_bOnWidget = FALSE;
-        m_bExitWidget = TRUE;
-        m_bEnterWidget = FALSE;
-        if(m_CaptureWidget)
-        {
-            pAnnotHandlerMgr->Annot_OnMouseExit(this, m_CaptureWidget, nFlag);
-            m_CaptureWidget = NULL;
-        }
-    }
-    return FALSE;
-}
-
-FX_BOOL CPDFSDK_PageView::OnMouseWheel(double deltaX, double deltaY,const CPDF_Point& point, int nFlag)
-{
-    if(CPDFSDK_Annot* pAnnot = GetFXWidgetAtPoint(point.x, point.y))
-    {
-        CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-        CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
-        ASSERT(pAnnotHandlerMgr);
-        return pAnnotHandlerMgr->Annot_OnMouseWheel(this, pAnnot, nFlag, (int)deltaY, point);
-    }
-    return FALSE;
-
-}
-
-FX_BOOL CPDFSDK_PageView::OnChar(int nChar, FX_UINT nFlag)
-{
-    if(CPDFSDK_Annot* pAnnot = GetFocusAnnot())
-    {
-        CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-        CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
-        ASSERT(pAnnotHandlerMgr);
-        return pAnnotHandlerMgr->Annot_OnChar(pAnnot, nChar, nFlag);
-    }
+    return pAnnotHandlerMgr->Annot_OnChar(pAnnot, nChar, nFlag);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPDFSDK_PageView::OnKeyDown(int nKeyCode, int nFlag)
-{
-    if(CPDFSDK_Annot* pAnnot = GetFocusAnnot())
-    {
-        CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-        CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
-        ASSERT(pAnnotHandlerMgr);
-        return pAnnotHandlerMgr->Annot_OnKeyDown(pAnnot, nKeyCode, nFlag);
+FX_BOOL CPDFSDK_PageView::OnKeyDown(int nKeyCode, int nFlag) {
+  if (CPDFSDK_Annot* pAnnot = GetFocusAnnot()) {
+    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+    CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
+    ASSERT(pAnnotHandlerMgr);
+    return pAnnotHandlerMgr->Annot_OnKeyDown(pAnnot, nKeyCode, nFlag);
+  }
+  return FALSE;
+}
+
+FX_BOOL CPDFSDK_PageView::OnKeyUp(int nKeyCode, int nFlag) {
+  //  if(CPDFSDK_Annot* pAnnot = GetFocusAnnot())
+  //  {
+  //      CFFL_IFormFiller* pIFormFiller = g_pFormFillApp->GetIFormFiller();
+  //      return pIFormFiller->OnKeyUp(pAnnot, nKeyCode, nFlag);
+  //  }
+  return FALSE;
+}
+
+extern void CheckUnSupportAnnot(CPDF_Document* pDoc, CPDF_Annot* pPDFAnnot);
+
+void CPDFSDK_PageView::LoadFXAnnots() {
+  ASSERT(m_page != NULL);
+
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  ASSERT(pEnv != NULL);
+
+  CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
+  ASSERT(pAnnotHandlerMgr != NULL);
+
+  SetLock(TRUE);
+  m_page->AddRef();
+  if (m_pSDKDoc->GetDocument()->GetDocType() == DOCTYPE_DYNIMIC_XFA) {
+    IXFA_PageView* pageView = NULL;
+    pageView = m_page->GetXFAPageView();
+    ASSERT(pageView != NULL);
+
+    IXFA_WidgetIterator* pWidgetHander = pageView->CreateWidgetIterator(
+        XFA_TRAVERSEWAY_Form, XFA_WIDGETFILTER_Visible |
+                                  XFA_WIDGETFILTER_Viewable |
+                                  XFA_WIDGETFILTER_AllType);
+    if (!pWidgetHander) {
+      m_page->Release();
+      SetLock(FALSE);
+      return;
     }
-    return FALSE;
-}
-
-FX_BOOL CPDFSDK_PageView::OnKeyUp(int nKeyCode, int nFlag)
-{
-//  if(CPDFSDK_Annot* pAnnot = GetFocusAnnot())
-//  {
-//      CFFL_IFormFiller* pIFormFiller = g_pFormFillApp->GetIFormFiller();
-//      return pIFormFiller->OnKeyUp(pAnnot, nKeyCode, nFlag);
-//  }
-    return FALSE;
-}
 
-extern void CheckUnSupportAnnot(CPDF_Document * pDoc, CPDF_Annot* pPDFAnnot);
+    IXFA_Widget* pXFAAnnot = pWidgetHander->MoveToNext();
+    while (pXFAAnnot) {
+      CPDFSDK_Annot* pAnnot = pAnnotHandlerMgr->NewAnnot(pXFAAnnot, this);
+      if (!pAnnot) {
+        pXFAAnnot = pWidgetHander->MoveToNext();
+        continue;
+      }
+      m_fxAnnotArray.Add(pAnnot);
 
-void CPDFSDK_PageView::LoadFXAnnots()
-{
-    ASSERT(m_page != NULL);
+      pAnnotHandlerMgr->Annot_OnLoad(pAnnot);
 
-    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-    ASSERT(pEnv != NULL);
+      pXFAAnnot = pWidgetHander->MoveToNext();
+    }
 
-    CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();
-    ASSERT(pAnnotHandlerMgr != NULL);
-
-    SetLock(TRUE);
-    m_page->AddRef();
-    if (m_pSDKDoc->GetDocument()->GetDocType() == DOCTYPE_DYNIMIC_XFA)
-    {
-        IXFA_PageView* pageView = NULL;
-        pageView = m_page->GetXFAPageView();
-        ASSERT(pageView != NULL);
-
-        IXFA_WidgetIterator* pWidgetHander = pageView->CreateWidgetIterator(XFA_TRAVERSEWAY_Form, XFA_WIDGETFILTER_Visible|XFA_WIDGETFILTER_Viewable|XFA_WIDGETFILTER_AllType);
-        if (!pWidgetHander)
-        {
-            m_page->Release();
-            SetLock(FALSE);
-            return;
-        }
+    pWidgetHander->Release();
+  } else {
+    CPDF_Page* pPage = m_page->GetPDFPage();
+    ASSERT(pPage != NULL);
 
-        IXFA_Widget* pXFAAnnot = pWidgetHander->MoveToNext();
-        while (pXFAAnnot) {
-            CPDFSDK_Annot* pAnnot = pAnnotHandlerMgr->NewAnnot(pXFAAnnot, this);
-            if(!pAnnot) {
-                pXFAAnnot = pWidgetHander->MoveToNext();
-                continue;
-            }
-            m_fxAnnotArray.Add(pAnnot);
+    FX_BOOL enableAPUpdate = CPDF_InterForm::UpdatingAPEnabled();
+    // Disable the default AP construction.
+    CPDF_InterForm::EnableUpdateAP(FALSE);
+    m_pAnnotList = new CPDF_AnnotList(pPage);
+    CPDF_InterForm::EnableUpdateAP(enableAPUpdate);
 
-            pAnnotHandlerMgr->Annot_OnLoad(pAnnot);
+    int nCount = m_pAnnotList->Count();
+    for (int i = 0; i < nCount; i++) {
+      CPDF_Annot* pPDFAnnot = m_pAnnotList->GetAt(i);
+      CPDF_Document* pDoc = GetPDFDocument();
 
-            pXFAAnnot = pWidgetHander->MoveToNext();
+      CheckUnSupportAnnot(pDoc, pPDFAnnot);
 
-        }
+      CPDFSDK_Annot* pAnnot = pAnnotHandlerMgr->NewAnnot(pPDFAnnot, this);
+      if (!pAnnot)
+        continue;
+      m_fxAnnotArray.Add(pAnnot);
 
-        pWidgetHander->Release();
+      pAnnotHandlerMgr->Annot_OnLoad(pAnnot);
     }
-    else
-    {
-        CPDF_Page* pPage = m_page->GetPDFPage();
-        ASSERT(pPage != NULL);
-
-        FX_BOOL enableAPUpdate = CPDF_InterForm::UpdatingAPEnabled();
-        //Disable the default AP construction.
-        CPDF_InterForm::EnableUpdateAP(FALSE);
-        m_pAnnotList = new CPDF_AnnotList(pPage);
-        CPDF_InterForm::EnableUpdateAP(enableAPUpdate);
-
-        int nCount = m_pAnnotList->Count();
-        for(int i=0; i<nCount; i++)
-        {
-            CPDF_Annot* pPDFAnnot = m_pAnnotList->GetAt(i);
-            CPDF_Document * pDoc = GetPDFDocument();
-
-            CheckUnSupportAnnot(pDoc, pPDFAnnot);
-
-            CPDFSDK_Annot* pAnnot = pAnnotHandlerMgr->NewAnnot(pPDFAnnot, this);
-            if(!pAnnot)
-                continue;
-            m_fxAnnotArray.Add(pAnnot);
-
-            pAnnotHandlerMgr->Annot_OnLoad(pAnnot);
-        }
+  }
+  m_page->Release();
+  SetLock(FALSE);
+}
 
-    }
-    m_page->Release();
-    SetLock(FALSE);
+void CPDFSDK_PageView::UpdateRects(CFX_RectArray& rects) {
+  for (int i = 0; i < rects.GetSize(); i++) {
+    CPDF_Rect rc = rects.GetAt(i);
+    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+    pEnv->FFI_Invalidate(m_page, rc.left, rc.top, rc.right, rc.bottom);
+  }
 }
 
-void    CPDFSDK_PageView::UpdateRects(CFX_RectArray& rects)
-{
-    for(int i=0; i<rects.GetSize(); i++)
-    {
-        CPDF_Rect rc = rects.GetAt(i);
-        CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-        pEnv->FFI_Invalidate(m_page, rc.left, rc.top, rc.right, rc.bottom);
-    }
+void CPDFSDK_PageView::UpdateView(CPDFSDK_Annot* pAnnot) {
+  CPDF_Rect rcWindow = pAnnot->GetRect();
+  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
+  pEnv->FFI_Invalidate(m_page, rcWindow.left, rcWindow.top, rcWindow.right,
+                       rcWindow.bottom);
 }
 
-void CPDFSDK_PageView::UpdateView(CPDFSDK_Annot* pAnnot)
-{
-    CPDF_Rect rcWindow = pAnnot->GetRect();
-    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
-    pEnv->FFI_Invalidate(
-        m_page, rcWindow.left, rcWindow.top, rcWindow.right, rcWindow.bottom);
-}
-
-int CPDFSDK_PageView::GetPageIndex()
-{
-    if(m_page)
-    {
-        CPDF_Dictionary* pDic = m_page->GetPDFPage()->m_pFormDict;
-        CPDFXFA_Document* pDoc = m_pSDKDoc->GetDocument();
-        if(pDoc && pDic)
-        {
-            return pDoc->GetPDFDoc()->GetPageIndex(pDic->GetObjNum());
-        }
+int CPDFSDK_PageView::GetPageIndex() {
+  if (m_page) {
+    CPDF_Dictionary* pDic = m_page->GetPDFPage()->m_pFormDict;
+    CPDFXFA_Document* pDoc = m_pSDKDoc->GetDocument();
+    if (pDoc && pDic) {
+      return pDoc->GetPDFDoc()->GetPageIndex(pDic->GetObjNum());
     }
-    return -1;
+  }
+  return -1;
 }
 
-FX_BOOL CPDFSDK_PageView::IsValidAnnot(void* p)
-{
-    if (p == NULL) return FALSE;
-    int iCount = m_pAnnotList->Count();
-    for (int i = 0; i < iCount; i++)
-    {
-        if (m_pAnnotList->GetAt(i) == p)
-            return TRUE;
-    }
+FX_BOOL CPDFSDK_PageView::IsValidAnnot(void* p) {
+  if (p == NULL)
     return FALSE;
+  int iCount = m_pAnnotList->Count();
+  for (int i = 0; i < iCount; i++) {
+    if (m_pAnnotList->GetAt(i) == p)
+      return TRUE;
+  }
+  return FALSE;
 }
 
-
-CPDFSDK_Annot* CPDFSDK_PageView::GetFocusAnnot()
-{
-    CPDFSDK_Annot* pFocusAnnot = m_pSDKDoc->GetFocusAnnot();
-    if(!pFocusAnnot)
-        return NULL;
-
-    for(int i=0; i<m_fxAnnotArray.GetSize(); i++)
-    {
-        CPDFSDK_Annot* pAnnot = (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(i);
-        if(pAnnot == pFocusAnnot)
-            return pAnnot;
-    }
+CPDFSDK_Annot* CPDFSDK_PageView::GetFocusAnnot() {
+  CPDFSDK_Annot* pFocusAnnot = m_pSDKDoc->GetFocusAnnot();
+  if (!pFocusAnnot)
     return NULL;
+
+  for (int i = 0; i < m_fxAnnotArray.GetSize(); i++) {
+    CPDFSDK_Annot* pAnnot = (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(i);
+    if (pAnnot == pFocusAnnot)
+      return pAnnot;
+  }
+  return NULL;
 }
diff --git a/fpdfsdk/src/fsdk_rendercontext.cpp b/fpdfsdk/src/fsdk_rendercontext.cpp
index f96db94150..1320824236 100644
--- a/fpdfsdk/src/fsdk_rendercontext.cpp
+++ b/fpdfsdk/src/fsdk_rendercontext.cpp
@@ -6,42 +6,39 @@
 
 #include "../include/fsdk_rendercontext.h"
 
-void CRenderContext::Clear()
-{
-    m_pDevice = NULL;
-    m_pContext = NULL;
-    m_pRenderer = NULL;
-    m_pAnnots = NULL;
-    m_pOptions  = NULL;
+void CRenderContext::Clear() {
+  m_pDevice = NULL;
+  m_pContext = NULL;
+  m_pRenderer = NULL;
+  m_pAnnots = NULL;
+  m_pOptions = NULL;
 #ifdef _WIN32_WCE
-    m_pBitmap = NULL;
-    m_hBitmap = NULL;
+  m_pBitmap = NULL;
+  m_hBitmap = NULL;
 #endif
 }
 
-CRenderContext::~CRenderContext()
-{
-    delete m_pRenderer;
-    delete m_pContext;
-    delete m_pDevice;
-    delete m_pAnnots;
-    delete m_pOptions->m_pOCContext;
-    delete m_pOptions;
+CRenderContext::~CRenderContext() {
+  delete m_pRenderer;
+  delete m_pContext;
+  delete m_pDevice;
+  delete m_pAnnots;
+  delete m_pOptions->m_pOCContext;
+  delete m_pOptions;
 #ifdef _WIN32_WCE
-    delete m_pBitmap;
-    if (m_hBitmap) DeleteObject(m_hBitmap);
+  delete m_pBitmap;
+  if (m_hBitmap)
+    DeleteObject(m_hBitmap);
 #endif
 }
 
-IFSDK_PAUSE_Adapter::IFSDK_PAUSE_Adapter(IFSDK_PAUSE* IPause )
-{
-    m_IPause = IPause;
+IFSDK_PAUSE_Adapter::IFSDK_PAUSE_Adapter(IFSDK_PAUSE* IPause) {
+  m_IPause = IPause;
 }
 
-FX_BOOL IFSDK_PAUSE_Adapter::NeedToPauseNow()
-{
-    if (m_IPause->NeedToPauseNow) {
-        return m_IPause->NeedToPauseNow(m_IPause);
-    }
-    return FALSE;
+FX_BOOL IFSDK_PAUSE_Adapter::NeedToPauseNow() {
+  if (m_IPause->NeedToPauseNow) {
+    return m_IPause->NeedToPauseNow(m_IPause);
+  }
+  return FALSE;
 }
diff --git a/fpdfsdk/src/fxedit/fxet_ap.cpp b/fpdfsdk/src/fxedit/fxet_ap.cpp
index 309a98f41e..b9900d899b 100644
--- a/fpdfsdk/src/fxedit/fxet_ap.cpp
+++ b/fpdfsdk/src/fxedit/fxet_ap.cpp
@@ -8,218 +8,206 @@
 #include "../../include/fxedit/fx_edit.h"
 #include "../../include/fxedit/fxet_edit.h"
 
-CFX_ByteString GetPDFWordString(IFX_Edit_FontMap * pFontMap, int32_t nFontIndex, FX_WORD Word, FX_WORD SubWord)
-{
-	ASSERT (pFontMap != NULL);
-
-	CFX_ByteString sWord;
-
-	if (CPDF_Font * pPDFFont = pFontMap->GetPDFFont(nFontIndex))
-	{
-		if (SubWord > 0)
-		{
-			Word = SubWord;
-		}
-		else
-		{
-			FX_DWORD dwCharCode = -1;
-
-			if (pPDFFont->IsUnicodeCompatible())
-				dwCharCode = pPDFFont->CharCodeFromUnicode(Word);
-			else
-				dwCharCode = pFontMap->CharCodeFromUnicode(nFontIndex, Word);
-
-			if (dwCharCode > 0 )
-			{
-				pPDFFont->AppendChar(sWord, dwCharCode);
-				return sWord;
-			}
-		}
-
-		pPDFFont->AppendChar(sWord, Word);
-	}
-
-	return sWord;
+CFX_ByteString GetPDFWordString(IFX_Edit_FontMap* pFontMap,
+                                int32_t nFontIndex,
+                                FX_WORD Word,
+                                FX_WORD SubWord) {
+  ASSERT(pFontMap != NULL);
+
+  CFX_ByteString sWord;
+
+  if (CPDF_Font* pPDFFont = pFontMap->GetPDFFont(nFontIndex)) {
+    if (SubWord > 0) {
+      Word = SubWord;
+    } else {
+      FX_DWORD dwCharCode = -1;
+
+      if (pPDFFont->IsUnicodeCompatible())
+        dwCharCode = pPDFFont->CharCodeFromUnicode(Word);
+      else
+        dwCharCode = pFontMap->CharCodeFromUnicode(nFontIndex, Word);
+
+      if (dwCharCode > 0) {
+        pPDFFont->AppendChar(sWord, dwCharCode);
+        return sWord;
+      }
+    }
+
+    pPDFFont->AppendChar(sWord, Word);
+  }
+
+  return sWord;
 }
 
-static CFX_ByteString GetWordRenderString(const CFX_ByteString & strWords)
-{
-	if (strWords.GetLength() > 0)
-		return PDF_EncodeString(strWords) + " Tj\n";
+static CFX_ByteString GetWordRenderString(const CFX_ByteString& strWords) {
+  if (strWords.GetLength() > 0)
+    return PDF_EncodeString(strWords) + " Tj\n";
 
-	return "";
+  return "";
 }
 
-static CFX_ByteString GetFontSetString(IFX_Edit_FontMap * pFontMap, int32_t nFontIndex, FX_FLOAT fFontSize)
-{
-	CFX_ByteTextBuf sRet;
+static CFX_ByteString GetFontSetString(IFX_Edit_FontMap* pFontMap,
+                                       int32_t nFontIndex,
+                                       FX_FLOAT fFontSize) {
+  CFX_ByteTextBuf sRet;
 
-	if (pFontMap)
-	{
-		CFX_ByteString sFontAlias = pFontMap->GetPDFFontAlias(nFontIndex);
+  if (pFontMap) {
+    CFX_ByteString sFontAlias = pFontMap->GetPDFFontAlias(nFontIndex);
 
-		if (sFontAlias.GetLength() > 0 && fFontSize > 0 )
-			sRet << "/" << sFontAlias << " " << fFontSize << " Tf\n";
-	}
+    if (sFontAlias.GetLength() > 0 && fFontSize > 0)
+      sRet << "/" << sFontAlias << " " << fFontSize << " Tf\n";
+  }
 
-	return sRet.GetByteString();
+  return sRet.GetByteString();
 }
 
-CFX_ByteString IFX_Edit::GetEditAppearanceStream(IFX_Edit* pEdit, const CPDF_Point & ptOffset,
-												 const CPVT_WordRange * pRange /* = NULL*/, FX_BOOL bContinuous/* = TRUE*/, FX_WORD SubWord/* = 0*/)
-{
-	CFX_ByteTextBuf sEditStream, sWords;
-
-	CPDF_Point ptOld(0.0f,0.0f),ptNew(0.0f,0.0f);
-	int32_t nCurFontIndex = -1;
-
-	if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator())
-	{
-		if (pRange)
-			pIterator->SetAt(pRange->BeginPos);
-		else
-			pIterator->SetAt(0);
-
-		CPVT_WordPlace oldplace;
-
-		while (pIterator->NextWord())
-		{
-			CPVT_WordPlace place = pIterator->GetAt();
-
-			if (pRange && place.WordCmp(pRange->EndPos) > 0) break;
-
-			if (bContinuous)
-			{
-				if (place.LineCmp(oldplace) != 0)
-				{
-					if (sWords.GetSize() > 0)
-					{
-						sEditStream << GetWordRenderString(sWords.GetByteString());
-						sWords.Clear();
-					}
-
-					CPVT_Word word;
-					if (pIterator->GetWord(word))
-					{
-						ptNew = CPDF_Point(word.ptWord.x + ptOffset.x, word.ptWord.y + ptOffset.y);
-					}
-					else
-					{
-						CPVT_Line line;
-						pIterator->GetLine(line);
-						ptNew = CPDF_Point(line.ptLine.x + ptOffset.x, line.ptLine.y + ptOffset.y);
-					}
-
-					if (ptNew.x != ptOld.x || ptNew.y != ptOld.y)
-					{
-						sEditStream << ptNew.x - ptOld.x << " " << ptNew.y - ptOld.y << " Td\n";
-
-						ptOld = ptNew;
-					}
-				}
-
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					if (word.nFontIndex != nCurFontIndex)
-					{
-						if (sWords.GetSize() > 0)
-						{
-							sEditStream << GetWordRenderString(sWords.GetByteString());
-							sWords.Clear();
-						}
-						sEditStream << GetFontSetString(pEdit->GetFontMap(),word.nFontIndex,word.fFontSize);
-						nCurFontIndex = word.nFontIndex;
-					}
-
-					sWords << GetPDFWordString(pEdit->GetFontMap(),nCurFontIndex,word.Word,SubWord);
-				}
-
-				oldplace = place;
-			}
-			else
-			{
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					ptNew = CPDF_Point(word.ptWord.x + ptOffset.x, word.ptWord.y + ptOffset.y);
-
-					if (ptNew.x != ptOld.x || ptNew.y != ptOld.y)
-					{
-						sEditStream << ptNew.x - ptOld.x << " " << ptNew.y - ptOld.y << " Td\n";
-						ptOld = ptNew;
-					}
-
-					if (word.nFontIndex != nCurFontIndex)
-					{
-						sEditStream << GetFontSetString(pEdit->GetFontMap(),word.nFontIndex,word.fFontSize);
-						nCurFontIndex = word.nFontIndex;
-					}
-
-					sEditStream << GetWordRenderString(GetPDFWordString(pEdit->GetFontMap(),nCurFontIndex,word.Word,SubWord));
-				}
-			}
-		}
-
-		if (sWords.GetSize() > 0)
-		{
-			sEditStream << GetWordRenderString(sWords.GetByteString());
-			sWords.Clear();
-		}
-	}
-
-	CFX_ByteTextBuf sAppStream;
-	if (sEditStream.GetSize() > 0)
-	{
-		int32_t nHorzScale = pEdit->GetHorzScale();
-		if (nHorzScale != 100)
-		{
-			sAppStream << nHorzScale << " Tz\n";
-		}
-
-		FX_FLOAT fCharSpace = pEdit->GetCharSpace();
-		if (!FX_EDIT_IsFloatZero(fCharSpace))
-		{
-			sAppStream << fCharSpace << " Tc\n";
-		}
-
-		sAppStream << sEditStream;
-	}
-
-	return sAppStream.GetByteString();
+CFX_ByteString IFX_Edit::GetEditAppearanceStream(
+    IFX_Edit* pEdit,
+    const CPDF_Point& ptOffset,
+    const CPVT_WordRange* pRange /* = NULL*/,
+    FX_BOOL bContinuous /* = TRUE*/,
+    FX_WORD SubWord /* = 0*/) {
+  CFX_ByteTextBuf sEditStream, sWords;
+
+  CPDF_Point ptOld(0.0f, 0.0f), ptNew(0.0f, 0.0f);
+  int32_t nCurFontIndex = -1;
+
+  if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) {
+    if (pRange)
+      pIterator->SetAt(pRange->BeginPos);
+    else
+      pIterator->SetAt(0);
+
+    CPVT_WordPlace oldplace;
+
+    while (pIterator->NextWord()) {
+      CPVT_WordPlace place = pIterator->GetAt();
+
+      if (pRange && place.WordCmp(pRange->EndPos) > 0)
+        break;
+
+      if (bContinuous) {
+        if (place.LineCmp(oldplace) != 0) {
+          if (sWords.GetSize() > 0) {
+            sEditStream << GetWordRenderString(sWords.GetByteString());
+            sWords.Clear();
+          }
+
+          CPVT_Word word;
+          if (pIterator->GetWord(word)) {
+            ptNew = CPDF_Point(word.ptWord.x + ptOffset.x,
+                               word.ptWord.y + ptOffset.y);
+          } else {
+            CPVT_Line line;
+            pIterator->GetLine(line);
+            ptNew = CPDF_Point(line.ptLine.x + ptOffset.x,
+                               line.ptLine.y + ptOffset.y);
+          }
+
+          if (ptNew.x != ptOld.x || ptNew.y != ptOld.y) {
+            sEditStream << ptNew.x - ptOld.x << " " << ptNew.y - ptOld.y
+                        << " Td\n";
+
+            ptOld = ptNew;
+          }
+        }
+
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          if (word.nFontIndex != nCurFontIndex) {
+            if (sWords.GetSize() > 0) {
+              sEditStream << GetWordRenderString(sWords.GetByteString());
+              sWords.Clear();
+            }
+            sEditStream << GetFontSetString(pEdit->GetFontMap(),
+                                            word.nFontIndex, word.fFontSize);
+            nCurFontIndex = word.nFontIndex;
+          }
+
+          sWords << GetPDFWordString(pEdit->GetFontMap(), nCurFontIndex,
+                                     word.Word, SubWord);
+        }
+
+        oldplace = place;
+      } else {
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          ptNew = CPDF_Point(word.ptWord.x + ptOffset.x,
+                             word.ptWord.y + ptOffset.y);
+
+          if (ptNew.x != ptOld.x || ptNew.y != ptOld.y) {
+            sEditStream << ptNew.x - ptOld.x << " " << ptNew.y - ptOld.y
+                        << " Td\n";
+            ptOld = ptNew;
+          }
+
+          if (word.nFontIndex != nCurFontIndex) {
+            sEditStream << GetFontSetString(pEdit->GetFontMap(),
+                                            word.nFontIndex, word.fFontSize);
+            nCurFontIndex = word.nFontIndex;
+          }
+
+          sEditStream << GetWordRenderString(GetPDFWordString(
+              pEdit->GetFontMap(), nCurFontIndex, word.Word, SubWord));
+        }
+      }
+    }
+
+    if (sWords.GetSize() > 0) {
+      sEditStream << GetWordRenderString(sWords.GetByteString());
+      sWords.Clear();
+    }
+  }
+
+  CFX_ByteTextBuf sAppStream;
+  if (sEditStream.GetSize() > 0) {
+    int32_t nHorzScale = pEdit->GetHorzScale();
+    if (nHorzScale != 100) {
+      sAppStream << nHorzScale << " Tz\n";
+    }
+
+    FX_FLOAT fCharSpace = pEdit->GetCharSpace();
+    if (!FX_EDIT_IsFloatZero(fCharSpace)) {
+      sAppStream << fCharSpace << " Tc\n";
+    }
+
+    sAppStream << sEditStream;
+  }
+
+  return sAppStream.GetByteString();
 }
 
-CFX_ByteString IFX_Edit::GetSelectAppearanceStream(IFX_Edit* pEdit, const CPDF_Point & ptOffset,
-							const CPVT_WordRange * pRange /*= NULL*/)
-{
-	CFX_ByteTextBuf sRet;
-
-	if (pRange && pRange->IsExist())
-	{
-		if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator())
-		{
-			pIterator->SetAt(pRange->BeginPos);
-
-			while (pIterator->NextWord())
-			{
-				CPVT_WordPlace place = pIterator->GetAt();
-
-				if (pRange && place.WordCmp(pRange->EndPos) > 0) break;
-
-				CPVT_Word word;
-				CPVT_Line line;
-				if (pIterator->GetWord(word) && pIterator->GetLine(line))
-				{
-					//CPDF_Rect rcWordSel = CPDF_Rect(word.ptWord.x,line.ptLine.y + line.fLineDescent,
-					//		word.ptWord.x+word.fWidth,line.ptLine.y + line.fLineAscent);
-
-					sRet << word.ptWord.x + ptOffset.x << " " << line.ptLine.y + line.fLineDescent
-						<< " " << word.fWidth << " " << line.fLineAscent - line.fLineDescent << " re\nf\n";
-				}
-			}
-		}
-	}
-
-	return sRet.GetByteString();
+CFX_ByteString IFX_Edit::GetSelectAppearanceStream(
+    IFX_Edit* pEdit,
+    const CPDF_Point& ptOffset,
+    const CPVT_WordRange* pRange /*= NULL*/) {
+  CFX_ByteTextBuf sRet;
+
+  if (pRange && pRange->IsExist()) {
+    if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) {
+      pIterator->SetAt(pRange->BeginPos);
+
+      while (pIterator->NextWord()) {
+        CPVT_WordPlace place = pIterator->GetAt();
+
+        if (pRange && place.WordCmp(pRange->EndPos) > 0)
+          break;
+
+        CPVT_Word word;
+        CPVT_Line line;
+        if (pIterator->GetWord(word) && pIterator->GetLine(line)) {
+          // CPDF_Rect rcWordSel = CPDF_Rect(word.ptWord.x,line.ptLine.y +
+          // line.fLineDescent,
+          //		word.ptWord.x+word.fWidth,line.ptLine.y +
+          //line.fLineAscent);
+
+          sRet << word.ptWord.x + ptOffset.x << " "
+               << line.ptLine.y + line.fLineDescent << " " << word.fWidth << " "
+               << line.fLineAscent - line.fLineDescent << " re\nf\n";
+        }
+      }
+    }
+  }
+
+  return sRet.GetByteString();
 }
-
diff --git a/fpdfsdk/src/fxedit/fxet_edit.cpp b/fpdfsdk/src/fxedit/fxet_edit.cpp
index 63115c2626..efef2ca884 100644
--- a/fpdfsdk/src/fxedit/fxet_edit.cpp
+++ b/fpdfsdk/src/fxedit/fxet_edit.cpp
@@ -7,1495 +7,1312 @@
 #include "../../include/fxedit/fxet_stub.h"
 #include "../../include/fxedit/fxet_edit.h"
 
-#define FX_EDIT_UNDO_MAXITEM                10000
+#define FX_EDIT_UNDO_MAXITEM 10000
 
-/* ---------------------------- CFX_Edit_Iterator ---------------------------- */
+/* ---------------------------- CFX_Edit_Iterator ----------------------------
+ */
 
-CFX_Edit_Iterator::CFX_Edit_Iterator(CFX_Edit * pEdit,IPDF_VariableText_Iterator * pVTIterator) :
-    m_pEdit(pEdit),
-    m_pVTIterator(pVTIterator)
-{
-}
+CFX_Edit_Iterator::CFX_Edit_Iterator(CFX_Edit* pEdit,
+                                     IPDF_VariableText_Iterator* pVTIterator)
+    : m_pEdit(pEdit), m_pVTIterator(pVTIterator) {}
 
-CFX_Edit_Iterator::~CFX_Edit_Iterator()
-{
-}
+CFX_Edit_Iterator::~CFX_Edit_Iterator() {}
 
-FX_BOOL CFX_Edit_Iterator::NextWord()
-{
-    return m_pVTIterator->NextWord();
+FX_BOOL CFX_Edit_Iterator::NextWord() {
+  return m_pVTIterator->NextWord();
 }
 
-FX_BOOL CFX_Edit_Iterator::NextLine()
-{
-    return m_pVTIterator->NextLine();
+FX_BOOL CFX_Edit_Iterator::NextLine() {
+  return m_pVTIterator->NextLine();
 }
 
-FX_BOOL CFX_Edit_Iterator::NextSection()
-{
-    return m_pVTIterator->NextSection();
+FX_BOOL CFX_Edit_Iterator::NextSection() {
+  return m_pVTIterator->NextSection();
 }
 
-FX_BOOL CFX_Edit_Iterator::PrevWord()
-{
-    return m_pVTIterator->PrevWord();
+FX_BOOL CFX_Edit_Iterator::PrevWord() {
+  return m_pVTIterator->PrevWord();
 }
 
-FX_BOOL CFX_Edit_Iterator::PrevLine()
-{
-    return m_pVTIterator->PrevLine();
+FX_BOOL CFX_Edit_Iterator::PrevLine() {
+  return m_pVTIterator->PrevLine();
 }
 
-FX_BOOL CFX_Edit_Iterator::PrevSection()
-{
-    return m_pVTIterator->PrevSection();
+FX_BOOL CFX_Edit_Iterator::PrevSection() {
+  return m_pVTIterator->PrevSection();
 }
 
-FX_BOOL CFX_Edit_Iterator::GetWord(CPVT_Word & word) const
-{
-    ASSERT(m_pEdit);
+FX_BOOL CFX_Edit_Iterator::GetWord(CPVT_Word& word) const {
+  ASSERT(m_pEdit);
 
-    if (m_pVTIterator->GetWord(word))
-    {
-        word.ptWord = m_pEdit->VTToEdit(word.ptWord);
-        return TRUE;
-    }
-    return FALSE;
+  if (m_pVTIterator->GetWord(word)) {
+    word.ptWord = m_pEdit->VTToEdit(word.ptWord);
+    return TRUE;
+  }
+  return FALSE;
 }
 
-FX_BOOL CFX_Edit_Iterator::GetLine(CPVT_Line & line) const
-{
-    ASSERT(m_pEdit);
+FX_BOOL CFX_Edit_Iterator::GetLine(CPVT_Line& line) const {
+  ASSERT(m_pEdit);
 
-    if (m_pVTIterator->GetLine(line))
-    {
-        line.ptLine = m_pEdit->VTToEdit(line.ptLine);
-        return TRUE;
-    }
-    return FALSE;
+  if (m_pVTIterator->GetLine(line)) {
+    line.ptLine = m_pEdit->VTToEdit(line.ptLine);
+    return TRUE;
+  }
+  return FALSE;
 }
 
-FX_BOOL CFX_Edit_Iterator::GetSection(CPVT_Section & section) const
-{
-    ASSERT(m_pEdit);
+FX_BOOL CFX_Edit_Iterator::GetSection(CPVT_Section& section) const {
+  ASSERT(m_pEdit);
 
-    if (m_pVTIterator->GetSection(section))
-    {
-        section.rcSection = m_pEdit->VTToEdit(section.rcSection);
-        return TRUE;
-    }
-    return FALSE;
+  if (m_pVTIterator->GetSection(section)) {
+    section.rcSection = m_pEdit->VTToEdit(section.rcSection);
+    return TRUE;
+  }
+  return FALSE;
 }
 
-void CFX_Edit_Iterator::SetAt(int32_t nWordIndex)
-{
-    m_pVTIterator->SetAt(nWordIndex);
+void CFX_Edit_Iterator::SetAt(int32_t nWordIndex) {
+  m_pVTIterator->SetAt(nWordIndex);
 }
 
-void CFX_Edit_Iterator::SetAt(const CPVT_WordPlace & place)
-{
-    m_pVTIterator->SetAt(place);
+void CFX_Edit_Iterator::SetAt(const CPVT_WordPlace& place) {
+  m_pVTIterator->SetAt(place);
 }
 
-const CPVT_WordPlace & CFX_Edit_Iterator::GetAt() const
-{
-    return m_pVTIterator->GetAt();
+const CPVT_WordPlace& CFX_Edit_Iterator::GetAt() const {
+  return m_pVTIterator->GetAt();
 }
 
-IFX_Edit* CFX_Edit_Iterator::GetEdit() const
-{
-    return m_pEdit;
+IFX_Edit* CFX_Edit_Iterator::GetEdit() const {
+  return m_pEdit;
 }
 
-/* --------------------------- CFX_Edit_Provider ------------------------------- */
+/* --------------------------- CFX_Edit_Provider -------------------------------
+ */
 
-CFX_Edit_Provider::CFX_Edit_Provider(IFX_Edit_FontMap * pFontMap) : m_pFontMap(pFontMap)
-{
-    ASSERT(m_pFontMap != NULL);
+CFX_Edit_Provider::CFX_Edit_Provider(IFX_Edit_FontMap* pFontMap)
+    : m_pFontMap(pFontMap) {
+  ASSERT(m_pFontMap != NULL);
 }
 
-CFX_Edit_Provider::~CFX_Edit_Provider()
-{
-}
+CFX_Edit_Provider::~CFX_Edit_Provider() {}
 
-IFX_Edit_FontMap* CFX_Edit_Provider::GetFontMap()
-{
-    return m_pFontMap;
+IFX_Edit_FontMap* CFX_Edit_Provider::GetFontMap() {
+  return m_pFontMap;
 }
 
-int32_t CFX_Edit_Provider::GetCharWidth(int32_t nFontIndex, FX_WORD word, int32_t nWordStyle)
-{
-    if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex))
-    {
-        FX_DWORD charcode = word;
+int32_t CFX_Edit_Provider::GetCharWidth(int32_t nFontIndex,
+                                        FX_WORD word,
+                                        int32_t nWordStyle) {
+  if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex)) {
+    FX_DWORD charcode = word;
 
-        if (pPDFFont->IsUnicodeCompatible())
-            charcode = pPDFFont->CharCodeFromUnicode(word);
-        else
-            charcode = m_pFontMap->CharCodeFromUnicode(nFontIndex, word);
+    if (pPDFFont->IsUnicodeCompatible())
+      charcode = pPDFFont->CharCodeFromUnicode(word);
+    else
+      charcode = m_pFontMap->CharCodeFromUnicode(nFontIndex, word);
 
-        if (charcode != -1)
-            return pPDFFont->GetCharWidthF(charcode);
-    }
+    if (charcode != -1)
+      return pPDFFont->GetCharWidthF(charcode);
+  }
 
-    return 0;
+  return 0;
 }
 
-int32_t CFX_Edit_Provider::GetTypeAscent(int32_t nFontIndex)
-{
-    if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex))
-        return pPDFFont->GetTypeAscent();
+int32_t CFX_Edit_Provider::GetTypeAscent(int32_t nFontIndex) {
+  if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex))
+    return pPDFFont->GetTypeAscent();
 
-    return 0;
+  return 0;
 }
 
-int32_t CFX_Edit_Provider::GetTypeDescent(int32_t nFontIndex)
-{
-    if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex))
-        return pPDFFont->GetTypeDescent();
+int32_t CFX_Edit_Provider::GetTypeDescent(int32_t nFontIndex) {
+  if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex))
+    return pPDFFont->GetTypeDescent();
 
-    return 0;
+  return 0;
 }
 
-int32_t CFX_Edit_Provider::GetWordFontIndex(FX_WORD word, int32_t charset, int32_t nFontIndex)
-{
-    return m_pFontMap->GetWordFontIndex(word,charset,nFontIndex);
+int32_t CFX_Edit_Provider::GetWordFontIndex(FX_WORD word,
+                                            int32_t charset,
+                                            int32_t nFontIndex) {
+  return m_pFontMap->GetWordFontIndex(word, charset, nFontIndex);
 }
 
-int32_t CFX_Edit_Provider::GetDefaultFontIndex()
-{
-    return 0;
+int32_t CFX_Edit_Provider::GetDefaultFontIndex() {
+  return 0;
 }
 
-FX_BOOL CFX_Edit_Provider::IsLatinWord(FX_WORD word)
-{
-    return FX_EDIT_ISLATINWORD(word);
+FX_BOOL CFX_Edit_Provider::IsLatinWord(FX_WORD word) {
+  return FX_EDIT_ISLATINWORD(word);
 }
 
-/* --------------------------------- CFX_Edit_Refresh --------------------------------- */
+/* --------------------------------- CFX_Edit_Refresh
+ * --------------------------------- */
 
-CFX_Edit_Refresh::CFX_Edit_Refresh()
-{
-}
+CFX_Edit_Refresh::CFX_Edit_Refresh() {}
 
-CFX_Edit_Refresh::~CFX_Edit_Refresh()
-{
-}
+CFX_Edit_Refresh::~CFX_Edit_Refresh() {}
 
-void CFX_Edit_Refresh::BeginRefresh()
-{
-    m_RefreshRects.Empty();
-    m_OldLineRects = m_NewLineRects;
+void CFX_Edit_Refresh::BeginRefresh() {
+  m_RefreshRects.Empty();
+  m_OldLineRects = m_NewLineRects;
 }
 
-void CFX_Edit_Refresh::Push(const CPVT_WordRange & linerange,const CPDF_Rect & rect)
-{
-    m_NewLineRects.Add(linerange,rect);
+void CFX_Edit_Refresh::Push(const CPVT_WordRange& linerange,
+                            const CPDF_Rect& rect) {
+  m_NewLineRects.Add(linerange, rect);
 }
 
-void CFX_Edit_Refresh::NoAnalyse()
-{
-    {
-        for (int32_t i = 0, sz = m_OldLineRects.GetSize(); i < sz; i++)
-            if (CFX_Edit_LineRect * pOldRect = m_OldLineRects.GetAt(i))
-                m_RefreshRects.Add(pOldRect->m_rcLine);
-    }
+void CFX_Edit_Refresh::NoAnalyse() {
+  {
+    for (int32_t i = 0, sz = m_OldLineRects.GetSize(); i < sz; i++)
+      if (CFX_Edit_LineRect* pOldRect = m_OldLineRects.GetAt(i))
+        m_RefreshRects.Add(pOldRect->m_rcLine);
+  }
 
-    {
-        for (int32_t i = 0, sz = m_NewLineRects.GetSize(); i < sz; i++)
-            if (CFX_Edit_LineRect * pNewRect = m_NewLineRects.GetAt(i))
-                m_RefreshRects.Add(pNewRect->m_rcLine);
-    }
+  {
+    for (int32_t i = 0, sz = m_NewLineRects.GetSize(); i < sz; i++)
+      if (CFX_Edit_LineRect* pNewRect = m_NewLineRects.GetAt(i))
+        m_RefreshRects.Add(pNewRect->m_rcLine);
+  }
 }
 
-void CFX_Edit_Refresh::Analyse(int32_t nAlignment)
-{
-    FX_BOOL bLineTopChanged = FALSE;
-    CPDF_Rect rcResult;
-    FX_FLOAT fWidthDiff;
-
-    int32_t szMax = FX_EDIT_MAX(m_OldLineRects.GetSize(),m_NewLineRects.GetSize());
-    int32_t i = 0;
-
-    while (i < szMax)
-    {
-        CFX_Edit_LineRect * pOldRect = m_OldLineRects.GetAt(i);
-        CFX_Edit_LineRect * pNewRect = m_NewLineRects.GetAt(i);
-
-        if (pOldRect)
-        {
-            if (pNewRect)
-            {
-                if (bLineTopChanged)
-                {
-                    rcResult = pOldRect->m_rcLine;
-                    rcResult.Union(pNewRect->m_rcLine);
-                    m_RefreshRects.Add(rcResult);
-                }
-                else
-                {
-                    if (*pNewRect != *pOldRect)
-                    {
-                        if (!pNewRect->IsSameTop(*pOldRect) || !pNewRect->IsSameHeight(*pOldRect))
-                        {
-                            bLineTopChanged = TRUE;
-                            continue;
-                        }
-
-                        if (nAlignment == 0)
-                        {
-                            if (pNewRect->m_wrLine.BeginPos != pOldRect->m_wrLine.BeginPos)
-                            {
-                                rcResult = pOldRect->m_rcLine;
-                                rcResult.Union(pNewRect->m_rcLine);
-                                m_RefreshRects.Add(rcResult);
-                            }
-                            else
-                            {
-                                if (!pNewRect->IsSameLeft(*pOldRect))
-                                {
-                                    rcResult = pOldRect->m_rcLine;
-                                    rcResult.Union(pNewRect->m_rcLine);
-                                }
-                                else
-                                {
-                                    fWidthDiff = pNewRect->m_rcLine.Width() - pOldRect->m_rcLine.Width();
-                                    rcResult = pNewRect->m_rcLine;
-                                    if (fWidthDiff > 0.0f)
-                                        rcResult.left = rcResult.right - fWidthDiff;
-                                    else
-                                    {
-                                        rcResult.left = rcResult.right;
-                                        rcResult.right += (-fWidthDiff);
-                                    }
-                                }
-                                m_RefreshRects.Add(rcResult);
-                            }
-                        }
-                        else
-                        {
-                            rcResult = pOldRect->m_rcLine;
-                            rcResult.Union(pNewRect->m_rcLine);
-                            m_RefreshRects.Add(rcResult);
-                        }
-                    }
-                    else
-                    {
-                        //don't need to do anything
-                    }
-                }
-            }
-            else
-            {
-                m_RefreshRects.Add(pOldRect->m_rcLine);
-            }
-        }
-        else
-        {
-            if (pNewRect)
-            {
-                m_RefreshRects.Add(pNewRect->m_rcLine);
+void CFX_Edit_Refresh::Analyse(int32_t nAlignment) {
+  FX_BOOL bLineTopChanged = FALSE;
+  CPDF_Rect rcResult;
+  FX_FLOAT fWidthDiff;
+
+  int32_t szMax =
+      FX_EDIT_MAX(m_OldLineRects.GetSize(), m_NewLineRects.GetSize());
+  int32_t i = 0;
+
+  while (i < szMax) {
+    CFX_Edit_LineRect* pOldRect = m_OldLineRects.GetAt(i);
+    CFX_Edit_LineRect* pNewRect = m_NewLineRects.GetAt(i);
+
+    if (pOldRect) {
+      if (pNewRect) {
+        if (bLineTopChanged) {
+          rcResult = pOldRect->m_rcLine;
+          rcResult.Union(pNewRect->m_rcLine);
+          m_RefreshRects.Add(rcResult);
+        } else {
+          if (*pNewRect != *pOldRect) {
+            if (!pNewRect->IsSameTop(*pOldRect) ||
+                !pNewRect->IsSameHeight(*pOldRect)) {
+              bLineTopChanged = TRUE;
+              continue;
             }
-            else
-            {
-                //error
+
+            if (nAlignment == 0) {
+              if (pNewRect->m_wrLine.BeginPos != pOldRect->m_wrLine.BeginPos) {
+                rcResult = pOldRect->m_rcLine;
+                rcResult.Union(pNewRect->m_rcLine);
+                m_RefreshRects.Add(rcResult);
+              } else {
+                if (!pNewRect->IsSameLeft(*pOldRect)) {
+                  rcResult = pOldRect->m_rcLine;
+                  rcResult.Union(pNewRect->m_rcLine);
+                } else {
+                  fWidthDiff =
+                      pNewRect->m_rcLine.Width() - pOldRect->m_rcLine.Width();
+                  rcResult = pNewRect->m_rcLine;
+                  if (fWidthDiff > 0.0f)
+                    rcResult.left = rcResult.right - fWidthDiff;
+                  else {
+                    rcResult.left = rcResult.right;
+                    rcResult.right += (-fWidthDiff);
+                  }
+                }
+                m_RefreshRects.Add(rcResult);
+              }
+            } else {
+              rcResult = pOldRect->m_rcLine;
+              rcResult.Union(pNewRect->m_rcLine);
+              m_RefreshRects.Add(rcResult);
             }
+          } else {
+            // don't need to do anything
+          }
         }
-        i++;
+      } else {
+        m_RefreshRects.Add(pOldRect->m_rcLine);
+      }
+    } else {
+      if (pNewRect) {
+        m_RefreshRects.Add(pNewRect->m_rcLine);
+      } else {
+        // error
+      }
     }
+    i++;
+  }
 }
 
-void CFX_Edit_Refresh::AddRefresh(const CPDF_Rect & rect)
-{
-    m_RefreshRects.Add(rect);
+void CFX_Edit_Refresh::AddRefresh(const CPDF_Rect& rect) {
+  m_RefreshRects.Add(rect);
 }
 
-const CFX_Edit_RectArray * CFX_Edit_Refresh::GetRefreshRects() const
-{
-    return &m_RefreshRects;
+const CFX_Edit_RectArray* CFX_Edit_Refresh::GetRefreshRects() const {
+  return &m_RefreshRects;
 }
 
-void CFX_Edit_Refresh::EndRefresh()
-{
-    m_RefreshRects.Empty();
+void CFX_Edit_Refresh::EndRefresh() {
+  m_RefreshRects.Empty();
 }
 
-/* ------------------------------------- CFX_Edit_Undo ------------------------------------- */
+/* ------------------------------------- CFX_Edit_Undo
+ * ------------------------------------- */
 
-CFX_Edit_Undo::CFX_Edit_Undo(int32_t nBufsize) : m_nCurUndoPos(0),
-    m_nBufSize(nBufsize),
-    m_bModified(FALSE),
-    m_bVirgin(TRUE),
-    m_bWorking(FALSE)
-{
-}
+CFX_Edit_Undo::CFX_Edit_Undo(int32_t nBufsize)
+    : m_nCurUndoPos(0),
+      m_nBufSize(nBufsize),
+      m_bModified(FALSE),
+      m_bVirgin(TRUE),
+      m_bWorking(FALSE) {}
 
-CFX_Edit_Undo::~CFX_Edit_Undo()
-{
-    Reset();
+CFX_Edit_Undo::~CFX_Edit_Undo() {
+  Reset();
 }
 
-FX_BOOL CFX_Edit_Undo::CanUndo() const
-{
-    return m_nCurUndoPos > 0;
+FX_BOOL CFX_Edit_Undo::CanUndo() const {
+  return m_nCurUndoPos > 0;
 }
 
-void CFX_Edit_Undo::Undo()
-{
-    m_bWorking = TRUE;
+void CFX_Edit_Undo::Undo() {
+  m_bWorking = TRUE;
 
-    if (m_nCurUndoPos > 0)
-    {
-        IFX_Edit_UndoItem * pItem = m_UndoItemStack.GetAt(m_nCurUndoPos-1);
-        ASSERT(pItem != NULL);
+  if (m_nCurUndoPos > 0) {
+    IFX_Edit_UndoItem* pItem = m_UndoItemStack.GetAt(m_nCurUndoPos - 1);
+    ASSERT(pItem != NULL);
 
-        pItem->Undo();
+    pItem->Undo();
 
-        m_nCurUndoPos--;
-        m_bModified = (m_nCurUndoPos != 0);
-    }
+    m_nCurUndoPos--;
+    m_bModified = (m_nCurUndoPos != 0);
+  }
 
-    m_bWorking = FALSE;
+  m_bWorking = FALSE;
 }
 
-FX_BOOL CFX_Edit_Undo::CanRedo() const
-{
-    return m_nCurUndoPos < m_UndoItemStack.GetSize();
+FX_BOOL CFX_Edit_Undo::CanRedo() const {
+  return m_nCurUndoPos < m_UndoItemStack.GetSize();
 }
 
-void CFX_Edit_Undo::Redo()
-{
-    m_bWorking = TRUE;
+void CFX_Edit_Undo::Redo() {
+  m_bWorking = TRUE;
 
-    int32_t nStackSize = m_UndoItemStack.GetSize();
+  int32_t nStackSize = m_UndoItemStack.GetSize();
 
-    if (m_nCurUndoPos < nStackSize)
-    {
-        IFX_Edit_UndoItem * pItem = m_UndoItemStack.GetAt(m_nCurUndoPos);
-        ASSERT(pItem != NULL);
+  if (m_nCurUndoPos < nStackSize) {
+    IFX_Edit_UndoItem* pItem = m_UndoItemStack.GetAt(m_nCurUndoPos);
+    ASSERT(pItem != NULL);
 
-        pItem->Redo();
+    pItem->Redo();
 
-        m_nCurUndoPos++;
-        m_bModified = (m_nCurUndoPos != 0);
-    }
+    m_nCurUndoPos++;
+    m_bModified = (m_nCurUndoPos != 0);
+  }
 
-    m_bWorking = FALSE;
+  m_bWorking = FALSE;
 }
 
-FX_BOOL CFX_Edit_Undo::IsWorking() const
-{
-    return m_bWorking;
+FX_BOOL CFX_Edit_Undo::IsWorking() const {
+  return m_bWorking;
 }
 
-void CFX_Edit_Undo::AddItem(IFX_Edit_UndoItem* pItem)
-{
-    ASSERT(!m_bWorking);
-    ASSERT(pItem != NULL);
-    ASSERT(m_nBufSize > 1);
+void CFX_Edit_Undo::AddItem(IFX_Edit_UndoItem* pItem) {
+  ASSERT(!m_bWorking);
+  ASSERT(pItem != NULL);
+  ASSERT(m_nBufSize > 1);
 
-    if (m_nCurUndoPos < m_UndoItemStack.GetSize())
-        RemoveTails();
+  if (m_nCurUndoPos < m_UndoItemStack.GetSize())
+    RemoveTails();
 
-    if (m_UndoItemStack.GetSize() >= m_nBufSize)
-    {
-        RemoveHeads();
-        m_bVirgin = FALSE;
-    }
+  if (m_UndoItemStack.GetSize() >= m_nBufSize) {
+    RemoveHeads();
+    m_bVirgin = FALSE;
+  }
 
-    m_UndoItemStack.Add(pItem);
-    m_nCurUndoPos = m_UndoItemStack.GetSize();
+  m_UndoItemStack.Add(pItem);
+  m_nCurUndoPos = m_UndoItemStack.GetSize();
 
-    m_bModified = (m_nCurUndoPos != 0);
+  m_bModified = (m_nCurUndoPos != 0);
 }
 
-FX_BOOL CFX_Edit_Undo::IsModified() const
-{
-    return m_bVirgin ? m_bModified : TRUE;
+FX_BOOL CFX_Edit_Undo::IsModified() const {
+  return m_bVirgin ? m_bModified : TRUE;
 }
 
-IFX_Edit_UndoItem* CFX_Edit_Undo::GetItem(int32_t nIndex)
-{
-    if (nIndex>=0 && nIndex < m_UndoItemStack.GetSize())
-        return m_UndoItemStack.GetAt(nIndex);
+IFX_Edit_UndoItem* CFX_Edit_Undo::GetItem(int32_t nIndex) {
+  if (nIndex >= 0 && nIndex < m_UndoItemStack.GetSize())
+    return m_UndoItemStack.GetAt(nIndex);
 
-    return NULL;
+  return NULL;
 }
 
-void CFX_Edit_Undo::RemoveHeads()
-{
-    ASSERT(m_UndoItemStack.GetSize() > 1);
+void CFX_Edit_Undo::RemoveHeads() {
+  ASSERT(m_UndoItemStack.GetSize() > 1);
 
-    delete m_UndoItemStack.GetAt(0);
-    m_UndoItemStack.RemoveAt(0);
+  delete m_UndoItemStack.GetAt(0);
+  m_UndoItemStack.RemoveAt(0);
 }
 
-void CFX_Edit_Undo::RemoveTails()
-{
-    for (int32_t i = m_UndoItemStack.GetSize()-1; i >= m_nCurUndoPos; i--)
-    {
-        delete m_UndoItemStack.GetAt(i);
-        m_UndoItemStack.RemoveAt(i);
-    }
+void CFX_Edit_Undo::RemoveTails() {
+  for (int32_t i = m_UndoItemStack.GetSize() - 1; i >= m_nCurUndoPos; i--) {
+    delete m_UndoItemStack.GetAt(i);
+    m_UndoItemStack.RemoveAt(i);
+  }
 }
 
-void CFX_Edit_Undo::Reset()
-{
-    for (int32_t i=0, sz=m_UndoItemStack.GetSize(); i < sz; i++)
-    {
-        delete m_UndoItemStack.GetAt(i);
-    }
-    m_nCurUndoPos = 0;
-    m_UndoItemStack.RemoveAll();
+void CFX_Edit_Undo::Reset() {
+  for (int32_t i = 0, sz = m_UndoItemStack.GetSize(); i < sz; i++) {
+    delete m_UndoItemStack.GetAt(i);
+  }
+  m_nCurUndoPos = 0;
+  m_UndoItemStack.RemoveAll();
 }
 
-/* -------------------------------- CFX_Edit_GroupUndoItem -------------------------------- */
+/* -------------------------------- CFX_Edit_GroupUndoItem
+ * -------------------------------- */
 
-CFX_Edit_GroupUndoItem::CFX_Edit_GroupUndoItem(const CFX_WideString& sTitle) : m_sTitle(sTitle)
-{
-}
+CFX_Edit_GroupUndoItem::CFX_Edit_GroupUndoItem(const CFX_WideString& sTitle)
+    : m_sTitle(sTitle) {}
 
-CFX_Edit_GroupUndoItem::~CFX_Edit_GroupUndoItem()
-{
-    for (int i=0,sz=m_Items.GetSize(); i<sz; i++)
-    {
-        delete m_Items[i];
-    }
+CFX_Edit_GroupUndoItem::~CFX_Edit_GroupUndoItem() {
+  for (int i = 0, sz = m_Items.GetSize(); i < sz; i++) {
+    delete m_Items[i];
+  }
 
-    m_Items.RemoveAll();
+  m_Items.RemoveAll();
 }
 
-void CFX_Edit_GroupUndoItem::AddUndoItem(CFX_Edit_UndoItem* pUndoItem)
-{
-    ASSERT(pUndoItem != NULL);
+void CFX_Edit_GroupUndoItem::AddUndoItem(CFX_Edit_UndoItem* pUndoItem) {
+  ASSERT(pUndoItem != NULL);
 
-    pUndoItem->SetFirst(FALSE);
-    pUndoItem->SetLast(FALSE);
+  pUndoItem->SetFirst(FALSE);
+  pUndoItem->SetLast(FALSE);
 
-    m_Items.Add(pUndoItem);
+  m_Items.Add(pUndoItem);
 
-    if (m_sTitle.IsEmpty())
-        m_sTitle = pUndoItem->GetUndoTitle();
+  if (m_sTitle.IsEmpty())
+    m_sTitle = pUndoItem->GetUndoTitle();
 }
 
-void CFX_Edit_GroupUndoItem::UpdateItems()
-{
-    if (m_Items.GetSize() > 0)
-    {
-        CFX_Edit_UndoItem* pFirstItem = m_Items[0];
-        ASSERT(pFirstItem != NULL);
-        pFirstItem->SetFirst(TRUE);
+void CFX_Edit_GroupUndoItem::UpdateItems() {
+  if (m_Items.GetSize() > 0) {
+    CFX_Edit_UndoItem* pFirstItem = m_Items[0];
+    ASSERT(pFirstItem != NULL);
+    pFirstItem->SetFirst(TRUE);
 
-        CFX_Edit_UndoItem* pLastItem = m_Items[m_Items.GetSize() - 1];
-        ASSERT(pLastItem != NULL);
-        pLastItem->SetLast(TRUE);
-    }
+    CFX_Edit_UndoItem* pLastItem = m_Items[m_Items.GetSize() - 1];
+    ASSERT(pLastItem != NULL);
+    pLastItem->SetLast(TRUE);
+  }
 }
 
-void CFX_Edit_GroupUndoItem::Undo()
-{
-    for (int i=m_Items.GetSize()-1; i>=0; i--)
-    {
-        CFX_Edit_UndoItem* pUndoItem = m_Items[i];
-        ASSERT(pUndoItem != NULL);
+void CFX_Edit_GroupUndoItem::Undo() {
+  for (int i = m_Items.GetSize() - 1; i >= 0; i--) {
+    CFX_Edit_UndoItem* pUndoItem = m_Items[i];
+    ASSERT(pUndoItem != NULL);
 
-        pUndoItem->Undo();
-    }
+    pUndoItem->Undo();
+  }
 }
 
-void CFX_Edit_GroupUndoItem::Redo()
-{
-    for (int i=0,sz=m_Items.GetSize(); i<sz; i++)
-    {
-        CFX_Edit_UndoItem* pUndoItem = m_Items[i];
-        ASSERT(pUndoItem != NULL);
+void CFX_Edit_GroupUndoItem::Redo() {
+  for (int i = 0, sz = m_Items.GetSize(); i < sz; i++) {
+    CFX_Edit_UndoItem* pUndoItem = m_Items[i];
+    ASSERT(pUndoItem != NULL);
 
-        pUndoItem->Redo();
-    }
+    pUndoItem->Redo();
+  }
 }
 
-CFX_WideString CFX_Edit_GroupUndoItem::GetUndoTitle()
-{
-    return m_sTitle;
+CFX_WideString CFX_Edit_GroupUndoItem::GetUndoTitle() {
+  return m_sTitle;
 }
 
-/* ------------------------------------- CFX_Edit_UndoItem derived classes ------------------------------------- */
+/* ------------------------------------- CFX_Edit_UndoItem derived classes
+ * ------------------------------------- */
 
-CFXEU_InsertWord::CFXEU_InsertWord(CFX_Edit * pEdit, const CPVT_WordPlace & wpOldPlace, const CPVT_WordPlace & wpNewPlace,
-                                 FX_WORD word, int32_t charset, const CPVT_WordProps * pWordProps)
-    : m_pEdit(pEdit), m_wpOld(wpOldPlace), m_wpNew(wpNewPlace), m_Word(word), m_nCharset(charset), m_WordProps()
-{
-    if (pWordProps)
-        m_WordProps = *pWordProps;
+CFXEU_InsertWord::CFXEU_InsertWord(CFX_Edit* pEdit,
+                                   const CPVT_WordPlace& wpOldPlace,
+                                   const CPVT_WordPlace& wpNewPlace,
+                                   FX_WORD word,
+                                   int32_t charset,
+                                   const CPVT_WordProps* pWordProps)
+    : m_pEdit(pEdit),
+      m_wpOld(wpOldPlace),
+      m_wpNew(wpNewPlace),
+      m_Word(word),
+      m_nCharset(charset),
+      m_WordProps() {
+  if (pWordProps)
+    m_WordProps = *pWordProps;
 }
 
-CFXEU_InsertWord::~CFXEU_InsertWord()
-{
-}
+CFXEU_InsertWord::~CFXEU_InsertWord() {}
 
-void CFXEU_InsertWord::Redo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetCaret(m_wpOld);
-        m_pEdit->InsertWord(m_Word,m_nCharset,&m_WordProps,FALSE,TRUE);
-    }
+void CFXEU_InsertWord::Redo() {
+  if (m_pEdit) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetCaret(m_wpOld);
+    m_pEdit->InsertWord(m_Word, m_nCharset, &m_WordProps, FALSE, TRUE);
+  }
 }
 
-void CFXEU_InsertWord::Undo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetCaret(m_wpNew);
-        m_pEdit->Backspace(FALSE,TRUE);
-    }
+void CFXEU_InsertWord::Undo() {
+  if (m_pEdit) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetCaret(m_wpNew);
+    m_pEdit->Backspace(FALSE, TRUE);
+  }
 }
 
 /* -------------------------------------------------------------------------- */
 
-CFXEU_InsertReturn::CFXEU_InsertReturn(CFX_Edit * pEdit, const CPVT_WordPlace & wpOldPlace, const CPVT_WordPlace & wpNewPlace,
-             const CPVT_SecProps * pSecProps, const CPVT_WordProps * pWordProps) :
-            m_pEdit(pEdit),
-            m_wpOld(wpOldPlace),
-            m_wpNew(wpNewPlace),
-            m_SecProps(),
-            m_WordProps()
-{
-    if (pSecProps)
-        m_SecProps = *pSecProps;
-    if (pWordProps)
-        m_WordProps = *pWordProps;
-}
-
-CFXEU_InsertReturn::~CFXEU_InsertReturn()
-{
-}
-
-void CFXEU_InsertReturn::Redo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetCaret(m_wpOld);
-        m_pEdit->InsertReturn(&m_SecProps,&m_WordProps,FALSE,TRUE);
-    }
+CFXEU_InsertReturn::CFXEU_InsertReturn(CFX_Edit* pEdit,
+                                       const CPVT_WordPlace& wpOldPlace,
+                                       const CPVT_WordPlace& wpNewPlace,
+                                       const CPVT_SecProps* pSecProps,
+                                       const CPVT_WordProps* pWordProps)
+    : m_pEdit(pEdit),
+      m_wpOld(wpOldPlace),
+      m_wpNew(wpNewPlace),
+      m_SecProps(),
+      m_WordProps() {
+  if (pSecProps)
+    m_SecProps = *pSecProps;
+  if (pWordProps)
+    m_WordProps = *pWordProps;
 }
 
-void CFXEU_InsertReturn::Undo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetCaret(m_wpNew);
-        m_pEdit->Backspace(FALSE,TRUE);
-    }
-}
+CFXEU_InsertReturn::~CFXEU_InsertReturn() {}
 
-/* -------------------------------------------------------------------------- */
-//CFXEU_Backspace
-
-CFXEU_Backspace::CFXEU_Backspace(CFX_Edit * pEdit, const CPVT_WordPlace & wpOldPlace, const CPVT_WordPlace & wpNewPlace,
-                               FX_WORD word, int32_t charset,
-                               const CPVT_SecProps & SecProps, const CPVT_WordProps & WordProps) :
-            m_pEdit(pEdit),
-            m_wpOld(wpOldPlace),
-            m_wpNew(wpNewPlace),
-            m_Word(word),
-            m_nCharset(charset),
-            m_SecProps(SecProps),
-            m_WordProps(WordProps)
-{
-}
-
-CFXEU_Backspace::~CFXEU_Backspace()
-{
-}
-
-void CFXEU_Backspace::Redo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetCaret(m_wpOld);
-        m_pEdit->Backspace(FALSE,TRUE);
-    }
+void CFXEU_InsertReturn::Redo() {
+  if (m_pEdit) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetCaret(m_wpOld);
+    m_pEdit->InsertReturn(&m_SecProps, &m_WordProps, FALSE, TRUE);
+  }
 }
 
-void CFXEU_Backspace::Undo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetCaret(m_wpNew);
-        if (m_wpNew.SecCmp(m_wpOld) != 0)
-        {
-            m_pEdit->InsertReturn(&m_SecProps,&m_WordProps,FALSE,TRUE);
-        }
-        else
-        {
-            m_pEdit->InsertWord(m_Word,m_nCharset,&m_WordProps,FALSE,TRUE);
-        }
-    }
+void CFXEU_InsertReturn::Undo() {
+  if (m_pEdit) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetCaret(m_wpNew);
+    m_pEdit->Backspace(FALSE, TRUE);
+  }
 }
 
 /* -------------------------------------------------------------------------- */
-//CFXEU_Delete
-
-CFXEU_Delete::CFXEU_Delete(CFX_Edit * pEdit, const CPVT_WordPlace & wpOldPlace, const CPVT_WordPlace & wpNewPlace,
-                               FX_WORD word, int32_t charset,
-                               const CPVT_SecProps & SecProps, const CPVT_WordProps & WordProps, FX_BOOL bSecEnd) :
-            m_pEdit(pEdit),
-            m_wpOld(wpOldPlace),
-            m_wpNew(wpNewPlace),
-            m_Word(word),
-            m_nCharset(charset),
-            m_SecProps(SecProps),
-            m_WordProps(WordProps),
-            m_bSecEnd(bSecEnd)
-{
-}
-
-CFXEU_Delete::~CFXEU_Delete()
-{
-}
-
-void CFXEU_Delete::Redo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetCaret(m_wpOld);
-        m_pEdit->Delete(FALSE,TRUE);
-    }
+// CFXEU_Backspace
+
+CFXEU_Backspace::CFXEU_Backspace(CFX_Edit* pEdit,
+                                 const CPVT_WordPlace& wpOldPlace,
+                                 const CPVT_WordPlace& wpNewPlace,
+                                 FX_WORD word,
+                                 int32_t charset,
+                                 const CPVT_SecProps& SecProps,
+                                 const CPVT_WordProps& WordProps)
+    : m_pEdit(pEdit),
+      m_wpOld(wpOldPlace),
+      m_wpNew(wpNewPlace),
+      m_Word(word),
+      m_nCharset(charset),
+      m_SecProps(SecProps),
+      m_WordProps(WordProps) {}
+
+CFXEU_Backspace::~CFXEU_Backspace() {}
+
+void CFXEU_Backspace::Redo() {
+  if (m_pEdit) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetCaret(m_wpOld);
+    m_pEdit->Backspace(FALSE, TRUE);
+  }
+}
+
+void CFXEU_Backspace::Undo() {
+  if (m_pEdit) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetCaret(m_wpNew);
+    if (m_wpNew.SecCmp(m_wpOld) != 0) {
+      m_pEdit->InsertReturn(&m_SecProps, &m_WordProps, FALSE, TRUE);
+    } else {
+      m_pEdit->InsertWord(m_Word, m_nCharset, &m_WordProps, FALSE, TRUE);
+    }
+  }
 }
 
-void CFXEU_Delete::Undo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetCaret(m_wpNew);
-        if (m_bSecEnd)
-        {
-            m_pEdit->InsertReturn(&m_SecProps,&m_WordProps,FALSE,TRUE);
-        }
-        else
-        {
-            m_pEdit->InsertWord(m_Word,m_nCharset,&m_WordProps,FALSE,TRUE);
-        }
-    }
+/* -------------------------------------------------------------------------- */
+// CFXEU_Delete
+
+CFXEU_Delete::CFXEU_Delete(CFX_Edit* pEdit,
+                           const CPVT_WordPlace& wpOldPlace,
+                           const CPVT_WordPlace& wpNewPlace,
+                           FX_WORD word,
+                           int32_t charset,
+                           const CPVT_SecProps& SecProps,
+                           const CPVT_WordProps& WordProps,
+                           FX_BOOL bSecEnd)
+    : m_pEdit(pEdit),
+      m_wpOld(wpOldPlace),
+      m_wpNew(wpNewPlace),
+      m_Word(word),
+      m_nCharset(charset),
+      m_SecProps(SecProps),
+      m_WordProps(WordProps),
+      m_bSecEnd(bSecEnd) {}
+
+CFXEU_Delete::~CFXEU_Delete() {}
+
+void CFXEU_Delete::Redo() {
+  if (m_pEdit) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetCaret(m_wpOld);
+    m_pEdit->Delete(FALSE, TRUE);
+  }
+}
+
+void CFXEU_Delete::Undo() {
+  if (m_pEdit) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetCaret(m_wpNew);
+    if (m_bSecEnd) {
+      m_pEdit->InsertReturn(&m_SecProps, &m_WordProps, FALSE, TRUE);
+    } else {
+      m_pEdit->InsertWord(m_Word, m_nCharset, &m_WordProps, FALSE, TRUE);
+    }
+  }
 }
 
 /* -------------------------------------------------------------------------- */
-//CFXEU_Clear
+// CFXEU_Clear
 
-CFXEU_Clear::CFXEU_Clear(CFX_Edit * pEdit,  const CPVT_WordRange & wrSel, const CFX_WideString & swText) :
-            m_pEdit(pEdit),
-            m_wrSel(wrSel),
-            m_swText(swText)
-{
-}
+CFXEU_Clear::CFXEU_Clear(CFX_Edit* pEdit,
+                         const CPVT_WordRange& wrSel,
+                         const CFX_WideString& swText)
+    : m_pEdit(pEdit), m_wrSel(wrSel), m_swText(swText) {}
 
-CFXEU_Clear::~CFXEU_Clear()
-{
-}
+CFXEU_Clear::~CFXEU_Clear() {}
 
-void CFXEU_Clear::Redo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetSel(m_wrSel.BeginPos,m_wrSel.EndPos);
-        m_pEdit->Clear(FALSE,TRUE);
-    }
+void CFXEU_Clear::Redo() {
+  if (m_pEdit) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetSel(m_wrSel.BeginPos, m_wrSel.EndPos);
+    m_pEdit->Clear(FALSE, TRUE);
+  }
 }
 
-void CFXEU_Clear::Undo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetCaret(m_wrSel.BeginPos);
-        m_pEdit->InsertText(m_swText.c_str(), DEFAULT_CHARSET, NULL, NULL, FALSE, TRUE);
-        m_pEdit->SetSel(m_wrSel.BeginPos,m_wrSel.EndPos);
-    }
+void CFXEU_Clear::Undo() {
+  if (m_pEdit) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetCaret(m_wrSel.BeginPos);
+    m_pEdit->InsertText(m_swText.c_str(), DEFAULT_CHARSET, NULL, NULL, FALSE,
+                        TRUE);
+    m_pEdit->SetSel(m_wrSel.BeginPos, m_wrSel.EndPos);
+  }
 }
 
 /* -------------------------------------------------------------------------- */
-//CFXEU_ClearRich
-
-CFXEU_ClearRich::CFXEU_ClearRich(CFX_Edit * pEdit, const CPVT_WordPlace & wpOldPlace, const CPVT_WordPlace & wpNewPlace,
-                               const CPVT_WordRange & wrSel, FX_WORD word, int32_t charset,
-                               const CPVT_SecProps & SecProps, const CPVT_WordProps & WordProps) :
-            m_pEdit(pEdit),
-            m_wpOld(wpOldPlace),
-            m_wpNew(wpNewPlace),
-            m_wrSel(wrSel),
-            m_Word(word),
-            m_nCharset(charset),
-            m_SecProps(SecProps),
-            m_WordProps(WordProps)
-{
-}
-
-CFXEU_ClearRich::~CFXEU_ClearRich()
-{
-}
-
-void CFXEU_ClearRich::Redo()
-{
-    if (m_pEdit && IsLast())
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetSel(m_wrSel.BeginPos,m_wrSel.EndPos);
-        m_pEdit->Clear(FALSE,TRUE);
-    }
-}
-
-void CFXEU_ClearRich::Undo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetCaret(m_wpOld);
-        if (m_wpNew.SecCmp(m_wpOld) != 0)
-        {
-            m_pEdit->InsertReturn(&m_SecProps,&m_WordProps,FALSE,FALSE);
-        }
-        else
-        {
-            m_pEdit->InsertWord(m_Word,m_nCharset,&m_WordProps,FALSE,FALSE);
-        }
-
-        if (IsFirst())
-        {
-            m_pEdit->PaintInsertText(m_wrSel.BeginPos,m_wrSel.EndPos);
-            m_pEdit->SetSel(m_wrSel.BeginPos,m_wrSel.EndPos);
-        }
-    }
+// CFXEU_ClearRich
+
+CFXEU_ClearRich::CFXEU_ClearRich(CFX_Edit* pEdit,
+                                 const CPVT_WordPlace& wpOldPlace,
+                                 const CPVT_WordPlace& wpNewPlace,
+                                 const CPVT_WordRange& wrSel,
+                                 FX_WORD word,
+                                 int32_t charset,
+                                 const CPVT_SecProps& SecProps,
+                                 const CPVT_WordProps& WordProps)
+    : m_pEdit(pEdit),
+      m_wpOld(wpOldPlace),
+      m_wpNew(wpNewPlace),
+      m_wrSel(wrSel),
+      m_Word(word),
+      m_nCharset(charset),
+      m_SecProps(SecProps),
+      m_WordProps(WordProps) {}
+
+CFXEU_ClearRich::~CFXEU_ClearRich() {}
+
+void CFXEU_ClearRich::Redo() {
+  if (m_pEdit && IsLast()) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetSel(m_wrSel.BeginPos, m_wrSel.EndPos);
+    m_pEdit->Clear(FALSE, TRUE);
+  }
+}
+
+void CFXEU_ClearRich::Undo() {
+  if (m_pEdit) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetCaret(m_wpOld);
+    if (m_wpNew.SecCmp(m_wpOld) != 0) {
+      m_pEdit->InsertReturn(&m_SecProps, &m_WordProps, FALSE, FALSE);
+    } else {
+      m_pEdit->InsertWord(m_Word, m_nCharset, &m_WordProps, FALSE, FALSE);
+    }
+
+    if (IsFirst()) {
+      m_pEdit->PaintInsertText(m_wrSel.BeginPos, m_wrSel.EndPos);
+      m_pEdit->SetSel(m_wrSel.BeginPos, m_wrSel.EndPos);
+    }
+  }
 }
 /* -------------------------------------------------------------------------- */
-//CFXEU_InsertText
-
-CFXEU_InsertText::CFXEU_InsertText(CFX_Edit * pEdit, const CPVT_WordPlace & wpOldPlace, const CPVT_WordPlace & wpNewPlace,
-                               const CFX_WideString & swText, int32_t charset,
-                               const CPVT_SecProps * pSecProps, const CPVT_WordProps * pWordProps) :
-            m_pEdit(pEdit),
-            m_wpOld(wpOldPlace),
-            m_wpNew(wpNewPlace),
-            m_swText(swText),
-            m_nCharset(charset),
-            m_SecProps(),
-            m_WordProps()
-{
-    if (pSecProps)
-        m_SecProps = *pSecProps;
-    if (pWordProps)
-        m_WordProps = *pWordProps;
-}
-
-CFXEU_InsertText::~CFXEU_InsertText()
-{
-}
-
-void CFXEU_InsertText::Redo()
-{
-    if (m_pEdit && IsLast())
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetCaret(m_wpOld);
-        m_pEdit->InsertText(m_swText.c_str(), m_nCharset, &m_SecProps, &m_WordProps, FALSE, TRUE);
-    }
-}
-
-void CFXEU_InsertText::Undo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SelectNone();
-        m_pEdit->SetSel(m_wpOld,m_wpNew);
-        m_pEdit->Clear(FALSE,TRUE);
-    }
+// CFXEU_InsertText
+
+CFXEU_InsertText::CFXEU_InsertText(CFX_Edit* pEdit,
+                                   const CPVT_WordPlace& wpOldPlace,
+                                   const CPVT_WordPlace& wpNewPlace,
+                                   const CFX_WideString& swText,
+                                   int32_t charset,
+                                   const CPVT_SecProps* pSecProps,
+                                   const CPVT_WordProps* pWordProps)
+    : m_pEdit(pEdit),
+      m_wpOld(wpOldPlace),
+      m_wpNew(wpNewPlace),
+      m_swText(swText),
+      m_nCharset(charset),
+      m_SecProps(),
+      m_WordProps() {
+  if (pSecProps)
+    m_SecProps = *pSecProps;
+  if (pWordProps)
+    m_WordProps = *pWordProps;
+}
+
+CFXEU_InsertText::~CFXEU_InsertText() {}
+
+void CFXEU_InsertText::Redo() {
+  if (m_pEdit && IsLast()) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetCaret(m_wpOld);
+    m_pEdit->InsertText(m_swText.c_str(), m_nCharset, &m_SecProps, &m_WordProps,
+                        FALSE, TRUE);
+  }
+}
+
+void CFXEU_InsertText::Undo() {
+  if (m_pEdit) {
+    m_pEdit->SelectNone();
+    m_pEdit->SetSel(m_wpOld, m_wpNew);
+    m_pEdit->Clear(FALSE, TRUE);
+  }
 }
 
 /* -------------------------------------------------------------------------- */
 
-CFXEU_SetSecProps::CFXEU_SetSecProps(CFX_Edit * pEdit, const CPVT_WordPlace & place, EDIT_PROPS_E ep,
-        const CPVT_SecProps & oldsecprops, const CPVT_WordProps & oldwordprops,
-        const CPVT_SecProps & newsecprops, const CPVT_WordProps & newwordprops, const CPVT_WordRange & range)
-        : m_pEdit(pEdit),
-        m_wpPlace(place),
-        m_wrPlace(range),
-        m_eProps(ep),
-        m_OldSecProps(oldsecprops),
-        m_NewSecProps(newsecprops),
-        m_OldWordProps(oldwordprops),
-        m_NewWordProps(newwordprops)
-{
-}
-
-CFXEU_SetSecProps::~CFXEU_SetSecProps()
-{
-}
-
-void CFXEU_SetSecProps::Redo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SetSecProps(m_eProps,m_wpPlace,&m_NewSecProps,&m_NewWordProps,m_wrPlace,FALSE);
-        if (IsLast())
-        {
-            m_pEdit->SelectNone();
-            m_pEdit->PaintSetProps(m_eProps,m_wrPlace);
-            m_pEdit->SetSel(m_wrPlace.BeginPos,m_wrPlace.EndPos);
-        }
-    }
-}
-
-void CFXEU_SetSecProps::Undo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SetSecProps(m_eProps,m_wpPlace,&m_OldSecProps,&m_OldWordProps,m_wrPlace,FALSE);
-        if (IsFirst())
-        {
-            m_pEdit->SelectNone();
-            m_pEdit->PaintSetProps(m_eProps,m_wrPlace);
-            m_pEdit->SetSel(m_wrPlace.BeginPos,m_wrPlace.EndPos);
-        }
-    }
+CFXEU_SetSecProps::CFXEU_SetSecProps(CFX_Edit* pEdit,
+                                     const CPVT_WordPlace& place,
+                                     EDIT_PROPS_E ep,
+                                     const CPVT_SecProps& oldsecprops,
+                                     const CPVT_WordProps& oldwordprops,
+                                     const CPVT_SecProps& newsecprops,
+                                     const CPVT_WordProps& newwordprops,
+                                     const CPVT_WordRange& range)
+    : m_pEdit(pEdit),
+      m_wpPlace(place),
+      m_wrPlace(range),
+      m_eProps(ep),
+      m_OldSecProps(oldsecprops),
+      m_NewSecProps(newsecprops),
+      m_OldWordProps(oldwordprops),
+      m_NewWordProps(newwordprops) {}
+
+CFXEU_SetSecProps::~CFXEU_SetSecProps() {}
+
+void CFXEU_SetSecProps::Redo() {
+  if (m_pEdit) {
+    m_pEdit->SetSecProps(m_eProps, m_wpPlace, &m_NewSecProps, &m_NewWordProps,
+                         m_wrPlace, FALSE);
+    if (IsLast()) {
+      m_pEdit->SelectNone();
+      m_pEdit->PaintSetProps(m_eProps, m_wrPlace);
+      m_pEdit->SetSel(m_wrPlace.BeginPos, m_wrPlace.EndPos);
+    }
+  }
+}
+
+void CFXEU_SetSecProps::Undo() {
+  if (m_pEdit) {
+    m_pEdit->SetSecProps(m_eProps, m_wpPlace, &m_OldSecProps, &m_OldWordProps,
+                         m_wrPlace, FALSE);
+    if (IsFirst()) {
+      m_pEdit->SelectNone();
+      m_pEdit->PaintSetProps(m_eProps, m_wrPlace);
+      m_pEdit->SetSel(m_wrPlace.BeginPos, m_wrPlace.EndPos);
+    }
+  }
 }
 
 /* -------------------------------------------------------------------------- */
 
-CFXEU_SetWordProps::CFXEU_SetWordProps(CFX_Edit * pEdit, const CPVT_WordPlace & place, EDIT_PROPS_E ep,
-        const CPVT_WordProps & oldprops, const CPVT_WordProps & newprops, const CPVT_WordRange & range)
-        : m_pEdit(pEdit),
-        m_wpPlace(place),
-        m_wrPlace(range),
-        m_eProps(ep),
-        m_OldWordProps(oldprops),
-        m_NewWordProps(newprops)
-{
-}
-
-CFXEU_SetWordProps::~CFXEU_SetWordProps()
-{
-}
-
-void CFXEU_SetWordProps::Redo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SetWordProps(m_eProps,m_wpPlace,&m_NewWordProps,m_wrPlace,FALSE);
-        if (IsLast())
-        {
-            m_pEdit->SelectNone();
-            m_pEdit->PaintSetProps(m_eProps,m_wrPlace);
-            m_pEdit->SetSel(m_wrPlace.BeginPos,m_wrPlace.EndPos);
-        }
-    }
-}
-
-void CFXEU_SetWordProps::Undo()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SetWordProps(m_eProps,m_wpPlace,&m_OldWordProps,m_wrPlace,FALSE);
-        if (IsFirst())
-        {
-            m_pEdit->SelectNone();
-            m_pEdit->PaintSetProps(m_eProps,m_wrPlace);
-            m_pEdit->SetSel(m_wrPlace.BeginPos,m_wrPlace.EndPos);
-        }
-    }
-}
-
-/* ------------------------------------- CFX_Edit ------------------------------------- */
-
-CFX_Edit::CFX_Edit(IPDF_VariableText * pVT) :
-    m_pVT(pVT),
-    m_pNotify(NULL),
-    m_pOprNotify(NULL),
-    m_pVTProvide(NULL),
-    m_wpCaret(-1,-1,-1),
-    m_wpOldCaret(-1,-1,-1),
-    m_SelState(),
-    m_ptScrollPos(0,0),
-    m_ptRefreshScrollPos(0,0),
-    m_bEnableScroll(FALSE),
-    m_pIterator(NULL),
-    m_ptCaret(0.0f,0.0f),
-    m_Undo(FX_EDIT_UNDO_MAXITEM),
-    m_nAlignment(0),
-    m_bNotifyFlag(FALSE),
-    m_bEnableOverflow(FALSE),
-    m_bEnableRefresh(TRUE),
-    m_rcOldContent(0.0f,0.0f,0.0f,0.0f),
-    m_bEnableUndo(TRUE),
-    m_bNotify(TRUE),
-    m_bOprNotify(FALSE),
-    m_pGroupUndoItem(NULL)
-{
-    ASSERT(pVT != NULL);
-}
-
-CFX_Edit::~CFX_Edit()
-{
-    delete m_pVTProvide;
-    m_pVTProvide = NULL;
-    delete m_pIterator;
-    m_pIterator = NULL;
-    ASSERT(m_pGroupUndoItem == NULL);
+CFXEU_SetWordProps::CFXEU_SetWordProps(CFX_Edit* pEdit,
+                                       const CPVT_WordPlace& place,
+                                       EDIT_PROPS_E ep,
+                                       const CPVT_WordProps& oldprops,
+                                       const CPVT_WordProps& newprops,
+                                       const CPVT_WordRange& range)
+    : m_pEdit(pEdit),
+      m_wpPlace(place),
+      m_wrPlace(range),
+      m_eProps(ep),
+      m_OldWordProps(oldprops),
+      m_NewWordProps(newprops) {}
+
+CFXEU_SetWordProps::~CFXEU_SetWordProps() {}
+
+void CFXEU_SetWordProps::Redo() {
+  if (m_pEdit) {
+    m_pEdit->SetWordProps(m_eProps, m_wpPlace, &m_NewWordProps, m_wrPlace,
+                          FALSE);
+    if (IsLast()) {
+      m_pEdit->SelectNone();
+      m_pEdit->PaintSetProps(m_eProps, m_wrPlace);
+      m_pEdit->SetSel(m_wrPlace.BeginPos, m_wrPlace.EndPos);
+    }
+  }
+}
+
+void CFXEU_SetWordProps::Undo() {
+  if (m_pEdit) {
+    m_pEdit->SetWordProps(m_eProps, m_wpPlace, &m_OldWordProps, m_wrPlace,
+                          FALSE);
+    if (IsFirst()) {
+      m_pEdit->SelectNone();
+      m_pEdit->PaintSetProps(m_eProps, m_wrPlace);
+      m_pEdit->SetSel(m_wrPlace.BeginPos, m_wrPlace.EndPos);
+    }
+  }
+}
+
+/* ------------------------------------- CFX_Edit
+ * ------------------------------------- */
+
+CFX_Edit::CFX_Edit(IPDF_VariableText* pVT)
+    : m_pVT(pVT),
+      m_pNotify(NULL),
+      m_pOprNotify(NULL),
+      m_pVTProvide(NULL),
+      m_wpCaret(-1, -1, -1),
+      m_wpOldCaret(-1, -1, -1),
+      m_SelState(),
+      m_ptScrollPos(0, 0),
+      m_ptRefreshScrollPos(0, 0),
+      m_bEnableScroll(FALSE),
+      m_pIterator(NULL),
+      m_ptCaret(0.0f, 0.0f),
+      m_Undo(FX_EDIT_UNDO_MAXITEM),
+      m_nAlignment(0),
+      m_bNotifyFlag(FALSE),
+      m_bEnableOverflow(FALSE),
+      m_bEnableRefresh(TRUE),
+      m_rcOldContent(0.0f, 0.0f, 0.0f, 0.0f),
+      m_bEnableUndo(TRUE),
+      m_bNotify(TRUE),
+      m_bOprNotify(FALSE),
+      m_pGroupUndoItem(NULL) {
+  ASSERT(pVT != NULL);
+}
+
+CFX_Edit::~CFX_Edit() {
+  delete m_pVTProvide;
+  m_pVTProvide = NULL;
+  delete m_pIterator;
+  m_pIterator = NULL;
+  ASSERT(m_pGroupUndoItem == NULL);
 }
 
 // public methods
 
-void CFX_Edit::Initialize()
-{
-    m_pVT->Initialize();
-    SetCaret(m_pVT->GetBeginWordPlace());
-    SetCaretOrigin();
+void CFX_Edit::Initialize() {
+  m_pVT->Initialize();
+  SetCaret(m_pVT->GetBeginWordPlace());
+  SetCaretOrigin();
 }
 
-void CFX_Edit::SetFontMap(IFX_Edit_FontMap * pFontMap)
-{
-    delete m_pVTProvide;
-    m_pVT->SetProvider(m_pVTProvide = new CFX_Edit_Provider(pFontMap));
+void CFX_Edit::SetFontMap(IFX_Edit_FontMap* pFontMap) {
+  delete m_pVTProvide;
+  m_pVT->SetProvider(m_pVTProvide = new CFX_Edit_Provider(pFontMap));
 }
 
-void CFX_Edit::SetVTProvider(IPDF_VariableText_Provider* pProvider)
-{
-    m_pVT->SetProvider(pProvider);
+void CFX_Edit::SetVTProvider(IPDF_VariableText_Provider* pProvider) {
+  m_pVT->SetProvider(pProvider);
 }
 
-void CFX_Edit::SetNotify(IFX_Edit_Notify* pNotify)
-{
-    m_pNotify = pNotify;
+void CFX_Edit::SetNotify(IFX_Edit_Notify* pNotify) {
+  m_pNotify = pNotify;
 }
 
-void CFX_Edit::SetOprNotify(IFX_Edit_OprNotify* pOprNotify)
-{
-    m_pOprNotify = pOprNotify;
+void CFX_Edit::SetOprNotify(IFX_Edit_OprNotify* pOprNotify) {
+  m_pOprNotify = pOprNotify;
 }
 
-IFX_Edit_Iterator * CFX_Edit::GetIterator()
-{
-    if (!m_pIterator)
-        m_pIterator = new CFX_Edit_Iterator(this,m_pVT->GetIterator());
+IFX_Edit_Iterator* CFX_Edit::GetIterator() {
+  if (!m_pIterator)
+    m_pIterator = new CFX_Edit_Iterator(this, m_pVT->GetIterator());
 
-    return m_pIterator;
+  return m_pIterator;
 }
 
-IPDF_VariableText * CFX_Edit::GetVariableText()
-{
-    return m_pVT;
+IPDF_VariableText* CFX_Edit::GetVariableText() {
+  return m_pVT;
 }
 
-IFX_Edit_FontMap* CFX_Edit::GetFontMap()
-{
-    if (m_pVTProvide)
-        return m_pVTProvide->GetFontMap();
+IFX_Edit_FontMap* CFX_Edit::GetFontMap() {
+  if (m_pVTProvide)
+    return m_pVTProvide->GetFontMap();
 
-    return NULL;
+  return NULL;
 }
 
-void CFX_Edit::SetPlateRect(const CPDF_Rect & rect, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetPlateRect(rect);
-    m_ptScrollPos = CPDF_Point(rect.left,rect.top);
-    if (bPaint) Paint();
+void CFX_Edit::SetPlateRect(const CPDF_Rect& rect, FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetPlateRect(rect);
+  m_ptScrollPos = CPDF_Point(rect.left, rect.top);
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetAlignmentH(int32_t nFormat/* =0 */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetAlignment(nFormat);
-    if (bPaint) Paint();
+void CFX_Edit::SetAlignmentH(int32_t nFormat /* =0 */,
+                             FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetAlignment(nFormat);
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetAlignmentV(int32_t nFormat/* =0 */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_nAlignment = nFormat;
-    if (bPaint) Paint();
+void CFX_Edit::SetAlignmentV(int32_t nFormat /* =0 */,
+                             FX_BOOL bPaint /* = TRUE*/) {
+  m_nAlignment = nFormat;
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetPasswordChar(FX_WORD wSubWord/* ='*' */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetPasswordChar(wSubWord);
-    if (bPaint) Paint();
+void CFX_Edit::SetPasswordChar(FX_WORD wSubWord /* ='*' */,
+                               FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetPasswordChar(wSubWord);
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetLimitChar(int32_t nLimitChar/* =0 */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetLimitChar(nLimitChar);
-    if (bPaint) Paint();
+void CFX_Edit::SetLimitChar(int32_t nLimitChar /* =0 */,
+                            FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetLimitChar(nLimitChar);
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetCharArray(int32_t nCharArray/* =0 */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetCharArray(nCharArray);
-    if (bPaint) Paint();
+void CFX_Edit::SetCharArray(int32_t nCharArray /* =0 */,
+                            FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetCharArray(nCharArray);
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetCharSpace(FX_FLOAT fCharSpace/* =0.0f */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetCharSpace(fCharSpace);
-    if (bPaint) Paint();
+void CFX_Edit::SetCharSpace(FX_FLOAT fCharSpace /* =0.0f */,
+                            FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetCharSpace(fCharSpace);
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetHorzScale(int32_t nHorzScale/* =100 */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetHorzScale(nHorzScale);
-    if (bPaint) Paint();
+void CFX_Edit::SetHorzScale(int32_t nHorzScale /* =100 */,
+                            FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetHorzScale(nHorzScale);
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetMultiLine(FX_BOOL bMultiLine/* =TRUE */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetMultiLine(bMultiLine);
-    if (bPaint) Paint();
+void CFX_Edit::SetMultiLine(FX_BOOL bMultiLine /* =TRUE */,
+                            FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetMultiLine(bMultiLine);
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetAutoReturn(FX_BOOL bAuto/* =TRUE */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetAutoReturn(bAuto);
-    if (bPaint) Paint();
+void CFX_Edit::SetAutoReturn(FX_BOOL bAuto /* =TRUE */,
+                             FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetAutoReturn(bAuto);
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetLineLeading(FX_FLOAT fLineLeading/* =TRUE */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetLineLeading(fLineLeading);
-    if (bPaint) Paint();
+void CFX_Edit::SetLineLeading(FX_FLOAT fLineLeading /* =TRUE */,
+                              FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetLineLeading(fLineLeading);
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetAutoFontSize(FX_BOOL bAuto/* =TRUE */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetAutoFontSize(bAuto);
-    if (bPaint) Paint();
+void CFX_Edit::SetAutoFontSize(FX_BOOL bAuto /* =TRUE */,
+                               FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetAutoFontSize(bAuto);
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetFontSize(FX_FLOAT fFontSize, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetFontSize(fFontSize);
-    if (bPaint) Paint();
+void CFX_Edit::SetFontSize(FX_FLOAT fFontSize, FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetFontSize(fFontSize);
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetAutoScroll(FX_BOOL bAuto/* =TRUE */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_bEnableScroll = bAuto;
-    if (bPaint) Paint();
+void CFX_Edit::SetAutoScroll(FX_BOOL bAuto /* =TRUE */,
+                             FX_BOOL bPaint /* = TRUE*/) {
+  m_bEnableScroll = bAuto;
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetTextOverflow(FX_BOOL bAllowed /*= FALSE*/, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_bEnableOverflow = bAllowed;
-    if (bPaint) Paint();
+void CFX_Edit::SetTextOverflow(FX_BOOL bAllowed /*= FALSE*/,
+                               FX_BOOL bPaint /* = TRUE*/) {
+  m_bEnableOverflow = bAllowed;
+  if (bPaint)
+    Paint();
 }
 
-void CFX_Edit::SetSel(int32_t nStartChar,int32_t nEndChar)
-{
-    if (m_pVT->IsValid())
-    {
-        if (nStartChar == 0 && nEndChar < 0)
-        {
-            SelectAll();
-        }
-        else if (nStartChar < 0)
-        {
-            SelectNone();
-        }
-        else
-        {
-            if (nStartChar < nEndChar)
-            {
-                SetSel(m_pVT->WordIndexToWordPlace(nStartChar),m_pVT->WordIndexToWordPlace(nEndChar));
-            }
-            else
-            {
-                SetSel(m_pVT->WordIndexToWordPlace(nEndChar),m_pVT->WordIndexToWordPlace(nStartChar));
-            }
-        }
+void CFX_Edit::SetSel(int32_t nStartChar, int32_t nEndChar) {
+  if (m_pVT->IsValid()) {
+    if (nStartChar == 0 && nEndChar < 0) {
+      SelectAll();
+    } else if (nStartChar < 0) {
+      SelectNone();
+    } else {
+      if (nStartChar < nEndChar) {
+        SetSel(m_pVT->WordIndexToWordPlace(nStartChar),
+               m_pVT->WordIndexToWordPlace(nEndChar));
+      } else {
+        SetSel(m_pVT->WordIndexToWordPlace(nEndChar),
+               m_pVT->WordIndexToWordPlace(nStartChar));
+      }
     }
+  }
 }
 
-void CFX_Edit::SetSel(const CPVT_WordPlace & begin,const CPVT_WordPlace & end)
-{
-    if (m_pVT->IsValid())
-    {
-        SelectNone();
+void CFX_Edit::SetSel(const CPVT_WordPlace& begin, const CPVT_WordPlace& end) {
+  if (m_pVT->IsValid()) {
+    SelectNone();
 
-        m_SelState.Set(begin,end);
+    m_SelState.Set(begin, end);
 
-        SetCaret(m_SelState.EndPos);
+    SetCaret(m_SelState.EndPos);
 
-        if (m_SelState.IsExist())
-        {
-            ScrollToCaret();
-            CPVT_WordRange wr(m_SelState.BeginPos,m_SelState.EndPos);
-            Refresh(RP_OPTIONAL,&wr);
-            SetCaretInfo();
-        }
-        else
-        {
-            ScrollToCaret();
-            SetCaretInfo();
-        }
+    if (m_SelState.IsExist()) {
+      ScrollToCaret();
+      CPVT_WordRange wr(m_SelState.BeginPos, m_SelState.EndPos);
+      Refresh(RP_OPTIONAL, &wr);
+      SetCaretInfo();
+    } else {
+      ScrollToCaret();
+      SetCaretInfo();
     }
+  }
 }
 
-void CFX_Edit::GetSel(int32_t & nStartChar, int32_t & nEndChar) const
-{
-    nStartChar = -1;
-    nEndChar = -1;
+void CFX_Edit::GetSel(int32_t& nStartChar, int32_t& nEndChar) const {
+  nStartChar = -1;
+  nEndChar = -1;
 
-    if (m_pVT->IsValid())
-    {
-        if (m_SelState.IsExist())
-        {
-            if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos)<0)
-            {
-                nStartChar = m_pVT->WordPlaceToWordIndex(m_SelState.BeginPos);
-                nEndChar = m_pVT->WordPlaceToWordIndex(m_SelState.EndPos);
-            }
-            else
-            {
-                nStartChar = m_pVT->WordPlaceToWordIndex(m_SelState.EndPos);
-                nEndChar = m_pVT->WordPlaceToWordIndex(m_SelState.BeginPos);
-            }
-        }
-        else
-        {
-            nStartChar = m_pVT->WordPlaceToWordIndex(m_wpCaret);
-            nEndChar = m_pVT->WordPlaceToWordIndex(m_wpCaret);
-        }
+  if (m_pVT->IsValid()) {
+    if (m_SelState.IsExist()) {
+      if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) < 0) {
+        nStartChar = m_pVT->WordPlaceToWordIndex(m_SelState.BeginPos);
+        nEndChar = m_pVT->WordPlaceToWordIndex(m_SelState.EndPos);
+      } else {
+        nStartChar = m_pVT->WordPlaceToWordIndex(m_SelState.EndPos);
+        nEndChar = m_pVT->WordPlaceToWordIndex(m_SelState.BeginPos);
+      }
+    } else {
+      nStartChar = m_pVT->WordPlaceToWordIndex(m_wpCaret);
+      nEndChar = m_pVT->WordPlaceToWordIndex(m_wpCaret);
     }
+  }
 }
 
-int32_t CFX_Edit::GetCaret() const
-{
-    if (m_pVT->IsValid())
-        return m_pVT->WordPlaceToWordIndex(m_wpCaret);
+int32_t CFX_Edit::GetCaret() const {
+  if (m_pVT->IsValid())
+    return m_pVT->WordPlaceToWordIndex(m_wpCaret);
 
-    return -1;
+  return -1;
 }
 
-CPVT_WordPlace CFX_Edit::GetCaretWordPlace() const
-{
-    return m_wpCaret;
+CPVT_WordPlace CFX_Edit::GetCaretWordPlace() const {
+  return m_wpCaret;
 }
 
-CFX_WideString CFX_Edit::GetText() const
-{
-    CFX_WideString swRet;
+CFX_WideString CFX_Edit::GetText() const {
+  CFX_WideString swRet;
 
-    if (m_pVT->IsValid())
-    {
-        if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-        {
-            FX_BOOL bRich = m_pVT->IsRichText();
+  if (m_pVT->IsValid()) {
+    if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+      FX_BOOL bRich = m_pVT->IsRichText();
 
-            pIterator->SetAt(0);
+      pIterator->SetAt(0);
 
-            CPVT_Word wordinfo;
-            CPVT_WordPlace oldplace = pIterator->GetAt();
-            while (pIterator->NextWord())
-            {
-                CPVT_WordPlace place = pIterator->GetAt();
-
-                if (pIterator->GetWord(wordinfo))
-                {
-                    if (bRich)
-                    {
-                        swRet += wordinfo.Word;
-                    }
-                    else
-                    {
-                        swRet += wordinfo.Word;
-                    }
-                }
+      CPVT_Word wordinfo;
+      CPVT_WordPlace oldplace = pIterator->GetAt();
+      while (pIterator->NextWord()) {
+        CPVT_WordPlace place = pIterator->GetAt();
 
-                if (oldplace.SecCmp(place) != 0)
-                {
-                    swRet += 0x0D;
-                    swRet += 0x0A;
-                }
+        if (pIterator->GetWord(wordinfo)) {
+          if (bRich) {
+            swRet += wordinfo.Word;
+          } else {
+            swRet += wordinfo.Word;
+          }
+        }
 
-                oldplace = place;
-            }
+        if (oldplace.SecCmp(place) != 0) {
+          swRet += 0x0D;
+          swRet += 0x0A;
         }
+
+        oldplace = place;
+      }
     }
+  }
 
-    return swRet;
+  return swRet;
 }
 
-CFX_WideString CFX_Edit::GetRangeText(const CPVT_WordRange & range) const
-{
-    CFX_WideString swRet;
+CFX_WideString CFX_Edit::GetRangeText(const CPVT_WordRange& range) const {
+  CFX_WideString swRet;
 
-    if (m_pVT->IsValid())
-    {
-        FX_BOOL bRich = m_pVT->IsRichText();
+  if (m_pVT->IsValid()) {
+    FX_BOOL bRich = m_pVT->IsRichText();
 
-        if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-        {
-            CPVT_WordRange wrTemp = range;
-            m_pVT->UpdateWordPlace(wrTemp.BeginPos);
-            m_pVT->UpdateWordPlace(wrTemp.EndPos);
-            pIterator->SetAt(wrTemp.BeginPos);
+    if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+      CPVT_WordRange wrTemp = range;
+      m_pVT->UpdateWordPlace(wrTemp.BeginPos);
+      m_pVT->UpdateWordPlace(wrTemp.EndPos);
+      pIterator->SetAt(wrTemp.BeginPos);
 
-            CPVT_Word wordinfo;
-            CPVT_WordPlace oldplace = wrTemp.BeginPos;
-            while (pIterator->NextWord())
-            {
-                CPVT_WordPlace place = pIterator->GetAt();
-                if (place.WordCmp(wrTemp.EndPos) > 0)break;
-
-                if (pIterator->GetWord(wordinfo))
-                {
-                    if (bRich)
-                    {
-                        swRet += wordinfo.Word;
-                    }
-                    else
-                    {
-                        swRet += wordinfo.Word;
-                    }
-                }
+      CPVT_Word wordinfo;
+      CPVT_WordPlace oldplace = wrTemp.BeginPos;
+      while (pIterator->NextWord()) {
+        CPVT_WordPlace place = pIterator->GetAt();
+        if (place.WordCmp(wrTemp.EndPos) > 0)
+          break;
 
-                if (oldplace.SecCmp(place) != 0)
-                {
-                    swRet += 0x0D;
-                    swRet += 0x0A;
-                }
+        if (pIterator->GetWord(wordinfo)) {
+          if (bRich) {
+            swRet += wordinfo.Word;
+          } else {
+            swRet += wordinfo.Word;
+          }
+        }
 
-                oldplace = place;
-            }
+        if (oldplace.SecCmp(place) != 0) {
+          swRet += 0x0D;
+          swRet += 0x0A;
         }
+
+        oldplace = place;
+      }
     }
+  }
 
-    return swRet;
+  return swRet;
 }
 
-CFX_WideString CFX_Edit::GetSelText() const
-{
-    return GetRangeText(m_SelState.ConvertToWordRange());
+CFX_WideString CFX_Edit::GetSelText() const {
+  return GetRangeText(m_SelState.ConvertToWordRange());
 }
 
-int32_t CFX_Edit::GetTotalWords() const
-{
-    return m_pVT->GetTotalWords();
+int32_t CFX_Edit::GetTotalWords() const {
+  return m_pVT->GetTotalWords();
 }
 
-int32_t CFX_Edit::GetTotalLines() const
-{
-    int32_t nLines = 0;
+int32_t CFX_Edit::GetTotalLines() const {
+  int32_t nLines = 0;
 
-    if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-    {
-        pIterator->SetAt(0);
-        while (pIterator->NextLine())
-            nLines++;
-    }
+  if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+    pIterator->SetAt(0);
+    while (pIterator->NextLine())
+      nLines++;
+  }
 
-    return nLines+1;
+  return nLines + 1;
 }
 
-CPVT_WordRange CFX_Edit::GetSelectWordRange() const
-{
-    return m_SelState.ConvertToWordRange();
+CPVT_WordRange CFX_Edit::GetSelectWordRange() const {
+  return m_SelState.ConvertToWordRange();
 }
 
-CPVT_WordRange CFX_Edit::CombineWordRange(const CPVT_WordRange & wr1, const CPVT_WordRange & wr2)
-{
-    CPVT_WordRange wrRet;
+CPVT_WordRange CFX_Edit::CombineWordRange(const CPVT_WordRange& wr1,
+                                          const CPVT_WordRange& wr2) {
+  CPVT_WordRange wrRet;
 
-    if (wr1.BeginPos.WordCmp(wr2.BeginPos) < 0)
-    {
-        wrRet.BeginPos = wr1.BeginPos;
-    }
-    else
-    {
-        wrRet.BeginPos = wr2.BeginPos;
-    }
+  if (wr1.BeginPos.WordCmp(wr2.BeginPos) < 0) {
+    wrRet.BeginPos = wr1.BeginPos;
+  } else {
+    wrRet.BeginPos = wr2.BeginPos;
+  }
 
-    if (wr1.EndPos.WordCmp(wr2.EndPos) < 0)
-    {
-        wrRet.EndPos = wr2.EndPos;
-    }
-    else
-    {
-        wrRet.EndPos = wr1.EndPos;
-    }
+  if (wr1.EndPos.WordCmp(wr2.EndPos) < 0) {
+    wrRet.EndPos = wr2.EndPos;
+  } else {
+    wrRet.EndPos = wr1.EndPos;
+  }
 
-    return wrRet;
+  return wrRet;
 }
 
-FX_BOOL CFX_Edit::IsRichText() const
-{
-    return m_pVT->IsRichText();
+FX_BOOL CFX_Edit::IsRichText() const {
+  return m_pVT->IsRichText();
 }
 
-void CFX_Edit::SetRichText(FX_BOOL bRichText/* =TRUE */, FX_BOOL bPaint/* = TRUE*/)
-{
-    m_pVT->SetRichText(bRichText);
-    if (bPaint) Paint();
+void CFX_Edit::SetRichText(FX_BOOL bRichText /* =TRUE */,
+                           FX_BOOL bPaint /* = TRUE*/) {
+  m_pVT->SetRichText(bRichText);
+  if (bPaint)
+    Paint();
 }
 
-FX_BOOL CFX_Edit::SetRichFontIndex(int32_t nFontIndex)
-{
-    CPVT_WordProps WordProps;
-    WordProps.nFontIndex = nFontIndex;
-    return SetRichTextProps(EP_FONTINDEX,NULL,&WordProps);
+FX_BOOL CFX_Edit::SetRichFontIndex(int32_t nFontIndex) {
+  CPVT_WordProps WordProps;
+  WordProps.nFontIndex = nFontIndex;
+  return SetRichTextProps(EP_FONTINDEX, NULL, &WordProps);
 }
 
-FX_BOOL CFX_Edit::SetRichFontSize(FX_FLOAT fFontSize)
-{
-    CPVT_WordProps WordProps;
-    WordProps.fFontSize = fFontSize;
-    return SetRichTextProps(EP_FONTSIZE,NULL,&WordProps);
+FX_BOOL CFX_Edit::SetRichFontSize(FX_FLOAT fFontSize) {
+  CPVT_WordProps WordProps;
+  WordProps.fFontSize = fFontSize;
+  return SetRichTextProps(EP_FONTSIZE, NULL, &WordProps);
 }
 
-FX_BOOL CFX_Edit::SetRichTextColor(FX_COLORREF dwColor)
-{
-    CPVT_WordProps WordProps;
-    WordProps.dwWordColor = dwColor;
-    return SetRichTextProps(EP_WORDCOLOR,NULL,&WordProps);
+FX_BOOL CFX_Edit::SetRichTextColor(FX_COLORREF dwColor) {
+  CPVT_WordProps WordProps;
+  WordProps.dwWordColor = dwColor;
+  return SetRichTextProps(EP_WORDCOLOR, NULL, &WordProps);
 }
 
-FX_BOOL CFX_Edit::SetRichTextScript(int32_t nScriptType)
-{
-    CPVT_WordProps WordProps;
-    WordProps.nScriptType = nScriptType;
-    return SetRichTextProps(EP_SCRIPTTYPE,NULL,&WordProps);
+FX_BOOL CFX_Edit::SetRichTextScript(int32_t nScriptType) {
+  CPVT_WordProps WordProps;
+  WordProps.nScriptType = nScriptType;
+  return SetRichTextProps(EP_SCRIPTTYPE, NULL, &WordProps);
 }
 
-FX_BOOL CFX_Edit::SetRichTextBold(FX_BOOL bBold)
-{
-    CPVT_WordProps WordProps;
-    if (bBold)
-        WordProps.nWordStyle |= PVTWORD_STYLE_BOLD;
-    return SetRichTextProps(EP_BOLD,NULL,&WordProps);
+FX_BOOL CFX_Edit::SetRichTextBold(FX_BOOL bBold) {
+  CPVT_WordProps WordProps;
+  if (bBold)
+    WordProps.nWordStyle |= PVTWORD_STYLE_BOLD;
+  return SetRichTextProps(EP_BOLD, NULL, &WordProps);
 }
 
-FX_BOOL CFX_Edit::SetRichTextItalic(FX_BOOL bItalic)
-{
-    CPVT_WordProps WordProps;
-    if (bItalic)
-        WordProps.nWordStyle |= PVTWORD_STYLE_ITALIC;
-    return SetRichTextProps(EP_ITALIC,NULL,&WordProps);
+FX_BOOL CFX_Edit::SetRichTextItalic(FX_BOOL bItalic) {
+  CPVT_WordProps WordProps;
+  if (bItalic)
+    WordProps.nWordStyle |= PVTWORD_STYLE_ITALIC;
+  return SetRichTextProps(EP_ITALIC, NULL, &WordProps);
 }
 
-FX_BOOL CFX_Edit::SetRichTextUnderline(FX_BOOL bUnderline)
-{
-    CPVT_WordProps WordProps;
-    if (bUnderline)
-        WordProps.nWordStyle |= PVTWORD_STYLE_UNDERLINE;
-    return SetRichTextProps(EP_UNDERLINE,NULL,&WordProps);
+FX_BOOL CFX_Edit::SetRichTextUnderline(FX_BOOL bUnderline) {
+  CPVT_WordProps WordProps;
+  if (bUnderline)
+    WordProps.nWordStyle |= PVTWORD_STYLE_UNDERLINE;
+  return SetRichTextProps(EP_UNDERLINE, NULL, &WordProps);
 }
 
-FX_BOOL CFX_Edit::SetRichTextCrossout(FX_BOOL bCrossout)
-{
-    CPVT_WordProps WordProps;
-    if (bCrossout)
-        WordProps.nWordStyle |= PVTWORD_STYLE_CROSSOUT;
-    return SetRichTextProps(EP_CROSSOUT,NULL,&WordProps);
+FX_BOOL CFX_Edit::SetRichTextCrossout(FX_BOOL bCrossout) {
+  CPVT_WordProps WordProps;
+  if (bCrossout)
+    WordProps.nWordStyle |= PVTWORD_STYLE_CROSSOUT;
+  return SetRichTextProps(EP_CROSSOUT, NULL, &WordProps);
 }
 
-FX_BOOL CFX_Edit::SetRichTextCharSpace(FX_FLOAT fCharSpace)
-{
-    CPVT_WordProps WordProps;
-    WordProps.fCharSpace = fCharSpace;
-    return SetRichTextProps(EP_CHARSPACE,NULL,&WordProps);
+FX_BOOL CFX_Edit::SetRichTextCharSpace(FX_FLOAT fCharSpace) {
+  CPVT_WordProps WordProps;
+  WordProps.fCharSpace = fCharSpace;
+  return SetRichTextProps(EP_CHARSPACE, NULL, &WordProps);
 }
 
-FX_BOOL CFX_Edit::SetRichTextHorzScale(int32_t nHorzScale /*= 100*/)
-{
-    CPVT_WordProps WordProps;
-    WordProps.nHorzScale = nHorzScale;
-    return SetRichTextProps(EP_HORZSCALE,NULL,&WordProps);
+FX_BOOL CFX_Edit::SetRichTextHorzScale(int32_t nHorzScale /*= 100*/) {
+  CPVT_WordProps WordProps;
+  WordProps.nHorzScale = nHorzScale;
+  return SetRichTextProps(EP_HORZSCALE, NULL, &WordProps);
 }
 
-FX_BOOL CFX_Edit::SetRichTextLineLeading(FX_FLOAT fLineLeading)
-{
-    CPVT_SecProps SecProps;
-    SecProps.fLineLeading = fLineLeading;
-    return SetRichTextProps(EP_LINELEADING,&SecProps,NULL);
+FX_BOOL CFX_Edit::SetRichTextLineLeading(FX_FLOAT fLineLeading) {
+  CPVT_SecProps SecProps;
+  SecProps.fLineLeading = fLineLeading;
+  return SetRichTextProps(EP_LINELEADING, &SecProps, NULL);
 }
 
-FX_BOOL CFX_Edit::SetRichTextLineIndent(FX_FLOAT fLineIndent)
-{
-    CPVT_SecProps SecProps;
-    SecProps.fLineIndent = fLineIndent;
-    return SetRichTextProps(EP_LINEINDENT,&SecProps,NULL);
+FX_BOOL CFX_Edit::SetRichTextLineIndent(FX_FLOAT fLineIndent) {
+  CPVT_SecProps SecProps;
+  SecProps.fLineIndent = fLineIndent;
+  return SetRichTextProps(EP_LINEINDENT, &SecProps, NULL);
 }
 
-FX_BOOL CFX_Edit::SetRichTextAlignment(int32_t nAlignment)
-{
-    CPVT_SecProps SecProps;
-    SecProps.nAlignment = nAlignment;
-    return SetRichTextProps(EP_ALIGNMENT,&SecProps,NULL);
+FX_BOOL CFX_Edit::SetRichTextAlignment(int32_t nAlignment) {
+  CPVT_SecProps SecProps;
+  SecProps.nAlignment = nAlignment;
+  return SetRichTextProps(EP_ALIGNMENT, &SecProps, NULL);
 }
 
-FX_BOOL CFX_Edit::SetRichTextProps(EDIT_PROPS_E eProps, const CPVT_SecProps * pSecProps, const CPVT_WordProps * pWordProps)
-{
-    FX_BOOL bSet = FALSE;
-    FX_BOOL bSet1,bSet2;
-    if (m_pVT->IsValid() && m_pVT->IsRichText())
-    {
-        if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-        {
-            CPVT_WordRange wrTemp = m_SelState.ConvertToWordRange();
+FX_BOOL CFX_Edit::SetRichTextProps(EDIT_PROPS_E eProps,
+                                   const CPVT_SecProps* pSecProps,
+                                   const CPVT_WordProps* pWordProps) {
+  FX_BOOL bSet = FALSE;
+  FX_BOOL bSet1, bSet2;
+  if (m_pVT->IsValid() && m_pVT->IsRichText()) {
+    if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+      CPVT_WordRange wrTemp = m_SelState.ConvertToWordRange();
 
-            m_pVT->UpdateWordPlace(wrTemp.BeginPos);
-            m_pVT->UpdateWordPlace(wrTemp.EndPos);
-            pIterator->SetAt(wrTemp.BeginPos);
+      m_pVT->UpdateWordPlace(wrTemp.BeginPos);
+      m_pVT->UpdateWordPlace(wrTemp.EndPos);
+      pIterator->SetAt(wrTemp.BeginPos);
 
-            BeginGroupUndo(L"");;
+      BeginGroupUndo(L"");
+      ;
 
-            bSet = SetSecProps(eProps,wrTemp.BeginPos,pSecProps,pWordProps,wrTemp,TRUE);
+      bSet = SetSecProps(eProps, wrTemp.BeginPos, pSecProps, pWordProps, wrTemp,
+                         TRUE);
 
-            while (pIterator->NextWord())
-            {
-                CPVT_WordPlace place = pIterator->GetAt();
-                if (place.WordCmp(wrTemp.EndPos) > 0) break;
-                bSet1 = SetSecProps(eProps,place,pSecProps,pWordProps,wrTemp,TRUE);
-                bSet2 = SetWordProps(eProps,place,pWordProps,wrTemp,TRUE);
+      while (pIterator->NextWord()) {
+        CPVT_WordPlace place = pIterator->GetAt();
+        if (place.WordCmp(wrTemp.EndPos) > 0)
+          break;
+        bSet1 = SetSecProps(eProps, place, pSecProps, pWordProps, wrTemp, TRUE);
+        bSet2 = SetWordProps(eProps, place, pWordProps, wrTemp, TRUE);
 
-                if (!bSet)
-                    bSet = (bSet1 || bSet2);
-            }
+        if (!bSet)
+          bSet = (bSet1 || bSet2);
+      }
 
-            EndGroupUndo();
+      EndGroupUndo();
 
-            if (bSet)
-            {
-                PaintSetProps(eProps,wrTemp);
-            }
-        }
+      if (bSet) {
+        PaintSetProps(eProps, wrTemp);
+      }
     }
+  }
 
-    return bSet;
+  return bSet;
 }
 
-void CFX_Edit::PaintSetProps(EDIT_PROPS_E eProps, const CPVT_WordRange & wr)
-{
-    switch(eProps)
-    {
+void CFX_Edit::PaintSetProps(EDIT_PROPS_E eProps, const CPVT_WordRange& wr) {
+  switch (eProps) {
     case EP_LINELEADING:
     case EP_LINEINDENT:
     case EP_ALIGNMENT:
-        RearrangePart(wr);
-        ScrollToCaret();
-        Refresh(RP_ANALYSE);
-        SetCaretOrigin();
-        SetCaretInfo();
-        break;
+      RearrangePart(wr);
+      ScrollToCaret();
+      Refresh(RP_ANALYSE);
+      SetCaretOrigin();
+      SetCaretInfo();
+      break;
     case EP_WORDCOLOR:
     case EP_UNDERLINE:
     case EP_CROSSOUT:
-        Refresh(RP_OPTIONAL,&wr);
-        break;
+      Refresh(RP_OPTIONAL, &wr);
+      break;
     case EP_FONTINDEX:
     case EP_FONTSIZE:
     case EP_SCRIPTTYPE:
@@ -1503,2053 +1320,1814 @@ void CFX_Edit::PaintSetProps(EDIT_PROPS_E eProps, const CPVT_WordRange & wr)
     case EP_HORZSCALE:
     case EP_BOLD:
     case EP_ITALIC:
-        RearrangePart(wr);
-        ScrollToCaret();
-
-        CPVT_WordRange wrRefresh(m_pVT->GetSectionBeginPlace(wr.BeginPos),
-            m_pVT->GetSectionEndPlace(wr.EndPos));
-        Refresh(RP_ANALYSE,&wrRefresh);
-
-        SetCaretOrigin();
-        SetCaretInfo();
-        break;
-    }
-}
-
-FX_BOOL CFX_Edit::SetSecProps(EDIT_PROPS_E eProps, const CPVT_WordPlace & place,
-                               const CPVT_SecProps * pSecProps, const CPVT_WordProps * pWordProps,
-                               const CPVT_WordRange & wr, FX_BOOL bAddUndo)
-{
-    if (m_pVT->IsValid() && m_pVT->IsRichText())
-    {
-        if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-        {
-            FX_BOOL bSet = FALSE;
-            CPVT_Section secinfo;
-            CPVT_Section OldSecinfo;
-
-            CPVT_WordPlace oldplace = pIterator->GetAt();
-
-            if (eProps == EP_LINELEADING || eProps == EP_LINEINDENT || eProps == EP_ALIGNMENT)
-            {
-                if (pSecProps)
-                {
-                    pIterator->SetAt(place);
-                    if (pIterator->GetSection(secinfo))
-                    {
-                        if (bAddUndo) OldSecinfo = secinfo;
-
-                        switch(eProps)
-                        {
-                        case EP_LINELEADING:
-                            if (!FX_EDIT_IsFloatEqual(secinfo.SecProps.fLineLeading,pSecProps->fLineLeading))
-                            {
-                                secinfo.SecProps.fLineLeading = pSecProps->fLineLeading;
-                                bSet = TRUE;
-                            }
-                            break;
-                        case EP_LINEINDENT:
-                            if (!FX_EDIT_IsFloatEqual(secinfo.SecProps.fLineIndent,pSecProps->fLineIndent))
-                            {
-                                secinfo.SecProps.fLineIndent = pSecProps->fLineIndent;
-                                bSet = TRUE;
-                            }
-                            break;
-                        case EP_ALIGNMENT:
-                            if (secinfo.SecProps.nAlignment != pSecProps->nAlignment)
-                            {
-                                secinfo.SecProps.nAlignment = pSecProps->nAlignment;
-                                bSet = TRUE;
-                            }
-                            break;
-                        default:
-                            break;
-                        }
-                    }
+      RearrangePart(wr);
+      ScrollToCaret();
+
+      CPVT_WordRange wrRefresh(m_pVT->GetSectionBeginPlace(wr.BeginPos),
+                               m_pVT->GetSectionEndPlace(wr.EndPos));
+      Refresh(RP_ANALYSE, &wrRefresh);
+
+      SetCaretOrigin();
+      SetCaretInfo();
+      break;
+  }
+}
+
+FX_BOOL CFX_Edit::SetSecProps(EDIT_PROPS_E eProps,
+                              const CPVT_WordPlace& place,
+                              const CPVT_SecProps* pSecProps,
+                              const CPVT_WordProps* pWordProps,
+                              const CPVT_WordRange& wr,
+                              FX_BOOL bAddUndo) {
+  if (m_pVT->IsValid() && m_pVT->IsRichText()) {
+    if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+      FX_BOOL bSet = FALSE;
+      CPVT_Section secinfo;
+      CPVT_Section OldSecinfo;
+
+      CPVT_WordPlace oldplace = pIterator->GetAt();
+
+      if (eProps == EP_LINELEADING || eProps == EP_LINEINDENT ||
+          eProps == EP_ALIGNMENT) {
+        if (pSecProps) {
+          pIterator->SetAt(place);
+          if (pIterator->GetSection(secinfo)) {
+            if (bAddUndo)
+              OldSecinfo = secinfo;
+
+            switch (eProps) {
+              case EP_LINELEADING:
+                if (!FX_EDIT_IsFloatEqual(secinfo.SecProps.fLineLeading,
+                                          pSecProps->fLineLeading)) {
+                  secinfo.SecProps.fLineLeading = pSecProps->fLineLeading;
+                  bSet = TRUE;
                 }
-            }
-            else
-            {
-                if (pWordProps && place == m_pVT->GetSectionBeginPlace(place))
-                {
-                    pIterator->SetAt(place);
-                    if (pIterator->GetSection(secinfo))
-                    {
-                        if (bAddUndo) OldSecinfo = secinfo;
-
-                        switch(eProps)
-                        {
-                        case EP_FONTINDEX:
-                            if (secinfo.WordProps.nFontIndex != pWordProps->nFontIndex)
-                            {
-                                secinfo.WordProps.nFontIndex = pWordProps->nFontIndex;
-                                bSet = TRUE;
-                            }
-                            break;
-                        case EP_FONTSIZE:
-                            if (!FX_EDIT_IsFloatEqual(secinfo.WordProps.fFontSize,pWordProps->fFontSize))
-                            {
-                                secinfo.WordProps.fFontSize = pWordProps->fFontSize;
-                                bSet = TRUE;
-                            }
-                            break;
-                        case EP_WORDCOLOR:
-                            if (secinfo.WordProps.dwWordColor != pWordProps->dwWordColor)
-                            {
-                                secinfo.WordProps.dwWordColor = pWordProps->dwWordColor;
-                                bSet = TRUE;
-                            }
-                            break;
-                        case EP_SCRIPTTYPE:
-                            if (secinfo.WordProps.nScriptType != pWordProps->nScriptType)
-                            {
-                                secinfo.WordProps.nScriptType = pWordProps->nScriptType;
-                                bSet = TRUE;
-                            }
-                            break;
-                        case EP_CHARSPACE:
-                            if (!FX_EDIT_IsFloatEqual(secinfo.WordProps.fCharSpace,pWordProps->fCharSpace))
-                            {
-                                secinfo.WordProps.fCharSpace = pWordProps->fCharSpace;
-                                bSet = TRUE;
-                            }
-                            break;
-                        case EP_HORZSCALE:
-                            if (secinfo.WordProps.nHorzScale != pWordProps->nHorzScale)
-                            {
-                                secinfo.WordProps.nHorzScale = pWordProps->nHorzScale;
-                                bSet = TRUE;
-                            }
-                            break;
-                        case EP_UNDERLINE:
-                            if (pWordProps->nWordStyle & PVTWORD_STYLE_UNDERLINE)
-                            {
-                                if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE) == 0)
-                                {
-                                    secinfo.WordProps.nWordStyle |= PVTWORD_STYLE_UNDERLINE;
-                                    bSet = TRUE;
-                                }
-                            }
-                            else
-                            {
-                                if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE) != 0)
-                                {
-                                    secinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_UNDERLINE;
-                                    bSet = TRUE;
-                                }
-                            }
-                            break;
-                        case EP_CROSSOUT:
-                            if (pWordProps->nWordStyle & PVTWORD_STYLE_CROSSOUT)
-                            {
-                                if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) == 0)
-                                {
-                                    secinfo.WordProps.nWordStyle |= PVTWORD_STYLE_CROSSOUT;
-                                    bSet = TRUE;
-                                }
-                            }
-                            else
-                            {
-                                if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) != 0)
-                                {
-                                    secinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_CROSSOUT;
-                                    bSet = TRUE;
-                                }
-                            }
-                            break;
-                        case EP_BOLD:
-                            if (pWordProps->nWordStyle & PVTWORD_STYLE_BOLD)
-                            {
-                                if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_BOLD) == 0)
-                                {
-                                    secinfo.WordProps.nWordStyle |= PVTWORD_STYLE_BOLD;
-                                    bSet = TRUE;
-                                }
-                            }
-                            else
-                            {
-                                if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_BOLD) != 0)
-                                {
-                                    secinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_BOLD;
-                                    bSet = TRUE;
-                                }
-                            }
-                            break;
-                        case EP_ITALIC:
-                            if (pWordProps->nWordStyle & PVTWORD_STYLE_ITALIC)
-                            {
-                                if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_ITALIC) == 0)
-                                {
-                                    secinfo.WordProps.nWordStyle |= PVTWORD_STYLE_ITALIC;
-                                    bSet = TRUE;
-                                }
-                            }
-                            else
-                            {
-                                if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_ITALIC) != 0)
-                                {
-                                    secinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_ITALIC;
-                                    bSet = TRUE;
-                                }
-                            }
-                            break;
-                        default:
-                            break;
-                        }
-                    }
+                break;
+              case EP_LINEINDENT:
+                if (!FX_EDIT_IsFloatEqual(secinfo.SecProps.fLineIndent,
+                                          pSecProps->fLineIndent)) {
+                  secinfo.SecProps.fLineIndent = pSecProps->fLineIndent;
+                  bSet = TRUE;
                 }
+                break;
+              case EP_ALIGNMENT:
+                if (secinfo.SecProps.nAlignment != pSecProps->nAlignment) {
+                  secinfo.SecProps.nAlignment = pSecProps->nAlignment;
+                  bSet = TRUE;
+                }
+                break;
+              default:
+                break;
             }
-
-            if (bSet)
-            {
-                pIterator->SetSection(secinfo);
-
-                if (bAddUndo && m_bEnableUndo)
-                {
-                    AddEditUndoItem(new CFXEU_SetSecProps
-                        (this,place,eProps,OldSecinfo.SecProps,OldSecinfo.WordProps,secinfo.SecProps,secinfo.WordProps,wr));
+          }
+        }
+      } else {
+        if (pWordProps && place == m_pVT->GetSectionBeginPlace(place)) {
+          pIterator->SetAt(place);
+          if (pIterator->GetSection(secinfo)) {
+            if (bAddUndo)
+              OldSecinfo = secinfo;
+
+            switch (eProps) {
+              case EP_FONTINDEX:
+                if (secinfo.WordProps.nFontIndex != pWordProps->nFontIndex) {
+                  secinfo.WordProps.nFontIndex = pWordProps->nFontIndex;
+                  bSet = TRUE;
+                }
+                break;
+              case EP_FONTSIZE:
+                if (!FX_EDIT_IsFloatEqual(secinfo.WordProps.fFontSize,
+                                          pWordProps->fFontSize)) {
+                  secinfo.WordProps.fFontSize = pWordProps->fFontSize;
+                  bSet = TRUE;
+                }
+                break;
+              case EP_WORDCOLOR:
+                if (secinfo.WordProps.dwWordColor != pWordProps->dwWordColor) {
+                  secinfo.WordProps.dwWordColor = pWordProps->dwWordColor;
+                  bSet = TRUE;
+                }
+                break;
+              case EP_SCRIPTTYPE:
+                if (secinfo.WordProps.nScriptType != pWordProps->nScriptType) {
+                  secinfo.WordProps.nScriptType = pWordProps->nScriptType;
+                  bSet = TRUE;
+                }
+                break;
+              case EP_CHARSPACE:
+                if (!FX_EDIT_IsFloatEqual(secinfo.WordProps.fCharSpace,
+                                          pWordProps->fCharSpace)) {
+                  secinfo.WordProps.fCharSpace = pWordProps->fCharSpace;
+                  bSet = TRUE;
+                }
+                break;
+              case EP_HORZSCALE:
+                if (secinfo.WordProps.nHorzScale != pWordProps->nHorzScale) {
+                  secinfo.WordProps.nHorzScale = pWordProps->nHorzScale;
+                  bSet = TRUE;
+                }
+                break;
+              case EP_UNDERLINE:
+                if (pWordProps->nWordStyle & PVTWORD_STYLE_UNDERLINE) {
+                  if ((secinfo.WordProps.nWordStyle &
+                       PVTWORD_STYLE_UNDERLINE) == 0) {
+                    secinfo.WordProps.nWordStyle |= PVTWORD_STYLE_UNDERLINE;
+                    bSet = TRUE;
+                  }
+                } else {
+                  if ((secinfo.WordProps.nWordStyle &
+                       PVTWORD_STYLE_UNDERLINE) != 0) {
+                    secinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_UNDERLINE;
+                    bSet = TRUE;
+                  }
+                }
+                break;
+              case EP_CROSSOUT:
+                if (pWordProps->nWordStyle & PVTWORD_STYLE_CROSSOUT) {
+                  if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) ==
+                      0) {
+                    secinfo.WordProps.nWordStyle |= PVTWORD_STYLE_CROSSOUT;
+                    bSet = TRUE;
+                  }
+                } else {
+                  if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) !=
+                      0) {
+                    secinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_CROSSOUT;
+                    bSet = TRUE;
+                  }
+                }
+                break;
+              case EP_BOLD:
+                if (pWordProps->nWordStyle & PVTWORD_STYLE_BOLD) {
+                  if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_BOLD) ==
+                      0) {
+                    secinfo.WordProps.nWordStyle |= PVTWORD_STYLE_BOLD;
+                    bSet = TRUE;
+                  }
+                } else {
+                  if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_BOLD) !=
+                      0) {
+                    secinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_BOLD;
+                    bSet = TRUE;
+                  }
+                }
+                break;
+              case EP_ITALIC:
+                if (pWordProps->nWordStyle & PVTWORD_STYLE_ITALIC) {
+                  if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_ITALIC) ==
+                      0) {
+                    secinfo.WordProps.nWordStyle |= PVTWORD_STYLE_ITALIC;
+                    bSet = TRUE;
+                  }
+                } else {
+                  if ((secinfo.WordProps.nWordStyle & PVTWORD_STYLE_ITALIC) !=
+                      0) {
+                    secinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_ITALIC;
+                    bSet = TRUE;
+                  }
                 }
+                break;
+              default:
+                break;
             }
+          }
+        }
+      }
 
-            pIterator->SetAt(oldplace);
+      if (bSet) {
+        pIterator->SetSection(secinfo);
 
-            return bSet;
+        if (bAddUndo && m_bEnableUndo) {
+          AddEditUndoItem(new CFXEU_SetSecProps(
+              this, place, eProps, OldSecinfo.SecProps, OldSecinfo.WordProps,
+              secinfo.SecProps, secinfo.WordProps, wr));
         }
+      }
+
+      pIterator->SetAt(oldplace);
+
+      return bSet;
     }
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFX_Edit::SetWordProps(EDIT_PROPS_E eProps, const CPVT_WordPlace & place,
-                                const CPVT_WordProps * pWordProps, const CPVT_WordRange & wr, FX_BOOL bAddUndo)
-{
-    if (m_pVT->IsValid() && m_pVT->IsRichText())
-    {
-        if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-        {
-            FX_BOOL bSet = FALSE;
-            CPVT_Word wordinfo;
-            CPVT_Word OldWordinfo;
-
-            CPVT_WordPlace oldplace = pIterator->GetAt();
-
-            if (pWordProps)
-            {
-                pIterator->SetAt(place);
-                if (pIterator->GetWord(wordinfo))
-                {
-                    if (bAddUndo) OldWordinfo = wordinfo;
-
-                    switch(eProps)
-                    {
-                    case EP_FONTINDEX:
-                        if (wordinfo.WordProps.nFontIndex != pWordProps->nFontIndex)
-                        {
-                            if (IFX_Edit_FontMap* pFontMap = GetFontMap())
-                            {
-                                wordinfo.WordProps.nFontIndex = pFontMap->GetWordFontIndex(wordinfo.Word,wordinfo.nCharset,pWordProps->nFontIndex);
-                            }
-                            bSet = TRUE;
-                        }
-                        break;
-                    case EP_FONTSIZE:
-                        if (!FX_EDIT_IsFloatEqual(wordinfo.WordProps.fFontSize,pWordProps->fFontSize))
-                        {
-                            wordinfo.WordProps.fFontSize = pWordProps->fFontSize;
-                            bSet = TRUE;
-                        }
-                        break;
-                    case EP_WORDCOLOR:
-                        if (wordinfo.WordProps.dwWordColor != pWordProps->dwWordColor)
-                        {
-                            wordinfo.WordProps.dwWordColor = pWordProps->dwWordColor;
-                            bSet = TRUE;
-                        }
-                        break;
-                    case EP_SCRIPTTYPE:
-                        if (wordinfo.WordProps.nScriptType != pWordProps->nScriptType)
-                        {
-                            wordinfo.WordProps.nScriptType = pWordProps->nScriptType;
-                            bSet = TRUE;
-                        }
-                        break;
-                    case EP_CHARSPACE:
-                        if (!FX_EDIT_IsFloatEqual(wordinfo.WordProps.fCharSpace,pWordProps->fCharSpace))
-                        {
-                            wordinfo.WordProps.fCharSpace = pWordProps->fCharSpace;
-                            bSet = TRUE;
-                        }
-                        break;
-                    case EP_HORZSCALE:
-                        if (wordinfo.WordProps.nHorzScale != pWordProps->nHorzScale)
-                        {
-                            wordinfo.WordProps.nHorzScale = pWordProps->nHorzScale;
-                            bSet = TRUE;
-                        }
-                        break;
-                    case EP_UNDERLINE:
-                        if (pWordProps->nWordStyle & PVTWORD_STYLE_UNDERLINE)
-                        {
-                            if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE) == 0)
-                            {
-                                wordinfo.WordProps.nWordStyle |= PVTWORD_STYLE_UNDERLINE;
-                                bSet = TRUE;
-                            }
-                        }
-                        else
-                        {
-                            if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE) != 0)
-                            {
-                                wordinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_UNDERLINE;
-                                bSet = TRUE;
-                            }
-                        }
-                        break;
-                    case EP_CROSSOUT:
-                        if (pWordProps->nWordStyle & PVTWORD_STYLE_CROSSOUT)
-                        {
-                            if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) == 0)
-                            {
-                                wordinfo.WordProps.nWordStyle |= PVTWORD_STYLE_CROSSOUT;
-                                bSet = TRUE;
-                            }
-                        }
-                        else
-                        {
-                            if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) != 0)
-                            {
-                                wordinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_CROSSOUT;
-                                bSet = TRUE;
-                            }
-                        }
-                        break;
-                    case EP_BOLD:
-                        if (pWordProps->nWordStyle & PVTWORD_STYLE_BOLD)
-                        {
-                            if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_BOLD) == 0)
-                            {
-                                wordinfo.WordProps.nWordStyle |= PVTWORD_STYLE_BOLD;
-                                bSet = TRUE;
-                            }
-                        }
-                        else
-                        {
-                            if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_BOLD) != 0)
-                            {
-                                wordinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_BOLD;
-                                bSet = TRUE;
-                            }
-                        }
-                        break;
-                    case EP_ITALIC:
-                        if (pWordProps->nWordStyle & PVTWORD_STYLE_ITALIC)
-                        {
-                            if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_ITALIC) == 0)
-                            {
-                                wordinfo.WordProps.nWordStyle |= PVTWORD_STYLE_ITALIC;
-                                bSet = TRUE;
-                            }
-                        }
-                        else
-                        {
-                            if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_ITALIC) != 0)
-                            {
-                                wordinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_ITALIC;
-                                bSet = TRUE;
-                            }
-                        }
-                        break;
-                    default:
-                        break;
-                    }
-                }
-            }
+FX_BOOL CFX_Edit::SetWordProps(EDIT_PROPS_E eProps,
+                               const CPVT_WordPlace& place,
+                               const CPVT_WordProps* pWordProps,
+                               const CPVT_WordRange& wr,
+                               FX_BOOL bAddUndo) {
+  if (m_pVT->IsValid() && m_pVT->IsRichText()) {
+    if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+      FX_BOOL bSet = FALSE;
+      CPVT_Word wordinfo;
+      CPVT_Word OldWordinfo;
 
-            if (bSet)
-            {
-                pIterator->SetWord(wordinfo);
+      CPVT_WordPlace oldplace = pIterator->GetAt();
 
-                if (bAddUndo && m_bEnableUndo)
-                {
-                    AddEditUndoItem(new CFXEU_SetWordProps
-                        (this,place,eProps,OldWordinfo.WordProps,wordinfo.WordProps,wr));
+      if (pWordProps) {
+        pIterator->SetAt(place);
+        if (pIterator->GetWord(wordinfo)) {
+          if (bAddUndo)
+            OldWordinfo = wordinfo;
+
+          switch (eProps) {
+            case EP_FONTINDEX:
+              if (wordinfo.WordProps.nFontIndex != pWordProps->nFontIndex) {
+                if (IFX_Edit_FontMap* pFontMap = GetFontMap()) {
+                  wordinfo.WordProps.nFontIndex = pFontMap->GetWordFontIndex(
+                      wordinfo.Word, wordinfo.nCharset, pWordProps->nFontIndex);
                 }
-            }
+                bSet = TRUE;
+              }
+              break;
+            case EP_FONTSIZE:
+              if (!FX_EDIT_IsFloatEqual(wordinfo.WordProps.fFontSize,
+                                        pWordProps->fFontSize)) {
+                wordinfo.WordProps.fFontSize = pWordProps->fFontSize;
+                bSet = TRUE;
+              }
+              break;
+            case EP_WORDCOLOR:
+              if (wordinfo.WordProps.dwWordColor != pWordProps->dwWordColor) {
+                wordinfo.WordProps.dwWordColor = pWordProps->dwWordColor;
+                bSet = TRUE;
+              }
+              break;
+            case EP_SCRIPTTYPE:
+              if (wordinfo.WordProps.nScriptType != pWordProps->nScriptType) {
+                wordinfo.WordProps.nScriptType = pWordProps->nScriptType;
+                bSet = TRUE;
+              }
+              break;
+            case EP_CHARSPACE:
+              if (!FX_EDIT_IsFloatEqual(wordinfo.WordProps.fCharSpace,
+                                        pWordProps->fCharSpace)) {
+                wordinfo.WordProps.fCharSpace = pWordProps->fCharSpace;
+                bSet = TRUE;
+              }
+              break;
+            case EP_HORZSCALE:
+              if (wordinfo.WordProps.nHorzScale != pWordProps->nHorzScale) {
+                wordinfo.WordProps.nHorzScale = pWordProps->nHorzScale;
+                bSet = TRUE;
+              }
+              break;
+            case EP_UNDERLINE:
+              if (pWordProps->nWordStyle & PVTWORD_STYLE_UNDERLINE) {
+                if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE) ==
+                    0) {
+                  wordinfo.WordProps.nWordStyle |= PVTWORD_STYLE_UNDERLINE;
+                  bSet = TRUE;
+                }
+              } else {
+                if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE) !=
+                    0) {
+                  wordinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_UNDERLINE;
+                  bSet = TRUE;
+                }
+              }
+              break;
+            case EP_CROSSOUT:
+              if (pWordProps->nWordStyle & PVTWORD_STYLE_CROSSOUT) {
+                if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) ==
+                    0) {
+                  wordinfo.WordProps.nWordStyle |= PVTWORD_STYLE_CROSSOUT;
+                  bSet = TRUE;
+                }
+              } else {
+                if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) !=
+                    0) {
+                  wordinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_CROSSOUT;
+                  bSet = TRUE;
+                }
+              }
+              break;
+            case EP_BOLD:
+              if (pWordProps->nWordStyle & PVTWORD_STYLE_BOLD) {
+                if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_BOLD) == 0) {
+                  wordinfo.WordProps.nWordStyle |= PVTWORD_STYLE_BOLD;
+                  bSet = TRUE;
+                }
+              } else {
+                if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_BOLD) != 0) {
+                  wordinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_BOLD;
+                  bSet = TRUE;
+                }
+              }
+              break;
+            case EP_ITALIC:
+              if (pWordProps->nWordStyle & PVTWORD_STYLE_ITALIC) {
+                if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_ITALIC) ==
+                    0) {
+                  wordinfo.WordProps.nWordStyle |= PVTWORD_STYLE_ITALIC;
+                  bSet = TRUE;
+                }
+              } else {
+                if ((wordinfo.WordProps.nWordStyle & PVTWORD_STYLE_ITALIC) !=
+                    0) {
+                  wordinfo.WordProps.nWordStyle &= ~PVTWORD_STYLE_ITALIC;
+                  bSet = TRUE;
+                }
+              }
+              break;
+            default:
+              break;
+          }
+        }
+      }
+
+      if (bSet) {
+        pIterator->SetWord(wordinfo);
 
-            pIterator->SetAt(oldplace);
-            return bSet;
+        if (bAddUndo && m_bEnableUndo) {
+          AddEditUndoItem(new CFXEU_SetWordProps(this, place, eProps,
+                                                 OldWordinfo.WordProps,
+                                                 wordinfo.WordProps, wr));
         }
+      }
+
+      pIterator->SetAt(oldplace);
+      return bSet;
     }
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-void CFX_Edit::SetText(const FX_WCHAR* text,int32_t charset /*= DEFAULT_CHARSET*/,
-                        const CPVT_SecProps * pSecProps /*= NULL*/,const CPVT_WordProps * pWordProps /*= NULL*/)
-{
-    SetText(text,charset,pSecProps,pWordProps,TRUE,TRUE);
+void CFX_Edit::SetText(const FX_WCHAR* text,
+                       int32_t charset /*= DEFAULT_CHARSET*/,
+                       const CPVT_SecProps* pSecProps /*= NULL*/,
+                       const CPVT_WordProps* pWordProps /*= NULL*/) {
+  SetText(text, charset, pSecProps, pWordProps, TRUE, TRUE);
 }
 
-FX_BOOL CFX_Edit::InsertWord(FX_WORD word, int32_t charset /*= DEFAULT_CHARSET*/, const CPVT_WordProps * pWordProps /*= NULL*/)
-{
-    return InsertWord(word,charset,pWordProps,TRUE,TRUE);
+FX_BOOL CFX_Edit::InsertWord(FX_WORD word,
+                             int32_t charset /*= DEFAULT_CHARSET*/,
+                             const CPVT_WordProps* pWordProps /*= NULL*/) {
+  return InsertWord(word, charset, pWordProps, TRUE, TRUE);
 }
 
-FX_BOOL CFX_Edit::InsertReturn(const CPVT_SecProps * pSecProps /*= NULL*/,const CPVT_WordProps * pWordProps /*= NULL*/)
-{
-    return InsertReturn(pSecProps,pWordProps,TRUE,TRUE);
+FX_BOOL CFX_Edit::InsertReturn(const CPVT_SecProps* pSecProps /*= NULL*/,
+                               const CPVT_WordProps* pWordProps /*= NULL*/) {
+  return InsertReturn(pSecProps, pWordProps, TRUE, TRUE);
 }
 
-FX_BOOL CFX_Edit::Backspace()
-{
-    return Backspace(TRUE,TRUE);
+FX_BOOL CFX_Edit::Backspace() {
+  return Backspace(TRUE, TRUE);
 }
 
-FX_BOOL CFX_Edit::Delete()
-{
-    return Delete(TRUE,TRUE);
+FX_BOOL CFX_Edit::Delete() {
+  return Delete(TRUE, TRUE);
 }
 
-FX_BOOL CFX_Edit::Clear()
-{
-    return Clear(TRUE,TRUE);
+FX_BOOL CFX_Edit::Clear() {
+  return Clear(TRUE, TRUE);
 }
 
-FX_BOOL CFX_Edit::InsertText(const FX_WCHAR* text, int32_t charset /*= DEFAULT_CHARSET*/,
-                                const CPVT_SecProps * pSecProps /*= NULL*/,const CPVT_WordProps * pWordProps /*= NULL*/)
-{
-    return InsertText(text,charset,pSecProps,pWordProps,TRUE,TRUE);
+FX_BOOL CFX_Edit::InsertText(const FX_WCHAR* text,
+                             int32_t charset /*= DEFAULT_CHARSET*/,
+                             const CPVT_SecProps* pSecProps /*= NULL*/,
+                             const CPVT_WordProps* pWordProps /*= NULL*/) {
+  return InsertText(text, charset, pSecProps, pWordProps, TRUE, TRUE);
 }
 
-FX_FLOAT CFX_Edit::GetFontSize() const
-{
-    return m_pVT->GetFontSize();
+FX_FLOAT CFX_Edit::GetFontSize() const {
+  return m_pVT->GetFontSize();
 }
 
-FX_WORD CFX_Edit::GetPasswordChar() const
-{
-    return m_pVT->GetPasswordChar();
+FX_WORD CFX_Edit::GetPasswordChar() const {
+  return m_pVT->GetPasswordChar();
 }
 
-int32_t CFX_Edit::GetCharArray() const
-{
-    return m_pVT->GetCharArray();
+int32_t CFX_Edit::GetCharArray() const {
+  return m_pVT->GetCharArray();
 }
 
-CPDF_Rect CFX_Edit::GetPlateRect() const
-{
-    return m_pVT->GetPlateRect();
+CPDF_Rect CFX_Edit::GetPlateRect() const {
+  return m_pVT->GetPlateRect();
 }
 
-CPDF_Rect CFX_Edit::GetContentRect() const
-{
-    return VTToEdit(m_pVT->GetContentRect());
+CPDF_Rect CFX_Edit::GetContentRect() const {
+  return VTToEdit(m_pVT->GetContentRect());
 }
 
-int32_t CFX_Edit::GetHorzScale() const
-{
-    return m_pVT->GetHorzScale();
+int32_t CFX_Edit::GetHorzScale() const {
+  return m_pVT->GetHorzScale();
 }
 
-FX_FLOAT CFX_Edit::GetCharSpace() const
-{
-    return m_pVT->GetCharSpace();
+FX_FLOAT CFX_Edit::GetCharSpace() const {
+  return m_pVT->GetCharSpace();
 }
 
 // inner methods
 
-CPVT_WordRange CFX_Edit::GetWholeWordRange() const
-{
-    if (m_pVT->IsValid())
-        return CPVT_WordRange(m_pVT->GetBeginWordPlace(),m_pVT->GetEndWordPlace());
+CPVT_WordRange CFX_Edit::GetWholeWordRange() const {
+  if (m_pVT->IsValid())
+    return CPVT_WordRange(m_pVT->GetBeginWordPlace(), m_pVT->GetEndWordPlace());
 
-    return CPVT_WordRange();
+  return CPVT_WordRange();
 }
 
-CPVT_WordRange CFX_Edit::GetVisibleWordRange() const
-{
-    if (m_bEnableOverflow) return GetWholeWordRange();
+CPVT_WordRange CFX_Edit::GetVisibleWordRange() const {
+  if (m_bEnableOverflow)
+    return GetWholeWordRange();
 
-    if (m_pVT->IsValid())
-    {
-        CPDF_Rect rcPlate = m_pVT->GetPlateRect();
+  if (m_pVT->IsValid()) {
+    CPDF_Rect rcPlate = m_pVT->GetPlateRect();
 
-        CPVT_WordPlace place1 = m_pVT->SearchWordPlace(EditToVT(CPDF_Point(rcPlate.left,rcPlate.top)));
-        CPVT_WordPlace place2 = m_pVT->SearchWordPlace(EditToVT(CPDF_Point(rcPlate.right,rcPlate.bottom)));
+    CPVT_WordPlace place1 =
+        m_pVT->SearchWordPlace(EditToVT(CPDF_Point(rcPlate.left, rcPlate.top)));
+    CPVT_WordPlace place2 = m_pVT->SearchWordPlace(
+        EditToVT(CPDF_Point(rcPlate.right, rcPlate.bottom)));
 
-        return CPVT_WordRange(place1,place2);
-    }
+    return CPVT_WordRange(place1, place2);
+  }
 
-    return CPVT_WordRange();
+  return CPVT_WordRange();
 }
 
-CPVT_WordPlace CFX_Edit::SearchWordPlace(const CPDF_Point& point) const
-{
-    if (m_pVT->IsValid())
-    {
-        return m_pVT->SearchWordPlace(EditToVT(point));
-    }
-
-    return CPVT_WordPlace();
-}
+CPVT_WordPlace CFX_Edit::SearchWordPlace(const CPDF_Point& point) const {
+  if (m_pVT->IsValid()) {
+    return m_pVT->SearchWordPlace(EditToVT(point));
+  }
 
-void CFX_Edit::Paint()
-{
-    if (m_pVT->IsValid())
-    {
-        RearrangeAll();
-        ScrollToCaret();
-        Refresh(RP_NOANALYSE);
-        SetCaretOrigin();
-        SetCaretInfo();
-    }
+  return CPVT_WordPlace();
 }
 
-void CFX_Edit::RearrangeAll()
-{
-    if (m_pVT->IsValid())
-    {
-        m_pVT->UpdateWordPlace(m_wpCaret);
-        m_pVT->RearrangeAll();
-        m_pVT->UpdateWordPlace(m_wpCaret);
-        SetScrollInfo();
-        SetContentChanged();
-    }
+void CFX_Edit::Paint() {
+  if (m_pVT->IsValid()) {
+    RearrangeAll();
+    ScrollToCaret();
+    Refresh(RP_NOANALYSE);
+    SetCaretOrigin();
+    SetCaretInfo();
+  }
 }
 
-void CFX_Edit::RearrangePart(const CPVT_WordRange & range)
-{
-    if (m_pVT->IsValid())
-    {
-        m_pVT->UpdateWordPlace(m_wpCaret);
-        m_pVT->RearrangePart(range);
-        m_pVT->UpdateWordPlace(m_wpCaret);
-        SetScrollInfo();
-        SetContentChanged();
-    }
+void CFX_Edit::RearrangeAll() {
+  if (m_pVT->IsValid()) {
+    m_pVT->UpdateWordPlace(m_wpCaret);
+    m_pVT->RearrangeAll();
+    m_pVT->UpdateWordPlace(m_wpCaret);
+    SetScrollInfo();
+    SetContentChanged();
+  }
 }
 
-void CFX_Edit::SetContentChanged()
-{
-    if (m_bNotify && m_pNotify)
-    {
-        CPDF_Rect rcContent = m_pVT->GetContentRect();
-        if (rcContent.Width() != m_rcOldContent.Width() ||
-            rcContent.Height() != m_rcOldContent.Height())
-        {
-            if (!m_bNotifyFlag)
-            {
-                m_bNotifyFlag = TRUE;
-                m_pNotify->IOnContentChange(rcContent);
-                m_bNotifyFlag = FALSE;
-            }
-            m_rcOldContent = rcContent;
-        }
-    }
+void CFX_Edit::RearrangePart(const CPVT_WordRange& range) {
+  if (m_pVT->IsValid()) {
+    m_pVT->UpdateWordPlace(m_wpCaret);
+    m_pVT->RearrangePart(range);
+    m_pVT->UpdateWordPlace(m_wpCaret);
+    SetScrollInfo();
+    SetContentChanged();
+  }
 }
 
-void CFX_Edit::SelectAll()
-{
-    if (m_pVT->IsValid())
-    {
-        m_SelState = GetWholeWordRange();
-        SetCaret(m_SelState.EndPos);
-
-        ScrollToCaret();
-        CPVT_WordRange wrVisible = GetVisibleWordRange();
-        Refresh(RP_OPTIONAL,&wrVisible);
-        SetCaretInfo();
-    }
+void CFX_Edit::SetContentChanged() {
+  if (m_bNotify && m_pNotify) {
+    CPDF_Rect rcContent = m_pVT->GetContentRect();
+    if (rcContent.Width() != m_rcOldContent.Width() ||
+        rcContent.Height() != m_rcOldContent.Height()) {
+      if (!m_bNotifyFlag) {
+        m_bNotifyFlag = TRUE;
+        m_pNotify->IOnContentChange(rcContent);
+        m_bNotifyFlag = FALSE;
+      }
+      m_rcOldContent = rcContent;
+    }
+  }
+}
+
+void CFX_Edit::SelectAll() {
+  if (m_pVT->IsValid()) {
+    m_SelState = GetWholeWordRange();
+    SetCaret(m_SelState.EndPos);
+
+    ScrollToCaret();
+    CPVT_WordRange wrVisible = GetVisibleWordRange();
+    Refresh(RP_OPTIONAL, &wrVisible);
+    SetCaretInfo();
+  }
 }
 
-void CFX_Edit::SelectNone()
-{
-    if (m_pVT->IsValid())
-    {
-        if (m_SelState.IsExist())
-        {
-            CPVT_WordRange wrTemp = m_SelState.ConvertToWordRange();
-            m_SelState.Default();
-            Refresh(RP_OPTIONAL,&wrTemp);
-        }
+void CFX_Edit::SelectNone() {
+  if (m_pVT->IsValid()) {
+    if (m_SelState.IsExist()) {
+      CPVT_WordRange wrTemp = m_SelState.ConvertToWordRange();
+      m_SelState.Default();
+      Refresh(RP_OPTIONAL, &wrTemp);
     }
+  }
 }
 
-FX_BOOL CFX_Edit::IsSelected() const
-{
-    return m_SelState.IsExist();
+FX_BOOL CFX_Edit::IsSelected() const {
+  return m_SelState.IsExist();
 }
 
-CPDF_Point CFX_Edit::VTToEdit(const CPDF_Point & point) const
-{
-    CPDF_Rect rcContent = m_pVT->GetContentRect();
-    CPDF_Rect rcPlate = m_pVT->GetPlateRect();
+CPDF_Point CFX_Edit::VTToEdit(const CPDF_Point& point) const {
+  CPDF_Rect rcContent = m_pVT->GetContentRect();
+  CPDF_Rect rcPlate = m_pVT->GetPlateRect();
 
-    FX_FLOAT fPadding = 0.0f;
+  FX_FLOAT fPadding = 0.0f;
 
-    switch (m_nAlignment)
-    {
+  switch (m_nAlignment) {
     case 0:
-        fPadding = 0.0f;
-        break;
+      fPadding = 0.0f;
+      break;
     case 1:
-        fPadding = (rcPlate.Height() - rcContent.Height()) * 0.5f;
-        break;
+      fPadding = (rcPlate.Height() - rcContent.Height()) * 0.5f;
+      break;
     case 2:
-        fPadding = rcPlate.Height() - rcContent.Height();
-        break;
-    }
+      fPadding = rcPlate.Height() - rcContent.Height();
+      break;
+  }
 
-    return CPDF_Point(point.x - (m_ptScrollPos.x - rcPlate.left),
-        point.y - (m_ptScrollPos.y + fPadding - rcPlate.top));
+  return CPDF_Point(point.x - (m_ptScrollPos.x - rcPlate.left),
+                    point.y - (m_ptScrollPos.y + fPadding - rcPlate.top));
 }
 
-CPDF_Point CFX_Edit::EditToVT(const CPDF_Point & point) const
-{
-    CPDF_Rect rcContent = m_pVT->GetContentRect();
-    CPDF_Rect rcPlate = m_pVT->GetPlateRect();
+CPDF_Point CFX_Edit::EditToVT(const CPDF_Point& point) const {
+  CPDF_Rect rcContent = m_pVT->GetContentRect();
+  CPDF_Rect rcPlate = m_pVT->GetPlateRect();
 
-    FX_FLOAT fPadding = 0.0f;
+  FX_FLOAT fPadding = 0.0f;
 
-    switch (m_nAlignment)
-    {
+  switch (m_nAlignment) {
     case 0:
-        fPadding = 0.0f;
-        break;
+      fPadding = 0.0f;
+      break;
     case 1:
-        fPadding = (rcPlate.Height() - rcContent.Height()) * 0.5f;
-        break;
+      fPadding = (rcPlate.Height() - rcContent.Height()) * 0.5f;
+      break;
     case 2:
-        fPadding = rcPlate.Height() - rcContent.Height();
-        break;
-    }
+      fPadding = rcPlate.Height() - rcContent.Height();
+      break;
+  }
 
-    return CPDF_Point(point.x + (m_ptScrollPos.x - rcPlate.left),
-        point.y + (m_ptScrollPos.y + fPadding - rcPlate.top));
+  return CPDF_Point(point.x + (m_ptScrollPos.x - rcPlate.left),
+                    point.y + (m_ptScrollPos.y + fPadding - rcPlate.top));
 }
 
-CPDF_Rect CFX_Edit::VTToEdit(const CPDF_Rect & rect) const
-{
-    CPDF_Point ptLeftBottom = VTToEdit(CPDF_Point(rect.left,rect.bottom));
-    CPDF_Point ptRightTop = VTToEdit(CPDF_Point(rect.right,rect.top));
+CPDF_Rect CFX_Edit::VTToEdit(const CPDF_Rect& rect) const {
+  CPDF_Point ptLeftBottom = VTToEdit(CPDF_Point(rect.left, rect.bottom));
+  CPDF_Point ptRightTop = VTToEdit(CPDF_Point(rect.right, rect.top));
 
-    return CPDF_Rect(ptLeftBottom.x,ptLeftBottom.y,ptRightTop.x,ptRightTop.y);
+  return CPDF_Rect(ptLeftBottom.x, ptLeftBottom.y, ptRightTop.x, ptRightTop.y);
 }
 
-CPDF_Rect CFX_Edit::EditToVT(const CPDF_Rect & rect) const
-{
-    CPDF_Point ptLeftBottom = EditToVT(CPDF_Point(rect.left,rect.bottom));
-    CPDF_Point ptRightTop = EditToVT(CPDF_Point(rect.right,rect.top));
+CPDF_Rect CFX_Edit::EditToVT(const CPDF_Rect& rect) const {
+  CPDF_Point ptLeftBottom = EditToVT(CPDF_Point(rect.left, rect.bottom));
+  CPDF_Point ptRightTop = EditToVT(CPDF_Point(rect.right, rect.top));
 
-    return CPDF_Rect(ptLeftBottom.x,ptLeftBottom.y,ptRightTop.x,ptRightTop.y);
+  return CPDF_Rect(ptLeftBottom.x, ptLeftBottom.y, ptRightTop.x, ptRightTop.y);
 }
 
-void CFX_Edit::SetScrollInfo()
-{
-    if (m_bNotify && m_pNotify)
-    {
-        CPDF_Rect rcPlate = m_pVT->GetPlateRect();
-        CPDF_Rect rcContent = m_pVT->GetContentRect();
-
-        if (!m_bNotifyFlag)
-        {
-            m_bNotifyFlag = TRUE;
-            m_pNotify->IOnSetScrollInfoX(rcPlate.left, rcPlate.right,
-                                rcContent.left, rcContent.right, rcPlate.Width() / 3, rcPlate.Width());
+void CFX_Edit::SetScrollInfo() {
+  if (m_bNotify && m_pNotify) {
+    CPDF_Rect rcPlate = m_pVT->GetPlateRect();
+    CPDF_Rect rcContent = m_pVT->GetContentRect();
 
-            m_pNotify->IOnSetScrollInfoY(rcPlate.bottom, rcPlate.top,
-                    rcContent.bottom, rcContent.top, rcPlate.Height() / 3, rcPlate.Height());
-            m_bNotifyFlag = FALSE;
-        }
+    if (!m_bNotifyFlag) {
+      m_bNotifyFlag = TRUE;
+      m_pNotify->IOnSetScrollInfoX(rcPlate.left, rcPlate.right, rcContent.left,
+                                   rcContent.right, rcPlate.Width() / 3,
+                                   rcPlate.Width());
+
+      m_pNotify->IOnSetScrollInfoY(rcPlate.bottom, rcPlate.top,
+                                   rcContent.bottom, rcContent.top,
+                                   rcPlate.Height() / 3, rcPlate.Height());
+      m_bNotifyFlag = FALSE;
     }
+  }
 }
 
-void CFX_Edit::SetScrollPosX(FX_FLOAT fx)
-{
-    if (!m_bEnableScroll) return;
-
-    if (m_pVT->IsValid())
-    {
-        if (!FX_EDIT_IsFloatEqual(m_ptScrollPos.x,fx))
-        {
-            m_ptScrollPos.x = fx;
-            Refresh(RP_NOANALYSE);
-
-            if (m_bNotify && m_pNotify)
-            {
-                if (!m_bNotifyFlag)
-                {
-                    m_bNotifyFlag = TRUE;
-                    m_pNotify->IOnSetScrollPosX(fx);
-                    m_bNotifyFlag = FALSE;
-                }
-            }
+void CFX_Edit::SetScrollPosX(FX_FLOAT fx) {
+  if (!m_bEnableScroll)
+    return;
+
+  if (m_pVT->IsValid()) {
+    if (!FX_EDIT_IsFloatEqual(m_ptScrollPos.x, fx)) {
+      m_ptScrollPos.x = fx;
+      Refresh(RP_NOANALYSE);
+
+      if (m_bNotify && m_pNotify) {
+        if (!m_bNotifyFlag) {
+          m_bNotifyFlag = TRUE;
+          m_pNotify->IOnSetScrollPosX(fx);
+          m_bNotifyFlag = FALSE;
         }
+      }
     }
+  }
 }
 
-void CFX_Edit::SetScrollPosY(FX_FLOAT fy)
-{
-    if (!m_bEnableScroll) return;
-
-    if (m_pVT->IsValid())
-    {
-        if (!FX_EDIT_IsFloatEqual(m_ptScrollPos.y,fy))
-        {
-            m_ptScrollPos.y = fy;
-            Refresh(RP_NOANALYSE);
-
-            if (m_bNotify && m_pNotify)
-            {
-                if (!m_bNotifyFlag)
-                {
-                    m_bNotifyFlag = TRUE;
-                    m_pNotify->IOnSetScrollPosY(fy);
-                    m_bNotifyFlag = FALSE;
-                }
-            }
+void CFX_Edit::SetScrollPosY(FX_FLOAT fy) {
+  if (!m_bEnableScroll)
+    return;
+
+  if (m_pVT->IsValid()) {
+    if (!FX_EDIT_IsFloatEqual(m_ptScrollPos.y, fy)) {
+      m_ptScrollPos.y = fy;
+      Refresh(RP_NOANALYSE);
+
+      if (m_bNotify && m_pNotify) {
+        if (!m_bNotifyFlag) {
+          m_bNotifyFlag = TRUE;
+          m_pNotify->IOnSetScrollPosY(fy);
+          m_bNotifyFlag = FALSE;
         }
+      }
     }
+  }
 }
 
-void CFX_Edit::SetScrollPos(const CPDF_Point & point)
-{
-    SetScrollPosX(point.x);
-    SetScrollPosY(point.y);
-    SetScrollLimit();
-    SetCaretInfo();
+void CFX_Edit::SetScrollPos(const CPDF_Point& point) {
+  SetScrollPosX(point.x);
+  SetScrollPosY(point.y);
+  SetScrollLimit();
+  SetCaretInfo();
 }
 
-CPDF_Point CFX_Edit::GetScrollPos() const
-{
-    return m_ptScrollPos;
+CPDF_Point CFX_Edit::GetScrollPos() const {
+  return m_ptScrollPos;
 }
 
-void CFX_Edit::SetScrollLimit()
-{
-    if (m_pVT->IsValid())
-    {
-        CPDF_Rect rcContent = m_pVT->GetContentRect();
-        CPDF_Rect rcPlate = m_pVT->GetPlateRect();
-
-        if (rcPlate.Width() > rcContent.Width())
-        {
-            SetScrollPosX(rcPlate.left);
-        }
-        else
-        {
-            if (FX_EDIT_IsFloatSmaller(m_ptScrollPos.x, rcContent.left))
-            {
-                SetScrollPosX(rcContent.left);
-            }
-            else if (FX_EDIT_IsFloatBigger(m_ptScrollPos.x, rcContent.right - rcPlate.Width()))
-            {
-                SetScrollPosX(rcContent.right - rcPlate.Width());
-            }
-        }
+void CFX_Edit::SetScrollLimit() {
+  if (m_pVT->IsValid()) {
+    CPDF_Rect rcContent = m_pVT->GetContentRect();
+    CPDF_Rect rcPlate = m_pVT->GetPlateRect();
 
-        if (rcPlate.Height() > rcContent.Height())
-        {
-            SetScrollPosY(rcPlate.top);
-        }
-        else
-        {
-            if (FX_EDIT_IsFloatSmaller(m_ptScrollPos.y, rcContent.bottom + rcPlate.Height()))
-            {
-                SetScrollPosY(rcContent.bottom + rcPlate.Height());
-            }
-            else if (FX_EDIT_IsFloatBigger(m_ptScrollPos.y, rcContent.top))
-            {
-                SetScrollPosY(rcContent.top);
-            }
-        }
-    }
-}
+    if (rcPlate.Width() > rcContent.Width()) {
+      SetScrollPosX(rcPlate.left);
+    } else {
+      if (FX_EDIT_IsFloatSmaller(m_ptScrollPos.x, rcContent.left)) {
+        SetScrollPosX(rcContent.left);
+      } else if (FX_EDIT_IsFloatBigger(m_ptScrollPos.x,
+                                       rcContent.right - rcPlate.Width())) {
+        SetScrollPosX(rcContent.right - rcPlate.Width());
+      }
+    }
+
+    if (rcPlate.Height() > rcContent.Height()) {
+      SetScrollPosY(rcPlate.top);
+    } else {
+      if (FX_EDIT_IsFloatSmaller(m_ptScrollPos.y,
+                                 rcContent.bottom + rcPlate.Height())) {
+        SetScrollPosY(rcContent.bottom + rcPlate.Height());
+      } else if (FX_EDIT_IsFloatBigger(m_ptScrollPos.y, rcContent.top)) {
+        SetScrollPosY(rcContent.top);
+      }
+    }
+  }
+}
+
+void CFX_Edit::ScrollToCaret() {
+  SetScrollLimit();
+
+  if (m_pVT->IsValid()) {
+    CPDF_Point ptHead(0, 0);
+    CPDF_Point ptFoot(0, 0);
+
+    if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+      pIterator->SetAt(m_wpCaret);
+
+      CPVT_Word word;
+      CPVT_Line line;
+      if (pIterator->GetWord(word)) {
+        ptHead.x = word.ptWord.x + word.fWidth;
+        ptHead.y = word.ptWord.y + word.fAscent;
+        ptFoot.x = word.ptWord.x + word.fWidth;
+        ptFoot.y = word.ptWord.y + word.fDescent;
+      } else if (pIterator->GetLine(line)) {
+        ptHead.x = line.ptLine.x;
+        ptHead.y = line.ptLine.y + line.fLineAscent;
+        ptFoot.x = line.ptLine.x;
+        ptFoot.y = line.ptLine.y + line.fLineDescent;
+      }
+    }
+
+    CPDF_Point ptHeadEdit = VTToEdit(ptHead);
+    CPDF_Point ptFootEdit = VTToEdit(ptFoot);
 
-void CFX_Edit::ScrollToCaret()
-{
-    SetScrollLimit();
+    CPDF_Rect rcPlate = m_pVT->GetPlateRect();
 
-    if (m_pVT->IsValid())
-    {
-        CPDF_Point ptHead(0,0);
-        CPDF_Point ptFoot(0,0);
+    if (!FX_EDIT_IsFloatEqual(rcPlate.left, rcPlate.right)) {
+      if (FX_EDIT_IsFloatSmaller(ptHeadEdit.x, rcPlate.left) ||
+          FX_EDIT_IsFloatEqual(ptHeadEdit.x, rcPlate.left)) {
+        SetScrollPosX(ptHead.x);
+      } else if (FX_EDIT_IsFloatBigger(ptHeadEdit.x, rcPlate.right)) {
+        SetScrollPosX(ptHead.x - rcPlate.Width());
+      }
+    }
+
+    if (!FX_EDIT_IsFloatEqual(rcPlate.top, rcPlate.bottom)) {
+      if (FX_EDIT_IsFloatSmaller(ptFootEdit.y, rcPlate.bottom) ||
+          FX_EDIT_IsFloatEqual(ptFootEdit.y, rcPlate.bottom)) {
+        if (FX_EDIT_IsFloatSmaller(ptHeadEdit.y, rcPlate.top)) {
+          SetScrollPosY(ptFoot.y + rcPlate.Height());
+        }
+      } else if (FX_EDIT_IsFloatBigger(ptHeadEdit.y, rcPlate.top)) {
+        if (FX_EDIT_IsFloatBigger(ptFootEdit.y, rcPlate.bottom)) {
+          SetScrollPosY(ptHead.y);
+        }
+      }
+    }
+  }
+}
+
+void CFX_Edit::Refresh(REFRESH_PLAN_E ePlan,
+                       const CPVT_WordRange* pRange1,
+                       const CPVT_WordRange* pRange2) {
+  if (m_bEnableRefresh && m_pVT->IsValid()) {
+    m_Refresh.BeginRefresh();
+    RefreshPushLineRects(GetVisibleWordRange());
+
+    //      if (!FX_EDIT_IsFloatEqual(m_ptRefreshScrollPos.x,m_ptScrollPos.x) ||
+    //          !FX_EDIT_IsFloatEqual(m_ptRefreshScrollPos.y,m_ptScrollPos.y))
+    //      {
+    m_Refresh.NoAnalyse();
+    m_ptRefreshScrollPos = m_ptScrollPos;
+    //      }
+    //      else
+    //      {
+    //          switch (ePlan)
+    //          {
+    //          case RP_ANALYSE:
+    //              m_Refresh.Analyse(m_pVT->GetAlignment());
+    //
+    //              if (pRange1) RefreshPushRandomRects(*pRange1);
+    //              if (pRange2) RefreshPushRandomRects(*pRange2);
+    //              break;
+    //          case RP_NOANALYSE:
+    //              m_Refresh.NoAnalyse();
+    //              break;
+    //          case RP_OPTIONAL:
+    //              if (pRange1) RefreshPushRandomRects(*pRange1);
+    //              if (pRange2) RefreshPushRandomRects(*pRange2);
+    //              break;
+    //          }
+    //      }
+
+    if (m_bNotify && m_pNotify) {
+      if (!m_bNotifyFlag) {
+        m_bNotifyFlag = TRUE;
+        if (const CFX_Edit_RectArray* pRects = m_Refresh.GetRefreshRects()) {
+          for (int32_t i = 0, sz = pRects->GetSize(); i < sz; i++)
+            m_pNotify->IOnInvalidateRect(pRects->GetAt(i));
+        }
+        m_bNotifyFlag = FALSE;
+      }
+    }
+
+    m_Refresh.EndRefresh();
+  }
+}
+
+void CFX_Edit::RefreshPushLineRects(const CPVT_WordRange& wr) {
+  if (m_pVT->IsValid()) {
+    if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+      CPVT_WordPlace wpBegin = wr.BeginPos;
+      m_pVT->UpdateWordPlace(wpBegin);
+      CPVT_WordPlace wpEnd = wr.EndPos;
+      m_pVT->UpdateWordPlace(wpEnd);
+      pIterator->SetAt(wpBegin);
+
+      CPVT_Line lineinfo;
+      do {
+        if (!pIterator->GetLine(lineinfo))
+          break;
+        if (lineinfo.lineplace.LineCmp(wpEnd) > 0)
+          break;
+
+        CPDF_Rect rcLine(lineinfo.ptLine.x,
+                         lineinfo.ptLine.y + lineinfo.fLineDescent,
+                         lineinfo.ptLine.x + lineinfo.fLineWidth,
+                         lineinfo.ptLine.y + lineinfo.fLineAscent);
+
+        m_Refresh.Push(CPVT_WordRange(lineinfo.lineplace, lineinfo.lineEnd),
+                       VTToEdit(rcLine));
+
+      } while (pIterator->NextLine());
+    }
+  }
+}
+
+void CFX_Edit::RefreshPushRandomRects(const CPVT_WordRange& wr) {
+  if (m_pVT->IsValid()) {
+    if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+      CPVT_WordRange wrTemp = wr;
+
+      m_pVT->UpdateWordPlace(wrTemp.BeginPos);
+      m_pVT->UpdateWordPlace(wrTemp.EndPos);
+      pIterator->SetAt(wrTemp.BeginPos);
+
+      CPVT_Word wordinfo;
+      CPVT_Line lineinfo;
+      CPVT_WordPlace place;
+
+      while (pIterator->NextWord()) {
+        place = pIterator->GetAt();
+        if (place.WordCmp(wrTemp.EndPos) > 0)
+          break;
+
+        pIterator->GetWord(wordinfo);
+        pIterator->GetLine(lineinfo);
+
+        if (place.LineCmp(wrTemp.BeginPos) == 0 ||
+            place.LineCmp(wrTemp.EndPos) == 0) {
+          CPDF_Rect rcWord(wordinfo.ptWord.x,
+                           lineinfo.ptLine.y + lineinfo.fLineDescent,
+                           wordinfo.ptWord.x + wordinfo.fWidth,
+                           lineinfo.ptLine.y + lineinfo.fLineAscent);
+
+          m_Refresh.AddRefresh(VTToEdit(rcWord));
+        } else {
+          CPDF_Rect rcLine(lineinfo.ptLine.x,
+                           lineinfo.ptLine.y + lineinfo.fLineDescent,
+                           lineinfo.ptLine.x + lineinfo.fLineWidth,
+                           lineinfo.ptLine.y + lineinfo.fLineAscent);
+
+          m_Refresh.AddRefresh(VTToEdit(rcLine));
+
+          pIterator->NextLine();
+        }
+      }
+    }
+  }
+}
+
+void CFX_Edit::RefreshWordRange(const CPVT_WordRange& wr) {
+  if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+    CPVT_WordRange wrTemp = wr;
 
-        if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-        {
-            pIterator->SetAt(m_wpCaret);
+    m_pVT->UpdateWordPlace(wrTemp.BeginPos);
+    m_pVT->UpdateWordPlace(wrTemp.EndPos);
+    pIterator->SetAt(wrTemp.BeginPos);
 
-            CPVT_Word word;
-            CPVT_Line line;
-            if (pIterator->GetWord(word))
-            {
-                ptHead.x = word.ptWord.x + word.fWidth;
-                ptHead.y = word.ptWord.y + word.fAscent;
-                ptFoot.x = word.ptWord.x + word.fWidth;
-                ptFoot.y = word.ptWord.y + word.fDescent;
-            }
-            else if (pIterator->GetLine(line))
-            {
-                ptHead.x = line.ptLine.x;
-                ptHead.y = line.ptLine.y + line.fLineAscent;
-                ptFoot.x = line.ptLine.x;
-                ptFoot.y = line.ptLine.y + line.fLineDescent;
-            }
-        }
+    CPVT_Word wordinfo;
+    CPVT_Line lineinfo;
+    CPVT_WordPlace place;
 
-        CPDF_Point ptHeadEdit = VTToEdit(ptHead);
-        CPDF_Point ptFootEdit = VTToEdit(ptFoot);
+    while (pIterator->NextWord()) {
+      place = pIterator->GetAt();
+      if (place.WordCmp(wrTemp.EndPos) > 0)
+        break;
 
-        CPDF_Rect rcPlate = m_pVT->GetPlateRect();
+      pIterator->GetWord(wordinfo);
+      pIterator->GetLine(lineinfo);
 
-        if (!FX_EDIT_IsFloatEqual(rcPlate.left,rcPlate.right))
-        {
-            if (FX_EDIT_IsFloatSmaller(ptHeadEdit.x, rcPlate.left) ||
-                FX_EDIT_IsFloatEqual(ptHeadEdit.x, rcPlate.left))
-            {
-                SetScrollPosX(ptHead.x);
-            }
-            else if (FX_EDIT_IsFloatBigger(ptHeadEdit.x, rcPlate.right))
-            {
-                SetScrollPosX(ptHead.x - rcPlate.Width());
-            }
-        }
+      if (place.LineCmp(wrTemp.BeginPos) == 0 ||
+          place.LineCmp(wrTemp.EndPos) == 0) {
+        CPDF_Rect rcWord(wordinfo.ptWord.x,
+                         lineinfo.ptLine.y + lineinfo.fLineDescent,
+                         wordinfo.ptWord.x + wordinfo.fWidth,
+                         lineinfo.ptLine.y + lineinfo.fLineAscent);
 
-        if (!FX_EDIT_IsFloatEqual(rcPlate.top,rcPlate.bottom))
-        {
-            if (FX_EDIT_IsFloatSmaller(ptFootEdit.y, rcPlate.bottom) ||
-                FX_EDIT_IsFloatEqual(ptFootEdit.y, rcPlate.bottom))
-            {
-                if (FX_EDIT_IsFloatSmaller(ptHeadEdit.y, rcPlate.top))
-                {
-                    SetScrollPosY(ptFoot.y + rcPlate.Height());
-                }
-            }
-            else if (FX_EDIT_IsFloatBigger(ptHeadEdit.y, rcPlate.top))
-            {
-                if (FX_EDIT_IsFloatBigger(ptFootEdit.y, rcPlate.bottom))
-                {
-                    SetScrollPosY(ptHead.y);
-                }
-            }
+        if (m_bNotify && m_pNotify) {
+          if (!m_bNotifyFlag) {
+            m_bNotifyFlag = TRUE;
+            CPDF_Rect rcRefresh = VTToEdit(rcWord);
+            m_pNotify->IOnInvalidateRect(&rcRefresh);
+            m_bNotifyFlag = FALSE;
+          }
         }
-    }
-}
+      } else {
+        CPDF_Rect rcLine(lineinfo.ptLine.x,
+                         lineinfo.ptLine.y + lineinfo.fLineDescent,
+                         lineinfo.ptLine.x + lineinfo.fLineWidth,
+                         lineinfo.ptLine.y + lineinfo.fLineAscent);
 
-void CFX_Edit::Refresh(REFRESH_PLAN_E ePlan,const CPVT_WordRange * pRange1,const CPVT_WordRange * pRange2)
-{
-    if (m_bEnableRefresh && m_pVT->IsValid())
-    {
-        m_Refresh.BeginRefresh();
-        RefreshPushLineRects(GetVisibleWordRange());
-
-//      if (!FX_EDIT_IsFloatEqual(m_ptRefreshScrollPos.x,m_ptScrollPos.x) ||
-//          !FX_EDIT_IsFloatEqual(m_ptRefreshScrollPos.y,m_ptScrollPos.y))
-//      {
-            m_Refresh.NoAnalyse();
-            m_ptRefreshScrollPos = m_ptScrollPos;
-//      }
-//      else
-//      {
-//          switch (ePlan)
-//          {
-//          case RP_ANALYSE:
-//              m_Refresh.Analyse(m_pVT->GetAlignment());
-//
-//              if (pRange1) RefreshPushRandomRects(*pRange1);
-//              if (pRange2) RefreshPushRandomRects(*pRange2);
-//              break;
-//          case RP_NOANALYSE:
-//              m_Refresh.NoAnalyse();
-//              break;
-//          case RP_OPTIONAL:
-//              if (pRange1) RefreshPushRandomRects(*pRange1);
-//              if (pRange2) RefreshPushRandomRects(*pRange2);
-//              break;
-//          }
-//      }
-
-        if (m_bNotify && m_pNotify)
-        {
-            if (!m_bNotifyFlag)
-            {
-                m_bNotifyFlag = TRUE;
-                if (const CFX_Edit_RectArray * pRects = m_Refresh.GetRefreshRects())
-                {
-                    for (int32_t i = 0, sz = pRects->GetSize(); i < sz; i++)
-                        m_pNotify->IOnInvalidateRect(pRects->GetAt(i));
-                }
-                m_bNotifyFlag = FALSE;
-            }
+        if (m_bNotify && m_pNotify) {
+          if (!m_bNotifyFlag) {
+            m_bNotifyFlag = TRUE;
+            CPDF_Rect rcRefresh = VTToEdit(rcLine);
+            m_pNotify->IOnInvalidateRect(&rcRefresh);
+            m_bNotifyFlag = FALSE;
+          }
         }
 
-        m_Refresh.EndRefresh();
+        pIterator->NextLine();
+      }
     }
+  }
 }
 
-void CFX_Edit::RefreshPushLineRects(const CPVT_WordRange & wr)
-{
-    if (m_pVT->IsValid())
-    {
-        if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-        {
-            CPVT_WordPlace wpBegin = wr.BeginPos;
-            m_pVT->UpdateWordPlace(wpBegin);
-            CPVT_WordPlace wpEnd = wr.EndPos;
-            m_pVT->UpdateWordPlace(wpEnd);
-            pIterator->SetAt(wpBegin);
-
-            CPVT_Line lineinfo;
-            do
-            {
-                if (!pIterator->GetLine(lineinfo))break;
-                if (lineinfo.lineplace.LineCmp(wpEnd) > 0)break;
-
-                CPDF_Rect rcLine(lineinfo.ptLine.x,
-                                    lineinfo.ptLine.y + lineinfo.fLineDescent,
-                                    lineinfo.ptLine.x + lineinfo.fLineWidth,
-                                    lineinfo.ptLine.y + lineinfo.fLineAscent);
-
-                m_Refresh.Push(CPVT_WordRange(lineinfo.lineplace,lineinfo.lineEnd),VTToEdit(rcLine));
-
-            }while (pIterator->NextLine());
-        }
-    }
+void CFX_Edit::SetCaret(const CPVT_WordPlace& place) {
+  m_wpOldCaret = m_wpCaret;
+  m_wpCaret = place;
 }
 
-void CFX_Edit::RefreshPushRandomRects(const CPVT_WordRange & wr)
-{
-    if (m_pVT->IsValid())
-    {
-        if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-        {
-            CPVT_WordRange wrTemp = wr;
+void CFX_Edit::SetCaretInfo() {
+  if (m_bNotify && m_pNotify) {
+    if (!m_bNotifyFlag) {
+      CPDF_Point ptHead(0.0f, 0.0f), ptFoot(0.0f, 0.0f);
 
-            m_pVT->UpdateWordPlace(wrTemp.BeginPos);
-            m_pVT->UpdateWordPlace(wrTemp.EndPos);
-            pIterator->SetAt(wrTemp.BeginPos);
+      if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+        pIterator->SetAt(m_wpCaret);
+        CPVT_Word word;
+        CPVT_Line line;
+        if (pIterator->GetWord(word)) {
+          ptHead.x = word.ptWord.x + word.fWidth;
+          ptHead.y = word.ptWord.y + word.fAscent;
+          ptFoot.x = word.ptWord.x + word.fWidth;
+          ptFoot.y = word.ptWord.y + word.fDescent;
+        } else if (pIterator->GetLine(line)) {
+          ptHead.x = line.ptLine.x;
+          ptHead.y = line.ptLine.y + line.fLineAscent;
+          ptFoot.x = line.ptLine.x;
+          ptFoot.y = line.ptLine.y + line.fLineDescent;
+        }
+      }
 
-            CPVT_Word wordinfo;
-            CPVT_Line lineinfo;
-            CPVT_WordPlace place;
+      m_bNotifyFlag = TRUE;
+      m_pNotify->IOnSetCaret(!m_SelState.IsExist(), VTToEdit(ptHead),
+                             VTToEdit(ptFoot), m_wpCaret);
+      m_bNotifyFlag = FALSE;
+    }
+  }
 
-            while (pIterator->NextWord())
-            {
-                place = pIterator->GetAt();
-                if (place.WordCmp(wrTemp.EndPos) > 0) break;
+  SetCaretChange();
+}
 
-                pIterator->GetWord(wordinfo);
-                pIterator->GetLine(lineinfo);
+void CFX_Edit::SetCaretChange() {
+  if (m_wpCaret == m_wpOldCaret)
+    return;
 
-                if (place.LineCmp(wrTemp.BeginPos) == 0 || place.LineCmp(wrTemp.EndPos) == 0)
-                {
-                    CPDF_Rect rcWord(wordinfo.ptWord.x,
-                                        lineinfo.ptLine.y + lineinfo.fLineDescent,
-                                        wordinfo.ptWord.x + wordinfo.fWidth,
-                                        lineinfo.ptLine.y + lineinfo.fLineAscent);
+  if (m_bNotify && m_pVT->IsRichText() && m_pNotify) {
+    CPVT_SecProps SecProps;
+    CPVT_WordProps WordProps;
 
-                    m_Refresh.AddRefresh(VTToEdit(rcWord));
-                }
-                else
-                {
-                    CPDF_Rect rcLine(lineinfo.ptLine.x,
-                                        lineinfo.ptLine.y + lineinfo.fLineDescent,
-                                        lineinfo.ptLine.x + lineinfo.fLineWidth,
-                                        lineinfo.ptLine.y + lineinfo.fLineAscent);
+    if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+      pIterator->SetAt(m_wpCaret);
+      CPVT_Word word;
+      CPVT_Section section;
 
-                    m_Refresh.AddRefresh(VTToEdit(rcLine));
+      if (pIterator->GetSection(section)) {
+        SecProps = section.SecProps;
+        WordProps = section.WordProps;
+      }
 
-                    pIterator->NextLine();
-                }
-            }
-        }
+      if (pIterator->GetWord(word)) {
+        WordProps = word.WordProps;
+      }
     }
-}
 
-void CFX_Edit::RefreshWordRange(const CPVT_WordRange& wr)
-{
-    if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-    {
-        CPVT_WordRange wrTemp = wr;
-
-        m_pVT->UpdateWordPlace(wrTemp.BeginPos);
-        m_pVT->UpdateWordPlace(wrTemp.EndPos);
-        pIterator->SetAt(wrTemp.BeginPos);
-
-        CPVT_Word wordinfo;
-        CPVT_Line lineinfo;
-        CPVT_WordPlace place;
-
-        while (pIterator->NextWord())
-        {
-            place = pIterator->GetAt();
-            if (place.WordCmp(wrTemp.EndPos) > 0) break;
-
-            pIterator->GetWord(wordinfo);
-            pIterator->GetLine(lineinfo);
-
-            if (place.LineCmp(wrTemp.BeginPos) == 0 || place.LineCmp(wrTemp.EndPos) == 0)
-            {
-                CPDF_Rect rcWord(wordinfo.ptWord.x,
-                                    lineinfo.ptLine.y + lineinfo.fLineDescent,
-                                    wordinfo.ptWord.x + wordinfo.fWidth,
-                                    lineinfo.ptLine.y + lineinfo.fLineAscent);
-
-                if (m_bNotify && m_pNotify)
-                {
-                    if (!m_bNotifyFlag)
-                    {
-                        m_bNotifyFlag = TRUE;
-                        CPDF_Rect rcRefresh = VTToEdit(rcWord);
-                        m_pNotify->IOnInvalidateRect(&rcRefresh);
-                        m_bNotifyFlag = FALSE;
-                    }
-                }
-            }
-            else
-            {
-                CPDF_Rect rcLine(lineinfo.ptLine.x,
-                                    lineinfo.ptLine.y + lineinfo.fLineDescent,
-                                    lineinfo.ptLine.x + lineinfo.fLineWidth,
-                                    lineinfo.ptLine.y + lineinfo.fLineAscent);
-
-                if (m_bNotify && m_pNotify)
-                {
-                    if (!m_bNotifyFlag)
-                    {
-                        m_bNotifyFlag = TRUE;
-                        CPDF_Rect rcRefresh = VTToEdit(rcLine);
-                        m_pNotify->IOnInvalidateRect(&rcRefresh);
-                        m_bNotifyFlag = FALSE;
-                    }
-                }
-
-                pIterator->NextLine();
-            }
-        }
+    if (!m_bNotifyFlag) {
+      m_bNotifyFlag = TRUE;
+      m_pNotify->IOnCaretChange(SecProps, WordProps);
+      m_bNotifyFlag = FALSE;
     }
+  }
 }
 
-void CFX_Edit::SetCaret(const CPVT_WordPlace & place)
-{
-    m_wpOldCaret = m_wpCaret;
-    m_wpCaret = place;
-}
-
-void CFX_Edit::SetCaretInfo()
-{
-    if (m_bNotify && m_pNotify)
-    {
-        if (!m_bNotifyFlag)
-        {
-            CPDF_Point ptHead(0.0f,0.0f),ptFoot(0.0f,0.0f);
-
-            if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-            {
-                pIterator->SetAt(m_wpCaret);
-                CPVT_Word word;
-                CPVT_Line line;
-                if (pIterator->GetWord(word))
-                {
-                    ptHead.x = word.ptWord.x + word.fWidth;
-                    ptHead.y = word.ptWord.y + word.fAscent;
-                    ptFoot.x = word.ptWord.x + word.fWidth;
-                    ptFoot.y = word.ptWord.y + word.fDescent;
-                }
-                else if (pIterator->GetLine(line))
-                {
-                    ptHead.x = line.ptLine.x;
-                    ptHead.y = line.ptLine.y + line.fLineAscent;
-                    ptFoot.x = line.ptLine.x;
-                    ptFoot.y = line.ptLine.y + line.fLineDescent;
-                }
-            }
+void CFX_Edit::SetCaret(int32_t nPos) {
+  if (m_pVT->IsValid()) {
+    SelectNone();
+    SetCaret(m_pVT->WordIndexToWordPlace(nPos));
+    m_SelState.Set(m_wpCaret, m_wpCaret);
 
-            m_bNotifyFlag = TRUE;
-            m_pNotify->IOnSetCaret(!m_SelState.IsExist(),VTToEdit(ptHead),VTToEdit(ptFoot), m_wpCaret);
-            m_bNotifyFlag = FALSE;
-        }
-    }
-
-    SetCaretChange();
+    ScrollToCaret();
+    SetCaretOrigin();
+    SetCaretInfo();
+  }
 }
 
-void CFX_Edit::SetCaretChange()
-{
-    if (m_wpCaret == m_wpOldCaret) return;
-
-    if (m_bNotify && m_pVT->IsRichText() && m_pNotify)
-    {
-        CPVT_SecProps SecProps;
-        CPVT_WordProps WordProps;
+void CFX_Edit::OnMouseDown(const CPDF_Point& point,
+                           FX_BOOL bShift,
+                           FX_BOOL bCtrl) {
+  if (m_pVT->IsValid()) {
+    SelectNone();
+    SetCaret(m_pVT->SearchWordPlace(EditToVT(point)));
+    m_SelState.Set(m_wpCaret, m_wpCaret);
 
-        if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-        {
-            pIterator->SetAt(m_wpCaret);
-            CPVT_Word word;
-            CPVT_Section section;
+    ScrollToCaret();
+    SetCaretOrigin();
+    SetCaretInfo();
+  }
+}
 
-            if (pIterator->GetSection(section))
-            {
-                SecProps = section.SecProps;
-                WordProps = section.WordProps;
-            }
+void CFX_Edit::OnMouseMove(const CPDF_Point& point,
+                           FX_BOOL bShift,
+                           FX_BOOL bCtrl) {
+  if (m_pVT->IsValid()) {
+    SetCaret(m_pVT->SearchWordPlace(EditToVT(point)));
 
-            if (pIterator->GetWord(word))
-            {
-                WordProps = word.WordProps;
-            }
-        }
+    if (m_wpCaret != m_wpOldCaret) {
+      m_SelState.SetEndPos(m_wpCaret);
 
-        if (!m_bNotifyFlag)
-        {
-            m_bNotifyFlag = TRUE;
-            m_pNotify->IOnCaretChange(SecProps,WordProps);
-            m_bNotifyFlag = FALSE;
-        }
+      ScrollToCaret();
+      CPVT_WordRange wr(m_wpOldCaret, m_wpCaret);
+      Refresh(RP_OPTIONAL, &wr);
+      SetCaretOrigin();
+      SetCaretInfo();
     }
+  }
 }
 
-void CFX_Edit::SetCaret(int32_t nPos)
-{
-    if (m_pVT->IsValid())
-    {
-        SelectNone();
-        SetCaret(m_pVT->WordIndexToWordPlace(nPos));
-        m_SelState.Set(m_wpCaret,m_wpCaret);
+void CFX_Edit::OnVK_UP(FX_BOOL bShift, FX_BOOL bCtrl) {
+  if (m_pVT->IsValid()) {
+    SetCaret(m_pVT->GetUpWordPlace(m_wpCaret, m_ptCaret));
+
+    if (bShift) {
+      if (m_SelState.IsExist())
+        m_SelState.SetEndPos(m_wpCaret);
+      else
+        m_SelState.Set(m_wpOldCaret, m_wpCaret);
 
+      if (m_wpOldCaret != m_wpCaret) {
         ScrollToCaret();
-        SetCaretOrigin();
+        CPVT_WordRange wr(m_wpOldCaret, m_wpCaret);
+        Refresh(RP_OPTIONAL, &wr);
         SetCaretInfo();
+      }
+    } else {
+      SelectNone();
+
+      ScrollToCaret();
+      SetCaretInfo();
     }
+  }
 }
 
-void CFX_Edit::OnMouseDown(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl)
-{
-    if (m_pVT->IsValid())
-    {
-        SelectNone();
-        SetCaret(m_pVT->SearchWordPlace(EditToVT(point)));
-        m_SelState.Set(m_wpCaret,m_wpCaret);
+void CFX_Edit::OnVK_DOWN(FX_BOOL bShift, FX_BOOL bCtrl) {
+  if (m_pVT->IsValid()) {
+    SetCaret(m_pVT->GetDownWordPlace(m_wpCaret, m_ptCaret));
 
+    if (bShift) {
+      if (m_SelState.IsExist())
+        m_SelState.SetEndPos(m_wpCaret);
+      else
+        m_SelState.Set(m_wpOldCaret, m_wpCaret);
+
+      if (m_wpOldCaret != m_wpCaret) {
         ScrollToCaret();
-        SetCaretOrigin();
+        CPVT_WordRange wr(m_wpOldCaret, m_wpCaret);
+        Refresh(RP_OPTIONAL, &wr);
         SetCaretInfo();
+      }
+    } else {
+      SelectNone();
+
+      ScrollToCaret();
+      SetCaretInfo();
     }
+  }
 }
 
-void CFX_Edit::OnMouseMove(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl)
-{
-    if (m_pVT->IsValid())
-    {
-        SetCaret(m_pVT->SearchWordPlace(EditToVT(point)));
+void CFX_Edit::OnVK_LEFT(FX_BOOL bShift, FX_BOOL bCtrl) {
+  if (m_pVT->IsValid()) {
+    if (bShift) {
+      if (m_wpCaret == m_pVT->GetLineBeginPlace(m_wpCaret) &&
+          m_wpCaret != m_pVT->GetSectionBeginPlace(m_wpCaret))
+        SetCaret(m_pVT->GetPrevWordPlace(m_wpCaret));
 
-        if (m_wpCaret != m_wpOldCaret)
-        {
-            m_SelState.SetEndPos(m_wpCaret);
+      SetCaret(m_pVT->GetPrevWordPlace(m_wpCaret));
 
-            ScrollToCaret();
-            CPVT_WordRange wr(m_wpOldCaret,m_wpCaret);
-            Refresh(RP_OPTIONAL,&wr);
-            SetCaretOrigin();
-            SetCaretInfo();
-        }
-    }
-}
+      if (m_SelState.IsExist())
+        m_SelState.SetEndPos(m_wpCaret);
+      else
+        m_SelState.Set(m_wpOldCaret, m_wpCaret);
 
-void CFX_Edit::OnVK_UP(FX_BOOL bShift,FX_BOOL bCtrl)
-{
-    if (m_pVT->IsValid())
-    {
-        SetCaret(m_pVT->GetUpWordPlace(m_wpCaret,m_ptCaret));
-
-        if (bShift)
-        {
-            if (m_SelState.IsExist())
-                m_SelState.SetEndPos(m_wpCaret);
-            else
-                m_SelState.Set(m_wpOldCaret,m_wpCaret);
-
-            if (m_wpOldCaret != m_wpCaret)
-            {
-                ScrollToCaret();
-                CPVT_WordRange wr(m_wpOldCaret, m_wpCaret);
-                Refresh(RP_OPTIONAL, &wr);
-                SetCaretInfo();
-            }
-        }
+      if (m_wpOldCaret != m_wpCaret) {
+        ScrollToCaret();
+        CPVT_WordRange wr(m_wpOldCaret, m_wpCaret);
+        Refresh(RP_OPTIONAL, &wr);
+        SetCaretInfo();
+      }
+    } else {
+      if (m_SelState.IsExist()) {
+        if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) < 0)
+          SetCaret(m_SelState.BeginPos);
         else
-        {
-            SelectNone();
+          SetCaret(m_SelState.EndPos);
 
-            ScrollToCaret();
-            SetCaretInfo();
-        }
-    }
-}
+        SelectNone();
+        ScrollToCaret();
+        SetCaretInfo();
+      } else {
+        if (m_wpCaret == m_pVT->GetLineBeginPlace(m_wpCaret) &&
+            m_wpCaret != m_pVT->GetSectionBeginPlace(m_wpCaret))
+          SetCaret(m_pVT->GetPrevWordPlace(m_wpCaret));
 
-void CFX_Edit::OnVK_DOWN(FX_BOOL bShift,FX_BOOL bCtrl)
-{
-    if (m_pVT->IsValid())
-    {
-        SetCaret(m_pVT->GetDownWordPlace(m_wpCaret,m_ptCaret));
-
-        if (bShift)
-        {
-            if (m_SelState.IsExist())
-                m_SelState.SetEndPos(m_wpCaret);
-            else
-                m_SelState.Set(m_wpOldCaret,m_wpCaret);
-
-            if (m_wpOldCaret != m_wpCaret)
-            {
-                ScrollToCaret();
-                CPVT_WordRange wr(m_wpOldCaret,m_wpCaret);
-                Refresh(RP_OPTIONAL, &wr);
-                SetCaretInfo();
-            }
-        }
-        else
-        {
-            SelectNone();
+        SetCaret(m_pVT->GetPrevWordPlace(m_wpCaret));
 
-            ScrollToCaret();
-            SetCaretInfo();
-        }
+        ScrollToCaret();
+        SetCaretOrigin();
+        SetCaretInfo();
+      }
     }
+  }
 }
 
-void CFX_Edit::OnVK_LEFT(FX_BOOL bShift,FX_BOOL bCtrl)
-{
-    if (m_pVT->IsValid())
-    {
-        if (bShift)
-        {
-            if (m_wpCaret == m_pVT->GetLineBeginPlace(m_wpCaret) &&
-                m_wpCaret != m_pVT->GetSectionBeginPlace(m_wpCaret))
-                SetCaret(m_pVT->GetPrevWordPlace(m_wpCaret));
-
-            SetCaret(m_pVT->GetPrevWordPlace(m_wpCaret));
-
-            if (m_SelState.IsExist())
-                m_SelState.SetEndPos(m_wpCaret);
-            else
-                m_SelState.Set(m_wpOldCaret, m_wpCaret);
-
-            if (m_wpOldCaret != m_wpCaret)
-            {
-                ScrollToCaret();
-                CPVT_WordRange wr(m_wpOldCaret,m_wpCaret);
-                Refresh(RP_OPTIONAL,&wr);
-                SetCaretInfo();
-            }
-        }
-        else
-        {
-            if (m_SelState.IsExist())
-            {
-                if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos)<0)
-                    SetCaret(m_SelState.BeginPos);
-                else
-                    SetCaret(m_SelState.EndPos);
-
-                SelectNone();
-                ScrollToCaret();
-                SetCaretInfo();
-            }
-            else
-            {
-                if (m_wpCaret == m_pVT->GetLineBeginPlace(m_wpCaret) &&
-                    m_wpCaret != m_pVT->GetSectionBeginPlace(m_wpCaret))
-                    SetCaret(m_pVT->GetPrevWordPlace(m_wpCaret));
+void CFX_Edit::OnVK_RIGHT(FX_BOOL bShift, FX_BOOL bCtrl) {
+  if (m_pVT->IsValid()) {
+    if (bShift) {
+      SetCaret(m_pVT->GetNextWordPlace(m_wpCaret));
 
-                SetCaret(m_pVT->GetPrevWordPlace(m_wpCaret));
+      if (m_wpCaret == m_pVT->GetLineEndPlace(m_wpCaret) &&
+          m_wpCaret != m_pVT->GetSectionEndPlace(m_wpCaret))
+        SetCaret(m_pVT->GetNextWordPlace(m_wpCaret));
 
-                ScrollToCaret();
-                SetCaretOrigin();
-                SetCaretInfo();
-            }
-        }
-    }
-}
+      if (m_SelState.IsExist())
+        m_SelState.SetEndPos(m_wpCaret);
+      else
+        m_SelState.Set(m_wpOldCaret, m_wpCaret);
 
-void CFX_Edit::OnVK_RIGHT(FX_BOOL bShift,FX_BOOL bCtrl)
-{
-    if (m_pVT->IsValid())
-    {
-        if (bShift)
-        {
-            SetCaret(m_pVT->GetNextWordPlace(m_wpCaret));
-
-            if (m_wpCaret == m_pVT->GetLineEndPlace(m_wpCaret) &&
-                m_wpCaret != m_pVT->GetSectionEndPlace(m_wpCaret))
-                SetCaret(m_pVT->GetNextWordPlace(m_wpCaret));
-
-            if (m_SelState.IsExist())
-                m_SelState.SetEndPos(m_wpCaret);
-            else
-                m_SelState.Set(m_wpOldCaret,m_wpCaret);
-
-            if (m_wpOldCaret != m_wpCaret)
-            {
-                ScrollToCaret();
-                CPVT_WordRange wr(m_wpOldCaret,m_wpCaret);
-                Refresh(RP_OPTIONAL,&wr);
-                SetCaretInfo();
-            }
-        }
+      if (m_wpOldCaret != m_wpCaret) {
+        ScrollToCaret();
+        CPVT_WordRange wr(m_wpOldCaret, m_wpCaret);
+        Refresh(RP_OPTIONAL, &wr);
+        SetCaretInfo();
+      }
+    } else {
+      if (m_SelState.IsExist()) {
+        if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) > 0)
+          SetCaret(m_SelState.BeginPos);
         else
-        {
-            if (m_SelState.IsExist())
-            {
-                if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos)>0)
-                    SetCaret(m_SelState.BeginPos);
-                else
-                    SetCaret(m_SelState.EndPos);
-
-                SelectNone();
-                ScrollToCaret();
-                SetCaretInfo();
-            }
-            else
-            {
-                SetCaret(m_pVT->GetNextWordPlace(m_wpCaret));
+          SetCaret(m_SelState.EndPos);
 
-                if (m_wpCaret == m_pVT->GetLineEndPlace(m_wpCaret) &&
-                    m_wpCaret != m_pVT->GetSectionEndPlace(m_wpCaret))
-                    SetCaret(m_pVT->GetNextWordPlace(m_wpCaret));
+        SelectNone();
+        ScrollToCaret();
+        SetCaretInfo();
+      } else {
+        SetCaret(m_pVT->GetNextWordPlace(m_wpCaret));
 
-                ScrollToCaret();
-                SetCaretOrigin();
-                SetCaretInfo();
-            }
-        }
+        if (m_wpCaret == m_pVT->GetLineEndPlace(m_wpCaret) &&
+            m_wpCaret != m_pVT->GetSectionEndPlace(m_wpCaret))
+          SetCaret(m_pVT->GetNextWordPlace(m_wpCaret));
+
+        ScrollToCaret();
+        SetCaretOrigin();
+        SetCaretInfo();
+      }
     }
+  }
 }
 
-void CFX_Edit::OnVK_HOME(FX_BOOL bShift,FX_BOOL bCtrl)
-{
-    if (m_pVT->IsValid())
-    {
-        if (bShift)
-        {
-            if (bCtrl)
-                SetCaret(m_pVT->GetBeginWordPlace());
-            else
-                SetCaret(m_pVT->GetLineBeginPlace(m_wpCaret));
-
-            if (m_SelState.IsExist())
-                m_SelState.SetEndPos(m_wpCaret);
-            else
-                m_SelState.Set(m_wpOldCaret,m_wpCaret);
-
-            ScrollToCaret();
-            CPVT_WordRange wr(m_wpOldCaret, m_wpCaret);
-            Refresh(RP_OPTIONAL, &wr);
-            SetCaretInfo();
-        }
+void CFX_Edit::OnVK_HOME(FX_BOOL bShift, FX_BOOL bCtrl) {
+  if (m_pVT->IsValid()) {
+    if (bShift) {
+      if (bCtrl)
+        SetCaret(m_pVT->GetBeginWordPlace());
+      else
+        SetCaret(m_pVT->GetLineBeginPlace(m_wpCaret));
+
+      if (m_SelState.IsExist())
+        m_SelState.SetEndPos(m_wpCaret);
+      else
+        m_SelState.Set(m_wpOldCaret, m_wpCaret);
+
+      ScrollToCaret();
+      CPVT_WordRange wr(m_wpOldCaret, m_wpCaret);
+      Refresh(RP_OPTIONAL, &wr);
+      SetCaretInfo();
+    } else {
+      if (m_SelState.IsExist()) {
+        if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) < 0)
+          SetCaret(m_SelState.BeginPos);
         else
-        {
-            if (m_SelState.IsExist())
-            {
-                if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos)<0)
-                    SetCaret(m_SelState.BeginPos);
-                else
-                    SetCaret(m_SelState.EndPos);
-
-                SelectNone();
-                ScrollToCaret();
-                SetCaretInfo();
-            }
-            else
-            {
-                if (bCtrl)
-                    SetCaret(m_pVT->GetBeginWordPlace());
-                else
-                    SetCaret(m_pVT->GetLineBeginPlace(m_wpCaret));
-
-                ScrollToCaret();
-                SetCaretOrigin();
-                SetCaretInfo();
-            }
-        }
-    }
-}
+          SetCaret(m_SelState.EndPos);
 
-void CFX_Edit::OnVK_END(FX_BOOL bShift,FX_BOOL bCtrl)
-{
-    if (m_pVT->IsValid())
-    {
-        if (bShift)
-        {
-            if (bCtrl)
-                SetCaret(m_pVT->GetEndWordPlace());
-            else
-                SetCaret(m_pVT->GetLineEndPlace(m_wpCaret));
-
-            if (m_SelState.IsExist())
-                m_SelState.SetEndPos(m_wpCaret);
-            else
-                m_SelState.Set(m_wpOldCaret, m_wpCaret);
-
-            ScrollToCaret();
-            CPVT_WordRange wr(m_wpOldCaret, m_wpCaret);
-            Refresh(RP_OPTIONAL, &wr);
-            SetCaretInfo();
-        }
+        SelectNone();
+        ScrollToCaret();
+        SetCaretInfo();
+      } else {
+        if (bCtrl)
+          SetCaret(m_pVT->GetBeginWordPlace());
         else
-        {
-            if (m_SelState.IsExist())
-            {
-                if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos)>0)
-                    SetCaret(m_SelState.BeginPos);
-                else
-                    SetCaret(m_SelState.EndPos);
-
-                SelectNone();
-                ScrollToCaret();
-                SetCaretInfo();
-            }
-            else
-            {
-                if (bCtrl)
-                    SetCaret(m_pVT->GetEndWordPlace());
-                else
-                    SetCaret(m_pVT->GetLineEndPlace(m_wpCaret));
-
-                ScrollToCaret();
-                SetCaretOrigin();
-                SetCaretInfo();
-            }
-        }
-    }
-}
+          SetCaret(m_pVT->GetLineBeginPlace(m_wpCaret));
 
-void CFX_Edit::SetText(const FX_WCHAR* text,int32_t charset,
-                        const CPVT_SecProps * pSecProps,const CPVT_WordProps * pWordProps, FX_BOOL bAddUndo, FX_BOOL bPaint)
-{
-    Empty();
-    DoInsertText(CPVT_WordPlace(0,0,-1), text, charset, pSecProps, pWordProps);
-    if (bPaint) Paint();
-    if (m_bOprNotify && m_pOprNotify)
-        m_pOprNotify->OnSetText(m_wpCaret, m_wpOldCaret);
-    //if (bAddUndo)
-}
+        ScrollToCaret();
+        SetCaretOrigin();
+        SetCaretInfo();
+      }
+    }
+  }
+}
+
+void CFX_Edit::OnVK_END(FX_BOOL bShift, FX_BOOL bCtrl) {
+  if (m_pVT->IsValid()) {
+    if (bShift) {
+      if (bCtrl)
+        SetCaret(m_pVT->GetEndWordPlace());
+      else
+        SetCaret(m_pVT->GetLineEndPlace(m_wpCaret));
+
+      if (m_SelState.IsExist())
+        m_SelState.SetEndPos(m_wpCaret);
+      else
+        m_SelState.Set(m_wpOldCaret, m_wpCaret);
+
+      ScrollToCaret();
+      CPVT_WordRange wr(m_wpOldCaret, m_wpCaret);
+      Refresh(RP_OPTIONAL, &wr);
+      SetCaretInfo();
+    } else {
+      if (m_SelState.IsExist()) {
+        if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) > 0)
+          SetCaret(m_SelState.BeginPos);
+        else
+          SetCaret(m_SelState.EndPos);
 
-FX_BOOL CFX_Edit::InsertWord(FX_WORD word, int32_t charset, const CPVT_WordProps * pWordProps, FX_BOOL bAddUndo, FX_BOOL bPaint)
-{
-    if (IsTextOverflow()) return FALSE;
+        SelectNone();
+        ScrollToCaret();
+        SetCaretInfo();
+      } else {
+        if (bCtrl)
+          SetCaret(m_pVT->GetEndWordPlace());
+        else
+          SetCaret(m_pVT->GetLineEndPlace(m_wpCaret));
 
-    if (m_pVT->IsValid())
-    {
-        m_pVT->UpdateWordPlace(m_wpCaret);
+        ScrollToCaret();
+        SetCaretOrigin();
+        SetCaretInfo();
+      }
+    }
+  }
+}
+
+void CFX_Edit::SetText(const FX_WCHAR* text,
+                       int32_t charset,
+                       const CPVT_SecProps* pSecProps,
+                       const CPVT_WordProps* pWordProps,
+                       FX_BOOL bAddUndo,
+                       FX_BOOL bPaint) {
+  Empty();
+  DoInsertText(CPVT_WordPlace(0, 0, -1), text, charset, pSecProps, pWordProps);
+  if (bPaint)
+    Paint();
+  if (m_bOprNotify && m_pOprNotify)
+    m_pOprNotify->OnSetText(m_wpCaret, m_wpOldCaret);
+  // if (bAddUndo)
+}
+
+FX_BOOL CFX_Edit::InsertWord(FX_WORD word,
+                             int32_t charset,
+                             const CPVT_WordProps* pWordProps,
+                             FX_BOOL bAddUndo,
+                             FX_BOOL bPaint) {
+  if (IsTextOverflow())
+    return FALSE;
 
-        SetCaret(m_pVT->InsertWord(m_wpCaret,word,GetCharSetFromUnicode(word, charset),pWordProps));
-        m_SelState.Set(m_wpCaret,m_wpCaret);
+  if (m_pVT->IsValid()) {
+    m_pVT->UpdateWordPlace(m_wpCaret);
 
-        if (m_wpCaret != m_wpOldCaret)
-        {
-            if (bAddUndo && m_bEnableUndo)
-            {
-                AddEditUndoItem(new CFXEU_InsertWord(this,m_wpOldCaret,m_wpCaret,word,charset,pWordProps));
-            }
+    SetCaret(m_pVT->InsertWord(
+        m_wpCaret, word, GetCharSetFromUnicode(word, charset), pWordProps));
+    m_SelState.Set(m_wpCaret, m_wpCaret);
 
-            if (bPaint)
-                PaintInsertText(m_wpOldCaret, m_wpCaret);
+    if (m_wpCaret != m_wpOldCaret) {
+      if (bAddUndo && m_bEnableUndo) {
+        AddEditUndoItem(new CFXEU_InsertWord(this, m_wpOldCaret, m_wpCaret,
+                                             word, charset, pWordProps));
+      }
 
-            if (m_bOprNotify && m_pOprNotify)
-                m_pOprNotify->OnInsertWord(m_wpCaret, m_wpOldCaret);
+      if (bPaint)
+        PaintInsertText(m_wpOldCaret, m_wpCaret);
 
-            return TRUE;
-        }
+      if (m_bOprNotify && m_pOprNotify)
+        m_pOprNotify->OnInsertWord(m_wpCaret, m_wpOldCaret);
+
+      return TRUE;
     }
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFX_Edit::InsertReturn(const CPVT_SecProps * pSecProps,const CPVT_WordProps * pWordProps,
-                               FX_BOOL bAddUndo, FX_BOOL bPaint)
-{
-    if (IsTextOverflow()) return FALSE;
+FX_BOOL CFX_Edit::InsertReturn(const CPVT_SecProps* pSecProps,
+                               const CPVT_WordProps* pWordProps,
+                               FX_BOOL bAddUndo,
+                               FX_BOOL bPaint) {
+  if (IsTextOverflow())
+    return FALSE;
 
-    if (m_pVT->IsValid())
-    {
-        m_pVT->UpdateWordPlace(m_wpCaret);
-        SetCaret(m_pVT->InsertSection(m_wpCaret,pSecProps,pWordProps));
-        m_SelState.Set(m_wpCaret,m_wpCaret);
+  if (m_pVT->IsValid()) {
+    m_pVT->UpdateWordPlace(m_wpCaret);
+    SetCaret(m_pVT->InsertSection(m_wpCaret, pSecProps, pWordProps));
+    m_SelState.Set(m_wpCaret, m_wpCaret);
 
-        if (m_wpCaret != m_wpOldCaret)
-        {
-            if (bAddUndo && m_bEnableUndo)
-            {
-                AddEditUndoItem(new CFXEU_InsertReturn(this,m_wpOldCaret,m_wpCaret,pSecProps,pWordProps));
-            }
+    if (m_wpCaret != m_wpOldCaret) {
+      if (bAddUndo && m_bEnableUndo) {
+        AddEditUndoItem(new CFXEU_InsertReturn(this, m_wpOldCaret, m_wpCaret,
+                                               pSecProps, pWordProps));
+      }
 
-            if (bPaint)
-            {
-                RearrangePart(CPVT_WordRange(m_wpOldCaret, m_wpCaret));
-                ScrollToCaret();
-                CPVT_WordRange wr(m_wpOldCaret, GetVisibleWordRange().EndPos);
-                Refresh(RP_ANALYSE, &wr);
-                SetCaretOrigin();
-                SetCaretInfo();
-            }
+      if (bPaint) {
+        RearrangePart(CPVT_WordRange(m_wpOldCaret, m_wpCaret));
+        ScrollToCaret();
+        CPVT_WordRange wr(m_wpOldCaret, GetVisibleWordRange().EndPos);
+        Refresh(RP_ANALYSE, &wr);
+        SetCaretOrigin();
+        SetCaretInfo();
+      }
 
-            if (m_bOprNotify && m_pOprNotify)
-                m_pOprNotify->OnInsertReturn(m_wpCaret, m_wpOldCaret);
+      if (m_bOprNotify && m_pOprNotify)
+        m_pOprNotify->OnInsertReturn(m_wpCaret, m_wpOldCaret);
 
-            return TRUE;
-        }
+      return TRUE;
     }
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFX_Edit::Backspace(FX_BOOL bAddUndo, FX_BOOL bPaint)
-{
-    if (m_pVT->IsValid())
-    {
-        if (m_wpCaret == m_pVT->GetBeginWordPlace()) return FALSE;
+FX_BOOL CFX_Edit::Backspace(FX_BOOL bAddUndo, FX_BOOL bPaint) {
+  if (m_pVT->IsValid()) {
+    if (m_wpCaret == m_pVT->GetBeginWordPlace())
+      return FALSE;
 
-        CPVT_Section section;
-        CPVT_Word word;
+    CPVT_Section section;
+    CPVT_Word word;
 
-        if (bAddUndo)
-        {
-            if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-            {
-                pIterator->SetAt(m_wpCaret);
-                pIterator->GetSection(section);
-                pIterator->GetWord(word);
-            }
-        }
+    if (bAddUndo) {
+      if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+        pIterator->SetAt(m_wpCaret);
+        pIterator->GetSection(section);
+        pIterator->GetWord(word);
+      }
+    }
 
-        m_pVT->UpdateWordPlace(m_wpCaret);
-        SetCaret(m_pVT->BackSpaceWord(m_wpCaret));
-        m_SelState.Set(m_wpCaret,m_wpCaret);
-
-        if (m_wpCaret != m_wpOldCaret)
-        {
-            if (bAddUndo && m_bEnableUndo)
-            {
-                if (m_wpCaret.SecCmp(m_wpOldCaret) != 0)
-                    AddEditUndoItem(new CFXEU_Backspace(this,m_wpOldCaret,m_wpCaret,word.Word,word.nCharset,
-                        section.SecProps,section.WordProps));
-                else
-                    AddEditUndoItem(new CFXEU_Backspace(this,m_wpOldCaret,m_wpCaret,word.Word,word.nCharset,
-                        section.SecProps,word.WordProps));
-            }
+    m_pVT->UpdateWordPlace(m_wpCaret);
+    SetCaret(m_pVT->BackSpaceWord(m_wpCaret));
+    m_SelState.Set(m_wpCaret, m_wpCaret);
+
+    if (m_wpCaret != m_wpOldCaret) {
+      if (bAddUndo && m_bEnableUndo) {
+        if (m_wpCaret.SecCmp(m_wpOldCaret) != 0)
+          AddEditUndoItem(new CFXEU_Backspace(
+              this, m_wpOldCaret, m_wpCaret, word.Word, word.nCharset,
+              section.SecProps, section.WordProps));
+        else
+          AddEditUndoItem(new CFXEU_Backspace(
+              this, m_wpOldCaret, m_wpCaret, word.Word, word.nCharset,
+              section.SecProps, word.WordProps));
+      }
 
-            if (bPaint)
-            {
-                RearrangePart(CPVT_WordRange(m_wpCaret,m_wpOldCaret));
-                ScrollToCaret();
+      if (bPaint) {
+        RearrangePart(CPVT_WordRange(m_wpCaret, m_wpOldCaret));
+        ScrollToCaret();
 
-                CPVT_WordRange wr;
-                if (m_wpCaret.SecCmp(m_wpOldCaret) !=0)
-                    wr = CPVT_WordRange(m_pVT->GetPrevWordPlace(m_wpCaret),GetVisibleWordRange().EndPos);
-                else if (m_wpCaret.LineCmp(m_wpOldCaret) !=0)
-                    wr = CPVT_WordRange(m_pVT->GetLineBeginPlace(m_wpCaret),m_pVT->GetSectionEndPlace(m_wpCaret));
-                else
-                    wr = CPVT_WordRange(m_pVT->GetPrevWordPlace(m_wpCaret),m_pVT->GetSectionEndPlace(m_wpCaret));
+        CPVT_WordRange wr;
+        if (m_wpCaret.SecCmp(m_wpOldCaret) != 0)
+          wr = CPVT_WordRange(m_pVT->GetPrevWordPlace(m_wpCaret),
+                              GetVisibleWordRange().EndPos);
+        else if (m_wpCaret.LineCmp(m_wpOldCaret) != 0)
+          wr = CPVT_WordRange(m_pVT->GetLineBeginPlace(m_wpCaret),
+                              m_pVT->GetSectionEndPlace(m_wpCaret));
+        else
+          wr = CPVT_WordRange(m_pVT->GetPrevWordPlace(m_wpCaret),
+                              m_pVT->GetSectionEndPlace(m_wpCaret));
 
-                Refresh(RP_ANALYSE, &wr);
+        Refresh(RP_ANALYSE, &wr);
 
-                SetCaretOrigin();
-                SetCaretInfo();
-            }
+        SetCaretOrigin();
+        SetCaretInfo();
+      }
 
-            if (m_bOprNotify && m_pOprNotify)
-                m_pOprNotify->OnBackSpace(m_wpCaret, m_wpOldCaret);
+      if (m_bOprNotify && m_pOprNotify)
+        m_pOprNotify->OnBackSpace(m_wpCaret, m_wpOldCaret);
 
-            return TRUE;
-        }
+      return TRUE;
     }
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFX_Edit::Delete(FX_BOOL bAddUndo, FX_BOOL bPaint)
-{
-    if (m_pVT->IsValid())
-    {
-        if (m_wpCaret == m_pVT->GetEndWordPlace()) return FALSE;
+FX_BOOL CFX_Edit::Delete(FX_BOOL bAddUndo, FX_BOOL bPaint) {
+  if (m_pVT->IsValid()) {
+    if (m_wpCaret == m_pVT->GetEndWordPlace())
+      return FALSE;
 
-        CPVT_Section section;
-        CPVT_Word word;
+    CPVT_Section section;
+    CPVT_Word word;
 
-        if (bAddUndo)
-        {
-            if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-            {
-                pIterator->SetAt(m_pVT->GetNextWordPlace(m_wpCaret));
-                pIterator->GetSection(section);
-                pIterator->GetWord(word);
-            }
-        }
+    if (bAddUndo) {
+      if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+        pIterator->SetAt(m_pVT->GetNextWordPlace(m_wpCaret));
+        pIterator->GetSection(section);
+        pIterator->GetWord(word);
+      }
+    }
 
-        m_pVT->UpdateWordPlace(m_wpCaret);
-        FX_BOOL bSecEnd = (m_wpCaret == m_pVT->GetSectionEndPlace(m_wpCaret));
+    m_pVT->UpdateWordPlace(m_wpCaret);
+    FX_BOOL bSecEnd = (m_wpCaret == m_pVT->GetSectionEndPlace(m_wpCaret));
 
-        SetCaret(m_pVT->DeleteWord(m_wpCaret));
-        m_SelState.Set(m_wpCaret,m_wpCaret);
+    SetCaret(m_pVT->DeleteWord(m_wpCaret));
+    m_SelState.Set(m_wpCaret, m_wpCaret);
 
-        if (bAddUndo && m_bEnableUndo)
-        {
-            if (bSecEnd)
-                AddEditUndoItem(new CFXEU_Delete(this,m_wpOldCaret,m_wpCaret,word.Word,word.nCharset,
-                    section.SecProps,section.WordProps,bSecEnd));
-            else
-                AddEditUndoItem(new CFXEU_Delete(this,m_wpOldCaret,m_wpCaret,word.Word,word.nCharset,
-                    section.SecProps,word.WordProps,bSecEnd));
-        }
+    if (bAddUndo && m_bEnableUndo) {
+      if (bSecEnd)
+        AddEditUndoItem(new CFXEU_Delete(
+            this, m_wpOldCaret, m_wpCaret, word.Word, word.nCharset,
+            section.SecProps, section.WordProps, bSecEnd));
+      else
+        AddEditUndoItem(new CFXEU_Delete(
+            this, m_wpOldCaret, m_wpCaret, word.Word, word.nCharset,
+            section.SecProps, word.WordProps, bSecEnd));
+    }
 
-        if (bPaint)
-        {
-            RearrangePart(CPVT_WordRange(m_wpOldCaret,m_wpCaret));
-            ScrollToCaret();
+    if (bPaint) {
+      RearrangePart(CPVT_WordRange(m_wpOldCaret, m_wpCaret));
+      ScrollToCaret();
 
-            CPVT_WordRange wr;
-            if (bSecEnd)
-                wr = CPVT_WordRange(m_pVT->GetPrevWordPlace(m_wpOldCaret),GetVisibleWordRange().EndPos);
-            else if (m_wpCaret.LineCmp(m_wpOldCaret) !=0)
-                wr = CPVT_WordRange(m_pVT->GetLineBeginPlace(m_wpCaret),m_pVT->GetSectionEndPlace(m_wpCaret));
-            else
-                wr = CPVT_WordRange(m_pVT->GetPrevWordPlace(m_wpOldCaret),m_pVT->GetSectionEndPlace(m_wpCaret));
+      CPVT_WordRange wr;
+      if (bSecEnd)
+        wr = CPVT_WordRange(m_pVT->GetPrevWordPlace(m_wpOldCaret),
+                            GetVisibleWordRange().EndPos);
+      else if (m_wpCaret.LineCmp(m_wpOldCaret) != 0)
+        wr = CPVT_WordRange(m_pVT->GetLineBeginPlace(m_wpCaret),
+                            m_pVT->GetSectionEndPlace(m_wpCaret));
+      else
+        wr = CPVT_WordRange(m_pVT->GetPrevWordPlace(m_wpOldCaret),
+                            m_pVT->GetSectionEndPlace(m_wpCaret));
 
-            Refresh(RP_ANALYSE, &wr);
+      Refresh(RP_ANALYSE, &wr);
 
-            SetCaretOrigin();
-            SetCaretInfo();
-        }
+      SetCaretOrigin();
+      SetCaretInfo();
+    }
 
-        if (m_bOprNotify && m_pOprNotify)
-            m_pOprNotify->OnDelete(m_wpCaret, m_wpOldCaret);
+    if (m_bOprNotify && m_pOprNotify)
+      m_pOprNotify->OnDelete(m_wpCaret, m_wpOldCaret);
 
-        return TRUE;
-    }
+    return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFX_Edit::Empty()
-{
-    if (m_pVT->IsValid())
-    {
-        m_pVT->DeleteWords(GetWholeWordRange());
-        SetCaret(m_pVT->GetBeginWordPlace());
+FX_BOOL CFX_Edit::Empty() {
+  if (m_pVT->IsValid()) {
+    m_pVT->DeleteWords(GetWholeWordRange());
+    SetCaret(m_pVT->GetBeginWordPlace());
 
-        return TRUE;
-    }
+    return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFX_Edit::Clear(FX_BOOL bAddUndo, FX_BOOL bPaint)
-{
-    if (m_pVT->IsValid())
-    {
-        if (m_SelState.IsExist())
-        {
-            CPVT_WordRange range = m_SelState.ConvertToWordRange();
-
-            if (bAddUndo && m_bEnableUndo)
-            {
-                if (m_pVT->IsRichText())
-                {
-                    BeginGroupUndo(L"");
-
-                    if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-                    {
-                        pIterator->SetAt(range.EndPos);
-
-                        CPVT_Word wordinfo;
-                        CPVT_Section secinfo;
-                        do
-                        {
-                            CPVT_WordPlace place = pIterator->GetAt();
-                            if (place.WordCmp(range.BeginPos) <= 0)break;
-
-                            CPVT_WordPlace oldplace = m_pVT->GetPrevWordPlace(place);
-
-                            if (oldplace.SecCmp(place) != 0)
-                            {
-                                if (pIterator->GetSection(secinfo))
-                                {
-                                    AddEditUndoItem(new CFXEU_ClearRich(this,oldplace,place,range,wordinfo.Word,
-                                        wordinfo.nCharset,secinfo.SecProps,secinfo.WordProps));
-                                }
-                            }
-                            else
-                            {
-                                if (pIterator->GetWord(wordinfo))
-                                {
-                                    oldplace = m_pVT->AjustLineHeader(oldplace,TRUE);
-                                    place = m_pVT->AjustLineHeader(place,TRUE);
-
-                                    AddEditUndoItem(new CFXEU_ClearRich(this,oldplace,place,range,wordinfo.Word,
-                                        wordinfo.nCharset,secinfo.SecProps,wordinfo.WordProps));
-                                }
-                            }
-                        }while (pIterator->PrevWord());
-                    }
-                    EndGroupUndo();
+FX_BOOL CFX_Edit::Clear(FX_BOOL bAddUndo, FX_BOOL bPaint) {
+  if (m_pVT->IsValid()) {
+    if (m_SelState.IsExist()) {
+      CPVT_WordRange range = m_SelState.ConvertToWordRange();
+
+      if (bAddUndo && m_bEnableUndo) {
+        if (m_pVT->IsRichText()) {
+          BeginGroupUndo(L"");
+
+          if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+            pIterator->SetAt(range.EndPos);
+
+            CPVT_Word wordinfo;
+            CPVT_Section secinfo;
+            do {
+              CPVT_WordPlace place = pIterator->GetAt();
+              if (place.WordCmp(range.BeginPos) <= 0)
+                break;
+
+              CPVT_WordPlace oldplace = m_pVT->GetPrevWordPlace(place);
+
+              if (oldplace.SecCmp(place) != 0) {
+                if (pIterator->GetSection(secinfo)) {
+                  AddEditUndoItem(new CFXEU_ClearRich(
+                      this, oldplace, place, range, wordinfo.Word,
+                      wordinfo.nCharset, secinfo.SecProps, secinfo.WordProps));
                 }
-                else
-                {
-                    AddEditUndoItem(new CFXEU_Clear(this,range,GetSelText()));
+              } else {
+                if (pIterator->GetWord(wordinfo)) {
+                  oldplace = m_pVT->AjustLineHeader(oldplace, TRUE);
+                  place = m_pVT->AjustLineHeader(place, TRUE);
+
+                  AddEditUndoItem(new CFXEU_ClearRich(
+                      this, oldplace, place, range, wordinfo.Word,
+                      wordinfo.nCharset, secinfo.SecProps, wordinfo.WordProps));
                 }
-            }
+              }
+            } while (pIterator->PrevWord());
+          }
+          EndGroupUndo();
+        } else {
+          AddEditUndoItem(new CFXEU_Clear(this, range, GetSelText()));
+        }
+      }
 
-            SelectNone();
-            SetCaret(m_pVT->DeleteWords(range));
-            m_SelState.Set(m_wpCaret,m_wpCaret);
+      SelectNone();
+      SetCaret(m_pVT->DeleteWords(range));
+      m_SelState.Set(m_wpCaret, m_wpCaret);
 
-            if (bPaint)
-            {
-                RearrangePart(range);
-                ScrollToCaret();
+      if (bPaint) {
+        RearrangePart(range);
+        ScrollToCaret();
 
-                CPVT_WordRange wr(m_wpOldCaret, GetVisibleWordRange().EndPos);
-                Refresh(RP_ANALYSE, &wr);
+        CPVT_WordRange wr(m_wpOldCaret, GetVisibleWordRange().EndPos);
+        Refresh(RP_ANALYSE, &wr);
 
-                SetCaretOrigin();
-                SetCaretInfo();
-            }
+        SetCaretOrigin();
+        SetCaretInfo();
+      }
 
-            if (m_bOprNotify && m_pOprNotify)
-                m_pOprNotify->OnClear(m_wpCaret, m_wpOldCaret);
+      if (m_bOprNotify && m_pOprNotify)
+        m_pOprNotify->OnClear(m_wpCaret, m_wpOldCaret);
 
-            return TRUE;
-        }
+      return TRUE;
     }
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFX_Edit::InsertText(const FX_WCHAR* text, int32_t charset,
-                    const CPVT_SecProps * pSecProps, const CPVT_WordProps * pWordProps, FX_BOOL bAddUndo, FX_BOOL bPaint)
-{
-    if (IsTextOverflow()) return FALSE;
+FX_BOOL CFX_Edit::InsertText(const FX_WCHAR* text,
+                             int32_t charset,
+                             const CPVT_SecProps* pSecProps,
+                             const CPVT_WordProps* pWordProps,
+                             FX_BOOL bAddUndo,
+                             FX_BOOL bPaint) {
+  if (IsTextOverflow())
+    return FALSE;
 
-    m_pVT->UpdateWordPlace(m_wpCaret);
-    SetCaret(DoInsertText(m_wpCaret, text, charset, pSecProps, pWordProps));
-    m_SelState.Set(m_wpCaret,m_wpCaret);
-
-    if (m_wpCaret != m_wpOldCaret)
-    {
-        if (bAddUndo && m_bEnableUndo)
-        {
-            AddEditUndoItem(new CFXEU_InsertText(this,m_wpOldCaret,m_wpCaret,text,charset,pSecProps,pWordProps));
-        }
+  m_pVT->UpdateWordPlace(m_wpCaret);
+  SetCaret(DoInsertText(m_wpCaret, text, charset, pSecProps, pWordProps));
+  m_SelState.Set(m_wpCaret, m_wpCaret);
 
-        if (bPaint)
-            PaintInsertText(m_wpOldCaret, m_wpCaret);
+  if (m_wpCaret != m_wpOldCaret) {
+    if (bAddUndo && m_bEnableUndo) {
+      AddEditUndoItem(new CFXEU_InsertText(this, m_wpOldCaret, m_wpCaret, text,
+                                           charset, pSecProps, pWordProps));
+    }
 
-        if (m_bOprNotify && m_pOprNotify)
-            m_pOprNotify->OnInsertText(m_wpCaret, m_wpOldCaret);
+    if (bPaint)
+      PaintInsertText(m_wpOldCaret, m_wpCaret);
 
-        return TRUE;
-    }
-    return FALSE;
+    if (m_bOprNotify && m_pOprNotify)
+      m_pOprNotify->OnInsertText(m_wpCaret, m_wpOldCaret);
+
+    return TRUE;
+  }
+  return FALSE;
 }
 
-void CFX_Edit::PaintInsertText(const CPVT_WordPlace & wpOld, const CPVT_WordPlace & wpNew)
-{
-    if (m_pVT->IsValid())
-    {
-        RearrangePart(CPVT_WordRange(wpOld,wpNew));
-        ScrollToCaret();
+void CFX_Edit::PaintInsertText(const CPVT_WordPlace& wpOld,
+                               const CPVT_WordPlace& wpNew) {
+  if (m_pVT->IsValid()) {
+    RearrangePart(CPVT_WordRange(wpOld, wpNew));
+    ScrollToCaret();
 
-        CPVT_WordRange wr;
-        if (m_wpCaret.LineCmp(wpOld) !=0)
-            wr = CPVT_WordRange(m_pVT->GetLineBeginPlace(wpOld),m_pVT->GetSectionEndPlace(wpNew));
-        else
-            wr = CPVT_WordRange(wpOld,m_pVT->GetSectionEndPlace(wpNew));
-        Refresh(RP_ANALYSE, &wr);
-        SetCaretOrigin();
-        SetCaretInfo();
-    }
+    CPVT_WordRange wr;
+    if (m_wpCaret.LineCmp(wpOld) != 0)
+      wr = CPVT_WordRange(m_pVT->GetLineBeginPlace(wpOld),
+                          m_pVT->GetSectionEndPlace(wpNew));
+    else
+      wr = CPVT_WordRange(wpOld, m_pVT->GetSectionEndPlace(wpNew));
+    Refresh(RP_ANALYSE, &wr);
+    SetCaretOrigin();
+    SetCaretInfo();
+  }
 }
 
-FX_BOOL CFX_Edit::Redo()
-{
-    if (m_bEnableUndo)
-    {
-        if (m_Undo.CanRedo())
-        {
-            m_Undo.Redo();
-            return TRUE;
-        }
+FX_BOOL CFX_Edit::Redo() {
+  if (m_bEnableUndo) {
+    if (m_Undo.CanRedo()) {
+      m_Undo.Redo();
+      return TRUE;
     }
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFX_Edit::Undo()
-{
-    if (m_bEnableUndo)
-    {
-        if (m_Undo.CanUndo())
-        {
-            m_Undo.Undo();
-            return TRUE;
-        }
+FX_BOOL CFX_Edit::Undo() {
+  if (m_bEnableUndo) {
+    if (m_Undo.CanUndo()) {
+      m_Undo.Undo();
+      return TRUE;
     }
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-void CFX_Edit::SetCaretOrigin()
-{
-    if (m_pVT->IsValid())
-    {
-        if (IPDF_VariableText_Iterator * pIterator = m_pVT->GetIterator())
-        {
-            pIterator->SetAt(m_wpCaret);
-            CPVT_Word word;
-            CPVT_Line line;
-            if (pIterator->GetWord(word))
-            {
-                m_ptCaret.x = word.ptWord.x + word.fWidth;
-                m_ptCaret.y = word.ptWord.y;
-            }
-            else if (pIterator->GetLine(line))
-            {
-                m_ptCaret.x = line.ptLine.x;
-                m_ptCaret.y = line.ptLine.y;
-            }
-        }
+void CFX_Edit::SetCaretOrigin() {
+  if (m_pVT->IsValid()) {
+    if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+      pIterator->SetAt(m_wpCaret);
+      CPVT_Word word;
+      CPVT_Line line;
+      if (pIterator->GetWord(word)) {
+        m_ptCaret.x = word.ptWord.x + word.fWidth;
+        m_ptCaret.y = word.ptWord.y;
+      } else if (pIterator->GetLine(line)) {
+        m_ptCaret.x = line.ptLine.x;
+        m_ptCaret.y = line.ptLine.y;
+      }
     }
+  }
 }
 
-int32_t CFX_Edit::WordPlaceToWordIndex(const CPVT_WordPlace & place) const
-{
-    if (m_pVT->IsValid())
-        return m_pVT->WordPlaceToWordIndex(place);
+int32_t CFX_Edit::WordPlaceToWordIndex(const CPVT_WordPlace& place) const {
+  if (m_pVT->IsValid())
+    return m_pVT->WordPlaceToWordIndex(place);
 
-    return -1;
+  return -1;
 }
 
-CPVT_WordPlace CFX_Edit::WordIndexToWordPlace(int32_t index) const
-{
-    if (m_pVT->IsValid())
-        return m_pVT->WordIndexToWordPlace(index);
+CPVT_WordPlace CFX_Edit::WordIndexToWordPlace(int32_t index) const {
+  if (m_pVT->IsValid())
+    return m_pVT->WordIndexToWordPlace(index);
 
-    return CPVT_WordPlace();
+  return CPVT_WordPlace();
 }
 
-FX_BOOL CFX_Edit::IsTextFull() const
-{
-    int32_t nTotalWords = m_pVT->GetTotalWords();
-    int32_t nLimitChar = m_pVT->GetLimitChar();
-    int32_t nCharArray = m_pVT->GetCharArray();
+FX_BOOL CFX_Edit::IsTextFull() const {
+  int32_t nTotalWords = m_pVT->GetTotalWords();
+  int32_t nLimitChar = m_pVT->GetLimitChar();
+  int32_t nCharArray = m_pVT->GetCharArray();
 
-    return IsTextOverflow() || (nLimitChar>0 && nTotalWords >= nLimitChar)
-        || (nCharArray>0 && nTotalWords >= nCharArray);
+  return IsTextOverflow() || (nLimitChar > 0 && nTotalWords >= nLimitChar) ||
+         (nCharArray > 0 && nTotalWords >= nCharArray);
 }
 
-FX_BOOL CFX_Edit::IsTextOverflow() const
-{
-    if (!m_bEnableScroll && !m_bEnableOverflow)
-    {
-        CPDF_Rect rcPlate = m_pVT->GetPlateRect();
-        CPDF_Rect rcContent = m_pVT->GetContentRect();
-
-        if (m_pVT->IsMultiLine() && GetTotalLines() > 1)
-        {
-            if (FX_EDIT_IsFloatBigger(rcContent.Height(),rcPlate.Height())) return TRUE;
-        }
+FX_BOOL CFX_Edit::IsTextOverflow() const {
+  if (!m_bEnableScroll && !m_bEnableOverflow) {
+    CPDF_Rect rcPlate = m_pVT->GetPlateRect();
+    CPDF_Rect rcContent = m_pVT->GetContentRect();
 
-        if (FX_EDIT_IsFloatBigger(rcContent.Width(),rcPlate.Width())) return TRUE;
+    if (m_pVT->IsMultiLine() && GetTotalLines() > 1) {
+      if (FX_EDIT_IsFloatBigger(rcContent.Height(), rcPlate.Height()))
+        return TRUE;
     }
 
-    return FALSE;
+    if (FX_EDIT_IsFloatBigger(rcContent.Width(), rcPlate.Width()))
+      return TRUE;
+  }
+
+  return FALSE;
 }
 
-CPVT_WordPlace CFX_Edit::GetLineBeginPlace(const CPVT_WordPlace & place) const
-{
-    return m_pVT->GetLineBeginPlace(place);
+CPVT_WordPlace CFX_Edit::GetLineBeginPlace(const CPVT_WordPlace& place) const {
+  return m_pVT->GetLineBeginPlace(place);
 }
 
-CPVT_WordPlace CFX_Edit::GetLineEndPlace(const CPVT_WordPlace & place) const
-{
-    return m_pVT->GetLineEndPlace(place);
+CPVT_WordPlace CFX_Edit::GetLineEndPlace(const CPVT_WordPlace& place) const {
+  return m_pVT->GetLineEndPlace(place);
 }
 
-CPVT_WordPlace CFX_Edit::GetSectionBeginPlace(const CPVT_WordPlace & place) const
-{
-    return m_pVT->GetSectionBeginPlace(place);
+CPVT_WordPlace CFX_Edit::GetSectionBeginPlace(
+    const CPVT_WordPlace& place) const {
+  return m_pVT->GetSectionBeginPlace(place);
 }
 
-CPVT_WordPlace CFX_Edit::GetSectionEndPlace(const CPVT_WordPlace & place) const
-{
-    return m_pVT->GetSectionEndPlace(place);
+CPVT_WordPlace CFX_Edit::GetSectionEndPlace(const CPVT_WordPlace& place) const {
+  return m_pVT->GetSectionEndPlace(place);
 }
 
-FX_BOOL CFX_Edit::CanUndo() const
-{
-    if (m_bEnableUndo)
-    {
-        return m_Undo.CanUndo();
-    }
+FX_BOOL CFX_Edit::CanUndo() const {
+  if (m_bEnableUndo) {
+    return m_Undo.CanUndo();
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFX_Edit::CanRedo() const
-{
-    if (m_bEnableUndo)
-    {
-        return m_Undo.CanRedo();
-    }
+FX_BOOL CFX_Edit::CanRedo() const {
+  if (m_bEnableUndo) {
+    return m_Undo.CanRedo();
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CFX_Edit::IsModified() const
-{
-    if (m_bEnableUndo)
-    {
-        return m_Undo.IsModified();
-    }
+FX_BOOL CFX_Edit::IsModified() const {
+  if (m_bEnableUndo) {
+    return m_Undo.IsModified();
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-void CFX_Edit::EnableRefresh(FX_BOOL bRefresh)
-{
-    m_bEnableRefresh = bRefresh;
+void CFX_Edit::EnableRefresh(FX_BOOL bRefresh) {
+  m_bEnableRefresh = bRefresh;
 }
 
-void CFX_Edit::EnableUndo(FX_BOOL bUndo)
-{
-    m_bEnableUndo = bUndo;
+void CFX_Edit::EnableUndo(FX_BOOL bUndo) {
+  m_bEnableUndo = bUndo;
 }
 
-void CFX_Edit::EnableNotify(FX_BOOL bNotify)
-{
-    m_bNotify = bNotify;
+void CFX_Edit::EnableNotify(FX_BOOL bNotify) {
+  m_bNotify = bNotify;
 }
 
-void CFX_Edit::EnableOprNotify(FX_BOOL bNotify)
-{
-    m_bOprNotify = bNotify;
+void CFX_Edit::EnableOprNotify(FX_BOOL bNotify) {
+  m_bOprNotify = bNotify;
 }
 
-FX_FLOAT CFX_Edit::GetLineTop(const CPVT_WordPlace& place) const
-{
-    if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator())
-    {
-        CPVT_WordPlace wpOld = pIterator->GetAt();
+FX_FLOAT CFX_Edit::GetLineTop(const CPVT_WordPlace& place) const {
+  if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+    CPVT_WordPlace wpOld = pIterator->GetAt();
 
-        pIterator->SetAt(place);
-        CPVT_Line line;
-        pIterator->GetLine(line);
+    pIterator->SetAt(place);
+    CPVT_Line line;
+    pIterator->GetLine(line);
 
-        pIterator->SetAt(wpOld);
+    pIterator->SetAt(wpOld);
 
-        return line.ptLine.y + line.fLineAscent;
-    }
+    return line.ptLine.y + line.fLineAscent;
+  }
 
-    return 0.0f;
+  return 0.0f;
 }
 
-FX_FLOAT CFX_Edit::GetLineBottom(const CPVT_WordPlace& place) const
-{
-    if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator())
-    {
-        CPVT_WordPlace wpOld = pIterator->GetAt();
+FX_FLOAT CFX_Edit::GetLineBottom(const CPVT_WordPlace& place) const {
+  if (IPDF_VariableText_Iterator* pIterator = m_pVT->GetIterator()) {
+    CPVT_WordPlace wpOld = pIterator->GetAt();
 
-        pIterator->SetAt(place);
-        CPVT_Line line;
-        pIterator->GetLine(line);
+    pIterator->SetAt(place);
+    CPVT_Line line;
+    pIterator->GetLine(line);
 
-        pIterator->SetAt(wpOld);
+    pIterator->SetAt(wpOld);
 
-        return line.ptLine.y + line.fLineDescent;
-    }
+    return line.ptLine.y + line.fLineDescent;
+  }
 
-    return 0.0f;
+  return 0.0f;
 }
 
-CPVT_WordPlace CFX_Edit::DoInsertText(const CPVT_WordPlace& place, const FX_WCHAR* text, int32_t charset,
-                                      const CPVT_SecProps * pSecProps, const CPVT_WordProps * pWordProps)
-{
-    CPVT_WordPlace wp = place;
+CPVT_WordPlace CFX_Edit::DoInsertText(const CPVT_WordPlace& place,
+                                      const FX_WCHAR* text,
+                                      int32_t charset,
+                                      const CPVT_SecProps* pSecProps,
+                                      const CPVT_WordProps* pWordProps) {
+  CPVT_WordPlace wp = place;
 
-    if (m_pVT->IsValid())
-    {
-        CFX_WideString sText = text;
+  if (m_pVT->IsValid()) {
+    CFX_WideString sText = text;
 
-        for (int32_t i = 0, sz = sText.GetLength(); i < sz; i++)
-        {
-            FX_WORD word = sText[i];
-            switch (word)
-            {
-            case 0x0D:
-                wp = m_pVT->InsertSection(wp,pSecProps,pWordProps);
-                if (sText[i+1] == 0x0A)
-                    i++;
-                break;
-            case 0x0A:
-                wp = m_pVT->InsertSection(wp,pSecProps,pWordProps);
-                if (sText[i+1] == 0x0D)
-                    i++;
-                break;
-            case 0x09:
-                word = 0x20;
-            default:
-                wp = m_pVT->InsertWord(wp,word,GetCharSetFromUnicode(word, charset),pWordProps);
-                break;
-            }
-        }
+    for (int32_t i = 0, sz = sText.GetLength(); i < sz; i++) {
+      FX_WORD word = sText[i];
+      switch (word) {
+        case 0x0D:
+          wp = m_pVT->InsertSection(wp, pSecProps, pWordProps);
+          if (sText[i + 1] == 0x0A)
+            i++;
+          break;
+        case 0x0A:
+          wp = m_pVT->InsertSection(wp, pSecProps, pWordProps);
+          if (sText[i + 1] == 0x0D)
+            i++;
+          break;
+        case 0x09:
+          word = 0x20;
+        default:
+          wp = m_pVT->InsertWord(wp, word, GetCharSetFromUnicode(word, charset),
+                                 pWordProps);
+          break;
+      }
     }
+  }
 
-    return wp;
+  return wp;
 }
 
-int32_t CFX_Edit::GetCharSetFromUnicode(FX_WORD word, int32_t nOldCharset)
-{
-    if (IFX_Edit_FontMap* pFontMap = GetFontMap())
-        return pFontMap->CharSetFromUnicode(word, nOldCharset);
-    return nOldCharset;
+int32_t CFX_Edit::GetCharSetFromUnicode(FX_WORD word, int32_t nOldCharset) {
+  if (IFX_Edit_FontMap* pFontMap = GetFontMap())
+    return pFontMap->CharSetFromUnicode(word, nOldCharset);
+  return nOldCharset;
 }
 
-void CFX_Edit::BeginGroupUndo(const CFX_WideString& sTitle)
-{
-    ASSERT(m_pGroupUndoItem == NULL);
+void CFX_Edit::BeginGroupUndo(const CFX_WideString& sTitle) {
+  ASSERT(m_pGroupUndoItem == NULL);
 
-    m_pGroupUndoItem = new CFX_Edit_GroupUndoItem(sTitle);
+  m_pGroupUndoItem = new CFX_Edit_GroupUndoItem(sTitle);
 }
 
-void CFX_Edit::EndGroupUndo()
-{
-    ASSERT(m_pGroupUndoItem != NULL);
+void CFX_Edit::EndGroupUndo() {
+  ASSERT(m_pGroupUndoItem != NULL);
 
-    m_pGroupUndoItem->UpdateItems();
-    m_Undo.AddItem(m_pGroupUndoItem);
-    if (m_bOprNotify && m_pOprNotify)
-        m_pOprNotify->OnAddUndo(m_pGroupUndoItem);
-    m_pGroupUndoItem = NULL;
+  m_pGroupUndoItem->UpdateItems();
+  m_Undo.AddItem(m_pGroupUndoItem);
+  if (m_bOprNotify && m_pOprNotify)
+    m_pOprNotify->OnAddUndo(m_pGroupUndoItem);
+  m_pGroupUndoItem = NULL;
 }
 
-void CFX_Edit::AddEditUndoItem(CFX_Edit_UndoItem* pEditUndoItem)
-{
-    if (m_pGroupUndoItem)
-        m_pGroupUndoItem->AddUndoItem(pEditUndoItem);
-    else
-    {
-        m_Undo.AddItem(pEditUndoItem);
-        if (m_bOprNotify && m_pOprNotify)
-            m_pOprNotify->OnAddUndo(pEditUndoItem);
-    }
-}
-
-void CFX_Edit::AddUndoItem(IFX_Edit_UndoItem* pUndoItem)
-{
-    m_Undo.AddItem(pUndoItem);
+void CFX_Edit::AddEditUndoItem(CFX_Edit_UndoItem* pEditUndoItem) {
+  if (m_pGroupUndoItem)
+    m_pGroupUndoItem->AddUndoItem(pEditUndoItem);
+  else {
+    m_Undo.AddItem(pEditUndoItem);
     if (m_bOprNotify && m_pOprNotify)
-        m_pOprNotify->OnAddUndo(pUndoItem);
+      m_pOprNotify->OnAddUndo(pEditUndoItem);
+  }
 }
 
+void CFX_Edit::AddUndoItem(IFX_Edit_UndoItem* pUndoItem) {
+  m_Undo.AddItem(pUndoItem);
+  if (m_bOprNotify && m_pOprNotify)
+    m_pOprNotify->OnAddUndo(pUndoItem);
+}
diff --git a/fpdfsdk/src/fxedit/fxet_list.cpp b/fpdfsdk/src/fxedit/fxet_list.cpp
index d94cc16c86..70dc8d5262 100644
--- a/fpdfsdk/src/fxedit/fxet_list.cpp
+++ b/fpdfsdk/src/fxedit/fxet_list.cpp
@@ -8,1004 +8,829 @@
 #include "../../include/fxedit/fxet_edit.h"
 #include "../../include/fxedit/fxet_list.h"
 
-/* ------------------------------- CFX_ListItem ---------------------------------- */
+/* ------------------------------- CFX_ListItem
+ * ---------------------------------- */
 
-CFX_ListItem::CFX_ListItem() : m_pEdit(NULL),
-	m_bSelected(FALSE),
-	m_bCaret(FALSE),
-	m_rcListItem(0.0f,0.0f,0.0f,0.0f)
-{
-	m_pEdit = IFX_Edit::NewEdit();
-	ASSERT(m_pEdit != NULL);
+CFX_ListItem::CFX_ListItem()
+    : m_pEdit(NULL),
+      m_bSelected(FALSE),
+      m_bCaret(FALSE),
+      m_rcListItem(0.0f, 0.0f, 0.0f, 0.0f) {
+  m_pEdit = IFX_Edit::NewEdit();
+  ASSERT(m_pEdit != NULL);
 
-	m_pEdit->SetAlignmentV(1);
-	m_pEdit->Initialize();
+  m_pEdit->SetAlignmentV(1);
+  m_pEdit->Initialize();
 }
 
-CFX_ListItem::~CFX_ListItem()
-{
-	IFX_Edit::DelEdit(m_pEdit);
+CFX_ListItem::~CFX_ListItem() {
+  IFX_Edit::DelEdit(m_pEdit);
 }
 
-void CFX_ListItem::SetFontMap(IFX_Edit_FontMap * pFontMap)
-{
-	if (m_pEdit)
-		m_pEdit->SetFontMap(pFontMap);
+void CFX_ListItem::SetFontMap(IFX_Edit_FontMap* pFontMap) {
+  if (m_pEdit)
+    m_pEdit->SetFontMap(pFontMap);
 }
 
-IFX_Edit* CFX_ListItem::GetEdit() const
-{
-	return m_pEdit;
+IFX_Edit* CFX_ListItem::GetEdit() const {
+  return m_pEdit;
 }
 
-IFX_Edit_Iterator*	CFX_ListItem::GetIterator() const
-{
-	if (m_pEdit)
-		return m_pEdit->GetIterator();
+IFX_Edit_Iterator* CFX_ListItem::GetIterator() const {
+  if (m_pEdit)
+    return m_pEdit->GetIterator();
 
-	return NULL;
+  return NULL;
 }
 
-void CFX_ListItem::SetRect(const CLST_Rect & rect)
-{
-	m_rcListItem = rect;
+void CFX_ListItem::SetRect(const CLST_Rect& rect) {
+  m_rcListItem = rect;
 }
 
-CLST_Rect CFX_ListItem::GetRect() const
-{
-	return m_rcListItem;
+CLST_Rect CFX_ListItem::GetRect() const {
+  return m_rcListItem;
 }
 
-FX_BOOL CFX_ListItem::IsSelected() const
-{
-	return m_bSelected;
+FX_BOOL CFX_ListItem::IsSelected() const {
+  return m_bSelected;
 }
 
-void CFX_ListItem::SetSelect(FX_BOOL bSelected)
-{
-	m_bSelected = bSelected;
+void CFX_ListItem::SetSelect(FX_BOOL bSelected) {
+  m_bSelected = bSelected;
 }
 
-FX_BOOL CFX_ListItem::IsCaret() const
-{
-	return m_bCaret;
+FX_BOOL CFX_ListItem::IsCaret() const {
+  return m_bCaret;
 }
 
-void CFX_ListItem::SetCaret(FX_BOOL bCaret)
-{
-	m_bCaret = bCaret;
+void CFX_ListItem::SetCaret(FX_BOOL bCaret) {
+  m_bCaret = bCaret;
 }
 
-void CFX_ListItem::SetText(const FX_WCHAR* text)
-{
-	if (m_pEdit)
-		m_pEdit->SetText(text);
+void CFX_ListItem::SetText(const FX_WCHAR* text) {
+  if (m_pEdit)
+    m_pEdit->SetText(text);
 }
 
-void CFX_ListItem::SetFontSize(FX_FLOAT fFontSize)
-{
-	if (m_pEdit)
-		m_pEdit->SetFontSize(fFontSize);
+void CFX_ListItem::SetFontSize(FX_FLOAT fFontSize) {
+  if (m_pEdit)
+    m_pEdit->SetFontSize(fFontSize);
 }
 
-FX_FLOAT CFX_ListItem::GetItemHeight() const
-{
-	if (m_pEdit)
-		return m_pEdit->GetContentRect().Height();
+FX_FLOAT CFX_ListItem::GetItemHeight() const {
+  if (m_pEdit)
+    return m_pEdit->GetContentRect().Height();
 
-	return 0.0f;
+  return 0.0f;
 }
 
-FX_WORD CFX_ListItem::GetFirstChar() const
-{
-	CPVT_Word word;
+FX_WORD CFX_ListItem::GetFirstChar() const {
+  CPVT_Word word;
 
-	if (IFX_Edit_Iterator*	pIterator = GetIterator())
-	{
-		pIterator->SetAt(1);
-		pIterator->GetWord(word);
-	}
+  if (IFX_Edit_Iterator* pIterator = GetIterator()) {
+    pIterator->SetAt(1);
+    pIterator->GetWord(word);
+  }
 
-	return word.Word;
+  return word.Word;
 }
 
-CFX_WideString CFX_ListItem::GetText() const
-{
-	if (m_pEdit)
-		return m_pEdit->GetText();
+CFX_WideString CFX_ListItem::GetText() const {
+  if (m_pEdit)
+    return m_pEdit->GetText();
 
-	return L"";
+  return L"";
 }
 
-/* ------------------------------------ CFX_List --------------------------------- */
+/* ------------------------------------ CFX_List
+ * --------------------------------- */
 
-CFX_List::CFX_List() : m_fFontSize(0.0f), m_pFontMap(NULL), m_bMultiple(FALSE)
-{
+CFX_List::CFX_List()
+    : m_fFontSize(0.0f), m_pFontMap(NULL), m_bMultiple(FALSE) {}
+
+CFX_List::~CFX_List() {
+  Empty();
 }
 
-CFX_List::~CFX_List()
-{
-	Empty();
+void CFX_List::Empty() {
+  for (int32_t i = 0, sz = m_aListItems.GetSize(); i < sz; i++)
+    delete m_aListItems.GetAt(i);
+
+  m_aListItems.RemoveAll();
 }
 
-void CFX_List::Empty()
-{
-	for (int32_t i=0,sz=m_aListItems.GetSize(); i<sz; i++)
-		delete m_aListItems.GetAt(i);
+void CFX_List::SetFontMap(IFX_Edit_FontMap* pFontMap) {
+  m_pFontMap = pFontMap;
+}
 
-	m_aListItems.RemoveAll();
+void CFX_List::SetFontSize(FX_FLOAT fFontSize) {
+  m_fFontSize = fFontSize;
 }
 
-void CFX_List::SetFontMap(IFX_Edit_FontMap * pFontMap)
-{
-	m_pFontMap = pFontMap;
+void CFX_List::AddItem(const FX_WCHAR* str) {
+  if (CFX_ListItem* pListItem = new CFX_ListItem()) {
+    pListItem->SetFontMap(m_pFontMap);
+    pListItem->SetFontSize(m_fFontSize);
+    pListItem->SetText(str);
+    m_aListItems.Add(pListItem);
+  }
 }
 
-void CFX_List::SetFontSize(FX_FLOAT fFontSize)
-{
-	m_fFontSize = fFontSize;
+void CFX_List::ReArrange(int32_t nItemIndex) {
+  FX_FLOAT fPosY = 0.0f;
+
+  if (CFX_ListItem* pPrevItem = m_aListItems.GetAt(nItemIndex - 1))
+    fPosY = pPrevItem->GetRect().bottom;
+
+  for (int32_t i = nItemIndex, sz = m_aListItems.GetSize(); i < sz; i++) {
+    if (CFX_ListItem* pListItem = m_aListItems.GetAt(i)) {
+      FX_FLOAT fListItemHeight = pListItem->GetItemHeight();
+      pListItem->SetRect(CLST_Rect(0.0f, fPosY, 0.0f, fPosY + fListItemHeight));
+      fPosY += fListItemHeight;
+    }
+  }
+
+  SetContentRect(CLST_Rect(0.0f, 0.0f, 0.0f, fPosY));
 }
 
-void CFX_List::AddItem(const FX_WCHAR* str)
-{
-	if (CFX_ListItem * pListItem = new CFX_ListItem())
-	{
-		pListItem->SetFontMap(m_pFontMap);
-		pListItem->SetFontSize(m_fFontSize);
-		pListItem->SetText(str);
-		m_aListItems.Add(pListItem);
-	}
+IFX_Edit* CFX_List::GetItemEdit(int32_t nIndex) const {
+  if (CFX_ListItem* pListItem = m_aListItems.GetAt(nIndex)) {
+    return pListItem->GetEdit();
+  }
+
+  return NULL;
 }
 
-void CFX_List::ReArrange(int32_t nItemIndex)
-{
-	FX_FLOAT fPosY = 0.0f;
+int32_t CFX_List::GetCount() const {
+  return m_aListItems.GetSize();
+}
 
-	if (CFX_ListItem * pPrevItem = m_aListItems.GetAt(nItemIndex - 1))
-		fPosY = pPrevItem->GetRect().bottom;
+CPDF_Rect CFX_List::GetPlateRect() const {
+  return CFX_ListContainer::GetPlateRect();
+}
 
-	for (int32_t i=nItemIndex,sz=m_aListItems.GetSize(); i<sz; i++)
-	{
-		if (CFX_ListItem * pListItem = m_aListItems.GetAt(i))
-		{
-			FX_FLOAT fListItemHeight = pListItem->GetItemHeight();
-			pListItem->SetRect(CLST_Rect(0.0f,fPosY,0.0f,fPosY + fListItemHeight));
-			fPosY += fListItemHeight;
-		}
-	}
+CPDF_Rect CFX_List::GetContentRect() const {
+  return InnerToOuter(CFX_ListContainer::GetContentRect());
+}
 
-	SetContentRect(CLST_Rect(0.0f,0.0f,0.0f,fPosY));
+FX_FLOAT CFX_List::GetFontSize() const {
+  return m_fFontSize;
 }
 
-IFX_Edit * CFX_List::GetItemEdit(int32_t nIndex) const
-{
-	if (CFX_ListItem * pListItem = m_aListItems.GetAt(nIndex))
-	{
-		return pListItem->GetEdit();
-	}
+int32_t CFX_List::GetItemIndex(const CPDF_Point& point) const {
+  CPDF_Point pt = OuterToInner(point);
+
+  FX_BOOL bFirst = TRUE;
+  FX_BOOL bLast = TRUE;
 
-	return NULL;
+  for (int32_t i = 0, sz = m_aListItems.GetSize(); i < sz; i++) {
+    if (CFX_ListItem* pListItem = m_aListItems.GetAt(i)) {
+      CLST_Rect rcListItem = pListItem->GetRect();
+
+      if (FX_EDIT_IsFloatBigger(pt.y, rcListItem.top)) {
+        bFirst = FALSE;
+      }
+
+      if (FX_EDIT_IsFloatSmaller(pt.y, rcListItem.bottom)) {
+        bLast = FALSE;
+      }
+
+      if (pt.y >= rcListItem.top && pt.y < rcListItem.bottom) {
+        return i;
+      }
+    }
+  }
+
+  if (bFirst)
+    return 0;
+  if (bLast)
+    return m_aListItems.GetSize() - 1;
+
+  return -1;
 }
 
-int32_t CFX_List::GetCount() const
-{
-	return m_aListItems.GetSize();
+FX_FLOAT CFX_List::GetFirstHeight() const {
+  if (CFX_ListItem* pListItem = m_aListItems.GetAt(0)) {
+    return pListItem->GetItemHeight();
+  }
+
+  return 1.0f;
 }
 
-CPDF_Rect CFX_List::GetPlateRect() const
-{
-	return CFX_ListContainer::GetPlateRect();
+int32_t CFX_List::GetFirstSelected() const {
+  for (int32_t i = 0, sz = m_aListItems.GetSize(); i < sz; i++) {
+    if (CFX_ListItem* pListItem = m_aListItems.GetAt(i)) {
+      if (pListItem->IsSelected())
+        return i;
+    }
+  }
+  return -1;
 }
 
-CPDF_Rect CFX_List::GetContentRect() const
-{
-	return InnerToOuter(CFX_ListContainer::GetContentRect());
+int32_t CFX_List::GetLastSelected() const {
+  for (int32_t i = m_aListItems.GetSize() - 1; i >= 0; i--) {
+    if (CFX_ListItem* pListItem = m_aListItems.GetAt(i)) {
+      if (pListItem->IsSelected())
+        return i;
+    }
+  }
+  return -1;
 }
 
-FX_FLOAT CFX_List::GetFontSize() const
-{
-	return m_fFontSize;
+FX_WCHAR CFX_List::Toupper(FX_WCHAR c) const {
+  if ((c >= 'a') && (c <= 'z'))
+    c = c - ('a' - 'A');
+  return c;
 }
 
-int32_t CFX_List::GetItemIndex(const CPDF_Point & point) const
-{
-	CPDF_Point pt = OuterToInner(point);
+int32_t CFX_List::FindNext(int32_t nIndex, FX_WCHAR nChar) const {
+  int32_t nCircleIndex = nIndex;
 
-	FX_BOOL bFirst = TRUE;
-	FX_BOOL bLast = TRUE;
+  for (int32_t i = 0, sz = m_aListItems.GetSize(); i < sz; i++) {
+    nCircleIndex++;
+    if (nCircleIndex >= sz)
+      nCircleIndex = 0;
 
-	for (int32_t i=0,sz=m_aListItems.GetSize(); i<sz; i++)
-	{
-		if (CFX_ListItem * pListItem = m_aListItems.GetAt(i))
-		{
-			CLST_Rect rcListItem = pListItem->GetRect();
+    if (CFX_ListItem* pListItem = m_aListItems.GetAt(nCircleIndex)) {
+      if (Toupper(pListItem->GetFirstChar()) == Toupper(nChar))
+        return nCircleIndex;
+    }
+  }
 
-			if (FX_EDIT_IsFloatBigger(pt.y, rcListItem.top))
-			{
-				bFirst = FALSE;
-			}
+  return nCircleIndex;
+}
 
-			if (FX_EDIT_IsFloatSmaller(pt.y, rcListItem.bottom))
-			{
-				bLast = FALSE;
-			}
+CPDF_Rect CFX_List::GetItemRect(int32_t nIndex) const {
+  if (CFX_ListItem* pListItem = m_aListItems.GetAt(nIndex)) {
+    CPDF_Rect rcItem = pListItem->GetRect();
+    rcItem.left = 0.0f;
+    rcItem.right = GetPlateRect().Width();
+    return InnerToOuter(rcItem);
+  }
 
-			if (pt.y >= rcListItem.top && pt.y < rcListItem.bottom)
-			{
-				return i;
-			}
-		}
-	}
+  return CPDF_Rect();
+}
 
-	if (bFirst) return 0;
-	if (bLast) return m_aListItems.GetSize()-1;
+FX_BOOL CFX_List::IsItemSelected(int32_t nIndex) const {
+  if (CFX_ListItem* pListItem = m_aListItems.GetAt(nIndex)) {
+    return pListItem->IsSelected();
+  }
+
+  return FALSE;
+}
 
-	return -1;
+void CFX_List::SetItemSelect(int32_t nItemIndex, FX_BOOL bSelected) {
+  if (CFX_ListItem* pListItem = m_aListItems.GetAt(nItemIndex)) {
+    pListItem->SetSelect(bSelected);
+  }
 }
 
-FX_FLOAT CFX_List::GetFirstHeight() const
-{
-	if (CFX_ListItem * pListItem = m_aListItems.GetAt(0))
-	{
-		return pListItem->GetItemHeight();
-	}
+void CFX_List::SetItemCaret(int32_t nItemIndex, FX_BOOL bCaret) {
+  if (CFX_ListItem* pListItem = m_aListItems.GetAt(nItemIndex)) {
+    pListItem->SetCaret(bCaret);
+  }
+}
 
-	return 1.0f;
+void CFX_List::SetMultipleSel(FX_BOOL bMultiple) {
+  m_bMultiple = bMultiple;
 }
 
-int32_t CFX_List::GetFirstSelected() const
-{
-	for (int32_t i=0,sz=m_aListItems.GetSize(); i<sz; i++)
-	{
-		if (CFX_ListItem * pListItem = m_aListItems.GetAt(i))
-		{
-			if (pListItem->IsSelected())
-				return i;
-		}
-	}
-	return -1;
+FX_BOOL CFX_List::IsMultipleSel() const {
+  return m_bMultiple;
 }
 
-int32_t CFX_List::GetLastSelected() const
-{
-	for (int32_t i=m_aListItems.GetSize()-1; i>=0; i--)
-	{
-		if (CFX_ListItem * pListItem = m_aListItems.GetAt(i))
-		{
-			if (pListItem->IsSelected())
-				return i;
-		}
-	}
-	return -1;
+FX_BOOL CFX_List::IsValid(int32_t nItemIndex) const {
+  return nItemIndex >= 0 && nItemIndex < m_aListItems.GetSize();
 }
 
-FX_WCHAR CFX_List::Toupper(FX_WCHAR c) const
-{
-	if ( (c >= 'a') && (c <= 'z') )
-		c = c - ('a' - 'A');
-	return c;
+CFX_WideString CFX_List::GetItemText(int32_t nIndex) const {
+  if (CFX_ListItem* pListItem = m_aListItems.GetAt(nIndex)) {
+    return pListItem->GetText();
+  }
+
+  return L"";
 }
 
-int32_t CFX_List::FindNext(int32_t nIndex,FX_WCHAR nChar) const
-{
-	int32_t nCircleIndex = nIndex;
+/* ------------------------------------ CPLST_Select
+ * ---------------------------------- */
 
-	for (int32_t i=0,sz=m_aListItems.GetSize(); i<sz; i++)
-	{
-		nCircleIndex ++;
-		if (nCircleIndex >= sz) nCircleIndex = 0;
+CPLST_Select::CPLST_Select() {}
 
-		if (CFX_ListItem * pListItem = m_aListItems.GetAt(nCircleIndex))
-		{
-			if (Toupper(pListItem->GetFirstChar()) == Toupper(nChar))
-				return nCircleIndex;
-		}
-	}
+CPLST_Select::~CPLST_Select() {
+  for (int32_t i = 0, sz = m_aItems.GetSize(); i < sz; i++)
+    delete m_aItems.GetAt(i);
 
-	return nCircleIndex;
+  m_aItems.RemoveAll();
 }
 
-CPDF_Rect CFX_List::GetItemRect(int32_t nIndex) const
-{
-	if (CFX_ListItem * pListItem = m_aListItems.GetAt(nIndex))
-	{
-		CPDF_Rect rcItem = pListItem->GetRect();
-		rcItem.left = 0.0f;
-		rcItem.right = GetPlateRect().Width();
-		return InnerToOuter(rcItem);
-	}
+void CPLST_Select::Add(int32_t nItemIndex) {
+  int32_t nIndex = Find(nItemIndex);
 
-	return CPDF_Rect();
+  if (nIndex < 0)
+    m_aItems.Add(new CPLST_Select_Item(nItemIndex, 1));
+  else {
+    if (CPLST_Select_Item* pItem = m_aItems.GetAt(nIndex)) {
+      pItem->nState = 1;
+    }
+  }
 }
 
-FX_BOOL CFX_List::IsItemSelected(int32_t nIndex) const
-{
-	if (CFX_ListItem * pListItem = m_aListItems.GetAt(nIndex))
-	{
-		return pListItem->IsSelected();
-	}
+void CPLST_Select::Add(int32_t nBeginIndex, int32_t nEndIndex) {
+  if (nBeginIndex > nEndIndex) {
+    int32_t nTemp = nEndIndex;
+    nEndIndex = nBeginIndex;
+    nBeginIndex = nTemp;
+  }
 
-	return FALSE;
+  for (int32_t i = nBeginIndex; i <= nEndIndex; i++)
+    Add(i);
 }
 
-void CFX_List::SetItemSelect(int32_t nItemIndex, FX_BOOL bSelected)
-{
-	if (CFX_ListItem * pListItem = m_aListItems.GetAt(nItemIndex))
-	{
-		pListItem->SetSelect(bSelected);
-	}
+void CPLST_Select::Sub(int32_t nItemIndex) {
+  for (int32_t i = m_aItems.GetSize() - 1; i >= 0; i--) {
+    if (CPLST_Select_Item* pItem = m_aItems.GetAt(i))
+      if (pItem->nItemIndex == nItemIndex)
+        pItem->nState = -1;
+  }
 }
 
-void CFX_List::SetItemCaret(int32_t nItemIndex, FX_BOOL bCaret)
-{
-	if (CFX_ListItem * pListItem = m_aListItems.GetAt(nItemIndex))
-	{
-		pListItem->SetCaret(bCaret);
-	}
+void CPLST_Select::Sub(int32_t nBeginIndex, int32_t nEndIndex) {
+  if (nBeginIndex > nEndIndex) {
+    int32_t nTemp = nEndIndex;
+    nEndIndex = nBeginIndex;
+    nBeginIndex = nTemp;
+  }
+
+  for (int32_t i = nBeginIndex; i <= nEndIndex; i++)
+    Sub(i);
 }
 
-void CFX_List::SetMultipleSel(FX_BOOL bMultiple)
-{
-	m_bMultiple = bMultiple;
+int32_t CPLST_Select::Find(int32_t nItemIndex) const {
+  for (int32_t i = 0, sz = m_aItems.GetSize(); i < sz; i++) {
+    if (CPLST_Select_Item* pItem = m_aItems.GetAt(i)) {
+      if (pItem->nItemIndex == nItemIndex)
+        return i;
+    }
+  }
+
+  return -1;
 }
 
-FX_BOOL CFX_List::IsMultipleSel() const
-{
-	return m_bMultiple;
+FX_BOOL CPLST_Select::IsExist(int32_t nItemIndex) const {
+  return Find(nItemIndex) >= 0;
 }
 
-FX_BOOL CFX_List::IsValid(int32_t nItemIndex) const
-{
-	return nItemIndex >= 0 && nItemIndex < m_aListItems.GetSize();
+int32_t CPLST_Select::GetCount() const {
+  return m_aItems.GetSize();
 }
 
-CFX_WideString CFX_List::GetItemText(int32_t nIndex) const
-{
-	if (CFX_ListItem * pListItem = m_aListItems.GetAt(nIndex))
-	{
-		return pListItem->GetText();
-	}
+int32_t CPLST_Select::GetItemIndex(int32_t nIndex) const {
+  if (nIndex >= 0 && nIndex < m_aItems.GetSize())
+    if (CPLST_Select_Item* pItem = m_aItems.GetAt(nIndex))
+      return pItem->nItemIndex;
 
-	return L"";
+  return -1;
 }
 
-/* ------------------------------------ CPLST_Select ---------------------------------- */
+int32_t CPLST_Select::GetState(int32_t nIndex) const {
+  if (nIndex >= 0 && nIndex < m_aItems.GetSize())
+    if (CPLST_Select_Item* pItem = m_aItems.GetAt(nIndex))
+      return pItem->nState;
 
-CPLST_Select::CPLST_Select()
-{
+  return 0;
 }
 
-CPLST_Select::~CPLST_Select()
-{
-	for (int32_t i=0,sz=m_aItems.GetSize(); i<sz; i++)
-		delete m_aItems.GetAt(i);
+void CPLST_Select::DeselectAll() {
+  for (int32_t i = 0, sz = m_aItems.GetSize(); i < sz; i++) {
+    if (CPLST_Select_Item* pItem = m_aItems.GetAt(i)) {
+      pItem->nState = -1;
+    }
+  }
+}
 
-	m_aItems.RemoveAll();
+void CPLST_Select::Done() {
+  for (int32_t i = m_aItems.GetSize() - 1; i >= 0; i--) {
+    if (CPLST_Select_Item* pItem = m_aItems.GetAt(i)) {
+      if (pItem->nState == -1) {
+        delete pItem;
+        m_aItems.RemoveAt(i);
+      } else {
+        pItem->nState = 0;
+      }
+    }
+  }
 }
 
-void CPLST_Select::Add(int32_t nItemIndex)
-{
-	int32_t nIndex = Find(nItemIndex);
+/* ------------------------------------ CFX_ListCtrl
+ * --------------------------------- */
+
+CFX_ListCtrl::CFX_ListCtrl()
+    : m_pNotify(NULL),
+      m_bNotifyFlag(FALSE),
+      m_ptScrollPos(0.0f, 0.0f),
+      m_nSelItem(-1),
+      m_nFootIndex(-1),
+      m_bCtrlSel(FALSE),
+      m_nCaretIndex(-1) {}
 
-	if (nIndex < 0)
-		m_aItems.Add(new CPLST_Select_Item(nItemIndex,1));
-	else
-	{
-		if (CPLST_Select_Item * pItem = m_aItems.GetAt(nIndex))
-		{
-			pItem->nState = 1;
-		}
-	}
+CFX_ListCtrl::~CFX_ListCtrl() {}
+
+void CFX_ListCtrl::SetNotify(IFX_List_Notify* pNotify) {
+  m_pNotify = pNotify;
 }
 
-void CPLST_Select::Add(int32_t nBeginIndex, int32_t nEndIndex)
-{
-	if (nBeginIndex > nEndIndex)
-	{
-		int32_t nTemp = nEndIndex;
-		nEndIndex = nBeginIndex;
-		nBeginIndex = nTemp;
-	}
+CPDF_Point CFX_ListCtrl::InToOut(const CPDF_Point& point) const {
+  CPDF_Rect rcPlate = GetPlateRect();
 
-	for (int32_t i=nBeginIndex; i<=nEndIndex; i++)	Add(i);
+  return CPDF_Point(point.x - (m_ptScrollPos.x - rcPlate.left),
+                    point.y - (m_ptScrollPos.y - rcPlate.top));
 }
 
-void CPLST_Select::Sub(int32_t nItemIndex)
-{
-	for (int32_t i=m_aItems.GetSize()-1; i>=0; i--)
-	{
-		if (CPLST_Select_Item * pItem = m_aItems.GetAt(i))
-			if (pItem->nItemIndex == nItemIndex)
-				pItem->nState = -1;
-	}
+CPDF_Point CFX_ListCtrl::OutToIn(const CPDF_Point& point) const {
+  CPDF_Rect rcPlate = GetPlateRect();
+
+  return CPDF_Point(point.x + (m_ptScrollPos.x - rcPlate.left),
+                    point.y + (m_ptScrollPos.y - rcPlate.top));
 }
 
-void CPLST_Select::Sub(int32_t nBeginIndex, int32_t nEndIndex)
-{
-	if (nBeginIndex > nEndIndex)
-	{
-		int32_t nTemp = nEndIndex;
-		nEndIndex = nBeginIndex;
-		nBeginIndex = nTemp;
-	}
+CPDF_Rect CFX_ListCtrl::InToOut(const CPDF_Rect& rect) const {
+  CPDF_Point ptLeftBottom = InToOut(CPDF_Point(rect.left, rect.bottom));
+  CPDF_Point ptRightTop = InToOut(CPDF_Point(rect.right, rect.top));
 
-	for (int32_t i=nBeginIndex; i<=nEndIndex; i++)	Sub(i);
+  return CPDF_Rect(ptLeftBottom.x, ptLeftBottom.y, ptRightTop.x, ptRightTop.y);
 }
 
-int32_t CPLST_Select::Find(int32_t nItemIndex) const
-{
-	for (int32_t i=0,sz=m_aItems.GetSize(); i<sz; i++)
-	{
-		if (CPLST_Select_Item * pItem = m_aItems.GetAt(i))
-		{
-			if (pItem->nItemIndex == nItemIndex)
-				return i;
-		}
-	}
+CPDF_Rect CFX_ListCtrl::OutToIn(const CPDF_Rect& rect) const {
+  CPDF_Point ptLeftBottom = OutToIn(CPDF_Point(rect.left, rect.bottom));
+  CPDF_Point ptRightTop = OutToIn(CPDF_Point(rect.right, rect.top));
 
-	return -1;
+  return CPDF_Rect(ptLeftBottom.x, ptLeftBottom.y, ptRightTop.x, ptRightTop.y);
 }
 
-FX_BOOL CPLST_Select::IsExist(int32_t nItemIndex) const
-{
-	return Find(nItemIndex) >= 0;
+void CFX_ListCtrl::OnMouseDown(const CPDF_Point& point,
+                               FX_BOOL bShift,
+                               FX_BOOL bCtrl) {
+  int32_t nHitIndex = GetItemIndex(point);
+
+  if (IsMultipleSel()) {
+    if (bCtrl) {
+      if (IsItemSelected(nHitIndex)) {
+        m_aSelItems.Sub(nHitIndex);
+        SelectItems();
+        m_bCtrlSel = FALSE;
+      } else {
+        m_aSelItems.Add(nHitIndex);
+        SelectItems();
+        m_bCtrlSel = TRUE;
+      }
+
+      m_nFootIndex = nHitIndex;
+    } else if (bShift) {
+      m_aSelItems.DeselectAll();
+      m_aSelItems.Add(m_nFootIndex, nHitIndex);
+      SelectItems();
+    } else {
+      m_aSelItems.DeselectAll();
+      m_aSelItems.Add(nHitIndex);
+      SelectItems();
+
+      m_nFootIndex = nHitIndex;
+    }
+
+    SetCaret(nHitIndex);
+  } else {
+    SetSingleSelect(nHitIndex);
+  }
+
+  if (!IsItemVisible(nHitIndex))
+    ScrollToListItem(nHitIndex);
 }
 
-int32_t CPLST_Select::GetCount() const
-{
-	return m_aItems.GetSize();
+void CFX_ListCtrl::OnMouseMove(const CPDF_Point& point,
+                               FX_BOOL bShift,
+                               FX_BOOL bCtrl) {
+  int32_t nHitIndex = GetItemIndex(point);
+
+  if (IsMultipleSel()) {
+    if (bCtrl) {
+      if (m_bCtrlSel)
+        m_aSelItems.Add(m_nFootIndex, nHitIndex);
+      else
+        m_aSelItems.Sub(m_nFootIndex, nHitIndex);
+
+      SelectItems();
+    } else {
+      m_aSelItems.DeselectAll();
+      m_aSelItems.Add(m_nFootIndex, nHitIndex);
+      SelectItems();
+    }
+
+    SetCaret(nHitIndex);
+  } else {
+    SetSingleSelect(nHitIndex);
+  }
+
+  if (!IsItemVisible(nHitIndex))
+    ScrollToListItem(nHitIndex);
 }
 
-int32_t CPLST_Select::GetItemIndex(int32_t nIndex) const
-{
-	if (nIndex >= 0 && nIndex < m_aItems.GetSize())
-		if (CPLST_Select_Item * pItem = m_aItems.GetAt(nIndex))
-			return pItem->nItemIndex;
+void CFX_ListCtrl::OnVK(int32_t nItemIndex, FX_BOOL bShift, FX_BOOL bCtrl) {
+  if (IsMultipleSel()) {
+    if (nItemIndex >= 0 && nItemIndex < GetCount()) {
+      if (bCtrl) {
+      } else if (bShift) {
+        m_aSelItems.DeselectAll();
+        m_aSelItems.Add(m_nFootIndex, nItemIndex);
+        SelectItems();
+      } else {
+        m_aSelItems.DeselectAll();
+        m_aSelItems.Add(nItemIndex);
+        SelectItems();
+        m_nFootIndex = nItemIndex;
+      }
+
+      SetCaret(nItemIndex);
+    }
+  } else {
+    SetSingleSelect(nItemIndex);
+  }
 
-	return -1;
+  if (!IsItemVisible(nItemIndex))
+    ScrollToListItem(nItemIndex);
 }
 
-int32_t CPLST_Select::GetState(int32_t nIndex) const
-{
-	if (nIndex >= 0 && nIndex < m_aItems.GetSize())
-		if (CPLST_Select_Item * pItem = m_aItems.GetAt(nIndex))
-			return pItem->nState;
+void CFX_ListCtrl::OnVK_UP(FX_BOOL bShift, FX_BOOL bCtrl) {
+  OnVK(IsMultipleSel() ? GetCaret() - 1 : GetSelect() - 1, bShift, bCtrl);
+}
 
-	return 0;
+void CFX_ListCtrl::OnVK_DOWN(FX_BOOL bShift, FX_BOOL bCtrl) {
+  OnVK(IsMultipleSel() ? GetCaret() + 1 : GetSelect() + 1, bShift, bCtrl);
 }
 
-void CPLST_Select::DeselectAll()
-{
-	for (int32_t i=0,sz=m_aItems.GetSize(); i<sz; i++)
-	{
-		if (CPLST_Select_Item * pItem = m_aItems.GetAt(i))
-		{
-			pItem->nState = -1;
-		}
-	}
-}
-
-void CPLST_Select::Done()
-{
-	for (int32_t i=m_aItems.GetSize()-1; i>=0; i--)
-	{
-		if (CPLST_Select_Item * pItem = m_aItems.GetAt(i))
-		{
-			if (pItem->nState == -1)
-			{
-				delete pItem;
-				m_aItems.RemoveAt(i);
-			}
-			else
-			{
-				pItem->nState = 0;
-			}
-		}
-	}
-}
-
-/* ------------------------------------ CFX_ListCtrl --------------------------------- */
+void CFX_ListCtrl::OnVK_LEFT(FX_BOOL bShift, FX_BOOL bCtrl) {
+  OnVK(0, bShift, bCtrl);
+}
 
-CFX_ListCtrl::CFX_ListCtrl() : m_pNotify(NULL),
-	m_bNotifyFlag(FALSE),
-	m_ptScrollPos(0.0f,0.0f),
-	m_nSelItem(-1),
-	m_nFootIndex(-1),
-	m_bCtrlSel(FALSE),
-	m_nCaretIndex(-1)
-{
-}
-
-CFX_ListCtrl::~CFX_ListCtrl()
-{
+void CFX_ListCtrl::OnVK_RIGHT(FX_BOOL bShift, FX_BOOL bCtrl) {
+  OnVK(GetCount() - 1, bShift, bCtrl);
 }
-
-void CFX_ListCtrl::SetNotify(IFX_List_Notify * pNotify)
-{
-	m_pNotify = pNotify;
-}
-
-CPDF_Point CFX_ListCtrl::InToOut(const CPDF_Point & point) const
-{
-	CPDF_Rect rcPlate = GetPlateRect();
-
-	return CPDF_Point(point.x - (m_ptScrollPos.x - rcPlate.left),
-		point.y - (m_ptScrollPos.y - rcPlate.top));
-}
-
-CPDF_Point CFX_ListCtrl::OutToIn(const CPDF_Point & point) const
-{
-	CPDF_Rect rcPlate = GetPlateRect();
-
-	return CPDF_Point(point.x + (m_ptScrollPos.x - rcPlate.left),
-		point.y + (m_ptScrollPos.y - rcPlate.top));
-}
-
-CPDF_Rect CFX_ListCtrl::InToOut(const CPDF_Rect & rect) const
-{
-	CPDF_Point ptLeftBottom = InToOut(CPDF_Point(rect.left,rect.bottom));
-	CPDF_Point ptRightTop = InToOut(CPDF_Point(rect.right,rect.top));
-
-	return CPDF_Rect(ptLeftBottom.x,ptLeftBottom.y,ptRightTop.x,ptRightTop.y);
-}
-
-CPDF_Rect CFX_ListCtrl::OutToIn(const CPDF_Rect & rect) const
-{
-	CPDF_Point ptLeftBottom = OutToIn(CPDF_Point(rect.left,rect.bottom));
-	CPDF_Point ptRightTop = OutToIn(CPDF_Point(rect.right,rect.top));
-
-	return CPDF_Rect(ptLeftBottom.x,ptLeftBottom.y,ptRightTop.x,ptRightTop.y);
-}
-
-void CFX_ListCtrl::OnMouseDown(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl)
-{
-	int32_t nHitIndex = GetItemIndex(point);
-
-	if (IsMultipleSel())
-	{
-		if (bCtrl)
-		{
-			if (IsItemSelected(nHitIndex))
-			{
-				m_aSelItems.Sub(nHitIndex);
-				SelectItems();
-				m_bCtrlSel = FALSE;
-			}
-			else
-			{
-				m_aSelItems.Add(nHitIndex);
-				SelectItems();
-				m_bCtrlSel = TRUE;
-			}
-
-			m_nFootIndex = nHitIndex;
-		}
-		else if (bShift)
-		{
-			m_aSelItems.DeselectAll();
-			m_aSelItems.Add(m_nFootIndex,nHitIndex);
-			SelectItems();
-		}
-		else
-		{
-			m_aSelItems.DeselectAll();
-			m_aSelItems.Add(nHitIndex);
-			SelectItems();
-
-			m_nFootIndex = nHitIndex;
-		}
-
-		SetCaret(nHitIndex);
-	}
-	else
-	{
-		SetSingleSelect(nHitIndex);
-	}
-
-	if (!IsItemVisible(nHitIndex))
-		ScrollToListItem(nHitIndex);
-}
-
-void CFX_ListCtrl::OnMouseMove(const CPDF_Point & point,FX_BOOL bShift,FX_BOOL bCtrl)
-{
-	int32_t nHitIndex = GetItemIndex(point);
-
-	if (IsMultipleSel())
-	{
-		if (bCtrl)
-		{
-			if (m_bCtrlSel)
-				m_aSelItems.Add(m_nFootIndex,nHitIndex);
-			else
-				m_aSelItems.Sub(m_nFootIndex,nHitIndex);
-
-			SelectItems();
-		}
-		else
-		{
-			m_aSelItems.DeselectAll();
-			m_aSelItems.Add(m_nFootIndex,nHitIndex);
-			SelectItems();
-		}
-
-		SetCaret(nHitIndex);
-	}
-	else
-	{
-		SetSingleSelect(nHitIndex);
-	}
-
-	if (!IsItemVisible(nHitIndex))
-		ScrollToListItem(nHitIndex);
-}
-
-void CFX_ListCtrl::OnVK(int32_t nItemIndex,FX_BOOL bShift,FX_BOOL bCtrl)
-{
-	if (IsMultipleSel())
-	{
-		if (nItemIndex >= 0 && nItemIndex < GetCount())
-		{
-			if (bCtrl)
-			{
-			}
-			else if (bShift)
-			{
-				m_aSelItems.DeselectAll();
-				m_aSelItems.Add(m_nFootIndex,nItemIndex);
-				SelectItems();
-			}
-			else
-			{
-				m_aSelItems.DeselectAll();
-				m_aSelItems.Add(nItemIndex);
-				SelectItems();
-				m_nFootIndex = nItemIndex;
-			}
-
-			SetCaret(nItemIndex);
-		}
-	}
-	else
-	{
-		SetSingleSelect(nItemIndex);
-	}
-
-	if (!IsItemVisible(nItemIndex))
-		ScrollToListItem(nItemIndex);
-}
-
-void CFX_ListCtrl::OnVK_UP(FX_BOOL bShift,FX_BOOL bCtrl)
-{
-	OnVK(IsMultipleSel() ? GetCaret()-1 : GetSelect()-1, bShift, bCtrl);
-}
-
-void CFX_ListCtrl::OnVK_DOWN(FX_BOOL bShift,FX_BOOL bCtrl)
-{
-	OnVK(IsMultipleSel() ? GetCaret()+1 : GetSelect()+1, bShift, bCtrl);
-}
-
-void CFX_ListCtrl::OnVK_LEFT(FX_BOOL bShift,FX_BOOL bCtrl)
-{
-	OnVK(0, bShift, bCtrl);
-}
-
-void CFX_ListCtrl::OnVK_RIGHT(FX_BOOL bShift,FX_BOOL bCtrl)
-{
-	OnVK(GetCount()-1, bShift, bCtrl);
-}
-
-void CFX_ListCtrl::OnVK_HOME(FX_BOOL bShift,FX_BOOL bCtrl)
-{
-	OnVK(0, bShift, bCtrl);
-}
-
-void CFX_ListCtrl::OnVK_END(FX_BOOL bShift,FX_BOOL bCtrl)
-{
-	OnVK(GetCount()-1, bShift, bCtrl);
-}
-
-FX_BOOL	CFX_ListCtrl::OnChar(FX_WORD nChar,FX_BOOL bShift,FX_BOOL bCtrl)
-{
-	int32_t nIndex = GetLastSelected();
-	int32_t nFindIndex = FindNext(nIndex,nChar);
-
-	if (nFindIndex != nIndex)
-	{
-		OnVK(nFindIndex, bShift, bCtrl);
-		return TRUE;
-	}
-	return FALSE;
+
+void CFX_ListCtrl::OnVK_HOME(FX_BOOL bShift, FX_BOOL bCtrl) {
+  OnVK(0, bShift, bCtrl);
+}
+
+void CFX_ListCtrl::OnVK_END(FX_BOOL bShift, FX_BOOL bCtrl) {
+  OnVK(GetCount() - 1, bShift, bCtrl);
+}
+
+FX_BOOL CFX_ListCtrl::OnChar(FX_WORD nChar, FX_BOOL bShift, FX_BOOL bCtrl) {
+  int32_t nIndex = GetLastSelected();
+  int32_t nFindIndex = FindNext(nIndex, nChar);
+
+  if (nFindIndex != nIndex) {
+    OnVK(nFindIndex, bShift, bCtrl);
+    return TRUE;
+  }
+  return FALSE;
 }
 
 /* -------- inner methods ------- */
 
-void CFX_ListCtrl::SetPlateRect(const CPDF_Rect & rect)
-{
-	CFX_ListContainer::SetPlateRect(rect);
-	m_ptScrollPos.x = rect.left;
-	SetScrollPos(CPDF_Point(rect.left,rect.top));
-	ReArrange(0);
-	InvalidateItem(-1);
-}
-
-CPDF_Rect CFX_ListCtrl::GetItemRect(int32_t nIndex) const
-{
-	return InToOut(CFX_List::GetItemRect(nIndex));
-}
-
-void CFX_ListCtrl::AddString(const FX_WCHAR* string)
-{
-	AddItem(string);
-	ReArrange(GetCount() - 1);
-}
-
-void CFX_ListCtrl::SetMultipleSelect(int32_t nItemIndex, FX_BOOL bSelected)
-{
-	if (!IsValid(nItemIndex)) return;
-
-	if (bSelected != IsItemSelected(nItemIndex))
-	{
-		if (bSelected)
-		{
-			SetItemSelect(nItemIndex,TRUE);
-			InvalidateItem(nItemIndex);
-		}
-		else
-		{
-			SetItemSelect(nItemIndex,FALSE);
-			InvalidateItem(nItemIndex);
-		}
-	}
-}
-
-void CFX_ListCtrl::SetSingleSelect(int32_t nItemIndex)
-{
-	if (!IsValid(nItemIndex)) return;
-
-	if (m_nSelItem != nItemIndex)
-	{
-		if (m_nSelItem >= 0)
-		{
-			SetItemSelect(m_nSelItem,FALSE);
-			InvalidateItem(m_nSelItem);
-		}
-
-		SetItemSelect(nItemIndex,TRUE);
-		InvalidateItem(nItemIndex);
-		m_nSelItem = nItemIndex;
-	}
-}
-
-void CFX_ListCtrl::SetCaret(int32_t nItemIndex)
-{
-	if (!IsValid(nItemIndex)) return;
-
-	if (IsMultipleSel())
-	{
-		int32_t nOldIndex = m_nCaretIndex;
-
-		if (nOldIndex != nItemIndex)
-		{
-			m_nCaretIndex = nItemIndex;
-
-			SetItemCaret(nOldIndex, FALSE);
-			SetItemCaret(nItemIndex,TRUE);
-
-			InvalidateItem(nOldIndex);
-			InvalidateItem(nItemIndex);
-		}
-	}
-}
-
-void CFX_ListCtrl::InvalidateItem(int32_t nItemIndex)
-{
-	if (m_pNotify)
-	{
-		if (nItemIndex == -1)
-		{
-			if (!m_bNotifyFlag)
-			{
-				m_bNotifyFlag = TRUE;
-				CPDF_Rect rcRefresh = GetPlateRect();
-				m_pNotify->IOnInvalidateRect(&rcRefresh);
-				m_bNotifyFlag = FALSE;
-			}
-		}
-		else
-		{
-			if (!m_bNotifyFlag)
-			{
-				m_bNotifyFlag = TRUE;
-				CPDF_Rect rcRefresh = GetItemRect(nItemIndex);
-				rcRefresh.left -= 1.0f;
-				rcRefresh.right += 1.0f;
-				rcRefresh.bottom -= 1.0f;
-				rcRefresh.top += 1.0f;
-
-				m_pNotify->IOnInvalidateRect(&rcRefresh);
-				m_bNotifyFlag = FALSE;
-			}
-		}
-	}
-}
-
-void CFX_ListCtrl::SelectItems()
-{
-	for (int32_t i=0,sz=m_aSelItems.GetCount(); i<sz; i++)
-	{
-		int32_t nItemIndex = m_aSelItems.GetItemIndex(i);
-		int32_t nState = m_aSelItems.GetState(i);
-
-		switch(nState)
-		{
-		case 1:
-			SetMultipleSelect(nItemIndex, TRUE);
-			break;
-		case -1:
-			SetMultipleSelect(nItemIndex, FALSE);
-			break;
-		}
-	}
-
-	m_aSelItems.Done();
-}
-
-void CFX_ListCtrl::Select(int32_t nItemIndex)
-{
-	if (!IsValid(nItemIndex)) return;
-
-	if (IsMultipleSel())
-	{
-		m_aSelItems.Add(nItemIndex);
-		SelectItems();
-	}
-	else
-		SetSingleSelect(nItemIndex);
-}
-
-FX_BOOL	CFX_ListCtrl::IsItemVisible(int32_t nItemIndex) const
-{
-	CPDF_Rect rcPlate = GetPlateRect();
-	CPDF_Rect rcItem = GetItemRect(nItemIndex);
-
-	return rcItem.bottom >= rcPlate.bottom && rcItem.top <= rcPlate.top;
-}
-
-void CFX_ListCtrl::ScrollToListItem(int32_t nItemIndex)
-{
-	if (!IsValid(nItemIndex)) return;
-
-	CPDF_Rect rcPlate = GetPlateRect();
-	CPDF_Rect rcItem = CFX_List::GetItemRect(nItemIndex);
-	CPDF_Rect rcItemCtrl = GetItemRect(nItemIndex);
-
-	if (FX_EDIT_IsFloatSmaller(rcItemCtrl.bottom, rcPlate.bottom))
-	{
-		if (FX_EDIT_IsFloatSmaller(rcItemCtrl.top, rcPlate.top))
-		{
-			SetScrollPosY(rcItem.bottom + rcPlate.Height());
-		}
-	}
-	else if (FX_EDIT_IsFloatBigger(rcItemCtrl.top, rcPlate.top))
-	{
-		if (FX_EDIT_IsFloatBigger(rcItemCtrl.bottom, rcPlate.bottom))
-		{
-			SetScrollPosY(rcItem.top);
-		}
-	}
-}
-
-void CFX_ListCtrl::SetScrollInfo()
-{
-	if (m_pNotify)
-	{
-		CPDF_Rect rcPlate = GetPlateRect();
-		CPDF_Rect rcContent = CFX_List::GetContentRect();
-
-		if (!m_bNotifyFlag)
-		{
-			m_bNotifyFlag = TRUE;
-			m_pNotify->IOnSetScrollInfoY(rcPlate.bottom, rcPlate.top,
-					rcContent.bottom, rcContent.top, GetFirstHeight(), rcPlate.Height());
-			m_bNotifyFlag = FALSE;
-		}
-	}
-}
-
-void CFX_ListCtrl::SetScrollPos(const CPDF_Point & point)
-{
-	SetScrollPosY(point.y);
-}
-
-void CFX_ListCtrl::SetScrollPosY(FX_FLOAT fy)
-{
-	if (!FX_EDIT_IsFloatEqual(m_ptScrollPos.y,fy))
-	{
-		CPDF_Rect rcPlate = GetPlateRect();
-		CPDF_Rect rcContent = CFX_List::GetContentRect();
-
-		if (rcPlate.Height() > rcContent.Height())
-		{
-			fy = rcPlate.top;
-		}
-		else
-		{
-			if (FX_EDIT_IsFloatSmaller(fy - rcPlate.Height(), rcContent.bottom))
-			{
-				fy = rcContent.bottom + rcPlate.Height();
-			}
-			else if (FX_EDIT_IsFloatBigger(fy, rcContent.top))
-			{
-				fy = rcContent.top;
-			}
-		}
-
-		m_ptScrollPos.y = fy;
-		InvalidateItem(-1);
+void CFX_ListCtrl::SetPlateRect(const CPDF_Rect& rect) {
+  CFX_ListContainer::SetPlateRect(rect);
+  m_ptScrollPos.x = rect.left;
+  SetScrollPos(CPDF_Point(rect.left, rect.top));
+  ReArrange(0);
+  InvalidateItem(-1);
+}
+
+CPDF_Rect CFX_ListCtrl::GetItemRect(int32_t nIndex) const {
+  return InToOut(CFX_List::GetItemRect(nIndex));
+}
+
+void CFX_ListCtrl::AddString(const FX_WCHAR* string) {
+  AddItem(string);
+  ReArrange(GetCount() - 1);
+}
+
+void CFX_ListCtrl::SetMultipleSelect(int32_t nItemIndex, FX_BOOL bSelected) {
+  if (!IsValid(nItemIndex))
+    return;
 
-		if (m_pNotify)
-		{
-			if (!m_bNotifyFlag)
-			{
-				m_bNotifyFlag = TRUE;
-				m_pNotify->IOnSetScrollPosY(fy);
-				m_bNotifyFlag = FALSE;
-			}
-		}
-	}
-}
-
-CPDF_Rect CFX_ListCtrl::GetContentRect() const
-{
-	return InToOut(CFX_List::GetContentRect());
+  if (bSelected != IsItemSelected(nItemIndex)) {
+    if (bSelected) {
+      SetItemSelect(nItemIndex, TRUE);
+      InvalidateItem(nItemIndex);
+    } else {
+      SetItemSelect(nItemIndex, FALSE);
+      InvalidateItem(nItemIndex);
+    }
+  }
 }
 
-void CFX_ListCtrl::ReArrange(int32_t nItemIndex)
-{
-	CFX_List::ReArrange(nItemIndex);
-	SetScrollInfo();
-}
-
-void CFX_ListCtrl::SetTopItem(int32_t nIndex)
-{
-	if (IsValid(nIndex))
-	{
-		GetPlateRect();
-		CPDF_Rect rcItem = CFX_List::GetItemRect(nIndex);
-		SetScrollPosY(rcItem.top);
-	}
-}
-
-int32_t CFX_ListCtrl::GetTopItem() const
-{
-	int32_t nItemIndex = GetItemIndex(GetBTPoint());
-
-	if (!IsItemVisible(nItemIndex) && IsItemVisible(nItemIndex + 1))
-			nItemIndex += 1;
-
-	return nItemIndex;
-}
-
-void CFX_ListCtrl::Empty()
-{
-	CFX_List::Empty();
-	InvalidateItem(-1);
+void CFX_ListCtrl::SetSingleSelect(int32_t nItemIndex) {
+  if (!IsValid(nItemIndex))
+    return;
+
+  if (m_nSelItem != nItemIndex) {
+    if (m_nSelItem >= 0) {
+      SetItemSelect(m_nSelItem, FALSE);
+      InvalidateItem(m_nSelItem);
+    }
+
+    SetItemSelect(nItemIndex, TRUE);
+    InvalidateItem(nItemIndex);
+    m_nSelItem = nItemIndex;
+  }
 }
 
-void CFX_ListCtrl::Cancel()
-{
-	m_aSelItems.DeselectAll();
+void CFX_ListCtrl::SetCaret(int32_t nItemIndex) {
+  if (!IsValid(nItemIndex))
+    return;
+
+  if (IsMultipleSel()) {
+    int32_t nOldIndex = m_nCaretIndex;
+
+    if (nOldIndex != nItemIndex) {
+      m_nCaretIndex = nItemIndex;
+
+      SetItemCaret(nOldIndex, FALSE);
+      SetItemCaret(nItemIndex, TRUE);
+
+      InvalidateItem(nOldIndex);
+      InvalidateItem(nItemIndex);
+    }
+  }
 }
 
-int32_t CFX_ListCtrl::GetItemIndex(const CPDF_Point & point) const
-{
-	return CFX_List::GetItemIndex(OutToIn(point));
+void CFX_ListCtrl::InvalidateItem(int32_t nItemIndex) {
+  if (m_pNotify) {
+    if (nItemIndex == -1) {
+      if (!m_bNotifyFlag) {
+        m_bNotifyFlag = TRUE;
+        CPDF_Rect rcRefresh = GetPlateRect();
+        m_pNotify->IOnInvalidateRect(&rcRefresh);
+        m_bNotifyFlag = FALSE;
+      }
+    } else {
+      if (!m_bNotifyFlag) {
+        m_bNotifyFlag = TRUE;
+        CPDF_Rect rcRefresh = GetItemRect(nItemIndex);
+        rcRefresh.left -= 1.0f;
+        rcRefresh.right += 1.0f;
+        rcRefresh.bottom -= 1.0f;
+        rcRefresh.top += 1.0f;
+
+        m_pNotify->IOnInvalidateRect(&rcRefresh);
+        m_bNotifyFlag = FALSE;
+      }
+    }
+  }
+}
+
+void CFX_ListCtrl::SelectItems() {
+  for (int32_t i = 0, sz = m_aSelItems.GetCount(); i < sz; i++) {
+    int32_t nItemIndex = m_aSelItems.GetItemIndex(i);
+    int32_t nState = m_aSelItems.GetState(i);
+
+    switch (nState) {
+      case 1:
+        SetMultipleSelect(nItemIndex, TRUE);
+        break;
+      case -1:
+        SetMultipleSelect(nItemIndex, FALSE);
+        break;
+    }
+  }
+
+  m_aSelItems.Done();
+}
+
+void CFX_ListCtrl::Select(int32_t nItemIndex) {
+  if (!IsValid(nItemIndex))
+    return;
+
+  if (IsMultipleSel()) {
+    m_aSelItems.Add(nItemIndex);
+    SelectItems();
+  } else
+    SetSingleSelect(nItemIndex);
 }
 
-CFX_WideString CFX_ListCtrl::GetText() const
-{
-    if (IsMultipleSel())
-        return GetItemText(m_nCaretIndex);
-    return GetItemText(m_nSelItem);
+FX_BOOL CFX_ListCtrl::IsItemVisible(int32_t nItemIndex) const {
+  CPDF_Rect rcPlate = GetPlateRect();
+  CPDF_Rect rcItem = GetItemRect(nItemIndex);
+
+  return rcItem.bottom >= rcPlate.bottom && rcItem.top <= rcPlate.top;
 }
 
+void CFX_ListCtrl::ScrollToListItem(int32_t nItemIndex) {
+  if (!IsValid(nItemIndex))
+    return;
+
+  CPDF_Rect rcPlate = GetPlateRect();
+  CPDF_Rect rcItem = CFX_List::GetItemRect(nItemIndex);
+  CPDF_Rect rcItemCtrl = GetItemRect(nItemIndex);
+
+  if (FX_EDIT_IsFloatSmaller(rcItemCtrl.bottom, rcPlate.bottom)) {
+    if (FX_EDIT_IsFloatSmaller(rcItemCtrl.top, rcPlate.top)) {
+      SetScrollPosY(rcItem.bottom + rcPlate.Height());
+    }
+  } else if (FX_EDIT_IsFloatBigger(rcItemCtrl.top, rcPlate.top)) {
+    if (FX_EDIT_IsFloatBigger(rcItemCtrl.bottom, rcPlate.bottom)) {
+      SetScrollPosY(rcItem.top);
+    }
+  }
+}
+
+void CFX_ListCtrl::SetScrollInfo() {
+  if (m_pNotify) {
+    CPDF_Rect rcPlate = GetPlateRect();
+    CPDF_Rect rcContent = CFX_List::GetContentRect();
+
+    if (!m_bNotifyFlag) {
+      m_bNotifyFlag = TRUE;
+      m_pNotify->IOnSetScrollInfoY(rcPlate.bottom, rcPlate.top,
+                                   rcContent.bottom, rcContent.top,
+                                   GetFirstHeight(), rcPlate.Height());
+      m_bNotifyFlag = FALSE;
+    }
+  }
+}
+
+void CFX_ListCtrl::SetScrollPos(const CPDF_Point& point) {
+  SetScrollPosY(point.y);
+}
+
+void CFX_ListCtrl::SetScrollPosY(FX_FLOAT fy) {
+  if (!FX_EDIT_IsFloatEqual(m_ptScrollPos.y, fy)) {
+    CPDF_Rect rcPlate = GetPlateRect();
+    CPDF_Rect rcContent = CFX_List::GetContentRect();
+
+    if (rcPlate.Height() > rcContent.Height()) {
+      fy = rcPlate.top;
+    } else {
+      if (FX_EDIT_IsFloatSmaller(fy - rcPlate.Height(), rcContent.bottom)) {
+        fy = rcContent.bottom + rcPlate.Height();
+      } else if (FX_EDIT_IsFloatBigger(fy, rcContent.top)) {
+        fy = rcContent.top;
+      }
+    }
+
+    m_ptScrollPos.y = fy;
+    InvalidateItem(-1);
+
+    if (m_pNotify) {
+      if (!m_bNotifyFlag) {
+        m_bNotifyFlag = TRUE;
+        m_pNotify->IOnSetScrollPosY(fy);
+        m_bNotifyFlag = FALSE;
+      }
+    }
+  }
+}
+
+CPDF_Rect CFX_ListCtrl::GetContentRect() const {
+  return InToOut(CFX_List::GetContentRect());
+}
+
+void CFX_ListCtrl::ReArrange(int32_t nItemIndex) {
+  CFX_List::ReArrange(nItemIndex);
+  SetScrollInfo();
+}
+
+void CFX_ListCtrl::SetTopItem(int32_t nIndex) {
+  if (IsValid(nIndex)) {
+    GetPlateRect();
+    CPDF_Rect rcItem = CFX_List::GetItemRect(nIndex);
+    SetScrollPosY(rcItem.top);
+  }
+}
+
+int32_t CFX_ListCtrl::GetTopItem() const {
+  int32_t nItemIndex = GetItemIndex(GetBTPoint());
+
+  if (!IsItemVisible(nItemIndex) && IsItemVisible(nItemIndex + 1))
+    nItemIndex += 1;
+
+  return nItemIndex;
+}
+
+void CFX_ListCtrl::Empty() {
+  CFX_List::Empty();
+  InvalidateItem(-1);
+}
+
+void CFX_ListCtrl::Cancel() {
+  m_aSelItems.DeselectAll();
+}
+
+int32_t CFX_ListCtrl::GetItemIndex(const CPDF_Point& point) const {
+  return CFX_List::GetItemIndex(OutToIn(point));
+}
+
+CFX_WideString CFX_ListCtrl::GetText() const {
+  if (IsMultipleSel())
+    return GetItemText(m_nCaretIndex);
+  return GetItemText(m_nSelItem);
+}
diff --git a/fpdfsdk/src/fxedit/fxet_module.cpp b/fpdfsdk/src/fxedit/fxet_module.cpp
index d1421641bc..5c0086ae21 100644
--- a/fpdfsdk/src/fxedit/fxet_module.cpp
+++ b/fpdfsdk/src/fxedit/fxet_module.cpp
@@ -10,37 +10,30 @@
 
 /* ---------------------- IFX_Edit ---------------------- */
 
-IFX_Edit* IFX_Edit::NewEdit()
-{
-	if (IPDF_VariableText * pVT = IPDF_VariableText::NewVariableText())
-	{
-		return new CFX_Edit(pVT);
-	}
-
-	return NULL;
+IFX_Edit* IFX_Edit::NewEdit() {
+  if (IPDF_VariableText* pVT = IPDF_VariableText::NewVariableText()) {
+    return new CFX_Edit(pVT);
+  }
+
+  return NULL;
 }
 
-void IFX_Edit::DelEdit(IFX_Edit* pEdit)
-{
-	ASSERT(pEdit != NULL);
+void IFX_Edit::DelEdit(IFX_Edit* pEdit) {
+  ASSERT(pEdit != NULL);
 
-	IPDF_VariableText::DelVariableText(pEdit->GetVariableText());
+  IPDF_VariableText::DelVariableText(pEdit->GetVariableText());
 
-	delete (CFX_Edit*)pEdit;
+  delete (CFX_Edit*)pEdit;
 }
 
-
 /* ---------------------- IFX_List ---------------------- */
 
-IFX_List* IFX_List::NewList()
-{
-	return new CFX_ListCtrl();
+IFX_List* IFX_List::NewList() {
+  return new CFX_ListCtrl();
 }
 
-void IFX_List::DelList(IFX_List* pList)
-{
-	ASSERT(pList != NULL);
+void IFX_List::DelList(IFX_List* pList) {
+  ASSERT(pList != NULL);
 
-	delete (CFX_ListCtrl*)pList;
+  delete (CFX_ListCtrl*)pList;
 }
-
diff --git a/fpdfsdk/src/fxedit/fxet_pageobjs.cpp b/fpdfsdk/src/fxedit/fxet_pageobjs.cpp
index 1c0269b682..1fb669bb57 100644
--- a/fpdfsdk/src/fxedit/fxet_pageobjs.cpp
+++ b/fpdfsdk/src/fxedit/fxet_pageobjs.cpp
@@ -8,634 +8,665 @@
 #include "../../include/fxedit/fx_edit.h"
 #include "../../include/fxedit/fxet_edit.h"
 
-#define FX_EDIT_UNDERLINEHALFWIDTH				0.5f
-#define FX_EDIT_CROSSOUTHALFWIDTH				0.5f
-
-extern CFX_ByteString GetPDFWordString(IFX_Edit_FontMap * pFontMap, int32_t nFontIndex, FX_WORD Word, FX_WORD SubWord);
-
-CPDF_Rect GetUnderLineRect(const CPVT_Word& word)
-{
-	return CPDF_Rect(word.ptWord.x, word.ptWord.y + word.fDescent * 0.5f,
-						word.ptWord.x + word.fWidth, word.ptWord.y + word.fDescent * 0.25f);
+#define FX_EDIT_UNDERLINEHALFWIDTH 0.5f
+#define FX_EDIT_CROSSOUTHALFWIDTH 0.5f
+
+extern CFX_ByteString GetPDFWordString(IFX_Edit_FontMap* pFontMap,
+                                       int32_t nFontIndex,
+                                       FX_WORD Word,
+                                       FX_WORD SubWord);
+
+CPDF_Rect GetUnderLineRect(const CPVT_Word& word) {
+  return CPDF_Rect(word.ptWord.x, word.ptWord.y + word.fDescent * 0.5f,
+                   word.ptWord.x + word.fWidth,
+                   word.ptWord.y + word.fDescent * 0.25f);
 }
 
-CPDF_Rect GetCrossoutRect(const CPVT_Word& word)
-{
-	return CPDF_Rect(word.ptWord.x, word.ptWord.y + (word.fAscent + word.fDescent) * 0.5f + word.fDescent * 0.25f,
-							word.ptWord.x + word.fWidth, word.ptWord.y + (word.fAscent + word.fDescent) * 0.5f);
+CPDF_Rect GetCrossoutRect(const CPVT_Word& word) {
+  return CPDF_Rect(word.ptWord.x,
+                   word.ptWord.y + (word.fAscent + word.fDescent) * 0.5f +
+                       word.fDescent * 0.25f,
+                   word.ptWord.x + word.fWidth,
+                   word.ptWord.y + (word.fAscent + word.fDescent) * 0.5f);
 }
 
-static void DrawTextString(CFX_RenderDevice* pDevice, const CPDF_Point& pt, CPDF_Font* pFont, FX_FLOAT fFontSize, CPDF_Matrix* pUser2Device,
-					  const CFX_ByteString& str, FX_ARGB crTextFill, FX_ARGB crTextStroke, int32_t nHorzScale)
-{
-	FX_FLOAT x = pt.x, y = pt.y;
-	pUser2Device->Transform(x, y);
-
-	if (pFont)
-	{
-		if (nHorzScale != 100)
-		{
-			CPDF_Matrix mt(nHorzScale/100.0f,0,0,1,0,0);
-			mt.Concat(*pUser2Device);
-
-			CPDF_RenderOptions ro;
-			ro.m_Flags = RENDER_CLEARTYPE;
-			ro.m_ColorMode = RENDER_COLOR_NORMAL;
-
-			if (crTextStroke != 0)
-			{
-				CPDF_Point pt1(0,0), pt2(1,0);
-				pUser2Device->Transform(pt1.x, pt1.y);
-				pUser2Device->Transform(pt2.x, pt2.y);
-				CFX_GraphStateData gsd;
-				gsd.m_LineWidth = (FX_FLOAT)FXSYS_fabs((pt2.x + pt2.y) - (pt1.x + pt1.y));
-
-				CPDF_TextRenderer::DrawTextString(pDevice,x, y, pFont, fFontSize, &mt, str, crTextFill, crTextStroke, &gsd, &ro);
-			}
-			else
-				CPDF_TextRenderer::DrawTextString(pDevice,x, y, pFont, fFontSize, &mt, str, crTextFill, 0, NULL, &ro);
-		}
-		else
-		{
-			CPDF_RenderOptions ro;
-			ro.m_Flags = RENDER_CLEARTYPE;
-			ro.m_ColorMode = RENDER_COLOR_NORMAL;
-
-			if (crTextStroke != 0)
-			{
-				CPDF_Point pt1(0,0), pt2(1,0);
-				pUser2Device->Transform(pt1.x, pt1.y);
-				pUser2Device->Transform(pt2.x, pt2.y);
-				CFX_GraphStateData gsd;
-				gsd.m_LineWidth = (FX_FLOAT)FXSYS_fabs((pt2.x + pt2.y) - (pt1.x + pt1.y));
-
-				CPDF_TextRenderer::DrawTextString(pDevice,x, y, pFont, fFontSize, pUser2Device, str, crTextFill, crTextStroke, &gsd, &ro);
-			}
-			else
-				CPDF_TextRenderer::DrawTextString(pDevice,x, y, pFont, fFontSize, pUser2Device, str, crTextFill, 0, NULL, &ro);
-		}
-	}
+static void DrawTextString(CFX_RenderDevice* pDevice,
+                           const CPDF_Point& pt,
+                           CPDF_Font* pFont,
+                           FX_FLOAT fFontSize,
+                           CPDF_Matrix* pUser2Device,
+                           const CFX_ByteString& str,
+                           FX_ARGB crTextFill,
+                           FX_ARGB crTextStroke,
+                           int32_t nHorzScale) {
+  FX_FLOAT x = pt.x, y = pt.y;
+  pUser2Device->Transform(x, y);
+
+  if (pFont) {
+    if (nHorzScale != 100) {
+      CPDF_Matrix mt(nHorzScale / 100.0f, 0, 0, 1, 0, 0);
+      mt.Concat(*pUser2Device);
+
+      CPDF_RenderOptions ro;
+      ro.m_Flags = RENDER_CLEARTYPE;
+      ro.m_ColorMode = RENDER_COLOR_NORMAL;
+
+      if (crTextStroke != 0) {
+        CPDF_Point pt1(0, 0), pt2(1, 0);
+        pUser2Device->Transform(pt1.x, pt1.y);
+        pUser2Device->Transform(pt2.x, pt2.y);
+        CFX_GraphStateData gsd;
+        gsd.m_LineWidth =
+            (FX_FLOAT)FXSYS_fabs((pt2.x + pt2.y) - (pt1.x + pt1.y));
+
+        CPDF_TextRenderer::DrawTextString(pDevice, x, y, pFont, fFontSize, &mt,
+                                          str, crTextFill, crTextStroke, &gsd,
+                                          &ro);
+      } else
+        CPDF_TextRenderer::DrawTextString(pDevice, x, y, pFont, fFontSize, &mt,
+                                          str, crTextFill, 0, NULL, &ro);
+    } else {
+      CPDF_RenderOptions ro;
+      ro.m_Flags = RENDER_CLEARTYPE;
+      ro.m_ColorMode = RENDER_COLOR_NORMAL;
+
+      if (crTextStroke != 0) {
+        CPDF_Point pt1(0, 0), pt2(1, 0);
+        pUser2Device->Transform(pt1.x, pt1.y);
+        pUser2Device->Transform(pt2.x, pt2.y);
+        CFX_GraphStateData gsd;
+        gsd.m_LineWidth =
+            (FX_FLOAT)FXSYS_fabs((pt2.x + pt2.y) - (pt1.x + pt1.y));
+
+        CPDF_TextRenderer::DrawTextString(pDevice, x, y, pFont, fFontSize,
+                                          pUser2Device, str, crTextFill,
+                                          crTextStroke, &gsd, &ro);
+      } else
+        CPDF_TextRenderer::DrawTextString(pDevice, x, y, pFont, fFontSize,
+                                          pUser2Device, str, crTextFill, 0,
+                                          NULL, &ro);
+    }
+  }
 }
 
-void IFX_Edit::DrawUnderline(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pEdit, FX_COLORREF color,
-								const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, const CPVT_WordRange* pRange)
-{
-	pDevice->SaveState();
-
-	if (!rcClip.IsEmpty())
-	{
-		CPDF_Rect rcTemp = rcClip;
-		pUser2Device->TransformRect(rcTemp);
-		FX_RECT rcDevClip;
-		rcDevClip.left = (int32_t)rcTemp.left;
-		rcDevClip.right = (int32_t)rcTemp.right;
-		rcDevClip.top = (int32_t)rcTemp.top;
-		rcDevClip.bottom = (int32_t)rcTemp.bottom;
-		pDevice->SetClip_Rect(&rcDevClip);
-	}
-
-	if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator())
-	{
-		if (pEdit->GetFontMap())
-		{
-			if (pRange)
-				pIterator->SetAt(pRange->BeginPos);
-			else
-				pIterator->SetAt(0);
-
-			while (pIterator->NextWord())
-			{
-				CPVT_WordPlace place = pIterator->GetAt();
-				if (pRange && place.WordCmp(pRange->EndPos) > 0) break;
-
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					CFX_PathData pathUnderline;
-					CPDF_Rect rcUnderline = GetUnderLineRect(word);
-					rcUnderline.left += ptOffset.x;
-					rcUnderline.right += ptOffset.x;
-					rcUnderline.top += ptOffset.y;
-					rcUnderline.bottom += ptOffset.y;
-					pathUnderline.AppendRect(rcUnderline.left, rcUnderline.bottom, rcUnderline.right, rcUnderline.top);
-
-					pDevice->DrawPath(&pathUnderline, pUser2Device, NULL, color, 0, FXFILL_WINDING);
-				}
-			}
-		}
-	}
-
-	pDevice->RestoreState();
+void IFX_Edit::DrawUnderline(CFX_RenderDevice* pDevice,
+                             CPDF_Matrix* pUser2Device,
+                             IFX_Edit* pEdit,
+                             FX_COLORREF color,
+                             const CPDF_Rect& rcClip,
+                             const CPDF_Point& ptOffset,
+                             const CPVT_WordRange* pRange) {
+  pDevice->SaveState();
+
+  if (!rcClip.IsEmpty()) {
+    CPDF_Rect rcTemp = rcClip;
+    pUser2Device->TransformRect(rcTemp);
+    FX_RECT rcDevClip;
+    rcDevClip.left = (int32_t)rcTemp.left;
+    rcDevClip.right = (int32_t)rcTemp.right;
+    rcDevClip.top = (int32_t)rcTemp.top;
+    rcDevClip.bottom = (int32_t)rcTemp.bottom;
+    pDevice->SetClip_Rect(&rcDevClip);
+  }
+
+  if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) {
+    if (pEdit->GetFontMap()) {
+      if (pRange)
+        pIterator->SetAt(pRange->BeginPos);
+      else
+        pIterator->SetAt(0);
+
+      while (pIterator->NextWord()) {
+        CPVT_WordPlace place = pIterator->GetAt();
+        if (pRange && place.WordCmp(pRange->EndPos) > 0)
+          break;
+
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          CFX_PathData pathUnderline;
+          CPDF_Rect rcUnderline = GetUnderLineRect(word);
+          rcUnderline.left += ptOffset.x;
+          rcUnderline.right += ptOffset.x;
+          rcUnderline.top += ptOffset.y;
+          rcUnderline.bottom += ptOffset.y;
+          pathUnderline.AppendRect(rcUnderline.left, rcUnderline.bottom,
+                                   rcUnderline.right, rcUnderline.top);
+
+          pDevice->DrawPath(&pathUnderline, pUser2Device, NULL, color, 0,
+                            FXFILL_WINDING);
+        }
+      }
+    }
+  }
+
+  pDevice->RestoreState();
 }
 
-void IFX_Edit::DrawEdit(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pEdit, FX_COLORREF crTextFill, FX_COLORREF crTextStroke,
-						const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, const CPVT_WordRange* pRange, IFX_SystemHandler* pSystemHandler, void* pFFLData)
-{
-
-	FX_BOOL bContinuous = pEdit->GetCharArray() == 0;
-	if (pEdit->GetCharSpace() > 0.0f)
-		bContinuous = FALSE;
-
-	FX_WORD SubWord = pEdit->GetPasswordChar();
-	FX_FLOAT fFontSize = pEdit->GetFontSize();
-	CPVT_WordRange wrSelect = pEdit->GetSelectWordRange();
-	int32_t nHorzScale = pEdit->GetHorzScale();
-
-	FX_COLORREF crCurFill = crTextFill;
-	FX_COLORREF crOldFill = crCurFill;
-
-	FX_BOOL bSelect = FALSE;
-	const FX_COLORREF crWhite = ArgbEncode(255,255,255,255);
-	const FX_COLORREF crSelBK = ArgbEncode(255,0,51,113);
-
-	CFX_ByteTextBuf sTextBuf;
-	int32_t nFontIndex = -1;
-	CPDF_Point ptBT(0.0f,0.0f);
-
-	pDevice->SaveState();
-
-	if (!rcClip.IsEmpty())
-	{
-		CPDF_Rect rcTemp = rcClip;
-		pUser2Device->TransformRect(rcTemp);
-		FX_RECT rcDevClip;
-		rcDevClip.left = (int32_t)rcTemp.left;
-		rcDevClip.right = (int32_t)rcTemp.right;
-		rcDevClip.top = (int32_t)rcTemp.top;
-		rcDevClip.bottom = (int32_t)rcTemp.bottom;
-		pDevice->SetClip_Rect(&rcDevClip);
-	}
-
-	if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator())
-	{
-		if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap())
-		{
-			if (pRange)
-				pIterator->SetAt(pRange->BeginPos);
-			else
-				pIterator->SetAt(0);
-
-			CPVT_WordPlace oldplace;
-
-			while (pIterator->NextWord())
-			{
-				CPVT_WordPlace place = pIterator->GetAt();
-				if (pRange && place.WordCmp(pRange->EndPos) > 0) break;
-
-				if (wrSelect.IsExist())
-				{
-					bSelect = place.WordCmp(wrSelect.BeginPos) > 0 && place.WordCmp(wrSelect.EndPos) <= 0;
-					if (bSelect)
-					{
-						crCurFill = crWhite;
-					}
-					else
-					{
-						crCurFill = crTextFill;
-					}
-				}
-				if(pSystemHandler && pSystemHandler->IsSelectionImplemented())
-				{
-					crCurFill = crTextFill;
- 					crOldFill = crCurFill;
-				}
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-
-					if (bSelect)
-					{
-
-						CPVT_Line line;
-						pIterator->GetLine(line);
-
-						if(pSystemHandler && pSystemHandler->IsSelectionImplemented())
-						{
-							CPDF_Rect rc(word.ptWord.x,line.ptLine.y + line.fLineDescent,
-								word.ptWord.x+word.fWidth,line.ptLine.y + line.fLineAscent);
-							rc.Intersect(rcClip);
-							//CFX_Edit* pEt = (CFX_Edit*)pEdit;
-							//CPDF_Rect rcEdit = pEt->VTToEdit(rc);
-							pSystemHandler->OutputSelectedRect(pFFLData,rc);
-						}
-						else
-						{
- 							CFX_PathData pathSelBK;
- 							pathSelBK.AppendRect(word.ptWord.x,line.ptLine.y + line.fLineDescent,
- 								word.ptWord.x+word.fWidth,line.ptLine.y + line.fLineAscent);
-
- 							pDevice->DrawPath(&pathSelBK, pUser2Device, NULL, crSelBK, 0, FXFILL_WINDING);
-						}
-					}
-
-					if (bContinuous)
-					{
-						if (place.LineCmp(oldplace) != 0 || word.nFontIndex != nFontIndex ||
-							crOldFill != crCurFill)
-						{
-							if (sTextBuf.GetLength() > 0)
-							{
-								DrawTextString(pDevice, CPDF_Point(ptBT.x+ptOffset.x, ptBT.y+ptOffset.y), pFontMap->GetPDFFont(nFontIndex),
-									fFontSize, pUser2Device, sTextBuf.GetByteString(), crOldFill, crTextStroke, nHorzScale);
-
-								sTextBuf.Clear();
-							}
-							nFontIndex = word.nFontIndex;
-							ptBT = word.ptWord;
-							crOldFill = crCurFill;
-						}
-
-						sTextBuf << GetPDFWordString(pFontMap, word.nFontIndex, word.Word, SubWord);
-					}
-					else
-					{
-						DrawTextString(pDevice,CPDF_Point(word.ptWord.x+ptOffset.x, word.ptWord.y+ptOffset.y), pFontMap->GetPDFFont(word.nFontIndex),
-							fFontSize, pUser2Device, GetPDFWordString(pFontMap, word.nFontIndex, word.Word, SubWord), crCurFill, crTextStroke, nHorzScale);
-
-					}
-					oldplace = place;
-
-
-				}
-			}
-
-			if (sTextBuf.GetLength() > 0)
-			{
-				DrawTextString(pDevice, CPDF_Point(ptBT.x+ptOffset.x, ptBT.y+ptOffset.y), pFontMap->GetPDFFont(nFontIndex),
-					fFontSize, pUser2Device, sTextBuf.GetByteString(), crOldFill, crTextStroke, nHorzScale);
-			}
-		}
-	}
-
-	pDevice->RestoreState();
+void IFX_Edit::DrawEdit(CFX_RenderDevice* pDevice,
+                        CPDF_Matrix* pUser2Device,
+                        IFX_Edit* pEdit,
+                        FX_COLORREF crTextFill,
+                        FX_COLORREF crTextStroke,
+                        const CPDF_Rect& rcClip,
+                        const CPDF_Point& ptOffset,
+                        const CPVT_WordRange* pRange,
+                        IFX_SystemHandler* pSystemHandler,
+                        void* pFFLData) {
+  FX_BOOL bContinuous = pEdit->GetCharArray() == 0;
+  if (pEdit->GetCharSpace() > 0.0f)
+    bContinuous = FALSE;
+
+  FX_WORD SubWord = pEdit->GetPasswordChar();
+  FX_FLOAT fFontSize = pEdit->GetFontSize();
+  CPVT_WordRange wrSelect = pEdit->GetSelectWordRange();
+  int32_t nHorzScale = pEdit->GetHorzScale();
+
+  FX_COLORREF crCurFill = crTextFill;
+  FX_COLORREF crOldFill = crCurFill;
+
+  FX_BOOL bSelect = FALSE;
+  const FX_COLORREF crWhite = ArgbEncode(255, 255, 255, 255);
+  const FX_COLORREF crSelBK = ArgbEncode(255, 0, 51, 113);
+
+  CFX_ByteTextBuf sTextBuf;
+  int32_t nFontIndex = -1;
+  CPDF_Point ptBT(0.0f, 0.0f);
+
+  pDevice->SaveState();
+
+  if (!rcClip.IsEmpty()) {
+    CPDF_Rect rcTemp = rcClip;
+    pUser2Device->TransformRect(rcTemp);
+    FX_RECT rcDevClip;
+    rcDevClip.left = (int32_t)rcTemp.left;
+    rcDevClip.right = (int32_t)rcTemp.right;
+    rcDevClip.top = (int32_t)rcTemp.top;
+    rcDevClip.bottom = (int32_t)rcTemp.bottom;
+    pDevice->SetClip_Rect(&rcDevClip);
+  }
+
+  if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) {
+    if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap()) {
+      if (pRange)
+        pIterator->SetAt(pRange->BeginPos);
+      else
+        pIterator->SetAt(0);
+
+      CPVT_WordPlace oldplace;
+
+      while (pIterator->NextWord()) {
+        CPVT_WordPlace place = pIterator->GetAt();
+        if (pRange && place.WordCmp(pRange->EndPos) > 0)
+          break;
+
+        if (wrSelect.IsExist()) {
+          bSelect = place.WordCmp(wrSelect.BeginPos) > 0 &&
+                    place.WordCmp(wrSelect.EndPos) <= 0;
+          if (bSelect) {
+            crCurFill = crWhite;
+          } else {
+            crCurFill = crTextFill;
+          }
+        }
+        if (pSystemHandler && pSystemHandler->IsSelectionImplemented()) {
+          crCurFill = crTextFill;
+          crOldFill = crCurFill;
+        }
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          if (bSelect) {
+            CPVT_Line line;
+            pIterator->GetLine(line);
+
+            if (pSystemHandler && pSystemHandler->IsSelectionImplemented()) {
+              CPDF_Rect rc(word.ptWord.x, line.ptLine.y + line.fLineDescent,
+                           word.ptWord.x + word.fWidth,
+                           line.ptLine.y + line.fLineAscent);
+              rc.Intersect(rcClip);
+              // CFX_Edit* pEt = (CFX_Edit*)pEdit;
+              // CPDF_Rect rcEdit = pEt->VTToEdit(rc);
+              pSystemHandler->OutputSelectedRect(pFFLData, rc);
+            } else {
+              CFX_PathData pathSelBK;
+              pathSelBK.AppendRect(word.ptWord.x,
+                                   line.ptLine.y + line.fLineDescent,
+                                   word.ptWord.x + word.fWidth,
+                                   line.ptLine.y + line.fLineAscent);
+
+              pDevice->DrawPath(&pathSelBK, pUser2Device, NULL, crSelBK, 0,
+                                FXFILL_WINDING);
+            }
+          }
+
+          if (bContinuous) {
+            if (place.LineCmp(oldplace) != 0 || word.nFontIndex != nFontIndex ||
+                crOldFill != crCurFill) {
+              if (sTextBuf.GetLength() > 0) {
+                DrawTextString(pDevice, CPDF_Point(ptBT.x + ptOffset.x,
+                                                   ptBT.y + ptOffset.y),
+                               pFontMap->GetPDFFont(nFontIndex), fFontSize,
+                               pUser2Device, sTextBuf.GetByteString(),
+                               crOldFill, crTextStroke, nHorzScale);
+
+                sTextBuf.Clear();
+              }
+              nFontIndex = word.nFontIndex;
+              ptBT = word.ptWord;
+              crOldFill = crCurFill;
+            }
+
+            sTextBuf << GetPDFWordString(pFontMap, word.nFontIndex, word.Word,
+                                         SubWord);
+          } else {
+            DrawTextString(
+                pDevice, CPDF_Point(word.ptWord.x + ptOffset.x,
+                                    word.ptWord.y + ptOffset.y),
+                pFontMap->GetPDFFont(word.nFontIndex), fFontSize, pUser2Device,
+                GetPDFWordString(pFontMap, word.nFontIndex, word.Word, SubWord),
+                crCurFill, crTextStroke, nHorzScale);
+          }
+          oldplace = place;
+        }
+      }
+
+      if (sTextBuf.GetLength() > 0) {
+        DrawTextString(
+            pDevice, CPDF_Point(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
+            pFontMap->GetPDFFont(nFontIndex), fFontSize, pUser2Device,
+            sTextBuf.GetByteString(), crOldFill, crTextStroke, nHorzScale);
+      }
+    }
+  }
+
+  pDevice->RestoreState();
 }
 
-void IFX_Edit::DrawRichEdit(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edit* pEdit,
-						const CPDF_Rect& rcClip, const CPDF_Point& ptOffset, const CPVT_WordRange* pRange)
-{
-	//FX_FLOAT fFontSize = pEdit->GetFontSize();
-	CPVT_WordRange wrSelect = pEdit->GetSelectWordRange();
-
-	FX_COLORREF crCurText = ArgbEncode(255, 0,0,0);
-	FX_COLORREF crOld = crCurText;
-	FX_BOOL bSelect = FALSE;
-	const FX_COLORREF crWhite = ArgbEncode(255,255,255,255);
-	const FX_COLORREF crSelBK = ArgbEncode(255,0,51,113);
-
-	CFX_ByteTextBuf sTextBuf;
-	CPVT_WordProps wp;
-	CPDF_Point ptBT(0.0f,0.0f);
-
-	pDevice->SaveState();
-
-	if (!rcClip.IsEmpty())
-	{
-		CPDF_Rect rcTemp = rcClip;
-		pUser2Device->TransformRect(rcTemp);
-		FX_RECT rcDevClip;
-		rcDevClip.left = (int32_t)rcTemp.left;
-		rcDevClip.right = (int32_t)rcTemp.right;
-		rcDevClip.top = (int32_t)rcTemp.top;
-		rcDevClip.bottom = (int32_t)rcTemp.bottom;
-		pDevice->SetClip_Rect(&rcDevClip);
-	}
-
-	if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator())
-	{
-		if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap())
-		{
-			if (pRange)
-				pIterator->SetAt(pRange->BeginPos);
-			else
-				pIterator->SetAt(0);
-
-			CPVT_WordPlace oldplace;
-
-			while (pIterator->NextWord())
-			{
-				CPVT_WordPlace place = pIterator->GetAt();
-				if (pRange && place.WordCmp(pRange->EndPos) > 0) break;
-
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					word.WordProps.fFontSize = word.fFontSize;
-
-					crCurText = ArgbEncode(255,word.WordProps.dwWordColor);
-
-					if (wrSelect.IsExist())
-					{
-						bSelect = place.WordCmp(wrSelect.BeginPos) > 0 && place.WordCmp(wrSelect.EndPos) <= 0;
-						if (bSelect)
-						{
-							crCurText = crWhite;
-						}
-					}
-
-					if (bSelect)
-					{
-						CPVT_Line line;
-						pIterator->GetLine(line);
-
-						CFX_PathData pathSelBK;
-						pathSelBK.AppendRect(word.ptWord.x		+ ptOffset.x,
-							line.ptLine.y + line.fLineDescent	+ ptOffset.y,
-							word.ptWord.x+word.fWidth			+ ptOffset.x,
-							line.ptLine.y + line.fLineAscent	+ ptOffset.y);
-
-						pDevice->DrawPath(&pathSelBK, pUser2Device, NULL, crSelBK, 0, FXFILL_WINDING);
-					}
-
-					if (place.LineCmp(oldplace) != 0 || word.WordProps.fCharSpace > 0.0f || word.WordProps.nHorzScale != 100 ||
-						FXSYS_memcmp(&word.WordProps, &wp, sizeof(CPVT_WordProps)) != 0 ||
-						crOld != crCurText)
-					{
-						if (sTextBuf.GetLength() > 0)
-						{
-							DrawTextString(pDevice, CPDF_Point(ptBT.x+ptOffset.x, ptBT.y+ptOffset.y), pFontMap->GetPDFFont(wp.nFontIndex),
-								wp.fFontSize, pUser2Device, sTextBuf.GetByteString(), crOld, 0, wp.nHorzScale);
-
-							sTextBuf.Clear();
-						}
-						wp = word.WordProps;
-						ptBT = word.ptWord;
-						crOld = crCurText;
-					}
-
-					sTextBuf << GetPDFWordString(pFontMap, word.WordProps.nFontIndex, word.Word, 0);
-
-					if (word.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE)
-					{
-						CFX_PathData pathUnderline;
-						CPDF_Rect rcUnderline = GetUnderLineRect(word);
-						pathUnderline.AppendRect(rcUnderline.left, rcUnderline.bottom, rcUnderline.right, rcUnderline.top);
-
-						pDevice->DrawPath(&pathUnderline, pUser2Device, NULL, crCurText, 0, FXFILL_WINDING);
-					}
-
-					if (word.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT)
-					{
-						CFX_PathData pathCrossout;
-						CPDF_Rect rcCrossout = GetCrossoutRect(word);
-						pathCrossout.AppendRect(rcCrossout.left, rcCrossout.bottom, rcCrossout.right, rcCrossout.top);
-
-						pDevice->DrawPath(&pathCrossout, pUser2Device, NULL, crCurText, 0, FXFILL_WINDING);
-					}
-
-					oldplace = place;
-				}
-			}
-
-			if (sTextBuf.GetLength() > 0)
-			{
-				DrawTextString(pDevice, CPDF_Point(ptBT.x+ptOffset.x, ptBT.y+ptOffset.y), pFontMap->GetPDFFont(wp.nFontIndex),
-					wp.fFontSize, pUser2Device, sTextBuf.GetByteString(), crOld, 0, wp.nHorzScale);
-			}
-		}
-	}
-
-	pDevice->RestoreState();
+void IFX_Edit::DrawRichEdit(CFX_RenderDevice* pDevice,
+                            CPDF_Matrix* pUser2Device,
+                            IFX_Edit* pEdit,
+                            const CPDF_Rect& rcClip,
+                            const CPDF_Point& ptOffset,
+                            const CPVT_WordRange* pRange) {
+  // FX_FLOAT fFontSize = pEdit->GetFontSize();
+  CPVT_WordRange wrSelect = pEdit->GetSelectWordRange();
+
+  FX_COLORREF crCurText = ArgbEncode(255, 0, 0, 0);
+  FX_COLORREF crOld = crCurText;
+  FX_BOOL bSelect = FALSE;
+  const FX_COLORREF crWhite = ArgbEncode(255, 255, 255, 255);
+  const FX_COLORREF crSelBK = ArgbEncode(255, 0, 51, 113);
+
+  CFX_ByteTextBuf sTextBuf;
+  CPVT_WordProps wp;
+  CPDF_Point ptBT(0.0f, 0.0f);
+
+  pDevice->SaveState();
+
+  if (!rcClip.IsEmpty()) {
+    CPDF_Rect rcTemp = rcClip;
+    pUser2Device->TransformRect(rcTemp);
+    FX_RECT rcDevClip;
+    rcDevClip.left = (int32_t)rcTemp.left;
+    rcDevClip.right = (int32_t)rcTemp.right;
+    rcDevClip.top = (int32_t)rcTemp.top;
+    rcDevClip.bottom = (int32_t)rcTemp.bottom;
+    pDevice->SetClip_Rect(&rcDevClip);
+  }
+
+  if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) {
+    if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap()) {
+      if (pRange)
+        pIterator->SetAt(pRange->BeginPos);
+      else
+        pIterator->SetAt(0);
+
+      CPVT_WordPlace oldplace;
+
+      while (pIterator->NextWord()) {
+        CPVT_WordPlace place = pIterator->GetAt();
+        if (pRange && place.WordCmp(pRange->EndPos) > 0)
+          break;
+
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          word.WordProps.fFontSize = word.fFontSize;
+
+          crCurText = ArgbEncode(255, word.WordProps.dwWordColor);
+
+          if (wrSelect.IsExist()) {
+            bSelect = place.WordCmp(wrSelect.BeginPos) > 0 &&
+                      place.WordCmp(wrSelect.EndPos) <= 0;
+            if (bSelect) {
+              crCurText = crWhite;
+            }
+          }
+
+          if (bSelect) {
+            CPVT_Line line;
+            pIterator->GetLine(line);
+
+            CFX_PathData pathSelBK;
+            pathSelBK.AppendRect(word.ptWord.x + ptOffset.x,
+                                 line.ptLine.y + line.fLineDescent + ptOffset.y,
+                                 word.ptWord.x + word.fWidth + ptOffset.x,
+                                 line.ptLine.y + line.fLineAscent + ptOffset.y);
+
+            pDevice->DrawPath(&pathSelBK, pUser2Device, NULL, crSelBK, 0,
+                              FXFILL_WINDING);
+          }
+
+          if (place.LineCmp(oldplace) != 0 ||
+              word.WordProps.fCharSpace > 0.0f ||
+              word.WordProps.nHorzScale != 100 ||
+              FXSYS_memcmp(&word.WordProps, &wp, sizeof(CPVT_WordProps)) != 0 ||
+              crOld != crCurText) {
+            if (sTextBuf.GetLength() > 0) {
+              DrawTextString(
+                  pDevice, CPDF_Point(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
+                  pFontMap->GetPDFFont(wp.nFontIndex), wp.fFontSize,
+                  pUser2Device, sTextBuf.GetByteString(), crOld, 0,
+                  wp.nHorzScale);
+
+              sTextBuf.Clear();
+            }
+            wp = word.WordProps;
+            ptBT = word.ptWord;
+            crOld = crCurText;
+          }
+
+          sTextBuf << GetPDFWordString(pFontMap, word.WordProps.nFontIndex,
+                                       word.Word, 0);
+
+          if (word.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE) {
+            CFX_PathData pathUnderline;
+            CPDF_Rect rcUnderline = GetUnderLineRect(word);
+            pathUnderline.AppendRect(rcUnderline.left, rcUnderline.bottom,
+                                     rcUnderline.right, rcUnderline.top);
+
+            pDevice->DrawPath(&pathUnderline, pUser2Device, NULL, crCurText, 0,
+                              FXFILL_WINDING);
+          }
+
+          if (word.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) {
+            CFX_PathData pathCrossout;
+            CPDF_Rect rcCrossout = GetCrossoutRect(word);
+            pathCrossout.AppendRect(rcCrossout.left, rcCrossout.bottom,
+                                    rcCrossout.right, rcCrossout.top);
+
+            pDevice->DrawPath(&pathCrossout, pUser2Device, NULL, crCurText, 0,
+                              FXFILL_WINDING);
+          }
+
+          oldplace = place;
+        }
+      }
+
+      if (sTextBuf.GetLength() > 0) {
+        DrawTextString(
+            pDevice, CPDF_Point(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
+            pFontMap->GetPDFFont(wp.nFontIndex), wp.fFontSize, pUser2Device,
+            sTextBuf.GetByteString(), crOld, 0, wp.nHorzScale);
+      }
+    }
+  }
+
+  pDevice->RestoreState();
 }
 
-static void AddRectToPageObjects(CPDF_PageObjects* pPageObjs, FX_COLORREF crFill, const CPDF_Rect& rcFill)
-{
-	CPDF_PathObject* pPathObj = new CPDF_PathObject;
-	CPDF_PathData* pPathData = pPathObj->m_Path.GetModify();
-	pPathData->AppendRect(rcFill.left,rcFill.bottom,rcFill.right,rcFill.top);
+static void AddRectToPageObjects(CPDF_PageObjects* pPageObjs,
+                                 FX_COLORREF crFill,
+                                 const CPDF_Rect& rcFill) {
+  CPDF_PathObject* pPathObj = new CPDF_PathObject;
+  CPDF_PathData* pPathData = pPathObj->m_Path.GetModify();
+  pPathData->AppendRect(rcFill.left, rcFill.bottom, rcFill.right, rcFill.top);
 
-	FX_FLOAT rgb[3];
-	rgb[0] = FXARGB_R(crFill) / 255.0f ;
-	rgb[1] = FXARGB_G(crFill) / 255.0f;
-	rgb[2] = FXARGB_B(crFill) / 255.0f;
-	pPathObj->m_ColorState.SetFillColor(CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB), rgb, 3);
+  FX_FLOAT rgb[3];
+  rgb[0] = FXARGB_R(crFill) / 255.0f;
+  rgb[1] = FXARGB_G(crFill) / 255.0f;
+  rgb[2] = FXARGB_B(crFill) / 255.0f;
+  pPathObj->m_ColorState.SetFillColor(
+      CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB), rgb, 3);
 
-	pPathObj->m_FillType = FXFILL_ALTERNATE;
-	pPathObj->m_bStroke = FALSE;
+  pPathObj->m_FillType = FXFILL_ALTERNATE;
+  pPathObj->m_bStroke = FALSE;
 
-	pPageObjs->InsertObject(pPageObjs->GetLastObjectPosition(),pPathObj);
+  pPageObjs->InsertObject(pPageObjs->GetLastObjectPosition(), pPathObj);
 }
 
-static CPDF_TextObject* AddTextObjToPageObjects(CPDF_PageObjects* pPageObjs, FX_COLORREF crText,
-							 CPDF_Font* pFont, FX_FLOAT fFontSize, FX_FLOAT fCharSpace, int32_t nHorzScale,
-							 const CPDF_Point& point, const CFX_ByteString& text)
-{
-	CPDF_TextObject* pTxtObj = new CPDF_TextObject;
-
-	CPDF_TextStateData* pTextStateData = pTxtObj->m_TextState.GetModify();
-	pTextStateData->m_pFont = pFont;
-	pTextStateData->m_FontSize = fFontSize;
-	pTextStateData->m_CharSpace = fCharSpace;
-	pTextStateData->m_WordSpace = 0;
-	pTextStateData->m_TextMode  = 0;
-	pTextStateData->m_Matrix[0] = nHorzScale / 100.0f;
-	pTextStateData->m_Matrix[1] = 0;
-	pTextStateData->m_Matrix[2] = 0;
-	pTextStateData->m_Matrix[3] = 1;
-
-	FX_FLOAT rgb[3];
-	rgb[0] = FXARGB_R(crText) / 255.0f ;
-	rgb[1] = FXARGB_G(crText) / 255.0f;
-	rgb[2] = FXARGB_B(crText) / 255.0f;
-	pTxtObj->m_ColorState.SetFillColor(CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB),rgb, 3);
-	pTxtObj->m_ColorState.SetStrokeColor(CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB),rgb, 3);
-
-	pTxtObj->SetPosition(point.x,point.y);
-	pTxtObj->SetText(text);
-
-	pPageObjs->InsertObject(pPageObjs->GetLastObjectPosition(),pTxtObj);
-
-	return pTxtObj;
+static CPDF_TextObject* AddTextObjToPageObjects(CPDF_PageObjects* pPageObjs,
+                                                FX_COLORREF crText,
+                                                CPDF_Font* pFont,
+                                                FX_FLOAT fFontSize,
+                                                FX_FLOAT fCharSpace,
+                                                int32_t nHorzScale,
+                                                const CPDF_Point& point,
+                                                const CFX_ByteString& text) {
+  CPDF_TextObject* pTxtObj = new CPDF_TextObject;
+
+  CPDF_TextStateData* pTextStateData = pTxtObj->m_TextState.GetModify();
+  pTextStateData->m_pFont = pFont;
+  pTextStateData->m_FontSize = fFontSize;
+  pTextStateData->m_CharSpace = fCharSpace;
+  pTextStateData->m_WordSpace = 0;
+  pTextStateData->m_TextMode = 0;
+  pTextStateData->m_Matrix[0] = nHorzScale / 100.0f;
+  pTextStateData->m_Matrix[1] = 0;
+  pTextStateData->m_Matrix[2] = 0;
+  pTextStateData->m_Matrix[3] = 1;
+
+  FX_FLOAT rgb[3];
+  rgb[0] = FXARGB_R(crText) / 255.0f;
+  rgb[1] = FXARGB_G(crText) / 255.0f;
+  rgb[2] = FXARGB_B(crText) / 255.0f;
+  pTxtObj->m_ColorState.SetFillColor(
+      CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB), rgb, 3);
+  pTxtObj->m_ColorState.SetStrokeColor(
+      CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB), rgb, 3);
+
+  pTxtObj->SetPosition(point.x, point.y);
+  pTxtObj->SetText(text);
+
+  pPageObjs->InsertObject(pPageObjs->GetLastObjectPosition(), pTxtObj);
+
+  return pTxtObj;
 }
 
-void IFX_Edit::GeneratePageObjects(CPDF_PageObjects* pPageObjects, IFX_Edit* pEdit,
-								   const CPDF_Point& ptOffset, const CPVT_WordRange* pRange, FX_COLORREF crText, CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray)
-{
-	FX_FLOAT fFontSize = pEdit->GetFontSize();
-
-	int32_t nOldFontIndex = -1;
-
-	CFX_ByteTextBuf sTextBuf;
-	CPDF_Point ptBT(0.0f,0.0f);
-
-	ObjArray.RemoveAll();
-
-	if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator())
-	{
-		if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap())
-		{
-			if (pRange)
-				pIterator->SetAt(pRange->BeginPos);
-			else
-				pIterator->SetAt(0);
-
-			CPVT_WordPlace oldplace;
-
-			while (pIterator->NextWord())
-			{
-				CPVT_WordPlace place = pIterator->GetAt();
-				if (pRange && place.WordCmp(pRange->EndPos) > 0) break;
-
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					if (place.LineCmp(oldplace) != 0 || nOldFontIndex != word.nFontIndex)
-					{
-						if (sTextBuf.GetLength() > 0)
-						{
-							ObjArray.Add(AddTextObjToPageObjects(pPageObjects, crText, pFontMap->GetPDFFont(nOldFontIndex), fFontSize, 0.0f, 100,
-								CPDF_Point(ptBT.x+ptOffset.x, ptBT.y+ptOffset.y), sTextBuf.GetByteString()));
-
-							sTextBuf.Clear();
-						}
-
-						ptBT = word.ptWord;
-						nOldFontIndex = word.nFontIndex;
-					}
-
-					sTextBuf << GetPDFWordString(pFontMap, word.nFontIndex, word.Word, 0);
-					oldplace = place;
-				}
-			}
-
-			if (sTextBuf.GetLength() > 0)
-			{
-				ObjArray.Add(AddTextObjToPageObjects(pPageObjects, crText, pFontMap->GetPDFFont(nOldFontIndex), fFontSize, 0.0f, 100,
-					CPDF_Point(ptBT.x+ptOffset.x, ptBT.y+ptOffset.y), sTextBuf.GetByteString()));
-			}
-		}
-	}
+void IFX_Edit::GeneratePageObjects(
+    CPDF_PageObjects* pPageObjects,
+    IFX_Edit* pEdit,
+    const CPDF_Point& ptOffset,
+    const CPVT_WordRange* pRange,
+    FX_COLORREF crText,
+    CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray) {
+  FX_FLOAT fFontSize = pEdit->GetFontSize();
+
+  int32_t nOldFontIndex = -1;
+
+  CFX_ByteTextBuf sTextBuf;
+  CPDF_Point ptBT(0.0f, 0.0f);
+
+  ObjArray.RemoveAll();
+
+  if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) {
+    if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap()) {
+      if (pRange)
+        pIterator->SetAt(pRange->BeginPos);
+      else
+        pIterator->SetAt(0);
+
+      CPVT_WordPlace oldplace;
+
+      while (pIterator->NextWord()) {
+        CPVT_WordPlace place = pIterator->GetAt();
+        if (pRange && place.WordCmp(pRange->EndPos) > 0)
+          break;
+
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          if (place.LineCmp(oldplace) != 0 ||
+              nOldFontIndex != word.nFontIndex) {
+            if (sTextBuf.GetLength() > 0) {
+              ObjArray.Add(AddTextObjToPageObjects(
+                  pPageObjects, crText, pFontMap->GetPDFFont(nOldFontIndex),
+                  fFontSize, 0.0f, 100,
+                  CPDF_Point(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
+                  sTextBuf.GetByteString()));
+
+              sTextBuf.Clear();
+            }
+
+            ptBT = word.ptWord;
+            nOldFontIndex = word.nFontIndex;
+          }
+
+          sTextBuf << GetPDFWordString(pFontMap, word.nFontIndex, word.Word, 0);
+          oldplace = place;
+        }
+      }
+
+      if (sTextBuf.GetLength() > 0) {
+        ObjArray.Add(AddTextObjToPageObjects(
+            pPageObjects, crText, pFontMap->GetPDFFont(nOldFontIndex),
+            fFontSize, 0.0f, 100,
+            CPDF_Point(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
+            sTextBuf.GetByteString()));
+      }
+    }
+  }
 }
 
-void IFX_Edit::GenerateRichPageObjects(CPDF_PageObjects* pPageObjects, IFX_Edit* pEdit,
-								   const CPDF_Point& ptOffset, const CPVT_WordRange* pRange, CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray)
-{
-
-
-	FX_COLORREF crCurText = ArgbEncode(255, 0, 0, 0);
-	FX_COLORREF crOld = crCurText;
-
-
-	CFX_ByteTextBuf sTextBuf;
-	CPVT_WordProps wp;
-	CPDF_Point ptBT(0.0f,0.0f);
-
-	ObjArray.RemoveAll();
-
-	if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator())
-	{
-		if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap())
-		{
-			if (pRange)
-				pIterator->SetAt(pRange->BeginPos);
-			else
-				pIterator->SetAt(0);
-
-			CPVT_WordPlace oldplace;
-
-			while (pIterator->NextWord())
-			{
-				CPVT_WordPlace place = pIterator->GetAt();
-				if (pRange && place.WordCmp(pRange->EndPos) > 0) break;
-
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					word.WordProps.fFontSize = word.fFontSize;
-
-					crCurText = ArgbEncode(255,word.WordProps.dwWordColor);
-
-					if (place.LineCmp(oldplace) != 0 || word.WordProps.fCharSpace > 0.0f || word.WordProps.nHorzScale != 100 ||
-						FXSYS_memcmp(&word.WordProps, &wp, sizeof(CPVT_WordProps)) != 0 ||
-						crOld != crCurText)
-					{
-						if (sTextBuf.GetLength() > 0)
-						{
-							ObjArray.Add(AddTextObjToPageObjects(pPageObjects, crOld, pFontMap->GetPDFFont(wp.nFontIndex), wp.fFontSize, wp.fCharSpace, wp.nHorzScale,
-								CPDF_Point(ptBT.x+ptOffset.x, ptBT.y+ptOffset.y), sTextBuf.GetByteString()));
-
-							sTextBuf.Clear();
-						}
-
-						wp = word.WordProps;
-						ptBT = word.ptWord;
-						crOld = crCurText;
-
-					}
-
-					sTextBuf << GetPDFWordString(pFontMap, word.WordProps.nFontIndex, word.Word, 0);
-
-					if (word.WordProps.nWordStyle & PVTWORD_STYLE_UNDERLINE)
-					{/*
-						AddLineToPageObjects(pPageObjects, crCurText,
-							CPDF_Point(word.ptWord.x, word.ptWord.y + word.fDescent * 0.4f),
-							CPDF_Point(word.ptWord.x + word.fWidth, word.ptWord.y + word.fDescent * 0.4f));
+void IFX_Edit::GenerateRichPageObjects(
+    CPDF_PageObjects* pPageObjects,
+    IFX_Edit* pEdit,
+    const CPDF_Point& ptOffset,
+    const CPVT_WordRange* pRange,
+    CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray) {
+  FX_COLORREF crCurText = ArgbEncode(255, 0, 0, 0);
+  FX_COLORREF crOld = crCurText;
+
+  CFX_ByteTextBuf sTextBuf;
+  CPVT_WordProps wp;
+  CPDF_Point ptBT(0.0f, 0.0f);
+
+  ObjArray.RemoveAll();
+
+  if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) {
+    if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap()) {
+      if (pRange)
+        pIterator->SetAt(pRange->BeginPos);
+      else
+        pIterator->SetAt(0);
+
+      CPVT_WordPlace oldplace;
+
+      while (pIterator->NextWord()) {
+        CPVT_WordPlace place = pIterator->GetAt();
+        if (pRange && place.WordCmp(pRange->EndPos) > 0)
+          break;
+
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          word.WordProps.fFontSize = word.fFontSize;
+
+          crCurText = ArgbEncode(255, word.WordProps.dwWordColor);
+
+          if (place.LineCmp(oldplace) != 0 ||
+              word.WordProps.fCharSpace > 0.0f ||
+              word.WordProps.nHorzScale != 100 ||
+              FXSYS_memcmp(&word.WordProps, &wp, sizeof(CPVT_WordProps)) != 0 ||
+              crOld != crCurText) {
+            if (sTextBuf.GetLength() > 0) {
+              ObjArray.Add(AddTextObjToPageObjects(
+                  pPageObjects, crOld, pFontMap->GetPDFFont(wp.nFontIndex),
+                  wp.fFontSize, wp.fCharSpace, wp.nHorzScale,
+                  CPDF_Point(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
+                  sTextBuf.GetByteString()));
+
+              sTextBuf.Clear();
+            }
+
+            wp = word.WordProps;
+            ptBT = word.ptWord;
+            crOld = crCurText;
+          }
+
+          sTextBuf << GetPDFWordString(pFontMap, word.WordProps.nFontIndex,
+                                       word.Word, 0);
+
+          if (word.WordProps.nWordStyle &
+              PVTWORD_STYLE_UNDERLINE) { /*
+                                                AddLineToPageObjects(pPageObjects,
+                                            crCurText,
+                                                        CPDF_Point(word.ptWord.x,
+                                            word.ptWord.y + word.fDescent *
+                                            0.4f),
+                                                        CPDF_Point(word.ptWord.x
+                                            + word.fWidth, word.ptWord.y +
+                                            word.fDescent * 0.4f));
 */
-						CPDF_Rect rcUnderline = GetUnderLineRect(word);
-						rcUnderline.left += ptOffset.x;
-						rcUnderline.right += ptOffset.x;
-						rcUnderline.top += ptOffset.y;
-						rcUnderline.bottom += ptOffset.y;
-
-						AddRectToPageObjects(pPageObjects, crCurText, rcUnderline);
-					}
-
-					if (word.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT)
-					{
-						CPDF_Rect rcCrossout = GetCrossoutRect(word);
-						rcCrossout.left += ptOffset.x;
-						rcCrossout.right += ptOffset.x;
-						rcCrossout.top += ptOffset.y;
-						rcCrossout.bottom += ptOffset.y;
-
-						AddRectToPageObjects(pPageObjects, crCurText, rcCrossout);
-					}
-
-					oldplace = place;
-				}
-			}
-
-			if (sTextBuf.GetLength() > 0)
-			{
-				ObjArray.Add(AddTextObjToPageObjects(pPageObjects, crOld, pFontMap->GetPDFFont(wp.nFontIndex), wp.fFontSize, wp.fCharSpace, wp.nHorzScale,
-					CPDF_Point(ptBT.x+ptOffset.x, ptBT.y+ptOffset.y), sTextBuf.GetByteString()));
-			}
-		}
-	}
+            CPDF_Rect rcUnderline = GetUnderLineRect(word);
+            rcUnderline.left += ptOffset.x;
+            rcUnderline.right += ptOffset.x;
+            rcUnderline.top += ptOffset.y;
+            rcUnderline.bottom += ptOffset.y;
+
+            AddRectToPageObjects(pPageObjects, crCurText, rcUnderline);
+          }
+
+          if (word.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) {
+            CPDF_Rect rcCrossout = GetCrossoutRect(word);
+            rcCrossout.left += ptOffset.x;
+            rcCrossout.right += ptOffset.x;
+            rcCrossout.top += ptOffset.y;
+            rcCrossout.bottom += ptOffset.y;
+
+            AddRectToPageObjects(pPageObjects, crCurText, rcCrossout);
+          }
+
+          oldplace = place;
+        }
+      }
+
+      if (sTextBuf.GetLength() > 0) {
+        ObjArray.Add(AddTextObjToPageObjects(
+            pPageObjects, crOld, pFontMap->GetPDFFont(wp.nFontIndex),
+            wp.fFontSize, wp.fCharSpace, wp.nHorzScale,
+            CPDF_Point(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
+            sTextBuf.GetByteString()));
+      }
+    }
+  }
 }
 
-void IFX_Edit::GenerateUnderlineObjects(CPDF_PageObjects* pPageObjects, IFX_Edit* pEdit,
-								   const CPDF_Point& ptOffset, const CPVT_WordRange* pRange, FX_COLORREF color)
-{
-
-
-	if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator())
-	{
-		if (pEdit->GetFontMap())
-		{
-			if (pRange)
-				pIterator->SetAt(pRange->BeginPos);
-			else
-				pIterator->SetAt(0);
-
-			CPVT_WordPlace oldplace;
-
-			while (pIterator->NextWord())
-			{
-				CPVT_WordPlace place = pIterator->GetAt();
-				if (pRange && place.WordCmp(pRange->EndPos) > 0) break;
-
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					CPDF_Rect rcUnderline = GetUnderLineRect(word);
-					rcUnderline.left += ptOffset.x;
-					rcUnderline.right += ptOffset.x;
-					rcUnderline.top += ptOffset.y;
-					rcUnderline.bottom += ptOffset.y;
-					AddRectToPageObjects(pPageObjects, color, rcUnderline);
-				}
-			}
-		}
-	}
+void IFX_Edit::GenerateUnderlineObjects(CPDF_PageObjects* pPageObjects,
+                                        IFX_Edit* pEdit,
+                                        const CPDF_Point& ptOffset,
+                                        const CPVT_WordRange* pRange,
+                                        FX_COLORREF color) {
+  if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) {
+    if (pEdit->GetFontMap()) {
+      if (pRange)
+        pIterator->SetAt(pRange->BeginPos);
+      else
+        pIterator->SetAt(0);
+
+      CPVT_WordPlace oldplace;
+
+      while (pIterator->NextWord()) {
+        CPVT_WordPlace place = pIterator->GetAt();
+        if (pRange && place.WordCmp(pRange->EndPos) > 0)
+          break;
+
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          CPDF_Rect rcUnderline = GetUnderLineRect(word);
+          rcUnderline.left += ptOffset.x;
+          rcUnderline.right += ptOffset.x;
+          rcUnderline.top += ptOffset.y;
+          rcUnderline.bottom += ptOffset.y;
+          AddRectToPageObjects(pPageObjects, color, rcUnderline);
+        }
+      }
+    }
+  }
 }
-
diff --git a/fpdfsdk/src/javascript/Consts.cpp b/fpdfsdk/src/javascript/Consts.cpp
index 9edb6f443b..ca8d787ec0 100644
--- a/fpdfsdk/src/javascript/Consts.cpp
+++ b/fpdfsdk/src/javascript/Consts.cpp
@@ -14,234 +14,251 @@
 /* ------------------------------ border ------------------------------ */
 
 BEGIN_JS_STATIC_CONST(CJS_Border)
-	JS_STATIC_CONST_ENTRY_STRING(s,	solid)
-	JS_STATIC_CONST_ENTRY_STRING(b,	beveled)
-	JS_STATIC_CONST_ENTRY_STRING(d,	dashed)
-	JS_STATIC_CONST_ENTRY_STRING(i,	inset)
-	JS_STATIC_CONST_ENTRY_STRING(u,	underline)
+JS_STATIC_CONST_ENTRY_STRING(s, solid)
+JS_STATIC_CONST_ENTRY_STRING(b, beveled)
+JS_STATIC_CONST_ENTRY_STRING(d, dashed)
+JS_STATIC_CONST_ENTRY_STRING(i, inset)
+JS_STATIC_CONST_ENTRY_STRING(u, underline)
 END_JS_STATIC_CONST()
 
-IMPLEMENT_JS_CLASS_CONST(CJS_Border,border)
+IMPLEMENT_JS_CLASS_CONST(CJS_Border, border)
 
 /* ------------------------------ display ------------------------------ */
 
 BEGIN_JS_STATIC_CONST(CJS_Display)
-	JS_STATIC_CONST_ENTRY_NUMBER(visible,	0)
-	JS_STATIC_CONST_ENTRY_NUMBER(hidden,	1)
-	JS_STATIC_CONST_ENTRY_NUMBER(noPrint,	2)
-	JS_STATIC_CONST_ENTRY_NUMBER(noView,	3)
+JS_STATIC_CONST_ENTRY_NUMBER(visible, 0)
+JS_STATIC_CONST_ENTRY_NUMBER(hidden, 1)
+JS_STATIC_CONST_ENTRY_NUMBER(noPrint, 2)
+JS_STATIC_CONST_ENTRY_NUMBER(noView, 3)
 END_JS_STATIC_CONST()
 
-IMPLEMENT_JS_CLASS_CONST(CJS_Display,display)
+IMPLEMENT_JS_CLASS_CONST(CJS_Display, display)
 
 /* ------------------------------ font ------------------------------ */
 
 BEGIN_JS_STATIC_CONST(CJS_Font)
-	JS_STATIC_CONST_ENTRY_STRING(Times,		Times-Roman)
-	JS_STATIC_CONST_ENTRY_STRING(TimesB,	Times-Bold)
-	JS_STATIC_CONST_ENTRY_STRING(TimesI,	Times-Italic)
-	JS_STATIC_CONST_ENTRY_STRING(TimesBI,	Times-BoldItalic)
-	JS_STATIC_CONST_ENTRY_STRING(Helv,		Helvetica)
-	JS_STATIC_CONST_ENTRY_STRING(HelvB,		Helvetica-Bold)
-	JS_STATIC_CONST_ENTRY_STRING(HelvI,		Helvetica-Oblique)
-	JS_STATIC_CONST_ENTRY_STRING(HelvBI,	Helvetica-BoldOblique)
-	JS_STATIC_CONST_ENTRY_STRING(Cour,		Courier)
-	JS_STATIC_CONST_ENTRY_STRING(CourB,		Courier-Bold)
-	JS_STATIC_CONST_ENTRY_STRING(CourI,		Courier-Oblique)
-	JS_STATIC_CONST_ENTRY_STRING(CourBI,	Courier-BoldOblique)
-	JS_STATIC_CONST_ENTRY_STRING(Symbol,	Symbol)
-	JS_STATIC_CONST_ENTRY_STRING(ZapfD,		ZapfDingbats)
+JS_STATIC_CONST_ENTRY_STRING(Times, Times-Roman)
+JS_STATIC_CONST_ENTRY_STRING(TimesB, Times-Bold)
+JS_STATIC_CONST_ENTRY_STRING(TimesI, Times-Italic)
+JS_STATIC_CONST_ENTRY_STRING(TimesBI, Times-BoldItalic)
+JS_STATIC_CONST_ENTRY_STRING(Helv, Helvetica)
+JS_STATIC_CONST_ENTRY_STRING(HelvB, Helvetica-Bold)
+JS_STATIC_CONST_ENTRY_STRING(HelvI, Helvetica-Oblique)
+JS_STATIC_CONST_ENTRY_STRING(HelvBI, Helvetica-BoldOblique)
+JS_STATIC_CONST_ENTRY_STRING(Cour, Courier)
+JS_STATIC_CONST_ENTRY_STRING(CourB, Courier-Bold)
+JS_STATIC_CONST_ENTRY_STRING(CourI, Courier-Oblique)
+JS_STATIC_CONST_ENTRY_STRING(CourBI, Courier-BoldOblique)
+JS_STATIC_CONST_ENTRY_STRING(Symbol, Symbol)
+JS_STATIC_CONST_ENTRY_STRING(ZapfD, ZapfDingbats)
 END_JS_STATIC_CONST()
 
-IMPLEMENT_JS_CLASS_CONST(CJS_Font,font)
+IMPLEMENT_JS_CLASS_CONST(CJS_Font, font)
 
 /* ------------------------------ highlight ------------------------------ */
 
 BEGIN_JS_STATIC_CONST(CJS_Highlight)
-	JS_STATIC_CONST_ENTRY_STRING(n,	none)
-	JS_STATIC_CONST_ENTRY_STRING(i,	invert)
-	JS_STATIC_CONST_ENTRY_STRING(p,	push)
-	JS_STATIC_CONST_ENTRY_STRING(o,	outline)
+JS_STATIC_CONST_ENTRY_STRING(n, none)
+JS_STATIC_CONST_ENTRY_STRING(i, invert)
+JS_STATIC_CONST_ENTRY_STRING(p, push)
+JS_STATIC_CONST_ENTRY_STRING(o, outline)
 END_JS_STATIC_CONST()
 
-IMPLEMENT_JS_CLASS_CONST(CJS_Highlight,highlight)
+IMPLEMENT_JS_CLASS_CONST(CJS_Highlight, highlight)
 
 /* ------------------------------ position ------------------------------ */
 
 BEGIN_JS_STATIC_CONST(CJS_Position)
-	JS_STATIC_CONST_ENTRY_NUMBER(textOnly,		0)
-	JS_STATIC_CONST_ENTRY_NUMBER(iconOnly,		1)
-	JS_STATIC_CONST_ENTRY_NUMBER(iconTextV,		2)
-	JS_STATIC_CONST_ENTRY_NUMBER(textIconV,		3)
-	JS_STATIC_CONST_ENTRY_NUMBER(iconTextH,		4)
-	JS_STATIC_CONST_ENTRY_NUMBER(textIconH,		5)
-	JS_STATIC_CONST_ENTRY_NUMBER(overlay,		6)
+JS_STATIC_CONST_ENTRY_NUMBER(textOnly, 0)
+JS_STATIC_CONST_ENTRY_NUMBER(iconOnly, 1)
+JS_STATIC_CONST_ENTRY_NUMBER(iconTextV, 2)
+JS_STATIC_CONST_ENTRY_NUMBER(textIconV, 3)
+JS_STATIC_CONST_ENTRY_NUMBER(iconTextH, 4)
+JS_STATIC_CONST_ENTRY_NUMBER(textIconH, 5)
+JS_STATIC_CONST_ENTRY_NUMBER(overlay, 6)
 END_JS_STATIC_CONST()
 
-IMPLEMENT_JS_CLASS_CONST(CJS_Position,position)
+IMPLEMENT_JS_CLASS_CONST(CJS_Position, position)
 
 /* ------------------------------ scaleHow ------------------------------ */
 
 BEGIN_JS_STATIC_CONST(CJS_ScaleHow)
-	JS_STATIC_CONST_ENTRY_NUMBER(proportional,	0)
-	JS_STATIC_CONST_ENTRY_NUMBER(anamorphic,	1)
+JS_STATIC_CONST_ENTRY_NUMBER(proportional, 0)
+JS_STATIC_CONST_ENTRY_NUMBER(anamorphic, 1)
 END_JS_STATIC_CONST()
 
-IMPLEMENT_JS_CLASS_CONST(CJS_ScaleHow,scaleHow)
+IMPLEMENT_JS_CLASS_CONST(CJS_ScaleHow, scaleHow)
 
 /* ------------------------------ scaleWhen ------------------------------ */
 
 BEGIN_JS_STATIC_CONST(CJS_ScaleWhen)
-	JS_STATIC_CONST_ENTRY_NUMBER(always,	0)
-	JS_STATIC_CONST_ENTRY_NUMBER(never,		1)
-	JS_STATIC_CONST_ENTRY_NUMBER(tooBig,	2)
-	JS_STATIC_CONST_ENTRY_NUMBER(tooSmall,	3)
+JS_STATIC_CONST_ENTRY_NUMBER(always, 0)
+JS_STATIC_CONST_ENTRY_NUMBER(never, 1)
+JS_STATIC_CONST_ENTRY_NUMBER(tooBig, 2)
+JS_STATIC_CONST_ENTRY_NUMBER(tooSmall, 3)
 END_JS_STATIC_CONST()
 
-IMPLEMENT_JS_CLASS_CONST(CJS_ScaleWhen,scaleWhen)
+IMPLEMENT_JS_CLASS_CONST(CJS_ScaleWhen, scaleWhen)
 
 /* ------------------------------ style ------------------------------ */
 
 BEGIN_JS_STATIC_CONST(CJS_Style)
-	JS_STATIC_CONST_ENTRY_STRING(ch,	check)
-	JS_STATIC_CONST_ENTRY_STRING(cr,	cross)
-	JS_STATIC_CONST_ENTRY_STRING(di,	diamond)
-	JS_STATIC_CONST_ENTRY_STRING(ci,	circle)
-	JS_STATIC_CONST_ENTRY_STRING(st,	star)
-	JS_STATIC_CONST_ENTRY_STRING(sq,	square)
+JS_STATIC_CONST_ENTRY_STRING(ch, check)
+JS_STATIC_CONST_ENTRY_STRING(cr, cross)
+JS_STATIC_CONST_ENTRY_STRING(di, diamond)
+JS_STATIC_CONST_ENTRY_STRING(ci, circle)
+JS_STATIC_CONST_ENTRY_STRING(st, star)
+JS_STATIC_CONST_ENTRY_STRING(sq, square)
 END_JS_STATIC_CONST()
 
-IMPLEMENT_JS_CLASS_CONST(CJS_Style,style)
-
+IMPLEMENT_JS_CLASS_CONST(CJS_Style, style)
 
 /* ------------------------------ zoomtype ------------------------------ */
 
 BEGIN_JS_STATIC_CONST(CJS_Zoomtype)
-	JS_STATIC_CONST_ENTRY_STRING(none,	NoVary)
-	JS_STATIC_CONST_ENTRY_STRING(fitP,	FitPage)
-	JS_STATIC_CONST_ENTRY_STRING(fitW,	FitWidth)
-	JS_STATIC_CONST_ENTRY_STRING(fitH,	FitHeight)
-	JS_STATIC_CONST_ENTRY_STRING(fitV,	FitVisibleWidth)
-	JS_STATIC_CONST_ENTRY_STRING(pref,	Preferred)
-	JS_STATIC_CONST_ENTRY_STRING(refW,	ReflowWidth)
+JS_STATIC_CONST_ENTRY_STRING(none, NoVary)
+JS_STATIC_CONST_ENTRY_STRING(fitP, FitPage)
+JS_STATIC_CONST_ENTRY_STRING(fitW, FitWidth)
+JS_STATIC_CONST_ENTRY_STRING(fitH, FitHeight)
+JS_STATIC_CONST_ENTRY_STRING(fitV, FitVisibleWidth)
+JS_STATIC_CONST_ENTRY_STRING(pref, Preferred)
+JS_STATIC_CONST_ENTRY_STRING(refW, ReflowWidth)
 END_JS_STATIC_CONST()
 
-IMPLEMENT_JS_CLASS_CONST(CJS_Zoomtype,zoomtype)
-
-/* ------------------------------ CJS_GlobalConsts ------------------------------ */
-
-int	CJS_GlobalConsts::Init(IJS_Runtime* pRuntime)
-{
-	DEFINE_GLOBAL_CONST(pRuntime, IDS_GREATER_THAN , Invalid value: must be greater than or equal to %s.);
-	DEFINE_GLOBAL_CONST(pRuntime, IDS_GT_AND_LT,Invalid value: must be greater than or equal to %s and less than or equal to %s.);
-	DEFINE_GLOBAL_CONST(pRuntime, IDS_LESS_THAN,Invalid value: must be less than or equal to %s.);
-	DEFINE_GLOBAL_CONST(pRuntime, IDS_INVALID_MONTH,** Invalid **);
-	DEFINE_GLOBAL_CONST(pRuntime, IDS_INVALID_DATE,Invalid date/time: please ensure that the date/time exists. Field);
-	DEFINE_GLOBAL_CONST(pRuntime, IDS_INVALID_VALUE,The value entered does not match the format of the field);
-	DEFINE_GLOBAL_CONST(pRuntime, IDS_AM,am);
-	DEFINE_GLOBAL_CONST(pRuntime, IDS_PM,pm);
-	DEFINE_GLOBAL_CONST(pRuntime, IDS_MONTH_INFO,January[1]February[2]March[3]April[4]May[5]June[6]July[7]August[8]September[9]October[10]November[11]December[12]Sept[9]Jan[1]Feb[2]Mar[3]Apr[4]Jun[6]Jul[7]Aug[8]Sep[9]Oct[10]Nov[11]Dec[12]);
-	DEFINE_GLOBAL_CONST(pRuntime, IDS_STARTUP_CONSOLE_MSG, ** ^_^ **);
-
-	return 0;
+IMPLEMENT_JS_CLASS_CONST(CJS_Zoomtype, zoomtype)
+
+/* ------------------------------ CJS_GlobalConsts
+ * ------------------------------ */
+
+int CJS_GlobalConsts::Init(IJS_Runtime* pRuntime) {
+  DEFINE_GLOBAL_CONST(pRuntime, IDS_GREATER_THAN, Invalid value
+                      : must be greater than or equal to % s.);
+  DEFINE_GLOBAL_CONST(
+      pRuntime, IDS_GT_AND_LT, Invalid value
+      : must be greater than or equal to % s and less than or equal to % s.);
+  DEFINE_GLOBAL_CONST(pRuntime, IDS_LESS_THAN, Invalid value
+                      : must be less than or equal to % s.);
+  DEFINE_GLOBAL_CONST(pRuntime, IDS_INVALID_MONTH, **Invalid**);
+  DEFINE_GLOBAL_CONST(pRuntime, IDS_INVALID_DATE, Invalid date / time
+                      : please ensure that the date / time exists.Field);
+  DEFINE_GLOBAL_CONST(pRuntime, IDS_INVALID_VALUE,
+                      The value entered does not match the format of the field);
+  DEFINE_GLOBAL_CONST(pRuntime, IDS_AM, am);
+  DEFINE_GLOBAL_CONST(pRuntime, IDS_PM, pm);
+  DEFINE_GLOBAL_CONST(
+      pRuntime, IDS_MONTH_INFO,
+      January[1] February[2] March[3] April[4] May[5] June[6] July[7] August
+          [8] September[9] October[10] November[11] December[12] Sept[9] Jan
+              [1] Feb[2] Mar[3] Apr[4] Jun[6] Jul[7] Aug[8] Sep[9] Oct[10] Nov
+                  [11] Dec[12]);
+  DEFINE_GLOBAL_CONST(pRuntime, IDS_STARTUP_CONSOLE_MSG, ** ^ _ ^ **);
+
+  return 0;
 }
 
-/* ------------------------------ CJS_GlobalArrays ------------------------------ */
-
-int	CJS_GlobalArrays::Init(IJS_Runtime* pRuntime)
-{
-	{
-		const FX_WCHAR* ArrayName = L"RE_NUMBER_ENTRY_DOT_SEP";
-		const FX_WCHAR* ArrayContent[] = {L"[+-]?\\d*\\.?\\d*"};
-		DEFINE_GLOBAL_ARRAY(pRuntime);
-	}
-
-	{
-		const FX_WCHAR* ArrayName = L"RE_NUMBER_COMMIT_DOT_SEP";
-		const FX_WCHAR* ArrayContent[] = { L"[+-]?\\d+(\\.\\d+)?",                /* -1.0 or -1 */
-									  L"[+-]?\\.\\d+",                       /* -.1 */
-									  L"[+-]?\\d+\\."                        /* -1. */
-									};
-		DEFINE_GLOBAL_ARRAY(pRuntime);
-	}
-
-	{
-		const FX_WCHAR* ArrayName = L"RE_NUMBER_ENTRY_COMMA_SEP";
-		const FX_WCHAR* ArrayContent[] = {L"[+-]?\\d*,?\\d*"};
-
-		DEFINE_GLOBAL_ARRAY(pRuntime);
-	}
-
-	{
-		const FX_WCHAR* ArrayName = L"RE_NUMBER_COMMIT_COMMA_SEP";
-		const FX_WCHAR* ArrayContent[] = { L"[+-]?\\d+([.,]\\d+)?",               /* -1,0 or -1 */
-									  L"[+-]?[.,]\\d+",                   /* -,1 */
-                                      L"[+-]?\\d+[.,]"                            /* -1, */
-                                    };
-		DEFINE_GLOBAL_ARRAY(pRuntime);
-	}
-
-	{
-		const FX_WCHAR* ArrayName = L"RE_ZIP_ENTRY";
-        const FX_WCHAR* ArrayContent[] = {L"\\d{0,5}"};
-		DEFINE_GLOBAL_ARRAY(pRuntime);
-	}
-
-	{
-		const FX_WCHAR* ArrayName = L"RE_ZIP_COMMIT";
-		const FX_WCHAR* ArrayContent[] = {L"\\d{5}"};
-		DEFINE_GLOBAL_ARRAY(pRuntime);
-	}
-
-	{
-		const FX_WCHAR* ArrayName = L"RE_ZIP4_ENTRY";
-		const FX_WCHAR* ArrayContent[] = {L"\\d{0,5}(\\.|[- ])?\\d{0,4}"};
-		DEFINE_GLOBAL_ARRAY(pRuntime);
-	}
-
-	{
-		const FX_WCHAR* ArrayName = L"RE_ZIP4_COMMIT";
-		const FX_WCHAR* ArrayContent[] = {L"\\d{5}(\\.|[- ])?\\d{4}"};
-		DEFINE_GLOBAL_ARRAY(pRuntime);
-	}
-
-	{
-		const FX_WCHAR* ArrayName = L"RE_PHONE_ENTRY";
-		const FX_WCHAR* ArrayContent[] = {
-				L"\\d{0,3}(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}",		/* 555-1234 or 408 555-1234 */
-				L"\\(\\d{0,3}",											/* (408 */
-				L"\\(\\d{0,3}\\)(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}",	/* (408) 555-1234 */
-					/* (allow the addition of parens as an afterthought) */
-				L"\\(\\d{0,3}(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}",	/* (408 555-1234 */
-				L"\\d{0,3}\\)(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}",	/* 408) 555-1234 */
-				L"011(\\.|[- \\d])*"										/* international */
-			};
-		DEFINE_GLOBAL_ARRAY(pRuntime);
-	}
-
-	{
-		const FX_WCHAR* ArrayName = L"RE_PHONE_COMMIT";
-		const FX_WCHAR* ArrayContent[] = {
-					L"\\d{3}(\\.|[- ])?\\d{4}",							/* 555-1234 */
-					L"\\d{3}(\\.|[- ])?\\d{3}(\\.|[- ])?\\d{4}",			/* 408 555-1234 */
-					L"\\(\\d{3}\\)(\\.|[- ])?\\d{3}(\\.|[- ])?\\d{4}",	/* (408) 555-1234 */
-					L"011(\\.|[- \\d])*"									/* international */
-				};
-		DEFINE_GLOBAL_ARRAY(pRuntime);
-	}
-
-	{
-		const FX_WCHAR* ArrayName = L"RE_SSN_ENTRY";
-		const FX_WCHAR* ArrayContent[] = {L"\\d{0,3}(\\.|[- ])?\\d{0,2}(\\.|[- ])?\\d{0,4}"};
-		DEFINE_GLOBAL_ARRAY(pRuntime);
-	}
-
-	{
-		const FX_WCHAR* ArrayName = L"RE_SSN_COMMIT";
-		const FX_WCHAR* ArrayContent[] = {L"\\d{3}(\\.|[- ])?\\d{2}(\\.|[- ])?\\d{4}"};
-		DEFINE_GLOBAL_ARRAY(pRuntime);
-	}
-
-	return 0;
+/* ------------------------------ CJS_GlobalArrays
+ * ------------------------------ */
+
+int CJS_GlobalArrays::Init(IJS_Runtime* pRuntime) {
+  {
+    const FX_WCHAR* ArrayName = L"RE_NUMBER_ENTRY_DOT_SEP";
+    const FX_WCHAR* ArrayContent[] = {L"[+-]?\\d*\\.?\\d*"};
+    DEFINE_GLOBAL_ARRAY(pRuntime);
+  }
+
+  {
+    const FX_WCHAR* ArrayName = L"RE_NUMBER_COMMIT_DOT_SEP";
+    const FX_WCHAR* ArrayContent[] = {
+        L"[+-]?\\d+(\\.\\d+)?", /* -1.0 or -1 */
+        L"[+-]?\\.\\d+",        /* -.1 */
+        L"[+-]?\\d+\\."         /* -1. */
+    };
+    DEFINE_GLOBAL_ARRAY(pRuntime);
+  }
+
+  {
+    const FX_WCHAR* ArrayName = L"RE_NUMBER_ENTRY_COMMA_SEP";
+    const FX_WCHAR* ArrayContent[] = {L"[+-]?\\d*,?\\d*"};
+
+    DEFINE_GLOBAL_ARRAY(pRuntime);
+  }
+
+  {
+    const FX_WCHAR* ArrayName = L"RE_NUMBER_COMMIT_COMMA_SEP";
+    const FX_WCHAR* ArrayContent[] = {
+        L"[+-]?\\d+([.,]\\d+)?", /* -1,0 or -1 */
+        L"[+-]?[.,]\\d+",        /* -,1 */
+        L"[+-]?\\d+[.,]"         /* -1, */
+    };
+    DEFINE_GLOBAL_ARRAY(pRuntime);
+  }
+
+  {
+    const FX_WCHAR* ArrayName = L"RE_ZIP_ENTRY";
+    const FX_WCHAR* ArrayContent[] = {L"\\d{0,5}"};
+    DEFINE_GLOBAL_ARRAY(pRuntime);
+  }
+
+  {
+    const FX_WCHAR* ArrayName = L"RE_ZIP_COMMIT";
+    const FX_WCHAR* ArrayContent[] = {L"\\d{5}"};
+    DEFINE_GLOBAL_ARRAY(pRuntime);
+  }
+
+  {
+    const FX_WCHAR* ArrayName = L"RE_ZIP4_ENTRY";
+    const FX_WCHAR* ArrayContent[] = {L"\\d{0,5}(\\.|[- ])?\\d{0,4}"};
+    DEFINE_GLOBAL_ARRAY(pRuntime);
+  }
+
+  {
+    const FX_WCHAR* ArrayName = L"RE_ZIP4_COMMIT";
+    const FX_WCHAR* ArrayContent[] = {L"\\d{5}(\\.|[- ])?\\d{4}"};
+    DEFINE_GLOBAL_ARRAY(pRuntime);
+  }
+
+  {
+    const FX_WCHAR* ArrayName = L"RE_PHONE_ENTRY";
+    const FX_WCHAR* ArrayContent[] = {
+        L"\\d{0,3}(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", /* 555-1234 or 408
+                                                              555-1234 */
+        L"\\(\\d{0,3}",                                    /* (408 */
+        L"\\(\\d{0,3}\\)(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", /* (408)
+                                                                    555-1234 */
+        /* (allow the addition of parens as an afterthought) */
+        L"\\(\\d{0,3}(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", /* (408 555-1234
+                                                                 */
+        L"\\d{0,3}\\)(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", /* 408) 555-1234
+                                                                 */
+        L"011(\\.|[- \\d])*" /* international */
+    };
+    DEFINE_GLOBAL_ARRAY(pRuntime);
+  }
+
+  {
+    const FX_WCHAR* ArrayName = L"RE_PHONE_COMMIT";
+    const FX_WCHAR* ArrayContent[] = {
+        L"\\d{3}(\\.|[- ])?\\d{4}",                        /* 555-1234 */
+        L"\\d{3}(\\.|[- ])?\\d{3}(\\.|[- ])?\\d{4}",       /* 408 555-1234 */
+        L"\\(\\d{3}\\)(\\.|[- ])?\\d{3}(\\.|[- ])?\\d{4}", /* (408) 555-1234 */
+        L"011(\\.|[- \\d])*"                               /* international */
+    };
+    DEFINE_GLOBAL_ARRAY(pRuntime);
+  }
+
+  {
+    const FX_WCHAR* ArrayName = L"RE_SSN_ENTRY";
+    const FX_WCHAR* ArrayContent[] = {
+        L"\\d{0,3}(\\.|[- ])?\\d{0,2}(\\.|[- ])?\\d{0,4}"};
+    DEFINE_GLOBAL_ARRAY(pRuntime);
+  }
+
+  {
+    const FX_WCHAR* ArrayName = L"RE_SSN_COMMIT";
+    const FX_WCHAR* ArrayContent[] = {
+        L"\\d{3}(\\.|[- ])?\\d{2}(\\.|[- ])?\\d{4}"};
+    DEFINE_GLOBAL_ARRAY(pRuntime);
+  }
+
+  return 0;
 }
-
diff --git a/fpdfsdk/src/javascript/Document.cpp b/fpdfsdk/src/javascript/Document.cpp
index 0fa612c223..9d231581df 100644
--- a/fpdfsdk/src/javascript/Document.cpp
+++ b/fpdfsdk/src/javascript/Document.cpp
@@ -20,15 +20,14 @@
 
 #include "../../../third_party/base/numerics/safe_math.h"
 
-static v8::Isolate* GetIsolate(IFXJS_Context* cc)
-{
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
+static v8::Isolate* GetIsolate(IFXJS_Context* cc) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
 
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    ASSERT(pRuntime != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
 
-    return pRuntime->GetIsolate();
+  return pRuntime->GetIsolate();
 }
 
 BEGIN_JS_STATIC_CONST(CJS_PrintParamsObj)
@@ -43,1745 +42,1755 @@ END_JS_STATIC_METHOD()
 IMPLEMENT_JS_CLASS(CJS_PrintParamsObj, PrintParamsObj)
 
 PrintParamsObj::PrintParamsObj(CJS_Object* pJSObject)
-: CJS_EmbedObj(pJSObject)
-{
-    bUI = TRUE;
-    nStart = 0;
-    nEnd = 0;
-    bSilent = FALSE;
-    bShrinkToFit = FALSE;
-    bPrintAsImage = FALSE;
-    bReverse = FALSE;
-    bAnnotations = TRUE;
+    : CJS_EmbedObj(pJSObject) {
+  bUI = TRUE;
+  nStart = 0;
+  nEnd = 0;
+  bSilent = FALSE;
+  bShrinkToFit = FALSE;
+  bPrintAsImage = FALSE;
+  bReverse = FALSE;
+  bAnnotations = TRUE;
 }
 
 /* ---------------------- Document ---------------------- */
 
-#define MINWIDTH  5.0f
+#define MINWIDTH 5.0f
 #define MINHEIGHT 5.0f
 
 BEGIN_JS_STATIC_CONST(CJS_Document)
 END_JS_STATIC_CONST()
 
 BEGIN_JS_STATIC_PROP(CJS_Document)
-    JS_STATIC_PROP_ENTRY(ADBE)
-    JS_STATIC_PROP_ENTRY(author)
-    JS_STATIC_PROP_ENTRY(baseURL)
-    JS_STATIC_PROP_ENTRY(bookmarkRoot)
-    JS_STATIC_PROP_ENTRY(calculate)
-    JS_STATIC_PROP_ENTRY(Collab)
-    JS_STATIC_PROP_ENTRY(creationDate)
-    JS_STATIC_PROP_ENTRY(creator)
-    JS_STATIC_PROP_ENTRY(delay)
-    JS_STATIC_PROP_ENTRY(dirty)
-    JS_STATIC_PROP_ENTRY(documentFileName)
-    JS_STATIC_PROP_ENTRY(external)
-    JS_STATIC_PROP_ENTRY(filesize)
-    JS_STATIC_PROP_ENTRY(icons)
-    JS_STATIC_PROP_ENTRY(info)
-    JS_STATIC_PROP_ENTRY(keywords)
-    JS_STATIC_PROP_ENTRY(layout)
-    JS_STATIC_PROP_ENTRY(media)
-    JS_STATIC_PROP_ENTRY(modDate)
-    JS_STATIC_PROP_ENTRY(mouseX)
-    JS_STATIC_PROP_ENTRY(mouseY)
-    JS_STATIC_PROP_ENTRY(numFields)
-    JS_STATIC_PROP_ENTRY(numPages)
-    JS_STATIC_PROP_ENTRY(pageNum)
-    JS_STATIC_PROP_ENTRY(pageWindowRect)
-    JS_STATIC_PROP_ENTRY(path)
-    JS_STATIC_PROP_ENTRY(producer)
-    JS_STATIC_PROP_ENTRY(subject)
-    JS_STATIC_PROP_ENTRY(title)
-    JS_STATIC_PROP_ENTRY(zoom)
-    JS_STATIC_PROP_ENTRY(zoomType)
+JS_STATIC_PROP_ENTRY(ADBE)
+JS_STATIC_PROP_ENTRY(author)
+JS_STATIC_PROP_ENTRY(baseURL)
+JS_STATIC_PROP_ENTRY(bookmarkRoot)
+JS_STATIC_PROP_ENTRY(calculate)
+JS_STATIC_PROP_ENTRY(Collab)
+JS_STATIC_PROP_ENTRY(creationDate)
+JS_STATIC_PROP_ENTRY(creator)
+JS_STATIC_PROP_ENTRY(delay)
+JS_STATIC_PROP_ENTRY(dirty)
+JS_STATIC_PROP_ENTRY(documentFileName)
+JS_STATIC_PROP_ENTRY(external)
+JS_STATIC_PROP_ENTRY(filesize)
+JS_STATIC_PROP_ENTRY(icons)
+JS_STATIC_PROP_ENTRY(info)
+JS_STATIC_PROP_ENTRY(keywords)
+JS_STATIC_PROP_ENTRY(layout)
+JS_STATIC_PROP_ENTRY(media)
+JS_STATIC_PROP_ENTRY(modDate)
+JS_STATIC_PROP_ENTRY(mouseX)
+JS_STATIC_PROP_ENTRY(mouseY)
+JS_STATIC_PROP_ENTRY(numFields)
+JS_STATIC_PROP_ENTRY(numPages)
+JS_STATIC_PROP_ENTRY(pageNum)
+JS_STATIC_PROP_ENTRY(pageWindowRect)
+JS_STATIC_PROP_ENTRY(path)
+JS_STATIC_PROP_ENTRY(producer)
+JS_STATIC_PROP_ENTRY(subject)
+JS_STATIC_PROP_ENTRY(title)
+JS_STATIC_PROP_ENTRY(zoom)
+JS_STATIC_PROP_ENTRY(zoomType)
 END_JS_STATIC_PROP()
 
 BEGIN_JS_STATIC_METHOD(CJS_Document)
-    JS_STATIC_METHOD_ENTRY(addAnnot)
-    JS_STATIC_METHOD_ENTRY(addField)
-    JS_STATIC_METHOD_ENTRY(addLink)
-    JS_STATIC_METHOD_ENTRY(addIcon)
-    JS_STATIC_METHOD_ENTRY(calculateNow)
-    JS_STATIC_METHOD_ENTRY(closeDoc)
-    JS_STATIC_METHOD_ENTRY(createDataObject)
-    JS_STATIC_METHOD_ENTRY(deletePages)
-    JS_STATIC_METHOD_ENTRY(exportAsText)
-    JS_STATIC_METHOD_ENTRY(exportAsFDF)
-    JS_STATIC_METHOD_ENTRY(exportAsXFDF)
-    JS_STATIC_METHOD_ENTRY(extractPages)
-    JS_STATIC_METHOD_ENTRY(getAnnot)
-    JS_STATIC_METHOD_ENTRY(getAnnots)
-    JS_STATIC_METHOD_ENTRY(getAnnot3D)
-    JS_STATIC_METHOD_ENTRY(getAnnots3D)
-    JS_STATIC_METHOD_ENTRY(getField)
-    JS_STATIC_METHOD_ENTRY(getIcon)
-    JS_STATIC_METHOD_ENTRY(getLinks)
-    JS_STATIC_METHOD_ENTRY(getNthFieldName)
-    JS_STATIC_METHOD_ENTRY(getOCGs)
-    JS_STATIC_METHOD_ENTRY(getPageBox)
-    JS_STATIC_METHOD_ENTRY(getPageNthWord)
-    JS_STATIC_METHOD_ENTRY(getPageNthWordQuads)
-    JS_STATIC_METHOD_ENTRY(getPageNumWords)
-    JS_STATIC_METHOD_ENTRY(getPrintParams)
-    JS_STATIC_METHOD_ENTRY(getURL)
-    JS_STATIC_METHOD_ENTRY(importAnFDF)
-    JS_STATIC_METHOD_ENTRY(importAnXFDF)
-    JS_STATIC_METHOD_ENTRY(importTextData)
-    JS_STATIC_METHOD_ENTRY(insertPages)
-    JS_STATIC_METHOD_ENTRY(mailForm)
-    JS_STATIC_METHOD_ENTRY(print)
-    JS_STATIC_METHOD_ENTRY(removeField)
-    JS_STATIC_METHOD_ENTRY(replacePages)
-    JS_STATIC_METHOD_ENTRY(resetForm)
-    JS_STATIC_METHOD_ENTRY(removeIcon)
-    JS_STATIC_METHOD_ENTRY(saveAs)
-    JS_STATIC_METHOD_ENTRY(submitForm)
-    JS_STATIC_METHOD_ENTRY(mailDoc)
+JS_STATIC_METHOD_ENTRY(addAnnot)
+JS_STATIC_METHOD_ENTRY(addField)
+JS_STATIC_METHOD_ENTRY(addLink)
+JS_STATIC_METHOD_ENTRY(addIcon)
+JS_STATIC_METHOD_ENTRY(calculateNow)
+JS_STATIC_METHOD_ENTRY(closeDoc)
+JS_STATIC_METHOD_ENTRY(createDataObject)
+JS_STATIC_METHOD_ENTRY(deletePages)
+JS_STATIC_METHOD_ENTRY(exportAsText)
+JS_STATIC_METHOD_ENTRY(exportAsFDF)
+JS_STATIC_METHOD_ENTRY(exportAsXFDF)
+JS_STATIC_METHOD_ENTRY(extractPages)
+JS_STATIC_METHOD_ENTRY(getAnnot)
+JS_STATIC_METHOD_ENTRY(getAnnots)
+JS_STATIC_METHOD_ENTRY(getAnnot3D)
+JS_STATIC_METHOD_ENTRY(getAnnots3D)
+JS_STATIC_METHOD_ENTRY(getField)
+JS_STATIC_METHOD_ENTRY(getIcon)
+JS_STATIC_METHOD_ENTRY(getLinks)
+JS_STATIC_METHOD_ENTRY(getNthFieldName)
+JS_STATIC_METHOD_ENTRY(getOCGs)
+JS_STATIC_METHOD_ENTRY(getPageBox)
+JS_STATIC_METHOD_ENTRY(getPageNthWord)
+JS_STATIC_METHOD_ENTRY(getPageNthWordQuads)
+JS_STATIC_METHOD_ENTRY(getPageNumWords)
+JS_STATIC_METHOD_ENTRY(getPrintParams)
+JS_STATIC_METHOD_ENTRY(getURL)
+JS_STATIC_METHOD_ENTRY(importAnFDF)
+JS_STATIC_METHOD_ENTRY(importAnXFDF)
+JS_STATIC_METHOD_ENTRY(importTextData)
+JS_STATIC_METHOD_ENTRY(insertPages)
+JS_STATIC_METHOD_ENTRY(mailForm)
+JS_STATIC_METHOD_ENTRY(print)
+JS_STATIC_METHOD_ENTRY(removeField)
+JS_STATIC_METHOD_ENTRY(replacePages)
+JS_STATIC_METHOD_ENTRY(resetForm)
+JS_STATIC_METHOD_ENTRY(removeIcon)
+JS_STATIC_METHOD_ENTRY(saveAs)
+JS_STATIC_METHOD_ENTRY(submitForm)
+JS_STATIC_METHOD_ENTRY(mailDoc)
 END_JS_STATIC_METHOD()
 
 IMPLEMENT_JS_CLASS(CJS_Document, Document)
 
-FX_BOOL CJS_Document::InitInstance(IFXJS_Context* cc)
-{
-    CJS_Context* pContext = (CJS_Context*)cc;
-    ASSERT(pContext != NULL);
+FX_BOOL CJS_Document::InitInstance(IFXJS_Context* cc) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
 
-    Document* pDoc = (Document*)GetEmbedObject();
-    ASSERT(pDoc != NULL);
+  Document* pDoc = (Document*)GetEmbedObject();
+  ASSERT(pDoc != NULL);
 
-    pDoc->AttachDoc(pContext->GetReaderDocument());
-    pDoc->SetIsolate(pContext->GetJSRuntime()->GetIsolate());
-    return TRUE;
+  pDoc->AttachDoc(pContext->GetReaderDocument());
+  pDoc->SetIsolate(pContext->GetJSRuntime()->GetIsolate());
+  return TRUE;
 };
 
-/* --------------------------------- Document --------------------------------- */
-
-Document::Document(CJS_Object* pJSObject) : CJS_EmbedObj(pJSObject),
-    m_isolate(NULL),
-    m_pIconTree(NULL),
-    m_pDocument(NULL),
-    m_cwBaseURL(L""),
-    m_bDelay(FALSE)
-{
-}
-
-Document::~Document()
-{
-    if (m_pIconTree)
-    {
-        m_pIconTree->DeleteIconTree();
-        delete m_pIconTree;
-        m_pIconTree = NULL;
-    }
-    for (int i=0; i<m_DelayData.GetSize(); i++)
-    {
-        if (CJS_DelayData* pData = m_DelayData.GetAt(i))
-        {
-            delete pData;
-            pData = NULL;
-            m_DelayData.SetAt(i, NULL);
-
-        }
-    }
-
-    m_DelayData.RemoveAll();
-    m_DelayAnnotData.RemoveAll();
-}
-
-//the total number of fileds in document.
-FX_BOOL Document::numFields(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (vp.IsSetting()) {
-        CJS_Context* pContext = static_cast<CJS_Context*>(cc);
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
-        return FALSE;
-    }
-    CPDFSDK_InterForm *pInterForm = m_pDocument->GetInterForm();
-    CPDF_InterForm *pPDFForm = pInterForm->GetInterForm();
-    vp << (int)pPDFForm->CountFields();
-    return TRUE;
+/* --------------------------------- Document ---------------------------------
+ */
+
+Document::Document(CJS_Object* pJSObject)
+    : CJS_EmbedObj(pJSObject),
+      m_isolate(NULL),
+      m_pIconTree(NULL),
+      m_pDocument(NULL),
+      m_cwBaseURL(L""),
+      m_bDelay(FALSE) {}
+
+Document::~Document() {
+  if (m_pIconTree) {
+    m_pIconTree->DeleteIconTree();
+    delete m_pIconTree;
+    m_pIconTree = NULL;
+  }
+  for (int i = 0; i < m_DelayData.GetSize(); i++) {
+    if (CJS_DelayData* pData = m_DelayData.GetAt(i)) {
+      delete pData;
+      pData = NULL;
+      m_DelayData.SetAt(i, NULL);
+    }
+  }
+
+  m_DelayData.RemoveAll();
+  m_DelayAnnotData.RemoveAll();
+}
+
+// the total number of fileds in document.
+FX_BOOL Document::numFields(IFXJS_Context* cc,
+                            CJS_PropValue& vp,
+                            CFX_WideString& sError) {
+  if (vp.IsSetting()) {
+    CJS_Context* pContext = static_cast<CJS_Context*>(cc);
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
+    return FALSE;
+  }
+  CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
+  CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
+  vp << (int)pPDFForm->CountFields();
+  return TRUE;
 }
 
-FX_BOOL Document::dirty(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Document::dirty(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsGetting())
-    {
-        if (m_pDocument->GetChangeMark())
-            vp << true;
-        else
-            vp << false;
-    }
+  if (vp.IsGetting()) {
+    if (m_pDocument->GetChangeMark())
+      vp << true;
     else
-    {
-        bool bChanged = false;
+      vp << false;
+  } else {
+    bool bChanged = false;
 
-        vp >> bChanged;
+    vp >> bChanged;
 
-        if (bChanged)
-            m_pDocument->SetChangeMark();
-        else
-            m_pDocument->ClearChangeMark();
-    }
+    if (bChanged)
+      m_pDocument->SetChangeMark();
+    else
+      m_pDocument->ClearChangeMark();
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Document::ADBE(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Document::ADBE(IFXJS_Context* cc,
+                       CJS_PropValue& vp,
+                       CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsGetting())
-    {
-        vp.SetNull();
-    }
-    else
-    {
-    }
+  if (vp.IsGetting()) {
+    vp.SetNull();
+  } else {
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Document::pageNum(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Document::pageNum(IFXJS_Context* cc,
+                          CJS_PropValue& vp,
+                          CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsGetting())
-    {
-        if (CPDFSDK_PageView* pPageView = m_pDocument->GetCurrentView())
-        {
-            vp << pPageView->GetPageIndex();
-        }
+  if (vp.IsGetting()) {
+    if (CPDFSDK_PageView* pPageView = m_pDocument->GetCurrentView()) {
+      vp << pPageView->GetPageIndex();
     }
-    else
-    {
-        int iPageCount = m_pDocument->GetPageCount();
-        int iPageNum = 0;
-        vp >> iPageNum;
-
-        CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
-        if (iPageNum >= 0 && iPageNum < iPageCount)
-        {
-             pEnv->JS_docgotoPage(iPageNum);
-        }
-        else if (iPageNum >= iPageCount)
-        {
-             pEnv->JS_docgotoPage(iPageCount-1);
-        }
-        else if (iPageNum < 0)
-        {
-             pEnv->JS_docgotoPage(0);
-        }
+  } else {
+    int iPageCount = m_pDocument->GetPageCount();
+    int iPageNum = 0;
+    vp >> iPageNum;
+
+    CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
+    if (iPageNum >= 0 && iPageNum < iPageCount) {
+      pEnv->JS_docgotoPage(iPageNum);
+    } else if (iPageNum >= iPageCount) {
+      pEnv->JS_docgotoPage(iPageCount - 1);
+    } else if (iPageNum < 0) {
+      pEnv->JS_docgotoPage(0);
     }
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Document::ParserParams(JSObject* pObj,CJS_AnnotObj& annotobj)
-{
-    // Not supported.
-    return TRUE;
+FX_BOOL Document::ParserParams(JSObject* pObj, CJS_AnnotObj& annotobj) {
+  // Not supported.
+  return TRUE;
 }
 
-FX_BOOL Document::addAnnot(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    // Not supported.
-    return TRUE;
+FX_BOOL Document::addAnnot(IFXJS_Context* cc,
+                           const CJS_Parameters& params,
+                           CJS_Value& vRet,
+                           CFX_WideString& sError) {
+  // Not supported.
+  return TRUE;
 }
 
-FX_BOOL Document::addField(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    // Not supported.
-    return TRUE;
+FX_BOOL Document::addField(IFXJS_Context* cc,
+                           const CJS_Parameters& params,
+                           CJS_Value& vRet,
+                           CFX_WideString& sError) {
+  // Not supported.
+  return TRUE;
 }
 
-FX_BOOL Document::exportAsText(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    // Unsafe, not supported.
-    return TRUE;
+FX_BOOL Document::exportAsText(IFXJS_Context* cc,
+                               const CJS_Parameters& params,
+                               CJS_Value& vRet,
+                               CFX_WideString& sError) {
+  // Unsafe, not supported.
+  return TRUE;
 }
 
-FX_BOOL Document::exportAsFDF(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    // Unsafe, not supported.
-    return TRUE;
+FX_BOOL Document::exportAsFDF(IFXJS_Context* cc,
+                              const CJS_Parameters& params,
+                              CJS_Value& vRet,
+                              CFX_WideString& sError) {
+  // Unsafe, not supported.
+  return TRUE;
 }
 
-FX_BOOL Document::exportAsXFDF(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    // Unsafe, not supported.
-    return TRUE;
+FX_BOOL Document::exportAsXFDF(IFXJS_Context* cc,
+                               const CJS_Parameters& params,
+                               CJS_Value& vRet,
+                               CFX_WideString& sError) {
+  // Unsafe, not supported.
+  return TRUE;
 }
 
-//Maps a field object in PDF document to a JavaScript variable
-//comment:
-//note: the paremter cName, this is clue how to treat if the cName is not a valiable filed name in this document
+// Maps a field object in PDF document to a JavaScript variable
+// comment:
+// note: the paremter cName, this is clue how to treat if the cName is not a
+// valiable filed name in this document
 
-FX_BOOL Document::getField(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context*)cc;
-    if (params.size() < 1) {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
+FX_BOOL Document::getField(IFXJS_Context* cc,
+                           const CJS_Parameters& params,
+                           CJS_Value& vRet,
+                           CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  if (params.size() < 1) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-    CFX_WideString wideName = params[0].ToCFXWideString();
+  CFX_WideString wideName = params[0].ToCFXWideString();
 
-    CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
-    CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
-    if (pPDFForm->CountFields(wideName) <= 0)
-    {
-        vRet.SetNull();
-        return TRUE;
-    }
+  CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
+  CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
+  if (pPDFForm->CountFields(wideName) <= 0) {
+    vRet.SetNull();
+    return TRUE;
+  }
 
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    JSFXObject pFieldObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"Field"));
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  JSFXObject pFieldObj = JS_NewFxDynamicObj(
+      *pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"Field"));
 
-    v8::Isolate* isolate = GetIsolate(cc);
-    CJS_Field* pJSField = (CJS_Field*)JS_GetPrivate(isolate,pFieldObj);
-    Field* pField = (Field *)pJSField->GetEmbedObject();
-    pField->AttachField(this, wideName);
+  v8::Isolate* isolate = GetIsolate(cc);
+  CJS_Field* pJSField = (CJS_Field*)JS_GetPrivate(isolate, pFieldObj);
+  Field* pField = (Field*)pJSField->GetEmbedObject();
+  pField->AttachField(this, wideName);
 
-    vRet = pJSField;
-    return TRUE;
+  vRet = pJSField;
+  return TRUE;
 }
 
-//Gets the name of the nth field in the document
-FX_BOOL Document::getNthFieldName(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context*)cc;
-    if (params.size() != 1) {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
+// Gets the name of the nth field in the document
+FX_BOOL Document::getNthFieldName(IFXJS_Context* cc,
+                                  const CJS_Parameters& params,
+                                  CJS_Value& vRet,
+                                  CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  if (params.size() != 1) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-    int nIndex = params[0].ToInt();
-    if (nIndex < 0) {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR);
-        return FALSE;
-    }
+  int nIndex = params[0].ToInt();
+  if (nIndex < 0) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR);
+    return FALSE;
+  }
 
-    CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
-    CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
-    CPDF_FormField* pField = pPDFForm->GetField(nIndex);
-    if (!pField)
-        return FALSE;
+  CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
+  CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
+  CPDF_FormField* pField = pPDFForm->GetField(nIndex);
+  if (!pField)
+    return FALSE;
 
-    vRet = pField->GetFullName().c_str();
-    return TRUE;
+  vRet = pField->GetFullName().c_str();
+  return TRUE;
 }
 
-FX_BOOL Document::importAnFDF(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    // Unsafe, not supported.
-    return TRUE;
+FX_BOOL Document::importAnFDF(IFXJS_Context* cc,
+                              const CJS_Parameters& params,
+                              CJS_Value& vRet,
+                              CFX_WideString& sError) {
+  // Unsafe, not supported.
+  return TRUE;
 }
 
-FX_BOOL Document::importAnXFDF(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    // Unsafe, not supported.
-    return TRUE;
+FX_BOOL Document::importAnXFDF(IFXJS_Context* cc,
+                               const CJS_Parameters& params,
+                               CJS_Value& vRet,
+                               CFX_WideString& sError) {
+  // Unsafe, not supported.
+  return TRUE;
 }
 
-FX_BOOL Document::importTextData(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    // Unsafe, not supported.
-    return TRUE;
+FX_BOOL Document::importTextData(IFXJS_Context* cc,
+                                 const CJS_Parameters& params,
+                                 CJS_Value& vRet,
+                                 CFX_WideString& sError) {
+  // Unsafe, not supported.
+  return TRUE;
 }
 
-//exports the form data and mails the resulting fdf file as an attachment to all recipients.
-//comment: need reader supports
-//note:
-//int CPDFSDK_Document::mailForm(FX_BOOL bUI,String cto,string ccc,string cbcc,string cSubject,string cms);
+// exports the form data and mails the resulting fdf file as an attachment to
+// all recipients.
+// comment: need reader supports
+// note:
+// int CPDFSDK_Document::mailForm(FX_BOOL bUI,String cto,string ccc,string
+// cbcc,string cSubject,string cms);
 
-FX_BOOL Document::mailForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Document::mailForm(IFXJS_Context* cc,
+                           const CJS_Parameters& params,
+                           CJS_Value& vRet,
+                           CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE;
-
-    int iLength = params.size();
+  if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS))
+    return FALSE;
 
-    FX_BOOL bUI = iLength > 0 ? params[0].ToBool() : TRUE;
-    CFX_WideString cTo = iLength > 1 ? params[1].ToCFXWideString() : L"";
-    CFX_WideString cCc = iLength > 2 ? params[2].ToCFXWideString() : L"";
-    CFX_WideString cBcc = iLength > 3 ? params[3].ToCFXWideString() : L"";
-    CFX_WideString cSubject = iLength > 4 ? params[4].ToCFXWideString() : L"";
-    CFX_WideString cMsg = iLength > 5 ? params[5].ToCFXWideString() : L"";
+  int iLength = params.size();
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  FX_BOOL bUI = iLength > 0 ? params[0].ToBool() : TRUE;
+  CFX_WideString cTo = iLength > 1 ? params[1].ToCFXWideString() : L"";
+  CFX_WideString cCc = iLength > 2 ? params[2].ToCFXWideString() : L"";
+  CFX_WideString cBcc = iLength > 3 ? params[3].ToCFXWideString() : L"";
+  CFX_WideString cSubject = iLength > 4 ? params[4].ToCFXWideString() : L"";
+  CFX_WideString cMsg = iLength > 5 ? params[5].ToCFXWideString() : L"";
 
-    CFX_ByteTextBuf textBuf;
-    if (!pInterForm->ExportFormToFDFTextBuf(textBuf))
-        return FALSE;
+  CPDFSDK_InterForm* pInterForm =
+      (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    CJS_Context* pContext = (CJS_Context*)cc;
-    ASSERT(pContext != NULL);
-    CPDFDoc_Environment* pEnv = pContext->GetReaderApp();
-    ASSERT(pEnv != NULL);
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    ASSERT(pRuntime != NULL);
+  CFX_ByteTextBuf textBuf;
+  if (!pInterForm->ExportFormToFDFTextBuf(textBuf))
+    return FALSE;
 
-    pRuntime->BeginBlock();
-    pEnv->JS_docmailForm(textBuf.GetBuffer(), textBuf.GetLength(), bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str());
-    pRuntime->EndBlock();
-    return TRUE;
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CPDFDoc_Environment* pEnv = pContext->GetReaderApp();
+  ASSERT(pEnv != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
+
+  pRuntime->BeginBlock();
+  pEnv->JS_docmailForm(textBuf.GetBuffer(), textBuf.GetLength(), bUI,
+                       cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(),
+                       cMsg.c_str());
+  pRuntime->EndBlock();
+  return TRUE;
 }
 
-FX_BOOL Document::print(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context*)cc;
-    ASSERT(pContext != NULL);
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    ASSERT(pRuntime != NULL);
-
-    FX_BOOL bUI = TRUE;
-    int nStart = 0;
-    int nEnd = 0;
-    FX_BOOL bSilent = FALSE;
-    FX_BOOL bShrinkToFit = FALSE;
-    FX_BOOL bPrintAsImage = FALSE;
-    FX_BOOL bReverse = FALSE;
-    FX_BOOL bAnnotations = FALSE;
-
-    int nlength = params.size();
-    if(nlength ==9)
-    {
-        if (params[8].GetType() == VT_fxobject)
-        {
-            JSFXObject pObj = params[8].ToV8Object();
-            {
-                if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"PrintParamsObj"))
-                {
-                    if (CJS_Object* pJSObj = params[8].ToCJSObject())
-                    {
-                            if (PrintParamsObj* pprintparamsObj = (PrintParamsObj*)pJSObj->GetEmbedObject())
-                            {
-                                bUI = pprintparamsObj->bUI;
-                                nStart = pprintparamsObj->nStart;
-                                nEnd = pprintparamsObj->nEnd;
-                                bSilent = pprintparamsObj->bSilent;
-                                bShrinkToFit = pprintparamsObj->bShrinkToFit;
-                                bPrintAsImage = pprintparamsObj->bPrintAsImage;
-                                bReverse = pprintparamsObj->bReverse;
-                                bAnnotations = pprintparamsObj->bAnnotations;
-                            }
-                    }
-                }
+FX_BOOL Document::print(IFXJS_Context* cc,
+                        const CJS_Parameters& params,
+                        CJS_Value& vRet,
+                        CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
+
+  FX_BOOL bUI = TRUE;
+  int nStart = 0;
+  int nEnd = 0;
+  FX_BOOL bSilent = FALSE;
+  FX_BOOL bShrinkToFit = FALSE;
+  FX_BOOL bPrintAsImage = FALSE;
+  FX_BOOL bReverse = FALSE;
+  FX_BOOL bAnnotations = FALSE;
+
+  int nlength = params.size();
+  if (nlength == 9) {
+    if (params[8].GetType() == VT_fxobject) {
+      JSFXObject pObj = params[8].ToV8Object();
+      {
+        if (JS_GetObjDefnID(pObj) ==
+            JS_GetObjDefnID(*pRuntime, L"PrintParamsObj")) {
+          if (CJS_Object* pJSObj = params[8].ToCJSObject()) {
+            if (PrintParamsObj* pprintparamsObj =
+                    (PrintParamsObj*)pJSObj->GetEmbedObject()) {
+              bUI = pprintparamsObj->bUI;
+              nStart = pprintparamsObj->nStart;
+              nEnd = pprintparamsObj->nEnd;
+              bSilent = pprintparamsObj->bSilent;
+              bShrinkToFit = pprintparamsObj->bShrinkToFit;
+              bPrintAsImage = pprintparamsObj->bPrintAsImage;
+              bReverse = pprintparamsObj->bReverse;
+              bAnnotations = pprintparamsObj->bAnnotations;
             }
+          }
         }
-    }
-    else
-    {
-        if(nlength >= 1)
-            bUI = params[0].ToBool();
-        if(nlength >= 2)
-            nStart = params[1].ToInt();
-        if(nlength >= 3)
-            nEnd = params[2].ToInt();
-        if(nlength >= 4)
-            bSilent = params[3].ToBool();
-        if(nlength >= 5)
-            bShrinkToFit = params[4].ToBool();
-        if(nlength >= 6)
-            bPrintAsImage = params[5].ToBool();
-        if(nlength >= 7)
-            bReverse = params[6].ToBool();
-        if(nlength >= 8)
-            bAnnotations = params[7].ToBool();
-    }
-
-    ASSERT(m_pDocument != NULL);
-
-    if (CPDFDoc_Environment* pEnv = m_pDocument->GetEnv())
-    {
-        pEnv->JS_docprint(bUI, nStart, nEnd, bSilent, bShrinkToFit, bPrintAsImage, bReverse, bAnnotations);
-        return TRUE;
-    }
-    return FALSE;
+      }
+    }
+  } else {
+    if (nlength >= 1)
+      bUI = params[0].ToBool();
+    if (nlength >= 2)
+      nStart = params[1].ToInt();
+    if (nlength >= 3)
+      nEnd = params[2].ToInt();
+    if (nlength >= 4)
+      bSilent = params[3].ToBool();
+    if (nlength >= 5)
+      bShrinkToFit = params[4].ToBool();
+    if (nlength >= 6)
+      bPrintAsImage = params[5].ToBool();
+    if (nlength >= 7)
+      bReverse = params[6].ToBool();
+    if (nlength >= 8)
+      bAnnotations = params[7].ToBool();
+  }
+
+  ASSERT(m_pDocument != NULL);
+
+  if (CPDFDoc_Environment* pEnv = m_pDocument->GetEnv()) {
+    pEnv->JS_docprint(bUI, nStart, nEnd, bSilent, bShrinkToFit, bPrintAsImage,
+                      bReverse, bAnnotations);
+    return TRUE;
+  }
+  return FALSE;
 }
 
-//removes the specified field from the document.
-//comment:
-//note: if the filed name is not retional, adobe is dumb for it.
+// removes the specified field from the document.
+// comment:
+// note: if the filed name is not retional, adobe is dumb for it.
 
-FX_BOOL Document::removeField(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Document::removeField(IFXJS_Context* cc,
+                              const CJS_Parameters& params,
+                              CJS_Value& vRet,
+                              CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
-        m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM))) return FALSE;
+  if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
+        m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM)))
+    return FALSE;
 
-    CJS_Context* pContext = (CJS_Context*)cc;
-    if (params.size() != 1) {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
+  CJS_Context* pContext = (CJS_Context*)cc;
+  if (params.size() != 1) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-    CFX_WideString sFieldName = params[0].ToCFXWideString();
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  CFX_WideString sFieldName = params[0].ToCFXWideString();
+  CPDFSDK_InterForm* pInterForm =
+      (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    CFX_PtrArray widgets;
-    pInterForm->GetWidgets(sFieldName, widgets);
+  CFX_PtrArray widgets;
+  pInterForm->GetWidgets(sFieldName, widgets);
 
-    int nSize = widgets.GetSize();
+  int nSize = widgets.GetSize();
 
-    if (nSize > 0)
-    {
-        for (int i=0; i<nSize; i++)
-        {
-            CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)widgets[i];
-            ASSERT(pWidget != NULL);
+  if (nSize > 0) {
+    for (int i = 0; i < nSize; i++) {
+      CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)widgets[i];
+      ASSERT(pWidget != NULL);
 
-            CPDF_Rect rcAnnot = pWidget->GetRect();
-            rcAnnot.left -= 1;
-            rcAnnot.bottom -= 1;
-            rcAnnot.right += 1;
-            rcAnnot.top += 1;
+      CPDF_Rect rcAnnot = pWidget->GetRect();
+      rcAnnot.left -= 1;
+      rcAnnot.bottom -= 1;
+      rcAnnot.right += 1;
+      rcAnnot.top += 1;
 
-            CFX_RectArray aRefresh;
-            aRefresh.Add(rcAnnot);
+      CFX_RectArray aRefresh;
+      aRefresh.Add(rcAnnot);
 
-			CPDFXFA_Page* pPage = pWidget->GetPDFXFAPage();
-			ASSERT(pPage != NULL);
+      CPDFXFA_Page* pPage = pWidget->GetPDFXFAPage();
+      ASSERT(pPage != NULL);
 
-            CPDFSDK_PageView* pPageView = m_pDocument->GetPageView(pPage);
-            pPageView->DeleteAnnot(pWidget);
+      CPDFSDK_PageView* pPageView = m_pDocument->GetPageView(pPage);
+      pPageView->DeleteAnnot(pWidget);
 
-            pPageView->UpdateRects(aRefresh);
-        }
-        m_pDocument->SetChangeMark();
+      pPageView->UpdateRects(aRefresh);
     }
+    m_pDocument->SetChangeMark();
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-//reset filed values within a document.
-//comment:
-//note: if the fields names r not rational, aodbe is dumb for it.
+// reset filed values within a document.
+// comment:
+// note: if the fields names r not rational, aodbe is dumb for it.
 
-FX_BOOL Document::resetForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Document::resetForm(IFXJS_Context* cc,
+                            const CJS_Parameters& params,
+                            CJS_Value& vRet,
+                            CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
+  if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
         m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM) ||
-        m_pDocument->GetPermissions(FPDFPERM_FILL_FORM))) return FALSE;
+        m_pDocument->GetPermissions(FPDFPERM_FILL_FORM)))
+    return FALSE;
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  CPDFSDK_InterForm* pInterForm =
+      (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
-    ASSERT(pPDFForm != NULL);
-
-    v8::Isolate* isolate = GetIsolate(cc);
-    CJS_Array aName(isolate);
-
-    if (params.size() > 0)
-    {
-        switch (params[0].GetType())
-        {
-        default:
-            aName.Attach(params[0].ToV8Array());
-            break;
-        case VT_string:
-            aName.SetElement(0,params[0]);
-            break;
-        }
+  CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
+  ASSERT(pPDFForm != NULL);
 
-        CFX_PtrArray aFields;
+  v8::Isolate* isolate = GetIsolate(cc);
+  CJS_Array aName(isolate);
 
-        for (int i=0,isz=aName.GetLength(); i<isz; i++)
-        {
-            CJS_Value valElement(isolate);
-            aName.GetElement(i,valElement);
-            CFX_WideString swVal = valElement.ToCFXWideString();
+  if (params.size() > 0) {
+    switch (params[0].GetType()) {
+      default:
+        aName.Attach(params[0].ToV8Array());
+        break;
+      case VT_string:
+        aName.SetElement(0, params[0]);
+        break;
+    }
 
-            for (int j=0,jsz=pPDFForm->CountFields(swVal); j<jsz; j++)
-            {
-                aFields.Add((void*)pPDFForm->GetField(j,swVal));
-            }
-        }
+    CFX_PtrArray aFields;
 
-        if (aFields.GetSize() > 0)
-        {
-            pPDFForm->ResetForm(aFields, TRUE, TRUE);
-            m_pDocument->SetChangeMark();
+    for (int i = 0, isz = aName.GetLength(); i < isz; i++) {
+      CJS_Value valElement(isolate);
+      aName.GetElement(i, valElement);
+      CFX_WideString swVal = valElement.ToCFXWideString();
 
-        }
+      for (int j = 0, jsz = pPDFForm->CountFields(swVal); j < jsz; j++) {
+        aFields.Add((void*)pPDFForm->GetField(j, swVal));
+      }
     }
-    else
-    {
-        pPDFForm->ResetForm(TRUE);
-        m_pDocument->SetChangeMark();
 
+    if (aFields.GetSize() > 0) {
+      pPDFForm->ResetForm(aFields, TRUE, TRUE);
+      m_pDocument->SetChangeMark();
     }
+  } else {
+    pPDFForm->ResetForm(TRUE);
+    m_pDocument->SetChangeMark();
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-
-FX_BOOL Document::saveAs(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL Document::saveAs(IFXJS_Context* cc,
+                         const CJS_Parameters& params,
+                         CJS_Value& vRet,
+                         CFX_WideString& sError) {
   // Unsafe, not supported.
   return TRUE;
 }
 
-
-FX_BOOL Document::submitForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-    CJS_Context* pContext = (CJS_Context*)cc;
-    int nSize = params.size();
-    if (nSize < 1) {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
+FX_BOOL Document::submitForm(IFXJS_Context* cc,
+                             const CJS_Parameters& params,
+                             CJS_Value& vRet,
+                             CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
+  CJS_Context* pContext = (CJS_Context*)cc;
+  int nSize = params.size();
+  if (nSize < 1) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  CFX_WideString strURL;
+  FX_BOOL bFDF = TRUE;
+  FX_BOOL bEmpty = FALSE;
+  v8::Isolate* isolate = GetIsolate(cc);
+  CJS_Array aFields(isolate);
+
+  CJS_Value v = params[0];
+  if (v.GetType() == VT_string) {
+    strURL = params[0].ToCFXWideString();
+    if (nSize > 1)
+      bFDF = params[1].ToBool();
+    if (nSize > 2)
+      bEmpty = params[2].ToBool();
+    if (nSize > 3)
+      aFields.Attach(params[3].ToV8Array());
+  } else if (v.GetType() == VT_object) {
+    JSObject pObj = params[0].ToV8Object();
+    v8::Local<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"cURL");
+    if (!pValue.IsEmpty())
+      strURL =
+          CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+    pValue = JS_GetObjectElement(isolate, pObj, L"bFDF");
+    bFDF = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
+    pValue = JS_GetObjectElement(isolate, pObj, L"bEmpty");
+    bEmpty = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
+    pValue = JS_GetObjectElement(isolate, pObj, L"aFields");
+    aFields.Attach(
+        CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToV8Array());
+  }
+
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  CPDFSDK_InterForm* pInterForm =
+      (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
+  CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm();
+  FX_BOOL bAll = (aFields.GetLength() == 0);
+  if (bAll && bEmpty) {
+    if (pPDFInterForm->CheckRequiredFields()) {
+      pRuntime->BeginBlock();
+      pInterForm->SubmitForm(strURL, FALSE);
+      pRuntime->EndBlock();
     }
+    return TRUE;
+  }
 
-    CFX_WideString strURL;
-    FX_BOOL bFDF = TRUE;
-    FX_BOOL bEmpty = FALSE;
-    v8::Isolate* isolate = GetIsolate(cc);
-    CJS_Array aFields(isolate);
-
-    CJS_Value v = params[0];
-    if (v.GetType() == VT_string)
-    {
-        strURL = params[0].ToCFXWideString();
-        if (nSize > 1)
-            bFDF = params[1].ToBool();
-        if (nSize > 2)
-            bEmpty = params[2].ToBool();
-        if (nSize > 3)
-            aFields.Attach(params[3].ToV8Array());
-    }
-    else if (v.GetType() == VT_object)
-    {
-        JSObject pObj = params[0].ToV8Object();
-        v8::Local<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"cURL");
-        if (!pValue.IsEmpty())
-            strURL = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
-        pValue = JS_GetObjectElement(isolate, pObj, L"bFDF");
-        bFDF = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
-        pValue = JS_GetObjectElement(isolate, pObj, L"bEmpty");
-        bEmpty = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
-        pValue = JS_GetObjectElement(isolate, pObj,L"aFields");
-        aFields.Attach(CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToV8Array());
-    }
+  CFX_PtrArray fieldObjects;
+  for (int i = 0, sz = aFields.GetLength(); i < sz; i++) {
+    CJS_Value valName(isolate);
+    aFields.GetElement(i, valName);
 
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-    CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm();
-    FX_BOOL bAll = (aFields.GetLength() == 0);
-    if (bAll && bEmpty)
-    {
-        if (pPDFInterForm->CheckRequiredFields())
-        {
-            pRuntime->BeginBlock();
-            pInterForm->SubmitForm(strURL, FALSE);
-            pRuntime->EndBlock();
-        }
-        return TRUE;
-    }
+    CFX_WideString sName = valName.ToCFXWideString();
+    CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
+    for (int j = 0, jsz = pPDFForm->CountFields(sName); j < jsz; ++j) {
+      CPDF_FormField* pField = pPDFForm->GetField(j, sName);
+      if (!bEmpty && pField->GetValue().IsEmpty())
+        continue;
 
-    CFX_PtrArray fieldObjects;
-    for (int i=0,sz=aFields.GetLength(); i<sz; i++)
-    {
-        CJS_Value valName(isolate);
-        aFields.GetElement(i, valName);
-
-        CFX_WideString sName = valName.ToCFXWideString();
-        CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
-        for (int j = 0, jsz = pPDFForm->CountFields(sName); j < jsz; ++j)
-        {
-            CPDF_FormField* pField = pPDFForm->GetField(j, sName);
-            if (!bEmpty && pField->GetValue().IsEmpty())
-                continue;
-
-            fieldObjects.Add(pField);
-        }
+      fieldObjects.Add(pField);
     }
+  }
 
-    if (pPDFInterForm->CheckRequiredFields(&fieldObjects, TRUE))
-    {
-        pRuntime->BeginBlock();
-        pInterForm->SubmitFields(strURL, fieldObjects, TRUE, !bFDF);
-        pRuntime->EndBlock();
-    }
-    return TRUE;
+  if (pPDFInterForm->CheckRequiredFields(&fieldObjects, TRUE)) {
+    pRuntime->BeginBlock();
+    pInterForm->SubmitFields(strURL, fieldObjects, TRUE, !bFDF);
+    pRuntime->EndBlock();
+  }
+  return TRUE;
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////////
 
-void Document::AttachDoc(CPDFSDK_Document *pDoc)
-{
-    m_pDocument = pDoc;
+void Document::AttachDoc(CPDFSDK_Document* pDoc) {
+  m_pDocument = pDoc;
 }
 
-CPDFSDK_Document * Document::GetReaderDoc()
-{
-    return m_pDocument;
+CPDFSDK_Document* Document::GetReaderDoc() {
+  return m_pDocument;
 }
 
-FX_BOOL Document::ExtractFileName(CPDFSDK_Document *pDoc,CFX_ByteString &strFileName)
-{
-    return FALSE;
+FX_BOOL Document::ExtractFileName(CPDFSDK_Document* pDoc,
+                                  CFX_ByteString& strFileName) {
+  return FALSE;
 }
 
-FX_BOOL Document::ExtractFolderName(CPDFSDK_Document *pDoc,CFX_ByteString &strFolderName)
-{
-    return FALSE;
+FX_BOOL Document::ExtractFolderName(CPDFSDK_Document* pDoc,
+                                    CFX_ByteString& strFolderName) {
+  return FALSE;
 }
 
-FX_BOOL Document::bookmarkRoot(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Document::bookmarkRoot(IFXJS_Context* cc,
+                               CJS_PropValue& vp,
+                               CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::mailDoc(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-
-    FX_BOOL bUI = TRUE;
-    CFX_WideString cTo = L"";
-    CFX_WideString cCc = L"";
-    CFX_WideString cBcc = L"";
-    CFX_WideString cSubject = L"";
-    CFX_WideString cMsg = L"";
-
-    if (params.size() >= 1)
-        bUI = params[0].ToBool();
-    if (params.size() >= 2)
-        cTo = params[1].ToCFXWideString();
-    if (params.size() >= 3)
-        cCc = params[2].ToCFXWideString();
-    if (params.size() >= 4)
-        cBcc = params[3].ToCFXWideString();
-    if (params.size() >= 5)
-        cSubject = params[4].ToCFXWideString();
-    if (params.size() >= 6)
-        cMsg = params[5].ToCFXWideString();
+FX_BOOL Document::mailDoc(IFXJS_Context* cc,
+                          const CJS_Parameters& params,
+                          CJS_Value& vRet,
+                          CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
+
+  FX_BOOL bUI = TRUE;
+  CFX_WideString cTo = L"";
+  CFX_WideString cCc = L"";
+  CFX_WideString cBcc = L"";
+  CFX_WideString cSubject = L"";
+  CFX_WideString cMsg = L"";
+
+  if (params.size() >= 1)
+    bUI = params[0].ToBool();
+  if (params.size() >= 2)
+    cTo = params[1].ToCFXWideString();
+  if (params.size() >= 3)
+    cCc = params[2].ToCFXWideString();
+  if (params.size() >= 4)
+    cBcc = params[3].ToCFXWideString();
+  if (params.size() >= 5)
+    cSubject = params[4].ToCFXWideString();
+  if (params.size() >= 6)
+    cMsg = params[5].ToCFXWideString();
+
+  v8::Isolate* isolate = GetIsolate(cc);
+
+  if (params.size() >= 1 && params[0].GetType() == VT_object) {
+    JSObject pObj = params[0].ToV8Object();
+
+    v8::Local<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"bUI");
+    bUI = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToInt();
+
+    pValue = JS_GetObjectElement(isolate, pObj, L"cTo");
+    cTo = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+
+    pValue = JS_GetObjectElement(isolate, pObj, L"cCc");
+    cCc = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+
+    pValue = JS_GetObjectElement(isolate, pObj, L"cBcc");
+    cBcc = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+
+    pValue = JS_GetObjectElement(isolate, pObj, L"cSubject");
+    cSubject =
+        CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+
+    pValue = JS_GetObjectElement(isolate, pObj, L"cMsg");
+    cMsg = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+  }
+
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
+
+  pRuntime->BeginBlock();
+  CPDFDoc_Environment* pEnv = pRuntime->GetReaderApp();
+  pEnv->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(),
+                       cBcc.c_str(), cMsg.c_str());
+  pRuntime->EndBlock();
 
-    v8::Isolate* isolate = GetIsolate(cc);
-
-    if(params.size() >= 1 && params[0].GetType() == VT_object)
-    {
-        JSObject pObj = params[0].ToV8Object();
-
-        v8::Local<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"bUI");
-        bUI = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToInt();
-
-        pValue = JS_GetObjectElement(isolate,pObj, L"cTo");
-        cTo = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
+  return TRUE;
+}
 
-        pValue = JS_GetObjectElement(isolate,pObj, L"cCc");
-        cCc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
+FX_BOOL Document::author(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-        pValue = JS_GetObjectElement(isolate,pObj, L"cBcc");
-        cBcc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
+  CPDF_Dictionary* pDictionary =
+      m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
+  if (!pDictionary)
+    return FALSE;
 
-        pValue = JS_GetObjectElement(isolate,pObj, L"cSubject");
-        cSubject = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
+  if (vp.IsGetting()) {
+    vp << pDictionary->GetUnicodeText("Author");
+    return TRUE;
+  } else {
+    if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
+      return FALSE;
+
+    CFX_WideString csAuthor;
+    vp >> csAuthor;
+    pDictionary->SetAtString("Author", PDF_EncodeText(csAuthor));
+    m_pDocument->SetChangeMark();
+    return TRUE;
+  }
+}
 
-        pValue = JS_GetObjectElement(isolate,pObj, L"cMsg");
-        cMsg = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
+FX_BOOL Document::info(IFXJS_Context* cc,
+                       CJS_PropValue& vp,
+                       CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    }
+  CPDF_Dictionary* pDictionary =
+      m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
+  if (!pDictionary)
+    return FALSE;
 
+  CFX_WideString cwAuthor = pDictionary->GetUnicodeText("Author");
+  CFX_WideString cwTitle = pDictionary->GetUnicodeText("Title");
+  CFX_WideString cwSubject = pDictionary->GetUnicodeText("Subject");
+  CFX_WideString cwKeywords = pDictionary->GetUnicodeText("Keywords");
+  CFX_WideString cwCreator = pDictionary->GetUnicodeText("Creator");
+  CFX_WideString cwProducer = pDictionary->GetUnicodeText("Producer");
+  CFX_WideString cwCreationDate = pDictionary->GetUnicodeText("CreationDate");
+  CFX_WideString cwModDate = pDictionary->GetUnicodeText("ModDate");
+  CFX_WideString cwTrapped = pDictionary->GetUnicodeText("Trapped");
+
+  v8::Isolate* isolate = GetIsolate(cc);
+  if (vp.IsGetting()) {
     CJS_Context* pContext = (CJS_Context*)cc;
-    ASSERT(pContext != NULL);
     CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    ASSERT(pRuntime != NULL);
-
-    pRuntime->BeginBlock();
-    CPDFDoc_Environment* pEnv = pRuntime->GetReaderApp();
-    pEnv->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str());
-    pRuntime->EndBlock();
 
+    JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext, -1);
+
+    JS_PutObjectString(isolate, pObj, L"Author", cwAuthor.c_str());
+    JS_PutObjectString(isolate, pObj, L"Title", cwTitle.c_str());
+    JS_PutObjectString(isolate, pObj, L"Subject", cwSubject.c_str());
+    JS_PutObjectString(isolate, pObj, L"Keywords", cwKeywords.c_str());
+    JS_PutObjectString(isolate, pObj, L"Creator", cwCreator.c_str());
+    JS_PutObjectString(isolate, pObj, L"Producer", cwProducer.c_str());
+    JS_PutObjectString(isolate, pObj, L"CreationDate", cwCreationDate.c_str());
+    JS_PutObjectString(isolate, pObj, L"ModDate", cwModDate.c_str());
+    JS_PutObjectString(isolate, pObj, L"Trapped", cwTrapped.c_str());
+
+    // It's to be compatible to non-standard info dictionary.
+    FX_POSITION pos = pDictionary->GetStartPos();
+    while (pos) {
+      CFX_ByteString bsKey;
+      CPDF_Object* pValueObj = pDictionary->GetNextElement(pos, bsKey);
+      CFX_WideString wsKey = CFX_WideString::FromUTF8(bsKey, bsKey.GetLength());
+      if ((pValueObj->GetType() == PDFOBJ_STRING) ||
+          (pValueObj->GetType() == PDFOBJ_NAME))
+        JS_PutObjectString(isolate, pObj, wsKey.c_str(),
+                           pValueObj->GetUnicodeText().c_str());
+      if (pValueObj->GetType() == PDFOBJ_NUMBER)
+        JS_PutObjectNumber(isolate, pObj, wsKey.c_str(),
+                           (float)pValueObj->GetNumber());
+      if (pValueObj->GetType() == PDFOBJ_BOOLEAN)
+        JS_PutObjectBoolean(isolate, pObj, wsKey.c_str(),
+                            (bool)pValueObj->GetInteger());
+    }
+
+    vp << pObj;
+    return TRUE;
+  } else {
     return TRUE;
+  }
 }
 
-FX_BOOL Document::author(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-
-	CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
-	if (!pDictionary)return FALSE;
+FX_BOOL Document::creationDate(IFXJS_Context* cc,
+                               CJS_PropValue& vp,
+                               CFX_WideString& sError) {
+  CPDF_Dictionary* pDictionary =
+      m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
+  if (!pDictionary)
+    return FALSE;
 
-    if (vp.IsGetting())
-    {
-        vp << pDictionary->GetUnicodeText("Author");
-        return TRUE;
-    }
-    else
-    {
-        if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY)) return FALSE;
-
-        CFX_WideString csAuthor;
-        vp >> csAuthor;
-        pDictionary->SetAtString("Author", PDF_EncodeText(csAuthor));
-        m_pDocument->SetChangeMark();
-        return TRUE;
-    }
+  if (vp.IsGetting()) {
+    vp << pDictionary->GetUnicodeText("CreationDate");
+  } else {
+    if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
+      return FALSE;
+
+    CFX_WideString csCreationDate;
+    vp >> csCreationDate;
+    pDictionary->SetAtString("CreationDate", PDF_EncodeText(csCreationDate));
+    m_pDocument->SetChangeMark();
+  }
+  return TRUE;
 }
 
-FX_BOOL Document::info(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	ASSERT(m_pDocument != NULL);
-
-	CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
-	if (!pDictionary)return FALSE;
-
-	CFX_WideString cwAuthor			= pDictionary->GetUnicodeText("Author");
-	CFX_WideString cwTitle			= pDictionary->GetUnicodeText("Title");
-	CFX_WideString cwSubject		= pDictionary->GetUnicodeText("Subject");
-	CFX_WideString cwKeywords		= pDictionary->GetUnicodeText("Keywords");
-	CFX_WideString cwCreator		= pDictionary->GetUnicodeText("Creator");
-	CFX_WideString cwProducer		= pDictionary->GetUnicodeText("Producer");
-	CFX_WideString cwCreationDate	= pDictionary->GetUnicodeText("CreationDate");
-	CFX_WideString cwModDate		= pDictionary->GetUnicodeText("ModDate");
-	CFX_WideString cwTrapped		= pDictionary->GetUnicodeText("Trapped");
-
-	v8::Isolate* isolate = GetIsolate(cc);
-	if (vp.IsGetting())
-	{
-		CJS_Context* pContext = (CJS_Context *)cc;
-		CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-
-		JSFXObject  pObj = JS_NewFxDynamicObj(*pRuntime, pContext, -1);
-
-		JS_PutObjectString(isolate, pObj, L"Author", cwAuthor.c_str());
-		JS_PutObjectString(isolate, pObj, L"Title", cwTitle.c_str());
-		JS_PutObjectString(isolate, pObj, L"Subject", cwSubject.c_str());
-		JS_PutObjectString(isolate, pObj, L"Keywords", cwKeywords.c_str());
-		JS_PutObjectString(isolate, pObj, L"Creator", cwCreator.c_str());
-		JS_PutObjectString(isolate, pObj, L"Producer", cwProducer.c_str());
-		JS_PutObjectString(isolate, pObj, L"CreationDate", cwCreationDate.c_str());
-		JS_PutObjectString(isolate, pObj, L"ModDate", cwModDate.c_str());
-		JS_PutObjectString(isolate, pObj, L"Trapped", cwTrapped.c_str());
-
-// It's to be compatible to non-standard info dictionary.
-		FX_POSITION pos = pDictionary->GetStartPos();
-		while(pos)
-		{
-			CFX_ByteString bsKey;
-			CPDF_Object* pValueObj = pDictionary->GetNextElement(pos, bsKey);
-			CFX_WideString wsKey  = CFX_WideString::FromUTF8(bsKey, bsKey.GetLength());
-			if((pValueObj->GetType()==PDFOBJ_STRING) || (pValueObj->GetType()==PDFOBJ_NAME) )
-				JS_PutObjectString(isolate, pObj, wsKey.c_str(), pValueObj->GetUnicodeText().c_str());
-			if(pValueObj->GetType()==PDFOBJ_NUMBER)
-				JS_PutObjectNumber(isolate,pObj, wsKey.c_str(), (float)pValueObj->GetNumber());
-			if(pValueObj->GetType()==PDFOBJ_BOOLEAN)
-				JS_PutObjectBoolean(isolate,pObj, wsKey.c_str(), (bool)pValueObj->GetInteger());
-		}
-
-		vp << pObj;
-		return TRUE;
-	}
-	else
-	{
-		return TRUE;
-	}
-}
-
-FX_BOOL Document::creationDate(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
-	if (!pDictionary)
-        return FALSE;
+FX_BOOL Document::creator(IFXJS_Context* cc,
+                          CJS_PropValue& vp,
+                          CFX_WideString& sError) {
+  CPDF_Dictionary* pDictionary =
+      m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
+  if (!pDictionary)
+    return FALSE;
 
-	if (vp.IsGetting())
-	{
-		vp << pDictionary->GetUnicodeText("CreationDate");
-	}
-	else
-	{
-        if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
-            return FALSE;
-
-        CFX_WideString csCreationDate;
-        vp >> csCreationDate;
-        pDictionary->SetAtString("CreationDate", PDF_EncodeText(csCreationDate));
-        m_pDocument->SetChangeMark();
-    }
-    return TRUE;
+  if (vp.IsGetting()) {
+    vp << pDictionary->GetUnicodeText("Creator");
+  } else {
+    if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
+      return FALSE;
+
+    CFX_WideString csCreator;
+    vp >> csCreator;
+    pDictionary->SetAtString("Creator", PDF_EncodeText(csCreator));
+    m_pDocument->SetChangeMark();
+  }
+  return TRUE;
 }
 
-FX_BOOL Document::creator(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
-	if (!pDictionary)
-        return FALSE;
-
-    if (vp.IsGetting())
-    {
-        vp << pDictionary->GetUnicodeText("Creator");
-    }
-    else
-    {
-        if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
-            return FALSE;
-
-        CFX_WideString csCreator;
-        vp >> csCreator;
-        pDictionary->SetAtString("Creator", PDF_EncodeText(csCreator));
-        m_pDocument->SetChangeMark();
+FX_BOOL Document::delay(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  if (vp.IsGetting()) {
+    vp << m_bDelay;
+  } else {
+    if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
+      return FALSE;
+
+    vp >> m_bDelay;
+    if (m_bDelay) {
+      for (int i = 0, sz = m_DelayData.GetSize(); i < sz; i++)
+        delete m_DelayData.GetAt(i);
+
+      m_DelayData.RemoveAll();
+    } else {
+      for (int i = 0, sz = m_DelayData.GetSize(); i < sz; i++) {
+        if (CJS_DelayData* pData = m_DelayData.GetAt(i)) {
+          Field::DoDelay(m_pDocument, pData);
+          delete m_DelayData.GetAt(i);
+        }
+      }
+      m_DelayData.RemoveAll();
     }
-    return TRUE;
-}
-
-FX_BOOL Document::delay(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (vp.IsGetting())
-	{
-		vp << m_bDelay;
-	}
-	else
-	{
-		if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
-			return FALSE;
-
-		vp >> m_bDelay;
-		if (m_bDelay)
-		{
-			for (int i=0,sz=m_DelayData.GetSize(); i<sz; i++)
-				delete m_DelayData.GetAt(i);
-
-			m_DelayData.RemoveAll();
-		}
-		else
-		{
-			for (int i=0,sz=m_DelayData.GetSize(); i<sz; i++)
-			{
-				if (CJS_DelayData* pData = m_DelayData.GetAt(i))
-				{
-					Field::DoDelay(m_pDocument, pData);
-					delete m_DelayData.GetAt(i);
-				}
-			}
-			m_DelayData.RemoveAll();
-		}
-
-	}
-    return TRUE;
+  }
+  return TRUE;
 }
 
-FX_BOOL Document::keywords(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
-    if (!pDictionary)
-        return FALSE;
+FX_BOOL Document::keywords(IFXJS_Context* cc,
+                           CJS_PropValue& vp,
+                           CFX_WideString& sError) {
+  CPDF_Dictionary* pDictionary =
+      m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
+  if (!pDictionary)
+    return FALSE;
 
-    if (vp.IsGetting())
-    {
-        vp << pDictionary->GetUnicodeText("Keywords");
-    }
-    else
-    {
-        if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
-            return FALSE;
-
-        CFX_WideString csKeywords;
-        vp >> csKeywords;
-        pDictionary->SetAtString("Keywords", PDF_EncodeText(csKeywords));
-        m_pDocument->SetChangeMark();
-    }
-    return TRUE;
+  if (vp.IsGetting()) {
+    vp << pDictionary->GetUnicodeText("Keywords");
+  } else {
+    if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
+      return FALSE;
+
+    CFX_WideString csKeywords;
+    vp >> csKeywords;
+    pDictionary->SetAtString("Keywords", PDF_EncodeText(csKeywords));
+    m_pDocument->SetChangeMark();
+  }
+  return TRUE;
 }
 
-FX_BOOL Document::modDate(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
-    if (!pDictionary)
-        return FALSE;
+FX_BOOL Document::modDate(IFXJS_Context* cc,
+                          CJS_PropValue& vp,
+                          CFX_WideString& sError) {
+  CPDF_Dictionary* pDictionary =
+      m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
+  if (!pDictionary)
+    return FALSE;
 
-    if (vp.IsGetting())
-    {
-        vp << pDictionary->GetUnicodeText("ModDate");
-    }
-    else
-    {
-        if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
-            return FALSE;
-
-        CFX_WideString csmodDate;
-        vp >> csmodDate;
-        pDictionary->SetAtString("ModDate", PDF_EncodeText(csmodDate));
-        m_pDocument->SetChangeMark();
-    }
-    return TRUE;
+  if (vp.IsGetting()) {
+    vp << pDictionary->GetUnicodeText("ModDate");
+  } else {
+    if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
+      return FALSE;
+
+    CFX_WideString csmodDate;
+    vp >> csmodDate;
+    pDictionary->SetAtString("ModDate", PDF_EncodeText(csmodDate));
+    m_pDocument->SetChangeMark();
+  }
+  return TRUE;
 }
 
-FX_BOOL Document::producer(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
-    if (!pDictionary)
-        return FALSE;
+FX_BOOL Document::producer(IFXJS_Context* cc,
+                           CJS_PropValue& vp,
+                           CFX_WideString& sError) {
+  CPDF_Dictionary* pDictionary =
+      m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
+  if (!pDictionary)
+    return FALSE;
 
-    if (vp.IsGetting())
-    {
-        vp << pDictionary->GetUnicodeText("Producer");
-    }
-    else
-    {
-        if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
-            return FALSE;
-
-        CFX_WideString csproducer;
-        vp >> csproducer;
-        pDictionary->SetAtString("Producer", PDF_EncodeText(csproducer));
-        m_pDocument->SetChangeMark();
-    }
-    return TRUE;
+  if (vp.IsGetting()) {
+    vp << pDictionary->GetUnicodeText("Producer");
+  } else {
+    if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
+      return FALSE;
+
+    CFX_WideString csproducer;
+    vp >> csproducer;
+    pDictionary->SetAtString("Producer", PDF_EncodeText(csproducer));
+    m_pDocument->SetChangeMark();
+  }
+  return TRUE;
 }
 
-FX_BOOL Document::subject(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
-    if (!pDictionary)
-        return FALSE;
+FX_BOOL Document::subject(IFXJS_Context* cc,
+                          CJS_PropValue& vp,
+                          CFX_WideString& sError) {
+  CPDF_Dictionary* pDictionary =
+      m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
+  if (!pDictionary)
+    return FALSE;
 
-    if (vp.IsGetting())
-    {
-        vp << pDictionary->GetUnicodeText("Subject");
-    }
-    else
-    {
-        if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
-            return FALSE;
-
-        CFX_WideString cssubject;
-        vp >> cssubject;
-        pDictionary->SetAtString("Subject", PDF_EncodeText(cssubject));
-        m_pDocument->SetChangeMark();
-    }
-    return TRUE;
+  if (vp.IsGetting()) {
+    vp << pDictionary->GetUnicodeText("Subject");
+  } else {
+    if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
+      return FALSE;
+
+    CFX_WideString cssubject;
+    vp >> cssubject;
+    pDictionary->SetAtString("Subject", PDF_EncodeText(cssubject));
+    m_pDocument->SetChangeMark();
+  }
+  return TRUE;
 }
 
-FX_BOOL Document::title(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (m_pDocument == NULL || m_pDocument->GetDocument() == NULL)
-        return FALSE;
+FX_BOOL Document::title(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  if (m_pDocument == NULL || m_pDocument->GetDocument() == NULL)
+    return FALSE;
 
-	CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
-    if (!pDictionary)
-        return FALSE;
+  CPDF_Dictionary* pDictionary =
+      m_pDocument->GetDocument()->GetPDFDoc()->GetInfo();
+  if (!pDictionary)
+    return FALSE;
 
-    if (vp.IsGetting())
-    {
-        vp << pDictionary->GetUnicodeText("Title");
-    }
-    else
-    {
-        if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
-            return FALSE;
-
-        CFX_WideString cstitle;
-        vp >> cstitle;
-        pDictionary->SetAtString("Title", PDF_EncodeText(cstitle));
-        m_pDocument->SetChangeMark();
-    }
-    return TRUE;
+  if (vp.IsGetting()) {
+    vp << pDictionary->GetUnicodeText("Title");
+  } else {
+    if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
+      return FALSE;
+
+    CFX_WideString cstitle;
+    vp >> cstitle;
+    pDictionary->SetAtString("Title", PDF_EncodeText(cstitle));
+    m_pDocument->SetChangeMark();
+  }
+  return TRUE;
 }
 
-FX_BOOL Document::numPages(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (vp.IsSetting()) {
-        CJS_Context* pContext = static_cast<CJS_Context*>(cc);
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
-        return FALSE;
-    }
-    vp << m_pDocument->GetPageCount();
-    return TRUE;
+FX_BOOL Document::numPages(IFXJS_Context* cc,
+                           CJS_PropValue& vp,
+                           CFX_WideString& sError) {
+  if (vp.IsSetting()) {
+    CJS_Context* pContext = static_cast<CJS_Context*>(cc);
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
+    return FALSE;
+  }
+  vp << m_pDocument->GetPageCount();
+  return TRUE;
 }
 
-FX_BOOL Document::external(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    //In Chrome case,should always return true.
-    if (vp.IsGetting()) {
-        vp << true;
-    }
-    return TRUE;
+FX_BOOL Document::external(IFXJS_Context* cc,
+                           CJS_PropValue& vp,
+                           CFX_WideString& sError) {
+  // In Chrome case,should always return true.
+  if (vp.IsGetting()) {
+    vp << true;
+  }
+  return TRUE;
 }
 
-FX_BOOL Document::filesize(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (vp.IsSetting()) {
-        CJS_Context* pContext = static_cast<CJS_Context*>(cc);
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
-        return FALSE;
-    }
-    vp << 0;
-    return TRUE;
+FX_BOOL Document::filesize(IFXJS_Context* cc,
+                           CJS_PropValue& vp,
+                           CFX_WideString& sError) {
+  if (vp.IsSetting()) {
+    CJS_Context* pContext = static_cast<CJS_Context*>(cc);
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
+    return FALSE;
+  }
+  vp << 0;
+  return TRUE;
 }
 
-FX_BOOL Document::mouseX(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Document::mouseX(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::mouseY(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Document::mouseY(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::baseURL(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (vp.IsGetting())
-    {
-        vp << m_cwBaseURL;
-    }
-    else
-    {
-        vp >> m_cwBaseURL;
-    }
-    return TRUE;
+FX_BOOL Document::baseURL(IFXJS_Context* cc,
+                          CJS_PropValue& vp,
+                          CFX_WideString& sError) {
+  if (vp.IsGetting()) {
+    vp << m_cwBaseURL;
+  } else {
+    vp >> m_cwBaseURL;
+  }
+  return TRUE;
 }
 
-FX_BOOL Document::calculate(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Document::calculate(IFXJS_Context* cc,
+                            CJS_PropValue& vp,
+                            CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  CPDFSDK_InterForm* pInterForm =
+      (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    if (vp.IsGetting())
-    {
-        if (pInterForm->IsCalculateEnabled())
-            vp << true;
-        else
-            vp << false;
-    }
+  if (vp.IsGetting()) {
+    if (pInterForm->IsCalculateEnabled())
+      vp << true;
     else
-    {
-        bool bCalculate;
-        vp >> bCalculate;
+      vp << false;
+  } else {
+    bool bCalculate;
+    vp >> bCalculate;
 
-        pInterForm->EnableCalculate(bCalculate);
-    }
+    pInterForm->EnableCalculate(bCalculate);
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Document::documentFileName(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (vp.IsSetting()) {
-        CJS_Context* pContext = static_cast<CJS_Context*>(cc);
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
-        return FALSE;
-    }
-    CFX_WideString wsFilePath = m_pDocument->GetPath();
-    int32_t i = wsFilePath.GetLength() - 1;
-    for ( ; i >= 0; i-- )
-    {
-        if ( wsFilePath.GetAt( i ) == L'\\' || wsFilePath.GetAt( i ) == L'/' )
-            break;
-    }
-    if ( i >= 0 && i < wsFilePath.GetLength() - 1 )
-    {
-        vp << ( wsFilePath.GetBuffer( wsFilePath.GetLength() ) + i + 1 );
-    }else{
-        vp << L"";
-    }
-    return TRUE;
+FX_BOOL Document::documentFileName(IFXJS_Context* cc,
+                                   CJS_PropValue& vp,
+                                   CFX_WideString& sError) {
+  if (vp.IsSetting()) {
+    CJS_Context* pContext = static_cast<CJS_Context*>(cc);
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
+    return FALSE;
+  }
+  CFX_WideString wsFilePath = m_pDocument->GetPath();
+  int32_t i = wsFilePath.GetLength() - 1;
+  for (; i >= 0; i--) {
+    if (wsFilePath.GetAt(i) == L'\\' || wsFilePath.GetAt(i) == L'/')
+      break;
+  }
+  if (i >= 0 && i < wsFilePath.GetLength() - 1) {
+    vp << (wsFilePath.GetBuffer(wsFilePath.GetLength()) + i + 1);
+  } else {
+    vp << L"";
+  }
+  return TRUE;
 }
 
-CFX_WideString Document::ReversalStr(CFX_WideString cbFrom)
-{
-    size_t iLength = cbFrom.GetLength();
-        pdfium::base::CheckedNumeric<size_t> iSize = sizeof(wchar_t);
-    iSize *= (iLength + 1);
-    wchar_t* pResult = (wchar_t*)malloc(iSize.ValueOrDie());
-    wchar_t* pFrom = (wchar_t*)cbFrom.GetBuffer(iLength);
-
-    for (size_t i = 0; i < iLength; i++)
-    {
-        pResult[i] = *(pFrom + iLength - i - 1);
-    }
-    pResult[iLength] = L'\0';
-
-    cbFrom.ReleaseBuffer();
-    CFX_WideString cbRet = CFX_WideString(pResult);
-    free(pResult);
-    pResult = NULL;
-    return cbRet;
-}
-
-CFX_WideString Document::CutString(CFX_WideString cbFrom)
-{
-    size_t iLength = cbFrom.GetLength();
-    pdfium::base::CheckedNumeric<size_t> iSize = sizeof(wchar_t);
-    iSize *= (iLength + 1);
-    wchar_t* pResult = (wchar_t*)malloc(iSize.ValueOrDie());
-    wchar_t* pFrom = (wchar_t*)cbFrom.GetBuffer(iLength);
-
-    for (int i = 0; i < iLength; i++)
-    {
-        if (pFrom[i] == L'\\' || pFrom[i] == L'/')
-        {
-            pResult[i] = L'\0';
-            break;
-        }
-        pResult[i] = pFrom[i];
-    }
-    pResult[iLength] = L'\0';
+CFX_WideString Document::ReversalStr(CFX_WideString cbFrom) {
+  size_t iLength = cbFrom.GetLength();
+  pdfium::base::CheckedNumeric<size_t> iSize = sizeof(wchar_t);
+  iSize *= (iLength + 1);
+  wchar_t* pResult = (wchar_t*)malloc(iSize.ValueOrDie());
+  wchar_t* pFrom = (wchar_t*)cbFrom.GetBuffer(iLength);
+
+  for (size_t i = 0; i < iLength; i++) {
+    pResult[i] = *(pFrom + iLength - i - 1);
+  }
+  pResult[iLength] = L'\0';
+
+  cbFrom.ReleaseBuffer();
+  CFX_WideString cbRet = CFX_WideString(pResult);
+  free(pResult);
+  pResult = NULL;
+  return cbRet;
+}
+
+CFX_WideString Document::CutString(CFX_WideString cbFrom) {
+  size_t iLength = cbFrom.GetLength();
+  pdfium::base::CheckedNumeric<size_t> iSize = sizeof(wchar_t);
+  iSize *= (iLength + 1);
+  wchar_t* pResult = (wchar_t*)malloc(iSize.ValueOrDie());
+  wchar_t* pFrom = (wchar_t*)cbFrom.GetBuffer(iLength);
+
+  for (int i = 0; i < iLength; i++) {
+    if (pFrom[i] == L'\\' || pFrom[i] == L'/') {
+      pResult[i] = L'\0';
+      break;
+    }
+    pResult[i] = pFrom[i];
+  }
+  pResult[iLength] = L'\0';
+
+  cbFrom.ReleaseBuffer();
+  CFX_WideString cbRet = CFX_WideString(pResult);
+  free(pResult);
+  pResult = NULL;
+  return cbRet;
+}
+
+FX_BOOL Document::path(IFXJS_Context* cc,
+                       CJS_PropValue& vp,
+                       CFX_WideString& sError) {
+  if (vp.IsSetting()) {
+    CJS_Context* pContext = static_cast<CJS_Context*>(cc);
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
+    return FALSE;
+  }
+  vp << app::SysPathToPDFPath(m_pDocument->GetPath());
+  return TRUE;
+}
 
-    cbFrom.ReleaseBuffer();
-    CFX_WideString cbRet = CFX_WideString(pResult);
-    free(pResult);
-    pResult = NULL;
-    return cbRet;
+FX_BOOL Document::pageWindowRect(IFXJS_Context* cc,
+                                 CJS_PropValue& vp,
+                                 CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::path(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (vp.IsSetting()) {
-        CJS_Context* pContext = static_cast<CJS_Context*>(cc);
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
-        return FALSE;
-    }
-    vp << app::SysPathToPDFPath(m_pDocument->GetPath());
-    return TRUE;
+FX_BOOL Document::layout(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::pageWindowRect(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Document::addLink(IFXJS_Context* cc,
+                          const CJS_Parameters& params,
+                          CJS_Value& vRet,
+                          CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::layout(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Document::closeDoc(IFXJS_Context* cc,
+                           const CJS_Parameters& params,
+                           CJS_Value& vRet,
+                           CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
+  return TRUE;
 }
 
-FX_BOOL Document::addLink(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Document::getPageBox(IFXJS_Context* cc,
+                             const CJS_Parameters& params,
+                             CJS_Value& vRet,
+                             CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::closeDoc(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-    return TRUE;
+FX_BOOL Document::getAnnot(IFXJS_Context* cc,
+                           const CJS_Parameters& params,
+                           CJS_Value& vRet,
+                           CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::getPageBox(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Document::getAnnots(IFXJS_Context* cc,
+                            const CJS_Parameters& params,
+                            CJS_Value& vRet,
+                            CFX_WideString& sError) {
+  vRet.SetNull();
+  return TRUE;
 }
 
-FX_BOOL Document::getAnnot(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Document::getAnnot3D(IFXJS_Context* cc,
+                             const CJS_Parameters& params,
+                             CJS_Value& vRet,
+                             CFX_WideString& sError) {
+  vRet.SetNull();
+  return TRUE;
 }
 
-FX_BOOL Document::getAnnots(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    vRet.SetNull();
-    return TRUE;
+FX_BOOL Document::getAnnots3D(IFXJS_Context* cc,
+                              const CJS_Parameters& params,
+                              CJS_Value& vRet,
+                              CFX_WideString& sError) {
+  vRet = VT_undefined;
+  return TRUE;
 }
 
-FX_BOOL Document::getAnnot3D(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    vRet.SetNull();
-    return TRUE;
+FX_BOOL Document::getOCGs(IFXJS_Context* cc,
+                          const CJS_Parameters& params,
+                          CJS_Value& vRet,
+                          CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::getAnnots3D(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    vRet = VT_undefined;
-    return TRUE;
+FX_BOOL Document::getLinks(IFXJS_Context* cc,
+                           const CJS_Parameters& params,
+                           CJS_Value& vRet,
+                           CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::getOCGs(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return TRUE;
+bool Document::IsEnclosedInRect(CFX_FloatRect rect, CFX_FloatRect LinkRect) {
+  return (rect.left <= LinkRect.left && rect.top <= LinkRect.top &&
+          rect.right >= LinkRect.right && rect.bottom >= LinkRect.bottom);
 }
 
-FX_BOOL Document::getLinks(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return TRUE;
+void IconTree::InsertIconElement(IconElement* pNewIcon) {
+  if (!pNewIcon)
+    return;
+
+  if (m_pHead == NULL && m_pEnd == NULL) {
+    m_pHead = m_pEnd = pNewIcon;
+    m_iLength++;
+  } else {
+    m_pEnd->NextIcon = pNewIcon;
+    m_pEnd = pNewIcon;
+    m_iLength++;
+  }
 }
 
-bool Document::IsEnclosedInRect(CFX_FloatRect rect, CFX_FloatRect LinkRect)
-{
-    return (rect.left <= LinkRect.left &&
-            rect.top <= LinkRect.top &&
-            rect.right >= LinkRect.right &&
-            rect.bottom >= LinkRect.bottom);
+void IconTree::DeleteIconTree() {
+  if (!m_pHead || !m_pEnd)
+    return;
+
+  IconElement* pTemp = NULL;
+  while (m_pEnd != m_pHead) {
+    pTemp = m_pHead;
+    m_pHead = m_pHead->NextIcon;
+    delete pTemp;
+  }
+
+  delete m_pEnd;
+  m_pHead = NULL;
+  m_pEnd = NULL;
 }
 
-void IconTree::InsertIconElement(IconElement* pNewIcon)
-{
-    if (!pNewIcon)return;
+int IconTree::GetLength() {
+  return m_iLength;
+}
 
-    if (m_pHead == NULL && m_pEnd == NULL)
-    {
-        m_pHead = m_pEnd = pNewIcon;
-        m_iLength++;
-    }
-    else
-    {
-        m_pEnd->NextIcon = pNewIcon;
-        m_pEnd = pNewIcon;
-        m_iLength++;
+IconElement* IconTree::operator[](int iIndex) {
+  if (iIndex >= 0 && iIndex <= m_iLength) {
+    IconElement* pTemp = m_pHead;
+    for (int i = 0; i < iIndex; i++) {
+      pTemp = pTemp->NextIcon;
     }
+    return pTemp;
+  }
+  return NULL;
 }
 
-void IconTree::DeleteIconTree()
-{
-    if (!m_pHead || !m_pEnd)return;
+void IconTree::DeleteIconElement(CFX_WideString swIconName) {
+  IconElement* pTemp = m_pHead;
+  int iLoopCount = m_iLength;
+  for (int i = 0; i < iLoopCount - 1; i++) {
+    if (pTemp == m_pEnd)
+      break;
 
-    IconElement* pTemp = NULL;
-    while(m_pEnd != m_pHead)
-    {
-        pTemp = m_pHead;
-        m_pHead = m_pHead->NextIcon;
-        delete pTemp;
+    if (m_pHead->IconName == swIconName) {
+      m_pHead = m_pHead->NextIcon;
+      delete pTemp;
+      m_iLength--;
+      pTemp = m_pHead;
     }
+    if (pTemp->NextIcon->IconName == swIconName) {
+      if (pTemp->NextIcon == m_pEnd) {
+        m_pEnd = pTemp;
+        delete pTemp->NextIcon;
+        m_iLength--;
+        pTemp->NextIcon = NULL;
+      } else {
+        IconElement* pElement = pTemp->NextIcon;
+        pTemp->NextIcon = pTemp->NextIcon->NextIcon;
+        delete pElement;
+        m_iLength--;
+        pElement = NULL;
+      }
 
-    delete m_pEnd;
-    m_pHead = NULL;
-    m_pEnd = NULL;
-}
+      continue;
+    }
 
-int IconTree::GetLength()
-{
-    return m_iLength;
+    pTemp = pTemp->NextIcon;
+  }
 }
 
-IconElement* IconTree::operator [](int iIndex)
-{
-    if (iIndex >= 0 && iIndex <= m_iLength)
-    {
-        IconElement* pTemp = m_pHead;
-        for (int i = 0; i < iIndex; i++)
-        {
-            pTemp = pTemp->NextIcon;
-        }
-        return pTemp;
-    }
-    return NULL;
-}
-
-void IconTree::DeleteIconElement(CFX_WideString swIconName)
-{
-	IconElement* pTemp = m_pHead;
-	int iLoopCount = m_iLength;
-	for (int i = 0; i < iLoopCount - 1; i++)
-	{
-		if (pTemp == m_pEnd)
-			break;
-
-		if (m_pHead->IconName == swIconName)
-		{
-			m_pHead = m_pHead->NextIcon;
-			delete pTemp;
-			m_iLength--;
-			pTemp = m_pHead;
-		}
-		if (pTemp->NextIcon->IconName == swIconName)
-		{
-			if (pTemp->NextIcon == m_pEnd)
-			{
-				m_pEnd = pTemp;
-				delete pTemp->NextIcon;
-				m_iLength--;
-				pTemp->NextIcon = NULL;
-			}
-			else
-			{
-				IconElement* pElement = pTemp->NextIcon;
-				pTemp->NextIcon = pTemp->NextIcon->NextIcon;
-				delete pElement;
-				m_iLength--;
-				pElement = NULL;
-			}
-
-			continue;
-		}
-
-		pTemp = pTemp->NextIcon;
-	}
-}
-
-FX_BOOL Document::addIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context*)cc;
-    if (params.size() != 2) {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
+FX_BOOL Document::addIcon(IFXJS_Context* cc,
+                          const CJS_Parameters& params,
+                          CJS_Value& vRet,
+                          CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  if (params.size() != 2) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-    CFX_WideString swIconName = params[0].ToCFXWideString();
-    JSFXObject pJSIcon = params[1].ToV8Object();
+  CFX_WideString swIconName = params[0].ToCFXWideString();
+  JSFXObject pJSIcon = params[1].ToV8Object();
 
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    if (JS_GetObjDefnID(pJSIcon) != JS_GetObjDefnID(*pRuntime, L"Icon")) {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR);
-        return FALSE;
-    }
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  if (JS_GetObjDefnID(pJSIcon) != JS_GetObjDefnID(*pRuntime, L"Icon")) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR);
+    return FALSE;
+  }
 
-    CJS_EmbedObj* pEmbedObj = params[1].ToCJSObject()->GetEmbedObject();
-    if (!pEmbedObj) {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR);
-        return FALSE;
-    }
+  CJS_EmbedObj* pEmbedObj = params[1].ToCJSObject()->GetEmbedObject();
+  if (!pEmbedObj) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR);
+    return FALSE;
+  }
 
-    Icon* pIcon = (Icon*)pEmbedObj;
-    if (!m_pIconTree)
-        m_pIconTree = new IconTree();
+  Icon* pIcon = (Icon*)pEmbedObj;
+  if (!m_pIconTree)
+    m_pIconTree = new IconTree();
 
-    IconElement* pNewIcon = new IconElement();
-    pNewIcon->IconName = swIconName;
-    pNewIcon->NextIcon = NULL;
-    pNewIcon->IconStream = pIcon;
-    m_pIconTree->InsertIconElement(pNewIcon);
-    return TRUE;
+  IconElement* pNewIcon = new IconElement();
+  pNewIcon->IconName = swIconName;
+  pNewIcon->NextIcon = NULL;
+  pNewIcon->IconStream = pIcon;
+  m_pIconTree->InsertIconElement(pNewIcon);
+  return TRUE;
 }
 
-FX_BOOL Document::icons(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (vp.IsSetting()) {
-        CJS_Context* pContext = static_cast<CJS_Context*>(cc);
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
-        return FALSE;
-    }
+FX_BOOL Document::icons(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  if (vp.IsSetting()) {
+    CJS_Context* pContext = static_cast<CJS_Context*>(cc);
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
+    return FALSE;
+  }
 
-    if (!m_pIconTree)
-    {
-        vp.SetNull();
-        return TRUE;
-    }
+  if (!m_pIconTree) {
+    vp.SetNull();
+    return TRUE;
+  }
 
-    CJS_Array Icons(m_isolate);
-    IconElement* pIconElement = NULL;
-    int iIconTreeLength = m_pIconTree->GetLength();
+  CJS_Array Icons(m_isolate);
+  IconElement* pIconElement = NULL;
+  int iIconTreeLength = m_pIconTree->GetLength();
 
-    CJS_Context* pContext = (CJS_Context *)cc;
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  CJS_Context* pContext = (CJS_Context*)cc;
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
 
-    for (int i = 0; i < iIconTreeLength; i++)
-    {
-        pIconElement = (*m_pIconTree)[i];
+  for (int i = 0; i < iIconTreeLength; i++) {
+    pIconElement = (*m_pIconTree)[i];
 
-        JSFXObject  pObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"Icon"));
-        if (pObj.IsEmpty()) return FALSE;
+    JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext,
+                                         JS_GetObjDefnID(*pRuntime, L"Icon"));
+    if (pObj.IsEmpty())
+      return FALSE;
 
-        CJS_Icon * pJS_Icon = (CJS_Icon *)JS_GetPrivate(pObj);
-        if (!pJS_Icon) return FALSE;
+    CJS_Icon* pJS_Icon = (CJS_Icon*)JS_GetPrivate(pObj);
+    if (!pJS_Icon)
+      return FALSE;
 
-        Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject();
-        if (!pIcon)return FALSE;
+    Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject();
+    if (!pIcon)
+      return FALSE;
 
-        pIcon->SetStream(pIconElement->IconStream->GetStream());
-        pIcon->SetIconName(pIconElement->IconName);
-        Icons.SetElement(i, CJS_Value(m_isolate,pJS_Icon));
-    }
+    pIcon->SetStream(pIconElement->IconStream->GetStream());
+    pIcon->SetIconName(pIconElement->IconName);
+    Icons.SetElement(i, CJS_Value(m_isolate, pJS_Icon));
+  }
 
-    vp << Icons;
-    return TRUE;
+  vp << Icons;
+  return TRUE;
 }
 
-FX_BOOL Document::getIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context *)cc;
-    if (params.size() != 1) {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
+FX_BOOL Document::getIcon(IFXJS_Context* cc,
+                          const CJS_Parameters& params,
+                          CJS_Value& vRet,
+                          CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  if (params.size() != 1) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-    if(!m_pIconTree)
-        return FALSE;
-    CFX_WideString swIconName = params[0].ToCFXWideString();
-    int iIconCounts = m_pIconTree->GetLength();
+  if (!m_pIconTree)
+    return FALSE;
+  CFX_WideString swIconName = params[0].ToCFXWideString();
+  int iIconCounts = m_pIconTree->GetLength();
 
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
 
-    for (int i = 0; i < iIconCounts; i++)
-    {
-        if ((*m_pIconTree)[i]->IconName == swIconName)
-        {
-            Icon* pRetIcon = (*m_pIconTree)[i]->IconStream;
+  for (int i = 0; i < iIconCounts; i++) {
+    if ((*m_pIconTree)[i]->IconName == swIconName) {
+      Icon* pRetIcon = (*m_pIconTree)[i]->IconStream;
 
-            JSFXObject  pObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"Icon"));
-            if (pObj.IsEmpty()) return FALSE;
+      JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext,
+                                           JS_GetObjDefnID(*pRuntime, L"Icon"));
+      if (pObj.IsEmpty())
+        return FALSE;
 
-            CJS_Icon * pJS_Icon = (CJS_Icon *)JS_GetPrivate(pObj);
-            if (!pJS_Icon) return FALSE;
+      CJS_Icon* pJS_Icon = (CJS_Icon*)JS_GetPrivate(pObj);
+      if (!pJS_Icon)
+        return FALSE;
 
-            Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject();
-            if (!pIcon)return FALSE;
+      Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject();
+      if (!pIcon)
+        return FALSE;
 
-            pIcon->SetIconName(swIconName);
-            pIcon->SetStream(pRetIcon->GetStream());
-            vRet = pJS_Icon;
-            return TRUE;
-        }
+      pIcon->SetIconName(swIconName);
+      pIcon->SetStream(pRetIcon->GetStream());
+      vRet = pJS_Icon;
+      return TRUE;
     }
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL Document::removeIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	CJS_Context* pContext = (CJS_Context *)cc;
-	if (params.size() != 1) {
-		sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-		return FALSE;
-	}
+FX_BOOL Document::removeIcon(IFXJS_Context* cc,
+                             const CJS_Parameters& params,
+                             CJS_Value& vRet,
+                             CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  if (params.size() != 1) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-	if(!m_pIconTree)
-		return FALSE;
-	CFX_WideString swIconName = params[0].ToCFXWideString();
-	return TRUE;
+  if (!m_pIconTree)
+    return FALSE;
+  CFX_WideString swIconName = params[0].ToCFXWideString();
+  return TRUE;
 }
 
-FX_BOOL Document::createDataObject(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL Document::createDataObject(IFXJS_Context* cc,
+                                   const CJS_Parameters& params,
+                                   CJS_Value& vRet,
+                                   CFX_WideString& sError) {
   // Unsafe, not implemented.
   return TRUE;
 }
 
-FX_BOOL Document::media(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Document::media(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::calculateNow(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Document::calculateNow(IFXJS_Context* cc,
+                               const CJS_Parameters& params,
+                               CJS_Value& vRet,
+                               CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
+  if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
         m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM) ||
-        m_pDocument->GetPermissions(FPDFPERM_FILL_FORM))) return FALSE;
+        m_pDocument->GetPermissions(FPDFPERM_FILL_FORM)))
+    return FALSE;
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-    ASSERT(pInterForm != NULL);
-    pInterForm->OnCalculate();
-    return TRUE;
+  CPDFSDK_InterForm* pInterForm =
+      (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
+  pInterForm->OnCalculate();
+  return TRUE;
 }
 
-FX_BOOL Document::Collab(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Document::Collab(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::getPageNthWord(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Document::getPageNthWord(IFXJS_Context* cc,
+                                 const CJS_Parameters& params,
+                                 CJS_Value& vRet,
+                                 CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE;
-
-    int nPageNo = params.GetSize() > 0 ? params[0].ToInt() : 0;
-    int nWordNo = params.GetSize() > 1 ? params[1].ToInt() : 0;
-    bool bStrip = params.GetSize() > 2 ? params[2].ToBool() : true;
+  if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS))
+    return FALSE;
 
-	CPDF_Document* pDocument = m_pDocument->GetDocument()->GetPDFDoc();
-	if (!pDocument)
-        return FALSE;
+  int nPageNo = params.GetSize() > 0 ? params[0].ToInt() : 0;
+  int nWordNo = params.GetSize() > 1 ? params[1].ToInt() : 0;
+  bool bStrip = params.GetSize() > 2 ? params[2].ToBool() : true;
 
-    CJS_Context* pContext = static_cast<CJS_Context*>(cc);
-    if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount())
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR);
-        return FALSE;
-    }
+  CPDF_Document* pDocument = m_pDocument->GetDocument()->GetPDFDoc();
+  if (!pDocument)
+    return FALSE;
 
-    CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo);
-    if (!pPageDict) return FALSE;
+  CJS_Context* pContext = static_cast<CJS_Context*>(cc);
+  if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR);
+    return FALSE;
+  }
 
-    CPDF_Page page;
-    page.Load(pDocument, pPageDict);
-    page.StartParse();
-    page.ParseContent();
+  CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo);
+  if (!pPageDict)
+    return FALSE;
 
-    FX_POSITION pos = page.GetFirstObjectPosition();
+  CPDF_Page page;
+  page.Load(pDocument, pPageDict);
+  page.StartParse();
+  page.ParseContent();
 
-    int nWords = 0;
+  FX_POSITION pos = page.GetFirstObjectPosition();
 
-    CFX_WideString swRet;
+  int nWords = 0;
 
-    while (pos)
-    {
-        if (CPDF_PageObject* pPageObj = page.GetNextObject(pos))
-        {
-            if (pPageObj->m_Type == PDFPAGE_TEXT)
-            {
-                int nObjWords = CountWords((CPDF_TextObject*)pPageObj);
+  CFX_WideString swRet;
 
-                if (nWords + nObjWords >= nWordNo)
-                {
-                    swRet = GetObjWordStr((CPDF_TextObject*)pPageObj, nWordNo - nWords);
-                    break;
-                }
+  while (pos) {
+    if (CPDF_PageObject* pPageObj = page.GetNextObject(pos)) {
+      if (pPageObj->m_Type == PDFPAGE_TEXT) {
+        int nObjWords = CountWords((CPDF_TextObject*)pPageObj);
 
-                nWords += nObjWords;
-            }
+        if (nWords + nObjWords >= nWordNo) {
+          swRet = GetObjWordStr((CPDF_TextObject*)pPageObj, nWordNo - nWords);
+          break;
         }
-    }
 
-    if (bStrip)
-    {
-        swRet.TrimLeft();
-        swRet.TrimRight();
+        nWords += nObjWords;
+      }
     }
+  }
 
-    vRet = swRet.c_str();
-    return TRUE;
-}
+  if (bStrip) {
+    swRet.TrimLeft();
+    swRet.TrimRight();
+  }
 
-FX_BOOL Document::getPageNthWordQuads(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+  vRet = swRet.c_str();
+  return TRUE;
+}
 
-    if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE;
+FX_BOOL Document::getPageNthWordQuads(IFXJS_Context* cc,
+                                      const CJS_Parameters& params,
+                                      CJS_Value& vRet,
+                                      CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
+  if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS))
     return FALSE;
+
+  return FALSE;
 }
 
-FX_BOOL Document::getPageNumWords(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Document::getPageNumWords(IFXJS_Context* cc,
+                                  const CJS_Parameters& params,
+                                  CJS_Value& vRet,
+                                  CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE;
+  if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS))
+    return FALSE;
 
-    int nPageNo = params.GetSize() > 0 ? params[0].ToInt() : 0;
-	CPDF_Document* pDocument = m_pDocument->GetDocument()->GetPDFDoc();
-    CJS_Context* pContext = static_cast<CJS_Context*>(cc);
-    if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount())
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR);
-        return FALSE;
-    }
+  int nPageNo = params.GetSize() > 0 ? params[0].ToInt() : 0;
+  CPDF_Document* pDocument = m_pDocument->GetDocument()->GetPDFDoc();
+  CJS_Context* pContext = static_cast<CJS_Context*>(cc);
+  if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR);
+    return FALSE;
+  }
 
-    CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo);
-    if (!pPageDict) return FALSE;
+  CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo);
+  if (!pPageDict)
+    return FALSE;
 
-    CPDF_Page page;
-    page.Load(pDocument, pPageDict);
-    page.StartParse();
-    page.ParseContent();
+  CPDF_Page page;
+  page.Load(pDocument, pPageDict);
+  page.StartParse();
+  page.ParseContent();
 
-    FX_POSITION pos = page.GetFirstObjectPosition();
+  FX_POSITION pos = page.GetFirstObjectPosition();
 
-    int nWords = 0;
+  int nWords = 0;
 
-    while (pos)
-    {
-        if (CPDF_PageObject* pPageObj = page.GetNextObject(pos))
-        {
-            if (pPageObj->m_Type == PDFPAGE_TEXT)
-            {
-                CPDF_TextObject* pTextObj = (CPDF_TextObject*)pPageObj;
-                nWords += CountWords(pTextObj);
-            }
-        }
+  while (pos) {
+    if (CPDF_PageObject* pPageObj = page.GetNextObject(pos)) {
+      if (pPageObj->m_Type == PDFPAGE_TEXT) {
+        CPDF_TextObject* pTextObj = (CPDF_TextObject*)pPageObj;
+        nWords += CountWords(pTextObj);
+      }
     }
+  }
 
-    vRet = nWords;
+  vRet = nWords;
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Document::getPrintParams(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context*)cc;
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    JSFXObject pRetObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"PrintParamsObj"));
+FX_BOOL Document::getPrintParams(IFXJS_Context* cc,
+                                 const CJS_Parameters& params,
+                                 CJS_Value& vRet,
+                                 CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  JSFXObject pRetObj = JS_NewFxDynamicObj(
+      *pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"PrintParamsObj"));
 
-    // Not implemented yet.
+  // Not implemented yet.
 
-    vRet = pRetObj;
-    return TRUE;
+  vRet = pRetObj;
+  return TRUE;
 }
 
-#define ISLATINWORD(u)  (u != 0x20 && u <= 0x28FF)
+#define ISLATINWORD(u) (u != 0x20 && u <= 0x28FF)
 
-int Document::CountWords(CPDF_TextObject* pTextObj)
-{
-    if (!pTextObj) return 0;
+int Document::CountWords(CPDF_TextObject* pTextObj) {
+  if (!pTextObj)
+    return 0;
 
-    int nWords = 0;
+  int nWords = 0;
 
-    CPDF_Font* pFont = pTextObj->GetFont();
-    if (!pFont) return 0;
+  CPDF_Font* pFont = pTextObj->GetFont();
+  if (!pFont)
+    return 0;
 
-    FX_BOOL bIsLatin = FALSE;
+  FX_BOOL bIsLatin = FALSE;
 
-    for (int i=0, sz=pTextObj->CountChars(); i<sz; i++)
-    {
-        FX_DWORD charcode = -1;
-        FX_FLOAT kerning;
+  for (int i = 0, sz = pTextObj->CountChars(); i < sz; i++) {
+    FX_DWORD charcode = -1;
+    FX_FLOAT kerning;
 
-        pTextObj->GetCharInfo(i, charcode, kerning);
-        CFX_WideString swUnicode = pFont->UnicodeFromCharCode(charcode);
+    pTextObj->GetCharInfo(i, charcode, kerning);
+    CFX_WideString swUnicode = pFont->UnicodeFromCharCode(charcode);
 
-        FX_WORD unicode = 0;
-        if (swUnicode.GetLength() > 0)
-            unicode = swUnicode[0];
+    FX_WORD unicode = 0;
+    if (swUnicode.GetLength() > 0)
+      unicode = swUnicode[0];
 
-        if (ISLATINWORD(unicode) && bIsLatin)
-            continue;
+    if (ISLATINWORD(unicode) && bIsLatin)
+      continue;
 
-        bIsLatin = ISLATINWORD(unicode);
-        if (unicode != 0x20)
-            nWords++;
-    }
+    bIsLatin = ISLATINWORD(unicode);
+    if (unicode != 0x20)
+      nWords++;
+  }
 
-    return nWords;
+  return nWords;
 }
 
-CFX_WideString Document::GetObjWordStr(CPDF_TextObject* pTextObj, int nWordIndex)
-{
-    ASSERT(pTextObj != NULL);
+CFX_WideString Document::GetObjWordStr(CPDF_TextObject* pTextObj,
+                                       int nWordIndex) {
+  ASSERT(pTextObj != NULL);
 
-    CFX_WideString swRet;
+  CFX_WideString swRet;
 
-    CPDF_Font* pFont = pTextObj->GetFont();
-    if (!pFont) return L"";
+  CPDF_Font* pFont = pTextObj->GetFont();
+  if (!pFont)
+    return L"";
 
-    int nWords = 0;
-    FX_BOOL bIsLatin = FALSE;
+  int nWords = 0;
+  FX_BOOL bIsLatin = FALSE;
 
-    for (int i=0, sz=pTextObj->CountChars(); i<sz; i++)
-    {
-        FX_DWORD charcode = -1;
-        FX_FLOAT kerning;
+  for (int i = 0, sz = pTextObj->CountChars(); i < sz; i++) {
+    FX_DWORD charcode = -1;
+    FX_FLOAT kerning;
 
-        pTextObj->GetCharInfo(i, charcode, kerning);
-        CFX_WideString swUnicode = pFont->UnicodeFromCharCode(charcode);
+    pTextObj->GetCharInfo(i, charcode, kerning);
+    CFX_WideString swUnicode = pFont->UnicodeFromCharCode(charcode);
 
-        FX_WORD unicode = 0;
-        if (swUnicode.GetLength() > 0)
-            unicode = swUnicode[0];
+    FX_WORD unicode = 0;
+    if (swUnicode.GetLength() > 0)
+      unicode = swUnicode[0];
 
-        if (ISLATINWORD(unicode) && bIsLatin)
-        {
-        }
-        else
-        {
-            bIsLatin = ISLATINWORD(unicode);
-            if (unicode != 0x20)
-                nWords++;
-        }
-
-        if (nWords-1 == nWordIndex)
-            swRet += unicode;
+    if (ISLATINWORD(unicode) && bIsLatin) {
+    } else {
+      bIsLatin = ISLATINWORD(unicode);
+      if (unicode != 0x20)
+        nWords++;
     }
 
-    return swRet;
-}
+    if (nWords - 1 == nWordIndex)
+      swRet += unicode;
+  }
 
-FX_BOOL Document::zoom(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
+  return swRet;
+}
 
-    return TRUE;
+FX_BOOL Document::zoom(IFXJS_Context* cc,
+                       CJS_PropValue& vp,
+                       CFX_WideString& sError) {
+  return TRUE;
 }
 
 /**
@@ -1794,133 +1803,133 @@ FX_BOOL Document::zoom(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr
 (refW,  ReflowWidth)
 */
 
-FX_BOOL Document::zoomType(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Document::zoomType(IFXJS_Context* cc,
+                           CJS_PropValue& vp,
+                           CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Document::deletePages(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	v8::Isolate* isolate = GetIsolate(cc);
-	ASSERT(m_pDocument != NULL);
+FX_BOOL Document::deletePages(IFXJS_Context* cc,
+                              const CJS_Parameters& params,
+                              CJS_Value& vRet,
+                              CFX_WideString& sError) {
+  v8::Isolate* isolate = GetIsolate(cc);
+  ASSERT(m_pDocument != NULL);
 
-	if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
-		m_pDocument->GetPermissions(FPDFPERM_ASSEMBLE))) return FALSE;
-
-	int iSize = params.size();
-
-	int nStart = 0;
-	int nEnd = 0;
+  if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
+        m_pDocument->GetPermissions(FPDFPERM_ASSEMBLE)))
+    return FALSE;
 
-	if (iSize < 1)
-	{
-	}
-	else if (iSize == 1)
-	{
-		if (params[0].GetType() == VT_object)
-		{
-			JSObject pObj = params[0].ToV8Object();
-			v8::Local<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"nStart");
-            nStart = CJS_Value(m_isolate, pValue, GET_VALUE_TYPE(pValue)).ToInt();
+  int iSize = params.size();
 
-			pValue = JS_GetObjectElement(isolate, pObj, L"nEnd");
-			nEnd = CJS_Value(m_isolate, pValue, GET_VALUE_TYPE(pValue)).ToInt();
-		}
-		else
-		{
-			nStart = params[0].ToInt();
-		}
-	}
-	else
-	{
-		nStart = params[0].ToInt();
-		nEnd = params[1].ToInt();
-	}
+  int nStart = 0;
+  int nEnd = 0;
 
-	int nTotal = m_pDocument->GetPageCount();
+  if (iSize < 1) {
+  } else if (iSize == 1) {
+    if (params[0].GetType() == VT_object) {
+      JSObject pObj = params[0].ToV8Object();
+      v8::Local<v8::Value> pValue =
+          JS_GetObjectElement(isolate, pObj, L"nStart");
+      nStart = CJS_Value(m_isolate, pValue, GET_VALUE_TYPE(pValue)).ToInt();
 
-	if (nStart < 0)	nStart = 0;
-	if (nStart >= nTotal) nStart = nTotal - 1;
+      pValue = JS_GetObjectElement(isolate, pObj, L"nEnd");
+      nEnd = CJS_Value(m_isolate, pValue, GET_VALUE_TYPE(pValue)).ToInt();
+    } else {
+      nStart = params[0].ToInt();
+    }
+  } else {
+    nStart = params[0].ToInt();
+    nEnd = params[1].ToInt();
+  }
 
-	if (nEnd < 0) nEnd = 0;
-	if (nEnd >= nTotal) nEnd = nTotal - 1;
+  int nTotal = m_pDocument->GetPageCount();
 
-	if (nEnd < nStart) nEnd = nStart;
+  if (nStart < 0)
+    nStart = 0;
+  if (nStart >= nTotal)
+    nStart = nTotal - 1;
 
+  if (nEnd < 0)
+    nEnd = 0;
+  if (nEnd >= nTotal)
+    nEnd = nTotal - 1;
 
+  if (nEnd < nStart)
+    nEnd = nStart;
 
-	return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Document::extractPages(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL Document::extractPages(IFXJS_Context* cc,
+                               const CJS_Parameters& params,
+                               CJS_Value& vRet,
+                               CFX_WideString& sError) {
   // Unsafe, not supported.
   return TRUE;
 }
 
-FX_BOOL Document::insertPages(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL Document::insertPages(IFXJS_Context* cc,
+                              const CJS_Parameters& params,
+                              CJS_Value& vRet,
+                              CFX_WideString& sError) {
   // Unsafe, not supported.
   return TRUE;
 }
 
-FX_BOOL Document::replacePages(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL Document::replacePages(IFXJS_Context* cc,
+                               const CJS_Parameters& params,
+                               CJS_Value& vRet,
+                               CFX_WideString& sError) {
   // Unsafe, not supported.
   return TRUE;
 }
 
-FX_BOOL Document::getURL(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL Document::getURL(IFXJS_Context* cc,
+                         const CJS_Parameters& params,
+                         CJS_Value& vRet,
+                         CFX_WideString& sError) {
   // Unsafe, not supported.
   return TRUE;
 }
 
-void Document::AddDelayData(CJS_DelayData* pData)
-{
-    m_DelayData.Add(pData);
+void Document::AddDelayData(CJS_DelayData* pData) {
+  m_DelayData.Add(pData);
 }
 
-void Document::DoFieldDelay(const CFX_WideString& sFieldName, int nControlIndex)
-{
-	CFX_DWordArray DelArray;
+void Document::DoFieldDelay(const CFX_WideString& sFieldName,
+                            int nControlIndex) {
+  CFX_DWordArray DelArray;
 
-	for (int i=0,sz=m_DelayData.GetSize(); i<sz; i++)
-	{
-		if (CJS_DelayData* pData = m_DelayData.GetAt(i))
-		{
-			if (pData->sFieldName == sFieldName && pData->nControlIndex == nControlIndex)
-			{
-				Field::DoDelay(m_pDocument, pData);
-				delete pData;
-				m_DelayData.SetAt(i, NULL);
-				DelArray.Add(i);
-			}
-		}
-	}
+  for (int i = 0, sz = m_DelayData.GetSize(); i < sz; i++) {
+    if (CJS_DelayData* pData = m_DelayData.GetAt(i)) {
+      if (pData->sFieldName == sFieldName &&
+          pData->nControlIndex == nControlIndex) {
+        Field::DoDelay(m_pDocument, pData);
+        delete pData;
+        m_DelayData.SetAt(i, NULL);
+        DelArray.Add(i);
+      }
+    }
+  }
 
-	for (int j=DelArray.GetSize()-1; j>=0; j--)
-	{
-		m_DelayData.RemoveAt(DelArray[j]);
-	}
+  for (int j = DelArray.GetSize() - 1; j >= 0; j--) {
+    m_DelayData.RemoveAt(DelArray[j]);
+  }
 }
 
-void Document::AddDelayAnnotData(CJS_AnnotObj *pData)
-{
-    m_DelayAnnotData.Add(pData);
+void Document::AddDelayAnnotData(CJS_AnnotObj* pData) {
+  m_DelayAnnotData.Add(pData);
 }
 
-void Document::DoAnnotDelay()
-{
-    CFX_DWordArray DelArray;
+void Document::DoAnnotDelay() {
+  CFX_DWordArray DelArray;
 
-    for (int j=DelArray.GetSize()-1; j>=0; j--)
-    {
-        m_DelayData.RemoveAt(DelArray[j]);
-    }
+  for (int j = DelArray.GetSize() - 1; j >= 0; j--) {
+    m_DelayData.RemoveAt(DelArray[j]);
+  }
 }
 
-CJS_Document* Document::GetCJSDoc() const
-{
-    return static_cast<CJS_Document*>(m_pJSObject);
+CJS_Document* Document::GetCJSDoc() const {
+  return static_cast<CJS_Document*>(m_pJSObject);
 }
diff --git a/fpdfsdk/src/javascript/Field.cpp b/fpdfsdk/src/javascript/Field.cpp
index 3857e8098b..e3c44e953f 100644
--- a/fpdfsdk/src/javascript/Field.cpp
+++ b/fpdfsdk/src/javascript/Field.cpp
@@ -18,3448 +18,3335 @@
 #include "../../include/javascript/PublicMethods.h"
 #include "../../include/javascript/Icon.h"
 
-
 /* ---------------------- Field ---------------------- */
 
 BEGIN_JS_STATIC_CONST(CJS_Field)
 END_JS_STATIC_CONST()
 
 BEGIN_JS_STATIC_PROP(CJS_Field)
-    JS_STATIC_PROP_ENTRY(alignment)
-    JS_STATIC_PROP_ENTRY(borderStyle)
-    JS_STATIC_PROP_ENTRY(buttonAlignX)
-    JS_STATIC_PROP_ENTRY(buttonAlignY)
-    JS_STATIC_PROP_ENTRY(buttonFitBounds)
-    JS_STATIC_PROP_ENTRY(buttonPosition)
-    JS_STATIC_PROP_ENTRY(buttonScaleHow)
-    JS_STATIC_PROP_ENTRY(buttonScaleWhen)
-    JS_STATIC_PROP_ENTRY(calcOrderIndex)
-    JS_STATIC_PROP_ENTRY(charLimit)
-    JS_STATIC_PROP_ENTRY(comb)
-    JS_STATIC_PROP_ENTRY(commitOnSelChange)
-    JS_STATIC_PROP_ENTRY(currentValueIndices)
-    JS_STATIC_PROP_ENTRY(defaultStyle)
-    JS_STATIC_PROP_ENTRY(defaultValue)
-    JS_STATIC_PROP_ENTRY(doNotScroll)
-    JS_STATIC_PROP_ENTRY(doNotSpellCheck)
-    JS_STATIC_PROP_ENTRY(delay)
-    JS_STATIC_PROP_ENTRY(display)
-    JS_STATIC_PROP_ENTRY(doc)
-    JS_STATIC_PROP_ENTRY(editable)
-    JS_STATIC_PROP_ENTRY(exportValues)
-    JS_STATIC_PROP_ENTRY(hidden)
-    JS_STATIC_PROP_ENTRY(fileSelect)
-    JS_STATIC_PROP_ENTRY(fillColor)
-    JS_STATIC_PROP_ENTRY(lineWidth)
-    JS_STATIC_PROP_ENTRY(highlight)
-    JS_STATIC_PROP_ENTRY(multiline)
-    JS_STATIC_PROP_ENTRY(multipleSelection)
-    JS_STATIC_PROP_ENTRY(name)
-    JS_STATIC_PROP_ENTRY(numItems)
-    JS_STATIC_PROP_ENTRY(page)
-    JS_STATIC_PROP_ENTRY(password)
-    JS_STATIC_PROP_ENTRY(print)
-    JS_STATIC_PROP_ENTRY(radiosInUnison)
-    JS_STATIC_PROP_ENTRY(readonly)
-    JS_STATIC_PROP_ENTRY(rect)
-    JS_STATIC_PROP_ENTRY(required)
-    JS_STATIC_PROP_ENTRY(richText)
-    JS_STATIC_PROP_ENTRY(richValue)
-    JS_STATIC_PROP_ENTRY(rotation)
-    JS_STATIC_PROP_ENTRY(strokeColor)
-    JS_STATIC_PROP_ENTRY(style)
-    JS_STATIC_PROP_ENTRY(submitName)
-    JS_STATIC_PROP_ENTRY(textColor)
-    JS_STATIC_PROP_ENTRY(textFont)
-    JS_STATIC_PROP_ENTRY(textSize)
-    JS_STATIC_PROP_ENTRY(type)
-    JS_STATIC_PROP_ENTRY(userName)
-    JS_STATIC_PROP_ENTRY(value)
-    JS_STATIC_PROP_ENTRY(valueAsString)
-    JS_STATIC_PROP_ENTRY(source)
+JS_STATIC_PROP_ENTRY(alignment)
+JS_STATIC_PROP_ENTRY(borderStyle)
+JS_STATIC_PROP_ENTRY(buttonAlignX)
+JS_STATIC_PROP_ENTRY(buttonAlignY)
+JS_STATIC_PROP_ENTRY(buttonFitBounds)
+JS_STATIC_PROP_ENTRY(buttonPosition)
+JS_STATIC_PROP_ENTRY(buttonScaleHow)
+JS_STATIC_PROP_ENTRY(buttonScaleWhen)
+JS_STATIC_PROP_ENTRY(calcOrderIndex)
+JS_STATIC_PROP_ENTRY(charLimit)
+JS_STATIC_PROP_ENTRY(comb)
+JS_STATIC_PROP_ENTRY(commitOnSelChange)
+JS_STATIC_PROP_ENTRY(currentValueIndices)
+JS_STATIC_PROP_ENTRY(defaultStyle)
+JS_STATIC_PROP_ENTRY(defaultValue)
+JS_STATIC_PROP_ENTRY(doNotScroll)
+JS_STATIC_PROP_ENTRY(doNotSpellCheck)
+JS_STATIC_PROP_ENTRY(delay)
+JS_STATIC_PROP_ENTRY(display)
+JS_STATIC_PROP_ENTRY(doc)
+JS_STATIC_PROP_ENTRY(editable)
+JS_STATIC_PROP_ENTRY(exportValues)
+JS_STATIC_PROP_ENTRY(hidden)
+JS_STATIC_PROP_ENTRY(fileSelect)
+JS_STATIC_PROP_ENTRY(fillColor)
+JS_STATIC_PROP_ENTRY(lineWidth)
+JS_STATIC_PROP_ENTRY(highlight)
+JS_STATIC_PROP_ENTRY(multiline)
+JS_STATIC_PROP_ENTRY(multipleSelection)
+JS_STATIC_PROP_ENTRY(name)
+JS_STATIC_PROP_ENTRY(numItems)
+JS_STATIC_PROP_ENTRY(page)
+JS_STATIC_PROP_ENTRY(password)
+JS_STATIC_PROP_ENTRY(print)
+JS_STATIC_PROP_ENTRY(radiosInUnison)
+JS_STATIC_PROP_ENTRY(readonly)
+JS_STATIC_PROP_ENTRY(rect)
+JS_STATIC_PROP_ENTRY(required)
+JS_STATIC_PROP_ENTRY(richText)
+JS_STATIC_PROP_ENTRY(richValue)
+JS_STATIC_PROP_ENTRY(rotation)
+JS_STATIC_PROP_ENTRY(strokeColor)
+JS_STATIC_PROP_ENTRY(style)
+JS_STATIC_PROP_ENTRY(submitName)
+JS_STATIC_PROP_ENTRY(textColor)
+JS_STATIC_PROP_ENTRY(textFont)
+JS_STATIC_PROP_ENTRY(textSize)
+JS_STATIC_PROP_ENTRY(type)
+JS_STATIC_PROP_ENTRY(userName)
+JS_STATIC_PROP_ENTRY(value)
+JS_STATIC_PROP_ENTRY(valueAsString)
+JS_STATIC_PROP_ENTRY(source)
 END_JS_STATIC_PROP()
 
 BEGIN_JS_STATIC_METHOD(CJS_Field)
-    JS_STATIC_METHOD_ENTRY(browseForFileToSubmit)
-    JS_STATIC_METHOD_ENTRY(buttonGetCaption)
-    JS_STATIC_METHOD_ENTRY(buttonGetIcon)
-    JS_STATIC_METHOD_ENTRY(buttonImportIcon)
-    JS_STATIC_METHOD_ENTRY(buttonSetCaption)
-    JS_STATIC_METHOD_ENTRY(buttonSetIcon)
-    JS_STATIC_METHOD_ENTRY(checkThisBox)
-    JS_STATIC_METHOD_ENTRY(clearItems)
-    JS_STATIC_METHOD_ENTRY(defaultIsChecked)
-    JS_STATIC_METHOD_ENTRY(deleteItemAt)
-    JS_STATIC_METHOD_ENTRY(getArray )
-    JS_STATIC_METHOD_ENTRY(getItemAt)
-    JS_STATIC_METHOD_ENTRY(getLock)
-    JS_STATIC_METHOD_ENTRY(insertItemAt)
-    JS_STATIC_METHOD_ENTRY(isBoxChecked)
-    JS_STATIC_METHOD_ENTRY(isDefaultChecked)
-    JS_STATIC_METHOD_ENTRY(setAction)
-    JS_STATIC_METHOD_ENTRY(setFocus)
-    JS_STATIC_METHOD_ENTRY(setItems)
-    JS_STATIC_METHOD_ENTRY(setLock)
-    JS_STATIC_METHOD_ENTRY(signatureGetModifications)
-    JS_STATIC_METHOD_ENTRY(signatureGetSeedValue)
-    JS_STATIC_METHOD_ENTRY(signatureInfo)
-    JS_STATIC_METHOD_ENTRY(signatureSetSeedValue)
-    JS_STATIC_METHOD_ENTRY(signatureSign)
-    JS_STATIC_METHOD_ENTRY(signatureValidate)
+JS_STATIC_METHOD_ENTRY(browseForFileToSubmit)
+JS_STATIC_METHOD_ENTRY(buttonGetCaption)
+JS_STATIC_METHOD_ENTRY(buttonGetIcon)
+JS_STATIC_METHOD_ENTRY(buttonImportIcon)
+JS_STATIC_METHOD_ENTRY(buttonSetCaption)
+JS_STATIC_METHOD_ENTRY(buttonSetIcon)
+JS_STATIC_METHOD_ENTRY(checkThisBox)
+JS_STATIC_METHOD_ENTRY(clearItems)
+JS_STATIC_METHOD_ENTRY(defaultIsChecked)
+JS_STATIC_METHOD_ENTRY(deleteItemAt)
+JS_STATIC_METHOD_ENTRY(getArray)
+JS_STATIC_METHOD_ENTRY(getItemAt)
+JS_STATIC_METHOD_ENTRY(getLock)
+JS_STATIC_METHOD_ENTRY(insertItemAt)
+JS_STATIC_METHOD_ENTRY(isBoxChecked)
+JS_STATIC_METHOD_ENTRY(isDefaultChecked)
+JS_STATIC_METHOD_ENTRY(setAction)
+JS_STATIC_METHOD_ENTRY(setFocus)
+JS_STATIC_METHOD_ENTRY(setItems)
+JS_STATIC_METHOD_ENTRY(setLock)
+JS_STATIC_METHOD_ENTRY(signatureGetModifications)
+JS_STATIC_METHOD_ENTRY(signatureGetSeedValue)
+JS_STATIC_METHOD_ENTRY(signatureInfo)
+JS_STATIC_METHOD_ENTRY(signatureSetSeedValue)
+JS_STATIC_METHOD_ENTRY(signatureSign)
+JS_STATIC_METHOD_ENTRY(signatureValidate)
 END_JS_STATIC_METHOD()
 
 IMPLEMENT_JS_CLASS(CJS_Field, Field)
 
-FX_BOOL CJS_Field::InitInstance(IFXJS_Context* cc)
-{
-    CJS_Context* pContext = (CJS_Context*)cc;
-    ASSERT(pContext != NULL);
+FX_BOOL CJS_Field::InitInstance(IFXJS_Context* cc) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
 
-    Field* pField = (Field*)GetEmbedObject();
-    ASSERT(pField != NULL);
+  Field* pField = (Field*)GetEmbedObject();
+  ASSERT(pField != NULL);
 
-    pField->SetIsolate(pContext->GetJSRuntime()->GetIsolate());
+  pField->SetIsolate(pContext->GetJSRuntime()->GetIsolate());
 
-    return TRUE;
+  return TRUE;
 };
 
-Field::Field(CJS_Object* pJSObject): CJS_EmbedObj(pJSObject),
-    m_pJSDoc(NULL),
-    m_pDocument(NULL),
-    m_nFormControlIndex(-1),
-    m_bCanSet(FALSE),
-    m_bDelay(FALSE),
-    m_isolate(NULL)
-{
-}
+Field::Field(CJS_Object* pJSObject)
+    : CJS_EmbedObj(pJSObject),
+      m_pJSDoc(NULL),
+      m_pDocument(NULL),
+      m_nFormControlIndex(-1),
+      m_bCanSet(FALSE),
+      m_bDelay(FALSE),
+      m_isolate(NULL) {}
 
-Field::~Field()
-{
-}
+Field::~Field() {}
 
-//note: iControlNo = -1, means not a widget.
-void Field::ParseFieldName(const std::wstring &strFieldNameParsed,std::wstring &strFieldName,int & iControlNo)
-{
-    int iStart = strFieldNameParsed.find_last_of(L'.');
-    if (iStart == -1)
-    {
-        strFieldName = strFieldNameParsed;
-        iControlNo = -1;
-        return;
+// note: iControlNo = -1, means not a widget.
+void Field::ParseFieldName(const std::wstring& strFieldNameParsed,
+                           std::wstring& strFieldName,
+                           int& iControlNo) {
+  int iStart = strFieldNameParsed.find_last_of(L'.');
+  if (iStart == -1) {
+    strFieldName = strFieldNameParsed;
+    iControlNo = -1;
+    return;
+  }
+  std::wstring suffixal = strFieldNameParsed.substr(iStart + 1);
+  iControlNo = FXSYS_wtoi(suffixal.c_str());
+  if (iControlNo == 0) {
+    int iStart;
+    while ((iStart = suffixal.find_last_of(L" ")) != -1) {
+      suffixal.erase(iStart, 1);
     }
-    std::wstring suffixal = strFieldNameParsed.substr(iStart+1);
-    iControlNo = FXSYS_wtoi(suffixal.c_str());
-    if (iControlNo == 0)
-    {
-        int iStart;
-        while((iStart = suffixal.find_last_of(L" ")) != -1)
-        {
-            suffixal.erase(iStart,1);
-        }
-
-        if (suffixal.compare(L"0") != 0)
-        {
-            strFieldName = strFieldNameParsed;
-            iControlNo = -1;
-            return;
-        }
 
+    if (suffixal.compare(L"0") != 0) {
+      strFieldName = strFieldNameParsed;
+      iControlNo = -1;
+      return;
     }
-    strFieldName = strFieldNameParsed.substr(0,iStart);
+  }
+  strFieldName = strFieldNameParsed.substr(0, iStart);
 }
 
-FX_BOOL Field::AttachField(Document* pDocument, const CFX_WideString& csFieldName)
-{
-    ASSERT(pDocument != NULL);
-    m_pJSDoc = pDocument;
+FX_BOOL Field::AttachField(Document* pDocument,
+                           const CFX_WideString& csFieldName) {
+  ASSERT(pDocument != NULL);
+  m_pJSDoc = pDocument;
 
-    m_pDocument = pDocument->GetReaderDoc();
-    ASSERT(m_pDocument != NULL);
+  m_pDocument = pDocument->GetReaderDoc();
+  ASSERT(m_pDocument != NULL);
 
-    m_bCanSet = m_pDocument->GetPermissions(FPDFPERM_FILL_FORM) ||
-        m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM) ||
-        m_pDocument->GetPermissions(FPDFPERM_MODIFY);
+  m_bCanSet = m_pDocument->GetPermissions(FPDFPERM_FILL_FORM) ||
+              m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM) ||
+              m_pDocument->GetPermissions(FPDFPERM_MODIFY);
 
-    CPDFSDK_InterForm* pRDInterForm = m_pDocument->GetInterForm();
-    ASSERT(pRDInterForm != NULL);
+  CPDFSDK_InterForm* pRDInterForm = m_pDocument->GetInterForm();
+  ASSERT(pRDInterForm != NULL);
 
-    CPDF_InterForm* pInterForm = pRDInterForm->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  CPDF_InterForm* pInterForm = pRDInterForm->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    CFX_WideString swFieldNameTemp = csFieldName;
-    swFieldNameTemp.Replace(L"..", L".");
+  CFX_WideString swFieldNameTemp = csFieldName;
+  swFieldNameTemp.Replace(L"..", L".");
 
-    if (pInterForm->CountFields(swFieldNameTemp) <= 0)
-    {
-        std::wstring strFieldName;
-        int iControlNo = -1;
-        ParseFieldName(swFieldNameTemp.c_str(), strFieldName, iControlNo);
-        if (iControlNo == -1) return FALSE;
+  if (pInterForm->CountFields(swFieldNameTemp) <= 0) {
+    std::wstring strFieldName;
+    int iControlNo = -1;
+    ParseFieldName(swFieldNameTemp.c_str(), strFieldName, iControlNo);
+    if (iControlNo == -1)
+      return FALSE;
 
-        m_FieldName = strFieldName.c_str();
-        m_nFormControlIndex = iControlNo;
-        return TRUE;
-    }
+    m_FieldName = strFieldName.c_str();
+    m_nFormControlIndex = iControlNo;
+    return TRUE;
+  }
 
-    m_FieldName = swFieldNameTemp;
-    m_nFormControlIndex = -1;
+  m_FieldName = swFieldNameTemp;
+  m_nFormControlIndex = -1;
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::GetFormFields(CPDFSDK_Document* pDocument, const CFX_WideString& csFieldName, CFX_PtrArray& FieldArray)
-{
-    ASSERT(pDocument != NULL);
+void Field::GetFormFields(CPDFSDK_Document* pDocument,
+                          const CFX_WideString& csFieldName,
+                          CFX_PtrArray& FieldArray) {
+  ASSERT(pDocument != NULL);
 
-    CPDFSDK_InterForm* pReaderInterForm = pDocument->GetInterForm();
-    ASSERT(pReaderInterForm != NULL);
+  CPDFSDK_InterForm* pReaderInterForm = pDocument->GetInterForm();
+  ASSERT(pReaderInterForm != NULL);
 
-    CPDF_InterForm* pInterForm = pReaderInterForm->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  CPDF_InterForm* pInterForm = pReaderInterForm->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    ASSERT(FieldArray.GetSize() == 0);
+  ASSERT(FieldArray.GetSize() == 0);
 
-    for (int i=0,sz=pInterForm->CountFields(csFieldName); i<sz; i++)
-    {
-        if (CPDF_FormField* pFormField = pInterForm->GetField(i, csFieldName))
-            FieldArray.Add((void*)pFormField);
-    }
+  for (int i = 0, sz = pInterForm->CountFields(csFieldName); i < sz; i++) {
+    if (CPDF_FormField* pFormField = pInterForm->GetField(i, csFieldName))
+      FieldArray.Add((void*)pFormField);
+  }
 }
 
-void Field::GetFormFields(const CFX_WideString& csFieldName, CFX_PtrArray& FieldArray)
-{
-    ASSERT(m_pDocument != NULL);
+void Field::GetFormFields(const CFX_WideString& csFieldName,
+                          CFX_PtrArray& FieldArray) {
+  ASSERT(m_pDocument != NULL);
 
-    Field::GetFormFields(m_pDocument, csFieldName, FieldArray);
+  Field::GetFormFields(m_pDocument, csFieldName, FieldArray);
 }
 
-void Field::UpdateFormField(CPDFSDK_Document* pDocument, CPDF_FormField* pFormField,
-                            FX_BOOL bChangeMark, FX_BOOL bResetAP, FX_BOOL bRefresh)
-{
-    ASSERT(pDocument != NULL);
-    ASSERT(pFormField != NULL);
+void Field::UpdateFormField(CPDFSDK_Document* pDocument,
+                            CPDF_FormField* pFormField,
+                            FX_BOOL bChangeMark,
+                            FX_BOOL bResetAP,
+                            FX_BOOL bRefresh) {
+  ASSERT(pDocument != NULL);
+  ASSERT(pFormField != NULL);
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    CFX_PtrArray widgets;
-    pInterForm->GetWidgets(pFormField, widgets);
+  CFX_PtrArray widgets;
+  pInterForm->GetWidgets(pFormField, widgets);
 
-    if (bResetAP)
-    {
-        int nFieldType = pFormField->GetFieldType();
-        if (nFieldType == FIELDTYPE_COMBOBOX || nFieldType == FIELDTYPE_TEXTFIELD)
-        {
-            for (int i=0,sz=widgets.GetSize(); i<sz; i++)
-            {
-                CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)widgets.GetAt(i);
-                ASSERT(pWidget != NULL);
-
-                FX_BOOL bFormated = FALSE;
-                CFX_WideString sValue = pWidget->OnFormat(bFormated);
-                if (bFormated)
-                    pWidget->ResetAppearance(sValue.c_str(), FALSE);
-                else
-                    pWidget->ResetAppearance(NULL, FALSE);
-            }
-        }
+  if (bResetAP) {
+    int nFieldType = pFormField->GetFieldType();
+    if (nFieldType == FIELDTYPE_COMBOBOX || nFieldType == FIELDTYPE_TEXTFIELD) {
+      for (int i = 0, sz = widgets.GetSize(); i < sz; i++) {
+        CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)widgets.GetAt(i);
+        ASSERT(pWidget != NULL);
+
+        FX_BOOL bFormated = FALSE;
+        CFX_WideString sValue = pWidget->OnFormat(bFormated);
+        if (bFormated)
+          pWidget->ResetAppearance(sValue.c_str(), FALSE);
         else
-        {
-            for (int i=0,sz=widgets.GetSize(); i<sz; i++)
-            {
-                CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)widgets.GetAt(i);
-                ASSERT(pWidget != NULL);
+          pWidget->ResetAppearance(NULL, FALSE);
+      }
+    } else {
+      for (int i = 0, sz = widgets.GetSize(); i < sz; i++) {
+        CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)widgets.GetAt(i);
+        ASSERT(pWidget != NULL);
 
-                pWidget->ResetAppearance(NULL, FALSE);
-            }
-        }
+        pWidget->ResetAppearance(NULL, FALSE);
+      }
     }
+  }
 
-    if (bRefresh)
-    {
-        for (int i=0,sz=widgets.GetSize(); i<sz; i++)
-        {
-            CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)widgets.GetAt(i);
-            ASSERT(pWidget != NULL);
-
-            CPDFSDK_InterForm * pInterForm = pWidget->GetInterForm();
-            CPDFSDK_Document* pDoc = pInterForm->GetDocument();
-//          CReader_Page* pPage = pWidget->GetPage();
-            ASSERT(pDoc != NULL);
-            pDoc->UpdateAllViews(NULL, pWidget);
-        }
+  if (bRefresh) {
+    for (int i = 0, sz = widgets.GetSize(); i < sz; i++) {
+      CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)widgets.GetAt(i);
+      ASSERT(pWidget != NULL);
+
+      CPDFSDK_InterForm* pInterForm = pWidget->GetInterForm();
+      CPDFSDK_Document* pDoc = pInterForm->GetDocument();
+      //          CReader_Page* pPage = pWidget->GetPage();
+      ASSERT(pDoc != NULL);
+      pDoc->UpdateAllViews(NULL, pWidget);
     }
+  }
 
-    if (bChangeMark)
-        pDocument->SetChangeMark();
+  if (bChangeMark)
+    pDocument->SetChangeMark();
 }
 
-void Field::UpdateFormControl(CPDFSDK_Document* pDocument, CPDF_FormControl* pFormControl,
-                            FX_BOOL bChangeMark, FX_BOOL bResetAP, FX_BOOL bRefresh)
-{
-    ASSERT(pDocument != NULL);
-    ASSERT(pFormControl != NULL);
+void Field::UpdateFormControl(CPDFSDK_Document* pDocument,
+                              CPDF_FormControl* pFormControl,
+                              FX_BOOL bChangeMark,
+                              FX_BOOL bResetAP,
+                              FX_BOOL bRefresh) {
+  ASSERT(pDocument != NULL);
+  ASSERT(pFormControl != NULL);
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
-    ASSERT(pInterForm != NULL);
-
-    CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl);
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    if (pWidget)
-    {
-        if (bResetAP)
-        {
-            int nFieldType = pWidget->GetFieldType();
-            if (nFieldType == FIELDTYPE_COMBOBOX || nFieldType == FIELDTYPE_TEXTFIELD)
-            {
-                FX_BOOL bFormated = FALSE;
-                CFX_WideString sValue = pWidget->OnFormat(bFormated);
-                if (bFormated)
-                    pWidget->ResetAppearance(sValue.c_str(), FALSE);
-                else
-                    pWidget->ResetAppearance(NULL, FALSE);
-            }
-            else
-            {
-                pWidget->ResetAppearance(NULL, FALSE);
-            }
-        }
+  CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl);
 
-        if (bRefresh)
-        {
-            CPDFSDK_InterForm * pInterForm = pWidget->GetInterForm();
-            CPDFSDK_Document* pDoc = pInterForm->GetDocument();
-            ASSERT(pDoc != NULL);
-            pDoc->UpdateAllViews(NULL, pWidget);
-        }
+  if (pWidget) {
+    if (bResetAP) {
+      int nFieldType = pWidget->GetFieldType();
+      if (nFieldType == FIELDTYPE_COMBOBOX ||
+          nFieldType == FIELDTYPE_TEXTFIELD) {
+        FX_BOOL bFormated = FALSE;
+        CFX_WideString sValue = pWidget->OnFormat(bFormated);
+        if (bFormated)
+          pWidget->ResetAppearance(sValue.c_str(), FALSE);
+        else
+          pWidget->ResetAppearance(NULL, FALSE);
+      } else {
+        pWidget->ResetAppearance(NULL, FALSE);
+      }
+    }
 
+    if (bRefresh) {
+      CPDFSDK_InterForm* pInterForm = pWidget->GetInterForm();
+      CPDFSDK_Document* pDoc = pInterForm->GetDocument();
+      ASSERT(pDoc != NULL);
+      pDoc->UpdateAllViews(NULL, pWidget);
     }
+  }
 
-    if (bChangeMark)
-        pDocument->SetChangeMark();
+  if (bChangeMark)
+    pDocument->SetChangeMark();
 }
 
-CPDFSDK_Widget* Field::GetWidget(CPDFSDK_Document* pDocument, CPDF_FormControl* pFormControl)
-{
-    ASSERT(pDocument != NULL);
-    ASSERT(pFormControl != NULL);
+CPDFSDK_Widget* Field::GetWidget(CPDFSDK_Document* pDocument,
+                                 CPDF_FormControl* pFormControl) {
+  ASSERT(pDocument != NULL);
+  ASSERT(pFormControl != NULL);
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    return pInterForm->GetWidget(pFormControl);
+  return pInterForm->GetWidget(pFormControl);
 }
 
-FX_BOOL Field::ValueIsOccur(CPDF_FormField* pFormField, CFX_WideString csOptLabel)
-{
-    ASSERT(pFormField != NULL);
+FX_BOOL Field::ValueIsOccur(CPDF_FormField* pFormField,
+                            CFX_WideString csOptLabel) {
+  ASSERT(pFormField != NULL);
 
-    for (int i=0,sz = pFormField->CountOptions(); i < sz; i++)
-    {
-        if (csOptLabel.Compare(pFormField->GetOptionLabel(i)) == 0)
-            return TRUE;
-    }
+  for (int i = 0, sz = pFormField->CountOptions(); i < sz; i++) {
+    if (csOptLabel.Compare(pFormField->GetOptionLabel(i)) == 0)
+      return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-CPDF_FormControl* Field::GetSmartFieldControl(CPDF_FormField* pFormField)
-{
-    if (!pFormField->CountControls() || m_nFormControlIndex >= pFormField->CountControls())
-        return NULL;
+CPDF_FormControl* Field::GetSmartFieldControl(CPDF_FormField* pFormField) {
+  if (!pFormField->CountControls() ||
+      m_nFormControlIndex >= pFormField->CountControls())
+    return NULL;
 
-    if (m_nFormControlIndex < 0)
-        return pFormField->GetControl(0);
+  if (m_nFormControlIndex < 0)
+    return pFormField->GetControl(0);
 
-    return pFormField->GetControl(m_nFormControlIndex);
+  return pFormField->GetControl(m_nFormControlIndex);
 }
 
-/* ---------------------------------------- property ---------------------------------------- */
+/* ---------------------------------------- property
+ * ---------------------------------------- */
 
-FX_BOOL Field::alignment(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::alignment(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        CFX_ByteString alignStr;
-        vp >> alignStr;
+    CFX_ByteString alignStr;
+    vp >> alignStr;
 
-        if (m_bDelay)
-        {
-            AddDelay_String(FP_ALIGNMENT, alignStr);
-        }
-        else
-        {
-            Field::SetAlignment(m_pDocument, m_FieldName, m_nFormControlIndex, alignStr);
-        }
+    if (m_bDelay) {
+      AddDelay_String(FP_ALIGNMENT, alignStr);
+    } else {
+      Field::SetAlignment(m_pDocument, m_FieldName, m_nFormControlIndex,
+                          alignStr);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName, FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
+      return FALSE;
 
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl)return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
 
-        switch (pFormControl->GetControlAlignment())
-        {
-            case 1:
-                vp << L"center";
-                break;
-            case 0:
-                vp << L"left";
-                break;
-            case 2:
-                vp << L"right";
-                break;
-            default:
-                vp << L"";
-        }
+    switch (pFormControl->GetControlAlignment()) {
+      case 1:
+        vp << L"center";
+        break;
+      case 0:
+        vp << L"left";
+        break;
+      case 2:
+        vp << L"right";
+        break;
+      default:
+        vp << L"";
     }
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetAlignment(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex,
-                         const CFX_ByteString& string)
-{
-    //Not supported.
+void Field::SetAlignment(CPDFSDK_Document* pDocument,
+                         const CFX_WideString& swFieldName,
+                         int nControlIndex,
+                         const CFX_ByteString& string) {
+  // Not supported.
 }
 
-FX_BOOL Field::borderStyle(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::borderStyle(IFXJS_Context* cc,
+                           CJS_PropValue& vp,
+                           CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        CFX_ByteString strType = "";
-        vp >> strType;
+    CFX_ByteString strType = "";
+    vp >> strType;
 
-        if (m_bDelay)
-        {
-            AddDelay_String(FP_BORDERSTYLE, strType);
-        }
-        else
-        {
-            Field::SetBorderStyle(m_pDocument, m_FieldName, m_nFormControlIndex, strType);
-        }
+    if (m_bDelay) {
+      AddDelay_String(FP_BORDERSTYLE, strType);
+    } else {
+      Field::SetBorderStyle(m_pDocument, m_FieldName, m_nFormControlIndex,
+                            strType);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName, FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
-
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        if (!pFormField) return FALSE;
-
-        CPDFSDK_Widget* pWidget = GetWidget(m_pDocument, GetSmartFieldControl(pFormField));
-        if (!pWidget) return FALSE;
-
-        int nBorderstyle = pWidget->GetBorderStyle();
-
-        switch (nBorderstyle)
-        {
-            case BBS_SOLID:
-                vp << L"solid";
-                break;
-            case BBS_DASH:
-                vp << L"dashed";
-                break;
-            case BBS_BEVELED:
-                vp << L"beveled";
-                break;
-            case BBS_INSET:
-                vp << L"inset";
-                break;
-            case BBS_UNDERLINE:
-                vp << L"underline";
-                break;
-            default:
-                vp << L"";
-                break;
-        }
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
+
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    if (!pFormField)
+      return FALSE;
+
+    CPDFSDK_Widget* pWidget =
+        GetWidget(m_pDocument, GetSmartFieldControl(pFormField));
+    if (!pWidget)
+      return FALSE;
+
+    int nBorderstyle = pWidget->GetBorderStyle();
+
+    switch (nBorderstyle) {
+      case BBS_SOLID:
+        vp << L"solid";
+        break;
+      case BBS_DASH:
+        vp << L"dashed";
+        break;
+      case BBS_BEVELED:
+        vp << L"beveled";
+        break;
+      case BBS_INSET:
+        vp << L"inset";
+        break;
+      case BBS_UNDERLINE:
+        vp << L"underline";
+        break;
+      default:
+        vp << L"";
+        break;
     }
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetBorderStyle(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex,
-                           const CFX_ByteString& string)
-{
-    ASSERT(pDocument != NULL);
+void Field::SetBorderStyle(CPDFSDK_Document* pDocument,
+                           const CFX_WideString& swFieldName,
+                           int nControlIndex,
+                           const CFX_ByteString& string) {
+  ASSERT(pDocument != NULL);
 
-    int nBorderStyle = 0;
+  int nBorderStyle = 0;
 
-    if (string == "solid")
-        nBorderStyle = BBS_SOLID;
-    else if (string == "beveled")
-        nBorderStyle = BBS_BEVELED;
-    else if (string == "dashed")
-        nBorderStyle = BBS_DASH;
-    else if (string == "inset")
-        nBorderStyle = BBS_INSET;
-    else if (string == "underline")
-        nBorderStyle = BBS_UNDERLINE;
-    else return;
+  if (string == "solid")
+    nBorderStyle = BBS_SOLID;
+  else if (string == "beveled")
+    nBorderStyle = BBS_BEVELED;
+  else if (string == "dashed")
+    nBorderStyle = BBS_DASH;
+  else if (string == "inset")
+    nBorderStyle = BBS_INSET;
+  else if (string == "underline")
+    nBorderStyle = BBS_UNDERLINE;
+  else
+    return;
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(pDocument, swFieldName, FieldArray);
+  CFX_PtrArray FieldArray;
+  GetFormFields(pDocument, swFieldName, FieldArray);
 
-    for (int i=0,isz=FieldArray.GetSize(); i<isz; i++)
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
-        ASSERT(pFormField != NULL);
-
-        if (nControlIndex < 0)
-        {
-            FX_BOOL bSet = FALSE;
-            for (int j=0,jsz = pFormField->CountControls(); j<jsz; j++)
-            {
-                if (CPDFSDK_Widget* pWidget = GetWidget(pDocument, pFormField->GetControl(j)))
-                {
-                    if (pWidget->GetBorderStyle() != nBorderStyle)
-                    {
-                        pWidget->SetBorderStyle(nBorderStyle);
-                        bSet = TRUE;
-                    }
-                }
-            }
-            if (bSet) UpdateFormField(pDocument, pFormField, TRUE, TRUE, TRUE);
-        }
-        else
-        {
-            if(nControlIndex >= pFormField->CountControls()) return;
-            if (CPDF_FormControl* pFormControl = pFormField->GetControl(nControlIndex))
-            {
-                if (CPDFSDK_Widget* pWidget = GetWidget(pDocument, pFormControl))
-                {
-                    if (pWidget->GetBorderStyle() != nBorderStyle)
-                    {
-                        pWidget->SetBorderStyle(nBorderStyle);
-                        UpdateFormControl(pDocument, pFormControl, TRUE, TRUE, TRUE);
-                    }
-                }
-            }
+  for (int i = 0, isz = FieldArray.GetSize(); i < isz; i++) {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
+    ASSERT(pFormField != NULL);
+
+    if (nControlIndex < 0) {
+      FX_BOOL bSet = FALSE;
+      for (int j = 0, jsz = pFormField->CountControls(); j < jsz; j++) {
+        if (CPDFSDK_Widget* pWidget =
+                GetWidget(pDocument, pFormField->GetControl(j))) {
+          if (pWidget->GetBorderStyle() != nBorderStyle) {
+            pWidget->SetBorderStyle(nBorderStyle);
+            bSet = TRUE;
+          }
+        }
+      }
+      if (bSet)
+        UpdateFormField(pDocument, pFormField, TRUE, TRUE, TRUE);
+    } else {
+      if (nControlIndex >= pFormField->CountControls())
+        return;
+      if (CPDF_FormControl* pFormControl =
+              pFormField->GetControl(nControlIndex)) {
+        if (CPDFSDK_Widget* pWidget = GetWidget(pDocument, pFormControl)) {
+          if (pWidget->GetBorderStyle() != nBorderStyle) {
+            pWidget->SetBorderStyle(nBorderStyle);
+            UpdateFormControl(pDocument, pFormControl, TRUE, TRUE, TRUE);
+          }
         }
+      }
     }
+  }
 }
 
-FX_BOOL Field::buttonAlignX(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::buttonAlignX(IFXJS_Context* cc,
+                            CJS_PropValue& vp,
+                            CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        int nVP;
-        vp >> nVP;
+    int nVP;
+    vp >> nVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Int(FP_BUTTONALIGNX, nVP);
-        }
-        else
-        {
-            Field::SetButtonAlignX(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Int(FP_BUTTONALIGNX, nVP);
+    } else {
+      Field::SetButtonAlignX(m_pDocument, m_FieldName, m_nFormControlIndex,
+                             nVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
+      return FALSE;
 
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl)return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
 
-        CPDF_IconFit IconFit = pFormControl->GetIconFit();
+    CPDF_IconFit IconFit = pFormControl->GetIconFit();
 
-        FX_FLOAT fLeft,fBottom;
-        IconFit.GetIconPosition(fLeft,fBottom);
+    FX_FLOAT fLeft, fBottom;
+    IconFit.GetIconPosition(fLeft, fBottom);
 
-        vp << (int32_t)fLeft;
-    }
+    vp << (int32_t)fLeft;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetButtonAlignX(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number)
-{
-    //Not supported.
+void Field::SetButtonAlignX(CPDFSDK_Document* pDocument,
+                            const CFX_WideString& swFieldName,
+                            int nControlIndex,
+                            int number) {
+  // Not supported.
 }
 
-FX_BOOL Field::buttonAlignY(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::buttonAlignY(IFXJS_Context* cc,
+                            CJS_PropValue& vp,
+                            CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        int nVP;
-        vp >> nVP;
+    int nVP;
+    vp >> nVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Int(FP_BUTTONALIGNY, nVP);
-        }
-        else
-        {
-            Field::SetButtonAlignY(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Int(FP_BUTTONALIGNY, nVP);
+    } else {
+      Field::SetButtonAlignY(m_pDocument, m_FieldName, m_nFormControlIndex,
+                             nVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
+      return FALSE;
 
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl)return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
 
-        CPDF_IconFit IconFit = pFormControl->GetIconFit();
+    CPDF_IconFit IconFit = pFormControl->GetIconFit();
 
-        FX_FLOAT fLeft,fBottom;
-        IconFit.GetIconPosition(fLeft,fBottom);
+    FX_FLOAT fLeft, fBottom;
+    IconFit.GetIconPosition(fLeft, fBottom);
 
-        vp <<  (int32_t)fBottom;
-    }
+    vp << (int32_t)fBottom;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetButtonAlignY(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number)
-{
-    //Not supported.
+void Field::SetButtonAlignY(CPDFSDK_Document* pDocument,
+                            const CFX_WideString& swFieldName,
+                            int nControlIndex,
+                            int number) {
+  // Not supported.
 }
 
-FX_BOOL Field::buttonFitBounds(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::buttonFitBounds(IFXJS_Context* cc,
+                               CJS_PropValue& vp,
+                               CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
+    bool bVP;
+    vp >> bVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Bool(FP_BUTTONFITBOUNDS, bVP);
-        }
-        else
-        {
-            Field::SetButtonFitBounds(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Bool(FP_BUTTONFITBOUNDS, bVP);
+    } else {
+      Field::SetButtonFitBounds(m_pDocument, m_FieldName, m_nFormControlIndex,
+                                bVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
+      return FALSE;
 
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl)return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
 
-        CPDF_IconFit IconFit = pFormControl->GetIconFit();
-        vp << IconFit.GetFittingBounds();
-    }
+    CPDF_IconFit IconFit = pFormControl->GetIconFit();
+    vp << IconFit.GetFittingBounds();
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetButtonFitBounds(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b)
-{
-    //Not supported.
+void Field::SetButtonFitBounds(CPDFSDK_Document* pDocument,
+                               const CFX_WideString& swFieldName,
+                               int nControlIndex,
+                               bool b) {
+  // Not supported.
 }
 
-FX_BOOL Field::buttonPosition(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::buttonPosition(IFXJS_Context* cc,
+                              CJS_PropValue& vp,
+                              CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        int nVP;
-        vp >> nVP;
+    int nVP;
+    vp >> nVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Int(FP_BUTTONPOSITION, nVP);
-        }
-        else
-        {
-            Field::SetButtonPosition(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Int(FP_BUTTONPOSITION, nVP);
+    } else {
+      Field::SetButtonPosition(m_pDocument, m_FieldName, m_nFormControlIndex,
+                               nVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
+      return FALSE;
 
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl)return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
 
-        vp <<  pFormControl->GetTextPosition();
-    }
-    return TRUE;
+    vp << pFormControl->GetTextPosition();
+  }
+  return TRUE;
 }
 
-void Field::SetButtonPosition(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number)
-{
-    //Not supported.
+void Field::SetButtonPosition(CPDFSDK_Document* pDocument,
+                              const CFX_WideString& swFieldName,
+                              int nControlIndex,
+                              int number) {
+  // Not supported.
 }
 
-FX_BOOL Field::buttonScaleHow(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::buttonScaleHow(IFXJS_Context* cc,
+                              CJS_PropValue& vp,
+                              CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        int nVP;
-        vp >> nVP;
+    int nVP;
+    vp >> nVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Int(FP_BUTTONSCALEHOW, nVP);
-        }
-        else
-        {
-            Field::SetButtonScaleHow(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Int(FP_BUTTONSCALEHOW, nVP);
+    } else {
+      Field::SetButtonScaleHow(m_pDocument, m_FieldName, m_nFormControlIndex,
+                               nVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName, FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
+      return FALSE;
 
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl)return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
 
-        CPDF_IconFit IconFit = pFormControl->GetIconFit();
-        if (IconFit.IsProportionalScale())
-            vp << (int32_t)0;
-        else
-            vp << (int32_t)1;
-    }
+    CPDF_IconFit IconFit = pFormControl->GetIconFit();
+    if (IconFit.IsProportionalScale())
+      vp << (int32_t)0;
+    else
+      vp << (int32_t)1;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetButtonScaleHow(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number)
-{
-    //Not supported.
+void Field::SetButtonScaleHow(CPDFSDK_Document* pDocument,
+                              const CFX_WideString& swFieldName,
+                              int nControlIndex,
+                              int number) {
+  // Not supported.
 }
 
-FX_BOOL Field::buttonScaleWhen(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::buttonScaleWhen(IFXJS_Context* cc,
+                               CJS_PropValue& vp,
+                               CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        int nVP;
-        vp >> nVP;
+    int nVP;
+    vp >> nVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Int(FP_BUTTONSCALEWHEN, nVP);
-        }
-        else
-        {
-            Field::SetButtonScaleWhen(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Int(FP_BUTTONSCALEWHEN, nVP);
+    } else {
+      Field::SetButtonScaleWhen(m_pDocument, m_FieldName, m_nFormControlIndex,
+                                nVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
-
-        CPDF_FormField* pFormField = (CPDF_FormField*) FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
-
-        if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
-            return FALSE;
-
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl) return FALSE;
-
-        CPDF_IconFit IconFit = pFormControl->GetIconFit();
-        int ScaleM = IconFit.GetScaleMethod();
-        switch (ScaleM)
-        {
-            case CPDF_IconFit::Always :
-                vp <<  (int32_t) CPDF_IconFit::Always;
-                break;
-            case CPDF_IconFit::Bigger :
-                vp <<  (int32_t) CPDF_IconFit::Bigger;
-                break;
-            case CPDF_IconFit::Never :
-                vp <<  (int32_t) CPDF_IconFit::Never;
-                break;
-            case CPDF_IconFit::Smaller :
-                vp <<  (int32_t) CPDF_IconFit::Smaller;
-                break;
-        }
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
+
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
+
+    if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
+      return FALSE;
+
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
+
+    CPDF_IconFit IconFit = pFormControl->GetIconFit();
+    int ScaleM = IconFit.GetScaleMethod();
+    switch (ScaleM) {
+      case CPDF_IconFit::Always:
+        vp << (int32_t)CPDF_IconFit::Always;
+        break;
+      case CPDF_IconFit::Bigger:
+        vp << (int32_t)CPDF_IconFit::Bigger;
+        break;
+      case CPDF_IconFit::Never:
+        vp << (int32_t)CPDF_IconFit::Never;
+        break;
+      case CPDF_IconFit::Smaller:
+        vp << (int32_t)CPDF_IconFit::Smaller;
+        break;
     }
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetButtonScaleWhen(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number)
-{
-    //Not supported.
+void Field::SetButtonScaleWhen(CPDFSDK_Document* pDocument,
+                               const CFX_WideString& swFieldName,
+                               int nControlIndex,
+                               int number) {
+  // Not supported.
 }
 
-FX_BOOL Field::calcOrderIndex(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::calcOrderIndex(IFXJS_Context* cc,
+                              CJS_PropValue& vp,
+                              CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        int nVP;
-        vp >> nVP;
+    int nVP;
+    vp >> nVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Int(FP_CALCORDERINDEX, nVP);
-        }
-        else
-        {
-            Field::SetCalcOrderIndex(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Int(FP_CALCORDERINDEX, nVP);
+    } else {
+      Field::SetCalcOrderIndex(m_pDocument, m_FieldName, m_nFormControlIndex,
+                               nVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName, FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_COMBOBOX && pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_COMBOBOX &&
+        pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
+      return FALSE;
 
-        CPDFSDK_InterForm* pRDInterForm = m_pDocument->GetInterForm();
-        ASSERT(pRDInterForm != NULL);
+    CPDFSDK_InterForm* pRDInterForm = m_pDocument->GetInterForm();
+    ASSERT(pRDInterForm != NULL);
 
-        CPDF_InterForm* pInterForm = pRDInterForm->GetInterForm();
-        ASSERT(pInterForm != NULL);
+    CPDF_InterForm* pInterForm = pRDInterForm->GetInterForm();
+    ASSERT(pInterForm != NULL);
 
-        vp << (int32_t)pInterForm->FindFieldInCalculationOrder(pFormField);
-    }
+    vp << (int32_t)pInterForm->FindFieldInCalculationOrder(pFormField);
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetCalcOrderIndex(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number)
-{
-    //Not supported.
+void Field::SetCalcOrderIndex(CPDFSDK_Document* pDocument,
+                              const CFX_WideString& swFieldName,
+                              int nControlIndex,
+                              int number) {
+  // Not supported.
 }
 
-FX_BOOL Field::charLimit(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::charLimit(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        int nVP;
-        vp >> nVP;
+    int nVP;
+    vp >> nVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Int(FP_CHARLIMIT, nVP);
-        }
-        else
-        {
-            Field::SetCharLimit(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Int(FP_CHARLIMIT, nVP);
+    } else {
+      Field::SetCharLimit(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName, FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
+      return FALSE;
 
-        vp << (int32_t)pFormField->GetMaxLen();
-    }
-    return TRUE;
+    vp << (int32_t)pFormField->GetMaxLen();
+  }
+  return TRUE;
 }
 
-void Field::SetCharLimit(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number)
-{
-    //Not supported.
+void Field::SetCharLimit(CPDFSDK_Document* pDocument,
+                         const CFX_WideString& swFieldName,
+                         int nControlIndex,
+                         int number) {
+  // Not supported.
 }
 
-FX_BOOL Field::comb(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::comb(IFXJS_Context* cc,
+                    CJS_PropValue& vp,
+                    CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
+    bool bVP;
+    vp >> bVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Bool(FP_COMB, bVP);
-        }
-        else
-        {
-            Field::SetComb(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Bool(FP_COMB, bVP);
+    } else {
+      Field::SetComb(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
+      return FALSE;
 
-        if (pFormField->GetFieldFlags() & FIELDFLAG_COMB)
-            vp << true;
-        else
-            vp << false;
-    }
+    if (pFormField->GetFieldFlags() & FIELDFLAG_COMB)
+      vp << true;
+    else
+      vp << false;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetComb(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b)
-{
-    //Not supported.
+void Field::SetComb(CPDFSDK_Document* pDocument,
+                    const CFX_WideString& swFieldName,
+                    int nControlIndex,
+                    bool b) {
+  // Not supported.
 }
 
-FX_BOOL Field::commitOnSelChange(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::commitOnSelChange(IFXJS_Context* cc,
+                                 CJS_PropValue& vp,
+                                 CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
+    bool bVP;
+    vp >> bVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Bool(FP_COMMITONSELCHANGE, bVP);
-        }
-        else
-        {
-            Field::SetCommitOnSelChange(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Bool(FP_COMMITONSELCHANGE, bVP);
+    } else {
+      Field::SetCommitOnSelChange(m_pDocument, m_FieldName, m_nFormControlIndex,
+                                  bVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_COMBOBOX && pFormField->GetFieldType() != FIELDTYPE_LISTBOX)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_COMBOBOX &&
+        pFormField->GetFieldType() != FIELDTYPE_LISTBOX)
+      return FALSE;
 
-        if (pFormField->GetFieldFlags() & FIELDFLAG_COMMITONSELCHANGE)
-            vp << true;
-        else
-            vp << false;
-    }
+    if (pFormField->GetFieldFlags() & FIELDFLAG_COMMITONSELCHANGE)
+      vp << true;
+    else
+      vp << false;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetCommitOnSelChange(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b)
-{
-    //Not supported.
+void Field::SetCommitOnSelChange(CPDFSDK_Document* pDocument,
+                                 const CFX_WideString& swFieldName,
+                                 int nControlIndex,
+                                 bool b) {
+  // Not supported.
 }
 
-FX_BOOL Field::currentValueIndices(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::currentValueIndices(IFXJS_Context* cc,
+                                   CJS_PropValue& vp,
+                                   CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
-
-        CFX_DWordArray array;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        if (vp.GetType() == VT_number)
-        {
-            int iSelecting = 0;
-            vp >> iSelecting;
-            array.Add(iSelecting);
-        }
-        else if (vp.IsArrayObject())
-        {
-            CJS_Array SelArray(m_isolate);
-            CJS_Value SelValue(m_isolate);
-            int iSelecting;
-            vp >> SelArray;
-            for (int i=0,sz=SelArray.GetLength(); i<sz; i++)
-            {
-                SelArray.GetElement(i,SelValue);
-                iSelecting = SelValue.ToInt();
-                array.Add(iSelecting);
-            }
-        }
+    CFX_DWordArray array;
 
-        if (m_bDelay)
-        {
-            AddDelay_WordArray(FP_CURRENTVALUEINDICES, array);
-        }
-        else
-        {
-            Field::SetCurrentValueIndices(m_pDocument, m_FieldName, m_nFormControlIndex, array);
-        }
-    }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
-
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
-
-        if (pFormField->GetFieldType() != FIELDTYPE_COMBOBOX && pFormField->GetFieldType() != FIELDTYPE_LISTBOX)
-            return FALSE;
-
-        if (pFormField->CountSelectedItems() == 1)
-            vp << pFormField->GetSelectedIndex(0);
-        else if (pFormField->CountSelectedItems() > 1)
-        {
-            CJS_Array SelArray(m_isolate);
-            for (int i=0,sz=pFormField->CountSelectedItems(); i<sz; i++)
-            {
-                SelArray.SetElement(i, CJS_Value(m_isolate,pFormField->GetSelectedIndex(i)));
-            }
-            vp << SelArray;
-        }
-        else
-            vp << -1;
+    if (vp.GetType() == VT_number) {
+      int iSelecting = 0;
+      vp >> iSelecting;
+      array.Add(iSelecting);
+    } else if (vp.IsArrayObject()) {
+      CJS_Array SelArray(m_isolate);
+      CJS_Value SelValue(m_isolate);
+      int iSelecting;
+      vp >> SelArray;
+      for (int i = 0, sz = SelArray.GetLength(); i < sz; i++) {
+        SelArray.GetElement(i, SelValue);
+        iSelecting = SelValue.ToInt();
+        array.Add(iSelecting);
+      }
     }
 
-    return TRUE;
-}
+    if (m_bDelay) {
+      AddDelay_WordArray(FP_CURRENTVALUEINDICES, array);
+    } else {
+      Field::SetCurrentValueIndices(m_pDocument, m_FieldName,
+                                    m_nFormControlIndex, array);
+    }
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-void Field::SetCurrentValueIndices(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex,
-                                   const CFX_DWordArray& array)
-{
-    ASSERT(pDocument != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(pDocument, swFieldName, FieldArray);
+    if (pFormField->GetFieldType() != FIELDTYPE_COMBOBOX &&
+        pFormField->GetFieldType() != FIELDTYPE_LISTBOX)
+      return FALSE;
+
+    if (pFormField->CountSelectedItems() == 1)
+      vp << pFormField->GetSelectedIndex(0);
+    else if (pFormField->CountSelectedItems() > 1) {
+      CJS_Array SelArray(m_isolate);
+      for (int i = 0, sz = pFormField->CountSelectedItems(); i < sz; i++) {
+        SelArray.SetElement(
+            i, CJS_Value(m_isolate, pFormField->GetSelectedIndex(i)));
+      }
+      vp << SelArray;
+    } else
+      vp << -1;
+  }
+
+  return TRUE;
+}
+
+void Field::SetCurrentValueIndices(CPDFSDK_Document* pDocument,
+                                   const CFX_WideString& swFieldName,
+                                   int nControlIndex,
+                                   const CFX_DWordArray& array) {
+  ASSERT(pDocument != NULL);
+
+  CFX_PtrArray FieldArray;
+  GetFormFields(pDocument, swFieldName, FieldArray);
+
+  for (int i = 0, isz = FieldArray.GetSize(); i < isz; i++) {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
+    ASSERT(pFormField != NULL);
 
-    for (int i=0,isz=FieldArray.GetSize(); i<isz; i++)
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
-        ASSERT(pFormField != NULL);
-
-        int nFieldType = pFormField->GetFieldType();
-        if (nFieldType == FIELDTYPE_COMBOBOX || nFieldType == FIELDTYPE_LISTBOX)
-        {
-            FX_DWORD dwFieldFlags = pFormField->GetFieldFlags();
-            pFormField->ClearSelection(TRUE);
-
-            for (int i=0,sz=array.GetSize(); i<sz; i++)
-            {
-                if (i>0 && !(dwFieldFlags & (1<<21)))
-                {
-                    break;
-                }
-
-                int iSelecting = (int32_t)array.GetAt(i);
-                if (iSelecting < pFormField->CountOptions() && !pFormField->IsItemSelected(iSelecting))
-                    pFormField->SetItemSelection(iSelecting, TRUE);
+    int nFieldType = pFormField->GetFieldType();
+    if (nFieldType == FIELDTYPE_COMBOBOX || nFieldType == FIELDTYPE_LISTBOX) {
+      FX_DWORD dwFieldFlags = pFormField->GetFieldFlags();
+      pFormField->ClearSelection(TRUE);
 
-            }
-            UpdateFormField(pDocument, pFormField, TRUE, TRUE, TRUE);
+      for (int i = 0, sz = array.GetSize(); i < sz; i++) {
+        if (i > 0 && !(dwFieldFlags & (1 << 21))) {
+          break;
         }
+
+        int iSelecting = (int32_t)array.GetAt(i);
+        if (iSelecting < pFormField->CountOptions() &&
+            !pFormField->IsItemSelected(iSelecting))
+          pFormField->SetItemSelection(iSelecting, TRUE);
+      }
+      UpdateFormField(pDocument, pFormField, TRUE, TRUE, TRUE);
     }
+  }
 }
 
-FX_BOOL Field::defaultStyle(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    // MQG sError = JSGetStringFromID(IDS_STRING_NOTSUPPORT);
-    return FALSE;
+FX_BOOL Field::defaultStyle(IFXJS_Context* cc,
+                            CJS_PropValue& vp,
+                            CFX_WideString& sError) {
+  // MQG sError = JSGetStringFromID(IDS_STRING_NOTSUPPORT);
+  return FALSE;
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        ;
-    }
-    else
-    {
-        ;
-    }
-    return TRUE;
+    ;
+  } else {
+    ;
+  }
+  return TRUE;
 }
 
-void Field::SetDefaultStyle(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex)
-{
-    //Not supported.
+void Field::SetDefaultStyle(CPDFSDK_Document* pDocument,
+                            const CFX_WideString& swFieldName,
+                            int nControlIndex) {
+  // Not supported.
 }
 
-FX_BOOL Field::defaultValue(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::defaultValue(IFXJS_Context* cc,
+                            CJS_PropValue& vp,
+                            CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        CFX_WideString WideStr;
-        vp >> WideStr;
+    CFX_WideString WideStr;
+    vp >> WideStr;
 
-        if (m_bDelay)
-        {
-            AddDelay_WideString(FP_DEFAULTVALUE, WideStr);
-        }
-        else
-        {
-            Field::SetDefaultValue(m_pDocument, m_FieldName, m_nFormControlIndex, WideStr);
-        }
+    if (m_bDelay) {
+      AddDelay_WideString(FP_DEFAULTVALUE, WideStr);
+    } else {
+      Field::SetDefaultValue(m_pDocument, m_FieldName, m_nFormControlIndex,
+                             WideStr);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() == FIELDTYPE_PUSHBUTTON ||
-            pFormField->GetFieldType() == FIELDTYPE_SIGNATURE)
-            return FALSE;
+    if (pFormField->GetFieldType() == FIELDTYPE_PUSHBUTTON ||
+        pFormField->GetFieldType() == FIELDTYPE_SIGNATURE)
+      return FALSE;
 
-        vp << pFormField->GetDefaultValue();
-    }
-    return TRUE;
+    vp << pFormField->GetDefaultValue();
+  }
+  return TRUE;
 }
 
-void Field::SetDefaultValue(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex,
-                            const CFX_WideString& string)
-{
-    //Not supported.
+void Field::SetDefaultValue(CPDFSDK_Document* pDocument,
+                            const CFX_WideString& swFieldName,
+                            int nControlIndex,
+                            const CFX_WideString& string) {
+  // Not supported.
 }
 
-FX_BOOL Field::doNotScroll(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::doNotScroll(IFXJS_Context* cc,
+                           CJS_PropValue& vp,
+                           CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
+    bool bVP;
+    vp >> bVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Bool(FP_DONOTSCROLL, bVP);
-        }
-        else
-        {
-            Field::SetDoNotScroll(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Bool(FP_DONOTSCROLL, bVP);
+    } else {
+      Field::SetDoNotScroll(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
+      return FALSE;
 
-        if (pFormField->GetFieldFlags() & FIELDFLAG_DONOTSCROLL)
-            vp << true;
-        else
-            vp << false;
-    }
+    if (pFormField->GetFieldFlags() & FIELDFLAG_DONOTSCROLL)
+      vp << true;
+    else
+      vp << false;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetDoNotScroll(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b)
-{
-    //Not supported.
+void Field::SetDoNotScroll(CPDFSDK_Document* pDocument,
+                           const CFX_WideString& swFieldName,
+                           int nControlIndex,
+                           bool b) {
+  // Not supported.
 }
 
-FX_BOOL Field::doNotSpellCheck(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::doNotSpellCheck(IFXJS_Context* cc,
+                               CJS_PropValue& vp,
+                               CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
-    }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+    bool bVP;
+    vp >> bVP;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD &&
-            pFormField->GetFieldType() != FIELDTYPE_COMBOBOX)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD &&
+        pFormField->GetFieldType() != FIELDTYPE_COMBOBOX)
+      return FALSE;
 
-        if (pFormField->GetFieldFlags() & FIELDFLAG_DONOTSPELLCHECK)
-            vp << true;
-        else
-            vp << false;
-    }
+    if (pFormField->GetFieldFlags() & FIELDFLAG_DONOTSPELLCHECK)
+      vp << true;
+    else
+      vp << false;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetDelay(FX_BOOL bDelay)
-{
-    m_bDelay = bDelay;
+void Field::SetDelay(FX_BOOL bDelay) {
+  m_bDelay = bDelay;
 
-    if (!m_bDelay)
-    {
-        if (m_pJSDoc)
-            m_pJSDoc->DoFieldDelay(m_FieldName, m_nFormControlIndex);
-    }
+  if (!m_bDelay) {
+    if (m_pJSDoc)
+      m_pJSDoc->DoFieldDelay(m_FieldName, m_nFormControlIndex);
+  }
 }
 
-FX_BOOL Field::delay(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+FX_BOOL Field::delay(IFXJS_Context* cc,
+                     CJS_PropValue& vp,
+                     CFX_WideString& sError) {
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
+    bool bVP;
+    vp >> bVP;
 
-        SetDelay(bVP);
-    }
-    else
-    {
-        vp << m_bDelay;
-    }
-    return TRUE;
+    SetDelay(bVP);
+  } else {
+    vp << m_bDelay;
+  }
+  return TRUE;
 }
 
-FX_BOOL Field::display(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+FX_BOOL Field::display(IFXJS_Context* cc,
+                       CJS_PropValue& vp,
+                       CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-        int nVP;
-        vp >> nVP;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        if (m_bDelay)
-        {
-            AddDelay_Int(FP_DISPLAY, nVP);
-        }
-        else
-        {
-            Field::SetDisplay(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
-        }
-    }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+    int nVP;
+    vp >> nVP;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
-
-        CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-        ASSERT(pInterForm != NULL);
-
-        CPDFSDK_Widget* pWidget = pInterForm->GetWidget(GetSmartFieldControl(pFormField));
-        if (!pWidget)return FALSE;
-
-        FX_DWORD dwFlag = pWidget->GetFlags();
-
-        if (ANNOTFLAG_INVISIBLE & dwFlag || ANNOTFLAG_HIDDEN & dwFlag)
-        {
-            vp << (int32_t)1;
-        }
-        else
-        {
-            if (ANNOTFLAG_PRINT & dwFlag)
-            {
-                if (ANNOTFLAG_NOVIEW & dwFlag)
-                {
-                    vp << (int32_t)3;
-                }
-                else
-                {
-                    vp << (int32_t)0;
-                }
-            }
-            else
-            {
-                vp << (int32_t)2;
-            }
-        }
+    if (m_bDelay) {
+      AddDelay_Int(FP_DISPLAY, nVP);
+    } else {
+      Field::SetDisplay(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
     }
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-    return TRUE;
-}
-
-void Field::SetDisplay(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number)
-{
-    ASSERT(pDocument != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+    CPDFSDK_InterForm* pInterForm =
+        (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
     ASSERT(pInterForm != NULL);
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(pDocument, swFieldName, FieldArray);
+    CPDFSDK_Widget* pWidget =
+        pInterForm->GetWidget(GetSmartFieldControl(pFormField));
+    if (!pWidget)
+      return FALSE;
 
-    for (int i=0,isz=FieldArray.GetSize(); i<isz; i++)
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
-        ASSERT(pFormField != NULL);
-
-        if (nControlIndex < 0)
-        {
-            FX_BOOL bSet = FALSE;
-            for (int j=0,jsz = pFormField->CountControls(); j<jsz; j++)
-            {
-                CPDF_FormControl* pFormControl = pFormField->GetControl(j);
-                ASSERT(pFormControl != NULL);
-
-                if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl))
-                {
-                    FX_DWORD dwFlag = pWidget->GetFlags();
-                    switch (number)
-                    {
-                    case 0:
-                        dwFlag &= (~ANNOTFLAG_INVISIBLE);
-                        dwFlag &= (~ANNOTFLAG_HIDDEN);
-                        dwFlag &= (~ANNOTFLAG_NOVIEW);
-                        dwFlag |= ANNOTFLAG_PRINT;
-                        break;
-                    case 1:
-                        dwFlag &= (~ANNOTFLAG_INVISIBLE);
-                        dwFlag &= (~ANNOTFLAG_NOVIEW);
-                        dwFlag |= (ANNOTFLAG_HIDDEN | ANNOTFLAG_PRINT);
-                        break;
-                    case 2:
-                        dwFlag &= (~ANNOTFLAG_INVISIBLE);
-                        dwFlag &= (~ANNOTFLAG_PRINT);
-                        dwFlag &= (~ANNOTFLAG_HIDDEN);
-                        dwFlag &= (~ANNOTFLAG_NOVIEW);
-                        break;
-                    case 3:
-                        dwFlag |= ANNOTFLAG_NOVIEW;
-                        dwFlag |= ANNOTFLAG_PRINT;
-                        dwFlag &= (~ANNOTFLAG_HIDDEN);
-                        break;
-                    }
-
-                    if (dwFlag != pWidget->GetFlags())
-                    {
-                        pWidget->SetFlags(dwFlag);
-                        bSet = TRUE;
-                    }
-                }
-            }
+    FX_DWORD dwFlag = pWidget->GetFlags();
 
-            if (bSet) UpdateFormField(pDocument, pFormField, TRUE, FALSE, TRUE);
-        }
-        else
-        {
-            if(nControlIndex >= pFormField->CountControls()) return;
-            if (CPDF_FormControl* pFormControl = pFormField->GetControl(nControlIndex))
-            {
-                if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl))
-                {
-
-                    FX_DWORD dwFlag = pWidget->GetFlags();
-                    switch (number)
-                    {
-                    case 0:
-                        dwFlag &= (~ANNOTFLAG_INVISIBLE);
-                        dwFlag &= (~ANNOTFLAG_HIDDEN);
-                        dwFlag &= (~ANNOTFLAG_NOVIEW);
-                        dwFlag |= ANNOTFLAG_PRINT;
-                        break;
-                    case 1:
-                        dwFlag &= (~ANNOTFLAG_INVISIBLE);
-                        dwFlag &= (~ANNOTFLAG_NOVIEW);
-                        dwFlag |= (ANNOTFLAG_HIDDEN | ANNOTFLAG_PRINT);
-                        break;
-                    case 2:
-                        dwFlag &= (~ANNOTFLAG_INVISIBLE);
-                        dwFlag &= (~ANNOTFLAG_PRINT);
-                        dwFlag &= (~ANNOTFLAG_HIDDEN);
-                        dwFlag &= (~ANNOTFLAG_NOVIEW);
-                        break;
-                    case 3:
-                        dwFlag |= ANNOTFLAG_NOVIEW;
-                        dwFlag |= ANNOTFLAG_PRINT;
-                        dwFlag &= (~ANNOTFLAG_HIDDEN);
-                        break;
-                    }
-                    if (dwFlag != pWidget->GetFlags())
-                    {
-                        pWidget->SetFlags(dwFlag);
-                        UpdateFormControl(pDocument, pFormControl, TRUE, FALSE, TRUE);
-                    }
-                }
-            }
+    if (ANNOTFLAG_INVISIBLE & dwFlag || ANNOTFLAG_HIDDEN & dwFlag) {
+      vp << (int32_t)1;
+    } else {
+      if (ANNOTFLAG_PRINT & dwFlag) {
+        if (ANNOTFLAG_NOVIEW & dwFlag) {
+          vp << (int32_t)3;
+        } else {
+          vp << (int32_t)0;
         }
+      } else {
+        vp << (int32_t)2;
+      }
     }
-}
+  }
 
-FX_BOOL Field::doc(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (!vp.IsGetting()) {
-        return FALSE;
-    }
-    vp << m_pJSDoc->GetCJSDoc();
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Field::editable(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+void Field::SetDisplay(CPDFSDK_Document* pDocument,
+                       const CFX_WideString& swFieldName,
+                       int nControlIndex,
+                       int number) {
+  ASSERT(pDocument != NULL);
 
-        bool bVP;
-        vp >> bVP;
-    }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName, FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+  CFX_PtrArray FieldArray;
+  GetFormFields(pDocument, swFieldName, FieldArray);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_COMBOBOX)
-            return FALSE;
-
-        if (pFormField->GetFieldFlags() & FIELDFLAG_EDIT)
-            vp << true;
-        else
-            vp << false;
-    }
+  for (int i = 0, isz = FieldArray.GetSize(); i < isz; i++) {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
+    ASSERT(pFormField != NULL);
 
-    return TRUE;
-}
-
-FX_BOOL Field::exportValues(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+    if (nControlIndex < 0) {
+      FX_BOOL bSet = FALSE;
+      for (int j = 0, jsz = pFormField->CountControls(); j < jsz; j++) {
+        CPDF_FormControl* pFormControl = pFormField->GetControl(j);
+        ASSERT(pFormControl != NULL);
 
+        if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
+          FX_DWORD dwFlag = pWidget->GetFlags();
+          switch (number) {
+            case 0:
+              dwFlag &= (~ANNOTFLAG_INVISIBLE);
+              dwFlag &= (~ANNOTFLAG_HIDDEN);
+              dwFlag &= (~ANNOTFLAG_NOVIEW);
+              dwFlag |= ANNOTFLAG_PRINT;
+              break;
+            case 1:
+              dwFlag &= (~ANNOTFLAG_INVISIBLE);
+              dwFlag &= (~ANNOTFLAG_NOVIEW);
+              dwFlag |= (ANNOTFLAG_HIDDEN | ANNOTFLAG_PRINT);
+              break;
+            case 2:
+              dwFlag &= (~ANNOTFLAG_INVISIBLE);
+              dwFlag &= (~ANNOTFLAG_PRINT);
+              dwFlag &= (~ANNOTFLAG_HIDDEN);
+              dwFlag &= (~ANNOTFLAG_NOVIEW);
+              break;
+            case 3:
+              dwFlag |= ANNOTFLAG_NOVIEW;
+              dwFlag |= ANNOTFLAG_PRINT;
+              dwFlag &= (~ANNOTFLAG_HIDDEN);
+              break;
+          }
+
+          if (dwFlag != pWidget->GetFlags()) {
+            pWidget->SetFlags(dwFlag);
+            bSet = TRUE;
+          }
+        }
+      }
+
+      if (bSet)
+        UpdateFormField(pDocument, pFormField, TRUE, FALSE, TRUE);
+    } else {
+      if (nControlIndex >= pFormField->CountControls())
+        return;
+      if (CPDF_FormControl* pFormControl =
+              pFormField->GetControl(nControlIndex)) {
+        if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
+          FX_DWORD dwFlag = pWidget->GetFlags();
+          switch (number) {
+            case 0:
+              dwFlag &= (~ANNOTFLAG_INVISIBLE);
+              dwFlag &= (~ANNOTFLAG_HIDDEN);
+              dwFlag &= (~ANNOTFLAG_NOVIEW);
+              dwFlag |= ANNOTFLAG_PRINT;
+              break;
+            case 1:
+              dwFlag &= (~ANNOTFLAG_INVISIBLE);
+              dwFlag &= (~ANNOTFLAG_NOVIEW);
+              dwFlag |= (ANNOTFLAG_HIDDEN | ANNOTFLAG_PRINT);
+              break;
+            case 2:
+              dwFlag &= (~ANNOTFLAG_INVISIBLE);
+              dwFlag &= (~ANNOTFLAG_PRINT);
+              dwFlag &= (~ANNOTFLAG_HIDDEN);
+              dwFlag &= (~ANNOTFLAG_NOVIEW);
+              break;
+            case 3:
+              dwFlag |= ANNOTFLAG_NOVIEW;
+              dwFlag |= ANNOTFLAG_PRINT;
+              dwFlag &= (~ANNOTFLAG_HIDDEN);
+              break;
+          }
+          if (dwFlag != pWidget->GetFlags()) {
+            pWidget->SetFlags(dwFlag);
+            UpdateFormControl(pDocument, pFormControl, TRUE, FALSE, TRUE);
+          }
+        }
+      }
+    }
+  }
+}
+
+FX_BOOL Field::doc(IFXJS_Context* cc,
+                   CJS_PropValue& vp,
+                   CFX_WideString& sError) {
+  if (!vp.IsGetting()) {
+    return FALSE;
+  }
+  vp << m_pJSDoc->GetCJSDoc();
+  return TRUE;
+}
+
+FX_BOOL Field::editable(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
+
+    bool bVP;
+    vp >> bVP;
+  } else {
     CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
+    GetFormFields(m_FieldName, FieldArray);
     if (FieldArray.GetSize() <= 0)
-        return FALSE;
+      return FALSE;
 
     CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    if (pFormField->GetFieldType() != FIELDTYPE_CHECKBOX &&
-        pFormField->GetFieldType() != FIELDTYPE_RADIOBUTTON)
-        return FALSE;
+    ASSERT(pFormField != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_COMBOBOX)
+      return FALSE;
 
-        if (!vp.IsArrayObject())
-            return FALSE;
-    }
+    if (pFormField->GetFieldFlags() & FIELDFLAG_EDIT)
+      vp << true;
     else
-    {
-        CJS_Array ExportValusArray(m_isolate);
-        if (m_nFormControlIndex < 0)
-        {
-            for (int i=0,sz=pFormField->CountControls(); i<sz; i++)
-            {
-                CPDF_FormControl* pFormControl = pFormField->GetControl(i);
-                ExportValusArray.SetElement(i, CJS_Value(m_isolate,pFormControl->GetExportValue().c_str()));
-            }
-        }
-        else
-        {
-            if (m_nFormControlIndex >= pFormField->CountControls())
-                return FALSE;
+      vp << false;
+  }
 
-            CPDF_FormControl* pFormControl = pFormField->GetControl(m_nFormControlIndex);
-            if (!pFormControl)
-                return FALSE;
-
-            ExportValusArray.SetElement(0, CJS_Value(m_isolate,pFormControl->GetExportValue().c_str()));
-        }
-        vp << ExportValusArray;
-    }
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Field::fileSelect(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::exportValues(IFXJS_Context* cc,
+                            CJS_PropValue& vp,
+                            CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName, FieldArray);
-    if (FieldArray.GetSize() <= 0)
-        return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  if (pFormField->GetFieldType() != FIELDTYPE_CHECKBOX &&
+      pFormField->GetFieldType() != FIELDTYPE_RADIOBUTTON)
+    return FALSE;
+
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
+
+    if (!vp.IsArrayObject())
+      return FALSE;
+  } else {
+    CJS_Array ExportValusArray(m_isolate);
+    if (m_nFormControlIndex < 0) {
+      for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
+        CPDF_FormControl* pFormControl = pFormField->GetControl(i);
+        ExportValusArray.SetElement(
+            i, CJS_Value(m_isolate, pFormControl->GetExportValue().c_str()));
+      }
+    } else {
+      if (m_nFormControlIndex >= pFormField->CountControls())
         return FALSE;
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet)
-            return FALSE;
+      CPDF_FormControl* pFormControl =
+          pFormField->GetControl(m_nFormControlIndex);
+      if (!pFormControl)
+        return FALSE;
 
-        bool bVP;
-        vp >> bVP;
-    }
-    else
-    {
-        if (pFormField->GetFieldFlags() & FIELDFLAG_FILESELECT)
-            vp << true;
-        else
-            vp << false;
+      ExportValusArray.SetElement(
+          0, CJS_Value(m_isolate, pFormControl->GetExportValue().c_str()));
     }
-    return TRUE;
+    vp << ExportValusArray;
+  }
+  return TRUE;
 }
 
-FX_BOOL Field::fillColor(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-
-    CJS_Array crArray(m_isolate);
+FX_BOOL Field::fileSelect(IFXJS_Context* cc,
+                          CJS_PropValue& vp,
+                          CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName, FieldArray);
-    if (FieldArray.GetSize() <= 0)
-        return FALSE;
-
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet)
-            return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-        if (!vp.IsArrayObject())
-            return FALSE;
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
+    return FALSE;
 
-        vp >> crArray;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        CPWL_Color color;
-        color::ConvertArrayToPWLColor(crArray, color);
-        if (m_bDelay)
-        {
-            AddDelay_Color(FP_FILLCOLOR, color);
-        }
-        else
-        {
-            Field::SetFillColor(m_pDocument, m_FieldName, m_nFormControlIndex, color);
-        }
-    }
+    bool bVP;
+    vp >> bVP;
+  } else {
+    if (pFormField->GetFieldFlags() & FIELDFLAG_FILESELECT)
+      vp << true;
     else
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
-
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl)
-            return FALSE;
-
-        int iColorType;
-        pFormControl->GetBackgroundColor(iColorType);
-
-        CPWL_Color color;
-        if (iColorType == COLORTYPE_TRANSPARENT)
-        {
-            color = CPWL_Color(COLORTYPE_TRANSPARENT);
-        }
-        else if (iColorType == COLORTYPE_GRAY)
-        {
-            color = CPWL_Color(COLORTYPE_GRAY, pFormControl->GetOriginalBackgroundColor(0));
-        }
-        else if (iColorType == COLORTYPE_RGB)
-        {
-            color = CPWL_Color(COLORTYPE_RGB, pFormControl->GetOriginalBackgroundColor(0),
-                pFormControl->GetOriginalBackgroundColor(1),
-                pFormControl->GetOriginalBackgroundColor(2));
-        }
-        else if (iColorType == COLORTYPE_CMYK)
-        {
-            color = CPWL_Color(COLORTYPE_CMYK, pFormControl->GetOriginalBackgroundColor(0),
-                pFormControl->GetOriginalBackgroundColor(1),
-                pFormControl->GetOriginalBackgroundColor(2),
-                pFormControl->GetOriginalBackgroundColor(3));
-        }
-        else
-            return FALSE;
-
-        color::ConvertPWLColorToArray(color, crArray);
-        vp  <<  crArray;
-    }
-
-    return TRUE;
-}
-
-void Field::SetFillColor(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CPWL_Color& color)
-{
-    //Not supported.
+      vp << false;
+  }
+  return TRUE;
 }
 
-FX_BOOL Field::hidden(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+FX_BOOL Field::fillColor(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-        bool bVP;
-        vp >> bVP;
+  CJS_Array crArray(m_isolate);
 
-        if (m_bDelay)
-        {
-            AddDelay_Bool(FP_HIDDEN, bVP);
-        }
-        else
-        {
-            Field::SetHidden(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
-        }
-    }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
-
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-        CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-        ASSERT(pInterForm != NULL);
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        CPDFSDK_Widget* pWidget = pInterForm->GetWidget(GetSmartFieldControl(pFormField));
-        if (!pWidget) return FALSE;
+    if (!vp.IsArrayObject())
+      return FALSE;
 
-        FX_DWORD dwFlags = pWidget->GetFlags();
+    vp >> crArray;
 
-        if (ANNOTFLAG_INVISIBLE & dwFlags || ANNOTFLAG_HIDDEN & dwFlags)
-        {
-            vp << true;
-        }
-        else
-            vp << false;
+    CPWL_Color color;
+    color::ConvertArrayToPWLColor(crArray, color);
+    if (m_bDelay) {
+      AddDelay_Color(FP_FILLCOLOR, color);
+    } else {
+      Field::SetFillColor(m_pDocument, m_FieldName, m_nFormControlIndex, color);
     }
+  } else {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-    return TRUE;
-}
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
+
+    int iColorType;
+    pFormControl->GetBackgroundColor(iColorType);
+
+    CPWL_Color color;
+    if (iColorType == COLORTYPE_TRANSPARENT) {
+      color = CPWL_Color(COLORTYPE_TRANSPARENT);
+    } else if (iColorType == COLORTYPE_GRAY) {
+      color = CPWL_Color(COLORTYPE_GRAY,
+                         pFormControl->GetOriginalBackgroundColor(0));
+    } else if (iColorType == COLORTYPE_RGB) {
+      color =
+          CPWL_Color(COLORTYPE_RGB, pFormControl->GetOriginalBackgroundColor(0),
+                     pFormControl->GetOriginalBackgroundColor(1),
+                     pFormControl->GetOriginalBackgroundColor(2));
+    } else if (iColorType == COLORTYPE_CMYK) {
+      color = CPWL_Color(COLORTYPE_CMYK,
+                         pFormControl->GetOriginalBackgroundColor(0),
+                         pFormControl->GetOriginalBackgroundColor(1),
+                         pFormControl->GetOriginalBackgroundColor(2),
+                         pFormControl->GetOriginalBackgroundColor(3));
+    } else
+      return FALSE;
+
+    color::ConvertPWLColorToArray(color, crArray);
+    vp << crArray;
+  }
+
+  return TRUE;
+}
+
+void Field::SetFillColor(CPDFSDK_Document* pDocument,
+                         const CFX_WideString& swFieldName,
+                         int nControlIndex,
+                         const CPWL_Color& color) {
+  // Not supported.
+}
+
+FX_BOOL Field::hidden(IFXJS_Context* cc,
+                      CJS_PropValue& vp,
+                      CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
+
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
+
+    bool bVP;
+    vp >> bVP;
+
+    if (m_bDelay) {
+      AddDelay_Bool(FP_HIDDEN, bVP);
+    } else {
+      Field::SetHidden(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
+    }
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-void Field::SetHidden(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b)
-{
-    ASSERT(pDocument != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+    CPDFSDK_InterForm* pInterForm =
+        (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
     ASSERT(pInterForm != NULL);
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(pDocument, swFieldName, FieldArray);
+    CPDFSDK_Widget* pWidget =
+        pInterForm->GetWidget(GetSmartFieldControl(pFormField));
+    if (!pWidget)
+      return FALSE;
 
-    for (int i=0,isz=FieldArray.GetSize(); i<isz; i++)
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
-        ASSERT(pFormField != NULL);
-
-        if (nControlIndex < 0)
-        {
-            FX_BOOL bSet = FALSE;
-            for (int j=0,jsz = pFormField->CountControls(); j<jsz; j++)
-            {
-                if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormField->GetControl(j)))
-                {
-                    FX_DWORD dwFlags = pWidget->GetFlags();
-
-                    if (b)
-                    {
-                        dwFlags &= (~ANNOTFLAG_INVISIBLE);
-                        dwFlags &= (~ANNOTFLAG_NOVIEW);
-                        dwFlags |= (ANNOTFLAG_HIDDEN | ANNOTFLAG_PRINT);
-                    }
-                    else
-                    {
-                        dwFlags &= (~ANNOTFLAG_INVISIBLE);
-                        dwFlags &= (~ANNOTFLAG_HIDDEN);
-                        dwFlags &= (~ANNOTFLAG_NOVIEW);
-                        dwFlags |= ANNOTFLAG_PRINT;
-                    }
-
-                    if (dwFlags != pWidget->GetFlags())
-                    {
-                        pWidget->SetFlags(dwFlags);
-                        bSet = TRUE;
-                    }
-                }
-            }
+    FX_DWORD dwFlags = pWidget->GetFlags();
 
-            if (bSet)
-                UpdateFormField(pDocument, pFormField, TRUE, FALSE, TRUE);
-        }
-        else
-        {
-            if(nControlIndex >= pFormField->CountControls()) return;
-            if (CPDF_FormControl* pFormControl = pFormField->GetControl(nControlIndex))
-            {
-                if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl))
-                {
-                    FX_DWORD dwFlags = pWidget->GetFlags();
-
-                    if (b)
-                    {
-                        dwFlags &= (~ANNOTFLAG_INVISIBLE);
-                        dwFlags &= (~ANNOTFLAG_NOVIEW);
-                        dwFlags |= (ANNOTFLAG_HIDDEN | ANNOTFLAG_PRINT);
-                    }
-                    else
-                    {
-                        dwFlags &= (~ANNOTFLAG_INVISIBLE);
-                        dwFlags &= (~ANNOTFLAG_HIDDEN);
-                        dwFlags &= (~ANNOTFLAG_NOVIEW);
-                        dwFlags |= ANNOTFLAG_PRINT;
-                    }
-
-                    if (dwFlags != pWidget->GetFlags())
-                    {
-                        pWidget->SetFlags(dwFlags);
-                        UpdateFormControl(pDocument, pFormControl, TRUE, FALSE, TRUE);
-                    }
-                }
-            }
-        }
-    }
+    if (ANNOTFLAG_INVISIBLE & dwFlags || ANNOTFLAG_HIDDEN & dwFlags) {
+      vp << true;
+    } else
+      vp << false;
+  }
+
+  return TRUE;
 }
 
-FX_BOOL Field::highlight(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+void Field::SetHidden(CPDFSDK_Document* pDocument,
+                      const CFX_WideString& swFieldName,
+                      int nControlIndex,
+                      bool b) {
+  ASSERT(pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-        CFX_ByteString strMode;
-        vp >> strMode;
+  CFX_PtrArray FieldArray;
+  GetFormFields(pDocument, swFieldName, FieldArray);
 
-        if (m_bDelay)
-        {
-            AddDelay_String(FP_HIGHLIGHT, strMode);
-        }
-        else
-        {
-            Field::SetHighlight(m_pDocument, m_FieldName, m_nFormControlIndex, strMode);
-        }
-    }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  for (int i = 0, isz = FieldArray.GetSize(); i < isz; i++) {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
+    ASSERT(pFormField != NULL);
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    if (nControlIndex < 0) {
+      FX_BOOL bSet = FALSE;
+      for (int j = 0, jsz = pFormField->CountControls(); j < jsz; j++) {
+        if (CPDFSDK_Widget* pWidget =
+                pInterForm->GetWidget(pFormField->GetControl(j))) {
+          FX_DWORD dwFlags = pWidget->GetFlags();
+
+          if (b) {
+            dwFlags &= (~ANNOTFLAG_INVISIBLE);
+            dwFlags &= (~ANNOTFLAG_NOVIEW);
+            dwFlags |= (ANNOTFLAG_HIDDEN | ANNOTFLAG_PRINT);
+          } else {
+            dwFlags &= (~ANNOTFLAG_INVISIBLE);
+            dwFlags &= (~ANNOTFLAG_HIDDEN);
+            dwFlags &= (~ANNOTFLAG_NOVIEW);
+            dwFlags |= ANNOTFLAG_PRINT;
+          }
+
+          if (dwFlags != pWidget->GetFlags()) {
+            pWidget->SetFlags(dwFlags);
+            bSet = TRUE;
+          }
+        }
+      }
+
+      if (bSet)
+        UpdateFormField(pDocument, pFormField, TRUE, FALSE, TRUE);
+    } else {
+      if (nControlIndex >= pFormField->CountControls())
+        return;
+      if (CPDF_FormControl* pFormControl =
+              pFormField->GetControl(nControlIndex)) {
+        if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
+          FX_DWORD dwFlags = pWidget->GetFlags();
+
+          if (b) {
+            dwFlags &= (~ANNOTFLAG_INVISIBLE);
+            dwFlags &= (~ANNOTFLAG_NOVIEW);
+            dwFlags |= (ANNOTFLAG_HIDDEN | ANNOTFLAG_PRINT);
+          } else {
+            dwFlags &= (~ANNOTFLAG_INVISIBLE);
+            dwFlags &= (~ANNOTFLAG_HIDDEN);
+            dwFlags &= (~ANNOTFLAG_NOVIEW);
+            dwFlags |= ANNOTFLAG_PRINT;
+          }
+
+          if (dwFlags != pWidget->GetFlags()) {
+            pWidget->SetFlags(dwFlags);
+            UpdateFormControl(pDocument, pFormControl, TRUE, FALSE, TRUE);
+          }
+        }
+      }
+    }
+  }
+}
+
+FX_BOOL Field::highlight(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
+
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
+
+    CFX_ByteString strMode;
+    vp >> strMode;
+
+    if (m_bDelay) {
+      AddDelay_String(FP_HIGHLIGHT, strMode);
+    } else {
+      Field::SetHighlight(m_pDocument, m_FieldName, m_nFormControlIndex,
+                          strMode);
+    }
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
+
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
+      return FALSE;
 
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl) return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
 
-        int eHM = pFormControl->GetHighlightingMode();
-        switch (eHM)
-        {
-        case CPDF_FormControl::None:
-            vp  <<  L"none";
-            break;
-        case CPDF_FormControl::Push:
-            vp  <<  L"push";
-            break;
-        case CPDF_FormControl::Invert:
-            vp  <<  L"invert";
-            break;
-        case CPDF_FormControl::Outline:
-            vp  <<  L"outline";
-            break;
-        case CPDF_FormControl::Toggle:
-             vp  <<  L"toggle";
-             break;
-        }
+    int eHM = pFormControl->GetHighlightingMode();
+    switch (eHM) {
+      case CPDF_FormControl::None:
+        vp << L"none";
+        break;
+      case CPDF_FormControl::Push:
+        vp << L"push";
+        break;
+      case CPDF_FormControl::Invert:
+        vp << L"invert";
+        break;
+      case CPDF_FormControl::Outline:
+        vp << L"outline";
+        break;
+      case CPDF_FormControl::Toggle:
+        vp << L"toggle";
+        break;
     }
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetHighlight(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CFX_ByteString& string)
-{
-    //Not supported.
+void Field::SetHighlight(CPDFSDK_Document* pDocument,
+                         const CFX_WideString& swFieldName,
+                         int nControlIndex,
+                         const CFX_ByteString& string) {
+  // Not supported.
 }
 
-FX_BOOL Field::lineWidth(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::lineWidth(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        int iWidth;
-        vp >> iWidth;
+    int iWidth;
+    vp >> iWidth;
 
-        if (m_bDelay)
-        {
-            AddDelay_Int(FP_LINEWIDTH, iWidth);
-        }
-        else
-        {
-            Field::SetLineWidth(m_pDocument, m_FieldName, m_nFormControlIndex, iWidth);
-        }
+    if (m_bDelay) {
+      AddDelay_Int(FP_LINEWIDTH, iWidth);
+    } else {
+      Field::SetLineWidth(m_pDocument, m_FieldName, m_nFormControlIndex,
+                          iWidth);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl) return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
 
-        CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-        ASSERT(pInterForm != NULL);
+    CPDFSDK_InterForm* pInterForm =
+        (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
+    ASSERT(pInterForm != NULL);
 
-        if(!pFormField->CountControls()) return FALSE;
+    if (!pFormField->CountControls())
+      return FALSE;
 
-        CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormField->GetControl(0));
-        if (!pWidget) return FALSE;
+    CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormField->GetControl(0));
+    if (!pWidget)
+      return FALSE;
 
-        vp << (int32_t)pWidget->GetBorderWidth();
-    }
+    vp << (int32_t)pWidget->GetBorderWidth();
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetLineWidth(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number)
-{
-    ASSERT(pDocument != NULL);
+void Field::SetLineWidth(CPDFSDK_Document* pDocument,
+                         const CFX_WideString& swFieldName,
+                         int nControlIndex,
+                         int number) {
+  ASSERT(pDocument != NULL);
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(pDocument, swFieldName, FieldArray);
+  CFX_PtrArray FieldArray;
+  GetFormFields(pDocument, swFieldName, FieldArray);
 
-    for (int i=0,isz=FieldArray.GetSize(); i<isz; i++)
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
-        ASSERT(pFormField != NULL);
-
-        if (nControlIndex < 0)
-        {
-            FX_BOOL bSet = FALSE;
-            for (int j=0,jsz=pFormField->CountControls(); j<jsz; j++)
-            {
-                CPDF_FormControl* pFormControl = pFormField->GetControl(j);
-                ASSERT(pFormControl != NULL);
-
-                if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl))
-                {
-                    if (number != pWidget->GetBorderWidth())
-                    {
-                        pWidget->SetBorderWidth(number);
-                        bSet = TRUE;
-                    }
-                }
-            }
-            if (bSet) UpdateFormField(pDocument, pFormField, TRUE, TRUE, TRUE);
-        }
-        else
-        {
-            if(nControlIndex >= pFormField->CountControls()) return;
-            if (CPDF_FormControl* pFormControl = pFormField->GetControl(nControlIndex))
-            {
-                if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl))
-                {
-                    if (number != pWidget->GetBorderWidth())
-                    {
-                        pWidget->SetBorderWidth(number);
-                        UpdateFormControl(pDocument, pFormControl, TRUE, TRUE, TRUE);
-                    }
-                }
-            }
+  for (int i = 0, isz = FieldArray.GetSize(); i < isz; i++) {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
+    ASSERT(pFormField != NULL);
+
+    if (nControlIndex < 0) {
+      FX_BOOL bSet = FALSE;
+      for (int j = 0, jsz = pFormField->CountControls(); j < jsz; j++) {
+        CPDF_FormControl* pFormControl = pFormField->GetControl(j);
+        ASSERT(pFormControl != NULL);
+
+        if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
+          if (number != pWidget->GetBorderWidth()) {
+            pWidget->SetBorderWidth(number);
+            bSet = TRUE;
+          }
+        }
+      }
+      if (bSet)
+        UpdateFormField(pDocument, pFormField, TRUE, TRUE, TRUE);
+    } else {
+      if (nControlIndex >= pFormField->CountControls())
+        return;
+      if (CPDF_FormControl* pFormControl =
+              pFormField->GetControl(nControlIndex)) {
+        if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
+          if (number != pWidget->GetBorderWidth()) {
+            pWidget->SetBorderWidth(number);
+            UpdateFormControl(pDocument, pFormControl, TRUE, TRUE, TRUE);
+          }
         }
+      }
     }
+  }
 }
 
-FX_BOOL Field::multiline(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::multiline(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
+    bool bVP;
+    vp >> bVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Bool(FP_MULTILINE, bVP);
-        }
-        else
-        {
-            Field::SetMultiline(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Bool(FP_MULTILINE, bVP);
+    } else {
+      Field::SetMultiline(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName, FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
+      return FALSE;
 
-        if (pFormField->GetFieldFlags() & FIELDFLAG_MULTILINE)
-            vp << true;
-        else
-            vp << false;
-    }
+    if (pFormField->GetFieldFlags() & FIELDFLAG_MULTILINE)
+      vp << true;
+    else
+      vp << false;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetMultiline(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b)
-{
-    //Not supported.
+void Field::SetMultiline(CPDFSDK_Document* pDocument,
+                         const CFX_WideString& swFieldName,
+                         int nControlIndex,
+                         bool b) {
+  // Not supported.
 }
 
-FX_BOOL Field::multipleSelection(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::multipleSelection(IFXJS_Context* cc,
+                                 CJS_PropValue& vp,
+                                 CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
+    bool bVP;
+    vp >> bVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Bool(FP_MULTIPLESELECTION, bVP);
-        }
-        else
-        {
-            Field::SetMultipleSelection(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Bool(FP_MULTIPLESELECTION, bVP);
+    } else {
+      Field::SetMultipleSelection(m_pDocument, m_FieldName, m_nFormControlIndex,
+                                  bVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_LISTBOX)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_LISTBOX)
+      return FALSE;
 
-        if (pFormField->GetFieldFlags() & FIELDFLAG_MULTISELECT)
-            vp << true;
-        else
-            vp << false;
-    }
+    if (pFormField->GetFieldFlags() & FIELDFLAG_MULTISELECT)
+      vp << true;
+    else
+      vp << false;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetMultipleSelection(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b)
-{
-    //Not supported.
+void Field::SetMultipleSelection(CPDFSDK_Document* pDocument,
+                                 const CFX_WideString& swFieldName,
+                                 int nControlIndex,
+                                 bool b) {
+  // Not supported.
 }
 
-FX_BOOL Field::name(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (!vp.IsGetting()) return FALSE;
+FX_BOOL Field::name(IFXJS_Context* cc,
+                    CJS_PropValue& vp,
+                    CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName, FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    vp << m_FieldName;
+  vp << m_FieldName;
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Field::numItems(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName, FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+FX_BOOL Field::numItems(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    ASSERT(pFormField != NULL);
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  ASSERT(pFormField != NULL);
 
-    if (pFormField->GetFieldType() != FIELDTYPE_COMBOBOX &&
-        pFormField->GetFieldType() != FIELDTYPE_LISTBOX)
-        return FALSE;
+  if (pFormField->GetFieldType() != FIELDTYPE_COMBOBOX &&
+      pFormField->GetFieldType() != FIELDTYPE_LISTBOX)
+    return FALSE;
 
-    if (!vp.IsGetting()) return FALSE;
+  if (!vp.IsGetting())
+    return FALSE;
 
-    vp << (int32_t)pFormField->CountOptions();
+  vp << (int32_t)pFormField->CountOptions();
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Field::page(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (!vp.IsGetting()) return FALSE;
-
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName, FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+FX_BOOL Field::page(IFXJS_Context* cc,
+                    CJS_PropValue& vp,
+                    CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
 
-    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    if (!pFormField) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    ASSERT(m_pDocument != NULL);
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  if (!pFormField)
+    return FALSE;
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  ASSERT(m_pDocument != NULL);
 
-    CFX_PtrArray widgetArray;
-    pInterForm->GetWidgets(pFormField, widgetArray);
+  CPDFSDK_InterForm* pInterForm =
+      (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    if (widgetArray.GetSize() > 0)
-    {
-        CJS_Array PageArray(m_isolate);
+  CFX_PtrArray widgetArray;
+  pInterForm->GetWidgets(pFormField, widgetArray);
 
-        for (int i=0,sz=widgetArray.GetSize(); i<sz; i++)
-        {
-            CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)widgetArray.GetAt(i);
-            ASSERT(pWidget != NULL);
+  if (widgetArray.GetSize() > 0) {
+    CJS_Array PageArray(m_isolate);
 
-            CPDFSDK_PageView* pPageView = pWidget->GetPageView();
-            if(!pPageView)
-                return FALSE;
+    for (int i = 0, sz = widgetArray.GetSize(); i < sz; i++) {
+      CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)widgetArray.GetAt(i);
+      ASSERT(pWidget != NULL);
 
-            PageArray.SetElement(i, CJS_Value(m_isolate,(int32_t)pPageView->GetPageIndex()));
-        }
+      CPDFSDK_PageView* pPageView = pWidget->GetPageView();
+      if (!pPageView)
+        return FALSE;
 
-        vp << PageArray;
-    }
-    else
-    {
-        vp << (int32_t) -1;
+      PageArray.SetElement(
+          i, CJS_Value(m_isolate, (int32_t)pPageView->GetPageIndex()));
     }
 
-    return TRUE;
+    vp << PageArray;
+  } else {
+    vp << (int32_t)-1;
+  }
+
+  return TRUE;
 }
 
-FX_BOOL Field::password(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::password(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
+    bool bVP;
+    vp >> bVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Bool(FP_PASSWORD, bVP);
-        }
-        else
-        {
-            Field::SetPassword(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Bool(FP_PASSWORD, bVP);
+    } else {
+      Field::SetPassword(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
+      return FALSE;
 
-        if (pFormField->GetFieldFlags() & FIELDFLAG_PASSWORD)
-            vp << true;
-        else
-            vp << false;
-    }
+    if (pFormField->GetFieldFlags() & FIELDFLAG_PASSWORD)
+      vp << true;
+    else
+      vp << false;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetPassword(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b)
-{
-    //Not supported.
+void Field::SetPassword(CPDFSDK_Document* pDocument,
+                        const CFX_WideString& swFieldName,
+                        int nControlIndex,
+                        bool b) {
+  // Not supported.
 }
 
-FX_BOOL Field::print(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::print(IFXJS_Context* cc,
+                     CJS_PropValue& vp,
+                     CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  CPDFSDK_InterForm* pInterForm =
+      (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName, FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
-
-        bool bVP;
-        vp >> bVP;
-
-        for (int i=0,isz=FieldArray.GetSize(); i<isz; i++)
-        {
-            CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
-            ASSERT(pFormField != NULL);
-
-            if (m_nFormControlIndex < 0)
-            {
-                FX_BOOL bSet = FALSE;
-                for (int j=0,jsz = pFormField->CountControls(); j<jsz; j++)
-                {
-                    if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormField->GetControl(j)))
-                    {
-                        FX_DWORD dwFlags = pWidget->GetFlags();
-                        if (bVP)
-                            dwFlags |= ANNOTFLAG_PRINT;
-                        else
-                            dwFlags &= ~ANNOTFLAG_PRINT;
-
-                        if (dwFlags != pWidget->GetFlags())
-                        {
-                            pWidget->SetFlags(dwFlags);
-                            bSet = TRUE;
-                        }
-                    }
-                }
-
-                if (bSet)
-                    UpdateFormField(m_pDocument, pFormField, TRUE, FALSE, TRUE);
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
+
+    bool bVP;
+    vp >> bVP;
+
+    for (int i = 0, isz = FieldArray.GetSize(); i < isz; i++) {
+      CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
+      ASSERT(pFormField != NULL);
+
+      if (m_nFormControlIndex < 0) {
+        FX_BOOL bSet = FALSE;
+        for (int j = 0, jsz = pFormField->CountControls(); j < jsz; j++) {
+          if (CPDFSDK_Widget* pWidget =
+                  pInterForm->GetWidget(pFormField->GetControl(j))) {
+            FX_DWORD dwFlags = pWidget->GetFlags();
+            if (bVP)
+              dwFlags |= ANNOTFLAG_PRINT;
+            else
+              dwFlags &= ~ANNOTFLAG_PRINT;
+
+            if (dwFlags != pWidget->GetFlags()) {
+              pWidget->SetFlags(dwFlags);
+              bSet = TRUE;
             }
+          }
+        }
+
+        if (bSet)
+          UpdateFormField(m_pDocument, pFormField, TRUE, FALSE, TRUE);
+      } else {
+        if (m_nFormControlIndex >= pFormField->CountControls())
+          return FALSE;
+        if (CPDF_FormControl* pFormControl =
+                pFormField->GetControl(m_nFormControlIndex)) {
+          if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
+            FX_DWORD dwFlags = pWidget->GetFlags();
+            if (bVP)
+              dwFlags |= ANNOTFLAG_PRINT;
             else
-            {
-                if(m_nFormControlIndex >= pFormField->CountControls()) return FALSE;
-                if (CPDF_FormControl* pFormControl = pFormField->GetControl(m_nFormControlIndex))
-                {
-                    if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl))
-                    {
-                        FX_DWORD dwFlags = pWidget->GetFlags();
-                        if (bVP)
-                            dwFlags |= ANNOTFLAG_PRINT;
-                        else
-                            dwFlags &= ~ANNOTFLAG_PRINT;
-
-                        if (dwFlags != pWidget->GetFlags())
-                        {
-                            pWidget->SetFlags(dwFlags);
-                            UpdateFormControl(m_pDocument, pFormField->GetControl(m_nFormControlIndex), TRUE, FALSE, TRUE);
-                        }
-                    }
-                }
+              dwFlags &= ~ANNOTFLAG_PRINT;
+
+            if (dwFlags != pWidget->GetFlags()) {
+              pWidget->SetFlags(dwFlags);
+              UpdateFormControl(m_pDocument,
+                                pFormField->GetControl(m_nFormControlIndex),
+                                TRUE, FALSE, TRUE);
             }
+          }
         }
+      }
     }
-    else
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+  } else {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        CPDFSDK_Widget* pWidget = pInterForm->GetWidget(GetSmartFieldControl(pFormField));
-        if (!pWidget) return FALSE;
+    CPDFSDK_Widget* pWidget =
+        pInterForm->GetWidget(GetSmartFieldControl(pFormField));
+    if (!pWidget)
+      return FALSE;
 
-        if (pWidget->GetFlags() & ANNOTFLAG_PRINT)
-            vp << true;
-        else
-            vp << false;
-    }
+    if (pWidget->GetFlags() & ANNOTFLAG_PRINT)
+      vp << true;
+    else
+      vp << false;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Field::radiosInUnison(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::radiosInUnison(IFXJS_Context* cc,
+                              CJS_PropValue& vp,
+                              CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
+    bool bVP;
+    vp >> bVP;
 
-    }
-    else
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+  } else {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_RADIOBUTTON)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_RADIOBUTTON)
+      return FALSE;
 
-        if (pFormField->GetFieldFlags() & FIELDFLAG_RADIOSINUNISON)
-            vp << true;
-        else
-            vp << false;
-    }
+    if (pFormField->GetFieldFlags() & FIELDFLAG_RADIOSINUNISON)
+      vp << true;
+    else
+      vp << false;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Field::readonly(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::readonly(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
+    bool bVP;
+    vp >> bVP;
 
-    }
+  } else {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
+
+    if (pFormField->GetFieldFlags() & FIELDFLAG_READONLY)
+      vp << true;
     else
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+      vp << false;
+  }
+
+  return TRUE;
+}
+
+FX_BOOL Field::rect(IFXJS_Context* cc,
+                    CJS_PropValue& vp,
+                    CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
+
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
+    if (!vp.IsArrayObject())
+      return FALSE;
+
+    CJS_Array rcArray(m_isolate);
+    vp >> rcArray;
+    CJS_Value Upper_Leftx(m_isolate), Upper_Lefty(m_isolate),
+        Lower_Rightx(m_isolate), Lower_Righty(m_isolate);
+    rcArray.GetElement(0, Upper_Leftx);
+    rcArray.GetElement(1, Upper_Lefty);
+    rcArray.GetElement(2, Lower_Rightx);
+    rcArray.GetElement(3, Lower_Righty);
+
+    FX_FLOAT pArray[4] = {0.0f, 0.0f, 0.0f, 0.0f};
+    pArray[0] = (FX_FLOAT)Upper_Leftx.ToInt();
+    pArray[1] = (FX_FLOAT)Lower_Righty.ToInt();
+    pArray[2] = (FX_FLOAT)Lower_Rightx.ToInt();
+    pArray[3] = (FX_FLOAT)Upper_Lefty.ToInt();
+
+    CPDF_Rect crRect(pArray);
+
+    if (m_bDelay) {
+      AddDelay_Rect(FP_RECT, crRect);
+    } else {
+      Field::SetRect(m_pDocument, m_FieldName, m_nFormControlIndex, crRect);
+    }
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
+
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
+
+    CPDFSDK_InterForm* pInterForm =
+        (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
+    ASSERT(pInterForm != NULL);
+
+    CPDFSDK_Widget* pWidget =
+        pInterForm->GetWidget(GetSmartFieldControl(pFormField));
+    if (!pWidget)
+      return FALSE;
+
+    CFX_FloatRect crRect = pWidget->GetRect();
+    CJS_Value Upper_Leftx(m_isolate), Upper_Lefty(m_isolate),
+        Lower_Rightx(m_isolate), Lower_Righty(m_isolate);
+    Upper_Leftx = (int32_t)crRect.left;
+    Upper_Lefty = (int32_t)crRect.top;
+    Lower_Rightx = (int32_t)crRect.right;
+    Lower_Righty = (int32_t)crRect.bottom;
 
-        if (pFormField->GetFieldFlags() & FIELDFLAG_READONLY)
-            vp << true;
-        else
-            vp << false;
-    }
+    CJS_Array rcArray(m_isolate);
+    rcArray.SetElement(0, Upper_Leftx);
+    rcArray.SetElement(1, Upper_Lefty);
+    rcArray.SetElement(2, Lower_Rightx);
+    rcArray.SetElement(3, Lower_Righty);
 
-    return TRUE;
+    vp << rcArray;
+  }
+
+  return TRUE;
 }
 
-FX_BOOL Field::rect(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+void Field::SetRect(CPDFSDK_Document* pDocument,
+                    const CFX_WideString& swFieldName,
+                    int nControlIndex,
+                    const CPDF_Rect& rect) {
+  ASSERT(pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
-        if (!vp.IsArrayObject())return FALSE;
-
-        CJS_Array rcArray(m_isolate);
-        vp >> rcArray;
-        CJS_Value Upper_Leftx(m_isolate), Upper_Lefty(m_isolate), Lower_Rightx(m_isolate), Lower_Righty(m_isolate);
-        rcArray.GetElement(0, Upper_Leftx);
-        rcArray.GetElement(1, Upper_Lefty);
-        rcArray.GetElement(2, Lower_Rightx);
-        rcArray.GetElement(3, Lower_Righty);
-
-        FX_FLOAT pArray[4] = {0.0f,0.0f,0.0f,0.0f};
-        pArray[0] = (FX_FLOAT)Upper_Leftx.ToInt();
-        pArray[1] = (FX_FLOAT)Lower_Righty.ToInt();
-        pArray[2] = (FX_FLOAT)Lower_Rightx.ToInt();
-        pArray[3] = (FX_FLOAT)Upper_Lefty.ToInt();
-
-        CPDF_Rect crRect(pArray);
-
-        if (m_bDelay)
-        {
-            AddDelay_Rect(FP_RECT, crRect);
-        }
-        else
-        {
-            Field::SetRect(m_pDocument, m_FieldName, m_nFormControlIndex, crRect);
-        }
-    }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+  CFX_PtrArray FieldArray;
+  GetFormFields(pDocument, swFieldName, FieldArray);
 
-        CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-        ASSERT(pInterForm != NULL);
+  for (int i = 0, isz = FieldArray.GetSize(); i < isz; i++) {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
+    ASSERT(pFormField != NULL);
 
-        CPDFSDK_Widget* pWidget = pInterForm->GetWidget(GetSmartFieldControl(pFormField));
-        if (!pWidget) return FALSE;
+    if (nControlIndex < 0) {
+      FX_BOOL bSet = FALSE;
+      for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
+        CPDF_FormControl* pFormControl = pFormField->GetControl(i);
+        ASSERT(pFormControl != NULL);
 
-        CFX_FloatRect crRect = pWidget->GetRect();
-        CJS_Value Upper_Leftx(m_isolate),Upper_Lefty(m_isolate),Lower_Rightx(m_isolate),Lower_Righty(m_isolate);
-        Upper_Leftx = (int32_t)crRect.left;
-        Upper_Lefty = (int32_t)crRect.top;
-        Lower_Rightx = (int32_t)crRect.right;
-        Lower_Righty = (int32_t)crRect.bottom;
+        if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
+          CPDF_Rect crRect = rect;
 
-        CJS_Array rcArray(m_isolate);
-        rcArray.SetElement(0,Upper_Leftx);
-        rcArray.SetElement(1,Upper_Lefty);
-        rcArray.SetElement(2,Lower_Rightx);
-        rcArray.SetElement(3,Lower_Righty);
+          CPDF_Page* pPDFPage = pWidget->GetPDFPage();
+          ASSERT(pPDFPage != NULL);
 
-        vp  <<  rcArray;
-    }
+          //                  CPDF_Page* pPDFPage = pPage->GetPage();
+          //                  ASSERT(pPDFPage != NULL);
 
-    return TRUE;
-}
+          crRect.Intersect(pPDFPage->GetPageBBox());
 
-void Field::SetRect(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CPDF_Rect& rect)
-{
-    ASSERT(pDocument != NULL);
+          if (!crRect.IsEmpty()) {
+            CPDF_Rect rcOld = pWidget->GetRect();
+            if (crRect.left != rcOld.left || crRect.right != rcOld.right ||
+                crRect.top != rcOld.top || crRect.bottom != rcOld.bottom) {
+              pWidget->SetRect(crRect);
+              bSet = TRUE;
+            }
+          }
+        }
+      }
 
-    CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
-    ASSERT(pInterForm != NULL);
+      if (bSet)
+        UpdateFormField(pDocument, pFormField, TRUE, TRUE, TRUE);
+    } else {
+      if (nControlIndex >= pFormField->CountControls())
+        return;
+      if (CPDF_FormControl* pFormControl =
+              pFormField->GetControl(nControlIndex)) {
+        if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl)) {
+          CPDF_Rect crRect = rect;
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(pDocument, swFieldName, FieldArray);
+          CPDF_Page* pPDFPage = pWidget->GetPDFPage();
+          ASSERT(pPDFPage != NULL);
 
-    for (int i=0,isz=FieldArray.GetSize(); i<isz; i++)
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
-        ASSERT(pFormField != NULL);
-
-        if (nControlIndex < 0)
-        {
-            FX_BOOL bSet = FALSE;
-            for (int i=0, sz=pFormField->CountControls(); i<sz; i++)
-            {
-                CPDF_FormControl* pFormControl = pFormField->GetControl(i);
-                ASSERT(pFormControl != NULL);
-
-                if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl))
-                {
-                    CPDF_Rect crRect = rect;
-
-                    CPDF_Page* pPDFPage = pWidget->GetPDFPage();
-                    ASSERT(pPDFPage != NULL);
-
-//                  CPDF_Page* pPDFPage = pPage->GetPage();
-//                  ASSERT(pPDFPage != NULL);
-
-                    crRect.Intersect(pPDFPage->GetPageBBox());
-
-                    if (!crRect.IsEmpty())
-                    {
-                        CPDF_Rect rcOld = pWidget->GetRect();
-                        if (crRect.left != rcOld.left ||
-                            crRect.right != rcOld.right ||
-                            crRect.top != rcOld.top ||
-                            crRect.bottom != rcOld.bottom)
-                        {
-                            pWidget->SetRect(crRect);
-                            bSet = TRUE;
-                        }
-                    }
-                }
-            }
+          //                  CPDF_Page* pPDFPage = pPage->GetPage();
+          //                  ASSERT(pPDFPage != NULL);
 
-            if (bSet) UpdateFormField(pDocument, pFormField, TRUE, TRUE, TRUE);
-        }
-        else
-        {
-            if(nControlIndex >= pFormField->CountControls()) return;
-            if (CPDF_FormControl* pFormControl = pFormField->GetControl(nControlIndex))
-            {
-                if (CPDFSDK_Widget* pWidget = pInterForm->GetWidget(pFormControl))
-                {
-                    CPDF_Rect crRect = rect;
-
-                    CPDF_Page* pPDFPage = pWidget->GetPDFPage();
-                    ASSERT(pPDFPage != NULL);
-
-//                  CPDF_Page* pPDFPage = pPage->GetPage();
-//                  ASSERT(pPDFPage != NULL);
-
-                    crRect.Intersect(pPDFPage->GetPageBBox());
-
-                    if (!crRect.IsEmpty())
-                    {
-                        CPDF_Rect rcOld = pWidget->GetRect();
-                        if (crRect.left != rcOld.left ||
-                            crRect.right != rcOld.right ||
-                            crRect.top != rcOld.top ||
-                            crRect.bottom != rcOld.bottom)
-                        {
-                            pWidget->SetRect(crRect);
-                            UpdateFormControl(pDocument, pFormControl, TRUE, TRUE, TRUE);
-                        }
-                    }
-                }
+          crRect.Intersect(pPDFPage->GetPageBBox());
+
+          if (!crRect.IsEmpty()) {
+            CPDF_Rect rcOld = pWidget->GetRect();
+            if (crRect.left != rcOld.left || crRect.right != rcOld.right ||
+                crRect.top != rcOld.top || crRect.bottom != rcOld.bottom) {
+              pWidget->SetRect(crRect);
+              UpdateFormControl(pDocument, pFormControl, TRUE, TRUE, TRUE);
             }
+          }
         }
+      }
     }
+  }
 }
 
-FX_BOOL Field::required(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+FX_BOOL Field::required(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
+    bool bVP;
+    vp >> bVP;
 
-    }
-    else
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+  } else {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() == FIELDTYPE_PUSHBUTTON)
-            return FALSE;
+    if (pFormField->GetFieldType() == FIELDTYPE_PUSHBUTTON)
+      return FALSE;
 
-        if (pFormField->GetFieldFlags() & FIELDFLAG_REQUIRED)
-            vp << true;
-        else
-            vp << false;
-    }
+    if (pFormField->GetFieldFlags() & FIELDFLAG_REQUIRED)
+      vp << true;
+    else
+      vp << false;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Field::richText(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::richText(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        bool bVP;
-        vp >> bVP;
+    bool bVP;
+    vp >> bVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Bool(FP_RICHTEXT, bVP);
-        }
-        else
-        {
-            Field::SetRichText(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Bool(FP_RICHTEXT, bVP);
+    } else {
+      Field::SetRichText(m_pDocument, m_FieldName, m_nFormControlIndex, bVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
-            return FALSE;
+    if (pFormField->GetFieldType() != FIELDTYPE_TEXTFIELD)
+      return FALSE;
 
-        if (pFormField->GetFieldFlags() & FIELDFLAG_RICHTEXT)
-            vp << true;
-        else
-            vp << false;
-    }
+    if (pFormField->GetFieldFlags() & FIELDFLAG_RICHTEXT)
+      vp << true;
+    else
+      vp << false;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetRichText(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b)
-{
-    //Not supported.
+void Field::SetRichText(CPDFSDK_Document* pDocument,
+                        const CFX_WideString& swFieldName,
+                        int nControlIndex,
+                        bool b) {
+  // Not supported.
 }
 
-FX_BOOL Field::richValue(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    return TRUE;
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
-        ;
-    }
-    else
-    {
-        ;
-    }
-    return TRUE;
+FX_BOOL Field::richValue(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  return TRUE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
+    ;
+  } else {
+    ;
+  }
+  return TRUE;
 }
 
-void Field::SetRichValue(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex)
-{
-    //Not supported.
+void Field::SetRichValue(CPDFSDK_Document* pDocument,
+                         const CFX_WideString& swFieldName,
+                         int nControlIndex) {
+  // Not supported.
 }
 
-FX_BOOL Field::rotation(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::rotation(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        int nVP;
-        vp >> nVP;
+    int nVP;
+    vp >> nVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Int(FP_ROTATION, nVP);
-        }
-        else
-        {
-            Field::SetRotation(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Int(FP_ROTATION, nVP);
+    } else {
+      Field::SetRotation(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl)return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
 
-        vp << (int32_t)pFormControl->GetRotation();
-    }
+    vp << (int32_t)pFormControl->GetRotation();
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetRotation(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number)
-{
-    //Not supported.
+void Field::SetRotation(CPDFSDK_Document* pDocument,
+                        const CFX_WideString& swFieldName,
+                        int nControlIndex,
+                        int number) {
+  // Not supported.
 }
 
-FX_BOOL Field::strokeColor(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::strokeColor(IFXJS_Context* cc,
+                           CJS_PropValue& vp,
+                           CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        if (!vp.IsArrayObject())return FALSE;
+    if (!vp.IsArrayObject())
+      return FALSE;
 
-        CJS_Array crArray(m_isolate);
-        vp >> crArray;
+    CJS_Array crArray(m_isolate);
+    vp >> crArray;
 
-        CPWL_Color color;
-        color::ConvertArrayToPWLColor(crArray, color);
+    CPWL_Color color;
+    color::ConvertArrayToPWLColor(crArray, color);
 
-        if (m_bDelay)
-        {
-            AddDelay_Color(FP_STROKECOLOR, color);
-        }
-        else
-        {
-            Field::SetStrokeColor(m_pDocument, m_FieldName, m_nFormControlIndex, color);
-        }
+    if (m_bDelay) {
+      AddDelay_Color(FP_STROKECOLOR, color);
+    } else {
+      Field::SetStrokeColor(m_pDocument, m_FieldName, m_nFormControlIndex,
+                            color);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
-
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
-
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl)return FALSE;
-
-        int iColorType;
-        pFormControl->GetBorderColor(iColorType);
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPWL_Color color;
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (iColorType == COLORTYPE_TRANSPARENT)
-        {
-            color = CPWL_Color(COLORTYPE_TRANSPARENT);
-        }
-        else if (iColorType == COLORTYPE_GRAY)
-        {
-            color = CPWL_Color(COLORTYPE_GRAY, pFormControl->GetOriginalBorderColor(0));
-        }
-        else if (iColorType == COLORTYPE_RGB)
-        {
-            color = CPWL_Color(COLORTYPE_RGB, pFormControl->GetOriginalBorderColor(0),
-                pFormControl->GetOriginalBorderColor(1),
-                pFormControl->GetOriginalBorderColor(2));
-        }
-        else if (iColorType == COLORTYPE_CMYK)
-        {
-            color = CPWL_Color(COLORTYPE_CMYK, pFormControl->GetOriginalBorderColor(0),
-                pFormControl->GetOriginalBorderColor(1),
-                pFormControl->GetOriginalBorderColor(2),
-                pFormControl->GetOriginalBorderColor(3));
-        }
-        else
-            return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
+
+    int iColorType;
+    pFormControl->GetBorderColor(iColorType);
+
+    CPWL_Color color;
+
+    if (iColorType == COLORTYPE_TRANSPARENT) {
+      color = CPWL_Color(COLORTYPE_TRANSPARENT);
+    } else if (iColorType == COLORTYPE_GRAY) {
+      color =
+          CPWL_Color(COLORTYPE_GRAY, pFormControl->GetOriginalBorderColor(0));
+    } else if (iColorType == COLORTYPE_RGB) {
+      color = CPWL_Color(COLORTYPE_RGB, pFormControl->GetOriginalBorderColor(0),
+                         pFormControl->GetOriginalBorderColor(1),
+                         pFormControl->GetOriginalBorderColor(2));
+    } else if (iColorType == COLORTYPE_CMYK) {
+      color =
+          CPWL_Color(COLORTYPE_CMYK, pFormControl->GetOriginalBorderColor(0),
+                     pFormControl->GetOriginalBorderColor(1),
+                     pFormControl->GetOriginalBorderColor(2),
+                     pFormControl->GetOriginalBorderColor(3));
+    } else
+      return FALSE;
 
-        CJS_Array crArray(m_isolate);
-        color::ConvertPWLColorToArray(color, crArray);
-        vp  <<  crArray;
-    }
+    CJS_Array crArray(m_isolate);
+    color::ConvertPWLColorToArray(color, crArray);
+    vp << crArray;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetStrokeColor(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CPWL_Color& color)
-{
-    //Not supported.
+void Field::SetStrokeColor(CPDFSDK_Document* pDocument,
+                           const CFX_WideString& swFieldName,
+                           int nControlIndex,
+                           const CPWL_Color& color) {
+  // Not supported.
 }
 
-FX_BOOL Field::style(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::style(IFXJS_Context* cc,
+                     CJS_PropValue& vp,
+                     CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        CFX_ByteString csBCaption;
-        vp >> csBCaption;
+    CFX_ByteString csBCaption;
+    vp >> csBCaption;
 
-        if (m_bDelay)
-        {
-            AddDelay_String(FP_STYLE, csBCaption);
-        }
-        else
-        {
-            Field::SetStyle(m_pDocument, m_FieldName, m_nFormControlIndex, csBCaption);
-        }
+    if (m_bDelay) {
+      AddDelay_String(FP_STYLE, csBCaption);
+    } else {
+      Field::SetStyle(m_pDocument, m_FieldName, m_nFormControlIndex,
+                      csBCaption);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
-
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
-
-        if (pFormField->GetFieldType() != FIELDTYPE_RADIOBUTTON &&
-            pFormField->GetFieldType() != FIELDTYPE_CHECKBOX)
-            return FALSE;
-
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl) return FALSE;
-
-        CFX_WideString csWCaption = pFormControl->GetNormalCaption();
-        CFX_ByteString csBCaption;
-
-        switch (csWCaption[0])
-        {
-            case L'l':
-                csBCaption = "circle";
-                break;
-            case L'8':
-                csBCaption = "cross";
-                break;
-            case L'u':
-                csBCaption = "diamond";
-                break;
-            case L'n':
-                csBCaption = "square";
-                break;
-            case L'H':
-                csBCaption = "star";
-                break;
-            default: //L'4'
-                csBCaption = "check";
-                break;
-        }
-        vp << csBCaption;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
+
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
+
+    if (pFormField->GetFieldType() != FIELDTYPE_RADIOBUTTON &&
+        pFormField->GetFieldType() != FIELDTYPE_CHECKBOX)
+      return FALSE;
+
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
+
+    CFX_WideString csWCaption = pFormControl->GetNormalCaption();
+    CFX_ByteString csBCaption;
+
+    switch (csWCaption[0]) {
+      case L'l':
+        csBCaption = "circle";
+        break;
+      case L'8':
+        csBCaption = "cross";
+        break;
+      case L'u':
+        csBCaption = "diamond";
+        break;
+      case L'n':
+        csBCaption = "square";
+        break;
+      case L'H':
+        csBCaption = "star";
+        break;
+      default:  // L'4'
+        csBCaption = "check";
+        break;
     }
+    vp << csBCaption;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetStyle(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex,
-                     const CFX_ByteString& string)
-{
-    //Not supported.
+void Field::SetStyle(CPDFSDK_Document* pDocument,
+                     const CFX_WideString& swFieldName,
+                     int nControlIndex,
+                     const CFX_ByteString& string) {
+  // Not supported.
 }
 
-FX_BOOL Field::submitName(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Field::submitName(IFXJS_Context* cc,
+                          CJS_PropValue& vp,
+                          CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Field::textColor(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::textColor(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        CJS_Array crArray(m_isolate);
-        if (!vp.IsArrayObject())return FALSE;
-        vp >> crArray;
+    CJS_Array crArray(m_isolate);
+    if (!vp.IsArrayObject())
+      return FALSE;
+    vp >> crArray;
 
-        CPWL_Color color;
-        color::ConvertArrayToPWLColor(crArray, color);
+    CPWL_Color color;
+    color::ConvertArrayToPWLColor(crArray, color);
 
-        if (m_bDelay)
-        {
-            AddDelay_Color(FP_TEXTCOLOR, color);
-        }
-        else
-        {
-            Field::SetTextColor(m_pDocument, m_FieldName, m_nFormControlIndex, color);
-        }
+    if (m_bDelay) {
+      AddDelay_Color(FP_TEXTCOLOR, color);
+    } else {
+      Field::SetTextColor(m_pDocument, m_FieldName, m_nFormControlIndex, color);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl)return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
 
-        int iColorType;
-        FX_ARGB color;
-        CPDF_DefaultAppearance FieldAppearance = pFormControl->GetDefaultAppearance();
-        FieldAppearance.GetColor(color, iColorType);
-        int32_t a,r,g,b;
-        ArgbDecode(color, a, r, g, b);
+    int iColorType;
+    FX_ARGB color;
+    CPDF_DefaultAppearance FieldAppearance =
+        pFormControl->GetDefaultAppearance();
+    FieldAppearance.GetColor(color, iColorType);
+    int32_t a, r, g, b;
+    ArgbDecode(color, a, r, g, b);
 
-        CPWL_Color crRet = CPWL_Color(COLORTYPE_RGB, r / 255.0f,
-                g / 255.0f,
-                b / 255.0f);
+    CPWL_Color crRet =
+        CPWL_Color(COLORTYPE_RGB, r / 255.0f, g / 255.0f, b / 255.0f);
 
-        if (iColorType == COLORTYPE_TRANSPARENT)
-            crRet = CPWL_Color(COLORTYPE_TRANSPARENT);
+    if (iColorType == COLORTYPE_TRANSPARENT)
+      crRet = CPWL_Color(COLORTYPE_TRANSPARENT);
 
-        CJS_Array crArray(m_isolate);
-        color::ConvertPWLColorToArray(crRet, crArray);
-        vp  <<  crArray;
-    }
+    CJS_Array crArray(m_isolate);
+    color::ConvertPWLColorToArray(crRet, crArray);
+    vp << crArray;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetTextColor(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CPWL_Color& color)
-{
-    //Not supported.
+void Field::SetTextColor(CPDFSDK_Document* pDocument,
+                         const CFX_WideString& swFieldName,
+                         int nControlIndex,
+                         const CPWL_Color& color) {
+  // Not supported.
 }
 
-FX_BOOL Field::textFont(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::textFont(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        CFX_ByteString csFontName;
-        vp >> csFontName;
-        if (csFontName.IsEmpty()) return FALSE;
+    CFX_ByteString csFontName;
+    vp >> csFontName;
+    if (csFontName.IsEmpty())
+      return FALSE;
 
-        if (m_bDelay)
-        {
-            AddDelay_String(FP_TEXTFONT, csFontName);
-        }
-        else
-        {
-            Field::SetTextFont(m_pDocument, m_FieldName, m_nFormControlIndex, csFontName);
-        }
+    if (m_bDelay) {
+      AddDelay_String(FP_TEXTFONT, csFontName);
+    } else {
+      Field::SetTextFont(m_pDocument, m_FieldName, m_nFormControlIndex,
+                         csFontName);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl)return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
 
-        int nFieldType = pFormField->GetFieldType();
+    int nFieldType = pFormField->GetFieldType();
 
-        if (nFieldType == FIELDTYPE_PUSHBUTTON ||
-            nFieldType == FIELDTYPE_COMBOBOX ||
-            nFieldType == FIELDTYPE_LISTBOX ||
-            nFieldType == FIELDTYPE_TEXTFIELD)
-        {
-            CPDF_Font * pFont = pFormControl->GetDefaultControlFont();
-            if (!pFont) return FALSE;
+    if (nFieldType == FIELDTYPE_PUSHBUTTON ||
+        nFieldType == FIELDTYPE_COMBOBOX || nFieldType == FIELDTYPE_LISTBOX ||
+        nFieldType == FIELDTYPE_TEXTFIELD) {
+      CPDF_Font* pFont = pFormControl->GetDefaultControlFont();
+      if (!pFont)
+        return FALSE;
 
-            vp << pFont->GetBaseFont();
-        }
-        else
-            return FALSE;
-    }
+      vp << pFont->GetBaseFont();
+    } else
+      return FALSE;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetTextFont(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CFX_ByteString& string)
-{
-    //Not supported.
+void Field::SetTextFont(CPDFSDK_Document* pDocument,
+                        const CFX_WideString& swFieldName,
+                        int nControlIndex,
+                        const CFX_ByteString& string) {
+  // Not supported.
 }
 
-FX_BOOL Field::textSize(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::textSize(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        int nVP;
-        vp >> nVP;
+    int nVP;
+    vp >> nVP;
 
-        if (m_bDelay)
-        {
-            AddDelay_Int(FP_TEXTSIZE, nVP);
-        }
-        else
-        {
-            Field::SetTextSize(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
-        }
+    if (m_bDelay) {
+      AddDelay_Int(FP_TEXTSIZE, nVP);
+    } else {
+      Field::SetTextSize(m_pDocument, m_FieldName, m_nFormControlIndex, nVP);
     }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-        if (!pFormControl)return FALSE;
+    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+    if (!pFormControl)
+      return FALSE;
 
-        CPDF_DefaultAppearance FieldAppearance = pFormControl->GetDefaultAppearance();
+    CPDF_DefaultAppearance FieldAppearance =
+        pFormControl->GetDefaultAppearance();
 
-        CFX_ByteString csFontNameTag;
-        FX_FLOAT fFontSize;
-        FieldAppearance.GetFont(csFontNameTag,fFontSize);
+    CFX_ByteString csFontNameTag;
+    FX_FLOAT fFontSize;
+    FieldAppearance.GetFont(csFontNameTag, fFontSize);
 
-        vp << (int)fFontSize;
-    }
+    vp << (int)fFontSize;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetTextSize(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number)
-{
-    //Not supported.
+void Field::SetTextSize(CPDFSDK_Document* pDocument,
+                        const CFX_WideString& swFieldName,
+                        int nControlIndex,
+                        int number) {
+  // Not supported.
 }
 
-FX_BOOL Field::type(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::type(IFXJS_Context* cc,
+                    CJS_PropValue& vp,
+                    CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
+
+  if (!vp.IsGetting())
+    return FALSE;
 
-    if (!vp.IsGetting()) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  ASSERT(pFormField != NULL);
+
+  switch (pFormField->GetFieldType()) {
+    case FIELDTYPE_UNKNOWN:
+      vp << L"unknown";
+      break;
+    case FIELDTYPE_PUSHBUTTON:
+      vp << L"button";
+      break;
+    case FIELDTYPE_CHECKBOX:
+      vp << L"checkbox";
+      break;
+    case FIELDTYPE_RADIOBUTTON:
+      vp << L"radiobutton";
+      break;
+    case FIELDTYPE_COMBOBOX:
+      vp << L"combobox";
+      break;
+    case FIELDTYPE_LISTBOX:
+      vp << L"listbox";
+      break;
+    case FIELDTYPE_TEXTFIELD:
+      vp << L"text";
+      break;
+    case FIELDTYPE_SIGNATURE:
+      vp << L"signature";
+      break;
+    default:
+      vp << L"unknown";
+      break;
+  }
+
+  return TRUE;
+}
+
+FX_BOOL Field::userName(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
+
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
+
+    CFX_WideString swName;
+    vp >> swName;
+
+    if (m_bDelay) {
+      AddDelay_WideString(FP_USERNAME, swName);
+    } else {
+      Field::SetUserName(m_pDocument, m_FieldName, m_nFormControlIndex, swName);
+    }
+  } else {
     CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
     CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
     ASSERT(pFormField != NULL);
 
-    switch (pFormField->GetFieldType())
-    {
-        case FIELDTYPE_UNKNOWN:
-            vp << L"unknown";
-            break;
-        case FIELDTYPE_PUSHBUTTON:
-            vp << L"button";
-            break;
-        case FIELDTYPE_CHECKBOX:
-            vp << L"checkbox";
-            break;
-        case FIELDTYPE_RADIOBUTTON:
-            vp << L"radiobutton";
-            break;
-        case FIELDTYPE_COMBOBOX:
-            vp << L"combobox";
-            break;
-        case FIELDTYPE_LISTBOX:
-            vp << L"listbox";
-            break;
-        case FIELDTYPE_TEXTFIELD:
-            vp << L"text";
-            break;
-        case FIELDTYPE_SIGNATURE:
-            vp << L"signature";
-            break;
-        default :
-            vp << L"unknown";
-            break;
-    }
+    vp << (CFX_WideString)pFormField->GetAlternateName();
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Field::userName(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+void Field::SetUserName(CPDFSDK_Document* pDocument,
+                        const CFX_WideString& swFieldName,
+                        int nControlIndex,
+                        const CFX_WideString& string) {
+  // Not supported.
+}
 
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
+FX_BOOL Field::value(IFXJS_Context* cc,
+                     CJS_PropValue& vp,
+                     CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-        CFX_WideString swName;
-        vp >> swName;
+  if (vp.IsSetting()) {
+    if (!m_bCanSet)
+      return FALSE;
 
-        if (m_bDelay)
-        {
-            AddDelay_WideString(FP_USERNAME, swName);
-        }
-        else
-        {
-            Field::SetUserName(m_pDocument, m_FieldName, m_nFormControlIndex, swName);
-        }
-    }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
+    CJS_WideStringArray strArray;
 
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
+    if (vp.IsArrayObject()) {
+      CJS_Array ValueArray(m_isolate);
+      vp.ConvertToArray(ValueArray);
+      for (int i = 0, sz = ValueArray.GetLength(); i < sz; i++) {
+        CJS_Value ElementValue(m_isolate);
+        ValueArray.GetElement(i, ElementValue);
+        strArray.Add(ElementValue.ToCFXWideString());
+      }
+    } else {
+      CFX_WideString swValue;
+      vp >> swValue;
 
-        vp << (CFX_WideString)pFormField->GetAlternateName();
+      strArray.Add(swValue);
     }
 
-    return TRUE;
-}
-
-void Field::SetUserName(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CFX_WideString& string)
-{
-    //Not supported.
-}
-
-FX_BOOL Field::value(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-
-    if (vp.IsSetting())
-    {
-        if (!m_bCanSet) return FALSE;
-
-        CJS_WideStringArray strArray;
-
-        if (vp.IsArrayObject())
-        {
-            CJS_Array ValueArray(m_isolate);
-            vp.ConvertToArray(ValueArray);
-            for (int i = 0,sz = ValueArray.GetLength(); i < sz; i++)
-            {
-                CJS_Value ElementValue(m_isolate);
-                ValueArray.GetElement(i, ElementValue);
-                strArray.Add(ElementValue.ToCFXWideString());
-            }
-        }
-        else
-        {
-            CFX_WideString swValue;
-            vp >> swValue;
+    if (m_bDelay) {
+      AddDelay_WideStringArray(FP_VALUE, strArray);
+    } else {
+      Field::SetValue(m_pDocument, m_FieldName, m_nFormControlIndex, strArray);
+    }
+  } else {
+    CFX_PtrArray FieldArray;
+    GetFormFields(m_FieldName, FieldArray);
+    if (FieldArray.GetSize() <= 0)
+      return FALSE;
 
-            strArray.Add(swValue);
-        }
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+    ASSERT(pFormField != NULL);
 
-        if (m_bDelay)
-        {
-            AddDelay_WideStringArray(FP_VALUE, strArray);
-        }
-        else
-        {
-            Field::SetValue(m_pDocument, m_FieldName, m_nFormControlIndex, strArray);
-        }
-    }
-    else
-    {
-        CFX_PtrArray FieldArray;
-        GetFormFields(m_FieldName,FieldArray);
-        if (FieldArray.GetSize() <= 0) return FALSE;
-
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-        ASSERT(pFormField != NULL);
-
-
-
-        switch (pFormField->GetFieldType())
-        {
-        case FIELDTYPE_PUSHBUTTON:
-            return FALSE;
-        case FIELDTYPE_COMBOBOX:
-        case FIELDTYPE_TEXTFIELD:
-            {
-                CFX_WideString swValue = pFormField->GetValue();
-
-                double dRet;
-                FX_BOOL bDot;
-                if (CJS_PublicMethods::ConvertStringToNumber(swValue.c_str(), dRet, bDot))
-                {
-                    if (bDot)
-                        vp << dRet;
-                    else
-                        vp << dRet;
-                }
-                else
-                    vp << swValue;
-            }
-            break;
-        case FIELDTYPE_LISTBOX:
-            {
-                if (pFormField->CountSelectedItems() > 1)
-                {
-                    CJS_Array ValueArray(m_isolate);
-                    CJS_Value ElementValue(m_isolate);
-                    int iIndex;
-                    for (int i = 0, sz = pFormField->CountSelectedItems(); i < sz; i++)
-                    {
-                        iIndex = pFormField->GetSelectedIndex(i);
-                        ElementValue = pFormField->GetOptionValue(iIndex).c_str();
-                        if (FXSYS_wcslen(ElementValue.ToCFXWideString().c_str()) == 0)
-                            ElementValue = pFormField->GetOptionLabel(iIndex).c_str();
-                        ValueArray.SetElement(i, ElementValue);
-                    }
-                    vp << ValueArray;
-                }
-                else
-                {
-                    CFX_WideString swValue = pFormField->GetValue();
-
-                    double dRet;
-                    FX_BOOL bDot;
-                    if (CJS_PublicMethods::ConvertStringToNumber(swValue.c_str(), dRet, bDot))
-                    {
-                        if (bDot)
-                            vp << dRet;
-                        else
-                            vp << dRet;
-                    }
-                    else
-                        vp << swValue;
-                }
-            }
-            break;
-        case FIELDTYPE_CHECKBOX:
-        case FIELDTYPE_RADIOBUTTON:
-            {
-                FX_BOOL bFind = FALSE;
-                for (int i = 0 , sz = pFormField->CountControls(); i < sz; i++)
-                {
-                    if (pFormField->GetControl(i)->IsChecked())
-                    {
-                        CFX_WideString swValue = pFormField->GetControl(i)->GetExportValue();
-                        double dRet;
-                        FX_BOOL bDot;
-                        if (CJS_PublicMethods::ConvertStringToNumber(swValue.c_str(), dRet, bDot))
-                        {
-                            if (bDot)
-                                vp << dRet;
-                            else
-                                vp << dRet;
-                        }
-                        else
-                            vp << swValue;
-
-                        bFind = TRUE;
-                        break;
-                    }
-                    else
-                        continue;
-                }
-                if (!bFind)
-                    vp << L"Off";
-            }
-            break;
-        default:
-            vp << pFormField->GetValue();
+    switch (pFormField->GetFieldType()) {
+      case FIELDTYPE_PUSHBUTTON:
+        return FALSE;
+      case FIELDTYPE_COMBOBOX:
+      case FIELDTYPE_TEXTFIELD: {
+        CFX_WideString swValue = pFormField->GetValue();
+
+        double dRet;
+        FX_BOOL bDot;
+        if (CJS_PublicMethods::ConvertStringToNumber(swValue.c_str(), dRet,
+                                                     bDot)) {
+          if (bDot)
+            vp << dRet;
+          else
+            vp << dRet;
+        } else
+          vp << swValue;
+      } break;
+      case FIELDTYPE_LISTBOX: {
+        if (pFormField->CountSelectedItems() > 1) {
+          CJS_Array ValueArray(m_isolate);
+          CJS_Value ElementValue(m_isolate);
+          int iIndex;
+          for (int i = 0, sz = pFormField->CountSelectedItems(); i < sz; i++) {
+            iIndex = pFormField->GetSelectedIndex(i);
+            ElementValue = pFormField->GetOptionValue(iIndex).c_str();
+            if (FXSYS_wcslen(ElementValue.ToCFXWideString().c_str()) == 0)
+              ElementValue = pFormField->GetOptionLabel(iIndex).c_str();
+            ValueArray.SetElement(i, ElementValue);
+          }
+          vp << ValueArray;
+        } else {
+          CFX_WideString swValue = pFormField->GetValue();
+
+          double dRet;
+          FX_BOOL bDot;
+          if (CJS_PublicMethods::ConvertStringToNumber(swValue.c_str(), dRet,
+                                                       bDot)) {
+            if (bDot)
+              vp << dRet;
+            else
+              vp << dRet;
+          } else
+            vp << swValue;
+        }
+      } break;
+      case FIELDTYPE_CHECKBOX:
+      case FIELDTYPE_RADIOBUTTON: {
+        FX_BOOL bFind = FALSE;
+        for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
+          if (pFormField->GetControl(i)->IsChecked()) {
+            CFX_WideString swValue =
+                pFormField->GetControl(i)->GetExportValue();
+            double dRet;
+            FX_BOOL bDot;
+            if (CJS_PublicMethods::ConvertStringToNumber(swValue.c_str(), dRet,
+                                                         bDot)) {
+              if (bDot)
+                vp << dRet;
+              else
+                vp << dRet;
+            } else
+              vp << swValue;
+
+            bFind = TRUE;
             break;
+          } else
+            continue;
         }
+        if (!bFind)
+          vp << L"Off";
+      } break;
+      default:
+        vp << pFormField->GetValue();
+        break;
     }
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-void Field::SetValue(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName,
-                     int nControlIndex, const CJS_WideStringArray& strArray)
-{
-    ASSERT(pDocument != NULL);
+void Field::SetValue(CPDFSDK_Document* pDocument,
+                     const CFX_WideString& swFieldName,
+                     int nControlIndex,
+                     const CJS_WideStringArray& strArray) {
+  ASSERT(pDocument != NULL);
 
-    if (strArray.GetSize() < 1) return;
+  if (strArray.GetSize() < 1)
+    return;
+
+  CFX_PtrArray FieldArray;
+  GetFormFields(pDocument, swFieldName, FieldArray);
+
+  for (int i = 0, isz = FieldArray.GetSize(); i < isz; i++) {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
+    ASSERT(pFormField != NULL);
+
+    if (pFormField->GetFullName().Compare(swFieldName) != 0)
+      continue;
+
+    switch (pFormField->GetFieldType()) {
+      case FIELDTYPE_TEXTFIELD:
+      case FIELDTYPE_COMBOBOX:
+        if (pFormField->GetValue() != strArray.GetAt(0)) {
+          CFX_WideString WideString = strArray.GetAt(0);
+          pFormField->SetValue(strArray.GetAt(0), TRUE);
+          UpdateFormField(pDocument, pFormField, TRUE, FALSE, TRUE);
+        }
+        break;
+      case FIELDTYPE_CHECKBOX:  // mantis: 0004493
+      case FIELDTYPE_RADIOBUTTON: {
+        if (pFormField->GetValue() != strArray.GetAt(0)) {
+          pFormField->SetValue(strArray.GetAt(0), TRUE);
+          UpdateFormField(pDocument, pFormField, TRUE, FALSE, TRUE);
+        }
+      } break;
+      case FIELDTYPE_LISTBOX: {
+        FX_BOOL bModified = FALSE;
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(pDocument, swFieldName, FieldArray);
+        for (int i = 0, sz = strArray.GetSize(); i < sz; i++) {
+          int iIndex = pFormField->FindOption(strArray.GetAt(i));
 
-    for (int i=0,isz=FieldArray.GetSize(); i<isz; i++)
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
-        ASSERT(pFormField != NULL);
+          if (!pFormField->IsItemSelected(iIndex)) {
+            bModified = TRUE;
+            break;
+          }
+        }
 
-        if (pFormField->GetFullName().Compare(swFieldName) != 0)
-            continue;
+        if (bModified) {
+          pFormField->ClearSelection(TRUE);
+          for (int i = 0, sz = strArray.GetSize(); i < sz; i++) {
+            int iIndex = pFormField->FindOption(strArray.GetAt(i));
+            pFormField->SetItemSelection(iIndex, TRUE, TRUE);
+          }
 
-        switch (pFormField->GetFieldType())
-        {
-        case FIELDTYPE_TEXTFIELD:
-        case FIELDTYPE_COMBOBOX:
-            if (pFormField->GetValue() != strArray.GetAt(0))
-            {
-                CFX_WideString WideString = strArray.GetAt(0);
-                pFormField->SetValue(strArray.GetAt(0), TRUE);
-                UpdateFormField(pDocument, pFormField, TRUE, FALSE, TRUE);
-            }
-            break;
-        case FIELDTYPE_CHECKBOX: //mantis: 0004493
-        case FIELDTYPE_RADIOBUTTON:
-            {
-                if (pFormField->GetValue() != strArray.GetAt(0))
-                {
-                    pFormField->SetValue(strArray.GetAt(0), TRUE);
-                    UpdateFormField(pDocument, pFormField, TRUE, FALSE, TRUE);
-                }
-            }
-            break;
-        case FIELDTYPE_LISTBOX:
-            {
-                FX_BOOL bModified = FALSE;
-
-                for (int i=0,sz=strArray.GetSize(); i<sz; i++)
-                {
-                    int iIndex = pFormField->FindOption(strArray.GetAt(i));
-
-                    if (!pFormField->IsItemSelected(iIndex))
-                    {
-                        bModified = TRUE;
-                        break;
-                    }
-                }
-
-                if (bModified)
-                {
-                    pFormField->ClearSelection(TRUE);
-                    for (int i=0,sz=strArray.GetSize(); i<sz; i++)
-                    {
-                        int iIndex = pFormField->FindOption(strArray.GetAt(i));
-                        pFormField->SetItemSelection(iIndex, TRUE, TRUE);
-                    }
-
-                    UpdateFormField(pDocument, pFormField, TRUE, FALSE, TRUE);
-                }
-            }
-            break;
-        default:
-            break;
+          UpdateFormField(pDocument, pFormField, TRUE, FALSE, TRUE);
         }
+      } break;
+      default:
+        break;
     }
+  }
 }
 
-FX_BOOL Field::valueAsString(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::valueAsString(IFXJS_Context* cc,
+                             CJS_PropValue& vp,
+                             CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (!vp.IsGetting()) return FALSE;
+  if (!vp.IsGetting())
+    return FALSE;
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    ASSERT(pFormField != NULL);
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  ASSERT(pFormField != NULL);
 
-    if (pFormField->GetFieldType() == FIELDTYPE_PUSHBUTTON)
-        return FALSE;
+  if (pFormField->GetFieldType() == FIELDTYPE_PUSHBUTTON)
+    return FALSE;
 
-    if (pFormField->GetFieldType() == FIELDTYPE_CHECKBOX)
-    {
-        if(!pFormField->CountControls()) return FALSE;
+  if (pFormField->GetFieldType() == FIELDTYPE_CHECKBOX) {
+    if (!pFormField->CountControls())
+      return FALSE;
 
-        if (pFormField->GetControl(0)->IsChecked())
-            vp << L"Yes";
-        else
-            vp << L"Off";
-    }
-    else if (pFormField->GetFieldType() == FIELDTYPE_RADIOBUTTON && !(pFormField->GetFieldFlags() & FIELDFLAG_RADIOSINUNISON))
-    {
-        for (int i=0, sz=pFormField->CountControls(); i<sz; i++)
-        {
-            if (pFormField->GetControl(i)->IsChecked())
-            {
-                vp << pFormField->GetControl(i)->GetExportValue().c_str();
-                break;
-            }
-            else
-                vp << L"Off";
-        }
-    }
-    else if (pFormField->GetFieldType() == FIELDTYPE_LISTBOX && (pFormField->CountSelectedItems() > 1))
-    {
-        vp << L"";
-    }
+    if (pFormField->GetControl(0)->IsChecked())
+      vp << L"Yes";
     else
-        vp << pFormField->GetValue().c_str();
+      vp << L"Off";
+  } else if (pFormField->GetFieldType() == FIELDTYPE_RADIOBUTTON &&
+             !(pFormField->GetFieldFlags() & FIELDFLAG_RADIOSINUNISON)) {
+    for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
+      if (pFormField->GetControl(i)->IsChecked()) {
+        vp << pFormField->GetControl(i)->GetExportValue().c_str();
+        break;
+      } else
+        vp << L"Off";
+    }
+  } else if (pFormField->GetFieldType() == FIELDTYPE_LISTBOX &&
+             (pFormField->CountSelectedItems() > 1)) {
+    vp << L"";
+  } else
+    vp << pFormField->GetValue().c_str();
 
-    return TRUE;
+  return TRUE;
 }
 
-/* --------------------------------- methods --------------------------------- */
+/* --------------------------------- methods ---------------------------------
+ */
 
-FX_BOOL Field::browseForFileToSubmit(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::browseForFileToSubmit(IFXJS_Context* cc,
+                                     const CJS_Parameters& params,
+                                     CJS_Value& vRet,
+                                     CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName, FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    ASSERT(pFormField != NULL);
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  ASSERT(pFormField != NULL);
 
-    CPDFDoc_Environment* pApp = m_pDocument->GetEnv();
-    ASSERT(pApp != NULL);
+  CPDFDoc_Environment* pApp = m_pDocument->GetEnv();
+  ASSERT(pApp != NULL);
 
-    if ((pFormField->GetFieldFlags() & FIELDFLAG_FILESELECT) &&
-        (pFormField->GetFieldType() == FIELDTYPE_TEXTFIELD))
-    {
-        CFX_WideString wsFileName = pApp->JS_fieldBrowse();
-        if(!wsFileName.IsEmpty())
-        {
-            pFormField->SetValue(wsFileName);
-            UpdateFormField(m_pDocument, pFormField, TRUE, TRUE, TRUE);
-         }
+  if ((pFormField->GetFieldFlags() & FIELDFLAG_FILESELECT) &&
+      (pFormField->GetFieldType() == FIELDTYPE_TEXTFIELD)) {
+    CFX_WideString wsFileName = pApp->JS_fieldBrowse();
+    if (!wsFileName.IsEmpty()) {
+      pFormField->SetValue(wsFileName);
+      UpdateFormField(m_pDocument, pFormField, TRUE, TRUE, TRUE);
     }
-    else
-        return FALSE;
+  } else
+    return FALSE;
 
-    return TRUE;
+  return TRUE;
 }
 
+FX_BOOL Field::buttonGetCaption(IFXJS_Context* cc,
+                                const CJS_Parameters& params,
+                                CJS_Value& vRet,
+                                CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-FX_BOOL Field::buttonGetCaption(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-
-    int nface = 0;
-    int iSize = params.size();
-    if (iSize >= 1)
-        nface = params[0].ToInt();
+  int nface = 0;
+  int iSize = params.size();
+  if (iSize >= 1)
+    nface = params[0].ToInt();
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    ASSERT(pFormField != NULL);
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  ASSERT(pFormField != NULL);
 
-    if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
-        return FALSE;
+  if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
+    return FALSE;
 
-    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-    if (!pFormControl)return FALSE;
+  CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+  if (!pFormControl)
+    return FALSE;
 
-    if (nface == 0)
-        vRet = pFormControl->GetNormalCaption().c_str();
-    else if (nface == 1)
-        vRet = pFormControl->GetDownCaption().c_str();
-    else if (nface == 2)
-        vRet = pFormControl->GetRolloverCaption().c_str();
-    else
-        return FALSE;
+  if (nface == 0)
+    vRet = pFormControl->GetNormalCaption().c_str();
+  else if (nface == 1)
+    vRet = pFormControl->GetDownCaption().c_str();
+  else if (nface == 2)
+    vRet = pFormControl->GetRolloverCaption().c_str();
+  else
+    return FALSE;
 
-    return TRUE;
+  return TRUE;
 }
 
 //#pragma warning(disable: 4800)
 
-FX_BOOL Field::buttonGetIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::buttonGetIcon(IFXJS_Context* cc,
+                             const CJS_Parameters& params,
+                             CJS_Value& vRet,
+                             CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    int nface = 0;
-    int iSize = params.size();
-    if (iSize >= 1)
-        nface = params[0].ToInt();
+  int nface = 0;
+  int iSize = params.size();
+  if (iSize >= 1)
+    nface = params[0].ToInt();
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    ASSERT(pFormField != NULL);
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  ASSERT(pFormField != NULL);
 
-    if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
-        return FALSE;
+  if (pFormField->GetFieldType() != FIELDTYPE_PUSHBUTTON)
+    return FALSE;
 
-    CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
-    if (!pFormControl)return FALSE;
+  CPDF_FormControl* pFormControl = GetSmartFieldControl(pFormField);
+  if (!pFormControl)
+    return FALSE;
 
-    CJS_Context* pContext = (CJS_Context*)cc;
-    ASSERT(pContext != NULL);
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
 
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    ASSERT(pRuntime != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
 
-    JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"Icon"));
-    ASSERT(pObj.IsEmpty() == FALSE);
+  JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext,
+                                       JS_GetObjDefnID(*pRuntime, L"Icon"));
+  ASSERT(pObj.IsEmpty() == FALSE);
 
-    CJS_Icon* pJS_Icon = (CJS_Icon*)JS_GetPrivate(pObj);
-    ASSERT(pJS_Icon != NULL);
+  CJS_Icon* pJS_Icon = (CJS_Icon*)JS_GetPrivate(pObj);
+  ASSERT(pJS_Icon != NULL);
 
-    Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject();
-    ASSERT(pIcon != NULL);
+  Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject();
+  ASSERT(pIcon != NULL);
 
-    CPDF_Stream* pIconStream = NULL;
-    if (nface == 0)
-        pIconStream = pFormControl->GetNormalIcon();
-    else if (nface == 1)
-        pIconStream = pFormControl->GetDownIcon();
-    else if (nface == 2)
-        pIconStream = pFormControl->GetRolloverIcon();
-    else
-        return FALSE;
+  CPDF_Stream* pIconStream = NULL;
+  if (nface == 0)
+    pIconStream = pFormControl->GetNormalIcon();
+  else if (nface == 1)
+    pIconStream = pFormControl->GetDownIcon();
+  else if (nface == 2)
+    pIconStream = pFormControl->GetRolloverIcon();
+  else
+    return FALSE;
 
-    pIcon->SetStream(pIconStream);
-    vRet = pJS_Icon;
+  pIcon->SetStream(pIconStream);
+  vRet = pJS_Icon;
 
-    return TRUE;
+  return TRUE;
 }
 
 //#pragma warning(default: 4800)
 
-FX_BOOL Field::buttonImportIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL Field::buttonImportIcon(IFXJS_Context* cc,
+                                const CJS_Parameters& params,
+                                CJS_Value& vRet,
+                                CFX_WideString& sError) {
 #if 0
     ASSERT(m_pDocument != NULL);
 
@@ -3497,620 +3384,681 @@ FX_BOOL Field::buttonImportIcon(IFXJS_Context* cc, const CJS_Parameters& params,
     UpdateFormControl(m_pDocument, pFormControl, TRUE, TRUE, TRUE);
 
     vRet = 0;
-#endif // 0
-    return TRUE;
+#endif  // 0
+  return TRUE;
 }
 
-FX_BOOL Field::buttonSetCaption(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return FALSE;
+FX_BOOL Field::buttonSetCaption(IFXJS_Context* cc,
+                                const CJS_Parameters& params,
+                                CJS_Value& vRet,
+                                CFX_WideString& sError) {
+  return FALSE;
 }
 
-FX_BOOL Field::buttonSetIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return FALSE;
+FX_BOOL Field::buttonSetIcon(IFXJS_Context* cc,
+                             const CJS_Parameters& params,
+                             CJS_Value& vRet,
+                             CFX_WideString& sError) {
+  return FALSE;
 }
 
-FX_BOOL Field::checkThisBox(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::checkThisBox(IFXJS_Context* cc,
+                            const CJS_Parameters& params,
+                            CJS_Value& vRet,
+                            CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    if (!m_bCanSet) return FALSE;
+  if (!m_bCanSet)
+    return FALSE;
 
-    int iSize = params.size();
-    if (iSize < 1)
-        return FALSE;
+  int iSize = params.size();
+  if (iSize < 1)
+    return FALSE;
 
-    int nWidget = params[0].ToInt();
+  int nWidget = params[0].ToInt();
 
-    FX_BOOL bCheckit = TRUE;
-    if (iSize >= 2)
-        bCheckit = params[1].ToBool();
+  FX_BOOL bCheckit = TRUE;
+  if (iSize >= 2)
+    bCheckit = params[1].ToBool();
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    ASSERT(pFormField != NULL);
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  ASSERT(pFormField != NULL);
 
-    if (pFormField->GetFieldType() != FIELDTYPE_CHECKBOX && pFormField->GetFieldType() != FIELDTYPE_RADIOBUTTON)
-        return FALSE;
-    if(nWidget <0 || nWidget >= pFormField->CountControls())
-        return FALSE;
-    if (pFormField->GetFieldType() == FIELDTYPE_RADIOBUTTON)
-        pFormField->CheckControl(nWidget, bCheckit, TRUE);
-    else
-        pFormField->CheckControl(nWidget, bCheckit, TRUE);
+  if (pFormField->GetFieldType() != FIELDTYPE_CHECKBOX &&
+      pFormField->GetFieldType() != FIELDTYPE_RADIOBUTTON)
+    return FALSE;
+  if (nWidget < 0 || nWidget >= pFormField->CountControls())
+    return FALSE;
+  if (pFormField->GetFieldType() == FIELDTYPE_RADIOBUTTON)
+    pFormField->CheckControl(nWidget, bCheckit, TRUE);
+  else
+    pFormField->CheckControl(nWidget, bCheckit, TRUE);
 
-    UpdateFormField(m_pDocument, pFormField, TRUE, TRUE, TRUE);
-    return TRUE;
+  UpdateFormField(m_pDocument, pFormField, TRUE, TRUE, TRUE);
+  return TRUE;
 }
 
-FX_BOOL Field::clearItems(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Field::clearItems(IFXJS_Context* cc,
+                          const CJS_Parameters& params,
+                          CJS_Value& vRet,
+                          CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Field::defaultIsChecked(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-
-    if (!m_bCanSet) return FALSE;
+FX_BOOL Field::defaultIsChecked(IFXJS_Context* cc,
+                                const CJS_Parameters& params,
+                                CJS_Value& vRet,
+                                CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    int iSize = params.size();
-    if (iSize < 1)
-        return FALSE;
+  if (!m_bCanSet)
+    return FALSE;
 
-    int nWidget = params[0].ToInt();
+  int iSize = params.size();
+  if (iSize < 1)
+    return FALSE;
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  int nWidget = params[0].ToInt();
 
-    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    ASSERT(pFormField != NULL);
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    if(nWidget <0 || nWidget >= pFormField->CountControls())
-    {
-        vRet = FALSE;
-        return FALSE;
-    }
-    if ((pFormField->GetFieldType() == FIELDTYPE_CHECKBOX)
-        || (pFormField->GetFieldType() == FIELDTYPE_RADIOBUTTON))
-    {
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  ASSERT(pFormField != NULL);
 
-        vRet = TRUE;
-    }
-    else
-        vRet = FALSE;
+  if (nWidget < 0 || nWidget >= pFormField->CountControls()) {
+    vRet = FALSE;
+    return FALSE;
+  }
+  if ((pFormField->GetFieldType() == FIELDTYPE_CHECKBOX) ||
+      (pFormField->GetFieldType() == FIELDTYPE_RADIOBUTTON)) {
+    vRet = TRUE;
+  } else
+    vRet = FALSE;
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Field::deleteItemAt(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Field::deleteItemAt(IFXJS_Context* cc,
+                            const CJS_Parameters& params,
+                            CJS_Value& vRet,
+                            CFX_WideString& sError) {
+  return TRUE;
 }
 
-int JS_COMPARESTRING(CFX_WideString* ps1, CFX_WideString* ps2)
-{
-    ASSERT(ps1 != NULL);
-    ASSERT(ps2 != NULL);
+int JS_COMPARESTRING(CFX_WideString* ps1, CFX_WideString* ps2) {
+  ASSERT(ps1 != NULL);
+  ASSERT(ps2 != NULL);
 
-    return ps1->Compare(*ps2);
+  return ps1->Compare(*ps2);
 }
 
+FX_BOOL Field::getArray(IFXJS_Context* cc,
+                        const CJS_Parameters& params,
+                        CJS_Value& vRet,
+                        CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-FX_BOOL Field::getArray(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
-
-    CGW_ArrayTemplate<CFX_WideString*> swSort;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    for (int i=0,sz=FieldArray.GetSize(); i<sz; i++)
-    {
-        CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
-        ASSERT(pFormField != NULL);
+  CGW_ArrayTemplate<CFX_WideString*> swSort;
 
-        swSort.Add(new CFX_WideString(pFormField->GetFullName()));
+  for (int i = 0, sz = FieldArray.GetSize(); i < sz; i++) {
+    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(i);
+    ASSERT(pFormField != NULL);
 
-    }
-    swSort.Sort(JS_COMPARESTRING);
+    swSort.Add(new CFX_WideString(pFormField->GetFullName()));
+  }
+  swSort.Sort(JS_COMPARESTRING);
 
-    CJS_Context* pContext = (CJS_Context*)cc;
-    ASSERT(pContext != NULL);
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    ASSERT(pRuntime != NULL);
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
 
-    CJS_Array FormFieldArray(m_isolate);
-    for (int j=0,jsz = swSort.GetSize(); j<jsz; j++)
-    {
-        CFX_WideString* pStr = swSort.GetAt(j);
+  CJS_Array FormFieldArray(m_isolate);
+  for (int j = 0, jsz = swSort.GetSize(); j < jsz; j++) {
+    CFX_WideString* pStr = swSort.GetAt(j);
 
-        JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"Field"));
-        ASSERT(pObj.IsEmpty() == FALSE);
+    JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext,
+                                         JS_GetObjDefnID(*pRuntime, L"Field"));
+    ASSERT(pObj.IsEmpty() == FALSE);
 
-        CJS_Field* pJSField = (CJS_Field*)JS_GetPrivate(pObj);
-        ASSERT(pJSField != NULL);
+    CJS_Field* pJSField = (CJS_Field*)JS_GetPrivate(pObj);
+    ASSERT(pJSField != NULL);
 
-        Field* pField = (Field*)pJSField->GetEmbedObject();
-        ASSERT(pField != NULL);
+    Field* pField = (Field*)pJSField->GetEmbedObject();
+    ASSERT(pField != NULL);
 
-        pField->AttachField(m_pJSDoc, *pStr);
+    pField->AttachField(m_pJSDoc, *pStr);
 
-        CJS_Value FormFieldValue(m_isolate);
-        FormFieldValue = pJSField;
-        FormFieldArray.SetElement(j, FormFieldValue);
+    CJS_Value FormFieldValue(m_isolate);
+    FormFieldValue = pJSField;
+    FormFieldArray.SetElement(j, FormFieldValue);
 
-        delete pStr;
-    }
+    delete pStr;
+  }
 
-    vRet = FormFieldArray;
-    swSort.RemoveAll();
-    return TRUE;
+  vRet = FormFieldArray;
+  swSort.RemoveAll();
+  return TRUE;
 }
 
-FX_BOOL Field::getItemAt(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
-    int iSize = params.size();
-
-    int nIdx = -1;
-    if (iSize >= 1)
-        nIdx = params[0].ToInt();
+FX_BOOL Field::getItemAt(IFXJS_Context* cc,
+                         const CJS_Parameters& params,
+                         CJS_Value& vRet,
+                         CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
+  int iSize = params.size();
 
-    FX_BOOL bExport = TRUE;
-    if (iSize >= 2)
-        bExport = params[1].ToBool();
+  int nIdx = -1;
+  if (iSize >= 1)
+    nIdx = params[0].ToInt();
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  FX_BOOL bExport = TRUE;
+  if (iSize >= 2)
+    bExport = params[1].ToBool();
 
-    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    ASSERT(pFormField != NULL);
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    if ((pFormField->GetFieldType() == FIELDTYPE_LISTBOX)
-        || (pFormField->GetFieldType() == FIELDTYPE_COMBOBOX))
-    {
-        if (nIdx == -1 || nIdx > pFormField->CountOptions())
-            nIdx = pFormField->CountOptions() -1;
-        if (bExport)
-        {
-            CFX_WideString strval = pFormField->GetOptionValue(nIdx);
-            if (strval.IsEmpty())
-                vRet = pFormField->GetOptionLabel(nIdx).c_str();
-            else
-                vRet = strval.c_str();
-        }
-        else
-            vRet = pFormField->GetOptionLabel(nIdx).c_str();
-    }
-    else
-        return FALSE;
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  ASSERT(pFormField != NULL);
+
+  if ((pFormField->GetFieldType() == FIELDTYPE_LISTBOX) ||
+      (pFormField->GetFieldType() == FIELDTYPE_COMBOBOX)) {
+    if (nIdx == -1 || nIdx > pFormField->CountOptions())
+      nIdx = pFormField->CountOptions() - 1;
+    if (bExport) {
+      CFX_WideString strval = pFormField->GetOptionValue(nIdx);
+      if (strval.IsEmpty())
+        vRet = pFormField->GetOptionLabel(nIdx).c_str();
+      else
+        vRet = strval.c_str();
+    } else
+      vRet = pFormField->GetOptionLabel(nIdx).c_str();
+  } else
+    return FALSE;
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Field::getLock(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return FALSE;
+FX_BOOL Field::getLock(IFXJS_Context* cc,
+                       const CJS_Parameters& params,
+                       CJS_Value& vRet,
+                       CFX_WideString& sError) {
+  return FALSE;
 }
 
-FX_BOOL Field::insertItemAt(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Field::insertItemAt(IFXJS_Context* cc,
+                            const CJS_Parameters& params,
+                            CJS_Value& vRet,
+                            CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Field::isBoxChecked(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::isBoxChecked(IFXJS_Context* cc,
+                            const CJS_Parameters& params,
+                            CJS_Value& vRet,
+                            CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    int nIndex = -1;
-    if (params.size() >= 1)
-        nIndex = params[0].ToInt();
+  int nIndex = -1;
+  if (params.size() >= 1)
+    nIndex = params[0].ToInt();
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    ASSERT(pFormField != NULL);
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  ASSERT(pFormField != NULL);
 
-    if(nIndex <0 || nIndex >= pFormField->CountControls())
-    {
-        vRet = FALSE;
-        return FALSE;
-    }
+  if (nIndex < 0 || nIndex >= pFormField->CountControls()) {
+    vRet = FALSE;
+    return FALSE;
+  }
 
-    if ((pFormField->GetFieldType() == FIELDTYPE_CHECKBOX)
-        || (pFormField->GetFieldType() == FIELDTYPE_RADIOBUTTON))
-    {
-        if (pFormField->GetControl(nIndex)->IsChecked() !=0 )
-            vRet = TRUE;
-        else
-            vRet = FALSE;
-    }
+  if ((pFormField->GetFieldType() == FIELDTYPE_CHECKBOX) ||
+      (pFormField->GetFieldType() == FIELDTYPE_RADIOBUTTON)) {
+    if (pFormField->GetControl(nIndex)->IsChecked() != 0)
+      vRet = TRUE;
     else
-        vRet = FALSE;
+      vRet = FALSE;
+  } else
+    vRet = FALSE;
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Field::isDefaultChecked(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    ASSERT(m_pDocument != NULL);
+FX_BOOL Field::isDefaultChecked(IFXJS_Context* cc,
+                                const CJS_Parameters& params,
+                                CJS_Value& vRet,
+                                CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-    int nIndex = -1;
-    if (params.size() >= 1)
-        nIndex = params[0].ToInt();
+  int nIndex = -1;
+  if (params.size() >= 1)
+    nIndex = params[0].ToInt();
 
-    CFX_PtrArray FieldArray;
-    GetFormFields(m_FieldName,FieldArray);
-    if (FieldArray.GetSize() <= 0) return FALSE;
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
+    return FALSE;
 
-    CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-    ASSERT(pFormField != NULL);
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  ASSERT(pFormField != NULL);
 
-    if(nIndex <0 || nIndex >= pFormField->CountControls())
-    {
-        vRet = FALSE;
-        return FALSE;
-    }
-    if ((pFormField->GetFieldType() == FIELDTYPE_CHECKBOX)
-        || (pFormField->GetFieldType() == FIELDTYPE_RADIOBUTTON))
-    {
-        if (pFormField->GetControl(nIndex)->IsDefaultChecked() != 0)
-            vRet = TRUE;
-        else
-            vRet = FALSE;
-    }
+  if (nIndex < 0 || nIndex >= pFormField->CountControls()) {
+    vRet = FALSE;
+    return FALSE;
+  }
+  if ((pFormField->GetFieldType() == FIELDTYPE_CHECKBOX) ||
+      (pFormField->GetFieldType() == FIELDTYPE_RADIOBUTTON)) {
+    if (pFormField->GetControl(nIndex)->IsDefaultChecked() != 0)
+      vRet = TRUE;
     else
-        vRet = FALSE;
+      vRet = FALSE;
+  } else
+    vRet = FALSE;
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL Field::setAction(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return TRUE;
+FX_BOOL Field::setAction(IFXJS_Context* cc,
+                         const CJS_Parameters& params,
+                         CJS_Value& vRet,
+                         CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Field::setFocus(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	ASSERT(m_pDocument != NULL);
-
-	CFX_PtrArray FieldArray;
-	GetFormFields(m_FieldName,FieldArray);
-	if (FieldArray.GetSize() <= 0) return FALSE;
-
-	CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
-	ASSERT(pFormField != NULL);
-
-	int32_t nCount = pFormField->CountControls();
-
-	if (nCount < 1) return FALSE;
-
-	CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
-	ASSERT(pInterForm != NULL);
-
-	CPDFSDK_Widget* pWidget = NULL;
-	if (nCount == 1)
-	{
-		pWidget = pInterForm->GetWidget(pFormField->GetControl(0));
-	}
-	else
-	{
-		CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
-		ASSERT(pEnv);
-		CPDFXFA_Page* pPage = (CPDFXFA_Page*)pEnv->FFI_GetCurrentPage(m_pDocument->GetDocument());
-		if(!pPage)
-			return FALSE;
-		if (CPDFSDK_PageView* pCurPageView = m_pDocument->GetPageView(pPage))
-		{
-			for (int32_t i=0; i<nCount; i++)
-			{
-				if (CPDFSDK_Widget* pTempWidget =  pInterForm->GetWidget(pFormField->GetControl(i)))
-				{
-					if (pTempWidget->GetPDFPage() == pCurPageView->GetPDFPage())
-					{
-						pWidget = pTempWidget;
-						break;
-					}
-				}
-			}
-		}
-	}
-
-	if (pWidget)
-	{
-		m_pDocument->SetFocusAnnot(pWidget);
-	}
-
-	return TRUE;
-}
-
-FX_BOOL Field::setItems(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return TRUE;
-}
+FX_BOOL Field::setFocus(IFXJS_Context* cc,
+                        const CJS_Parameters& params,
+                        CJS_Value& vRet,
+                        CFX_WideString& sError) {
+  ASSERT(m_pDocument != NULL);
 
-FX_BOOL Field::setLock(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+  CFX_PtrArray FieldArray;
+  GetFormFields(m_FieldName, FieldArray);
+  if (FieldArray.GetSize() <= 0)
     return FALSE;
-}
 
-FX_BOOL Field::signatureGetModifications(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+  CPDF_FormField* pFormField = (CPDF_FormField*)FieldArray.ElementAt(0);
+  ASSERT(pFormField != NULL);
+
+  int32_t nCount = pFormField->CountControls();
+
+  if (nCount < 1)
     return FALSE;
+
+  CPDFSDK_InterForm* pInterForm =
+      (CPDFSDK_InterForm*)m_pDocument->GetInterForm();
+  ASSERT(pInterForm != NULL);
+
+  CPDFSDK_Widget* pWidget = NULL;
+  if (nCount == 1) {
+    pWidget = pInterForm->GetWidget(pFormField->GetControl(0));
+  } else {
+    CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
+    ASSERT(pEnv);
+    CPDFXFA_Page* pPage =
+        (CPDFXFA_Page*)pEnv->FFI_GetCurrentPage(m_pDocument->GetDocument());
+    if (!pPage)
+      return FALSE;
+    if (CPDFSDK_PageView* pCurPageView = m_pDocument->GetPageView(pPage)) {
+      for (int32_t i = 0; i < nCount; i++) {
+        if (CPDFSDK_Widget* pTempWidget =
+                pInterForm->GetWidget(pFormField->GetControl(i))) {
+          if (pTempWidget->GetPDFPage() == pCurPageView->GetPDFPage()) {
+            pWidget = pTempWidget;
+            break;
+          }
+        }
+      }
+    }
+  }
+
+  if (pWidget) {
+    m_pDocument->SetFocusAnnot(pWidget);
+  }
+
+  return TRUE;
 }
 
-FX_BOOL Field::signatureGetSeedValue(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return FALSE;
+FX_BOOL Field::setItems(IFXJS_Context* cc,
+                        const CJS_Parameters& params,
+                        CJS_Value& vRet,
+                        CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL Field::signatureInfo(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return FALSE;
+FX_BOOL Field::setLock(IFXJS_Context* cc,
+                       const CJS_Parameters& params,
+                       CJS_Value& vRet,
+                       CFX_WideString& sError) {
+  return FALSE;
 }
 
-FX_BOOL Field::signatureSetSeedValue(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return FALSE;
+FX_BOOL Field::signatureGetModifications(IFXJS_Context* cc,
+                                         const CJS_Parameters& params,
+                                         CJS_Value& vRet,
+                                         CFX_WideString& sError) {
+  return FALSE;
 }
 
-FX_BOOL Field::signatureSign(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return FALSE;
+FX_BOOL Field::signatureGetSeedValue(IFXJS_Context* cc,
+                                     const CJS_Parameters& params,
+                                     CJS_Value& vRet,
+                                     CFX_WideString& sError) {
+  return FALSE;
 }
 
-FX_BOOL Field::signatureValidate(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return FALSE;
+FX_BOOL Field::signatureInfo(IFXJS_Context* cc,
+                             const CJS_Parameters& params,
+                             CJS_Value& vRet,
+                             CFX_WideString& sError) {
+  return FALSE;
 }
 
-FX_BOOL Field::source(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (vp.IsGetting())
-    {
-        vp << (CJS_Object*)NULL;
-    }
+FX_BOOL Field::signatureSetSeedValue(IFXJS_Context* cc,
+                                     const CJS_Parameters& params,
+                                     CJS_Value& vRet,
+                                     CFX_WideString& sError) {
+  return FALSE;
+}
 
-    return TRUE;
+FX_BOOL Field::signatureSign(IFXJS_Context* cc,
+                             const CJS_Parameters& params,
+                             CJS_Value& vRet,
+                             CFX_WideString& sError) {
+  return FALSE;
+}
+
+FX_BOOL Field::signatureValidate(IFXJS_Context* cc,
+                                 const CJS_Parameters& params,
+                                 CJS_Value& vRet,
+                                 CFX_WideString& sError) {
+  return FALSE;
 }
 
-/////////////////////////////////////////// delay /////////////////////////////////////////////
+FX_BOOL Field::source(IFXJS_Context* cc,
+                      CJS_PropValue& vp,
+                      CFX_WideString& sError) {
+  if (vp.IsGetting()) {
+    vp << (CJS_Object*)NULL;
+  }
 
-void Field::AddDelay_Int(enum FIELD_PROP prop, int32_t n)
-{
-    ASSERT(m_pJSDoc != NULL);
+  return TRUE;
+}
+
+/////////////////////////////////////////// delay
+////////////////////////////////////////////////
 
-    CJS_DelayData* pNewData = new CJS_DelayData;
-    pNewData->sFieldName = m_FieldName;
-    pNewData->nControlIndex = m_nFormControlIndex;
-    pNewData->eProp = prop;
-    pNewData->num = n;
+void Field::AddDelay_Int(enum FIELD_PROP prop, int32_t n) {
+  ASSERT(m_pJSDoc != NULL);
 
-    m_pJSDoc->AddDelayData(pNewData);
+  CJS_DelayData* pNewData = new CJS_DelayData;
+  pNewData->sFieldName = m_FieldName;
+  pNewData->nControlIndex = m_nFormControlIndex;
+  pNewData->eProp = prop;
+  pNewData->num = n;
+
+  m_pJSDoc->AddDelayData(pNewData);
 }
 
-void Field::AddDelay_Bool(enum FIELD_PROP prop,bool b)
-{
-    ASSERT(m_pJSDoc != NULL);
+void Field::AddDelay_Bool(enum FIELD_PROP prop, bool b) {
+  ASSERT(m_pJSDoc != NULL);
 
-    CJS_DelayData* pNewData = new CJS_DelayData;
-    pNewData->sFieldName = m_FieldName;
-    pNewData->nControlIndex = m_nFormControlIndex;
-    pNewData->eProp = prop;
-    pNewData->b = b;
+  CJS_DelayData* pNewData = new CJS_DelayData;
+  pNewData->sFieldName = m_FieldName;
+  pNewData->nControlIndex = m_nFormControlIndex;
+  pNewData->eProp = prop;
+  pNewData->b = b;
 
-    m_pJSDoc->AddDelayData(pNewData);
+  m_pJSDoc->AddDelayData(pNewData);
 }
 
-void Field::AddDelay_String(enum FIELD_PROP prop, const CFX_ByteString& string)
-{
-    ASSERT(m_pJSDoc != NULL);
+void Field::AddDelay_String(enum FIELD_PROP prop,
+                            const CFX_ByteString& string) {
+  ASSERT(m_pJSDoc != NULL);
 
-    CJS_DelayData* pNewData = new CJS_DelayData;
-    pNewData->sFieldName = m_FieldName;
-    pNewData->nControlIndex = m_nFormControlIndex;
-    pNewData->eProp = prop;
-    pNewData->string = string;
+  CJS_DelayData* pNewData = new CJS_DelayData;
+  pNewData->sFieldName = m_FieldName;
+  pNewData->nControlIndex = m_nFormControlIndex;
+  pNewData->eProp = prop;
+  pNewData->string = string;
 
-    m_pJSDoc->AddDelayData(pNewData);
+  m_pJSDoc->AddDelayData(pNewData);
 }
 
-void Field::AddDelay_WideString(enum FIELD_PROP prop, const CFX_WideString& string)
-{
-    ASSERT(m_pJSDoc != NULL);
+void Field::AddDelay_WideString(enum FIELD_PROP prop,
+                                const CFX_WideString& string) {
+  ASSERT(m_pJSDoc != NULL);
 
-    CJS_DelayData* pNewData = new CJS_DelayData;
-    pNewData->sFieldName = m_FieldName;
-    pNewData->nControlIndex = m_nFormControlIndex;
-    pNewData->eProp = prop;
-    pNewData->widestring = string;
+  CJS_DelayData* pNewData = new CJS_DelayData;
+  pNewData->sFieldName = m_FieldName;
+  pNewData->nControlIndex = m_nFormControlIndex;
+  pNewData->eProp = prop;
+  pNewData->widestring = string;
 
-    m_pJSDoc->AddDelayData(pNewData);
+  m_pJSDoc->AddDelayData(pNewData);
 }
 
-void Field::AddDelay_Rect(enum FIELD_PROP prop, const CPDF_Rect& rect)
-{
-    ASSERT(m_pJSDoc != NULL);
+void Field::AddDelay_Rect(enum FIELD_PROP prop, const CPDF_Rect& rect) {
+  ASSERT(m_pJSDoc != NULL);
 
-    CJS_DelayData* pNewData = new CJS_DelayData;
-    pNewData->sFieldName = m_FieldName;
-    pNewData->nControlIndex = m_nFormControlIndex;
-    pNewData->eProp = prop;
-    pNewData->rect = rect;
+  CJS_DelayData* pNewData = new CJS_DelayData;
+  pNewData->sFieldName = m_FieldName;
+  pNewData->nControlIndex = m_nFormControlIndex;
+  pNewData->eProp = prop;
+  pNewData->rect = rect;
 
-    m_pJSDoc->AddDelayData(pNewData);
+  m_pJSDoc->AddDelayData(pNewData);
 }
 
-void Field::AddDelay_Color(enum FIELD_PROP prop, const CPWL_Color& color)
-{
-    ASSERT(m_pJSDoc != NULL);
+void Field::AddDelay_Color(enum FIELD_PROP prop, const CPWL_Color& color) {
+  ASSERT(m_pJSDoc != NULL);
 
-    CJS_DelayData* pNewData = new CJS_DelayData;
-    pNewData->sFieldName = m_FieldName;
-    pNewData->nControlIndex = m_nFormControlIndex;
-    pNewData->eProp = prop;
-    pNewData->color = color;
+  CJS_DelayData* pNewData = new CJS_DelayData;
+  pNewData->sFieldName = m_FieldName;
+  pNewData->nControlIndex = m_nFormControlIndex;
+  pNewData->eProp = prop;
+  pNewData->color = color;
 
-    m_pJSDoc->AddDelayData(pNewData);
+  m_pJSDoc->AddDelayData(pNewData);
 }
 
-void Field::AddDelay_WordArray(enum FIELD_PROP prop, const CFX_DWordArray& array)
-{
-    ASSERT(m_pJSDoc != NULL);
+void Field::AddDelay_WordArray(enum FIELD_PROP prop,
+                               const CFX_DWordArray& array) {
+  ASSERT(m_pJSDoc != NULL);
 
-    CJS_DelayData* pNewData = new CJS_DelayData;
-    pNewData->sFieldName = m_FieldName;
-    pNewData->nControlIndex = m_nFormControlIndex;
-    pNewData->eProp = prop;
+  CJS_DelayData* pNewData = new CJS_DelayData;
+  pNewData->sFieldName = m_FieldName;
+  pNewData->nControlIndex = m_nFormControlIndex;
+  pNewData->eProp = prop;
 
-    for (int i=0,sz=array.GetSize(); i<sz; i++)
-        pNewData->wordarray.Add(array.GetAt(i));
+  for (int i = 0, sz = array.GetSize(); i < sz; i++)
+    pNewData->wordarray.Add(array.GetAt(i));
 
-    m_pJSDoc->AddDelayData(pNewData);
+  m_pJSDoc->AddDelayData(pNewData);
 }
 
-void Field::AddDelay_WideStringArray(enum FIELD_PROP prop, const CJS_WideStringArray& array)
-{
-    ASSERT(m_pJSDoc != NULL);
+void Field::AddDelay_WideStringArray(enum FIELD_PROP prop,
+                                     const CJS_WideStringArray& array) {
+  ASSERT(m_pJSDoc != NULL);
 
-    CJS_DelayData* pNewData = new CJS_DelayData;
-    pNewData->sFieldName = m_FieldName;
-    pNewData->nControlIndex = m_nFormControlIndex;
-    pNewData->eProp = prop;
-    for (int i=0,sz=array.GetSize(); i<sz; i++)
-        pNewData->widestringarray.Add(array.GetAt(i));
+  CJS_DelayData* pNewData = new CJS_DelayData;
+  pNewData->sFieldName = m_FieldName;
+  pNewData->nControlIndex = m_nFormControlIndex;
+  pNewData->eProp = prop;
+  for (int i = 0, sz = array.GetSize(); i < sz; i++)
+    pNewData->widestringarray.Add(array.GetAt(i));
 
-    m_pJSDoc->AddDelayData(pNewData);
+  m_pJSDoc->AddDelayData(pNewData);
 }
 
-void Field::DoDelay(CPDFSDK_Document* pDocument, CJS_DelayData* pData)
-{
-    ASSERT(pDocument != NULL);
-    ASSERT(pData != NULL);
+void Field::DoDelay(CPDFSDK_Document* pDocument, CJS_DelayData* pData) {
+  ASSERT(pDocument != NULL);
+  ASSERT(pData != NULL);
 
-    switch (pData->eProp)
-    {
+  switch (pData->eProp) {
     case FP_ALIGNMENT:
-        Field::SetAlignment(pDocument, pData->sFieldName, pData->nControlIndex, pData->string);
-        break;
+      Field::SetAlignment(pDocument, pData->sFieldName, pData->nControlIndex,
+                          pData->string);
+      break;
     case FP_BORDERSTYLE:
-        Field::SetBorderStyle(pDocument, pData->sFieldName, pData->nControlIndex, pData->string);
-        break;
+      Field::SetBorderStyle(pDocument, pData->sFieldName, pData->nControlIndex,
+                            pData->string);
+      break;
     case FP_BUTTONALIGNX:
-        Field::SetButtonAlignX(pDocument, pData->sFieldName, pData->nControlIndex, pData->num);
-        break;
+      Field::SetButtonAlignX(pDocument, pData->sFieldName, pData->nControlIndex,
+                             pData->num);
+      break;
     case FP_BUTTONALIGNY:
-        Field::SetButtonAlignY(pDocument, pData->sFieldName, pData->nControlIndex, pData->num);
-        break;
+      Field::SetButtonAlignY(pDocument, pData->sFieldName, pData->nControlIndex,
+                             pData->num);
+      break;
     case FP_BUTTONFITBOUNDS:
-        Field::SetButtonFitBounds(pDocument, pData->sFieldName, pData->nControlIndex, pData->b);
-        break;
+      Field::SetButtonFitBounds(pDocument, pData->sFieldName,
+                                pData->nControlIndex, pData->b);
+      break;
     case FP_BUTTONPOSITION:
-        Field::SetButtonPosition(pDocument, pData->sFieldName, pData->nControlIndex, pData->num);
-        break;
+      Field::SetButtonPosition(pDocument, pData->sFieldName,
+                               pData->nControlIndex, pData->num);
+      break;
     case FP_BUTTONSCALEHOW:
-        Field::SetButtonScaleHow(pDocument, pData->sFieldName, pData->nControlIndex, pData->num);
-        break;
+      Field::SetButtonScaleHow(pDocument, pData->sFieldName,
+                               pData->nControlIndex, pData->num);
+      break;
     case FP_BUTTONSCALEWHEN:
-        Field::SetButtonScaleWhen(pDocument, pData->sFieldName, pData->nControlIndex, pData->num);
-        break;
+      Field::SetButtonScaleWhen(pDocument, pData->sFieldName,
+                                pData->nControlIndex, pData->num);
+      break;
     case FP_CALCORDERINDEX:
-        Field::SetCalcOrderIndex(pDocument, pData->sFieldName, pData->nControlIndex, pData->num);
-        break;
+      Field::SetCalcOrderIndex(pDocument, pData->sFieldName,
+                               pData->nControlIndex, pData->num);
+      break;
     case FP_CHARLIMIT:
-        Field::SetCharLimit(pDocument, pData->sFieldName, pData->nControlIndex, pData->num);
-        break;
+      Field::SetCharLimit(pDocument, pData->sFieldName, pData->nControlIndex,
+                          pData->num);
+      break;
     case FP_COMB:
-        Field::SetComb(pDocument, pData->sFieldName, pData->nControlIndex, pData->b);
-        break;
+      Field::SetComb(pDocument, pData->sFieldName, pData->nControlIndex,
+                     pData->b);
+      break;
     case FP_COMMITONSELCHANGE:
-        Field::SetCommitOnSelChange(pDocument, pData->sFieldName, pData->nControlIndex, pData->b);
-        break;
+      Field::SetCommitOnSelChange(pDocument, pData->sFieldName,
+                                  pData->nControlIndex, pData->b);
+      break;
     case FP_CURRENTVALUEINDICES:
-        Field::SetCurrentValueIndices(pDocument, pData->sFieldName, pData->nControlIndex, pData->wordarray);
-        break;
+      Field::SetCurrentValueIndices(pDocument, pData->sFieldName,
+                                    pData->nControlIndex, pData->wordarray);
+      break;
     case FP_DEFAULTVALUE:
-        Field::SetDefaultValue(pDocument, pData->sFieldName, pData->nControlIndex, pData->widestring);
-        break;
+      Field::SetDefaultValue(pDocument, pData->sFieldName, pData->nControlIndex,
+                             pData->widestring);
+      break;
     case FP_DONOTSCROLL:
-        Field::SetDoNotScroll(pDocument, pData->sFieldName, pData->nControlIndex, pData->b);
-        break;
+      Field::SetDoNotScroll(pDocument, pData->sFieldName, pData->nControlIndex,
+                            pData->b);
+      break;
     case FP_DISPLAY:
-        Field::SetDisplay(pDocument, pData->sFieldName, pData->nControlIndex, pData->num);
-        break;
+      Field::SetDisplay(pDocument, pData->sFieldName, pData->nControlIndex,
+                        pData->num);
+      break;
     case FP_FILLCOLOR:
-        Field::SetFillColor(pDocument, pData->sFieldName, pData->nControlIndex, pData->color);
-        break;
+      Field::SetFillColor(pDocument, pData->sFieldName, pData->nControlIndex,
+                          pData->color);
+      break;
     case FP_HIDDEN:
-        Field::SetHidden(pDocument, pData->sFieldName, pData->nControlIndex, pData->b);
-        break;
+      Field::SetHidden(pDocument, pData->sFieldName, pData->nControlIndex,
+                       pData->b);
+      break;
     case FP_HIGHLIGHT:
-        Field::SetHighlight(pDocument, pData->sFieldName, pData->nControlIndex, pData->string);
-        break;
+      Field::SetHighlight(pDocument, pData->sFieldName, pData->nControlIndex,
+                          pData->string);
+      break;
     case FP_LINEWIDTH:
-        Field::SetLineWidth(pDocument, pData->sFieldName, pData->nControlIndex, pData->num);
-        break;
+      Field::SetLineWidth(pDocument, pData->sFieldName, pData->nControlIndex,
+                          pData->num);
+      break;
     case FP_MULTILINE:
-        Field::SetMultiline(pDocument, pData->sFieldName, pData->nControlIndex, pData->b);
-        break;
+      Field::SetMultiline(pDocument, pData->sFieldName, pData->nControlIndex,
+                          pData->b);
+      break;
     case FP_MULTIPLESELECTION:
-        Field::SetMultipleSelection(pDocument, pData->sFieldName, pData->nControlIndex, pData->b);
-        break;
+      Field::SetMultipleSelection(pDocument, pData->sFieldName,
+                                  pData->nControlIndex, pData->b);
+      break;
     case FP_PASSWORD:
-        Field::SetPassword(pDocument, pData->sFieldName, pData->nControlIndex, pData->b);
-        break;
+      Field::SetPassword(pDocument, pData->sFieldName, pData->nControlIndex,
+                         pData->b);
+      break;
     case FP_RECT:
-        Field::SetRect(pDocument, pData->sFieldName, pData->nControlIndex, pData->rect);
-        break;
+      Field::SetRect(pDocument, pData->sFieldName, pData->nControlIndex,
+                     pData->rect);
+      break;
     case FP_RICHTEXT:
-        Field::SetRichText(pDocument, pData->sFieldName, pData->nControlIndex, pData->b);
-        break;
+      Field::SetRichText(pDocument, pData->sFieldName, pData->nControlIndex,
+                         pData->b);
+      break;
     case FP_RICHVALUE:
-        break;
+      break;
     case FP_ROTATION:
-        Field::SetRotation(pDocument, pData->sFieldName, pData->nControlIndex, pData->num);
-        break;
+      Field::SetRotation(pDocument, pData->sFieldName, pData->nControlIndex,
+                         pData->num);
+      break;
     case FP_STROKECOLOR:
-        Field::SetStrokeColor(pDocument, pData->sFieldName, pData->nControlIndex, pData->color);
-        break;
+      Field::SetStrokeColor(pDocument, pData->sFieldName, pData->nControlIndex,
+                            pData->color);
+      break;
     case FP_STYLE:
-        Field::SetStyle(pDocument, pData->sFieldName, pData->nControlIndex, pData->string);
-        break;
+      Field::SetStyle(pDocument, pData->sFieldName, pData->nControlIndex,
+                      pData->string);
+      break;
     case FP_TEXTCOLOR:
-        Field::SetTextColor(pDocument, pData->sFieldName, pData->nControlIndex, pData->color);
-        break;
+      Field::SetTextColor(pDocument, pData->sFieldName, pData->nControlIndex,
+                          pData->color);
+      break;
     case FP_TEXTFONT:
-        Field::SetTextFont(pDocument, pData->sFieldName, pData->nControlIndex, pData->string);
-        break;
+      Field::SetTextFont(pDocument, pData->sFieldName, pData->nControlIndex,
+                         pData->string);
+      break;
     case FP_TEXTSIZE:
-        Field::SetTextSize(pDocument, pData->sFieldName, pData->nControlIndex, pData->num);
-        break;
+      Field::SetTextSize(pDocument, pData->sFieldName, pData->nControlIndex,
+                         pData->num);
+      break;
     case FP_USERNAME:
-        Field::SetUserName(pDocument, pData->sFieldName, pData->nControlIndex, pData->widestring);
-        break;
+      Field::SetUserName(pDocument, pData->sFieldName, pData->nControlIndex,
+                         pData->widestring);
+      break;
     case FP_VALUE:
-        Field::SetValue(pDocument, pData->sFieldName, pData->nControlIndex, pData->widestringarray);
-        break;
-    }
+      Field::SetValue(pDocument, pData->sFieldName, pData->nControlIndex,
+                      pData->widestringarray);
+      break;
+  }
 }
 
-#define JS_FIELD_MINWIDTH   1
-#define JS_FIELD_MINHEIGHT  1
+#define JS_FIELD_MINWIDTH 1
+#define JS_FIELD_MINHEIGHT 1
 
-void Field::AddField(CPDFSDK_Document* pDocument, int nPageIndex, int nFieldType,
-                     const CFX_WideString& sName, const CPDF_Rect& rcCoords)
-{
-    //Not supported.
+void Field::AddField(CPDFSDK_Document* pDocument,
+                     int nPageIndex,
+                     int nFieldType,
+                     const CFX_WideString& sName,
+                     const CPDF_Rect& rcCoords) {
+  // Not supported.
 }
-
diff --git a/fpdfsdk/src/javascript/Icon.cpp b/fpdfsdk/src/javascript/Icon.cpp
index 6b3e02e1ec..0e96a05e5e 100644
--- a/fpdfsdk/src/javascript/Icon.cpp
+++ b/fpdfsdk/src/javascript/Icon.cpp
@@ -17,51 +17,42 @@ BEGIN_JS_STATIC_CONST(CJS_Icon)
 END_JS_STATIC_CONST()
 
 BEGIN_JS_STATIC_PROP(CJS_Icon)
-	JS_STATIC_PROP_ENTRY(name)
+JS_STATIC_PROP_ENTRY(name)
 END_JS_STATIC_PROP()
 
 BEGIN_JS_STATIC_METHOD(CJS_Icon)
 END_JS_STATIC_METHOD()
 
-IMPLEMENT_JS_CLASS(CJS_Icon,Icon)
+IMPLEMENT_JS_CLASS(CJS_Icon, Icon)
 
-Icon::Icon(CJS_Object* pJSObject) : CJS_EmbedObj(pJSObject),
-	m_pIconStream(NULL),
-	m_swIconName(L"")
-{
-}
-
-Icon::~Icon()
-{
+Icon::Icon(CJS_Object* pJSObject)
+    : CJS_EmbedObj(pJSObject), m_pIconStream(NULL), m_swIconName(L"") {}
 
-}
+Icon::~Icon() {}
 
-void Icon::SetStream(CPDF_Stream* pIconStream)
-{
-	if(pIconStream)
-		m_pIconStream = pIconStream;
+void Icon::SetStream(CPDF_Stream* pIconStream) {
+  if (pIconStream)
+    m_pIconStream = pIconStream;
 }
 
-CPDF_Stream* Icon::GetStream()
-{
-	return m_pIconStream;
+CPDF_Stream* Icon::GetStream() {
+  return m_pIconStream;
 }
 
-void Icon::SetIconName(CFX_WideString name)
-{
-	m_swIconName = name;
+void Icon::SetIconName(CFX_WideString name) {
+  m_swIconName = name;
 }
 
-CFX_WideString Icon::GetIconName()
-{
-	return m_swIconName;
+CFX_WideString Icon::GetIconName() {
+  return m_swIconName;
 }
 
-FX_BOOL Icon::name(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if(!vp.IsGetting())return FALSE;
+FX_BOOL Icon::name(IFXJS_Context* cc,
+                   CJS_PropValue& vp,
+                   CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
 
-	vp << m_swIconName;
-	return TRUE;
+  vp << m_swIconName;
+  return TRUE;
 }
-
diff --git a/fpdfsdk/src/javascript/JS_Context.cpp b/fpdfsdk/src/javascript/JS_Context.cpp
index e789657469..9c142e6b1e 100644
--- a/fpdfsdk/src/javascript/JS_Context.cpp
+++ b/fpdfsdk/src/javascript/JS_Context.cpp
@@ -14,338 +14,346 @@
 
 /* -------------------------- CJS_Context -------------------------- */
 
-CJS_Context::CJS_Context(CJS_Runtime* pRuntime) :
-	m_pRuntime(pRuntime),
-	m_bBusy(FALSE),
-	m_bMsgBoxEnable(TRUE)
-{
-	m_pEventHandler = new CJS_EventHandler(this);
+CJS_Context::CJS_Context(CJS_Runtime* pRuntime)
+    : m_pRuntime(pRuntime), m_bBusy(FALSE), m_bMsgBoxEnable(TRUE) {
+  m_pEventHandler = new CJS_EventHandler(this);
 }
 
-CJS_Context::~CJS_Context(void)
-{
-    delete m_pEventHandler;
+CJS_Context::~CJS_Context(void) {
+  delete m_pEventHandler;
 }
 
-CPDFSDK_Document* CJS_Context::GetReaderDocument()
-{
-	ASSERT(m_pRuntime != NULL);
+CPDFSDK_Document* CJS_Context::GetReaderDocument() {
+  ASSERT(m_pRuntime != NULL);
 
-	return m_pRuntime->GetReaderDocument();
+  return m_pRuntime->GetReaderDocument();
 }
 
-CPDFDoc_Environment* CJS_Context::GetReaderApp()
-{
-	ASSERT(m_pRuntime != NULL);
+CPDFDoc_Environment* CJS_Context::GetReaderApp() {
+  ASSERT(m_pRuntime != NULL);
 
-	return m_pRuntime->GetReaderApp();
+  return m_pRuntime->GetReaderApp();
 }
 
-FX_BOOL CJS_Context::DoJob(int nMode, const CFX_WideString& script, CFX_WideString& info)
-{
-	if (m_bBusy)
-	{
-		info = JSGetStringFromID(this, IDS_STRING_JSBUSY);
-		return FALSE;
-	}
+FX_BOOL CJS_Context::DoJob(int nMode,
+                           const CFX_WideString& script,
+                           CFX_WideString& info) {
+  if (m_bBusy) {
+    info = JSGetStringFromID(this, IDS_STRING_JSBUSY);
+    return FALSE;
+  }
 
-	m_bBusy = TRUE;
+  m_bBusy = TRUE;
 
-	ASSERT(m_pRuntime != NULL);
-	ASSERT(m_pEventHandler != NULL);
-	ASSERT(m_pEventHandler->IsValid());
+  ASSERT(m_pRuntime != NULL);
+  ASSERT(m_pEventHandler != NULL);
+  ASSERT(m_pEventHandler->IsValid());
 
-	if (!m_pRuntime->AddEventToLoop(m_pEventHandler->TargetName(), m_pEventHandler->EventType()))
-	{
-		info = JSGetStringFromID(this, IDS_STRING_JSEVENT);
-		return FALSE;
-	}
+  if (!m_pRuntime->AddEventToLoop(m_pEventHandler->TargetName(),
+                                  m_pEventHandler->EventType())) {
+    info = JSGetStringFromID(this, IDS_STRING_JSEVENT);
+    return FALSE;
+  }
 
-	FXJSErr error ={NULL,NULL, 0};
-	int nRet = 0;
+  FXJSErr error = {NULL, NULL, 0};
+  int nRet = 0;
 
-	if (script.GetLength() > 0)
-	{
-		if (nMode == 0)
-		{
-			nRet = JS_Execute(*m_pRuntime, this, script.c_str(), script.GetLength(), &error);
-		}
-		else
-		{
-			nRet = JS_Parse(*m_pRuntime, this, script.c_str(), script.GetLength(), &error);
-		}
-	}
+  if (script.GetLength() > 0) {
+    if (nMode == 0) {
+      nRet = JS_Execute(*m_pRuntime, this, script.c_str(), script.GetLength(),
+                        &error);
+    } else {
+      nRet = JS_Parse(*m_pRuntime, this, script.c_str(), script.GetLength(),
+                      &error);
+    }
+  }
 
-	if (nRet < 0)
-	{
-		CFX_WideString sLine;
-		sLine.Format(L"[ Line: %05d { %s } ] : %s",error.linnum-1,error.srcline,error.message);
+  if (nRet < 0) {
+    CFX_WideString sLine;
+    sLine.Format(L"[ Line: %05d { %s } ] : %s", error.linnum - 1, error.srcline,
+                 error.message);
 
-//			TRACE(L"/* -------------- JS Error -------------- */\n");
-//			TRACE(sLine);
-//			TRACE(L"\n");
-		//CFX_ByteString sTemp = CFX_ByteString::FromUnicode(error.message);
-		info += sLine;
-	}
-	else
-	{
-		info = JSGetStringFromID(this, IDS_STRING_RUN);
-	}
+    //			TRACE(L"/* -------------- JS Error --------------
+    //*/\n");
+    //			TRACE(sLine);
+    //			TRACE(L"\n");
+    // CFX_ByteString sTemp = CFX_ByteString::FromUnicode(error.message);
+    info += sLine;
+  } else {
+    info = JSGetStringFromID(this, IDS_STRING_RUN);
+  }
 
-	m_pRuntime->RemoveEventInLoop(m_pEventHandler->TargetName(), m_pEventHandler->EventType());
+  m_pRuntime->RemoveEventInLoop(m_pEventHandler->TargetName(),
+                                m_pEventHandler->EventType());
 
-	m_pEventHandler->Destroy();
-	m_bBusy = FALSE;
+  m_pEventHandler->Destroy();
+  m_bBusy = FALSE;
 
-	return nRet >= 0;
+  return nRet >= 0;
 }
 
-FX_BOOL CJS_Context::RunScript(const CFX_WideString& script, CFX_WideString& info)
-{
-	v8::Isolate::Scope isolate_scope(m_pRuntime->GetIsolate());
-	v8::Locker locker(m_pRuntime->GetIsolate());
-	v8::HandleScope handle_scope(m_pRuntime->GetIsolate());
-	v8::Local<v8::Context> context = m_pRuntime->NewJSContext();
-	v8::Context::Scope context_scope(context);
+FX_BOOL CJS_Context::RunScript(const CFX_WideString& script,
+                               CFX_WideString& info) {
+  v8::Isolate::Scope isolate_scope(m_pRuntime->GetIsolate());
+  v8::Locker locker(m_pRuntime->GetIsolate());
+  v8::HandleScope handle_scope(m_pRuntime->GetIsolate());
+  v8::Local<v8::Context> context = m_pRuntime->NewJSContext();
+  v8::Context::Scope context_scope(context);
 
-	return DoJob(0, script, info);
+  return DoJob(0, script, info);
 }
 
-FX_BOOL CJS_Context::Compile(const CFX_WideString& script, CFX_WideString& info)
-{
-	v8::Isolate::Scope isolate_scope(m_pRuntime->GetIsolate());
-	v8::HandleScope handle_scope(m_pRuntime->GetIsolate());
-	v8::Local<v8::Context> context = m_pRuntime->NewJSContext();
-	v8::Context::Scope context_scope(context);
+FX_BOOL CJS_Context::Compile(const CFX_WideString& script,
+                             CFX_WideString& info) {
+  v8::Isolate::Scope isolate_scope(m_pRuntime->GetIsolate());
+  v8::HandleScope handle_scope(m_pRuntime->GetIsolate());
+  v8::Local<v8::Context> context = m_pRuntime->NewJSContext();
+  v8::Context::Scope context_scope(context);
 
-	return DoJob(1, script, info);
+  return DoJob(1, script, info);
 }
 
-void CJS_Context::OnApp_Init()
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnApp_Init();
+void CJS_Context::OnApp_Init() {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnApp_Init();
 }
 
-void CJS_Context::OnDoc_Open(CPDFSDK_Document* pDoc, const CFX_WideString &strTargetName)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnDoc_Open(pDoc,strTargetName);
+void CJS_Context::OnDoc_Open(CPDFSDK_Document* pDoc,
+                             const CFX_WideString& strTargetName) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnDoc_Open(pDoc, strTargetName);
 }
 
-void CJS_Context::OnDoc_WillPrint(CPDFSDK_Document* pDoc)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnDoc_WillPrint(pDoc);
+void CJS_Context::OnDoc_WillPrint(CPDFSDK_Document* pDoc) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnDoc_WillPrint(pDoc);
 }
 
-void CJS_Context::OnDoc_DidPrint(CPDFSDK_Document* pDoc)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnDoc_DidPrint(pDoc);
+void CJS_Context::OnDoc_DidPrint(CPDFSDK_Document* pDoc) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnDoc_DidPrint(pDoc);
 }
 
-void CJS_Context::OnDoc_WillSave(CPDFSDK_Document* pDoc)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnDoc_WillSave(pDoc);
+void CJS_Context::OnDoc_WillSave(CPDFSDK_Document* pDoc) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnDoc_WillSave(pDoc);
 }
 
-void CJS_Context::OnDoc_DidSave(CPDFSDK_Document* pDoc)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnDoc_DidSave(pDoc);
+void CJS_Context::OnDoc_DidSave(CPDFSDK_Document* pDoc) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnDoc_DidSave(pDoc);
 }
 
-void CJS_Context::OnDoc_WillClose(CPDFSDK_Document* pDoc)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnDoc_WillClose(pDoc);
+void CJS_Context::OnDoc_WillClose(CPDFSDK_Document* pDoc) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnDoc_WillClose(pDoc);
 }
 
-void CJS_Context::OnPage_Open(CPDFSDK_Document* pTarget)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnPage_Open(pTarget);
+void CJS_Context::OnPage_Open(CPDFSDK_Document* pTarget) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnPage_Open(pTarget);
 }
 
-void CJS_Context::OnPage_Close(CPDFSDK_Document* pTarget)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnPage_Close(pTarget);
+void CJS_Context::OnPage_Close(CPDFSDK_Document* pTarget) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnPage_Close(pTarget);
 }
 
-void CJS_Context::OnPage_InView(CPDFSDK_Document* pTarget)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnPage_InView(pTarget);
+void CJS_Context::OnPage_InView(CPDFSDK_Document* pTarget) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnPage_InView(pTarget);
 }
 
-void CJS_Context::OnPage_OutView(CPDFSDK_Document* pTarget)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnPage_OutView(pTarget);
+void CJS_Context::OnPage_OutView(CPDFSDK_Document* pTarget) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnPage_OutView(pTarget);
 }
 
-void CJS_Context::OnField_MouseDown(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField *pTarget)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnField_MouseDown(bModifier, bShift, pTarget);
+void CJS_Context::OnField_MouseDown(FX_BOOL bModifier,
+                                    FX_BOOL bShift,
+                                    CPDF_FormField* pTarget) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnField_MouseDown(bModifier, bShift, pTarget);
 }
 
-void CJS_Context::OnField_MouseEnter(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField *pTarget)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnField_MouseEnter(bModifier, bShift, pTarget);
+void CJS_Context::OnField_MouseEnter(FX_BOOL bModifier,
+                                     FX_BOOL bShift,
+                                     CPDF_FormField* pTarget) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnField_MouseEnter(bModifier, bShift, pTarget);
 }
 
-void CJS_Context::OnField_MouseExit(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField *pTarget)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnField_MouseExit(bModifier, bShift, pTarget);
+void CJS_Context::OnField_MouseExit(FX_BOOL bModifier,
+                                    FX_BOOL bShift,
+                                    CPDF_FormField* pTarget) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnField_MouseExit(bModifier, bShift, pTarget);
 }
 
-void CJS_Context::OnField_MouseUp(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField *pTarget)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnField_MouseUp(bModifier, bShift, pTarget);
+void CJS_Context::OnField_MouseUp(FX_BOOL bModifier,
+                                  FX_BOOL bShift,
+                                  CPDF_FormField* pTarget) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnField_MouseUp(bModifier, bShift, pTarget);
 }
 
-void CJS_Context::OnField_Focus(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget, const CFX_WideString& Value)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnField_Focus(bModifier, bShift, pTarget, Value);
+void CJS_Context::OnField_Focus(FX_BOOL bModifier,
+                                FX_BOOL bShift,
+                                CPDF_FormField* pTarget,
+                                const CFX_WideString& Value) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnField_Focus(bModifier, bShift, pTarget, Value);
 }
 
-void CJS_Context::OnField_Blur(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget, const CFX_WideString& Value)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnField_Blur(bModifier, bShift, pTarget, Value);
+void CJS_Context::OnField_Blur(FX_BOOL bModifier,
+                               FX_BOOL bShift,
+                               CPDF_FormField* pTarget,
+                               const CFX_WideString& Value) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnField_Blur(bModifier, bShift, pTarget, Value);
 }
 
-void CJS_Context::OnField_Calculate(CPDF_FormField* pSource, CPDF_FormField* pTarget, CFX_WideString& Value, FX_BOOL& bRc)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnField_Calculate(pSource, pTarget, Value, bRc);
+void CJS_Context::OnField_Calculate(CPDF_FormField* pSource,
+                                    CPDF_FormField* pTarget,
+                                    CFX_WideString& Value,
+                                    FX_BOOL& bRc) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnField_Calculate(pSource, pTarget, Value, bRc);
 }
 
-void CJS_Context::OnField_Format(CPDF_FormField* pTarget, CFX_WideString& Value, FX_BOOL bWillCommit)
-{
-    m_pEventHandler->OnField_Format(pTarget, Value, bWillCommit);
+void CJS_Context::OnField_Format(CPDF_FormField* pTarget,
+                                 CFX_WideString& Value,
+                                 FX_BOOL bWillCommit) {
+  m_pEventHandler->OnField_Format(pTarget, Value, bWillCommit);
 }
 
-
-void CJS_Context::OnField_Keystroke(CFX_WideString& strChange, const CFX_WideString& strChangeEx,
-									FX_BOOL bKeyDown, FX_BOOL bModifier, int &nSelEnd,int &nSelStart,
-									FX_BOOL bShift, CPDF_FormField* pTarget, CFX_WideString& Value,
-									FX_BOOL bWillCommit, FX_BOOL bFieldFull, FX_BOOL& bRc)
-{
-    m_pEventHandler->OnField_Keystroke(
-        strChange, strChangeEx, bKeyDown, bModifier, nSelEnd, nSelStart,
-        bShift, pTarget, Value, bWillCommit, bFieldFull, bRc);
+void CJS_Context::OnField_Keystroke(CFX_WideString& strChange,
+                                    const CFX_WideString& strChangeEx,
+                                    FX_BOOL bKeyDown,
+                                    FX_BOOL bModifier,
+                                    int& nSelEnd,
+                                    int& nSelStart,
+                                    FX_BOOL bShift,
+                                    CPDF_FormField* pTarget,
+                                    CFX_WideString& Value,
+                                    FX_BOOL bWillCommit,
+                                    FX_BOOL bFieldFull,
+                                    FX_BOOL& bRc) {
+  m_pEventHandler->OnField_Keystroke(
+      strChange, strChangeEx, bKeyDown, bModifier, nSelEnd, nSelStart, bShift,
+      pTarget, Value, bWillCommit, bFieldFull, bRc);
 }
 
-void CJS_Context::OnField_Validate(CFX_WideString& strChange,const CFX_WideString& strChangeEx,
-								   FX_BOOL bKeyDown, FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget,
-								   CFX_WideString& Value, FX_BOOL& bRc)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnField_Validate(strChange, strChangeEx, bKeyDown, bModifier, bShift, pTarget, Value, bRc);
+void CJS_Context::OnField_Validate(CFX_WideString& strChange,
+                                   const CFX_WideString& strChangeEx,
+                                   FX_BOOL bKeyDown,
+                                   FX_BOOL bModifier,
+                                   FX_BOOL bShift,
+                                   CPDF_FormField* pTarget,
+                                   CFX_WideString& Value,
+                                   FX_BOOL& bRc) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnField_Validate(strChange, strChangeEx, bKeyDown, bModifier,
+                                    bShift, pTarget, Value, bRc);
 }
 
-void CJS_Context::OnScreen_Focus(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnScreen_Focus(bModifier, bShift, pScreen);
+void CJS_Context::OnScreen_Focus(FX_BOOL bModifier,
+                                 FX_BOOL bShift,
+                                 CPDFSDK_Annot* pScreen) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnScreen_Focus(bModifier, bShift, pScreen);
 }
 
-void CJS_Context::OnScreen_Blur(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnScreen_Blur(bModifier, bShift, pScreen);
+void CJS_Context::OnScreen_Blur(FX_BOOL bModifier,
+                                FX_BOOL bShift,
+                                CPDFSDK_Annot* pScreen) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnScreen_Blur(bModifier, bShift, pScreen);
 }
 
-void CJS_Context::OnScreen_Open(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnScreen_Open(bModifier, bShift, pScreen);
+void CJS_Context::OnScreen_Open(FX_BOOL bModifier,
+                                FX_BOOL bShift,
+                                CPDFSDK_Annot* pScreen) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnScreen_Open(bModifier, bShift, pScreen);
 }
 
-void CJS_Context::OnScreen_Close(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnScreen_Close(bModifier, bShift, pScreen);
+void CJS_Context::OnScreen_Close(FX_BOOL bModifier,
+                                 FX_BOOL bShift,
+                                 CPDFSDK_Annot* pScreen) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnScreen_Close(bModifier, bShift, pScreen);
 }
 
-void CJS_Context::OnScreen_MouseDown(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnScreen_MouseDown(bModifier, bShift, pScreen);
+void CJS_Context::OnScreen_MouseDown(FX_BOOL bModifier,
+                                     FX_BOOL bShift,
+                                     CPDFSDK_Annot* pScreen) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnScreen_MouseDown(bModifier, bShift, pScreen);
 }
 
-void CJS_Context::OnScreen_MouseUp(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnScreen_MouseUp(bModifier, bShift, pScreen);
+void CJS_Context::OnScreen_MouseUp(FX_BOOL bModifier,
+                                   FX_BOOL bShift,
+                                   CPDFSDK_Annot* pScreen) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnScreen_MouseUp(bModifier, bShift, pScreen);
 }
 
-void CJS_Context::OnScreen_MouseEnter(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnScreen_MouseEnter(bModifier, bShift, pScreen);
+void CJS_Context::OnScreen_MouseEnter(FX_BOOL bModifier,
+                                      FX_BOOL bShift,
+                                      CPDFSDK_Annot* pScreen) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnScreen_MouseEnter(bModifier, bShift, pScreen);
 }
 
-void CJS_Context::OnScreen_MouseExit(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnScreen_MouseExit(bModifier, bShift, pScreen);
+void CJS_Context::OnScreen_MouseExit(FX_BOOL bModifier,
+                                     FX_BOOL bShift,
+                                     CPDFSDK_Annot* pScreen) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnScreen_MouseExit(bModifier, bShift, pScreen);
 }
 
-void CJS_Context::OnScreen_InView(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnScreen_InView(bModifier, bShift, pScreen);
+void CJS_Context::OnScreen_InView(FX_BOOL bModifier,
+                                  FX_BOOL bShift,
+                                  CPDFSDK_Annot* pScreen) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnScreen_InView(bModifier, bShift, pScreen);
 }
 
-void CJS_Context::OnScreen_OutView(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnScreen_OutView(bModifier, bShift, pScreen);
+void CJS_Context::OnScreen_OutView(FX_BOOL bModifier,
+                                   FX_BOOL bShift,
+                                   CPDFSDK_Annot* pScreen) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnScreen_OutView(bModifier, bShift, pScreen);
 }
 
-void CJS_Context::OnBookmark_MouseUp(CPDF_Bookmark* pBookMark)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnBookmark_MouseUp(pBookMark);
+void CJS_Context::OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnBookmark_MouseUp(pBookMark);
 }
 
-void CJS_Context::OnLink_MouseUp(CPDFSDK_Document* pTarget)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnLink_MouseUp(pTarget);
+void CJS_Context::OnLink_MouseUp(CPDFSDK_Document* pTarget) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnLink_MouseUp(pTarget);
 }
 
-void CJS_Context::OnConsole_Exec()
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnConsole_Exec();
+void CJS_Context::OnConsole_Exec() {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnConsole_Exec();
 }
 
-void CJS_Context::OnExternal_Exec()
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnExternal_Exec();
+void CJS_Context::OnExternal_Exec() {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnExternal_Exec();
 }
 
-void CJS_Context::OnBatchExec(CPDFSDK_Document* pTarget)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnBatchExec(pTarget);
+void CJS_Context::OnBatchExec(CPDFSDK_Document* pTarget) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnBatchExec(pTarget);
 }
 
-void CJS_Context::OnMenu_Exec(CPDFSDK_Document* pTarget,const CFX_WideString& strTargetName)
-{
-	ASSERT(m_pEventHandler != NULL);
-	m_pEventHandler->OnMenu_Exec(pTarget, strTargetName);
+void CJS_Context::OnMenu_Exec(CPDFSDK_Document* pTarget,
+                              const CFX_WideString& strTargetName) {
+  ASSERT(m_pEventHandler != NULL);
+  m_pEventHandler->OnMenu_Exec(pTarget, strTargetName);
 }
-
diff --git a/fpdfsdk/src/javascript/JS_EventHandler.cpp b/fpdfsdk/src/javascript/JS_EventHandler.cpp
index 1769e3053f..1eee92ddc1 100644
--- a/fpdfsdk/src/javascript/JS_EventHandler.cpp
+++ b/fpdfsdk/src/javascript/JS_EventHandler.cpp
@@ -17,511 +17,536 @@
 
 /* ---------------------------- CJS_EventHandler ---------------------------- */
 
-CJS_EventHandler::CJS_EventHandler(CJS_Context * pContext)   :
-    m_pJSContext(pContext),
-    m_eEventType(JET_UNKNOWN),
-    m_bValid(FALSE),
-    m_pWideStrChange(NULL),
-    m_nCommitKey(-1),
-    m_bKeyDown(FALSE),
-    m_bModifier(FALSE),
-    m_bShift(FALSE),
-    m_pISelEnd(NULL),
-    m_nSelEndDu(0),
-    m_pISelStart(NULL),
-    m_nSelStartDu(0),
-    m_bWillCommit(FALSE),
-    m_pValue(NULL),
-    m_bFieldFull(FALSE),
-    m_pbRc(NULL),
-    m_bRcDu(FALSE),
-    m_pSourceDoc(NULL),
-    m_pTargetBookMark(NULL),
-    m_pTargetDoc(NULL),
-    m_pTargetAnnot(NULL)
-{
-}
+CJS_EventHandler::CJS_EventHandler(CJS_Context* pContext)
+    : m_pJSContext(pContext),
+      m_eEventType(JET_UNKNOWN),
+      m_bValid(FALSE),
+      m_pWideStrChange(NULL),
+      m_nCommitKey(-1),
+      m_bKeyDown(FALSE),
+      m_bModifier(FALSE),
+      m_bShift(FALSE),
+      m_pISelEnd(NULL),
+      m_nSelEndDu(0),
+      m_pISelStart(NULL),
+      m_nSelStartDu(0),
+      m_bWillCommit(FALSE),
+      m_pValue(NULL),
+      m_bFieldFull(FALSE),
+      m_pbRc(NULL),
+      m_bRcDu(FALSE),
+      m_pSourceDoc(NULL),
+      m_pTargetBookMark(NULL),
+      m_pTargetDoc(NULL),
+      m_pTargetAnnot(NULL) {}
 
-CJS_EventHandler::~CJS_EventHandler()
-{
-}
+CJS_EventHandler::~CJS_EventHandler() {}
 
-void CJS_EventHandler::OnApp_Init()
-{
-    Initial(JET_APP_INIT);
+void CJS_EventHandler::OnApp_Init() {
+  Initial(JET_APP_INIT);
 }
 
-void CJS_EventHandler::OnDoc_Open(CPDFSDK_Document* pDoc, const CFX_WideString& strTargetName)
-{
-    Initial(JET_DOC_OPEN);
+void CJS_EventHandler::OnDoc_Open(CPDFSDK_Document* pDoc,
+                                  const CFX_WideString& strTargetName) {
+  Initial(JET_DOC_OPEN);
 
-    m_pTargetDoc = pDoc;
-    m_strTargetName = strTargetName;
+  m_pTargetDoc = pDoc;
+  m_strTargetName = strTargetName;
 }
 
-void CJS_EventHandler::OnDoc_WillPrint(CPDFSDK_Document* pDoc)
-{
-    Initial(JET_DOC_WILLPRINT);
+void CJS_EventHandler::OnDoc_WillPrint(CPDFSDK_Document* pDoc) {
+  Initial(JET_DOC_WILLPRINT);
 
-    m_pTargetDoc = pDoc;
+  m_pTargetDoc = pDoc;
 }
 
-void CJS_EventHandler::OnDoc_DidPrint(CPDFSDK_Document* pDoc)
-{
-    Initial(JET_DOC_DIDPRINT);
+void CJS_EventHandler::OnDoc_DidPrint(CPDFSDK_Document* pDoc) {
+  Initial(JET_DOC_DIDPRINT);
 
-    m_pTargetDoc = pDoc;
+  m_pTargetDoc = pDoc;
 }
 
-void CJS_EventHandler::OnDoc_WillSave(CPDFSDK_Document* pDoc)
-{
-    Initial(JET_DOC_WILLSAVE);
-    m_pTargetDoc = pDoc;
+void CJS_EventHandler::OnDoc_WillSave(CPDFSDK_Document* pDoc) {
+  Initial(JET_DOC_WILLSAVE);
+  m_pTargetDoc = pDoc;
 }
 
-void CJS_EventHandler::OnDoc_DidSave(CPDFSDK_Document* pDoc)
-{
-    Initial(JET_DOC_DIDSAVE);
+void CJS_EventHandler::OnDoc_DidSave(CPDFSDK_Document* pDoc) {
+  Initial(JET_DOC_DIDSAVE);
 
-    m_pTargetDoc = pDoc;
+  m_pTargetDoc = pDoc;
 }
 
-void CJS_EventHandler::OnDoc_WillClose(CPDFSDK_Document* pDoc)
-{
-    Initial(JET_DOC_WILLCLOSE);
+void CJS_EventHandler::OnDoc_WillClose(CPDFSDK_Document* pDoc) {
+  Initial(JET_DOC_WILLCLOSE);
 
-    m_pTargetDoc = pDoc;
+  m_pTargetDoc = pDoc;
 }
 
-void CJS_EventHandler::OnPage_Open(CPDFSDK_Document* pDoc)
-{
-    Initial(JET_PAGE_OPEN);
+void CJS_EventHandler::OnPage_Open(CPDFSDK_Document* pDoc) {
+  Initial(JET_PAGE_OPEN);
 
-    m_pTargetDoc = pDoc;
+  m_pTargetDoc = pDoc;
 }
 
-void CJS_EventHandler::OnPage_Close(CPDFSDK_Document* pDoc)
-{
-    Initial(JET_PAGE_CLOSE);
+void CJS_EventHandler::OnPage_Close(CPDFSDK_Document* pDoc) {
+  Initial(JET_PAGE_CLOSE);
 
-    m_pTargetDoc = pDoc;
+  m_pTargetDoc = pDoc;
 }
 
-void CJS_EventHandler::OnPage_InView(CPDFSDK_Document* pDoc)
-{
-    Initial(JET_PAGE_INVIEW);
+void CJS_EventHandler::OnPage_InView(CPDFSDK_Document* pDoc) {
+  Initial(JET_PAGE_INVIEW);
 
-    m_pTargetDoc = pDoc;
+  m_pTargetDoc = pDoc;
 }
 
-void CJS_EventHandler::OnPage_OutView(CPDFSDK_Document* pDoc)
-{
-    Initial(JET_PAGE_OUTVIEW);
+void CJS_EventHandler::OnPage_OutView(CPDFSDK_Document* pDoc) {
+  Initial(JET_PAGE_OUTVIEW);
 
-    m_pTargetDoc = pDoc;
+  m_pTargetDoc = pDoc;
 }
 
-void CJS_EventHandler::OnField_MouseEnter(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget)
-{
-    Initial(JET_FIELD_MOUSEENTER);
+void CJS_EventHandler::OnField_MouseEnter(FX_BOOL bModifier,
+                                          FX_BOOL bShift,
+                                          CPDF_FormField* pTarget) {
+  Initial(JET_FIELD_MOUSEENTER);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
 
-    ASSERT(pTarget != NULL);
-    m_strTargetName = pTarget->GetFullName();
+  ASSERT(pTarget != NULL);
+  m_strTargetName = pTarget->GetFullName();
 }
 
-void CJS_EventHandler::OnField_MouseExit(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget)
-{
-    Initial(JET_FIELD_MOUSEEXIT);
+void CJS_EventHandler::OnField_MouseExit(FX_BOOL bModifier,
+                                         FX_BOOL bShift,
+                                         CPDF_FormField* pTarget) {
+  Initial(JET_FIELD_MOUSEEXIT);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    ASSERT(pTarget != NULL);
-    m_strTargetName = pTarget->GetFullName();
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  ASSERT(pTarget != NULL);
+  m_strTargetName = pTarget->GetFullName();
 }
 
-void CJS_EventHandler::OnField_MouseDown(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget)
-{
-    Initial(JET_FIELD_MOUSEDOWN);
-    m_eEventType = JET_FIELD_MOUSEDOWN;
+void CJS_EventHandler::OnField_MouseDown(FX_BOOL bModifier,
+                                         FX_BOOL bShift,
+                                         CPDF_FormField* pTarget) {
+  Initial(JET_FIELD_MOUSEDOWN);
+  m_eEventType = JET_FIELD_MOUSEDOWN;
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    ASSERT(pTarget != NULL);
-    m_strTargetName = pTarget->GetFullName();
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  ASSERT(pTarget != NULL);
+  m_strTargetName = pTarget->GetFullName();
 }
 
-void CJS_EventHandler::OnField_MouseUp(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget)
-{
-    Initial(JET_FIELD_MOUSEUP);
+void CJS_EventHandler::OnField_MouseUp(FX_BOOL bModifier,
+                                       FX_BOOL bShift,
+                                       CPDF_FormField* pTarget) {
+  Initial(JET_FIELD_MOUSEUP);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    ASSERT(pTarget != NULL);
-    m_strTargetName = pTarget->GetFullName();
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  ASSERT(pTarget != NULL);
+  m_strTargetName = pTarget->GetFullName();
 }
 
-void CJS_EventHandler::OnField_Focus(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget,
-                                     const CFX_WideString& Value)
-{
-    Initial(JET_FIELD_FOCUS);
+void CJS_EventHandler::OnField_Focus(FX_BOOL bModifier,
+                                     FX_BOOL bShift,
+                                     CPDF_FormField* pTarget,
+                                     const CFX_WideString& Value) {
+  Initial(JET_FIELD_FOCUS);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    ASSERT(pTarget != NULL);
-    m_strTargetName = pTarget->GetFullName();
-    m_pValue = (CFX_WideString*)&Value;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  ASSERT(pTarget != NULL);
+  m_strTargetName = pTarget->GetFullName();
+  m_pValue = (CFX_WideString*)&Value;
 }
 
-void CJS_EventHandler::OnField_Blur(FX_BOOL bModifier, FX_BOOL bShift, CPDF_FormField* pTarget,
-                                    const CFX_WideString& Value)
-{
-    Initial(JET_FIELD_BLUR);
+void CJS_EventHandler::OnField_Blur(FX_BOOL bModifier,
+                                    FX_BOOL bShift,
+                                    CPDF_FormField* pTarget,
+                                    const CFX_WideString& Value) {
+  Initial(JET_FIELD_BLUR);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    ASSERT(pTarget != NULL);
-    m_strTargetName = pTarget->GetFullName();
-    m_pValue = (CFX_WideString*)&Value;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  ASSERT(pTarget != NULL);
+  m_strTargetName = pTarget->GetFullName();
+  m_pValue = (CFX_WideString*)&Value;
 }
 
-void CJS_EventHandler::OnField_Keystroke(CFX_WideString &strChange,
-                                         const CFX_WideString& strChangeEx, FX_BOOL KeyDown,
-                                         FX_BOOL bModifier, int& nSelEnd, int& nSelStart,
-                                         FX_BOOL bShift, CPDF_FormField* pTarget,
-                                         CFX_WideString& Value, FX_BOOL bWillCommit,
-                                          FX_BOOL bFieldFull, FX_BOOL& bRc)
-{
-    Initial(JET_FIELD_KEYSTROKE);
-
-    m_nCommitKey = 0;
-    m_pWideStrChange = &strChange;
-    m_WideStrChangeEx = strChangeEx;
-    m_bKeyDown = KeyDown;
-    m_bModifier = bModifier;
-    m_pISelEnd = &nSelEnd;
-    m_pISelStart = &nSelStart;
-    m_bShift = bShift;
-    ASSERT(pTarget != NULL);
-    m_strTargetName = pTarget->GetFullName();
-    m_pValue = &Value;
-    m_bWillCommit = bWillCommit;
-    m_pbRc = &bRc;
-    m_bFieldFull = bFieldFull;
-}
-
-void CJS_EventHandler::OnField_Validate(CFX_WideString& strChange, const CFX_WideString& strChangeEx,
-                                        FX_BOOL bKeyDown, FX_BOOL bModifier, FX_BOOL bShift,
-                                        CPDF_FormField* pTarget, CFX_WideString& Value, FX_BOOL& bRc)
-{
-    Initial(JET_FIELD_VALIDATE);
-
-    m_pWideStrChange = &strChange;
-    m_WideStrChangeEx = strChangeEx;
-    m_bKeyDown = bKeyDown;
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    ASSERT(pTarget != NULL);
-    m_strTargetName = pTarget->GetFullName();
-    m_pValue = &Value;
-    m_pbRc = &bRc;
-}
-
-void CJS_EventHandler::OnField_Calculate(CPDF_FormField* pSource, CPDF_FormField* pTarget,
-                                         CFX_WideString& Value, FX_BOOL& bRc)
-{
-    Initial(JET_FIELD_CALCULATE);
-
-    if (pSource)
-        m_strSourceName = pSource->GetFullName();
-    ASSERT(pTarget != NULL);
-    m_strTargetName = pTarget->GetFullName();
-    m_pValue = &Value;
-    m_pbRc = &bRc;
+void CJS_EventHandler::OnField_Keystroke(CFX_WideString& strChange,
+                                         const CFX_WideString& strChangeEx,
+                                         FX_BOOL KeyDown,
+                                         FX_BOOL bModifier,
+                                         int& nSelEnd,
+                                         int& nSelStart,
+                                         FX_BOOL bShift,
+                                         CPDF_FormField* pTarget,
+                                         CFX_WideString& Value,
+                                         FX_BOOL bWillCommit,
+                                         FX_BOOL bFieldFull,
+                                         FX_BOOL& bRc) {
+  Initial(JET_FIELD_KEYSTROKE);
+
+  m_nCommitKey = 0;
+  m_pWideStrChange = &strChange;
+  m_WideStrChangeEx = strChangeEx;
+  m_bKeyDown = KeyDown;
+  m_bModifier = bModifier;
+  m_pISelEnd = &nSelEnd;
+  m_pISelStart = &nSelStart;
+  m_bShift = bShift;
+  ASSERT(pTarget != NULL);
+  m_strTargetName = pTarget->GetFullName();
+  m_pValue = &Value;
+  m_bWillCommit = bWillCommit;
+  m_pbRc = &bRc;
+  m_bFieldFull = bFieldFull;
+}
+
+void CJS_EventHandler::OnField_Validate(CFX_WideString& strChange,
+                                        const CFX_WideString& strChangeEx,
+                                        FX_BOOL bKeyDown,
+                                        FX_BOOL bModifier,
+                                        FX_BOOL bShift,
+                                        CPDF_FormField* pTarget,
+                                        CFX_WideString& Value,
+                                        FX_BOOL& bRc) {
+  Initial(JET_FIELD_VALIDATE);
+
+  m_pWideStrChange = &strChange;
+  m_WideStrChangeEx = strChangeEx;
+  m_bKeyDown = bKeyDown;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  ASSERT(pTarget != NULL);
+  m_strTargetName = pTarget->GetFullName();
+  m_pValue = &Value;
+  m_pbRc = &bRc;
+}
+
+void CJS_EventHandler::OnField_Calculate(CPDF_FormField* pSource,
+                                         CPDF_FormField* pTarget,
+                                         CFX_WideString& Value,
+                                         FX_BOOL& bRc) {
+  Initial(JET_FIELD_CALCULATE);
+
+  if (pSource)
+    m_strSourceName = pSource->GetFullName();
+  ASSERT(pTarget != NULL);
+  m_strTargetName = pTarget->GetFullName();
+  m_pValue = &Value;
+  m_pbRc = &bRc;
 }
 
 void CJS_EventHandler::OnField_Format(CPDF_FormField* pTarget,
                                       CFX_WideString& Value,
-                                      FX_BOOL bWillCommit)
-{
-    Initial(JET_FIELD_FORMAT);
+                                      FX_BOOL bWillCommit) {
+  Initial(JET_FIELD_FORMAT);
 
-    m_nCommitKey = 0;
-    ASSERT(pTarget != NULL);
-    m_strTargetName = pTarget->GetFullName();
-    m_pValue = &Value;
-    m_bWillCommit = bWillCommit;
+  m_nCommitKey = 0;
+  ASSERT(pTarget != NULL);
+  m_strTargetName = pTarget->GetFullName();
+  m_pValue = &Value;
+  m_bWillCommit = bWillCommit;
 }
 
-void CJS_EventHandler::OnScreen_Focus(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-    Initial(JET_SCREEN_FOCUS);
+void CJS_EventHandler::OnScreen_Focus(FX_BOOL bModifier,
+                                      FX_BOOL bShift,
+                                      CPDFSDK_Annot* pScreen) {
+  Initial(JET_SCREEN_FOCUS);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    m_pTargetAnnot = pScreen;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  m_pTargetAnnot = pScreen;
 }
 
-void CJS_EventHandler::OnScreen_Blur(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-    Initial(JET_SCREEN_BLUR);
+void CJS_EventHandler::OnScreen_Blur(FX_BOOL bModifier,
+                                     FX_BOOL bShift,
+                                     CPDFSDK_Annot* pScreen) {
+  Initial(JET_SCREEN_BLUR);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    m_pTargetAnnot = pScreen;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  m_pTargetAnnot = pScreen;
 }
 
-void CJS_EventHandler::OnScreen_Open(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-    Initial(JET_SCREEN_OPEN);
+void CJS_EventHandler::OnScreen_Open(FX_BOOL bModifier,
+                                     FX_BOOL bShift,
+                                     CPDFSDK_Annot* pScreen) {
+  Initial(JET_SCREEN_OPEN);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    m_pTargetAnnot = pScreen;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  m_pTargetAnnot = pScreen;
 }
 
-void CJS_EventHandler::OnScreen_Close(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-    Initial(JET_SCREEN_CLOSE);
+void CJS_EventHandler::OnScreen_Close(FX_BOOL bModifier,
+                                      FX_BOOL bShift,
+                                      CPDFSDK_Annot* pScreen) {
+  Initial(JET_SCREEN_CLOSE);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    m_pTargetAnnot = pScreen;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  m_pTargetAnnot = pScreen;
 }
 
-void CJS_EventHandler::OnScreen_MouseDown(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-    Initial(JET_SCREEN_MOUSEDOWN);
+void CJS_EventHandler::OnScreen_MouseDown(FX_BOOL bModifier,
+                                          FX_BOOL bShift,
+                                          CPDFSDK_Annot* pScreen) {
+  Initial(JET_SCREEN_MOUSEDOWN);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    m_pTargetAnnot = pScreen;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  m_pTargetAnnot = pScreen;
 }
 
-void CJS_EventHandler::OnScreen_MouseUp(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-    Initial(JET_SCREEN_MOUSEUP);
+void CJS_EventHandler::OnScreen_MouseUp(FX_BOOL bModifier,
+                                        FX_BOOL bShift,
+                                        CPDFSDK_Annot* pScreen) {
+  Initial(JET_SCREEN_MOUSEUP);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    m_pTargetAnnot = pScreen;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  m_pTargetAnnot = pScreen;
 }
 
-void CJS_EventHandler::OnScreen_MouseEnter(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-    Initial(JET_SCREEN_MOUSEENTER);
+void CJS_EventHandler::OnScreen_MouseEnter(FX_BOOL bModifier,
+                                           FX_BOOL bShift,
+                                           CPDFSDK_Annot* pScreen) {
+  Initial(JET_SCREEN_MOUSEENTER);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    m_pTargetAnnot = pScreen;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  m_pTargetAnnot = pScreen;
 }
 
-void CJS_EventHandler::OnScreen_MouseExit(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-    Initial(JET_SCREEN_MOUSEEXIT);
+void CJS_EventHandler::OnScreen_MouseExit(FX_BOOL bModifier,
+                                          FX_BOOL bShift,
+                                          CPDFSDK_Annot* pScreen) {
+  Initial(JET_SCREEN_MOUSEEXIT);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    m_pTargetAnnot = pScreen;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  m_pTargetAnnot = pScreen;
 }
 
-void CJS_EventHandler::OnScreen_InView(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-    Initial(JET_SCREEN_INVIEW);
+void CJS_EventHandler::OnScreen_InView(FX_BOOL bModifier,
+                                       FX_BOOL bShift,
+                                       CPDFSDK_Annot* pScreen) {
+  Initial(JET_SCREEN_INVIEW);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    m_pTargetAnnot = pScreen;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  m_pTargetAnnot = pScreen;
 }
 
-void CJS_EventHandler::OnScreen_OutView(FX_BOOL bModifier, FX_BOOL bShift, CPDFSDK_Annot* pScreen)
-{
-    Initial(JET_SCREEN_OUTVIEW);
+void CJS_EventHandler::OnScreen_OutView(FX_BOOL bModifier,
+                                        FX_BOOL bShift,
+                                        CPDFSDK_Annot* pScreen) {
+  Initial(JET_SCREEN_OUTVIEW);
 
-    m_bModifier = bModifier;
-    m_bShift = bShift;
-    m_pTargetAnnot = pScreen;
+  m_bModifier = bModifier;
+  m_bShift = bShift;
+  m_pTargetAnnot = pScreen;
 }
 
-void CJS_EventHandler::OnLink_MouseUp(CPDFSDK_Document* pTarget)
-{
-    Initial(JET_LINK_MOUSEUP);
+void CJS_EventHandler::OnLink_MouseUp(CPDFSDK_Document* pTarget) {
+  Initial(JET_LINK_MOUSEUP);
 
-    m_pTargetDoc = pTarget;
+  m_pTargetDoc = pTarget;
 }
 
-void CJS_EventHandler::OnBookmark_MouseUp(CPDF_Bookmark* pBookMark)
-{
-    Initial(JET_BOOKMARK_MOUSEUP);
+void CJS_EventHandler::OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) {
+  Initial(JET_BOOKMARK_MOUSEUP);
 
-    m_pTargetBookMark = pBookMark;
+  m_pTargetBookMark = pBookMark;
 }
 
-void CJS_EventHandler::OnMenu_Exec(CPDFSDK_Document* pTarget, const CFX_WideString& strTargetName)
-{
-    Initial(JET_MENU_EXEC);
+void CJS_EventHandler::OnMenu_Exec(CPDFSDK_Document* pTarget,
+                                   const CFX_WideString& strTargetName) {
+  Initial(JET_MENU_EXEC);
 
-    m_pTargetDoc = pTarget;
-    m_strTargetName = strTargetName;
+  m_pTargetDoc = pTarget;
+  m_strTargetName = strTargetName;
 }
 
-void CJS_EventHandler::OnExternal_Exec()
-{
-    Initial(JET_EXTERNAL_EXEC);
+void CJS_EventHandler::OnExternal_Exec() {
+  Initial(JET_EXTERNAL_EXEC);
 }
 
-void CJS_EventHandler::OnBatchExec(CPDFSDK_Document* pTarget)
-{
-    Initial(JET_BATCH_EXEC);
+void CJS_EventHandler::OnBatchExec(CPDFSDK_Document* pTarget) {
+  Initial(JET_BATCH_EXEC);
 
-    m_pTargetDoc = pTarget;
+  m_pTargetDoc = pTarget;
 }
 
-void CJS_EventHandler::OnConsole_Exec()
-{
-    Initial(JET_CONSOLE_EXEC);
+void CJS_EventHandler::OnConsole_Exec() {
+  Initial(JET_CONSOLE_EXEC);
 }
 
+void CJS_EventHandler::Initial(JS_EVENT_T type) {
+  m_eEventType = type;
 
-void CJS_EventHandler::Initial(JS_EVENT_T type)
-{
-    m_eEventType = type;
-
-    m_strTargetName = L"";
-    m_strSourceName = L"";
-    m_pWideStrChange = NULL;
-    m_WideStrChangeDu = L"";
-    m_WideStrChangeEx = L"";
-    m_nCommitKey = -1;
-    m_bKeyDown = FALSE;
-    m_bModifier = FALSE;
-    m_bShift = FALSE;
-    m_pISelEnd = NULL;
-    m_nSelEndDu = 0;
-    m_pISelStart = NULL;
-    m_nSelStartDu = 0;
-    m_bWillCommit = FALSE;
-    m_pValue = NULL;
-    m_bFieldFull = FALSE;
-    m_pbRc = NULL;
-    m_bRcDu = FALSE;
+  m_strTargetName = L"";
+  m_strSourceName = L"";
+  m_pWideStrChange = NULL;
+  m_WideStrChangeDu = L"";
+  m_WideStrChangeEx = L"";
+  m_nCommitKey = -1;
+  m_bKeyDown = FALSE;
+  m_bModifier = FALSE;
+  m_bShift = FALSE;
+  m_pISelEnd = NULL;
+  m_nSelEndDu = 0;
+  m_pISelStart = NULL;
+  m_nSelStartDu = 0;
+  m_bWillCommit = FALSE;
+  m_pValue = NULL;
+  m_bFieldFull = FALSE;
+  m_pbRc = NULL;
+  m_bRcDu = FALSE;
 
-    m_pSourceDoc = NULL;
-    m_pTargetBookMark = NULL;
-    m_pTargetDoc = NULL;
-    m_pTargetAnnot = NULL;
+  m_pSourceDoc = NULL;
+  m_pTargetBookMark = NULL;
+  m_pTargetDoc = NULL;
+  m_pTargetAnnot = NULL;
 
-    m_bValid = TRUE;
+  m_bValid = TRUE;
 }
 
-void CJS_EventHandler::Destroy()
-{
-    m_bValid = FALSE;
+void CJS_EventHandler::Destroy() {
+  m_bValid = FALSE;
 }
 
-FX_BOOL CJS_EventHandler::IsValid()
-{
-    return m_bValid;
+FX_BOOL CJS_EventHandler::IsValid() {
+  return m_bValid;
 }
 
-CFX_WideString & CJS_EventHandler::Change()
-{
-    if (m_pWideStrChange) {
-        return *m_pWideStrChange;
-    }
-    return m_WideStrChangeDu;
+CFX_WideString& CJS_EventHandler::Change() {
+  if (m_pWideStrChange) {
+    return *m_pWideStrChange;
+  }
+  return m_WideStrChangeDu;
 }
 
-CFX_WideString CJS_EventHandler::ChangeEx()
-{
-    return m_WideStrChangeEx;
+CFX_WideString CJS_EventHandler::ChangeEx() {
+  return m_WideStrChangeEx;
 }
 
-int CJS_EventHandler::CommitKey()
-{
-    return m_nCommitKey;
+int CJS_EventHandler::CommitKey() {
+  return m_nCommitKey;
 }
 
-FX_BOOL CJS_EventHandler::FieldFull()
-{
-    return m_bFieldFull;
+FX_BOOL CJS_EventHandler::FieldFull() {
+  return m_bFieldFull;
 }
 
-FX_BOOL CJS_EventHandler::KeyDown()
-{
-    return m_bKeyDown;
+FX_BOOL CJS_EventHandler::KeyDown() {
+  return m_bKeyDown;
 }
 
-FX_BOOL CJS_EventHandler::Modifier()
-{
-    return m_bModifier;
+FX_BOOL CJS_EventHandler::Modifier() {
+  return m_bModifier;
 }
 
-const FX_WCHAR* CJS_EventHandler::Name()
-{
-    switch (m_eEventType)
-    {
-    case JET_APP_INIT:          return L"Init";
-    case JET_BATCH_EXEC:        return L"Exec";
-    case JET_BOOKMARK_MOUSEUP:  return L"Mouse Up";
-    case JET_CONSOLE_EXEC:      return L"Exec";
-    case JET_DOC_DIDPRINT:      return L"DidPrint";
-    case JET_DOC_DIDSAVE:       return L"DidSave";
-    case JET_DOC_OPEN:          return L"Open";
-    case JET_DOC_WILLCLOSE:     return L"WillClose";
-    case JET_DOC_WILLPRINT:     return L"WillPrint";
-    case JET_DOC_WILLSAVE:      return L"WillSave";
-    case JET_EXTERNAL_EXEC:     return L"Exec";
+const FX_WCHAR* CJS_EventHandler::Name() {
+  switch (m_eEventType) {
+    case JET_APP_INIT:
+      return L"Init";
+    case JET_BATCH_EXEC:
+      return L"Exec";
+    case JET_BOOKMARK_MOUSEUP:
+      return L"Mouse Up";
+    case JET_CONSOLE_EXEC:
+      return L"Exec";
+    case JET_DOC_DIDPRINT:
+      return L"DidPrint";
+    case JET_DOC_DIDSAVE:
+      return L"DidSave";
+    case JET_DOC_OPEN:
+      return L"Open";
+    case JET_DOC_WILLCLOSE:
+      return L"WillClose";
+    case JET_DOC_WILLPRINT:
+      return L"WillPrint";
+    case JET_DOC_WILLSAVE:
+      return L"WillSave";
+    case JET_EXTERNAL_EXEC:
+      return L"Exec";
     case JET_FIELD_FOCUS:
-    case JET_SCREEN_FOCUS:      return L"Focus";
+    case JET_SCREEN_FOCUS:
+      return L"Focus";
     case JET_FIELD_BLUR:
-    case JET_SCREEN_BLUR:       return L"Blur";
+    case JET_SCREEN_BLUR:
+      return L"Blur";
     case JET_FIELD_MOUSEDOWN:
-    case JET_SCREEN_MOUSEDOWN:  return L"Mouse Down";
+    case JET_SCREEN_MOUSEDOWN:
+      return L"Mouse Down";
     case JET_FIELD_MOUSEUP:
-    case JET_SCREEN_MOUSEUP:    return L"Mouse Up";
+    case JET_SCREEN_MOUSEUP:
+      return L"Mouse Up";
     case JET_FIELD_MOUSEENTER:
-    case JET_SCREEN_MOUSEENTER: return L"Mouse Enter";
+    case JET_SCREEN_MOUSEENTER:
+      return L"Mouse Enter";
     case JET_FIELD_MOUSEEXIT:
-    case JET_SCREEN_MOUSEEXIT:  return L"Mouse Exit";
-    case JET_FIELD_CALCULATE:   return L"Calculate";
-    case JET_FIELD_FORMAT:      return L"Format";
-    case JET_FIELD_KEYSTROKE:   return L"Keystroke";
-    case JET_FIELD_VALIDATE:    return L"Validate";
-    case JET_LINK_MOUSEUP:      return L"Mouse Up";
-    case JET_MENU_EXEC:         return L"Exec";
+    case JET_SCREEN_MOUSEEXIT:
+      return L"Mouse Exit";
+    case JET_FIELD_CALCULATE:
+      return L"Calculate";
+    case JET_FIELD_FORMAT:
+      return L"Format";
+    case JET_FIELD_KEYSTROKE:
+      return L"Keystroke";
+    case JET_FIELD_VALIDATE:
+      return L"Validate";
+    case JET_LINK_MOUSEUP:
+      return L"Mouse Up";
+    case JET_MENU_EXEC:
+      return L"Exec";
     case JET_PAGE_OPEN:
-    case JET_SCREEN_OPEN:       return L"Open";
+    case JET_SCREEN_OPEN:
+      return L"Open";
     case JET_PAGE_CLOSE:
-    case JET_SCREEN_CLOSE:      return L"Close";
+    case JET_SCREEN_CLOSE:
+      return L"Close";
     case JET_SCREEN_INVIEW:
-    case JET_PAGE_INVIEW:       return L"InView";
+    case JET_PAGE_INVIEW:
+      return L"InView";
     case JET_PAGE_OUTVIEW:
-    case JET_SCREEN_OUTVIEW:    return L"OutView";
+    case JET_SCREEN_OUTVIEW:
+      return L"OutView";
     default:
-        return L"";
-    }
-
-    return L"";
-}
-
-const FX_WCHAR* CJS_EventHandler::Type()
-{
-    switch (m_eEventType)
-    {
-    case JET_APP_INIT:          return L"App";
-    case JET_BATCH_EXEC:        return L"Batch";
-    case JET_BOOKMARK_MOUSEUP:  return L"BookMark";
-    case JET_CONSOLE_EXEC:      return L"Console";
+      return L"";
+  }
+
+  return L"";
+}
+
+const FX_WCHAR* CJS_EventHandler::Type() {
+  switch (m_eEventType) {
+    case JET_APP_INIT:
+      return L"App";
+    case JET_BATCH_EXEC:
+      return L"Batch";
+    case JET_BOOKMARK_MOUSEUP:
+      return L"BookMark";
+    case JET_CONSOLE_EXEC:
+      return L"Console";
     case JET_DOC_DIDPRINT:
     case JET_DOC_DIDSAVE:
     case JET_DOC_OPEN:
     case JET_DOC_WILLCLOSE:
     case JET_DOC_WILLPRINT:
-    case JET_DOC_WILLSAVE:      return L"Doc";
-    case JET_EXTERNAL_EXEC:     return L"External";
+    case JET_DOC_WILLSAVE:
+      return L"Doc";
+    case JET_EXTERNAL_EXEC:
+      return L"External";
     case JET_FIELD_BLUR:
     case JET_FIELD_FOCUS:
     case JET_FIELD_MOUSEDOWN:
@@ -531,7 +556,8 @@ const FX_WCHAR* CJS_EventHandler::Type()
     case JET_FIELD_CALCULATE:
     case JET_FIELD_FORMAT:
     case JET_FIELD_KEYSTROKE:
-    case JET_FIELD_VALIDATE:    return L"Field";
+    case JET_FIELD_VALIDATE:
+      return L"Field";
     case JET_SCREEN_FOCUS:
     case JET_SCREEN_BLUR:
     case JET_SCREEN_OPEN:
@@ -541,124 +567,123 @@ const FX_WCHAR* CJS_EventHandler::Type()
     case JET_SCREEN_MOUSEENTER:
     case JET_SCREEN_MOUSEEXIT:
     case JET_SCREEN_INVIEW:
-    case JET_SCREEN_OUTVIEW:    return L"Screen";
-    case JET_LINK_MOUSEUP:      return L"Link";
-    case JET_MENU_EXEC:         return L"Menu";
+    case JET_SCREEN_OUTVIEW:
+      return L"Screen";
+    case JET_LINK_MOUSEUP:
+      return L"Link";
+    case JET_MENU_EXEC:
+      return L"Menu";
     case JET_PAGE_OPEN:
     case JET_PAGE_CLOSE:
     case JET_PAGE_INVIEW:
-    case JET_PAGE_OUTVIEW:return L"Page";
+    case JET_PAGE_OUTVIEW:
+      return L"Page";
     default:
-        return L"";
-    }
+      return L"";
+  }
 
-    return L"";
+  return L"";
 }
 
-FX_BOOL& CJS_EventHandler::Rc()
-{
-    if (m_pbRc) {
-        return *m_pbRc;
-    }
-    return m_bRcDu;
+FX_BOOL& CJS_EventHandler::Rc() {
+  if (m_pbRc) {
+    return *m_pbRc;
+  }
+  return m_bRcDu;
 }
 
-int & CJS_EventHandler::SelEnd()
-{
-    if (m_pISelEnd) {
-        return *m_pISelEnd;
-    }
-    return m_nSelEndDu;
+int& CJS_EventHandler::SelEnd() {
+  if (m_pISelEnd) {
+    return *m_pISelEnd;
+  }
+  return m_nSelEndDu;
 }
 
-int & CJS_EventHandler::SelStart()
-{
-    if (m_pISelStart) {
-        return *m_pISelStart;
-    }
-    return m_nSelStartDu;
+int& CJS_EventHandler::SelStart() {
+  if (m_pISelStart) {
+    return *m_pISelStart;
+  }
+  return m_nSelStartDu;
 }
 
-FX_BOOL CJS_EventHandler::Shift()
-{
-    return m_bShift;
+FX_BOOL CJS_EventHandler::Shift() {
+  return m_bShift;
 }
 
-Field* CJS_EventHandler::Source()
-{
-    ASSERT(m_pJSContext != NULL);
+Field* CJS_EventHandler::Source() {
+  ASSERT(m_pJSContext != NULL);
 
-    CJS_Runtime* pRuntime = m_pJSContext->GetJSRuntime();
+  CJS_Runtime* pRuntime = m_pJSContext->GetJSRuntime();
 
-    JSFXObject  pDocObj = JS_NewFxDynamicObj(*pRuntime, m_pJSContext, JS_GetObjDefnID(*pRuntime, L"Document"));
-    ASSERT(pDocObj.IsEmpty() == FALSE);
-    JSFXObject  pFieldObj = JS_NewFxDynamicObj(*pRuntime, m_pJSContext, JS_GetObjDefnID(*pRuntime, L"Field"));
-    ASSERT(pFieldObj.IsEmpty() == FALSE);
+  JSFXObject pDocObj = JS_NewFxDynamicObj(
+      *pRuntime, m_pJSContext, JS_GetObjDefnID(*pRuntime, L"Document"));
+  ASSERT(pDocObj.IsEmpty() == FALSE);
+  JSFXObject pFieldObj = JS_NewFxDynamicObj(
+      *pRuntime, m_pJSContext, JS_GetObjDefnID(*pRuntime, L"Field"));
+  ASSERT(pFieldObj.IsEmpty() == FALSE);
 
-    CJS_Document* pJSDocument = (CJS_Document*)JS_GetPrivate(pDocObj);
-    ASSERT(pJSDocument != NULL);
-    Document* pDocument = (Document*)pJSDocument->GetEmbedObject();
-    ASSERT(pDocument != NULL);
-    if (m_pTargetDoc != NULL)
-        pDocument->AttachDoc(m_pTargetDoc);
-    else
-        pDocument->AttachDoc(m_pJSContext->GetReaderDocument());
+  CJS_Document* pJSDocument = (CJS_Document*)JS_GetPrivate(pDocObj);
+  ASSERT(pJSDocument != NULL);
+  Document* pDocument = (Document*)pJSDocument->GetEmbedObject();
+  ASSERT(pDocument != NULL);
+  if (m_pTargetDoc != NULL)
+    pDocument->AttachDoc(m_pTargetDoc);
+  else
+    pDocument->AttachDoc(m_pJSContext->GetReaderDocument());
 
-    //if (m_pSourceField == NULL)
-    //  return NULL;
-    //CRAO_Widget *pWidget = IBCL_Widget::GetWidget(m_pSourceField);
-    //CPDF_FormField* pFormField = pWidget->GetFormField();
-    //ASSERT(pFormField);
-    //CFX_WideString csFieldName = pFormField->GetFullName();
-    CJS_Field * pJSField = (CJS_Field*)JS_GetPrivate(pFieldObj);
-    ASSERT(pJSField != NULL);
-    Field * pField = (Field *)pJSField->GetEmbedObject();
-    ASSERT(pField != NULL);
-    pField->AttachField(pDocument, m_strSourceName);
-    return pField;
+  // if (m_pSourceField == NULL)
+  //  return NULL;
+  // CRAO_Widget *pWidget = IBCL_Widget::GetWidget(m_pSourceField);
+  // CPDF_FormField* pFormField = pWidget->GetFormField();
+  // ASSERT(pFormField);
+  // CFX_WideString csFieldName = pFormField->GetFullName();
+  CJS_Field* pJSField = (CJS_Field*)JS_GetPrivate(pFieldObj);
+  ASSERT(pJSField != NULL);
+  Field* pField = (Field*)pJSField->GetEmbedObject();
+  ASSERT(pField != NULL);
+  pField->AttachField(pDocument, m_strSourceName);
+  return pField;
 }
 
-Field* CJS_EventHandler::Target_Field()
-{
-    ASSERT(m_pJSContext != NULL);
+Field* CJS_EventHandler::Target_Field() {
+  ASSERT(m_pJSContext != NULL);
 
-    CJS_Runtime* pRuntime = m_pJSContext->GetJSRuntime();
+  CJS_Runtime* pRuntime = m_pJSContext->GetJSRuntime();
 
-    JSFXObject pDocObj = JS_NewFxDynamicObj(*pRuntime, m_pJSContext, JS_GetObjDefnID(*pRuntime, L"Document"));
-    ASSERT(pDocObj.IsEmpty() == FALSE);
-    JSFXObject pFieldObj = JS_NewFxDynamicObj(*pRuntime, m_pJSContext, JS_GetObjDefnID(*pRuntime, L"Field"));
-    ASSERT(pFieldObj.IsEmpty() == FALSE);
+  JSFXObject pDocObj = JS_NewFxDynamicObj(
+      *pRuntime, m_pJSContext, JS_GetObjDefnID(*pRuntime, L"Document"));
+  ASSERT(pDocObj.IsEmpty() == FALSE);
+  JSFXObject pFieldObj = JS_NewFxDynamicObj(
+      *pRuntime, m_pJSContext, JS_GetObjDefnID(*pRuntime, L"Field"));
+  ASSERT(pFieldObj.IsEmpty() == FALSE);
 
-    CJS_Document* pJSDocument = (CJS_Document*)JS_GetPrivate(pDocObj);
-    ASSERT(pJSDocument != NULL);
-    Document* pDocument = (Document*)pJSDocument->GetEmbedObject();
-    ASSERT(pDocument != NULL);
-    if (m_pTargetDoc != NULL)
-        pDocument->AttachDoc(m_pTargetDoc);
-    else
-        pDocument->AttachDoc(m_pJSContext->GetReaderDocument());
+  CJS_Document* pJSDocument = (CJS_Document*)JS_GetPrivate(pDocObj);
+  ASSERT(pJSDocument != NULL);
+  Document* pDocument = (Document*)pJSDocument->GetEmbedObject();
+  ASSERT(pDocument != NULL);
+  if (m_pTargetDoc != NULL)
+    pDocument->AttachDoc(m_pTargetDoc);
+  else
+    pDocument->AttachDoc(m_pJSContext->GetReaderDocument());
 
-    CJS_Field* pJSField = (CJS_Field*)JS_GetPrivate(pFieldObj);
-    ASSERT(pJSField != NULL);
+  CJS_Field* pJSField = (CJS_Field*)JS_GetPrivate(pFieldObj);
+  ASSERT(pJSField != NULL);
 
-    Field* pField = (Field *)pJSField->GetEmbedObject();
-    ASSERT(pField != NULL);
+  Field* pField = (Field*)pJSField->GetEmbedObject();
+  ASSERT(pField != NULL);
 
-    pField->AttachField(pDocument, m_strTargetName);
-    return pField;
+  pField->AttachField(pDocument, m_strTargetName);
+  return pField;
 }
 
-CFX_WideString& CJS_EventHandler::Value()
-{
-    return *m_pValue;
+CFX_WideString& CJS_EventHandler::Value() {
+  return *m_pValue;
 }
 
-FX_BOOL CJS_EventHandler::WillCommit()
-{
-    return m_bWillCommit;
+FX_BOOL CJS_EventHandler::WillCommit() {
+  return m_bWillCommit;
 }
 
-CFX_WideString CJS_EventHandler::TargetName()
-{
-    return m_strTargetName;
+CFX_WideString CJS_EventHandler::TargetName() {
+  return m_strTargetName;
 }
diff --git a/fpdfsdk/src/javascript/JS_GlobalData.cpp b/fpdfsdk/src/javascript/JS_GlobalData.cpp
index 2b4248ccbf..715374d96f 100644
--- a/fpdfsdk/src/javascript/JS_GlobalData.cpp
+++ b/fpdfsdk/src/javascript/JS_GlobalData.cpp
@@ -9,449 +9,393 @@
 #include "../../include/javascript/IJavaScript.h"
 #include "../../include/javascript/JS_GlobalData.h"
 
-#define JS_MAXGLOBALDATA            (1024 * 4 - 8)
+#define JS_MAXGLOBALDATA (1024 * 4 - 8)
 
 /* --------------------- CJS_GlobalVariableArray --------------------- */
 
-CJS_GlobalVariableArray::CJS_GlobalVariableArray()
-{
-}
+CJS_GlobalVariableArray::CJS_GlobalVariableArray() {}
 
-CJS_GlobalVariableArray::~CJS_GlobalVariableArray()
-{
-    Empty();
+CJS_GlobalVariableArray::~CJS_GlobalVariableArray() {
+  Empty();
 }
 
-void CJS_GlobalVariableArray::Copy(const CJS_GlobalVariableArray& array)
-{
-    Empty();
-    for (int i=0,sz=array.Count(); i<sz; i++)
-    {
-        CJS_KeyValue* pOldObjData = array.GetAt(i);
-        ASSERT(pOldObjData != NULL);
-
-        switch (pOldObjData->nType)
-        {
-        case JS_GLOBALDATA_TYPE_NUMBER:
-            {
-                CJS_KeyValue* pNewObjData = new CJS_KeyValue;
-                pNewObjData->sKey = pOldObjData->sKey;
-                pNewObjData->nType = pOldObjData->nType;
-                pNewObjData->dData = pOldObjData->dData;
-                Add(pNewObjData);
-            }
-            break;
-        case JS_GLOBALDATA_TYPE_BOOLEAN:
-            {
-                CJS_KeyValue* pNewObjData = new CJS_KeyValue;
-                pNewObjData->sKey = pOldObjData->sKey;
-                pNewObjData->nType = pOldObjData->nType;
-                pNewObjData->bData = pOldObjData->bData;
-                Add(pNewObjData);
-            }
-            break;
-        case JS_GLOBALDATA_TYPE_STRING:
-            {
-                CJS_KeyValue* pNewObjData = new CJS_KeyValue;
-                pNewObjData->sKey = pOldObjData->sKey;
-                pNewObjData->nType = pOldObjData->nType;
-                pNewObjData->sData = pOldObjData->sData;
-                Add(pNewObjData);
-            }
-            break;
-        case JS_GLOBALDATA_TYPE_OBJECT:
-            {
-                CJS_KeyValue* pNewObjData = new CJS_KeyValue;
-                pNewObjData->sKey = pOldObjData->sKey;
-                pNewObjData->nType = pOldObjData->nType;
-                pNewObjData->objData.Copy(pOldObjData->objData);
-                Add(pNewObjData);
-            }
-        case JS_GLOBALDATA_TYPE_NULL:
-            {
-                CJS_KeyValue* pNewObjData = new CJS_KeyValue;
-                pNewObjData->sKey = pOldObjData->sKey;
-                pNewObjData->nType = pOldObjData->nType;
-                Add(pNewObjData);
-            }
-        }
+void CJS_GlobalVariableArray::Copy(const CJS_GlobalVariableArray& array) {
+  Empty();
+  for (int i = 0, sz = array.Count(); i < sz; i++) {
+    CJS_KeyValue* pOldObjData = array.GetAt(i);
+    ASSERT(pOldObjData != NULL);
+
+    switch (pOldObjData->nType) {
+      case JS_GLOBALDATA_TYPE_NUMBER: {
+        CJS_KeyValue* pNewObjData = new CJS_KeyValue;
+        pNewObjData->sKey = pOldObjData->sKey;
+        pNewObjData->nType = pOldObjData->nType;
+        pNewObjData->dData = pOldObjData->dData;
+        Add(pNewObjData);
+      } break;
+      case JS_GLOBALDATA_TYPE_BOOLEAN: {
+        CJS_KeyValue* pNewObjData = new CJS_KeyValue;
+        pNewObjData->sKey = pOldObjData->sKey;
+        pNewObjData->nType = pOldObjData->nType;
+        pNewObjData->bData = pOldObjData->bData;
+        Add(pNewObjData);
+      } break;
+      case JS_GLOBALDATA_TYPE_STRING: {
+        CJS_KeyValue* pNewObjData = new CJS_KeyValue;
+        pNewObjData->sKey = pOldObjData->sKey;
+        pNewObjData->nType = pOldObjData->nType;
+        pNewObjData->sData = pOldObjData->sData;
+        Add(pNewObjData);
+      } break;
+      case JS_GLOBALDATA_TYPE_OBJECT: {
+        CJS_KeyValue* pNewObjData = new CJS_KeyValue;
+        pNewObjData->sKey = pOldObjData->sKey;
+        pNewObjData->nType = pOldObjData->nType;
+        pNewObjData->objData.Copy(pOldObjData->objData);
+        Add(pNewObjData);
+      }
+      case JS_GLOBALDATA_TYPE_NULL: {
+        CJS_KeyValue* pNewObjData = new CJS_KeyValue;
+        pNewObjData->sKey = pOldObjData->sKey;
+        pNewObjData->nType = pOldObjData->nType;
+        Add(pNewObjData);
+      }
     }
+  }
 }
 
-void CJS_GlobalVariableArray::Add(CJS_KeyValue* p)
-{
-    array.Add(p);
+void CJS_GlobalVariableArray::Add(CJS_KeyValue* p) {
+  array.Add(p);
 }
 
-int CJS_GlobalVariableArray::Count() const
-{
-    return array.GetSize();
+int CJS_GlobalVariableArray::Count() const {
+  return array.GetSize();
 }
 
-CJS_KeyValue* CJS_GlobalVariableArray::GetAt(int index) const
-{
-    return array.GetAt(index);
+CJS_KeyValue* CJS_GlobalVariableArray::GetAt(int index) const {
+  return array.GetAt(index);
 }
 
-void CJS_GlobalVariableArray::Empty()
-{
-    for (int i=0,sz=array.GetSize(); i<sz; i++)
-        delete array.GetAt(i);
-    array.RemoveAll();
+void CJS_GlobalVariableArray::Empty() {
+  for (int i = 0, sz = array.GetSize(); i < sz; i++)
+    delete array.GetAt(i);
+  array.RemoveAll();
 }
 
 /* -------------------------- CJS_GlobalData -------------------------- */
 
-#define READER_JS_GLOBALDATA_FILENAME               L"Reader_JsGlobal.Data"
-#define PHANTOM_JS_GLOBALDATA_FILENAME              L"Phantom_JsGlobal.Data"
-#define SDK_JS_GLOBALDATA_FILENAME                  L"SDK_JsGlobal.Data"
-
-static const uint8_t JS_RC4KEY[] = {0x19,0xa8,0xe8,0x01,0xf6,0xa8,0xb6,0x4d,0x82,0x04,
-                            0x45,0x6d,0xb4,0xcf,0xd7,0x77,0x67,0xf9,0x75,0x9f,
-                            0xf0,0xe0,0x1e,0x51,0xee,0x46,0xfd,0x0b,0xc9,0x93,
-                            0x25,0x55,0x4a,0xee,0xe0,0x16,0xd0,0xdf,0x8c,0xfa,
-                            0x2a,0xa9,0x49,0xfd,0x97,0x1c,0x0e,0x22,0x13,0x28,
-                            0x7c,0xaf,0xc4,0xfc,0x9c,0x12,0x65,0x8c,0x4e,0x5b,
-                            0x04,0x75,0x89,0xc9,0xb1,0xed,0x50,0xca,0x96,0x6f,
-                            0x1a,0x7a,0xfe,0x58,0x5d,0xec,0x19,0x4a,0xf6,0x35,
-                            0x6a,0x97,0x14,0x00,0x0e,0xd0,0x6b,0xbb,0xd5,0x75,
-                            0x55,0x8b,0x6e,0x6b,0x19,0xa0,0xf8,0x77,0xd5,0xa3
-                            };
-
-CJS_GlobalData::CJS_GlobalData(CPDFDoc_Environment* pApp) : m_pApp(pApp)
-{
-//  IBaseAnnot* pBaseAnnot = IBaseAnnot::GetBaseAnnot(m_pApp);
-//  ASSERT(pBaseAnnot != NULL);
-//
-//  m_sFilePath = pBaseAnnot->GetUserPath();
-    m_sFilePath += SDK_JS_GLOBALDATA_FILENAME;
-
-    LoadGlobalPersistentVariables();
+#define READER_JS_GLOBALDATA_FILENAME L"Reader_JsGlobal.Data"
+#define PHANTOM_JS_GLOBALDATA_FILENAME L"Phantom_JsGlobal.Data"
+#define SDK_JS_GLOBALDATA_FILENAME L"SDK_JsGlobal.Data"
+
+static const uint8_t JS_RC4KEY[] = {
+    0x19, 0xa8, 0xe8, 0x01, 0xf6, 0xa8, 0xb6, 0x4d, 0x82, 0x04, 0x45, 0x6d,
+    0xb4, 0xcf, 0xd7, 0x77, 0x67, 0xf9, 0x75, 0x9f, 0xf0, 0xe0, 0x1e, 0x51,
+    0xee, 0x46, 0xfd, 0x0b, 0xc9, 0x93, 0x25, 0x55, 0x4a, 0xee, 0xe0, 0x16,
+    0xd0, 0xdf, 0x8c, 0xfa, 0x2a, 0xa9, 0x49, 0xfd, 0x97, 0x1c, 0x0e, 0x22,
+    0x13, 0x28, 0x7c, 0xaf, 0xc4, 0xfc, 0x9c, 0x12, 0x65, 0x8c, 0x4e, 0x5b,
+    0x04, 0x75, 0x89, 0xc9, 0xb1, 0xed, 0x50, 0xca, 0x96, 0x6f, 0x1a, 0x7a,
+    0xfe, 0x58, 0x5d, 0xec, 0x19, 0x4a, 0xf6, 0x35, 0x6a, 0x97, 0x14, 0x00,
+    0x0e, 0xd0, 0x6b, 0xbb, 0xd5, 0x75, 0x55, 0x8b, 0x6e, 0x6b, 0x19, 0xa0,
+    0xf8, 0x77, 0xd5, 0xa3};
+
+CJS_GlobalData::CJS_GlobalData(CPDFDoc_Environment* pApp) : m_pApp(pApp) {
+  //  IBaseAnnot* pBaseAnnot = IBaseAnnot::GetBaseAnnot(m_pApp);
+  //  ASSERT(pBaseAnnot != NULL);
+  //
+  //  m_sFilePath = pBaseAnnot->GetUserPath();
+  m_sFilePath += SDK_JS_GLOBALDATA_FILENAME;
+
+  LoadGlobalPersistentVariables();
 }
 
-CJS_GlobalData::~CJS_GlobalData()
-{
-    SaveGlobalPersisitentVariables();
+CJS_GlobalData::~CJS_GlobalData() {
+  SaveGlobalPersisitentVariables();
 
-    for (int i=0,sz=m_arrayGlobalData.GetSize(); i<sz; i++)
-        delete m_arrayGlobalData.GetAt(i);
+  for (int i = 0, sz = m_arrayGlobalData.GetSize(); i < sz; i++)
+    delete m_arrayGlobalData.GetAt(i);
 
-    m_arrayGlobalData.RemoveAll();
+  m_arrayGlobalData.RemoveAll();
 }
 
-int CJS_GlobalData::FindGlobalVariable(const FX_CHAR* propname)
-{
-    ASSERT(propname != NULL);
+int CJS_GlobalData::FindGlobalVariable(const FX_CHAR* propname) {
+  ASSERT(propname != NULL);
 
-    int nRet = -1;
+  int nRet = -1;
 
-    for (int i=0,sz=m_arrayGlobalData.GetSize(); i<sz; i++)
-    {
-        CJS_GlobalData_Element* pTemp = m_arrayGlobalData.GetAt(i);
-        if (pTemp->data.sKey[0] == *propname && pTemp->data.sKey == propname)
-        {
-            nRet = i;
-            break;
-        }
+  for (int i = 0, sz = m_arrayGlobalData.GetSize(); i < sz; i++) {
+    CJS_GlobalData_Element* pTemp = m_arrayGlobalData.GetAt(i);
+    if (pTemp->data.sKey[0] == *propname && pTemp->data.sKey == propname) {
+      nRet = i;
+      break;
     }
+  }
 
-    return nRet;
+  return nRet;
 }
 
-CJS_GlobalData_Element* CJS_GlobalData::GetGlobalVariable(const FX_CHAR* propname)
-{
-    ASSERT(propname != NULL);
+CJS_GlobalData_Element* CJS_GlobalData::GetGlobalVariable(
+    const FX_CHAR* propname) {
+  ASSERT(propname != NULL);
 
-    int nFind = FindGlobalVariable(propname);
-    if (nFind >= 0)
-        return m_arrayGlobalData.GetAt(nFind);
+  int nFind = FindGlobalVariable(propname);
+  if (nFind >= 0)
+    return m_arrayGlobalData.GetAt(nFind);
 
-    return NULL;
+  return NULL;
 }
 
-void CJS_GlobalData::SetGlobalVariableNumber(const FX_CHAR* propname, double dData)
-{
-    ASSERT(propname != NULL);
-
-    CFX_ByteString sPropName = propname;
-    sPropName.TrimLeft();
-    sPropName.TrimRight();
-    if (sPropName.GetLength() == 0)
-        return;
-
-    if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName))
-    {
-        pData->data.nType = JS_GLOBALDATA_TYPE_NUMBER;
-        pData->data.dData = dData;
-    }
-    else
-    {
-        CJS_GlobalData_Element* pNewData = new CJS_GlobalData_Element;
-        pNewData->data.sKey = sPropName;
-        pNewData->data.nType = JS_GLOBALDATA_TYPE_NUMBER;
-        pNewData->data.dData = dData;
-        m_arrayGlobalData.Add(pNewData);
-    }
+void CJS_GlobalData::SetGlobalVariableNumber(const FX_CHAR* propname,
+                                             double dData) {
+  ASSERT(propname != NULL);
+
+  CFX_ByteString sPropName = propname;
+  sPropName.TrimLeft();
+  sPropName.TrimRight();
+  if (sPropName.GetLength() == 0)
+    return;
+
+  if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName)) {
+    pData->data.nType = JS_GLOBALDATA_TYPE_NUMBER;
+    pData->data.dData = dData;
+  } else {
+    CJS_GlobalData_Element* pNewData = new CJS_GlobalData_Element;
+    pNewData->data.sKey = sPropName;
+    pNewData->data.nType = JS_GLOBALDATA_TYPE_NUMBER;
+    pNewData->data.dData = dData;
+    m_arrayGlobalData.Add(pNewData);
+  }
 }
 
-void CJS_GlobalData::SetGlobalVariableBoolean(const FX_CHAR* propname, bool bData)
-{
-    ASSERT(propname != NULL);
-    CFX_ByteString sPropName = propname;
+void CJS_GlobalData::SetGlobalVariableBoolean(const FX_CHAR* propname,
+                                              bool bData) {
+  ASSERT(propname != NULL);
+  CFX_ByteString sPropName = propname;
 
-    sPropName.TrimLeft();
-    sPropName.TrimRight();
+  sPropName.TrimLeft();
+  sPropName.TrimRight();
 
-    if (sPropName.GetLength() == 0) return;
+  if (sPropName.GetLength() == 0)
+    return;
 
-    if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName))
-    {
-        pData->data.nType = JS_GLOBALDATA_TYPE_BOOLEAN;
-        pData->data.bData = bData;
-    }
-    else
-    {
-        CJS_GlobalData_Element* pNewData = new CJS_GlobalData_Element;
-        pNewData->data.sKey = sPropName;
-        pNewData->data.nType = JS_GLOBALDATA_TYPE_BOOLEAN;
-        pNewData->data.bData = bData;
-
-        m_arrayGlobalData.Add(pNewData);
-    }
-}
-
-void CJS_GlobalData::SetGlobalVariableString(const FX_CHAR* propname, const CFX_ByteString& sData)
-{
-    ASSERT(propname != NULL);
-    CFX_ByteString sPropName = propname;
+  if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName)) {
+    pData->data.nType = JS_GLOBALDATA_TYPE_BOOLEAN;
+    pData->data.bData = bData;
+  } else {
+    CJS_GlobalData_Element* pNewData = new CJS_GlobalData_Element;
+    pNewData->data.sKey = sPropName;
+    pNewData->data.nType = JS_GLOBALDATA_TYPE_BOOLEAN;
+    pNewData->data.bData = bData;
 
-    sPropName.TrimLeft();
-    sPropName.TrimRight();
+    m_arrayGlobalData.Add(pNewData);
+  }
+}
 
-    if (sPropName.GetLength() == 0) return;
+void CJS_GlobalData::SetGlobalVariableString(const FX_CHAR* propname,
+                                             const CFX_ByteString& sData) {
+  ASSERT(propname != NULL);
+  CFX_ByteString sPropName = propname;
 
-    if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName))
-    {
-        pData->data.nType = JS_GLOBALDATA_TYPE_STRING;
-        pData->data.sData = sData;
-    }
-    else
-    {
-        CJS_GlobalData_Element* pNewData = new CJS_GlobalData_Element;
-        pNewData->data.sKey = sPropName;
-        pNewData->data.nType = JS_GLOBALDATA_TYPE_STRING;
-        pNewData->data.sData = sData;
-
-        m_arrayGlobalData.Add(pNewData);
-    }
-}
+  sPropName.TrimLeft();
+  sPropName.TrimRight();
 
-void CJS_GlobalData::SetGlobalVariableObject(const FX_CHAR* propname, const CJS_GlobalVariableArray& array)
-{
-    ASSERT(propname != NULL);
-    CFX_ByteString sPropName = propname;
+  if (sPropName.GetLength() == 0)
+    return;
 
-    sPropName.TrimLeft();
-    sPropName.TrimRight();
+  if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName)) {
+    pData->data.nType = JS_GLOBALDATA_TYPE_STRING;
+    pData->data.sData = sData;
+  } else {
+    CJS_GlobalData_Element* pNewData = new CJS_GlobalData_Element;
+    pNewData->data.sKey = sPropName;
+    pNewData->data.nType = JS_GLOBALDATA_TYPE_STRING;
+    pNewData->data.sData = sData;
 
-    if (sPropName.GetLength() == 0) return;
+    m_arrayGlobalData.Add(pNewData);
+  }
+}
 
-    if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName))
-    {
-        pData->data.nType = JS_GLOBALDATA_TYPE_OBJECT;
-        pData->data.objData.Copy(array);
-    }
-    else
-    {
-        CJS_GlobalData_Element* pNewData = new CJS_GlobalData_Element;
-        pNewData->data.sKey = sPropName;
-        pNewData->data.nType = JS_GLOBALDATA_TYPE_OBJECT;
-        pNewData->data.objData.Copy(array);
-
-        m_arrayGlobalData.Add(pNewData);
-    }
+void CJS_GlobalData::SetGlobalVariableObject(
+    const FX_CHAR* propname,
+    const CJS_GlobalVariableArray& array) {
+  ASSERT(propname != NULL);
+  CFX_ByteString sPropName = propname;
+
+  sPropName.TrimLeft();
+  sPropName.TrimRight();
+
+  if (sPropName.GetLength() == 0)
+    return;
+
+  if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName)) {
+    pData->data.nType = JS_GLOBALDATA_TYPE_OBJECT;
+    pData->data.objData.Copy(array);
+  } else {
+    CJS_GlobalData_Element* pNewData = new CJS_GlobalData_Element;
+    pNewData->data.sKey = sPropName;
+    pNewData->data.nType = JS_GLOBALDATA_TYPE_OBJECT;
+    pNewData->data.objData.Copy(array);
+
+    m_arrayGlobalData.Add(pNewData);
+  }
 }
 
-void CJS_GlobalData::SetGlobalVariableNull(const FX_CHAR* propname)
-{
-    ASSERT(propname != NULL);
-    CFX_ByteString sPropName = propname;
+void CJS_GlobalData::SetGlobalVariableNull(const FX_CHAR* propname) {
+  ASSERT(propname != NULL);
+  CFX_ByteString sPropName = propname;
 
-    sPropName.TrimLeft();
-    sPropName.TrimRight();
+  sPropName.TrimLeft();
+  sPropName.TrimRight();
 
-    if (sPropName.GetLength() == 0) return;
+  if (sPropName.GetLength() == 0)
+    return;
 
-    if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName))
-    {
-        pData->data.nType = JS_GLOBALDATA_TYPE_NULL;
-    }
-    else
-    {
-        CJS_GlobalData_Element* pNewData = new CJS_GlobalData_Element;
-        pNewData->data.sKey = sPropName;
-        pNewData->data.nType = JS_GLOBALDATA_TYPE_NULL;
+  if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName)) {
+    pData->data.nType = JS_GLOBALDATA_TYPE_NULL;
+  } else {
+    CJS_GlobalData_Element* pNewData = new CJS_GlobalData_Element;
+    pNewData->data.sKey = sPropName;
+    pNewData->data.nType = JS_GLOBALDATA_TYPE_NULL;
 
-        m_arrayGlobalData.Add(pNewData);
-    }
+    m_arrayGlobalData.Add(pNewData);
+  }
 }
 
-FX_BOOL CJS_GlobalData::SetGlobalVariablePersistent(const FX_CHAR* propname, FX_BOOL bPersistent)
-{
-    ASSERT(propname != NULL);
-    CFX_ByteString sPropName = propname;
+FX_BOOL CJS_GlobalData::SetGlobalVariablePersistent(const FX_CHAR* propname,
+                                                    FX_BOOL bPersistent) {
+  ASSERT(propname != NULL);
+  CFX_ByteString sPropName = propname;
 
-    sPropName.TrimLeft();
-    sPropName.TrimRight();
+  sPropName.TrimLeft();
+  sPropName.TrimRight();
 
-    if (sPropName.GetLength() == 0) return FALSE;
+  if (sPropName.GetLength() == 0)
+    return FALSE;
 
-    if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName))
-    {
-        pData->bPersistent = bPersistent;
-        return TRUE;
-    }
+  if (CJS_GlobalData_Element* pData = GetGlobalVariable(sPropName)) {
+    pData->bPersistent = bPersistent;
+    return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CJS_GlobalData::DeleteGlobalVariable(const FX_CHAR* propname)
-{
-    ASSERT(propname != NULL);
-    CFX_ByteString sPropName = propname;
+FX_BOOL CJS_GlobalData::DeleteGlobalVariable(const FX_CHAR* propname) {
+  ASSERT(propname != NULL);
+  CFX_ByteString sPropName = propname;
 
-    sPropName.TrimLeft();
-    sPropName.TrimRight();
+  sPropName.TrimLeft();
+  sPropName.TrimRight();
 
-    if (sPropName.GetLength() == 0) return FALSE;
+  if (sPropName.GetLength() == 0)
+    return FALSE;
 
-    int nFind = FindGlobalVariable(sPropName);
+  int nFind = FindGlobalVariable(sPropName);
 
-    if (nFind >= 0)
-    {
-        delete m_arrayGlobalData.GetAt(nFind);
-        m_arrayGlobalData.RemoveAt(nFind);
-        return TRUE;
-    }
+  if (nFind >= 0) {
+    delete m_arrayGlobalData.GetAt(nFind);
+    m_arrayGlobalData.RemoveAt(nFind);
+    return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-int32_t CJS_GlobalData::GetSize() const
-{
-    return m_arrayGlobalData.GetSize();
+int32_t CJS_GlobalData::GetSize() const {
+  return m_arrayGlobalData.GetSize();
 }
 
-CJS_GlobalData_Element* CJS_GlobalData::GetAt(int index) const
-{
-    return m_arrayGlobalData.GetAt(index);
+CJS_GlobalData_Element* CJS_GlobalData::GetAt(int index) const {
+  return m_arrayGlobalData.GetAt(index);
 }
 
-void CJS_GlobalData::LoadGlobalPersistentVariables()
-{
-    uint8_t* pBuffer = NULL;
-    int32_t nLength = 0;
-
-    LoadFileBuffer(m_sFilePath.c_str(), pBuffer, nLength);
-    CRYPT_ArcFourCryptBlock(pBuffer, nLength, JS_RC4KEY, sizeof(JS_RC4KEY));
-
-    if (pBuffer)
-    {
-        uint8_t* p = pBuffer;
-        FX_WORD wType = *((FX_WORD*)p);
-        p += sizeof(FX_WORD);
-
-        //FX_WORD wTemp = (FX_WORD)(('X' << 8) | 'F');
-
-        if (wType == (FX_WORD)(('X' << 8) | 'F'))
-        {
-            FX_WORD wVersion = *((FX_WORD*)p);
-            p += sizeof(FX_WORD);
-
-            ASSERT(wVersion <= 2);
-
-            FX_DWORD dwCount = *((FX_DWORD*)p);
-            p += sizeof(FX_DWORD);
-
-            FX_DWORD dwSize = *((FX_DWORD*)p);
-            p += sizeof(FX_DWORD);
-
-            if (dwSize == nLength - sizeof(FX_WORD) * 2 - sizeof(FX_DWORD)* 2)
-            {
-                for (int32_t i=0,sz=dwCount; i<sz; i++)
-                {
-                    if (p > pBuffer + nLength)
-                        break;
-
-                    FX_DWORD dwNameLen = *((FX_DWORD*)p);
-                    p += sizeof(FX_DWORD);
-
-                    if (p + dwNameLen > pBuffer + nLength)
-                        break;
-
-                    CFX_ByteString sEntry = CFX_ByteString(p, dwNameLen);
-                    p += sizeof(char) * dwNameLen;
-
-                    FX_WORD wDataType = *((FX_WORD*)p);
-                    p += sizeof(FX_WORD);
-
-                    switch (wDataType)
-                    {
-                    case JS_GLOBALDATA_TYPE_NUMBER:
-                        {
-                            double dData = 0;
-                            switch (wVersion)
-                            {
-                            case 1:
-                                {
-                                    FX_DWORD dwData = *((FX_DWORD*)p);
-                                    p += sizeof(FX_DWORD);
-                                    dData = dwData;
-                                }
-                                break;
-                            case 2:
-                                {
-                                    dData = *((double*)p);
-                                    p += sizeof(double);
-                                }
-                                break;
-                            }
-                            SetGlobalVariableNumber(sEntry, dData);
-                            SetGlobalVariablePersistent(sEntry, TRUE);
-                        }
-                        break;
-                    case JS_GLOBALDATA_TYPE_BOOLEAN:
-                        {
-                            FX_WORD wData = *((FX_WORD*)p);
-                            p += sizeof(FX_WORD);
-                            SetGlobalVariableBoolean(sEntry, (bool)(wData == 1));
-                            SetGlobalVariablePersistent(sEntry, TRUE);
-                        }
-                        break;
-                    case JS_GLOBALDATA_TYPE_STRING:
-                        {
-                            FX_DWORD dwLength = *((FX_DWORD*)p);
-                            p += sizeof(FX_DWORD);
-
-                            if (p + dwLength > pBuffer + nLength)
-                                break;
-
-                            SetGlobalVariableString(sEntry, CFX_ByteString(p, dwLength));
-                            SetGlobalVariablePersistent(sEntry, TRUE);
-                            p += sizeof(char) * dwLength;
-                        }
-                        break;
-                    case JS_GLOBALDATA_TYPE_NULL:
-                        {
-                            SetGlobalVariableNull(sEntry);
-                            SetGlobalVariablePersistent(sEntry, TRUE);
-                        }
-                    }
-                }
+void CJS_GlobalData::LoadGlobalPersistentVariables() {
+  uint8_t* pBuffer = NULL;
+  int32_t nLength = 0;
+
+  LoadFileBuffer(m_sFilePath.c_str(), pBuffer, nLength);
+  CRYPT_ArcFourCryptBlock(pBuffer, nLength, JS_RC4KEY, sizeof(JS_RC4KEY));
+
+  if (pBuffer) {
+    uint8_t* p = pBuffer;
+    FX_WORD wType = *((FX_WORD*)p);
+    p += sizeof(FX_WORD);
+
+    // FX_WORD wTemp = (FX_WORD)(('X' << 8) | 'F');
+
+    if (wType == (FX_WORD)(('X' << 8) | 'F')) {
+      FX_WORD wVersion = *((FX_WORD*)p);
+      p += sizeof(FX_WORD);
+
+      ASSERT(wVersion <= 2);
+
+      FX_DWORD dwCount = *((FX_DWORD*)p);
+      p += sizeof(FX_DWORD);
+
+      FX_DWORD dwSize = *((FX_DWORD*)p);
+      p += sizeof(FX_DWORD);
+
+      if (dwSize == nLength - sizeof(FX_WORD) * 2 - sizeof(FX_DWORD) * 2) {
+        for (int32_t i = 0, sz = dwCount; i < sz; i++) {
+          if (p > pBuffer + nLength)
+            break;
+
+          FX_DWORD dwNameLen = *((FX_DWORD*)p);
+          p += sizeof(FX_DWORD);
+
+          if (p + dwNameLen > pBuffer + nLength)
+            break;
+
+          CFX_ByteString sEntry = CFX_ByteString(p, dwNameLen);
+          p += sizeof(char) * dwNameLen;
+
+          FX_WORD wDataType = *((FX_WORD*)p);
+          p += sizeof(FX_WORD);
+
+          switch (wDataType) {
+            case JS_GLOBALDATA_TYPE_NUMBER: {
+              double dData = 0;
+              switch (wVersion) {
+                case 1: {
+                  FX_DWORD dwData = *((FX_DWORD*)p);
+                  p += sizeof(FX_DWORD);
+                  dData = dwData;
+                } break;
+                case 2: {
+                  dData = *((double*)p);
+                  p += sizeof(double);
+                } break;
+              }
+              SetGlobalVariableNumber(sEntry, dData);
+              SetGlobalVariablePersistent(sEntry, TRUE);
+            } break;
+            case JS_GLOBALDATA_TYPE_BOOLEAN: {
+              FX_WORD wData = *((FX_WORD*)p);
+              p += sizeof(FX_WORD);
+              SetGlobalVariableBoolean(sEntry, (bool)(wData == 1));
+              SetGlobalVariablePersistent(sEntry, TRUE);
+            } break;
+            case JS_GLOBALDATA_TYPE_STRING: {
+              FX_DWORD dwLength = *((FX_DWORD*)p);
+              p += sizeof(FX_DWORD);
+
+              if (p + dwLength > pBuffer + nLength)
+                break;
+
+              SetGlobalVariableString(sEntry, CFX_ByteString(p, dwLength));
+              SetGlobalVariablePersistent(sEntry, TRUE);
+              p += sizeof(char) * dwLength;
+            } break;
+            case JS_GLOBALDATA_TYPE_NULL: {
+              SetGlobalVariableNull(sEntry);
+              SetGlobalVariablePersistent(sEntry, TRUE);
             }
+          }
         }
-        FX_Free(pBuffer);
+      }
     }
+    FX_Free(pBuffer);
+  }
 }
 
 /*
@@ -471,104 +415,96 @@ struct js_global_datafile_data
 };
 */
 
-void CJS_GlobalData::SaveGlobalPersisitentVariables()
-{
-    FX_DWORD nCount = 0;
-    CFX_BinaryBuf sData;
+void CJS_GlobalData::SaveGlobalPersisitentVariables() {
+  FX_DWORD nCount = 0;
+  CFX_BinaryBuf sData;
 
-    for (int i=0,sz=m_arrayGlobalData.GetSize(); i<sz; i++)
-    {
-        CJS_GlobalData_Element* pElement = m_arrayGlobalData.GetAt(i);
-        ASSERT(pElement != NULL);
+  for (int i = 0, sz = m_arrayGlobalData.GetSize(); i < sz; i++) {
+    CJS_GlobalData_Element* pElement = m_arrayGlobalData.GetAt(i);
+    ASSERT(pElement != NULL);
 
-        if (pElement->bPersistent)
-        {
-            CFX_BinaryBuf sElement;
-            MakeByteString(pElement->data.sKey, &pElement->data, sElement);
+    if (pElement->bPersistent) {
+      CFX_BinaryBuf sElement;
+      MakeByteString(pElement->data.sKey, &pElement->data, sElement);
 
-            if (sData.GetSize() + sElement.GetSize() > JS_MAXGLOBALDATA)
-                break;
+      if (sData.GetSize() + sElement.GetSize() > JS_MAXGLOBALDATA)
+        break;
 
-            sData.AppendBlock(sElement.GetBuffer(), sElement.GetSize());
-            nCount++;
-        }
+      sData.AppendBlock(sElement.GetBuffer(), sElement.GetSize());
+      nCount++;
     }
+  }
 
-    CFX_BinaryBuf sFile;
+  CFX_BinaryBuf sFile;
 
-    FX_WORD wType = (FX_WORD)(('X' << 8) | 'F');
-    sFile.AppendBlock(&wType, sizeof(FX_WORD));
-    FX_WORD wVersion = 2;
-    sFile.AppendBlock(&wVersion, sizeof(FX_WORD));
-    sFile.AppendBlock(&nCount, sizeof(FX_DWORD));
-    FX_DWORD dwSize = sData.GetSize();
-    sFile.AppendBlock(&dwSize, sizeof(FX_DWORD));
+  FX_WORD wType = (FX_WORD)(('X' << 8) | 'F');
+  sFile.AppendBlock(&wType, sizeof(FX_WORD));
+  FX_WORD wVersion = 2;
+  sFile.AppendBlock(&wVersion, sizeof(FX_WORD));
+  sFile.AppendBlock(&nCount, sizeof(FX_DWORD));
+  FX_DWORD dwSize = sData.GetSize();
+  sFile.AppendBlock(&dwSize, sizeof(FX_DWORD));
 
-    sFile.AppendBlock(sData.GetBuffer(), sData.GetSize());
+  sFile.AppendBlock(sData.GetBuffer(), sData.GetSize());
 
-    CRYPT_ArcFourCryptBlock(sFile.GetBuffer(), sFile.GetSize(), JS_RC4KEY, sizeof(JS_RC4KEY));
-    WriteFileBuffer(m_sFilePath.c_str(), (const FX_CHAR*)sFile.GetBuffer(), sFile.GetSize());
+  CRYPT_ArcFourCryptBlock(sFile.GetBuffer(), sFile.GetSize(), JS_RC4KEY,
+                          sizeof(JS_RC4KEY));
+  WriteFileBuffer(m_sFilePath.c_str(), (const FX_CHAR*)sFile.GetBuffer(),
+                  sFile.GetSize());
 }
 
-void CJS_GlobalData::LoadFileBuffer(const FX_WCHAR* sFilePath, uint8_t*& pBuffer, int32_t& nLength)
-{
-//UnSupport.
+void CJS_GlobalData::LoadFileBuffer(const FX_WCHAR* sFilePath,
+                                    uint8_t*& pBuffer,
+                                    int32_t& nLength) {
+  // UnSupport.
 }
 
-void CJS_GlobalData::WriteFileBuffer(const FX_WCHAR* sFilePath, const FX_CHAR* pBuffer, int32_t nLength)
-{
-//UnSupport.
+void CJS_GlobalData::WriteFileBuffer(const FX_WCHAR* sFilePath,
+                                     const FX_CHAR* pBuffer,
+                                     int32_t nLength) {
+  // UnSupport.
 }
 
-void CJS_GlobalData::MakeByteString(const CFX_ByteString& name, CJS_KeyValue* pData, CFX_BinaryBuf& sData)
-{
-    FX_WORD wType = (FX_WORD)pData->nType;
-    switch (wType)
-    {
-    case JS_GLOBALDATA_TYPE_NUMBER:
-        {
-            FX_DWORD dwNameLen = (FX_DWORD)name.GetLength();
-            sData.AppendBlock(&dwNameLen, sizeof(FX_DWORD));
-            sData.AppendString(name);
-            sData.AppendBlock(&wType, sizeof(FX_WORD));
-
-            double dData = pData->dData;
-            sData.AppendBlock(&dData, sizeof(double));
-        }
-        break;
-    case JS_GLOBALDATA_TYPE_BOOLEAN:
-        {
-            FX_DWORD dwNameLen = (FX_DWORD)name.GetLength();
-            sData.AppendBlock(&dwNameLen, sizeof(FX_DWORD));
-            sData.AppendString(name);
-            sData.AppendBlock(&wType, sizeof(FX_WORD));
-
-            FX_WORD wData = (FX_WORD)pData->bData;
-            sData.AppendBlock(&wData, sizeof(FX_WORD));
-        }
-        break;
-    case JS_GLOBALDATA_TYPE_STRING:
-        {
-            FX_DWORD dwNameLen = (FX_DWORD)name.GetLength();
-            sData.AppendBlock(&dwNameLen, sizeof(FX_DWORD));
-            sData.AppendString(name);
-            sData.AppendBlock(&wType, sizeof(FX_WORD));
-
-            FX_DWORD dwDataLen = (FX_DWORD)pData->sData.GetLength();
-            sData.AppendBlock(&dwDataLen, sizeof(FX_DWORD));
-            sData.AppendString(pData->sData);
-        }
-        break;
-    case JS_GLOBALDATA_TYPE_NULL:
-        {
-            FX_DWORD dwNameLen = (FX_DWORD)name.GetLength();
-            sData.AppendBlock(&dwNameLen, sizeof(FX_DWORD));
-            sData.AppendString(name);
-            sData.AppendBlock(&wType, sizeof(FX_DWORD));
-        }
-        break;
+void CJS_GlobalData::MakeByteString(const CFX_ByteString& name,
+                                    CJS_KeyValue* pData,
+                                    CFX_BinaryBuf& sData) {
+  FX_WORD wType = (FX_WORD)pData->nType;
+  switch (wType) {
+    case JS_GLOBALDATA_TYPE_NUMBER: {
+      FX_DWORD dwNameLen = (FX_DWORD)name.GetLength();
+      sData.AppendBlock(&dwNameLen, sizeof(FX_DWORD));
+      sData.AppendString(name);
+      sData.AppendBlock(&wType, sizeof(FX_WORD));
+
+      double dData = pData->dData;
+      sData.AppendBlock(&dData, sizeof(double));
+    } break;
+    case JS_GLOBALDATA_TYPE_BOOLEAN: {
+      FX_DWORD dwNameLen = (FX_DWORD)name.GetLength();
+      sData.AppendBlock(&dwNameLen, sizeof(FX_DWORD));
+      sData.AppendString(name);
+      sData.AppendBlock(&wType, sizeof(FX_WORD));
+
+      FX_WORD wData = (FX_WORD)pData->bData;
+      sData.AppendBlock(&wData, sizeof(FX_WORD));
+    } break;
+    case JS_GLOBALDATA_TYPE_STRING: {
+      FX_DWORD dwNameLen = (FX_DWORD)name.GetLength();
+      sData.AppendBlock(&dwNameLen, sizeof(FX_DWORD));
+      sData.AppendString(name);
+      sData.AppendBlock(&wType, sizeof(FX_WORD));
+
+      FX_DWORD dwDataLen = (FX_DWORD)pData->sData.GetLength();
+      sData.AppendBlock(&dwDataLen, sizeof(FX_DWORD));
+      sData.AppendString(pData->sData);
+    } break;
+    case JS_GLOBALDATA_TYPE_NULL: {
+      FX_DWORD dwNameLen = (FX_DWORD)name.GetLength();
+      sData.AppendBlock(&dwNameLen, sizeof(FX_DWORD));
+      sData.AppendString(name);
+      sData.AppendBlock(&wType, sizeof(FX_DWORD));
+    } break;
     default:
-        break;
-    }
+      break;
+  }
 }
-
diff --git a/fpdfsdk/src/javascript/JS_Object.cpp b/fpdfsdk/src/javascript/JS_Object.cpp
index 2ee23f8877..eb089ed563 100644
--- a/fpdfsdk/src/javascript/JS_Object.cpp
+++ b/fpdfsdk/src/javascript/JS_Object.cpp
@@ -10,137 +10,130 @@
 #include "../../include/javascript/JS_Object.h"
 #include "../../include/javascript/JS_Context.h"
 
-JS_TIMER_MAPARRAY& GetTimeMap()
-{
+JS_TIMER_MAPARRAY& GetTimeMap() {
   // Leak the timer array at shutdown.
   static auto* timeMap = new JS_TIMER_MAPARRAY;
   return *timeMap;
 }
 
-int FXJS_MsgBox(CPDFDoc_Environment* pApp, CPDFSDK_PageView* pPageView, const FX_WCHAR* swMsg, const FX_WCHAR* swTitle, FX_UINT nType, FX_UINT nIcon)
-{
-    if (!pApp)
-        return 0;
+int FXJS_MsgBox(CPDFDoc_Environment* pApp,
+                CPDFSDK_PageView* pPageView,
+                const FX_WCHAR* swMsg,
+                const FX_WCHAR* swTitle,
+                FX_UINT nType,
+                FX_UINT nIcon) {
+  if (!pApp)
+    return 0;
 
-    if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument())
-        pDoc->KillFocusAnnot();
+  if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument())
+    pDoc->KillFocusAnnot();
 
-    return pApp->JS_appAlert(swMsg, swTitle, nType, nIcon);
+  return pApp->JS_appAlert(swMsg, swTitle, nType, nIcon);
 }
 
-CPDFSDK_PageView* FXJS_GetPageView(IFXJS_Context* cc)
-{
-    if (CJS_Context* pContext = (CJS_Context *)cc)
-    {
-        if (pContext->GetReaderDocument())
-            return NULL;
-    }
-    return NULL;
+CPDFSDK_PageView* FXJS_GetPageView(IFXJS_Context* cc) {
+  if (CJS_Context* pContext = (CJS_Context*)cc) {
+    if (pContext->GetReaderDocument())
+      return NULL;
+  }
+  return NULL;
 }
 
-/* ---------------------------------  CJS_EmbedObj --------------------------------- */
+/* ---------------------------------  CJS_EmbedObj
+ * --------------------------------- */
 
-CJS_EmbedObj::CJS_EmbedObj(CJS_Object* pJSObject) :
-    m_pJSObject(pJSObject)
-{
-}
-
-CJS_EmbedObj::~CJS_EmbedObj()
-{
-    m_pJSObject = NULL;
+CJS_EmbedObj::CJS_EmbedObj(CJS_Object* pJSObject) : m_pJSObject(pJSObject) {}
 
+CJS_EmbedObj::~CJS_EmbedObj() {
+  m_pJSObject = NULL;
 }
 
-CPDFSDK_PageView* CJS_EmbedObj::JSGetPageView(IFXJS_Context* cc)
-{
-    return FXJS_GetPageView(cc);
+CPDFSDK_PageView* CJS_EmbedObj::JSGetPageView(IFXJS_Context* cc) {
+  return FXJS_GetPageView(cc);
 }
 
-int CJS_EmbedObj::MsgBox(CPDFDoc_Environment* pApp, CPDFSDK_PageView* pPageView,const FX_WCHAR* swMsg,const FX_WCHAR* swTitle,FX_UINT nType,FX_UINT nIcon)
-{
-    return FXJS_MsgBox(pApp, pPageView, swMsg, swTitle, nType, nIcon);
+int CJS_EmbedObj::MsgBox(CPDFDoc_Environment* pApp,
+                         CPDFSDK_PageView* pPageView,
+                         const FX_WCHAR* swMsg,
+                         const FX_WCHAR* swTitle,
+                         FX_UINT nType,
+                         FX_UINT nIcon) {
+  return FXJS_MsgBox(pApp, pPageView, swMsg, swTitle, nType, nIcon);
 }
 
-void CJS_EmbedObj::Alert(CJS_Context* pContext, const FX_WCHAR* swMsg)
-{
-    CJS_Object::Alert(pContext, swMsg);
+void CJS_EmbedObj::Alert(CJS_Context* pContext, const FX_WCHAR* swMsg) {
+  CJS_Object::Alert(pContext, swMsg);
 }
 
-CJS_Timer* CJS_EmbedObj::BeginTimer(CPDFDoc_Environment* pApp, FX_UINT nElapse)
-{
-    CJS_Timer* pTimer = new CJS_Timer(this,pApp);
-    pTimer->SetJSTimer(nElapse);
+CJS_Timer* CJS_EmbedObj::BeginTimer(CPDFDoc_Environment* pApp,
+                                    FX_UINT nElapse) {
+  CJS_Timer* pTimer = new CJS_Timer(this, pApp);
+  pTimer->SetJSTimer(nElapse);
 
-    return pTimer;
+  return pTimer;
 }
 
-void CJS_EmbedObj::EndTimer(CJS_Timer* pTimer)
-{
-    ASSERT(pTimer != NULL);
-    pTimer->KillJSTimer();
-    delete pTimer;
+void CJS_EmbedObj::EndTimer(CJS_Timer* pTimer) {
+  ASSERT(pTimer != NULL);
+  pTimer->KillJSTimer();
+  delete pTimer;
 }
 
-/* ---------------------------------  CJS_Object --------------------------------- */
-void  FreeObject(const v8::WeakCallbackInfo<CJS_Object>& data)
-{
-    CJS_Object* pJSObj  = data.GetParameter();
-        pJSObj->ExitInstance();
-        delete pJSObj;
-    JS_FreePrivate(data.GetInternalField(0));
+/* ---------------------------------  CJS_Object
+ * --------------------------------- */
+void FreeObject(const v8::WeakCallbackInfo<CJS_Object>& data) {
+  CJS_Object* pJSObj = data.GetParameter();
+  pJSObj->ExitInstance();
+  delete pJSObj;
+  JS_FreePrivate(data.GetInternalField(0));
 }
 
-void  DisposeObject(const v8::WeakCallbackInfo<CJS_Object>& data)
-{
-    CJS_Object* pJSObj  = data.GetParameter();
-        pJSObj->Dispose();
-        data.SetSecondPassCallback(FreeObject);
+void DisposeObject(const v8::WeakCallbackInfo<CJS_Object>& data) {
+  CJS_Object* pJSObj = data.GetParameter();
+  pJSObj->Dispose();
+  data.SetSecondPassCallback(FreeObject);
 }
 
-CJS_Object::CJS_Object(JSFXObject pObject) :m_pEmbedObj(NULL)
-{
-    v8::Local<v8::Context> context = pObject->CreationContext();
-    m_pIsolate = context->GetIsolate();
-    m_pObject.Reset(m_pIsolate, pObject);
+CJS_Object::CJS_Object(JSFXObject pObject) : m_pEmbedObj(NULL) {
+  v8::Local<v8::Context> context = pObject->CreationContext();
+  m_pIsolate = context->GetIsolate();
+  m_pObject.Reset(m_pIsolate, pObject);
 };
 
-CJS_Object::~CJS_Object(void)
-{
-    delete m_pEmbedObj;
-    m_pEmbedObj = NULL;
+CJS_Object::~CJS_Object(void) {
+  delete m_pEmbedObj;
+  m_pEmbedObj = NULL;
 
-    m_pObject.Reset();
+  m_pObject.Reset();
 };
 
-void    CJS_Object::MakeWeak()
-{
-    m_pObject.SetWeak(
-            this, DisposeObject, v8::WeakCallbackType::kInternalFields);
+void CJS_Object::MakeWeak() {
+  m_pObject.SetWeak(this, DisposeObject, v8::WeakCallbackType::kInternalFields);
 }
 
-void    CJS_Object::Dispose()
-{
-        m_pObject.Reset();
+void CJS_Object::Dispose() {
+  m_pObject.Reset();
 }
 
-CPDFSDK_PageView* CJS_Object::JSGetPageView(IFXJS_Context* cc)
-{
-    return FXJS_GetPageView(cc);
+CPDFSDK_PageView* CJS_Object::JSGetPageView(IFXJS_Context* cc) {
+  return FXJS_GetPageView(cc);
 }
 
-int CJS_Object::MsgBox(CPDFDoc_Environment* pApp, CPDFSDK_PageView* pPageView, const FX_WCHAR* swMsg, const FX_WCHAR* swTitle, FX_UINT nType, FX_UINT nIcon)
-{
-    return FXJS_MsgBox(pApp, pPageView, swMsg, swTitle, nType, nIcon);
+int CJS_Object::MsgBox(CPDFDoc_Environment* pApp,
+                       CPDFSDK_PageView* pPageView,
+                       const FX_WCHAR* swMsg,
+                       const FX_WCHAR* swTitle,
+                       FX_UINT nType,
+                       FX_UINT nIcon) {
+  return FXJS_MsgBox(pApp, pPageView, swMsg, swTitle, nType, nIcon);
 }
 
-void CJS_Object::Alert(CJS_Context* pContext, const FX_WCHAR* swMsg)
-{
-    ASSERT(pContext != NULL);
+void CJS_Object::Alert(CJS_Context* pContext, const FX_WCHAR* swMsg) {
+  ASSERT(pContext != NULL);
 
-    if (pContext->IsMsgBoxEnabled())
-    {
-        CPDFDoc_Environment* pApp = pContext->GetReaderApp();
-        if(pApp)
-            pApp->JS_appAlert(swMsg, NULL, 0, 3);
-    }
+  if (pContext->IsMsgBoxEnabled()) {
+    CPDFDoc_Environment* pApp = pContext->GetReaderApp();
+    if (pApp)
+      pApp->JS_appAlert(swMsg, NULL, 0, 3);
+  }
 }
diff --git a/fpdfsdk/src/javascript/JS_Runtime.cpp b/fpdfsdk/src/javascript/JS_Runtime.cpp
index d68b268591..7dfe326c54 100644
--- a/fpdfsdk/src/javascript/JS_Runtime.cpp
+++ b/fpdfsdk/src/javascript/JS_Runtime.cpp
@@ -29,376 +29,372 @@
 #include "../../include/fpdfxfa/fpdfxfa_app.h"
 #include "../../../xfa/src/fxjse/src/value.h"
 
-CJS_RuntimeFactory::~CJS_RuntimeFactory()
-{
-}
-
-IFXJS_Runtime*                  CJS_RuntimeFactory::NewJSRuntime(CPDFDoc_Environment* pApp)
-{
-	if (!m_bInit)
-	{
-		unsigned int embedderDataSlot = 0;
-		if (pApp->GetFormFillInfo()->m_pJsPlatform->version >= 2) {
-			embedderDataSlot = pApp->GetFormFillInfo()->m_pJsPlatform->m_v8EmbedderSlot;
-                }
-		JS_Initial(embedderDataSlot);
-		m_bInit = TRUE;
-	}
-	return new CJS_Runtime(pApp);
+CJS_RuntimeFactory::~CJS_RuntimeFactory() {}
+
+IFXJS_Runtime* CJS_RuntimeFactory::NewJSRuntime(CPDFDoc_Environment* pApp) {
+  if (!m_bInit) {
+    unsigned int embedderDataSlot = 0;
+    if (pApp->GetFormFillInfo()->m_pJsPlatform->version >= 2) {
+      embedderDataSlot =
+          pApp->GetFormFillInfo()->m_pJsPlatform->m_v8EmbedderSlot;
+    }
+    JS_Initial(embedderDataSlot);
+    m_bInit = TRUE;
+  }
+  return new CJS_Runtime(pApp);
 }
-void                            CJS_RuntimeFactory::AddRef()
-{
-    //to do.Should be implemented as atom manipulation.
-    m_nRef++;
+void CJS_RuntimeFactory::AddRef() {
+  // to do.Should be implemented as atom manipulation.
+  m_nRef++;
 }
-void                            CJS_RuntimeFactory::Release()
-{
-    if(m_bInit)
-    {
-        //to do.Should be implemented as atom manipulation.
-        if (--m_nRef == 0)
-        {
-            JS_Release();
-            ReleaseGlobalData();
-            m_bInit = FALSE;
-        }
+void CJS_RuntimeFactory::Release() {
+  if (m_bInit) {
+    // to do.Should be implemented as atom manipulation.
+    if (--m_nRef == 0) {
+      JS_Release();
+      ReleaseGlobalData();
+      m_bInit = FALSE;
     }
+  }
 }
 
-void                            CJS_RuntimeFactory::DeleteJSRuntime(IFXJS_Runtime* pRuntime)
-{
-    delete (CJS_Runtime*)pRuntime;
+void CJS_RuntimeFactory::DeleteJSRuntime(IFXJS_Runtime* pRuntime) {
+  delete (CJS_Runtime*)pRuntime;
 }
 
-CJS_GlobalData* CJS_RuntimeFactory::NewGlobalData(CPDFDoc_Environment* pApp)
-{
-    if (m_pGlobalData)
-    {
-        m_nGlobalDataCount++;
-        return m_pGlobalData;
-    }
-    m_nGlobalDataCount = 1;
-    m_pGlobalData = new CJS_GlobalData(pApp);
+CJS_GlobalData* CJS_RuntimeFactory::NewGlobalData(CPDFDoc_Environment* pApp) {
+  if (m_pGlobalData) {
+    m_nGlobalDataCount++;
     return m_pGlobalData;
+  }
+  m_nGlobalDataCount = 1;
+  m_pGlobalData = new CJS_GlobalData(pApp);
+  return m_pGlobalData;
 }
 
-void CJS_RuntimeFactory::ReleaseGlobalData()
-{
-    m_nGlobalDataCount--;
+void CJS_RuntimeFactory::ReleaseGlobalData() {
+  m_nGlobalDataCount--;
 
-    if (m_nGlobalDataCount <= 0)
-    {
-        delete m_pGlobalData;
-        m_pGlobalData = NULL;
-    }
+  if (m_nGlobalDataCount <= 0) {
+    delete m_pGlobalData;
+    m_pGlobalData = NULL;
+  }
 }
 
 void* CJS_ArrayBufferAllocator::Allocate(size_t length) {
-    return calloc(1, length);
+  return calloc(1, length);
 }
 
 void* CJS_ArrayBufferAllocator::AllocateUninitialized(size_t length) {
-    return malloc(length);
+  return malloc(length);
 }
 
 void CJS_ArrayBufferAllocator::Free(void* data, size_t length) {
-    free(data);
+  free(data);
 }
 
 /* ------------------------------ CJS_Runtime ------------------------------ */
-extern v8::Global<v8::ObjectTemplate>& _getGlobalObjectTemplate(IJS_Runtime* pJSRuntime);
-CJS_Runtime::CJS_Runtime(CPDFDoc_Environment* pApp) :
-	m_pApp(pApp),
-	m_pDocument(NULL),
-	m_bBlocking(FALSE),
-	m_pFieldEventPath(NULL),
-        m_isolate(NULL)
-{
-	if (CPDFXFA_App::GetInstance()->GetJSERuntime()) {
-		// TODO(tsepez): CPDFXFA_App should also use the embedder provided isolate.
-		m_isolate = (v8::Isolate*)CPDFXFA_App::GetInstance()->GetJSERuntime();
-	} else if (m_pApp->GetFormFillInfo()->m_pJsPlatform->version >= 2) {
-		m_isolate = reinterpret_cast<v8::Isolate*>(m_pApp->GetFormFillInfo()->m_pJsPlatform->m_isolate);
-	}
-	if (!m_isolate) {
-		m_pArrayBufferAllocator.reset(new CJS_ArrayBufferAllocator());
-
-		v8::Isolate::CreateParams params;
-		params.array_buffer_allocator = m_pArrayBufferAllocator.get();
-		m_isolate = v8::Isolate::New(params);
-        }
-
-	v8::Isolate* isolate = m_isolate;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::Locker locker(isolate);
-	v8::HandleScope handle_scope(isolate);
-	if (CPDFXFA_App::GetInstance()->InitRuntime(FALSE)) {
-		CJS_Context * pContext = (CJS_Context*)NewContext();
-		JS_InitialRuntime(*this, this, pContext, m_context);
-		ReleaseContext(pContext);
-		return;
-	}
-
-    InitJSObjects();
-
-    CJS_Context * pContext = (CJS_Context*)NewContext();
+extern v8::Global<v8::ObjectTemplate>& _getGlobalObjectTemplate(
+    IJS_Runtime* pJSRuntime);
+CJS_Runtime::CJS_Runtime(CPDFDoc_Environment* pApp)
+    : m_pApp(pApp),
+      m_pDocument(NULL),
+      m_bBlocking(FALSE),
+      m_pFieldEventPath(NULL),
+      m_isolate(NULL) {
+  if (CPDFXFA_App::GetInstance()->GetJSERuntime()) {
+    // TODO(tsepez): CPDFXFA_App should also use the embedder provided isolate.
+    m_isolate = (v8::Isolate*)CPDFXFA_App::GetInstance()->GetJSERuntime();
+  } else if (m_pApp->GetFormFillInfo()->m_pJsPlatform->version >= 2) {
+    m_isolate = reinterpret_cast<v8::Isolate*>(
+        m_pApp->GetFormFillInfo()->m_pJsPlatform->m_isolate);
+  }
+  if (!m_isolate) {
+    m_pArrayBufferAllocator.reset(new CJS_ArrayBufferAllocator());
+
+    v8::Isolate::CreateParams params;
+    params.array_buffer_allocator = m_pArrayBufferAllocator.get();
+    m_isolate = v8::Isolate::New(params);
+  }
+
+  v8::Isolate* isolate = m_isolate;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::Locker locker(isolate);
+  v8::HandleScope handle_scope(isolate);
+  if (CPDFXFA_App::GetInstance()->InitRuntime(FALSE)) {
+    CJS_Context* pContext = (CJS_Context*)NewContext();
     JS_InitialRuntime(*this, this, pContext, m_context);
     ReleaseContext(pContext);
+    return;
+  }
+
+  InitJSObjects();
+
+  CJS_Context* pContext = (CJS_Context*)NewContext();
+  JS_InitialRuntime(*this, this, pContext, m_context);
+  ReleaseContext(pContext);
 }
 
-CJS_Runtime::~CJS_Runtime()
-{
-	int size = m_ContextArray.GetSize();
-	for (int i=0;i < size; i++)
-		delete m_ContextArray.GetAt(i);
+CJS_Runtime::~CJS_Runtime() {
+  int size = m_ContextArray.GetSize();
+  for (int i = 0; i < size; i++)
+    delete m_ContextArray.GetAt(i);
 
-    m_ContextArray.RemoveAll();
+  m_ContextArray.RemoveAll();
 
-    RemoveEventsInLoop(m_pFieldEventPath);
+  RemoveEventsInLoop(m_pFieldEventPath);
 
-    m_pApp = NULL;
-    m_pDocument = NULL;
-    m_pFieldEventPath = NULL;
-    m_context.Reset();
+  m_pApp = NULL;
+  m_pDocument = NULL;
+  m_pFieldEventPath = NULL;
+  m_context.Reset();
 
-	m_isolate = NULL;
+  m_isolate = NULL;
 }
 
-FX_BOOL CJS_Runtime::InitJSObjects()
-{
-	v8::Isolate::Scope isolate_scope(GetIsolate());
-	v8::Locker locker(GetIsolate());
-	v8::HandleScope handle_scope(GetIsolate());
-	v8::Local<v8::Context> context = v8::Context::New(GetIsolate());
-	v8::Context::Scope context_scope(context);
-	//0 - 8
-	if (CJS_Border::Init(*this, JS_STATIC) < 0) return FALSE;
-	if (CJS_Display::Init(*this, JS_STATIC) < 0) return FALSE;
-	if (CJS_Font::Init(*this, JS_STATIC) < 0) return FALSE;
-	if (CJS_Highlight::Init(*this, JS_STATIC) < 0) return FALSE;
-	if (CJS_Position::Init(*this, JS_STATIC) < 0) return FALSE;
-	if (CJS_ScaleHow::Init(*this, JS_STATIC) < 0) return FALSE;
-	if (CJS_ScaleWhen::Init(*this, JS_STATIC) < 0) return FALSE;
-	if (CJS_Style::Init(*this, JS_STATIC) < 0) return FALSE;
-	if (CJS_Zoomtype::Init(*this, JS_STATIC) < 0) return FALSE;
-
-	//9 - 11
-	if (CJS_App::Init(*this, JS_STATIC) < 0) return FALSE;
-	if (CJS_Color::Init(*this, JS_STATIC) < 0) return FALSE;
-	if (CJS_Console::Init(*this, JS_STATIC) < 0) return FALSE;
-
-	//12 - 14
-	if (CJS_Document::Init(*this, JS_DYNAMIC) < 0) return FALSE;
-	if (CJS_Event::Init(*this, JS_STATIC) < 0) return FALSE;
-	if (CJS_Field::Init(*this, JS_DYNAMIC) < 0) return FALSE;
-
-	//15 - 17
-	if (CJS_Global::Init(*this, JS_STATIC) < 0) return FALSE;
-	if (CJS_Icon::Init(*this, JS_DYNAMIC) < 0) return FALSE;
-	if (CJS_Util::Init(*this, JS_STATIC) < 0) return FALSE;
-
-	if (CJS_PublicMethods::Init(*this) < 0) return FALSE;
-	if (CJS_GlobalConsts::Init(*this) < 0) return FALSE;
-	if (CJS_GlobalArrays::Init(*this) < 0) return FALSE;
-
-	if (CJS_TimerObj::Init(*this, JS_DYNAMIC) < 0) return FALSE;
-	if (CJS_PrintParamsObj::Init(*this, JS_DYNAMIC) <0) return FALSE;
-
-	return TRUE;
+FX_BOOL CJS_Runtime::InitJSObjects() {
+  v8::Isolate::Scope isolate_scope(GetIsolate());
+  v8::Locker locker(GetIsolate());
+  v8::HandleScope handle_scope(GetIsolate());
+  v8::Local<v8::Context> context = v8::Context::New(GetIsolate());
+  v8::Context::Scope context_scope(context);
+  // 0 - 8
+  if (CJS_Border::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+  if (CJS_Display::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+  if (CJS_Font::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+  if (CJS_Highlight::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+  if (CJS_Position::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+  if (CJS_ScaleHow::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+  if (CJS_ScaleWhen::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+  if (CJS_Style::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+  if (CJS_Zoomtype::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+
+  // 9 - 11
+  if (CJS_App::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+  if (CJS_Color::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+  if (CJS_Console::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+
+  // 12 - 14
+  if (CJS_Document::Init(*this, JS_DYNAMIC) < 0)
+    return FALSE;
+  if (CJS_Event::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+  if (CJS_Field::Init(*this, JS_DYNAMIC) < 0)
+    return FALSE;
+
+  // 15 - 17
+  if (CJS_Global::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+  if (CJS_Icon::Init(*this, JS_DYNAMIC) < 0)
+    return FALSE;
+  if (CJS_Util::Init(*this, JS_STATIC) < 0)
+    return FALSE;
+
+  if (CJS_PublicMethods::Init(*this) < 0)
+    return FALSE;
+  if (CJS_GlobalConsts::Init(*this) < 0)
+    return FALSE;
+  if (CJS_GlobalArrays::Init(*this) < 0)
+    return FALSE;
+
+  if (CJS_TimerObj::Init(*this, JS_DYNAMIC) < 0)
+    return FALSE;
+  if (CJS_PrintParamsObj::Init(*this, JS_DYNAMIC) < 0)
+    return FALSE;
+
+  return TRUE;
 }
 
-IFXJS_Context* CJS_Runtime::NewContext()
-{
-    CJS_Context * p = new CJS_Context(this);
-    m_ContextArray.Add(p);
-    return p;
+IFXJS_Context* CJS_Runtime::NewContext() {
+  CJS_Context* p = new CJS_Context(this);
+  m_ContextArray.Add(p);
+  return p;
 }
 
-void CJS_Runtime::ReleaseContext(IFXJS_Context * pContext)
-{
-    CJS_Context* pJSContext = (CJS_Context*)pContext;
-
-    for (int i=0, sz=m_ContextArray.GetSize(); i<sz; i++)
-    {
-        if (pJSContext == m_ContextArray.GetAt(i))
-        {
-            delete pJSContext;
-            m_ContextArray.RemoveAt(i);
-            break;
-        }
-    }
-}
+void CJS_Runtime::ReleaseContext(IFXJS_Context* pContext) {
+  CJS_Context* pJSContext = (CJS_Context*)pContext;
 
-IFXJS_Context*  CJS_Runtime::GetCurrentContext()
-{
-    if(!m_ContextArray.GetSize())
-        return NULL;
-    return m_ContextArray.GetAt(m_ContextArray.GetSize()-1);
+  for (int i = 0, sz = m_ContextArray.GetSize(); i < sz; i++) {
+    if (pJSContext == m_ContextArray.GetAt(i)) {
+      delete pJSContext;
+      m_ContextArray.RemoveAt(i);
+      break;
+    }
+  }
 }
 
-void CJS_Runtime::SetReaderDocument(CPDFSDK_Document* pReaderDoc)
-{
-	if (m_pDocument != pReaderDoc)
-	{
-		v8::Isolate::Scope isolate_scope(m_isolate);
-		v8::Locker locker(m_isolate);
-		v8::HandleScope handle_scope(m_isolate);
-		v8::Local<v8::Context> context =v8::Local<v8::Context>::New(m_isolate, m_context);
-		v8::Context::Scope context_scope(context);
-
-		m_pDocument = pReaderDoc;
-
-		if (pReaderDoc)
-		{
-			JSObject pThis = JS_GetThisObj(*this);
-			if(!pThis.IsEmpty())
-			{
-				if (JS_GetObjDefnID(pThis) == JS_GetObjDefnID(*this, L"Document"))
-				{
-					if (CJS_Document* pJSDocument = (CJS_Document*)JS_GetPrivate(pThis))
-					{
-						if (Document * pDocument = (Document*)pJSDocument->GetEmbedObject())
-							pDocument->AttachDoc(pReaderDoc);
-					}
-				}
-			}
-			JS_SetThisObj(*this, JS_GetObjDefnID(*this, L"Document"));
-		}
-		else
-		{
-			JS_SetThisObj(*this, JS_GetObjDefnID(*this, L"app"));
-		}
-	}
+IFXJS_Context* CJS_Runtime::GetCurrentContext() {
+  if (!m_ContextArray.GetSize())
+    return NULL;
+  return m_ContextArray.GetAt(m_ContextArray.GetSize() - 1);
 }
 
-FX_BOOL CJS_Runtime::AddEventToLoop(const CFX_WideString& sTargetName, JS_EVENT_T eEventType)
-{
-    if (m_pFieldEventPath == NULL)
-    {
-        m_pFieldEventPath = new CJS_FieldEvent;
-        m_pFieldEventPath->sTargetName = sTargetName;
-        m_pFieldEventPath->eEventType = eEventType;
-        m_pFieldEventPath->pNext = NULL;
-
-        return TRUE;
-    }
+void CJS_Runtime::SetReaderDocument(CPDFSDK_Document* pReaderDoc) {
+  if (m_pDocument != pReaderDoc) {
+    v8::Isolate::Scope isolate_scope(m_isolate);
+    v8::Locker locker(m_isolate);
+    v8::HandleScope handle_scope(m_isolate);
+    v8::Local<v8::Context> context =
+        v8::Local<v8::Context>::New(m_isolate, m_context);
+    v8::Context::Scope context_scope(context);
 
-    //to search
-    CJS_FieldEvent* p = m_pFieldEventPath;
-    CJS_FieldEvent* pLast = m_pFieldEventPath;
-    while (p)
-    {
-        if (p->eEventType == eEventType && p->sTargetName == sTargetName)
-            return FALSE;
+    m_pDocument = pReaderDoc;
 
-        pLast = p;
-        p = p->pNext;
+    if (pReaderDoc) {
+      JSObject pThis = JS_GetThisObj(*this);
+      if (!pThis.IsEmpty()) {
+        if (JS_GetObjDefnID(pThis) == JS_GetObjDefnID(*this, L"Document")) {
+          if (CJS_Document* pJSDocument = (CJS_Document*)JS_GetPrivate(pThis)) {
+            if (Document* pDocument = (Document*)pJSDocument->GetEmbedObject())
+              pDocument->AttachDoc(pReaderDoc);
+          }
+        }
+      }
+      JS_SetThisObj(*this, JS_GetObjDefnID(*this, L"Document"));
+    } else {
+      JS_SetThisObj(*this, JS_GetObjDefnID(*this, L"app"));
     }
+  }
+}
 
-    //to add
-    CJS_FieldEvent* pNew = new CJS_FieldEvent;
-    pNew->sTargetName = sTargetName;
-    pNew->eEventType = eEventType;
-    pNew->pNext = NULL;
-
-    pLast->pNext = pNew;
+FX_BOOL CJS_Runtime::AddEventToLoop(const CFX_WideString& sTargetName,
+                                    JS_EVENT_T eEventType) {
+  if (m_pFieldEventPath == NULL) {
+    m_pFieldEventPath = new CJS_FieldEvent;
+    m_pFieldEventPath->sTargetName = sTargetName;
+    m_pFieldEventPath->eEventType = eEventType;
+    m_pFieldEventPath->pNext = NULL;
 
     return TRUE;
-}
+  }
 
-void CJS_Runtime::RemoveEventInLoop(const CFX_WideString& sTargetName, JS_EVENT_T eEventType)
-{
-    FX_BOOL bFind = FALSE;
-
-    CJS_FieldEvent* p = m_pFieldEventPath;
-    CJS_FieldEvent* pLast = NULL;
-    while (p)
-    {
-        if (p->eEventType == eEventType && p->sTargetName == sTargetName)
-        {
-            bFind = TRUE;
-            break;
-        }
+  // to search
+  CJS_FieldEvent* p = m_pFieldEventPath;
+  CJS_FieldEvent* pLast = m_pFieldEventPath;
+  while (p) {
+    if (p->eEventType == eEventType && p->sTargetName == sTargetName)
+      return FALSE;
 
-        pLast = p;
-        p = p->pNext;
-    }
+    pLast = p;
+    p = p->pNext;
+  }
 
-    if (bFind)
-    {
-        RemoveEventsInLoop(p);
+  // to add
+  CJS_FieldEvent* pNew = new CJS_FieldEvent;
+  pNew->sTargetName = sTargetName;
+  pNew->eEventType = eEventType;
+  pNew->pNext = NULL;
 
-        if (p == m_pFieldEventPath)
-            m_pFieldEventPath = NULL;
+  pLast->pNext = pNew;
 
-        if (pLast)
-            pLast->pNext = NULL;
-    }
+  return TRUE;
 }
 
-void CJS_Runtime::RemoveEventsInLoop(CJS_FieldEvent* pStart)
-{
-    CJS_FieldEvent* p = pStart;
-
-    while (p)
-    {
-        CJS_FieldEvent* pOld = p;
-        p = pOld->pNext;
+void CJS_Runtime::RemoveEventInLoop(const CFX_WideString& sTargetName,
+                                    JS_EVENT_T eEventType) {
+  FX_BOOL bFind = FALSE;
 
-        delete pOld;
+  CJS_FieldEvent* p = m_pFieldEventPath;
+  CJS_FieldEvent* pLast = NULL;
+  while (p) {
+    if (p->eEventType == eEventType && p->sTargetName == sTargetName) {
+      bFind = TRUE;
+      break;
     }
-}
 
-v8::Local<v8::Context>  CJS_Runtime::NewJSContext()
-{
-    return v8::Local<v8::Context>::New(m_isolate, m_context);
-}
+    pLast = p;
+    p = p->pNext;
+  }
 
-CFX_WideString ChangeObjName(const CFX_WideString& str)
-{
-    CFX_WideString sRet = str;
-    sRet.Replace(L"_", L".");
-    return sRet;
-}
-FX_BOOL	CJS_Runtime::GetHValueByName(const CFX_ByteStringC& utf8Name, FXJSE_HVALUE hValue)
-{
-	const FX_CHAR* name = utf8Name.GetCStr();
+  if (bFind) {
+    RemoveEventsInLoop(p);
 
-	v8::Locker lock(GetIsolate());
-    v8::Isolate::Scope isolate_scope(GetIsolate());
-    v8::HandleScope handle_scope(GetIsolate());
-    v8::Local<v8::Context> context =
-        v8::Local<v8::Context>::New(GetIsolate(), m_context);
-    v8::Context::Scope context_scope(context);
+    if (p == m_pFieldEventPath)
+      m_pFieldEventPath = NULL;
 
+    if (pLast)
+      pLast->pNext = NULL;
+  }
+}
 
-	//v8::Local<v8::Context> tmpCotext = v8::Local<v8::Context>::New(GetIsolate(), m_context);
-	v8::Local<v8::Value> propvalue = context->Global()->Get(v8::String::NewFromUtf8(GetIsolate(), name, v8::String::kNormalString, utf8Name.GetLength()));
+void CJS_Runtime::RemoveEventsInLoop(CJS_FieldEvent* pStart) {
+  CJS_FieldEvent* p = pStart;
 
-	if (propvalue.IsEmpty()) {
-		FXJSE_Value_SetUndefined(hValue);
-		return FALSE;
-	}
-	((CFXJSE_Value*)hValue)->ForceSetValue(propvalue);
+  while (p) {
+    CJS_FieldEvent* pOld = p;
+    p = pOld->pNext;
 
-	return TRUE;
+    delete pOld;
+  }
 }
-FX_BOOL	CJS_Runtime::SetHValueByName(const CFX_ByteStringC& utf8Name, FXJSE_HVALUE hValue)
-{
-	if (utf8Name.IsEmpty() || hValue == NULL)
-		return FALSE;
-	const FX_CHAR* name = utf8Name.GetCStr();
-	v8::Isolate* pIsolate = GetIsolate();
-	v8::Locker lock(pIsolate);
-    v8::Isolate::Scope isolate_scope(pIsolate);
-    v8::HandleScope handle_scope(pIsolate);
-    v8::Local<v8::Context> context =
-        v8::Local<v8::Context>::New(pIsolate, m_context);
-    v8::Context::Scope context_scope(context);
 
-	//v8::Local<v8::Context> tmpCotext = v8::Local<v8::Context>::New(GetIsolate(), m_context);
-	v8::Local<v8::Value> propvalue = v8::Local<v8::Value>::New(GetIsolate(),((CFXJSE_Value*)hValue)->DirectGetValue());
-	context->Global()->Set(v8::String::NewFromUtf8(pIsolate, name, v8::String::kNormalString, utf8Name.GetLength()), propvalue);
+v8::Local<v8::Context> CJS_Runtime::NewJSContext() {
+  return v8::Local<v8::Context>::New(m_isolate, m_context);
+}
 
-	return TRUE;
+CFX_WideString ChangeObjName(const CFX_WideString& str) {
+  CFX_WideString sRet = str;
+  sRet.Replace(L"_", L".");
+  return sRet;
+}
+FX_BOOL CJS_Runtime::GetHValueByName(const CFX_ByteStringC& utf8Name,
+                                     FXJSE_HVALUE hValue) {
+  const FX_CHAR* name = utf8Name.GetCStr();
+
+  v8::Locker lock(GetIsolate());
+  v8::Isolate::Scope isolate_scope(GetIsolate());
+  v8::HandleScope handle_scope(GetIsolate());
+  v8::Local<v8::Context> context =
+      v8::Local<v8::Context>::New(GetIsolate(), m_context);
+  v8::Context::Scope context_scope(context);
+
+  // v8::Local<v8::Context> tmpCotext =
+  // v8::Local<v8::Context>::New(GetIsolate(), m_context);
+  v8::Local<v8::Value> propvalue =
+      context->Global()->Get(v8::String::NewFromUtf8(
+          GetIsolate(), name, v8::String::kNormalString, utf8Name.GetLength()));
+
+  if (propvalue.IsEmpty()) {
+    FXJSE_Value_SetUndefined(hValue);
+    return FALSE;
+  }
+  ((CFXJSE_Value*)hValue)->ForceSetValue(propvalue);
+
+  return TRUE;
+}
+FX_BOOL CJS_Runtime::SetHValueByName(const CFX_ByteStringC& utf8Name,
+                                     FXJSE_HVALUE hValue) {
+  if (utf8Name.IsEmpty() || hValue == NULL)
+    return FALSE;
+  const FX_CHAR* name = utf8Name.GetCStr();
+  v8::Isolate* pIsolate = GetIsolate();
+  v8::Locker lock(pIsolate);
+  v8::Isolate::Scope isolate_scope(pIsolate);
+  v8::HandleScope handle_scope(pIsolate);
+  v8::Local<v8::Context> context =
+      v8::Local<v8::Context>::New(pIsolate, m_context);
+  v8::Context::Scope context_scope(context);
+
+  // v8::Local<v8::Context> tmpCotext =
+  // v8::Local<v8::Context>::New(GetIsolate(), m_context);
+  v8::Local<v8::Value> propvalue = v8::Local<v8::Value>::New(
+      GetIsolate(), ((CFXJSE_Value*)hValue)->DirectGetValue());
+  context->Global()->Set(
+      v8::String::NewFromUtf8(pIsolate, name, v8::String::kNormalString,
+                              utf8Name.GetLength()),
+      propvalue);
+
+  return TRUE;
 }
diff --git a/fpdfsdk/src/javascript/JS_Value.cpp b/fpdfsdk/src/javascript/JS_Value.cpp
index 058f2eaf45..faa1eeb6fc 100644
--- a/fpdfsdk/src/javascript/JS_Value.cpp
+++ b/fpdfsdk/src/javascript/JS_Value.cpp
@@ -12,651 +12,577 @@
 
 /* ---------------------------- CJS_Value ---------------------------- */
 
-CJS_Value::CJS_Value(v8::Isolate* isolate) : m_eType(VT_unknown),m_isolate(isolate)
-{
-}
-CJS_Value::CJS_Value(v8::Isolate* isolate, v8::Local<v8::Value> pValue,FXJSVALUETYPE t) :
-	m_pValue(pValue), m_eType(t), m_isolate(isolate)
-{
-}
+CJS_Value::CJS_Value(v8::Isolate* isolate)
+    : m_eType(VT_unknown), m_isolate(isolate) {}
+CJS_Value::CJS_Value(v8::Isolate* isolate,
+                     v8::Local<v8::Value> pValue,
+                     FXJSVALUETYPE t)
+    : m_pValue(pValue), m_eType(t), m_isolate(isolate) {}
 
-CJS_Value::CJS_Value(v8::Isolate* isolate, const int &iValue):m_isolate(isolate)
-{
-	operator =(iValue);
+CJS_Value::CJS_Value(v8::Isolate* isolate, const int& iValue)
+    : m_isolate(isolate) {
+  operator=(iValue);
 }
 
-CJS_Value::CJS_Value(v8::Isolate* isolate, const bool &bValue):m_isolate(isolate)
-{
-	operator =(bValue);
+CJS_Value::CJS_Value(v8::Isolate* isolate, const bool& bValue)
+    : m_isolate(isolate) {
+  operator=(bValue);
 }
 
-CJS_Value::CJS_Value(v8::Isolate* isolate, const float &fValue):m_isolate(isolate)
-{
-	operator =(fValue);
+CJS_Value::CJS_Value(v8::Isolate* isolate, const float& fValue)
+    : m_isolate(isolate) {
+  operator=(fValue);
 }
 
-CJS_Value::CJS_Value(v8::Isolate* isolate, const double &dValue):m_isolate(isolate)
-{
-	operator =(dValue);
+CJS_Value::CJS_Value(v8::Isolate* isolate, const double& dValue)
+    : m_isolate(isolate) {
+  operator=(dValue);
 }
 
-CJS_Value::CJS_Value(v8::Isolate* isolate, JSFXObject  pJsObj):m_isolate(isolate)
-{
-	operator =(pJsObj);
+CJS_Value::CJS_Value(v8::Isolate* isolate, JSFXObject pJsObj)
+    : m_isolate(isolate) {
+  operator=(pJsObj);
 }
 
-CJS_Value::CJS_Value(v8::Isolate* isolate, CJS_Object* pJsObj):m_isolate(isolate)
-{
-	operator =(pJsObj);
+CJS_Value::CJS_Value(v8::Isolate* isolate, CJS_Object* pJsObj)
+    : m_isolate(isolate) {
+  operator=(pJsObj);
 }
 
-CJS_Value::CJS_Value(v8::Isolate* isolate, CJS_Document* pJsDoc):m_isolate(isolate)
-{
-	m_eType = VT_object;
-	if (pJsDoc)
-		m_pValue = (JSFXObject)*pJsDoc;
+CJS_Value::CJS_Value(v8::Isolate* isolate, CJS_Document* pJsDoc)
+    : m_isolate(isolate) {
+  m_eType = VT_object;
+  if (pJsDoc)
+    m_pValue = (JSFXObject)*pJsDoc;
 }
 
-CJS_Value::CJS_Value(v8::Isolate* isolate, const FX_WCHAR* pWstr):m_isolate(isolate)
-{
-	operator =(pWstr);
+CJS_Value::CJS_Value(v8::Isolate* isolate, const FX_WCHAR* pWstr)
+    : m_isolate(isolate) {
+  operator=(pWstr);
 }
 
-CJS_Value::CJS_Value(v8::Isolate* isolate, const FX_CHAR* pStr):m_isolate(isolate)
-{
-	operator = (pStr);
+CJS_Value::CJS_Value(v8::Isolate* isolate, const FX_CHAR* pStr)
+    : m_isolate(isolate) {
+  operator=(pStr);
 }
 
-CJS_Value::CJS_Value(v8::Isolate* isolate, CJS_Array& array):m_isolate(isolate)
-{
-	operator = (array);
+CJS_Value::CJS_Value(v8::Isolate* isolate, CJS_Array& array)
+    : m_isolate(isolate) {
+  operator=(array);
 }
 
-CJS_Value::~CJS_Value()
-{
-}
+CJS_Value::~CJS_Value() {}
 
-void CJS_Value::Attach(v8::Local<v8::Value> pValue,FXJSVALUETYPE t)
-{
-	m_pValue = pValue;
-	m_eType = t;
+void CJS_Value::Attach(v8::Local<v8::Value> pValue, FXJSVALUETYPE t) {
+  m_pValue = pValue;
+  m_eType = t;
 }
 
-void CJS_Value::Attach(CJS_Value *pValue)
-{
-	if (pValue)
-		Attach(pValue->ToV8Value(), pValue->GetType());
+void CJS_Value::Attach(CJS_Value* pValue) {
+  if (pValue)
+    Attach(pValue->ToV8Value(), pValue->GetType());
 }
 
-void CJS_Value::Detach()
-{
-	m_pValue = v8::Local<v8::Value>();
-	m_eType = VT_unknown;
+void CJS_Value::Detach() {
+  m_pValue = v8::Local<v8::Value>();
+  m_eType = VT_unknown;
 }
 
-/* ---------------------------------------------------------------------------------------- */
+/* ----------------------------------------------------------------------------------------
+ */
 
-int CJS_Value::ToInt() const
-{
-	return JS_ToInt32(m_isolate, m_pValue);
+int CJS_Value::ToInt() const {
+  return JS_ToInt32(m_isolate, m_pValue);
 }
 
-bool CJS_Value::ToBool() const
-{
-	return JS_ToBoolean(m_isolate, m_pValue);
+bool CJS_Value::ToBool() const {
+  return JS_ToBoolean(m_isolate, m_pValue);
 }
 
-double CJS_Value::ToDouble() const
-{
-	return JS_ToNumber(m_isolate, m_pValue);
+double CJS_Value::ToDouble() const {
+  return JS_ToNumber(m_isolate, m_pValue);
 }
 
-float CJS_Value::ToFloat() const
-{
-	return (float)ToDouble();
+float CJS_Value::ToFloat() const {
+  return (float)ToDouble();
 }
 
-CJS_Object* CJS_Value::ToCJSObject() const
-{
-	v8::Local<v8::Object>	pObj = JS_ToObject(m_isolate, m_pValue);
-	return (CJS_Object*)JS_GetPrivate(m_isolate, pObj);
+CJS_Object* CJS_Value::ToCJSObject() const {
+  v8::Local<v8::Object> pObj = JS_ToObject(m_isolate, m_pValue);
+  return (CJS_Object*)JS_GetPrivate(m_isolate, pObj);
 }
 
-v8::Local<v8::Object> CJS_Value::ToV8Object() const
-{
-	return JS_ToObject(m_isolate, m_pValue);
+v8::Local<v8::Object> CJS_Value::ToV8Object() const {
+  return JS_ToObject(m_isolate, m_pValue);
 }
 
-CFX_WideString CJS_Value::ToCFXWideString() const
-{
-	return JS_ToString(m_isolate, m_pValue);
+CFX_WideString CJS_Value::ToCFXWideString() const {
+  return JS_ToString(m_isolate, m_pValue);
 }
 
-CFX_ByteString CJS_Value::ToCFXByteString() const
-{
-	return CFX_ByteString::FromUnicode(ToCFXWideString());
+CFX_ByteString CJS_Value::ToCFXByteString() const {
+  return CFX_ByteString::FromUnicode(ToCFXWideString());
 }
 
-v8::Local<v8::Value> CJS_Value::ToV8Value() const
-{
-	return m_pValue;
+v8::Local<v8::Value> CJS_Value::ToV8Value() const {
+  return m_pValue;
 }
 
-v8::Local<v8::Array>CJS_Value::ToV8Array() const
-{
-	if (IsArrayObject())
-		return v8::Local<v8::Array>::Cast(JS_ToObject(m_isolate, m_pValue));
-	return v8::Local<v8::Array>();
+v8::Local<v8::Array> CJS_Value::ToV8Array() const {
+  if (IsArrayObject())
+    return v8::Local<v8::Array>::Cast(JS_ToObject(m_isolate, m_pValue));
+  return v8::Local<v8::Array>();
 }
 
-/* ---------------------------------------------------------------------------------------- */
+/* ----------------------------------------------------------------------------------------
+ */
 
-void CJS_Value::operator =(int iValue)
-{
-	m_pValue = JS_NewNumber(m_isolate, iValue);
+void CJS_Value::operator=(int iValue) {
+  m_pValue = JS_NewNumber(m_isolate, iValue);
 
-	m_eType = VT_number;
+  m_eType = VT_number;
 }
 
-void CJS_Value::operator =(bool bValue)
-{
-	m_pValue = JS_NewBoolean(m_isolate, bValue);
+void CJS_Value::operator=(bool bValue) {
+  m_pValue = JS_NewBoolean(m_isolate, bValue);
 
-	m_eType = VT_boolean;
+  m_eType = VT_boolean;
 }
 
-void CJS_Value::operator =(double dValue)
-{
-	m_pValue = JS_NewNumber(m_isolate,dValue);
+void CJS_Value::operator=(double dValue) {
+  m_pValue = JS_NewNumber(m_isolate, dValue);
 
-	m_eType = VT_number;
+  m_eType = VT_number;
 }
 
-void CJS_Value::operator = (float fValue)
-{
-	m_pValue = JS_NewNumber(m_isolate,fValue);
-	m_eType = VT_number;
+void CJS_Value::operator=(float fValue) {
+  m_pValue = JS_NewNumber(m_isolate, fValue);
+  m_eType = VT_number;
 }
 
-void CJS_Value::operator =(v8::Local<v8::Object> pObj)
-{
+void CJS_Value::operator=(v8::Local<v8::Object> pObj) {
+  m_pValue = JS_NewObject(m_isolate, pObj);
 
-	m_pValue = JS_NewObject(m_isolate,pObj);
-
-	m_eType = VT_fxobject;
+  m_eType = VT_fxobject;
 }
 
-void CJS_Value::operator =(CJS_Object * pObj)
-{
-	if (pObj)
-		operator = ((JSFXObject)*pObj);
+void CJS_Value::operator=(CJS_Object* pObj) {
+  if (pObj)
+    operator=((JSFXObject)*pObj);
 }
 
-void CJS_Value::operator = (CJS_Document* pJsDoc)
-{
-	m_eType = VT_object;
-	if (pJsDoc) {
-		m_pValue = static_cast<JSFXObject>(*pJsDoc);
-	}
+void CJS_Value::operator=(CJS_Document* pJsDoc) {
+  m_eType = VT_object;
+  if (pJsDoc) {
+    m_pValue = static_cast<JSFXObject>(*pJsDoc);
+  }
 }
 
-void CJS_Value::operator =(const FX_WCHAR* pWstr)
-{
-	m_pValue = JS_NewString(m_isolate,(wchar_t *)pWstr);
+void CJS_Value::operator=(const FX_WCHAR* pWstr) {
+  m_pValue = JS_NewString(m_isolate, (wchar_t*)pWstr);
 
-	m_eType = VT_string;
+  m_eType = VT_string;
 }
 
-void CJS_Value::SetNull()
-{
-	m_pValue = JS_NewNull();
+void CJS_Value::SetNull() {
+  m_pValue = JS_NewNull();
 
-	m_eType = VT_null;
+  m_eType = VT_null;
 }
 
-void CJS_Value::operator = (const FX_CHAR* pStr)
-{
-	operator = (CFX_WideString::FromLocal(pStr).c_str());
+void CJS_Value::operator=(const FX_CHAR* pStr) {
+  operator=(CFX_WideString::FromLocal(pStr).c_str());
 }
 
-void CJS_Value::operator = (CJS_Array & array)
-{
-	m_pValue = JS_NewObject2(m_isolate,(v8::Local<v8::Array>)array);
+void CJS_Value::operator=(CJS_Array& array) {
+  m_pValue = JS_NewObject2(m_isolate, (v8::Local<v8::Array>)array);
 
-	m_eType = VT_object;
+  m_eType = VT_object;
 }
 
-void CJS_Value::operator = (CJS_Date & date)
-{
-	m_pValue = JS_NewDate(m_isolate, (double)date);
+void CJS_Value::operator=(CJS_Date& date) {
+  m_pValue = JS_NewDate(m_isolate, (double)date);
 
-	m_eType = VT_date;
+  m_eType = VT_date;
 }
 
-void CJS_Value::operator = (CJS_Value value)
-{
-	m_pValue = value.ToV8Value();
+void CJS_Value::operator=(CJS_Value value) {
+  m_pValue = value.ToV8Value();
 
-	m_eType = value.m_eType;
-        m_isolate = value.m_isolate;
+  m_eType = value.m_eType;
+  m_isolate = value.m_isolate;
 }
 
-/* ---------------------------------------------------------------------------------------- */
+/* ----------------------------------------------------------------------------------------
+ */
 
-FXJSVALUETYPE CJS_Value::GetType() const
-{
-	if(m_pValue.IsEmpty()) return VT_unknown;
-	if(m_pValue->IsString()) return VT_string;
-	if(m_pValue->IsNumber()) return VT_number;
-	if(m_pValue->IsBoolean()) return VT_boolean;
-	if(m_pValue->IsDate()) return VT_date;
-	if(m_pValue->IsObject()) return VT_object;
-	if(m_pValue->IsNull()) return VT_null;
-	if(m_pValue->IsUndefined()) return VT_undefined;
-	return VT_unknown;
+FXJSVALUETYPE CJS_Value::GetType() const {
+  if (m_pValue.IsEmpty())
+    return VT_unknown;
+  if (m_pValue->IsString())
+    return VT_string;
+  if (m_pValue->IsNumber())
+    return VT_number;
+  if (m_pValue->IsBoolean())
+    return VT_boolean;
+  if (m_pValue->IsDate())
+    return VT_date;
+  if (m_pValue->IsObject())
+    return VT_object;
+  if (m_pValue->IsNull())
+    return VT_null;
+  if (m_pValue->IsUndefined())
+    return VT_undefined;
+  return VT_unknown;
 }
 
-FX_BOOL CJS_Value::IsArrayObject() const
-{
-	if(m_pValue.IsEmpty()) return FALSE;
-	return m_pValue->IsArray();
+FX_BOOL CJS_Value::IsArrayObject() const {
+  if (m_pValue.IsEmpty())
+    return FALSE;
+  return m_pValue->IsArray();
 }
 
-FX_BOOL CJS_Value::IsDateObject() const
-{
-	if(m_pValue.IsEmpty()) return FALSE;
-	return m_pValue->IsDate();
+FX_BOOL CJS_Value::IsDateObject() const {
+  if (m_pValue.IsEmpty())
+    return FALSE;
+  return m_pValue->IsDate();
 }
 
-//CJS_Value::operator CJS_Array()
-FX_BOOL CJS_Value::ConvertToArray(CJS_Array &array) const
-{
-	if (IsArrayObject())
-	{
-		array.Attach(JS_ToArray(m_isolate, m_pValue));
-		return TRUE;
-	}
+// CJS_Value::operator CJS_Array()
+FX_BOOL CJS_Value::ConvertToArray(CJS_Array& array) const {
+  if (IsArrayObject()) {
+    array.Attach(JS_ToArray(m_isolate, m_pValue));
+    return TRUE;
+  }
 
-	return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CJS_Value::ConvertToDate(CJS_Date &date) const
-{
-// 	if (GetType() == VT_date)
-// 	{
-// 		date = (double)(*this);
-// 		return TRUE;
-// 	}
+FX_BOOL CJS_Value::ConvertToDate(CJS_Date& date) const {
+  // 	if (GetType() == VT_date)
+  // 	{
+  // 		date = (double)(*this);
+  // 		return TRUE;
+  // 	}
 
-	if (IsDateObject())
-	{
-		date.Attach(m_pValue);
-		return TRUE;
-	}
+  if (IsDateObject()) {
+    date.Attach(m_pValue);
+    return TRUE;
+  }
 
-	return FALSE;
+  return FALSE;
 }
 
 /* ---------------------------- CJS_PropValue ---------------------------- */
 
-CJS_PropValue::CJS_PropValue(const CJS_Value &value) :
-	CJS_Value(value),
-	m_bIsSetting(0)
-{
-}
+CJS_PropValue::CJS_PropValue(const CJS_Value& value)
+    : CJS_Value(value), m_bIsSetting(0) {}
 
-CJS_PropValue::CJS_PropValue(v8::Isolate* isolate) : CJS_Value(isolate),
-                                 m_bIsSetting(0)
-{
-}
+CJS_PropValue::CJS_PropValue(v8::Isolate* isolate)
+    : CJS_Value(isolate), m_bIsSetting(0) {}
 
-CJS_PropValue::~CJS_PropValue()
-{
-}
+CJS_PropValue::~CJS_PropValue() {}
 
-FX_BOOL CJS_PropValue::IsSetting()
-{
-	return m_bIsSetting;
+FX_BOOL CJS_PropValue::IsSetting() {
+  return m_bIsSetting;
 }
 
-FX_BOOL CJS_PropValue::IsGetting()
-{
-	return !m_bIsSetting;
+FX_BOOL CJS_PropValue::IsGetting() {
+  return !m_bIsSetting;
 }
 
-void CJS_PropValue::operator <<(int iValue)
-{
-	ASSERT(!m_bIsSetting);
-	CJS_Value::operator =(iValue);
+void CJS_PropValue::operator<<(int iValue) {
+  ASSERT(!m_bIsSetting);
+  CJS_Value::operator=(iValue);
 }
 
-void CJS_PropValue::operator >>(int & iValue) const
-{
-	ASSERT(m_bIsSetting);
-	iValue = CJS_Value::ToInt();
+void CJS_PropValue::operator>>(int& iValue) const {
+  ASSERT(m_bIsSetting);
+  iValue = CJS_Value::ToInt();
 }
 
-
-void CJS_PropValue::operator <<(bool bValue)
-{
-	ASSERT(!m_bIsSetting);
-	CJS_Value::operator =(bValue);
+void CJS_PropValue::operator<<(bool bValue) {
+  ASSERT(!m_bIsSetting);
+  CJS_Value::operator=(bValue);
 }
 
-void CJS_PropValue::operator >>(bool& bValue) const
-{
-	ASSERT(m_bIsSetting);
-	bValue = CJS_Value::ToBool();
+void CJS_PropValue::operator>>(bool& bValue) const {
+  ASSERT(m_bIsSetting);
+  bValue = CJS_Value::ToBool();
 }
 
-void CJS_PropValue::operator <<(double dValue)
-{
-	ASSERT(!m_bIsSetting);
-	CJS_Value::operator =(dValue);
+void CJS_PropValue::operator<<(double dValue) {
+  ASSERT(!m_bIsSetting);
+  CJS_Value::operator=(dValue);
 }
 
-void CJS_PropValue::operator >>(double& dValue) const
-{
-	ASSERT(m_bIsSetting);
-	dValue = CJS_Value::ToDouble();
+void CJS_PropValue::operator>>(double& dValue) const {
+  ASSERT(m_bIsSetting);
+  dValue = CJS_Value::ToDouble();
 }
 
-void CJS_PropValue::operator <<(CJS_Object* pObj)
-{
-	ASSERT(!m_bIsSetting);
-	CJS_Value::operator = (pObj);
+void CJS_PropValue::operator<<(CJS_Object* pObj) {
+  ASSERT(!m_bIsSetting);
+  CJS_Value::operator=(pObj);
 }
 
-void CJS_PropValue::operator >>(CJS_Object*& ppObj) const
-{
-	ASSERT(m_bIsSetting);
-	ppObj = CJS_Value::ToCJSObject();
+void CJS_PropValue::operator>>(CJS_Object*& ppObj) const {
+  ASSERT(m_bIsSetting);
+  ppObj = CJS_Value::ToCJSObject();
 }
 
-void CJS_PropValue::operator <<(CJS_Document* pJsDoc)
-{
-	ASSERT(!m_bIsSetting);
-	CJS_Value::operator = (pJsDoc);
+void CJS_PropValue::operator<<(CJS_Document* pJsDoc) {
+  ASSERT(!m_bIsSetting);
+  CJS_Value::operator=(pJsDoc);
 }
 
-void CJS_PropValue::operator >>(CJS_Document*& ppJsDoc) const
-{
-	ASSERT(m_bIsSetting);
-	ppJsDoc = static_cast<CJS_Document*>(CJS_Value::ToCJSObject());
+void CJS_PropValue::operator>>(CJS_Document*& ppJsDoc) const {
+  ASSERT(m_bIsSetting);
+  ppJsDoc = static_cast<CJS_Document*>(CJS_Value::ToCJSObject());
 }
 
-void CJS_PropValue::operator<<(JSFXObject pObj)
-{
-	ASSERT(!m_bIsSetting);
-	CJS_Value::operator = (pObj);
+void CJS_PropValue::operator<<(JSFXObject pObj) {
+  ASSERT(!m_bIsSetting);
+  CJS_Value::operator=(pObj);
 }
 
-void CJS_PropValue::operator>>(JSFXObject &ppObj) const
-{
-	ASSERT(m_bIsSetting);
-	ppObj = CJS_Value::ToV8Object();
+void CJS_PropValue::operator>>(JSFXObject& ppObj) const {
+  ASSERT(m_bIsSetting);
+  ppObj = CJS_Value::ToV8Object();
 }
 
-
-void CJS_PropValue::StartSetting()
-{
-	m_bIsSetting = 1;
+void CJS_PropValue::StartSetting() {
+  m_bIsSetting = 1;
 }
 
-void CJS_PropValue::StartGetting()
-{
-	m_bIsSetting = 0;
+void CJS_PropValue::StartGetting() {
+  m_bIsSetting = 0;
 }
-void CJS_PropValue::operator <<(CFX_ByteString string)
-{
-	ASSERT(!m_bIsSetting);
-	CJS_Value::operator = (string.c_str());
+void CJS_PropValue::operator<<(CFX_ByteString string) {
+  ASSERT(!m_bIsSetting);
+  CJS_Value::operator=(string.c_str());
 }
 
-void CJS_PropValue::operator >>(CFX_ByteString &string) const
-{
-	ASSERT(m_bIsSetting);
-	string = CJS_Value::ToCFXByteString();
+void CJS_PropValue::operator>>(CFX_ByteString& string) const {
+  ASSERT(m_bIsSetting);
+  string = CJS_Value::ToCFXByteString();
 }
 
-void CJS_PropValue::operator <<(const FX_WCHAR* c_string)
-{
-	ASSERT(!m_bIsSetting);
-	CJS_Value::operator =(c_string);
+void CJS_PropValue::operator<<(const FX_WCHAR* c_string) {
+  ASSERT(!m_bIsSetting);
+  CJS_Value::operator=(c_string);
 }
 
-void CJS_PropValue::operator >>(CFX_WideString &wide_string) const
-{
-	ASSERT(m_bIsSetting);
-	wide_string = CJS_Value::ToCFXWideString();
+void CJS_PropValue::operator>>(CFX_WideString& wide_string) const {
+  ASSERT(m_bIsSetting);
+  wide_string = CJS_Value::ToCFXWideString();
 }
 
-void CJS_PropValue::operator <<(CFX_WideString wide_string)
-{
-	ASSERT(!m_bIsSetting);
-	CJS_Value::operator = (wide_string.c_str());
+void CJS_PropValue::operator<<(CFX_WideString wide_string) {
+  ASSERT(!m_bIsSetting);
+  CJS_Value::operator=(wide_string.c_str());
 }
 
-void CJS_PropValue::operator >>(CJS_Array &array) const
-{
-	ASSERT(m_bIsSetting);
-	ConvertToArray(array);
+void CJS_PropValue::operator>>(CJS_Array& array) const {
+  ASSERT(m_bIsSetting);
+  ConvertToArray(array);
 }
 
-void CJS_PropValue::operator <<(CJS_Array &array)
-{
-	ASSERT(!m_bIsSetting);
-	CJS_Value::operator=(array);
+void CJS_PropValue::operator<<(CJS_Array& array) {
+  ASSERT(!m_bIsSetting);
+  CJS_Value::operator=(array);
 }
 
-void CJS_PropValue::operator>>(CJS_Date &date) const
-{
-	ASSERT(m_bIsSetting);
-	ConvertToDate(date);
+void CJS_PropValue::operator>>(CJS_Date& date) const {
+  ASSERT(m_bIsSetting);
+  ConvertToDate(date);
 }
 
-void CJS_PropValue::operator<<(CJS_Date &date)
-{
-	ASSERT(!m_bIsSetting);
-	CJS_Value::operator=(date);
+void CJS_PropValue::operator<<(CJS_Date& date) {
+  ASSERT(!m_bIsSetting);
+  CJS_Value::operator=(date);
 }
 
-CJS_PropValue::operator v8::Local<v8::Value>() const
-{
-	return m_pValue;
+CJS_PropValue::operator v8::Local<v8::Value>() const {
+  return m_pValue;
 }
 
-/* ======================================== CJS_Array ========================================= */
-CJS_Array::CJS_Array(v8::Isolate* isolate):m_isolate(isolate)
-{
-}
+/* ======================================== CJS_Array
+ * ========================================= */
+CJS_Array::CJS_Array(v8::Isolate* isolate) : m_isolate(isolate) {}
 
-CJS_Array::~CJS_Array()
-{
-}
+CJS_Array::~CJS_Array() {}
 
-void CJS_Array::Attach(v8::Local<v8::Array> pArray)
-{
-	m_pArray = pArray;
+void CJS_Array::Attach(v8::Local<v8::Array> pArray) {
+  m_pArray = pArray;
 }
 
-FX_BOOL CJS_Array::IsAttached()
-{
-	return FALSE;
+FX_BOOL CJS_Array::IsAttached() {
+  return FALSE;
 }
 
-void CJS_Array::GetElement(unsigned index,CJS_Value &value)
-{
-	if (m_pArray.IsEmpty())
-		return;
-	v8::Local<v8::Value>  p = JS_GetArrayElement(m_isolate, m_pArray,index);
-	value.Attach(p,VT_object);
+void CJS_Array::GetElement(unsigned index, CJS_Value& value) {
+  if (m_pArray.IsEmpty())
+    return;
+  v8::Local<v8::Value> p = JS_GetArrayElement(m_isolate, m_pArray, index);
+  value.Attach(p, VT_object);
 }
 
-void CJS_Array::SetElement(unsigned index,CJS_Value value)
-{
-	if (m_pArray.IsEmpty())
-		m_pArray = JS_NewArray(m_isolate);
+void CJS_Array::SetElement(unsigned index, CJS_Value value) {
+  if (m_pArray.IsEmpty())
+    m_pArray = JS_NewArray(m_isolate);
 
-	JS_PutArrayElement(m_isolate, m_pArray, index, value.ToV8Value(), value.GetType());
+  JS_PutArrayElement(m_isolate, m_pArray, index, value.ToV8Value(),
+                     value.GetType());
 }
 
-int CJS_Array::GetLength()
-{
-	if (m_pArray.IsEmpty())
-		return 0;
-	return JS_GetArrayLength(m_pArray);
+int CJS_Array::GetLength() {
+  if (m_pArray.IsEmpty())
+    return 0;
+  return JS_GetArrayLength(m_pArray);
 }
 
-CJS_Array:: operator v8::Local<v8::Array>()
-{
-	if (m_pArray.IsEmpty())
-		m_pArray = JS_NewArray(m_isolate);
+CJS_Array::operator v8::Local<v8::Array>() {
+  if (m_pArray.IsEmpty())
+    m_pArray = JS_NewArray(m_isolate);
 
-	return m_pArray;
+  return m_pArray;
 }
 
-/* ======================================== CJS_Date ========================================= */
+/* ======================================== CJS_Date
+ * ========================================= */
 
-CJS_Date::CJS_Date(v8::Isolate* isolate) :m_isolate(isolate)
-{
-}
+CJS_Date::CJS_Date(v8::Isolate* isolate) : m_isolate(isolate) {}
 
-CJS_Date::CJS_Date(v8::Isolate* isolate,double dMsec_time)
-{
-	m_isolate = isolate;
-	m_pDate = JS_NewDate(isolate,dMsec_time);
+CJS_Date::CJS_Date(v8::Isolate* isolate, double dMsec_time) {
+  m_isolate = isolate;
+  m_pDate = JS_NewDate(isolate, dMsec_time);
 }
 
-CJS_Date::CJS_Date(v8::Isolate* isolate,int year, int mon, int day,int hour, int min, int sec)
-{
-	m_isolate = isolate;
-	m_pDate = JS_NewDate(isolate,MakeDate(year,mon,day,hour,min,sec,0));
+CJS_Date::CJS_Date(v8::Isolate* isolate,
+                   int year,
+                   int mon,
+                   int day,
+                   int hour,
+                   int min,
+                   int sec) {
+  m_isolate = isolate;
+  m_pDate = JS_NewDate(isolate, MakeDate(year, mon, day, hour, min, sec, 0));
 }
 
-double CJS_Date::MakeDate(int year, int mon, int day,int hour, int min, int sec,int ms)
-{
-	return JS_MakeDate(JS_MakeDay(year,mon,day), JS_MakeTime(hour,min,sec,ms));
+double CJS_Date::MakeDate(int year,
+                          int mon,
+                          int day,
+                          int hour,
+                          int min,
+                          int sec,
+                          int ms) {
+  return JS_MakeDate(JS_MakeDay(year, mon, day),
+                     JS_MakeTime(hour, min, sec, ms));
 }
 
-CJS_Date::~CJS_Date()
-{
-}
+CJS_Date::~CJS_Date() {}
 
-FX_BOOL	CJS_Date::IsValidDate()
-{
-	if(m_pDate.IsEmpty()) return FALSE;
-	return !JS_PortIsNan(JS_ToNumber(m_isolate, m_pDate));
+FX_BOOL CJS_Date::IsValidDate() {
+  if (m_pDate.IsEmpty())
+    return FALSE;
+  return !JS_PortIsNan(JS_ToNumber(m_isolate, m_pDate));
 }
 
-void CJS_Date::Attach(v8::Local<v8::Value> pDate)
-{
-	m_pDate = pDate;
+void CJS_Date::Attach(v8::Local<v8::Value> pDate) {
+  m_pDate = pDate;
 }
 
-int CJS_Date::GetYear()
-{
-	if (IsValidDate())
-		return JS_GetYearFromTime(JS_LocalTime(JS_ToNumber(m_isolate, m_pDate)));
+int CJS_Date::GetYear() {
+  if (IsValidDate())
+    return JS_GetYearFromTime(JS_LocalTime(JS_ToNumber(m_isolate, m_pDate)));
 
-	return 0;
+  return 0;
 }
 
-void CJS_Date::SetYear(int iYear)
-{
-	double date = MakeDate(iYear,GetMonth(),GetDay(),GetHours(),GetMinutes(),GetSeconds(),0);
-	JS_ValueCopy(m_pDate, JS_NewDate(m_isolate,date));
+void CJS_Date::SetYear(int iYear) {
+  double date = MakeDate(iYear, GetMonth(), GetDay(), GetHours(), GetMinutes(),
+                         GetSeconds(), 0);
+  JS_ValueCopy(m_pDate, JS_NewDate(m_isolate, date));
 }
 
-int CJS_Date::GetMonth()
-{
-	if (IsValidDate())
-		return JS_GetMonthFromTime(JS_LocalTime(JS_ToNumber(m_isolate, m_pDate)));
+int CJS_Date::GetMonth() {
+  if (IsValidDate())
+    return JS_GetMonthFromTime(JS_LocalTime(JS_ToNumber(m_isolate, m_pDate)));
 
-	return 0;
+  return 0;
 }
 
-void CJS_Date::SetMonth(int iMonth)
-{
-
-	double date = MakeDate(GetYear(),iMonth,GetDay(),GetHours(),GetMinutes(),GetSeconds(),0);
-	JS_ValueCopy(m_pDate, JS_NewDate(m_isolate,date));
-
+void CJS_Date::SetMonth(int iMonth) {
+  double date = MakeDate(GetYear(), iMonth, GetDay(), GetHours(), GetMinutes(),
+                         GetSeconds(), 0);
+  JS_ValueCopy(m_pDate, JS_NewDate(m_isolate, date));
 }
 
-int CJS_Date::GetDay()
-{
-	if (IsValidDate())
-		return JS_GetDayFromTime(JS_LocalTime(JS_ToNumber(m_isolate, m_pDate)));
+int CJS_Date::GetDay() {
+  if (IsValidDate())
+    return JS_GetDayFromTime(JS_LocalTime(JS_ToNumber(m_isolate, m_pDate)));
 
-	return 0;
+  return 0;
 }
 
-void CJS_Date::SetDay(int iDay)
-{
-
-	double date = MakeDate(GetYear(),GetMonth(),iDay,GetHours(),GetMinutes(),GetSeconds(),0);
-	JS_ValueCopy(m_pDate,JS_NewDate(m_isolate,date));
-
+void CJS_Date::SetDay(int iDay) {
+  double date = MakeDate(GetYear(), GetMonth(), iDay, GetHours(), GetMinutes(),
+                         GetSeconds(), 0);
+  JS_ValueCopy(m_pDate, JS_NewDate(m_isolate, date));
 }
 
-int CJS_Date::GetHours()
-{
-	if (IsValidDate())
-		return JS_GetHourFromTime(JS_LocalTime(JS_ToNumber(m_isolate, m_pDate)));
+int CJS_Date::GetHours() {
+  if (IsValidDate())
+    return JS_GetHourFromTime(JS_LocalTime(JS_ToNumber(m_isolate, m_pDate)));
 
-	return 0;
+  return 0;
 }
 
-void CJS_Date::SetHours(int iHours)
-{
-	double date = MakeDate(GetYear(),GetMonth(),GetDay(),iHours,GetMinutes(),GetSeconds(),0);
-	JS_ValueCopy(m_pDate,JS_NewDate(m_isolate,date));
+void CJS_Date::SetHours(int iHours) {
+  double date = MakeDate(GetYear(), GetMonth(), GetDay(), iHours, GetMinutes(),
+                         GetSeconds(), 0);
+  JS_ValueCopy(m_pDate, JS_NewDate(m_isolate, date));
 }
 
-int CJS_Date::GetMinutes()
-{
-	if (IsValidDate())
-		return JS_GetMinFromTime(JS_LocalTime(JS_ToNumber(m_isolate, m_pDate)));
+int CJS_Date::GetMinutes() {
+  if (IsValidDate())
+    return JS_GetMinFromTime(JS_LocalTime(JS_ToNumber(m_isolate, m_pDate)));
 
-	return 0;
+  return 0;
 }
 
-void CJS_Date::SetMinutes(int minutes)
-{
-	double date = MakeDate(GetYear(),GetMonth(),GetDay(),GetHours(),minutes,GetSeconds(),0);
-	JS_ValueCopy(m_pDate,JS_NewDate(m_isolate,date));
+void CJS_Date::SetMinutes(int minutes) {
+  double date = MakeDate(GetYear(), GetMonth(), GetDay(), GetHours(), minutes,
+                         GetSeconds(), 0);
+  JS_ValueCopy(m_pDate, JS_NewDate(m_isolate, date));
 }
 
-int CJS_Date::GetSeconds()
-{
-	if (IsValidDate())
-		return JS_GetSecFromTime(JS_LocalTime(JS_ToNumber(m_isolate, m_pDate)));
+int CJS_Date::GetSeconds() {
+  if (IsValidDate())
+    return JS_GetSecFromTime(JS_LocalTime(JS_ToNumber(m_isolate, m_pDate)));
 
-	return 0;
+  return 0;
 }
 
-void CJS_Date::SetSeconds(int seconds)
-{
-	double date = MakeDate(GetYear(),GetMonth(),GetDay(),GetHours(),GetMinutes(),seconds,0);
-	JS_ValueCopy(m_pDate,JS_NewDate(m_isolate,date));
+void CJS_Date::SetSeconds(int seconds) {
+  double date = MakeDate(GetYear(), GetMonth(), GetDay(), GetHours(),
+                         GetMinutes(), seconds, 0);
+  JS_ValueCopy(m_pDate, JS_NewDate(m_isolate, date));
 }
 
-CJS_Date::operator v8::Local<v8::Value>()
-{
-	return m_pDate;
+CJS_Date::operator v8::Local<v8::Value>() {
+  return m_pDate;
 }
 
-CJS_Date::operator double() const
-{
-	if(m_pDate.IsEmpty())
-		return 0.0;
-	return JS_ToNumber(m_isolate, m_pDate);
+CJS_Date::operator double() const {
+  if (m_pDate.IsEmpty())
+    return 0.0;
+  return JS_ToNumber(m_isolate, m_pDate);
 }
 
-CFX_WideString CJS_Date::ToString() const
-{
-	if(m_pDate.IsEmpty())
-		return L"";
-	return JS_ToString(m_isolate, m_pDate);
+CFX_WideString CJS_Date::ToString() const {
+  if (m_pDate.IsEmpty())
+    return L"";
+  return JS_ToString(m_isolate, m_pDate);
 }
diff --git a/fpdfsdk/src/javascript/PublicMethods.cpp b/fpdfsdk/src/javascript/PublicMethods.cpp
index abb95f052d..8d7d207c79 100644
--- a/fpdfsdk/src/javascript/PublicMethods.cpp
+++ b/fpdfsdk/src/javascript/PublicMethods.cpp
@@ -19,2257 +19,2125 @@
 #include "../../include/javascript/color.h"
 #include "../../include/javascript/JS_Runtime.h"
 
-static v8::Isolate* GetIsolate(IFXJS_Context* cc)
-{
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
+static v8::Isolate* GetIsolate(IFXJS_Context* cc) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
 
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    ASSERT(pRuntime != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
 
-    return pRuntime->GetIsolate();
+  return pRuntime->GetIsolate();
 }
 
+/* -------------------------------- CJS_PublicMethods
+ * -------------------------------- */
 
-/* -------------------------------- CJS_PublicMethods -------------------------------- */
-
-#define DOUBLE_CORRECT  0.000000000000001
+#define DOUBLE_CORRECT 0.000000000000001
 
 BEGIN_JS_STATIC_GLOBAL_FUN(CJS_PublicMethods)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFNumber_Format)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFNumber_Keystroke)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFPercent_Format)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFPercent_Keystroke)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_FormatEx)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_KeystrokeEx)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_Format)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_Keystroke)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_FormatEx)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_KeystrokeEx)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_Format)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_Keystroke)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFSpecial_Format)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFSpecial_Keystroke)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFSpecial_KeystrokeEx)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFSimple)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFMakeNumber)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFSimple_Calculate)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFRange_Validate)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFMergeChange)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFParseDateEx)
-    JS_STATIC_GLOBAL_FUN_ENTRY(AFExtractNums)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFNumber_Format)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFNumber_Keystroke)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFPercent_Format)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFPercent_Keystroke)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_FormatEx)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_KeystrokeEx)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_Format)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFDate_Keystroke)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_FormatEx)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_KeystrokeEx)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_Format)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFTime_Keystroke)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFSpecial_Format)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFSpecial_Keystroke)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFSpecial_KeystrokeEx)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFSimple)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFMakeNumber)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFSimple_Calculate)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFRange_Validate)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFMergeChange)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFParseDateEx)
+JS_STATIC_GLOBAL_FUN_ENTRY(AFExtractNums)
 END_JS_STATIC_GLOBAL_FUN()
 
 IMPLEMENT_JS_STATIC_GLOBAL_FUN(CJS_PublicMethods)
 
-static const FX_WCHAR* months[] =
-{
-    L"Jan", L"Feb", L"Mar", L"Apr", L"May", L"Jun", L"Jul", L"Aug", L"Sep", L"Oct", L"Nov", L"Dec"
-};
-
-static const FX_WCHAR* const fullmonths[] =
-{
-    L"January", L"February", L"March", L"April", L"May", L"June", L"July", L"August", L"September", L"October", L"November", L"December"
-};
+static const FX_WCHAR* months[] = {L"Jan", L"Feb", L"Mar", L"Apr",
+                                   L"May", L"Jun", L"Jul", L"Aug",
+                                   L"Sep", L"Oct", L"Nov", L"Dec"};
 
-FX_BOOL CJS_PublicMethods::IsNumber(const FX_WCHAR* string)
-{
-    CFX_WideString sTrim = StrTrim(string);
-    const FX_WCHAR* pTrim = sTrim.c_str();
-    const FX_WCHAR* p = pTrim;
+static const FX_WCHAR* const fullmonths[] = {
+    L"January",   L"February", L"March",    L"April",
+    L"May",       L"June",     L"July",     L"August",
+    L"September", L"October",  L"November", L"December"};
 
+FX_BOOL CJS_PublicMethods::IsNumber(const FX_WCHAR* string) {
+  CFX_WideString sTrim = StrTrim(string);
+  const FX_WCHAR* pTrim = sTrim.c_str();
+  const FX_WCHAR* p = pTrim;
 
-    FX_BOOL bDot = FALSE;
-    FX_BOOL bKXJS = FALSE;
+  FX_BOOL bDot = FALSE;
+  FX_BOOL bKXJS = FALSE;
 
-    wchar_t c;
-    while ((c = *p))
-    {
-        if (c == '.' || c == ',')
-        {
-            if (bDot) return FALSE;
-            bDot = TRUE;
-        }
-        else if (c == '-' || c == '+')
-        {
-            if (p != pTrim)
-                return FALSE;
-        }
-        else if (c == 'e' || c == 'E')
-        {
-            if (bKXJS)
-                return FALSE;
+  wchar_t c;
+  while ((c = *p)) {
+    if (c == '.' || c == ',') {
+      if (bDot)
+        return FALSE;
+      bDot = TRUE;
+    } else if (c == '-' || c == '+') {
+      if (p != pTrim)
+        return FALSE;
+    } else if (c == 'e' || c == 'E') {
+      if (bKXJS)
+        return FALSE;
 
-            p++;
-            c = *p;
-            if (c == '+' || c == '-')
-            {
-                bKXJS = TRUE;
-            }
-            else
-            {
-                return FALSE;
-            }
-        }
-        else if (!IsDigit(c))
-        {
-            return FALSE;
-        }
-        p++;
+      p++;
+      c = *p;
+      if (c == '+' || c == '-') {
+        bKXJS = TRUE;
+      } else {
+        return FALSE;
+      }
+    } else if (!IsDigit(c)) {
+      return FALSE;
     }
+    p++;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL CJS_PublicMethods::IsDigit(wchar_t ch)
-{
-    return (ch >= L'0' && ch <= L'9');
+FX_BOOL CJS_PublicMethods::IsDigit(wchar_t ch) {
+  return (ch >= L'0' && ch <= L'9');
 }
 
-FX_BOOL CJS_PublicMethods::IsDigit(char ch)
-{
-    return (ch >= '0' && ch <= '9');
+FX_BOOL CJS_PublicMethods::IsDigit(char ch) {
+  return (ch >= '0' && ch <= '9');
 }
 
-FX_BOOL CJS_PublicMethods::IsAlphabetic(wchar_t ch)
-{
-    return ((ch >= L'a' && ch <= L'z') || (ch >= L'A' && ch <= L'Z'));
+FX_BOOL CJS_PublicMethods::IsAlphabetic(wchar_t ch) {
+  return ((ch >= L'a' && ch <= L'z') || (ch >= L'A' && ch <= L'Z'));
 }
 
-FX_BOOL CJS_PublicMethods::IsAlphaNumeric(wchar_t ch)
-{
-    return (IsDigit(ch) || IsAlphabetic(ch));
+FX_BOOL CJS_PublicMethods::IsAlphaNumeric(wchar_t ch) {
+  return (IsDigit(ch) || IsAlphabetic(ch));
 }
 
-FX_BOOL CJS_PublicMethods::maskSatisfied(wchar_t c_Change,wchar_t c_Mask)
-{
-    switch (c_Mask)
-    {
+FX_BOOL CJS_PublicMethods::maskSatisfied(wchar_t c_Change, wchar_t c_Mask) {
+  switch (c_Mask) {
     case L'9':
-        return IsDigit(c_Change);
+      return IsDigit(c_Change);
     case L'A':
-        return IsAlphabetic(c_Change);
+      return IsAlphabetic(c_Change);
     case L'O':
-        return IsAlphaNumeric(c_Change);
+      return IsAlphaNumeric(c_Change);
     case L'X':
-        return TRUE;
+      return TRUE;
     default:
-        return (c_Change == c_Mask);
-    }
+      return (c_Change == c_Mask);
+  }
 }
 
-FX_BOOL CJS_PublicMethods::isReservedMaskChar(wchar_t ch)
-{
-    return ch == L'9' || ch == L'A' || ch == L'O' || ch == L'X';
+FX_BOOL CJS_PublicMethods::isReservedMaskChar(wchar_t ch) {
+  return ch == L'9' || ch == L'A' || ch == L'O' || ch == L'X';
 }
 
-double CJS_PublicMethods::AF_Simple(const FX_WCHAR* sFuction, double dValue1, double dValue2)
-{
-    if (FXSYS_wcsicmp(sFuction,L"AVG") == 0 || FXSYS_wcsicmp(sFuction,L"SUM") == 0)
-    {
-        return dValue1 + dValue2;
-    }
-    if (FXSYS_wcsicmp(sFuction, L"PRD") == 0)
-    {
-        return dValue1 * dValue2;
-    }
-    if (FXSYS_wcsicmp(sFuction,L"MIN") == 0)
-    {
-        return FX_MIN(dValue1, dValue2);
-    }
-    if (FXSYS_wcsicmp(sFuction,L"MAX") == 0)
-    {
-        return FX_MAX(dValue1, dValue2);
-    }
-    return dValue1;
+double CJS_PublicMethods::AF_Simple(const FX_WCHAR* sFuction,
+                                    double dValue1,
+                                    double dValue2) {
+  if (FXSYS_wcsicmp(sFuction, L"AVG") == 0 ||
+      FXSYS_wcsicmp(sFuction, L"SUM") == 0) {
+    return dValue1 + dValue2;
+  }
+  if (FXSYS_wcsicmp(sFuction, L"PRD") == 0) {
+    return dValue1 * dValue2;
+  }
+  if (FXSYS_wcsicmp(sFuction, L"MIN") == 0) {
+    return FX_MIN(dValue1, dValue2);
+  }
+  if (FXSYS_wcsicmp(sFuction, L"MAX") == 0) {
+    return FX_MAX(dValue1, dValue2);
+  }
+  return dValue1;
 }
 
-CFX_WideString CJS_PublicMethods::StrLTrim(const FX_WCHAR* pStr)
-{
-    while (*pStr && *pStr == L' ') pStr++;
+CFX_WideString CJS_PublicMethods::StrLTrim(const FX_WCHAR* pStr) {
+  while (*pStr && *pStr == L' ')
+    pStr++;
 
-    return pStr;
+  return pStr;
 }
 
-CFX_WideString CJS_PublicMethods::StrRTrim(const FX_WCHAR* pStr)
-{
-    const FX_WCHAR* p = pStr;
-    while (*p) p++;
-    while (p > pStr && *(p - 1) == L' ') p--;
+CFX_WideString CJS_PublicMethods::StrRTrim(const FX_WCHAR* pStr) {
+  const FX_WCHAR* p = pStr;
+  while (*p)
+    p++;
+  while (p > pStr && *(p - 1) == L' ')
+    p--;
 
-    return CFX_WideString(pStr, p - pStr);
+  return CFX_WideString(pStr, p - pStr);
 }
 
-CFX_WideString CJS_PublicMethods::StrTrim(const FX_WCHAR* pStr)
-{
-    return StrRTrim(StrLTrim(pStr).c_str());
+CFX_WideString CJS_PublicMethods::StrTrim(const FX_WCHAR* pStr) {
+  return StrRTrim(StrLTrim(pStr).c_str());
 }
 
-CFX_ByteString CJS_PublicMethods::StrLTrim(const FX_CHAR* pStr)
-{
-    while (*pStr && *pStr == ' ') pStr++;
+CFX_ByteString CJS_PublicMethods::StrLTrim(const FX_CHAR* pStr) {
+  while (*pStr && *pStr == ' ')
+    pStr++;
 
-        return pStr;
+  return pStr;
 }
 
-CFX_ByteString CJS_PublicMethods::StrRTrim(const FX_CHAR* pStr)
-{
-    const FX_CHAR* p = pStr;
-    while (*p) p++;
-    while (p > pStr && *(p - 1) == L' ') p--;
+CFX_ByteString CJS_PublicMethods::StrRTrim(const FX_CHAR* pStr) {
+  const FX_CHAR* p = pStr;
+  while (*p)
+    p++;
+  while (p > pStr && *(p - 1) == L' ')
+    p--;
 
-    return CFX_ByteString(pStr,p-pStr);
+  return CFX_ByteString(pStr, p - pStr);
 }
 
-CFX_ByteString CJS_PublicMethods::StrTrim(const FX_CHAR* pStr)
-{
-    return StrRTrim(StrLTrim(pStr));
+CFX_ByteString CJS_PublicMethods::StrTrim(const FX_CHAR* pStr) {
+  return StrRTrim(StrLTrim(pStr));
 }
 
-double CJS_PublicMethods::ParseNumber(const FX_WCHAR* swSource, FX_BOOL& bAllDigits, FX_BOOL& bDot, FX_BOOL& bSign, FX_BOOL& bKXJS)
-{
-    bDot = FALSE;
-    bSign = FALSE;
-    bKXJS = FALSE;
+double CJS_PublicMethods::ParseNumber(const FX_WCHAR* swSource,
+                                      FX_BOOL& bAllDigits,
+                                      FX_BOOL& bDot,
+                                      FX_BOOL& bSign,
+                                      FX_BOOL& bKXJS) {
+  bDot = FALSE;
+  bSign = FALSE;
+  bKXJS = FALSE;
 
-    FX_BOOL bDigitExist = FALSE;
+  FX_BOOL bDigitExist = FALSE;
 
-    const FX_WCHAR* p = swSource;
-    wchar_t c;
+  const FX_WCHAR* p = swSource;
+  wchar_t c;
 
-    const FX_WCHAR* pStart = NULL;
-    const FX_WCHAR* pEnd = NULL;
+  const FX_WCHAR* pStart = NULL;
+  const FX_WCHAR* pEnd = NULL;
 
-    while ((c = *p))
-    {
-        if (!pStart && c != L' ')
-        {
-            pStart = p;
-        }
-
-        pEnd = p;
-        p++;
-    }
-
-    if (!pStart)
-    {
-        bAllDigits = FALSE;
-        return 0;
-    }
-
-    while (pEnd != pStart)
-    {
-        if (*pEnd == L' ')
-            pEnd --;
-        else
-            break;
+  while ((c = *p)) {
+    if (!pStart && c != L' ') {
+      pStart = p;
     }
 
-    double dRet = 0;
-    p = pStart;
-    bAllDigits = TRUE;
-    CFX_WideString swDigits;
+    pEnd = p;
+    p++;
+  }
 
-    while (p <= pEnd)
-    {
-        c = *p;
+  if (!pStart) {
+    bAllDigits = FALSE;
+    return 0;
+  }
 
-        if (IsDigit(c))
-        {
-            swDigits += c;
-            bDigitExist = TRUE;
-        }
-        else
-        {
-            switch (c)
-            {
-            case L' ':
-                bAllDigits = FALSE;
-                break;
-            case L'.':
-            case L',':
-                if (!bDot)
-                {
-                    if (bDigitExist)
-                    {
-                        swDigits += L'.';
-                    }
-                    else
-                    {
-                        swDigits += L'0';
-                        swDigits += L'.';
-                        bDigitExist = TRUE;
-                    }
-
-                    bDot = TRUE;
-                    break;
-                }
-            case 'e':
-            case 'E':
-                if (!bKXJS)
-                {
-                    p++;
-                    c = *p;
-                    if (c == '+' || c == '-')
-                    {
-                        bKXJS = TRUE;
-                        swDigits += 'e';
-                        swDigits += c;
-                    }
-                    break;
-                }
-            case L'-':
-                if (!bDigitExist && !bSign)
-                {
-                    swDigits += c;
-                    bSign = TRUE;
-                    break;
-                }
-            default:
-                bAllDigits = FALSE;
-
-                if (p != pStart && !bDot && bDigitExist)
-                {
-                    swDigits += L'.';
-                    bDot = TRUE;
-                }
-                else
-                {
-                    bDot = FALSE;
-                    bDigitExist = FALSE;
-                    swDigits = L"";
-                }
-                break;
+  while (pEnd != pStart) {
+    if (*pEnd == L' ')
+      pEnd--;
+    else
+      break;
+  }
+
+  double dRet = 0;
+  p = pStart;
+  bAllDigits = TRUE;
+  CFX_WideString swDigits;
+
+  while (p <= pEnd) {
+    c = *p;
+
+    if (IsDigit(c)) {
+      swDigits += c;
+      bDigitExist = TRUE;
+    } else {
+      switch (c) {
+        case L' ':
+          bAllDigits = FALSE;
+          break;
+        case L'.':
+        case L',':
+          if (!bDot) {
+            if (bDigitExist) {
+              swDigits += L'.';
+            } else {
+              swDigits += L'0';
+              swDigits += L'.';
+              bDigitExist = TRUE;
             }
-        }
 
-        p++;
-    }
-
-    if (swDigits.GetLength() > 0 && swDigits.GetLength() < 17)
-    {
-        CFX_ByteString sDigits = swDigits.UTF8Encode();
-
-        if (bKXJS)
-        {
-            dRet = atof(sDigits);
-        }
-        else
-        {
-            if (bDot)
-            {
-                char* pStopString;
-                dRet = ::strtod(sDigits, &pStopString);
-            }
-            else
-            {
-                dRet = atol(sDigits);
+            bDot = TRUE;
+            break;
+          }
+        case 'e':
+        case 'E':
+          if (!bKXJS) {
+            p++;
+            c = *p;
+            if (c == '+' || c == '-') {
+              bKXJS = TRUE;
+              swDigits += 'e';
+              swDigits += c;
             }
-        }
-
-    }
+            break;
+          }
+        case L'-':
+          if (!bDigitExist && !bSign) {
+            swDigits += c;
+            bSign = TRUE;
+            break;
+          }
+        default:
+          bAllDigits = FALSE;
 
-    return dRet;
+          if (p != pStart && !bDot && bDigitExist) {
+            swDigits += L'.';
+            bDot = TRUE;
+          } else {
+            bDot = FALSE;
+            bDigitExist = FALSE;
+            swDigits = L"";
+          }
+          break;
+      }
+    }
+
+    p++;
+  }
+
+  if (swDigits.GetLength() > 0 && swDigits.GetLength() < 17) {
+    CFX_ByteString sDigits = swDigits.UTF8Encode();
+
+    if (bKXJS) {
+      dRet = atof(sDigits);
+    } else {
+      if (bDot) {
+        char* pStopString;
+        dRet = ::strtod(sDigits, &pStopString);
+      } else {
+        dRet = atol(sDigits);
+      }
+    }
+  }
+
+  return dRet;
 }
 
-double CJS_PublicMethods::ParseStringToNumber(const FX_WCHAR* swSource)
-{
-    FX_BOOL bAllDigits = FALSE;
-    FX_BOOL bDot = FALSE;
-    FX_BOOL bSign = FALSE;
-    FX_BOOL bKXJS = FALSE;
+double CJS_PublicMethods::ParseStringToNumber(const FX_WCHAR* swSource) {
+  FX_BOOL bAllDigits = FALSE;
+  FX_BOOL bDot = FALSE;
+  FX_BOOL bSign = FALSE;
+  FX_BOOL bKXJS = FALSE;
 
-    return ParseNumber(swSource, bAllDigits, bDot, bSign, bKXJS);
+  return ParseNumber(swSource, bAllDigits, bDot, bSign, bKXJS);
 }
 
-FX_BOOL CJS_PublicMethods::ConvertStringToNumber(const FX_WCHAR* swSource, double & dRet, FX_BOOL & bDot)
-{
-    FX_BOOL bAllDigits = FALSE;
-    FX_BOOL bSign = FALSE;
-    FX_BOOL bKXJS = FALSE;
+FX_BOOL CJS_PublicMethods::ConvertStringToNumber(const FX_WCHAR* swSource,
+                                                 double& dRet,
+                                                 FX_BOOL& bDot) {
+  FX_BOOL bAllDigits = FALSE;
+  FX_BOOL bSign = FALSE;
+  FX_BOOL bKXJS = FALSE;
 
-    dRet = ParseNumber(swSource, bAllDigits, bDot, bSign, bKXJS);
+  dRet = ParseNumber(swSource, bAllDigits, bDot, bSign, bKXJS);
 
-    return bAllDigits;
+  return bAllDigits;
 }
 
-CJS_Array CJS_PublicMethods::AF_MakeArrayFromList(v8::Isolate* isolate, CJS_Value val)
-{
-    CJS_Array StrArray(isolate);
-    if(val.IsArrayObject())
-    {
-        val.ConvertToArray(StrArray);
-        return StrArray;
-    }
-    CFX_WideString wsStr = val.ToCFXWideString();
-    CFX_ByteString t = CFX_ByteString::FromUnicode(wsStr);
-    const char * p = (const char *)t;
-
-
-    int ch = ',' ;
-    int nIndex = 0;
-
-    while (*p)
-    {
-        const char * pTemp = strchr(p, ch);
-        if (pTemp == NULL)
-        {
-            StrArray.SetElement(nIndex, CJS_Value(isolate, StrTrim(p).c_str()));
-            break;
-        }
-        else
-        {
-            char * pSub = new char[pTemp - p + 1];
-            strncpy(pSub, p, pTemp - p);
-            *(pSub + (pTemp - p)) = '\0';
-
-            StrArray.SetElement(nIndex, CJS_Value(isolate, StrTrim(pSub).c_str()));
-            delete []pSub;
-
-            nIndex ++;
-            p = ++pTemp;
-        }
-
-    }
+CJS_Array CJS_PublicMethods::AF_MakeArrayFromList(v8::Isolate* isolate,
+                                                  CJS_Value val) {
+  CJS_Array StrArray(isolate);
+  if (val.IsArrayObject()) {
+    val.ConvertToArray(StrArray);
     return StrArray;
+  }
+  CFX_WideString wsStr = val.ToCFXWideString();
+  CFX_ByteString t = CFX_ByteString::FromUnicode(wsStr);
+  const char* p = (const char*)t;
+
+  int ch = ',';
+  int nIndex = 0;
+
+  while (*p) {
+    const char* pTemp = strchr(p, ch);
+    if (pTemp == NULL) {
+      StrArray.SetElement(nIndex, CJS_Value(isolate, StrTrim(p).c_str()));
+      break;
+    } else {
+      char* pSub = new char[pTemp - p + 1];
+      strncpy(pSub, p, pTemp - p);
+      *(pSub + (pTemp - p)) = '\0';
+
+      StrArray.SetElement(nIndex, CJS_Value(isolate, StrTrim(pSub).c_str()));
+      delete[] pSub;
+
+      nIndex++;
+      p = ++pTemp;
+    }
+  }
+  return StrArray;
 }
 
-int CJS_PublicMethods::ParseStringInteger(const CFX_WideString& string,int nStart,int& nSkip, int nMaxStep)
-{
-    int nRet = 0;
-    nSkip = 0;
-    for (int i=nStart, sz=string.GetLength(); i < sz; i++)
-    {
-        if (i-nStart > 10)
-            break;
-
-        FX_WCHAR c = string.GetAt(i);
-        if (IsDigit((wchar_t)c))
-        {
-            nRet = nRet * 10 + (c - '0');
-            nSkip = i - nStart + 1;
-            if (nSkip >= nMaxStep)
-                break;
-        }
-        else
-            break;
-    }
+int CJS_PublicMethods::ParseStringInteger(const CFX_WideString& string,
+                                          int nStart,
+                                          int& nSkip,
+                                          int nMaxStep) {
+  int nRet = 0;
+  nSkip = 0;
+  for (int i = nStart, sz = string.GetLength(); i < sz; i++) {
+    if (i - nStart > 10)
+      break;
+
+    FX_WCHAR c = string.GetAt(i);
+    if (IsDigit((wchar_t)c)) {
+      nRet = nRet * 10 + (c - '0');
+      nSkip = i - nStart + 1;
+      if (nSkip >= nMaxStep)
+        break;
+    } else
+      break;
+  }
 
-    return nRet;
+  return nRet;
 }
 
-CFX_WideString CJS_PublicMethods::ParseStringString(const CFX_WideString& string, int nStart, int& nSkip)
-{
-    CFX_WideString swRet;
-    nSkip = 0;
-    for (int i=nStart, sz=string.GetLength(); i < sz; i++)
-    {
-        FX_WCHAR c = string.GetAt(i);
-        if ((c >= L'a' && c <= L'z') || (c >= L'A' && c <= L'Z'))
-        {
-            swRet += c;
-            nSkip = i - nStart + 1;
-        }
-        else
-            break;
-    }
-
-    return swRet;
+CFX_WideString CJS_PublicMethods::ParseStringString(
+    const CFX_WideString& string,
+    int nStart,
+    int& nSkip) {
+  CFX_WideString swRet;
+  nSkip = 0;
+  for (int i = nStart, sz = string.GetLength(); i < sz; i++) {
+    FX_WCHAR c = string.GetAt(i);
+    if ((c >= L'a' && c <= L'z') || (c >= L'A' && c <= L'Z')) {
+      swRet += c;
+      nSkip = i - nStart + 1;
+    } else
+      break;
+  }
+
+  return swRet;
 }
 
-double CJS_PublicMethods::ParseNormalDate(const CFX_WideString & value, FX_BOOL& bWrongFormat)
-{
-    double dt = JS_GetDateTime();
-
-    int nYear = JS_GetYearFromTime(dt);
-    int nMonth = JS_GetMonthFromTime(dt) + 1;
-    int nDay = JS_GetDayFromTime(dt);
-    int nHour = JS_GetHourFromTime(dt);
-    int nMin = JS_GetMinFromTime(dt);
-    int nSec = JS_GetSecFromTime(dt);
-
-    int number[3];
-
-    int nSkip = 0;
-    int nLen = value.GetLength();
-    int nIndex = 0;
-    int i = 0;
-    while (i < nLen)
-    {
-        if (nIndex > 2) break;
-
-        FX_WCHAR c = value.GetAt(i);
-        if (IsDigit((wchar_t)c))
-        {
-            number[nIndex++] = ParseStringInteger(value, i, nSkip, 4);
-            i += nSkip;
-        }
-        else
-        {
-            i ++;
-        }
+double CJS_PublicMethods::ParseNormalDate(const CFX_WideString& value,
+                                          FX_BOOL& bWrongFormat) {
+  double dt = JS_GetDateTime();
+
+  int nYear = JS_GetYearFromTime(dt);
+  int nMonth = JS_GetMonthFromTime(dt) + 1;
+  int nDay = JS_GetDayFromTime(dt);
+  int nHour = JS_GetHourFromTime(dt);
+  int nMin = JS_GetMinFromTime(dt);
+  int nSec = JS_GetSecFromTime(dt);
+
+  int number[3];
+
+  int nSkip = 0;
+  int nLen = value.GetLength();
+  int nIndex = 0;
+  int i = 0;
+  while (i < nLen) {
+    if (nIndex > 2)
+      break;
+
+    FX_WCHAR c = value.GetAt(i);
+    if (IsDigit((wchar_t)c)) {
+      number[nIndex++] = ParseStringInteger(value, i, nSkip, 4);
+      i += nSkip;
+    } else {
+      i++;
+    }
+  }
+
+  if (nIndex == 2) {
+    // case2: month/day
+    // case3: day/month
+    if ((number[0] >= 1 && number[0] <= 12) &&
+        (number[1] >= 1 && number[1] <= 31)) {
+      nMonth = number[0];
+      nDay = number[1];
+    } else if ((number[0] >= 1 && number[0] <= 31) &&
+               (number[1] >= 1 && number[1] <= 12)) {
+      nDay = number[0];
+      nMonth = number[1];
     }
 
-    if (nIndex == 2)
-    {
-        // case2: month/day
-        // case3: day/month
-        if ((number[0] >= 1 && number[0] <= 12) && (number[1] >= 1 && number[1] <= 31))
-        {
-            nMonth = number[0];
-            nDay = number[1];
-        }
-        else if ((number[0] >= 1 && number[0] <= 31) && (number[1] >= 1 && number[1] <= 12))
-        {
-            nDay = number[0];
-            nMonth = number[1];
-        }
-
-        bWrongFormat = FALSE;
-    }
-    else if (nIndex == 3)
-    {
-        // case1: year/month/day
-        // case2: month/day/year
-        // case3: day/month/year
-
-        if (number[0] > 12 && (number[1] >= 1 && number[1] <= 12) && (number[2] >= 1 && number[2] <= 31))
-        {
-            nYear = number[0];
-            nMonth = number[1];
-            nDay = number[2];
-        }
-        else if ((number[0] >= 1 && number[0] <= 12) && (number[1] >= 1 && number[1] <= 31) && number[2] > 31)
-        {
-            nMonth = number[0];
-            nDay = number[1];
-            nYear = number[2];
-        }
-        else if ((number[0] >= 1 && number[0] <= 31) && (number[1] >= 1 && number[1] <= 12) && number[2] > 31)
-        {
-            nDay = number[0];
-            nMonth = number[1];
-            nYear = number[2];
-        }
-
-        bWrongFormat = FALSE;
-    }
-    else
-    {
-        bWrongFormat = TRUE;
-        return dt;
+    bWrongFormat = FALSE;
+  } else if (nIndex == 3) {
+    // case1: year/month/day
+    // case2: month/day/year
+    // case3: day/month/year
+
+    if (number[0] > 12 && (number[1] >= 1 && number[1] <= 12) &&
+        (number[2] >= 1 && number[2] <= 31)) {
+      nYear = number[0];
+      nMonth = number[1];
+      nDay = number[2];
+    } else if ((number[0] >= 1 && number[0] <= 12) &&
+               (number[1] >= 1 && number[1] <= 31) && number[2] > 31) {
+      nMonth = number[0];
+      nDay = number[1];
+      nYear = number[2];
+    } else if ((number[0] >= 1 && number[0] <= 31) &&
+               (number[1] >= 1 && number[1] <= 12) && number[2] > 31) {
+      nDay = number[0];
+      nMonth = number[1];
+      nYear = number[2];
     }
 
-    CFX_WideString swTemp;
-    swTemp.Format(L"%d/%d/%d %d:%d:%d",nMonth,nDay,nYear,nHour,nMin,nSec);
-    return JS_DateParse(swTemp.c_str());
-}
-
-double CJS_PublicMethods::MakeRegularDate(const CFX_WideString & value, const CFX_WideString & format, FX_BOOL& bWrongFormat)
-{
-    double dt = JS_GetDateTime();
-
-    if (format.IsEmpty() || value.IsEmpty())
-        return dt;
-
-    int nYear = JS_GetYearFromTime(dt);
-    int nMonth = JS_GetMonthFromTime(dt) + 1;
-    int nDay = JS_GetDayFromTime(dt);
-    int nHour = JS_GetHourFromTime(dt);
-    int nMin = JS_GetMinFromTime(dt);
-    int nSec = JS_GetSecFromTime(dt);
-
-    int nYearSub = 99; //nYear - 2000;
-
-    FX_BOOL bPm = FALSE;
-    FX_BOOL bExit = FALSE;
     bWrongFormat = FALSE;
+  } else {
+    bWrongFormat = TRUE;
+    return dt;
+  }
+
+  CFX_WideString swTemp;
+  swTemp.Format(L"%d/%d/%d %d:%d:%d", nMonth, nDay, nYear, nHour, nMin, nSec);
+  return JS_DateParse(swTemp.c_str());
+}
 
-    int i=0;
-    int j=0;
-
-    while (i < format.GetLength())
-    {
-        if (bExit) break;
-
-        FX_WCHAR c = format.GetAt(i);
-        switch (c)
-        {
-            case ':':
-            case '.':
-            case '-':
-            case '\\':
-            case '/':
-                i++;
-                j++;
-                break;
+double CJS_PublicMethods::MakeRegularDate(const CFX_WideString& value,
+                                          const CFX_WideString& format,
+                                          FX_BOOL& bWrongFormat) {
+  double dt = JS_GetDateTime();
+
+  if (format.IsEmpty() || value.IsEmpty())
+    return dt;
+
+  int nYear = JS_GetYearFromTime(dt);
+  int nMonth = JS_GetMonthFromTime(dt) + 1;
+  int nDay = JS_GetDayFromTime(dt);
+  int nHour = JS_GetHourFromTime(dt);
+  int nMin = JS_GetMinFromTime(dt);
+  int nSec = JS_GetSecFromTime(dt);
+
+  int nYearSub = 99;  // nYear - 2000;
+
+  FX_BOOL bPm = FALSE;
+  FX_BOOL bExit = FALSE;
+  bWrongFormat = FALSE;
+
+  int i = 0;
+  int j = 0;
+
+  while (i < format.GetLength()) {
+    if (bExit)
+      break;
+
+    FX_WCHAR c = format.GetAt(i);
+    switch (c) {
+      case ':':
+      case '.':
+      case '-':
+      case '\\':
+      case '/':
+        i++;
+        j++;
+        break;
 
+      case 'y':
+      case 'm':
+      case 'd':
+      case 'H':
+      case 'h':
+      case 'M':
+      case 's':
+      case 't': {
+        int oldj = j;
+        int nSkip = 0;
+        int remaining = format.GetLength() - i - 1;
+
+        if (remaining == 0 || format.GetAt(i + 1) != c) {
+          switch (c) {
+            case 'y':
+              i++;
+              j++;
+              break;
+            case 'm':
+              nMonth = ParseStringInteger(value, j, nSkip, 2);
+              i++;
+              j += nSkip;
+              break;
+            case 'd':
+              nDay = ParseStringInteger(value, j, nSkip, 2);
+              i++;
+              j += nSkip;
+              break;
+            case 'H':
+              nHour = ParseStringInteger(value, j, nSkip, 2);
+              i++;
+              j += nSkip;
+              break;
+            case 'h':
+              nHour = ParseStringInteger(value, j, nSkip, 2);
+              i++;
+              j += nSkip;
+              break;
+            case 'M':
+              nMin = ParseStringInteger(value, j, nSkip, 2);
+              i++;
+              j += nSkip;
+              break;
+            case 's':
+              nSec = ParseStringInteger(value, j, nSkip, 2);
+              i++;
+              j += nSkip;
+              break;
+            case 't':
+              bPm = (j < value.GetLength() && value.GetAt(j) == 'p');
+              i++;
+              j++;
+              break;
+          }
+        } else if (remaining == 1 || format.GetAt(i + 2) != c) {
+          switch (c) {
             case 'y':
+              nYear = ParseStringInteger(value, j, nSkip, 4);
+              i += 2;
+              j += nSkip;
+              break;
             case 'm':
+              nMonth = ParseStringInteger(value, j, nSkip, 2);
+              i += 2;
+              j += nSkip;
+              break;
             case 'd':
+              nDay = ParseStringInteger(value, j, nSkip, 2);
+              i += 2;
+              j += nSkip;
+              break;
             case 'H':
+              nHour = ParseStringInteger(value, j, nSkip, 2);
+              i += 2;
+              j += nSkip;
+              break;
             case 'h':
+              nHour = ParseStringInteger(value, j, nSkip, 2);
+              i += 2;
+              j += nSkip;
+              break;
             case 'M':
+              nMin = ParseStringInteger(value, j, nSkip, 2);
+              i += 2;
+              j += nSkip;
+              break;
             case 's':
+              nSec = ParseStringInteger(value, j, nSkip, 2);
+              i += 2;
+              j += nSkip;
+              break;
             case 't':
-                {
-                    int oldj = j;
-                    int nSkip = 0;
-                    int remaining = format.GetLength() - i - 1;
-
-                    if (remaining == 0 || format.GetAt(i+1) != c)
-                    {
-                        switch (c)
-                        {
-                            case 'y':
-                                i++;
-                                j++;
-                                break;
-                            case 'm':
-                                nMonth = ParseStringInteger(value, j, nSkip, 2);
-                                i++;
-                                j += nSkip;
-                                break;
-                            case 'd':
-                                nDay = ParseStringInteger(value, j, nSkip, 2);
-                                i++;
-                                j += nSkip;
-                                break;
-                            case 'H':
-                                nHour = ParseStringInteger(value, j, nSkip, 2);
-                                i++;
-                                j += nSkip;
-                                break;
-                            case 'h':
-                                nHour = ParseStringInteger(value, j, nSkip, 2);
-                                i++;
-                                j += nSkip;
-                                break;
-                            case 'M':
-                                nMin = ParseStringInteger(value, j, nSkip, 2);
-                                i++;
-                                j += nSkip;
-                                break;
-                            case 's':
-                                nSec = ParseStringInteger(value, j, nSkip, 2);
-                                i++;
-                                j += nSkip;
-                                break;
-                            case 't':
-                                bPm = (j < value.GetLength() && value.GetAt(j) == 'p');
-                                i++;
-                                j++;
-                                break;
-                        }
-                    }
-                    else if (remaining == 1 || format.GetAt(i+2) != c)
-                    {
-                        switch (c)
-                        {
-                            case 'y':
-                                nYear = ParseStringInteger(value, j, nSkip, 4);
-                                i += 2;
-                                j += nSkip;
-                                break;
-                            case 'm':
-                                nMonth = ParseStringInteger(value, j, nSkip, 2);
-                                i += 2;
-                                j += nSkip;
-                                break;
-                            case 'd':
-                                nDay = ParseStringInteger(value, j, nSkip, 2);
-                                i += 2;
-                                j += nSkip;
-                                break;
-                            case 'H':
-                                nHour = ParseStringInteger(value, j, nSkip, 2);
-                                i += 2;
-                                j += nSkip;
-                                break;
-                            case 'h':
-                                nHour = ParseStringInteger(value, j, nSkip, 2);
-                                i += 2;
-                                j += nSkip;
-                                break;
-                            case 'M':
-                                nMin = ParseStringInteger(value, j, nSkip, 2);
-                                i += 2;
-                                j += nSkip;
-                                break;
-                            case 's':
-                                nSec = ParseStringInteger(value, j, nSkip, 2);
-                                i += 2;
-                                j += nSkip;
-                                break;
-                            case 't':
-                                bPm = (j + 1 < value.GetLength() && value.GetAt(j) == 'p' && value.GetAt(j+1) == 'm');
-                                i += 2;
-                                j += 2;
-                                break;
-                        }
-                    }
-                    else if (remaining == 2 || format.GetAt(i+3) != c)
-                    {
-                        switch (c)
-                        {
-                            case 'm':
-                                {
-                                    CFX_WideString sMonth = ParseStringString(value, j, nSkip);
-                                    FX_BOOL bFind = FALSE;
-                                    for (int m = 0; m < 12; m++)
-                                    {
-                                        if (sMonth.CompareNoCase(months[m]) == 0)
-                                        {
-                                            nMonth = m + 1;
-                                            i+=3;
-                                            j+=nSkip;
-                                            bFind = TRUE;
-                                            break;
-                                        }
-                                    }
-
-                                    if (!bFind)
-                                    {
-                                        nMonth = ParseStringInteger(value, j, nSkip, 3);
-                                        i+=3;
-                                        j += nSkip;
-                                    }
-                                }
-                                break;
-                            case 'y':
-                                break;
-                            default:
-                                i+=3;
-                                j+=3;
-                                break;
-                        }
-                    }
-                    else if (remaining == 3 || format.GetAt(i+4) != c)
-                    {
-                        switch (c)
-                        {
-
-
-                            case 'y':
-                                nYear = ParseStringInteger(value, j, nSkip, 4);
-                                j += nSkip;
-                                i += 4;
-                                break;
-                            case 'm':
-                                {
-                                    FX_BOOL bFind = FALSE;
-
-                                    CFX_WideString sMonth = ParseStringString(value, j, nSkip);
-                                    sMonth.MakeLower();
-
-                                    for (int m = 0; m < 12; m++)
-                                    {
-                                        CFX_WideString sFullMonths = fullmonths[m];
-                                        sFullMonths.MakeLower();
-
-                                        if (sFullMonths.Find(sMonth.c_str(), 0) != -1)
-                                        {
-                                            nMonth = m + 1;
-                                            i += 4;
-                                            j += nSkip;
-                                            bFind = TRUE;
-                                            break;
-                                        }
-                                    }
-
-                                    if (!bFind)
-                                    {
-                                        nMonth = ParseStringInteger(value, j, nSkip, 4);
-                                        i+=4;
-                                        j += nSkip;
-                                    }
-                                }
-                                break;
-                            default:
-                                i += 4;
-                                j += 4;
-                                break;
-                        }
-                    }
-                    else
-                    {
-                        if (j >= value.GetLength() || format.GetAt(i) != value.GetAt(j))
-                        {
-                            bWrongFormat = TRUE;
-                            bExit = TRUE;
-                        }
-                        i++;
-                        j++;
-                    }
-
-                    if (oldj == j)
-                    {
-                        bWrongFormat = TRUE;
-                        bExit = TRUE;
-                    }
+              bPm = (j + 1 < value.GetLength() && value.GetAt(j) == 'p' &&
+                     value.GetAt(j + 1) == 'm');
+              i += 2;
+              j += 2;
+              break;
+          }
+        } else if (remaining == 2 || format.GetAt(i + 3) != c) {
+          switch (c) {
+            case 'm': {
+              CFX_WideString sMonth = ParseStringString(value, j, nSkip);
+              FX_BOOL bFind = FALSE;
+              for (int m = 0; m < 12; m++) {
+                if (sMonth.CompareNoCase(months[m]) == 0) {
+                  nMonth = m + 1;
+                  i += 3;
+                  j += nSkip;
+                  bFind = TRUE;
+                  break;
                 }
-
-                break;
+              }
+
+              if (!bFind) {
+                nMonth = ParseStringInteger(value, j, nSkip, 3);
+                i += 3;
+                j += nSkip;
+              }
+            } break;
+            case 'y':
+              break;
             default:
-                if (value.GetLength() <= j)
-                {
-                    bExit = TRUE;
-                }
-                else if (format.GetAt(i) != value.GetAt(j))
-                {
-                    bWrongFormat = TRUE;
-                    bExit = TRUE;
+              i += 3;
+              j += 3;
+              break;
+          }
+        } else if (remaining == 3 || format.GetAt(i + 4) != c) {
+          switch (c) {
+            case 'y':
+              nYear = ParseStringInteger(value, j, nSkip, 4);
+              j += nSkip;
+              i += 4;
+              break;
+            case 'm': {
+              FX_BOOL bFind = FALSE;
+
+              CFX_WideString sMonth = ParseStringString(value, j, nSkip);
+              sMonth.MakeLower();
+
+              for (int m = 0; m < 12; m++) {
+                CFX_WideString sFullMonths = fullmonths[m];
+                sFullMonths.MakeLower();
+
+                if (sFullMonths.Find(sMonth.c_str(), 0) != -1) {
+                  nMonth = m + 1;
+                  i += 4;
+                  j += nSkip;
+                  bFind = TRUE;
+                  break;
                 }
+              }
+
+              if (!bFind) {
+                nMonth = ParseStringInteger(value, j, nSkip, 4);
+                i += 4;
+                j += nSkip;
+              }
+            } break;
+            default:
+              i += 4;
+              j += 4;
+              break;
+          }
+        } else {
+          if (j >= value.GetLength() || format.GetAt(i) != value.GetAt(j)) {
+            bWrongFormat = TRUE;
+            bExit = TRUE;
+          }
+          i++;
+          j++;
+        }
 
-                i++;
-                j++;
-                break;
+        if (oldj == j) {
+          bWrongFormat = TRUE;
+          bExit = TRUE;
+        }
+      }
+
+      break;
+      default:
+        if (value.GetLength() <= j) {
+          bExit = TRUE;
+        } else if (format.GetAt(i) != value.GetAt(j)) {
+          bWrongFormat = TRUE;
+          bExit = TRUE;
         }
+
+        i++;
+        j++;
+        break;
     }
+  }
 
-    if (bPm) nHour += 12;
+  if (bPm)
+    nHour += 12;
 
-    if (nYear >= 0 && nYear <= nYearSub)
-        nYear += 2000;
+  if (nYear >= 0 && nYear <= nYearSub)
+    nYear += 2000;
 
-    if (nMonth < 1 || nMonth > 12)
-        bWrongFormat = TRUE;
+  if (nMonth < 1 || nMonth > 12)
+    bWrongFormat = TRUE;
 
-    if (nDay < 1 || nDay > 31)
-        bWrongFormat = TRUE;
+  if (nDay < 1 || nDay > 31)
+    bWrongFormat = TRUE;
 
-    if (nHour < 0 || nHour > 24)
-        bWrongFormat = TRUE;
+  if (nHour < 0 || nHour > 24)
+    bWrongFormat = TRUE;
 
-    if (nMin < 0 || nMin > 60)
-        bWrongFormat = TRUE;
+  if (nMin < 0 || nMin > 60)
+    bWrongFormat = TRUE;
 
-    if (nSec < 0 || nSec > 60)
-        bWrongFormat = TRUE;
+  if (nSec < 0 || nSec > 60)
+    bWrongFormat = TRUE;
 
-    double dRet = 0;
+  double dRet = 0;
 
-    if (bWrongFormat)
-    {
-        dRet = ParseNormalDate(value, bWrongFormat);
-    }
-    else
-    {
-        dRet = JS_MakeDate(JS_MakeDay(nYear,nMonth - 1,nDay),JS_MakeTime(nHour, nMin, nSec, 0));
+  if (bWrongFormat) {
+    dRet = ParseNormalDate(value, bWrongFormat);
+  } else {
+    dRet = JS_MakeDate(JS_MakeDay(nYear, nMonth - 1, nDay),
+                       JS_MakeTime(nHour, nMin, nSec, 0));
 
-        if (JS_PortIsNan(dRet))
-        {
-            dRet = JS_DateParse(value.c_str());
-        }
-    }
-
-    if (JS_PortIsNan(dRet))
-    {
-        dRet = ParseNormalDate(value, bWrongFormat);
+    if (JS_PortIsNan(dRet)) {
+      dRet = JS_DateParse(value.c_str());
     }
+  }
 
-    return dRet;
+  if (JS_PortIsNan(dRet)) {
+    dRet = ParseNormalDate(value, bWrongFormat);
+  }
 
+  return dRet;
 }
 
-CFX_WideString CJS_PublicMethods::MakeFormatDate(double dDate, const CFX_WideString & format)
-{
-    CFX_WideString sRet = L"",sPart = L"";
-
-    int nYear = JS_GetYearFromTime(dDate);
-    int nMonth = JS_GetMonthFromTime(dDate) + 1;
-    int nDay = JS_GetDayFromTime(dDate);
-    int nHour = JS_GetHourFromTime(dDate);
-    int nMin = JS_GetMinFromTime(dDate);
-    int nSec = JS_GetSecFromTime(dDate);
-
-    int i = 0;
-    while (i < format.GetLength())
-    {
-            FX_WCHAR c = format.GetAt(i);
-                int remaining = format.GetLength() - i - 1;
-        sPart = L"";
-        switch (c)
-        {
+CFX_WideString CJS_PublicMethods::MakeFormatDate(double dDate,
+                                                 const CFX_WideString& format) {
+  CFX_WideString sRet = L"", sPart = L"";
+
+  int nYear = JS_GetYearFromTime(dDate);
+  int nMonth = JS_GetMonthFromTime(dDate) + 1;
+  int nDay = JS_GetDayFromTime(dDate);
+  int nHour = JS_GetHourFromTime(dDate);
+  int nMin = JS_GetMinFromTime(dDate);
+  int nSec = JS_GetSecFromTime(dDate);
+
+  int i = 0;
+  while (i < format.GetLength()) {
+    FX_WCHAR c = format.GetAt(i);
+    int remaining = format.GetLength() - i - 1;
+    sPart = L"";
+    switch (c) {
+      case 'y':
+      case 'm':
+      case 'd':
+      case 'H':
+      case 'h':
+      case 'M':
+      case 's':
+      case 't':
+        if (remaining == 0 || format.GetAt(i + 1) != c) {
+          switch (c) {
             case 'y':
+              sPart += c;
+              break;
             case 'm':
+              sPart.Format(L"%d", nMonth);
+              break;
             case 'd':
+              sPart.Format(L"%d", nDay);
+              break;
             case 'H':
+              sPart.Format(L"%d", nHour);
+              break;
             case 'h':
+              sPart.Format(L"%d", nHour > 12 ? nHour - 12 : nHour);
+              break;
             case 'M':
+              sPart.Format(L"%d", nMin);
+              break;
             case 's':
+              sPart.Format(L"%d", nSec);
+              break;
             case 't':
-                if (remaining == 0 || format.GetAt(i+1) != c)
-                {
-                    switch (c)
-                    {
-                        case 'y':
-                            sPart += c;
-                            break;
-                        case 'm':
-                            sPart.Format(L"%d",nMonth);
-                            break;
-                        case 'd':
-                            sPart.Format(L"%d",nDay);
-                            break;
-                        case 'H':
-                            sPart.Format(L"%d",nHour);
-                            break;
-                        case 'h':
-                            sPart.Format(L"%d",nHour>12?nHour - 12:nHour);
-                            break;
-                        case 'M':
-                            sPart.Format(L"%d",nMin);
-                            break;
-                        case 's':
-                            sPart.Format(L"%d",nSec);
-                            break;
-                        case 't':
-                            sPart += nHour>12?'p':'a';
-                            break;
-                    }
-                    i++;
-                }
-                else if (remaining == 1 || format.GetAt(i+2) != c)
-                {
-                    switch (c)
-                    {
-                        case 'y':
-                            sPart.Format(L"%02d",nYear - (nYear / 100) * 100);
-                            break;
-                        case 'm':
-                            sPart.Format(L"%02d",nMonth);
-                            break;
-                        case 'd':
-                            sPart.Format(L"%02d",nDay);
-                            break;
-                        case 'H':
-                            sPart.Format(L"%02d",nHour);
-                            break;
-                        case 'h':
-                            sPart.Format(L"%02d",nHour>12?nHour - 12:nHour);
-                            break;
-                        case 'M':
-                            sPart.Format(L"%02d",nMin);
-                            break;
-                        case 's':
-                            sPart.Format(L"%02d",nSec);
-                            break;
-                        case 't':
-                            sPart = nHour>12? L"pm": L"am";
-                            break;
-                    }
-                    i+=2;
-                }
-                else if (remaining == 2 || format.GetAt(i+3) != c)
-                {
-                    switch (c)
-                    {
-                        case 'm':
-                            i+=3;
-                            if (nMonth > 0&&nMonth <= 12)
-                                sPart += months[nMonth - 1];
-                            break;
-                        default:
-                            i+=3;
-                            sPart += c;
-                            sPart += c;
-                            sPart += c;
-                            break;
-                    }
-                }
-                else if (remaining == 3 || format.GetAt(i+4) != c)
-                {
-                    switch (c)
-                    {
-                        case 'y':
-                            sPart.Format(L"%04d",nYear);
-                            i += 4;
-                            break;
-                        case 'm':
-                            i+=4;
-                            if (nMonth > 0&&nMonth <= 12)
-                                sPart += fullmonths[nMonth - 1];
-                            break;
-                        default:
-                            i += 4;
-                            sPart += c;
-                            sPart += c;
-                            sPart += c;
-                            sPart += c;
-                            break;
-                    }
-                }
-                else
-                {
-                    i++;
-                    sPart += c;
-                }
-                break;
+              sPart += nHour > 12 ? 'p' : 'a';
+              break;
+          }
+          i++;
+        } else if (remaining == 1 || format.GetAt(i + 2) != c) {
+          switch (c) {
+            case 'y':
+              sPart.Format(L"%02d", nYear - (nYear / 100) * 100);
+              break;
+            case 'm':
+              sPart.Format(L"%02d", nMonth);
+              break;
+            case 'd':
+              sPart.Format(L"%02d", nDay);
+              break;
+            case 'H':
+              sPart.Format(L"%02d", nHour);
+              break;
+            case 'h':
+              sPart.Format(L"%02d", nHour > 12 ? nHour - 12 : nHour);
+              break;
+            case 'M':
+              sPart.Format(L"%02d", nMin);
+              break;
+            case 's':
+              sPart.Format(L"%02d", nSec);
+              break;
+            case 't':
+              sPart = nHour > 12 ? L"pm" : L"am";
+              break;
+          }
+          i += 2;
+        } else if (remaining == 2 || format.GetAt(i + 3) != c) {
+          switch (c) {
+            case 'm':
+              i += 3;
+              if (nMonth > 0 && nMonth <= 12)
+                sPart += months[nMonth - 1];
+              break;
             default:
-                i++;
-                sPart += c;
-                break;
+              i += 3;
+              sPart += c;
+              sPart += c;
+              sPart += c;
+              break;
+          }
+        } else if (remaining == 3 || format.GetAt(i + 4) != c) {
+          switch (c) {
+            case 'y':
+              sPart.Format(L"%04d", nYear);
+              i += 4;
+              break;
+            case 'm':
+              i += 4;
+              if (nMonth > 0 && nMonth <= 12)
+                sPart += fullmonths[nMonth - 1];
+              break;
+            default:
+              i += 4;
+              sPart += c;
+              sPart += c;
+              sPart += c;
+              sPart += c;
+              break;
+          }
+        } else {
+          i++;
+          sPart += c;
         }
-
-        sRet += sPart;
+        break;
+      default:
+        i++;
+        sPart += c;
+        break;
     }
 
-    return sRet;
+    sRet += sPart;
+  }
+
+  return sRet;
 }
 
 /* -------------------------------------------------------------------------- */
 
-//function AFNumber_Format(nDec, sepStyle, negStyle, currStyle, strCurrency, bCurrencyPrepend)
-FX_BOOL CJS_PublicMethods::AFNumber_Format(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+// function AFNumber_Format(nDec, sepStyle, negStyle, currStyle, strCurrency,
+// bCurrencyPrepend)
+FX_BOOL CJS_PublicMethods::AFNumber_Format(IFXJS_Context* cc,
+                                           const CJS_Parameters& params,
+                                           CJS_Value& vRet,
+                                           CFX_WideString& sError) {
 #if _FX_OS_ != _FX_ANDROID_
-	v8::Isolate* isolate = ::GetIsolate(cc);
-	CJS_Context* pContext = (CJS_Context *)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
-
-	if (params.size() != 6)
-	{
-		sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-		return FALSE;
-	}
-	if(!pEvent->m_pValue)
-		return FALSE;
-	CFX_WideString& Value = pEvent->Value();
-	CFX_ByteString strValue = StrTrim(CFX_ByteString::FromUnicode(Value));
-
-	if (strValue.IsEmpty()) return TRUE;
-
-	int iDec = params[0].ToInt();
-	int iSepStyle = params[1].ToInt();
-	int iNegStyle = params[2].ToInt();
-	// params[3] is iCurrStyle, it's not used.
-	std::wstring wstrCurrency(params[4].ToCFXWideString().c_str());
-	FX_BOOL bCurrencyPrepend = params[5].ToBool();
-
-	if (iDec < 0) iDec = -iDec;
-
-	if (iSepStyle < 0 || iSepStyle > 3)
-		iSepStyle = 0;
-
-	if (iNegStyle < 0 || iNegStyle > 3)
-		iNegStyle = 0;
-
-
-	//////////////////////////////////////////////////////
-	//for processing decimal places
-	strValue.Replace(",", ".");
-	double dValue = atof(strValue);
-	if (iDec > 0)
-		dValue += DOUBLE_CORRECT;//
-
-	int iDec2;
-	int iNegative = 0;
-
-	strValue = fcvt(dValue, iDec, &iDec2, &iNegative);
-	if (strValue.IsEmpty())
-	{
-		dValue = 0;
-		strValue = fcvt(dValue, iDec, &iDec2, &iNegative);
-		if (strValue.IsEmpty())
-		{
-			strValue = "0";
-			iDec2 = 1;
-		}
-
-	}
-
-	if (iDec2 < 0)
-	{
-		for (int iNum = 0;iNum < abs(iDec2);iNum++)
-		{
-			strValue = "0" + strValue;
-		}
-		iDec2 = 0;
-
-	}
-	int iMax = strValue.GetLength();
-	if (iDec2 > iMax)
-	{
-		for (int iNum = 0;iNum <= iDec2 - iMax ;iNum++)
-		{
-			strValue += "0";
-		}
-		iMax = iDec2+1;
-	}
-	///////////////////////////////////////////////////////
-    //for processing seperator style
-	if (iDec2 < iMax)
-	{
-		if (iSepStyle == 0 || iSepStyle == 1)
-		{
-			strValue.Insert(iDec2, '.');
-			iMax++;
-		}
-		else if (iSepStyle == 2 || iSepStyle == 3)
-		{
-			strValue.Insert(iDec2, ',');
-			iMax++;
-		}
-
-		if (iDec2 == 0)
-			strValue.Insert(iDec2, '0');
-	}
-	if (iSepStyle == 0 || iSepStyle == 2)
-	{
-		char cSeperator;
-		if (iSepStyle == 0)
-			cSeperator = ',';
-		else
-			cSeperator = '.';
-
-		int iDecPositive,iDecNegative;
-		iDecPositive = iDec2;
-		iDecNegative = iDec2;
-
-		for (iDecPositive = iDec2 -3; iDecPositive > 0;iDecPositive -= 3)
-		{
-			strValue.Insert(iDecPositive, cSeperator);
-			iMax++;
-		}
-	}
-
-	//////////////////////////////////////////////////////////////////////
-    //for processing currency string
-
-	Value = CFX_WideString::FromLocal(strValue);
-	std::wstring strValue2 = Value.c_str();
-
-	if (bCurrencyPrepend)
-		strValue2 = wstrCurrency + strValue2;
-	else
-		strValue2 = strValue2 + wstrCurrency;
-
-
-
-	/////////////////////////////////////////////////////////////////////////
-	//for processing negative style
-	if (iNegative)
-	{
-		if (iNegStyle == 0)
-		{
-			strValue2.insert(0,L"-");
-		}
-		if (iNegStyle == 2 || iNegStyle == 3)
-		{
-			strValue2.insert(0,L"(");
-			strValue2.insert(strValue2.length(),L")");
-		}
-		if (iNegStyle == 1 || iNegStyle == 3)
-		{
-			if (Field * fTarget = pEvent->Target_Field())
-			{
-				CJS_Array arColor(isolate);
-				CJS_Value vColElm(isolate);
-				vColElm = L"RGB";
-				arColor.SetElement(0,vColElm);
-				vColElm = 1;
-				arColor.SetElement(1,vColElm);
-				vColElm = 0;
-				arColor.SetElement(2,vColElm);
-
-				arColor.SetElement(3,vColElm);
-
-				CJS_PropValue vProp(isolate);
-				vProp.StartGetting();
-				vProp<<arColor;
-				vProp.StartSetting();
-				fTarget->textColor(cc,vProp,sError);// red
-			}
-		}
-	}
-	else
-	{
-		if (iNegStyle == 1 || iNegStyle == 3)
-		{
-			if (Field *fTarget = pEvent->Target_Field())
-			{
-				CJS_Array arColor(isolate);
-				CJS_Value vColElm(isolate);
-				vColElm = L"RGB";
-				arColor.SetElement(0,vColElm);
-				vColElm = 0;
-				arColor.SetElement(1,vColElm);
-				arColor.SetElement(2,vColElm);
-				arColor.SetElement(3,vColElm);
-
-				CJS_PropValue vProp(isolate);
-				vProp.StartGetting();
-				fTarget->textColor(cc,vProp,sError);
-
-				CJS_Array aProp(isolate);
-				vProp.ConvertToArray(aProp);
-
-				CPWL_Color crProp;
-				CPWL_Color crColor;
-				color::ConvertArrayToPWLColor(aProp, crProp);
-				color::ConvertArrayToPWLColor(arColor, crColor);
-
-				if (crColor != crProp)
-				{
-					CJS_PropValue vProp2(isolate);
-					vProp2.StartGetting();
-					vProp2<<arColor;
-					vProp2.StartSetting();
-     				fTarget->textColor(cc,vProp2,sError);
-				}
-			}
-		}
-	}
-	Value = strValue2.c_str();
-#endif
+  v8::Isolate* isolate = ::GetIsolate(cc);
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (params.size() != 6) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+  if (!pEvent->m_pValue)
+    return FALSE;
+  CFX_WideString& Value = pEvent->Value();
+  CFX_ByteString strValue = StrTrim(CFX_ByteString::FromUnicode(Value));
+
+  if (strValue.IsEmpty())
     return TRUE;
-}
-
-//function AFNumber_Keystroke(nDec, sepStyle, negStyle, currStyle, strCurrency, bCurrencyPrepend)
-FX_BOOL CJS_PublicMethods::AFNumber_Keystroke(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
-    CJS_EventHandler* pEvent = pContext->GetEventHandler();
-    ASSERT(pEvent != NULL);
-
-    if(params.size() < 2)
-        return FALSE;
-    int iSepStyle = params[1].ToInt();
-
-    if (iSepStyle < 0 || iSepStyle > 3)
-        iSepStyle = 0;
-    if(!pEvent->m_pValue)
-        return FALSE;
-    CFX_WideString & val = pEvent->Value();
-    CFX_WideString & w_strChange = pEvent->Change();
-    CFX_WideString w_strValue = val;
-
-    if (pEvent->WillCommit())
-    {
-        CFX_WideString wstrChange = w_strChange;
-        CFX_WideString wstrValue = StrLTrim(w_strValue.c_str());
-        if (wstrValue.IsEmpty())
-            return TRUE;
-
-        CFX_WideString swTemp = wstrValue;
-        swTemp.Replace(L",", L".");
-        if (!IsNumber(swTemp.c_str()))
-        {
-            pEvent->Rc() = FALSE;
-            sError = JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE);
-            Alert(pContext, sError.c_str());
-            return TRUE;
-        }
-        return TRUE; // it happens after the last keystroke and before validating,
-    }
 
-    std::wstring w_strValue2 = w_strValue.c_str();
-    std::wstring w_strChange2 = w_strChange.c_str();
-    std::wstring w_strSelected;
-    if(-1 != pEvent->SelStart())
-        w_strSelected = w_strValue2.substr(pEvent->SelStart(),(pEvent->SelEnd() - pEvent->SelStart()));
-    FX_BOOL bHasSign = (w_strValue2.find('-') != -1) && (w_strSelected.find('-') == -1);
-    if (bHasSign)
-    {
-        //can't insert "change" in front to sign postion.
-        if (pEvent->SelStart() == 0)
-        {
-            FX_BOOL &bRc = pEvent->Rc();
-            bRc = FALSE;
-            return TRUE;
+  int iDec = params[0].ToInt();
+  int iSepStyle = params[1].ToInt();
+  int iNegStyle = params[2].ToInt();
+  // params[3] is iCurrStyle, it's not used.
+  std::wstring wstrCurrency(params[4].ToCFXWideString().c_str());
+  FX_BOOL bCurrencyPrepend = params[5].ToBool();
+
+  if (iDec < 0)
+    iDec = -iDec;
+
+  if (iSepStyle < 0 || iSepStyle > 3)
+    iSepStyle = 0;
+
+  if (iNegStyle < 0 || iNegStyle > 3)
+    iNegStyle = 0;
+
+  //////////////////////////////////////////////////////
+  // for processing decimal places
+  strValue.Replace(",", ".");
+  double dValue = atof(strValue);
+  if (iDec > 0)
+    dValue += DOUBLE_CORRECT;  //
+
+  int iDec2;
+  int iNegative = 0;
+
+  strValue = fcvt(dValue, iDec, &iDec2, &iNegative);
+  if (strValue.IsEmpty()) {
+    dValue = 0;
+    strValue = fcvt(dValue, iDec, &iDec2, &iNegative);
+    if (strValue.IsEmpty()) {
+      strValue = "0";
+      iDec2 = 1;
+    }
+  }
+
+  if (iDec2 < 0) {
+    for (int iNum = 0; iNum < abs(iDec2); iNum++) {
+      strValue = "0" + strValue;
+    }
+    iDec2 = 0;
+  }
+  int iMax = strValue.GetLength();
+  if (iDec2 > iMax) {
+    for (int iNum = 0; iNum <= iDec2 - iMax; iNum++) {
+      strValue += "0";
+    }
+    iMax = iDec2 + 1;
+  }
+  ///////////////////////////////////////////////////////
+  // for processing seperator style
+  if (iDec2 < iMax) {
+    if (iSepStyle == 0 || iSepStyle == 1) {
+      strValue.Insert(iDec2, '.');
+      iMax++;
+    } else if (iSepStyle == 2 || iSepStyle == 3) {
+      strValue.Insert(iDec2, ',');
+      iMax++;
+    }
+
+    if (iDec2 == 0)
+      strValue.Insert(iDec2, '0');
+  }
+  if (iSepStyle == 0 || iSepStyle == 2) {
+    char cSeperator;
+    if (iSepStyle == 0)
+      cSeperator = ',';
+    else
+      cSeperator = '.';
+
+    int iDecPositive, iDecNegative;
+    iDecPositive = iDec2;
+    iDecNegative = iDec2;
+
+    for (iDecPositive = iDec2 - 3; iDecPositive > 0; iDecPositive -= 3) {
+      strValue.Insert(iDecPositive, cSeperator);
+      iMax++;
+    }
+  }
+
+  //////////////////////////////////////////////////////////////////////
+  // for processing currency string
+
+  Value = CFX_WideString::FromLocal(strValue);
+  std::wstring strValue2 = Value.c_str();
+
+  if (bCurrencyPrepend)
+    strValue2 = wstrCurrency + strValue2;
+  else
+    strValue2 = strValue2 + wstrCurrency;
+
+  /////////////////////////////////////////////////////////////////////////
+  // for processing negative style
+  if (iNegative) {
+    if (iNegStyle == 0) {
+      strValue2.insert(0, L"-");
+    }
+    if (iNegStyle == 2 || iNegStyle == 3) {
+      strValue2.insert(0, L"(");
+      strValue2.insert(strValue2.length(), L")");
+    }
+    if (iNegStyle == 1 || iNegStyle == 3) {
+      if (Field* fTarget = pEvent->Target_Field()) {
+        CJS_Array arColor(isolate);
+        CJS_Value vColElm(isolate);
+        vColElm = L"RGB";
+        arColor.SetElement(0, vColElm);
+        vColElm = 1;
+        arColor.SetElement(1, vColElm);
+        vColElm = 0;
+        arColor.SetElement(2, vColElm);
+
+        arColor.SetElement(3, vColElm);
+
+        CJS_PropValue vProp(isolate);
+        vProp.StartGetting();
+        vProp << arColor;
+        vProp.StartSetting();
+        fTarget->textColor(cc, vProp, sError);  // red
+      }
+    }
+  } else {
+    if (iNegStyle == 1 || iNegStyle == 3) {
+      if (Field* fTarget = pEvent->Target_Field()) {
+        CJS_Array arColor(isolate);
+        CJS_Value vColElm(isolate);
+        vColElm = L"RGB";
+        arColor.SetElement(0, vColElm);
+        vColElm = 0;
+        arColor.SetElement(1, vColElm);
+        arColor.SetElement(2, vColElm);
+        arColor.SetElement(3, vColElm);
+
+        CJS_PropValue vProp(isolate);
+        vProp.StartGetting();
+        fTarget->textColor(cc, vProp, sError);
+
+        CJS_Array aProp(isolate);
+        vProp.ConvertToArray(aProp);
+
+        CPWL_Color crProp;
+        CPWL_Color crColor;
+        color::ConvertArrayToPWLColor(aProp, crProp);
+        color::ConvertArrayToPWLColor(arColor, crColor);
+
+        if (crColor != crProp) {
+          CJS_PropValue vProp2(isolate);
+          vProp2.StartGetting();
+          vProp2 << arColor;
+          vProp2.StartSetting();
+          fTarget->textColor(cc, vProp2, sError);
         }
+      }
     }
+  }
+  Value = strValue2.c_str();
+#endif
+  return TRUE;
+}
 
-    char cSep = L'.';
-
-    switch (iSepStyle)
-    {
+// function AFNumber_Keystroke(nDec, sepStyle, negStyle, currStyle, strCurrency,
+// bCurrencyPrepend)
+FX_BOOL CJS_PublicMethods::AFNumber_Keystroke(IFXJS_Context* cc,
+                                              const CJS_Parameters& params,
+                                              CJS_Value& vRet,
+                                              CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (params.size() < 2)
+    return FALSE;
+  int iSepStyle = params[1].ToInt();
+
+  if (iSepStyle < 0 || iSepStyle > 3)
+    iSepStyle = 0;
+  if (!pEvent->m_pValue)
+    return FALSE;
+  CFX_WideString& val = pEvent->Value();
+  CFX_WideString& w_strChange = pEvent->Change();
+  CFX_WideString w_strValue = val;
+
+  if (pEvent->WillCommit()) {
+    CFX_WideString wstrChange = w_strChange;
+    CFX_WideString wstrValue = StrLTrim(w_strValue.c_str());
+    if (wstrValue.IsEmpty())
+      return TRUE;
+
+    CFX_WideString swTemp = wstrValue;
+    swTemp.Replace(L",", L".");
+    if (!IsNumber(swTemp.c_str())) {
+      pEvent->Rc() = FALSE;
+      sError = JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE);
+      Alert(pContext, sError.c_str());
+      return TRUE;
+    }
+    return TRUE;  // it happens after the last keystroke and before validating,
+  }
+
+  std::wstring w_strValue2 = w_strValue.c_str();
+  std::wstring w_strChange2 = w_strChange.c_str();
+  std::wstring w_strSelected;
+  if (-1 != pEvent->SelStart())
+    w_strSelected = w_strValue2.substr(pEvent->SelStart(),
+                                       (pEvent->SelEnd() - pEvent->SelStart()));
+  FX_BOOL bHasSign =
+      (w_strValue2.find('-') != -1) && (w_strSelected.find('-') == -1);
+  if (bHasSign) {
+    // can't insert "change" in front to sign postion.
+    if (pEvent->SelStart() == 0) {
+      FX_BOOL& bRc = pEvent->Rc();
+      bRc = FALSE;
+      return TRUE;
+    }
+  }
+
+  char cSep = L'.';
+
+  switch (iSepStyle) {
     case 0:
     case 1:
-        cSep = L'.';
-        break;
+      cSep = L'.';
+      break;
     case 2:
     case 3:
-        cSep = L',';
-        break;
-    }
-
-    FX_BOOL bHasSep = (w_strValue2.find(cSep) != -1);
-    for (std::wstring::iterator it = w_strChange2.begin(); it != w_strChange2.end(); it++)
-    {
-        if (*it == cSep)
-        {
-            if (bHasSep)
-            {
-                FX_BOOL &bRc = pEvent->Rc();
-                bRc = FALSE;
-                return TRUE;
-            }
-            bHasSep = TRUE;
-            continue;
-        }
-        if (*it == L'-')
-        {
-            if (bHasSign)
-            {
-                FX_BOOL &bRc = pEvent->Rc();
-                bRc = FALSE;
-                return TRUE;
-            }
-            if (it != w_strChange2.begin()) //sign's position is not correct
-            {
-                FX_BOOL &bRc = pEvent->Rc();
-                bRc = FALSE;
-                return TRUE;
-            }
-            if (pEvent->SelStart() != 0)
-            {
-                FX_BOOL &bRc = pEvent->Rc();
-                bRc = FALSE;
-                return TRUE;
-            }
-            bHasSign = TRUE;
-            continue;
-        }
-
-        if (!IsDigit(*it))
-        {
-            FX_BOOL &bRc = pEvent->Rc();
-            bRc = FALSE;
-            return TRUE;
-        }
-    }
-
-
-    std::wstring w_prefix = w_strValue2.substr(0,pEvent->SelStart());
-    std::wstring w_postfix;
-    if (pEvent->SelEnd()<(int)w_strValue2.length())
-        w_postfix  = w_strValue2.substr(pEvent->SelEnd());
-    w_strValue2 = w_prefix + w_strChange2 + w_postfix;
-    w_strValue = w_strValue2.c_str();
-    val = w_strValue;
-    return TRUE;
-
+      cSep = L',';
+      break;
+  }
+
+  FX_BOOL bHasSep = (w_strValue2.find(cSep) != -1);
+  for (std::wstring::iterator it = w_strChange2.begin();
+       it != w_strChange2.end(); it++) {
+    if (*it == cSep) {
+      if (bHasSep) {
+        FX_BOOL& bRc = pEvent->Rc();
+        bRc = FALSE;
+        return TRUE;
+      }
+      bHasSep = TRUE;
+      continue;
+    }
+    if (*it == L'-') {
+      if (bHasSign) {
+        FX_BOOL& bRc = pEvent->Rc();
+        bRc = FALSE;
+        return TRUE;
+      }
+      if (it != w_strChange2.begin())  // sign's position is not correct
+      {
+        FX_BOOL& bRc = pEvent->Rc();
+        bRc = FALSE;
+        return TRUE;
+      }
+      if (pEvent->SelStart() != 0) {
+        FX_BOOL& bRc = pEvent->Rc();
+        bRc = FALSE;
+        return TRUE;
+      }
+      bHasSign = TRUE;
+      continue;
+    }
+
+    if (!IsDigit(*it)) {
+      FX_BOOL& bRc = pEvent->Rc();
+      bRc = FALSE;
+      return TRUE;
+    }
+  }
+
+  std::wstring w_prefix = w_strValue2.substr(0, pEvent->SelStart());
+  std::wstring w_postfix;
+  if (pEvent->SelEnd() < (int)w_strValue2.length())
+    w_postfix = w_strValue2.substr(pEvent->SelEnd());
+  w_strValue2 = w_prefix + w_strChange2 + w_postfix;
+  w_strValue = w_strValue2.c_str();
+  val = w_strValue;
+  return TRUE;
 }
 
-//function AFPercent_Format(nDec, sepStyle)
-FX_BOOL CJS_PublicMethods::AFPercent_Format(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+// function AFPercent_Format(nDec, sepStyle)
+FX_BOOL CJS_PublicMethods::AFPercent_Format(IFXJS_Context* cc,
+                                            const CJS_Parameters& params,
+                                            CJS_Value& vRet,
+                                            CFX_WideString& sError) {
 #if _FX_OS_ != _FX_ANDROID_
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
-    CJS_EventHandler* pEvent = pContext->GetEventHandler();
-    ASSERT(pEvent != NULL);
-
-    if (params.size() != 2)
-	{
-		sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-		return FALSE;
-	}
-	if(!pEvent->m_pValue)
-		return FALSE;
-
-	CFX_WideString& Value = pEvent->Value();
-	CFX_ByteString strValue = StrTrim(CFX_ByteString::FromUnicode(Value));
-	if (strValue.IsEmpty())
-		return TRUE;
-
-	int iDec = params[0].ToInt();
-	if (iDec < 0)
-		iDec = -iDec;
-
-	int iSepStyle = params[1].ToInt();
-	if (iSepStyle < 0 || iSepStyle > 3)
-		iSepStyle = 0;
-
-	//////////////////////////////////////////////////////
-	//for processing decimal places
-	double dValue = atof(strValue);
-	dValue *= 100;
-	if (iDec > 0)
-		dValue += DOUBLE_CORRECT;//��
-
-	int iDec2;
-	int iNegative = 0;
-	strValue = fcvt(dValue, iDec, &iDec2, &iNegative);
-    if (strValue.IsEmpty())
-	{
-		dValue = 0;
-		strValue = fcvt(dValue, iDec, &iDec2, &iNegative);
-	}
-
-	if (iDec2 < 0)
-	{
-		for (int iNum = 0; iNum < abs(iDec2); iNum++)
-		{
-			strValue = "0" + strValue;
-		}
-		iDec2 = 0;
-
-	}
-	int iMax = strValue.GetLength();
-	if (iDec2 > iMax)
-	{
-		for (int iNum = 0; iNum <= iDec2 - iMax; iNum++)
-		{
-			strValue += "0";
-		}
-		iMax = iDec2+1;
-	}
-	///////////////////////////////////////////////////////
-    //for processing seperator style
-	if (iDec2 < iMax)
-	{
-		if (iSepStyle == 0 || iSepStyle == 1)
-		{
-			strValue.Insert(iDec2, '.');
-			iMax++;
-		}
-		else if (iSepStyle == 2 || iSepStyle == 3)
-		{
-			strValue.Insert(iDec2, ',');
-			iMax++;
-		}
-
-		if (iDec2 == 0)
-			strValue.Insert(iDec2, '0');
-	}
-	if (iSepStyle == 0 || iSepStyle == 2)
-	{
-		char cSeperator;
-		if (iSepStyle == 0)
-			cSeperator = ',';
-		else
-			cSeperator = '.';
-
-		int iDecPositive,iDecNegative;
-		iDecPositive = iDec2;
-		iDecNegative = iDec2;
-
-		for (iDecPositive = iDec2 -3; iDecPositive > 0; iDecPositive -= 3)
-		{
-			strValue.Insert(iDecPositive,cSeperator);
-			iMax++;
-		}
-	}
-	////////////////////////////////////////////////////////////////////
-	//negative mark
-	if (iNegative)
-		strValue = "-" + strValue;
-	strValue += "%";
-	Value = CFX_WideString::FromLocal(strValue);
-#endif
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (params.size() != 2) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+  if (!pEvent->m_pValue)
+    return FALSE;
+
+  CFX_WideString& Value = pEvent->Value();
+  CFX_ByteString strValue = StrTrim(CFX_ByteString::FromUnicode(Value));
+  if (strValue.IsEmpty())
     return TRUE;
-}
-//AFPercent_Keystroke(nDec, sepStyle)
-FX_BOOL CJS_PublicMethods::AFPercent_Keystroke(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return AFNumber_Keystroke(cc,params,vRet,sError);
-}
-
-//function AFDate_FormatEx(cFormat)
-FX_BOOL CJS_PublicMethods::AFDate_FormatEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
-    CJS_EventHandler* pEvent = pContext->GetEventHandler();
-    ASSERT(pEvent != NULL);
-
-    if (params.size() != 1)
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
-    if(!pEvent->m_pValue)
-        return FALSE;
-
-    CFX_WideString& val = pEvent->Value();
-    CFX_WideString strValue = val;
-    if (strValue.IsEmpty())
-        return TRUE;
-
-    CFX_WideString sFormat = params[0].ToCFXWideString();
-    FX_BOOL bWrongFormat = FALSE;
-    double dDate = 0.0f;
 
-    if(strValue.Find(L"GMT") != -1)
-    {
-        //for GMT format time
-        //such as "Tue Aug 11 14:24:16 GMT+08002009"
-        dDate = MakeInterDate(strValue);
-    }
+  int iDec = params[0].ToInt();
+  if (iDec < 0)
+    iDec = -iDec;
+
+  int iSepStyle = params[1].ToInt();
+  if (iSepStyle < 0 || iSepStyle > 3)
+    iSepStyle = 0;
+
+  //////////////////////////////////////////////////////
+  // for processing decimal places
+  double dValue = atof(strValue);
+  dValue *= 100;
+  if (iDec > 0)
+    dValue += DOUBLE_CORRECT;  //��
+
+  int iDec2;
+  int iNegative = 0;
+  strValue = fcvt(dValue, iDec, &iDec2, &iNegative);
+  if (strValue.IsEmpty()) {
+    dValue = 0;
+    strValue = fcvt(dValue, iDec, &iDec2, &iNegative);
+  }
+
+  if (iDec2 < 0) {
+    for (int iNum = 0; iNum < abs(iDec2); iNum++) {
+      strValue = "0" + strValue;
+    }
+    iDec2 = 0;
+  }
+  int iMax = strValue.GetLength();
+  if (iDec2 > iMax) {
+    for (int iNum = 0; iNum <= iDec2 - iMax; iNum++) {
+      strValue += "0";
+    }
+    iMax = iDec2 + 1;
+  }
+  ///////////////////////////////////////////////////////
+  // for processing seperator style
+  if (iDec2 < iMax) {
+    if (iSepStyle == 0 || iSepStyle == 1) {
+      strValue.Insert(iDec2, '.');
+      iMax++;
+    } else if (iSepStyle == 2 || iSepStyle == 3) {
+      strValue.Insert(iDec2, ',');
+      iMax++;
+    }
+
+    if (iDec2 == 0)
+      strValue.Insert(iDec2, '0');
+  }
+  if (iSepStyle == 0 || iSepStyle == 2) {
+    char cSeperator;
+    if (iSepStyle == 0)
+      cSeperator = ',';
     else
-    {
-        dDate = MakeRegularDate(strValue,sFormat,bWrongFormat);
-    }
-
-    if (JS_PortIsNan(dDate))
-    {
-        CFX_WideString swMsg;
-        swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE).c_str(), sFormat.c_str());
-        Alert(pContext, swMsg.c_str());
-        return FALSE;
-    }
-
-    val =  MakeFormatDate(dDate,sFormat);
-    return TRUE;
+      cSeperator = '.';
+
+    int iDecPositive, iDecNegative;
+    iDecPositive = iDec2;
+    iDecNegative = iDec2;
+
+    for (iDecPositive = iDec2 - 3; iDecPositive > 0; iDecPositive -= 3) {
+      strValue.Insert(iDecPositive, cSeperator);
+      iMax++;
+    }
+  }
+  ////////////////////////////////////////////////////////////////////
+  // negative mark
+  if (iNegative)
+    strValue = "-" + strValue;
+  strValue += "%";
+  Value = CFX_WideString::FromLocal(strValue);
+#endif
+  return TRUE;
+}
+// AFPercent_Keystroke(nDec, sepStyle)
+FX_BOOL CJS_PublicMethods::AFPercent_Keystroke(IFXJS_Context* cc,
+                                               const CJS_Parameters& params,
+                                               CJS_Value& vRet,
+                                               CFX_WideString& sError) {
+  return AFNumber_Keystroke(cc, params, vRet, sError);
 }
 
-double CJS_PublicMethods::MakeInterDate(CFX_WideString strValue)
-{
-    int nHour;
-    int nMin;
-    int nSec;
-    int nYear;
-    int nMonth;
-    int nDay;
-
-    CFX_WideStringArray wsArray;
-    CFX_WideString sMonth = L"";
-    CFX_WideString sTemp = L"";
-    int nSize = strValue.GetLength();
-
-    for(int i = 0; i < nSize; i++)
-    {
-        FX_WCHAR c = strValue.GetAt(i);
-        if(c == L' ' || c == L':')
-        {
-            wsArray.Add(sTemp);
-            sTemp = L"";
-            continue;
-        }
+// function AFDate_FormatEx(cFormat)
+FX_BOOL CJS_PublicMethods::AFDate_FormatEx(IFXJS_Context* cc,
+                                           const CJS_Parameters& params,
+                                           CJS_Value& vRet,
+                                           CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (params.size() != 1) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+  if (!pEvent->m_pValue)
+    return FALSE;
+
+  CFX_WideString& val = pEvent->Value();
+  CFX_WideString strValue = val;
+  if (strValue.IsEmpty())
+    return TRUE;
 
-        sTemp += c;
-    }
+  CFX_WideString sFormat = params[0].ToCFXWideString();
+  FX_BOOL bWrongFormat = FALSE;
+  double dDate = 0.0f;
 
-    wsArray.Add(sTemp);
-    if(wsArray.GetSize() != 8)return 0;
-
-    sTemp = wsArray[1];
-    if(sTemp.Compare(L"Jan") == 0) nMonth = 1;
-    if(sTemp.Compare(L"Feb") == 0) nMonth = 2;
-    if(sTemp.Compare(L"Mar") == 0) nMonth = 3;
-    if(sTemp.Compare(L"Apr") == 0) nMonth = 4;
-    if(sTemp.Compare(L"May") == 0) nMonth = 5;
-    if(sTemp.Compare(L"Jun") == 0) nMonth = 6;
-    if(sTemp.Compare(L"Jul") == 0) nMonth = 7;
-    if(sTemp.Compare(L"Aug") == 0) nMonth = 8;
-    if(sTemp.Compare(L"Sep") == 0) nMonth = 9;
-    if(sTemp.Compare(L"Oct") == 0) nMonth = 10;
-    if(sTemp.Compare(L"Nov") == 0) nMonth = 11;
-    if(sTemp.Compare(L"Dec") == 0) nMonth = 12;
-
-    nDay = (int)ParseStringToNumber(wsArray[2].c_str());
-    nHour = (int)ParseStringToNumber(wsArray[3].c_str());
-    nMin = (int)ParseStringToNumber(wsArray[4].c_str());
-    nSec = (int)ParseStringToNumber(wsArray[5].c_str());
-    nYear = (int)ParseStringToNumber(wsArray[7].c_str());
-
-    double dRet = JS_MakeDate(JS_MakeDay(nYear,nMonth - 1,nDay),JS_MakeTime(nHour, nMin, nSec, 0));
-
-    if (JS_PortIsNan(dRet))
-    {
-        dRet = JS_DateParse(strValue.c_str());
-    }
+  if (strValue.Find(L"GMT") != -1) {
+    // for GMT format time
+    // such as "Tue Aug 11 14:24:16 GMT+08002009"
+    dDate = MakeInterDate(strValue);
+  } else {
+    dDate = MakeRegularDate(strValue, sFormat, bWrongFormat);
+  }
 
-    return dRet;
+  if (JS_PortIsNan(dDate)) {
+    CFX_WideString swMsg;
+    swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE).c_str(),
+                 sFormat.c_str());
+    Alert(pContext, swMsg.c_str());
+    return FALSE;
+  }
+
+  val = MakeFormatDate(dDate, sFormat);
+  return TRUE;
 }
 
-//AFDate_KeystrokeEx(cFormat)
-FX_BOOL CJS_PublicMethods::AFDate_KeystrokeEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
-    CJS_EventHandler* pEvent = pContext->GetEventHandler();
-    ASSERT(pEvent != NULL);
-
-    if (params.size() != 1)
-    {
-        sError = L"AFDate_KeystrokeEx's parameters' size r not correct";
-        return FALSE;
-    }
-
-    if (pEvent->WillCommit())
-    {
-        if(!pEvent->m_pValue)
-            return FALSE;
-        CFX_WideString strValue = pEvent->Value();
-        if (strValue.IsEmpty())
-            return TRUE;
-
-        CFX_WideString sFormat = params[0].ToCFXWideString();
-        FX_BOOL bWrongFormat = FALSE;
-        double dRet = MakeRegularDate(strValue,sFormat,bWrongFormat);
-        if (bWrongFormat || JS_PortIsNan(dRet))
-        {
-            CFX_WideString swMsg;
-            swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE).c_str(), sFormat.c_str());
-            Alert(pContext, swMsg.c_str());
-            pEvent->Rc() = FALSE;
-            return TRUE;
-        }
-    }
-    return TRUE;
+double CJS_PublicMethods::MakeInterDate(CFX_WideString strValue) {
+  int nHour;
+  int nMin;
+  int nSec;
+  int nYear;
+  int nMonth;
+  int nDay;
+
+  CFX_WideStringArray wsArray;
+  CFX_WideString sMonth = L"";
+  CFX_WideString sTemp = L"";
+  int nSize = strValue.GetLength();
+
+  for (int i = 0; i < nSize; i++) {
+    FX_WCHAR c = strValue.GetAt(i);
+    if (c == L' ' || c == L':') {
+      wsArray.Add(sTemp);
+      sTemp = L"";
+      continue;
+    }
+
+    sTemp += c;
+  }
+
+  wsArray.Add(sTemp);
+  if (wsArray.GetSize() != 8)
+    return 0;
+
+  sTemp = wsArray[1];
+  if (sTemp.Compare(L"Jan") == 0)
+    nMonth = 1;
+  if (sTemp.Compare(L"Feb") == 0)
+    nMonth = 2;
+  if (sTemp.Compare(L"Mar") == 0)
+    nMonth = 3;
+  if (sTemp.Compare(L"Apr") == 0)
+    nMonth = 4;
+  if (sTemp.Compare(L"May") == 0)
+    nMonth = 5;
+  if (sTemp.Compare(L"Jun") == 0)
+    nMonth = 6;
+  if (sTemp.Compare(L"Jul") == 0)
+    nMonth = 7;
+  if (sTemp.Compare(L"Aug") == 0)
+    nMonth = 8;
+  if (sTemp.Compare(L"Sep") == 0)
+    nMonth = 9;
+  if (sTemp.Compare(L"Oct") == 0)
+    nMonth = 10;
+  if (sTemp.Compare(L"Nov") == 0)
+    nMonth = 11;
+  if (sTemp.Compare(L"Dec") == 0)
+    nMonth = 12;
+
+  nDay = (int)ParseStringToNumber(wsArray[2].c_str());
+  nHour = (int)ParseStringToNumber(wsArray[3].c_str());
+  nMin = (int)ParseStringToNumber(wsArray[4].c_str());
+  nSec = (int)ParseStringToNumber(wsArray[5].c_str());
+  nYear = (int)ParseStringToNumber(wsArray[7].c_str());
+
+  double dRet = JS_MakeDate(JS_MakeDay(nYear, nMonth - 1, nDay),
+                            JS_MakeTime(nHour, nMin, nSec, 0));
+
+  if (JS_PortIsNan(dRet)) {
+    dRet = JS_DateParse(strValue.c_str());
+  }
+
+  return dRet;
 }
 
-FX_BOOL CJS_PublicMethods::AFDate_Format(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    v8::Isolate* isolate = ::GetIsolate(cc);
-
-    if (params.size() != 1)
-    {
-        CJS_Context* pContext = (CJS_Context*)cc;
-        ASSERT(pContext != NULL);
-
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
+// AFDate_KeystrokeEx(cFormat)
+FX_BOOL CJS_PublicMethods::AFDate_KeystrokeEx(IFXJS_Context* cc,
+                                              const CJS_Parameters& params,
+                                              CJS_Value& vRet,
+                                              CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (params.size() != 1) {
+    sError = L"AFDate_KeystrokeEx's parameters' size r not correct";
+    return FALSE;
+  }
+
+  if (pEvent->WillCommit()) {
+    if (!pEvent->m_pValue)
+      return FALSE;
+    CFX_WideString strValue = pEvent->Value();
+    if (strValue.IsEmpty())
+      return TRUE;
 
-    int iIndex = params[0].ToInt();
-    const FX_WCHAR* cFormats[] =  {L"m/d", L"m/d/yy", L"mm/dd/yy", L"mm/yy", L"d-mmm", L"d-mmm-yy", L"dd-mmm-yy",
-        L"yy-mm-dd", L"mmm-yy", L"mmmm-yy", L"mmm d, yyyy", L"mmmm d, yyyy",
-        L"m/d/yy h:MM tt", L"m/d/yy HH:MM" };
-
-    ASSERT(iIndex < FX_ArraySize(cFormats));
-
-    if (iIndex < 0)
-        iIndex = 0;
-    if (iIndex >= FX_ArraySize(cFormats))
-        iIndex = 0;
-    CJS_Parameters newParams;
-    CJS_Value val(isolate,cFormats[iIndex]);
-    newParams.push_back(val);
-    return AFDate_FormatEx(cc,newParams,vRet,sError);
+    CFX_WideString sFormat = params[0].ToCFXWideString();
+    FX_BOOL bWrongFormat = FALSE;
+    double dRet = MakeRegularDate(strValue, sFormat, bWrongFormat);
+    if (bWrongFormat || JS_PortIsNan(dRet)) {
+      CFX_WideString swMsg;
+      swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE).c_str(),
+                   sFormat.c_str());
+      Alert(pContext, swMsg.c_str());
+      pEvent->Rc() = FALSE;
+      return TRUE;
+    }
+  }
+  return TRUE;
 }
 
-//AFDate_KeystrokeEx(cFormat)
-FX_BOOL CJS_PublicMethods::AFDate_Keystroke(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    v8::Isolate* isolate = ::GetIsolate(cc);
+FX_BOOL CJS_PublicMethods::AFDate_Format(IFXJS_Context* cc,
+                                         const CJS_Parameters& params,
+                                         CJS_Value& vRet,
+                                         CFX_WideString& sError) {
+  v8::Isolate* isolate = ::GetIsolate(cc);
 
-    if (params.size() != 1)
-    {
-        CJS_Context* pContext = (CJS_Context*)cc;
-        ASSERT(pContext != NULL);
-
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
+  if (params.size() != 1) {
+    CJS_Context* pContext = (CJS_Context*)cc;
+    ASSERT(pContext != NULL);
 
-    int iIndex = params[0].ToInt();
-    const FX_WCHAR* cFormats[] =  {L"m/d", L"m/d/yy", L"mm/dd/yy", L"mm/yy", L"d-mmm", L"d-mmm-yy", L"dd-mmm-yy",
-        L"yy-mm-dd", L"mmm-yy", L"mmmm-yy", L"mmm d, yyyy", L"mmmm d, yyyy",
-        L"m/d/yy h:MM tt", L"m/d/yy HH:MM" };
-
-    ASSERT(iIndex<FX_ArraySize(cFormats));
-
-    if (iIndex < 0)
-        iIndex = 0;
-    if (iIndex >= FX_ArraySize(cFormats))
-        iIndex = 0;
-    CJS_Parameters newParams;
-    CJS_Value val(isolate,cFormats[iIndex]);
-    newParams.push_back(val);
-    return AFDate_KeystrokeEx(cc,newParams,vRet,sError);
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  int iIndex = params[0].ToInt();
+  const FX_WCHAR* cFormats[] = {L"m/d",
+                                L"m/d/yy",
+                                L"mm/dd/yy",
+                                L"mm/yy",
+                                L"d-mmm",
+                                L"d-mmm-yy",
+                                L"dd-mmm-yy",
+                                L"yy-mm-dd",
+                                L"mmm-yy",
+                                L"mmmm-yy",
+                                L"mmm d, yyyy",
+                                L"mmmm d, yyyy",
+                                L"m/d/yy h:MM tt",
+                                L"m/d/yy HH:MM"};
+
+  ASSERT(iIndex < FX_ArraySize(cFormats));
+
+  if (iIndex < 0)
+    iIndex = 0;
+  if (iIndex >= FX_ArraySize(cFormats))
+    iIndex = 0;
+  CJS_Parameters newParams;
+  CJS_Value val(isolate, cFormats[iIndex]);
+  newParams.push_back(val);
+  return AFDate_FormatEx(cc, newParams, vRet, sError);
 }
 
-//function AFTime_Format(ptf)
-FX_BOOL CJS_PublicMethods::AFTime_Format(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    v8::Isolate* isolate = ::GetIsolate(cc);
+// AFDate_KeystrokeEx(cFormat)
+FX_BOOL CJS_PublicMethods::AFDate_Keystroke(IFXJS_Context* cc,
+                                            const CJS_Parameters& params,
+                                            CJS_Value& vRet,
+                                            CFX_WideString& sError) {
+  v8::Isolate* isolate = ::GetIsolate(cc);
 
-    if (params.size() != 1)
-    {
-        CJS_Context* pContext = (CJS_Context*)cc;
-        ASSERT(pContext != NULL);
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
-
-    int iIndex = params[0].ToInt();
-    const FX_WCHAR* cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss", L"h:MM:ss tt"};
-
-    ASSERT(iIndex<FX_ArraySize(cFormats));
+  if (params.size() != 1) {
+    CJS_Context* pContext = (CJS_Context*)cc;
+    ASSERT(pContext != NULL);
 
-    if (iIndex < 0)
-        iIndex = 0;
-    if (iIndex >= FX_ArraySize(cFormats))
-        iIndex = 0;
-    CJS_Parameters newParams;
-    CJS_Value val(isolate,cFormats[iIndex]);
-    newParams.push_back(val);
-    return AFDate_FormatEx(cc,newParams,vRet,sError);
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  int iIndex = params[0].ToInt();
+  const FX_WCHAR* cFormats[] = {L"m/d",
+                                L"m/d/yy",
+                                L"mm/dd/yy",
+                                L"mm/yy",
+                                L"d-mmm",
+                                L"d-mmm-yy",
+                                L"dd-mmm-yy",
+                                L"yy-mm-dd",
+                                L"mmm-yy",
+                                L"mmmm-yy",
+                                L"mmm d, yyyy",
+                                L"mmmm d, yyyy",
+                                L"m/d/yy h:MM tt",
+                                L"m/d/yy HH:MM"};
+
+  ASSERT(iIndex < FX_ArraySize(cFormats));
+
+  if (iIndex < 0)
+    iIndex = 0;
+  if (iIndex >= FX_ArraySize(cFormats))
+    iIndex = 0;
+  CJS_Parameters newParams;
+  CJS_Value val(isolate, cFormats[iIndex]);
+  newParams.push_back(val);
+  return AFDate_KeystrokeEx(cc, newParams, vRet, sError);
 }
 
-FX_BOOL CJS_PublicMethods::AFTime_Keystroke(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    v8::Isolate* isolate = ::GetIsolate(cc);
-    if (params.size() != 1)
-    {
-        CJS_Context* pContext = (CJS_Context*)cc;
-        ASSERT(pContext != NULL);
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
-
-    int iIndex = params[0].ToInt();
-    const FX_WCHAR* cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss", L"h:MM:ss tt"};
+// function AFTime_Format(ptf)
+FX_BOOL CJS_PublicMethods::AFTime_Format(IFXJS_Context* cc,
+                                         const CJS_Parameters& params,
+                                         CJS_Value& vRet,
+                                         CFX_WideString& sError) {
+  v8::Isolate* isolate = ::GetIsolate(cc);
 
-    ASSERT(iIndex<FX_ArraySize(cFormats));
+  if (params.size() != 1) {
+    CJS_Context* pContext = (CJS_Context*)cc;
+    ASSERT(pContext != NULL);
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  int iIndex = params[0].ToInt();
+  const FX_WCHAR* cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss",
+                                L"h:MM:ss tt"};
+
+  ASSERT(iIndex < FX_ArraySize(cFormats));
+
+  if (iIndex < 0)
+    iIndex = 0;
+  if (iIndex >= FX_ArraySize(cFormats))
+    iIndex = 0;
+  CJS_Parameters newParams;
+  CJS_Value val(isolate, cFormats[iIndex]);
+  newParams.push_back(val);
+  return AFDate_FormatEx(cc, newParams, vRet, sError);
+}
 
-    if (iIndex < 0)
-        iIndex = 0;
-    if (iIndex >= FX_ArraySize(cFormats))
-        iIndex = 0;
-    CJS_Parameters newParams;
-    CJS_Value val(isolate,cFormats[iIndex]);
-    newParams.push_back(val);
-    return AFDate_KeystrokeEx(cc,newParams,vRet,sError);
+FX_BOOL CJS_PublicMethods::AFTime_Keystroke(IFXJS_Context* cc,
+                                            const CJS_Parameters& params,
+                                            CJS_Value& vRet,
+                                            CFX_WideString& sError) {
+  v8::Isolate* isolate = ::GetIsolate(cc);
+  if (params.size() != 1) {
+    CJS_Context* pContext = (CJS_Context*)cc;
+    ASSERT(pContext != NULL);
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  int iIndex = params[0].ToInt();
+  const FX_WCHAR* cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss",
+                                L"h:MM:ss tt"};
+
+  ASSERT(iIndex < FX_ArraySize(cFormats));
+
+  if (iIndex < 0)
+    iIndex = 0;
+  if (iIndex >= FX_ArraySize(cFormats))
+    iIndex = 0;
+  CJS_Parameters newParams;
+  CJS_Value val(isolate, cFormats[iIndex]);
+  newParams.push_back(val);
+  return AFDate_KeystrokeEx(cc, newParams, vRet, sError);
 }
 
-FX_BOOL CJS_PublicMethods::AFTime_FormatEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return AFDate_FormatEx(cc,params,vRet,sError);
+FX_BOOL CJS_PublicMethods::AFTime_FormatEx(IFXJS_Context* cc,
+                                           const CJS_Parameters& params,
+                                           CJS_Value& vRet,
+                                           CFX_WideString& sError) {
+  return AFDate_FormatEx(cc, params, vRet, sError);
 }
 
-FX_BOOL CJS_PublicMethods::AFTime_KeystrokeEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    return AFDate_KeystrokeEx(cc,params,vRet,sError);
+FX_BOOL CJS_PublicMethods::AFTime_KeystrokeEx(IFXJS_Context* cc,
+                                              const CJS_Parameters& params,
+                                              CJS_Value& vRet,
+                                              CFX_WideString& sError) {
+  return AFDate_KeystrokeEx(cc, params, vRet, sError);
 }
 
-//function AFSpecial_Format(psf)
-FX_BOOL CJS_PublicMethods::AFSpecial_Format(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
+// function AFSpecial_Format(psf)
+FX_BOOL CJS_PublicMethods::AFSpecial_Format(IFXJS_Context* cc,
+                                            const CJS_Parameters& params,
+                                            CJS_Value& vRet,
+                                            CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
 
-    if (params.size() != 1)
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
+  if (params.size() != 1) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-    std::string cFormat;
-    int iIndex = params[0].ToInt();
+  std::string cFormat;
+  int iIndex = params[0].ToInt();
 
-    CJS_EventHandler* pEvent = pContext->GetEventHandler();
-    ASSERT(pEvent != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
 
-    if(!pEvent->m_pValue)
-        return FALSE;
-    CFX_WideString& Value = pEvent->Value();
-    std::string strSrc = CFX_ByteString::FromUnicode(Value).c_str();
+  if (!pEvent->m_pValue)
+    return FALSE;
+  CFX_WideString& Value = pEvent->Value();
+  std::string strSrc = CFX_ByteString::FromUnicode(Value).c_str();
 
-    switch (iIndex)
-    {
+  switch (iIndex) {
     case 0:
-        cFormat = "99999";
-        break;
+      cFormat = "99999";
+      break;
     case 1:
-        cFormat = "99999-9999";
-        break;
-    case 2:
-        {
-            std::string NumberStr;
-            util::printx("9999999999", strSrc,NumberStr);
-            if (NumberStr.length() >= 10 )
-                cFormat = "(999) 999-9999";
-            else
-                cFormat = "999-9999";
-            break;
-        }
-    case 3:
-        cFormat = "999-99-9999";
-        break;
+      cFormat = "99999-9999";
+      break;
+    case 2: {
+      std::string NumberStr;
+      util::printx("9999999999", strSrc, NumberStr);
+      if (NumberStr.length() >= 10)
+        cFormat = "(999) 999-9999";
+      else
+        cFormat = "999-9999";
+      break;
     }
-
-    std::string strDes;
-    util::printx(cFormat,strSrc,strDes);
-    Value = CFX_WideString::FromLocal(strDes.c_str());
-    return TRUE;
+    case 3:
+      cFormat = "999-99-9999";
+      break;
+  }
+
+  std::string strDes;
+  util::printx(cFormat, strSrc, strDes);
+  Value = CFX_WideString::FromLocal(strDes.c_str());
+  return TRUE;
 }
 
+// function AFSpecial_KeystrokeEx(mask)
+FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc,
+                                                 const CJS_Parameters& params,
+                                                 CJS_Value& vRet,
+                                                 CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
 
-//function AFSpecial_KeystrokeEx(mask)
-FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
-    CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
 
-    ASSERT(pEvent != NULL);
+  if (params.size() < 1) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-    if (params.size() < 1)
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
-
-    if(!pEvent->m_pValue)
-        return FALSE;
-    CFX_WideString& valEvent = pEvent->Value();
-
-    CFX_WideString wstrMask = params[0].ToCFXWideString();
-    if (wstrMask.IsEmpty())
-        return TRUE;
-
-    std::wstring wstrValue = valEvent.c_str();
-
-    if (pEvent->WillCommit())
-    {
-        if (wstrValue.empty())
-            return TRUE;
-        int iIndexMask = 0;
-        for (std::wstring::iterator it = wstrValue.begin(); it != wstrValue.end(); it++)
-        {
-            wchar_t w_Value = *it;
-            if (!maskSatisfied(w_Value,wstrMask[iIndexMask]))
-                break;
-            iIndexMask++;
-        }
-
-        if (iIndexMask != wstrMask.GetLength() || (iIndexMask != wstrValue.size() && wstrMask.GetLength() != 0))
-        {
-            Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE).c_str());
-            pEvent->Rc() = FALSE;
-        }
-        return TRUE;
-    }
+  if (!pEvent->m_pValue)
+    return FALSE;
+  CFX_WideString& valEvent = pEvent->Value();
 
-    CFX_WideString &wideChange = pEvent->Change();
-    std::wstring wChange = wideChange.c_str();
-    if (wChange.empty())
-        return TRUE;
+  CFX_WideString wstrMask = params[0].ToCFXWideString();
+  if (wstrMask.IsEmpty())
+    return TRUE;
 
-    int iIndexMask = pEvent->SelStart();
+  std::wstring wstrValue = valEvent.c_str();
 
-    if (wstrValue.length() - (pEvent->SelEnd()-pEvent->SelStart()) + wChange.length() > (FX_DWORD)wstrMask.GetLength())
-    {
-        Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG).c_str());
-        pEvent->Rc() = FALSE;
-        return TRUE;
+  if (pEvent->WillCommit()) {
+    if (wstrValue.empty())
+      return TRUE;
+    int iIndexMask = 0;
+    for (std::wstring::iterator it = wstrValue.begin(); it != wstrValue.end();
+         it++) {
+      wchar_t w_Value = *it;
+      if (!maskSatisfied(w_Value, wstrMask[iIndexMask]))
+        break;
+      iIndexMask++;
     }
 
-    if (iIndexMask >= wstrMask.GetLength() && (!wChange.empty()))
-    {
-        Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG).c_str());
-        pEvent->Rc() = FALSE;
-        return TRUE;
-    }
-
-    for (std::wstring::iterator it = wChange.begin(); it != wChange.end(); it++)
-    {
-        if (iIndexMask >= wstrMask.GetLength())
-        {
-            Alert(pContext, JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG).c_str());
-            pEvent->Rc() = FALSE;
-            return TRUE;
-        }
-        wchar_t w_Mask = wstrMask[iIndexMask];
-        if (!isReservedMaskChar(w_Mask))
-        {
-            *it = w_Mask;
-        }
-        wchar_t w_Change = *it;
-        if (!maskSatisfied(w_Change,w_Mask))
-        {
-            pEvent->Rc() = FALSE;
-            return TRUE;
-        }
-        iIndexMask++;
+    if (iIndexMask != wstrMask.GetLength() ||
+        (iIndexMask != wstrValue.size() && wstrMask.GetLength() != 0)) {
+      Alert(
+          pContext,
+          JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE).c_str());
+      pEvent->Rc() = FALSE;
     }
+    return TRUE;
+  }
 
-    wideChange = wChange.c_str();
+  CFX_WideString& wideChange = pEvent->Change();
+  std::wstring wChange = wideChange.c_str();
+  if (wChange.empty())
     return TRUE;
-}
 
+  int iIndexMask = pEvent->SelStart();
 
-//function AFSpecial_Keystroke(psf)
-FX_BOOL CJS_PublicMethods::AFSpecial_Keystroke(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    v8::Isolate* isolate = ::GetIsolate(cc);
+  if (wstrValue.length() - (pEvent->SelEnd() - pEvent->SelStart()) +
+          wChange.length() >
+      (FX_DWORD)wstrMask.GetLength()) {
+    Alert(pContext,
+          JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG).c_str());
+    pEvent->Rc() = FALSE;
+    return TRUE;
+  }
 
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
-    CJS_EventHandler* pEvent = pContext->GetEventHandler();
-    ASSERT(pEvent != NULL);
+  if (iIndexMask >= wstrMask.GetLength() && (!wChange.empty())) {
+    Alert(pContext,
+          JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG).c_str());
+    pEvent->Rc() = FALSE;
+    return TRUE;
+  }
 
-    if (params.size() != 1)
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
+  for (std::wstring::iterator it = wChange.begin(); it != wChange.end(); it++) {
+    if (iIndexMask >= wstrMask.GetLength()) {
+      Alert(pContext,
+            JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG).c_str());
+      pEvent->Rc() = FALSE;
+      return TRUE;
     }
+    wchar_t w_Mask = wstrMask[iIndexMask];
+    if (!isReservedMaskChar(w_Mask)) {
+      *it = w_Mask;
+    }
+    wchar_t w_Change = *it;
+    if (!maskSatisfied(w_Change, w_Mask)) {
+      pEvent->Rc() = FALSE;
+      return TRUE;
+    }
+    iIndexMask++;
+  }
 
-    std::string cFormat;
-    int iIndex = params[0].ToInt();
-
-    if(!pEvent->m_pValue)
-        return FALSE;
-    //CJS_Value val = pEvent->Value();
-    CFX_WideString& val = pEvent->Value();
-    std::string strSrc = CFX_ByteString::FromUnicode(val).c_str();
-    std::wstring wstrChange = pEvent->Change().c_str();
+  wideChange = wChange.c_str();
+  return TRUE;
+}
 
-    switch (iIndex)
-    {
+// function AFSpecial_Keystroke(psf)
+FX_BOOL CJS_PublicMethods::AFSpecial_Keystroke(IFXJS_Context* cc,
+                                               const CJS_Parameters& params,
+                                               CJS_Value& vRet,
+                                               CFX_WideString& sError) {
+  v8::Isolate* isolate = ::GetIsolate(cc);
+
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (params.size() != 1) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  std::string cFormat;
+  int iIndex = params[0].ToInt();
+
+  if (!pEvent->m_pValue)
+    return FALSE;
+  // CJS_Value val = pEvent->Value();
+  CFX_WideString& val = pEvent->Value();
+  std::string strSrc = CFX_ByteString::FromUnicode(val).c_str();
+  std::wstring wstrChange = pEvent->Change().c_str();
+
+  switch (iIndex) {
     case 0:
-        cFormat = "99999";
-        break;
+      cFormat = "99999";
+      break;
     case 1:
-        //cFormat = "99999-9999";
-        cFormat = "999999999";
-        break;
-    case 2:
-        {
-            std::string NumberStr;
-            util::printx("9999999999", strSrc,NumberStr);
-            if (strSrc.length() + wstrChange.length() > 7 )
-                //cFormat = "(999) 999-9999";
-                cFormat = "9999999999";
-            else
-                //cFormat = "999-9999";
-                cFormat = "9999999";
-            break;
-        }
-    case 3:
-        //cFormat = "999-99-9999";
-        cFormat = "999999999";
-        break;
+      // cFormat = "99999-9999";
+      cFormat = "999999999";
+      break;
+    case 2: {
+      std::string NumberStr;
+      util::printx("9999999999", strSrc, NumberStr);
+      if (strSrc.length() + wstrChange.length() > 7)
+        // cFormat = "(999) 999-9999";
+        cFormat = "9999999999";
+      else
+        // cFormat = "999-9999";
+        cFormat = "9999999";
+      break;
     }
+    case 3:
+      // cFormat = "999-99-9999";
+      cFormat = "999999999";
+      break;
+  }
 
-    CJS_Parameters params2;
-    CJS_Value vMask(isolate, cFormat.c_str());
-    params2.push_back(vMask);
+  CJS_Parameters params2;
+  CJS_Value vMask(isolate, cFormat.c_str());
+  params2.push_back(vMask);
 
-    return AFSpecial_KeystrokeEx(cc,params2,vRet,sError);
+  return AFSpecial_KeystrokeEx(cc, params2, vRet, sError);
 }
 
-FX_BOOL CJS_PublicMethods::AFMergeChange(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
-    CJS_EventHandler* pEventHandler = pContext->GetEventHandler();
-    ASSERT(pEventHandler != NULL);
+FX_BOOL CJS_PublicMethods::AFMergeChange(IFXJS_Context* cc,
+                                         const CJS_Parameters& params,
+                                         CJS_Value& vRet,
+                                         CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEventHandler = pContext->GetEventHandler();
+  ASSERT(pEventHandler != NULL);
+
+  if (params.size() != 1) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  CFX_WideString swValue;
+  if (pEventHandler->m_pValue != NULL)
+    swValue = pEventHandler->Value();
+
+  if (pEventHandler->WillCommit()) {
+    vRet = swValue.c_str();
+    return TRUE;
+  }
 
-    if (params.size() != 1)
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
+  CFX_WideString prefix, postfix;
 
-    CFX_WideString swValue;
-    if (pEventHandler->m_pValue != NULL)
-        swValue = pEventHandler->Value();
+  if (pEventHandler->SelStart() >= 0)
+    prefix = swValue.Mid(0, pEventHandler->SelStart());
+  else
+    prefix = L"";
 
-    if (pEventHandler->WillCommit())
-    {
-        vRet = swValue.c_str();
-        return TRUE;
-    }
+  if (pEventHandler->SelEnd() >= 0 &&
+      pEventHandler->SelEnd() <= swValue.GetLength())
+    postfix = swValue.Mid(pEventHandler->SelEnd(),
+                          swValue.GetLength() - pEventHandler->SelEnd());
+  else
+    postfix = L"";
 
-    CFX_WideString prefix,postfix;
+  vRet = (prefix + pEventHandler->Change() + postfix).c_str();
 
-    if (pEventHandler->SelStart() >= 0)
-        prefix = swValue.Mid(0,pEventHandler->SelStart());
-    else
-        prefix = L"";
+  return TRUE;
+}
 
+FX_BOOL CJS_PublicMethods::AFParseDateEx(IFXJS_Context* cc,
+                                         const CJS_Parameters& params,
+                                         CJS_Value& vRet,
+                                         CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
 
-    if (pEventHandler->SelEnd() >= 0 && pEventHandler->SelEnd() <= swValue.GetLength())
-        postfix = swValue.Mid(pEventHandler->SelEnd(), swValue.GetLength() - pEventHandler->SelEnd());
-    else postfix = L"";
+  if (params.size() != 2) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-    vRet = (prefix + pEventHandler->Change() + postfix).c_str();
+  CFX_WideString sValue = params[0].ToCFXWideString();
+  CFX_WideString sFormat = params[1].ToCFXWideString();
 
-    return TRUE;
+  FX_BOOL bWrongFormat = FALSE;
+  double dDate = MakeRegularDate(sValue, sFormat, bWrongFormat);
+
+  if (JS_PortIsNan(dDate)) {
+    CFX_WideString swMsg;
+    swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE).c_str(),
+                 sFormat.c_str());
+    Alert((CJS_Context*)cc, swMsg.c_str());
+    return FALSE;
+  }
+
+  vRet = dDate;
+  return TRUE;
 }
 
-FX_BOOL CJS_PublicMethods::AFParseDateEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context *)cc;
+FX_BOOL CJS_PublicMethods::AFSimple(IFXJS_Context* cc,
+                                    const CJS_Parameters& params,
+                                    CJS_Value& vRet,
+                                    CFX_WideString& sError) {
+  if (params.size() != 3) {
+    CJS_Context* pContext = (CJS_Context*)cc;
     ASSERT(pContext != NULL);
 
-    if (params.size() != 2)
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
-
-    CFX_WideString sValue = params[0].ToCFXWideString();
-    CFX_WideString sFormat = params[1].ToCFXWideString();
-
-    FX_BOOL bWrongFormat = FALSE;
-    double dDate = MakeRegularDate(sValue,sFormat,bWrongFormat);
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-    if (JS_PortIsNan(dDate))
-    {
-        CFX_WideString swMsg;
-        swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSPARSEDATE).c_str(), sFormat.c_str());
-        Alert((CJS_Context *)cc, swMsg.c_str());
-        return FALSE;
-    }
-
-    vRet = dDate;
-    return TRUE;
+  vRet = (double)AF_Simple(params[0].ToCFXWideString().c_str(),
+                           params[1].ToDouble(), params[2].ToDouble());
+  return TRUE;
 }
 
-FX_BOOL CJS_PublicMethods::AFSimple(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    if (params.size() != 3)
-    {
-        CJS_Context* pContext = (CJS_Context *)cc;
-        ASSERT(pContext != NULL);
-
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
+FX_BOOL CJS_PublicMethods::AFMakeNumber(IFXJS_Context* cc,
+                                        const CJS_Parameters& params,
+                                        CJS_Value& vRet,
+                                        CFX_WideString& sError) {
+  if (params.size() != 1) {
+    CJS_Context* pContext = (CJS_Context*)cc;
+    ASSERT(pContext != NULL);
 
-    vRet = (double)AF_Simple(params[0].ToCFXWideString().c_str(), params[1].ToDouble(), params[2].ToDouble());
-    return TRUE;
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+  vRet = ParseStringToNumber(params[0].ToCFXWideString().c_str());
+  return TRUE;
 }
 
-FX_BOOL CJS_PublicMethods::AFMakeNumber(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    if (params.size() != 1)
-    {
-        CJS_Context* pContext = (CJS_Context *)cc;
-        ASSERT(pContext != NULL);
+FX_BOOL CJS_PublicMethods::AFSimple_Calculate(IFXJS_Context* cc,
+                                              const CJS_Parameters& params,
+                                              CJS_Value& vRet,
+                                              CFX_WideString& sError) {
+  v8::Isolate* isolate = ::GetIsolate(cc);
 
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
-    vRet = ParseStringToNumber(params[0].ToCFXWideString().c_str());
-    return TRUE;
-}
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
 
-FX_BOOL CJS_PublicMethods::AFSimple_Calculate(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    v8::Isolate* isolate = ::GetIsolate(cc);
+  if (params.size() != 2) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
+  CJS_Value params1 = params[1];
 
-    if (params.size() != 2)
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
+  if (!params1.IsArrayObject() && params1.GetType() != VT_string) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-    CJS_Value params1 = params[1];
+  CPDFSDK_Document* pReaderDoc = pContext->GetReaderDocument();
+  ASSERT(pReaderDoc != NULL);
 
-    if (!params1.IsArrayObject() && params1.GetType() != VT_string)
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
+  CPDFSDK_InterForm* pReaderInterForm = pReaderDoc->GetInterForm();
+  ASSERT(pReaderInterForm != NULL);
 
-    CPDFSDK_Document* pReaderDoc = pContext->GetReaderDocument();
-    ASSERT(pReaderDoc != NULL);
+  CPDF_InterForm* pInterForm = pReaderInterForm->GetInterForm();
+  ASSERT(pInterForm != NULL);
 
-    CPDFSDK_InterForm* pReaderInterForm = pReaderDoc->GetInterForm();
-    ASSERT(pReaderInterForm != NULL);
+  double dValue;
+  CFX_WideString sFunction = params[0].ToCFXWideString();
+  if (wcscmp(sFunction.c_str(), L"PRD") == 0)
+    dValue = 1.0;
+  else
+    dValue = 0.0;
 
-    CPDF_InterForm* pInterForm = pReaderInterForm->GetInterForm();
-    ASSERT(pInterForm != NULL);
+  CJS_Array FieldNameArray = AF_MakeArrayFromList(isolate, params1);
 
-    double dValue;
-    CFX_WideString sFunction = params[0].ToCFXWideString();
-    if (wcscmp(sFunction.c_str(), L"PRD") == 0)
-        dValue = 1.0;
-    else
-        dValue = 0.0;
-
-    CJS_Array FieldNameArray = AF_MakeArrayFromList(isolate,params1);
-
-    int nFieldsCount = 0;
-
-    for (int i=0,isz=FieldNameArray.GetLength(); i<isz; i++)
-    {
-        CJS_Value jsValue(isolate);
-        FieldNameArray.GetElement(i,jsValue);
-        CFX_WideString wsFieldName = jsValue.ToCFXWideString();
-
-        for (int j=0,jsz=pInterForm->CountFields(wsFieldName); j<jsz; j++)
-        {
-            if (CPDF_FormField* pFormField = pInterForm->GetField(j, wsFieldName))
-            {
-                double dTemp = 0.0;
-
-                switch (pFormField->GetFieldType())
-                {
-                case FIELDTYPE_TEXTFIELD:
-                case FIELDTYPE_COMBOBOX:
-                    {
-                        dTemp = ParseStringToNumber(pFormField->GetValue().c_str());
-                        break;
-                    }
-                case FIELDTYPE_PUSHBUTTON:
-                    {
-                        dTemp = 0.0;
-                        break;
-                    }
-                case FIELDTYPE_CHECKBOX:
-                case FIELDTYPE_RADIOBUTTON:
-                    {
-                        dTemp = 0.0;
-                        for (int c=0,csz=pFormField->CountControls(); c<csz; c++)
-                        {
-                            if (CPDF_FormControl* pFormCtrl = pFormField->GetControl(c))
-                            {
-                                if (pFormCtrl->IsChecked())
-                                {
-                                    dTemp += ParseStringToNumber(pFormCtrl->GetExportValue().c_str());
-                                    break;
-                                }
-                                else
-                                    continue;
-                            }
-                        }
-                        break;
-                    }
-                case FIELDTYPE_LISTBOX:
-                    {
-                        dTemp = 0.0;
-                        if (pFormField->CountSelectedItems() > 1)
-                            break;
-                        else
-                        {
-                            dTemp = ParseStringToNumber(pFormField->GetValue().c_str());
-                            break;
-                        }
-                    }
-                default:
-                    break;
-                }
+  int nFieldsCount = 0;
 
-                if (i == 0 && j == 0 && (wcscmp(sFunction.c_str(), L"MIN") == 0 || wcscmp(sFunction.c_str(), L"MAX") == 0))
-                    dValue = dTemp;
+  for (int i = 0, isz = FieldNameArray.GetLength(); i < isz; i++) {
+    CJS_Value jsValue(isolate);
+    FieldNameArray.GetElement(i, jsValue);
+    CFX_WideString wsFieldName = jsValue.ToCFXWideString();
 
-                dValue = AF_Simple(sFunction.c_str(), dValue, dTemp);
+    for (int j = 0, jsz = pInterForm->CountFields(wsFieldName); j < jsz; j++) {
+      if (CPDF_FormField* pFormField = pInterForm->GetField(j, wsFieldName)) {
+        double dTemp = 0.0;
 
-                nFieldsCount++;
+        switch (pFormField->GetFieldType()) {
+          case FIELDTYPE_TEXTFIELD:
+          case FIELDTYPE_COMBOBOX: {
+            dTemp = ParseStringToNumber(pFormField->GetValue().c_str());
+            break;
+          }
+          case FIELDTYPE_PUSHBUTTON: {
+            dTemp = 0.0;
+            break;
+          }
+          case FIELDTYPE_CHECKBOX:
+          case FIELDTYPE_RADIOBUTTON: {
+            dTemp = 0.0;
+            for (int c = 0, csz = pFormField->CountControls(); c < csz; c++) {
+              if (CPDF_FormControl* pFormCtrl = pFormField->GetControl(c)) {
+                if (pFormCtrl->IsChecked()) {
+                  dTemp +=
+                      ParseStringToNumber(pFormCtrl->GetExportValue().c_str());
+                  break;
+                } else
+                  continue;
+              }
+            }
+            break;
+          }
+          case FIELDTYPE_LISTBOX: {
+            dTemp = 0.0;
+            if (pFormField->CountSelectedItems() > 1)
+              break;
+            else {
+              dTemp = ParseStringToNumber(pFormField->GetValue().c_str());
+              break;
             }
+          }
+          default:
+            break;
         }
+
+        if (i == 0 && j == 0 && (wcscmp(sFunction.c_str(), L"MIN") == 0 ||
+                                 wcscmp(sFunction.c_str(), L"MAX") == 0))
+          dValue = dTemp;
+
+        dValue = AF_Simple(sFunction.c_str(), dValue, dTemp);
+
+        nFieldsCount++;
+      }
     }
+  }
 
-    if (wcscmp(sFunction.c_str(), L"AVG") == 0 && nFieldsCount > 0)
-        dValue /= nFieldsCount;
+  if (wcscmp(sFunction.c_str(), L"AVG") == 0 && nFieldsCount > 0)
+    dValue /= nFieldsCount;
 
-    dValue = (double)floor(dValue * FXSYS_pow((double)10,(double)6) + 0.49) / FXSYS_pow((double)10,(double)6);
-    CJS_Value jsValue(isolate,dValue);
-    if((CJS_EventHandler*)pContext->GetEventHandler()->m_pValue)
-        ((CJS_EventHandler*)pContext->GetEventHandler())->Value() = jsValue.ToCFXWideString();
+  dValue = (double)floor(dValue * FXSYS_pow((double)10, (double)6) + 0.49) /
+           FXSYS_pow((double)10, (double)6);
+  CJS_Value jsValue(isolate, dValue);
+  if ((CJS_EventHandler*)pContext->GetEventHandler()->m_pValue)
+    ((CJS_EventHandler*)pContext->GetEventHandler())->Value() =
+        jsValue.ToCFXWideString();
 
-    return TRUE;
+  return TRUE;
 }
 
 /* This function validates the current event to ensure that its value is
 ** within the specified range. */
 
-FX_BOOL CJS_PublicMethods::AFRange_Validate(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
-    CJS_EventHandler* pEvent = pContext->GetEventHandler();
-    ASSERT(pEvent != NULL);
-
-    if (params.size() != 4)
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
-
-    if(!pEvent->m_pValue)
-        return FALSE;
-    if (pEvent->Value().IsEmpty() )
-        return TRUE;
-    double dEentValue = atof(CFX_ByteString::FromUnicode(pEvent->Value()));
-    FX_BOOL bGreaterThan = params[0].ToBool();
-    double dGreaterThan = params[1].ToDouble();
-    FX_BOOL bLessThan = params[2].ToBool();
-    double dLessThan = params[3].ToDouble();
-    CFX_WideString swMsg;
-
-    if (bGreaterThan && bLessThan)
-    {
-        if (dEentValue < dGreaterThan || dEentValue > dLessThan)
-            swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE1).c_str(),
-                         params[1].ToCFXWideString().c_str(),
-                         params[3].ToCFXWideString().c_str());
-    }
-    else if (bGreaterThan)
-    {
-        if (dEentValue < dGreaterThan)
-            swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE2).c_str(),
-                         params[1].ToCFXWideString().c_str());
-    }
-    else if (bLessThan)
-    {
-        if (dEentValue > dLessThan)
-            swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE3).c_str(),
-                         params[3].ToCFXWideString().c_str());
-    }
-
-    if (!swMsg.IsEmpty())
-    {
-        Alert(pContext, swMsg.c_str());
-        pEvent->Rc() = FALSE;
-    }
+FX_BOOL CJS_PublicMethods::AFRange_Validate(IFXJS_Context* cc,
+                                            const CJS_Parameters& params,
+                                            CJS_Value& vRet,
+                                            CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (params.size() != 4) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  if (!pEvent->m_pValue)
+    return FALSE;
+  if (pEvent->Value().IsEmpty())
     return TRUE;
+  double dEentValue = atof(CFX_ByteString::FromUnicode(pEvent->Value()));
+  FX_BOOL bGreaterThan = params[0].ToBool();
+  double dGreaterThan = params[1].ToDouble();
+  FX_BOOL bLessThan = params[2].ToBool();
+  double dLessThan = params[3].ToDouble();
+  CFX_WideString swMsg;
+
+  if (bGreaterThan && bLessThan) {
+    if (dEentValue < dGreaterThan || dEentValue > dLessThan)
+      swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE1).c_str(),
+                   params[1].ToCFXWideString().c_str(),
+                   params[3].ToCFXWideString().c_str());
+  } else if (bGreaterThan) {
+    if (dEentValue < dGreaterThan)
+      swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE2).c_str(),
+                   params[1].ToCFXWideString().c_str());
+  } else if (bLessThan) {
+    if (dEentValue > dLessThan)
+      swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE3).c_str(),
+                   params[3].ToCFXWideString().c_str());
+  }
+
+  if (!swMsg.IsEmpty()) {
+    Alert(pContext, swMsg.c_str());
+    pEvent->Rc() = FALSE;
+  }
+  return TRUE;
 }
 
-FX_BOOL CJS_PublicMethods::AFExtractNums(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    v8::Isolate* isolate = ::GetIsolate(cc);
-    CJS_Context* pContext = (CJS_Context*)cc;
-    ASSERT(pContext != NULL);
-
-    if (params.size() != 1)
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
-    }
-
-    CJS_Array nums(isolate);
-
-    CFX_WideString str = params[0].ToCFXWideString();
-    CFX_WideString sPart;
-
-    if (str.GetAt(0) == L'.' || str.GetAt(0) == L',')
-        str = L"0" + str;
-
-    int nIndex = 0;
-    for (int i=0, sz=str.GetLength(); i<sz; i++)
-    {
-        FX_WCHAR wc = str.GetAt(i);
-        if (IsDigit((wchar_t)wc))
-        {
-            sPart += wc;
-        }
-        else
-        {
-            if (sPart.GetLength() > 0)
-            {
-                nums.SetElement(nIndex,CJS_Value(isolate,sPart.c_str()));
-                sPart = L"";
-                nIndex ++;
-            }
-        }
+FX_BOOL CJS_PublicMethods::AFExtractNums(IFXJS_Context* cc,
+                                         const CJS_Parameters& params,
+                                         CJS_Value& vRet,
+                                         CFX_WideString& sError) {
+  v8::Isolate* isolate = ::GetIsolate(cc);
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+
+  if (params.size() != 1) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  CJS_Array nums(isolate);
+
+  CFX_WideString str = params[0].ToCFXWideString();
+  CFX_WideString sPart;
+
+  if (str.GetAt(0) == L'.' || str.GetAt(0) == L',')
+    str = L"0" + str;
+
+  int nIndex = 0;
+  for (int i = 0, sz = str.GetLength(); i < sz; i++) {
+    FX_WCHAR wc = str.GetAt(i);
+    if (IsDigit((wchar_t)wc)) {
+      sPart += wc;
+    } else {
+      if (sPart.GetLength() > 0) {
+        nums.SetElement(nIndex, CJS_Value(isolate, sPart.c_str()));
+        sPart = L"";
+        nIndex++;
+      }
     }
+  }
 
-    if (sPart.GetLength() > 0)
-    {
-        nums.SetElement(nIndex,CJS_Value(isolate,sPart.c_str()));
-    }
+  if (sPart.GetLength() > 0) {
+    nums.SetElement(nIndex, CJS_Value(isolate, sPart.c_str()));
+  }
 
-    if (nums.GetLength() > 0)
-        vRet = nums;
-    else
-        vRet.SetNull();
+  if (nums.GetLength() > 0)
+    vRet = nums;
+  else
+    vRet.SetNull();
 
-    return TRUE;
+  return TRUE;
 }
diff --git a/fpdfsdk/src/javascript/app.cpp b/fpdfsdk/src/javascript/app.cpp
index c5139696c1..ed1a7ca481 100644
--- a/fpdfsdk/src/javascript/app.cpp
+++ b/fpdfsdk/src/javascript/app.cpp
@@ -16,16 +16,14 @@
 #include "../../include/javascript/JS_Runtime.h"
 #include "../../include/javascript/Document.h"
 
+static v8::Isolate* GetIsolate(IFXJS_Context* cc) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
 
-static v8::Isolate* GetIsolate(IFXJS_Context* cc)
-{
-	CJS_Context* pContext = (CJS_Context *)cc;
-	ASSERT(pContext != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
 
-	CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-	ASSERT(pRuntime != NULL);
-
-	return pRuntime->GetIsolate();
+  return pRuntime->GetIsolate();
 }
 
 /* ---------------------------- TimerObj ---------------------------- */
@@ -42,36 +40,28 @@ END_JS_STATIC_METHOD()
 IMPLEMENT_JS_CLASS(CJS_TimerObj, TimerObj)
 
 TimerObj::TimerObj(CJS_Object* pJSObject)
-: CJS_EmbedObj(pJSObject),
-m_pTimer(NULL)
-{
-
-}
+    : CJS_EmbedObj(pJSObject), m_pTimer(NULL) {}
 
-TimerObj::~TimerObj()
-{
-}
+TimerObj::~TimerObj() {}
 
-void TimerObj::SetTimer(CJS_Timer* pTimer)
-{
-	m_pTimer = pTimer;
+void TimerObj::SetTimer(CJS_Timer* pTimer) {
+  m_pTimer = pTimer;
 }
 
-CJS_Timer* TimerObj::GetTimer() const
-{
-	return m_pTimer;
+CJS_Timer* TimerObj::GetTimer() const {
+  return m_pTimer;
 }
 
-#define JS_STR_VIEWERTYPE_READER		L"Reader"
-#define JS_STR_VIEWERTYPE_STANDARD		L"Exchange"
-#define JS_STR_VIEWERVARIATION			L"Full"
-#define JS_STR_PLATFORM					L"WIN"
-#define JS_STR_LANGUANGE				L"ENU"
-#define JS_STR_VIEWERVERSION			8
-#define JS_STR_VIEWERVERSION_XFA		11
-#define JS_NUM_FORMSVERSION				7
+#define JS_STR_VIEWERTYPE_READER L"Reader"
+#define JS_STR_VIEWERTYPE_STANDARD L"Exchange"
+#define JS_STR_VIEWERVARIATION L"Full"
+#define JS_STR_PLATFORM L"WIN"
+#define JS_STR_LANGUANGE L"ENU"
+#define JS_STR_VIEWERVERSION 8
+#define JS_STR_VIEWERVERSION_XFA 11
+#define JS_NUM_FORMSVERSION 7
 
-#define JS_FILEPATH_MAXLEN				2000
+#define JS_FILEPATH_MAXLEN 2000
 
 /* ---------------------------- app ---------------------------- */
 
@@ -79,821 +69,816 @@ BEGIN_JS_STATIC_CONST(CJS_App)
 END_JS_STATIC_CONST()
 
 BEGIN_JS_STATIC_PROP(CJS_App)
-	JS_STATIC_PROP_ENTRY(activeDocs)
-	JS_STATIC_PROP_ENTRY(calculate)
-	JS_STATIC_PROP_ENTRY(formsVersion)
-	JS_STATIC_PROP_ENTRY(fs)
-	JS_STATIC_PROP_ENTRY(fullscreen)
-	JS_STATIC_PROP_ENTRY(language)
-	JS_STATIC_PROP_ENTRY(media)
-	JS_STATIC_PROP_ENTRY(platform)
-	JS_STATIC_PROP_ENTRY(runtimeHighlight)
-	JS_STATIC_PROP_ENTRY(viewerType)
-	JS_STATIC_PROP_ENTRY(viewerVariation)
-	JS_STATIC_PROP_ENTRY(viewerVersion)
+JS_STATIC_PROP_ENTRY(activeDocs)
+JS_STATIC_PROP_ENTRY(calculate)
+JS_STATIC_PROP_ENTRY(formsVersion)
+JS_STATIC_PROP_ENTRY(fs)
+JS_STATIC_PROP_ENTRY(fullscreen)
+JS_STATIC_PROP_ENTRY(language)
+JS_STATIC_PROP_ENTRY(media)
+JS_STATIC_PROP_ENTRY(platform)
+JS_STATIC_PROP_ENTRY(runtimeHighlight)
+JS_STATIC_PROP_ENTRY(viewerType)
+JS_STATIC_PROP_ENTRY(viewerVariation)
+JS_STATIC_PROP_ENTRY(viewerVersion)
 END_JS_STATIC_PROP()
 
 BEGIN_JS_STATIC_METHOD(CJS_App)
-	JS_STATIC_METHOD_ENTRY(alert)
-	JS_STATIC_METHOD_ENTRY(beep)
-	JS_STATIC_METHOD_ENTRY(browseForDoc)
-	JS_STATIC_METHOD_ENTRY(clearInterval)
-	JS_STATIC_METHOD_ENTRY(clearTimeOut)
-	JS_STATIC_METHOD_ENTRY(execDialog)
-	JS_STATIC_METHOD_ENTRY(execMenuItem)
-	JS_STATIC_METHOD_ENTRY(findComponent)
-	JS_STATIC_METHOD_ENTRY(goBack)
-	JS_STATIC_METHOD_ENTRY(goForward)
-	JS_STATIC_METHOD_ENTRY(launchURL)
-	JS_STATIC_METHOD_ENTRY(mailMsg)
-	JS_STATIC_METHOD_ENTRY(newFDF)
-	JS_STATIC_METHOD_ENTRY(newDoc)
-	JS_STATIC_METHOD_ENTRY(openDoc)
-	JS_STATIC_METHOD_ENTRY(openFDF)
-	JS_STATIC_METHOD_ENTRY(popUpMenuEx)
-	JS_STATIC_METHOD_ENTRY(popUpMenu)
-	JS_STATIC_METHOD_ENTRY(response)
-	JS_STATIC_METHOD_ENTRY(setInterval)
-	JS_STATIC_METHOD_ENTRY(setTimeOut)
+JS_STATIC_METHOD_ENTRY(alert)
+JS_STATIC_METHOD_ENTRY(beep)
+JS_STATIC_METHOD_ENTRY(browseForDoc)
+JS_STATIC_METHOD_ENTRY(clearInterval)
+JS_STATIC_METHOD_ENTRY(clearTimeOut)
+JS_STATIC_METHOD_ENTRY(execDialog)
+JS_STATIC_METHOD_ENTRY(execMenuItem)
+JS_STATIC_METHOD_ENTRY(findComponent)
+JS_STATIC_METHOD_ENTRY(goBack)
+JS_STATIC_METHOD_ENTRY(goForward)
+JS_STATIC_METHOD_ENTRY(launchURL)
+JS_STATIC_METHOD_ENTRY(mailMsg)
+JS_STATIC_METHOD_ENTRY(newFDF)
+JS_STATIC_METHOD_ENTRY(newDoc)
+JS_STATIC_METHOD_ENTRY(openDoc)
+JS_STATIC_METHOD_ENTRY(openFDF)
+JS_STATIC_METHOD_ENTRY(popUpMenuEx)
+JS_STATIC_METHOD_ENTRY(popUpMenu)
+JS_STATIC_METHOD_ENTRY(response)
+JS_STATIC_METHOD_ENTRY(setInterval)
+JS_STATIC_METHOD_ENTRY(setTimeOut)
 END_JS_STATIC_METHOD()
 
-IMPLEMENT_JS_CLASS(CJS_App,app)
-
-app::app(CJS_Object * pJSObject)
-   : CJS_EmbedObj(pJSObject),
-     m_bCalculate(true),
-     m_bRuntimeHighLight(false)
-{
-}
-
-app::~app(void)
-{
-	for (int i=0,sz=m_aTimer.GetSize(); i<sz; i++)
-		delete m_aTimer[i];
+IMPLEMENT_JS_CLASS(CJS_App, app)
+
+app::app(CJS_Object* pJSObject)
+    : CJS_EmbedObj(pJSObject), m_bCalculate(true), m_bRuntimeHighLight(false) {}
+
+app::~app(void) {
+  for (int i = 0, sz = m_aTimer.GetSize(); i < sz; i++)
+    delete m_aTimer[i];
+
+  m_aTimer.RemoveAll();
+}
+
+FX_BOOL app::activeDocs(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
+
+  CJS_Context* pContext = (CJS_Context*)cc;
+  CPDFDoc_Environment* pApp = pContext->GetReaderApp();
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument();
+  CJS_Array aDocs(pRuntime->GetIsolate());
+  if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument()) {
+    CJS_Document* pJSDocument = NULL;
+    if (pDoc == pCurDoc) {
+      JSFXObject pObj = JS_GetThisObj(*pRuntime);
+      if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"Document"))
+        pJSDocument =
+            (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(), pObj);
+    } else {
+      JSFXObject pObj = JS_NewFxDynamicObj(
+          *pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"Document"));
+      pJSDocument = (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(), pObj);
+      ASSERT(pJSDocument != NULL);
+    }
+    aDocs.SetElement(0, CJS_Value(pRuntime->GetIsolate(), pJSDocument));
+  }
+  if (aDocs.GetLength() > 0)
+    vp << aDocs;
+  else
+    vp.SetNull();
 
-	m_aTimer.RemoveAll();
+  return TRUE;
 }
 
-FX_BOOL app::activeDocs(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (!vp.IsGetting())
-        return FALSE;
+FX_BOOL app::calculate(IFXJS_Context* cc,
+                       CJS_PropValue& vp,
+                       CFX_WideString& sError) {
+  if (vp.IsSetting()) {
+    bool bVP;
+    vp >> bVP;
+    m_bCalculate = (FX_BOOL)bVP;
 
-    CJS_Context* pContext = (CJS_Context *)cc;
+    CJS_Context* pContext = (CJS_Context*)cc;
     CPDFDoc_Environment* pApp = pContext->GetReaderApp();
     CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument();
     CJS_Array aDocs(pRuntime->GetIsolate());
     if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument())
-    {
-        CJS_Document* pJSDocument = NULL;
-        if (pDoc == pCurDoc)
-        {
-            JSFXObject pObj = JS_GetThisObj(*pRuntime);
-            if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"Document"))
-                pJSDocument = (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(),pObj);
-        }
-        else
-        {
-            JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime,L"Document"));
-            pJSDocument = (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(),pObj);
-            ASSERT(pJSDocument != NULL);
+      pDoc->GetInterForm()->EnableCalculate((FX_BOOL)m_bCalculate);
+  } else {
+    vp << (bool)m_bCalculate;
+  }
+  return TRUE;
+}
+
+FX_BOOL app::formsVersion(IFXJS_Context* cc,
+                          CJS_PropValue& vp,
+                          CFX_WideString& sError) {
+  if (vp.IsGetting()) {
+    vp << JS_NUM_FORMSVERSION;
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+FX_BOOL app::viewerType(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  if (vp.IsGetting()) {
+    vp << L"unknown";
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+FX_BOOL app::viewerVariation(IFXJS_Context* cc,
+                             CJS_PropValue& vp,
+                             CFX_WideString& sError) {
+  if (vp.IsGetting()) {
+    vp << JS_STR_VIEWERVARIATION;
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+FX_BOOL app::viewerVersion(IFXJS_Context* cc,
+                           CJS_PropValue& vp,
+                           CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
+
+  CJS_Context* pContext = (CJS_Context*)cc;
+  CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument();
+  CPDFXFA_Document* pDoc = pCurDoc->GetDocument();
+  if (pDoc->GetDocType() == 1 || pDoc->GetDocType() == 2)
+    vp << JS_STR_VIEWERVERSION_XFA;
+  else
+    vp << JS_STR_VIEWERVERSION;
+
+  return TRUE;
+}
+
+FX_BOOL app::platform(IFXJS_Context* cc,
+                      CJS_PropValue& vp,
+                      CFX_WideString& sError) {
+  if (vp.IsGetting()) {
+    vp << JS_STR_PLATFORM;
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+FX_BOOL app::language(IFXJS_Context* cc,
+                      CJS_PropValue& vp,
+                      CFX_WideString& sError) {
+  if (vp.IsGetting()) {
+    vp << JS_STR_LANGUANGE;
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+// creates a new fdf object that contains no data
+// comment: need reader support
+// note:
+// CFDF_Document * CPDFDoc_Environment::NewFDF();
+FX_BOOL app::newFDF(IFXJS_Context* cc,
+                    const CJS_Parameters& params,
+                    CJS_Value& vRet,
+                    CFX_WideString& sError) {
+  return TRUE;
+}
+// opens a specified pdf document and returns its document object
+// comment:need reader support
+// note: as defined in js reference, the proto of this function's fourth
+// parmeters, how old an fdf document while do not show it.
+// CFDF_Document * CPDFDoc_Environment::OpenFDF(string strPath,bool bUserConv);
+
+FX_BOOL app::openFDF(IFXJS_Context* cc,
+                     const CJS_Parameters& params,
+                     CJS_Value& vRet,
+                     CFX_WideString& sError) {
+  return TRUE;
+}
+
+FX_BOOL app::alert(IFXJS_Context* cc,
+                   const CJS_Parameters& params,
+                   CJS_Value& vRet,
+                   CFX_WideString& sError) {
+  int iSize = params.size();
+  if (iSize < 1)
+    return FALSE;
+
+  CFX_WideString swMsg = L"";
+  CFX_WideString swTitle = L"";
+  int iIcon = 0;
+  int iType = 0;
+
+  v8::Isolate* isolate = GetIsolate(cc);
+
+  if (iSize == 1) {
+    if (params[0].GetType() == VT_object) {
+      JSObject pObj = params[0].ToV8Object();
+      {
+        v8::Local<v8::Value> pValue =
+            JS_GetObjectElement(isolate, pObj, L"cMsg");
+        swMsg = CJS_Value(isolate, pValue, VT_unknown).ToCFXWideString();
+
+        pValue = JS_GetObjectElement(isolate, pObj, L"cTitle");
+        swTitle = CJS_Value(isolate, pValue, VT_unknown).ToCFXWideString();
+
+        pValue = JS_GetObjectElement(isolate, pObj, L"nIcon");
+        iIcon = CJS_Value(isolate, pValue, VT_unknown).ToInt();
+
+        pValue = JS_GetObjectElement(isolate, pObj, L"nType");
+        iType = CJS_Value(isolate, pValue, VT_unknown).ToInt();
+      }
+
+      if (swMsg == L"") {
+        CJS_Array carray(isolate);
+        if (params[0].ConvertToArray(carray)) {
+          int iLenth = carray.GetLength();
+          CJS_Value* pValue = new CJS_Value(isolate);
+          //					if (iLenth == 1)
+          //						pValue = new
+          //CJS_Value(isolate);
+          //					else if (iLenth > 1)
+          //						pValue = new
+          //CJS_Value[iLenth];
+
+          for (int i = 0; i < iLenth; i++) {
+            carray.GetElement(i, *pValue);
+            swMsg += (*pValue).ToCFXWideString();
+            if (i < iLenth - 1)
+              swMsg += L",  ";
+          }
+
+          delete pValue;
         }
-        aDocs.SetElement(0,CJS_Value(pRuntime->GetIsolate(),pJSDocument));
+      }
+
+      if (swTitle == L"")
+        swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT);
+    } else if (params[0].GetType() == VT_boolean) {
+      FX_BOOL bGet = params[0].ToBool();
+      if (bGet)
+        swMsg = L"true";
+      else
+        swMsg = L"false";
+
+      swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT);
+    } else {
+      swMsg = params[0].ToCFXWideString();
+      swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT);
+    }
+  } else {
+    if (params[0].GetType() == VT_boolean) {
+      FX_BOOL bGet = params[0].ToBool();
+      if (bGet)
+        swMsg = L"true";
+      else
+        swMsg = L"false";
+    } else {
+      swMsg = params[0].ToCFXWideString();
     }
-    if (aDocs.GetLength() > 0)
-        vp << aDocs;
-    else
-        vp.SetNull();
+    swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT);
+
+    for (int i = 1; i < iSize; i++) {
+      if (i == 1)
+        iIcon = params[i].ToInt();
+      if (i == 2)
+        iType = params[i].ToInt();
+      if (i == 3)
+        swTitle = params[i].ToCFXWideString();
+    }
+  }
+
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
+  pRuntime->BeginBlock();
+  vRet = MsgBox(pRuntime->GetReaderApp(), JSGetPageView(cc), swMsg.c_str(),
+                swTitle.c_str(), iType, iIcon);
+  pRuntime->EndBlock();
+
+  return TRUE;
+}
 
+FX_BOOL app::beep(IFXJS_Context* cc,
+                  const CJS_Parameters& params,
+                  CJS_Value& vRet,
+                  CFX_WideString& sError) {
+  if (params.size() == 1) {
+    CJS_Context* pContext = (CJS_Context*)cc;
+    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+    CPDFDoc_Environment* pEnv = pRuntime->GetReaderApp();
+    pEnv->JS_appBeep(params[0].ToInt());
     return TRUE;
+  }
+
+  sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR);
+  return FALSE;
 }
 
-FX_BOOL app::calculate(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (vp.IsSetting())
-	{
-		bool bVP;
-		vp >> bVP;
-		m_bCalculate = (FX_BOOL)bVP;
-
-		CJS_Context* pContext = (CJS_Context*)cc;
-		CPDFDoc_Environment* pApp = pContext->GetReaderApp();
-		CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-		CJS_Array aDocs(pRuntime->GetIsolate());
-		if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument())
-			pDoc->GetInterForm()->EnableCalculate((FX_BOOL)m_bCalculate);
-	}
-	else
-	{
-		vp << (bool)m_bCalculate;
-	}
-	return TRUE;
-}
-
-FX_BOOL app::formsVersion(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (vp.IsGetting())
-	{
-		vp << JS_NUM_FORMSVERSION;
-		return TRUE;
-	}
-
-	return FALSE;
-}
-
-FX_BOOL app::viewerType(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (vp.IsGetting())
-	{
-		vp << L"unknown";
-		return TRUE;
-	}
-
-	return FALSE;
-}
-
-FX_BOOL app::viewerVariation(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (vp.IsGetting())
-	{
-		vp << JS_STR_VIEWERVARIATION;
-		return TRUE;
-	}
-
-	return FALSE;
-}
-
-FX_BOOL app::viewerVersion(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (!vp.IsGetting())
-        return FALSE;
-
-    CJS_Context* pContext = (CJS_Context *)cc;
-    CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument();
-    CPDFXFA_Document* pDoc = pCurDoc->GetDocument();
-    if (pDoc->GetDocType() == 1 || pDoc->GetDocType() == 2)
-        vp << JS_STR_VIEWERVERSION_XFA;
-    else
-        vp << JS_STR_VIEWERVERSION;
+FX_BOOL app::findComponent(IFXJS_Context* cc,
+                           const CJS_Parameters& params,
+                           CJS_Value& vRet,
+                           CFX_WideString& sError) {
+  return TRUE;
+}
+
+FX_BOOL app::popUpMenuEx(IFXJS_Context* cc,
+                         const CJS_Parameters& params,
+                         CJS_Value& vRet,
+                         CFX_WideString& sError) {
+  return FALSE;
+}
 
+FX_BOOL app::fs(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) {
+  return FALSE;
+}
+
+FX_BOOL app::setInterval(IFXJS_Context* cc,
+                         const CJS_Parameters& params,
+                         CJS_Value& vRet,
+                         CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  if (params.size() > 2 || params.size() == 0) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  CFX_WideString script = params.size() > 0 ? params[0].ToCFXWideString() : L"";
+  if (script.IsEmpty()) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE);
     return TRUE;
+  }
+
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  FX_DWORD dwInterval = params.size() > 1 ? params[1].ToInt() : 1000;
+
+  CPDFDoc_Environment* pApp = pRuntime->GetReaderApp();
+  ASSERT(pApp);
+  CJS_Timer* pTimer = new CJS_Timer(this, pApp);
+  m_aTimer.Add(pTimer);
+
+  pTimer->SetType(0);
+  pTimer->SetRuntime(pRuntime);
+  pTimer->SetJScript(script);
+  pTimer->SetTimeOut(0);
+  //	pTimer->SetStartTime(GetTickCount());
+  pTimer->SetJSTimer(dwInterval);
+
+  JSFXObject pRetObj = JS_NewFxDynamicObj(
+      *pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"TimerObj"));
+
+  CJS_TimerObj* pJS_TimerObj =
+      (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetIsolate(), pRetObj);
+  ASSERT(pJS_TimerObj != NULL);
+
+  TimerObj* pTimerObj = (TimerObj*)pJS_TimerObj->GetEmbedObject();
+  ASSERT(pTimerObj != NULL);
+
+  pTimerObj->SetTimer(pTimer);
+
+  vRet = pRetObj;
+
+  return TRUE;
+}
+
+FX_BOOL app::setTimeOut(IFXJS_Context* cc,
+                        const CJS_Parameters& params,
+                        CJS_Value& vRet,
+                        CFX_WideString& sError) {
+  if (params.size() > 2 || params.size() == 0) {
+    sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
+
+  CFX_WideString script = params.size() > 0 ? params[0].ToCFXWideString() : L"";
+  if (script.IsEmpty()) {
+    sError =
+        JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSAFNUMBER_KEYSTROKE);
+    return TRUE;
+  }
+
+  FX_DWORD dwTimeOut = params.size() > 1 ? params[1].ToInt() : 1000;
+
+  CPDFDoc_Environment* pApp = pRuntime->GetReaderApp();
+  ASSERT(pApp);
+
+  CJS_Timer* pTimer = new CJS_Timer(this, pApp);
+  m_aTimer.Add(pTimer);
+
+  pTimer->SetType(1);
+  pTimer->SetRuntime(pRuntime);
+  pTimer->SetJScript(script);
+  pTimer->SetTimeOut(dwTimeOut);
+  pTimer->SetJSTimer(dwTimeOut);
+
+  JSFXObject pRetObj = JS_NewFxDynamicObj(
+      *pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"TimerObj"));
+
+  CJS_TimerObj* pJS_TimerObj =
+      (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetIsolate(), pRetObj);
+  ASSERT(pJS_TimerObj != NULL);
+
+  TimerObj* pTimerObj = (TimerObj*)pJS_TimerObj->GetEmbedObject();
+  ASSERT(pTimerObj != NULL);
+
+  pTimerObj->SetTimer(pTimer);
+
+  vRet = pRetObj;
+
+  return TRUE;
+}
+
+FX_BOOL app::clearTimeOut(IFXJS_Context* cc,
+                          const CJS_Parameters& params,
+                          CJS_Value& vRet,
+                          CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
+
+  if (params.size() != 1) {
+    sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  if (params[0].GetType() == VT_fxobject) {
+    JSFXObject pObj = params[0].ToV8Object();
+    {
+      if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj")) {
+        if (CJS_Object* pJSObj = params[0].ToCJSObject()) {
+          if (TimerObj* pTimerObj = (TimerObj*)pJSObj->GetEmbedObject()) {
+            if (CJS_Timer* pTimer = pTimerObj->GetTimer()) {
+              pTimer->KillJSTimer();
+
+              for (int i = 0, sz = m_aTimer.GetSize(); i < sz; i++) {
+                if (m_aTimer[i] == pTimer) {
+                  m_aTimer.RemoveAt(i);
+                  break;
+                }
+              }
+
+              delete pTimer;
+              pTimerObj->SetTimer(NULL);
+            }
+          }
+        }
+      }
+    }
+  }
+
+  return TRUE;
+}
+
+FX_BOOL app::clearInterval(IFXJS_Context* cc,
+                           const CJS_Parameters& params,
+                           CJS_Value& vRet,
+                           CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
+
+  if (params.size() != 1) {
+    sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
+
+  if (params[0].GetType() == VT_fxobject) {
+    JSFXObject pObj = params[0].ToV8Object();
+    {
+      if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj")) {
+        if (CJS_Object* pJSObj = params[0].ToCJSObject()) {
+          if (TimerObj* pTimerObj = (TimerObj*)pJSObj->GetEmbedObject()) {
+            if (CJS_Timer* pTimer = pTimerObj->GetTimer()) {
+              pTimer->KillJSTimer();
+
+              for (int i = 0, sz = m_aTimer.GetSize(); i < sz; i++) {
+                if (m_aTimer[i] == pTimer) {
+                  m_aTimer.RemoveAt(i);
+                  break;
+                }
+              }
+
+              delete pTimer;
+              pTimerObj->SetTimer(NULL);
+            }
+          }
+        }
+      }
+    }
+  }
+
+  return TRUE;
+}
+
+FX_BOOL app::execMenuItem(IFXJS_Context* cc,
+                          const CJS_Parameters& params,
+                          CJS_Value& vRet,
+                          CFX_WideString& sError) {
+  return FALSE;
+}
+
+void app::TimerProc(CJS_Timer* pTimer) {
+  ASSERT(pTimer != NULL);
+
+  switch (pTimer->GetType()) {
+    case 0:  // interval
+      RunJsScript(pTimer->GetRuntime(), pTimer->GetJScript());
+      break;
+    case 1:
+      if (pTimer->GetTimeOut() > 0) {
+        RunJsScript(pTimer->GetRuntime(), pTimer->GetJScript());
+        pTimer->KillJSTimer();
+      }
+      break;
+  }
+}
+
+void app::RunJsScript(CJS_Runtime* pRuntime, const CFX_WideString& wsScript) {
+  ASSERT(pRuntime != NULL);
+
+  if (!pRuntime->IsBlocking()) {
+    IFXJS_Context* pContext = pRuntime->NewContext();
+    ASSERT(pContext != NULL);
+    pContext->OnExternal_Exec();
+    CFX_WideString wtInfo;
+    pContext->RunScript(wsScript, wtInfo);
+    pRuntime->ReleaseContext(pContext);
+  }
 }
 
-FX_BOOL app::platform(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (vp.IsGetting())
-	{
-		vp << JS_STR_PLATFORM;
-		return TRUE;
-	}
-
-	return FALSE;
-}
-
-FX_BOOL app::language(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (vp.IsGetting())
-	{
-		vp << JS_STR_LANGUANGE;
-		return TRUE;
-	}
-
-	return FALSE;
-}
-
-//creates a new fdf object that contains no data
-//comment: need reader support
-//note:
-//CFDF_Document * CPDFDoc_Environment::NewFDF();
-FX_BOOL app::newFDF(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	return TRUE;
-}
-//opens a specified pdf document and returns its document object
-//comment:need reader support
-//note: as defined in js reference, the proto of this function's fourth parmeters, how old an fdf document while do not show it.
-//CFDF_Document * CPDFDoc_Environment::OpenFDF(string strPath,bool bUserConv);
-
-FX_BOOL app::openFDF(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	return TRUE;
-}
-
-FX_BOOL app::alert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	int iSize = params.size();
-	if (iSize < 1)
-		return FALSE;
-
-	CFX_WideString swMsg = L"";
-	CFX_WideString swTitle = L"";
-	int iIcon = 0;
-	int iType = 0;
-
-	v8::Isolate* isolate = GetIsolate(cc);
-
-	if (iSize == 1)
-	{
-		if (params[0].GetType() == VT_object)
-		{
-			JSObject pObj = params[0].ToV8Object();
-			{
-				v8::Local<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"cMsg");
-				swMsg = CJS_Value(isolate, pValue, VT_unknown).ToCFXWideString();
-
-				pValue = JS_GetObjectElement(isolate, pObj, L"cTitle");
-				swTitle = CJS_Value(isolate, pValue, VT_unknown).ToCFXWideString();
-
-				pValue = JS_GetObjectElement(isolate, pObj, L"nIcon");
-				iIcon = CJS_Value(isolate, pValue, VT_unknown).ToInt();
-
-				pValue = JS_GetObjectElement(isolate, pObj, L"nType");
-				iType = CJS_Value(isolate, pValue, VT_unknown).ToInt();
-			}
-
-			if (swMsg == L"")
-			{
-				CJS_Array carray(isolate);
-				if (params[0].ConvertToArray(carray))
-				{
-					int iLenth = carray.GetLength();
-					CJS_Value* pValue = new CJS_Value(isolate);
-//					if (iLenth == 1)
-//						pValue = new CJS_Value(isolate);
-//					else if (iLenth > 1)
-//						pValue = new CJS_Value[iLenth];
-
-					for(int i = 0; i < iLenth; i++)
-					{
-						carray.GetElement(i, *pValue);
-						swMsg += (*pValue).ToCFXWideString();
-						if (i < iLenth - 1)
-							swMsg += L",  ";
-					}
-
-                                        delete pValue;
-				}
-			}
-
-			if (swTitle == L"")
-				swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT);
-		}
-		else if (params[0].GetType() == VT_boolean)
-		{
-			FX_BOOL bGet = params[0].ToBool();
-			if (bGet)
-				swMsg = L"true";
-			else
-				swMsg = L"false";
-
-			swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT);
-		}
-		else
-		{
-			swMsg = params[0].ToCFXWideString();
-			swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT);
-		}
-	}
-	else
-	{
-		if (params[0].GetType() == VT_boolean)
-		{
-			FX_BOOL bGet = params[0].ToBool();
-			if (bGet)
-				swMsg = L"true";
-			else
-				swMsg = L"false";
-		}
-		else
-		{
-			swMsg = params[0].ToCFXWideString();
-		}
-		swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT);
-
-		for(int i = 1;i<iSize;i++)
-		{
-			if (i == 1)
-				iIcon = params[i].ToInt();
-			if (i == 2)
-				iType = params[i].ToInt();
-			if (i == 3)
-				swTitle = params[i].ToCFXWideString();
-		}
-	}
-
-
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-	ASSERT(pRuntime != NULL);
-	pRuntime->BeginBlock();
-	vRet = MsgBox(pRuntime->GetReaderApp(), JSGetPageView(cc), swMsg.c_str(), swTitle.c_str(), iType, iIcon);
-	pRuntime->EndBlock();
-
-	return TRUE;
-}
-
-
-FX_BOOL app::beep(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	if (params.size() == 1)
-	{
-		CJS_Context* pContext = (CJS_Context*)cc;
-		CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-		CPDFDoc_Environment * pEnv = pRuntime->GetReaderApp();
-		pEnv->JS_appBeep(params[0].ToInt());
-		return TRUE;
-	}
-
-	sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR);
-	return FALSE;
-}
-
-FX_BOOL app::findComponent(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	return TRUE;
-}
-
-FX_BOOL app::popUpMenuEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	return FALSE;
-}
-
-FX_BOOL app::fs(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	return FALSE;
-}
-
-FX_BOOL app::setInterval(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	CJS_Context* pContext = (CJS_Context*)cc;
-	if (params.size() > 2 || params.size() == 0)
-	{
-		sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-		return FALSE;
-	}
-
-	CFX_WideString script = params.size() > 0 ?  params[0].ToCFXWideString() : L"";
-	if (script.IsEmpty())
-	{
-		sError = JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE);
-		return TRUE;
-	}
-
-	CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-	FX_DWORD dwInterval = params.size() > 1 ? params[1].ToInt() : 1000;
-
-	CPDFDoc_Environment* pApp = pRuntime->GetReaderApp();
-	ASSERT(pApp);
-	CJS_Timer* pTimer = new CJS_Timer(this, pApp);
-	m_aTimer.Add(pTimer);
-
-	pTimer->SetType(0);
-	pTimer->SetRuntime(pRuntime);
-	pTimer->SetJScript(script);
-	pTimer->SetTimeOut(0);
-//	pTimer->SetStartTime(GetTickCount());
-	pTimer->SetJSTimer(dwInterval);
-
-	JSFXObject pRetObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"TimerObj"));
-
-	CJS_TimerObj* pJS_TimerObj = (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetIsolate(),pRetObj);
-	ASSERT(pJS_TimerObj != NULL);
-
-	TimerObj* pTimerObj = (TimerObj*)pJS_TimerObj->GetEmbedObject();
-	ASSERT(pTimerObj != NULL);
-
-	pTimerObj->SetTimer(pTimer);
-
-	vRet = pRetObj;
-
-	return TRUE;
-}
-
-FX_BOOL app::setTimeOut(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	if (params.size() > 2 || params.size() == 0)
-	{
-		sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR);
-		return FALSE;
-	}
-
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-	ASSERT(pRuntime != NULL);
-
-	CFX_WideString script = params.size() > 0 ? params[0].ToCFXWideString() : L"";
-	if (script.IsEmpty())
-	{
-		sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSAFNUMBER_KEYSTROKE);
-		return TRUE;
-	}
-
-	FX_DWORD dwTimeOut = params.size() > 1 ? params[1].ToInt() : 1000;
-
-	CPDFDoc_Environment* pApp = pRuntime->GetReaderApp();
-	ASSERT(pApp);
-
-	CJS_Timer* pTimer = new CJS_Timer(this, pApp);
-	m_aTimer.Add(pTimer);
-
-	pTimer->SetType(1);
-	pTimer->SetRuntime(pRuntime);
-	pTimer->SetJScript(script);
-	pTimer->SetTimeOut(dwTimeOut);
-	pTimer->SetJSTimer(dwTimeOut);
-
-	JSFXObject pRetObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime, L"TimerObj"));
-
-	CJS_TimerObj* pJS_TimerObj = (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetIsolate(),pRetObj);
-	ASSERT(pJS_TimerObj != NULL);
-
-	TimerObj* pTimerObj = (TimerObj*)pJS_TimerObj->GetEmbedObject();
-	ASSERT(pTimerObj != NULL);
-
-	pTimerObj->SetTimer(pTimer);
-
-	vRet = pRetObj;
-
-	return TRUE;
-}
-
-FX_BOOL app::clearTimeOut(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-	ASSERT(pRuntime != NULL);
-
-	if (params.size() != 1)
-	{
-		sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR);
-		return FALSE;
-	}
-
-	if (params[0].GetType() == VT_fxobject)
-	{
-		JSFXObject pObj = params[0].ToV8Object();
-		{
-			if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj"))
-			{
-				if (CJS_Object* pJSObj = params[0].ToCJSObject())
-				{
-					if (TimerObj* pTimerObj = (TimerObj*)pJSObj->GetEmbedObject())
-					{
-						if (CJS_Timer* pTimer = pTimerObj->GetTimer())
-						{
-							pTimer->KillJSTimer();
-
-							for (int i=0,sz=m_aTimer.GetSize(); i<sz; i++)
-							{
-								if (m_aTimer[i] == pTimer)
-								{
-									m_aTimer.RemoveAt(i);
-									break;
-								}
-							}
-
-							delete pTimer;
-							pTimerObj->SetTimer(NULL);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	return TRUE;
-}
-
-FX_BOOL app::clearInterval(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-	ASSERT(pRuntime != NULL);
-
-	if (params.size() != 1)
-	{
-		sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAMERROR);
-		return FALSE;
-	}
-
-	if (params[0].GetType() == VT_fxobject)
-	{
-		JSFXObject pObj = params[0].ToV8Object();
-		{
-			if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj"))
-			{
-				if (CJS_Object* pJSObj = params[0].ToCJSObject())
-				{
-					if (TimerObj* pTimerObj = (TimerObj*)pJSObj->GetEmbedObject())
-					{
-						if (CJS_Timer* pTimer = pTimerObj->GetTimer())
-						{
-							pTimer->KillJSTimer();
-
-							for (int i=0,sz=m_aTimer.GetSize(); i<sz; i++)
-							{
-								if (m_aTimer[i] == pTimer)
-								{
-									m_aTimer.RemoveAt(i);
-									break;
-								}
-							}
-
-							delete pTimer;
-							pTimerObj->SetTimer(NULL);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	return TRUE;
-}
-
-FX_BOOL app::execMenuItem(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	return FALSE;
-}
-
-void app::TimerProc(CJS_Timer* pTimer)
-{
-	ASSERT(pTimer != NULL);
-
-	switch (pTimer->GetType())
-	{
-	case 0: //interval
-		RunJsScript(pTimer->GetRuntime(), pTimer->GetJScript());
-		break;
-	case 1:
-		if (pTimer->GetTimeOut() > 0)
-		{
-			RunJsScript(pTimer->GetRuntime(), pTimer->GetJScript());
-			pTimer->KillJSTimer();
-		}
-		break;
-	}
-
-}
-
-void app::RunJsScript(CJS_Runtime* pRuntime,const CFX_WideString& wsScript)
-{
-	ASSERT(pRuntime != NULL);
-
-	if (!pRuntime->IsBlocking())
-	{
-		IFXJS_Context* pContext = pRuntime->NewContext();
-		ASSERT(pContext != NULL);
-		pContext->OnExternal_Exec();
-		CFX_WideString wtInfo;
-		pContext->RunScript(wsScript,wtInfo);
-		pRuntime->ReleaseContext(pContext);
-	}
-}
-
-FX_BOOL app::goBack(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL app::goBack(IFXJS_Context* cc,
+                    const CJS_Parameters& params,
+                    CJS_Value& vRet,
+                    CFX_WideString& sError) {
   // Not supported.
   return TRUE;
 }
 
-FX_BOOL app::goForward(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL app::goForward(IFXJS_Context* cc,
+                       const CJS_Parameters& params,
+                       CJS_Value& vRet,
+                       CFX_WideString& sError) {
   // Not supported.
   return TRUE;
 }
 
-FX_BOOL app::mailMsg(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	CJS_Context* pContext = (CJS_Context*)cc;
-	v8::Isolate* isolate = GetIsolate(cc);
+FX_BOOL app::mailMsg(IFXJS_Context* cc,
+                     const CJS_Parameters& params,
+                     CJS_Value& vRet,
+                     CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  v8::Isolate* isolate = GetIsolate(cc);
 
-	FX_BOOL bUI = TRUE;
-	CFX_WideString cTo = L"";
-	CFX_WideString cCc = L"";
-	CFX_WideString cBcc = L"";
-	CFX_WideString cSubject = L"";
-	CFX_WideString cMsg = L"";
+  FX_BOOL bUI = TRUE;
+  CFX_WideString cTo = L"";
+  CFX_WideString cCc = L"";
+  CFX_WideString cBcc = L"";
+  CFX_WideString cSubject = L"";
+  CFX_WideString cMsg = L"";
 
-	if (params.size() < 1)
-		return FALSE;
+  if (params.size() < 1)
+    return FALSE;
 
-	if (params[0].GetType() == VT_object)
-	{
-		JSObject pObj = params[0].ToV8Object();
+  if (params[0].GetType() == VT_object) {
+    JSObject pObj = params[0].ToV8Object();
 
-		v8::Local<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"bUI");
-		bUI = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
+    v8::Local<v8::Value> pValue = JS_GetObjectElement(isolate, pObj, L"bUI");
+    bUI = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
 
-		pValue = JS_GetObjectElement(isolate, pObj, L"cTo");
-		cTo = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+    pValue = JS_GetObjectElement(isolate, pObj, L"cTo");
+    cTo = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
-		pValue = JS_GetObjectElement(isolate, pObj, L"cCc");
-		cCc = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+    pValue = JS_GetObjectElement(isolate, pObj, L"cCc");
+    cCc = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
-		pValue = JS_GetObjectElement(isolate, pObj, L"cBcc");
-		cBcc = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+    pValue = JS_GetObjectElement(isolate, pObj, L"cBcc");
+    cBcc = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
-		pValue = JS_GetObjectElement(isolate, pObj, L"cSubject");
-		cSubject = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+    pValue = JS_GetObjectElement(isolate, pObj, L"cSubject");
+    cSubject =
+        CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
 
-		pValue = JS_GetObjectElement(isolate, pObj, L"cMsg");
-		cMsg = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
-	} else {
-		if (params.size() < 2)
-			return FALSE;
+    pValue = JS_GetObjectElement(isolate, pObj, L"cMsg");
+    cMsg = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+  } else {
+    if (params.size() < 2)
+      return FALSE;
 
-		bUI = params[0].ToBool();
-		cTo = params[1].ToCFXWideString();
+    bUI = params[0].ToBool();
+    cTo = params[1].ToCFXWideString();
 
-		if (params.size() >= 3)
-			cCc = params[2].ToCFXWideString();
-		if (params.size() >= 4)
-			cBcc = params[3].ToCFXWideString();
-		if (params.size() >= 5)
-			cSubject = params[4].ToCFXWideString();
-		if (params.size() >= 6)
-			cMsg = params[5].ToCFXWideString();
-	}
+    if (params.size() >= 3)
+      cCc = params[2].ToCFXWideString();
+    if (params.size() >= 4)
+      cBcc = params[3].ToCFXWideString();
+    if (params.size() >= 5)
+      cSubject = params[4].ToCFXWideString();
+    if (params.size() >= 6)
+      cMsg = params[5].ToCFXWideString();
+  }
 
-	CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-	ASSERT(pRuntime != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
 
-	CPDFDoc_Environment* pApp = pContext->GetReaderApp();
-	ASSERT(pApp != NULL);
+  CPDFDoc_Environment* pApp = pContext->GetReaderApp();
+  ASSERT(pApp != NULL);
 
-	pRuntime->BeginBlock();
-	pApp->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str());
-	pRuntime->EndBlock();
+  pRuntime->BeginBlock();
+  pApp->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(),
+                       cBcc.c_str(), cMsg.c_str());
+  pRuntime->EndBlock();
 
-	return FALSE;
+  return FALSE;
 }
 
-FX_BOOL app::launchURL(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL app::launchURL(IFXJS_Context* cc,
+                       const CJS_Parameters& params,
+                       CJS_Value& vRet,
+                       CFX_WideString& sError) {
   // Unsafe, not supported.
   return TRUE;
 }
 
-FX_BOOL app::runtimeHighlight(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (vp.IsSetting())
-	{
-		vp>>m_bRuntimeHighLight;
-	}
-	else
-	{
-		vp<<m_bRuntimeHighLight;
-	}
+FX_BOOL app::runtimeHighlight(IFXJS_Context* cc,
+                              CJS_PropValue& vp,
+                              CFX_WideString& sError) {
+  if (vp.IsSetting()) {
+    vp >> m_bRuntimeHighLight;
+  } else {
+    vp << m_bRuntimeHighLight;
+  }
 
-	return TRUE;
+  return TRUE;
 }
 
-FX_BOOL app::fullscreen(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	return FALSE;
+FX_BOOL app::fullscreen(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  return FALSE;
 }
 
-FX_BOOL app::popUpMenu(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	return FALSE;
+FX_BOOL app::popUpMenu(IFXJS_Context* cc,
+                       const CJS_Parameters& params,
+                       CJS_Value& vRet,
+                       CFX_WideString& sError) {
+  return FALSE;
 }
 
-
-FX_BOOL app::browseForDoc(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL app::browseForDoc(IFXJS_Context* cc,
+                          const CJS_Parameters& params,
+                          CJS_Value& vRet,
+                          CFX_WideString& sError) {
   // Unsafe, not supported.
   return TRUE;
 }
 
-CFX_WideString app::SysPathToPDFPath(const CFX_WideString& sOldPath)
-{
-	CFX_WideString sRet = L"/";
-
-	for (int i=0,sz=sOldPath.GetLength(); i<sz; i++)
-	{
-		wchar_t c = sOldPath.GetAt(i);
-		if (c == L':')
-		{
-		}
-		else
-		{
-			if (c == L'\\')
-			{
-				sRet += L"/";
-			}
-			else
-			{
-				sRet += c;
-			}
-		}
-	}
-
-	return sRet;
-}
-
-FX_BOOL app::newDoc(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	return FALSE;
-}
-
-FX_BOOL app::openDoc(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	return FALSE;
-}
-
-FX_BOOL app::response(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	CFX_WideString swQuestion = L"";
-	CFX_WideString swLabel = L"";
-	CFX_WideString swTitle = L"PDF";
-	CFX_WideString swDefault = L"";
-	bool bPassWord = false;
-
-	v8::Isolate* isolate = GetIsolate(cc);
-
-	int iLength = params.size();
-	if (iLength > 0 && params[0].GetType() == VT_object)
-	{
-		JSObject pObj = params[0].ToV8Object();
-		v8::Local<v8::Value> pValue = JS_GetObjectElement(isolate,pObj,L"cQuestion");
-		swQuestion = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
-
-		pValue = JS_GetObjectElement(isolate,pObj,L"cTitle");
-		swTitle = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
-
-		pValue = JS_GetObjectElement(isolate,pObj,L"cDefault");
-		swDefault = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
-
-		pValue = JS_GetObjectElement(isolate,pObj,L"cLabel");
-		swLabel = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToCFXWideString();
-
-		pValue = JS_GetObjectElement(isolate,pObj,L"bPassword");
-		bPassWord = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).ToBool();
-	}
-	else
-	{
-		switch(iLength)
-		{
-		case 5:
-			swLabel = params[4].ToCFXWideString();
-			// FALLTHROUGH
-		case 4:
-			bPassWord = params[3].ToBool();
-			// FALLTHROUGH
-		case 3:
-			swDefault = params[2].ToCFXWideString();
-			// FALLTHROUGH
-		case 2:
-			swTitle = params[1].ToCFXWideString();
-			// FALLTHROUGH
-		case 1:
-			swQuestion = params[0].ToCFXWideString();
-			// FALLTHROUGH
-		default:
-			break;
-		}
-	}
-
-	CJS_Context* pContext = (CJS_Context *)cc;
-	ASSERT(pContext != NULL);
-
-	CPDFDoc_Environment* pApp = pContext->GetReaderApp();
-	ASSERT(pApp != NULL);
-
-	const int MAX_INPUT_BYTES = 2048;
-	char* pBuff = new char[MAX_INPUT_BYTES + 2];
-	if (!pBuff)
-		return FALSE;
-
-	memset(pBuff, 0, MAX_INPUT_BYTES + 2);
-	int nLengthBytes = pApp->JS_appResponse(swQuestion.c_str(), swTitle.c_str(), swDefault.c_str(),
-                                            swLabel.c_str(), bPassWord, pBuff, MAX_INPUT_BYTES);
-	if (nLengthBytes <= 0)
-	{
-		vRet.SetNull();
-		delete[] pBuff;
-		return FALSE;
-	}
-	if (nLengthBytes > MAX_INPUT_BYTES)
-		nLengthBytes = MAX_INPUT_BYTES;
-
-	vRet = CFX_WideString::FromUTF16LE((unsigned short*)pBuff, nLengthBytes / sizeof(unsigned short)).c_str();
-	delete[] pBuff;
-	return TRUE;
-}
-
-FX_BOOL app::media(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	return FALSE;
-}
-
-FX_BOOL app::execDialog(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	return TRUE;
+CFX_WideString app::SysPathToPDFPath(const CFX_WideString& sOldPath) {
+  CFX_WideString sRet = L"/";
+
+  for (int i = 0, sz = sOldPath.GetLength(); i < sz; i++) {
+    wchar_t c = sOldPath.GetAt(i);
+    if (c == L':') {
+    } else {
+      if (c == L'\\') {
+        sRet += L"/";
+      } else {
+        sRet += c;
+      }
+    }
+  }
+
+  return sRet;
+}
+
+FX_BOOL app::newDoc(IFXJS_Context* cc,
+                    const CJS_Parameters& params,
+                    CJS_Value& vRet,
+                    CFX_WideString& sError) {
+  return FALSE;
+}
+
+FX_BOOL app::openDoc(IFXJS_Context* cc,
+                     const CJS_Parameters& params,
+                     CJS_Value& vRet,
+                     CFX_WideString& sError) {
+  return FALSE;
+}
+
+FX_BOOL app::response(IFXJS_Context* cc,
+                      const CJS_Parameters& params,
+                      CJS_Value& vRet,
+                      CFX_WideString& sError) {
+  CFX_WideString swQuestion = L"";
+  CFX_WideString swLabel = L"";
+  CFX_WideString swTitle = L"PDF";
+  CFX_WideString swDefault = L"";
+  bool bPassWord = false;
+
+  v8::Isolate* isolate = GetIsolate(cc);
+
+  int iLength = params.size();
+  if (iLength > 0 && params[0].GetType() == VT_object) {
+    JSObject pObj = params[0].ToV8Object();
+    v8::Local<v8::Value> pValue =
+        JS_GetObjectElement(isolate, pObj, L"cQuestion");
+    swQuestion =
+        CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+
+    pValue = JS_GetObjectElement(isolate, pObj, L"cTitle");
+    swTitle =
+        CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+
+    pValue = JS_GetObjectElement(isolate, pObj, L"cDefault");
+    swDefault =
+        CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+
+    pValue = JS_GetObjectElement(isolate, pObj, L"cLabel");
+    swLabel =
+        CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
+
+    pValue = JS_GetObjectElement(isolate, pObj, L"bPassword");
+    bPassWord = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
+  } else {
+    switch (iLength) {
+      case 5:
+        swLabel = params[4].ToCFXWideString();
+      // FALLTHROUGH
+      case 4:
+        bPassWord = params[3].ToBool();
+      // FALLTHROUGH
+      case 3:
+        swDefault = params[2].ToCFXWideString();
+      // FALLTHROUGH
+      case 2:
+        swTitle = params[1].ToCFXWideString();
+      // FALLTHROUGH
+      case 1:
+        swQuestion = params[0].ToCFXWideString();
+      // FALLTHROUGH
+      default:
+        break;
+    }
+  }
+
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+
+  CPDFDoc_Environment* pApp = pContext->GetReaderApp();
+  ASSERT(pApp != NULL);
+
+  const int MAX_INPUT_BYTES = 2048;
+  char* pBuff = new char[MAX_INPUT_BYTES + 2];
+  if (!pBuff)
+    return FALSE;
+
+  memset(pBuff, 0, MAX_INPUT_BYTES + 2);
+  int nLengthBytes = pApp->JS_appResponse(swQuestion.c_str(), swTitle.c_str(),
+                                          swDefault.c_str(), swLabel.c_str(),
+                                          bPassWord, pBuff, MAX_INPUT_BYTES);
+  if (nLengthBytes <= 0) {
+    vRet.SetNull();
+    delete[] pBuff;
+    return FALSE;
+  }
+  if (nLengthBytes > MAX_INPUT_BYTES)
+    nLengthBytes = MAX_INPUT_BYTES;
+
+  vRet = CFX_WideString::FromUTF16LE((unsigned short*)pBuff,
+                                     nLengthBytes / sizeof(unsigned short))
+             .c_str();
+  delete[] pBuff;
+  return TRUE;
+}
+
+FX_BOOL app::media(IFXJS_Context* cc,
+                   CJS_PropValue& vp,
+                   CFX_WideString& sError) {
+  return FALSE;
+}
+
+FX_BOOL app::execDialog(IFXJS_Context* cc,
+                        const CJS_Parameters& params,
+                        CJS_Value& vRet,
+                        CFX_WideString& sError) {
+  return TRUE;
 }
diff --git a/fpdfsdk/src/javascript/color.cpp b/fpdfsdk/src/javascript/color.cpp
index a2bbadcd51..0659ab94a4 100644
--- a/fpdfsdk/src/javascript/color.cpp
+++ b/fpdfsdk/src/javascript/color.cpp
@@ -14,15 +14,14 @@
 #include "../../include/javascript/JS_Context.h"
 #include "../../include/javascript/JS_Runtime.h"
 
-static v8::Isolate* GetIsolate(IFXJS_Context* cc)
-{
-	CJS_Context* pContext = (CJS_Context *)cc;
-	ASSERT(pContext != NULL);
+static v8::Isolate* GetIsolate(IFXJS_Context* cc) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
 
-	CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-	ASSERT(pRuntime != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
 
-	return pRuntime->GetIsolate();
+  return pRuntime->GetIsolate();
 }
 /* -------------------------- color -------------------------- */
 
@@ -30,149 +29,132 @@ BEGIN_JS_STATIC_CONST(CJS_Color)
 END_JS_STATIC_CONST()
 
 BEGIN_JS_STATIC_PROP(CJS_Color)
-	JS_STATIC_PROP_ENTRY(black)
-	JS_STATIC_PROP_ENTRY(blue)
-	JS_STATIC_PROP_ENTRY(cyan)
-	JS_STATIC_PROP_ENTRY(dkGray)
-	JS_STATIC_PROP_ENTRY(gray)
-	JS_STATIC_PROP_ENTRY(green)
-	JS_STATIC_PROP_ENTRY(ltGray)
-	JS_STATIC_PROP_ENTRY(magenta)
-	JS_STATIC_PROP_ENTRY(red)
-	JS_STATIC_PROP_ENTRY(transparent)
-	JS_STATIC_PROP_ENTRY(white)
-	JS_STATIC_PROP_ENTRY(yellow)
+JS_STATIC_PROP_ENTRY(black)
+JS_STATIC_PROP_ENTRY(blue)
+JS_STATIC_PROP_ENTRY(cyan)
+JS_STATIC_PROP_ENTRY(dkGray)
+JS_STATIC_PROP_ENTRY(gray)
+JS_STATIC_PROP_ENTRY(green)
+JS_STATIC_PROP_ENTRY(ltGray)
+JS_STATIC_PROP_ENTRY(magenta)
+JS_STATIC_PROP_ENTRY(red)
+JS_STATIC_PROP_ENTRY(transparent)
+JS_STATIC_PROP_ENTRY(white)
+JS_STATIC_PROP_ENTRY(yellow)
 END_JS_STATIC_PROP()
 
 BEGIN_JS_STATIC_METHOD(CJS_Color)
-	JS_STATIC_METHOD_ENTRY(convert)
-	JS_STATIC_METHOD_ENTRY(equal)
+JS_STATIC_METHOD_ENTRY(convert)
+JS_STATIC_METHOD_ENTRY(equal)
 END_JS_STATIC_METHOD()
 
-IMPLEMENT_JS_CLASS(CJS_Color,color)
-
-color::color(CJS_Object* pJSObject): CJS_EmbedObj(pJSObject)
-{
-	m_crTransparent = CPWL_Color(COLORTYPE_TRANSPARENT);
-	m_crBlack = CPWL_Color(COLORTYPE_GRAY, 0);
-	m_crWhite = CPWL_Color(COLORTYPE_GRAY, 1);
-	m_crRed = CPWL_Color(COLORTYPE_RGB, 1, 0 ,0);
-	m_crGreen = CPWL_Color(COLORTYPE_RGB, 0, 1 ,0);
-	m_crBlue = CPWL_Color(COLORTYPE_RGB, 0, 0 ,1);
-	m_crCyan = CPWL_Color(COLORTYPE_CMYK, 1, 0 ,0, 0);
-	m_crMagenta = CPWL_Color(COLORTYPE_CMYK, 0, 1 ,0, 0);
-	m_crYellow = CPWL_Color(COLORTYPE_CMYK, 0, 0 ,1, 0);
-	m_crDKGray = CPWL_Color(COLORTYPE_GRAY, 0.25);
-	m_crGray = CPWL_Color(COLORTYPE_GRAY, 0.5);
-	m_crLTGray = CPWL_Color(COLORTYPE_GRAY, 0.75);
+IMPLEMENT_JS_CLASS(CJS_Color, color)
+
+color::color(CJS_Object* pJSObject) : CJS_EmbedObj(pJSObject) {
+  m_crTransparent = CPWL_Color(COLORTYPE_TRANSPARENT);
+  m_crBlack = CPWL_Color(COLORTYPE_GRAY, 0);
+  m_crWhite = CPWL_Color(COLORTYPE_GRAY, 1);
+  m_crRed = CPWL_Color(COLORTYPE_RGB, 1, 0, 0);
+  m_crGreen = CPWL_Color(COLORTYPE_RGB, 0, 1, 0);
+  m_crBlue = CPWL_Color(COLORTYPE_RGB, 0, 0, 1);
+  m_crCyan = CPWL_Color(COLORTYPE_CMYK, 1, 0, 0, 0);
+  m_crMagenta = CPWL_Color(COLORTYPE_CMYK, 0, 1, 0, 0);
+  m_crYellow = CPWL_Color(COLORTYPE_CMYK, 0, 0, 1, 0);
+  m_crDKGray = CPWL_Color(COLORTYPE_GRAY, 0.25);
+  m_crGray = CPWL_Color(COLORTYPE_GRAY, 0.5);
+  m_crLTGray = CPWL_Color(COLORTYPE_GRAY, 0.75);
 }
 
-color::~color(void)
-{
+color::~color(void) {}
+
+void color::ConvertPWLColorToArray(const CPWL_Color& color, CJS_Array& array) {
+  switch (color.nColorType) {
+    case COLORTYPE_TRANSPARENT:
+      array.SetElement(0, CJS_Value(array.GetIsolate(), "T"));
+      break;
+    case COLORTYPE_GRAY:
+      array.SetElement(0, CJS_Value(array.GetIsolate(), "G"));
+      array.SetElement(1, CJS_Value(array.GetIsolate(), color.fColor1));
+      break;
+    case COLORTYPE_RGB:
+      array.SetElement(0, CJS_Value(array.GetIsolate(), "RGB"));
+      array.SetElement(1, CJS_Value(array.GetIsolate(), color.fColor1));
+      array.SetElement(2, CJS_Value(array.GetIsolate(), color.fColor2));
+      array.SetElement(3, CJS_Value(array.GetIsolate(), color.fColor3));
+      break;
+    case COLORTYPE_CMYK:
+      array.SetElement(0, CJS_Value(array.GetIsolate(), "CMYK"));
+      array.SetElement(1, CJS_Value(array.GetIsolate(), color.fColor1));
+      array.SetElement(2, CJS_Value(array.GetIsolate(), color.fColor2));
+      array.SetElement(3, CJS_Value(array.GetIsolate(), color.fColor3));
+      array.SetElement(4, CJS_Value(array.GetIsolate(), color.fColor4));
+      break;
+  }
 }
 
-void color::ConvertPWLColorToArray(const CPWL_Color& color, CJS_Array& array)
-{
-	switch (color.nColorType)
-	{
-	case COLORTYPE_TRANSPARENT:
-		array.SetElement(0, CJS_Value(array.GetIsolate(), "T"));
-		break;
-	case COLORTYPE_GRAY:
-		array.SetElement(0, CJS_Value(array.GetIsolate(),"G"));
-		array.SetElement(1, CJS_Value(array.GetIsolate(),color.fColor1));
-		break;
-	case COLORTYPE_RGB:
-		array.SetElement(0, CJS_Value(array.GetIsolate(),"RGB"));
-		array.SetElement(1, CJS_Value(array.GetIsolate(),color.fColor1));
-		array.SetElement(2, CJS_Value(array.GetIsolate(),color.fColor2));
-		array.SetElement(3, CJS_Value(array.GetIsolate(),color.fColor3));
-		break;
-	case COLORTYPE_CMYK:
-		array.SetElement(0, CJS_Value(array.GetIsolate(),"CMYK"));
-		array.SetElement(1, CJS_Value(array.GetIsolate(),color.fColor1));
-		array.SetElement(2, CJS_Value(array.GetIsolate(),color.fColor2));
-		array.SetElement(3, CJS_Value(array.GetIsolate(),color.fColor3));
-		array.SetElement(4, CJS_Value(array.GetIsolate(),color.fColor4));
-		break;
-	}
+void color::ConvertArrayToPWLColor(CJS_Array& array, CPWL_Color& color) {
+  int nArrayLen = array.GetLength();
+  if (nArrayLen < 1)
+    return;
+
+  CJS_Value value(array.GetIsolate());
+  array.GetElement(0, value);
+  CFX_ByteString sSpace = value.ToCFXByteString();
+
+  double d1 = 0;
+  double d2 = 0;
+  double d3 = 0;
+  double d4 = 0;
+
+  if (nArrayLen > 1) {
+    array.GetElement(1, value);
+    d1 = value.ToDouble();
+  }
+
+  if (nArrayLen > 2) {
+    array.GetElement(2, value);
+    d2 = value.ToDouble();
+  }
+
+  if (nArrayLen > 3) {
+    array.GetElement(3, value);
+    d3 = value.ToDouble();
+  }
+
+  if (nArrayLen > 4) {
+    array.GetElement(4, value);
+    d4 = value.ToDouble();
+  }
+
+  if (sSpace == "T") {
+    color = CPWL_Color(COLORTYPE_TRANSPARENT);
+  } else if (sSpace == "G") {
+    color = CPWL_Color(COLORTYPE_GRAY, (FX_FLOAT)d1);
+  } else if (sSpace == "RGB") {
+    color = CPWL_Color(COLORTYPE_RGB, (FX_FLOAT)d1, (FX_FLOAT)d2, (FX_FLOAT)d3);
+  } else if (sSpace == "CMYK") {
+    color = CPWL_Color(COLORTYPE_CMYK, (FX_FLOAT)d1, (FX_FLOAT)d2, (FX_FLOAT)d3,
+                       (FX_FLOAT)d4);
+  }
 }
 
-void color::ConvertArrayToPWLColor(CJS_Array& array, CPWL_Color& color)
-{
-	int nArrayLen = array.GetLength();
-	if (nArrayLen < 1) return;
-
-	CJS_Value value(array.GetIsolate());
-	array.GetElement(0, value);
-	CFX_ByteString sSpace = value.ToCFXByteString();
-
-	double d1 = 0;
-	double d2 = 0;
-	double d3 = 0;
-	double d4 = 0;
-
-	if (nArrayLen > 1)
-	{
-		array.GetElement(1, value);
-		d1 = value.ToDouble();
-	}
-
-	if (nArrayLen > 2)
-	{
-		array.GetElement(2, value);
-		d2 = value.ToDouble();
-	}
-
-	if (nArrayLen > 3)
-	{
-		array.GetElement(3, value);
-		d3 = value.ToDouble();
-	}
-
-	if (nArrayLen > 4)
-	{
-		array.GetElement(4, value);
-		d4 = value.ToDouble();
-	}
-
-	if (sSpace == "T")
-	{
-		color = CPWL_Color(COLORTYPE_TRANSPARENT);
-	}
-	else if (sSpace == "G")
-	{
-		color = CPWL_Color(COLORTYPE_GRAY, (FX_FLOAT)d1);
-	}
-	else if (sSpace == "RGB")
-	{
-		color = CPWL_Color(COLORTYPE_RGB, (FX_FLOAT)d1, (FX_FLOAT)d2, (FX_FLOAT)d3);
-	}
-	else if (sSpace == "CMYK")
-	{
-		color = CPWL_Color(COLORTYPE_CMYK, (FX_FLOAT)d1, (FX_FLOAT)d2, (FX_FLOAT)d3, (FX_FLOAT)d4);
-	}
-}
-
-#define JS_IMPLEMENT_COLORPROP(prop, var)\
-FX_BOOL color::prop(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)\
-{\
-	CJS_Context* pContext = (CJS_Context*)cc;\
-	v8::Isolate* isolate = pContext->GetJSRuntime()->GetIsolate();\
-	if (vp.IsGetting())\
-	{\
-		CJS_Array array(isolate);\
-		ConvertPWLColorToArray(var, array);\
-		vp << array;\
-	}\
-	else\
-	{\
-		CJS_Array array(isolate);\
-		if (!vp.ConvertToArray(array)) return FALSE;\
-		ConvertArrayToPWLColor(array, var);\
-	}\
-	return TRUE;\
-}
+#define JS_IMPLEMENT_COLORPROP(prop, var)                          \
+  FX_BOOL color::prop(IFXJS_Context* cc, CJS_PropValue& vp,        \
+                      CFX_WideString& sError) {                    \
+    CJS_Context* pContext = (CJS_Context*)cc;                      \
+    v8::Isolate* isolate = pContext->GetJSRuntime()->GetIsolate(); \
+    if (vp.IsGetting()) {                                          \
+      CJS_Array array(isolate);                                    \
+      ConvertPWLColorToArray(var, array);                          \
+      vp << array;                                                 \
+    } else {                                                       \
+      CJS_Array array(isolate);                                    \
+      if (!vp.ConvertToArray(array))                               \
+        return FALSE;                                              \
+      ConvertArrayToPWLColor(array, var);                          \
+    }                                                              \
+    return TRUE;                                                   \
+  }
 
 JS_IMPLEMENT_COLORPROP(transparent, m_crTransparent)
 JS_IMPLEMENT_COLORPROP(black, m_crBlack)
@@ -187,65 +169,66 @@ JS_IMPLEMENT_COLORPROP(dkGray, m_crDKGray)
 JS_IMPLEMENT_COLORPROP(gray, m_crGray)
 JS_IMPLEMENT_COLORPROP(ltGray, m_crLTGray)
 
-FX_BOOL color::convert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	v8::Isolate* isolate = GetIsolate(cc);
-	int iSize = params.size();
-	if (iSize < 2) return FALSE;
-	CJS_Array aSource(isolate);
-	if (!params[0].ConvertToArray(aSource)) return FALSE;
-
-	CPWL_Color crSource;
-	ConvertArrayToPWLColor(aSource, crSource);
-
-	CFX_ByteString sDestSpace = params[1].ToCFXByteString();
-	int nColorType = COLORTYPE_TRANSPARENT;
-
-	if (sDestSpace == "T")
-	{
-		nColorType = COLORTYPE_TRANSPARENT;
-	}
-	else if (sDestSpace == "G")
-	{
-		nColorType = COLORTYPE_GRAY;
-	}
-	else if (sDestSpace == "RGB")
-	{
-		nColorType = COLORTYPE_RGB;
-	}
-	else if (sDestSpace == "CMYK")
-	{
-		nColorType = COLORTYPE_CMYK;
-	}
-
-	CJS_Array aDest(isolate);
-	CPWL_Color crDest = crSource;
-	crDest.ConvertColorType(nColorType);
-	ConvertPWLColorToArray(crDest, aDest);
-	vRet = aDest;
-
-	return TRUE;
+FX_BOOL color::convert(IFXJS_Context* cc,
+                       const CJS_Parameters& params,
+                       CJS_Value& vRet,
+                       CFX_WideString& sError) {
+  v8::Isolate* isolate = GetIsolate(cc);
+  int iSize = params.size();
+  if (iSize < 2)
+    return FALSE;
+  CJS_Array aSource(isolate);
+  if (!params[0].ConvertToArray(aSource))
+    return FALSE;
+
+  CPWL_Color crSource;
+  ConvertArrayToPWLColor(aSource, crSource);
+
+  CFX_ByteString sDestSpace = params[1].ToCFXByteString();
+  int nColorType = COLORTYPE_TRANSPARENT;
+
+  if (sDestSpace == "T") {
+    nColorType = COLORTYPE_TRANSPARENT;
+  } else if (sDestSpace == "G") {
+    nColorType = COLORTYPE_GRAY;
+  } else if (sDestSpace == "RGB") {
+    nColorType = COLORTYPE_RGB;
+  } else if (sDestSpace == "CMYK") {
+    nColorType = COLORTYPE_CMYK;
+  }
+
+  CJS_Array aDest(isolate);
+  CPWL_Color crDest = crSource;
+  crDest.ConvertColorType(nColorType);
+  ConvertPWLColorToArray(crDest, aDest);
+  vRet = aDest;
+
+  return TRUE;
 }
 
-FX_BOOL color::equal(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	v8::Isolate* isolate = GetIsolate(cc);
-	if (params.size() < 2) return FALSE;
+FX_BOOL color::equal(IFXJS_Context* cc,
+                     const CJS_Parameters& params,
+                     CJS_Value& vRet,
+                     CFX_WideString& sError) {
+  v8::Isolate* isolate = GetIsolate(cc);
+  if (params.size() < 2)
+    return FALSE;
 
-	CJS_Array array1(isolate), array2(isolate);
+  CJS_Array array1(isolate), array2(isolate);
 
-	if (!params[0].ConvertToArray(array1)) return FALSE;
-	if (!params[1].ConvertToArray(array2)) return FALSE;
+  if (!params[0].ConvertToArray(array1))
+    return FALSE;
+  if (!params[1].ConvertToArray(array2))
+    return FALSE;
 
-	CPWL_Color color1;
-	CPWL_Color color2;
+  CPWL_Color color1;
+  CPWL_Color color2;
 
-	ConvertArrayToPWLColor(array1, color1);
-	ConvertArrayToPWLColor(array2, color2);
+  ConvertArrayToPWLColor(array1, color1);
+  ConvertArrayToPWLColor(array2, color2);
 
-	color1.ConvertColorType(color2.nColorType);
+  color1.ConvertColorType(color2.nColorType);
 
-	vRet = color1 == color2;
-	return TRUE;
+  vRet = color1 == color2;
+  return TRUE;
 }
-
diff --git a/fpdfsdk/src/javascript/console.cpp b/fpdfsdk/src/javascript/console.cpp
index ed9b1fbc56..cc64e1091b 100644
--- a/fpdfsdk/src/javascript/console.cpp
+++ b/fpdfsdk/src/javascript/console.cpp
@@ -22,45 +22,45 @@ BEGIN_JS_STATIC_PROP(CJS_Console)
 END_JS_STATIC_PROP()
 
 BEGIN_JS_STATIC_METHOD(CJS_Console)
-	JS_STATIC_METHOD_ENTRY(clear)
-	JS_STATIC_METHOD_ENTRY(hide)
-	JS_STATIC_METHOD_ENTRY(println)
-	JS_STATIC_METHOD_ENTRY(show)
+JS_STATIC_METHOD_ENTRY(clear)
+JS_STATIC_METHOD_ENTRY(hide)
+JS_STATIC_METHOD_ENTRY(println)
+JS_STATIC_METHOD_ENTRY(show)
 END_JS_STATIC_METHOD()
 
-IMPLEMENT_JS_CLASS(CJS_Console,console)
+IMPLEMENT_JS_CLASS(CJS_Console, console)
 
-console::console(CJS_Object* pJSObject): CJS_EmbedObj(pJSObject)
-{
-}
+console::console(CJS_Object* pJSObject) : CJS_EmbedObj(pJSObject) {}
 
-console::~console()
-{
-}
+console::~console() {}
 
-FX_BOOL console::clear(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	return TRUE;
+FX_BOOL console::clear(IFXJS_Context* cc,
+                       const CJS_Parameters& params,
+                       CJS_Value& vRet,
+                       CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL console::hide(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	return TRUE;
+FX_BOOL console::hide(IFXJS_Context* cc,
+                      const CJS_Parameters& params,
+                      CJS_Value& vRet,
+                      CFX_WideString& sError) {
+  return TRUE;
 }
 
-FX_BOOL console::println(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	if (params.size() < 1)
-	{
-		return FALSE;
-	}
-	return TRUE;
+FX_BOOL console::println(IFXJS_Context* cc,
+                         const CJS_Parameters& params,
+                         CJS_Value& vRet,
+                         CFX_WideString& sError) {
+  if (params.size() < 1) {
+    return FALSE;
+  }
+  return TRUE;
 }
 
-FX_BOOL console::show(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-	return TRUE;
+FX_BOOL console::show(IFXJS_Context* cc,
+                      const CJS_Parameters& params,
+                      CJS_Value& vRet,
+                      CFX_WideString& sError) {
+  return TRUE;
 }
-
-
-
diff --git a/fpdfsdk/src/javascript/event.cpp b/fpdfsdk/src/javascript/event.cpp
index f57b1fb607..4bcdcce3a0 100644
--- a/fpdfsdk/src/javascript/event.cpp
+++ b/fpdfsdk/src/javascript/event.cpp
@@ -21,359 +21,359 @@ BEGIN_JS_STATIC_CONST(CJS_Event)
 END_JS_STATIC_CONST()
 
 BEGIN_JS_STATIC_PROP(CJS_Event)
-	JS_STATIC_PROP_ENTRY(change)
-	JS_STATIC_PROP_ENTRY(changeEx)
-	JS_STATIC_PROP_ENTRY(commitKey)
-	JS_STATIC_PROP_ENTRY(fieldFull)
-	JS_STATIC_PROP_ENTRY(keyDown)
-	JS_STATIC_PROP_ENTRY(modifier)
-	JS_STATIC_PROP_ENTRY(name)
-	JS_STATIC_PROP_ENTRY(rc)
-	JS_STATIC_PROP_ENTRY(richChange)
-	JS_STATIC_PROP_ENTRY(richChangeEx)
-	JS_STATIC_PROP_ENTRY(richValue)
-	JS_STATIC_PROP_ENTRY(selEnd)
-	JS_STATIC_PROP_ENTRY(selStart)
-	JS_STATIC_PROP_ENTRY(shift)
-	JS_STATIC_PROP_ENTRY(source)
-	JS_STATIC_PROP_ENTRY(target)
-	JS_STATIC_PROP_ENTRY(targetName)
-	JS_STATIC_PROP_ENTRY(type)
-	JS_STATIC_PROP_ENTRY(value)
-	JS_STATIC_PROP_ENTRY(willCommit)
+JS_STATIC_PROP_ENTRY(change)
+JS_STATIC_PROP_ENTRY(changeEx)
+JS_STATIC_PROP_ENTRY(commitKey)
+JS_STATIC_PROP_ENTRY(fieldFull)
+JS_STATIC_PROP_ENTRY(keyDown)
+JS_STATIC_PROP_ENTRY(modifier)
+JS_STATIC_PROP_ENTRY(name)
+JS_STATIC_PROP_ENTRY(rc)
+JS_STATIC_PROP_ENTRY(richChange)
+JS_STATIC_PROP_ENTRY(richChangeEx)
+JS_STATIC_PROP_ENTRY(richValue)
+JS_STATIC_PROP_ENTRY(selEnd)
+JS_STATIC_PROP_ENTRY(selStart)
+JS_STATIC_PROP_ENTRY(shift)
+JS_STATIC_PROP_ENTRY(source)
+JS_STATIC_PROP_ENTRY(target)
+JS_STATIC_PROP_ENTRY(targetName)
+JS_STATIC_PROP_ENTRY(type)
+JS_STATIC_PROP_ENTRY(value)
+JS_STATIC_PROP_ENTRY(willCommit)
 END_JS_STATIC_PROP()
 
 BEGIN_JS_STATIC_METHOD(CJS_Event)
 END_JS_STATIC_METHOD()
 
-IMPLEMENT_JS_CLASS(CJS_Event,event)
+IMPLEMENT_JS_CLASS(CJS_Event, event)
 
-event::event(CJS_Object * pJsObject) : CJS_EmbedObj(pJsObject)
-{
-}
+event::event(CJS_Object* pJsObject) : CJS_EmbedObj(pJsObject) {}
 
-event::~event(void)
-{
-}
+event::~event(void) {}
 
-FX_BOOL event::change(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
-
-	CFX_WideString &wChange = pEvent->Change();
-	if (vp.IsSetting())
-	{
-		if (vp.GetType() == VT_string)
-			vp >> wChange;
-	}
-	else
-	{
-		vp << wChange;
-	}
-	return TRUE;
+FX_BOOL event::change(IFXJS_Context* cc,
+                      CJS_PropValue& vp,
+                      CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  CFX_WideString& wChange = pEvent->Change();
+  if (vp.IsSetting()) {
+    if (vp.GetType() == VT_string)
+      vp >> wChange;
+  } else {
+    vp << wChange;
+  }
+  return TRUE;
 }
 
-FX_BOOL event::changeEx(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (!vp.IsGetting())return FALSE;
+FX_BOOL event::changeEx(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
 
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
 
-	vp << pEvent->ChangeEx();
-	return TRUE;
+  vp << pEvent->ChangeEx();
+  return TRUE;
 }
 
-FX_BOOL event::commitKey(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (!vp.IsGetting())return FALSE;
+FX_BOOL event::commitKey(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
 
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
 
-	vp << pEvent->CommitKey();
-	return TRUE;
+  vp << pEvent->CommitKey();
+  return TRUE;
 }
 
-FX_BOOL event::fieldFull(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
-
-	if (!vp.IsGetting() && wcscmp((const wchar_t*)pEvent->Name(),L"Keystroke") != 0)
-		return FALSE;
-
-	if (pEvent->FieldFull())
-		vp << TRUE;
-	else
-		vp << FALSE;
-	return TRUE;
+FX_BOOL event::fieldFull(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (!vp.IsGetting() &&
+      wcscmp((const wchar_t*)pEvent->Name(), L"Keystroke") != 0)
+    return FALSE;
+
+  if (pEvent->FieldFull())
+    vp << TRUE;
+  else
+    vp << FALSE;
+  return TRUE;
 }
 
-FX_BOOL event::keyDown(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (!vp.IsGetting())return FALSE;
-
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
-
-	if (pEvent->KeyDown())
-		vp << TRUE;
-	else
-		vp << FALSE;
-	return TRUE;
+FX_BOOL event::keyDown(IFXJS_Context* cc,
+                       CJS_PropValue& vp,
+                       CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
+
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (pEvent->KeyDown())
+    vp << TRUE;
+  else
+    vp << FALSE;
+  return TRUE;
 }
 
-FX_BOOL event::modifier(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (!vp.IsGetting())return FALSE;
-
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
-
-	if (pEvent->Modifier())
-		vp << TRUE;
-	else
-		vp << FALSE;
-	return TRUE;
+FX_BOOL event::modifier(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
+
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (pEvent->Modifier())
+    vp << TRUE;
+  else
+    vp << FALSE;
+  return TRUE;
 }
 
-FX_BOOL event::name(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (!vp.IsGetting())return FALSE;
+FX_BOOL event::name(IFXJS_Context* cc,
+                    CJS_PropValue& vp,
+                    CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
 
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
 
-	vp << pEvent->Name();
-	return TRUE;
+  vp << pEvent->Name();
+  return TRUE;
 }
 
-FX_BOOL event::rc(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
-
-    FX_BOOL &bRc = pEvent->Rc();
-	if (vp.IsSetting())
-	{
-		vp>>bRc;
-	}
-	else
-	{
-		vp<<bRc;
-	}
-	return TRUE;
+FX_BOOL event::rc(IFXJS_Context* cc,
+                  CJS_PropValue& vp,
+                  CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  FX_BOOL& bRc = pEvent->Rc();
+  if (vp.IsSetting()) {
+    vp >> bRc;
+  } else {
+    vp << bRc;
+  }
+  return TRUE;
 }
 
-FX_BOOL event::richChange(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	return TRUE;
-	if (vp.IsSetting())
-	{
-	}
-	else
-	{
-		;
-	}
-	return TRUE;
+FX_BOOL event::richChange(IFXJS_Context* cc,
+                          CJS_PropValue& vp,
+                          CFX_WideString& sError) {
+  return TRUE;
+  if (vp.IsSetting()) {
+  } else {
+    ;
+  }
+  return TRUE;
 }
 
-FX_BOOL event::richChangeEx(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	return TRUE;
-	if (vp.IsSetting())
-	{
-	}
-	else
-	{
-		;
-	}
-	return TRUE;
+FX_BOOL event::richChangeEx(IFXJS_Context* cc,
+                            CJS_PropValue& vp,
+                            CFX_WideString& sError) {
+  return TRUE;
+  if (vp.IsSetting()) {
+  } else {
+    ;
+  }
+  return TRUE;
 }
 
-
-FX_BOOL event::richValue(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	return TRUE;
-	if (vp.IsSetting())
-	{
-	}
-	else
-	{
-		;
-	}
-	return TRUE;
+FX_BOOL event::richValue(IFXJS_Context* cc,
+                         CJS_PropValue& vp,
+                         CFX_WideString& sError) {
+  return TRUE;
+  if (vp.IsSetting()) {
+  } else {
+    ;
+  }
+  return TRUE;
 }
 
-FX_BOOL event::selEnd(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
-
-	if (wcscmp((const wchar_t*)pEvent->Name(),L"Keystroke") != 0)
-	{
-		return TRUE;
-	}
-
-	int &iSelEnd = pEvent->SelEnd();
-	if (vp.IsSetting())
-	{
-		vp >> iSelEnd;
-	}
-	else
-	{
-		vp << iSelEnd;
-	}
-	return TRUE;
+FX_BOOL event::selEnd(IFXJS_Context* cc,
+                      CJS_PropValue& vp,
+                      CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (wcscmp((const wchar_t*)pEvent->Name(), L"Keystroke") != 0) {
+    return TRUE;
+  }
+
+  int& iSelEnd = pEvent->SelEnd();
+  if (vp.IsSetting()) {
+    vp >> iSelEnd;
+  } else {
+    vp << iSelEnd;
+  }
+  return TRUE;
 }
 
-FX_BOOL event::selStart(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
-
-	if (wcscmp((const wchar_t*)pEvent->Name(),L"Keystroke") != 0)
-	{
-		return TRUE;
-	}
-	int &iSelStart = pEvent->SelStart();
-	if (vp.IsSetting())
-	{
-		vp >> iSelStart;
-	}
-	else
-	{
-		vp << iSelStart;
-	}
-	return TRUE;
+FX_BOOL event::selStart(IFXJS_Context* cc,
+                        CJS_PropValue& vp,
+                        CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (wcscmp((const wchar_t*)pEvent->Name(), L"Keystroke") != 0) {
+    return TRUE;
+  }
+  int& iSelStart = pEvent->SelStart();
+  if (vp.IsSetting()) {
+    vp >> iSelStart;
+  } else {
+    vp << iSelStart;
+  }
+  return TRUE;
 }
 
-FX_BOOL event::shift(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (!vp.IsGetting())return FALSE;
-
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
-
-	if (pEvent->Shift())
-		vp << TRUE;
-	else
-		vp << FALSE;
-	return TRUE;
+FX_BOOL event::shift(IFXJS_Context* cc,
+                     CJS_PropValue& vp,
+                     CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
+
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (pEvent->Shift())
+    vp << TRUE;
+  else
+    vp << FALSE;
+  return TRUE;
 }
 
-FX_BOOL event::source(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (!vp.IsGetting())return FALSE;
+FX_BOOL event::source(IFXJS_Context* cc,
+                      CJS_PropValue& vp,
+                      CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
 
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
 
-	vp << pEvent->Source()->GetJSObject();
-	return TRUE;
+  vp << pEvent->Source()->GetJSObject();
+  return TRUE;
 }
 
-FX_BOOL event::target(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (!vp.IsGetting())return FALSE;
+FX_BOOL event::target(IFXJS_Context* cc,
+                      CJS_PropValue& vp,
+                      CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
 
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
 
-	vp<<pEvent->Target_Field()->GetJSObject();
-	return TRUE;
+  vp << pEvent->Target_Field()->GetJSObject();
+  return TRUE;
 }
 
-FX_BOOL event::targetName(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (!vp.IsGetting())return FALSE;
+FX_BOOL event::targetName(IFXJS_Context* cc,
+                          CJS_PropValue& vp,
+                          CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
 
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
 
-	vp << pEvent->TargetName();
-	return TRUE;
+  vp << pEvent->TargetName();
+  return TRUE;
 }
 
-FX_BOOL event::type(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (!vp.IsGetting())return FALSE;
+FX_BOOL event::type(IFXJS_Context* cc,
+                    CJS_PropValue& vp,
+                    CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
 
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
 
-	vp << pEvent->Type();
-	return TRUE;
+  vp << pEvent->Type();
+  return TRUE;
 }
 
-FX_BOOL event::value(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
-
-	if (wcscmp((const wchar_t*)pEvent->Type(),L"Field") != 0)
-		return FALSE;
-	if(!pEvent->m_pValue)
-		return FALSE;
-	CFX_WideString & val = pEvent->Value();
-	if (vp.IsSetting())
-	{
-		vp >> val;
-	}
-	else
-	{
-		vp << val;
-	}
-	return TRUE;
+FX_BOOL event::value(IFXJS_Context* cc,
+                     CJS_PropValue& vp,
+                     CFX_WideString& sError) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (wcscmp((const wchar_t*)pEvent->Type(), L"Field") != 0)
+    return FALSE;
+  if (!pEvent->m_pValue)
+    return FALSE;
+  CFX_WideString& val = pEvent->Value();
+  if (vp.IsSetting()) {
+    vp >> val;
+  } else {
+    vp << val;
+  }
+  return TRUE;
 }
 
-FX_BOOL event::willCommit(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError)
-{
-	if (!vp.IsGetting())return FALSE;
-
-	CJS_Context* pContext = (CJS_Context*)cc;
-	ASSERT(pContext != NULL);
-	CJS_EventHandler* pEvent = pContext->GetEventHandler();
-	ASSERT(pEvent != NULL);
-
-	if (pEvent->WillCommit())
-		vp << TRUE;
-	else
-		vp << FALSE;
-	return TRUE;
+FX_BOOL event::willCommit(IFXJS_Context* cc,
+                          CJS_PropValue& vp,
+                          CFX_WideString& sError) {
+  if (!vp.IsGetting())
+    return FALSE;
+
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
+  CJS_EventHandler* pEvent = pContext->GetEventHandler();
+  ASSERT(pEvent != NULL);
+
+  if (pEvent->WillCommit())
+    vp << TRUE;
+  else
+    vp << FALSE;
+  return TRUE;
 }
-
diff --git a/fpdfsdk/src/javascript/global.cpp b/fpdfsdk/src/javascript/global.cpp
index 9733d811fa..c3bf837727 100644
--- a/fpdfsdk/src/javascript/global.cpp
+++ b/fpdfsdk/src/javascript/global.cpp
@@ -40,51 +40,46 @@ struct CHash<ACC, N, Ns...> {
 };
 
 extern const unsigned int JSCONST_nStringHash =
-  CHash<'s','t','r','i','n','g'>::value;
+    CHash<'s', 't', 'r', 'i', 'n', 'g'>::value;
 extern const unsigned int JSCONST_nNumberHash =
-  CHash<'n','u','m','b','e','r'>::value;
+    CHash<'n', 'u', 'm', 'b', 'e', 'r'>::value;
 extern const unsigned int JSCONST_nBoolHash =
-  CHash<'b','o','o','l','e','a','n'>::value;
-extern const unsigned int JSCONST_nDateHash =
-  CHash<'d','a','t','e'>::value;
+    CHash<'b', 'o', 'o', 'l', 'e', 'a', 'n'>::value;
+extern const unsigned int JSCONST_nDateHash = CHash<'d', 'a', 't', 'e'>::value;
 extern const unsigned int JSCONST_nObjectHash =
-  CHash<'o','b','j','e','c','t'>::value;
+    CHash<'o', 'b', 'j', 'e', 'c', 't'>::value;
 extern const unsigned int JSCONST_nFXobjHash =
-  CHash<'f','x','o','b','j'>::value;
-extern const unsigned int JSCONST_nNullHash =
-  CHash<'n','u','l','l'>::value;
+    CHash<'f', 'x', 'o', 'b', 'j'>::value;
+extern const unsigned int JSCONST_nNullHash = CHash<'n', 'u', 'l', 'l'>::value;
 extern const unsigned int JSCONST_nUndefHash =
-  CHash<'u','n','d','e','f','i','n','e','d'>::value;
+    CHash<'u', 'n', 'd', 'e', 'f', 'i', 'n', 'e', 'd'>::value;
 
 #ifdef _DEBUG
-class HashVerify
-{
-public:
+class HashVerify {
+ public:
   HashVerify();
 } g_hashVerify;
 
-HashVerify::HashVerify()
-{
+HashVerify::HashVerify() {
   ASSERT(JSCONST_nStringHash ==
-    JS_CalcHash(VALUE_NAME_STRING,wcslen(VALUE_NAME_STRING)));
+         JS_CalcHash(VALUE_NAME_STRING, wcslen(VALUE_NAME_STRING)));
   ASSERT(JSCONST_nNumberHash ==
-    JS_CalcHash(VALUE_NAME_NUMBER,wcslen(VALUE_NAME_NUMBER)));
+         JS_CalcHash(VALUE_NAME_NUMBER, wcslen(VALUE_NAME_NUMBER)));
   ASSERT(JSCONST_nBoolHash ==
-    JS_CalcHash(VALUE_NAME_BOOLEAN,wcslen(VALUE_NAME_BOOLEAN)));
+         JS_CalcHash(VALUE_NAME_BOOLEAN, wcslen(VALUE_NAME_BOOLEAN)));
   ASSERT(JSCONST_nDateHash ==
-    JS_CalcHash(VALUE_NAME_DATE,wcslen(VALUE_NAME_DATE)));
+         JS_CalcHash(VALUE_NAME_DATE, wcslen(VALUE_NAME_DATE)));
   ASSERT(JSCONST_nObjectHash ==
-    JS_CalcHash(VALUE_NAME_OBJECT,wcslen(VALUE_NAME_OBJECT)));
+         JS_CalcHash(VALUE_NAME_OBJECT, wcslen(VALUE_NAME_OBJECT)));
   ASSERT(JSCONST_nFXobjHash ==
-    JS_CalcHash(VALUE_NAME_FXOBJ,wcslen(VALUE_NAME_FXOBJ)));
+         JS_CalcHash(VALUE_NAME_FXOBJ, wcslen(VALUE_NAME_FXOBJ)));
   ASSERT(JSCONST_nNullHash ==
-    JS_CalcHash(VALUE_NAME_NULL,wcslen(VALUE_NAME_NULL)));
+         JS_CalcHash(VALUE_NAME_NULL, wcslen(VALUE_NAME_NULL)));
   ASSERT(JSCONST_nUndefHash ==
-    JS_CalcHash(VALUE_NAME_UNDEFINED,wcslen(VALUE_NAME_UNDEFINED)));
+         JS_CalcHash(VALUE_NAME_UNDEFINED, wcslen(VALUE_NAME_UNDEFINED)));
 }
 #endif
 
-
 BEGIN_JS_STATIC_CONST(CJS_Global)
 END_JS_STATIC_CONST()
 
@@ -92,500 +87,465 @@ BEGIN_JS_STATIC_PROP(CJS_Global)
 END_JS_STATIC_PROP()
 
 BEGIN_JS_STATIC_METHOD(CJS_Global)
-    JS_STATIC_METHOD_ENTRY(setPersistent)
+JS_STATIC_METHOD_ENTRY(setPersistent)
 END_JS_STATIC_METHOD()
 
 IMPLEMENT_SPECIAL_JS_CLASS(CJS_Global, global_alternate, global);
 
-FX_BOOL CJS_Global::InitInstance(IFXJS_Context* cc)
-{
-    CJS_Context* pContext = (CJS_Context*)cc;
-    ASSERT(pContext != NULL);
+FX_BOOL CJS_Global::InitInstance(IFXJS_Context* cc) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
 
-    global_alternate* pGlobal = (global_alternate*)GetEmbedObject();
-    ASSERT(pGlobal != NULL);
+  global_alternate* pGlobal = (global_alternate*)GetEmbedObject();
+  ASSERT(pGlobal != NULL);
 
-    pGlobal->Initial(pContext->GetReaderApp());
+  pGlobal->Initial(pContext->GetReaderApp());
 
-    return TRUE;
+  return TRUE;
 };
 
 global_alternate::global_alternate(CJS_Object* pJSObject)
-    : CJS_EmbedObj(pJSObject),
-    m_pApp(NULL)
-{
-}
+    : CJS_EmbedObj(pJSObject), m_pApp(NULL) {}
 
-global_alternate::~global_alternate(void)
-{
-	DestroyGlobalPersisitentVariables();
-	CPDFXFA_App::GetInstance()->GetRuntimeFactory()->ReleaseGlobalData();
+global_alternate::~global_alternate(void) {
+  DestroyGlobalPersisitentVariables();
+  CPDFXFA_App::GetInstance()->GetRuntimeFactory()->ReleaseGlobalData();
 }
 
-void global_alternate::Initial(CPDFDoc_Environment* pApp)
-{
-	m_pApp = pApp;
-	m_pGlobalData = CPDFXFA_App::GetInstance()->GetRuntimeFactory()->NewGlobalData(pApp);
-	UpdateGlobalPersistentVariables();
+void global_alternate::Initial(CPDFDoc_Environment* pApp) {
+  m_pApp = pApp;
+  m_pGlobalData =
+      CPDFXFA_App::GetInstance()->GetRuntimeFactory()->NewGlobalData(pApp);
+  UpdateGlobalPersistentVariables();
 }
 
-FX_BOOL global_alternate::QueryProperty(const FX_WCHAR* propname)
-{
-    return CFX_WideString(propname) != L"setPersistent";
+FX_BOOL global_alternate::QueryProperty(const FX_WCHAR* propname) {
+  return CFX_WideString(propname) != L"setPersistent";
 }
 
-FX_BOOL global_alternate::DelProperty(IFXJS_Context* cc, const FX_WCHAR* propname, CFX_WideString& sError)
-{
-    js_global_data* pData = NULL;
-    CFX_ByteString sPropName = CFX_ByteString::FromUnicode(propname);
+FX_BOOL global_alternate::DelProperty(IFXJS_Context* cc,
+                                      const FX_WCHAR* propname,
+                                      CFX_WideString& sError) {
+  js_global_data* pData = NULL;
+  CFX_ByteString sPropName = CFX_ByteString::FromUnicode(propname);
 
-    if (m_mapGlobal.Lookup(sPropName, (void*&)pData))
-    {
-        pData->bDeleted = TRUE;
-        return TRUE;
-    }
+  if (m_mapGlobal.Lookup(sPropName, (void*&)pData)) {
+    pData->bDeleted = TRUE;
+    return TRUE;
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL global_alternate::DoProperty(IFXJS_Context* cc, const FX_WCHAR* propname, CJS_PropValue& vp, CFX_WideString& sError)
-{
-    if (vp.IsSetting())
-    {
-        CFX_ByteString sPropName = CFX_ByteString::FromUnicode(propname);
-        switch (vp.GetType())
-        {
-        case VT_number:
-            {
-                double dData;
-                vp >> dData;
-                return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_NUMBER, dData, false, "", v8::Local<v8::Object>(), FALSE);
-            }
-        case VT_boolean:
-            {
-                bool bData;
-                vp >> bData;
-                return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_BOOLEAN, 0, bData, "", v8::Local<v8::Object>(), FALSE);
-            }
-        case VT_string:
-            {
-                CFX_ByteString sData;
-                vp >> sData;
-                return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_STRING, 0, false, sData, v8::Local<v8::Object>(), FALSE);
-            }
-        case VT_object:
-            {
-                JSObject pData;
-                vp >> pData;
-                return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_OBJECT, 0, false, "", pData, FALSE);
-            }
-        case VT_null:
-            {
-                return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_NULL, 0, false, "", v8::Local<v8::Object>(), FALSE);
-            }
-        case VT_undefined:
-            {
-                DelProperty(cc, propname, sError);
-                return TRUE;
-            }
-        default:
-            break;
-        }
+FX_BOOL global_alternate::DoProperty(IFXJS_Context* cc,
+                                     const FX_WCHAR* propname,
+                                     CJS_PropValue& vp,
+                                     CFX_WideString& sError) {
+  if (vp.IsSetting()) {
+    CFX_ByteString sPropName = CFX_ByteString::FromUnicode(propname);
+    switch (vp.GetType()) {
+      case VT_number: {
+        double dData;
+        vp >> dData;
+        return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_NUMBER, dData,
+                                  false, "", v8::Local<v8::Object>(), FALSE);
+      }
+      case VT_boolean: {
+        bool bData;
+        vp >> bData;
+        return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_BOOLEAN, 0,
+                                  bData, "", v8::Local<v8::Object>(), FALSE);
+      }
+      case VT_string: {
+        CFX_ByteString sData;
+        vp >> sData;
+        return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_STRING, 0,
+                                  false, sData, v8::Local<v8::Object>(), FALSE);
+      }
+      case VT_object: {
+        JSObject pData;
+        vp >> pData;
+        return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_OBJECT, 0,
+                                  false, "", pData, FALSE);
+      }
+      case VT_null: {
+        return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_NULL, 0, false,
+                                  "", v8::Local<v8::Object>(), FALSE);
+      }
+      case VT_undefined: {
+        DelProperty(cc, propname, sError);
+        return TRUE;
+      }
+      default:
+        break;
     }
-    else
-    {
-        void* pVoid = nullptr;
-        if (!m_mapGlobal.Lookup(CFX_ByteString::FromUnicode(propname), pVoid))
-        {
-            vp.SetNull();
-            return TRUE;
-        }
-        if (!pVoid)
-        {
-            vp.SetNull();
-            return TRUE;
-        }
-        js_global_data* pData = (js_global_data*)pVoid;
-        if (pData->bDeleted)
-            return TRUE;
-
-        switch (pData->nType)
-        {
-            case JS_GLOBALDATA_TYPE_NUMBER:
-                vp << pData->dData;
-                return TRUE;
-            case JS_GLOBALDATA_TYPE_BOOLEAN:
-                vp << pData->bData;
-                return TRUE;
-            case JS_GLOBALDATA_TYPE_STRING:
-                vp << pData->sData;
-                return TRUE;
-            case JS_GLOBALDATA_TYPE_OBJECT:
-                {
-                    v8::Local<v8::Object> obj = v8::Local<v8::Object>::New(vp.GetIsolate(),pData->pData);
-                    vp << obj;
-                    return TRUE;
-                }
-            case JS_GLOBALDATA_TYPE_NULL:
-                vp.SetNull();
-                return TRUE;
-            default:
-                break;
-        }
+  } else {
+    void* pVoid = nullptr;
+    if (!m_mapGlobal.Lookup(CFX_ByteString::FromUnicode(propname), pVoid)) {
+      vp.SetNull();
+      return TRUE;
     }
-    return FALSE;
-}
-
-FX_BOOL global_alternate::setPersistent(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    CJS_Context* pContext = static_cast<CJS_Context*>(cc);
-    if (params.size() != 2)
-    {
-        sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
-        return FALSE;
+    if (!pVoid) {
+      vp.SetNull();
+      return TRUE;
     }
+    js_global_data* pData = (js_global_data*)pVoid;
+    if (pData->bDeleted)
+      return TRUE;
 
-    CFX_ByteString sName = params[0].ToCFXByteString();
-
-    js_global_data* pData = NULL;
-    if (m_mapGlobal.Lookup(sName, (void*&)pData))
-    {
-        if (pData && !pData->bDeleted)
-        {
-            pData->bPersistent = params[1].ToBool();
-            return TRUE;
-        }
+    switch (pData->nType) {
+      case JS_GLOBALDATA_TYPE_NUMBER:
+        vp << pData->dData;
+        return TRUE;
+      case JS_GLOBALDATA_TYPE_BOOLEAN:
+        vp << pData->bData;
+        return TRUE;
+      case JS_GLOBALDATA_TYPE_STRING:
+        vp << pData->sData;
+        return TRUE;
+      case JS_GLOBALDATA_TYPE_OBJECT: {
+        v8::Local<v8::Object> obj =
+            v8::Local<v8::Object>::New(vp.GetIsolate(), pData->pData);
+        vp << obj;
+        return TRUE;
+      }
+      case JS_GLOBALDATA_TYPE_NULL:
+        vp.SetNull();
+        return TRUE;
+      default:
+        break;
     }
-
-    sError = JSGetStringFromID(pContext, IDS_STRING_JSNOGLOBAL);
-    return FALSE;
+  }
+  return FALSE;
 }
 
-void global_alternate::UpdateGlobalPersistentVariables()
-{
-    ASSERT(m_pGlobalData != NULL);
-
-    for (int i=0,sz=m_pGlobalData->GetSize(); i<sz; i++)
-    {
-        CJS_GlobalData_Element* pData = m_pGlobalData->GetAt(i);
-        ASSERT(pData != NULL);
-
-        switch (pData->data.nType)
-        {
-        case JS_GLOBALDATA_TYPE_NUMBER:
-            SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NUMBER, pData->data.dData, false, "", v8::Local<v8::Object>(), pData->bPersistent == 1);
-            JS_PutObjectNumber(NULL,(JSFXObject)(*m_pJSObject),
-                               pData->data.sKey.UTF8Decode().c_str(), pData->data.dData);
-            break;
-        case JS_GLOBALDATA_TYPE_BOOLEAN:
-            SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_BOOLEAN, 0, (bool)(pData->data.bData == 1), "", v8::Local<v8::Object>(), pData->bPersistent == 1);
-            JS_PutObjectBoolean(NULL,(JSFXObject)(*m_pJSObject),
-                                pData->data.sKey.UTF8Decode().c_str(), (bool)(pData->data.bData == 1));
-            break;
-        case JS_GLOBALDATA_TYPE_STRING:
-            SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_STRING, 0, false, pData->data.sData, v8::Local<v8::Object>(), pData->bPersistent == 1);
-            JS_PutObjectString(NULL, (JSFXObject)(*m_pJSObject),
-                               pData->data.sKey.UTF8Decode().c_str(),
-                               pData->data.sData.UTF8Decode().c_str());
-            break;
-        case JS_GLOBALDATA_TYPE_OBJECT:
-            {
-                IJS_Runtime* pRuntime = JS_GetRuntime((JSFXObject)(*m_pJSObject));
-                v8::Local<v8::Object> pObj = JS_NewFxDynamicObj(pRuntime, NULL, -1);
+FX_BOOL global_alternate::setPersistent(IFXJS_Context* cc,
+                                        const CJS_Parameters& params,
+                                        CJS_Value& vRet,
+                                        CFX_WideString& sError) {
+  CJS_Context* pContext = static_cast<CJS_Context*>(cc);
+  if (params.size() != 2) {
+    sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
+    return FALSE;
+  }
 
-                PutObjectProperty(pObj, &pData->data);
+  CFX_ByteString sName = params[0].ToCFXByteString();
 
-                SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_OBJECT, 0, false, "",
-                    (JSObject)pObj, pData->bPersistent == 1);
-                JS_PutObjectObject(NULL,(JSFXObject)(*m_pJSObject),
-                                   pData->data.sKey.UTF8Decode().c_str(), (JSObject)pObj);
-            }
-            break;
-        case JS_GLOBALDATA_TYPE_NULL:
-            SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NULL, 0, false, "", v8::Local<v8::Object>(), pData->bPersistent == 1);
-            JS_PutObjectNull(NULL,(JSFXObject)(*m_pJSObject),
-                             pData->data.sKey.UTF8Decode().c_str());
-            break;
-        }
+  js_global_data* pData = NULL;
+  if (m_mapGlobal.Lookup(sName, (void*&)pData)) {
+    if (pData && !pData->bDeleted) {
+      pData->bPersistent = params[1].ToBool();
+      return TRUE;
     }
-}
+  }
 
-void global_alternate::CommitGlobalPersisitentVariables()
-{
-    ASSERT(m_pGlobalData != NULL);
-
-    FX_POSITION  pos = m_mapGlobal.GetStartPosition();
-    while (pos)
-    {
-        CFX_ByteString name;
-        js_global_data* pData = NULL;
-        m_mapGlobal.GetNextAssoc(pos, name, (void*&)pData);
-
-        if (pData)
-        {
-            if (pData->bDeleted)
-            {
-                m_pGlobalData->DeleteGlobalVariable(name);
-            }
-            else
-            {
-                switch (pData->nType)
-                {
-                case JS_GLOBALDATA_TYPE_NUMBER:
-                    m_pGlobalData->SetGlobalVariableNumber(name, pData->dData);
-                    m_pGlobalData->SetGlobalVariablePersistent(name, pData->bPersistent);
-                    break;
-                case JS_GLOBALDATA_TYPE_BOOLEAN:
-                    m_pGlobalData->SetGlobalVariableBoolean(name, pData->bData);
-                    m_pGlobalData->SetGlobalVariablePersistent(name, pData->bPersistent);
-                    break;
-                case JS_GLOBALDATA_TYPE_STRING:
-                    m_pGlobalData->SetGlobalVariableString(name, pData->sData);
-                    m_pGlobalData->SetGlobalVariablePersistent(name, pData->bPersistent);
-                    break;
-                case JS_GLOBALDATA_TYPE_OBJECT:
-                    //if (pData->pData)
-                    {
-                        CJS_GlobalVariableArray array;
-                        v8::Local<v8::Object> obj = v8::Local<v8::Object>::New(GetJSObject()->GetIsolate(),pData->pData);
-                        ObjectToArray(obj, array);
-                        m_pGlobalData->SetGlobalVariableObject(name, array);
-                        m_pGlobalData->SetGlobalVariablePersistent(name, pData->bPersistent);
-                    }
-                    break;
-                case JS_GLOBALDATA_TYPE_NULL:
-                    m_pGlobalData->SetGlobalVariableNull(name);
-                    m_pGlobalData->SetGlobalVariablePersistent(name, pData->bPersistent);
-                    break;
-                }
-            }
-        }
-    }
+  sError = JSGetStringFromID(pContext, IDS_STRING_JSNOGLOBAL);
+  return FALSE;
 }
 
-void global_alternate::ObjectToArray(v8::Local<v8::Object> pObj, CJS_GlobalVariableArray& array)
-{
-    v8::Local<v8::Context> context = pObj->CreationContext();
-    v8::Isolate* isolate = context->GetIsolate();
-    v8::Local<v8::Array> pKeyList = JS_GetObjectElementNames(isolate, pObj);
-    int nObjElements = pKeyList->Length();
+void global_alternate::UpdateGlobalPersistentVariables() {
+  ASSERT(m_pGlobalData != NULL);
 
-    for (int i=0; i<nObjElements; i++)
-    {
-
-        CFX_WideString ws = JS_ToString(isolate, JS_GetArrayElement(isolate, pKeyList, i));
-        CFX_ByteString sKey = ws.UTF8Encode();
+  for (int i = 0, sz = m_pGlobalData->GetSize(); i < sz; i++) {
+    CJS_GlobalData_Element* pData = m_pGlobalData->GetAt(i);
+    ASSERT(pData != NULL);
 
-        v8::Local<v8::Value> v = JS_GetObjectElement(isolate, pObj, ws.c_str());
-        FXJSVALUETYPE vt = GET_VALUE_TYPE(v);
-        switch (vt)
-        {
-        case VT_number:
-            {
-                CJS_KeyValue* pObjElement = new CJS_KeyValue;
-                pObjElement->nType = JS_GLOBALDATA_TYPE_NUMBER;
-                pObjElement->sKey = sKey;
-                pObjElement->dData = JS_ToNumber(isolate, v);
-                array.Add(pObjElement);
-            }
-            break;
-        case VT_boolean:
-            {
-                CJS_KeyValue* pObjElement = new CJS_KeyValue;
-                pObjElement->nType = JS_GLOBALDATA_TYPE_BOOLEAN;
-                pObjElement->sKey = sKey;
-                pObjElement->dData = JS_ToBoolean(isolate, v);
-                array.Add(pObjElement);
-            }
-            break;
-        case VT_string:
-            {
-                CFX_ByteString sValue = CJS_Value(isolate, v, VT_string).ToCFXByteString();
-                CJS_KeyValue* pObjElement = new CJS_KeyValue;
-                pObjElement->nType = JS_GLOBALDATA_TYPE_STRING;
-                pObjElement->sKey = sKey;
-                pObjElement->sData = sValue;
-                array.Add(pObjElement);
-            }
-            break;
-        case VT_object:
-            {
-                CJS_KeyValue* pObjElement = new CJS_KeyValue;
-                pObjElement->nType = JS_GLOBALDATA_TYPE_OBJECT;
-                pObjElement->sKey = sKey;
-                ObjectToArray(JS_ToObject(isolate, v), pObjElement->objData);
-                array.Add(pObjElement);
-            }
-            break;
-        case VT_null:
-            {
-                CJS_KeyValue* pObjElement = new CJS_KeyValue;
-                pObjElement->nType = JS_GLOBALDATA_TYPE_NULL;
-                pObjElement->sKey = sKey;
-                array.Add(pObjElement);
-            }
-            break;
-        default:
-            break;
-        }
+    switch (pData->data.nType) {
+      case JS_GLOBALDATA_TYPE_NUMBER:
+        SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NUMBER,
+                           pData->data.dData, false, "",
+                           v8::Local<v8::Object>(), pData->bPersistent == 1);
+        JS_PutObjectNumber(NULL, (JSFXObject)(*m_pJSObject),
+                           pData->data.sKey.UTF8Decode().c_str(),
+                           pData->data.dData);
+        break;
+      case JS_GLOBALDATA_TYPE_BOOLEAN:
+        SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_BOOLEAN, 0,
+                           (bool)(pData->data.bData == 1), "",
+                           v8::Local<v8::Object>(), pData->bPersistent == 1);
+        JS_PutObjectBoolean(NULL, (JSFXObject)(*m_pJSObject),
+                            pData->data.sKey.UTF8Decode().c_str(),
+                            (bool)(pData->data.bData == 1));
+        break;
+      case JS_GLOBALDATA_TYPE_STRING:
+        SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_STRING, 0,
+                           false, pData->data.sData, v8::Local<v8::Object>(),
+                           pData->bPersistent == 1);
+        JS_PutObjectString(NULL, (JSFXObject)(*m_pJSObject),
+                           pData->data.sKey.UTF8Decode().c_str(),
+                           pData->data.sData.UTF8Decode().c_str());
+        break;
+      case JS_GLOBALDATA_TYPE_OBJECT: {
+        IJS_Runtime* pRuntime = JS_GetRuntime((JSFXObject)(*m_pJSObject));
+        v8::Local<v8::Object> pObj = JS_NewFxDynamicObj(pRuntime, NULL, -1);
+
+        PutObjectProperty(pObj, &pData->data);
+
+        SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_OBJECT, 0,
+                           false, "", (JSObject)pObj, pData->bPersistent == 1);
+        JS_PutObjectObject(NULL, (JSFXObject)(*m_pJSObject),
+                           pData->data.sKey.UTF8Decode().c_str(),
+                           (JSObject)pObj);
+      } break;
+      case JS_GLOBALDATA_TYPE_NULL:
+        SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NULL, 0, false,
+                           "", v8::Local<v8::Object>(),
+                           pData->bPersistent == 1);
+        JS_PutObjectNull(NULL, (JSFXObject)(*m_pJSObject),
+                         pData->data.sKey.UTF8Decode().c_str());
+        break;
     }
+  }
 }
 
-void global_alternate::PutObjectProperty(v8::Local<v8::Object> pObj, CJS_KeyValue* pData)
-{
-    ASSERT(pData != NULL);
-
-    for (int i=0,sz=pData->objData.Count(); i<sz; i++)
-    {
-        CJS_KeyValue* pObjData = pData->objData.GetAt(i);
-        ASSERT(pObjData != NULL);
+void global_alternate::CommitGlobalPersisitentVariables() {
+  ASSERT(m_pGlobalData != NULL);
 
-        switch (pObjData->nType)
-        {
-        case JS_GLOBALDATA_TYPE_NUMBER:
-            JS_PutObjectNumber(NULL,(JSObject)pObj, pObjData->sKey.UTF8Decode().c_str(), pObjData->dData);
+  FX_POSITION pos = m_mapGlobal.GetStartPosition();
+  while (pos) {
+    CFX_ByteString name;
+    js_global_data* pData = NULL;
+    m_mapGlobal.GetNextAssoc(pos, name, (void*&)pData);
+
+    if (pData) {
+      if (pData->bDeleted) {
+        m_pGlobalData->DeleteGlobalVariable(name);
+      } else {
+        switch (pData->nType) {
+          case JS_GLOBALDATA_TYPE_NUMBER:
+            m_pGlobalData->SetGlobalVariableNumber(name, pData->dData);
+            m_pGlobalData->SetGlobalVariablePersistent(name,
+                                                       pData->bPersistent);
             break;
-        case JS_GLOBALDATA_TYPE_BOOLEAN:
-            JS_PutObjectBoolean(NULL,(JSObject)pObj, pObjData->sKey.UTF8Decode().c_str(), (bool)(pObjData->bData == 1));
+          case JS_GLOBALDATA_TYPE_BOOLEAN:
+            m_pGlobalData->SetGlobalVariableBoolean(name, pData->bData);
+            m_pGlobalData->SetGlobalVariablePersistent(name,
+                                                       pData->bPersistent);
             break;
-        case JS_GLOBALDATA_TYPE_STRING:
-            JS_PutObjectString(NULL,(JSObject)pObj, pObjData->sKey.UTF8Decode().c_str(), pObjData->sData.UTF8Decode().c_str());
+          case JS_GLOBALDATA_TYPE_STRING:
+            m_pGlobalData->SetGlobalVariableString(name, pData->sData);
+            m_pGlobalData->SetGlobalVariablePersistent(name,
+                                                       pData->bPersistent);
             break;
-        case JS_GLOBALDATA_TYPE_OBJECT:
+          case JS_GLOBALDATA_TYPE_OBJECT:
+            // if (pData->pData)
             {
-                IJS_Runtime* pRuntime = JS_GetRuntime((JSFXObject)(*m_pJSObject));
-                v8::Local<v8::Object> pNewObj = JS_NewFxDynamicObj(pRuntime, NULL, -1);
-                PutObjectProperty(pNewObj, pObjData);
-                JS_PutObjectObject(NULL, (JSObject)pObj, pObjData->sKey.UTF8Decode().c_str(), (JSObject)pNewObj);
+              CJS_GlobalVariableArray array;
+              v8::Local<v8::Object> obj = v8::Local<v8::Object>::New(
+                  GetJSObject()->GetIsolate(), pData->pData);
+              ObjectToArray(obj, array);
+              m_pGlobalData->SetGlobalVariableObject(name, array);
+              m_pGlobalData->SetGlobalVariablePersistent(name,
+                                                         pData->bPersistent);
             }
             break;
-        case JS_GLOBALDATA_TYPE_NULL:
-            JS_PutObjectNull(NULL,(JSObject)pObj, pObjData->sKey.UTF8Decode().c_str());
+          case JS_GLOBALDATA_TYPE_NULL:
+            m_pGlobalData->SetGlobalVariableNull(name);
+            m_pGlobalData->SetGlobalVariablePersistent(name,
+                                                       pData->bPersistent);
             break;
         }
+      }
     }
+  }
 }
 
-void global_alternate::DestroyGlobalPersisitentVariables()
-{
-    FX_POSITION  pos = m_mapGlobal.GetStartPosition();
-    while (pos)
-    {
-        CFX_ByteString name;
-        js_global_data* pData = NULL;
-        m_mapGlobal.GetNextAssoc(pos, name, (void*&)pData);
-        delete pData;
+void global_alternate::ObjectToArray(v8::Local<v8::Object> pObj,
+                                     CJS_GlobalVariableArray& array) {
+  v8::Local<v8::Context> context = pObj->CreationContext();
+  v8::Isolate* isolate = context->GetIsolate();
+  v8::Local<v8::Array> pKeyList = JS_GetObjectElementNames(isolate, pObj);
+  int nObjElements = pKeyList->Length();
+
+  for (int i = 0; i < nObjElements; i++) {
+    CFX_WideString ws =
+        JS_ToString(isolate, JS_GetArrayElement(isolate, pKeyList, i));
+    CFX_ByteString sKey = ws.UTF8Encode();
+
+    v8::Local<v8::Value> v = JS_GetObjectElement(isolate, pObj, ws.c_str());
+    FXJSVALUETYPE vt = GET_VALUE_TYPE(v);
+    switch (vt) {
+      case VT_number: {
+        CJS_KeyValue* pObjElement = new CJS_KeyValue;
+        pObjElement->nType = JS_GLOBALDATA_TYPE_NUMBER;
+        pObjElement->sKey = sKey;
+        pObjElement->dData = JS_ToNumber(isolate, v);
+        array.Add(pObjElement);
+      } break;
+      case VT_boolean: {
+        CJS_KeyValue* pObjElement = new CJS_KeyValue;
+        pObjElement->nType = JS_GLOBALDATA_TYPE_BOOLEAN;
+        pObjElement->sKey = sKey;
+        pObjElement->dData = JS_ToBoolean(isolate, v);
+        array.Add(pObjElement);
+      } break;
+      case VT_string: {
+        CFX_ByteString sValue =
+            CJS_Value(isolate, v, VT_string).ToCFXByteString();
+        CJS_KeyValue* pObjElement = new CJS_KeyValue;
+        pObjElement->nType = JS_GLOBALDATA_TYPE_STRING;
+        pObjElement->sKey = sKey;
+        pObjElement->sData = sValue;
+        array.Add(pObjElement);
+      } break;
+      case VT_object: {
+        CJS_KeyValue* pObjElement = new CJS_KeyValue;
+        pObjElement->nType = JS_GLOBALDATA_TYPE_OBJECT;
+        pObjElement->sKey = sKey;
+        ObjectToArray(JS_ToObject(isolate, v), pObjElement->objData);
+        array.Add(pObjElement);
+      } break;
+      case VT_null: {
+        CJS_KeyValue* pObjElement = new CJS_KeyValue;
+        pObjElement->nType = JS_GLOBALDATA_TYPE_NULL;
+        pObjElement->sKey = sKey;
+        array.Add(pObjElement);
+      } break;
+      default:
+        break;
     }
-
-    m_mapGlobal.RemoveAll();
+  }
 }
 
+void global_alternate::PutObjectProperty(v8::Local<v8::Object> pObj,
+                                         CJS_KeyValue* pData) {
+  ASSERT(pData != NULL);
 
-FX_BOOL global_alternate::SetGlobalVariables(const FX_CHAR* propname, int nType,
-                double dData, bool bData, const CFX_ByteString& sData, JSObject pData, bool bDefaultPersistent)
-{
-    if (propname == NULL) return FALSE;
+  for (int i = 0, sz = pData->objData.Count(); i < sz; i++) {
+    CJS_KeyValue* pObjData = pData->objData.GetAt(i);
+    ASSERT(pObjData != NULL);
 
-    js_global_data* pTemp = NULL;
-    m_mapGlobal.Lookup(propname, (void*&)pTemp);
+    switch (pObjData->nType) {
+      case JS_GLOBALDATA_TYPE_NUMBER:
+        JS_PutObjectNumber(NULL, (JSObject)pObj,
+                           pObjData->sKey.UTF8Decode().c_str(),
+                           pObjData->dData);
+        break;
+      case JS_GLOBALDATA_TYPE_BOOLEAN:
+        JS_PutObjectBoolean(NULL, (JSObject)pObj,
+                            pObjData->sKey.UTF8Decode().c_str(),
+                            (bool)(pObjData->bData == 1));
+        break;
+      case JS_GLOBALDATA_TYPE_STRING:
+        JS_PutObjectString(NULL, (JSObject)pObj,
+                           pObjData->sKey.UTF8Decode().c_str(),
+                           pObjData->sData.UTF8Decode().c_str());
+        break;
+      case JS_GLOBALDATA_TYPE_OBJECT: {
+        IJS_Runtime* pRuntime = JS_GetRuntime((JSFXObject)(*m_pJSObject));
+        v8::Local<v8::Object> pNewObj = JS_NewFxDynamicObj(pRuntime, NULL, -1);
+        PutObjectProperty(pNewObj, pObjData);
+        JS_PutObjectObject(NULL, (JSObject)pObj,
+                           pObjData->sKey.UTF8Decode().c_str(),
+                           (JSObject)pNewObj);
+      } break;
+      case JS_GLOBALDATA_TYPE_NULL:
+        JS_PutObjectNull(NULL, (JSObject)pObj,
+                         pObjData->sKey.UTF8Decode().c_str());
+        break;
+    }
+  }
+}
 
-    if (pTemp)
-    {
-        if (pTemp->bDeleted || pTemp->nType != nType)
-        {
-            pTemp->dData = 0;
-            pTemp->bData = 0;
-            pTemp->sData = "";
-            pTemp->nType = nType;
-        }
+void global_alternate::DestroyGlobalPersisitentVariables() {
+  FX_POSITION pos = m_mapGlobal.GetStartPosition();
+  while (pos) {
+    CFX_ByteString name;
+    js_global_data* pData = NULL;
+    m_mapGlobal.GetNextAssoc(pos, name, (void*&)pData);
+    delete pData;
+  }
 
-        pTemp->bDeleted = FALSE;
+  m_mapGlobal.RemoveAll();
+}
 
-        switch (nType)
-        {
-        case JS_GLOBALDATA_TYPE_NUMBER:
-            {
-                pTemp->dData = dData;
-            }
-            break;
-        case JS_GLOBALDATA_TYPE_BOOLEAN:
-            {
-                pTemp->bData = bData;
-            }
-            break;
-        case JS_GLOBALDATA_TYPE_STRING:
-            {
-                pTemp->sData = sData;
-            }
-            break;
-        case JS_GLOBALDATA_TYPE_OBJECT:
-            {
-                pTemp->pData.Reset(JS_GetRuntime(pData), pData);
-            }
-            break;
-        case JS_GLOBALDATA_TYPE_NULL:
-            break;
-        default:
-            return FALSE;
-        }
+FX_BOOL global_alternate::SetGlobalVariables(const FX_CHAR* propname,
+                                             int nType,
+                                             double dData,
+                                             bool bData,
+                                             const CFX_ByteString& sData,
+                                             JSObject pData,
+                                             bool bDefaultPersistent) {
+  if (propname == NULL)
+    return FALSE;
 
-        return TRUE;
-    }
+  js_global_data* pTemp = NULL;
+  m_mapGlobal.Lookup(propname, (void*&)pTemp);
 
-    js_global_data* pNewData = NULL;
+  if (pTemp) {
+    if (pTemp->bDeleted || pTemp->nType != nType) {
+      pTemp->dData = 0;
+      pTemp->bData = 0;
+      pTemp->sData = "";
+      pTemp->nType = nType;
+    }
 
-    switch (nType)
-    {
-    case JS_GLOBALDATA_TYPE_NUMBER:
-        {
-            pNewData = new js_global_data;
-            pNewData->nType = JS_GLOBALDATA_TYPE_NUMBER;
-            pNewData->dData = dData;
-            pNewData->bPersistent = bDefaultPersistent;
-        }
-        break;
-    case JS_GLOBALDATA_TYPE_BOOLEAN:
-        {
-            pNewData = new js_global_data;
-            pNewData->nType = JS_GLOBALDATA_TYPE_BOOLEAN;
-            pNewData->bData = bData;
-            pNewData->bPersistent = bDefaultPersistent;
-        }
-        break;
-    case JS_GLOBALDATA_TYPE_STRING:
-        {
-            pNewData = new js_global_data;
-            pNewData->nType = JS_GLOBALDATA_TYPE_STRING;
-            pNewData->sData = sData;
-            pNewData->bPersistent = bDefaultPersistent;
-        }
-        break;
-    case JS_GLOBALDATA_TYPE_OBJECT:
-        {
-            pNewData = new js_global_data;
-            pNewData->nType = JS_GLOBALDATA_TYPE_OBJECT;
-            pNewData->pData.Reset(JS_GetRuntime(pData), pData);
-            pNewData->bPersistent = bDefaultPersistent;
-        }
-        break;
-    case JS_GLOBALDATA_TYPE_NULL:
-        {
-            pNewData = new js_global_data;
-            pNewData->nType = JS_GLOBALDATA_TYPE_NULL;
-            pNewData->bPersistent = bDefaultPersistent;
-        }
+    pTemp->bDeleted = FALSE;
+
+    switch (nType) {
+      case JS_GLOBALDATA_TYPE_NUMBER: {
+        pTemp->dData = dData;
+      } break;
+      case JS_GLOBALDATA_TYPE_BOOLEAN: {
+        pTemp->bData = bData;
+      } break;
+      case JS_GLOBALDATA_TYPE_STRING: {
+        pTemp->sData = sData;
+      } break;
+      case JS_GLOBALDATA_TYPE_OBJECT: {
+        pTemp->pData.Reset(JS_GetRuntime(pData), pData);
+      } break;
+      case JS_GLOBALDATA_TYPE_NULL:
         break;
-    default:
+      default:
         return FALSE;
     }
 
-    m_mapGlobal.SetAt(propname, (void*)pNewData);
-
     return TRUE;
+  }
+
+  js_global_data* pNewData = NULL;
+
+  switch (nType) {
+    case JS_GLOBALDATA_TYPE_NUMBER: {
+      pNewData = new js_global_data;
+      pNewData->nType = JS_GLOBALDATA_TYPE_NUMBER;
+      pNewData->dData = dData;
+      pNewData->bPersistent = bDefaultPersistent;
+    } break;
+    case JS_GLOBALDATA_TYPE_BOOLEAN: {
+      pNewData = new js_global_data;
+      pNewData->nType = JS_GLOBALDATA_TYPE_BOOLEAN;
+      pNewData->bData = bData;
+      pNewData->bPersistent = bDefaultPersistent;
+    } break;
+    case JS_GLOBALDATA_TYPE_STRING: {
+      pNewData = new js_global_data;
+      pNewData->nType = JS_GLOBALDATA_TYPE_STRING;
+      pNewData->sData = sData;
+      pNewData->bPersistent = bDefaultPersistent;
+    } break;
+    case JS_GLOBALDATA_TYPE_OBJECT: {
+      pNewData = new js_global_data;
+      pNewData->nType = JS_GLOBALDATA_TYPE_OBJECT;
+      pNewData->pData.Reset(JS_GetRuntime(pData), pData);
+      pNewData->bPersistent = bDefaultPersistent;
+    } break;
+    case JS_GLOBALDATA_TYPE_NULL: {
+      pNewData = new js_global_data;
+      pNewData->nType = JS_GLOBALDATA_TYPE_NULL;
+      pNewData->bPersistent = bDefaultPersistent;
+    } break;
+    default:
+      return FALSE;
+  }
+
+  m_mapGlobal.SetAt(propname, (void*)pNewData);
+
+  return TRUE;
 }
 
-FXJSVALUETYPE GET_VALUE_TYPE(v8::Local<v8::Value> p)
-{
+FXJSVALUETYPE GET_VALUE_TYPE(v8::Local<v8::Value> p) {
   const unsigned int nHash = JS_CalcHash(JS_GetTypeof(p));
 
   if (nHash == JSCONST_nUndefHash)
diff --git a/fpdfsdk/src/javascript/report.cpp b/fpdfsdk/src/javascript/report.cpp
index 1478feb1fa..732ae6d20e 100644
--- a/fpdfsdk/src/javascript/report.cpp
+++ b/fpdfsdk/src/javascript/report.cpp
@@ -20,30 +20,28 @@ BEGIN_JS_STATIC_PROP(CJS_Report)
 END_JS_STATIC_PROP()
 
 BEGIN_JS_STATIC_METHOD(CJS_Report)
-	JS_STATIC_METHOD_ENTRY(save)
-	JS_STATIC_METHOD_ENTRY(writeText)
+JS_STATIC_METHOD_ENTRY(save)
+JS_STATIC_METHOD_ENTRY(writeText)
 END_JS_STATIC_METHOD()
 
 IMPLEMENT_JS_CLASS(CJS_Report, Report)
 
-Report::Report(CJS_Object* pJSObject) : CJS_EmbedObj(pJSObject)
-{
+Report::Report(CJS_Object* pJSObject) : CJS_EmbedObj(pJSObject) {}
 
-}
-
-Report::~Report()
-{
-
-}
+Report::~Report() {}
 
-FX_BOOL Report::writeText(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL Report::writeText(IFXJS_Context* cc,
+                          const CJS_Parameters& params,
+                          CJS_Value& vRet,
+                          CFX_WideString& sError) {
   // Unsafe, not supported.
   return TRUE;
 }
 
-FX_BOOL Report::save(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
+FX_BOOL Report::save(IFXJS_Context* cc,
+                     const CJS_Parameters& params,
+                     CJS_Value& vRet,
+                     CFX_WideString& sError) {
   // Unsafe, not supported.
   return TRUE;
 }
diff --git a/fpdfsdk/src/javascript/resource.cpp b/fpdfsdk/src/javascript/resource.cpp
index 4375da3ff7..5b6bd48703 100644
--- a/fpdfsdk/src/javascript/resource.cpp
+++ b/fpdfsdk/src/javascript/resource.cpp
@@ -6,61 +6,59 @@
 
 #include "../../include/javascript/resource.h"
 
-CFX_WideString JSGetStringFromID(CJS_Context* pContext, FX_UINT id)
-{
-    switch (id)
-    {
+CFX_WideString JSGetStringFromID(CJS_Context* pContext, FX_UINT id) {
+  switch (id) {
     case IDS_STRING_JSALERT:
-        return L"Alert";
+      return L"Alert";
     case IDS_STRING_JSPARAMERROR:
-        return L"Incorrect number of parameters passed to function.";
+      return L"Incorrect number of parameters passed to function.";
     case IDS_STRING_JSAFNUMBER_KEYSTROKE:
-        return L"The input value is invalid.";
+      return L"The input value is invalid.";
     case IDS_STRING_JSPARAM_TOOLONG:
-        return L"The input value is too long.";
+      return L"The input value is too long.";
     case IDS_STRING_JSPARSEDATE:
-        return L"The input value can't be parsed as a valid date/time (%s).";
+      return L"The input value can't be parsed as a valid date/time (%s).";
     case IDS_STRING_JSRANGE1:
-        return L"The input value must be greater than or equal to %s"
-               L" and less than or equal to %s.";
+      return L"The input value must be greater than or equal to %s"
+             L" and less than or equal to %s.";
     case IDS_STRING_JSRANGE2:
-        return L"The input value must be greater than or equal to %s.";
+      return L"The input value must be greater than or equal to %s.";
     case IDS_STRING_JSRANGE3:
-        return L"The input value must be less than or equal to %s.";
+      return L"The input value must be less than or equal to %s.";
     case IDS_STRING_NOTSUPPORT:
-        return L"Operation not supported.";
+      return L"Operation not supported.";
     case IDS_STRING_JSBUSY:
-        return L"System is busy.";
+      return L"System is busy.";
     case IDS_STRING_JSEVENT:
-        return L"Duplicate formfield event found.";
+      return L"Duplicate formfield event found.";
     case IDS_STRING_RUN:
-        return L"Script ran successfully.";
+      return L"Script ran successfully.";
     case IDS_STRING_JSPRINT1:
-        return L"The second parameter can't be converted to a Date.";
+      return L"The second parameter can't be converted to a Date.";
     case IDS_STRING_JSPRINT2:
-        return L"The second parameter is an invalid Date!";
+      return L"The second parameter is an invalid Date!";
     case IDS_STRING_JSNOGLOBAL:
-        return L"Global value not found.";
+      return L"Global value not found.";
     case IDS_STRING_JSREADONLY:
-        return L"Cannot assign to readonly property.";
+      return L"Cannot assign to readonly property.";
     case IDS_STRING_JSTYPEERROR:
-        return L"Incorrect parameter type.";
+      return L"Incorrect parameter type.";
     case IDS_STRING_JSVALUEERROR:
-        return L"Incorrect parameter value.";
+      return L"Incorrect parameter value.";
     default:
-        return L"";
-    }
+      return L"";
+  }
 }
 
 CFX_WideString JSFormatErrorString(const char* class_name,
                                    const char* property_name,
                                    const CFX_WideString& details) {
-    CFX_WideString result = CFX_WideString::FromLocal(class_name);
-    if (property_name) {
-        result += L".";
-        result += CFX_WideString::FromLocal(property_name);
-    }
-    result += L": ";
-    result += details;
-    return result;
+  CFX_WideString result = CFX_WideString::FromLocal(class_name);
+  if (property_name) {
+    result += L".";
+    result += CFX_WideString::FromLocal(property_name);
+  }
+  result += L": ";
+  result += details;
+  return result;
 }
diff --git a/fpdfsdk/src/javascript/util.cpp b/fpdfsdk/src/javascript/util.cpp
index 4083ed58da..858af0079c 100644
--- a/fpdfsdk/src/javascript/util.cpp
+++ b/fpdfsdk/src/javascript/util.cpp
@@ -16,19 +16,18 @@
 #include "../../include/javascript/JS_EventHandler.h"
 #include "../../include/javascript/JS_Runtime.h"
 
-#if _FX_OS_  == _FX_ANDROID_
+#if _FX_OS_ == _FX_ANDROID_
 #include <ctype.h>
 #endif
 
-static v8::Isolate* GetIsolate(IFXJS_Context* cc)
-{
-    CJS_Context* pContext = (CJS_Context *)cc;
-    ASSERT(pContext != NULL);
+static v8::Isolate* GetIsolate(IFXJS_Context* cc) {
+  CJS_Context* pContext = (CJS_Context*)cc;
+  ASSERT(pContext != NULL);
 
-    CJS_Runtime* pRuntime = pContext->GetJSRuntime();
-    ASSERT(pRuntime != NULL);
+  CJS_Runtime* pRuntime = pContext->GetJSRuntime();
+  ASSERT(pRuntime != NULL);
 
-    return pRuntime->GetIsolate();
+  return pRuntime->GetIsolate();
 }
 
 BEGIN_JS_STATIC_CONST(CJS_Util)
@@ -38,350 +37,235 @@ BEGIN_JS_STATIC_PROP(CJS_Util)
 END_JS_STATIC_PROP()
 
 BEGIN_JS_STATIC_METHOD(CJS_Util)
-    JS_STATIC_METHOD_ENTRY(printd)
-    JS_STATIC_METHOD_ENTRY(printf)
-    JS_STATIC_METHOD_ENTRY(printx)
-    JS_STATIC_METHOD_ENTRY(scand)
-    JS_STATIC_METHOD_ENTRY(byteToChar)
+JS_STATIC_METHOD_ENTRY(printd)
+JS_STATIC_METHOD_ENTRY(printf)
+JS_STATIC_METHOD_ENTRY(printx)
+JS_STATIC_METHOD_ENTRY(scand)
+JS_STATIC_METHOD_ENTRY(byteToChar)
 END_JS_STATIC_METHOD()
 
-IMPLEMENT_JS_CLASS(CJS_Util,util)
+IMPLEMENT_JS_CLASS(CJS_Util, util)
 
-util::util(CJS_Object *pJSObject) : CJS_EmbedObj(pJSObject)
-{
-}
-
-util::~util(void)
-{
-}
+util::util(CJS_Object* pJSObject) : CJS_EmbedObj(pJSObject) {}
 
+util::~util(void) {}
 
-struct stru_TbConvert
-{
-    const FX_WCHAR* lpszJSMark;
-    const FX_WCHAR* lpszCppMark;
+struct stru_TbConvert {
+  const FX_WCHAR* lpszJSMark;
+  const FX_WCHAR* lpszCppMark;
 };
 
 const stru_TbConvert fcTable[] = {
-    { L"mmmm", L"%B" },
-    { L"mmm", L"%b" },
-    { L"mm",  L"%m" },
+    {L"mmmm", L"%B"},
+    {L"mmm", L"%b"},
+    {L"mm", L"%m"},
     //"m"
-    { L"dddd", L"%A" },
-    { L"ddd", L"%a" },
-    { L"dd",  L"%d" },
+    {L"dddd", L"%A"},
+    {L"ddd", L"%a"},
+    {L"dd", L"%d"},
     //"d",   "%w",
-    { L"yyyy", L"%Y" },
-    { L"yy",  L"%y" },
-    { L"HH",  L"%H" },
+    {L"yyyy", L"%Y"},
+    {L"yy", L"%y"},
+    {L"HH", L"%H"},
     //"H"
-    { L"hh",  L"%I" },
+    {L"hh", L"%I"},
     //"h"
-    { L"MM",  L"%M" },
+    {L"MM", L"%M"},
     //"M"
-    { L"ss",  L"%S" },
+    {L"ss", L"%S"},
     //"s
-    { L"TT",  L"%p" },
-    //"t"
+    {L"TT", L"%p"},
+//"t"
 #if defined(_WIN32)
-    { L"tt",  L"%p" },
-    { L"h",  L"%#I" },
+    {L"tt", L"%p"},
+    {L"h", L"%#I"},
 #else
-    { L"tt",  L"%P" },
-    { L"h",  L"%l" },
+    {L"tt", L"%P"},
+    {L"h", L"%l"},
 #endif
 };
 
-#define UTIL_INT            0
-#define UTIL_DOUBLE         1
-#define UTIL_STRING         2
-
-int util::ParstDataType(std::wstring* sFormat)
-{
-    bool bPercent = FALSE;
-    for (size_t i = 0; i < sFormat->length(); ++i)
-    {
-        wchar_t c = (*sFormat)[i];
-        if (c == L'%')
-        {
-            bPercent = true;
-            continue;
-        }
+#define UTIL_INT 0
+#define UTIL_DOUBLE 1
+#define UTIL_STRING 2
+
+int util::ParstDataType(std::wstring* sFormat) {
+  bool bPercent = FALSE;
+  for (size_t i = 0; i < sFormat->length(); ++i) {
+    wchar_t c = (*sFormat)[i];
+    if (c == L'%') {
+      bPercent = true;
+      continue;
+    }
 
-        if (bPercent)
-        {
-            if (c == L'c' || c == L'C' || c == L'd' || c == L'i' || c == L'o' || c == L'u' || c == L'x' || c == L'X')
-            {
-                return UTIL_INT;
-            }
-            if (c == L'e' || c == L'E' || c == L'f' || c == L'g' || c == L'G')
-            {
-                return UTIL_DOUBLE;
-            }
-            if (c == L's' || c == L'S')
-            {
-                // Map s to S since we always deal internally
-                // with wchar_t strings.
-                (*sFormat)[i] = L'S';
-                return UTIL_STRING;
-            }
-            if (c == L'.' || c == L'+' || c == L'-' || c == L'#' || c == L' ' || CJS_PublicMethods::IsDigit(c))
-            {
-                continue;
-            }
-            break;
-        }
+    if (bPercent) {
+      if (c == L'c' || c == L'C' || c == L'd' || c == L'i' || c == L'o' ||
+          c == L'u' || c == L'x' || c == L'X') {
+        return UTIL_INT;
+      }
+      if (c == L'e' || c == L'E' || c == L'f' || c == L'g' || c == L'G') {
+        return UTIL_DOUBLE;
+      }
+      if (c == L's' || c == L'S') {
+        // Map s to S since we always deal internally
+        // with wchar_t strings.
+        (*sFormat)[i] = L'S';
+        return UTIL_STRING;
+      }
+      if (c == L'.' || c == L'+' || c == L'-' || c == L'#' || c == L' ' ||
+          CJS_PublicMethods::IsDigit(c)) {
+        continue;
+      }
+      break;
     }
+  }
 
-    return -1;
+  return -1;
 }
 
-FX_BOOL util::printf(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    int iSize = params.size();
-    if (iSize < 1)
-        return FALSE;
-    std::wstring c_ConvChar(params[0].ToCFXWideString().c_str());
-    std::vector<std::wstring> c_strConvers;
-    int iOffset = 0;
-    int iOffend = 0;
-    c_ConvChar.insert(c_ConvChar.begin(),L'S');
-    while(iOffset != -1)
-    {
-        iOffend = c_ConvChar.find(L"%",iOffset+1);
-        std::wstring strSub;
-        if (iOffend == -1)
-            strSub = c_ConvChar.substr(iOffset);
-        else
-            strSub = c_ConvChar.substr(iOffset ,iOffend - iOffset);
-        c_strConvers.push_back(strSub);
-        iOffset = iOffend ;
+FX_BOOL util::printf(IFXJS_Context* cc,
+                     const CJS_Parameters& params,
+                     CJS_Value& vRet,
+                     CFX_WideString& sError) {
+  int iSize = params.size();
+  if (iSize < 1)
+    return FALSE;
+  std::wstring c_ConvChar(params[0].ToCFXWideString().c_str());
+  std::vector<std::wstring> c_strConvers;
+  int iOffset = 0;
+  int iOffend = 0;
+  c_ConvChar.insert(c_ConvChar.begin(), L'S');
+  while (iOffset != -1) {
+    iOffend = c_ConvChar.find(L"%", iOffset + 1);
+    std::wstring strSub;
+    if (iOffend == -1)
+      strSub = c_ConvChar.substr(iOffset);
+    else
+      strSub = c_ConvChar.substr(iOffset, iOffend - iOffset);
+    c_strConvers.push_back(strSub);
+    iOffset = iOffend;
+  }
+
+  std::wstring c_strResult;
+
+  // for(int iIndex = 1;iIndex < params.size();iIndex++)
+  std::wstring c_strFormat;
+  for (int iIndex = 0; iIndex < (int)c_strConvers.size(); iIndex++) {
+    c_strFormat = c_strConvers[iIndex];
+    if (iIndex == 0) {
+      c_strResult = c_strFormat;
+      continue;
     }
 
-    std::wstring c_strResult;
-
-    //for(int iIndex = 1;iIndex < params.size();iIndex++)
-    std::wstring c_strFormat;
-    for(int iIndex = 0;iIndex < (int)c_strConvers.size();iIndex++)
-    {
-        c_strFormat = c_strConvers[iIndex];
-        if (iIndex == 0)
-        {
-            c_strResult = c_strFormat;
-            continue;
-        }
-
-
-        CFX_WideString strSegment;
-        if (iIndex >= iSize) {
-            c_strResult += c_strFormat;
-            continue;
-        }
+    CFX_WideString strSegment;
+    if (iIndex >= iSize) {
+      c_strResult += c_strFormat;
+      continue;
+    }
 
-        switch (ParstDataType(&c_strFormat))
-        {
-            case UTIL_INT:
-                strSegment.Format(c_strFormat.c_str(), params[iIndex].ToInt());
-                break;
-            case UTIL_DOUBLE:
-                strSegment.Format(c_strFormat.c_str(), params[iIndex].ToDouble());
-                break;
-            case UTIL_STRING:
-                strSegment.Format(c_strFormat.c_str(), params[iIndex].ToCFXWideString().c_str());
-                break;
-            default:
-                strSegment.Format(L"%S", c_strFormat.c_str());
-                break;
-        }
-        c_strResult += strSegment.GetBuffer(strSegment.GetLength()+1);
+    switch (ParstDataType(&c_strFormat)) {
+      case UTIL_INT:
+        strSegment.Format(c_strFormat.c_str(), params[iIndex].ToInt());
+        break;
+      case UTIL_DOUBLE:
+        strSegment.Format(c_strFormat.c_str(), params[iIndex].ToDouble());
+        break;
+      case UTIL_STRING:
+        strSegment.Format(c_strFormat.c_str(),
+                          params[iIndex].ToCFXWideString().c_str());
+        break;
+      default:
+        strSegment.Format(L"%S", c_strFormat.c_str());
+        break;
     }
+    c_strResult += strSegment.GetBuffer(strSegment.GetLength() + 1);
+  }
 
-    c_strResult.erase(c_strResult.begin());
-    vRet = c_strResult.c_str();
-    return TRUE;
+  c_strResult.erase(c_strResult.begin());
+  vRet = c_strResult.c_str();
+  return TRUE;
 }
 
-FX_BOOL util::printd(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    v8::Isolate* isolate = GetIsolate(cc);
+FX_BOOL util::printd(IFXJS_Context* cc,
+                     const CJS_Parameters& params,
+                     CJS_Value& vRet,
+                     CFX_WideString& sError) {
+  v8::Isolate* isolate = GetIsolate(cc);
 
-    int iSize = params.size();
-    if (iSize < 2)
-        return FALSE;
+  int iSize = params.size();
+  if (iSize < 2)
+    return FALSE;
 
-    CJS_Value p1(isolate);
-    p1 = params[0];
+  CJS_Value p1(isolate);
+  p1 = params[0];
 
-    CJS_Value p2 = params[1];
-    CJS_Date jsDate(isolate);
-    if (!p2.ConvertToDate(jsDate))
-    {
-        sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPRINT1);
-        return FALSE;
-    }
+  CJS_Value p2 = params[1];
+  CJS_Date jsDate(isolate);
+  if (!p2.ConvertToDate(jsDate)) {
+    sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPRINT1);
+    return FALSE;
+  }
 
-    if (!jsDate.IsValidDate())
-    {
-        sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPRINT2);
+  if (!jsDate.IsValidDate()) {
+    sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPRINT2);
+    return FALSE;
+  }
+
+  if (p1.GetType() == VT_number) {
+    int nFormat = p1.ToInt();
+    CFX_WideString swResult;
+
+    switch (nFormat) {
+      case 0:
+        swResult.Format(L"D:%04d%02d%02d%02d%02d%02d", jsDate.GetYear(),
+                        jsDate.GetMonth() + 1, jsDate.GetDay(),
+                        jsDate.GetHours(), jsDate.GetMinutes(),
+                        jsDate.GetSeconds());
+        break;
+      case 1:
+        swResult.Format(L"%04d.%02d.%02d %02d:%02d:%02d", jsDate.GetYear(),
+                        jsDate.GetMonth() + 1, jsDate.GetDay(),
+                        jsDate.GetHours(), jsDate.GetMinutes(),
+                        jsDate.GetSeconds());
+        break;
+      case 2:
+        swResult.Format(L"%04d/%02d/%02d %02d:%02d:%02d", jsDate.GetYear(),
+                        jsDate.GetMonth() + 1, jsDate.GetDay(),
+                        jsDate.GetHours(), jsDate.GetMinutes(),
+                        jsDate.GetSeconds());
+        break;
+      default:
         return FALSE;
     }
 
-    if (p1.GetType() == VT_number)
-    {
-        int nFormat = p1.ToInt();
-        CFX_WideString swResult;
-
-        switch (nFormat)
-        {
-        case 0:
-            swResult.Format(L"D:%04d%02d%02d%02d%02d%02d",
-                jsDate.GetYear(),
-                jsDate.GetMonth() + 1,
-                jsDate.GetDay(),
-                jsDate.GetHours(),
-                jsDate.GetMinutes(),
-                jsDate.GetSeconds());
-            break;
-        case 1:
-            swResult.Format(L"%04d.%02d.%02d %02d:%02d:%02d",
-                jsDate.GetYear(),
-                jsDate.GetMonth() + 1,
-                jsDate.GetDay(),
-                jsDate.GetHours(),
-                jsDate.GetMinutes(),
-                jsDate.GetSeconds());
-            break;
-        case 2:
-            swResult.Format(L"%04d/%02d/%02d %02d:%02d:%02d",
-                jsDate.GetYear(),
-                jsDate.GetMonth() + 1,
-                jsDate.GetDay(),
-                jsDate.GetHours(),
-                jsDate.GetMinutes(),
-                jsDate.GetSeconds());
-            break;
-        default:
-            return FALSE;
-        }
-
-        vRet = swResult.c_str();
-        return TRUE;
-    }
-    if (p1.GetType() == VT_string)
-    {
-        std::basic_string<wchar_t> cFormat = p1.ToCFXWideString().c_str();
-
-        bool bXFAPicture = false;
-        if (iSize > 2)
-        {
-            bXFAPicture = params[2].ToBool();
-        }
-
-        if (bXFAPicture)
-        {
-            return FALSE; //currently, it doesn't support XFAPicture.
-        }
-
-        int iIndex;
-        for(iIndex = 0;iIndex<sizeof(fcTable)/sizeof(stru_TbConvert);iIndex++)
-        {
-            int iStart = 0;
-            int iEnd;
-            while((iEnd = cFormat.find(fcTable[iIndex].lpszJSMark, iStart)) != -1)
-            {
-                cFormat.replace(iEnd, FXSYS_wcslen(fcTable[iIndex].lpszJSMark), fcTable[iIndex].lpszCppMark);
-                iStart = iEnd;
-            }
-        }
-
-        int iYear,iMonth,iDay,iHour,iMin,iSec;
-        iYear = jsDate.GetYear();
-        iMonth = jsDate.GetMonth();
-        iDay = jsDate.GetDay();
-        iHour = jsDate.GetHours();
-        iMin = jsDate.GetMinutes();
-        iSec = jsDate.GetSeconds();
-
-        struct tm time = {};
-        time.tm_year = iYear-1900;
-        time.tm_mon = iMonth;
-        time.tm_mday = iDay;
-        time.tm_hour = iHour;
-        time.tm_min = iMin;
-        time.tm_sec = iSec;
-
-        struct stru_TbConvertAd
-        {
-            const FX_WCHAR* lpszJSMark;
-            int     iValue;
-        };
-
-        stru_TbConvertAd cTableAd[] ={
-            { L"m", iMonth+1 },
-            { L"d", iDay },
-            { L"H", iHour },
-            { L"h", iHour>12?iHour-12:iHour },
-            { L"M", iMin },
-            { L"s", iSec },
-        };
-
-        for(iIndex = 0;iIndex<sizeof(cTableAd)/sizeof(stru_TbConvertAd);iIndex++)
-        {
-            wchar_t tszValue[10];
-            CFX_WideString sValue;
-            sValue.Format(L"%d",cTableAd[iIndex].iValue);
-            memcpy(tszValue, (wchar_t *)sValue.GetBuffer(sValue.GetLength()+1),
-                               (sValue.GetLength()+1)*sizeof(wchar_t));
-
-            int iStart = 0;
-            int iEnd;
-            while((iEnd = cFormat.find(cTableAd[iIndex].lpszJSMark, iStart)) != -1)
-            {
-                if (iEnd > 0)
-                {
-                    if (cFormat[iEnd-1] == L'%')
-                    {
-                        iStart = iEnd+1;
-                        continue;
-                    }
-                }
-                cFormat.replace(iEnd, FXSYS_wcslen(cTableAd[iIndex].lpszJSMark), tszValue);
-                iStart = iEnd;
-            }
-        }
+    vRet = swResult.c_str();
+    return TRUE;
+  }
+  if (p1.GetType() == VT_string) {
+    std::basic_string<wchar_t> cFormat = p1.ToCFXWideString().c_str();
 
-        CFX_WideString strFormat;
-        wchar_t buf[64] = {};
-        strFormat = wcsftime(buf, 64, cFormat.c_str(), &time);
-        cFormat = buf;
-        vRet = cFormat.c_str();
-        return TRUE;
+    bool bXFAPicture = false;
+    if (iSize > 2) {
+      bXFAPicture = params[2].ToBool();
     }
-    return FALSE;
-}
 
-void util::printd(const std::wstring &cFormat2, CJS_Date jsDate, bool bXFAPicture, std::wstring &cPurpose)
-{
-    std::wstring cFormat = cFormat2;
-
-    if (bXFAPicture)
-    {
-        return ; //currently, it doesn't support XFAPicture.
+    if (bXFAPicture) {
+      return FALSE;  // currently, it doesn't support XFAPicture.
     }
 
     int iIndex;
-    for(iIndex = 0;iIndex<sizeof(fcTable)/sizeof(stru_TbConvert);iIndex++)
-    {
-        int iStart = 0;
-        int iEnd;
-        while((iEnd = cFormat.find(fcTable[iIndex].lpszJSMark, iStart)) != -1)
-        {
-            cFormat.replace(iEnd,FXSYS_wcslen(fcTable[iIndex].lpszJSMark), fcTable[iIndex].lpszCppMark);
-            iStart = iEnd;
-        }
+    for (iIndex = 0; iIndex < sizeof(fcTable) / sizeof(stru_TbConvert);
+         iIndex++) {
+      int iStart = 0;
+      int iEnd;
+      while ((iEnd = cFormat.find(fcTable[iIndex].lpszJSMark, iStart)) != -1) {
+        cFormat.replace(iEnd, FXSYS_wcslen(fcTable[iIndex].lpszJSMark),
+                        fcTable[iIndex].lpszCppMark);
+        iStart = iEnd;
+      }
     }
 
-    int iYear,iMonth,iDay,iHour,iMin,iSec;
+    int iYear, iMonth, iDay, iHour, iMin, iSec;
     iYear = jsDate.GetYear();
     iMonth = jsDate.GetMonth();
     iDay = jsDate.GetDay();
@@ -390,243 +274,309 @@ void util::printd(const std::wstring &cFormat2, CJS_Date jsDate, bool bXFAPictur
     iSec = jsDate.GetSeconds();
 
     struct tm time = {};
-    time.tm_year = iYear-1900;
+    time.tm_year = iYear - 1900;
     time.tm_mon = iMonth;
     time.tm_mday = iDay;
     time.tm_hour = iHour;
     time.tm_min = iMin;
     time.tm_sec = iSec;
-//  COleDateTime cppTm(iYear,iMonth+1,iDay,iHour,iMin,iSec);
-    //CString strFormat = cppTm.Format(cFormat.c_str());
 
-    struct stru_TbConvertAd
-    {
-        const FX_WCHAR* lpszJSMark;
-        int     iValue;
+    struct stru_TbConvertAd {
+      const FX_WCHAR* lpszJSMark;
+      int iValue;
     };
 
-    stru_TbConvertAd cTableAd[] ={
-        { L"m", iMonth+1 },
-        { L"d", iDay },
-        { L"H", iHour },
-        { L"h", iHour>12?iHour-12:iHour },
-        { L"M", iMin },
-        { L"s", iSec },
+    stru_TbConvertAd cTableAd[] = {
+        {L"m", iMonth + 1}, {L"d", iDay},
+        {L"H", iHour},      {L"h", iHour > 12 ? iHour - 12 : iHour},
+        {L"M", iMin},       {L"s", iSec},
     };
 
-    //cFormat = strFormat.GetBuffer(strFormat.GetLength()+1);
-    for(iIndex = 0;iIndex<sizeof(cTableAd)/sizeof(stru_TbConvertAd);iIndex++)
-    {
-        wchar_t tszValue[10];
-        //_itot(cTableAd[iIndex].iValue,tszValue,10);
-        CFX_WideString sValue;
-        sValue.Format(L"%d",cTableAd[iIndex].iValue);
-        memcpy(tszValue, (wchar_t *)sValue.GetBuffer(sValue.GetLength()+1),sValue.GetLength()*sizeof(wchar_t));
-
-
-        //strFormat.Replace(cTableAd[iIndex].lpszJSMark,"%d");
-        //strFormat.Format(strFormat,cTableAd[iIndex].iValue);
-        int iStart = 0;
-        int iEnd;
-        while((iEnd = cFormat.find(cTableAd[iIndex].lpszJSMark, iStart)) != -1)
-        {
-            if (iEnd > 0)
-            {
-                if (cFormat[iEnd-1] == L'%')
-                {
-                    iStart = iEnd+1;
-                    continue;
-                }
-            }
-            cFormat.replace(iEnd,FXSYS_wcslen(cTableAd[iIndex].lpszJSMark),tszValue);
-            iStart = iEnd;
+    for (iIndex = 0; iIndex < sizeof(cTableAd) / sizeof(stru_TbConvertAd);
+         iIndex++) {
+      wchar_t tszValue[10];
+      CFX_WideString sValue;
+      sValue.Format(L"%d", cTableAd[iIndex].iValue);
+      memcpy(tszValue, (wchar_t*)sValue.GetBuffer(sValue.GetLength() + 1),
+             (sValue.GetLength() + 1) * sizeof(wchar_t));
+
+      int iStart = 0;
+      int iEnd;
+      while ((iEnd = cFormat.find(cTableAd[iIndex].lpszJSMark, iStart)) != -1) {
+        if (iEnd > 0) {
+          if (cFormat[iEnd - 1] == L'%') {
+            iStart = iEnd + 1;
+            continue;
+          }
         }
+        cFormat.replace(iEnd, FXSYS_wcslen(cTableAd[iIndex].lpszJSMark),
+                        tszValue);
+        iStart = iEnd;
+      }
     }
 
     CFX_WideString strFormat;
     wchar_t buf[64] = {};
     strFormat = wcsftime(buf, 64, cFormat.c_str(), &time);
     cFormat = buf;
-    cPurpose = cFormat;
+    vRet = cFormat.c_str();
+    return TRUE;
+  }
+  return FALSE;
 }
 
-FX_BOOL util::printx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    int iSize = params.size();
-    if (iSize<2)
-        return FALSE;
-    CFX_WideString sFormat = params[0].ToCFXWideString();
-    CFX_WideString sSource = params[1].ToCFXWideString();
-    std::string cFormat = CFX_ByteString::FromUnicode(sFormat).c_str();
-    std::string cSource = CFX_ByteString::FromUnicode(sSource).c_str();
-    std::string cDest;
-    printx(cFormat,cSource,cDest);
-    vRet = cDest.c_str();
-    return TRUE;
+void util::printd(const std::wstring& cFormat2,
+                  CJS_Date jsDate,
+                  bool bXFAPicture,
+                  std::wstring& cPurpose) {
+  std::wstring cFormat = cFormat2;
+
+  if (bXFAPicture) {
+    return;  // currently, it doesn't support XFAPicture.
+  }
+
+  int iIndex;
+  for (iIndex = 0; iIndex < sizeof(fcTable) / sizeof(stru_TbConvert);
+       iIndex++) {
+    int iStart = 0;
+    int iEnd;
+    while ((iEnd = cFormat.find(fcTable[iIndex].lpszJSMark, iStart)) != -1) {
+      cFormat.replace(iEnd, FXSYS_wcslen(fcTable[iIndex].lpszJSMark),
+                      fcTable[iIndex].lpszCppMark);
+      iStart = iEnd;
+    }
+  }
+
+  int iYear, iMonth, iDay, iHour, iMin, iSec;
+  iYear = jsDate.GetYear();
+  iMonth = jsDate.GetMonth();
+  iDay = jsDate.GetDay();
+  iHour = jsDate.GetHours();
+  iMin = jsDate.GetMinutes();
+  iSec = jsDate.GetSeconds();
+
+  struct tm time = {};
+  time.tm_year = iYear - 1900;
+  time.tm_mon = iMonth;
+  time.tm_mday = iDay;
+  time.tm_hour = iHour;
+  time.tm_min = iMin;
+  time.tm_sec = iSec;
+  //  COleDateTime cppTm(iYear,iMonth+1,iDay,iHour,iMin,iSec);
+  // CString strFormat = cppTm.Format(cFormat.c_str());
+
+  struct stru_TbConvertAd {
+    const FX_WCHAR* lpszJSMark;
+    int iValue;
+  };
+
+  stru_TbConvertAd cTableAd[] = {
+      {L"m", iMonth + 1}, {L"d", iDay},
+      {L"H", iHour},      {L"h", iHour > 12 ? iHour - 12 : iHour},
+      {L"M", iMin},       {L"s", iSec},
+  };
+
+  // cFormat = strFormat.GetBuffer(strFormat.GetLength()+1);
+  for (iIndex = 0; iIndex < sizeof(cTableAd) / sizeof(stru_TbConvertAd);
+       iIndex++) {
+    wchar_t tszValue[10];
+    //_itot(cTableAd[iIndex].iValue,tszValue,10);
+    CFX_WideString sValue;
+    sValue.Format(L"%d", cTableAd[iIndex].iValue);
+    memcpy(tszValue, (wchar_t*)sValue.GetBuffer(sValue.GetLength() + 1),
+           sValue.GetLength() * sizeof(wchar_t));
+
+    // strFormat.Replace(cTableAd[iIndex].lpszJSMark,"%d");
+    // strFormat.Format(strFormat,cTableAd[iIndex].iValue);
+    int iStart = 0;
+    int iEnd;
+    while ((iEnd = cFormat.find(cTableAd[iIndex].lpszJSMark, iStart)) != -1) {
+      if (iEnd > 0) {
+        if (cFormat[iEnd - 1] == L'%') {
+          iStart = iEnd + 1;
+          continue;
+        }
+      }
+      cFormat.replace(iEnd, FXSYS_wcslen(cTableAd[iIndex].lpszJSMark),
+                      tszValue);
+      iStart = iEnd;
+    }
+  }
+
+  CFX_WideString strFormat;
+  wchar_t buf[64] = {};
+  strFormat = wcsftime(buf, 64, cFormat.c_str(), &time);
+  cFormat = buf;
+  cPurpose = cFormat;
+}
+
+FX_BOOL util::printx(IFXJS_Context* cc,
+                     const CJS_Parameters& params,
+                     CJS_Value& vRet,
+                     CFX_WideString& sError) {
+  int iSize = params.size();
+  if (iSize < 2)
+    return FALSE;
+  CFX_WideString sFormat = params[0].ToCFXWideString();
+  CFX_WideString sSource = params[1].ToCFXWideString();
+  std::string cFormat = CFX_ByteString::FromUnicode(sFormat).c_str();
+  std::string cSource = CFX_ByteString::FromUnicode(sSource).c_str();
+  std::string cDest;
+  printx(cFormat, cSource, cDest);
+  vRet = cDest.c_str();
+  return TRUE;
 }
 
-void util::printx(const std::string &cFormat,const std::string &cSource2,std::string &cPurpose)
-{
-    std::string cSource(cSource2);
-    if (!cPurpose.empty())
-        //cPurpose.clear();
-        cPurpose.erase();
-    int itSource = 0;
-    int iSize = cSource.size();
-    for(int iIndex = 0; iIndex < (int)cFormat.size() && itSource<iSize; iIndex++)
-    {
-        char letter = cFormat[iIndex];
-        switch(letter)
-        {
-        case '?':
-            //cPurpose.push_back(cSource[itSource]);
+void util::printx(const std::string& cFormat,
+                  const std::string& cSource2,
+                  std::string& cPurpose) {
+  std::string cSource(cSource2);
+  if (!cPurpose.empty())
+    // cPurpose.clear();
+    cPurpose.erase();
+  int itSource = 0;
+  int iSize = cSource.size();
+  for (int iIndex = 0; iIndex < (int)cFormat.size() && itSource < iSize;
+       iIndex++) {
+    char letter = cFormat[iIndex];
+    switch (letter) {
+      case '?':
+        // cPurpose.push_back(cSource[itSource]);
+        cPurpose += cSource[itSource];
+        itSource++;
+        break;
+      case 'X': {
+        while (itSource < iSize) {
+          if ((cSource[itSource] >= '0' && cSource[itSource] <= '9') ||
+              (cSource[itSource] >= 'a' && cSource[itSource] <= 'z') ||
+              (cSource[itSource] >= 'A' && cSource[itSource] <= 'Z')) {
+            // cPurpose.push_back(cSource[itSource]);
             cPurpose += cSource[itSource];
             itSource++;
             break;
-        case 'X':
-            {
-                while(itSource < iSize)
-                {
-                    if ((cSource[itSource]>='0'&&cSource[itSource]<='9') || (cSource[itSource]>='a' && cSource[itSource]<='z') || (cSource[itSource]>='A' && cSource[itSource]<='Z'))
-                    {
-                        //cPurpose.push_back(cSource[itSource]);
-                        cPurpose += cSource[itSource];
-                        itSource++;
-                        break;
-                    }
-                    itSource++;
-                }
-                break;
-            }
-            break;
-        case 'A':
-            {
-                while(itSource < iSize)
-                {
-                    if ((cSource[itSource]>='a' && cSource[itSource]<='z') || (cSource[itSource]>='A' && cSource[itSource]<='Z'))
-                    {
-                        //cPurpose.push_back(cSource[itSource]);
-                        cPurpose += cSource[itSource];
-                        itSource++;
-                        break;
-                    }
-                    itSource++;
-                }
-                break;
-            }
-            break;
-        case '9':
-            {
-                while(itSource < iSize)
-                {
-                    if (cSource[itSource]>='0'&&cSource[itSource]<='9')
-                    {
-                        //cPurpose.push_back(cSource[itSource]);
-                        cPurpose += cSource[itSource];
-                        itSource++;
-                        break;
-                    }
-                    itSource++;
-                }
-                break;
-            }
-        case '*':
-            {
-                cPurpose.append(cSource,itSource,iSize-itSource);
-                itSource = iSize-1;
-                break;
-            }
-        case '\\':
-            break;
-        case '>':
-            {
-                for(std::string::iterator it = cSource.begin();it != cSource.end(); it++)
-                {
-                    *it = toupper(*it);
-                }
-                break;
-            }
-        case '<':
-            {
-                for(std::string::iterator it = cSource.begin();it != cSource.end(); it++)
-                {
-                    *it = tolower(*it);
-                }
-                break;
-            }
-        case '=':
+          }
+          itSource++;
+        }
+        break;
+      } break;
+      case 'A': {
+        while (itSource < iSize) {
+          if ((cSource[itSource] >= 'a' && cSource[itSource] <= 'z') ||
+              (cSource[itSource] >= 'A' && cSource[itSource] <= 'Z')) {
+            // cPurpose.push_back(cSource[itSource]);
+            cPurpose += cSource[itSource];
+            itSource++;
             break;
-        default:
-            //cPurpose.push_back(letter);
-            cPurpose += letter;
+          }
+          itSource++;
+        }
+        break;
+      } break;
+      case '9': {
+        while (itSource < iSize) {
+          if (cSource[itSource] >= '0' && cSource[itSource] <= '9') {
+            // cPurpose.push_back(cSource[itSource]);
+            cPurpose += cSource[itSource];
+            itSource++;
             break;
+          }
+          itSource++;
         }
+        break;
+      }
+      case '*': {
+        cPurpose.append(cSource, itSource, iSize - itSource);
+        itSource = iSize - 1;
+        break;
+      }
+      case '\\':
+        break;
+      case '>': {
+        for (std::string::iterator it = cSource.begin(); it != cSource.end();
+             it++) {
+          *it = toupper(*it);
+        }
+        break;
+      }
+      case '<': {
+        for (std::string::iterator it = cSource.begin(); it != cSource.end();
+             it++) {
+          *it = tolower(*it);
+        }
+        break;
+      }
+      case '=':
+        break;
+      default:
+        // cPurpose.push_back(letter);
+        cPurpose += letter;
+        break;
     }
+  }
 }
 
-FX_BOOL util::scand(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    v8::Isolate* isolate = GetIsolate(cc);
-    int iSize = params.size();
-    if (iSize < 2)
-        return FALSE;
-
-    CFX_WideString sFormat = params[0].ToCFXWideString();
-    CFX_WideString sDate = params[1].ToCFXWideString();
-    double dDate = JS_GetDateTime();
-    if (sDate.GetLength() > 0)
-    {
-        FX_BOOL bWrongFormat = FALSE;
-        dDate = CJS_PublicMethods::MakeRegularDate(sDate,sFormat,bWrongFormat);
-    }
-
-    if (!JS_PortIsNan(dDate))
-    {
-        CJS_Date date(isolate,dDate);
-        vRet = date;
-    }
-    else
-    {
-        vRet.SetNull();
-    }
+FX_BOOL util::scand(IFXJS_Context* cc,
+                    const CJS_Parameters& params,
+                    CJS_Value& vRet,
+                    CFX_WideString& sError) {
+  v8::Isolate* isolate = GetIsolate(cc);
+  int iSize = params.size();
+  if (iSize < 2)
+    return FALSE;
 
-    return TRUE;
+  CFX_WideString sFormat = params[0].ToCFXWideString();
+  CFX_WideString sDate = params[1].ToCFXWideString();
+  double dDate = JS_GetDateTime();
+  if (sDate.GetLength() > 0) {
+    FX_BOOL bWrongFormat = FALSE;
+    dDate = CJS_PublicMethods::MakeRegularDate(sDate, sFormat, bWrongFormat);
+  }
+
+  if (!JS_PortIsNan(dDate)) {
+    CJS_Date date(isolate, dDate);
+    vRet = date;
+  } else {
+    vRet.SetNull();
+  }
+
+  return TRUE;
 }
 
-int64_t FX_atoi64(const char *nptr)
-{
-        int c;              /* current char */
-        int64_t total;      /* current total */
-        int sign;           /* if '-', then negative, otherwise positive */
+int64_t FX_atoi64(const char* nptr) {
+  int c;         /* current char */
+  int64_t total; /* current total */
+  int sign;      /* if '-', then negative, otherwise positive */
 
-        /* skip whitespace */
-        while ( isspace((int)(unsigned char)*nptr) )
-            ++nptr;
+  /* skip whitespace */
+  while (isspace((int)(unsigned char)*nptr))
+    ++nptr;
 
-        c = (int)(unsigned char)*nptr++;
-        sign = c;           /* save sign indication */
-        if (c == '-' || c == '+')
-            c = (int)(unsigned char)*nptr++;    /* skip sign */
+  c = (int)(unsigned char)*nptr++;
+  sign = c; /* save sign indication */
+  if (c == '-' || c == '+')
+    c = (int)(unsigned char)*nptr++; /* skip sign */
 
-        total = 0;
+  total = 0;
 
-        while (isdigit(c)) {
-            total = 10 * total + (c - '0');     /* accumulate digit */
-            c = (int)(unsigned char)*nptr++;    /* get next char */
-        }
+  while (isdigit(c)) {
+    total = 10 * total + (c - '0');  /* accumulate digit */
+    c = (int)(unsigned char)*nptr++; /* get next char */
+  }
 
-        return sign == '-' ? -total : total;
+  return sign == '-' ? -total : total;
 }
 
-FX_BOOL util::byteToChar(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
-{
-    int iSize = params.size();
-    if (iSize == 0)
-        return FALSE;
-    int nByte = params[0].ToInt();
-    unsigned char cByte = (unsigned char)nByte;
-    CFX_WideString csValue;
-    csValue.Format(L"%c", cByte);
-    vRet = csValue.c_str();
-    return TRUE;
+FX_BOOL util::byteToChar(IFXJS_Context* cc,
+                         const CJS_Parameters& params,
+                         CJS_Value& vRet,
+                         CFX_WideString& sError) {
+  int iSize = params.size();
+  if (iSize == 0)
+    return FALSE;
+  int nByte = params[0].ToInt();
+  unsigned char cByte = (unsigned char)nByte;
+  CFX_WideString csValue;
+  csValue.Format(L"%c", cByte);
+  vRet = csValue.c_str();
+  return TRUE;
 }
diff --git a/fpdfsdk/src/jsapi/fxjs_v8.cpp b/fpdfsdk/src/jsapi/fxjs_v8.cpp
index c3b1b925fa..4c75f1a4ca 100644
--- a/fpdfsdk/src/jsapi/fxjs_v8.cpp
+++ b/fpdfsdk/src/jsapi/fxjs_v8.cpp
@@ -12,777 +12,902 @@
 #include <cmath>
 #include <limits>
 
-#define VALUE_NAME_STRING		L"string"
-#define VALUE_NAME_NUMBER		L"number"
-#define VALUE_NAME_BOOLEAN		L"boolean"
-#define VALUE_NAME_DATE			L"date"
-#define VALUE_NAME_OBJECT		L"object"
-#define VALUE_NAME_FXOBJ		L"fxobj"
-#define VALUE_NAME_NULL			L"null"
-#define VALUE_NAME_UNDEFINED	L"undefined"
-
-const static FX_DWORD g_nan[2] = {0,0x7FF80000 };
-static double GetNan()
-{
+#define VALUE_NAME_STRING L"string"
+#define VALUE_NAME_NUMBER L"number"
+#define VALUE_NAME_BOOLEAN L"boolean"
+#define VALUE_NAME_DATE L"date"
+#define VALUE_NAME_OBJECT L"object"
+#define VALUE_NAME_FXOBJ L"fxobj"
+#define VALUE_NAME_NULL L"null"
+#define VALUE_NAME_UNDEFINED L"undefined"
+
+const static FX_DWORD g_nan[2] = {0, 0x7FF80000};
+static double GetNan() {
   return *(double*)g_nan;
 }
 static unsigned int g_embedderDataSlot = 0u;
 
-
-class CJS_PrivateData
-{
-public:
-	CJS_PrivateData():ObjDefID(-1), pPrivate(NULL) {}
-	int ObjDefID;
-	void*	pPrivate;
+class CJS_PrivateData {
+ public:
+  CJS_PrivateData() : ObjDefID(-1), pPrivate(NULL) {}
+  int ObjDefID;
+  void* pPrivate;
 };
 
-
-class CJS_ObjDefintion
-{
-public:
-	CJS_ObjDefintion(v8::Isolate* isolate, const wchar_t* sObjName, FXJSOBJTYPE eObjType, LP_CONSTRUCTOR pConstructor, LP_DESTRUCTOR pDestructor):
-	  objName(sObjName), objType(eObjType), m_pConstructor(pConstructor), m_pDestructor(pDestructor),m_bSetAsGlobalObject(FALSE)
-	  {
-		  v8::Isolate::Scope isolate_scope(isolate);
-		  v8::HandleScope handle_scope(isolate);
-
-		  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New(isolate);
-		  objTemplate->SetInternalFieldCount(2);
-		  m_objTemplate.Reset(isolate, objTemplate);
-
-		 //Document as the global object.
-		  if(FXSYS_wcscmp(sObjName, L"Document") == 0)
-		  {
-			 m_bSetAsGlobalObject = TRUE;
-		  }
-
-	  }
-	  ~CJS_ObjDefintion()
-	  {
-		  m_objTemplate.Reset();
-		  m_StaticObj.Reset();
-	  }
-public:
-	const wchar_t* objName;
-	FXJSOBJTYPE objType;
-	LP_CONSTRUCTOR m_pConstructor;
-	LP_DESTRUCTOR m_pDestructor;
-	FX_BOOL	m_bSetAsGlobalObject;
-
-	v8::Global<v8::ObjectTemplate> m_objTemplate;
-	v8::Global<v8::Object> m_StaticObj;
+class CJS_ObjDefintion {
+ public:
+  CJS_ObjDefintion(v8::Isolate* isolate,
+                   const wchar_t* sObjName,
+                   FXJSOBJTYPE eObjType,
+                   LP_CONSTRUCTOR pConstructor,
+                   LP_DESTRUCTOR pDestructor)
+      : objName(sObjName),
+        objType(eObjType),
+        m_pConstructor(pConstructor),
+        m_pDestructor(pDestructor),
+        m_bSetAsGlobalObject(FALSE) {
+    v8::Isolate::Scope isolate_scope(isolate);
+    v8::HandleScope handle_scope(isolate);
+
+    v8::Local<v8::ObjectTemplate> objTemplate =
+        v8::ObjectTemplate::New(isolate);
+    objTemplate->SetInternalFieldCount(2);
+    m_objTemplate.Reset(isolate, objTemplate);
+
+    // Document as the global object.
+    if (FXSYS_wcscmp(sObjName, L"Document") == 0) {
+      m_bSetAsGlobalObject = TRUE;
+    }
+  }
+  ~CJS_ObjDefintion() {
+    m_objTemplate.Reset();
+    m_StaticObj.Reset();
+  }
+
+ public:
+  const wchar_t* objName;
+  FXJSOBJTYPE objType;
+  LP_CONSTRUCTOR m_pConstructor;
+  LP_DESTRUCTOR m_pDestructor;
+  FX_BOOL m_bSetAsGlobalObject;
+
+  v8::Global<v8::ObjectTemplate> m_objTemplate;
+  v8::Global<v8::Object> m_StaticObj;
 };
 
-int JS_DefineObj(IJS_Runtime* pJSRuntime, const wchar_t* sObjName, FXJSOBJTYPE eObjType, LP_CONSTRUCTOR pConstructor, LP_DESTRUCTOR pDestructor)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::HandleScope handle_scope(isolate);
-	CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
-	if(!pArray)
-	{
-		pArray = FX_NEW CFX_PtrArray();
-		isolate->SetData(g_embedderDataSlot, pArray);
-	}
-	CJS_ObjDefintion* pObjDef = FX_NEW CJS_ObjDefintion(isolate, sObjName, eObjType, pConstructor, pDestructor);
-	pArray->Add(pObjDef);
-	return pArray->GetSize()-1;
-}
-
-int JS_DefineObjMethod(IJS_Runtime* pJSRuntime, int nObjDefnID, const wchar_t* sMethodName, v8::FunctionCallback pMethodCall)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::HandleScope handle_scope(isolate);
-
-	CFX_WideString ws = CFX_WideString(sMethodName);
-	CFX_ByteString bsMethodName = ws.UTF8Encode();
+int JS_DefineObj(IJS_Runtime* pJSRuntime,
+                 const wchar_t* sObjName,
+                 FXJSOBJTYPE eObjType,
+                 LP_CONSTRUCTOR pConstructor,
+                 LP_DESTRUCTOR pDestructor) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::HandleScope handle_scope(isolate);
+  CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
+  if (!pArray) {
+    pArray = FX_NEW CFX_PtrArray();
+    isolate->SetData(g_embedderDataSlot, pArray);
+  }
+  CJS_ObjDefintion* pObjDef = FX_NEW CJS_ObjDefintion(
+      isolate, sObjName, eObjType, pConstructor, pDestructor);
+  pArray->Add(pObjDef);
+  return pArray->GetSize() - 1;
+}
+
+int JS_DefineObjMethod(IJS_Runtime* pJSRuntime,
+                       int nObjDefnID,
+                       const wchar_t* sMethodName,
+                       v8::FunctionCallback pMethodCall) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::HandleScope handle_scope(isolate);
+
+  CFX_WideString ws = CFX_WideString(sMethodName);
+  CFX_ByteString bsMethodName = ws.UTF8Encode();
+
+  CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
+  if (!pArray)
+    return 0;
+
+  if (nObjDefnID < 0 || nObjDefnID >= pArray->GetSize())
+    return 0;
+  CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID);
+  v8::Local<v8::ObjectTemplate> objTemp =
+      v8::Local<v8::ObjectTemplate>::New(isolate, pObjDef->m_objTemplate);
+  objTemp->Set(v8::String::NewFromUtf8(isolate, bsMethodName.c_str(),
+                                       v8::NewStringType::kNormal)
+                   .ToLocalChecked(),
+               v8::FunctionTemplate::New(isolate, pMethodCall), v8::ReadOnly);
+  pObjDef->m_objTemplate.Reset(isolate, objTemp);
+  return 0;
+}
+
+int JS_DefineObjProperty(IJS_Runtime* pJSRuntime,
+                         int nObjDefnID,
+                         const wchar_t* sPropName,
+                         v8::AccessorGetterCallback pPropGet,
+                         v8::AccessorSetterCallback pPropPut) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::HandleScope handle_scope(isolate);
+
+  CFX_WideString ws = CFX_WideString(sPropName);
+  CFX_ByteString bsPropertyName = ws.UTF8Encode();
+
+  CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
+  if (!pArray)
+    return 0;
+
+  if (nObjDefnID < 0 || nObjDefnID >= pArray->GetSize())
+    return 0;
+  CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID);
+  v8::Local<v8::ObjectTemplate> objTemp =
+      v8::Local<v8::ObjectTemplate>::New(isolate, pObjDef->m_objTemplate);
+  objTemp->SetAccessor(v8::String::NewFromUtf8(isolate, bsPropertyName.c_str(),
+                                               v8::NewStringType::kNormal)
+                           .ToLocalChecked(),
+                       pPropGet, pPropPut);
+  pObjDef->m_objTemplate.Reset(isolate, objTemp);
+  return 0;
+}
+
+int JS_DefineObjAllProperties(IJS_Runtime* pJSRuntime,
+                              int nObjDefnID,
+                              v8::NamedPropertyQueryCallback pPropQurey,
+                              v8::NamedPropertyGetterCallback pPropGet,
+                              v8::NamedPropertySetterCallback pPropPut,
+                              v8::NamedPropertyDeleterCallback pPropDel) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::HandleScope handle_scope(isolate);
+
+  CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
+  if (!pArray)
+    return 0;
+
+  if (nObjDefnID < 0 || nObjDefnID >= pArray->GetSize())
+    return 0;
+  CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID);
+  v8::Local<v8::ObjectTemplate> objTemp =
+      v8::Local<v8::ObjectTemplate>::New(isolate, pObjDef->m_objTemplate);
+  objTemp->SetNamedPropertyHandler(pPropGet, pPropPut, pPropQurey, pPropDel);
+  pObjDef->m_objTemplate.Reset(isolate, objTemp);
+  return 0;
+}
+
+int JS_DefineObjConst(IJS_Runtime* pJSRuntime,
+                      int nObjDefnID,
+                      const wchar_t* sConstName,
+                      v8::Local<v8::Value> pDefault) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::HandleScope handle_scope(isolate);
+
+  CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
+  if (!pArray)
+    return 0;
+
+  CFX_WideString ws = CFX_WideString(sConstName);
+  CFX_ByteString bsConstName = ws.UTF8Encode();
+
+  if (nObjDefnID < 0 || nObjDefnID >= pArray->GetSize())
+    return 0;
+  CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID);
+  v8::Local<v8::ObjectTemplate> objTemp =
+      v8::Local<v8::ObjectTemplate>::New(isolate, pObjDef->m_objTemplate);
+  objTemp->Set(isolate, bsConstName.c_str(), pDefault);
+  pObjDef->m_objTemplate.Reset(isolate, objTemp);
+  return 0;
+}
+
+static v8::Global<v8::ObjectTemplate>& _getGlobalObjectTemplate(
+    IJS_Runtime* pJSRuntime) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::HandleScope handle_scope(isolate);
+
+  CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
+  ASSERT(pArray != NULL);
+  for (int i = 0; i < pArray->GetSize(); i++) {
+    CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(i);
+    if (pObjDef->m_bSetAsGlobalObject)
+      return pObjDef->m_objTemplate;
+  }
+  static v8::Global<v8::ObjectTemplate> gloabalObjectTemplate;
+  return gloabalObjectTemplate;
+}
+
+int JS_DefineGlobalMethod(IJS_Runtime* pJSRuntime,
+                          const wchar_t* sMethodName,
+                          v8::FunctionCallback pMethodCall) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::HandleScope handle_scope(isolate);
+
+  CFX_WideString ws = CFX_WideString(sMethodName);
+  CFX_ByteString bsMethodName = ws.UTF8Encode();
+
+  v8::Local<v8::FunctionTemplate> funTempl =
+      v8::FunctionTemplate::New(isolate, pMethodCall);
+  v8::Local<v8::ObjectTemplate> objTemp;
+
+  v8::Global<v8::ObjectTemplate>& globalObjTemp =
+      _getGlobalObjectTemplate(pJSRuntime);
+  if (globalObjTemp.IsEmpty())
+    objTemp = v8::ObjectTemplate::New(isolate);
+  else
+    objTemp = v8::Local<v8::ObjectTemplate>::New(isolate, globalObjTemp);
+  objTemp->Set(v8::String::NewFromUtf8(isolate, bsMethodName.c_str(),
+                                       v8::NewStringType::kNormal)
+                   .ToLocalChecked(),
+               funTempl, v8::ReadOnly);
+
+  globalObjTemp.Reset(isolate, objTemp);
+
+  return 0;
+}
+
+int JS_DefineGlobalConst(IJS_Runtime* pJSRuntime,
+                         const wchar_t* sConstName,
+                         v8::Local<v8::Value> pDefault) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::HandleScope handle_scope(isolate);
+
+  CFX_WideString ws = CFX_WideString(sConstName);
+  CFX_ByteString bsConst = ws.UTF8Encode();
+
+  v8::Local<v8::ObjectTemplate> objTemp;
+
+  v8::Global<v8::ObjectTemplate>& globalObjTemp =
+      _getGlobalObjectTemplate(pJSRuntime);
+  if (globalObjTemp.IsEmpty())
+    objTemp = v8::ObjectTemplate::New(isolate);
+  else
+    objTemp = v8::Local<v8::ObjectTemplate>::New(isolate, globalObjTemp);
+  objTemp->Set(v8::String::NewFromUtf8(isolate, bsConst.c_str(),
+                                       v8::NewStringType::kNormal)
+                   .ToLocalChecked(),
+               pDefault, v8::ReadOnly);
+
+  globalObjTemp.Reset(isolate, objTemp);
+
+  return 0;
+}
+
+void JS_InitialRuntime(IJS_Runtime* pJSRuntime,
+                       IFXJS_Runtime* pFXRuntime,
+                       IFXJS_Context* context,
+                       v8::Global<v8::Context>& v8PersistentContext) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::Locker locker(isolate);
+  v8::HandleScope handle_scope(isolate);
+
+  v8::Global<v8::ObjectTemplate>& globalObjTemp =
+      _getGlobalObjectTemplate(pJSRuntime);
+  v8::Local<v8::Context> v8Context = v8::Context::New(
+      isolate, NULL,
+      v8::Local<v8::ObjectTemplate>::New(isolate, globalObjTemp));
+  v8::Context::Scope context_scope(v8Context);
+
+  // v8::Local<External> ptr = External::New(isolate, pFXRuntime);
+  // v8Context->SetEmbedderData(1, ptr);
+  // TODO(tsepez): Don't use more than one embedder data slot.
+  isolate->SetData(2, pFXRuntime);
+
+  CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
+  if (!pArray)
+    return;
+
+  for (int i = 0; i < pArray->GetSize(); i++) {
+    CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(i);
+    CFX_WideString ws = CFX_WideString(pObjDef->objName);
+    CFX_ByteString bs = ws.UTF8Encode();
+    v8::Local<v8::String> objName =
+        v8::String::NewFromUtf8(isolate, bs.c_str(), v8::NewStringType::kNormal,
+                                bs.GetLength())
+            .ToLocalChecked();
+
+    if (pObjDef->objType == JS_DYNAMIC) {
+      // Document is set as global object, need to construct it first.
+      CFX_WideString wsString(L"Document");
+      if (ws.Equal(wsString)) {
+        CJS_PrivateData* pPrivateData = FX_NEW CJS_PrivateData;
+        pPrivateData->ObjDefID = i;
+
+        v8Context->Global()
+            ->GetPrototype()
+            ->ToObject(v8Context)
+            .ToLocalChecked()
+            ->SetAlignedPointerInInternalField(0, pPrivateData);
+
+        if (pObjDef->m_pConstructor)
+          pObjDef->m_pConstructor(context, v8Context->Global()
+                                               ->GetPrototype()
+                                               ->ToObject(v8Context)
+                                               .ToLocalChecked(),
+                                  v8Context->Global()
+                                      ->GetPrototype()
+                                      ->ToObject(v8Context)
+                                      .ToLocalChecked());
+      }
+    } else {
+      v8::Local<v8::Object> obj = JS_NewFxDynamicObj(pJSRuntime, context, i);
+      v8Context->Global()->Set(v8Context, objName, obj).FromJust();
+      pObjDef->m_StaticObj.Reset(isolate, obj);
+    }
+  }
+  v8PersistentContext.Reset(isolate, v8Context);
+}
+
+void JS_ReleaseRuntime(IJS_Runtime* pJSRuntime,
+                       v8::Global<v8::Context>& v8PersistentContext) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::Locker locker(isolate);
+  v8::HandleScope handle_scope(isolate);
+
+  CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
+  if (!pArray)
+    return;
+
+  for (int i = 0; i < pArray->GetSize(); i++) {
+    CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(i);
+    if (!pObjDef->m_StaticObj.IsEmpty()) {
+      v8::Local<v8::Object> pObj =
+          v8::Local<v8::Object>::New(isolate, pObjDef->m_StaticObj);
+      if (pObjDef->m_pDestructor)
+        pObjDef->m_pDestructor(pObj);
+      JS_FreePrivate(pObj);
+    }
+    delete pObjDef;
+  }
+  delete pArray;
+  isolate->SetData(1, NULL);
+  isolate->SetData(g_embedderDataSlot, NULL);
+  // TODO(tsepez): Don't use more than one embedder data slot.
+  isolate->SetData(2, NULL);
+}
+
+void JS_Initial(unsigned int embedderDataSlot) {
+  g_embedderDataSlot = embedderDataSlot;
+}
+void JS_Release() {}
+int JS_Parse(IJS_Runtime* pJSRuntime,
+             IFXJS_Context* pJSContext,
+             const wchar_t* script,
+             long length,
+             FXJSErr* perror) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::TryCatch try_catch(isolate);
+
+  CFX_WideString wsScript(script);
+  CFX_ByteString bsScript = wsScript.UTF8Encode();
+
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  v8::Local<v8::Script> compiled_script;
+  if (!v8::Script::Compile(context,
+                           v8::String::NewFromUtf8(isolate, bsScript.c_str(),
+                                                   v8::NewStringType::kNormal,
+                                                   bsScript.GetLength())
+                               .ToLocalChecked())
+           .ToLocal(&compiled_script)) {
+    v8::String::Utf8Value error(try_catch.Exception());
+    return -1;
+  }
+  return 0;
+}
+
+int JS_Execute(IJS_Runtime* pJSRuntime,
+               IFXJS_Context* pJSContext,
+               const wchar_t* script,
+               long length,
+               FXJSErr* perror) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::TryCatch try_catch(isolate);
+
+  CFX_WideString wsScript(script);
+  CFX_ByteString bsScript = wsScript.UTF8Encode();
+
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  v8::Local<v8::Script> compiled_script;
+  if (!v8::Script::Compile(context,
+                           v8::String::NewFromUtf8(isolate, bsScript.c_str(),
+                                                   v8::NewStringType::kNormal,
+                                                   bsScript.GetLength())
+                               .ToLocalChecked())
+           .ToLocal(&compiled_script)) {
+    v8::String::Utf8Value error(try_catch.Exception());
+    return -1;
+  }
+
+  v8::Local<v8::Value> result;
+  if (!compiled_script->Run(context).ToLocal(&result)) {
+    v8::String::Utf8Value error(try_catch.Exception());
+    return -1;
+  }
+  return 0;
+}
+
+v8::Local<v8::Object> JS_NewFxDynamicObj(IJS_Runtime* pJSRuntime,
+                                         IFXJS_Context* pJSContext,
+                                         int nObjDefnID) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  if (-1 == nObjDefnID) {
+    v8::Local<v8::ObjectTemplate> objTempl = v8::ObjectTemplate::New(isolate);
+    v8::Local<v8::Object> obj;
+    if (objTempl->NewInstance(context).ToLocal(&obj))
+      return obj;
+    return v8::Local<v8::Object>();
+  }
+
+  CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
+  if (!pArray)
+    return v8::Local<v8::Object>();
+
+  if (nObjDefnID < 0 || nObjDefnID >= pArray->GetSize())
+    return v8::Local<v8::Object>();
+  CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID);
+
+  v8::Local<v8::ObjectTemplate> objTemp =
+      v8::Local<v8::ObjectTemplate>::New(isolate, pObjDef->m_objTemplate);
+  v8::Local<v8::Object> obj;
+  if (!objTemp->NewInstance(context).ToLocal(&obj))
+    return v8::Local<v8::Object>();
+  CJS_PrivateData* pPrivateData = FX_NEW CJS_PrivateData;
+  pPrivateData->ObjDefID = nObjDefnID;
+
+  obj->SetAlignedPointerInInternalField(0, pPrivateData);
+  if (pObjDef->m_pConstructor)
+    pObjDef->m_pConstructor(
+        pJSContext, obj,
+        context->Global()->GetPrototype()->ToObject(context).ToLocalChecked());
+
+  return obj;
+}
+
+v8::Local<v8::Object> JS_GetStaticObj(IJS_Runtime* pJSRuntime, int nObjDefnID) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+
+  CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
+  if (!pArray)
+    return v8::Local<v8::Object>();
+
+  if (nObjDefnID < 0 || nObjDefnID >= pArray->GetSize())
+    return v8::Local<v8::Object>();
+  CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID);
+  v8::Local<v8::Object> obj =
+      v8::Local<v8::Object>::New(isolate, pObjDef->m_StaticObj);
+  return obj;
+}
+
+void JS_SetThisObj(IJS_Runtime* pJSRuntime, int nThisObjID) {
+  // Do nothing.
+}
+v8::Local<v8::Object> JS_GetThisObj(IJS_Runtime* pJSRuntime) {
+  // Return the global object.
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+
+  CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
+  if (!pArray)
+    return v8::Local<v8::Object>();
+
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  return context->Global()->GetPrototype()->ToObject(context).ToLocalChecked();
+}
+
+int JS_GetObjDefnID(v8::Local<v8::Object> pObj) {
+  if (pObj.IsEmpty() || !pObj->InternalFieldCount())
+    return -1;
+  CJS_PrivateData* pPrivateData =
+      (CJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0);
+  if (pPrivateData)
+    return pPrivateData->ObjDefID;
+  return -1;
+}
+
+IJS_Runtime* JS_GetRuntime(v8::Local<v8::Object> pObj) {
+  if (pObj.IsEmpty())
+    return NULL;
+  v8::Local<v8::Context> context = pObj->CreationContext();
+  if (context.IsEmpty())
+    return NULL;
+  return context->GetIsolate();
+}
+
+int JS_GetObjDefnID(IJS_Runtime* pJSRuntime, const wchar_t* pObjName) {
+  v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+  v8::Isolate::Scope isolate_scope(isolate);
+
+  CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
+  if (!pArray)
+    return -1;
+
+  for (int i = 0; i < pArray->GetSize(); i++) {
+    CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(i);
+    if (FXSYS_wcscmp(pObjDef->objName, pObjName) == 0)
+      return i;
+  }
+  return -1;
+}
+
+void JS_Error(v8::Isolate* isolate, const CFX_WideString& message) {
+  // Conversion from pdfium's wchar_t wide-strings to v8's uint16_t
+  // wide-strings isn't handled by v8, so use UTF8 as a common
+  // intermediate format.
+  CFX_ByteString utf8_message = message.UTF8Encode();
+  isolate->ThrowException(v8::String::NewFromUtf8(isolate, utf8_message.c_str(),
+                                                  v8::NewStringType::kNormal)
+                              .ToLocalChecked());
+}
+
+unsigned JS_CalcHash(const wchar_t* main, unsigned nLen) {
+  return (unsigned)FX_HashCode_String_GetW((const FX_WCHAR*)main, nLen);
+}
+
+unsigned JS_CalcHash(const wchar_t* main) {
+  return (unsigned)FX_HashCode_String_GetW((const FX_WCHAR*)main,
+                                           FXSYS_wcslen(main));
+}
+const wchar_t* JS_GetTypeof(v8::Local<v8::Value> pObj) {
+  if (pObj.IsEmpty())
+    return NULL;
+  if (pObj->IsString())
+    return VALUE_NAME_STRING;
+  if (pObj->IsNumber())
+    return VALUE_NAME_NUMBER;
+  if (pObj->IsBoolean())
+    return VALUE_NAME_BOOLEAN;
+  if (pObj->IsDate())
+    return VALUE_NAME_DATE;
+  if (pObj->IsObject())
+    return VALUE_NAME_OBJECT;
+  if (pObj->IsNull())
+    return VALUE_NAME_NULL;
+  if (pObj->IsUndefined())
+    return VALUE_NAME_UNDEFINED;
+  return NULL;
+}
+void JS_SetPrivate(v8::Local<v8::Object> pObj, void* p) {
+  JS_SetPrivate(NULL, pObj, p);
+}
+
+void* JS_GetPrivate(v8::Local<v8::Object> pObj) {
+  return JS_GetPrivate(NULL, pObj);
+}
+
+void JS_SetPrivate(IJS_Runtime* pJSRuntime,
+                   v8::Local<v8::Object> pObj,
+                   void* p) {
+  if (pObj.IsEmpty() || !pObj->InternalFieldCount())
+    return;
+  CJS_PrivateData* pPrivateData =
+      (CJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0);
+  if (!pPrivateData)
+    return;
+  pPrivateData->pPrivate = p;
+}
+
+void* JS_GetPrivate(IJS_Runtime* pJSRuntime, v8::Local<v8::Object> pObj) {
+  if (pObj.IsEmpty())
+    return NULL;
+  CJS_PrivateData* pPrivateData = NULL;
+  if (pObj->InternalFieldCount())
+    pPrivateData =
+        (CJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0);
+  else {
+    // It could be a global proxy object.
+    v8::Local<v8::Value> v = pObj->GetPrototype();
+    v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
+    v8::Local<v8::Context> context = isolate->GetCurrentContext();
+    if (v->IsObject())
+      pPrivateData = (CJS_PrivateData*)v->ToObject(context)
+                         .ToLocalChecked()
+                         ->GetAlignedPointerFromInternalField(0);
+  }
+  if (!pPrivateData)
+    return NULL;
+  return pPrivateData->pPrivate;
+}
+
+void JS_FreePrivate(void* pPrivateData) {
+  delete (CJS_PrivateData*)pPrivateData;
+}
+
+void JS_FreePrivate(v8::Local<v8::Object> pObj) {
+  if (pObj.IsEmpty() || !pObj->InternalFieldCount())
+    return;
+  JS_FreePrivate(pObj->GetAlignedPointerFromInternalField(0));
+  pObj->SetAlignedPointerInInternalField(0, NULL);
+}
+
+v8::Local<v8::Value> JS_GetObjectValue(v8::Local<v8::Object> pObj) {
+  return pObj;
+}
+
+v8::Local<v8::String> WSToJSString(IJS_Runtime* pJSRuntime,
+                                   const wchar_t* PropertyName,
+                                   int Len = -1) {
+  CFX_WideString ws = CFX_WideString(PropertyName, Len);
+  CFX_ByteString bs = ws.UTF8Encode();
+  if (!pJSRuntime)
+    pJSRuntime = v8::Isolate::GetCurrent();
+  return v8::String::NewFromUtf8(pJSRuntime, bs.c_str(),
+                                 v8::NewStringType::kNormal)
+      .ToLocalChecked();
+}
+
+v8::Local<v8::Value> JS_GetObjectElement(IJS_Runtime* pJSRuntime,
+                                         v8::Local<v8::Object> pObj,
+                                         const wchar_t* PropertyName) {
+  if (pObj.IsEmpty())
+    return v8::Local<v8::Value>();
+  v8::Local<v8::Value> val;
+  if (!pObj->Get(pJSRuntime->GetCurrentContext(),
+                 WSToJSString(pJSRuntime, PropertyName))
+           .ToLocal(&val))
+    return v8::Local<v8::Value>();
+  return val;
+}
+
+v8::Local<v8::Array> JS_GetObjectElementNames(IJS_Runtime* pJSRuntime,
+                                              v8::Local<v8::Object> pObj) {
+  if (pObj.IsEmpty())
+    return v8::Local<v8::Array>();
+  v8::Local<v8::Array> val;
+  if (!pObj->GetPropertyNames(pJSRuntime->GetCurrentContext()).ToLocal(&val))
+    return v8::Local<v8::Array>();
+  return val;
+}
+
+void JS_PutObjectString(IJS_Runtime* pJSRuntime,
+                        v8::Local<v8::Object> pObj,
+                        const wchar_t* PropertyName,
+                        const wchar_t* sValue)  // VT_string
+{
+  if (pObj.IsEmpty())
+    return;
+  pObj->Set(pJSRuntime->GetCurrentContext(),
+            WSToJSString(pJSRuntime, PropertyName),
+            WSToJSString(pJSRuntime, sValue))
+      .FromJust();
+}
+
+void JS_PutObjectNumber(IJS_Runtime* pJSRuntime,
+                        v8::Local<v8::Object> pObj,
+                        const wchar_t* PropertyName,
+                        int nValue) {
+  if (pObj.IsEmpty())
+    return;
+  pObj->Set(pJSRuntime->GetCurrentContext(),
+            WSToJSString(pJSRuntime, PropertyName),
+            v8::Int32::New(pJSRuntime, nValue))
+      .FromJust();
+}
+
+void JS_PutObjectNumber(IJS_Runtime* pJSRuntime,
+                        v8::Local<v8::Object> pObj,
+                        const wchar_t* PropertyName,
+                        float fValue) {
+  if (pObj.IsEmpty())
+    return;
+  pObj->Set(pJSRuntime->GetCurrentContext(),
+            WSToJSString(pJSRuntime, PropertyName),
+            v8::Number::New(pJSRuntime, (double)fValue))
+      .FromJust();
+}
+
+void JS_PutObjectNumber(IJS_Runtime* pJSRuntime,
+                        v8::Local<v8::Object> pObj,
+                        const wchar_t* PropertyName,
+                        double dValue) {
+  if (pObj.IsEmpty())
+    return;
+  pObj->Set(pJSRuntime->GetCurrentContext(),
+            WSToJSString(pJSRuntime, PropertyName),
+            v8::Number::New(pJSRuntime, (double)dValue))
+      .FromJust();
+}
 
-	CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
-	if(!pArray) return 0;
-
-	if(nObjDefnID<0 || nObjDefnID>= pArray->GetSize()) return 0;
-	CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID);
-	v8::Local<v8::ObjectTemplate> objTemp = v8::Local<v8::ObjectTemplate>::New(isolate, pObjDef->m_objTemplate);
-	objTemp->Set(v8::String::NewFromUtf8(isolate, bsMethodName.c_str(), v8::NewStringType::kNormal).ToLocalChecked(), v8::FunctionTemplate::New(isolate, pMethodCall), v8::ReadOnly);
-	pObjDef->m_objTemplate.Reset(isolate,objTemp);
-	return 0;
+void JS_PutObjectBoolean(IJS_Runtime* pJSRuntime,
+                         v8::Local<v8::Object> pObj,
+                         const wchar_t* PropertyName,
+                         bool bValue) {
+  if (pObj.IsEmpty())
+    return;
+  pObj->Set(pJSRuntime->GetCurrentContext(),
+            WSToJSString(pJSRuntime, PropertyName),
+            v8::Boolean::New(pJSRuntime, bValue))
+      .FromJust();
 }
 
-int JS_DefineObjProperty(IJS_Runtime* pJSRuntime, int nObjDefnID, const wchar_t* sPropName, v8::AccessorGetterCallback pPropGet, v8::AccessorSetterCallback pPropPut)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::HandleScope handle_scope(isolate);
-
-	CFX_WideString ws = CFX_WideString(sPropName);
-	CFX_ByteString bsPropertyName = ws.UTF8Encode();
-
-	CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
-	if(!pArray) return 0;
-
-	if(nObjDefnID<0 || nObjDefnID>= pArray->GetSize()) return 0;
-	CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID);
-	v8::Local<v8::ObjectTemplate> objTemp = v8::Local<v8::ObjectTemplate>::New(isolate, pObjDef->m_objTemplate);
-	objTemp->SetAccessor(v8::String::NewFromUtf8(isolate, bsPropertyName.c_str(), v8::NewStringType::kNormal).ToLocalChecked(), pPropGet, pPropPut);
-	pObjDef->m_objTemplate.Reset(isolate,objTemp);
-	return 0;
+void JS_PutObjectObject(IJS_Runtime* pJSRuntime,
+                        v8::Local<v8::Object> pObj,
+                        const wchar_t* PropertyName,
+                        v8::Local<v8::Object> pPut) {
+  if (pObj.IsEmpty())
+    return;
+  pObj->Set(pJSRuntime->GetCurrentContext(),
+            WSToJSString(pJSRuntime, PropertyName), pPut)
+      .FromJust();
 }
 
-int	JS_DefineObjAllProperties(IJS_Runtime* pJSRuntime, int nObjDefnID, v8::NamedPropertyQueryCallback pPropQurey, v8::NamedPropertyGetterCallback pPropGet, v8::NamedPropertySetterCallback pPropPut, v8::NamedPropertyDeleterCallback pPropDel)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::HandleScope handle_scope(isolate);
-
-	CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
-	if(!pArray) return 0;
-
-	if(nObjDefnID<0 || nObjDefnID>= pArray->GetSize()) return 0;
-	CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID);
-	v8::Local<v8::ObjectTemplate> objTemp = v8::Local<v8::ObjectTemplate>::New(isolate, pObjDef->m_objTemplate);
-	objTemp->SetNamedPropertyHandler(pPropGet, pPropPut, pPropQurey, pPropDel);
-	pObjDef->m_objTemplate.Reset(isolate,objTemp);
-	return 0;
+void JS_PutObjectNull(IJS_Runtime* pJSRuntime,
+                      v8::Local<v8::Object> pObj,
+                      const wchar_t* PropertyName) {
+  if (pObj.IsEmpty())
+    return;
+  pObj->Set(pJSRuntime->GetCurrentContext(),
+            WSToJSString(pJSRuntime, PropertyName), v8::Local<v8::Object>())
+      .FromJust();
 }
 
-int JS_DefineObjConst(IJS_Runtime* pJSRuntime, int nObjDefnID, const wchar_t* sConstName, v8::Local<v8::Value> pDefault)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::HandleScope handle_scope(isolate);
-
-	CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
-	if(!pArray) return 0;
-
-	CFX_WideString ws = CFX_WideString(sConstName);
-	CFX_ByteString bsConstName = ws.UTF8Encode();
-
-	if(nObjDefnID<0 || nObjDefnID>= pArray->GetSize()) return 0;
-	CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID);
-	v8::Local<v8::ObjectTemplate> objTemp = v8::Local<v8::ObjectTemplate>::New(isolate, pObjDef->m_objTemplate);
-	objTemp->Set(isolate, bsConstName.c_str(), pDefault);
-	pObjDef->m_objTemplate.Reset(isolate,objTemp);
-	return 0;
+v8::Local<v8::Array> JS_NewArray(IJS_Runtime* pJSRuntime) {
+  return v8::Array::New(pJSRuntime);
 }
 
-static v8::Global<v8::ObjectTemplate>& _getGlobalObjectTemplate(IJS_Runtime* pJSRuntime)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::HandleScope handle_scope(isolate);
-
-	CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
-	ASSERT(pArray != NULL);
-	for(int i=0; i<pArray->GetSize(); i++)
-	{
-		CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(i);
-		if(pObjDef->m_bSetAsGlobalObject)
-			return pObjDef->m_objTemplate;
-	}
-	static v8::Global<v8::ObjectTemplate> gloabalObjectTemplate;
-	return gloabalObjectTemplate;
-}
-
-int JS_DefineGlobalMethod(IJS_Runtime* pJSRuntime, const wchar_t* sMethodName, v8::FunctionCallback pMethodCall)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::HandleScope handle_scope(isolate);
-
-	CFX_WideString ws = CFX_WideString(sMethodName);
-	CFX_ByteString bsMethodName = ws.UTF8Encode();
-
-	v8::Local<v8::FunctionTemplate> funTempl = v8::FunctionTemplate::New(isolate, pMethodCall);
-	v8::Local<v8::ObjectTemplate> objTemp;
-
-	v8::Global<v8::ObjectTemplate>& globalObjTemp = _getGlobalObjectTemplate(pJSRuntime);
-	if(globalObjTemp.IsEmpty())
-		objTemp = v8::ObjectTemplate::New(isolate);
-	else
-		objTemp = v8::Local<v8::ObjectTemplate>::New(isolate, globalObjTemp);
-	objTemp->Set(v8::String::NewFromUtf8(isolate, bsMethodName.c_str(), v8::NewStringType::kNormal).ToLocalChecked(), funTempl, v8::ReadOnly);
-
-	globalObjTemp.Reset(isolate,objTemp);
-
-	return 0;
+unsigned JS_PutArrayElement(IJS_Runtime* pJSRuntime,
+                            v8::Local<v8::Array> pArray,
+                            unsigned index,
+                            v8::Local<v8::Value> pValue,
+                            FXJSVALUETYPE eType) {
+  if (pArray.IsEmpty())
+    return 0;
+  if (pArray->Set(pJSRuntime->GetCurrentContext(), index, pValue).IsNothing())
+    return 0;
+  return 1;
 }
 
-int JS_DefineGlobalConst(IJS_Runtime* pJSRuntime, const wchar_t* sConstName, v8::Local<v8::Value> pDefault)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::HandleScope handle_scope(isolate);
-
-	CFX_WideString ws = CFX_WideString(sConstName);
-	CFX_ByteString bsConst= ws.UTF8Encode();
-
-	v8::Local<v8::ObjectTemplate> objTemp;
-
-	v8::Global<v8::ObjectTemplate>& globalObjTemp = _getGlobalObjectTemplate(pJSRuntime);
-	if(globalObjTemp.IsEmpty())
-		objTemp = v8::ObjectTemplate::New(isolate);
-	else
-		objTemp = v8::Local<v8::ObjectTemplate>::New(isolate, globalObjTemp);
-	objTemp->Set(v8::String::NewFromUtf8(isolate, bsConst.c_str(), v8::NewStringType::kNormal).ToLocalChecked(), pDefault, v8::ReadOnly);
-
-	globalObjTemp.Reset(isolate,objTemp);
-
-	return 0;
+v8::Local<v8::Value> JS_GetArrayElement(IJS_Runtime* pJSRuntime,
+                                        v8::Local<v8::Array> pArray,
+                                        unsigned index) {
+  if (pArray.IsEmpty())
+    return v8::Local<v8::Value>();
+  v8::Local<v8::Value> val;
+  if (pArray->Get(pJSRuntime->GetCurrentContext(), index).ToLocal(&val))
+    return v8::Local<v8::Value>();
+  return val;
 }
 
-
-void JS_InitialRuntime(IJS_Runtime* pJSRuntime,IFXJS_Runtime* pFXRuntime, IFXJS_Context* context, v8::Global<v8::Context>& v8PersistentContext)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::Locker locker(isolate);
-	v8::HandleScope handle_scope(isolate);
-
-	v8::Global<v8::ObjectTemplate>& globalObjTemp = _getGlobalObjectTemplate(pJSRuntime);
-	v8::Local<v8::Context> v8Context = v8::Context::New(isolate, NULL, v8::Local<v8::ObjectTemplate>::New(isolate, globalObjTemp));
-	v8::Context::Scope context_scope(v8Context);
-
-	//v8::Local<External> ptr = External::New(isolate, pFXRuntime);
-	//v8Context->SetEmbedderData(1, ptr);
-	// TODO(tsepez): Don't use more than one embedder data slot.
-	isolate->SetData(2, pFXRuntime);
-
-	CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
-	if(!pArray) return;
-
-	for(int i=0; i<pArray->GetSize(); i++)
-	{
-		CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(i);
-		CFX_WideString ws = CFX_WideString(pObjDef->objName);
-		CFX_ByteString bs = ws.UTF8Encode();
-		v8::Local<v8::String> objName = v8::String::NewFromUtf8(isolate, bs.c_str(), v8::NewStringType::kNormal, bs.GetLength()).ToLocalChecked();
-
-
-		if(pObjDef->objType == JS_DYNAMIC)
-		{
-			//Document is set as global object, need to construct it first.
-			CFX_WideString wsString(L"Document");
-			if(ws.Equal(wsString))
-			{
-
-				CJS_PrivateData* pPrivateData = FX_NEW CJS_PrivateData;
-				pPrivateData->ObjDefID = i;
-
-				v8Context->Global()->GetPrototype()->ToObject(v8Context).ToLocalChecked()->SetAlignedPointerInInternalField(0, pPrivateData);
-
-				if(pObjDef->m_pConstructor)
-					pObjDef->m_pConstructor(context, v8Context->Global()->GetPrototype()->ToObject(v8Context).ToLocalChecked(), v8Context->Global()->GetPrototype()->ToObject(v8Context).ToLocalChecked());
-			}
-		}
-		else
-		{
-			v8::Local<v8::Object> obj = JS_NewFxDynamicObj(pJSRuntime, context, i);
-			v8Context->Global()->Set(v8Context, objName, obj).FromJust();
-			pObjDef->m_StaticObj.Reset(isolate, obj);
-		}
-	}
-	v8PersistentContext.Reset(isolate, v8Context);
-}
-
-void JS_ReleaseRuntime(IJS_Runtime* pJSRuntime, v8::Global<v8::Context>& v8PersistentContext)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::Locker locker(isolate);
-	v8::HandleScope handle_scope(isolate);
-
-	CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
-	if(!pArray) return ;
-
-	for(int i=0; i<pArray->GetSize(); i++)
-	{
-		CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(i);
-		if(!pObjDef->m_StaticObj.IsEmpty())
-		{
-			v8::Local<v8::Object> pObj = v8::Local<v8::Object>::New(isolate, pObjDef->m_StaticObj);
-			if(pObjDef->m_pDestructor)
-				pObjDef->m_pDestructor(pObj);
-			JS_FreePrivate(pObj);
-		}
-		delete pObjDef;
-	}
-	delete pArray;
-	isolate->SetData(1,NULL);
-	isolate->SetData(g_embedderDataSlot,NULL);
-	// TODO(tsepez): Don't use more than one embedder data slot.
-	isolate->SetData(2,NULL);
-}
-
-void JS_Initial(unsigned int embedderDataSlot)
-{
-	g_embedderDataSlot = embedderDataSlot;
-}
-void JS_Release()
-{
-
-}
-int JS_Parse(IJS_Runtime* pJSRuntime, IFXJS_Context* pJSContext, const wchar_t* script, long length, FXJSErr* perror)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::TryCatch try_catch(isolate);
-
-	CFX_WideString wsScript(script);
-	CFX_ByteString bsScript = wsScript.UTF8Encode();
-
-
-        v8::Local<v8::Context> context = isolate->GetCurrentContext();
-	v8::Local<v8::Script> compiled_script;
-        if (!v8::Script::Compile(context, v8::String::NewFromUtf8(isolate, bsScript.c_str(), v8::NewStringType::kNormal, bsScript.GetLength()).ToLocalChecked()).ToLocal(&compiled_script)) {
-		v8::String::Utf8Value error(try_catch.Exception());
-		return -1;
-	}
-	return 0;
+unsigned JS_GetArrayLength(v8::Local<v8::Array> pArray) {
+  if (pArray.IsEmpty())
+    return 0;
+  return pArray->Length();
 }
 
-int JS_Execute(IJS_Runtime* pJSRuntime, IFXJS_Context* pJSContext, const wchar_t* script, long length, FXJSErr* perror)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-	v8::TryCatch try_catch(isolate);
-
-	CFX_WideString wsScript(script);
-	CFX_ByteString bsScript = wsScript.UTF8Encode();
-
-        v8::Local<v8::Context> context = isolate->GetCurrentContext();
-        v8::Local<v8::Script> compiled_script;
-        if (!v8::Script::Compile(context, v8::String::NewFromUtf8(isolate, bsScript.c_str(), v8::NewStringType::kNormal, bsScript.GetLength()).ToLocalChecked()).ToLocal(&compiled_script)) {
-		v8::String::Utf8Value error(try_catch.Exception());
-		return -1;
-	}
-
-	v8::Local<v8::Value> result;
-        if (!compiled_script->Run(context).ToLocal(&result)) {
-		v8::String::Utf8Value error(try_catch.Exception());
-		return -1;
-	}
-	return 0;
-}
-
-v8::Local<v8::Object> JS_NewFxDynamicObj(IJS_Runtime* pJSRuntime, IFXJS_Context* pJSContext, int nObjDefnID)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-        v8::Local<v8::Context> context = isolate->GetCurrentContext();
-	if(-1 == nObjDefnID)
-	{
-		v8::Local<v8::ObjectTemplate> objTempl = v8::ObjectTemplate::New(isolate);
-                v8::Local<v8::Object> obj;
-                if (objTempl->NewInstance(context).ToLocal(&obj)) return obj;
-                return v8::Local<v8::Object>();
-	}
-
-	CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
-	if(!pArray) return v8::Local<v8::Object>();
-
-
-	if(nObjDefnID<0 || nObjDefnID>= pArray->GetSize()) return v8::Local<v8::Object>();
-	CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID);
-
-	v8::Local<v8::ObjectTemplate> objTemp = v8::Local<v8::ObjectTemplate>::New(isolate, pObjDef->m_objTemplate);
-	v8::Local<v8::Object> obj;
-        if (!objTemp->NewInstance(context).ToLocal(&obj)) return v8::Local<v8::Object>();
-	CJS_PrivateData* pPrivateData = FX_NEW CJS_PrivateData;
-	pPrivateData->ObjDefID = nObjDefnID;
-
-	obj->SetAlignedPointerInInternalField(0, pPrivateData);
-	if(pObjDef->m_pConstructor)
-		pObjDef->m_pConstructor(pJSContext, obj, context->Global()->GetPrototype()->ToObject(context).ToLocalChecked());
-
-	return obj;
-}
-
-v8::Local<v8::Object> JS_GetStaticObj(IJS_Runtime* pJSRuntime, int nObjDefnID)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-
-	CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
-	if(!pArray) return v8::Local<v8::Object>();
-
-	if(nObjDefnID<0 || nObjDefnID>= pArray->GetSize()) return v8::Local<v8::Object>();
-	CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID);
-	v8::Local<v8::Object> obj = v8::Local<v8::Object>::New(isolate,pObjDef->m_StaticObj);
-	return obj;
-}
-
-void JS_SetThisObj(IJS_Runtime* pJSRuntime, int nThisObjID)
-{
-	//Do nothing.
-}
-v8::Local<v8::Object>	JS_GetThisObj(IJS_Runtime * pJSRuntime)
-{
-	//Return the global object.
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-
-	CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
-	if(!pArray) return v8::Local<v8::Object>();
-
-	v8::Local<v8::Context> context = isolate->GetCurrentContext();
-	return context->Global()->GetPrototype()->ToObject(context).ToLocalChecked();
-}
-
-int	JS_GetObjDefnID(v8::Local<v8::Object> pObj)
-{
-	if(pObj.IsEmpty() || !pObj->InternalFieldCount()) return -1;
-	CJS_PrivateData* pPrivateData = (CJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0);
-	if(pPrivateData)
-		return pPrivateData->ObjDefID;
-	return -1;
-}
-
-IJS_Runtime* JS_GetRuntime(v8::Local<v8::Object> pObj)
-{
-	if(pObj.IsEmpty()) return NULL;
-	v8::Local<v8::Context> context = pObj->CreationContext();
-	if(context.IsEmpty()) return NULL;
-	return context->GetIsolate();
-}
-
-int JS_GetObjDefnID(IJS_Runtime * pJSRuntime, const wchar_t* pObjName)
-{
-	v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-	v8::Isolate::Scope isolate_scope(isolate);
-
-	CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(g_embedderDataSlot);
-	if(!pArray) return -1;
-
-	for(int i=0; i<pArray->GetSize(); i++)
-	{
-		CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(i);
-		if(FXSYS_wcscmp(pObjDef->objName, pObjName) == 0)
-			return i;
-	}
-	return -1;
-}
-
-void JS_Error(v8::Isolate* isolate, const CFX_WideString& message)
-{
-    // Conversion from pdfium's wchar_t wide-strings to v8's uint16_t
-    // wide-strings isn't handled by v8, so use UTF8 as a common
-    // intermediate format.
-    CFX_ByteString utf8_message = message.UTF8Encode();
-    isolate->ThrowException(v8::String::NewFromUtf8(isolate,
-                                                    utf8_message.c_str(),
-                                                    v8::NewStringType::kNormal).ToLocalChecked());
-}
-
-unsigned JS_CalcHash(const wchar_t* main, unsigned nLen)
-{
-	return (unsigned)FX_HashCode_String_GetW((const FX_WCHAR*)main, nLen);
-}
-
-unsigned JS_CalcHash(const wchar_t* main)
-{
-	return (unsigned)FX_HashCode_String_GetW((const FX_WCHAR*)main, FXSYS_wcslen(main));
-}
-const wchar_t*	JS_GetTypeof(v8::Local<v8::Value> pObj)
-{
-	if(pObj.IsEmpty()) return NULL;
-	if(pObj->IsString())
-		return VALUE_NAME_STRING;
-	if(pObj->IsNumber())
-		return VALUE_NAME_NUMBER;
-	if(pObj->IsBoolean())
-		return VALUE_NAME_BOOLEAN;
-	if(pObj->IsDate())
-		return VALUE_NAME_DATE;
-	if(pObj->IsObject())
-		return VALUE_NAME_OBJECT;
-	if(pObj->IsNull())
-		return VALUE_NAME_NULL;
-	if(pObj->IsUndefined())
-		return VALUE_NAME_UNDEFINED;
-	return NULL;
-
-}
-void JS_SetPrivate(v8::Local<v8::Object> pObj, void* p)
-{
-	JS_SetPrivate(NULL, pObj, p);
-}
-
-void* JS_GetPrivate(v8::Local<v8::Object> pObj)
-{
-	return JS_GetPrivate(NULL,pObj);
-}
-
-void JS_SetPrivate(IJS_Runtime* pJSRuntime, v8::Local<v8::Object> pObj, void* p)
-{
-	if(pObj.IsEmpty() || !pObj->InternalFieldCount()) return;
-	CJS_PrivateData* pPrivateData  = (CJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0);
-	if(!pPrivateData) return;
-	pPrivateData->pPrivate = p;
-}
-
-void* JS_GetPrivate(IJS_Runtime* pJSRuntime, v8::Local<v8::Object> pObj)
-{
-	if(pObj.IsEmpty()) return NULL;
-	CJS_PrivateData* pPrivateData  = NULL;
-	if(pObj->InternalFieldCount())
-                pPrivateData = (CJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0);
-	else
-	{
-		//It could be a global proxy object.
-		v8::Local<v8::Value> v = pObj->GetPrototype();
-                v8::Isolate* isolate = (v8::Isolate*)pJSRuntime;
-                v8::Local<v8::Context> context = isolate->GetCurrentContext();
-		if(v->IsObject())
-                        pPrivateData = (CJS_PrivateData*)v->ToObject(context).ToLocalChecked()->GetAlignedPointerFromInternalField(0);
-	}
-	if(!pPrivateData) return NULL;
-	return pPrivateData->pPrivate;
-}
-
-void JS_FreePrivate(void* pPrivateData)
-{
-        delete (CJS_PrivateData*)pPrivateData;
-}
-
-void JS_FreePrivate(v8::Local<v8::Object> pObj)
-{
-	if(pObj.IsEmpty() || !pObj->InternalFieldCount()) return;
-	JS_FreePrivate(pObj->GetAlignedPointerFromInternalField(0));
-	pObj->SetAlignedPointerInInternalField(0, NULL);
-}
-
-
-v8::Local<v8::Value> JS_GetObjectValue(v8::Local<v8::Object> pObj)
-{
-	return pObj;
-}
-
-v8::Local<v8::String> WSToJSString(IJS_Runtime* pJSRuntime, const wchar_t* PropertyName, int Len = -1)
-{
-	CFX_WideString ws = CFX_WideString(PropertyName,Len);
-	CFX_ByteString bs = ws.UTF8Encode();
-	if(!pJSRuntime) pJSRuntime = v8::Isolate::GetCurrent();
-	return v8::String::NewFromUtf8(pJSRuntime, bs.c_str(), v8::NewStringType::kNormal).ToLocalChecked();
-}
-
-v8::Local<v8::Value> JS_GetObjectElement(IJS_Runtime* pJSRuntime, v8::Local<v8::Object> pObj,const wchar_t* PropertyName)
-{
-	if(pObj.IsEmpty()) return v8::Local<v8::Value>();
-        v8::Local<v8::Value> val;
-	if (!pObj->Get(pJSRuntime->GetCurrentContext(), WSToJSString(pJSRuntime,PropertyName)).ToLocal(&val)) return v8::Local<v8::Value>();
-        return val;
+v8::Local<v8::Value> JS_NewNumber(IJS_Runtime* pJSRuntime, int number) {
+  return v8::Int32::New(pJSRuntime, number);
 }
 
-v8::Local<v8::Array> JS_GetObjectElementNames(IJS_Runtime* pJSRuntime, v8::Local<v8::Object> pObj)
-{
-	if(pObj.IsEmpty()) return v8::Local<v8::Array>();
-        v8::Local<v8::Array> val;
-	if (!pObj->GetPropertyNames(pJSRuntime->GetCurrentContext()).ToLocal(&val)) return v8::Local<v8::Array>();
-        return val;
+v8::Local<v8::Value> JS_NewNumber(IJS_Runtime* pJSRuntime, double number) {
+  return v8::Number::New(pJSRuntime, number);
 }
 
-void JS_PutObjectString(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName, const wchar_t* sValue) //VT_string
-{
-	if(pObj.IsEmpty()) return;
-	pObj->Set(pJSRuntime->GetCurrentContext(), WSToJSString(pJSRuntime, PropertyName), WSToJSString(pJSRuntime, sValue)).FromJust();
+v8::Local<v8::Value> JS_NewNumber(IJS_Runtime* pJSRuntime, float number) {
+  return v8::Number::New(pJSRuntime, (float)number);
 }
 
-void JS_PutObjectNumber(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName, int nValue)
-{
-	if(pObj.IsEmpty()) return;
-	pObj->Set(pJSRuntime->GetCurrentContext(), WSToJSString(pJSRuntime,PropertyName),v8::Int32::New(pJSRuntime, nValue)).FromJust();
+v8::Local<v8::Value> JS_NewBoolean(IJS_Runtime* pJSRuntime, bool b) {
+  return v8::Boolean::New(pJSRuntime, b);
 }
 
-void JS_PutObjectNumber(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName, float fValue)
-{
-	if(pObj.IsEmpty()) return;
-	pObj->Set(pJSRuntime->GetCurrentContext(), WSToJSString(pJSRuntime,PropertyName),v8::Number::New(pJSRuntime, (double)fValue)).FromJust();
+v8::Local<v8::Value> JS_NewObject(IJS_Runtime* pJSRuntime,
+                                  v8::Local<v8::Object> pObj) {
+  if (pObj.IsEmpty())
+    return v8::Local<v8::Value>();
+  return pObj->Clone();
 }
 
-void JS_PutObjectNumber(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName, double dValue)
-{
-	if(pObj.IsEmpty()) return;
-	pObj->Set(pJSRuntime->GetCurrentContext(), WSToJSString(pJSRuntime,PropertyName),v8::Number::New(pJSRuntime, (double)dValue)).FromJust();
+v8::Local<v8::Value> JS_NewObject2(IJS_Runtime* pJSRuntime,
+                                   v8::Local<v8::Array> pObj) {
+  if (pObj.IsEmpty())
+    return v8::Local<v8::Value>();
+  return pObj->Clone();
 }
 
-void JS_PutObjectBoolean(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName, bool bValue)
-{
-	if(pObj.IsEmpty()) return;
-	pObj->Set(pJSRuntime->GetCurrentContext(), WSToJSString(pJSRuntime,PropertyName),v8::Boolean::New(pJSRuntime, bValue)).FromJust();
+v8::Local<v8::Value> JS_NewString(IJS_Runtime* pJSRuntime,
+                                  const wchar_t* string) {
+  return WSToJSString(pJSRuntime, string);
 }
 
-void JS_PutObjectObject(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName, v8::Local<v8::Object> pPut)
-{
-	if(pObj.IsEmpty()) return;
-	pObj->Set(pJSRuntime->GetCurrentContext(), WSToJSString(pJSRuntime,PropertyName),pPut).FromJust();
+v8::Local<v8::Value> JS_NewString(IJS_Runtime* pJSRuntime,
+                                  const wchar_t* string,
+                                  unsigned nLen) {
+  return WSToJSString(pJSRuntime, string, nLen);
 }
 
-void JS_PutObjectNull(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj, const wchar_t* PropertyName)
-{
-	if(pObj.IsEmpty()) return;
-	pObj->Set(pJSRuntime->GetCurrentContext(), WSToJSString(pJSRuntime,PropertyName),v8::Local<v8::Object>()).FromJust();
+v8::Local<v8::Value> JS_NewNull() {
+  return v8::Local<v8::Value>();
 }
 
-v8::Local<v8::Array> JS_NewArray(IJS_Runtime* pJSRuntime)
-{
-	return v8::Array::New(pJSRuntime);
+v8::Local<v8::Value> JS_NewDate(IJS_Runtime* pJSRuntime, double d) {
+  return v8::Date::New(pJSRuntime->GetCurrentContext(), d).ToLocalChecked();
 }
 
-unsigned JS_PutArrayElement(IJS_Runtime* pJSRuntime, v8::Local<v8::Array> pArray,unsigned index,v8::Local<v8::Value> pValue,FXJSVALUETYPE eType)
-{
-	if(pArray.IsEmpty()) return 0;
-	if (pArray->Set(pJSRuntime->GetCurrentContext(), index, pValue).IsNothing()) return 0;
-	return 1;
+v8::Local<v8::Value> JS_NewValue(IJS_Runtime* pJSRuntime) {
+  return v8::Local<v8::Value>();
 }
 
-v8::Local<v8::Value> JS_GetArrayElement(IJS_Runtime* pJSRuntime, v8::Local<v8::Array> pArray,unsigned index)
-{
-	if(pArray.IsEmpty()) return v8::Local<v8::Value>();
-        v8::Local<v8::Value> val;
-	if (pArray->Get(pJSRuntime->GetCurrentContext(), index).ToLocal(&val)) return v8::Local<v8::Value>();
+v8::Local<v8::Value> JS_GetListValue(IJS_Runtime* pJSRuntime,
+                                     v8::Local<v8::Value> pList,
+                                     int index) {
+  v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
+  if (!pList.IsEmpty() && pList->IsObject()) {
+    v8::Local<v8::Object> obj;
+    if (pList->ToObject(context).ToLocal(&obj)) {
+      v8::Local<v8::Value> val;
+      if (obj->Get(context, index).ToLocal(&val))
         return val;
+    }
+  }
+  return v8::Local<v8::Value>();
 }
 
-unsigned JS_GetArrayLength(v8::Local<v8::Array> pArray)
-{
-	if(pArray.IsEmpty()) return 0;
-	return pArray->Length();
-}
-
-v8::Local<v8::Value> JS_NewNumber(IJS_Runtime* pJSRuntime,int number)
-{
-	return v8::Int32::New(pJSRuntime, number);
+int JS_ToInt32(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue) {
+  if (pValue.IsEmpty())
+    return 0;
+  v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
+  return pValue->ToInt32(context).ToLocalChecked()->Value();
 }
 
-v8::Local<v8::Value> JS_NewNumber(IJS_Runtime* pJSRuntime,double number)
-{
-	return v8::Number::New(pJSRuntime, number);
+bool JS_ToBoolean(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue) {
+  if (pValue.IsEmpty())
+    return false;
+  v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
+  return pValue->ToBoolean(context).ToLocalChecked()->Value();
 }
 
-v8::Local<v8::Value> JS_NewNumber(IJS_Runtime* pJSRuntime,float number)
-{
-	return v8::Number::New(pJSRuntime, (float)number);
+double JS_ToNumber(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue) {
+  if (pValue.IsEmpty())
+    return 0.0;
+  v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
+  return pValue->ToNumber(context).ToLocalChecked()->Value();
 }
 
-v8::Local<v8::Value> JS_NewBoolean(IJS_Runtime* pJSRuntime,bool b)
-{
-	return v8::Boolean::New(pJSRuntime, b);
+v8::Local<v8::Object> JS_ToObject(IJS_Runtime* pJSRuntime,
+                                  v8::Local<v8::Value> pValue) {
+  if (pValue.IsEmpty())
+    return v8::Local<v8::Object>();
+  v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
+  return pValue->ToObject(context).ToLocalChecked();
 }
 
-v8::Local<v8::Value> JS_NewObject(IJS_Runtime* pJSRuntime,v8::Local<v8::Object> pObj)
-{
-	if(pObj.IsEmpty()) return v8::Local<v8::Value>();
-	return pObj->Clone();
+CFX_WideString JS_ToString(IJS_Runtime* pJSRuntime,
+                           v8::Local<v8::Value> pValue) {
+  if (pValue.IsEmpty())
+    return L"";
+  v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
+  v8::String::Utf8Value s(pValue->ToString(context).ToLocalChecked());
+  return CFX_WideString::FromUTF8(*s, s.length());
 }
 
-v8::Local<v8::Value> JS_NewObject2(IJS_Runtime* pJSRuntime,v8::Local<v8::Array> pObj)
-{
-	if(pObj.IsEmpty()) return v8::Local<v8::Value>();
-	return pObj->Clone();
+v8::Local<v8::Array> JS_ToArray(IJS_Runtime* pJSRuntime,
+                                v8::Local<v8::Value> pValue) {
+  if (pValue.IsEmpty())
+    return v8::Local<v8::Array>();
+  v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
+  return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked());
 }
 
-
-v8::Local<v8::Value> JS_NewString(IJS_Runtime* pJSRuntime,const wchar_t* string)
-{
-	return WSToJSString(pJSRuntime, string);
+void JS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) {
+  pTo = pFrom;
 }
 
-v8::Local<v8::Value> JS_NewString(IJS_Runtime* pJSRuntime,const wchar_t* string, unsigned nLen)
-{
-	return WSToJSString(pJSRuntime, string, nLen);
-}
-
-v8::Local<v8::Value> JS_NewNull()
-{
-	return v8::Local<v8::Value>();
-}
-
-v8::Local<v8::Value> JS_NewDate(IJS_Runtime* pJSRuntime,double d)
-{
-	return v8::Date::New(pJSRuntime->GetCurrentContext(), d).ToLocalChecked();
-}
-
-v8::Local<v8::Value> JS_NewValue(IJS_Runtime* pJSRuntime)
-{
-	return v8::Local<v8::Value>();
-}
-
-v8::Local<v8::Value> JS_GetListValue(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pList, int index)
-{
-
-        v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
-	if(!pList.IsEmpty() && pList->IsObject())
-	{
-		v8::Local<v8::Object> obj;
-                if (pList->ToObject(context).ToLocal(&obj))
-                {
-                        v8::Local<v8::Value> val;
-                        if (obj->Get(context, index).ToLocal(&val)) return val;
-                }
-	}
-	return v8::Local<v8::Value>();
-}
-
-int	JS_ToInt32(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue)
-{
-	if(pValue.IsEmpty()) return 0;
-        v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
-	return pValue->ToInt32(context).ToLocalChecked()->Value();
-}
-
-bool JS_ToBoolean(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue)
-{
-	if(pValue.IsEmpty()) return false;
-        v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
-	return pValue->ToBoolean(context).ToLocalChecked()->Value();
-}
-
-double JS_ToNumber(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue)
-{
-	if(pValue.IsEmpty()) return 0.0;
-        v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
-	return pValue->ToNumber(context).ToLocalChecked()->Value();
-}
-
-v8::Local<v8::Object> JS_ToObject(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue)
-{
-	if(pValue.IsEmpty()) return v8::Local<v8::Object>();
-        v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
-	return pValue->ToObject(context).ToLocalChecked();
-}
-
-CFX_WideString	JS_ToString(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue)
-{
-	if(pValue.IsEmpty()) return L"";
-        v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
-	v8::String::Utf8Value s(pValue->ToString(context).ToLocalChecked());
-	return CFX_WideString::FromUTF8(*s, s.length());
-}
-
-v8::Local<v8::Array> JS_ToArray(IJS_Runtime* pJSRuntime, v8::Local<v8::Value> pValue)
-{
-	if(pValue.IsEmpty()) return v8::Local<v8::Array>();
-        v8::Local<v8::Context> context = pJSRuntime->GetCurrentContext();
-	return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked());
-}
-
-void JS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom)
-{
-	pTo = pFrom;
-}
+// JavaScript time implement begin.
 
-
-//JavaScript time implement begin.
-
-double _getLocalTZA()
-{
-	if(!FSDK_IsSandBoxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS))
-		return 0;
-	time_t t = 0;
-	time(&t);
-	localtime(&t);
+double _getLocalTZA() {
+  if (!FSDK_IsSandBoxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS))
+    return 0;
+  time_t t = 0;
+  time(&t);
+  localtime(&t);
 #if _MSC_VER >= 1900
   // In gcc and in Visual Studio prior to VS 2015 'timezone' is a global
   // variable declared in time.h. That variable was deprecated and in VS 2015
@@ -790,286 +915,272 @@ double _getLocalTZA()
   long timezone = 0;
   _get_timezone(&timezone);
 #endif
-	return (double)(-(timezone * 1000));
+  return (double)(-(timezone * 1000));
 }
 
-int _getDaylightSavingTA(double d)
-{
-	if(!FSDK_IsSandBoxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS))
-		return 0;
-	time_t t = (time_t)(d/1000);
-	struct tm * tmp = localtime(&t);
-	if (tmp == NULL)
-		return 0;
-	if (tmp->tm_isdst > 0)
-		//One hour.
-		return (int)60*60*1000;
-	return 0;
-}
-
-double _Mod(double x, double y)
-{
-	double r = fmod(x, y);
-	if (r < 0) r += y;
-	return r;
+int _getDaylightSavingTA(double d) {
+  if (!FSDK_IsSandBoxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS))
+    return 0;
+  time_t t = (time_t)(d / 1000);
+  struct tm* tmp = localtime(&t);
+  if (tmp == NULL)
+    return 0;
+  if (tmp->tm_isdst > 0)
+    // One hour.
+    return (int)60 * 60 * 1000;
+  return 0;
 }
 
-int _isfinite(double v)
-{
+double _Mod(double x, double y) {
+  double r = fmod(x, y);
+  if (r < 0)
+    r += y;
+  return r;
+}
+
+int _isfinite(double v) {
 #if _MSC_VER
-	return ::_finite(v);
+  return ::_finite(v);
 #else
-	return std::fabs(v) < std::numeric_limits<double>::max();
+  return std::fabs(v) < std::numeric_limits<double>::max();
 #endif
 }
 
-double _toInteger(double n)
-{
-	return (n >= 0)? FXSYS_floor(n): -FXSYS_floor(-n);
-}
-
-bool _isLeapYear(int year)
-{
-	return (year%4==0)&&((year%100!=0)||(year%400!=0));
-}
-
-int _DayFromYear(int y)
-{
-	return (int)(365*(y - 1970.0) + FXSYS_floor((y - 1969.0)/4) - FXSYS_floor((y - 1901.0)/100)+FXSYS_floor((y - 1601.0)/400));
-}
-
-double _TimeFromYear(int y)
-{
-	return  ((double)86400000) * _DayFromYear(y);
-}
-
-double _TimeFromYearMonth(int y, int m)
-{
-	static int daysMonth[12] ={ 0,31,59,90,120,151,181,212,243,273,304,334};
-	static int leapDaysMonth[12] = { 0,31,60,91,121,152,182,213,244,274,305,335};
-	int* pMonth = daysMonth;
-	if(_isLeapYear(y))
-		pMonth = leapDaysMonth;
-	return _TimeFromYear(y) + ((double)pMonth[m])*86400000;
-}
-
-int _Day(double t)
-{
-	return (int)FXSYS_floor(t / 86400000);
-}
-
-int _YearFromTime(double t)
-{
-	//estimate the time.
-	int y = 1970 +(int)(t/(365.0*86400000));
-	if (_TimeFromYear(y) <= t)
-	{
-		while(_TimeFromYear(y+1) <= t) y++;
-	}
-	else
-		while(_TimeFromYear(y-1) > t) y--;
-	return y;
-}
-
-int _DayWithinYear(double t)
-{
-	int year = _YearFromTime(t);
-	int day = _Day(t);
-	return day-_DayFromYear(year);
-}
-
-int _MonthFromTime(double t)
-{
-	int day = _DayWithinYear(t);
-	int year = _YearFromTime(t);
-	if(0<=day && day <31)
-		return 0;
-	if(31<=day && day< 59+_isLeapYear(year))
-		return 1;
-	if((59+_isLeapYear(year))<=day && day<(90+_isLeapYear(year)))
-		return 2;
-	if((90+_isLeapYear(year))<=day && day<(120+_isLeapYear(year)))
-		return 3;
-	if((120+_isLeapYear(year))<=day && day<(151+_isLeapYear(year)))
-		return 4;
-	if((151+_isLeapYear(year))<=day && day<(181+_isLeapYear(year)))
-		return 5;
-	if((181+_isLeapYear(year))<=day && day<(212+_isLeapYear(year)))
-		return 6;
-	if((212+_isLeapYear(year))<=day && day<(243+_isLeapYear(year)))
-		return 7;
-	if((243+_isLeapYear(year))<=day && day<(273+_isLeapYear(year)))
-		return 8;
-	if((273+_isLeapYear(year))<=day && day<(304+_isLeapYear(year)))
-		return 9;
-	if((304+_isLeapYear(year))<=day && day<(334+_isLeapYear(year)))
-		return 10;
-	if((334+_isLeapYear(year))<=day && day<(365+_isLeapYear(year)))
-		return 11;
-
-	return -1;
-}
-
-int _DateFromTime(double t)
-{
-	int day = _DayWithinYear(t);
-	int year = _YearFromTime(t);
-	bool leap = _isLeapYear(year);
-	int month = _MonthFromTime(t);
-	switch (month)
-	{
-	case 0:
-		return day+1;
-	case 1:
-		return day-30;
-	case 2:
-		return day-58-leap;
-	case 3:
-		return day-89-leap;
-	case 4:
-		return day-119-leap;
-	case 5:
-		return day-150-leap;
-	case 6:
-		return day-180-leap;
-	case 7:
-		return day-211-leap;
-	case 8:
-		return day-242-leap;
-	case 9:
-		return day-272-leap;
-	case 10:
-		return day-303-leap;
-	case 11:
-		return day-333-leap;
-	default:
-		return 0;
-	}
-}
-
-double JS_GetDateTime()
-{
-	if(!FSDK_IsSandBoxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS))
-		return 0;
-	time_t t = time(NULL);
-	struct tm* pTm = localtime(&t);
-
-	int year = pTm->tm_year+1900;
-	double t1 = _TimeFromYear(year);
+double _toInteger(double n) {
+  return (n >= 0) ? FXSYS_floor(n) : -FXSYS_floor(-n);
+}
+
+bool _isLeapYear(int year) {
+  return (year % 4 == 0) && ((year % 100 != 0) || (year % 400 != 0));
+}
+
+int _DayFromYear(int y) {
+  return (int)(365 * (y - 1970.0) + FXSYS_floor((y - 1969.0) / 4) -
+               FXSYS_floor((y - 1901.0) / 100) +
+               FXSYS_floor((y - 1601.0) / 400));
+}
+
+double _TimeFromYear(int y) {
+  return ((double)86400000) * _DayFromYear(y);
+}
+
+double _TimeFromYearMonth(int y, int m) {
+  static int daysMonth[12] = {0,   31,  59,  90,  120, 151,
+                              181, 212, 243, 273, 304, 334};
+  static int leapDaysMonth[12] = {0,   31,  60,  91,  121, 152,
+                                  182, 213, 244, 274, 305, 335};
+  int* pMonth = daysMonth;
+  if (_isLeapYear(y))
+    pMonth = leapDaysMonth;
+  return _TimeFromYear(y) + ((double)pMonth[m]) * 86400000;
+}
+
+int _Day(double t) {
+  return (int)FXSYS_floor(t / 86400000);
+}
+
+int _YearFromTime(double t) {
+  // estimate the time.
+  int y = 1970 + (int)(t / (365.0 * 86400000));
+  if (_TimeFromYear(y) <= t) {
+    while (_TimeFromYear(y + 1) <= t)
+      y++;
+  } else
+    while (_TimeFromYear(y - 1) > t)
+      y--;
+  return y;
+}
+
+int _DayWithinYear(double t) {
+  int year = _YearFromTime(t);
+  int day = _Day(t);
+  return day - _DayFromYear(year);
+}
+
+int _MonthFromTime(double t) {
+  int day = _DayWithinYear(t);
+  int year = _YearFromTime(t);
+  if (0 <= day && day < 31)
+    return 0;
+  if (31 <= day && day < 59 + _isLeapYear(year))
+    return 1;
+  if ((59 + _isLeapYear(year)) <= day && day < (90 + _isLeapYear(year)))
+    return 2;
+  if ((90 + _isLeapYear(year)) <= day && day < (120 + _isLeapYear(year)))
+    return 3;
+  if ((120 + _isLeapYear(year)) <= day && day < (151 + _isLeapYear(year)))
+    return 4;
+  if ((151 + _isLeapYear(year)) <= day && day < (181 + _isLeapYear(year)))
+    return 5;
+  if ((181 + _isLeapYear(year)) <= day && day < (212 + _isLeapYear(year)))
+    return 6;
+  if ((212 + _isLeapYear(year)) <= day && day < (243 + _isLeapYear(year)))
+    return 7;
+  if ((243 + _isLeapYear(year)) <= day && day < (273 + _isLeapYear(year)))
+    return 8;
+  if ((273 + _isLeapYear(year)) <= day && day < (304 + _isLeapYear(year)))
+    return 9;
+  if ((304 + _isLeapYear(year)) <= day && day < (334 + _isLeapYear(year)))
+    return 10;
+  if ((334 + _isLeapYear(year)) <= day && day < (365 + _isLeapYear(year)))
+    return 11;
+
+  return -1;
+}
+
+int _DateFromTime(double t) {
+  int day = _DayWithinYear(t);
+  int year = _YearFromTime(t);
+  bool leap = _isLeapYear(year);
+  int month = _MonthFromTime(t);
+  switch (month) {
+    case 0:
+      return day + 1;
+    case 1:
+      return day - 30;
+    case 2:
+      return day - 58 - leap;
+    case 3:
+      return day - 89 - leap;
+    case 4:
+      return day - 119 - leap;
+    case 5:
+      return day - 150 - leap;
+    case 6:
+      return day - 180 - leap;
+    case 7:
+      return day - 211 - leap;
+    case 8:
+      return day - 242 - leap;
+    case 9:
+      return day - 272 - leap;
+    case 10:
+      return day - 303 - leap;
+    case 11:
+      return day - 333 - leap;
+    default:
+      return 0;
+  }
+}
+
+double JS_GetDateTime() {
+  if (!FSDK_IsSandBoxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS))
+    return 0;
+  time_t t = time(NULL);
+  struct tm* pTm = localtime(&t);
+
+  int year = pTm->tm_year + 1900;
+  double t1 = _TimeFromYear(year);
+
+  return t1 + pTm->tm_yday * 86400000.0 + pTm->tm_hour * 3600000.0 +
+         pTm->tm_min * 60000.0 + pTm->tm_sec * 1000.0;
+}
+
+int JS_GetYearFromTime(double dt) {
+  return _YearFromTime(dt);
+}
+
+int JS_GetMonthFromTime(double dt) {
+  return _MonthFromTime(dt);
+}
+
+int JS_GetDayFromTime(double dt) {
+  return _DateFromTime(dt);
+}
+
+int JS_GetHourFromTime(double dt) {
+  return (int)_Mod(FXSYS_floor((double)(dt / (60 * 60 * 1000))), 24);
+}
+
+int JS_GetMinFromTime(double dt) {
+  return (int)_Mod(FXSYS_floor((double)(dt / (60 * 1000))), 60);
+}
+
+int JS_GetSecFromTime(double dt) {
+  return (int)_Mod(FXSYS_floor((double)(dt / 1000)), 60);
+}
+
+double JS_DateParse(const wchar_t* string) {
+  v8::Isolate* pIsolate = v8::Isolate::GetCurrent();
+  v8::Isolate::Scope isolate_scope(pIsolate);
+  v8::HandleScope scope(pIsolate);
+
+  v8::Local<v8::Context> context = pIsolate->GetCurrentContext();
+
+  // Use the built-in object method.
+  v8::Local<v8::Value> v =
+      context->Global()
+          ->Get(context, v8::String::NewFromUtf8(pIsolate, "Date",
+                                                 v8::NewStringType::kNormal)
+                             .ToLocalChecked())
+          .ToLocalChecked();
+  if (v->IsObject()) {
+    v8::Local<v8::Object> o = v->ToObject(context).ToLocalChecked();
+    v = o->Get(context, v8::String::NewFromUtf8(pIsolate, "parse",
+                                                v8::NewStringType::kNormal)
+                            .ToLocalChecked())
+            .ToLocalChecked();
+    if (v->IsFunction()) {
+      v8::Local<v8::Function> funC = v8::Local<v8::Function>::Cast(v);
 
-	return t1 + pTm->tm_yday*86400000.0 + pTm->tm_hour*3600000.0+pTm->tm_min*60000.0+pTm->tm_sec*1000.0;
+      const int argc = 1;
+      v8::Local<v8::String> timeStr = WSToJSString(pIsolate, string);
+      v8::Local<v8::Value> argv[argc] = {timeStr};
+      v = funC->Call(context, context->Global(), argc, argv).ToLocalChecked();
+      if (v->IsNumber()) {
+        double date = v->ToNumber(context).ToLocalChecked()->Value();
+        if (!_isfinite(date))
+          return date;
+        return date + _getLocalTZA() + _getDaylightSavingTA(date);
+      }
+    }
+  }
+  return 0;
 }
 
-int JS_GetYearFromTime(double dt)
-{
-	return _YearFromTime(dt);
-}
+double JS_MakeDay(int nYear, int nMonth, int nDate) {
+  if (!_isfinite(nYear) || !_isfinite(nMonth) || !_isfinite(nDate))
+    return GetNan();
+  double y = _toInteger(nYear);
+  double m = _toInteger(nMonth);
+  double dt = _toInteger(nDate);
+  double ym = y + FXSYS_floor((double)m / 12);
+  double mn = _Mod(m, 12);
 
-int JS_GetMonthFromTime(double dt)
-{
-	return _MonthFromTime(dt);
-}
+  double t = _TimeFromYearMonth((int)ym, (int)mn);
 
-int JS_GetDayFromTime(double dt)
-{
-	return _DateFromTime(dt);
+  if (_YearFromTime(t) != ym || _MonthFromTime(t) != mn ||
+      _DateFromTime(t) != 1)
+    return GetNan();
+  return _Day(t) + dt - 1;
 }
 
-int JS_GetHourFromTime(double dt)
-{
-	return (int)_Mod(FXSYS_floor((double)(dt/(60*60*1000))), 24);
-}
+double JS_MakeTime(int nHour, int nMin, int nSec, int nMs) {
+  if (!_isfinite(nHour) || !_isfinite(nMin) || !_isfinite(nSec) ||
+      !_isfinite(nMs))
+    return GetNan();
 
-int JS_GetMinFromTime(double dt)
-{
-	return (int)_Mod(FXSYS_floor((double)(dt/(60*1000))), 60);
-}
+  double h = _toInteger(nHour);
+  double m = _toInteger(nMin);
+  double s = _toInteger(nSec);
+  double milli = _toInteger(nMs);
 
-int JS_GetSecFromTime(double dt)
-{
-	return (int)_Mod(FXSYS_floor((double)(dt/1000)), 60);
+  return h * 3600000 + m * 60000 + s * 1000 + milli;
 }
 
-double JS_DateParse(const wchar_t* string)
-{
-	v8::Isolate* pIsolate = v8::Isolate::GetCurrent();
-	v8::Isolate::Scope isolate_scope(pIsolate);
-	v8::HandleScope scope(pIsolate);
-
-	v8::Local<v8::Context> context = pIsolate->GetCurrentContext();
-
-	//Use the built-in object method.
-	v8::Local<v8::Value> v = context->Global()->Get(context, v8::String::NewFromUtf8(pIsolate, "Date", v8::NewStringType::kNormal).ToLocalChecked()).ToLocalChecked();
-	if(v->IsObject())
-	{
-		v8::Local<v8::Object> o = v->ToObject(context).ToLocalChecked();
-		v = o->Get(context,v8::String::NewFromUtf8(pIsolate, "parse", v8::NewStringType::kNormal).ToLocalChecked()).ToLocalChecked();
-		if(v->IsFunction())
-		{
-			v8::Local<v8::Function> funC = v8::Local<v8::Function>::Cast(v);
-
-			const int argc = 1;
-			v8::Local<v8::String> timeStr = WSToJSString(pIsolate, string);
-			v8::Local<v8::Value> argv[argc] = {timeStr};
-			v = funC->Call(context, context->Global(), argc, argv).ToLocalChecked();
-			if(v->IsNumber())
-			{
-				double date =  v->ToNumber(context).ToLocalChecked()->Value();
-				if(!_isfinite(date)) return date;
-				return date + _getLocalTZA() + _getDaylightSavingTA(date);
-			}
-
-		}
-	}
-	return 0;
-}
-
-double JS_MakeDay(int nYear, int nMonth, int nDate)
-{
-	if (!_isfinite(nYear) || !_isfinite(nMonth) ||!_isfinite(nDate))
-		return GetNan();
-	double y = _toInteger(nYear);
-	double m = _toInteger(nMonth);
-	double dt = _toInteger(nDate);
-	double ym = y + FXSYS_floor((double)m/12);
-	double mn = _Mod(m ,12);
-
-	double t = _TimeFromYearMonth((int)ym,(int)mn);
-
-	if (_YearFromTime(t) != ym || _MonthFromTime(t) != mn ||_DateFromTime(t) != 1)
-		return GetNan();
-	return _Day(t)+dt-1;
-}
-
-double JS_MakeTime(int nHour, int nMin, int nSec, int nMs)
-{
-	if (!_isfinite(nHour) ||!_isfinite(nMin) ||!_isfinite(nSec) ||!_isfinite(nMs))
-		return GetNan();
+double JS_MakeDate(double day, double time) {
+  if (!_isfinite(day) || !_isfinite(time))
+    return GetNan();
 
-	double h = _toInteger(nHour);
-	double m = _toInteger(nMin);
-	double s = _toInteger(nSec);
-	double milli = _toInteger(nMs);
-
-	return h * 3600000 + m * 60000 + s * 1000 + milli;
+  return day * 86400000 + time;
 }
 
-double JS_MakeDate(double day, double time)
-{
-	if (!_isfinite(day) ||!_isfinite(time))
-		return GetNan();
-
-	return day * 86400000 + time;
+bool JS_PortIsNan(double d) {
+  return d != d;
 }
 
-bool JS_PortIsNan(double d)
-{
-	return d != d;
-}
-
-double JS_LocalTime(double d)
-{
-	return JS_GetDateTime() + _getDaylightSavingTA(d);
+double JS_LocalTime(double d) {
+  return JS_GetDateTime() + _getDaylightSavingTA(d);
 }
 
-//JavaScript time implement End.
+// JavaScript time implement End.
diff --git a/fpdfsdk/src/pdfwindow/PWL_Button.cpp b/fpdfsdk/src/pdfwindow/PWL_Button.cpp
index 84962285c4..9eca10c90d 100644
--- a/fpdfsdk/src/pdfwindow/PWL_Button.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_Button.cpp
@@ -9,45 +9,37 @@
 #include "../../include/pdfwindow/PWL_Button.h"
 #include "../../include/pdfwindow/PWL_Utils.h"
 
-/* ------------------------------- CPWL_Button ---------------------------------- */
+/* ------------------------------- CPWL_Button
+ * ---------------------------------- */
 
-CPWL_Button::CPWL_Button() :
-	m_bMouseDown(FALSE)
-{
-}
+CPWL_Button::CPWL_Button() : m_bMouseDown(FALSE) {}
 
-CPWL_Button::~CPWL_Button()
-{
-//	PWL_TRACE("~CPWL_Button\n");
+CPWL_Button::~CPWL_Button() {
+  //	PWL_TRACE("~CPWL_Button\n");
 }
 
-CFX_ByteString CPWL_Button::GetClassName() const
-{
-	return "CPWL_Button";
+CFX_ByteString CPWL_Button::GetClassName() const {
+  return "CPWL_Button";
 }
 
-void CPWL_Button::OnCreate(PWL_CREATEPARAM & cp)
-{
-	cp.eCursorType = FXCT_HAND;
+void CPWL_Button::OnCreate(PWL_CREATEPARAM& cp) {
+  cp.eCursorType = FXCT_HAND;
 }
 
-FX_BOOL CPWL_Button::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnLButtonDown(point, nFlag);
+FX_BOOL CPWL_Button::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonDown(point, nFlag);
 
-	m_bMouseDown = TRUE;
-	SetCapture();
+  m_bMouseDown = TRUE;
+  SetCapture();
 
-	return TRUE;
+  return TRUE;
 }
 
-FX_BOOL CPWL_Button::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnLButtonUp(point, nFlag);
+FX_BOOL CPWL_Button::OnLButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonUp(point, nFlag);
 
-	ReleaseCapture();
-	m_bMouseDown = FALSE;
+  ReleaseCapture();
+  m_bMouseDown = FALSE;
 
-	return TRUE;
+  return TRUE;
 }
-
diff --git a/fpdfsdk/src/pdfwindow/PWL_Caret.cpp b/fpdfsdk/src/pdfwindow/PWL_Caret.cpp
index 84a8b3d186..f35385e7f7 100644
--- a/fpdfsdk/src/pdfwindow/PWL_Caret.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_Caret.cpp
@@ -9,189 +9,157 @@
 #include "../../include/pdfwindow/PWL_Caret.h"
 #include "../../include/pdfwindow/PWL_Utils.h"
 
-#define PWL_CARET_FLASHINTERVAL		500
+#define PWL_CARET_FLASHINTERVAL 500
 
 //////////////////////////////////////////////////////////////////////
 // Construction/Destruction
 //////////////////////////////////////////////////////////////////////
 
-CPWL_Caret::CPWL_Caret() :
-	m_bFlash(FALSE),
-	m_ptHead(0,0),
-	m_ptFoot(0,0),
-	m_fWidth(0.4f),
-	m_nDelay(0)
-{
-}
+CPWL_Caret::CPWL_Caret()
+    : m_bFlash(FALSE),
+      m_ptHead(0, 0),
+      m_ptFoot(0, 0),
+      m_fWidth(0.4f),
+      m_nDelay(0) {}
 
-CPWL_Caret::~CPWL_Caret()
-{
-}
+CPWL_Caret::~CPWL_Caret() {}
 
-CFX_ByteString CPWL_Caret::GetClassName() const
-{
-	return "CPWL_Caret";
+CFX_ByteString CPWL_Caret::GetClassName() const {
+  return "CPWL_Caret";
 }
 
-void CPWL_Caret::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream)
-{
-	GetCaretApp(sAppStream,CPDF_Point(0.0f,0.0f));
+void CPWL_Caret::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) {
+  GetCaretApp(sAppStream, CPDF_Point(0.0f, 0.0f));
 }
 
-void CPWL_Caret::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	if (IsVisible() && m_bFlash)
-	{
-		CPDF_Rect rcRect = GetCaretRect();
-		CPDF_Rect rcClip = GetClipRect();
-
-		CFX_PathData path;
-
-		path.SetPointCount(2);
-
-		FX_FLOAT fCaretX = rcRect.left + m_fWidth * 0.5f;
-		FX_FLOAT fCaretTop = rcRect.top;
-		FX_FLOAT fCaretBottom = rcRect.bottom;
-
-		if (!rcClip.IsEmpty())
-		{
-			rcRect.Intersect(rcClip);
-			if (!rcRect.IsEmpty())
-			{
-				fCaretTop = rcRect.top;
-				fCaretBottom = rcRect.bottom;
-				path.SetPoint(0, fCaretX, fCaretBottom, FXPT_MOVETO);
-				path.SetPoint(1, fCaretX, fCaretTop, FXPT_LINETO);
-			}
-			else
-			{
-				return;
-			}
-		}
-		else
-		{
-			path.SetPoint(0, fCaretX, fCaretBottom, FXPT_MOVETO);
-			path.SetPoint(1, fCaretX, fCaretTop, FXPT_LINETO);
-		}
-
-		CFX_GraphStateData gsd;
-		gsd.m_LineWidth = m_fWidth;
-
-		pDevice->DrawPath(&path, pUser2Device, &gsd,0,  ArgbEncode(255,0,0,0), FXFILL_ALTERNATE);
-	}
+void CPWL_Caret::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                    CPDF_Matrix* pUser2Device) {
+  if (IsVisible() && m_bFlash) {
+    CPDF_Rect rcRect = GetCaretRect();
+    CPDF_Rect rcClip = GetClipRect();
+
+    CFX_PathData path;
+
+    path.SetPointCount(2);
+
+    FX_FLOAT fCaretX = rcRect.left + m_fWidth * 0.5f;
+    FX_FLOAT fCaretTop = rcRect.top;
+    FX_FLOAT fCaretBottom = rcRect.bottom;
+
+    if (!rcClip.IsEmpty()) {
+      rcRect.Intersect(rcClip);
+      if (!rcRect.IsEmpty()) {
+        fCaretTop = rcRect.top;
+        fCaretBottom = rcRect.bottom;
+        path.SetPoint(0, fCaretX, fCaretBottom, FXPT_MOVETO);
+        path.SetPoint(1, fCaretX, fCaretTop, FXPT_LINETO);
+      } else {
+        return;
+      }
+    } else {
+      path.SetPoint(0, fCaretX, fCaretBottom, FXPT_MOVETO);
+      path.SetPoint(1, fCaretX, fCaretTop, FXPT_LINETO);
+    }
+
+    CFX_GraphStateData gsd;
+    gsd.m_LineWidth = m_fWidth;
+
+    pDevice->DrawPath(&path, pUser2Device, &gsd, 0, ArgbEncode(255, 0, 0, 0),
+                      FXFILL_ALTERNATE);
+  }
 }
 
-void CPWL_Caret::GetCaretApp(CFX_ByteTextBuf & sAppStream,const CPDF_Point & ptOffset)
-{
-	if (IsVisible() && m_bFlash)
-	{
-		CFX_ByteTextBuf sCaret;
-
-		CPDF_Rect rcRect = GetCaretRect();
-		CPDF_Rect rcClip = GetClipRect();
-
-		rcRect = CPWL_Utils::OffsetRect(rcRect,ptOffset.x,ptOffset.y);
-		rcClip = CPWL_Utils::OffsetRect(rcClip,ptOffset.x,ptOffset.y);
-
-		sCaret << "q\n";
-		if (!rcClip.IsEmpty())
-		{
-			sCaret << rcClip.left << " " << rcClip.bottom + 2.5f << " "
-				<< rcClip.right - rcClip.left << " " << rcClip.top - rcClip.bottom - 4.5f << " re W n\n";
-		}
-		sCaret << m_fWidth << " w\n0 G\n";
-		sCaret << rcRect.left + m_fWidth/2 << " " << rcRect.bottom << " m\n";
-		sCaret << rcRect.left + m_fWidth/2 << " " << rcRect.top << " l S\nQ\n";
-
-		sAppStream << sCaret;
-	}
+void CPWL_Caret::GetCaretApp(CFX_ByteTextBuf& sAppStream,
+                             const CPDF_Point& ptOffset) {
+  if (IsVisible() && m_bFlash) {
+    CFX_ByteTextBuf sCaret;
+
+    CPDF_Rect rcRect = GetCaretRect();
+    CPDF_Rect rcClip = GetClipRect();
+
+    rcRect = CPWL_Utils::OffsetRect(rcRect, ptOffset.x, ptOffset.y);
+    rcClip = CPWL_Utils::OffsetRect(rcClip, ptOffset.x, ptOffset.y);
+
+    sCaret << "q\n";
+    if (!rcClip.IsEmpty()) {
+      sCaret << rcClip.left << " " << rcClip.bottom + 2.5f << " "
+             << rcClip.right - rcClip.left << " "
+             << rcClip.top - rcClip.bottom - 4.5f << " re W n\n";
+    }
+    sCaret << m_fWidth << " w\n0 G\n";
+    sCaret << rcRect.left + m_fWidth / 2 << " " << rcRect.bottom << " m\n";
+    sCaret << rcRect.left + m_fWidth / 2 << " " << rcRect.top << " l S\nQ\n";
+
+    sAppStream << sCaret;
+  }
 }
 
-CFX_ByteString CPWL_Caret::GetCaretAppearanceStream(const CPDF_Point & ptOffset)
-{
-	CFX_ByteTextBuf sCaret;
-	GetCaretApp(sCaret,ptOffset);
-	return sCaret.GetByteString();
+CFX_ByteString CPWL_Caret::GetCaretAppearanceStream(
+    const CPDF_Point& ptOffset) {
+  CFX_ByteTextBuf sCaret;
+  GetCaretApp(sCaret, ptOffset);
+  return sCaret.GetByteString();
 }
 
-void CPWL_Caret::TimerProc()
-{
-	if (m_nDelay > 0)
-	{
-		m_nDelay--;
-	}
-	else
-	{
-		m_bFlash = !m_bFlash;
-		InvalidateRect();
-	}
+void CPWL_Caret::TimerProc() {
+  if (m_nDelay > 0) {
+    m_nDelay--;
+  } else {
+    m_bFlash = !m_bFlash;
+    InvalidateRect();
+  }
 }
 
-CPDF_Rect CPWL_Caret::GetCaretRect() const
-{
-	return CPDF_Rect(m_ptFoot.x,
-			m_ptFoot.y,
-			m_ptHead.x + m_fWidth,
-			m_ptHead.y);
+CPDF_Rect CPWL_Caret::GetCaretRect() const {
+  return CPDF_Rect(m_ptFoot.x, m_ptFoot.y, m_ptHead.x + m_fWidth, m_ptHead.y);
 }
 
-void CPWL_Caret::SetCaret(FX_BOOL bVisible, const CPDF_Point & ptHead, const CPDF_Point & ptFoot)
-{
-	if (bVisible)
-	{
-		if (IsVisible())
-		{
-			if (m_ptHead.x != ptHead.x || m_ptHead.y != ptHead.y ||
-					m_ptFoot.x != ptFoot.x || m_ptFoot.y != ptFoot.y)
-			{
-				m_ptHead = ptHead;
-				m_ptFoot = ptFoot;
-
-				m_bFlash = TRUE;
-				//Move(GetCaretRect(),FALSE,TRUE);
-				Move(m_rcInvalid, FALSE, TRUE);
-			}
-		}
-		else
-		{
-			m_ptHead = ptHead;
-			m_ptFoot = ptFoot;
-
-			EndTimer();
-			BeginTimer(PWL_CARET_FLASHINTERVAL);
-
-			CPWL_Wnd::SetVisible(TRUE);
-			m_bFlash = TRUE;
-
-			//Move(GetCaretRect(),FALSE,TRUE);
-			Move(m_rcInvalid, FALSE, TRUE);
-		}
-	}
-	else
-	{
-		m_ptHead = CPDF_Point(0, 0);
-		m_ptFoot = CPDF_Point(0, 0);
-
-		m_bFlash = FALSE;
-		if (IsVisible())
-		{
-			EndTimer();
-			CPWL_Wnd::SetVisible(FALSE);
-		}
-	}
+void CPWL_Caret::SetCaret(FX_BOOL bVisible,
+                          const CPDF_Point& ptHead,
+                          const CPDF_Point& ptFoot) {
+  if (bVisible) {
+    if (IsVisible()) {
+      if (m_ptHead.x != ptHead.x || m_ptHead.y != ptHead.y ||
+          m_ptFoot.x != ptFoot.x || m_ptFoot.y != ptFoot.y) {
+        m_ptHead = ptHead;
+        m_ptFoot = ptFoot;
+
+        m_bFlash = TRUE;
+        // Move(GetCaretRect(),FALSE,TRUE);
+        Move(m_rcInvalid, FALSE, TRUE);
+      }
+    } else {
+      m_ptHead = ptHead;
+      m_ptFoot = ptFoot;
+
+      EndTimer();
+      BeginTimer(PWL_CARET_FLASHINTERVAL);
+
+      CPWL_Wnd::SetVisible(TRUE);
+      m_bFlash = TRUE;
+
+      // Move(GetCaretRect(),FALSE,TRUE);
+      Move(m_rcInvalid, FALSE, TRUE);
+    }
+  } else {
+    m_ptHead = CPDF_Point(0, 0);
+    m_ptFoot = CPDF_Point(0, 0);
+
+    m_bFlash = FALSE;
+    if (IsVisible()) {
+      EndTimer();
+      CPWL_Wnd::SetVisible(FALSE);
+    }
+  }
 }
 
-void CPWL_Caret::InvalidateRect(CPDF_Rect * pRect)
-{
-	if (pRect)
-	{
-		CPDF_Rect rcRefresh = CPWL_Utils::InflateRect(*pRect,0.5f);
-		rcRefresh.top += 1;
-		rcRefresh.bottom -= 1;
-
-		CPWL_Wnd::InvalidateRect(&rcRefresh);
-	}
-	else
-		CPWL_Wnd::InvalidateRect(pRect);
-}
+void CPWL_Caret::InvalidateRect(CPDF_Rect* pRect) {
+  if (pRect) {
+    CPDF_Rect rcRefresh = CPWL_Utils::InflateRect(*pRect, 0.5f);
+    rcRefresh.top += 1;
+    rcRefresh.bottom -= 1;
 
+    CPWL_Wnd::InvalidateRect(&rcRefresh);
+  } else
+    CPWL_Wnd::InvalidateRect(pRect);
+}
diff --git a/fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp b/fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp
index 80115ab7cf..932f8c56d6 100644
--- a/fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp
@@ -12,682 +12,643 @@
 #include "../../include/pdfwindow/PWL_ComboBox.h"
 #include "../../include/pdfwindow/PWL_Utils.h"
 
-#define PWLCB_DEFAULTFONTSIZE  12.0f
-
-#define IsFloatZero(f)                      ((f) < 0.0001 && (f) > -0.0001)
-#define IsFloatBigger(fa,fb)                ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatSmaller(fa,fb)               ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatEqual(fa,fb)                 IsFloatZero((fa)-(fb))
+#define PWLCB_DEFAULTFONTSIZE 12.0f
 
+#define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001)
+#define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb))
 
 /* ---------------------------- CPWL_CBListBox ---------------------------- */
 
-FX_BOOL CPWL_CBListBox::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-    CPWL_Wnd::OnLButtonUp(point,nFlag);
-
-    if (m_bMouseDown)
-    {
-        ReleaseCapture();
-        m_bMouseDown = FALSE;
-
-        if (ClientHitTest(point))
-        {
-            if (CPWL_Wnd * pParent = GetParentWindow())
-            {
-                pParent->OnNotify(this,PNM_LBUTTONUP,0,PWL_MAKEDWORD(point.x,point.y));
-            }
-
-            FX_BOOL bExit = FALSE;
-            OnNotifySelChanged(FALSE,bExit, nFlag);
-            if (bExit) return FALSE;
-        }
+FX_BOOL CPWL_CBListBox::OnLButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonUp(point, nFlag);
+
+  if (m_bMouseDown) {
+    ReleaseCapture();
+    m_bMouseDown = FALSE;
+
+    if (ClientHitTest(point)) {
+      if (CPWL_Wnd* pParent = GetParentWindow()) {
+        pParent->OnNotify(this, PNM_LBUTTONUP, 0,
+                          PWL_MAKEDWORD(point.x, point.y));
+      }
+
+      FX_BOOL bExit = FALSE;
+      OnNotifySelChanged(FALSE, bExit, nFlag);
+      if (bExit)
+        return FALSE;
     }
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL CPWL_CBListBox::OnKeyDownWithExit(FX_WORD nChar, FX_BOOL & bExit, FX_DWORD nFlag)
-{
-    if (!m_pList) return FALSE;
+FX_BOOL CPWL_CBListBox::OnKeyDownWithExit(FX_WORD nChar,
+                                          FX_BOOL& bExit,
+                                          FX_DWORD nFlag) {
+  if (!m_pList)
+    return FALSE;
 
-    switch (nChar)
-    {
+  switch (nChar) {
     default:
-        return FALSE;
+      return FALSE;
     case FWL_VKEY_Up:
     case FWL_VKEY_Down:
     case FWL_VKEY_Home:
     case FWL_VKEY_Left:
     case FWL_VKEY_End:
     case FWL_VKEY_Right:
-        break;
-    }
+      break;
+  }
 
-    switch (nChar)
-    {
+  switch (nChar) {
     case FWL_VKEY_Up:
-        m_pList->OnVK_UP(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-        break;
+      m_pList->OnVK_UP(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      break;
     case FWL_VKEY_Down:
-        m_pList->OnVK_DOWN(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-        break;
+      m_pList->OnVK_DOWN(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      break;
     case FWL_VKEY_Home:
-        m_pList->OnVK_HOME(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-        break;
+      m_pList->OnVK_HOME(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      break;
     case FWL_VKEY_Left:
-        m_pList->OnVK_LEFT(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-        break;
+      m_pList->OnVK_LEFT(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      break;
     case FWL_VKEY_End:
-        m_pList->OnVK_END(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-        break;
+      m_pList->OnVK_END(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      break;
     case FWL_VKEY_Right:
-        m_pList->OnVK_RIGHT(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-        break;
+      m_pList->OnVK_RIGHT(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      break;
     case FWL_VKEY_Delete:
-        break;
-    }
+      break;
+  }
 
-    OnNotifySelChanged(TRUE,bExit, nFlag);
+  OnNotifySelChanged(TRUE, bExit, nFlag);
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL CPWL_CBListBox::OnCharWithExit(FX_WORD nChar, FX_BOOL & bExit, FX_DWORD nFlag)
-{
-    if (!m_pList) return FALSE;
+FX_BOOL CPWL_CBListBox::OnCharWithExit(FX_WORD nChar,
+                                       FX_BOOL& bExit,
+                                       FX_DWORD nFlag) {
+  if (!m_pList)
+    return FALSE;
 
-    if (!m_pList->OnChar(nChar,IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag))) return FALSE;
+  if (!m_pList->OnChar(nChar, IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag)))
+    return FALSE;
 
-    if (CPWL_ComboBox* pComboBox = (CPWL_ComboBox*)GetParentWindow())
-    {
-        pComboBox->SetSelectText();
-    }
+  if (CPWL_ComboBox* pComboBox = (CPWL_ComboBox*)GetParentWindow()) {
+    pComboBox->SetSelectText();
+  }
 
-    OnNotifySelChanged(TRUE,bExit,nFlag);
+  OnNotifySelChanged(TRUE, bExit, nFlag);
 
-    return TRUE;
+  return TRUE;
 }
 
 /* ---------------------------- CPWL_CBButton ---------------------------- */
 
-void CPWL_CBButton::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream)
-{
-    CPWL_Wnd::GetThisAppearanceStream(sAppStream);
+void CPWL_CBButton::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) {
+  CPWL_Wnd::GetThisAppearanceStream(sAppStream);
 
-    CPDF_Rect rectWnd = CPWL_Wnd::GetWindowRect();
+  CPDF_Rect rectWnd = CPWL_Wnd::GetWindowRect();
 
-    if (IsVisible() && !rectWnd.IsEmpty())
-    {
-        CFX_ByteTextBuf sButton;
+  if (IsVisible() && !rectWnd.IsEmpty()) {
+    CFX_ByteTextBuf sButton;
 
-        CPDF_Point ptCenter = GetCenterPoint();
+    CPDF_Point ptCenter = GetCenterPoint();
 
-        CPDF_Point pt1(ptCenter.x - PWL_CBBUTTON_TRIANGLE_HALFLEN,ptCenter.y + PWL_CBBUTTON_TRIANGLE_HALFLEN * 0.5f);
-        CPDF_Point pt2(ptCenter.x + PWL_CBBUTTON_TRIANGLE_HALFLEN,ptCenter.y + PWL_CBBUTTON_TRIANGLE_HALFLEN * 0.5f);
-        CPDF_Point pt3(ptCenter.x,ptCenter.y - PWL_CBBUTTON_TRIANGLE_HALFLEN * 0.5f);
+    CPDF_Point pt1(ptCenter.x - PWL_CBBUTTON_TRIANGLE_HALFLEN,
+                   ptCenter.y + PWL_CBBUTTON_TRIANGLE_HALFLEN * 0.5f);
+    CPDF_Point pt2(ptCenter.x + PWL_CBBUTTON_TRIANGLE_HALFLEN,
+                   ptCenter.y + PWL_CBBUTTON_TRIANGLE_HALFLEN * 0.5f);
+    CPDF_Point pt3(ptCenter.x,
+                   ptCenter.y - PWL_CBBUTTON_TRIANGLE_HALFLEN * 0.5f);
 
-        if (IsFloatBigger(rectWnd.right - rectWnd.left,PWL_CBBUTTON_TRIANGLE_HALFLEN * 2)
-            &&
-            IsFloatBigger(rectWnd.top - rectWnd.bottom,PWL_CBBUTTON_TRIANGLE_HALFLEN)
-            )
-        {
-            sButton << "0 g\n";
-            sButton << pt1.x << " " << pt1.y << " m\n";
-            sButton << pt2.x << " " << pt2.y << " l\n";
-            sButton << pt3.x << " " << pt3.y << " l\n";
-            sButton << pt1.x << " " << pt1.y << " l f\n";
+    if (IsFloatBigger(rectWnd.right - rectWnd.left,
+                      PWL_CBBUTTON_TRIANGLE_HALFLEN * 2) &&
+        IsFloatBigger(rectWnd.top - rectWnd.bottom,
+                      PWL_CBBUTTON_TRIANGLE_HALFLEN)) {
+      sButton << "0 g\n";
+      sButton << pt1.x << " " << pt1.y << " m\n";
+      sButton << pt2.x << " " << pt2.y << " l\n";
+      sButton << pt3.x << " " << pt3.y << " l\n";
+      sButton << pt1.x << " " << pt1.y << " l f\n";
 
-            sAppStream << "q\n" << sButton << "Q\n";
-        }
+      sAppStream << "q\n" << sButton << "Q\n";
     }
+  }
 }
 
-void CPWL_CBButton::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-    CPWL_Wnd::DrawThisAppearance(pDevice,pUser2Device);
+void CPWL_CBButton::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                       CPDF_Matrix* pUser2Device) {
+  CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
 
-    CPDF_Rect rectWnd = CPWL_Wnd::GetWindowRect();
+  CPDF_Rect rectWnd = CPWL_Wnd::GetWindowRect();
 
-    if (IsVisible() && !rectWnd.IsEmpty())
-    {
-        CPDF_Point ptCenter = GetCenterPoint();
+  if (IsVisible() && !rectWnd.IsEmpty()) {
+    CPDF_Point ptCenter = GetCenterPoint();
 
-        CPDF_Point pt1(ptCenter.x - PWL_CBBUTTON_TRIANGLE_HALFLEN,ptCenter.y + PWL_CBBUTTON_TRIANGLE_HALFLEN * 0.5f);
-        CPDF_Point pt2(ptCenter.x + PWL_CBBUTTON_TRIANGLE_HALFLEN,ptCenter.y + PWL_CBBUTTON_TRIANGLE_HALFLEN * 0.5f);
-        CPDF_Point pt3(ptCenter.x,ptCenter.y - PWL_CBBUTTON_TRIANGLE_HALFLEN * 0.5f);
+    CPDF_Point pt1(ptCenter.x - PWL_CBBUTTON_TRIANGLE_HALFLEN,
+                   ptCenter.y + PWL_CBBUTTON_TRIANGLE_HALFLEN * 0.5f);
+    CPDF_Point pt2(ptCenter.x + PWL_CBBUTTON_TRIANGLE_HALFLEN,
+                   ptCenter.y + PWL_CBBUTTON_TRIANGLE_HALFLEN * 0.5f);
+    CPDF_Point pt3(ptCenter.x,
+                   ptCenter.y - PWL_CBBUTTON_TRIANGLE_HALFLEN * 0.5f);
 
-        if (IsFloatBigger(rectWnd.right - rectWnd.left,PWL_CBBUTTON_TRIANGLE_HALFLEN * 2)
-            &&
-            IsFloatBigger(rectWnd.top - rectWnd.bottom,PWL_CBBUTTON_TRIANGLE_HALFLEN)
-            )
-        {
-            CFX_PathData path;
+    if (IsFloatBigger(rectWnd.right - rectWnd.left,
+                      PWL_CBBUTTON_TRIANGLE_HALFLEN * 2) &&
+        IsFloatBigger(rectWnd.top - rectWnd.bottom,
+                      PWL_CBBUTTON_TRIANGLE_HALFLEN)) {
+      CFX_PathData path;
 
-            path.SetPointCount(4);
-            path.SetPoint(0, pt1.x, pt1.y, FXPT_MOVETO);
-            path.SetPoint(1, pt2.x, pt2.y, FXPT_LINETO);
-            path.SetPoint(2, pt3.x, pt3.y, FXPT_LINETO);
-            path.SetPoint(3, pt1.x, pt1.y, FXPT_LINETO);
+      path.SetPointCount(4);
+      path.SetPoint(0, pt1.x, pt1.y, FXPT_MOVETO);
+      path.SetPoint(1, pt2.x, pt2.y, FXPT_LINETO);
+      path.SetPoint(2, pt3.x, pt3.y, FXPT_LINETO);
+      path.SetPoint(3, pt1.x, pt1.y, FXPT_LINETO);
 
-            pDevice->DrawPath(&path, pUser2Device, NULL,
-                CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_BLACKCOLOR,GetTransparency()),
-                0, FXFILL_ALTERNATE);
-        }
+      pDevice->DrawPath(&path, pUser2Device, NULL,
+                        CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_BLACKCOLOR,
+                                                      GetTransparency()),
+                        0, FXFILL_ALTERNATE);
     }
+  }
 }
 
-FX_BOOL CPWL_CBButton::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag)
-{
-    CPWL_Wnd::OnLButtonDown(point,nFlag);
+FX_BOOL CPWL_CBButton::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonDown(point, nFlag);
 
-    SetCapture();
+  SetCapture();
 
-    if (CPWL_Wnd * pParent = GetParentWindow())
-    {
-        pParent->OnNotify(this,PNM_LBUTTONDOWN,0,PWL_MAKEDWORD(point.x,point.y));
-    }
+  if (CPWL_Wnd* pParent = GetParentWindow()) {
+    pParent->OnNotify(this, PNM_LBUTTONDOWN, 0,
+                      PWL_MAKEDWORD(point.x, point.y));
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL CPWL_CBButton::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-    CPWL_Wnd::OnLButtonUp(point, nFlag);
+FX_BOOL CPWL_CBButton::OnLButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonUp(point, nFlag);
 
-    ReleaseCapture();
+  ReleaseCapture();
 
-    return TRUE;
+  return TRUE;
 }
 
 /* ---------------------------- CPWL_ComboBox ---------------------------- */
 
-CPWL_ComboBox::CPWL_ComboBox() : m_pEdit(NULL),
-    m_pButton(NULL),
-    m_pList(NULL),
-    m_bPopup(FALSE),
-    m_nPopupWhere(0),
-    m_nSelectItem(-1),
-    m_pFillerNotify(NULL)
-{
-}
+CPWL_ComboBox::CPWL_ComboBox()
+    : m_pEdit(NULL),
+      m_pButton(NULL),
+      m_pList(NULL),
+      m_bPopup(FALSE),
+      m_nPopupWhere(0),
+      m_nSelectItem(-1),
+      m_pFillerNotify(NULL) {}
 
-CFX_ByteString CPWL_ComboBox::GetClassName() const
-{
-    return "CPWL_ComboBox";
+CFX_ByteString CPWL_ComboBox::GetClassName() const {
+  return "CPWL_ComboBox";
 }
 
-void CPWL_ComboBox::OnCreate(PWL_CREATEPARAM & cp)
-{
-    cp.dwFlags &= ~PWS_HSCROLL;
-    cp.dwFlags &= ~PWS_VSCROLL;
+void CPWL_ComboBox::OnCreate(PWL_CREATEPARAM& cp) {
+  cp.dwFlags &= ~PWS_HSCROLL;
+  cp.dwFlags &= ~PWS_VSCROLL;
 }
 
-void CPWL_ComboBox::SetFocus()
-{
-    if (m_pEdit)
-        m_pEdit->SetFocus();
+void CPWL_ComboBox::SetFocus() {
+  if (m_pEdit)
+    m_pEdit->SetFocus();
 }
 
-void CPWL_ComboBox::KillFocus()
-{
-    SetPopup(FALSE);
-    CPWL_Wnd::KillFocus();
+void CPWL_ComboBox::KillFocus() {
+  SetPopup(FALSE);
+  CPWL_Wnd::KillFocus();
 }
 
-CFX_WideString CPWL_ComboBox::GetText() const
-{
-    if (m_pEdit)
-    {
-        return m_pEdit->GetText();
-    }
-    return CFX_WideString();
+CFX_WideString CPWL_ComboBox::GetText() const {
+  if (m_pEdit) {
+    return m_pEdit->GetText();
+  }
+  return CFX_WideString();
 }
 
-void CPWL_ComboBox::SetText(const FX_WCHAR* text)
-{
-    if (m_pEdit)
-        m_pEdit->SetText(text);
+void CPWL_ComboBox::SetText(const FX_WCHAR* text) {
+  if (m_pEdit)
+    m_pEdit->SetText(text);
 }
 
-void CPWL_ComboBox::AddString(const FX_WCHAR* string)
-{
-    if (m_pList)
-        m_pList->AddString(string);
+void CPWL_ComboBox::AddString(const FX_WCHAR* string) {
+  if (m_pList)
+    m_pList->AddString(string);
 }
 
-int32_t CPWL_ComboBox::GetSelect() const
-{
-    return m_nSelectItem;
+int32_t CPWL_ComboBox::GetSelect() const {
+  return m_nSelectItem;
 }
 
-void CPWL_ComboBox::SetSelect(int32_t nItemIndex)
-{
-    if (m_pList)
-        m_pList->Select(nItemIndex);
+void CPWL_ComboBox::SetSelect(int32_t nItemIndex) {
+  if (m_pList)
+    m_pList->Select(nItemIndex);
 
-    m_pEdit->SetText(m_pList->GetText().c_str());
+  m_pEdit->SetText(m_pList->GetText().c_str());
 
-    m_nSelectItem = nItemIndex;
+  m_nSelectItem = nItemIndex;
 }
 
-void CPWL_ComboBox::SetEditSel(int32_t nStartChar,int32_t nEndChar)
-{
-    if (m_pEdit)
-    {
-        m_pEdit->SetSel(nStartChar,nEndChar);
-    }
+void CPWL_ComboBox::SetEditSel(int32_t nStartChar, int32_t nEndChar) {
+  if (m_pEdit) {
+    m_pEdit->SetSel(nStartChar, nEndChar);
+  }
 }
 
-void CPWL_ComboBox::GetEditSel(int32_t & nStartChar, int32_t & nEndChar) const
-{
-    nStartChar = -1;
-    nEndChar = -1;
+void CPWL_ComboBox::GetEditSel(int32_t& nStartChar, int32_t& nEndChar) const {
+  nStartChar = -1;
+  nEndChar = -1;
 
-    if (m_pEdit)
-    {
-        m_pEdit->GetSel(nStartChar,nEndChar);
-    }
+  if (m_pEdit) {
+    m_pEdit->GetSel(nStartChar, nEndChar);
+  }
 }
 
-void CPWL_ComboBox::Clear()
-{
-    if (m_pEdit)
-    {
-        m_pEdit->Clear();
-    }
+void CPWL_ComboBox::Clear() {
+  if (m_pEdit) {
+    m_pEdit->Clear();
+  }
 }
 
-void CPWL_ComboBox::CreateChildWnd(const PWL_CREATEPARAM & cp)
-{
-    CreateEdit(cp);
-    CreateButton(cp);
-    CreateListBox(cp);
+void CPWL_ComboBox::CreateChildWnd(const PWL_CREATEPARAM& cp) {
+  CreateEdit(cp);
+  CreateButton(cp);
+  CreateListBox(cp);
 }
 
-void CPWL_ComboBox::CreateEdit(const PWL_CREATEPARAM & cp)
-{
-    if (!m_pEdit)
-    {
-        m_pEdit = new CPWL_CBEdit;
-        m_pEdit->AttachFFLData(m_pFormFiller);
+void CPWL_ComboBox::CreateEdit(const PWL_CREATEPARAM& cp) {
+  if (!m_pEdit) {
+    m_pEdit = new CPWL_CBEdit;
+    m_pEdit->AttachFFLData(m_pFormFiller);
 
-        PWL_CREATEPARAM ecp = cp;
-        ecp.pParentWnd = this;
-        ecp.dwFlags =  PWS_VISIBLE | PWS_CHILD | PWS_BORDER | PES_CENTER | PES_AUTOSCROLL | PES_UNDO;
+    PWL_CREATEPARAM ecp = cp;
+    ecp.pParentWnd = this;
+    ecp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BORDER | PES_CENTER |
+                  PES_AUTOSCROLL | PES_UNDO;
 
-        if (HasFlag(PWS_AUTOFONTSIZE))
-            ecp.dwFlags |= PWS_AUTOFONTSIZE;
+    if (HasFlag(PWS_AUTOFONTSIZE))
+      ecp.dwFlags |= PWS_AUTOFONTSIZE;
 
-        if (!HasFlag(PCBS_ALLOWCUSTOMTEXT))
-            ecp.dwFlags |= PWS_READONLY;
+    if (!HasFlag(PCBS_ALLOWCUSTOMTEXT))
+      ecp.dwFlags |= PWS_READONLY;
 
-        ecp.rcRectWnd = CPDF_Rect(0,0,0,0);
-        ecp.dwBorderWidth = 0;
-        ecp.nBorderStyle = PBS_SOLID;
+    ecp.rcRectWnd = CPDF_Rect(0, 0, 0, 0);
+    ecp.dwBorderWidth = 0;
+    ecp.nBorderStyle = PBS_SOLID;
 
-        m_pEdit->Create(ecp);
-    }
+    m_pEdit->Create(ecp);
+  }
 }
 
-void CPWL_ComboBox::CreateButton(const PWL_CREATEPARAM & cp)
-{
-    if (!m_pButton)
-    {
-        m_pButton = new CPWL_CBButton;
+void CPWL_ComboBox::CreateButton(const PWL_CREATEPARAM& cp) {
+  if (!m_pButton) {
+    m_pButton = new CPWL_CBButton;
 
-        PWL_CREATEPARAM bcp = cp;
-        bcp.pParentWnd = this;
-        bcp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BORDER | PWS_BACKGROUND;
-        bcp.sBackgroundColor = PWL_SCROLLBAR_BKCOLOR;
-        bcp.sBorderColor = PWL_DEFAULT_BLACKCOLOR;
-        bcp.dwBorderWidth = 2;
-        bcp.nBorderStyle = PBS_BEVELED;
-        bcp.eCursorType = FXCT_ARROW;
+    PWL_CREATEPARAM bcp = cp;
+    bcp.pParentWnd = this;
+    bcp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BORDER | PWS_BACKGROUND;
+    bcp.sBackgroundColor = PWL_SCROLLBAR_BKCOLOR;
+    bcp.sBorderColor = PWL_DEFAULT_BLACKCOLOR;
+    bcp.dwBorderWidth = 2;
+    bcp.nBorderStyle = PBS_BEVELED;
+    bcp.eCursorType = FXCT_ARROW;
 
-        m_pButton->Create(bcp);
-    }
+    m_pButton->Create(bcp);
+  }
 }
 
-void CPWL_ComboBox::CreateListBox(const PWL_CREATEPARAM & cp)
-{
-    if (!m_pList)
-    {
-        m_pList = new CPWL_CBListBox;
-        m_pList->AttachFFLData(m_pFormFiller);
-        PWL_CREATEPARAM lcp = cp;
-        lcp.pParentWnd = this;
-        lcp.dwFlags = PWS_CHILD | PWS_BORDER | PWS_BACKGROUND | PLBS_HOVERSEL | PWS_VSCROLL;
-        lcp.nBorderStyle = PBS_SOLID;
-        lcp.dwBorderWidth = 1;
-        lcp.eCursorType = FXCT_ARROW;
-        lcp.rcRectWnd = CPDF_Rect(0,0,0,0);
-
-        if (cp.dwFlags & PWS_AUTOFONTSIZE)
-            lcp.fFontSize = PWLCB_DEFAULTFONTSIZE;
-        else
-            lcp.fFontSize = cp.fFontSize;
-
-        if (cp.sBorderColor.nColorType == COLORTYPE_TRANSPARENT)
-            lcp.sBorderColor = PWL_DEFAULT_BLACKCOLOR;
-
-        if (cp.sBackgroundColor.nColorType == COLORTYPE_TRANSPARENT)
-            lcp.sBackgroundColor = PWL_DEFAULT_WHITECOLOR;
-
-        m_pList->Create(lcp);
-    }
+void CPWL_ComboBox::CreateListBox(const PWL_CREATEPARAM& cp) {
+  if (!m_pList) {
+    m_pList = new CPWL_CBListBox;
+    m_pList->AttachFFLData(m_pFormFiller);
+    PWL_CREATEPARAM lcp = cp;
+    lcp.pParentWnd = this;
+    lcp.dwFlags =
+        PWS_CHILD | PWS_BORDER | PWS_BACKGROUND | PLBS_HOVERSEL | PWS_VSCROLL;
+    lcp.nBorderStyle = PBS_SOLID;
+    lcp.dwBorderWidth = 1;
+    lcp.eCursorType = FXCT_ARROW;
+    lcp.rcRectWnd = CPDF_Rect(0, 0, 0, 0);
+
+    if (cp.dwFlags & PWS_AUTOFONTSIZE)
+      lcp.fFontSize = PWLCB_DEFAULTFONTSIZE;
+    else
+      lcp.fFontSize = cp.fFontSize;
+
+    if (cp.sBorderColor.nColorType == COLORTYPE_TRANSPARENT)
+      lcp.sBorderColor = PWL_DEFAULT_BLACKCOLOR;
+
+    if (cp.sBackgroundColor.nColorType == COLORTYPE_TRANSPARENT)
+      lcp.sBackgroundColor = PWL_DEFAULT_WHITECOLOR;
+
+    m_pList->Create(lcp);
+  }
 }
 
-void CPWL_ComboBox::RePosChildWnd()
-{
-    CPDF_Rect rcClient = GetClientRect();
+void CPWL_ComboBox::RePosChildWnd() {
+  CPDF_Rect rcClient = GetClientRect();
 
-    if (m_bPopup)
-    {
-        CPDF_Rect rclient = GetClientRect();
-        CPDF_Rect rcButton = rclient;
-        CPDF_Rect rcEdit = rcClient;
-        CPDF_Rect rcList = CPWL_Wnd::GetWindowRect();
+  if (m_bPopup) {
+    CPDF_Rect rclient = GetClientRect();
+    CPDF_Rect rcButton = rclient;
+    CPDF_Rect rcEdit = rcClient;
+    CPDF_Rect rcList = CPWL_Wnd::GetWindowRect();
 
-        FX_FLOAT fOldWindowHeight = m_rcOldWindow.Height();
-        FX_FLOAT fOldClientHeight = fOldWindowHeight - GetBorderWidth() * 2;
+    FX_FLOAT fOldWindowHeight = m_rcOldWindow.Height();
+    FX_FLOAT fOldClientHeight = fOldWindowHeight - GetBorderWidth() * 2;
 
-        switch (m_nPopupWhere)
-        {
-        case 0:
-            rcButton.left = rcButton.right - PWL_COMBOBOX_BUTTON_WIDTH;
+    switch (m_nPopupWhere) {
+      case 0:
+        rcButton.left = rcButton.right - PWL_COMBOBOX_BUTTON_WIDTH;
 
-            if (rcButton.left < rclient.left)
-                rcButton.left = rclient.left;
+        if (rcButton.left < rclient.left)
+          rcButton.left = rclient.left;
 
-            rcButton.bottom = rcButton.top - fOldClientHeight;
+        rcButton.bottom = rcButton.top - fOldClientHeight;
 
-            rcEdit.right = rcButton.left - 1.0f;
+        rcEdit.right = rcButton.left - 1.0f;
 
-            if (rcEdit.left < rclient.left)
-                rcEdit.left = rclient.left;
+        if (rcEdit.left < rclient.left)
+          rcEdit.left = rclient.left;
 
-            if (rcEdit.right < rcEdit.left)
-                rcEdit.right = rcEdit.left;
+        if (rcEdit.right < rcEdit.left)
+          rcEdit.right = rcEdit.left;
 
-            rcEdit.bottom = rcEdit.top - fOldClientHeight;
+        rcEdit.bottom = rcEdit.top - fOldClientHeight;
 
-            rcList.top -= fOldWindowHeight;
+        rcList.top -= fOldWindowHeight;
 
-            break;
-        case 1:
-            rcButton.left = rcButton.right - PWL_COMBOBOX_BUTTON_WIDTH;
+        break;
+      case 1:
+        rcButton.left = rcButton.right - PWL_COMBOBOX_BUTTON_WIDTH;
 
-            if (rcButton.left < rclient.left)
-                rcButton.left = rclient.left;
+        if (rcButton.left < rclient.left)
+          rcButton.left = rclient.left;
 
-            rcButton.top = rcButton.bottom + fOldClientHeight;
+        rcButton.top = rcButton.bottom + fOldClientHeight;
 
-            rcEdit.right = rcButton.left - 1.0f;
+        rcEdit.right = rcButton.left - 1.0f;
 
-            if (rcEdit.left < rclient.left)
-                rcEdit.left = rclient.left;
+        if (rcEdit.left < rclient.left)
+          rcEdit.left = rclient.left;
 
-            if (rcEdit.right < rcEdit.left)
-                rcEdit.right = rcEdit.left;
+        if (rcEdit.right < rcEdit.left)
+          rcEdit.right = rcEdit.left;
 
-            rcEdit.top = rcEdit.bottom + fOldClientHeight;
+        rcEdit.top = rcEdit.bottom + fOldClientHeight;
 
-            rcList.bottom += fOldWindowHeight;
+        rcList.bottom += fOldWindowHeight;
 
-            break;
-        }
+        break;
+    }
 
-        if (m_pButton)
-            m_pButton->Move(rcButton,TRUE,FALSE);
+    if (m_pButton)
+      m_pButton->Move(rcButton, TRUE, FALSE);
 
-        if (m_pEdit)
-            m_pEdit->Move(rcEdit,TRUE,FALSE);
+    if (m_pEdit)
+      m_pEdit->Move(rcEdit, TRUE, FALSE);
 
-        if (m_pList)
-        {
-            m_pList->SetVisible(TRUE);
-            m_pList->Move(rcList,TRUE,FALSE);
-            m_pList->ScrollToListItem(m_nSelectItem);
-        }
+    if (m_pList) {
+      m_pList->SetVisible(TRUE);
+      m_pList->Move(rcList, TRUE, FALSE);
+      m_pList->ScrollToListItem(m_nSelectItem);
     }
-    else
-    {
-        CPDF_Rect rcButton = rcClient;
+  } else {
+    CPDF_Rect rcButton = rcClient;
 
-        rcButton.left = rcButton.right - PWL_COMBOBOX_BUTTON_WIDTH;
+    rcButton.left = rcButton.right - PWL_COMBOBOX_BUTTON_WIDTH;
 
-        if (rcButton.left < rcClient.left)
-            rcButton.left = rcClient.left;
+    if (rcButton.left < rcClient.left)
+      rcButton.left = rcClient.left;
 
-        if (m_pButton)
-            m_pButton->Move(rcButton,TRUE,FALSE);
+    if (m_pButton)
+      m_pButton->Move(rcButton, TRUE, FALSE);
 
-        CPDF_Rect rcEdit = rcClient;
-        rcEdit.right = rcButton.left - 1.0f;
+    CPDF_Rect rcEdit = rcClient;
+    rcEdit.right = rcButton.left - 1.0f;
 
-        if (rcEdit.left < rcClient.left)
-            rcEdit.left = rcClient.left;
+    if (rcEdit.left < rcClient.left)
+      rcEdit.left = rcClient.left;
 
-        if (rcEdit.right < rcEdit.left)
-            rcEdit.right = rcEdit.left;
+    if (rcEdit.right < rcEdit.left)
+      rcEdit.right = rcEdit.left;
 
-        if (m_pEdit)
-            m_pEdit->Move(rcEdit,TRUE,FALSE);
+    if (m_pEdit)
+      m_pEdit->Move(rcEdit, TRUE, FALSE);
 
-        if (m_pList)
-            m_pList->SetVisible(FALSE);
-    }
+    if (m_pList)
+      m_pList->SetVisible(FALSE);
+  }
 }
 
-void CPWL_ComboBox::SelectAll()
-{
-    if (m_pEdit && HasFlag(PCBS_ALLOWCUSTOMTEXT))
-        m_pEdit->SelectAll();
-}
-
-CPDF_Rect CPWL_ComboBox::GetFocusRect() const
-{
-    return CPDF_Rect();
-}
-
-void CPWL_ComboBox::SetPopup(FX_BOOL bPopup)
-{
-	if (!m_pList) return;
-	if (bPopup == m_bPopup) return;
-	FX_FLOAT fListHeight = m_pList->GetContentRect().Height();
-	if (!IsFloatBigger(fListHeight,0.0f)) return;
-
-	if (bPopup)
-	{
-		if (m_pFillerNotify)
-		{
-			FX_BOOL bExit = FALSE;
-			m_pFillerNotify->OnPopupPreOpen(GetAttachedData(), bExit, 0);
-			if (bExit) return;
-
-			int32_t nWhere = 0;
-			FX_FLOAT fPopupRet = 0.0f;
-			FX_FLOAT fPopupMin = 0.0f;
-			if (m_pList->GetCount() > 3)
-				fPopupMin = m_pList->GetFirstHeight() * 3 + m_pList->GetBorderWidth() * 2;
-			FX_FLOAT fPopupMax = fListHeight + m_pList->GetBorderWidth() * 2;
-			m_pFillerNotify->QueryWherePopup(GetAttachedData(), fPopupMin,fPopupMax,nWhere,fPopupRet);
-
-			if (IsFloatBigger(fPopupRet,0.0f))
-			{
-				m_bPopup = bPopup;
-
-				CPDF_Rect rcWindow = CPWL_Wnd::GetWindowRect();
-				m_rcOldWindow = rcWindow;
-				switch (nWhere)
-				{
-				default:
-				case 0:
-					rcWindow.bottom -= fPopupRet;
-					break;
-				case 1:
-					rcWindow.top += fPopupRet;
-					break;
-				}
-
-				m_nPopupWhere = nWhere;
-				Move(rcWindow, TRUE, TRUE);
-
-				bExit = FALSE;
-				m_pFillerNotify->OnPopupPostOpen(GetAttachedData(), bExit, 0);
-				if (bExit) return;
-			}
-		}
-	}
-	else
-	{
-		m_bPopup = bPopup;
-		Move(m_rcOldWindow, TRUE, TRUE);
-	}
-}
-
-FX_BOOL CPWL_ComboBox::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag)
-{
-	if (!m_pList) return FALSE;
-	if (!m_pEdit) return FALSE;
-
-	m_nSelectItem = -1;
-
-	switch (nChar)
-	{
-	case FWL_VKEY_Up:
-		if (m_pList->GetCurSel() > 0)
-		{
-			FX_BOOL bExit = FALSE;
-
-			if (m_pFillerNotify)
-			{
-				m_pFillerNotify->OnPopupPreOpen(GetAttachedData(), bExit, nFlag);
-				if (bExit) return FALSE;
-				bExit = FALSE;
-				m_pFillerNotify->OnPopupPostOpen(GetAttachedData(), bExit, nFlag);
-				if (bExit) return FALSE;
-			}
-			if (m_pList->OnKeyDownWithExit(nChar,bExit,nFlag))
-			{
-				if (bExit) return FALSE;
-				SetSelectText();
-			}
-		}
-		return TRUE;
-	case FWL_VKEY_Down:
-		if (m_pList->GetCurSel() < m_pList->GetCount() - 1)
-		{
-			FX_BOOL bExit = FALSE;
-
-			if (m_pFillerNotify)
-			{
-				m_pFillerNotify->OnPopupPreOpen(GetAttachedData(), bExit, nFlag);
-				if (bExit) return FALSE;
-				bExit = FALSE;
-				m_pFillerNotify->OnPopupPostOpen(GetAttachedData(), bExit, nFlag);
-				if (bExit) return FALSE;
-			}
-			if (m_pList->OnKeyDownWithExit(nChar,bExit,nFlag))
-			{
-				if (bExit) return FALSE;
-				SetSelectText();
-			}
-		}
-		return TRUE;
-	}
-
-	if (HasFlag(PCBS_ALLOWCUSTOMTEXT))
-		return m_pEdit->OnKeyDown(nChar,nFlag);
+void CPWL_ComboBox::SelectAll() {
+  if (m_pEdit && HasFlag(PCBS_ALLOWCUSTOMTEXT))
+    m_pEdit->SelectAll();
+}
 
-    return FALSE;
+CPDF_Rect CPWL_ComboBox::GetFocusRect() const {
+  return CPDF_Rect();
+}
+
+void CPWL_ComboBox::SetPopup(FX_BOOL bPopup) {
+  if (!m_pList)
+    return;
+  if (bPopup == m_bPopup)
+    return;
+  FX_FLOAT fListHeight = m_pList->GetContentRect().Height();
+  if (!IsFloatBigger(fListHeight, 0.0f))
+    return;
+
+  if (bPopup) {
+    if (m_pFillerNotify) {
+      FX_BOOL bExit = FALSE;
+      m_pFillerNotify->OnPopupPreOpen(GetAttachedData(), bExit, 0);
+      if (bExit)
+        return;
+
+      int32_t nWhere = 0;
+      FX_FLOAT fPopupRet = 0.0f;
+      FX_FLOAT fPopupMin = 0.0f;
+      if (m_pList->GetCount() > 3)
+        fPopupMin =
+            m_pList->GetFirstHeight() * 3 + m_pList->GetBorderWidth() * 2;
+      FX_FLOAT fPopupMax = fListHeight + m_pList->GetBorderWidth() * 2;
+      m_pFillerNotify->QueryWherePopup(GetAttachedData(), fPopupMin, fPopupMax,
+                                       nWhere, fPopupRet);
+
+      if (IsFloatBigger(fPopupRet, 0.0f)) {
+        m_bPopup = bPopup;
+
+        CPDF_Rect rcWindow = CPWL_Wnd::GetWindowRect();
+        m_rcOldWindow = rcWindow;
+        switch (nWhere) {
+          default:
+          case 0:
+            rcWindow.bottom -= fPopupRet;
+            break;
+          case 1:
+            rcWindow.top += fPopupRet;
+            break;
+        }
+
+        m_nPopupWhere = nWhere;
+        Move(rcWindow, TRUE, TRUE);
+
+        bExit = FALSE;
+        m_pFillerNotify->OnPopupPostOpen(GetAttachedData(), bExit, 0);
+        if (bExit)
+          return;
+      }
+    }
+  } else {
+    m_bPopup = bPopup;
+    Move(m_rcOldWindow, TRUE, TRUE);
+  }
 }
 
-FX_BOOL CPWL_ComboBox::OnChar(FX_WORD nChar, FX_DWORD nFlag)
-{
-    if (!m_pList)
-        return FALSE;
+FX_BOOL CPWL_ComboBox::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag) {
+  if (!m_pList)
+    return FALSE;
+  if (!m_pEdit)
+    return FALSE;
 
-    if (!m_pEdit)
-        return FALSE;
+  m_nSelectItem = -1;
 
-    m_nSelectItem = -1;
-	if (HasFlag(PCBS_ALLOWCUSTOMTEXT))
-		return m_pEdit->OnChar(nChar,nFlag);
+  switch (nChar) {
+    case FWL_VKEY_Up:
+      if (m_pList->GetCurSel() > 0) {
+        FX_BOOL bExit = FALSE;
 
-    FX_BOOL bExit = FALSE;
-    if (m_pFillerNotify)
-    {
-        m_pFillerNotify->OnPopupPreOpen(GetAttachedData(), bExit, nFlag);
-        if (bExit)
+        if (m_pFillerNotify) {
+          m_pFillerNotify->OnPopupPreOpen(GetAttachedData(), bExit, nFlag);
+          if (bExit)
             return FALSE;
+          bExit = FALSE;
+          m_pFillerNotify->OnPopupPostOpen(GetAttachedData(), bExit, nFlag);
+          if (bExit)
+            return FALSE;
+        }
+        if (m_pList->OnKeyDownWithExit(nChar, bExit, nFlag)) {
+          if (bExit)
+            return FALSE;
+          SetSelectText();
+        }
+      }
+      return TRUE;
+    case FWL_VKEY_Down:
+      if (m_pList->GetCurSel() < m_pList->GetCount() - 1) {
+        FX_BOOL bExit = FALSE;
 
-        m_pFillerNotify->OnPopupPostOpen(GetAttachedData(), bExit, nFlag);
-        if (bExit)
+        if (m_pFillerNotify) {
+          m_pFillerNotify->OnPopupPreOpen(GetAttachedData(), bExit, nFlag);
+          if (bExit)
             return FALSE;
-    }
-    if (m_pList->OnCharWithExit(nChar,bExit,nFlag))
-        return bExit;
+          bExit = FALSE;
+          m_pFillerNotify->OnPopupPostOpen(GetAttachedData(), bExit, nFlag);
+          if (bExit)
+            return FALSE;
+        }
+        if (m_pList->OnKeyDownWithExit(nChar, bExit, nFlag)) {
+          if (bExit)
+            return FALSE;
+          SetSelectText();
+        }
+      }
+      return TRUE;
+  }
+
+  if (HasFlag(PCBS_ALLOWCUSTOMTEXT))
+    return m_pEdit->OnKeyDown(nChar, nFlag);
 
+  return FALSE;
+}
+
+FX_BOOL CPWL_ComboBox::OnChar(FX_WORD nChar, FX_DWORD nFlag) {
+  if (!m_pList)
+    return FALSE;
+
+  if (!m_pEdit)
     return FALSE;
+
+  m_nSelectItem = -1;
+  if (HasFlag(PCBS_ALLOWCUSTOMTEXT))
+    return m_pEdit->OnChar(nChar, nFlag);
+
+  FX_BOOL bExit = FALSE;
+  if (m_pFillerNotify) {
+    m_pFillerNotify->OnPopupPreOpen(GetAttachedData(), bExit, nFlag);
+    if (bExit)
+      return FALSE;
+
+    m_pFillerNotify->OnPopupPostOpen(GetAttachedData(), bExit, nFlag);
+    if (bExit)
+      return FALSE;
+  }
+  if (m_pList->OnCharWithExit(nChar, bExit, nFlag))
+    return bExit;
+
+  return FALSE;
 }
 
-void CPWL_ComboBox::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
-{
-    switch (msg)
-    {
+void CPWL_ComboBox::OnNotify(CPWL_Wnd* pWnd,
+                             FX_DWORD msg,
+                             intptr_t wParam,
+                             intptr_t lParam) {
+  switch (msg) {
     case PNM_LBUTTONDOWN:
-        if (pWnd == m_pButton)
-        {
-            SetPopup(!m_bPopup);
-            return;
-        }
-        break;
+      if (pWnd == m_pButton) {
+        SetPopup(!m_bPopup);
+        return;
+      }
+      break;
     case PNM_LBUTTONUP:
-        if (m_pEdit && m_pList)
-        {
-            if (pWnd == m_pList)
-            {
-                SetSelectText();
-                SelectAll();
-                m_pEdit->SetFocus();
-                SetPopup(FALSE);
-                return;
-            }
+      if (m_pEdit && m_pList) {
+        if (pWnd == m_pList) {
+          SetSelectText();
+          SelectAll();
+          m_pEdit->SetFocus();
+          SetPopup(FALSE);
+          return;
         }
-    }
+      }
+  }
 
-    CPWL_Wnd::OnNotify(pWnd,msg,wParam,lParam);
+  CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
 }
 
-FX_BOOL CPWL_ComboBox::IsPopup() const
-{
-    return m_bPopup;
+FX_BOOL CPWL_ComboBox::IsPopup() const {
+  return m_bPopup;
 }
 
-void CPWL_ComboBox::SetSelectText()
-{
-    CFX_WideString swText = m_pList->GetText();
-    m_pEdit->SelectAll();
-    m_pEdit->ReplaceSel(m_pList->GetText().c_str());
-    m_pEdit->SelectAll();
+void CPWL_ComboBox::SetSelectText() {
+  CFX_WideString swText = m_pList->GetText();
+  m_pEdit->SelectAll();
+  m_pEdit->ReplaceSel(m_pList->GetText().c_str());
+  m_pEdit->SelectAll();
 
-    m_nSelectItem = m_pList->GetCurSel();
+  m_nSelectItem = m_pList->GetCurSel();
 }
 
-FX_BOOL CPWL_ComboBox::IsModified() const
-{
-    return m_pEdit->IsModified();
+FX_BOOL CPWL_ComboBox::IsModified() const {
+  return m_pEdit->IsModified();
 }
 
-void CPWL_ComboBox::SetFillerNotify(IPWL_Filler_Notify* pNotify)
-{
-     m_pFillerNotify = pNotify;
+void CPWL_ComboBox::SetFillerNotify(IPWL_Filler_Notify* pNotify) {
+  m_pFillerNotify = pNotify;
 
-     if (m_pEdit)
-         m_pEdit->SetFillerNotify(pNotify);
+  if (m_pEdit)
+    m_pEdit->SetFillerNotify(pNotify);
 
-     if (m_pList)
-         m_pList->SetFillerNotify(pNotify);
+  if (m_pList)
+    m_pList->SetFillerNotify(pNotify);
 }
diff --git a/fpdfsdk/src/pdfwindow/PWL_Edit.cpp b/fpdfsdk/src/pdfwindow/PWL_Edit.cpp
index 58d8a79da1..edefd7ecd2 100644
--- a/fpdfsdk/src/pdfwindow/PWL_Edit.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_Edit.cpp
@@ -17,1301 +17,1209 @@
 
 /* ---------------------------- CPWL_Edit ------------------------------ */
 
-CPWL_Edit::CPWL_Edit() : m_pFillerNotify(NULL),
-	m_pSpellCheck(NULL),
-	m_bFocus(FALSE)
-{
-	m_pFormFiller = NULL;
+CPWL_Edit::CPWL_Edit()
+    : m_pFillerNotify(NULL), m_pSpellCheck(NULL), m_bFocus(FALSE) {
+  m_pFormFiller = NULL;
 }
 
-CPWL_Edit::~CPWL_Edit()
-{
-	ASSERT(m_bFocus == FALSE);
+CPWL_Edit::~CPWL_Edit() {
+  ASSERT(m_bFocus == FALSE);
 }
 
-CFX_ByteString CPWL_Edit::GetClassName() const
-{
-	return PWL_CLASSNAME_EDIT;
+CFX_ByteString CPWL_Edit::GetClassName() const {
+  return PWL_CLASSNAME_EDIT;
 }
 
-void CPWL_Edit::OnDestroy()
-{
-}
+void CPWL_Edit::OnDestroy() {}
+
+void CPWL_Edit::SetText(const FX_WCHAR* csText) {
+  CFX_WideString swText = csText;
+
+  if (HasFlag(PES_RICH)) {
+    CFX_ByteString sValue = CFX_ByteString::FromUnicode(swText);
+
+    if (CXML_Element* pXML =
+            CXML_Element::Parse(sValue.c_str(), sValue.GetLength())) {
+      int32_t nCount = pXML->CountChildren();
+      FX_BOOL bFirst = TRUE;
+
+      swText.Empty();
+
+      for (int32_t i = 0; i < nCount; i++) {
+        if (CXML_Element* pSubElement = pXML->GetElement(i)) {
+          CFX_ByteString tag = pSubElement->GetTagName();
+          if (tag.EqualNoCase("p")) {
+            int nChild = pSubElement->CountChildren();
+            CFX_WideString swSection;
+            for (int32_t j = 0; j < nChild; j++) {
+              swSection += pSubElement->GetContent(j);
+            }
+
+            if (bFirst)
+              bFirst = FALSE;
+            else
+              swText += FWL_VKEY_Return;
+            swText += swSection;
+          }
+        }
+      }
+
+      delete pXML;
+    }
+  }
 
-void CPWL_Edit::SetText(const FX_WCHAR* csText)
-{
-	CFX_WideString swText = csText;
-
-	if (HasFlag(PES_RICH))
-	{
-		CFX_ByteString sValue = CFX_ByteString::FromUnicode(swText);
-
-		if (CXML_Element * pXML = CXML_Element::Parse(sValue.c_str(), sValue.GetLength()))
-		{
-			int32_t nCount = pXML->CountChildren();
-			FX_BOOL bFirst = TRUE;
-
-			swText.Empty();
-
-			for (int32_t i=0; i<nCount; i++)
-			{
-				if (CXML_Element * pSubElement = pXML->GetElement(i))
-				{
-					CFX_ByteString tag=pSubElement->GetTagName();
-		   			if (tag.EqualNoCase("p"))
-					{
-						int nChild = pSubElement->CountChildren();
-						CFX_WideString swSection;
-						for(int32_t j=0; j<nChild; j++)
-						{
-							swSection += pSubElement->GetContent(j);
-						}
-
-						if (bFirst)bFirst = FALSE;
-						else
-							swText += FWL_VKEY_Return;
-						swText += swSection;
-					}
-				}
-			}
-
-			delete pXML;
-		}
-	}
-
-	m_pEdit->SetText(swText.c_str());
+  m_pEdit->SetText(swText.c_str());
 }
 
-void CPWL_Edit::RePosChildWnd()
-{
-    if (CPWL_ScrollBar * pVSB = GetVScrollBar()) {
-        CPDF_Rect rcWindow = m_rcOldWindow;
-        CPDF_Rect rcVScroll = CPDF_Rect(rcWindow.right,
-                                        rcWindow.bottom,
-                                        rcWindow.right + PWL_SCROLLBAR_WIDTH,
-                                        rcWindow.top);
-        pVSB->Move(rcVScroll, TRUE, FALSE);
-    }
+void CPWL_Edit::RePosChildWnd() {
+  if (CPWL_ScrollBar* pVSB = GetVScrollBar()) {
+    CPDF_Rect rcWindow = m_rcOldWindow;
+    CPDF_Rect rcVScroll =
+        CPDF_Rect(rcWindow.right, rcWindow.bottom,
+                  rcWindow.right + PWL_SCROLLBAR_WIDTH, rcWindow.top);
+    pVSB->Move(rcVScroll, TRUE, FALSE);
+  }
 
-	if (m_pEditCaret && !HasFlag(PES_TEXTOVERFLOW))
-		m_pEditCaret->SetClipRect(CPWL_Utils::InflateRect(GetClientRect(),1.0f)); //+1 for caret beside border
+  if (m_pEditCaret && !HasFlag(PES_TEXTOVERFLOW))
+    m_pEditCaret->SetClipRect(CPWL_Utils::InflateRect(
+        GetClientRect(), 1.0f));  //+1 for caret beside border
 
-	CPWL_EditCtrl::RePosChildWnd();
+  CPWL_EditCtrl::RePosChildWnd();
 }
 
-CPDF_Rect CPWL_Edit::GetClientRect() const
-{
-	CPDF_Rect rcClient = CPWL_Utils::DeflateRect(GetWindowRect(),(FX_FLOAT)(GetBorderWidth()+GetInnerBorderWidth()));
+CPDF_Rect CPWL_Edit::GetClientRect() const {
+  CPDF_Rect rcClient = CPWL_Utils::DeflateRect(
+      GetWindowRect(), (FX_FLOAT)(GetBorderWidth() + GetInnerBorderWidth()));
 
-	if (CPWL_ScrollBar * pVSB = GetVScrollBar())
-	{
-		if (pVSB->IsVisible())
-		{
-			rcClient.right -= PWL_SCROLLBAR_WIDTH;
-		}
-	}
+  if (CPWL_ScrollBar* pVSB = GetVScrollBar()) {
+    if (pVSB->IsVisible()) {
+      rcClient.right -= PWL_SCROLLBAR_WIDTH;
+    }
+  }
 
-	return rcClient;
+  return rcClient;
 }
 
-void CPWL_Edit::SetAlignFormatH(PWL_EDIT_ALIGNFORMAT_H nFormat, FX_BOOL bPaint/* = TRUE*/)
-{
-	m_pEdit->SetAlignmentH((int32_t)nFormat, bPaint);
+void CPWL_Edit::SetAlignFormatH(PWL_EDIT_ALIGNFORMAT_H nFormat,
+                                FX_BOOL bPaint /* = TRUE*/) {
+  m_pEdit->SetAlignmentH((int32_t)nFormat, bPaint);
 }
 
-void CPWL_Edit::SetAlignFormatV(PWL_EDIT_ALIGNFORMAT_V nFormat, FX_BOOL bPaint/* = TRUE*/)
-{
-	m_pEdit->SetAlignmentV((int32_t)nFormat, bPaint);
+void CPWL_Edit::SetAlignFormatV(PWL_EDIT_ALIGNFORMAT_V nFormat,
+                                FX_BOOL bPaint /* = TRUE*/) {
+  m_pEdit->SetAlignmentV((int32_t)nFormat, bPaint);
 }
 
-FX_BOOL	CPWL_Edit::CanSelectAll() const
-{
-	return  GetSelectWordRange() != m_pEdit->GetWholeWordRange();
+FX_BOOL CPWL_Edit::CanSelectAll() const {
+  return GetSelectWordRange() != m_pEdit->GetWholeWordRange();
 }
 
-FX_BOOL	CPWL_Edit::CanClear() const
-{
-	return !IsReadOnly() && m_pEdit->IsSelected();
+FX_BOOL CPWL_Edit::CanClear() const {
+  return !IsReadOnly() && m_pEdit->IsSelected();
 }
 
-FX_BOOL	CPWL_Edit::CanCopy() const
-{
-	return 	!HasFlag(PES_PASSWORD) && !HasFlag(PES_NOREAD) && m_pEdit->IsSelected();
+FX_BOOL CPWL_Edit::CanCopy() const {
+  return !HasFlag(PES_PASSWORD) && !HasFlag(PES_NOREAD) &&
+         m_pEdit->IsSelected();
 }
 
-FX_BOOL	CPWL_Edit::CanCut() const
-{
-	return 	CanCopy() && !IsReadOnly();
+FX_BOOL CPWL_Edit::CanCut() const {
+  return CanCopy() && !IsReadOnly();
 }
 
-FX_BOOL	CPWL_Edit::CanPaste() const
-{
-	if (IsReadOnly()) return FALSE;
+FX_BOOL CPWL_Edit::CanPaste() const {
+  if (IsReadOnly())
+    return FALSE;
 
-	CFX_WideString swClipboard;
-	if (IFX_SystemHandler* pSH = GetSystemHandler())
-		swClipboard = pSH->GetClipboardText(GetAttachedHWnd());
+  CFX_WideString swClipboard;
+  if (IFX_SystemHandler* pSH = GetSystemHandler())
+    swClipboard = pSH->GetClipboardText(GetAttachedHWnd());
 
-	return !swClipboard.IsEmpty();
+  return !swClipboard.IsEmpty();
 }
 
-void CPWL_Edit::CopyText()
-{
-	if (!CanCopy()) return;
+void CPWL_Edit::CopyText() {
+  if (!CanCopy())
+    return;
 
-	CFX_WideString str = m_pEdit->GetSelText();
+  CFX_WideString str = m_pEdit->GetSelText();
 
-	if (IFX_SystemHandler* pSH = GetSystemHandler())
-		pSH->SetClipboardText(GetAttachedHWnd(), str);
+  if (IFX_SystemHandler* pSH = GetSystemHandler())
+    pSH->SetClipboardText(GetAttachedHWnd(), str);
 }
 
-void CPWL_Edit::PasteText()
-{
-	if (!CanPaste()) return;
-
-	CFX_WideString swClipboard;
-	if (IFX_SystemHandler* pSH = GetSystemHandler())
-		swClipboard = pSH->GetClipboardText(GetAttachedHWnd());
-
-	if (m_pFillerNotify)
-	{
-		FX_BOOL bRC = TRUE;
-		FX_BOOL bExit = FALSE;
-		CFX_WideString strChangeEx;
-		int nSelStart = 0;
-		int nSelEnd = 0;
-		GetSel(nSelStart, nSelEnd);
-		m_pFillerNotify->OnBeforeKeyStroke(TRUE, GetAttachedData(), 0 , swClipboard, strChangeEx, nSelStart, nSelEnd, TRUE, bRC, bExit, 0);
-		if (!bRC) return;
-		if (bExit) return;
-	}
-
-	if (swClipboard.GetLength() > 0)
-	{
-		Clear();
-		InsertText(swClipboard.c_str());
-	}
-
-	if (m_pFillerNotify)
-	{
-		FX_BOOL bExit = FALSE;
-		m_pFillerNotify->OnAfterKeyStroke(TRUE, GetAttachedData(), bExit,0);
-		if (bExit) return;
-	}
+void CPWL_Edit::PasteText() {
+  if (!CanPaste())
+    return;
+
+  CFX_WideString swClipboard;
+  if (IFX_SystemHandler* pSH = GetSystemHandler())
+    swClipboard = pSH->GetClipboardText(GetAttachedHWnd());
+
+  if (m_pFillerNotify) {
+    FX_BOOL bRC = TRUE;
+    FX_BOOL bExit = FALSE;
+    CFX_WideString strChangeEx;
+    int nSelStart = 0;
+    int nSelEnd = 0;
+    GetSel(nSelStart, nSelEnd);
+    m_pFillerNotify->OnBeforeKeyStroke(TRUE, GetAttachedData(), 0, swClipboard,
+                                       strChangeEx, nSelStart, nSelEnd, TRUE,
+                                       bRC, bExit, 0);
+    if (!bRC)
+      return;
+    if (bExit)
+      return;
+  }
+
+  if (swClipboard.GetLength() > 0) {
+    Clear();
+    InsertText(swClipboard.c_str());
+  }
+
+  if (m_pFillerNotify) {
+    FX_BOOL bExit = FALSE;
+    m_pFillerNotify->OnAfterKeyStroke(TRUE, GetAttachedData(), bExit, 0);
+    if (bExit)
+      return;
+  }
 }
 
-void CPWL_Edit::CutText()
-{
-	if (!CanCut()) return;
+void CPWL_Edit::CutText() {
+  if (!CanCut())
+    return;
 
-	CFX_WideString str = m_pEdit->GetSelText();
+  CFX_WideString str = m_pEdit->GetSelText();
 
-	if (IFX_SystemHandler* pSH = GetSystemHandler())
-		pSH->SetClipboardText(GetAttachedHWnd(), str);
+  if (IFX_SystemHandler* pSH = GetSystemHandler())
+    pSH->SetClipboardText(GetAttachedHWnd(), str);
 
-	m_pEdit->Clear();
+  m_pEdit->Clear();
 }
 
-void CPWL_Edit::OnCreated()
-{
-	CPWL_EditCtrl::OnCreated();
+void CPWL_Edit::OnCreated() {
+  CPWL_EditCtrl::OnCreated();
 
-	if (CPWL_ScrollBar * pScroll = GetVScrollBar())
-	{
-		pScroll->RemoveFlag(PWS_AUTOTRANSPARENT);
-		pScroll->SetTransparency(255);
-	}
+  if (CPWL_ScrollBar* pScroll = GetVScrollBar()) {
+    pScroll->RemoveFlag(PWS_AUTOTRANSPARENT);
+    pScroll->SetTransparency(255);
+  }
 
-	SetParamByFlag();
+  SetParamByFlag();
 
-	m_rcOldWindow = GetWindowRect();
+  m_rcOldWindow = GetWindowRect();
 
-	m_pEdit->SetOprNotify(this);
-	m_pEdit->EnableOprNotify(TRUE);
+  m_pEdit->SetOprNotify(this);
+  m_pEdit->EnableOprNotify(TRUE);
 }
 
-void CPWL_Edit::SetParamByFlag()
-{
-	if (HasFlag(PES_RIGHT))
-	{
-		m_pEdit->SetAlignmentH(2, FALSE);
-	}
-	else if (HasFlag(PES_MIDDLE))
-	{
-		m_pEdit->SetAlignmentH(1, FALSE);
-	}
-	else
-	{
-		m_pEdit->SetAlignmentH(0, FALSE);
-	}
-
-	if (HasFlag(PES_BOTTOM))
-	{
-		m_pEdit->SetAlignmentV(2, FALSE);
-	}
-	else if (HasFlag(PES_CENTER))
-	{
-		m_pEdit->SetAlignmentV(1, FALSE);
-	}
-	else
-	{
-		m_pEdit->SetAlignmentV(0, FALSE);
-	}
-
-	if (HasFlag(PES_PASSWORD))
-	{
-		m_pEdit->SetPasswordChar('*', FALSE);
-	}
-
-	m_pEdit->SetMultiLine(HasFlag(PES_MULTILINE), FALSE);
-	m_pEdit->SetAutoReturn(HasFlag(PES_AUTORETURN), FALSE);
-	m_pEdit->SetAutoFontSize(HasFlag(PWS_AUTOFONTSIZE), FALSE);
-	m_pEdit->SetAutoScroll(HasFlag(PES_AUTOSCROLL), FALSE);
-	m_pEdit->EnableUndo(HasFlag(PES_UNDO));
-
-	if (HasFlag(PES_TEXTOVERFLOW))
-	{
-		SetClipRect(CPDF_Rect(0.0f,0.0f,0.0f,0.0f));
-		m_pEdit->SetTextOverflow(TRUE, FALSE);
-	}
-	else
-	{
-		if (m_pEditCaret)
-		{
-			m_pEditCaret->SetClipRect(CPWL_Utils::InflateRect(GetClientRect(),1.0f)); //+1 for caret beside border
-		}
-	}
-
-	if (HasFlag(PES_SPELLCHECK))
-	{
-		m_pSpellCheck = GetCreationParam().pSpellCheck;
-	}
+void CPWL_Edit::SetParamByFlag() {
+  if (HasFlag(PES_RIGHT)) {
+    m_pEdit->SetAlignmentH(2, FALSE);
+  } else if (HasFlag(PES_MIDDLE)) {
+    m_pEdit->SetAlignmentH(1, FALSE);
+  } else {
+    m_pEdit->SetAlignmentH(0, FALSE);
+  }
+
+  if (HasFlag(PES_BOTTOM)) {
+    m_pEdit->SetAlignmentV(2, FALSE);
+  } else if (HasFlag(PES_CENTER)) {
+    m_pEdit->SetAlignmentV(1, FALSE);
+  } else {
+    m_pEdit->SetAlignmentV(0, FALSE);
+  }
+
+  if (HasFlag(PES_PASSWORD)) {
+    m_pEdit->SetPasswordChar('*', FALSE);
+  }
+
+  m_pEdit->SetMultiLine(HasFlag(PES_MULTILINE), FALSE);
+  m_pEdit->SetAutoReturn(HasFlag(PES_AUTORETURN), FALSE);
+  m_pEdit->SetAutoFontSize(HasFlag(PWS_AUTOFONTSIZE), FALSE);
+  m_pEdit->SetAutoScroll(HasFlag(PES_AUTOSCROLL), FALSE);
+  m_pEdit->EnableUndo(HasFlag(PES_UNDO));
+
+  if (HasFlag(PES_TEXTOVERFLOW)) {
+    SetClipRect(CPDF_Rect(0.0f, 0.0f, 0.0f, 0.0f));
+    m_pEdit->SetTextOverflow(TRUE, FALSE);
+  } else {
+    if (m_pEditCaret) {
+      m_pEditCaret->SetClipRect(CPWL_Utils::InflateRect(
+          GetClientRect(), 1.0f));  //+1 for caret beside border
+    }
+  }
+
+  if (HasFlag(PES_SPELLCHECK)) {
+    m_pSpellCheck = GetCreationParam().pSpellCheck;
+  }
 }
 
-void CPWL_Edit::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream)
-{
-	CPWL_Wnd::GetThisAppearanceStream(sAppStream);
-
-	CPDF_Rect rcClient = GetClientRect();
-	CFX_ByteTextBuf sLine;
-
-	int32_t nCharArray = m_pEdit->GetCharArray();
-
-	if (nCharArray > 0)
-	{
-		switch (GetBorderStyle())
-		{
-		case PBS_SOLID:
-			{
-				sLine << "q\n" << GetBorderWidth() << " w\n"
-					<< CPWL_Utils::GetColorAppStream(GetBorderColor(),FALSE) << " 2 J 0 j\n";
-
-				for (int32_t i=1;i<nCharArray;i++)
-				{
-					sLine << rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*i << " "
-						<< rcClient.bottom << " m\n"
-						<< rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*i << " "
-						<< rcClient.top << " l S\n";
-				}
-
-				sLine << "Q\n";
-			}
-			break;
-		case PBS_DASH:
-			{
-				sLine << "q\n" << GetBorderWidth() << " w\n"
-					<< CPWL_Utils::GetColorAppStream(GetBorderColor(),FALSE) << " 2 J 0 j\n"
-					<< "[" << GetBorderDash().nDash << " "
-					<< GetBorderDash().nGap << "] "
-					<< GetBorderDash().nPhase << " d\n";
-
-				for (int32_t i=1;i<nCharArray;i++)
-				{
-					sLine << rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*i << " "
-						<< rcClient.bottom << " m\n"
-						<< rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*i << " "
-						<< rcClient.top << " l S\n";
-				}
-
-				sLine << "Q\n";
-			}
-			break;
-		}
-	}
-
-	sAppStream << sLine;
-
-	CFX_ByteTextBuf sText;
-
-	CPDF_Point ptOffset = CPDF_Point(0.0f,0.0f);
-
-	CPVT_WordRange wrWhole = m_pEdit->GetWholeWordRange();
-	CPVT_WordRange wrSelect = GetSelectWordRange();
-	CPVT_WordRange wrVisible = (HasFlag(PES_TEXTOVERFLOW) ? wrWhole : m_pEdit->GetVisibleWordRange());
-	CPVT_WordRange wrSelBefore(wrWhole.BeginPos,wrSelect.BeginPos);
-	CPVT_WordRange wrSelAfter(wrSelect.EndPos,wrWhole.EndPos);
-
-	CPVT_WordRange wrTemp = CPWL_Utils::OverlapWordRange(GetSelectWordRange(),wrVisible);
-	CFX_ByteString sEditSel = CPWL_Utils::GetEditSelAppStream(m_pEdit, ptOffset,
-			&wrTemp);
-
-	if (sEditSel.GetLength() > 0)
-		sText << CPWL_Utils::GetColorAppStream(PWL_DEFAULT_SELBACKCOLOR) << sEditSel ;
-
-	wrTemp = CPWL_Utils::OverlapWordRange(wrVisible,wrSelBefore);
-	CFX_ByteString sEditBefore = CPWL_Utils::GetEditAppStream(m_pEdit, ptOffset,
-			&wrTemp, !HasFlag(PES_CHARARRAY), m_pEdit->GetPasswordChar());
-
-	if (sEditBefore.GetLength() > 0)
-		sText << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()) << sEditBefore << "ET\n";
-
-	wrTemp = CPWL_Utils::OverlapWordRange(wrVisible,wrSelect);
-	CFX_ByteString sEditMid = CPWL_Utils::GetEditAppStream(m_pEdit, ptOffset,
-			&wrTemp, !HasFlag(PES_CHARARRAY), m_pEdit->GetPasswordChar());
-
-	if (sEditMid.GetLength() > 0)
-		sText << "BT\n" << CPWL_Utils::GetColorAppStream(CPWL_Color(COLORTYPE_GRAY,1)) << sEditMid << "ET\n";
-
-	wrTemp = CPWL_Utils::OverlapWordRange(wrVisible,wrSelAfter);
-	CFX_ByteString sEditAfter = CPWL_Utils::GetEditAppStream(m_pEdit, ptOffset,
-			&wrTemp, !HasFlag(PES_CHARARRAY), m_pEdit->GetPasswordChar());
-
-	if (sEditAfter.GetLength() > 0)
-		sText << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()) << sEditAfter<< "ET\n";
-
-	if (HasFlag(PES_SPELLCHECK))
-	{
-		CFX_ByteString sSpellCheck = CPWL_Utils::GetSpellCheckAppStream(m_pEdit, m_pSpellCheck, ptOffset, &wrVisible);
-		if (sSpellCheck.GetLength() > 0)
-			sText << CPWL_Utils::GetColorAppStream(CPWL_Color(COLORTYPE_RGB,1,0,0),FALSE) << sSpellCheck;
-	}
-
-	if (sText.GetLength() > 0)
-	{
-		CPDF_Rect rcClient = GetClientRect();
-		sAppStream << "q\n/Tx BMC\n";
-
-		if (!HasFlag(PES_TEXTOVERFLOW))
-			sAppStream << rcClient.left << " " << rcClient.bottom << " "
-				<< rcClient.right - rcClient.left << " " << rcClient.top - rcClient.bottom << " re W n\n";
-
-		sAppStream << sText;
-
-		sAppStream << "EMC\nQ\n";
-	}
+void CPWL_Edit::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) {
+  CPWL_Wnd::GetThisAppearanceStream(sAppStream);
+
+  CPDF_Rect rcClient = GetClientRect();
+  CFX_ByteTextBuf sLine;
+
+  int32_t nCharArray = m_pEdit->GetCharArray();
+
+  if (nCharArray > 0) {
+    switch (GetBorderStyle()) {
+      case PBS_SOLID: {
+        sLine << "q\n" << GetBorderWidth() << " w\n"
+              << CPWL_Utils::GetColorAppStream(GetBorderColor(), FALSE)
+              << " 2 J 0 j\n";
+
+        for (int32_t i = 1; i < nCharArray; i++) {
+          sLine << rcClient.left +
+                       ((rcClient.right - rcClient.left) / nCharArray) * i
+                << " " << rcClient.bottom << " m\n"
+                << rcClient.left +
+                       ((rcClient.right - rcClient.left) / nCharArray) * i
+                << " " << rcClient.top << " l S\n";
+        }
+
+        sLine << "Q\n";
+      } break;
+      case PBS_DASH: {
+        sLine << "q\n" << GetBorderWidth() << " w\n"
+              << CPWL_Utils::GetColorAppStream(GetBorderColor(), FALSE)
+              << " 2 J 0 j\n"
+              << "[" << GetBorderDash().nDash << " " << GetBorderDash().nGap
+              << "] " << GetBorderDash().nPhase << " d\n";
+
+        for (int32_t i = 1; i < nCharArray; i++) {
+          sLine << rcClient.left +
+                       ((rcClient.right - rcClient.left) / nCharArray) * i
+                << " " << rcClient.bottom << " m\n"
+                << rcClient.left +
+                       ((rcClient.right - rcClient.left) / nCharArray) * i
+                << " " << rcClient.top << " l S\n";
+        }
+
+        sLine << "Q\n";
+      } break;
+    }
+  }
+
+  sAppStream << sLine;
+
+  CFX_ByteTextBuf sText;
+
+  CPDF_Point ptOffset = CPDF_Point(0.0f, 0.0f);
+
+  CPVT_WordRange wrWhole = m_pEdit->GetWholeWordRange();
+  CPVT_WordRange wrSelect = GetSelectWordRange();
+  CPVT_WordRange wrVisible =
+      (HasFlag(PES_TEXTOVERFLOW) ? wrWhole : m_pEdit->GetVisibleWordRange());
+  CPVT_WordRange wrSelBefore(wrWhole.BeginPos, wrSelect.BeginPos);
+  CPVT_WordRange wrSelAfter(wrSelect.EndPos, wrWhole.EndPos);
+
+  CPVT_WordRange wrTemp =
+      CPWL_Utils::OverlapWordRange(GetSelectWordRange(), wrVisible);
+  CFX_ByteString sEditSel =
+      CPWL_Utils::GetEditSelAppStream(m_pEdit, ptOffset, &wrTemp);
+
+  if (sEditSel.GetLength() > 0)
+    sText << CPWL_Utils::GetColorAppStream(PWL_DEFAULT_SELBACKCOLOR)
+          << sEditSel;
+
+  wrTemp = CPWL_Utils::OverlapWordRange(wrVisible, wrSelBefore);
+  CFX_ByteString sEditBefore = CPWL_Utils::GetEditAppStream(
+      m_pEdit, ptOffset, &wrTemp, !HasFlag(PES_CHARARRAY),
+      m_pEdit->GetPasswordChar());
+
+  if (sEditBefore.GetLength() > 0)
+    sText << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor())
+          << sEditBefore << "ET\n";
+
+  wrTemp = CPWL_Utils::OverlapWordRange(wrVisible, wrSelect);
+  CFX_ByteString sEditMid = CPWL_Utils::GetEditAppStream(
+      m_pEdit, ptOffset, &wrTemp, !HasFlag(PES_CHARARRAY),
+      m_pEdit->GetPasswordChar());
+
+  if (sEditMid.GetLength() > 0)
+    sText << "BT\n"
+          << CPWL_Utils::GetColorAppStream(CPWL_Color(COLORTYPE_GRAY, 1))
+          << sEditMid << "ET\n";
+
+  wrTemp = CPWL_Utils::OverlapWordRange(wrVisible, wrSelAfter);
+  CFX_ByteString sEditAfter = CPWL_Utils::GetEditAppStream(
+      m_pEdit, ptOffset, &wrTemp, !HasFlag(PES_CHARARRAY),
+      m_pEdit->GetPasswordChar());
+
+  if (sEditAfter.GetLength() > 0)
+    sText << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor())
+          << sEditAfter << "ET\n";
+
+  if (HasFlag(PES_SPELLCHECK)) {
+    CFX_ByteString sSpellCheck = CPWL_Utils::GetSpellCheckAppStream(
+        m_pEdit, m_pSpellCheck, ptOffset, &wrVisible);
+    if (sSpellCheck.GetLength() > 0)
+      sText << CPWL_Utils::GetColorAppStream(CPWL_Color(COLORTYPE_RGB, 1, 0, 0),
+                                             FALSE)
+            << sSpellCheck;
+  }
+
+  if (sText.GetLength() > 0) {
+    CPDF_Rect rcClient = GetClientRect();
+    sAppStream << "q\n/Tx BMC\n";
+
+    if (!HasFlag(PES_TEXTOVERFLOW))
+      sAppStream << rcClient.left << " " << rcClient.bottom << " "
+                 << rcClient.right - rcClient.left << " "
+                 << rcClient.top - rcClient.bottom << " re W n\n";
+
+    sAppStream << sText;
+
+    sAppStream << "EMC\nQ\n";
+  }
 }
 
-void CPWL_Edit::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	CPWL_Wnd::DrawThisAppearance(pDevice,pUser2Device);
-
-	CPDF_Rect rcClient = GetClientRect();
-	CFX_ByteTextBuf sLine;
-
-	int32_t nCharArray = m_pEdit->GetCharArray();
-	FX_SAFE_INT32 nCharArraySafe = nCharArray;
-	nCharArraySafe -= 1;
-	nCharArraySafe *= 2;
-
-	if (nCharArray > 0 && nCharArraySafe.IsValid())
-	{
-		switch (GetBorderStyle())
-		{
-		case PBS_SOLID:
-			{
-				CFX_GraphStateData gsd;
-				gsd.m_LineWidth = (FX_FLOAT)GetBorderWidth();
-
-				CFX_PathData path;
-				path.SetPointCount(nCharArraySafe.ValueOrDie());
-
-				for (int32_t i=0; i<nCharArray-1; i++)
-				{
-					path.SetPoint(i*2, rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*(i+1),
-						rcClient.bottom, FXPT_MOVETO);
-					path.SetPoint(i*2+1, rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*(i+1),
-						rcClient.top, FXPT_LINETO);
-				}
-				if (path.GetPointCount() > 0)
-					pDevice->DrawPath(&path, pUser2Device, &gsd,0,
-						CPWL_Utils::PWLColorToFXColor(GetBorderColor(),255), FXFILL_ALTERNATE);
-			}
-			break;
-		case PBS_DASH:
-			{
-				CFX_GraphStateData gsd;
-				gsd.m_LineWidth = (FX_FLOAT)GetBorderWidth();
-
-				gsd.SetDashCount(2);
-				gsd.m_DashArray[0] = (FX_FLOAT)GetBorderDash().nDash;
-				gsd.m_DashArray[1] = (FX_FLOAT)GetBorderDash().nGap;
-				gsd.m_DashPhase = (FX_FLOAT)GetBorderDash().nPhase;
-
-				CFX_PathData path;
-				path.SetPointCount(nCharArraySafe.ValueOrDie());
-
-				for (int32_t i=0; i<nCharArray-1; i++)
-				{
-					path.SetPoint(i*2, rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*(i+1),
-						rcClient.bottom, FXPT_MOVETO);
-					path.SetPoint(i*2+1, rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*(i+1),
-						rcClient.top, FXPT_LINETO);
-				}
-				if (path.GetPointCount() > 0)
-					pDevice->DrawPath(&path, pUser2Device, &gsd,0,
-						CPWL_Utils::PWLColorToFXColor(GetBorderColor(),255), FXFILL_ALTERNATE);
-			}
-			break;
-		}
-	}
-
-	CPDF_Rect rcClip;
-	CPVT_WordRange wrRange = m_pEdit->GetVisibleWordRange();
-	CPVT_WordRange* pRange = NULL;
-
-	if (!HasFlag(PES_TEXTOVERFLOW))
-	{
-		rcClip = GetClientRect();
-		pRange = &wrRange;
-	}
-IFX_SystemHandler* pSysHandler = GetSystemHandler();
-	IFX_Edit::DrawEdit(pDevice,pUser2Device,m_pEdit,
-		CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
-		CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor(), GetTransparency()),
-		rcClip,CPDF_Point(0.0f,0.0f),pRange, pSysHandler, m_pFormFiller);
-
-	if (HasFlag(PES_SPELLCHECK))
-	{
-		CPWL_Utils::DrawEditSpellCheck(pDevice,pUser2Device,m_pEdit,rcClip,
-			CPDF_Point(0.0f,0.0f),pRange, GetCreationParam().pSpellCheck);
-	}
+void CPWL_Edit::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                   CPDF_Matrix* pUser2Device) {
+  CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
+
+  CPDF_Rect rcClient = GetClientRect();
+  CFX_ByteTextBuf sLine;
+
+  int32_t nCharArray = m_pEdit->GetCharArray();
+  FX_SAFE_INT32 nCharArraySafe = nCharArray;
+  nCharArraySafe -= 1;
+  nCharArraySafe *= 2;
+
+  if (nCharArray > 0 && nCharArraySafe.IsValid()) {
+    switch (GetBorderStyle()) {
+      case PBS_SOLID: {
+        CFX_GraphStateData gsd;
+        gsd.m_LineWidth = (FX_FLOAT)GetBorderWidth();
+
+        CFX_PathData path;
+        path.SetPointCount(nCharArraySafe.ValueOrDie());
+
+        for (int32_t i = 0; i < nCharArray - 1; i++) {
+          path.SetPoint(
+              i * 2,
+              rcClient.left +
+                  ((rcClient.right - rcClient.left) / nCharArray) * (i + 1),
+              rcClient.bottom, FXPT_MOVETO);
+          path.SetPoint(
+              i * 2 + 1,
+              rcClient.left +
+                  ((rcClient.right - rcClient.left) / nCharArray) * (i + 1),
+              rcClient.top, FXPT_LINETO);
+        }
+        if (path.GetPointCount() > 0)
+          pDevice->DrawPath(
+              &path, pUser2Device, &gsd, 0,
+              CPWL_Utils::PWLColorToFXColor(GetBorderColor(), 255),
+              FXFILL_ALTERNATE);
+      } break;
+      case PBS_DASH: {
+        CFX_GraphStateData gsd;
+        gsd.m_LineWidth = (FX_FLOAT)GetBorderWidth();
+
+        gsd.SetDashCount(2);
+        gsd.m_DashArray[0] = (FX_FLOAT)GetBorderDash().nDash;
+        gsd.m_DashArray[1] = (FX_FLOAT)GetBorderDash().nGap;
+        gsd.m_DashPhase = (FX_FLOAT)GetBorderDash().nPhase;
+
+        CFX_PathData path;
+        path.SetPointCount(nCharArraySafe.ValueOrDie());
+
+        for (int32_t i = 0; i < nCharArray - 1; i++) {
+          path.SetPoint(
+              i * 2,
+              rcClient.left +
+                  ((rcClient.right - rcClient.left) / nCharArray) * (i + 1),
+              rcClient.bottom, FXPT_MOVETO);
+          path.SetPoint(
+              i * 2 + 1,
+              rcClient.left +
+                  ((rcClient.right - rcClient.left) / nCharArray) * (i + 1),
+              rcClient.top, FXPT_LINETO);
+        }
+        if (path.GetPointCount() > 0)
+          pDevice->DrawPath(
+              &path, pUser2Device, &gsd, 0,
+              CPWL_Utils::PWLColorToFXColor(GetBorderColor(), 255),
+              FXFILL_ALTERNATE);
+      } break;
+    }
+  }
+
+  CPDF_Rect rcClip;
+  CPVT_WordRange wrRange = m_pEdit->GetVisibleWordRange();
+  CPVT_WordRange* pRange = NULL;
+
+  if (!HasFlag(PES_TEXTOVERFLOW)) {
+    rcClip = GetClientRect();
+    pRange = &wrRange;
+  }
+  IFX_SystemHandler* pSysHandler = GetSystemHandler();
+  IFX_Edit::DrawEdit(
+      pDevice, pUser2Device, m_pEdit,
+      CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
+      CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor(), GetTransparency()),
+      rcClip, CPDF_Point(0.0f, 0.0f), pRange, pSysHandler, m_pFormFiller);
+
+  if (HasFlag(PES_SPELLCHECK)) {
+    CPWL_Utils::DrawEditSpellCheck(pDevice, pUser2Device, m_pEdit, rcClip,
+                                   CPDF_Point(0.0f, 0.0f), pRange,
+                                   GetCreationParam().pSpellCheck);
+  }
 }
 
-FX_BOOL CPWL_Edit::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnLButtonDown(point,nFlag);
+FX_BOOL CPWL_Edit::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonDown(point, nFlag);
 
-	if (HasFlag(PES_TEXTOVERFLOW) || ClientHitTest(point))
-	{
-		if (m_bMouseDown)
-			InvalidateRect();
+  if (HasFlag(PES_TEXTOVERFLOW) || ClientHitTest(point)) {
+    if (m_bMouseDown)
+      InvalidateRect();
 
-		m_bMouseDown = TRUE;
-		SetCapture();
+    m_bMouseDown = TRUE;
+    SetCapture();
 
-		m_pEdit->OnMouseDown(point,IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-	}
+    m_pEdit->OnMouseDown(point, IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+  }
 
-	return TRUE;
+  return TRUE;
 }
 
-FX_BOOL	CPWL_Edit::OnLButtonDblClk(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnLButtonDblClk(point, nFlag);
+FX_BOOL CPWL_Edit::OnLButtonDblClk(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonDblClk(point, nFlag);
 
-	if (HasFlag(PES_TEXTOVERFLOW) || ClientHitTest(point))
-	{
-		m_pEdit->SelectAll();
-	}
+  if (HasFlag(PES_TEXTOVERFLOW) || ClientHitTest(point)) {
+    m_pEdit->SelectAll();
+  }
 
-	return TRUE;
+  return TRUE;
 }
 
-#define WM_PWLEDIT_UNDO					0x01
-#define WM_PWLEDIT_REDO					0x02
-#define WM_PWLEDIT_CUT					0x03
-#define WM_PWLEDIT_COPY					0x04
-#define WM_PWLEDIT_PASTE				0x05
-#define WM_PWLEDIT_DELETE				0x06
-#define WM_PWLEDIT_SELECTALL			0x07
-#define WM_PWLEDIT_SUGGEST				0x08
-
-FX_BOOL CPWL_Edit::OnRButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	if (m_bMouseDown) return FALSE;
-
-	CPWL_Wnd::OnRButtonUp(point, nFlag);
-
-	if (!HasFlag(PES_TEXTOVERFLOW) && !ClientHitTest(point)) return TRUE;
-
-	IFX_SystemHandler* pSH = GetSystemHandler();
-	if (!pSH) return FALSE;
-
-	SetFocus();
-
-	CPVT_WordRange wrLatin = GetLatinWordsRange(point);
-	CFX_WideString swLatin = m_pEdit->GetRangeText(wrLatin);
-
-	FX_HMENU hPopup = pSH->CreatePopupMenu();
-	if (!hPopup) return FALSE;
-
-	CFX_ByteStringArray sSuggestWords;
-	CPDF_Point ptPopup = point;
-
-	if (!IsReadOnly())
-	{
-		if (HasFlag(PES_SPELLCHECK) && !swLatin.IsEmpty())
-		{
-			if (m_pSpellCheck)
-			{
-				CFX_ByteString sLatin = CFX_ByteString::FromUnicode(swLatin);
-
-				if (!m_pSpellCheck->CheckWord(sLatin))
-				{
-					m_pSpellCheck->SuggestWords(sLatin,sSuggestWords);
-
-					int32_t nSuggest = sSuggestWords.GetSize();
-
-					for (int32_t nWord=0; nWord<nSuggest; nWord++)
-					{
-						pSH->AppendMenuItem(hPopup, WM_PWLEDIT_SUGGEST+nWord, sSuggestWords[nWord].UTF8Decode());
-					}
-
-					if (nSuggest > 0)
-						pSH->AppendMenuItem(hPopup, 0, L"");
-
-					ptPopup = GetWordRightBottomPoint(wrLatin.EndPos);
-				}
-			}
-		}
-	}
-
-	IPWL_Provider* pProvider = GetProvider();
-
-	if (HasFlag(PES_UNDO))
-	{
-		pSH->AppendMenuItem(hPopup, WM_PWLEDIT_UNDO,
-			pProvider ? pProvider->LoadPopupMenuString(0) : L"&Undo");
-		pSH->AppendMenuItem(hPopup, WM_PWLEDIT_REDO,
-			pProvider ? pProvider->LoadPopupMenuString(1) : L"&Redo");
-		pSH->AppendMenuItem(hPopup, 0, L"");
-
-		if (!m_pEdit->CanUndo())
-			pSH->EnableMenuItem(hPopup, WM_PWLEDIT_UNDO, FALSE);
-		if (!m_pEdit->CanRedo())
-			pSH->EnableMenuItem(hPopup, WM_PWLEDIT_REDO, FALSE);
-	}
-
-	pSH->AppendMenuItem(hPopup, WM_PWLEDIT_CUT,
-		pProvider ? pProvider->LoadPopupMenuString(2) : L"Cu&t");
-	pSH->AppendMenuItem(hPopup, WM_PWLEDIT_COPY,
-		pProvider ? pProvider->LoadPopupMenuString(3) : L"&Copy");
-	pSH->AppendMenuItem(hPopup, WM_PWLEDIT_PASTE,
-		pProvider ? pProvider->LoadPopupMenuString(4) : L"&Paste");
-	pSH->AppendMenuItem(hPopup, WM_PWLEDIT_DELETE,
-		pProvider ? pProvider->LoadPopupMenuString(5) : L"&Delete");
-
-	CFX_WideString swText = pSH->GetClipboardText(GetAttachedHWnd());
-	if (swText.IsEmpty())
-		pSH->EnableMenuItem(hPopup, WM_PWLEDIT_PASTE, FALSE);
-
-	if (!m_pEdit->IsSelected())
-	{
-		pSH->EnableMenuItem(hPopup, WM_PWLEDIT_CUT, FALSE);
-		pSH->EnableMenuItem(hPopup, WM_PWLEDIT_COPY, FALSE);
-		pSH->EnableMenuItem(hPopup, WM_PWLEDIT_DELETE, FALSE);
-	}
-
-	if (IsReadOnly())
-	{
-		pSH->EnableMenuItem(hPopup, WM_PWLEDIT_CUT, FALSE);
-		pSH->EnableMenuItem(hPopup, WM_PWLEDIT_DELETE, FALSE);
-		pSH->EnableMenuItem(hPopup, WM_PWLEDIT_PASTE, FALSE);
-	}
-
-	if (HasFlag(PES_PASSWORD))
-	{
-		pSH->EnableMenuItem(hPopup, WM_PWLEDIT_CUT, FALSE);
-		pSH->EnableMenuItem(hPopup, WM_PWLEDIT_COPY, FALSE);
-	}
-
-	if (HasFlag(PES_NOREAD))
-	{
-		pSH->EnableMenuItem(hPopup, WM_PWLEDIT_CUT, FALSE);
-		pSH->EnableMenuItem(hPopup, WM_PWLEDIT_COPY, FALSE);
-	}
-
-	pSH->AppendMenuItem(hPopup, 0, L"");
-	pSH->AppendMenuItem(hPopup, WM_PWLEDIT_SELECTALL,
-		pProvider ? pProvider->LoadPopupMenuString(6) : L"&Select All");
-
-	if (m_pEdit->GetTotalWords() == 0)
-	{
-		pSH->EnableMenuItem(hPopup, WM_PWLEDIT_SELECTALL, FALSE);
-	}
-
-	int32_t x, y;
-	PWLtoWnd(ptPopup, x, y);
-	pSH->ClientToScreen(GetAttachedHWnd(), x, y);
-	pSH->SetCursor(FXCT_ARROW);
-	int32_t nCmd = pSH->TrackPopupMenu(hPopup,
-					 x,
-					 y,
-					 GetAttachedHWnd());
-
-
-	switch (nCmd)
-	{
-	case WM_PWLEDIT_UNDO:
-		Undo();
-		break;
-	case WM_PWLEDIT_REDO:
-		Redo();
-		break;
-	case WM_PWLEDIT_CUT:
-		CutText();
-		break;
-	case WM_PWLEDIT_COPY:
-		CopyText();
-		break;
-	case WM_PWLEDIT_PASTE:
-		PasteText();
-		break;
-	case WM_PWLEDIT_DELETE:
-		Clear();
-		break;
-	case WM_PWLEDIT_SELECTALL:
-		SelectAll();
-		break;
-	case WM_PWLEDIT_SUGGEST + 0:
-		SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos),m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos));
-		ReplaceSel(sSuggestWords[0].UTF8Decode().c_str());
-		break;
-	case WM_PWLEDIT_SUGGEST + 1:
-		SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos),m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos));
-		ReplaceSel(sSuggestWords[1].UTF8Decode().c_str());
-		break;
-	case WM_PWLEDIT_SUGGEST + 2:
-		SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos),m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos));
-		ReplaceSel(sSuggestWords[2].UTF8Decode().c_str());
-		break;
-	case WM_PWLEDIT_SUGGEST + 3:
-		SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos),m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos));
-		ReplaceSel(sSuggestWords[3].UTF8Decode().c_str());
-		break;
-	case WM_PWLEDIT_SUGGEST + 4:
-		SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos),m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos));
-		ReplaceSel(sSuggestWords[4].UTF8Decode().c_str());
-		break;
-	default:
-		break;
-	}
-
-	pSH->DestroyMenu(hPopup);
-
-	return TRUE;
+#define WM_PWLEDIT_UNDO 0x01
+#define WM_PWLEDIT_REDO 0x02
+#define WM_PWLEDIT_CUT 0x03
+#define WM_PWLEDIT_COPY 0x04
+#define WM_PWLEDIT_PASTE 0x05
+#define WM_PWLEDIT_DELETE 0x06
+#define WM_PWLEDIT_SELECTALL 0x07
+#define WM_PWLEDIT_SUGGEST 0x08
+
+FX_BOOL CPWL_Edit::OnRButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
+  if (m_bMouseDown)
+    return FALSE;
+
+  CPWL_Wnd::OnRButtonUp(point, nFlag);
+
+  if (!HasFlag(PES_TEXTOVERFLOW) && !ClientHitTest(point))
+    return TRUE;
+
+  IFX_SystemHandler* pSH = GetSystemHandler();
+  if (!pSH)
+    return FALSE;
+
+  SetFocus();
+
+  CPVT_WordRange wrLatin = GetLatinWordsRange(point);
+  CFX_WideString swLatin = m_pEdit->GetRangeText(wrLatin);
+
+  FX_HMENU hPopup = pSH->CreatePopupMenu();
+  if (!hPopup)
+    return FALSE;
+
+  CFX_ByteStringArray sSuggestWords;
+  CPDF_Point ptPopup = point;
+
+  if (!IsReadOnly()) {
+    if (HasFlag(PES_SPELLCHECK) && !swLatin.IsEmpty()) {
+      if (m_pSpellCheck) {
+        CFX_ByteString sLatin = CFX_ByteString::FromUnicode(swLatin);
+
+        if (!m_pSpellCheck->CheckWord(sLatin)) {
+          m_pSpellCheck->SuggestWords(sLatin, sSuggestWords);
+
+          int32_t nSuggest = sSuggestWords.GetSize();
+
+          for (int32_t nWord = 0; nWord < nSuggest; nWord++) {
+            pSH->AppendMenuItem(hPopup, WM_PWLEDIT_SUGGEST + nWord,
+                                sSuggestWords[nWord].UTF8Decode());
+          }
+
+          if (nSuggest > 0)
+            pSH->AppendMenuItem(hPopup, 0, L"");
+
+          ptPopup = GetWordRightBottomPoint(wrLatin.EndPos);
+        }
+      }
+    }
+  }
+
+  IPWL_Provider* pProvider = GetProvider();
+
+  if (HasFlag(PES_UNDO)) {
+    pSH->AppendMenuItem(
+        hPopup, WM_PWLEDIT_UNDO,
+        pProvider ? pProvider->LoadPopupMenuString(0) : L"&Undo");
+    pSH->AppendMenuItem(
+        hPopup, WM_PWLEDIT_REDO,
+        pProvider ? pProvider->LoadPopupMenuString(1) : L"&Redo");
+    pSH->AppendMenuItem(hPopup, 0, L"");
+
+    if (!m_pEdit->CanUndo())
+      pSH->EnableMenuItem(hPopup, WM_PWLEDIT_UNDO, FALSE);
+    if (!m_pEdit->CanRedo())
+      pSH->EnableMenuItem(hPopup, WM_PWLEDIT_REDO, FALSE);
+  }
+
+  pSH->AppendMenuItem(hPopup, WM_PWLEDIT_CUT,
+                      pProvider ? pProvider->LoadPopupMenuString(2) : L"Cu&t");
+  pSH->AppendMenuItem(hPopup, WM_PWLEDIT_COPY,
+                      pProvider ? pProvider->LoadPopupMenuString(3) : L"&Copy");
+  pSH->AppendMenuItem(
+      hPopup, WM_PWLEDIT_PASTE,
+      pProvider ? pProvider->LoadPopupMenuString(4) : L"&Paste");
+  pSH->AppendMenuItem(
+      hPopup, WM_PWLEDIT_DELETE,
+      pProvider ? pProvider->LoadPopupMenuString(5) : L"&Delete");
+
+  CFX_WideString swText = pSH->GetClipboardText(GetAttachedHWnd());
+  if (swText.IsEmpty())
+    pSH->EnableMenuItem(hPopup, WM_PWLEDIT_PASTE, FALSE);
+
+  if (!m_pEdit->IsSelected()) {
+    pSH->EnableMenuItem(hPopup, WM_PWLEDIT_CUT, FALSE);
+    pSH->EnableMenuItem(hPopup, WM_PWLEDIT_COPY, FALSE);
+    pSH->EnableMenuItem(hPopup, WM_PWLEDIT_DELETE, FALSE);
+  }
+
+  if (IsReadOnly()) {
+    pSH->EnableMenuItem(hPopup, WM_PWLEDIT_CUT, FALSE);
+    pSH->EnableMenuItem(hPopup, WM_PWLEDIT_DELETE, FALSE);
+    pSH->EnableMenuItem(hPopup, WM_PWLEDIT_PASTE, FALSE);
+  }
+
+  if (HasFlag(PES_PASSWORD)) {
+    pSH->EnableMenuItem(hPopup, WM_PWLEDIT_CUT, FALSE);
+    pSH->EnableMenuItem(hPopup, WM_PWLEDIT_COPY, FALSE);
+  }
+
+  if (HasFlag(PES_NOREAD)) {
+    pSH->EnableMenuItem(hPopup, WM_PWLEDIT_CUT, FALSE);
+    pSH->EnableMenuItem(hPopup, WM_PWLEDIT_COPY, FALSE);
+  }
+
+  pSH->AppendMenuItem(hPopup, 0, L"");
+  pSH->AppendMenuItem(
+      hPopup, WM_PWLEDIT_SELECTALL,
+      pProvider ? pProvider->LoadPopupMenuString(6) : L"&Select All");
+
+  if (m_pEdit->GetTotalWords() == 0) {
+    pSH->EnableMenuItem(hPopup, WM_PWLEDIT_SELECTALL, FALSE);
+  }
+
+  int32_t x, y;
+  PWLtoWnd(ptPopup, x, y);
+  pSH->ClientToScreen(GetAttachedHWnd(), x, y);
+  pSH->SetCursor(FXCT_ARROW);
+  int32_t nCmd = pSH->TrackPopupMenu(hPopup, x, y, GetAttachedHWnd());
+
+  switch (nCmd) {
+    case WM_PWLEDIT_UNDO:
+      Undo();
+      break;
+    case WM_PWLEDIT_REDO:
+      Redo();
+      break;
+    case WM_PWLEDIT_CUT:
+      CutText();
+      break;
+    case WM_PWLEDIT_COPY:
+      CopyText();
+      break;
+    case WM_PWLEDIT_PASTE:
+      PasteText();
+      break;
+    case WM_PWLEDIT_DELETE:
+      Clear();
+      break;
+    case WM_PWLEDIT_SELECTALL:
+      SelectAll();
+      break;
+    case WM_PWLEDIT_SUGGEST + 0:
+      SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos),
+             m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos));
+      ReplaceSel(sSuggestWords[0].UTF8Decode().c_str());
+      break;
+    case WM_PWLEDIT_SUGGEST + 1:
+      SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos),
+             m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos));
+      ReplaceSel(sSuggestWords[1].UTF8Decode().c_str());
+      break;
+    case WM_PWLEDIT_SUGGEST + 2:
+      SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos),
+             m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos));
+      ReplaceSel(sSuggestWords[2].UTF8Decode().c_str());
+      break;
+    case WM_PWLEDIT_SUGGEST + 3:
+      SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos),
+             m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos));
+      ReplaceSel(sSuggestWords[3].UTF8Decode().c_str());
+      break;
+    case WM_PWLEDIT_SUGGEST + 4:
+      SetSel(m_pEdit->WordPlaceToWordIndex(wrLatin.BeginPos),
+             m_pEdit->WordPlaceToWordIndex(wrLatin.EndPos));
+      ReplaceSel(sSuggestWords[4].UTF8Decode().c_str());
+      break;
+    default:
+      break;
+  }
+
+  pSH->DestroyMenu(hPopup);
+
+  return TRUE;
 }
 
-void CPWL_Edit::OnSetFocus()
-{
-	SetEditCaret(TRUE);
+void CPWL_Edit::OnSetFocus() {
+  SetEditCaret(TRUE);
 
-	if (!IsReadOnly())
-	{
-		if (IPWL_FocusHandler* pFocusHandler = GetFocusHandler())
-			pFocusHandler->OnSetFocus(this);
-	}
+  if (!IsReadOnly()) {
+    if (IPWL_FocusHandler* pFocusHandler = GetFocusHandler())
+      pFocusHandler->OnSetFocus(this);
+  }
 
-	m_bFocus = TRUE;
+  m_bFocus = TRUE;
 }
 
-void CPWL_Edit::OnKillFocus()
-{
-	ShowVScrollBar(FALSE);
+void CPWL_Edit::OnKillFocus() {
+  ShowVScrollBar(FALSE);
 
-	m_pEdit->SelectNone();
-	SetCaret(FALSE, CPDF_Point(0.0f,0.0f), CPDF_Point(0.0f,0.0f));
+  m_pEdit->SelectNone();
+  SetCaret(FALSE, CPDF_Point(0.0f, 0.0f), CPDF_Point(0.0f, 0.0f));
 
-	SetCharSet(0);
+  SetCharSet(0);
 
-	if (!IsReadOnly())
-	{
-		if (IPWL_FocusHandler* pFocusHandler = GetFocusHandler())
-			pFocusHandler->OnKillFocus(this);
-	}
+  if (!IsReadOnly()) {
+    if (IPWL_FocusHandler* pFocusHandler = GetFocusHandler())
+      pFocusHandler->OnKillFocus(this);
+  }
 
-	m_bFocus = FALSE;
+  m_bFocus = FALSE;
 }
 
-void CPWL_Edit::SetHorzScale(int32_t nHorzScale, FX_BOOL bPaint/* = TRUE*/)
-{
-	m_pEdit->SetHorzScale(nHorzScale, bPaint);
+void CPWL_Edit::SetHorzScale(int32_t nHorzScale, FX_BOOL bPaint /* = TRUE*/) {
+  m_pEdit->SetHorzScale(nHorzScale, bPaint);
 }
 
-void CPWL_Edit::SetCharSpace(FX_FLOAT fCharSpace, FX_BOOL bPaint/* = TRUE*/)
-{
-	m_pEdit->SetCharSpace(fCharSpace, bPaint);
+void CPWL_Edit::SetCharSpace(FX_FLOAT fCharSpace, FX_BOOL bPaint /* = TRUE*/) {
+  m_pEdit->SetCharSpace(fCharSpace, bPaint);
 }
 
-void CPWL_Edit::SetLineLeading(FX_FLOAT fLineLeading, FX_BOOL bPaint/* = TRUE*/)
-{
-	m_pEdit->SetLineLeading(fLineLeading, bPaint);
+void CPWL_Edit::SetLineLeading(FX_FLOAT fLineLeading,
+                               FX_BOOL bPaint /* = TRUE*/) {
+  m_pEdit->SetLineLeading(fLineLeading, bPaint);
 }
 
-CFX_ByteString CPWL_Edit::GetSelectAppearanceStream(const CPDF_Point & ptOffset) const
-{
-	CPVT_WordRange wr = GetSelectWordRange();
-	return CPWL_Utils::GetEditSelAppStream(m_pEdit,ptOffset,&wr);
+CFX_ByteString CPWL_Edit::GetSelectAppearanceStream(
+    const CPDF_Point& ptOffset) const {
+  CPVT_WordRange wr = GetSelectWordRange();
+  return CPWL_Utils::GetEditSelAppStream(m_pEdit, ptOffset, &wr);
 }
 
-CPVT_WordRange CPWL_Edit::GetSelectWordRange() const
-{
-	if (m_pEdit->IsSelected())
-	{
-		int32_t nStart = -1;
-		int32_t nEnd = -1;
+CPVT_WordRange CPWL_Edit::GetSelectWordRange() const {
+  if (m_pEdit->IsSelected()) {
+    int32_t nStart = -1;
+    int32_t nEnd = -1;
 
-		m_pEdit->GetSel(nStart, nEnd);
+    m_pEdit->GetSel(nStart, nEnd);
 
-		CPVT_WordPlace wpStart = m_pEdit->WordIndexToWordPlace(nStart);
-		CPVT_WordPlace wpEnd = m_pEdit->WordIndexToWordPlace(nEnd);
+    CPVT_WordPlace wpStart = m_pEdit->WordIndexToWordPlace(nStart);
+    CPVT_WordPlace wpEnd = m_pEdit->WordIndexToWordPlace(nEnd);
 
-		return CPVT_WordRange(wpStart,wpEnd);
-	}
+    return CPVT_WordRange(wpStart, wpEnd);
+  }
 
-	return CPVT_WordRange();
+  return CPVT_WordRange();
 }
 
-CFX_ByteString CPWL_Edit::GetTextAppearanceStream(const CPDF_Point & ptOffset) const
-{
-	CFX_ByteTextBuf sRet;
-	CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(m_pEdit,ptOffset);
+CFX_ByteString CPWL_Edit::GetTextAppearanceStream(
+    const CPDF_Point& ptOffset) const {
+  CFX_ByteTextBuf sRet;
+  CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(m_pEdit, ptOffset);
 
-	if (sEdit.GetLength() > 0)
-	{
-		sRet << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()) << sEdit << "ET\n";
-	}
+  if (sEdit.GetLength() > 0) {
+    sRet << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()) << sEdit
+         << "ET\n";
+  }
 
-	return sRet.GetByteString();
+  return sRet.GetByteString();
 }
 
-CFX_ByteString CPWL_Edit::GetCaretAppearanceStream(const CPDF_Point & ptOffset) const
-{
-	if (m_pEditCaret)
-		return m_pEditCaret->GetCaretAppearanceStream(ptOffset);
+CFX_ByteString CPWL_Edit::GetCaretAppearanceStream(
+    const CPDF_Point& ptOffset) const {
+  if (m_pEditCaret)
+    return m_pEditCaret->GetCaretAppearanceStream(ptOffset);
 
-	return CFX_ByteString();
+  return CFX_ByteString();
 }
 
-CPDF_Point CPWL_Edit::GetWordRightBottomPoint(const CPVT_WordPlace& wpWord)
-{
-	CPDF_Point pt(0.0f, 0.0f);
+CPDF_Point CPWL_Edit::GetWordRightBottomPoint(const CPVT_WordPlace& wpWord) {
+  CPDF_Point pt(0.0f, 0.0f);
 
-	if (IFX_Edit_Iterator * pIterator = m_pEdit->GetIterator())
-	{
-		CPVT_WordPlace wpOld = pIterator->GetAt();
-		pIterator->SetAt(wpWord);
-		CPVT_Word word;
-		if (pIterator->GetWord(word))
-		{
-			pt = CPDF_Point(word.ptWord.x + word.fWidth, word.ptWord.y + word.fDescent);
-		}
+  if (IFX_Edit_Iterator* pIterator = m_pEdit->GetIterator()) {
+    CPVT_WordPlace wpOld = pIterator->GetAt();
+    pIterator->SetAt(wpWord);
+    CPVT_Word word;
+    if (pIterator->GetWord(word)) {
+      pt = CPDF_Point(word.ptWord.x + word.fWidth,
+                      word.ptWord.y + word.fDescent);
+    }
 
-		pIterator->SetAt(wpOld);
-	}
+    pIterator->SetAt(wpOld);
+  }
 
-	return pt;
+  return pt;
 }
 
-FX_BOOL	CPWL_Edit::IsTextFull() const
-{
-	return m_pEdit->IsTextFull();
+FX_BOOL CPWL_Edit::IsTextFull() const {
+  return m_pEdit->IsTextFull();
 }
 
-FX_FLOAT CPWL_Edit::GetCharArrayAutoFontSize(CPDF_Font* pFont, const CPDF_Rect& rcPlate, int32_t nCharArray)
-{
-	if (pFont && !pFont->IsStandardFont())
-	{
-		FX_RECT rcBBox;
-		pFont->GetFontBBox(rcBBox);
+FX_FLOAT CPWL_Edit::GetCharArrayAutoFontSize(CPDF_Font* pFont,
+                                             const CPDF_Rect& rcPlate,
+                                             int32_t nCharArray) {
+  if (pFont && !pFont->IsStandardFont()) {
+    FX_RECT rcBBox;
+    pFont->GetFontBBox(rcBBox);
 
-		CPDF_Rect rcCell = rcPlate;
-		FX_FLOAT xdiv = rcCell.Width() / nCharArray * 1000.0f / rcBBox.Width();
-		FX_FLOAT ydiv = - rcCell.Height() * 1000.0f / rcBBox.Height();
+    CPDF_Rect rcCell = rcPlate;
+    FX_FLOAT xdiv = rcCell.Width() / nCharArray * 1000.0f / rcBBox.Width();
+    FX_FLOAT ydiv = -rcCell.Height() * 1000.0f / rcBBox.Height();
 
-		return xdiv < ydiv ? xdiv : ydiv;
-	}
+    return xdiv < ydiv ? xdiv : ydiv;
+  }
 
-	return 0.0f;
+  return 0.0f;
 }
 
-void CPWL_Edit::SetCharArray(int32_t nCharArray)
-{
-	if (HasFlag(PES_CHARARRAY) && nCharArray > 0)
-	{
-		m_pEdit->SetCharArray(nCharArray);
-		m_pEdit->SetTextOverflow(TRUE);
-
-		if (HasFlag(PWS_AUTOFONTSIZE))
-		{
-			if (IFX_Edit_FontMap* pFontMap = GetFontMap())
-			{
-				FX_FLOAT fFontSize = GetCharArrayAutoFontSize(pFontMap->GetPDFFont(0), GetClientRect(), nCharArray);
-				if (fFontSize > 0.0f)
-				{
-					m_pEdit->SetAutoFontSize(FALSE);
-					m_pEdit->SetFontSize(fFontSize);
-				}
-			}
-		}
-	}
+void CPWL_Edit::SetCharArray(int32_t nCharArray) {
+  if (HasFlag(PES_CHARARRAY) && nCharArray > 0) {
+    m_pEdit->SetCharArray(nCharArray);
+    m_pEdit->SetTextOverflow(TRUE);
+
+    if (HasFlag(PWS_AUTOFONTSIZE)) {
+      if (IFX_Edit_FontMap* pFontMap = GetFontMap()) {
+        FX_FLOAT fFontSize = GetCharArrayAutoFontSize(
+            pFontMap->GetPDFFont(0), GetClientRect(), nCharArray);
+        if (fFontSize > 0.0f) {
+          m_pEdit->SetAutoFontSize(FALSE);
+          m_pEdit->SetFontSize(fFontSize);
+        }
+      }
+    }
+  }
 }
 
-void CPWL_Edit::SetLimitChar(int32_t nLimitChar)
-{
-	m_pEdit->SetLimitChar(nLimitChar);
+void CPWL_Edit::SetLimitChar(int32_t nLimitChar) {
+  m_pEdit->SetLimitChar(nLimitChar);
 }
 
-void CPWL_Edit::ReplaceSel(const FX_WCHAR* csText)
-{
-	m_pEdit->Clear();
-	m_pEdit->InsertText(csText);
+void CPWL_Edit::ReplaceSel(const FX_WCHAR* csText) {
+  m_pEdit->Clear();
+  m_pEdit->InsertText(csText);
 }
 
-CPDF_Rect CPWL_Edit::GetFocusRect() const
-{
-	return CPDF_Rect();
+CPDF_Rect CPWL_Edit::GetFocusRect() const {
+  return CPDF_Rect();
 }
 
-void CPWL_Edit::ShowVScrollBar(FX_BOOL bShow)
-{
-	if (CPWL_ScrollBar * pScroll = GetVScrollBar())
-	{
-		if (bShow)
-		{
-			if (!pScroll->IsVisible())
-			{
-				pScroll->SetVisible(TRUE);
-				CPDF_Rect rcWindow = GetWindowRect();
-				m_rcOldWindow = rcWindow;
-				rcWindow.right += PWL_SCROLLBAR_WIDTH;
-				Move(rcWindow, TRUE, TRUE);
-			}
-		}
-		else
-		{
-			if (pScroll->IsVisible())
-			{
-				pScroll->SetVisible(FALSE);
-				Move(m_rcOldWindow, TRUE, TRUE);
-			}
-		}
-	}
+void CPWL_Edit::ShowVScrollBar(FX_BOOL bShow) {
+  if (CPWL_ScrollBar* pScroll = GetVScrollBar()) {
+    if (bShow) {
+      if (!pScroll->IsVisible()) {
+        pScroll->SetVisible(TRUE);
+        CPDF_Rect rcWindow = GetWindowRect();
+        m_rcOldWindow = rcWindow;
+        rcWindow.right += PWL_SCROLLBAR_WIDTH;
+        Move(rcWindow, TRUE, TRUE);
+      }
+    } else {
+      if (pScroll->IsVisible()) {
+        pScroll->SetVisible(FALSE);
+        Move(m_rcOldWindow, TRUE, TRUE);
+      }
+    }
+  }
 }
 
-FX_BOOL	CPWL_Edit::IsVScrollBarVisible() const
-{
-	if (CPWL_ScrollBar * pScroll = GetVScrollBar())
-	{
-		return pScroll->IsVisible();
-	}
+FX_BOOL CPWL_Edit::IsVScrollBarVisible() const {
+  if (CPWL_ScrollBar* pScroll = GetVScrollBar()) {
+    return pScroll->IsVisible();
+  }
 
-	return FALSE;
+  return FALSE;
 }
 
-void CPWL_Edit::EnableSpellCheck(FX_BOOL bEnabled)
-{
-	if (bEnabled)
-		AddFlag(PES_SPELLCHECK);
-	else
-		RemoveFlag(PES_SPELLCHECK);
+void CPWL_Edit::EnableSpellCheck(FX_BOOL bEnabled) {
+  if (bEnabled)
+    AddFlag(PES_SPELLCHECK);
+  else
+    RemoveFlag(PES_SPELLCHECK);
 }
 
-FX_BOOL CPWL_Edit::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag)
-{
-	if (m_bMouseDown) return TRUE;
-
-	if (nChar == FWL_VKEY_Delete)
-	{
-		if (m_pFillerNotify)
-		{
-			FX_BOOL bRC = TRUE;
-			FX_BOOL bExit = FALSE;
-			CFX_WideString strChange;
-			CFX_WideString strChangeEx;
-
-			int nSelStart = 0;
-			int nSelEnd = 0;
-			GetSel(nSelStart, nSelEnd);
-
-			if (nSelStart == nSelEnd)
-				nSelEnd = nSelStart + 1;
-			m_pFillerNotify->OnBeforeKeyStroke(TRUE, GetAttachedData(), FWL_VKEY_Delete, strChange, strChangeEx, nSelStart, nSelEnd, TRUE, bRC, bExit, nFlag);
-			if (!bRC) return FALSE;
-			if (bExit) return FALSE;
-		}
-	}
-
-	FX_BOOL bRet = CPWL_EditCtrl::OnKeyDown(nChar,  nFlag);
-
-	if (nChar == FWL_VKEY_Delete)
-	{
-		if (m_pFillerNotify)
-		{
-			FX_BOOL bExit = FALSE;
-			m_pFillerNotify->OnAfterKeyStroke(TRUE, GetAttachedData(), bExit,nFlag);
-			if (bExit) return FALSE;
-		}
-	}
-
-	//In case of implementation swallow the OnKeyDown event.
-	if(IsProceedtoOnChar(nChar, nFlag))
-			return TRUE;
-
-	return bRet;
+FX_BOOL CPWL_Edit::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag) {
+  if (m_bMouseDown)
+    return TRUE;
+
+  if (nChar == FWL_VKEY_Delete) {
+    if (m_pFillerNotify) {
+      FX_BOOL bRC = TRUE;
+      FX_BOOL bExit = FALSE;
+      CFX_WideString strChange;
+      CFX_WideString strChangeEx;
+
+      int nSelStart = 0;
+      int nSelEnd = 0;
+      GetSel(nSelStart, nSelEnd);
+
+      if (nSelStart == nSelEnd)
+        nSelEnd = nSelStart + 1;
+      m_pFillerNotify->OnBeforeKeyStroke(
+          TRUE, GetAttachedData(), FWL_VKEY_Delete, strChange, strChangeEx,
+          nSelStart, nSelEnd, TRUE, bRC, bExit, nFlag);
+      if (!bRC)
+        return FALSE;
+      if (bExit)
+        return FALSE;
+    }
+  }
+
+  FX_BOOL bRet = CPWL_EditCtrl::OnKeyDown(nChar, nFlag);
+
+  if (nChar == FWL_VKEY_Delete) {
+    if (m_pFillerNotify) {
+      FX_BOOL bExit = FALSE;
+      m_pFillerNotify->OnAfterKeyStroke(TRUE, GetAttachedData(), bExit, nFlag);
+      if (bExit)
+        return FALSE;
+    }
+  }
+
+  // In case of implementation swallow the OnKeyDown event.
+  if (IsProceedtoOnChar(nChar, nFlag))
+    return TRUE;
+
+  return bRet;
 }
 
 /**
 *In case of implementation swallow the OnKeyDown event.
-*If the event is swallowed, implementation may do other unexpected things, which is not the control means to do.
+*If the event is swallowed, implementation may do other unexpected things, which
+*is not the control means to do.
 */
-FX_BOOL CPWL_Edit::IsProceedtoOnChar(FX_WORD nKeyCode, FX_DWORD nFlag)
-{
-
-	FX_BOOL bCtrl = IsCTRLpressed(nFlag);
-	FX_BOOL bAlt = IsALTpressed(nFlag);
-	if(bCtrl && !bAlt)
-	{
-	//hot keys for edit control.
-		switch(nKeyCode)
-		{
-		case 'C':
-		case 'V':
-		case 'X':
-		case 'A':
-		case 'Z':
-			return TRUE;
-		default:
-			break;
-		}
-	}
-	//control characters.
-	switch(nKeyCode)
-	{
-	case FWL_VKEY_Escape:
-	case FWL_VKEY_Back:
-	case FWL_VKEY_Return:
-	case FWL_VKEY_Space:
-		return TRUE;
-	default:
-		break;
-	}
-	return FALSE;
-
+FX_BOOL CPWL_Edit::IsProceedtoOnChar(FX_WORD nKeyCode, FX_DWORD nFlag) {
+  FX_BOOL bCtrl = IsCTRLpressed(nFlag);
+  FX_BOOL bAlt = IsALTpressed(nFlag);
+  if (bCtrl && !bAlt) {
+    // hot keys for edit control.
+    switch (nKeyCode) {
+      case 'C':
+      case 'V':
+      case 'X':
+      case 'A':
+      case 'Z':
+        return TRUE;
+      default:
+        break;
+    }
+  }
+  // control characters.
+  switch (nKeyCode) {
+    case FWL_VKEY_Escape:
+    case FWL_VKEY_Back:
+    case FWL_VKEY_Return:
+    case FWL_VKEY_Space:
+      return TRUE;
+    default:
+      break;
+  }
+  return FALSE;
 }
 
-FX_BOOL CPWL_Edit::OnChar(FX_WORD nChar, FX_DWORD nFlag)
-{
-	if (m_bMouseDown) return TRUE;
-
-	FX_BOOL bRC = TRUE;
-	FX_BOOL bExit = FALSE;
-
-	FX_BOOL bCtrl = IsCTRLpressed(nFlag);
-	if (!bCtrl)
-	{
-		if (m_pFillerNotify)
-		{
-			CFX_WideString swChange;
-			int32_t nKeyCode;
-
-			int nSelStart = 0;
-			int nSelEnd = 0;
-			GetSel(nSelStart, nSelEnd);
-
-			switch (nChar)
-			{
-			case FWL_VKEY_Back:
-				nKeyCode = nChar;
-				if (nSelStart == nSelEnd)
-					nSelStart = nSelEnd - 1;
-				break;
-			case FWL_VKEY_Return:
-				nKeyCode = nChar;
-				break;
-			default:
-				nKeyCode = 0;
-				swChange += nChar;
-				break;
-			}
-
-			CFX_WideString strChangeEx;
-			m_pFillerNotify->OnBeforeKeyStroke(TRUE, GetAttachedData(), nKeyCode, swChange, strChangeEx, nSelStart, nSelEnd, TRUE, bRC, bExit, nFlag);
-		}
-	}
-
-	if (!bRC) return TRUE;
-	if (bExit) return FALSE;
-
-	if (IFX_Edit_FontMap * pFontMap = GetFontMap())
-	{
-		int32_t nOldCharSet = GetCharSet();
-		int32_t nNewCharSet = pFontMap->CharSetFromUnicode(nChar, DEFAULT_CHARSET);
-		if(nOldCharSet != nNewCharSet)
-		{
-			SetCharSet(nNewCharSet);
-		}
-	}
-	FX_BOOL bRet = CPWL_EditCtrl::OnChar(nChar,nFlag);
-
-	if (!bCtrl)
-	{
-		if (m_pFillerNotify)
-		{
-			m_pFillerNotify->OnAfterKeyStroke(TRUE, GetAttachedData(), bExit,nFlag);
-			if (bExit) return FALSE;
-		}
-	}
-
-	return bRet;
-}
+FX_BOOL CPWL_Edit::OnChar(FX_WORD nChar, FX_DWORD nFlag) {
+  if (m_bMouseDown)
+    return TRUE;
+
+  FX_BOOL bRC = TRUE;
+  FX_BOOL bExit = FALSE;
+
+  FX_BOOL bCtrl = IsCTRLpressed(nFlag);
+  if (!bCtrl) {
+    if (m_pFillerNotify) {
+      CFX_WideString swChange;
+      int32_t nKeyCode;
+
+      int nSelStart = 0;
+      int nSelEnd = 0;
+      GetSel(nSelStart, nSelEnd);
+
+      switch (nChar) {
+        case FWL_VKEY_Back:
+          nKeyCode = nChar;
+          if (nSelStart == nSelEnd)
+            nSelStart = nSelEnd - 1;
+          break;
+        case FWL_VKEY_Return:
+          nKeyCode = nChar;
+          break;
+        default:
+          nKeyCode = 0;
+          swChange += nChar;
+          break;
+      }
+
+      CFX_WideString strChangeEx;
+      m_pFillerNotify->OnBeforeKeyStroke(TRUE, GetAttachedData(), nKeyCode,
+                                         swChange, strChangeEx, nSelStart,
+                                         nSelEnd, TRUE, bRC, bExit, nFlag);
+    }
+  }
+
+  if (!bRC)
+    return TRUE;
+  if (bExit)
+    return FALSE;
+
+  if (IFX_Edit_FontMap* pFontMap = GetFontMap()) {
+    int32_t nOldCharSet = GetCharSet();
+    int32_t nNewCharSet = pFontMap->CharSetFromUnicode(nChar, DEFAULT_CHARSET);
+    if (nOldCharSet != nNewCharSet) {
+      SetCharSet(nNewCharSet);
+    }
+  }
+  FX_BOOL bRet = CPWL_EditCtrl::OnChar(nChar, nFlag);
+
+  if (!bCtrl) {
+    if (m_pFillerNotify) {
+      m_pFillerNotify->OnAfterKeyStroke(TRUE, GetAttachedData(), bExit, nFlag);
+      if (bExit)
+        return FALSE;
+    }
+  }
 
-FX_BOOL	CPWL_Edit::OnMouseWheel(short zDelta, const CPDF_Point & point, FX_DWORD nFlag)
-{
-	if (HasFlag(PES_MULTILINE))
-	{
-		CPDF_Point ptScroll = GetScrollPos();
-
-		if (zDelta > 0)
-		{
-			ptScroll.y += GetFontSize();
-		}
-		else
-		{
-			ptScroll.y -= GetFontSize();
-		}
-		SetScrollPos(ptScroll);
-
-		return TRUE;
-	}
-
-	return FALSE;
+  return bRet;
 }
 
-void CPWL_Edit::OnInsertReturn(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace)
-{
-	if (HasFlag(PES_SPELLCHECK))
-	{
-		m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),GetLatinWordsRange(place)));
-	}
-
-	if (m_pEditNotify)
-	{
-		m_pEditNotify->OnInsertReturn(place, oldplace);
-	}
-}
+FX_BOOL CPWL_Edit::OnMouseWheel(short zDelta,
+                                const CPDF_Point& point,
+                                FX_DWORD nFlag) {
+  if (HasFlag(PES_MULTILINE)) {
+    CPDF_Point ptScroll = GetScrollPos();
+
+    if (zDelta > 0) {
+      ptScroll.y += GetFontSize();
+    } else {
+      ptScroll.y -= GetFontSize();
+    }
+    SetScrollPos(ptScroll);
+
+    return TRUE;
+  }
 
-void CPWL_Edit::OnBackSpace(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace)
-{
-	if (HasFlag(PES_SPELLCHECK))
-	{
-		m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),GetLatinWordsRange(place)));
-	}
-
-	if (m_pEditNotify)
-	{
-		m_pEditNotify->OnBackSpace(place, oldplace);
-	}
+  return FALSE;
 }
 
-void CPWL_Edit::OnDelete(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace)
-{
-	if (HasFlag(PES_SPELLCHECK))
-	{
-		m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),GetLatinWordsRange(place)));
-	}
-
-	if (m_pEditNotify)
-	{
-		m_pEditNotify->OnDelete(place, oldplace);
-	}
+void CPWL_Edit::OnInsertReturn(const CPVT_WordPlace& place,
+                               const CPVT_WordPlace& oldplace) {
+  if (HasFlag(PES_SPELLCHECK)) {
+    m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),
+                                               GetLatinWordsRange(place)));
+  }
+
+  if (m_pEditNotify) {
+    m_pEditNotify->OnInsertReturn(place, oldplace);
+  }
 }
 
-void CPWL_Edit::OnClear(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace)
-{
-	if (HasFlag(PES_SPELLCHECK))
-	{
-		m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),GetLatinWordsRange(place)));
-	}
-
-	if (m_pEditNotify)
-	{
-		m_pEditNotify->OnClear(place, oldplace);
-	}
+void CPWL_Edit::OnBackSpace(const CPVT_WordPlace& place,
+                            const CPVT_WordPlace& oldplace) {
+  if (HasFlag(PES_SPELLCHECK)) {
+    m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),
+                                               GetLatinWordsRange(place)));
+  }
+
+  if (m_pEditNotify) {
+    m_pEditNotify->OnBackSpace(place, oldplace);
+  }
 }
 
-void CPWL_Edit::OnInsertWord(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace)
-{
-	if (HasFlag(PES_SPELLCHECK))
-	{
-		m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),GetLatinWordsRange(place)));
-	}
-
-	if (m_pEditNotify)
-	{
-		m_pEditNotify->OnInsertWord(place, oldplace);
-	}
+void CPWL_Edit::OnDelete(const CPVT_WordPlace& place,
+                         const CPVT_WordPlace& oldplace) {
+  if (HasFlag(PES_SPELLCHECK)) {
+    m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),
+                                               GetLatinWordsRange(place)));
+  }
+
+  if (m_pEditNotify) {
+    m_pEditNotify->OnDelete(place, oldplace);
+  }
 }
 
-void CPWL_Edit::OnSetText(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace)
-{
+void CPWL_Edit::OnClear(const CPVT_WordPlace& place,
+                        const CPVT_WordPlace& oldplace) {
+  if (HasFlag(PES_SPELLCHECK)) {
+    m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),
+                                               GetLatinWordsRange(place)));
+  }
+
+  if (m_pEditNotify) {
+    m_pEditNotify->OnClear(place, oldplace);
+  }
 }
 
-void CPWL_Edit::OnInsertText(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace)
-{
-	if (HasFlag(PES_SPELLCHECK))
-	{
-		m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),GetLatinWordsRange(place)));
-	}
-
-	if (m_pEditNotify)
-	{
-		m_pEditNotify->OnInsertText(place, oldplace);
-	}
+void CPWL_Edit::OnInsertWord(const CPVT_WordPlace& place,
+                             const CPVT_WordPlace& oldplace) {
+  if (HasFlag(PES_SPELLCHECK)) {
+    m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),
+                                               GetLatinWordsRange(place)));
+  }
+
+  if (m_pEditNotify) {
+    m_pEditNotify->OnInsertWord(place, oldplace);
+  }
 }
 
-void CPWL_Edit::OnAddUndo(IFX_Edit_UndoItem* pUndoItem)
-{
-	if (m_pEditNotify)
-	{
-		m_pEditNotify->OnAddUndo(this);
-	}
+void CPWL_Edit::OnSetText(const CPVT_WordPlace& place,
+                          const CPVT_WordPlace& oldplace) {}
+
+void CPWL_Edit::OnInsertText(const CPVT_WordPlace& place,
+                             const CPVT_WordPlace& oldplace) {
+  if (HasFlag(PES_SPELLCHECK)) {
+    m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),
+                                               GetLatinWordsRange(place)));
+  }
+
+  if (m_pEditNotify) {
+    m_pEditNotify->OnInsertText(place, oldplace);
+  }
 }
 
-CPVT_WordRange CPWL_Edit::CombineWordRange(const CPVT_WordRange& wr1, const CPVT_WordRange& wr2)
-{
-	CPVT_WordRange wrRet;
-
-	if (wr1.BeginPos.WordCmp(wr2.BeginPos) < 0)
-	{
-		wrRet.BeginPos = wr1.BeginPos;
-	}
-	else
-	{
-		wrRet.BeginPos = wr2.BeginPos;
-	}
-
-	if (wr1.EndPos.WordCmp(wr2.EndPos) < 0)
-	{
-		wrRet.EndPos = wr2.EndPos;
-	}
-	else
-	{
-		wrRet.EndPos = wr1.EndPos;
-	}
-
-	return wrRet;
+void CPWL_Edit::OnAddUndo(IFX_Edit_UndoItem* pUndoItem) {
+  if (m_pEditNotify) {
+    m_pEditNotify->OnAddUndo(this);
+  }
 }
 
-CPVT_WordRange CPWL_Edit::GetLatinWordsRange(const CPDF_Point& point) const
-{
-	return GetSameWordsRange(m_pEdit->SearchWordPlace(point), TRUE, FALSE);
+CPVT_WordRange CPWL_Edit::CombineWordRange(const CPVT_WordRange& wr1,
+                                           const CPVT_WordRange& wr2) {
+  CPVT_WordRange wrRet;
+
+  if (wr1.BeginPos.WordCmp(wr2.BeginPos) < 0) {
+    wrRet.BeginPos = wr1.BeginPos;
+  } else {
+    wrRet.BeginPos = wr2.BeginPos;
+  }
+
+  if (wr1.EndPos.WordCmp(wr2.EndPos) < 0) {
+    wrRet.EndPos = wr2.EndPos;
+  } else {
+    wrRet.EndPos = wr1.EndPos;
+  }
+
+  return wrRet;
 }
 
-CPVT_WordRange CPWL_Edit::GetLatinWordsRange(const CPVT_WordPlace & place) const
-{
-	return GetSameWordsRange(place, TRUE, FALSE);
+CPVT_WordRange CPWL_Edit::GetLatinWordsRange(const CPDF_Point& point) const {
+  return GetSameWordsRange(m_pEdit->SearchWordPlace(point), TRUE, FALSE);
 }
 
-CPVT_WordRange CPWL_Edit::GetArabicWordsRange(const CPVT_WordPlace & place) const
-{
-	return GetSameWordsRange(place, FALSE, TRUE);
+CPVT_WordRange CPWL_Edit::GetLatinWordsRange(
+    const CPVT_WordPlace& place) const {
+  return GetSameWordsRange(place, TRUE, FALSE);
 }
 
-#define PWL_ISARABICWORD(word) ((word >= 0x0600 && word <= 0x06FF) || (word >= 0xFB50 && word <= 0xFEFC))
-
-CPVT_WordRange CPWL_Edit::GetSameWordsRange(const CPVT_WordPlace & place, FX_BOOL bLatin, FX_BOOL bArabic) const
-{
-	CPVT_WordRange range;
-
-	if (IFX_Edit_Iterator* pIterator = m_pEdit->GetIterator())
-	{
-		CPVT_Word wordinfo;
-		CPVT_WordPlace wpStart(place),wpEnd(place);
-		pIterator->SetAt(place);
-
-		if (bLatin)
-		{
-			while (pIterator->NextWord())
-			{
-				if (pIterator->GetWord(wordinfo) && FX_EDIT_ISLATINWORD(wordinfo.Word))
-				{
-					wpEnd = pIterator->GetAt();
-					continue;
-				}
-				else
-					break;
-			};
-		}
-		else if (bArabic)
-		{
-			while (pIterator->NextWord())
-			{
-				if (pIterator->GetWord(wordinfo) && PWL_ISARABICWORD(wordinfo.Word))
-				{
-					wpEnd = pIterator->GetAt();
-					continue;
-				}
-				else
-					break;
-			};
-		}
-
-		pIterator->SetAt(place);
-
-		if (bLatin)
-		{
-			do
-			{
-				if (pIterator->GetWord(wordinfo) && FX_EDIT_ISLATINWORD(wordinfo.Word))
-				{
-					continue;
-				}
-				else
-				{
-					wpStart = pIterator->GetAt();
-					break;
-				}
-			}
-			while (pIterator->PrevWord());
-		}
-		else if (bArabic)
-		{
-			do
-			{
-				if (pIterator->GetWord(wordinfo) && PWL_ISARABICWORD(wordinfo.Word))
-				{
-					continue;
-				}
-				else
-				{
-					wpStart = pIterator->GetAt();
-					break;
-				}
-			}
-			while (pIterator->PrevWord());
-		}
-
-		range.Set(wpStart,wpEnd);
-	}
-
-	return range;
+CPVT_WordRange CPWL_Edit::GetArabicWordsRange(
+    const CPVT_WordPlace& place) const {
+  return GetSameWordsRange(place, FALSE, TRUE);
 }
 
-void CPWL_Edit::AjustArabicWords(const CPVT_WordRange& wr)
-{
+#define PWL_ISARABICWORD(word) \
+  ((word >= 0x0600 && word <= 0x06FF) || (word >= 0xFB50 && word <= 0xFEFC))
+
+CPVT_WordRange CPWL_Edit::GetSameWordsRange(const CPVT_WordPlace& place,
+                                            FX_BOOL bLatin,
+                                            FX_BOOL bArabic) const {
+  CPVT_WordRange range;
+
+  if (IFX_Edit_Iterator* pIterator = m_pEdit->GetIterator()) {
+    CPVT_Word wordinfo;
+    CPVT_WordPlace wpStart(place), wpEnd(place);
+    pIterator->SetAt(place);
+
+    if (bLatin) {
+      while (pIterator->NextWord()) {
+        if (pIterator->GetWord(wordinfo) &&
+            FX_EDIT_ISLATINWORD(wordinfo.Word)) {
+          wpEnd = pIterator->GetAt();
+          continue;
+        } else
+          break;
+      };
+    } else if (bArabic) {
+      while (pIterator->NextWord()) {
+        if (pIterator->GetWord(wordinfo) && PWL_ISARABICWORD(wordinfo.Word)) {
+          wpEnd = pIterator->GetAt();
+          continue;
+        } else
+          break;
+      };
+    }
+
+    pIterator->SetAt(place);
+
+    if (bLatin) {
+      do {
+        if (pIterator->GetWord(wordinfo) &&
+            FX_EDIT_ISLATINWORD(wordinfo.Word)) {
+          continue;
+        } else {
+          wpStart = pIterator->GetAt();
+          break;
+        }
+      } while (pIterator->PrevWord());
+    } else if (bArabic) {
+      do {
+        if (pIterator->GetWord(wordinfo) && PWL_ISARABICWORD(wordinfo.Word)) {
+          continue;
+        } else {
+          wpStart = pIterator->GetAt();
+          break;
+        }
+      } while (pIterator->PrevWord());
+    }
+
+    range.Set(wpStart, wpEnd);
+  }
+
+  return range;
 }
 
-void CPWL_Edit::GeneratePageObjects(CPDF_PageObjects* pPageObjects,
-										const CPDF_Point& ptOffset, CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray)
-{
-	IFX_Edit::GeneratePageObjects(pPageObjects, m_pEdit, ptOffset, NULL, CPWL_Utils::PWLColorToFXColor(GetTextColor(),GetTransparency()), ObjArray);
+void CPWL_Edit::AjustArabicWords(const CPVT_WordRange& wr) {}
+
+void CPWL_Edit::GeneratePageObjects(
+    CPDF_PageObjects* pPageObjects,
+    const CPDF_Point& ptOffset,
+    CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray) {
+  IFX_Edit::GeneratePageObjects(
+      pPageObjects, m_pEdit, ptOffset, NULL,
+      CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
+      ObjArray);
 }
 
 void CPWL_Edit::GeneratePageObjects(CPDF_PageObjects* pPageObjects,
-									const CPDF_Point& ptOffset)
-{
-	CFX_ArrayTemplate<CPDF_TextObject*> ObjArray;
-	IFX_Edit::GeneratePageObjects(pPageObjects, m_pEdit, ptOffset, NULL, CPWL_Utils::PWLColorToFXColor(GetTextColor(),GetTransparency()), ObjArray);
+                                    const CPDF_Point& ptOffset) {
+  CFX_ArrayTemplate<CPDF_TextObject*> ObjArray;
+  IFX_Edit::GeneratePageObjects(
+      pPageObjects, m_pEdit, ptOffset, NULL,
+      CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
+      ObjArray);
 }
-
diff --git a/fpdfsdk/src/pdfwindow/PWL_EditCtrl.cpp b/fpdfsdk/src/pdfwindow/PWL_EditCtrl.cpp
index 0d14587f66..eb6324ee7e 100644
--- a/fpdfsdk/src/pdfwindow/PWL_EditCtrl.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_EditCtrl.cpp
@@ -12,172 +12,146 @@
 #include "../../include/pdfwindow/PWL_Caret.h"
 #include "../../include/pdfwindow/PWL_FontMap.h"
 
-#define IsFloatZero(f)                      ((f) < 0.0001 && (f) > -0.0001)
-#define IsFloatBigger(fa,fb)                ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatSmaller(fa,fb)               ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatEqual(fa,fb)                 IsFloatZero((fa)-(fb))
+#define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001)
+#define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb))
 
 /* ---------------------------- CPWL_EditCtrl ------------------------------ */
 
-CPWL_EditCtrl::CPWL_EditCtrl() :
-    m_pEdit(NULL),
-    m_pEditCaret(NULL),
-    m_bMouseDown(FALSE),
-    m_pEditNotify(NULL),
-    m_nCharSet(DEFAULT_CHARSET),
-    m_nCodePage(0)
-{
-    m_pEdit = IFX_Edit::NewEdit();
-    ASSERT(m_pEdit != NULL);
+CPWL_EditCtrl::CPWL_EditCtrl()
+    : m_pEdit(NULL),
+      m_pEditCaret(NULL),
+      m_bMouseDown(FALSE),
+      m_pEditNotify(NULL),
+      m_nCharSet(DEFAULT_CHARSET),
+      m_nCodePage(0) {
+  m_pEdit = IFX_Edit::NewEdit();
+  ASSERT(m_pEdit != NULL);
 }
 
-CPWL_EditCtrl::~CPWL_EditCtrl()
-{
-    IFX_Edit::DelEdit(m_pEdit);
+CPWL_EditCtrl::~CPWL_EditCtrl() {
+  IFX_Edit::DelEdit(m_pEdit);
 }
 
-void CPWL_EditCtrl::OnCreate(PWL_CREATEPARAM& cp)
-{
-    cp.eCursorType = FXCT_VBEAM;
+void CPWL_EditCtrl::OnCreate(PWL_CREATEPARAM& cp) {
+  cp.eCursorType = FXCT_VBEAM;
 }
 
-void CPWL_EditCtrl::OnCreated()
-{
-    SetFontSize(GetCreationParam().fFontSize);
+void CPWL_EditCtrl::OnCreated() {
+  SetFontSize(GetCreationParam().fFontSize);
 
-    m_pEdit->SetFontMap(GetFontMap());
-    m_pEdit->SetNotify(this);
-    m_pEdit->Initialize();
+  m_pEdit->SetFontMap(GetFontMap());
+  m_pEdit->SetNotify(this);
+  m_pEdit->Initialize();
 }
 
-FX_BOOL CPWL_EditCtrl::IsWndHorV()
-{
-    CPDF_Matrix mt = GetWindowMatrix();
-    CPDF_Point point1(0,1);
-    CPDF_Point point2(1,1);
+FX_BOOL CPWL_EditCtrl::IsWndHorV() {
+  CPDF_Matrix mt = GetWindowMatrix();
+  CPDF_Point point1(0, 1);
+  CPDF_Point point2(1, 1);
 
-    mt.Transform(point1.x, point1.y);
-    mt.Transform(point2.x, point2.y);
+  mt.Transform(point1.x, point1.y);
+  mt.Transform(point2.x, point2.y);
 
-    return point2.y == point1.y;
+  return point2.y == point1.y;
 }
 
-void CPWL_EditCtrl::SetCursor()
-{
-    if (IsValid())
-    {
-        if (IFX_SystemHandler* pSH = GetSystemHandler())
-        {
-            if (IsWndHorV())
-                pSH->SetCursor(FXCT_VBEAM);
-            else
-                pSH->SetCursor(FXCT_HBEAM);
-        }
+void CPWL_EditCtrl::SetCursor() {
+  if (IsValid()) {
+    if (IFX_SystemHandler* pSH = GetSystemHandler()) {
+      if (IsWndHorV())
+        pSH->SetCursor(FXCT_VBEAM);
+      else
+        pSH->SetCursor(FXCT_HBEAM);
     }
-}
-
-void CPWL_EditCtrl::RePosChildWnd()
-{
-    m_pEdit->SetPlateRect(GetClientRect());
-}
-
-void CPWL_EditCtrl::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
-{
-    CPWL_Wnd::OnNotify(pWnd,msg,wParam,lParam);
-
-    switch (msg)
-    {
-        case PNM_SETSCROLLINFO:
-            switch (wParam)
-            {
-                case SBT_VSCROLL:
-                    if (CPWL_Wnd * pChild = GetVScrollBar())
-                    {
-                        pChild->OnNotify(pWnd,PNM_SETSCROLLINFO,wParam,lParam);
-                    }
-                    break;
-            }
-            break;
-        case PNM_SETSCROLLPOS:
-            switch (wParam)
-            {
-                case SBT_VSCROLL:
-                    if (CPWL_Wnd * pChild = GetVScrollBar())
-                    {
-                        pChild->OnNotify(pWnd,PNM_SETSCROLLPOS,wParam,lParam);
-                    }
-                    break;
-            }
-            break;
-        case PNM_SCROLLWINDOW:
-            {
-                FX_FLOAT fPos = *(FX_FLOAT*)lParam;
-                switch (wParam)
-                {
-                    case SBT_VSCROLL:
-                        m_pEdit->SetScrollPos(CPDF_Point(m_pEdit->GetScrollPos().x,fPos));
-                        break;
-                }
-            }
-            break;
-        case PNM_SETCARETINFO:
-            {
-                if (PWL_CARET_INFO * pCaretInfo = (PWL_CARET_INFO *)wParam)
-                {
-                    SetCaret(pCaretInfo->bVisible,
-                        pCaretInfo->ptHead,
-                        pCaretInfo->ptFoot);
-                }
-            }
-            break;
-    }
-}
-
-void CPWL_EditCtrl::CreateChildWnd(const PWL_CREATEPARAM & cp)
-{
-    if (!IsReadOnly())
-        CreateEditCaret(cp);
-}
-
-void CPWL_EditCtrl::CreateEditCaret(const PWL_CREATEPARAM & cp)
-{
-    if (!m_pEditCaret)
-    {
-        m_pEditCaret = new CPWL_Caret;
-        m_pEditCaret->SetInvalidRect(GetClientRect());
-
-        PWL_CREATEPARAM ecp = cp;
-        ecp.pParentWnd = this;
-        ecp.dwFlags = PWS_CHILD | PWS_NOREFRESHCLIP;
-        ecp.dwBorderWidth = 0;
-        ecp.nBorderStyle = PBS_SOLID;
-        ecp.rcRectWnd = CPDF_Rect(0,0,0,0);
-
-        m_pEditCaret->Create(ecp);
-    }
-}
-
-void CPWL_EditCtrl::SetFontSize(FX_FLOAT fFontSize)
-{
-    m_pEdit->SetFontSize(fFontSize);
-}
-
-FX_FLOAT CPWL_EditCtrl::GetFontSize() const
-{
-    return m_pEdit->GetFontSize();
-}
-
-FX_BOOL CPWL_EditCtrl::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag)
-{
-    if (m_bMouseDown) return TRUE;
+  }
+}
+
+void CPWL_EditCtrl::RePosChildWnd() {
+  m_pEdit->SetPlateRect(GetClientRect());
+}
+
+void CPWL_EditCtrl::OnNotify(CPWL_Wnd* pWnd,
+                             FX_DWORD msg,
+                             intptr_t wParam,
+                             intptr_t lParam) {
+  CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
+
+  switch (msg) {
+    case PNM_SETSCROLLINFO:
+      switch (wParam) {
+        case SBT_VSCROLL:
+          if (CPWL_Wnd* pChild = GetVScrollBar()) {
+            pChild->OnNotify(pWnd, PNM_SETSCROLLINFO, wParam, lParam);
+          }
+          break;
+      }
+      break;
+    case PNM_SETSCROLLPOS:
+      switch (wParam) {
+        case SBT_VSCROLL:
+          if (CPWL_Wnd* pChild = GetVScrollBar()) {
+            pChild->OnNotify(pWnd, PNM_SETSCROLLPOS, wParam, lParam);
+          }
+          break;
+      }
+      break;
+    case PNM_SCROLLWINDOW: {
+      FX_FLOAT fPos = *(FX_FLOAT*)lParam;
+      switch (wParam) {
+        case SBT_VSCROLL:
+          m_pEdit->SetScrollPos(CPDF_Point(m_pEdit->GetScrollPos().x, fPos));
+          break;
+      }
+    } break;
+    case PNM_SETCARETINFO: {
+      if (PWL_CARET_INFO* pCaretInfo = (PWL_CARET_INFO*)wParam) {
+        SetCaret(pCaretInfo->bVisible, pCaretInfo->ptHead, pCaretInfo->ptFoot);
+      }
+    } break;
+  }
+}
+
+void CPWL_EditCtrl::CreateChildWnd(const PWL_CREATEPARAM& cp) {
+  if (!IsReadOnly())
+    CreateEditCaret(cp);
+}
+
+void CPWL_EditCtrl::CreateEditCaret(const PWL_CREATEPARAM& cp) {
+  if (!m_pEditCaret) {
+    m_pEditCaret = new CPWL_Caret;
+    m_pEditCaret->SetInvalidRect(GetClientRect());
+
+    PWL_CREATEPARAM ecp = cp;
+    ecp.pParentWnd = this;
+    ecp.dwFlags = PWS_CHILD | PWS_NOREFRESHCLIP;
+    ecp.dwBorderWidth = 0;
+    ecp.nBorderStyle = PBS_SOLID;
+    ecp.rcRectWnd = CPDF_Rect(0, 0, 0, 0);
+
+    m_pEditCaret->Create(ecp);
+  }
+}
+
+void CPWL_EditCtrl::SetFontSize(FX_FLOAT fFontSize) {
+  m_pEdit->SetFontSize(fFontSize);
+}
+
+FX_FLOAT CPWL_EditCtrl::GetFontSize() const {
+  return m_pEdit->GetFontSize();
+}
+
+FX_BOOL CPWL_EditCtrl::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag) {
+  if (m_bMouseDown)
+    return TRUE;
 
-    FX_BOOL bRet = CPWL_Wnd::OnKeyDown(nChar,nFlag);
+  FX_BOOL bRet = CPWL_Wnd::OnKeyDown(nChar, nFlag);
 
-    //FILTER
-    switch (nChar)
-    {
+  // FILTER
+  switch (nChar) {
     default:
-        return FALSE;
+      return FALSE;
     case FWL_VKEY_Delete:
     case FWL_VKEY_Up:
     case FWL_VKEY_Down:
@@ -196,527 +170,460 @@ FX_BOOL CPWL_EditCtrl::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag)
     case 'x':
     case 'a':
     case 'z':
-        break;
-    }
+      break;
+  }
 
-    if (nChar == FWL_VKEY_Delete)
-    {
-        if (m_pEdit->IsSelected())
-            nChar = FWL_VKEY_Unknown;
-    }
+  if (nChar == FWL_VKEY_Delete) {
+    if (m_pEdit->IsSelected())
+      nChar = FWL_VKEY_Unknown;
+  }
 
-    switch (nChar)
-    {
-        case FWL_VKEY_Delete:
-            Delete();
-            return TRUE;
-        case FWL_VKEY_Insert:
-            if (IsSHIFTpressed(nFlag))
-                PasteText();
-            return TRUE;
-        case FWL_VKEY_Up:
-            m_pEdit->OnVK_UP(IsSHIFTpressed(nFlag),FALSE);
-            return TRUE;
-        case FWL_VKEY_Down:
-            m_pEdit->OnVK_DOWN(IsSHIFTpressed(nFlag),FALSE);
-            return TRUE;
-        case FWL_VKEY_Left:
-            m_pEdit->OnVK_LEFT(IsSHIFTpressed(nFlag),FALSE);
-            return TRUE;
-        case FWL_VKEY_Right:
-            m_pEdit->OnVK_RIGHT(IsSHIFTpressed(nFlag),FALSE);
-            return TRUE;
-        case FWL_VKEY_Home:
-            m_pEdit->OnVK_HOME(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-            return TRUE;
-        case FWL_VKEY_End:
-            m_pEdit->OnVK_END(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-            return TRUE;
-        case FWL_VKEY_Unknown:
-            if (!IsSHIFTpressed(nFlag))
-                Clear();
-            else
-                CutText();
-            return TRUE;
-        default:
-            break;
-    }
+  switch (nChar) {
+    case FWL_VKEY_Delete:
+      Delete();
+      return TRUE;
+    case FWL_VKEY_Insert:
+      if (IsSHIFTpressed(nFlag))
+        PasteText();
+      return TRUE;
+    case FWL_VKEY_Up:
+      m_pEdit->OnVK_UP(IsSHIFTpressed(nFlag), FALSE);
+      return TRUE;
+    case FWL_VKEY_Down:
+      m_pEdit->OnVK_DOWN(IsSHIFTpressed(nFlag), FALSE);
+      return TRUE;
+    case FWL_VKEY_Left:
+      m_pEdit->OnVK_LEFT(IsSHIFTpressed(nFlag), FALSE);
+      return TRUE;
+    case FWL_VKEY_Right:
+      m_pEdit->OnVK_RIGHT(IsSHIFTpressed(nFlag), FALSE);
+      return TRUE;
+    case FWL_VKEY_Home:
+      m_pEdit->OnVK_HOME(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      return TRUE;
+    case FWL_VKEY_End:
+      m_pEdit->OnVK_END(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      return TRUE;
+    case FWL_VKEY_Unknown:
+      if (!IsSHIFTpressed(nFlag))
+        Clear();
+      else
+        CutText();
+      return TRUE;
+    default:
+      break;
+  }
 
-    return bRet;
+  return bRet;
 }
 
-FX_BOOL CPWL_EditCtrl::OnChar(FX_WORD nChar, FX_DWORD nFlag)
-{
-    if (m_bMouseDown) return TRUE;
-
-    CPWL_Wnd::OnChar(nChar,nFlag);
+FX_BOOL CPWL_EditCtrl::OnChar(FX_WORD nChar, FX_DWORD nFlag) {
+  if (m_bMouseDown)
+    return TRUE;
 
-    //FILTER
-    switch (nChar)
-    {
-        case 0x0A:
-        case 0x1B:
-            return FALSE;
-        default:
-            break;
-    }
+  CPWL_Wnd::OnChar(nChar, nFlag);
 
-    FX_BOOL bCtrl = IsCTRLpressed(nFlag);
-    FX_BOOL bAlt = IsALTpressed(nFlag);
-    FX_BOOL bShift = IsSHIFTpressed(nFlag);
-
-    FX_WORD word = nChar;
-
-    if (bCtrl && !bAlt)
-    {
-        switch (nChar)
-        {
-            case 'C' - 'A' + 1:
-                CopyText();
-                return TRUE;
-            case 'V' - 'A' + 1:
-                PasteText();
-                return TRUE;
-            case 'X' - 'A' + 1:
-                CutText();
-                return TRUE;
-            case 'A' - 'A' + 1:
-                SelectAll();
-                return TRUE;
-            case 'Z' - 'A' + 1:
-                if (bShift)
-                    Redo();
-                else
-                    Undo();
-                return TRUE;
-            default:
-                if (nChar < 32)
-                    return FALSE;
-        }
+  // FILTER
+  switch (nChar) {
+    case 0x0A:
+    case 0x1B:
+      return FALSE;
+    default:
+      break;
+  }
+
+  FX_BOOL bCtrl = IsCTRLpressed(nFlag);
+  FX_BOOL bAlt = IsALTpressed(nFlag);
+  FX_BOOL bShift = IsSHIFTpressed(nFlag);
+
+  FX_WORD word = nChar;
+
+  if (bCtrl && !bAlt) {
+    switch (nChar) {
+      case 'C' - 'A' + 1:
+        CopyText();
+        return TRUE;
+      case 'V' - 'A' + 1:
+        PasteText();
+        return TRUE;
+      case 'X' - 'A' + 1:
+        CutText();
+        return TRUE;
+      case 'A' - 'A' + 1:
+        SelectAll();
+        return TRUE;
+      case 'Z' - 'A' + 1:
+        if (bShift)
+          Redo();
+        else
+          Undo();
+        return TRUE;
+      default:
+        if (nChar < 32)
+          return FALSE;
     }
+  }
 
-    if (IsReadOnly()) return TRUE;
+  if (IsReadOnly())
+    return TRUE;
 
-    if (m_pEdit->IsSelected() && word ==  FWL_VKEY_Back)
-        word = FWL_VKEY_Unknown;
+  if (m_pEdit->IsSelected() && word == FWL_VKEY_Back)
+    word = FWL_VKEY_Unknown;
 
-    Clear();
+  Clear();
 
-    switch (word)
-    {
+  switch (word) {
     case FWL_VKEY_Back:
-        Backspace();
-        break;
+      Backspace();
+      break;
     case FWL_VKEY_Return:
-        InsertReturn();
-        break;
+      InsertReturn();
+      break;
     case FWL_VKEY_Unknown:
-        break;
+      break;
     default:
-        if (IsINSERTpressed(nFlag))
-            Delete();
-        InsertWord(word, GetCharSet());
-        break;
-    }
+      if (IsINSERTpressed(nFlag))
+        Delete();
+      InsertWord(word, GetCharSet());
+      break;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL CPWL_EditCtrl::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag)
-{
-    CPWL_Wnd::OnLButtonDown(point,nFlag);
+FX_BOOL CPWL_EditCtrl::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonDown(point, nFlag);
 
-    if (ClientHitTest(point))
-    {
-        if (m_bMouseDown)
-            InvalidateRect();
+  if (ClientHitTest(point)) {
+    if (m_bMouseDown)
+      InvalidateRect();
 
-        m_bMouseDown = TRUE;
-        SetCapture();
+    m_bMouseDown = TRUE;
+    SetCapture();
 
-        m_pEdit->OnMouseDown(point,IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-    }
+    m_pEdit->OnMouseDown(point, IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL CPWL_EditCtrl::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-    CPWL_Wnd::OnLButtonUp(point,nFlag);
+FX_BOOL CPWL_EditCtrl::OnLButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonUp(point, nFlag);
 
-    if (m_bMouseDown)
-    {
-        //can receive keybord message
-        if (ClientHitTest(point) && !IsFocused())
-            SetFocus();
+  if (m_bMouseDown) {
+    // can receive keybord message
+    if (ClientHitTest(point) && !IsFocused())
+      SetFocus();
 
-        ReleaseCapture();
-        m_bMouseDown = FALSE;
-    }
+    ReleaseCapture();
+    m_bMouseDown = FALSE;
+  }
 
-    return TRUE;
+  return TRUE;
 }
 
-FX_BOOL CPWL_EditCtrl::OnMouseMove(const CPDF_Point & point, FX_DWORD nFlag)
-{
-    CPWL_Wnd::OnMouseMove(point,nFlag);
+FX_BOOL CPWL_EditCtrl::OnMouseMove(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnMouseMove(point, nFlag);
 
-    if (m_bMouseDown)
-        m_pEdit->OnMouseMove(point,FALSE,FALSE);
+  if (m_bMouseDown)
+    m_pEdit->OnMouseMove(point, FALSE, FALSE);
 
-    return TRUE;
+  return TRUE;
 }
 
-CPDF_Rect CPWL_EditCtrl::GetContentRect() const
-{
-    return m_pEdit->GetContentRect();
+CPDF_Rect CPWL_EditCtrl::GetContentRect() const {
+  return m_pEdit->GetContentRect();
 }
 
-void CPWL_EditCtrl::SetEditCaret(FX_BOOL bVisible)
-{
-    CPDF_Point ptHead(0,0),ptFoot(0,0);
+void CPWL_EditCtrl::SetEditCaret(FX_BOOL bVisible) {
+  CPDF_Point ptHead(0, 0), ptFoot(0, 0);
 
-    if (bVisible)
-    {
-        GetCaretInfo(ptHead,ptFoot);
-    }
+  if (bVisible) {
+    GetCaretInfo(ptHead, ptFoot);
+  }
 
-    CPVT_WordPlace wpTemp = m_pEdit->GetCaretWordPlace();
-    IOnSetCaret(bVisible,ptHead,ptFoot,wpTemp);
-}
-
-void CPWL_EditCtrl::GetCaretInfo(CPDF_Point & ptHead, CPDF_Point & ptFoot) const
-{
-    if (IFX_Edit_Iterator * pIterator = m_pEdit->GetIterator())
-    {
-        pIterator->SetAt(m_pEdit->GetCaret());
-        CPVT_Word word;
-        CPVT_Line line;
-        if (pIterator->GetWord(word))
-        {
-            ptHead.x = word.ptWord.x + word.fWidth;
-            ptHead.y = word.ptWord.y + word.fAscent;
-            ptFoot.x = word.ptWord.x + word.fWidth;
-            ptFoot.y = word.ptWord.y + word.fDescent;
-        }
-        else if (pIterator->GetLine(line))
-        {
-            ptHead.x = line.ptLine.x;
-            ptHead.y = line.ptLine.y + line.fLineAscent;
-            ptFoot.x = line.ptLine.x;
-            ptFoot.y = line.ptLine.y + line.fLineDescent;
-        }
+  CPVT_WordPlace wpTemp = m_pEdit->GetCaretWordPlace();
+  IOnSetCaret(bVisible, ptHead, ptFoot, wpTemp);
+}
+
+void CPWL_EditCtrl::GetCaretInfo(CPDF_Point& ptHead, CPDF_Point& ptFoot) const {
+  if (IFX_Edit_Iterator* pIterator = m_pEdit->GetIterator()) {
+    pIterator->SetAt(m_pEdit->GetCaret());
+    CPVT_Word word;
+    CPVT_Line line;
+    if (pIterator->GetWord(word)) {
+      ptHead.x = word.ptWord.x + word.fWidth;
+      ptHead.y = word.ptWord.y + word.fAscent;
+      ptFoot.x = word.ptWord.x + word.fWidth;
+      ptFoot.y = word.ptWord.y + word.fDescent;
+    } else if (pIterator->GetLine(line)) {
+      ptHead.x = line.ptLine.x;
+      ptHead.y = line.ptLine.y + line.fLineAscent;
+      ptFoot.x = line.ptLine.x;
+      ptFoot.y = line.ptLine.y + line.fLineDescent;
     }
+  }
 }
 
-void CPWL_EditCtrl::GetCaretPos(int32_t& x, int32_t& y) const
-{
-    CPDF_Point ptHead(0,0), ptFoot(0,0);
+void CPWL_EditCtrl::GetCaretPos(int32_t& x, int32_t& y) const {
+  CPDF_Point ptHead(0, 0), ptFoot(0, 0);
 
-    GetCaretInfo(ptHead,ptFoot);
+  GetCaretInfo(ptHead, ptFoot);
 
-    PWLtoWnd(ptHead, x, y);
+  PWLtoWnd(ptHead, x, y);
 }
 
-void CPWL_EditCtrl::SetCaret(FX_BOOL bVisible, const CPDF_Point & ptHead, const CPDF_Point & ptFoot)
-{
-    if (m_pEditCaret)
-    {
-        if (!IsFocused() || m_pEdit->IsSelected())
-            bVisible = FALSE;
+void CPWL_EditCtrl::SetCaret(FX_BOOL bVisible,
+                             const CPDF_Point& ptHead,
+                             const CPDF_Point& ptFoot) {
+  if (m_pEditCaret) {
+    if (!IsFocused() || m_pEdit->IsSelected())
+      bVisible = FALSE;
 
-        m_pEditCaret->SetCaret(bVisible, ptHead, ptFoot);
-    }
+    m_pEditCaret->SetCaret(bVisible, ptHead, ptFoot);
+  }
 }
 
-FX_BOOL CPWL_EditCtrl::IsModified() const
-{
-    return m_pEdit->IsModified();
+FX_BOOL CPWL_EditCtrl::IsModified() const {
+  return m_pEdit->IsModified();
 }
 
-CFX_WideString CPWL_EditCtrl::GetText() const
-{
-    return m_pEdit->GetText();
+CFX_WideString CPWL_EditCtrl::GetText() const {
+  return m_pEdit->GetText();
 }
 
-void CPWL_EditCtrl::SetSel(int32_t nStartChar,int32_t nEndChar)
-{
-    m_pEdit->SetSel(nStartChar, nEndChar);
+void CPWL_EditCtrl::SetSel(int32_t nStartChar, int32_t nEndChar) {
+  m_pEdit->SetSel(nStartChar, nEndChar);
 }
 
-void CPWL_EditCtrl::GetSel(int32_t & nStartChar, int32_t & nEndChar ) const
-{
-    m_pEdit->GetSel(nStartChar, nEndChar);
+void CPWL_EditCtrl::GetSel(int32_t& nStartChar, int32_t& nEndChar) const {
+  m_pEdit->GetSel(nStartChar, nEndChar);
 }
 
-void CPWL_EditCtrl::Clear()
-{
-    if (!IsReadOnly())
-        m_pEdit->Clear();
+void CPWL_EditCtrl::Clear() {
+  if (!IsReadOnly())
+    m_pEdit->Clear();
 }
 
-void CPWL_EditCtrl::SelectAll()
-{
-    m_pEdit->SelectAll();
+void CPWL_EditCtrl::SelectAll() {
+  m_pEdit->SelectAll();
 }
 
-void CPWL_EditCtrl::Paint()
-{
-    if (m_pEdit)
-        m_pEdit->Paint();
+void CPWL_EditCtrl::Paint() {
+  if (m_pEdit)
+    m_pEdit->Paint();
 }
 
-void CPWL_EditCtrl::EnableRefresh(FX_BOOL bRefresh)
-{
-    if (m_pEdit)
-        m_pEdit->EnableRefresh(bRefresh);
+void CPWL_EditCtrl::EnableRefresh(FX_BOOL bRefresh) {
+  if (m_pEdit)
+    m_pEdit->EnableRefresh(bRefresh);
 }
 
-int32_t CPWL_EditCtrl::GetCaret() const
-{
-    if (m_pEdit)
-        return m_pEdit->GetCaret();
+int32_t CPWL_EditCtrl::GetCaret() const {
+  if (m_pEdit)
+    return m_pEdit->GetCaret();
 
-    return -1;
+  return -1;
 }
 
-void CPWL_EditCtrl::SetCaret(int32_t nPos)
-{
-    if (m_pEdit)
-        m_pEdit->SetCaret(nPos);
+void CPWL_EditCtrl::SetCaret(int32_t nPos) {
+  if (m_pEdit)
+    m_pEdit->SetCaret(nPos);
 }
 
-int32_t CPWL_EditCtrl::GetTotalWords() const
-{
-    if (m_pEdit)
-        return m_pEdit->GetTotalWords();
+int32_t CPWL_EditCtrl::GetTotalWords() const {
+  if (m_pEdit)
+    return m_pEdit->GetTotalWords();
 
-    return 0;
+  return 0;
 }
 
-void CPWL_EditCtrl::SetScrollPos(const CPDF_Point& point)
-{
-    if (m_pEdit)
-        m_pEdit->SetScrollPos(point);
+void CPWL_EditCtrl::SetScrollPos(const CPDF_Point& point) {
+  if (m_pEdit)
+    m_pEdit->SetScrollPos(point);
 }
 
-CPDF_Point CPWL_EditCtrl::GetScrollPos() const
-{
-    if (m_pEdit)
-        return m_pEdit->GetScrollPos();
+CPDF_Point CPWL_EditCtrl::GetScrollPos() const {
+  if (m_pEdit)
+    return m_pEdit->GetScrollPos();
 
-    return CPDF_Point(0.0f, 0.0f);
+  return CPDF_Point(0.0f, 0.0f);
 }
 
-CPDF_Font * CPWL_EditCtrl::GetCaretFont() const
-{
-    int32_t nFontIndex = 0;
+CPDF_Font* CPWL_EditCtrl::GetCaretFont() const {
+  int32_t nFontIndex = 0;
 
-    if (IFX_Edit_Iterator * pIterator = m_pEdit->GetIterator())
-    {
-        pIterator->SetAt(m_pEdit->GetCaret());
-        CPVT_Word word;
-        CPVT_Section section;
-        if (pIterator->GetWord(word))
-        {
-            nFontIndex = word.nFontIndex;
-        }
-        else if (HasFlag(PES_RICH))
-        {
-            if (pIterator->GetSection(section))
-            {
-                nFontIndex = section.WordProps.nFontIndex;
-            }
-        }
+  if (IFX_Edit_Iterator* pIterator = m_pEdit->GetIterator()) {
+    pIterator->SetAt(m_pEdit->GetCaret());
+    CPVT_Word word;
+    CPVT_Section section;
+    if (pIterator->GetWord(word)) {
+      nFontIndex = word.nFontIndex;
+    } else if (HasFlag(PES_RICH)) {
+      if (pIterator->GetSection(section)) {
+        nFontIndex = section.WordProps.nFontIndex;
+      }
     }
+  }
 
-    if (IFX_Edit_FontMap* pFontMap = GetFontMap())
-        return pFontMap->GetPDFFont(nFontIndex);
-
-    return NULL;
-}
-
-FX_FLOAT CPWL_EditCtrl::GetCaretFontSize() const
-{
-    FX_FLOAT fFontSize = GetFontSize();
-
-    if (IFX_Edit_Iterator * pIterator = m_pEdit->GetIterator())
-    {
-        pIterator->SetAt(m_pEdit->GetCaret());
-        CPVT_Word word;
-        CPVT_Section section;
-        if (pIterator->GetWord(word))
-        {
-            fFontSize = word.fFontSize;
-        }
-        else if (HasFlag(PES_RICH))
-        {
-            if (pIterator->GetSection(section))
-            {
-                fFontSize = section.WordProps.fFontSize;
-            }
-        }
-    }
+  if (IFX_Edit_FontMap* pFontMap = GetFontMap())
+    return pFontMap->GetPDFFont(nFontIndex);
 
-    return fFontSize;
+  return NULL;
 }
 
-void CPWL_EditCtrl::SetText(const FX_WCHAR* csText)
-{
-    m_pEdit->SetText(csText);
-}
+FX_FLOAT CPWL_EditCtrl::GetCaretFontSize() const {
+  FX_FLOAT fFontSize = GetFontSize();
 
-void CPWL_EditCtrl::CopyText()
-{
-}
+  if (IFX_Edit_Iterator* pIterator = m_pEdit->GetIterator()) {
+    pIterator->SetAt(m_pEdit->GetCaret());
+    CPVT_Word word;
+    CPVT_Section section;
+    if (pIterator->GetWord(word)) {
+      fFontSize = word.fFontSize;
+    } else if (HasFlag(PES_RICH)) {
+      if (pIterator->GetSection(section)) {
+        fFontSize = section.WordProps.fFontSize;
+      }
+    }
+  }
 
-void CPWL_EditCtrl::PasteText()
-{
+  return fFontSize;
 }
 
-void CPWL_EditCtrl::CutText()
-{
+void CPWL_EditCtrl::SetText(const FX_WCHAR* csText) {
+  m_pEdit->SetText(csText);
 }
 
-void CPWL_EditCtrl::ShowVScrollBar(FX_BOOL bShow)
-{
-}
+void CPWL_EditCtrl::CopyText() {}
+
+void CPWL_EditCtrl::PasteText() {}
 
-void CPWL_EditCtrl::InsertText(const FX_WCHAR* csText)
-{
-    if (!IsReadOnly())
-        m_pEdit->InsertText(csText);
+void CPWL_EditCtrl::CutText() {}
+
+void CPWL_EditCtrl::ShowVScrollBar(FX_BOOL bShow) {}
+
+void CPWL_EditCtrl::InsertText(const FX_WCHAR* csText) {
+  if (!IsReadOnly())
+    m_pEdit->InsertText(csText);
 }
 
-void CPWL_EditCtrl::InsertWord(FX_WORD word, int32_t nCharset)
-{
-    if (!IsReadOnly())
-        m_pEdit->InsertWord(word, nCharset);
+void CPWL_EditCtrl::InsertWord(FX_WORD word, int32_t nCharset) {
+  if (!IsReadOnly())
+    m_pEdit->InsertWord(word, nCharset);
 }
 
-void CPWL_EditCtrl::InsertReturn()
-{
-    if (!IsReadOnly())
-        m_pEdit->InsertReturn();
+void CPWL_EditCtrl::InsertReturn() {
+  if (!IsReadOnly())
+    m_pEdit->InsertReturn();
 }
 
-void CPWL_EditCtrl::Delete()
-{
-    if (!IsReadOnly())
-        m_pEdit->Delete();
+void CPWL_EditCtrl::Delete() {
+  if (!IsReadOnly())
+    m_pEdit->Delete();
 }
 
-void CPWL_EditCtrl::Backspace()
-{
-    if (!IsReadOnly())
-        m_pEdit->Backspace();
+void CPWL_EditCtrl::Backspace() {
+  if (!IsReadOnly())
+    m_pEdit->Backspace();
 }
 
-FX_BOOL CPWL_EditCtrl::CanUndo() const
-{
-    return !IsReadOnly() && m_pEdit->CanUndo();
+FX_BOOL CPWL_EditCtrl::CanUndo() const {
+  return !IsReadOnly() && m_pEdit->CanUndo();
 }
 
-FX_BOOL CPWL_EditCtrl::CanRedo() const
-{
-    return !IsReadOnly() && m_pEdit->CanRedo();
+FX_BOOL CPWL_EditCtrl::CanRedo() const {
+  return !IsReadOnly() && m_pEdit->CanRedo();
 }
 
-void CPWL_EditCtrl::Redo()
-{
-    if (CanRedo())
-        m_pEdit->Redo();
+void CPWL_EditCtrl::Redo() {
+  if (CanRedo())
+    m_pEdit->Redo();
 }
 
-void CPWL_EditCtrl::Undo()
-{
-    if (CanUndo())
-        m_pEdit->Undo();
+void CPWL_EditCtrl::Undo() {
+  if (CanUndo())
+    m_pEdit->Undo();
 }
 
-void CPWL_EditCtrl::IOnSetScrollInfoY(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax,
-                                                FX_FLOAT fContentMin, FX_FLOAT fContentMax,
-                                                FX_FLOAT fSmallStep, FX_FLOAT fBigStep)
-{
-    PWL_SCROLL_INFO Info;
+void CPWL_EditCtrl::IOnSetScrollInfoY(FX_FLOAT fPlateMin,
+                                      FX_FLOAT fPlateMax,
+                                      FX_FLOAT fContentMin,
+                                      FX_FLOAT fContentMax,
+                                      FX_FLOAT fSmallStep,
+                                      FX_FLOAT fBigStep) {
+  PWL_SCROLL_INFO Info;
 
-    Info.fPlateWidth = fPlateMax - fPlateMin;
-    Info.fContentMin = fContentMin;
-    Info.fContentMax = fContentMax;
-    Info.fSmallStep = fSmallStep;
-    Info.fBigStep = fBigStep;
+  Info.fPlateWidth = fPlateMax - fPlateMin;
+  Info.fContentMin = fContentMin;
+  Info.fContentMax = fContentMax;
+  Info.fSmallStep = fSmallStep;
+  Info.fBigStep = fBigStep;
 
-    OnNotify(this,PNM_SETSCROLLINFO,SBT_VSCROLL,(intptr_t)&Info);
+  OnNotify(this, PNM_SETSCROLLINFO, SBT_VSCROLL, (intptr_t)&Info);
 
-    if (IsFloatBigger(Info.fPlateWidth,Info.fContentMax-Info.fContentMin)
-        || IsFloatEqual(Info.fPlateWidth,Info.fContentMax-Info.fContentMin))
-    {
-        ShowVScrollBar(FALSE);
-    }
-    else
-    {
-        ShowVScrollBar(TRUE);
-    }
+  if (IsFloatBigger(Info.fPlateWidth, Info.fContentMax - Info.fContentMin) ||
+      IsFloatEqual(Info.fPlateWidth, Info.fContentMax - Info.fContentMin)) {
+    ShowVScrollBar(FALSE);
+  } else {
+    ShowVScrollBar(TRUE);
+  }
 }
 
-void CPWL_EditCtrl::IOnSetScrollPosY(FX_FLOAT fy)
-{
-    OnNotify(this, PNM_SETSCROLLPOS,SBT_VSCROLL, (intptr_t)&fy);
+void CPWL_EditCtrl::IOnSetScrollPosY(FX_FLOAT fy) {
+  OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&fy);
 }
 
-void CPWL_EditCtrl::IOnSetCaret(FX_BOOL bVisible, const CPDF_Point & ptHead, const CPDF_Point & ptFoot, const CPVT_WordPlace& place)
-{
-    PWL_CARET_INFO cInfo;
-    cInfo.bVisible = bVisible;
-    cInfo.ptHead = ptHead;
-    cInfo.ptFoot = ptFoot;
+void CPWL_EditCtrl::IOnSetCaret(FX_BOOL bVisible,
+                                const CPDF_Point& ptHead,
+                                const CPDF_Point& ptFoot,
+                                const CPVT_WordPlace& place) {
+  PWL_CARET_INFO cInfo;
+  cInfo.bVisible = bVisible;
+  cInfo.ptHead = ptHead;
+  cInfo.ptFoot = ptFoot;
 
-    OnNotify(this, PNM_SETCARETINFO, (intptr_t)&cInfo, (intptr_t)NULL);
+  OnNotify(this, PNM_SETCARETINFO, (intptr_t)&cInfo, (intptr_t)NULL);
 }
 
-void CPWL_EditCtrl::IOnCaretChange(const CPVT_SecProps & secProps, const CPVT_WordProps & wordProps)
-{
-}
+void CPWL_EditCtrl::IOnCaretChange(const CPVT_SecProps& secProps,
+                                   const CPVT_WordProps& wordProps) {}
 
-void CPWL_EditCtrl::IOnContentChange(const CPDF_Rect& rcContent)
-{
-    if (IsValid())
-    {
-        if (m_pEditNotify)
-        {
-            m_pEditNotify->OnContentChange(rcContent);
-        }
+void CPWL_EditCtrl::IOnContentChange(const CPDF_Rect& rcContent) {
+  if (IsValid()) {
+    if (m_pEditNotify) {
+      m_pEditNotify->OnContentChange(rcContent);
     }
+  }
 }
 
-void CPWL_EditCtrl::IOnInvalidateRect(CPDF_Rect * pRect)
-{
-    InvalidateRect(pRect);
+void CPWL_EditCtrl::IOnInvalidateRect(CPDF_Rect* pRect) {
+  InvalidateRect(pRect);
 }
 
-int32_t CPWL_EditCtrl::GetCharSet() const
-{
-    return m_nCharSet < 0 ? DEFAULT_CHARSET : m_nCharSet;
+int32_t CPWL_EditCtrl::GetCharSet() const {
+  return m_nCharSet < 0 ? DEFAULT_CHARSET : m_nCharSet;
 }
 
-void CPWL_EditCtrl::GetTextRange(const CPDF_Rect& rect, int32_t & nStartChar, int32_t & nEndChar) const
-{
-    nStartChar = m_pEdit->WordPlaceToWordIndex(m_pEdit->SearchWordPlace(CPDF_Point(rect.left, rect.top)));
-    nEndChar = m_pEdit->WordPlaceToWordIndex(m_pEdit->SearchWordPlace(CPDF_Point(rect.right, rect.bottom)));
+void CPWL_EditCtrl::GetTextRange(const CPDF_Rect& rect,
+                                 int32_t& nStartChar,
+                                 int32_t& nEndChar) const {
+  nStartChar = m_pEdit->WordPlaceToWordIndex(
+      m_pEdit->SearchWordPlace(CPDF_Point(rect.left, rect.top)));
+  nEndChar = m_pEdit->WordPlaceToWordIndex(
+      m_pEdit->SearchWordPlace(CPDF_Point(rect.right, rect.bottom)));
 }
 
-CFX_WideString CPWL_EditCtrl::GetText(int32_t & nStartChar, int32_t & nEndChar) const
-{
-    CPVT_WordPlace wpStart = m_pEdit->WordIndexToWordPlace(nStartChar);
-    CPVT_WordPlace wpEnd = m_pEdit->WordIndexToWordPlace(nEndChar);
-    return m_pEdit->GetRangeText(CPVT_WordRange(wpStart, wpEnd));
+CFX_WideString CPWL_EditCtrl::GetText(int32_t& nStartChar,
+                                      int32_t& nEndChar) const {
+  CPVT_WordPlace wpStart = m_pEdit->WordIndexToWordPlace(nStartChar);
+  CPVT_WordPlace wpEnd = m_pEdit->WordIndexToWordPlace(nEndChar);
+  return m_pEdit->GetRangeText(CPVT_WordRange(wpStart, wpEnd));
 }
 
-void    CPWL_EditCtrl::SetReadyToInput()
-{
-    if (m_bMouseDown)
-    {
-        ReleaseCapture();
-        m_bMouseDown = FALSE;
-    }
+void CPWL_EditCtrl::SetReadyToInput() {
+  if (m_bMouseDown) {
+    ReleaseCapture();
+    m_bMouseDown = FALSE;
+  }
 }
diff --git a/fpdfsdk/src/pdfwindow/PWL_FontMap.cpp b/fpdfsdk/src/pdfwindow/PWL_FontMap.cpp
index 5fb9c99c3a..65fc9a6bd1 100644
--- a/fpdfsdk/src/pdfwindow/PWL_FontMap.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_FontMap.cpp
@@ -8,191 +8,158 @@
 #include "../../include/pdfwindow/PWL_Wnd.h"
 #include "../../include/pdfwindow/PWL_FontMap.h"
 
-#define DEFAULT_FONT_NAME           "Helvetica"
+#define DEFAULT_FONT_NAME "Helvetica"
 
 /* ------------------------------ CPWL_FontMap ------------------------------ */
 
-CPWL_FontMap::CPWL_FontMap(IFX_SystemHandler* pSystemHandler) :
-    m_pPDFDoc(NULL),
-    m_pSystemHandler(pSystemHandler)
-{
-    ASSERT(m_pSystemHandler != NULL);
+CPWL_FontMap::CPWL_FontMap(IFX_SystemHandler* pSystemHandler)
+    : m_pPDFDoc(NULL), m_pSystemHandler(pSystemHandler) {
+  ASSERT(m_pSystemHandler != NULL);
 }
 
-CPWL_FontMap::~CPWL_FontMap()
-{
-    delete m_pPDFDoc;
-    m_pPDFDoc = NULL;
+CPWL_FontMap::~CPWL_FontMap() {
+  delete m_pPDFDoc;
+  m_pPDFDoc = NULL;
 
-    Empty();
+  Empty();
 }
 
-void CPWL_FontMap::SetSystemHandler(IFX_SystemHandler* pSystemHandler)
-{
-    m_pSystemHandler = pSystemHandler;
+void CPWL_FontMap::SetSystemHandler(IFX_SystemHandler* pSystemHandler) {
+  m_pSystemHandler = pSystemHandler;
 }
 
-CPDF_Document* CPWL_FontMap::GetDocument()
-{
-	if (!m_pPDFDoc)
-	{
-		if (CPDF_ModuleMgr::Get())
-		{
-			m_pPDFDoc = FX_NEW CPDF_Document;
-			m_pPDFDoc->CreateNewDoc();
-		}
-	}
-
-    return m_pPDFDoc;
-}
-
-CPDF_Font* CPWL_FontMap::GetPDFFont(int32_t nFontIndex)
-{
-    if (nFontIndex >=0 && nFontIndex < m_aData.GetSize())
-    {
-        if (CPWL_FontMap_Data* pData = m_aData.GetAt(nFontIndex))
-        {
-            return pData->pFont;
-        }
+CPDF_Document* CPWL_FontMap::GetDocument() {
+  if (!m_pPDFDoc) {
+    if (CPDF_ModuleMgr::Get()) {
+      m_pPDFDoc = FX_NEW CPDF_Document;
+      m_pPDFDoc->CreateNewDoc();
     }
+  }
 
-    return NULL;
+  return m_pPDFDoc;
 }
 
-CFX_ByteString CPWL_FontMap::GetPDFFontAlias(int32_t nFontIndex)
-{
-    if (nFontIndex >=0 && nFontIndex < m_aData.GetSize())
-    {
-        if (CPWL_FontMap_Data* pData = m_aData.GetAt(nFontIndex))
-        {
-            return pData->sFontName;
-        }
+CPDF_Font* CPWL_FontMap::GetPDFFont(int32_t nFontIndex) {
+  if (nFontIndex >= 0 && nFontIndex < m_aData.GetSize()) {
+    if (CPWL_FontMap_Data* pData = m_aData.GetAt(nFontIndex)) {
+      return pData->pFont;
     }
+  }
 
-    return "";
+  return NULL;
 }
 
-FX_BOOL CPWL_FontMap::KnowWord(int32_t nFontIndex, FX_WORD word)
-{
-    if (nFontIndex >=0 && nFontIndex < m_aData.GetSize())
-    {
-        if (m_aData.GetAt(nFontIndex))
-        {
-            return CharCodeFromUnicode(nFontIndex, word) >= 0;
-        }
+CFX_ByteString CPWL_FontMap::GetPDFFontAlias(int32_t nFontIndex) {
+  if (nFontIndex >= 0 && nFontIndex < m_aData.GetSize()) {
+    if (CPWL_FontMap_Data* pData = m_aData.GetAt(nFontIndex)) {
+      return pData->sFontName;
     }
+  }
 
-    return FALSE;
+  return "";
 }
 
-int32_t CPWL_FontMap::GetWordFontIndex(FX_WORD word, int32_t nCharset, int32_t nFontIndex)
-{
-    if (nFontIndex > 0)
-    {
-        if (KnowWord(nFontIndex, word))
-            return nFontIndex;
+FX_BOOL CPWL_FontMap::KnowWord(int32_t nFontIndex, FX_WORD word) {
+  if (nFontIndex >= 0 && nFontIndex < m_aData.GetSize()) {
+    if (m_aData.GetAt(nFontIndex)) {
+      return CharCodeFromUnicode(nFontIndex, word) >= 0;
     }
-    else
-    {
-        if (const CPWL_FontMap_Data* pData = GetFontMapData(0))
-        {
-            if (nCharset == DEFAULT_CHARSET ||
-                pData->nCharset == SYMBOL_CHARSET ||
-                nCharset == pData->nCharset)
-            {
-                if (KnowWord(0, word))
-                    return 0;
-            }
-        }
-    }
-
-    int32_t nNewFontIndex = GetFontIndex(GetNativeFontName(nCharset), nCharset, TRUE);
-    if (nNewFontIndex >= 0)
-    {
-        if (KnowWord(nNewFontIndex, word))
-            return nNewFontIndex;
+  }
+
+  return FALSE;
+}
+
+int32_t CPWL_FontMap::GetWordFontIndex(FX_WORD word,
+                                       int32_t nCharset,
+                                       int32_t nFontIndex) {
+  if (nFontIndex > 0) {
+    if (KnowWord(nFontIndex, word))
+      return nFontIndex;
+  } else {
+    if (const CPWL_FontMap_Data* pData = GetFontMapData(0)) {
+      if (nCharset == DEFAULT_CHARSET || pData->nCharset == SYMBOL_CHARSET ||
+          nCharset == pData->nCharset) {
+        if (KnowWord(0, word))
+          return 0;
+      }
     }
-    nNewFontIndex = GetFontIndex("Arial Unicode MS", DEFAULT_CHARSET, FALSE);
-    if (nNewFontIndex >= 0)
-    {
-        if (KnowWord(nNewFontIndex, word))
-            return nNewFontIndex;
-    }
-    return -1;
-}
-
-int32_t CPWL_FontMap::CharCodeFromUnicode(int32_t nFontIndex, FX_WORD word)
-{
-    if (CPWL_FontMap_Data* pData = m_aData.GetAt(nFontIndex))
-    {
-        if (pData->pFont)
-        {
-            if (pData->pFont->IsUnicodeCompatible())
-            {
-                int nCharCode = pData->pFont->CharCodeFromUnicode(word);
-                pData->pFont->GlyphFromCharCode(nCharCode);
-                return nCharCode;
-            }
-            if (word < 0xFF)
-                return word;
-        }
+  }
+
+  int32_t nNewFontIndex =
+      GetFontIndex(GetNativeFontName(nCharset), nCharset, TRUE);
+  if (nNewFontIndex >= 0) {
+    if (KnowWord(nNewFontIndex, word))
+      return nNewFontIndex;
+  }
+  nNewFontIndex = GetFontIndex("Arial Unicode MS", DEFAULT_CHARSET, FALSE);
+  if (nNewFontIndex >= 0) {
+    if (KnowWord(nNewFontIndex, word))
+      return nNewFontIndex;
+  }
+  return -1;
+}
+
+int32_t CPWL_FontMap::CharCodeFromUnicode(int32_t nFontIndex, FX_WORD word) {
+  if (CPWL_FontMap_Data* pData = m_aData.GetAt(nFontIndex)) {
+    if (pData->pFont) {
+      if (pData->pFont->IsUnicodeCompatible()) {
+        int nCharCode = pData->pFont->CharCodeFromUnicode(word);
+        pData->pFont->GlyphFromCharCode(nCharCode);
+        return nCharCode;
+      }
+      if (word < 0xFF)
+        return word;
     }
-    return -1;
+  }
+  return -1;
 }
 
-CFX_ByteString CPWL_FontMap::GetNativeFontName(int32_t nCharset)
-{
-    //searching native font is slow, so we must save time
-    for (int32_t i=0,sz=m_aNativeFont.GetSize(); i<sz; i++)
-    {
-        if (CPWL_FontMap_Native* pData = m_aNativeFont.GetAt(i))
-        {
-            if (pData->nCharset == nCharset)
-                return pData->sFontName;
-        }
+CFX_ByteString CPWL_FontMap::GetNativeFontName(int32_t nCharset) {
+  // searching native font is slow, so we must save time
+  for (int32_t i = 0, sz = m_aNativeFont.GetSize(); i < sz; i++) {
+    if (CPWL_FontMap_Native* pData = m_aNativeFont.GetAt(i)) {
+      if (pData->nCharset == nCharset)
+        return pData->sFontName;
     }
+  }
 
-    CFX_ByteString sNew = GetNativeFont(nCharset);
+  CFX_ByteString sNew = GetNativeFont(nCharset);
 
-    if (!sNew.IsEmpty())
-    {
-        CPWL_FontMap_Native* pNewData = new CPWL_FontMap_Native;
-        pNewData->nCharset = nCharset;
-        pNewData->sFontName = sNew;
+  if (!sNew.IsEmpty()) {
+    CPWL_FontMap_Native* pNewData = new CPWL_FontMap_Native;
+    pNewData->nCharset = nCharset;
+    pNewData->sFontName = sNew;
 
-        m_aNativeFont.Add(pNewData);
-    }
+    m_aNativeFont.Add(pNewData);
+  }
 
-    return sNew;
+  return sNew;
 }
 
-void CPWL_FontMap::Empty()
-{
-    {
-        for (int32_t i=0, sz=m_aData.GetSize(); i<sz; i++)
-            delete m_aData.GetAt(i);
+void CPWL_FontMap::Empty() {
+  {
+    for (int32_t i = 0, sz = m_aData.GetSize(); i < sz; i++)
+      delete m_aData.GetAt(i);
 
-        m_aData.RemoveAll();
-    }
-    {
-        for (int32_t i=0, sz=m_aNativeFont.GetSize(); i<sz; i++)
-            delete m_aNativeFont.GetAt(i);
+    m_aData.RemoveAll();
+  }
+  {
+    for (int32_t i = 0, sz = m_aNativeFont.GetSize(); i < sz; i++)
+      delete m_aNativeFont.GetAt(i);
 
-        m_aNativeFont.RemoveAll();
-    }
+    m_aNativeFont.RemoveAll();
+  }
 }
 
-void CPWL_FontMap::Initial(const FX_CHAR* fontname)
-{
-    CFX_ByteString sFontName = fontname;
+void CPWL_FontMap::Initial(const FX_CHAR* fontname) {
+  CFX_ByteString sFontName = fontname;
 
-    if (sFontName.IsEmpty())
-        sFontName = DEFAULT_FONT_NAME;
+  if (sFontName.IsEmpty())
+    sFontName = DEFAULT_FONT_NAME;
 
-    GetFontIndex(sFontName, ANSI_CHARSET, FALSE);
+  GetFontIndex(sFontName, ANSI_CHARSET, FALSE);
 }
 
-
 /*
 List of currently supported standard fonts:
 Courier, Courier-Bold, Courier-BoldOblique, Courier-Oblique
@@ -201,368 +168,350 @@ Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic
 Symbol, ZapfDingbats
 */
 
-const char* g_sDEStandardFontName[] = {"Courier", "Courier-Bold", "Courier-BoldOblique", "Courier-Oblique",
-    "Helvetica", "Helvetica-Bold", "Helvetica-BoldOblique", "Helvetica-Oblique",
-    "Times-Roman", "Times-Bold", "Times-Italic", "Times-BoldItalic",
-    "Symbol", "ZapfDingbats"};
-
-FX_BOOL CPWL_FontMap::IsStandardFont(const CFX_ByteString& sFontName)
-{
-    for (int32_t i=0; i<14; i++)
-    {
-        if (sFontName == g_sDEStandardFontName[i])
-            return TRUE;
+const char* g_sDEStandardFontName[] = {"Courier",
+                                       "Courier-Bold",
+                                       "Courier-BoldOblique",
+                                       "Courier-Oblique",
+                                       "Helvetica",
+                                       "Helvetica-Bold",
+                                       "Helvetica-BoldOblique",
+                                       "Helvetica-Oblique",
+                                       "Times-Roman",
+                                       "Times-Bold",
+                                       "Times-Italic",
+                                       "Times-BoldItalic",
+                                       "Symbol",
+                                       "ZapfDingbats"};
+
+FX_BOOL CPWL_FontMap::IsStandardFont(const CFX_ByteString& sFontName) {
+  for (int32_t i = 0; i < 14; i++) {
+    if (sFontName == g_sDEStandardFontName[i])
+      return TRUE;
+  }
+
+  return FALSE;
+}
+
+int32_t CPWL_FontMap::FindFont(const CFX_ByteString& sFontName,
+                               int32_t nCharset) {
+  for (int32_t i = 0, sz = m_aData.GetSize(); i < sz; i++) {
+    if (CPWL_FontMap_Data* pData = m_aData.GetAt(i)) {
+      if (nCharset == DEFAULT_CHARSET || nCharset == pData->nCharset) {
+        if (sFontName.IsEmpty() || pData->sFontName == sFontName)
+          return i;
+      }
     }
+  }
 
-    return FALSE;
+  return -1;
 }
 
-int32_t CPWL_FontMap::FindFont(const CFX_ByteString& sFontName, int32_t nCharset)
-{
-    for (int32_t i=0,sz=m_aData.GetSize(); i<sz; i++)
-    {
-        if (CPWL_FontMap_Data* pData = m_aData.GetAt(i))
-        {
-            if (nCharset == DEFAULT_CHARSET || nCharset == pData->nCharset)
-            {
-                if (sFontName.IsEmpty() || pData->sFontName == sFontName)
-                    return i;
-            }
-        }
-    }
+int32_t CPWL_FontMap::GetFontIndex(const CFX_ByteString& sFontName,
+                                   int32_t nCharset,
+                                   FX_BOOL bFind) {
+  int32_t nFontIndex = FindFont(EncodeFontAlias(sFontName, nCharset), nCharset);
+  if (nFontIndex >= 0)
+    return nFontIndex;
 
-    return -1;
-}
+  CFX_ByteString sAlias;
+  CPDF_Font* pFont = NULL;
+  if (bFind)
+    pFont = FindFontSameCharset(sAlias, nCharset);
 
-int32_t CPWL_FontMap::GetFontIndex(const CFX_ByteString& sFontName, int32_t nCharset, FX_BOOL bFind)
-{
-    int32_t nFontIndex = FindFont(EncodeFontAlias(sFontName, nCharset), nCharset);
-    if (nFontIndex >= 0)
-        return nFontIndex;
-
-    CFX_ByteString sAlias;
-    CPDF_Font* pFont = NULL;
-    if (bFind)
-        pFont = FindFontSameCharset(sAlias, nCharset);
-
-    if (!pFont)
-    {
-        CFX_ByteString sTemp = sFontName;
-        pFont = AddFontToDocument(GetDocument(), sTemp, nCharset);
-        sAlias = EncodeFontAlias(sTemp, nCharset);
-    }
-    AddedFont(pFont, sAlias);
-    return AddFontData(pFont, sAlias, nCharset);
+  if (!pFont) {
+    CFX_ByteString sTemp = sFontName;
+    pFont = AddFontToDocument(GetDocument(), sTemp, nCharset);
+    sAlias = EncodeFontAlias(sTemp, nCharset);
+  }
+  AddedFont(pFont, sAlias);
+  return AddFontData(pFont, sAlias, nCharset);
 }
 
-int32_t CPWL_FontMap::GetPWLFontIndex(FX_WORD word, int32_t nCharset)
-{
-    int32_t nFind = -1;
-
-    for (int32_t i=0,sz=m_aData.GetSize(); i<sz; i++)
-    {
-        if (CPWL_FontMap_Data* pData = m_aData.GetAt(i))
-        {
-            if (pData->nCharset == nCharset)
-            {
-                nFind = i;
-                break;
-            }
-        }
+int32_t CPWL_FontMap::GetPWLFontIndex(FX_WORD word, int32_t nCharset) {
+  int32_t nFind = -1;
+
+  for (int32_t i = 0, sz = m_aData.GetSize(); i < sz; i++) {
+    if (CPWL_FontMap_Data* pData = m_aData.GetAt(i)) {
+      if (pData->nCharset == nCharset) {
+        nFind = i;
+        break;
+      }
     }
+  }
 
-    CPDF_Font* pNewFont = GetPDFFont(nFind);
+  CPDF_Font* pNewFont = GetPDFFont(nFind);
 
-    if (!pNewFont) return -1;
+  if (!pNewFont)
+    return -1;
 
-    /*
-    if (CPDF_Font* pFont = GetPDFFont(nFind))
-    {
-        PWLFont.AddWordToFontDict(pFontDict, word);
-    }
-    */
+  /*
+  if (CPDF_Font* pFont = GetPDFFont(nFind))
+  {
+      PWLFont.AddWordToFontDict(pFontDict, word);
+  }
+  */
 
-    CFX_ByteString sAlias = EncodeFontAlias("Arial_Chrome", nCharset);
-    AddedFont(pNewFont, sAlias);
+  CFX_ByteString sAlias = EncodeFontAlias("Arial_Chrome", nCharset);
+  AddedFont(pNewFont, sAlias);
 
-    return AddFontData(pNewFont, sAlias, nCharset);
+  return AddFontData(pNewFont, sAlias, nCharset);
 }
 
-CPDF_Font* CPWL_FontMap::FindFontSameCharset(CFX_ByteString& sFontAlias, int32_t nCharset)
-{
-    return NULL;
+CPDF_Font* CPWL_FontMap::FindFontSameCharset(CFX_ByteString& sFontAlias,
+                                             int32_t nCharset) {
+  return NULL;
 }
 
-int32_t CPWL_FontMap::AddFontData(CPDF_Font* pFont, const CFX_ByteString& sFontAlias, int32_t nCharset)
-{
-    CPWL_FontMap_Data* pNewData = new CPWL_FontMap_Data;
-    pNewData->pFont = pFont;
-    pNewData->sFontName = sFontAlias;
-    pNewData->nCharset = nCharset;
+int32_t CPWL_FontMap::AddFontData(CPDF_Font* pFont,
+                                  const CFX_ByteString& sFontAlias,
+                                  int32_t nCharset) {
+  CPWL_FontMap_Data* pNewData = new CPWL_FontMap_Data;
+  pNewData->pFont = pFont;
+  pNewData->sFontName = sFontAlias;
+  pNewData->nCharset = nCharset;
 
-    m_aData.Add(pNewData);
+  m_aData.Add(pNewData);
 
-    return m_aData.GetSize() -1;
+  return m_aData.GetSize() - 1;
 }
 
-void CPWL_FontMap::AddedFont(CPDF_Font* pFont, const CFX_ByteString& sFontAlias)
-{
-}
+void CPWL_FontMap::AddedFont(CPDF_Font* pFont,
+                             const CFX_ByteString& sFontAlias) {}
 
-CFX_ByteString CPWL_FontMap::GetFontName(int32_t nFontIndex)
-{
-    if (nFontIndex >=0 && nFontIndex < m_aData.GetSize())
-    {
-        if (CPWL_FontMap_Data* pData = m_aData.GetAt(nFontIndex))
-        {
-            return pData->sFontName;
-        }
+CFX_ByteString CPWL_FontMap::GetFontName(int32_t nFontIndex) {
+  if (nFontIndex >= 0 && nFontIndex < m_aData.GetSize()) {
+    if (CPWL_FontMap_Data* pData = m_aData.GetAt(nFontIndex)) {
+      return pData->sFontName;
     }
+  }
 
-    return "";
+  return "";
 }
 
-CFX_ByteString CPWL_FontMap::GetNativeFont(int32_t nCharset)
-{
-
-    if (nCharset == DEFAULT_CHARSET)
-        nCharset = GetNativeCharset();
+CFX_ByteString CPWL_FontMap::GetNativeFont(int32_t nCharset) {
+  if (nCharset == DEFAULT_CHARSET)
+    nCharset = GetNativeCharset();
 
-    CFX_ByteString sFontName = GetDefaultFontByCharset(nCharset);
-    if (m_pSystemHandler)
-    {
-        if (m_pSystemHandler->FindNativeTrueTypeFont(nCharset, sFontName))
-            return sFontName;
+  CFX_ByteString sFontName = GetDefaultFontByCharset(nCharset);
+  if (m_pSystemHandler) {
+    if (m_pSystemHandler->FindNativeTrueTypeFont(nCharset, sFontName))
+      return sFontName;
 
-        sFontName = m_pSystemHandler->GetNativeTrueTypeFont(nCharset);
-    }
-    return sFontName;
-}
-
-CPDF_Font* CPWL_FontMap::AddFontToDocument(CPDF_Document* pDoc, CFX_ByteString& sFontName, uint8_t nCharset)
-{
-    if (IsStandardFont(sFontName))
-        return AddStandardFont(pDoc, sFontName);
-
-    return AddSystemFont(pDoc, sFontName, nCharset);
+    sFontName = m_pSystemHandler->GetNativeTrueTypeFont(nCharset);
+  }
+  return sFontName;
 }
 
-CPDF_Font* CPWL_FontMap::AddStandardFont(CPDF_Document* pDoc, CFX_ByteString& sFontName)
-{
-    if (!pDoc) return NULL;
+CPDF_Font* CPWL_FontMap::AddFontToDocument(CPDF_Document* pDoc,
+                                           CFX_ByteString& sFontName,
+                                           uint8_t nCharset) {
+  if (IsStandardFont(sFontName))
+    return AddStandardFont(pDoc, sFontName);
 
-    CPDF_Font* pFont = NULL;
-
-    if (sFontName == "ZapfDingbats")
-        pFont = pDoc->AddStandardFont(sFontName, NULL);
-    else
-    {
-        CPDF_FontEncoding fe(PDFFONT_ENCODING_WINANSI);
-        pFont = pDoc->AddStandardFont(sFontName, &fe);
-    }
-
-    return pFont;
+  return AddSystemFont(pDoc, sFontName, nCharset);
 }
 
-CPDF_Font* CPWL_FontMap::AddSystemFont(CPDF_Document* pDoc, CFX_ByteString& sFontName, uint8_t nCharset)
-{
-    if (!pDoc) return NULL;
-
-    if (sFontName.IsEmpty()) sFontName = GetNativeFont(nCharset);
-    if (nCharset == DEFAULT_CHARSET) nCharset = GetNativeCharset();
-
-    if (m_pSystemHandler)
-        return m_pSystemHandler->AddNativeTrueTypeFontToPDF(pDoc, sFontName, nCharset);
-
+CPDF_Font* CPWL_FontMap::AddStandardFont(CPDF_Document* pDoc,
+                                         CFX_ByteString& sFontName) {
+  if (!pDoc)
     return NULL;
-}
 
-CFX_ByteString CPWL_FontMap::EncodeFontAlias(const CFX_ByteString& sFontName, int32_t nCharset)
-{
-    CFX_ByteString sPostfix;
-    sPostfix.Format("_%02X", nCharset);
-    return EncodeFontAlias(sFontName) + sPostfix;
-}
+  CPDF_Font* pFont = NULL;
 
-CFX_ByteString CPWL_FontMap::EncodeFontAlias(const CFX_ByteString& sFontName)
-{
-    CFX_ByteString sRet = sFontName;
-    sRet.Remove(' ');
-    return sRet;
-}
+  if (sFontName == "ZapfDingbats")
+    pFont = pDoc->AddStandardFont(sFontName, NULL);
+  else {
+    CPDF_FontEncoding fe(PDFFONT_ENCODING_WINANSI);
+    pFont = pDoc->AddStandardFont(sFontName, &fe);
+  }
 
-int32_t CPWL_FontMap::GetFontMapCount() const
-{
-    return m_aData.GetSize();
+  return pFont;
 }
 
-const CPWL_FontMap_Data* CPWL_FontMap::GetFontMapData(int32_t nIndex) const
-{
-    if (nIndex >=0 && nIndex < m_aData.GetSize())
-    {
-        return m_aData.GetAt(nIndex);
-    }
-
+CPDF_Font* CPWL_FontMap::AddSystemFont(CPDF_Document* pDoc,
+                                       CFX_ByteString& sFontName,
+                                       uint8_t nCharset) {
+  if (!pDoc)
     return NULL;
-}
 
-int32_t CPWL_FontMap::GetNativeCharset()
-{
-    uint8_t nCharset = ANSI_CHARSET;
-    int32_t iCodePage = FXSYS_GetACP();
-    switch (iCodePage)
-    {
-    case 932://Japan
-        nCharset = SHIFTJIS_CHARSET;
-        break;
-    case 936://Chinese (PRC, Singapore)
-        nCharset = GB2312_CHARSET;
-        break;
-    case 950://Chinese (Taiwan; Hong Kong SAR, PRC)
-        nCharset = GB2312_CHARSET;
-        break;
-    case 1252://Windows 3.1 Latin 1 (US, Western Europe)
-        nCharset = ANSI_CHARSET;
-        break;
-    case 874://Thai
-        nCharset = THAI_CHARSET;
-        break;
-    case 949://Korean
-        nCharset = HANGUL_CHARSET;
-        break;
-    case 1200://Unicode (BMP of ISO 10646)
-        nCharset = ANSI_CHARSET;
-        break;
-    case 1250://Windows 3.1 Eastern European
-        nCharset = EASTEUROPE_CHARSET;
-        break;
-    case 1251://Windows 3.1 Cyrillic
-        nCharset = RUSSIAN_CHARSET;
-        break;
-    case 1253://Windows 3.1 Greek
-        nCharset = GREEK_CHARSET;
-        break;
-    case 1254://Windows 3.1 Turkish
-        nCharset = TURKISH_CHARSET;
-        break;
-    case 1255://Hebrew
-        nCharset = HEBREW_CHARSET;
-        break;
-    case 1256://Arabic
-        nCharset = ARABIC_CHARSET;
-        break;
-    case 1257://Baltic
-        nCharset = BALTIC_CHARSET;
-        break;
-    case 1258://Vietnamese
-        nCharset = VIETNAMESE_CHARSET;
-        break;
-    case 1361://Korean(Johab)
-        nCharset = JOHAB_CHARSET;
-        break;
-    }
-    return nCharset;
+  if (sFontName.IsEmpty())
+    sFontName = GetNativeFont(nCharset);
+  if (nCharset == DEFAULT_CHARSET)
+    nCharset = GetNativeCharset();
+
+  if (m_pSystemHandler)
+    return m_pSystemHandler->AddNativeTrueTypeFontToPDF(pDoc, sFontName,
+                                                        nCharset);
+
+  return NULL;
+}
+
+CFX_ByteString CPWL_FontMap::EncodeFontAlias(const CFX_ByteString& sFontName,
+                                             int32_t nCharset) {
+  CFX_ByteString sPostfix;
+  sPostfix.Format("_%02X", nCharset);
+  return EncodeFontAlias(sFontName) + sPostfix;
+}
+
+CFX_ByteString CPWL_FontMap::EncodeFontAlias(const CFX_ByteString& sFontName) {
+  CFX_ByteString sRet = sFontName;
+  sRet.Remove(' ');
+  return sRet;
+}
+
+int32_t CPWL_FontMap::GetFontMapCount() const {
+  return m_aData.GetSize();
+}
+
+const CPWL_FontMap_Data* CPWL_FontMap::GetFontMapData(int32_t nIndex) const {
+  if (nIndex >= 0 && nIndex < m_aData.GetSize()) {
+    return m_aData.GetAt(nIndex);
+  }
+
+  return NULL;
+}
+
+int32_t CPWL_FontMap::GetNativeCharset() {
+  uint8_t nCharset = ANSI_CHARSET;
+  int32_t iCodePage = FXSYS_GetACP();
+  switch (iCodePage) {
+    case 932:  // Japan
+      nCharset = SHIFTJIS_CHARSET;
+      break;
+    case 936:  // Chinese (PRC, Singapore)
+      nCharset = GB2312_CHARSET;
+      break;
+    case 950:  // Chinese (Taiwan; Hong Kong SAR, PRC)
+      nCharset = GB2312_CHARSET;
+      break;
+    case 1252:  // Windows 3.1 Latin 1 (US, Western Europe)
+      nCharset = ANSI_CHARSET;
+      break;
+    case 874:  // Thai
+      nCharset = THAI_CHARSET;
+      break;
+    case 949:  // Korean
+      nCharset = HANGUL_CHARSET;
+      break;
+    case 1200:  // Unicode (BMP of ISO 10646)
+      nCharset = ANSI_CHARSET;
+      break;
+    case 1250:  // Windows 3.1 Eastern European
+      nCharset = EASTEUROPE_CHARSET;
+      break;
+    case 1251:  // Windows 3.1 Cyrillic
+      nCharset = RUSSIAN_CHARSET;
+      break;
+    case 1253:  // Windows 3.1 Greek
+      nCharset = GREEK_CHARSET;
+      break;
+    case 1254:  // Windows 3.1 Turkish
+      nCharset = TURKISH_CHARSET;
+      break;
+    case 1255:  // Hebrew
+      nCharset = HEBREW_CHARSET;
+      break;
+    case 1256:  // Arabic
+      nCharset = ARABIC_CHARSET;
+      break;
+    case 1257:  // Baltic
+      nCharset = BALTIC_CHARSET;
+      break;
+    case 1258:  // Vietnamese
+      nCharset = VIETNAMESE_CHARSET;
+      break;
+    case 1361:  // Korean(Johab)
+      nCharset = JOHAB_CHARSET;
+      break;
+  }
+  return nCharset;
 }
 
 const CPWL_FontMap::CharsetFontMap CPWL_FontMap::defaultTTFMap[] = {
-    { ANSI_CHARSET, "Helvetica" },
-    { GB2312_CHARSET, "SimSun" },
-    { CHINESEBIG5_CHARSET, "MingLiU" },
-    { SHIFTJIS_CHARSET, "MS Gothic" },
-    { HANGUL_CHARSET, "Batang" },
-    { RUSSIAN_CHARSET, "Arial" },
-#if _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_ || _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
-    { EASTEUROPE_CHARSET, "Arial" },
+    {ANSI_CHARSET, "Helvetica"},      {GB2312_CHARSET, "SimSun"},
+    {CHINESEBIG5_CHARSET, "MingLiU"}, {SHIFTJIS_CHARSET, "MS Gothic"},
+    {HANGUL_CHARSET, "Batang"},       {RUSSIAN_CHARSET, "Arial"},
+#if _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_ || \
+    _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
+    {EASTEUROPE_CHARSET, "Arial"},
 #else
-    { EASTEUROPE_CHARSET, "Tahoma" },
+    {EASTEUROPE_CHARSET, "Tahoma"},
 #endif
-    { ARABIC_CHARSET, "Arial" },
-    { -1, NULL }
-};
-
-CFX_ByteString CPWL_FontMap::GetDefaultFontByCharset(int32_t nCharset)
-{
-    int i = 0;
-    while (defaultTTFMap[i].charset != -1) {
-        if (nCharset == defaultTTFMap[i].charset)
-            return defaultTTFMap[i].fontname;
-        ++i;
-    }
-    return "";
-}
+    {ARABIC_CHARSET, "Arial"},        {-1, NULL}};
+
+CFX_ByteString CPWL_FontMap::GetDefaultFontByCharset(int32_t nCharset) {
+  int i = 0;
+  while (defaultTTFMap[i].charset != -1) {
+    if (nCharset == defaultTTFMap[i].charset)
+      return defaultTTFMap[i].fontname;
+    ++i;
+  }
+  return "";
+}
+
+int32_t CPWL_FontMap::CharSetFromUnicode(FX_WORD word, int32_t nOldCharset) {
+  if (m_pSystemHandler && (-1 != m_pSystemHandler->GetCharSet()))
+    return m_pSystemHandler->GetCharSet();
+  // to avoid CJK Font to show ASCII
+  if (word < 0x7F)
+    return ANSI_CHARSET;
+  // follow the old charset
+  if (nOldCharset != DEFAULT_CHARSET)
+    return nOldCharset;
 
-int32_t CPWL_FontMap::CharSetFromUnicode(FX_WORD word, int32_t nOldCharset)
-{
-    if(m_pSystemHandler && (-1 != m_pSystemHandler->GetCharSet()))
-        return m_pSystemHandler->GetCharSet();
-    //to avoid CJK Font to show ASCII
-    if (word < 0x7F) return ANSI_CHARSET;
-    //follow the old charset
-    if (nOldCharset != DEFAULT_CHARSET) return nOldCharset;
-
-    //find new charset
-    if ((word >= 0x4E00 && word <= 0x9FA5) ||
-        (word >= 0xE7C7 && word <= 0xE7F3) ||
-        (word >= 0x3000 && word <= 0x303F) ||
-        (word >= 0x2000 && word <= 0x206F))
-    {
-        return GB2312_CHARSET;
-    }
+  // find new charset
+  if ((word >= 0x4E00 && word <= 0x9FA5) ||
+      (word >= 0xE7C7 && word <= 0xE7F3) ||
+      (word >= 0x3000 && word <= 0x303F) ||
+      (word >= 0x2000 && word <= 0x206F)) {
+    return GB2312_CHARSET;
+  }
 
-    if (((word >= 0x3040) && (word <= 0x309F)) ||
-        ((word >= 0x30A0) && (word <= 0x30FF)) ||
-        ((word >= 0x31F0) && (word <= 0x31FF)) ||
-        ((word >= 0xFF00) && (word <= 0xFFEF)) )
-    {
-        return SHIFTJIS_CHARSET;
-    }
+  if (((word >= 0x3040) && (word <= 0x309F)) ||
+      ((word >= 0x30A0) && (word <= 0x30FF)) ||
+      ((word >= 0x31F0) && (word <= 0x31FF)) ||
+      ((word >= 0xFF00) && (word <= 0xFFEF))) {
+    return SHIFTJIS_CHARSET;
+  }
 
-    if (((word >= 0xAC00) && (word <= 0xD7AF)) ||
-        ((word >= 0x1100) && (word <= 0x11FF)) ||
-        ((word >= 0x3130) && (word <= 0x318F)))
-    {
-        return HANGUL_CHARSET;
-    }
+  if (((word >= 0xAC00) && (word <= 0xD7AF)) ||
+      ((word >= 0x1100) && (word <= 0x11FF)) ||
+      ((word >= 0x3130) && (word <= 0x318F))) {
+    return HANGUL_CHARSET;
+  }
 
-    if (word >= 0x0E00 && word <= 0x0E7F)
-        return THAI_CHARSET;
+  if (word >= 0x0E00 && word <= 0x0E7F)
+    return THAI_CHARSET;
 
-    if ((word >= 0x0370 && word <= 0x03FF) ||
-        (word >= 0x1F00 && word <= 0x1FFF))
-        return GREEK_CHARSET;
+  if ((word >= 0x0370 && word <= 0x03FF) || (word >= 0x1F00 && word <= 0x1FFF))
+    return GREEK_CHARSET;
 
-    if ((word >= 0x0600 && word <= 0x06FF) ||
-        (word >= 0xFB50 && word <= 0xFEFC))
-        return ARABIC_CHARSET;
+  if ((word >= 0x0600 && word <= 0x06FF) || (word >= 0xFB50 && word <= 0xFEFC))
+    return ARABIC_CHARSET;
 
-    if (word >= 0x0590 && word <= 0x05FF)
-        return HEBREW_CHARSET;
+  if (word >= 0x0590 && word <= 0x05FF)
+    return HEBREW_CHARSET;
 
-    if (word >= 0x0400 && word <= 0x04FF)
-        return RUSSIAN_CHARSET;
+  if (word >= 0x0400 && word <= 0x04FF)
+    return RUSSIAN_CHARSET;
 
-    if (word >= 0x0100 && word <= 0x024F)
-        return EASTEUROPE_CHARSET;
+  if (word >= 0x0100 && word <= 0x024F)
+    return EASTEUROPE_CHARSET;
 
-    if (word >= 0x1E00 && word <= 0x1EFF)
-        return VIETNAMESE_CHARSET;
+  if (word >= 0x1E00 && word <= 0x1EFF)
+    return VIETNAMESE_CHARSET;
 
-    return ANSI_CHARSET;
+  return ANSI_CHARSET;
 }
 
 /* ------------------------ CPWL_DocFontMap ------------------------ */
 
-CPWL_DocFontMap::CPWL_DocFontMap(IFX_SystemHandler* pSystemHandler, CPDF_Document* pAttachedDoc)
-    : CPWL_FontMap(pSystemHandler),
-    m_pAttachedDoc(pAttachedDoc)
-{
-}
+CPWL_DocFontMap::CPWL_DocFontMap(IFX_SystemHandler* pSystemHandler,
+                                 CPDF_Document* pAttachedDoc)
+    : CPWL_FontMap(pSystemHandler), m_pAttachedDoc(pAttachedDoc) {}
 
-CPWL_DocFontMap::~CPWL_DocFontMap()
-{
-}
+CPWL_DocFontMap::~CPWL_DocFontMap() {}
 
-CPDF_Document* CPWL_DocFontMap::GetDocument()
-{
-    return m_pAttachedDoc;
+CPDF_Document* CPWL_DocFontMap::GetDocument() {
+  return m_pAttachedDoc;
 }
diff --git a/fpdfsdk/src/pdfwindow/PWL_Icon.cpp b/fpdfsdk/src/pdfwindow/PWL_Icon.cpp
index 71174dfb0a..29e0aa86f5 100644
--- a/fpdfsdk/src/pdfwindow/PWL_Icon.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_Icon.cpp
@@ -9,254 +9,222 @@
 #include "../../include/pdfwindow/PWL_Icon.h"
 #include "../../include/pdfwindow/PWL_Utils.h"
 
-/* ------------------------------- CPWL_Image ---------------------------------- */
+/* ------------------------------- CPWL_Image ----------------------------------
+ */
 
-CPWL_Image::CPWL_Image() : m_pPDFStream(NULL)
-{
-}
+CPWL_Image::CPWL_Image() : m_pPDFStream(NULL) {}
 
-CPWL_Image::~CPWL_Image()
-{
-}
+CPWL_Image::~CPWL_Image() {}
 
-CFX_ByteString CPWL_Image::GetImageAppStream()
-{
-	CFX_ByteTextBuf sAppStream;
+CFX_ByteString CPWL_Image::GetImageAppStream() {
+  CFX_ByteTextBuf sAppStream;
 
-	CFX_ByteString sAlias = GetImageAlias();
-	CPDF_Rect rcPlate = GetClientRect();
-	CPDF_Matrix mt;
-	mt.SetReverse(GetImageMatrix());
+  CFX_ByteString sAlias = GetImageAlias();
+  CPDF_Rect rcPlate = GetClientRect();
+  CPDF_Matrix mt;
+  mt.SetReverse(GetImageMatrix());
 
-	FX_FLOAT fHScale = 1.0f;
-	FX_FLOAT fVScale = 1.0f;
-	GetScale(fHScale,fVScale);
+  FX_FLOAT fHScale = 1.0f;
+  FX_FLOAT fVScale = 1.0f;
+  GetScale(fHScale, fVScale);
 
-	FX_FLOAT fx = 0.0f;
-	FX_FLOAT fy = 0.0f;
-	GetImageOffset(fx,fy);
+  FX_FLOAT fx = 0.0f;
+  FX_FLOAT fy = 0.0f;
+  GetImageOffset(fx, fy);
 
-	if (m_pPDFStream && sAlias.GetLength()>0)
-	{
-		sAppStream << "q\n";
-		sAppStream << rcPlate.left << " " << rcPlate.bottom << " "
-			<< rcPlate.right - rcPlate.left << " " << rcPlate.top - rcPlate.bottom << " re W n\n";
+  if (m_pPDFStream && sAlias.GetLength() > 0) {
+    sAppStream << "q\n";
+    sAppStream << rcPlate.left << " " << rcPlate.bottom << " "
+               << rcPlate.right - rcPlate.left << " "
+               << rcPlate.top - rcPlate.bottom << " re W n\n";
 
-		sAppStream << fHScale << " 0 0 " << fVScale << " " << rcPlate.left + fx << " " << rcPlate.bottom + fy << " cm\n";
-		sAppStream << mt.GetA() << " " << mt.GetB() << " " << mt.GetC() << " " << mt.GetD() << " " << mt.GetE() << " " << mt.GetF() << " cm\n";
+    sAppStream << fHScale << " 0 0 " << fVScale << " " << rcPlate.left + fx
+               << " " << rcPlate.bottom + fy << " cm\n";
+    sAppStream << mt.GetA() << " " << mt.GetB() << " " << mt.GetC() << " "
+               << mt.GetD() << " " << mt.GetE() << " " << mt.GetF() << " cm\n";
 
-		sAppStream << "0 g 0 G 1 w /" << sAlias << " Do\n" << "Q\n";
-	}
+    sAppStream << "0 g 0 G 1 w /" << sAlias << " Do\n"
+               << "Q\n";
+  }
 
-	return sAppStream.GetByteString();
+  return sAppStream.GetByteString();
 }
 
-void CPWL_Image::SetPDFStream(CPDF_Stream * pStream)
-{
-	m_pPDFStream = pStream;
+void CPWL_Image::SetPDFStream(CPDF_Stream* pStream) {
+  m_pPDFStream = pStream;
 }
 
-CPDF_Stream * CPWL_Image::GetPDFStream()
-{
-	return m_pPDFStream;
+CPDF_Stream* CPWL_Image::GetPDFStream() {
+  return m_pPDFStream;
 }
 
-void CPWL_Image::GetImageSize(FX_FLOAT & fWidth,FX_FLOAT & fHeight)
-{
-	fWidth = 0.0f;
-	fHeight = 0.0f;
-
-	if (m_pPDFStream)
-	{
-		if (CPDF_Dictionary * pDict = m_pPDFStream->GetDict())
-		{
-			CPDF_Rect rect = pDict->GetRect("BBox");
-
-			fWidth = rect.right - rect.left;
-			fHeight = rect.top - rect.bottom;
-		}
-	}
-}
+void CPWL_Image::GetImageSize(FX_FLOAT& fWidth, FX_FLOAT& fHeight) {
+  fWidth = 0.0f;
+  fHeight = 0.0f;
 
-CPDF_Matrix	CPWL_Image::GetImageMatrix()
-{
-	if (m_pPDFStream)
-	{
-		if (CPDF_Dictionary * pDict = m_pPDFStream->GetDict())
-		{
-			return pDict->GetMatrix("Matrix");
-		}
-	}
-
-	return CPDF_Matrix();
-}
+  if (m_pPDFStream) {
+    if (CPDF_Dictionary* pDict = m_pPDFStream->GetDict()) {
+      CPDF_Rect rect = pDict->GetRect("BBox");
 
-CFX_ByteString CPWL_Image::GetImageAlias()
-{
-	if (m_sImageAlias.IsEmpty())
-	{
-		if (m_pPDFStream)
-		{
-			if (CPDF_Dictionary * pDict = m_pPDFStream->GetDict())
-			{
-				return pDict->GetString("Name");
-			}
-		}
-	}
-	else
-		return m_sImageAlias;
-
-	return CFX_ByteString();
+      fWidth = rect.right - rect.left;
+      fHeight = rect.top - rect.bottom;
+    }
+  }
 }
 
-void CPWL_Image::SetImageAlias(const FX_CHAR* sImageAlias)
-{
-	m_sImageAlias = sImageAlias;
-}
+CPDF_Matrix CPWL_Image::GetImageMatrix() {
+  if (m_pPDFStream) {
+    if (CPDF_Dictionary* pDict = m_pPDFStream->GetDict()) {
+      return pDict->GetMatrix("Matrix");
+    }
+  }
 
-void CPWL_Image::GetScale(FX_FLOAT & fHScale,FX_FLOAT & fVScale)
-{
-	fHScale = 1.0f;
-	fVScale = 1.0f;
+  return CPDF_Matrix();
 }
 
+CFX_ByteString CPWL_Image::GetImageAlias() {
+  if (m_sImageAlias.IsEmpty()) {
+    if (m_pPDFStream) {
+      if (CPDF_Dictionary* pDict = m_pPDFStream->GetDict()) {
+        return pDict->GetString("Name");
+      }
+    }
+  } else
+    return m_sImageAlias;
 
-void CPWL_Image::GetImageOffset(FX_FLOAT & x,FX_FLOAT & y)
-{
-	x = 0.0f;
-	y = 0.0f;
+  return CFX_ByteString();
 }
 
-/* ------------------------------- CPWL_Icon ---------------------------------- */
+void CPWL_Image::SetImageAlias(const FX_CHAR* sImageAlias) {
+  m_sImageAlias = sImageAlias;
+}
 
-CPWL_Icon::CPWL_Icon() : m_pIconFit(NULL)
-{
+void CPWL_Image::GetScale(FX_FLOAT& fHScale, FX_FLOAT& fVScale) {
+  fHScale = 1.0f;
+  fVScale = 1.0f;
 }
 
-CPWL_Icon::~CPWL_Icon()
-{
+void CPWL_Image::GetImageOffset(FX_FLOAT& x, FX_FLOAT& y) {
+  x = 0.0f;
+  y = 0.0f;
 }
 
-int32_t CPWL_Icon::GetScaleMethod()
-{
-	if (m_pIconFit)
-		return m_pIconFit->GetScaleMethod();
+/* ------------------------------- CPWL_Icon ----------------------------------
+ */
 
-	return 0;
-}
+CPWL_Icon::CPWL_Icon() : m_pIconFit(NULL) {}
 
-FX_BOOL	CPWL_Icon::IsProportionalScale()
-{
-	if (m_pIconFit)
-		return m_pIconFit->IsProportionalScale();
+CPWL_Icon::~CPWL_Icon() {}
 
-	return FALSE;
-}
+int32_t CPWL_Icon::GetScaleMethod() {
+  if (m_pIconFit)
+    return m_pIconFit->GetScaleMethod();
 
-void CPWL_Icon::GetIconPosition(FX_FLOAT & fLeft, FX_FLOAT & fBottom)
-{
-	if (m_pIconFit)
-	{
-		//m_pIconFit->GetIconPosition(fLeft,fBottom);
-		fLeft = 0.0f;
-		fBottom = 0.0f;
-		CPDF_Array* pA = m_pIconFit->m_pDict ? m_pIconFit->m_pDict->GetArray("A") : NULL;
-		if (pA != NULL)
-		{
-			FX_DWORD dwCount = pA->GetCount();
-			if (dwCount > 0) fLeft = pA->GetNumber(0);
-			if (dwCount > 1) fBottom = pA->GetNumber(1);
-		}
-	}
-	else
-	{
-		fLeft = 0.0f;
-		fBottom = 0.0f;
-	}
+  return 0;
 }
 
-FX_BOOL CPWL_Icon::GetFittingBounds()
-{
-	if (m_pIconFit)
-		return m_pIconFit->GetFittingBounds();
+FX_BOOL CPWL_Icon::IsProportionalScale() {
+  if (m_pIconFit)
+    return m_pIconFit->IsProportionalScale();
 
-	return FALSE;
+  return FALSE;
 }
 
-void CPWL_Icon::GetScale(FX_FLOAT & fHScale,FX_FLOAT & fVScale)
-{
-	fHScale = 1.0f;
-	fVScale = 1.0f;
-
-	if (m_pPDFStream)
-	{
-		FX_FLOAT fImageWidth,fImageHeight;
-		FX_FLOAT fPlateWidth,fPlateHeight;
-
-		CPDF_Rect rcPlate = GetClientRect();
-		fPlateWidth = rcPlate.right - rcPlate.left;
-		fPlateHeight = rcPlate.top - rcPlate.bottom;
-
-		GetImageSize(fImageWidth,fImageHeight);
-
-		int32_t nScaleMethod = GetScaleMethod();
-
-		switch (nScaleMethod)
-		{
-		default:
-		case 0:
-			fHScale = fPlateWidth / PWL_MAX(fImageWidth,1.0f);
-			fVScale = fPlateHeight / PWL_MAX(fImageHeight,1.0f);
-			break;
-		case 1:
-			if (fPlateWidth < fImageWidth)
-				fHScale = fPlateWidth / PWL_MAX(fImageWidth,1.0f);
-			if (fPlateHeight < fImageHeight)
-				fVScale = fPlateHeight / PWL_MAX(fImageHeight,1.0f);
-			break;
-		case 2:
-			if (fPlateWidth > fImageWidth)
-				fHScale = fPlateWidth / PWL_MAX(fImageWidth,1.0f);
-			if (fPlateHeight > fImageHeight)
-				fVScale = fPlateHeight / PWL_MAX(fImageHeight,1.0f);
-			break;
-		case 3:
-			break;
-		}
-
-		FX_FLOAT fMinScale;
-		if (IsProportionalScale())
-		{
-			fMinScale = PWL_MIN(fHScale,fVScale);
-			fHScale = fMinScale;
-			fVScale = fMinScale;
-		}
-	}
+void CPWL_Icon::GetIconPosition(FX_FLOAT& fLeft, FX_FLOAT& fBottom) {
+  if (m_pIconFit) {
+    // m_pIconFit->GetIconPosition(fLeft,fBottom);
+    fLeft = 0.0f;
+    fBottom = 0.0f;
+    CPDF_Array* pA =
+        m_pIconFit->m_pDict ? m_pIconFit->m_pDict->GetArray("A") : NULL;
+    if (pA != NULL) {
+      FX_DWORD dwCount = pA->GetCount();
+      if (dwCount > 0)
+        fLeft = pA->GetNumber(0);
+      if (dwCount > 1)
+        fBottom = pA->GetNumber(1);
+    }
+  } else {
+    fLeft = 0.0f;
+    fBottom = 0.0f;
+  }
 }
 
-void CPWL_Icon::GetImageOffset(FX_FLOAT & x,FX_FLOAT & y)
-{
-	FX_FLOAT fLeft,fBottom;
+FX_BOOL CPWL_Icon::GetFittingBounds() {
+  if (m_pIconFit)
+    return m_pIconFit->GetFittingBounds();
 
-	GetIconPosition(fLeft, fBottom);
-	x = 0.0f;
-	y = 0.0f;
+  return FALSE;
+}
+
+void CPWL_Icon::GetScale(FX_FLOAT& fHScale, FX_FLOAT& fVScale) {
+  fHScale = 1.0f;
+  fVScale = 1.0f;
 
-	FX_FLOAT fImageWidth,fImageHeight;
-	GetImageSize(fImageWidth,fImageHeight);
+  if (m_pPDFStream) {
+    FX_FLOAT fImageWidth, fImageHeight;
+    FX_FLOAT fPlateWidth, fPlateHeight;
 
-	FX_FLOAT fHScale,fVScale;
-	GetScale(fHScale,fVScale);
+    CPDF_Rect rcPlate = GetClientRect();
+    fPlateWidth = rcPlate.right - rcPlate.left;
+    fPlateHeight = rcPlate.top - rcPlate.bottom;
 
-	FX_FLOAT fImageFactWidth = fImageWidth * fHScale;
-	FX_FLOAT fImageFactHeight = fImageHeight * fVScale;
+    GetImageSize(fImageWidth, fImageHeight);
 
-	FX_FLOAT fPlateWidth,fPlateHeight;
-	CPDF_Rect rcPlate = GetClientRect();
-	fPlateWidth = rcPlate.right - rcPlate.left;
-	fPlateHeight = rcPlate.top - rcPlate.bottom;
+    int32_t nScaleMethod = GetScaleMethod();
 
-	x = (fPlateWidth - fImageFactWidth) * fLeft;
-	y = (fPlateHeight - fImageFactHeight)  * fBottom;
+    switch (nScaleMethod) {
+      default:
+      case 0:
+        fHScale = fPlateWidth / PWL_MAX(fImageWidth, 1.0f);
+        fVScale = fPlateHeight / PWL_MAX(fImageHeight, 1.0f);
+        break;
+      case 1:
+        if (fPlateWidth < fImageWidth)
+          fHScale = fPlateWidth / PWL_MAX(fImageWidth, 1.0f);
+        if (fPlateHeight < fImageHeight)
+          fVScale = fPlateHeight / PWL_MAX(fImageHeight, 1.0f);
+        break;
+      case 2:
+        if (fPlateWidth > fImageWidth)
+          fHScale = fPlateWidth / PWL_MAX(fImageWidth, 1.0f);
+        if (fPlateHeight > fImageHeight)
+          fVScale = fPlateHeight / PWL_MAX(fImageHeight, 1.0f);
+        break;
+      case 3:
+        break;
+    }
+
+    FX_FLOAT fMinScale;
+    if (IsProportionalScale()) {
+      fMinScale = PWL_MIN(fHScale, fVScale);
+      fHScale = fMinScale;
+      fVScale = fMinScale;
+    }
+  }
 }
 
+void CPWL_Icon::GetImageOffset(FX_FLOAT& x, FX_FLOAT& y) {
+  FX_FLOAT fLeft, fBottom;
+
+  GetIconPosition(fLeft, fBottom);
+  x = 0.0f;
+  y = 0.0f;
+
+  FX_FLOAT fImageWidth, fImageHeight;
+  GetImageSize(fImageWidth, fImageHeight);
+
+  FX_FLOAT fHScale, fVScale;
+  GetScale(fHScale, fVScale);
+
+  FX_FLOAT fImageFactWidth = fImageWidth * fHScale;
+  FX_FLOAT fImageFactHeight = fImageHeight * fVScale;
+
+  FX_FLOAT fPlateWidth, fPlateHeight;
+  CPDF_Rect rcPlate = GetClientRect();
+  fPlateWidth = rcPlate.right - rcPlate.left;
+  fPlateHeight = rcPlate.top - rcPlate.bottom;
+
+  x = (fPlateWidth - fImageFactWidth) * fLeft;
+  y = (fPlateHeight - fImageFactHeight) * fBottom;
+}
diff --git a/fpdfsdk/src/pdfwindow/PWL_IconList.cpp b/fpdfsdk/src/pdfwindow/PWL_IconList.cpp
index 157eba633d..24d2dad5fa 100644
--- a/fpdfsdk/src/pdfwindow/PWL_IconList.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_IconList.cpp
@@ -12,581 +12,494 @@
 #include "../../include/pdfwindow/PWL_ScrollBar.h"
 #include "../../include/pdfwindow/PWL_Label.h"
 
-#define PWL_IconList_ITEM_ICON_LEFTMARGIN		10.0f
-#define PWL_IconList_ITEM_WIDTH					20.0f
-#define PWL_IconList_ITEM_HEIGHT				20.0f
-#define PWL_IconList_ITEM_SPACE					4.0f
+#define PWL_IconList_ITEM_ICON_LEFTMARGIN 10.0f
+#define PWL_IconList_ITEM_WIDTH 20.0f
+#define PWL_IconList_ITEM_HEIGHT 20.0f
+#define PWL_IconList_ITEM_SPACE 4.0f
 
 /* ------------------ CPWL_IconList_Item ------------------- */
 
-CPWL_IconList_Item::CPWL_IconList_Item() :
-	m_nIconIndex(-1),
-	m_pData(NULL),
-	m_bSelected(FALSE),
-	m_pText(NULL)
-{
-}
+CPWL_IconList_Item::CPWL_IconList_Item()
+    : m_nIconIndex(-1), m_pData(NULL), m_bSelected(FALSE), m_pText(NULL) {}
+
+CPWL_IconList_Item::~CPWL_IconList_Item() {}
 
-CPWL_IconList_Item::~CPWL_IconList_Item()
-{
+CFX_ByteString CPWL_IconList_Item::GetClassName() const {
+  return "CPWL_IconList_Item";
 }
 
-CFX_ByteString CPWL_IconList_Item::GetClassName() const
-{
-	return "CPWL_IconList_Item";
+FX_FLOAT CPWL_IconList_Item::GetItemHeight(FX_FLOAT fLimitWidth) {
+  return PWL_IconList_ITEM_HEIGHT;
 }
 
-FX_FLOAT CPWL_IconList_Item::GetItemHeight(FX_FLOAT fLimitWidth)
-{
-	return PWL_IconList_ITEM_HEIGHT;
+void CPWL_IconList_Item::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                            CPDF_Matrix* pUser2Device) {
+  CPDF_Rect rcClient = GetClientRect();
+
+  if (m_bSelected) {
+    if (IsEnabled()) {
+      CPWL_Utils::DrawFillRect(
+          pDevice, pUser2Device, rcClient,
+          CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_SELBACKCOLOR,
+                                        GetTransparency()));
+    } else {
+      CPWL_Utils::DrawFillRect(
+          pDevice, pUser2Device, rcClient,
+          CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_LIGHTGRAYCOLOR,
+                                        GetTransparency()));
+    }
+  }
+
+  CPDF_Rect rcIcon = rcClient;
+  rcIcon.left += PWL_IconList_ITEM_ICON_LEFTMARGIN;
+  rcIcon.right = rcIcon.left + PWL_IconList_ITEM_WIDTH;
+
+  CPWL_Utils::DrawIconAppStream(pDevice, pUser2Device, m_nIconIndex, rcIcon,
+                                m_crIcon, m_pText->GetTextColor(),
+                                GetTransparency());
 }
 
-void CPWL_IconList_Item::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	CPDF_Rect rcClient = GetClientRect();
+void CPWL_IconList_Item::SetSelect(FX_BOOL bSelected) {
+  m_bSelected = bSelected;
+
+  if (bSelected)
+    m_pText->SetTextColor(PWL_DEFAULT_WHITECOLOR);
+  else
+    m_pText->SetTextColor(PWL_DEFAULT_BLACKCOLOR);
+}
 
-	if (m_bSelected)
-	{
-		if (IsEnabled())
-		{
-			CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcClient,
-				CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_SELBACKCOLOR, GetTransparency()));
-		}
-		else
-		{
-			CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcClient,
-				CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_LIGHTGRAYCOLOR, GetTransparency()));
-		}
-	}
+FX_BOOL CPWL_IconList_Item::IsSelected() const {
+  return m_bSelected;
+}
 
-	CPDF_Rect rcIcon = rcClient;
-	rcIcon.left += PWL_IconList_ITEM_ICON_LEFTMARGIN;
-	rcIcon.right = rcIcon.left + PWL_IconList_ITEM_WIDTH;
+void CPWL_IconList_Item::CreateChildWnd(const PWL_CREATEPARAM& cp) {
+  m_pText = new CPWL_Label;
 
-	CPWL_Utils::DrawIconAppStream(pDevice, pUser2Device, m_nIconIndex, rcIcon,
-		m_crIcon, m_pText->GetTextColor(), GetTransparency());
+  PWL_CREATEPARAM lcp = cp;
+  lcp.pParentWnd = this;
+  lcp.dwFlags = PWS_CHILD | PWS_VISIBLE | PES_LEFT | PES_CENTER;
+  lcp.sTextColor = PWL_DEFAULT_BLACKCOLOR;
+  lcp.fFontSize = 12;
+  m_pText->Create(lcp);
 }
 
-void CPWL_IconList_Item::SetSelect(FX_BOOL bSelected)
-{
-	m_bSelected = bSelected;
+void CPWL_IconList_Item::SetData(void* pData) {
+  m_pData = pData;
+}
 
-	if (bSelected)
-		m_pText->SetTextColor(PWL_DEFAULT_WHITECOLOR);
-	else
-		m_pText->SetTextColor(PWL_DEFAULT_BLACKCOLOR);
+void CPWL_IconList_Item::SetIcon(int32_t nIconIndex) {
+  m_nIconIndex = nIconIndex;
+}
 
+void CPWL_IconList_Item::SetText(const CFX_WideString& str) {
+  m_pText->SetText(str.c_str());
 }
 
-FX_BOOL	CPWL_IconList_Item::IsSelected() const
-{
-	return m_bSelected;
+CFX_WideString CPWL_IconList_Item::GetText() const {
+  return m_pText->GetText();
 }
 
-void CPWL_IconList_Item::CreateChildWnd(const PWL_CREATEPARAM & cp)
-{
-	m_pText = new CPWL_Label;
+void CPWL_IconList_Item::RePosChildWnd() {
+  CPDF_Rect rcClient = GetClientRect();
 
-	PWL_CREATEPARAM lcp = cp;
-	lcp.pParentWnd = this;
-	lcp.dwFlags = PWS_CHILD | PWS_VISIBLE | PES_LEFT | PES_CENTER;
-	lcp.sTextColor = PWL_DEFAULT_BLACKCOLOR;
-	lcp.fFontSize = 12;
-	m_pText->Create(lcp);
+  rcClient.left +=
+      (PWL_IconList_ITEM_ICON_LEFTMARGIN + PWL_IconList_ITEM_WIDTH +
+       PWL_IconList_ITEM_ICON_LEFTMARGIN);
+
+  m_pText->Move(rcClient, TRUE, FALSE);
 }
 
-void CPWL_IconList_Item::SetData(void* pData)
-{
-	m_pData = pData;
+void CPWL_IconList_Item::SetIconFillColor(const CPWL_Color& color) {
+  m_crIcon = color;
 }
 
-void CPWL_IconList_Item::SetIcon(int32_t nIconIndex)
-{
-	m_nIconIndex = nIconIndex;
+void CPWL_IconList_Item::OnEnabled() {
+  if (m_bSelected)
+    m_pText->SetTextColor(PWL_DEFAULT_WHITECOLOR);
+  else
+    m_pText->SetTextColor(PWL_DEFAULT_BLACKCOLOR);
+
+  InvalidateRect();
 }
 
-void CPWL_IconList_Item::SetText(const CFX_WideString& str)
-{
-	m_pText->SetText(str.c_str());
+void CPWL_IconList_Item::OnDisabled() {
+  m_pText->SetTextColor(PWL_DEFAULT_HEAVYGRAYCOLOR);
+
+  InvalidateRect();
 }
 
-CFX_WideString CPWL_IconList_Item::GetText() const
-{
-	return m_pText->GetText();
+/* ----------------- CPWL_IconList_Content ----------------- */
+
+CPWL_IconList_Content::CPWL_IconList_Content(int32_t nListCount)
+    : m_nSelectIndex(-1),
+      m_pNotify(NULL),
+      m_bEnableNotify(TRUE),
+      m_bMouseDown(FALSE),
+      m_nListCount(nListCount) {}
+
+CPWL_IconList_Content::~CPWL_IconList_Content() {}
+
+void CPWL_IconList_Content::CreateChildWnd(const PWL_CREATEPARAM& cp) {
+  for (int32_t i = 0; i < m_nListCount; i++) {
+    CPWL_IconList_Item* pNewItem = new CPWL_IconList_Item();
+
+    PWL_CREATEPARAM icp = cp;
+    icp.pParentWnd = this;
+    icp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_NOREFRESHCLIP;
+    pNewItem->Create(icp);
+  }
+
+  SetItemSpace(PWL_IconList_ITEM_SPACE);
+  ResetContent(0);
+
+  if (CPWL_Wnd* pParent = GetParentWindow()) {
+    CPDF_Rect rcScroll = GetScrollArea();
+    GetScrollPos();
+
+    PWL_SCROLL_INFO sInfo;
+    sInfo.fContentMin = rcScroll.bottom;
+    sInfo.fContentMax = rcScroll.top;
+    sInfo.fPlateWidth = GetClientRect().Height();
+    sInfo.fSmallStep = 13.0f;
+    sInfo.fBigStep = sInfo.fPlateWidth;
+
+    pParent->OnNotify(this, PNM_SETSCROLLINFO, SBT_VSCROLL, (intptr_t)&sInfo);
+  }
 }
 
-void CPWL_IconList_Item::RePosChildWnd()
-{
-	CPDF_Rect rcClient = GetClientRect();
+FX_BOOL CPWL_IconList_Content::OnLButtonDown(const CPDF_Point& point,
+                                             FX_DWORD nFlag) {
+  SetFocus();
+
+  SetCapture();
+  m_bMouseDown = TRUE;
+
+  int32_t nItemIndex = FindItemIndex(point);
+  SetSelect(nItemIndex);
+  ScrollToItem(nItemIndex);
 
-	rcClient.left += (PWL_IconList_ITEM_ICON_LEFTMARGIN + PWL_IconList_ITEM_WIDTH + PWL_IconList_ITEM_ICON_LEFTMARGIN);
+  return TRUE;
+}
+
+FX_BOOL CPWL_IconList_Content::OnLButtonUp(const CPDF_Point& point,
+                                           FX_DWORD nFlag) {
+  m_bMouseDown = FALSE;
+  ReleaseCapture();
 
-	m_pText->Move(rcClient, TRUE, FALSE);
+  return TRUE;
 }
 
-void CPWL_IconList_Item::SetIconFillColor(const CPWL_Color& color)
-{
-	m_crIcon = color;
+FX_BOOL CPWL_IconList_Content::OnMouseMove(const CPDF_Point& point,
+                                           FX_DWORD nFlag) {
+  if (m_bMouseDown) {
+    int32_t nItemIndex = FindItemIndex(point);
+    SetSelect(nItemIndex);
+    ScrollToItem(nItemIndex);
+  }
+
+  return TRUE;
 }
 
-void CPWL_IconList_Item::OnEnabled()
-{
-	if (m_bSelected)
-		m_pText->SetTextColor(PWL_DEFAULT_WHITECOLOR);
-	else
-		m_pText->SetTextColor(PWL_DEFAULT_BLACKCOLOR);
+FX_BOOL CPWL_IconList_Content::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag) {
+  switch (nChar) {
+    case FWL_VKEY_Up:
+      if (m_nSelectIndex > 0) {
+        int32_t nItemIndex = m_nSelectIndex - 1;
+        SetSelect(nItemIndex);
+        ScrollToItem(nItemIndex);
+      }
+      return TRUE;
+    case FWL_VKEY_Down:
+      if (m_nSelectIndex < m_nListCount - 1) {
+        int32_t nItemIndex = m_nSelectIndex + 1;
+        SetSelect(nItemIndex);
+        ScrollToItem(nItemIndex);
+      }
+      return TRUE;
+  }
 
-	InvalidateRect();
+  return FALSE;
 }
 
-void CPWL_IconList_Item::OnDisabled()
-{
-	m_pText->SetTextColor(PWL_DEFAULT_HEAVYGRAYCOLOR);
+int32_t CPWL_IconList_Content::FindItemIndex(const CPDF_Point& point) {
+  int32_t nIndex = 0;
+  for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+      CPDF_Rect rcWnd = pChild->ChildToParent(pChild->GetWindowRect());
+
+      if (point.y < rcWnd.top) {
+        nIndex = i;
+      }
+    }
+  }
 
-	InvalidateRect();
+  return nIndex;
 }
 
-/* ----------------- CPWL_IconList_Content ----------------- */
+void CPWL_IconList_Content::ScrollToItem(int32_t nItemIndex) {
+  CPDF_Rect rcClient = GetClientRect();
+
+  if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex)) {
+    CPDF_Rect rcOrigin = pItem->GetWindowRect();
+    CPDF_Rect rcWnd = pItem->ChildToParent(rcOrigin);
+
+    if (!(rcWnd.bottom > rcClient.bottom && rcWnd.top < rcClient.top)) {
+      CPDF_Point ptScroll = GetScrollPos();
+
+      if (rcWnd.top > rcClient.top) {
+        ptScroll.y = rcOrigin.top;
+      } else if (rcWnd.bottom < rcClient.bottom) {
+        ptScroll.y = rcOrigin.bottom + rcClient.Height();
+      }
 
-CPWL_IconList_Content::CPWL_IconList_Content(int32_t nListCount) :
-	m_nSelectIndex(-1),
-	m_pNotify(NULL),
-	m_bEnableNotify(TRUE),
-	m_bMouseDown(FALSE),
-	m_nListCount(nListCount)
-{
-}
-
-CPWL_IconList_Content::~CPWL_IconList_Content()
-{
-}
-
-void CPWL_IconList_Content::CreateChildWnd(const PWL_CREATEPARAM & cp)
-{
-	for (int32_t i=0; i<m_nListCount; i++)
-	{
-		CPWL_IconList_Item* pNewItem = new CPWL_IconList_Item();
-
-		PWL_CREATEPARAM icp = cp;
-		icp.pParentWnd = this;
-		icp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_NOREFRESHCLIP;
-		pNewItem->Create(icp);
-	}
-
-	SetItemSpace(PWL_IconList_ITEM_SPACE);
-	ResetContent(0);
-
-	if (CPWL_Wnd * pParent = GetParentWindow())
-	{
-		CPDF_Rect rcScroll = GetScrollArea();
-		GetScrollPos();
-
-		PWL_SCROLL_INFO sInfo;
-		sInfo.fContentMin = rcScroll.bottom;
-		sInfo.fContentMax = rcScroll.top;
-		sInfo.fPlateWidth = GetClientRect().Height();
-		sInfo.fSmallStep = 13.0f;
-		sInfo.fBigStep = sInfo.fPlateWidth;
-
-		pParent->OnNotify(this, PNM_SETSCROLLINFO, SBT_VSCROLL, (intptr_t)&sInfo);
-	}
-}
-
-FX_BOOL	CPWL_IconList_Content::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	SetFocus();
-
-	SetCapture();
-	m_bMouseDown = TRUE;
-
-	int32_t nItemIndex = FindItemIndex(point);
-	SetSelect(nItemIndex);
-	ScrollToItem(nItemIndex);
-
-	return TRUE;
-}
-
-FX_BOOL	CPWL_IconList_Content::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	m_bMouseDown = FALSE;
-	ReleaseCapture();
-
-	return TRUE;
-}
-
-FX_BOOL CPWL_IconList_Content::OnMouseMove(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	if (m_bMouseDown)
-	{
-		int32_t nItemIndex = FindItemIndex(point);
-		SetSelect(nItemIndex);
-		ScrollToItem(nItemIndex);
-	}
-
-	return TRUE;
-}
-
-FX_BOOL	CPWL_IconList_Content::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag)
-{
-	switch (nChar)
-	{
-	case FWL_VKEY_Up:
-		if (m_nSelectIndex > 0)
-		{
-			int32_t nItemIndex = m_nSelectIndex - 1;
-			SetSelect(nItemIndex);
-			ScrollToItem(nItemIndex);
-		}
-		return TRUE;
-	case FWL_VKEY_Down:
-		if (m_nSelectIndex < m_nListCount-1)
-		{
-			int32_t nItemIndex = m_nSelectIndex + 1;
-			SetSelect(nItemIndex);
-			ScrollToItem(nItemIndex);
-		}
-		return TRUE;
-	}
-
-	return FALSE;
-}
-
-int32_t CPWL_IconList_Content::FindItemIndex(const CPDF_Point& point)
-{
-	int32_t nIndex = 0;
-	for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-	{
-		if (CPWL_Wnd * pChild = m_aChildren.GetAt(i))
-		{
-			CPDF_Rect rcWnd = pChild->ChildToParent(pChild->GetWindowRect());
-
-			if (point.y < rcWnd.top)
-			{
-				nIndex = i;
-			}
-		}
-	}
-
-	return nIndex;
-}
-
-void CPWL_IconList_Content::ScrollToItem(int32_t nItemIndex)
-{
-	CPDF_Rect rcClient = GetClientRect();
-
-	if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex))
-	{
-		CPDF_Rect rcOrigin = pItem->GetWindowRect();
-		CPDF_Rect rcWnd = pItem->ChildToParent(rcOrigin);
-
-		if (!(rcWnd.bottom > rcClient.bottom && rcWnd.top < rcClient.top))
-		{
-			CPDF_Point ptScroll = GetScrollPos();
-
-			if (rcWnd.top > rcClient.top)
-			{
-				ptScroll.y = rcOrigin.top;
-			}
-			else if (rcWnd.bottom < rcClient.bottom)
-			{
-				ptScroll.y = rcOrigin.bottom + rcClient.Height();
-			}
+      SetScrollPos(ptScroll);
+      ResetFace();
+      InvalidateRect();
+      if (CPWL_Wnd* pParent = GetParentWindow()) {
+        pParent->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL,
+                          (intptr_t)&ptScroll.y);
+      }
+    }
+  }
+}
+
+void CPWL_IconList_Content::SetSelect(int32_t nIndex) {
+  if (m_nSelectIndex != nIndex) {
+    SelectItem(m_nSelectIndex, FALSE);
+    SelectItem(nIndex, TRUE);
+    m_nSelectIndex = nIndex;
 
-			SetScrollPos(ptScroll);
-			ResetFace();
-			InvalidateRect();
-			if (CPWL_Wnd* pParent = GetParentWindow())
-			{
-				pParent->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&ptScroll.y);
-			}
-		}
-	}
-}
-
-void CPWL_IconList_Content::SetSelect(int32_t nIndex)
-{
-	if (m_nSelectIndex != nIndex)
-	{
-		SelectItem(m_nSelectIndex, FALSE);
-		SelectItem(nIndex, TRUE);
-		m_nSelectIndex = nIndex;
-
-		if (IPWL_IconList_Notify* pNotify = GetNotify())
-			pNotify->OnNoteListSelChanged(nIndex);
-	}
-}
-
-int32_t CPWL_IconList_Content::GetSelect() const
-{
-	return m_nSelectIndex;
-}
-
-IPWL_IconList_Notify* CPWL_IconList_Content::GetNotify() const
-{
-	if (m_bEnableNotify)
-		return m_pNotify;
-	return NULL;
-}
-
-void CPWL_IconList_Content::SetNotify(IPWL_IconList_Notify* pNotify)
-{
-	m_pNotify = pNotify;
-}
-
-void CPWL_IconList_Content::EnableNotify(FX_BOOL bNotify)
-{
-	m_bEnableNotify = bNotify;
-}
-
-void CPWL_IconList_Content::SelectItem(int32_t nItemIndex, FX_BOOL bSelect)
-{
-	if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex))
-	{
-		pItem->SetSelect(bSelect);
-		pItem->InvalidateRect();
-	}
+    if (IPWL_IconList_Notify* pNotify = GetNotify())
+      pNotify->OnNoteListSelChanged(nIndex);
+  }
 }
 
-CPWL_IconList_Item* CPWL_IconList_Content::GetListItem(int32_t nItemIndex) const
-{
-	if (nItemIndex >= 0 && nItemIndex<m_aChildren.GetSize())
-	{
-		if (CPWL_Wnd * pChild = m_aChildren.GetAt(nItemIndex))
-		{
-			if (pChild->GetClassName() == "CPWL_IconList_Item")
-			{
-				return (CPWL_IconList_Item*)pChild;
-			}
-		}
-	}
+int32_t CPWL_IconList_Content::GetSelect() const {
+  return m_nSelectIndex;
+}
 
-	return NULL;
+IPWL_IconList_Notify* CPWL_IconList_Content::GetNotify() const {
+  if (m_bEnableNotify)
+    return m_pNotify;
+  return NULL;
 }
 
-void CPWL_IconList_Content::SetListData(int32_t nItemIndex, void* pData)
-{
-	if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex))
-		pItem->SetData(pData);
+void CPWL_IconList_Content::SetNotify(IPWL_IconList_Notify* pNotify) {
+  m_pNotify = pNotify;
 }
 
-void CPWL_IconList_Content::SetListIcon(int32_t nItemIndex, int32_t nIconIndex)
-{
-	if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex))
-		pItem->SetIcon(nIconIndex);
+void CPWL_IconList_Content::EnableNotify(FX_BOOL bNotify) {
+  m_bEnableNotify = bNotify;
 }
 
-void CPWL_IconList_Content::SetListString(int32_t nItemIndex, const CFX_WideString& str)
-{
-	if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex))
-		pItem->SetText(str);
+void CPWL_IconList_Content::SelectItem(int32_t nItemIndex, FX_BOOL bSelect) {
+  if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex)) {
+    pItem->SetSelect(bSelect);
+    pItem->InvalidateRect();
+  }
 }
 
-CFX_WideString CPWL_IconList_Content::GetListString(int32_t nItemIndex) const
-{
-	if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex))
-		return pItem->GetText();
+CPWL_IconList_Item* CPWL_IconList_Content::GetListItem(
+    int32_t nItemIndex) const {
+  if (nItemIndex >= 0 && nItemIndex < m_aChildren.GetSize()) {
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(nItemIndex)) {
+      if (pChild->GetClassName() == "CPWL_IconList_Item") {
+        return (CPWL_IconList_Item*)pChild;
+      }
+    }
+  }
+
+  return NULL;
+}
 
-	return L"";
+void CPWL_IconList_Content::SetListData(int32_t nItemIndex, void* pData) {
+  if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex))
+    pItem->SetData(pData);
 }
 
-void CPWL_IconList_Content::SetIconFillColor(const CPWL_Color& color)
-{
-	for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-	{
-		if (CPWL_Wnd * pChild = m_aChildren.GetAt(i))
-		{
-			if (pChild->GetClassName() == "CPWL_IconList_Item")
-			{
-				CPWL_IconList_Item* pItem = (CPWL_IconList_Item*)pChild;
-				pItem->SetIconFillColor(color);
-				pItem->InvalidateRect();
-			}
-		}
-	}
+void CPWL_IconList_Content::SetListIcon(int32_t nItemIndex,
+                                        int32_t nIconIndex) {
+  if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex))
+    pItem->SetIcon(nIconIndex);
+}
 
+void CPWL_IconList_Content::SetListString(int32_t nItemIndex,
+                                          const CFX_WideString& str) {
+  if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex))
+    pItem->SetText(str);
 }
 
-/* -------------------- CPWL_IconList --------------------- */
+CFX_WideString CPWL_IconList_Content::GetListString(int32_t nItemIndex) const {
+  if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex))
+    return pItem->GetText();
+
+  return L"";
+}
 
-CPWL_IconList::CPWL_IconList(int32_t nListCount) :
-	m_pListContent(NULL),
-	m_nListCount(nListCount)
-{
-}
-
-CPWL_IconList::~CPWL_IconList()
-{
-}
-
-void CPWL_IconList::RePosChildWnd()
-{
-	CPWL_Wnd::RePosChildWnd();
-
-	if (m_pListContent)
-		m_pListContent->Move(GetClientRect(), TRUE, FALSE);
-}
-
-void CPWL_IconList::CreateChildWnd(const PWL_CREATEPARAM & cp)
-{
-	m_pListContent = new CPWL_IconList_Content(m_nListCount);
-
-	PWL_CREATEPARAM ccp = cp;
-	ccp.pParentWnd = this;
-	ccp.dwFlags = PWS_CHILD | PWS_VISIBLE;
-	m_pListContent->Create(ccp);
-}
-
-void CPWL_IconList::OnCreated()
-{
-	if (CPWL_ScrollBar* pScrollBar = GetVScrollBar())
-	{
-		pScrollBar->RemoveFlag(PWS_AUTOTRANSPARENT);
-		pScrollBar->SetTransparency(255);
-		pScrollBar->SetNotifyForever(TRUE);
-	}
+void CPWL_IconList_Content::SetIconFillColor(const CPWL_Color& color) {
+  for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+      if (pChild->GetClassName() == "CPWL_IconList_Item") {
+        CPWL_IconList_Item* pItem = (CPWL_IconList_Item*)pChild;
+        pItem->SetIconFillColor(color);
+        pItem->InvalidateRect();
+      }
+    }
+  }
 }
 
-void CPWL_IconList::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
-{
-	CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
+/* -------------------- CPWL_IconList --------------------- */
+
+CPWL_IconList::CPWL_IconList(int32_t nListCount)
+    : m_pListContent(NULL), m_nListCount(nListCount) {}
+
+CPWL_IconList::~CPWL_IconList() {}
 
-	if (wParam == SBT_VSCROLL)
-	{
-		switch (msg)
-		{
-		case PNM_SETSCROLLINFO:
-			if (PWL_SCROLL_INFO* pInfo = (PWL_SCROLL_INFO*)lParam)
-			{
-				if (CPWL_ScrollBar* pScrollBar = GetVScrollBar())
-				{
-					if (pInfo->fContentMax - pInfo->fContentMin > pInfo->fPlateWidth)
-					{
-						if (!pScrollBar->IsVisible())
-						{
-							pScrollBar->SetVisible(TRUE);
-							RePosChildWnd();
-						}
-						else
-						{
-						}
-					}
-					else
-					{
-						if (pScrollBar->IsVisible())
-						{
-							pScrollBar->SetVisible(FALSE);
-							RePosChildWnd();
-						}
+void CPWL_IconList::RePosChildWnd() {
+  CPWL_Wnd::RePosChildWnd();
 
-						if (m_pListContent)
-							m_pListContent->SetScrollPos(CPDF_Point(0.0f,0.0f));
-					}
+  if (m_pListContent)
+    m_pListContent->Move(GetClientRect(), TRUE, FALSE);
+}
+
+void CPWL_IconList::CreateChildWnd(const PWL_CREATEPARAM& cp) {
+  m_pListContent = new CPWL_IconList_Content(m_nListCount);
 
-					pScrollBar->OnNotify(pWnd,PNM_SETSCROLLINFO,wParam,lParam);
-				}
-			}
-			return;
-		case PNM_SCROLLWINDOW:
-			if (m_pListContent)
-			{
-				m_pListContent->SetScrollPos(CPDF_Point(0.0f, *(FX_FLOAT*)lParam));
-				m_pListContent->ResetFace();
-				m_pListContent->InvalidateRect(NULL);
-			}
-			return;
-		case PNM_SETSCROLLPOS:
-			if (CPWL_ScrollBar* pScrollBar = GetVScrollBar())
-				pScrollBar->OnNotify(pWnd,PNM_SETSCROLLPOS,wParam,lParam);
-			return;
-		}
-	}
+  PWL_CREATEPARAM ccp = cp;
+  ccp.pParentWnd = this;
+  ccp.dwFlags = PWS_CHILD | PWS_VISIBLE;
+  m_pListContent->Create(ccp);
 }
 
-void CPWL_IconList::SetSelect(int32_t nIndex)
-{
-	m_pListContent->SetSelect(nIndex);
+void CPWL_IconList::OnCreated() {
+  if (CPWL_ScrollBar* pScrollBar = GetVScrollBar()) {
+    pScrollBar->RemoveFlag(PWS_AUTOTRANSPARENT);
+    pScrollBar->SetTransparency(255);
+    pScrollBar->SetNotifyForever(TRUE);
+  }
 }
 
-void CPWL_IconList::SetTopItem(int32_t nIndex)
-{
-	m_pListContent->ScrollToItem(nIndex);
+void CPWL_IconList::OnNotify(CPWL_Wnd* pWnd,
+                             FX_DWORD msg,
+                             intptr_t wParam,
+                             intptr_t lParam) {
+  CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
+
+  if (wParam == SBT_VSCROLL) {
+    switch (msg) {
+      case PNM_SETSCROLLINFO:
+        if (PWL_SCROLL_INFO* pInfo = (PWL_SCROLL_INFO*)lParam) {
+          if (CPWL_ScrollBar* pScrollBar = GetVScrollBar()) {
+            if (pInfo->fContentMax - pInfo->fContentMin > pInfo->fPlateWidth) {
+              if (!pScrollBar->IsVisible()) {
+                pScrollBar->SetVisible(TRUE);
+                RePosChildWnd();
+              } else {
+              }
+            } else {
+              if (pScrollBar->IsVisible()) {
+                pScrollBar->SetVisible(FALSE);
+                RePosChildWnd();
+              }
+
+              if (m_pListContent)
+                m_pListContent->SetScrollPos(CPDF_Point(0.0f, 0.0f));
+            }
+
+            pScrollBar->OnNotify(pWnd, PNM_SETSCROLLINFO, wParam, lParam);
+          }
+        }
+        return;
+      case PNM_SCROLLWINDOW:
+        if (m_pListContent) {
+          m_pListContent->SetScrollPos(CPDF_Point(0.0f, *(FX_FLOAT*)lParam));
+          m_pListContent->ResetFace();
+          m_pListContent->InvalidateRect(NULL);
+        }
+        return;
+      case PNM_SETSCROLLPOS:
+        if (CPWL_ScrollBar* pScrollBar = GetVScrollBar())
+          pScrollBar->OnNotify(pWnd, PNM_SETSCROLLPOS, wParam, lParam);
+        return;
+    }
+  }
 }
 
-int32_t CPWL_IconList::GetSelect() const
-{
-	return m_pListContent->GetSelect();
+void CPWL_IconList::SetSelect(int32_t nIndex) {
+  m_pListContent->SetSelect(nIndex);
 }
 
-void CPWL_IconList::SetNotify(IPWL_IconList_Notify* pNotify)
-{
-	m_pListContent->SetNotify(pNotify);
+void CPWL_IconList::SetTopItem(int32_t nIndex) {
+  m_pListContent->ScrollToItem(nIndex);
 }
 
-void CPWL_IconList::EnableNotify(FX_BOOL bNotify)
-{
-	m_pListContent->EnableNotify(bNotify);
-}
-
-void CPWL_IconList::SetListData(int32_t nItemIndex, void* pData)
-{
-	m_pListContent->SetListData(nItemIndex, pData);
-}
-
-void CPWL_IconList::SetListIcon(int32_t nItemIndex, int32_t nIconIndex)
-{
-	m_pListContent->SetListIcon(nItemIndex, nIconIndex);
-}
-
-void CPWL_IconList::SetListString(int32_t nItemIndex, const CFX_WideString& str)
-{
-	m_pListContent->SetListString(nItemIndex, str);
-}
-
-CFX_WideString CPWL_IconList::GetListString(int32_t nItemIndex) const
-{
-	return m_pListContent->GetListString(nItemIndex);
-}
-
-void CPWL_IconList::SetIconFillColor(const CPWL_Color& color)
-{
-	m_pListContent->SetIconFillColor(color);
-}
-
-FX_BOOL	CPWL_IconList::OnMouseWheel(short zDelta, const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPDF_Point ptScroll = m_pListContent->GetScrollPos();
-	CPDF_Rect rcScroll = m_pListContent->GetScrollArea();
-	CPDF_Rect rcContents = m_pListContent->GetClientRect();
+int32_t CPWL_IconList::GetSelect() const {
+  return m_pListContent->GetSelect();
+}
 
-	if (rcScroll.top - rcScroll.bottom > rcContents.Height())
-	{
-		CPDF_Point ptNew = ptScroll;
+void CPWL_IconList::SetNotify(IPWL_IconList_Notify* pNotify) {
+  m_pListContent->SetNotify(pNotify);
+}
 
-		if (zDelta > 0)
-			ptNew.y += 30;
-		else
-			ptNew.y -= 30;
+void CPWL_IconList::EnableNotify(FX_BOOL bNotify) {
+  m_pListContent->EnableNotify(bNotify);
+}
 
-		if (ptNew.y > rcScroll.top)
-			ptNew.y = rcScroll.top;
-		if (ptNew.y < rcScroll.bottom + rcContents.Height())
-			ptNew.y = rcScroll.bottom + rcContents.Height();
-		if (ptNew.y < rcScroll.bottom)
-			ptNew.y = rcScroll.bottom;
+void CPWL_IconList::SetListData(int32_t nItemIndex, void* pData) {
+  m_pListContent->SetListData(nItemIndex, pData);
+}
 
-		if (ptNew.y != ptScroll.y)
-		{
-			m_pListContent->SetScrollPos(ptNew);
-			m_pListContent->ResetFace();
-			m_pListContent->InvalidateRect(NULL);
+void CPWL_IconList::SetListIcon(int32_t nItemIndex, int32_t nIconIndex) {
+  m_pListContent->SetListIcon(nItemIndex, nIconIndex);
+}
 
-			if (CPWL_ScrollBar* pScrollBar = GetVScrollBar())
-				pScrollBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&ptNew.y);
+void CPWL_IconList::SetListString(int32_t nItemIndex,
+                                  const CFX_WideString& str) {
+  m_pListContent->SetListString(nItemIndex, str);
+}
 
-			return TRUE;
-		}
-	}
+CFX_WideString CPWL_IconList::GetListString(int32_t nItemIndex) const {
+  return m_pListContent->GetListString(nItemIndex);
+}
 
-	return FALSE;
+void CPWL_IconList::SetIconFillColor(const CPWL_Color& color) {
+  m_pListContent->SetIconFillColor(color);
 }
 
+FX_BOOL CPWL_IconList::OnMouseWheel(short zDelta,
+                                    const CPDF_Point& point,
+                                    FX_DWORD nFlag) {
+  CPDF_Point ptScroll = m_pListContent->GetScrollPos();
+  CPDF_Rect rcScroll = m_pListContent->GetScrollArea();
+  CPDF_Rect rcContents = m_pListContent->GetClientRect();
+
+  if (rcScroll.top - rcScroll.bottom > rcContents.Height()) {
+    CPDF_Point ptNew = ptScroll;
+
+    if (zDelta > 0)
+      ptNew.y += 30;
+    else
+      ptNew.y -= 30;
+
+    if (ptNew.y > rcScroll.top)
+      ptNew.y = rcScroll.top;
+    if (ptNew.y < rcScroll.bottom + rcContents.Height())
+      ptNew.y = rcScroll.bottom + rcContents.Height();
+    if (ptNew.y < rcScroll.bottom)
+      ptNew.y = rcScroll.bottom;
+
+    if (ptNew.y != ptScroll.y) {
+      m_pListContent->SetScrollPos(ptNew);
+      m_pListContent->ResetFace();
+      m_pListContent->InvalidateRect(NULL);
+
+      if (CPWL_ScrollBar* pScrollBar = GetVScrollBar())
+        pScrollBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL,
+                             (intptr_t)&ptNew.y);
+
+      return TRUE;
+    }
+  }
+
+  return FALSE;
+}
diff --git a/fpdfsdk/src/pdfwindow/PWL_Label.cpp b/fpdfsdk/src/pdfwindow/PWL_Label.cpp
index e1780c69a8..797270ebba 100644
--- a/fpdfsdk/src/pdfwindow/PWL_Label.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_Label.cpp
@@ -11,177 +11,144 @@
 
 /* ---------------------------- CPWL_Label ------------------------------ */
 
-CPWL_Label::CPWL_Label() : m_pEdit(NULL)
-{
-	m_pEdit = IFX_Edit::NewEdit();
-
-	ASSERT(m_pEdit != NULL);
+CPWL_Label::CPWL_Label() : m_pEdit(NULL) {
+  m_pEdit = IFX_Edit::NewEdit();
+
+  ASSERT(m_pEdit != NULL);
 }
 
-CPWL_Label::~CPWL_Label()
-{
-	IFX_Edit::DelEdit(m_pEdit);
+CPWL_Label::~CPWL_Label() {
+  IFX_Edit::DelEdit(m_pEdit);
 }
-
-CFX_ByteString CPWL_Label::GetClassName() const
-{
-	return "CPWL_Label";
-}
-
-void CPWL_Label::OnCreated()
-{
-	SetParamByFlag();
-	SetFontSize(GetCreationParam().fFontSize);
-
-	m_pEdit->SetFontMap(GetFontMap());
-	m_pEdit->Initialize();
-
-	if (HasFlag(PES_TEXTOVERFLOW))
-	{
-		SetClipRect(CPDF_Rect(0.0f,0.0f,0.0f,0.0f));
-		m_pEdit->SetTextOverflow(TRUE);
-	}
+
+CFX_ByteString CPWL_Label::GetClassName() const {
+  return "CPWL_Label";
 }
 
-void CPWL_Label::SetText(const FX_WCHAR* csText)
-{
-	m_pEdit->SetText(csText);
+void CPWL_Label::OnCreated() {
+  SetParamByFlag();
+  SetFontSize(GetCreationParam().fFontSize);
+
+  m_pEdit->SetFontMap(GetFontMap());
+  m_pEdit->Initialize();
+
+  if (HasFlag(PES_TEXTOVERFLOW)) {
+    SetClipRect(CPDF_Rect(0.0f, 0.0f, 0.0f, 0.0f));
+    m_pEdit->SetTextOverflow(TRUE);
+  }
 }
 
-void CPWL_Label::RePosChildWnd()
-{
-	m_pEdit->SetPlateRect(GetClientRect());
+void CPWL_Label::SetText(const FX_WCHAR* csText) {
+  m_pEdit->SetText(csText);
 }
 
-void CPWL_Label::SetFontSize(FX_FLOAT fFontSize)
-{
-	m_pEdit->SetFontSize(fFontSize);
+void CPWL_Label::RePosChildWnd() {
+  m_pEdit->SetPlateRect(GetClientRect());
 }
 
-FX_FLOAT CPWL_Label::GetFontSize() const
-{
-	return m_pEdit->GetFontSize();
+void CPWL_Label::SetFontSize(FX_FLOAT fFontSize) {
+  m_pEdit->SetFontSize(fFontSize);
 }
 
-void CPWL_Label::SetParamByFlag()
-{
-	if (HasFlag(PES_LEFT))
-	{
-		m_pEdit->SetAlignmentH(0);
-	}
-	else if (HasFlag(PES_MIDDLE))
-	{
-		m_pEdit->SetAlignmentH(1);
-	}
-	else if (HasFlag(PES_RIGHT))
-	{
-		m_pEdit->SetAlignmentH(2);
-	}
-	else
-	{
-		m_pEdit->SetAlignmentH(0);
-	}
+FX_FLOAT CPWL_Label::GetFontSize() const {
+  return m_pEdit->GetFontSize();
+}
+
+void CPWL_Label::SetParamByFlag() {
+  if (HasFlag(PES_LEFT)) {
+    m_pEdit->SetAlignmentH(0);
+  } else if (HasFlag(PES_MIDDLE)) {
+    m_pEdit->SetAlignmentH(1);
+  } else if (HasFlag(PES_RIGHT)) {
+    m_pEdit->SetAlignmentH(2);
+  } else {
+    m_pEdit->SetAlignmentH(0);
+  }
 
-	if (HasFlag(PES_TOP))
-	{
-		m_pEdit->SetAlignmentV(0);
-	}
-	else if (HasFlag(PES_CENTER))
-	{
-		m_pEdit->SetAlignmentV(1);
-	}
-	else if (HasFlag(PES_BOTTOM))
-	{
-		m_pEdit->SetAlignmentV(2);
-	}
-	else
-	{
-		m_pEdit->SetAlignmentV(0);
-	}
+  if (HasFlag(PES_TOP)) {
+    m_pEdit->SetAlignmentV(0);
+  } else if (HasFlag(PES_CENTER)) {
+    m_pEdit->SetAlignmentV(1);
+  } else if (HasFlag(PES_BOTTOM)) {
+    m_pEdit->SetAlignmentV(2);
+  } else {
+    m_pEdit->SetAlignmentV(0);
+  }
 
-	if (HasFlag(PES_PASSWORD))
-	{
-		m_pEdit->SetPasswordChar('*');
-	}
+  if (HasFlag(PES_PASSWORD)) {
+    m_pEdit->SetPasswordChar('*');
+  }
 
-	m_pEdit->SetMultiLine(HasFlag(PES_MULTILINE));
-	m_pEdit->SetAutoReturn(HasFlag(PES_AUTORETURN));
-	m_pEdit->SetAutoFontSize(HasFlag(PWS_AUTOFONTSIZE));
-	m_pEdit->SetAutoScroll(HasFlag(PES_AUTOSCROLL));
+  m_pEdit->SetMultiLine(HasFlag(PES_MULTILINE));
+  m_pEdit->SetAutoReturn(HasFlag(PES_AUTORETURN));
+  m_pEdit->SetAutoFontSize(HasFlag(PWS_AUTOFONTSIZE));
+  m_pEdit->SetAutoScroll(HasFlag(PES_AUTOSCROLL));
 }
 
-void CPWL_Label::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	CPWL_Wnd::DrawThisAppearance(pDevice,pUser2Device);
+void CPWL_Label::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                    CPDF_Matrix* pUser2Device) {
+  CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
 
-	GetClientRect();
+  GetClientRect();
 
-	CPDF_Rect rcClip;
-	CPVT_WordRange wrRange = m_pEdit->GetVisibleWordRange();
-	CPVT_WordRange* pRange = NULL;
+  CPDF_Rect rcClip;
+  CPVT_WordRange wrRange = m_pEdit->GetVisibleWordRange();
+  CPVT_WordRange* pRange = NULL;
 
-	if (!HasFlag(PES_TEXTOVERFLOW))
-	{
-		rcClip = GetClientRect();
-		pRange = &wrRange;
-	}
-IFX_SystemHandler* pSysHandler = GetSystemHandler();
-	IFX_Edit::DrawEdit(pDevice, pUser2Device, m_pEdit,
-		CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
-		CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor(), GetTransparency()),
-		rcClip, CPDF_Point(0.0f,0.0f), pRange,pSysHandler, NULL);
+  if (!HasFlag(PES_TEXTOVERFLOW)) {
+    rcClip = GetClientRect();
+    pRange = &wrRange;
+  }
+  IFX_SystemHandler* pSysHandler = GetSystemHandler();
+  IFX_Edit::DrawEdit(
+      pDevice, pUser2Device, m_pEdit,
+      CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
+      CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor(), GetTransparency()),
+      rcClip, CPDF_Point(0.0f, 0.0f), pRange, pSysHandler, NULL);
 }
 
-void CPWL_Label::SetHorzScale(int32_t nHorzScale)
-{
-	m_pEdit->SetHorzScale(nHorzScale);
+void CPWL_Label::SetHorzScale(int32_t nHorzScale) {
+  m_pEdit->SetHorzScale(nHorzScale);
 }
 
-void CPWL_Label::SetCharSpace(FX_FLOAT fCharSpace)
-{
-	m_pEdit->SetCharSpace(fCharSpace);
+void CPWL_Label::SetCharSpace(FX_FLOAT fCharSpace) {
+  m_pEdit->SetCharSpace(fCharSpace);
 }
 
-CPDF_Rect CPWL_Label::GetContentRect() const
-{
-	return m_pEdit->GetContentRect();
+CPDF_Rect CPWL_Label::GetContentRect() const {
+  return m_pEdit->GetContentRect();
 }
 
-void CPWL_Label::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream)
-{
-	CPWL_Wnd::GetThisAppearanceStream(sAppStream);
+void CPWL_Label::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) {
+  CPWL_Wnd::GetThisAppearanceStream(sAppStream);
 
-	sAppStream << GetTextAppearanceStream(CPDF_Point(0.0f, 0.0f));
+  sAppStream << GetTextAppearanceStream(CPDF_Point(0.0f, 0.0f));
 }
 
-CFX_ByteString CPWL_Label::GetTextAppearanceStream(const CPDF_Point & ptOffset) const
-{
-	CFX_ByteTextBuf sRet;
-	CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(m_pEdit,ptOffset);
+CFX_ByteString CPWL_Label::GetTextAppearanceStream(
+    const CPDF_Point& ptOffset) const {
+  CFX_ByteTextBuf sRet;
+  CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(m_pEdit, ptOffset);
 
-	if (sEdit.GetLength() > 0)
-	{
-		sRet << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()) << sEdit << "ET\n";
-	}
+  if (sEdit.GetLength() > 0) {
+    sRet << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()) << sEdit
+         << "ET\n";
+  }
 
-	return sRet.GetByteString();
+  return sRet.GetByteString();
 }
 
-CFX_WideString CPWL_Label::GetText() const
-{
-	return m_pEdit->GetText();
+CFX_WideString CPWL_Label::GetText() const {
+  return m_pEdit->GetText();
 }
 
-void CPWL_Label::SetLimitChar(int32_t nLimitChar)
-{
-	m_pEdit->SetLimitChar(nLimitChar);
+void CPWL_Label::SetLimitChar(int32_t nLimitChar) {
+  m_pEdit->SetLimitChar(nLimitChar);
 }
 
-int32_t CPWL_Label::GetTotalWords()
-{
-	if (m_pEdit)
-		return m_pEdit->GetTotalWords();
+int32_t CPWL_Label::GetTotalWords() {
+  if (m_pEdit)
+    return m_pEdit->GetTotalWords();
 
-	return 0;
+  return 0;
 }
-
diff --git a/fpdfsdk/src/pdfwindow/PWL_ListBox.cpp b/fpdfsdk/src/pdfwindow/PWL_ListBox.cpp
index 48fb409b7b..ba75e55fdf 100644
--- a/fpdfsdk/src/pdfwindow/PWL_ListBox.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_ListBox.cpp
@@ -12,587 +12,531 @@
 #include "../../include/pdfwindow/PWL_EditCtrl.h"
 #include "../../include/pdfwindow/PWL_Edit.h"
 
-#define IsFloatZero(f)						((f) < 0.0001 && (f) > -0.0001)
-#define IsFloatBigger(fa,fb)				((fa) > (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatSmaller(fa,fb)				((fa) < (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatEqual(fa,fb)					IsFloatZero((fa)-(fb))
+#define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001)
+#define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb))
 
 /* ------------------------ CPWL_List_Notify ----------------------- */
 
-CPWL_List_Notify::CPWL_List_Notify(CPWL_ListBox* pList) : m_pList(pList)
-{
-	ASSERT(m_pList != NULL);
+CPWL_List_Notify::CPWL_List_Notify(CPWL_ListBox* pList) : m_pList(pList) {
+  ASSERT(m_pList != NULL);
 }
 
-CPWL_List_Notify::~CPWL_List_Notify()
-{
-}
+CPWL_List_Notify::~CPWL_List_Notify() {}
 
-void CPWL_List_Notify::IOnSetScrollInfoY(FX_FLOAT fPlateMin, FX_FLOAT fPlateMax,
-												FX_FLOAT fContentMin, FX_FLOAT fContentMax,
-												FX_FLOAT fSmallStep, FX_FLOAT fBigStep)
-{
-	PWL_SCROLL_INFO Info;
+void CPWL_List_Notify::IOnSetScrollInfoY(FX_FLOAT fPlateMin,
+                                         FX_FLOAT fPlateMax,
+                                         FX_FLOAT fContentMin,
+                                         FX_FLOAT fContentMax,
+                                         FX_FLOAT fSmallStep,
+                                         FX_FLOAT fBigStep) {
+  PWL_SCROLL_INFO Info;
 
-	Info.fPlateWidth = fPlateMax - fPlateMin;
-	Info.fContentMin = fContentMin;
-	Info.fContentMax = fContentMax;
-	Info.fSmallStep = fSmallStep;
-	Info.fBigStep = fBigStep;
+  Info.fPlateWidth = fPlateMax - fPlateMin;
+  Info.fContentMin = fContentMin;
+  Info.fContentMax = fContentMax;
+  Info.fSmallStep = fSmallStep;
+  Info.fBigStep = fBigStep;
 
-	m_pList->OnNotify(m_pList,PNM_SETSCROLLINFO,SBT_VSCROLL,(intptr_t)&Info);
+  m_pList->OnNotify(m_pList, PNM_SETSCROLLINFO, SBT_VSCROLL, (intptr_t)&Info);
 
-	if (CPWL_ScrollBar * pScroll = m_pList->GetVScrollBar())
-	{
-		if (IsFloatBigger(Info.fPlateWidth,Info.fContentMax-Info.fContentMin)
-			|| IsFloatEqual(Info.fPlateWidth,Info.fContentMax-Info.fContentMin))
-		{
-			if (pScroll->IsVisible())
-			{
-				pScroll->SetVisible(FALSE);
-				m_pList->RePosChildWnd();
-			}
-		}
-		else
-		{
-			if (!pScroll->IsVisible())
-			{
-				pScroll->SetVisible(TRUE);
-				m_pList->RePosChildWnd();
-			}
-		}
-	}
+  if (CPWL_ScrollBar* pScroll = m_pList->GetVScrollBar()) {
+    if (IsFloatBigger(Info.fPlateWidth, Info.fContentMax - Info.fContentMin) ||
+        IsFloatEqual(Info.fPlateWidth, Info.fContentMax - Info.fContentMin)) {
+      if (pScroll->IsVisible()) {
+        pScroll->SetVisible(FALSE);
+        m_pList->RePosChildWnd();
+      }
+    } else {
+      if (!pScroll->IsVisible()) {
+        pScroll->SetVisible(TRUE);
+        m_pList->RePosChildWnd();
+      }
+    }
+  }
 }
 
-void CPWL_List_Notify::IOnSetScrollPosY(FX_FLOAT fy)
-{
-	m_pList->OnNotify(m_pList,PNM_SETSCROLLPOS,SBT_VSCROLL,(intptr_t)&fy);
+void CPWL_List_Notify::IOnSetScrollPosY(FX_FLOAT fy) {
+  m_pList->OnNotify(m_pList, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&fy);
 }
 
-void CPWL_List_Notify::IOnInvalidateRect(CPDF_Rect * pRect)
-{
-	m_pList->InvalidateRect(pRect);
+void CPWL_List_Notify::IOnInvalidateRect(CPDF_Rect* pRect) {
+  m_pList->InvalidateRect(pRect);
 }
 
 /* --------------------------- CPWL_ListBox ---------------------------- */
 
-CPWL_ListBox::CPWL_ListBox() :
-	m_pList(NULL),
-	m_pListNotify(NULL),
-	m_bMouseDown(FALSE),
-	m_bHoverSel(FALSE),
-	m_pFillerNotify(NULL)
-{
-	m_pList = IFX_List::NewList();
+CPWL_ListBox::CPWL_ListBox()
+    : m_pList(NULL),
+      m_pListNotify(NULL),
+      m_bMouseDown(FALSE),
+      m_bHoverSel(FALSE),
+      m_pFillerNotify(NULL) {
+  m_pList = IFX_List::NewList();
 
-	ASSERT(m_pList != NULL);
+  ASSERT(m_pList != NULL);
 }
 
-CPWL_ListBox::~CPWL_ListBox()
-{
-    IFX_List::DelList(m_pList);
-    delete m_pListNotify;
-    m_pListNotify = NULL;
+CPWL_ListBox::~CPWL_ListBox() {
+  IFX_List::DelList(m_pList);
+  delete m_pListNotify;
+  m_pListNotify = NULL;
 }
 
-CFX_ByteString CPWL_ListBox::GetClassName() const
-{
-	return "CPWL_ListBox";
+CFX_ByteString CPWL_ListBox::GetClassName() const {
+  return "CPWL_ListBox";
 }
 
-void CPWL_ListBox::OnCreated()
-{
-	if (m_pList)
-	{
-		delete m_pListNotify;
+void CPWL_ListBox::OnCreated() {
+  if (m_pList) {
+    delete m_pListNotify;
 
-		m_pList->SetFontMap(GetFontMap());
-		m_pList->SetNotify(m_pListNotify = new CPWL_List_Notify(this));
+    m_pList->SetFontMap(GetFontMap());
+    m_pList->SetNotify(m_pListNotify = new CPWL_List_Notify(this));
+
+    SetHoverSel(HasFlag(PLBS_HOVERSEL));
+    m_pList->SetMultipleSel(HasFlag(PLBS_MULTIPLESEL));
+    m_pList->SetFontSize(GetCreationParam().fFontSize);
+
+    m_bHoverSel = HasFlag(PLBS_HOVERSEL);
+  }
+}
+
+void CPWL_ListBox::OnDestroy() {
+  delete m_pListNotify;
+  m_pListNotify = NULL;
+}
+
+void CPWL_ListBox::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) {
+  CPWL_Wnd::GetThisAppearanceStream(sAppStream);
+
+  CFX_ByteTextBuf sListItems;
+
+  if (m_pList) {
+    CPDF_Rect rcPlate = m_pList->GetPlateRect();
+    for (int32_t i = 0, sz = m_pList->GetCount(); i < sz; i++) {
+      CPDF_Rect rcItem = m_pList->GetItemRect(i);
+
+      if (rcItem.bottom > rcPlate.top || rcItem.top < rcPlate.bottom)
+        continue;
+
+      CPDF_Point ptOffset(rcItem.left, (rcItem.top + rcItem.bottom) * 0.5f);
+      if (m_pList->IsItemSelected(i)) {
+        sListItems << CPWL_Utils::GetRectFillAppStream(
+            rcItem, PWL_DEFAULT_SELBACKCOLOR);
+        CFX_ByteString sItem =
+            CPWL_Utils::GetEditAppStream(m_pList->GetItemEdit(i), ptOffset);
+        if (sItem.GetLength() > 0) {
+          sListItems << "BT\n"
+                     << CPWL_Utils::GetColorAppStream(PWL_DEFAULT_SELTEXTCOLOR)
+                     << sItem << "ET\n";
+        }
+      } else {
+        CFX_ByteString sItem =
+            CPWL_Utils::GetEditAppStream(m_pList->GetItemEdit(i), ptOffset);
+        if (sItem.GetLength() > 0) {
+          sListItems << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor())
+                     << sItem << "ET\n";
+        }
+      }
+    }
+  }
+
+  if (sListItems.GetLength() > 0) {
+    CFX_ByteTextBuf sClip;
+    CPDF_Rect rcClient = GetClientRect();
+
+    sClip << "q\n";
+    sClip << rcClient.left << " " << rcClient.bottom << " "
+          << rcClient.right - rcClient.left << " "
+          << rcClient.top - rcClient.bottom << " re W n\n";
+
+    sClip << sListItems << "Q\n";
+
+    sAppStream << "/Tx BMC\n" << sClip << "EMC\n";
+  }
+}
+
+void CPWL_ListBox::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                      CPDF_Matrix* pUser2Device) {
+  CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
+
+  if (m_pList) {
+    CPDF_Rect rcPlate = m_pList->GetPlateRect();
+    CPDF_Rect rcList = GetListRect();
+    CPDF_Rect rcClient = GetClientRect();
+
+    for (int32_t i = 0, sz = m_pList->GetCount(); i < sz; i++) {
+      CPDF_Rect rcItem = m_pList->GetItemRect(i);
+      if (rcItem.bottom > rcPlate.top || rcItem.top < rcPlate.bottom)
+        continue;
+
+      CPDF_Point ptOffset(rcItem.left, (rcItem.top + rcItem.bottom) * 0.5f);
+      if (IFX_Edit* pEdit = m_pList->GetItemEdit(i)) {
+        CPDF_Rect rcContent = pEdit->GetContentRect();
+        if (rcContent.Width() > rcClient.Width())
+          rcItem.Intersect(rcList);
+        else
+          rcItem.Intersect(rcClient);
+      }
+
+      if (m_pList->IsItemSelected(i)) {
+        //	CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcItem,
+        //ArgbEncode(255,0,51,113));
+        IFX_SystemHandler* pSysHandler = GetSystemHandler();
+        if (pSysHandler && pSysHandler->IsSelectionImplemented()) {
+          IFX_Edit::DrawEdit(
+              pDevice, pUser2Device, m_pList->GetItemEdit(i),
+              CPWL_Utils::PWLColorToFXColor(GetTextColor()),
+              CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor()), rcList,
+              ptOffset, NULL, pSysHandler, m_pFormFiller);
+          pSysHandler->OutputSelectedRect(m_pFormFiller, rcItem);
+        } else {
+          CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcItem,
+                                   ArgbEncode(255, 0, 51, 113));
+          IFX_Edit::DrawEdit(pDevice, pUser2Device, m_pList->GetItemEdit(i),
+                             ArgbEncode(255, 255, 255, 255), 0, rcList,
+                             ptOffset, NULL, pSysHandler, m_pFormFiller);
+        }
+      } else {
+        IFX_SystemHandler* pSysHandler = GetSystemHandler();
+        IFX_Edit::DrawEdit(pDevice, pUser2Device, m_pList->GetItemEdit(i),
+                           CPWL_Utils::PWLColorToFXColor(GetTextColor()),
+                           CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor()),
+                           rcList, ptOffset, NULL, pSysHandler, NULL);
+      }
+    }
+  }
+}
+
+FX_BOOL CPWL_ListBox::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag) {
+  CPWL_Wnd::OnKeyDown(nChar, nFlag);
+
+  if (!m_pList)
+    return FALSE;
+
+  switch (nChar) {
+    default:
+      return FALSE;
+    case FWL_VKEY_Up:
+    case FWL_VKEY_Down:
+    case FWL_VKEY_Home:
+    case FWL_VKEY_Left:
+    case FWL_VKEY_End:
+    case FWL_VKEY_Right:
+      break;
+  }
+
+  switch (nChar) {
+    case FWL_VKEY_Up:
+      m_pList->OnVK_UP(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      break;
+    case FWL_VKEY_Down:
+      m_pList->OnVK_DOWN(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      break;
+    case FWL_VKEY_Home:
+      m_pList->OnVK_HOME(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      break;
+    case FWL_VKEY_Left:
+      m_pList->OnVK_LEFT(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      break;
+    case FWL_VKEY_End:
+      m_pList->OnVK_END(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      break;
+    case FWL_VKEY_Right:
+      m_pList->OnVK_RIGHT(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+      break;
+    case FWL_VKEY_Delete:
+      break;
+  }
+
+  FX_BOOL bExit = FALSE;
+  OnNotifySelChanged(TRUE, bExit, nFlag);
+
+  return TRUE;
+}
+
+FX_BOOL CPWL_ListBox::OnChar(FX_WORD nChar, FX_DWORD nFlag) {
+  CPWL_Wnd::OnChar(nChar, nFlag);
+
+  if (!m_pList)
+    return FALSE;
+
+  if (!m_pList->OnChar(nChar, IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag)))
+    return FALSE;
+
+  FX_BOOL bExit = FALSE;
+  OnNotifySelChanged(TRUE, bExit, nFlag);
+
+  return TRUE;
+}
+
+FX_BOOL CPWL_ListBox::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonDown(point, nFlag);
+
+  if (ClientHitTest(point)) {
+    m_bMouseDown = TRUE;
+    SetFocus();
+    SetCapture();
+
+    if (m_pList)
+      m_pList->OnMouseDown(point, IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+  }
+
+  return TRUE;
+}
+
+FX_BOOL CPWL_ListBox::OnLButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonUp(point, nFlag);
+
+  if (m_bMouseDown) {
+    ReleaseCapture();
+    m_bMouseDown = FALSE;
+  }
+
+  FX_BOOL bExit = FALSE;
+  OnNotifySelChanged(FALSE, bExit, nFlag);
+
+  return TRUE;
+}
+
+void CPWL_ListBox::SetHoverSel(FX_BOOL bHoverSel) {
+  m_bHoverSel = bHoverSel;
+}
+
+FX_BOOL CPWL_ListBox::OnMouseMove(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnMouseMove(point, nFlag);
+
+  if (m_bHoverSel && !IsCaptureMouse() && ClientHitTest(point)) {
+    if (m_pList)
+      m_pList->Select(m_pList->GetItemIndex(point));
+  }
 
-		SetHoverSel(HasFlag(PLBS_HOVERSEL));
-		m_pList->SetMultipleSel(HasFlag(PLBS_MULTIPLESEL));
-		m_pList->SetFontSize(GetCreationParam().fFontSize);
+  if (m_bMouseDown) {
+    if (m_pList)
+      m_pList->OnMouseMove(point, IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+  }
 
-		m_bHoverSel = HasFlag(PLBS_HOVERSEL);
-	}
+  return TRUE;
 }
 
-void CPWL_ListBox::OnDestroy()
-{
-    delete m_pListNotify;
-    m_pListNotify = NULL;
-}
-
-void CPWL_ListBox::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream)
-{
-	CPWL_Wnd::GetThisAppearanceStream(sAppStream);
-
-	CFX_ByteTextBuf sListItems;
-
-	if (m_pList)
-	{
-		CPDF_Rect rcPlate = m_pList->GetPlateRect();
-		for (int32_t i=0,sz=m_pList->GetCount(); i<sz; i++)
-		{
-			CPDF_Rect rcItem = m_pList->GetItemRect(i);
-
-			if (rcItem.bottom > rcPlate.top || rcItem.top < rcPlate.bottom) continue;
-
-			CPDF_Point ptOffset(rcItem.left, (rcItem.top + rcItem.bottom) * 0.5f);
-			if (m_pList->IsItemSelected(i))
-			{
-				sListItems << CPWL_Utils::GetRectFillAppStream(rcItem,PWL_DEFAULT_SELBACKCOLOR);
-				CFX_ByteString sItem = CPWL_Utils::GetEditAppStream(m_pList->GetItemEdit(i), ptOffset);
-				if (sItem.GetLength() > 0)
-				{
-					sListItems << "BT\n" << CPWL_Utils::GetColorAppStream(PWL_DEFAULT_SELTEXTCOLOR) << sItem << "ET\n";
-				}
-			}
-			else
-			{
-				CFX_ByteString sItem = CPWL_Utils::GetEditAppStream(m_pList->GetItemEdit(i), ptOffset);
-				if (sItem.GetLength() > 0)
-				{
-					sListItems << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()) << sItem << "ET\n";
-				}
-			}
-		}
-	}
-
-	if (sListItems.GetLength() > 0)
-	{
-		CFX_ByteTextBuf sClip;
-		CPDF_Rect rcClient = GetClientRect();
-
-		sClip << "q\n";
-		sClip << rcClient.left << " " << rcClient.bottom << " "
-			<< rcClient.right - rcClient.left << " " <<	rcClient.top - rcClient.bottom << " re W n\n";
-
-		sClip << sListItems << "Q\n";
-
-		sAppStream << "/Tx BMC\n" << sClip << "EMC\n";
-	}
-}
-
-void CPWL_ListBox::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	CPWL_Wnd::DrawThisAppearance(pDevice,pUser2Device);
-
-	if (m_pList)
-	{
-		CPDF_Rect rcPlate = m_pList->GetPlateRect();
-		CPDF_Rect rcList = GetListRect();
-		CPDF_Rect rcClient = GetClientRect();
-
-		for (int32_t i=0,sz=m_pList->GetCount(); i<sz; i++)
-		{
-			CPDF_Rect rcItem = m_pList->GetItemRect(i);
-			if (rcItem.bottom > rcPlate.top || rcItem.top < rcPlate.bottom) continue;
-
-			CPDF_Point ptOffset(rcItem.left, (rcItem.top + rcItem.bottom) * 0.5f);
-			if (IFX_Edit* pEdit = m_pList->GetItemEdit(i))
-			{
-				CPDF_Rect rcContent = pEdit->GetContentRect();
-				if (rcContent.Width() > rcClient.Width())
-					rcItem.Intersect(rcList);
-				else
-					rcItem.Intersect(rcClient);
-			}
-
-			if (m_pList->IsItemSelected(i))
-			{
-			//	CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcItem, ArgbEncode(255,0,51,113));
-				IFX_SystemHandler* pSysHandler = GetSystemHandler();
-				if(pSysHandler && pSysHandler->IsSelectionImplemented())
-				{
-					IFX_Edit::DrawEdit(pDevice, pUser2Device, m_pList->GetItemEdit(i), CPWL_Utils::PWLColorToFXColor(GetTextColor()), CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor()),
-						rcList, ptOffset, NULL,pSysHandler, m_pFormFiller);
-					pSysHandler->OutputSelectedRect(m_pFormFiller, rcItem);
-				}
-				else
-				{
-					CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcItem, ArgbEncode(255,0,51,113));
-					IFX_Edit::DrawEdit(pDevice, pUser2Device, m_pList->GetItemEdit(i), ArgbEncode(255,255,255,255), 0,
-						rcList, ptOffset, NULL, pSysHandler, m_pFormFiller);
-				}
-			}
-			else
-			{
-				IFX_SystemHandler* pSysHandler = GetSystemHandler();
-				IFX_Edit::DrawEdit(pDevice, pUser2Device, m_pList->GetItemEdit(i),
-						CPWL_Utils::PWLColorToFXColor(GetTextColor()),
-						CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor()),
-						rcList, ptOffset, NULL,pSysHandler, NULL);
-
-			}
-		}
-	}
-}
-
-FX_BOOL CPWL_ListBox::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnKeyDown(nChar, nFlag);
-
-	if (!m_pList) return FALSE;
-
-	switch (nChar)
-	{
-	default:
-		return FALSE;
-	case FWL_VKEY_Up:
-	case FWL_VKEY_Down:
-	case FWL_VKEY_Home:
-	case FWL_VKEY_Left:
-	case FWL_VKEY_End:
-	case FWL_VKEY_Right:
-		break;
-	}
-
-	switch (nChar)
-	{
-	case FWL_VKEY_Up:
-		m_pList->OnVK_UP(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-		break;
-	case FWL_VKEY_Down:
-		m_pList->OnVK_DOWN(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-		break;
-	case FWL_VKEY_Home:
-		m_pList->OnVK_HOME(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-		break;
-	case FWL_VKEY_Left:
-		m_pList->OnVK_LEFT(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-		break;
-	case FWL_VKEY_End:
-		m_pList->OnVK_END(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-		break;
-	case FWL_VKEY_Right:
-		m_pList->OnVK_RIGHT(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-		break;
-	case FWL_VKEY_Delete:
-		break;
-	}
-
-	FX_BOOL bExit = FALSE;
-	OnNotifySelChanged(TRUE,bExit,nFlag);
-
-	return TRUE;
-}
-
-FX_BOOL CPWL_ListBox::OnChar(FX_WORD nChar, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnChar(nChar,nFlag);
-
-	if (!m_pList) return FALSE;
-
-	if (!m_pList->OnChar(nChar,IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag))) return FALSE;
-
-	FX_BOOL bExit = FALSE;
-	OnNotifySelChanged(TRUE,bExit, nFlag);
-
-	return TRUE;
-}
-
-FX_BOOL CPWL_ListBox::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnLButtonDown(point,nFlag);
-
-	if (ClientHitTest(point))
-	{
-		m_bMouseDown = TRUE;
-		SetFocus();
-		SetCapture();
-
-		if (m_pList)
-			m_pList->OnMouseDown(point,IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-	}
-
-	return TRUE;
-}
-
-FX_BOOL CPWL_ListBox::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnLButtonUp(point,nFlag);
-
-	if (m_bMouseDown)
-	{
-		ReleaseCapture();
-		m_bMouseDown = FALSE;
-	}
-
-	FX_BOOL bExit = FALSE;
-	OnNotifySelChanged(FALSE,bExit,nFlag);
-
-	return TRUE;
-}
-
-void CPWL_ListBox::SetHoverSel(FX_BOOL bHoverSel)
-{
-	m_bHoverSel = bHoverSel;
-}
-
-FX_BOOL CPWL_ListBox::OnMouseMove(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnMouseMove(point, nFlag);
-
-	if (m_bHoverSel && !IsCaptureMouse() && ClientHitTest(point))
-	{
-		if (m_pList)
-			m_pList->Select(m_pList->GetItemIndex(point));
-	}
-
-	if (m_bMouseDown)
-	{
-		if (m_pList)
-			m_pList->OnMouseMove(point,IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-	}
-
-	return TRUE;
-}
-
-void CPWL_ListBox::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
-{
-	CPWL_Wnd::OnNotify(pWnd,msg,wParam,lParam);
-
-	FX_FLOAT fPos;
-
-	switch (msg)
-	{
-	case PNM_SETSCROLLINFO:
-		switch (wParam)
-		{
-		case SBT_VSCROLL:
-			if (CPWL_Wnd * pChild = GetVScrollBar())
-			{
-				pChild->OnNotify(pWnd,PNM_SETSCROLLINFO,wParam,lParam);
-			}
-			break;
-		}
-		break;
-	case PNM_SETSCROLLPOS:
-		switch (wParam)
-		{
-		case SBT_VSCROLL:
-			if (CPWL_Wnd * pChild = GetVScrollBar())
-			{
-				pChild->OnNotify(pWnd,PNM_SETSCROLLPOS,wParam,lParam);
-			}
-			break;
-		}
-		break;
-	case PNM_SCROLLWINDOW:
-		fPos = *(FX_FLOAT*)lParam;
-		switch (wParam)
-		{
-		case SBT_VSCROLL:
-			if (m_pList)
-				m_pList->SetScrollPos(CPDF_Point(0,fPos));
-			break;
-		}
-		break;
-	}
+void CPWL_ListBox::OnNotify(CPWL_Wnd* pWnd,
+                            FX_DWORD msg,
+                            intptr_t wParam,
+                            intptr_t lParam) {
+  CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
+
+  FX_FLOAT fPos;
+
+  switch (msg) {
+    case PNM_SETSCROLLINFO:
+      switch (wParam) {
+        case SBT_VSCROLL:
+          if (CPWL_Wnd* pChild = GetVScrollBar()) {
+            pChild->OnNotify(pWnd, PNM_SETSCROLLINFO, wParam, lParam);
+          }
+          break;
+      }
+      break;
+    case PNM_SETSCROLLPOS:
+      switch (wParam) {
+        case SBT_VSCROLL:
+          if (CPWL_Wnd* pChild = GetVScrollBar()) {
+            pChild->OnNotify(pWnd, PNM_SETSCROLLPOS, wParam, lParam);
+          }
+          break;
+      }
+      break;
+    case PNM_SCROLLWINDOW:
+      fPos = *(FX_FLOAT*)lParam;
+      switch (wParam) {
+        case SBT_VSCROLL:
+          if (m_pList)
+            m_pList->SetScrollPos(CPDF_Point(0, fPos));
+          break;
+      }
+      break;
+  }
 }
 
-void CPWL_ListBox::KillFocus()
-{
-    CPWL_Wnd::KillFocus();
+void CPWL_ListBox::KillFocus() {
+  CPWL_Wnd::KillFocus();
 }
 
-void CPWL_ListBox::RePosChildWnd()
-{
-	CPWL_Wnd::RePosChildWnd();
+void CPWL_ListBox::RePosChildWnd() {
+  CPWL_Wnd::RePosChildWnd();
 
-	if (m_pList)
-		m_pList->SetPlateRect(GetListRect());
+  if (m_pList)
+    m_pList->SetPlateRect(GetListRect());
 }
 
-void CPWL_ListBox::OnNotifySelChanged(FX_BOOL bKeyDown, FX_BOOL & bExit,  FX_DWORD nFlag)
-{
-	if (m_pFillerNotify)
-	{
-		FX_BOOL bRC = TRUE;
-		CFX_WideString swChange = GetText();
-		CFX_WideString strChangeEx;
-		int nSelStart = 0;
-		int nSelEnd = swChange.GetLength();
-		m_pFillerNotify->OnBeforeKeyStroke(FALSE, GetAttachedData(), 0, swChange, strChangeEx, nSelStart, nSelEnd, bKeyDown, bRC, bExit, nFlag);
-		if (bExit) return;
+void CPWL_ListBox::OnNotifySelChanged(FX_BOOL bKeyDown,
+                                      FX_BOOL& bExit,
+                                      FX_DWORD nFlag) {
+  if (m_pFillerNotify) {
+    FX_BOOL bRC = TRUE;
+    CFX_WideString swChange = GetText();
+    CFX_WideString strChangeEx;
+    int nSelStart = 0;
+    int nSelEnd = swChange.GetLength();
+    m_pFillerNotify->OnBeforeKeyStroke(FALSE, GetAttachedData(), 0, swChange,
+                                       strChangeEx, nSelStart, nSelEnd,
+                                       bKeyDown, bRC, bExit, nFlag);
+    if (bExit)
+      return;
 
-		m_pFillerNotify->OnAfterKeyStroke(FALSE, GetAttachedData(), bExit,nFlag);
-	}
+    m_pFillerNotify->OnAfterKeyStroke(FALSE, GetAttachedData(), bExit, nFlag);
+  }
 }
 
-CPDF_Rect CPWL_ListBox::GetFocusRect() const
-{
-	if (m_pList && m_pList->IsMultipleSel())
-	{
-		CPDF_Rect rcCaret = m_pList->GetItemRect(m_pList->GetCaret());
-		rcCaret.Intersect(GetClientRect());
-		return rcCaret;
-	}
+CPDF_Rect CPWL_ListBox::GetFocusRect() const {
+  if (m_pList && m_pList->IsMultipleSel()) {
+    CPDF_Rect rcCaret = m_pList->GetItemRect(m_pList->GetCaret());
+    rcCaret.Intersect(GetClientRect());
+    return rcCaret;
+  }
 
-	return CPWL_Wnd::GetFocusRect();
+  return CPWL_Wnd::GetFocusRect();
 }
 
-void CPWL_ListBox::AddString(const FX_WCHAR* string)
-{
-	if (m_pList)
-	{
-		m_pList->AddString(string);
-	}
+void CPWL_ListBox::AddString(const FX_WCHAR* string) {
+  if (m_pList) {
+    m_pList->AddString(string);
+  }
 }
 
-CFX_WideString CPWL_ListBox::GetText() const
-{
-	if (m_pList)
-		return m_pList->GetText();
+CFX_WideString CPWL_ListBox::GetText() const {
+  if (m_pList)
+    return m_pList->GetText();
 
-	return L"";
+  return L"";
 }
 
-void CPWL_ListBox::SetFontSize(FX_FLOAT fFontSize)
-{
-	if (m_pList)
-		m_pList->SetFontSize(fFontSize);
+void CPWL_ListBox::SetFontSize(FX_FLOAT fFontSize) {
+  if (m_pList)
+    m_pList->SetFontSize(fFontSize);
 }
 
-FX_FLOAT CPWL_ListBox::GetFontSize() const
-{
-	if (m_pList)
-		return m_pList->GetFontSize();
-	return 0.0f;
+FX_FLOAT CPWL_ListBox::GetFontSize() const {
+  if (m_pList)
+    return m_pList->GetFontSize();
+  return 0.0f;
 }
 
-void CPWL_ListBox::Select(int32_t nItemIndex)
-{
-	if (m_pList)
-		m_pList->Select(nItemIndex);
+void CPWL_ListBox::Select(int32_t nItemIndex) {
+  if (m_pList)
+    m_pList->Select(nItemIndex);
 }
 
-void CPWL_ListBox::SetCaret(int32_t nItemIndex)
-{
-	if (m_pList)
-		m_pList->SetCaret(nItemIndex);
+void CPWL_ListBox::SetCaret(int32_t nItemIndex) {
+  if (m_pList)
+    m_pList->SetCaret(nItemIndex);
 }
 
-void CPWL_ListBox::SetTopVisibleIndex(int32_t nItemIndex)
-{
-	if (m_pList)
-		m_pList->SetTopItem(nItemIndex);
+void CPWL_ListBox::SetTopVisibleIndex(int32_t nItemIndex) {
+  if (m_pList)
+    m_pList->SetTopItem(nItemIndex);
 }
 
-void CPWL_ListBox::ScrollToListItem(int32_t nItemIndex)
-{
-	if (m_pList)
-		m_pList->ScrollToListItem(nItemIndex);
+void CPWL_ListBox::ScrollToListItem(int32_t nItemIndex) {
+  if (m_pList)
+    m_pList->ScrollToListItem(nItemIndex);
 }
 
-void CPWL_ListBox::ResetContent()
-{
-	if (m_pList)
-		m_pList->Empty();
+void CPWL_ListBox::ResetContent() {
+  if (m_pList)
+    m_pList->Empty();
 }
 
-void CPWL_ListBox::Reset()
-{
-	if (m_pList)
-		m_pList->Cancel();
+void CPWL_ListBox::Reset() {
+  if (m_pList)
+    m_pList->Cancel();
 }
 
-FX_BOOL CPWL_ListBox::IsMultipleSel() const
-{
-	if (m_pList)
-		return m_pList->IsMultipleSel();
+FX_BOOL CPWL_ListBox::IsMultipleSel() const {
+  if (m_pList)
+    return m_pList->IsMultipleSel();
 
-	return FALSE;
+  return FALSE;
 }
 
-int32_t CPWL_ListBox::GetCaretIndex() const
-{
-	if (m_pList)
-		return m_pList->GetCaret();
+int32_t CPWL_ListBox::GetCaretIndex() const {
+  if (m_pList)
+    return m_pList->GetCaret();
 
-	return -1;
+  return -1;
 }
 
-int32_t CPWL_ListBox::GetCurSel() const
-{
-	if (m_pList)
-		return m_pList->GetSelect();
+int32_t CPWL_ListBox::GetCurSel() const {
+  if (m_pList)
+    return m_pList->GetSelect();
 
-	return -1;
+  return -1;
 }
 
-FX_BOOL CPWL_ListBox::IsItemSelected(int32_t nItemIndex) const
-{
-	if (m_pList)
-		return m_pList->IsItemSelected(nItemIndex);
+FX_BOOL CPWL_ListBox::IsItemSelected(int32_t nItemIndex) const {
+  if (m_pList)
+    return m_pList->IsItemSelected(nItemIndex);
 
-	return FALSE;
+  return FALSE;
 }
 
-int32_t CPWL_ListBox::GetTopVisibleIndex() const
-{
-	if (m_pList)
-	{
-		m_pList->ScrollToListItem(m_pList->GetFirstSelected());
-		return m_pList->GetTopItem();
-	}
+int32_t CPWL_ListBox::GetTopVisibleIndex() const {
+  if (m_pList) {
+    m_pList->ScrollToListItem(m_pList->GetFirstSelected());
+    return m_pList->GetTopItem();
+  }
 
-	return -1;
+  return -1;
 }
 
-int32_t CPWL_ListBox::GetCount() const
-{
-	if (m_pList)
-		return m_pList->GetCount();
+int32_t CPWL_ListBox::GetCount() const {
+  if (m_pList)
+    return m_pList->GetCount();
 
-	return 0;
+  return 0;
 }
 
-int32_t CPWL_ListBox::FindNext(int32_t nIndex,FX_WCHAR nChar) const
-{
-	if (m_pList)
-		return m_pList->FindNext(nIndex,nChar);
+int32_t CPWL_ListBox::FindNext(int32_t nIndex, FX_WCHAR nChar) const {
+  if (m_pList)
+    return m_pList->FindNext(nIndex, nChar);
 
-	return nIndex;
+  return nIndex;
 }
 
-CPDF_Rect CPWL_ListBox::GetContentRect() const
-{
-	if (m_pList)
-		return m_pList->GetContentRect();
+CPDF_Rect CPWL_ListBox::GetContentRect() const {
+  if (m_pList)
+    return m_pList->GetContentRect();
 
-	return CPDF_Rect();
+  return CPDF_Rect();
 }
 
-FX_FLOAT CPWL_ListBox::GetFirstHeight() const
-{
-	if (m_pList)
-		return m_pList->GetFirstHeight();
+FX_FLOAT CPWL_ListBox::GetFirstHeight() const {
+  if (m_pList)
+    return m_pList->GetFirstHeight();
 
-	return 0.0f;
+  return 0.0f;
 }
 
-CPDF_Rect CPWL_ListBox::GetListRect() const
-{
-	return CPWL_Utils::DeflateRect(GetWindowRect(),(FX_FLOAT)(GetBorderWidth()+GetInnerBorderWidth()));
+CPDF_Rect CPWL_ListBox::GetListRect() const {
+  return CPWL_Utils::DeflateRect(
+      GetWindowRect(), (FX_FLOAT)(GetBorderWidth() + GetInnerBorderWidth()));
 }
 
-FX_BOOL	CPWL_ListBox::OnMouseWheel(short zDelta, const CPDF_Point & point, FX_DWORD nFlag)
-{
-	if (!m_pList) return FALSE;
+FX_BOOL CPWL_ListBox::OnMouseWheel(short zDelta,
+                                   const CPDF_Point& point,
+                                   FX_DWORD nFlag) {
+  if (!m_pList)
+    return FALSE;
 
-	if (zDelta < 0)
-	{
-		m_pList->OnVK_DOWN(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-	}
-	else
-	{
-		m_pList->OnVK_UP(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag));
-	}
+  if (zDelta < 0) {
+    m_pList->OnVK_DOWN(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+  } else {
+    m_pList->OnVK_UP(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
+  }
 
-	FX_BOOL bExit = FALSE;
-	OnNotifySelChanged(FALSE,bExit, nFlag);
-	return TRUE;
+  FX_BOOL bExit = FALSE;
+  OnNotifySelChanged(FALSE, bExit, nFlag);
+  return TRUE;
 }
-
diff --git a/fpdfsdk/src/pdfwindow/PWL_ListCtrl.cpp b/fpdfsdk/src/pdfwindow/PWL_ListCtrl.cpp
index 3077e6293f..e01ce5c203 100644
--- a/fpdfsdk/src/pdfwindow/PWL_ListCtrl.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_ListCtrl.cpp
@@ -10,236 +10,199 @@
 
 /* ---------------------------- CPWL_ListCtrl ---------------------------- */
 
-CPWL_ListCtrl::CPWL_ListCtrl() :
-	m_rcContent(0,0,0,0),
-	m_ptScroll(0,0),
-	m_fItemSpace(0.0f),
-	m_fTopSpace(0.0f),
-	m_fBottomSpace(0.0f)
-{
-}
+CPWL_ListCtrl::CPWL_ListCtrl()
+    : m_rcContent(0, 0, 0, 0),
+      m_ptScroll(0, 0),
+      m_fItemSpace(0.0f),
+      m_fTopSpace(0.0f),
+      m_fBottomSpace(0.0f) {}
 
-CPWL_ListCtrl::~CPWL_ListCtrl()
-{
-}
+CPWL_ListCtrl::~CPWL_ListCtrl() {}
 
-void CPWL_ListCtrl::SetScrollPos(const CPDF_Point& point)
-{
-	m_ptScroll = point;
+void CPWL_ListCtrl::SetScrollPos(const CPDF_Point& point) {
+  m_ptScroll = point;
 
-	if (m_ptScroll.x < m_rcContent.left)
-		m_ptScroll.x = m_rcContent.left;
+  if (m_ptScroll.x < m_rcContent.left)
+    m_ptScroll.x = m_rcContent.left;
 
-	if (m_ptScroll.x > m_rcContent.right)
-		m_ptScroll.x = m_rcContent.right;
+  if (m_ptScroll.x > m_rcContent.right)
+    m_ptScroll.x = m_rcContent.right;
 
-	if (m_ptScroll.y > m_rcContent.top)
-		m_ptScroll.y = m_rcContent.top;
+  if (m_ptScroll.y > m_rcContent.top)
+    m_ptScroll.y = m_rcContent.top;
 
-	if (m_ptScroll.y < m_rcContent.bottom)
-		m_ptScroll.y = m_rcContent.bottom;
+  if (m_ptScroll.y < m_rcContent.bottom)
+    m_ptScroll.y = m_rcContent.bottom;
 }
 
-CPDF_Point CPWL_ListCtrl::GetScrollPos() const
-{
-	return m_ptScroll;
+CPDF_Point CPWL_ListCtrl::GetScrollPos() const {
+  return m_ptScroll;
 }
 
-CPDF_Rect CPWL_ListCtrl::GetScrollArea() const
-{
-	return m_rcContent;
+CPDF_Rect CPWL_ListCtrl::GetScrollArea() const {
+  return m_rcContent;
 }
 
-void CPWL_ListCtrl::ResetFace()
-{
-	ResetAll(FALSE, 0);
+void CPWL_ListCtrl::ResetFace() {
+  ResetAll(FALSE, 0);
 }
 
-void CPWL_ListCtrl::ResetContent(int32_t nStart)
-{
-	if (nStart < 0)
-		nStart = 0;
-	if (nStart >= 0 && nStart < m_aChildren.GetSize())
-		ResetAll(TRUE, nStart);
+void CPWL_ListCtrl::ResetContent(int32_t nStart) {
+  if (nStart < 0)
+    nStart = 0;
+  if (nStart >= 0 && nStart < m_aChildren.GetSize())
+    ResetAll(TRUE, nStart);
 }
 
-FX_FLOAT CPWL_ListCtrl::GetContentsHeight(FX_FLOAT fLimitWidth)
-{
-	FX_FLOAT fRet = m_fTopSpace;
+FX_FLOAT CPWL_ListCtrl::GetContentsHeight(FX_FLOAT fLimitWidth) {
+  FX_FLOAT fRet = m_fTopSpace;
 
-	FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
+  FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
 
-	if (fLimitWidth > fBorderWidth* 2)
-	{
-		for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-		{
-			if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-			{
-				FX_FLOAT fLeft = pChild->GetItemLeftMargin();
-				FX_FLOAT fRight = pChild->GetItemRightMargin();
+  if (fLimitWidth > fBorderWidth * 2) {
+    for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+      if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+        FX_FLOAT fLeft = pChild->GetItemLeftMargin();
+        FX_FLOAT fRight = pChild->GetItemRightMargin();
 
-				fRet += pChild->GetItemHeight(fLimitWidth - fBorderWidth* 2 - fLeft - fRight);
-				fRet += m_fItemSpace;
-			}
-		}
+        fRet += pChild->GetItemHeight(fLimitWidth - fBorderWidth * 2 - fLeft -
+                                      fRight);
+        fRet += m_fItemSpace;
+      }
+    }
 
-		fRet -= m_fItemSpace;
-	}
+    fRet -= m_fItemSpace;
+  }
 
-	fRet += m_fBottomSpace;
+  fRet += m_fBottomSpace;
 
-	return fRet;
+  return fRet;
 }
 
-void CPWL_ListCtrl::ResetAll(FX_BOOL bMove, int32_t nStart)
-{
-	CPDF_Rect rcClient = GetClientRect();
+void CPWL_ListCtrl::ResetAll(FX_BOOL bMove, int32_t nStart) {
+  CPDF_Rect rcClient = GetClientRect();
 
-	FX_FLOAT fWidth = rcClient.Width();
+  FX_FLOAT fWidth = rcClient.Width();
 
-	FX_FLOAT fy = 0.0f - m_fTopSpace;
+  FX_FLOAT fy = 0.0f - m_fTopSpace;
 
-	if (nStart-1 >= 0 && nStart-1 < m_aChildren.GetSize())
-		if (CPWL_Wnd* pChild = m_aChildren.GetAt(nStart-1))
-			fy = pChild->GetWindowRect().bottom - m_fItemSpace;
+  if (nStart - 1 >= 0 && nStart - 1 < m_aChildren.GetSize())
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(nStart - 1))
+      fy = pChild->GetWindowRect().bottom - m_fItemSpace;
 
-	for (int32_t i=nStart,sz=m_aChildren.GetSize(); i<sz; i++)
-	{
-		if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-		{
-			FX_FLOAT fLeft = pChild->GetItemLeftMargin();
-			FX_FLOAT fRight = pChild->GetItemRightMargin();
+  for (int32_t i = nStart, sz = m_aChildren.GetSize(); i < sz; i++) {
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+      FX_FLOAT fLeft = pChild->GetItemLeftMargin();
+      FX_FLOAT fRight = pChild->GetItemRightMargin();
 
-			pChild->SetChildMatrix(
-				CPDF_Matrix(1,0,0,1,
-				rcClient.left - m_ptScroll.x,
-				rcClient.top - m_ptScroll.y)
-				);
+      pChild->SetChildMatrix(CPDF_Matrix(1, 0, 0, 1,
+                                         rcClient.left - m_ptScroll.x,
+                                         rcClient.top - m_ptScroll.y));
 
-			if (bMove)
-			{
-				FX_FLOAT fItemHeight = pChild->GetItemHeight(fWidth - fLeft - fRight);
-				pChild->Move(CPDF_Rect(fLeft, fy-fItemHeight, fWidth - fRight, fy), TRUE, FALSE);
-				fy -= fItemHeight;
-				fy -= m_fItemSpace;
-			}
-		}
-	}
+      if (bMove) {
+        FX_FLOAT fItemHeight = pChild->GetItemHeight(fWidth - fLeft - fRight);
+        pChild->Move(CPDF_Rect(fLeft, fy - fItemHeight, fWidth - fRight, fy),
+                     TRUE, FALSE);
+        fy -= fItemHeight;
+        fy -= m_fItemSpace;
+      }
+    }
+  }
 
-	fy += m_fItemSpace;
+  fy += m_fItemSpace;
 
-	fy -= m_fBottomSpace;
+  fy -= m_fBottomSpace;
 
-	if (bMove)
-	{
-		m_rcContent.left = 0;
-		m_rcContent.top = 0;
-		m_rcContent.right = fWidth;
-		m_rcContent.bottom = fy;
-	}
+  if (bMove) {
+    m_rcContent.left = 0;
+    m_rcContent.top = 0;
+    m_rcContent.right = fWidth;
+    m_rcContent.bottom = fy;
+  }
 }
 
-void CPWL_ListCtrl::SetItemSpace(FX_FLOAT fSpace)
-{
-	m_fItemSpace = fSpace;
+void CPWL_ListCtrl::SetItemSpace(FX_FLOAT fSpace) {
+  m_fItemSpace = fSpace;
 }
 
-void CPWL_ListCtrl::SetTopSpace(FX_FLOAT fSpace)
-{
-	m_fTopSpace = fSpace;
+void CPWL_ListCtrl::SetTopSpace(FX_FLOAT fSpace) {
+  m_fTopSpace = fSpace;
 }
 
-void CPWL_ListCtrl::SetBottomSpace(FX_FLOAT fSpace)
-{
-	m_fBottomSpace = fSpace;
+void CPWL_ListCtrl::SetBottomSpace(FX_FLOAT fSpace) {
+  m_fBottomSpace = fSpace;
 }
 
-void CPWL_ListCtrl::RePosChildWnd()
-{
-	ResetFace();
+void CPWL_ListCtrl::RePosChildWnd() {
+  ResetFace();
 }
 
-void CPWL_ListCtrl::DrawChildAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	pDevice->SaveState();
-	CPDF_Rect rcClient = GetClientRect();
-	CPDF_Rect rcTemp = rcClient;
-	pUser2Device->TransformRect(rcTemp);
-	FX_RECT rcClip((int32_t)rcTemp.left,
-		(int32_t)rcTemp.bottom,
-		(int32_t)rcTemp.right,
-		(int32_t)rcTemp.top);
+void CPWL_ListCtrl::DrawChildAppearance(CFX_RenderDevice* pDevice,
+                                        CPDF_Matrix* pUser2Device) {
+  pDevice->SaveState();
+  CPDF_Rect rcClient = GetClientRect();
+  CPDF_Rect rcTemp = rcClient;
+  pUser2Device->TransformRect(rcTemp);
+  FX_RECT rcClip((int32_t)rcTemp.left, (int32_t)rcTemp.bottom,
+                 (int32_t)rcTemp.right, (int32_t)rcTemp.top);
 
-	pDevice->SetClip_Rect(&rcClip);
+  pDevice->SetClip_Rect(&rcClip);
 
-	for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-	{
-		if (CPWL_Wnd * pChild = m_aChildren.GetAt(i))
-		{
-			CPDF_Rect rcChild = pChild->ChildToParent(pChild->GetWindowRect());
-			if (!(rcChild.top < rcClient.bottom || rcChild.bottom > rcClient.top))
-			{
-				CPDF_Matrix mt = pChild->GetChildMatrix();
-				if (mt.IsIdentity())
-				{
-					pChild->DrawAppearance(pDevice,pUser2Device);
-				}
-				else
-				{
-					mt.Concat(*pUser2Device);
-					pChild->DrawAppearance(pDevice,&mt);
-				}
-			}
-		}
-	}
+  for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+      CPDF_Rect rcChild = pChild->ChildToParent(pChild->GetWindowRect());
+      if (!(rcChild.top < rcClient.bottom || rcChild.bottom > rcClient.top)) {
+        CPDF_Matrix mt = pChild->GetChildMatrix();
+        if (mt.IsIdentity()) {
+          pChild->DrawAppearance(pDevice, pUser2Device);
+        } else {
+          mt.Concat(*pUser2Device);
+          pChild->DrawAppearance(pDevice, &mt);
+        }
+      }
+    }
+  }
 
-	pDevice->RestoreState();
+  pDevice->RestoreState();
 }
 
-int32_t CPWL_ListCtrl::GetItemIndex(CPWL_Wnd* pItem)
-{
-	for (int32_t i=0, sz=m_aChildren.GetSize(); i<sz; i++)
-	{
-		if (pItem == m_aChildren.GetAt(i))
-			return i;
-	}
+int32_t CPWL_ListCtrl::GetItemIndex(CPWL_Wnd* pItem) {
+  for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+    if (pItem == m_aChildren.GetAt(i))
+      return i;
+  }
 
-	return -1;
+  return -1;
 }
 
-CPDF_Point CPWL_ListCtrl::InToOut(const CPDF_Point& point) const
-{
-	CPDF_Rect rcClient = GetClientRect();
+CPDF_Point CPWL_ListCtrl::InToOut(const CPDF_Point& point) const {
+  CPDF_Rect rcClient = GetClientRect();
 
-	return CPDF_Point(point.x + rcClient.left - m_ptScroll.x,
-		point.y + rcClient.top - m_ptScroll.y);
+  return CPDF_Point(point.x + rcClient.left - m_ptScroll.x,
+                    point.y + rcClient.top - m_ptScroll.y);
 }
 
-CPDF_Point CPWL_ListCtrl::OutToIn(const CPDF_Point& point) const
-{
-	CPDF_Rect rcClient = GetClientRect();
+CPDF_Point CPWL_ListCtrl::OutToIn(const CPDF_Point& point) const {
+  CPDF_Rect rcClient = GetClientRect();
 
-	return CPDF_Point(point.x - rcClient.left + m_ptScroll.x,
-		point.y - rcClient.top + m_ptScroll.y);
+  return CPDF_Point(point.x - rcClient.left + m_ptScroll.x,
+                    point.y - rcClient.top + m_ptScroll.y);
 }
 
-CPDF_Rect CPWL_ListCtrl::InToOut(const CPDF_Rect& rect) const
-{
-	CPDF_Rect rcClient = GetClientRect();
+CPDF_Rect CPWL_ListCtrl::InToOut(const CPDF_Rect& rect) const {
+  CPDF_Rect rcClient = GetClientRect();
 
-	return CPDF_Rect(rect.left + rcClient.left - m_ptScroll.x,
-		rect.bottom + rcClient.top - m_ptScroll.y,
-		rect.right + rcClient.left - m_ptScroll.x,
-		rect.top + rcClient.top - m_ptScroll.y);
+  return CPDF_Rect(rect.left + rcClient.left - m_ptScroll.x,
+                   rect.bottom + rcClient.top - m_ptScroll.y,
+                   rect.right + rcClient.left - m_ptScroll.x,
+                   rect.top + rcClient.top - m_ptScroll.y);
 }
 
-CPDF_Rect CPWL_ListCtrl::OutToIn(const CPDF_Rect& rect) const
-{
-	CPDF_Rect rcClient = GetClientRect();
+CPDF_Rect CPWL_ListCtrl::OutToIn(const CPDF_Rect& rect) const {
+  CPDF_Rect rcClient = GetClientRect();
 
-	return CPDF_Rect(rect.left - rcClient.left + m_ptScroll.x,
-		rect.bottom - rcClient.top + m_ptScroll.y,
-		rect.right - rcClient.left + m_ptScroll.x,
-		rect.top - rcClient.top + m_ptScroll.y);
+  return CPDF_Rect(rect.left - rcClient.left + m_ptScroll.x,
+                   rect.bottom - rcClient.top + m_ptScroll.y,
+                   rect.right - rcClient.left + m_ptScroll.x,
+                   rect.top - rcClient.top + m_ptScroll.y);
 }
-
diff --git a/fpdfsdk/src/pdfwindow/PWL_Note.cpp b/fpdfsdk/src/pdfwindow/PWL_Note.cpp
index 7ed1115a82..6b05dde3b8 100644
--- a/fpdfsdk/src/pdfwindow/PWL_Note.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_Note.cpp
@@ -18,1753 +18,1598 @@
 #include "../../include/pdfwindow/PWL_Utils.h"
 #include "../../include/pdfwindow/PWL_Caret.h"
 
-#define POPUP_ITEM_HEAD_BOTTOM					3.0f
-#define POPUP_ITEM_BOTTOMWIDTH					1.0f
-#define POPUP_ITEM_SIDEMARGIN					3.0f
-#define POPUP_ITEM_SPACE						4.0f
-#define POPUP_ITEM_TEXT_INDENT					2.0f
-#define POPUP_ITEM_BORDERCOLOR					CPWL_Color(COLORTYPE_RGB, 80/255.0f, 80/255.0f, 80/255.0f)
+#define POPUP_ITEM_HEAD_BOTTOM 3.0f
+#define POPUP_ITEM_BOTTOMWIDTH 1.0f
+#define POPUP_ITEM_SIDEMARGIN 3.0f
+#define POPUP_ITEM_SPACE 4.0f
+#define POPUP_ITEM_TEXT_INDENT 2.0f
+#define POPUP_ITEM_BORDERCOLOR \
+  CPWL_Color(COLORTYPE_RGB, 80 / 255.0f, 80 / 255.0f, 80 / 255.0f)
 
-#define IsFloatZero(f)						((f) < 0.0001 && (f) > -0.0001)
-#define IsFloatBigger(fa,fb)				((fa) > (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatSmaller(fa,fb)				((fa) < (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatEqual(fa,fb)					IsFloatZero((fa)-(fb))
+#define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001)
+#define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb))
 
+/* ------------------------------- CPWL_Note_Options
+ * ------------------------------- */
 
-/* ------------------------------- CPWL_Note_Options ------------------------------- */
+CPWL_Note_Options::CPWL_Note_Options() : m_pText(NULL) {}
 
-CPWL_Note_Options::CPWL_Note_Options() : m_pText(NULL)
-{
-}
-
-CPWL_Note_Options::~CPWL_Note_Options()
-{
-}
+CPWL_Note_Options::~CPWL_Note_Options() {}
 
-void CPWL_Note_Options::SetTextColor(const CPWL_Color & color)
-{
-	CPWL_Wnd::SetTextColor(color);
+void CPWL_Note_Options::SetTextColor(const CPWL_Color& color) {
+  CPWL_Wnd::SetTextColor(color);
 
-	if (m_pText)
-		m_pText->SetTextColor(color);
+  if (m_pText)
+    m_pText->SetTextColor(color);
 }
 
-void CPWL_Note_Options::RePosChildWnd()
-{
-	if (IsValid())
-	{
-		ASSERT(m_pText != NULL);
+void CPWL_Note_Options::RePosChildWnd() {
+  if (IsValid()) {
+    ASSERT(m_pText != NULL);
 
-		CPDF_Rect rcClient = GetClientRect();
+    CPDF_Rect rcClient = GetClientRect();
 
-		if (rcClient.Width() > 15.0f)
-		{
-			rcClient.right -= 15.0f;
-			m_pText->Move(rcClient, TRUE, FALSE);
-			m_pText->SetVisible(TRUE);
-		}
-		else
-		{
-			m_pText->Move(CPDF_Rect(0,0,0,0), TRUE, FALSE);
-			m_pText->SetVisible(FALSE);
-		}
-	}
+    if (rcClient.Width() > 15.0f) {
+      rcClient.right -= 15.0f;
+      m_pText->Move(rcClient, TRUE, FALSE);
+      m_pText->SetVisible(TRUE);
+    } else {
+      m_pText->Move(CPDF_Rect(0, 0, 0, 0), TRUE, FALSE);
+      m_pText->SetVisible(FALSE);
+    }
+  }
 }
 
-void CPWL_Note_Options::CreateChildWnd(const PWL_CREATEPARAM & cp)
-{
-	m_pText = new CPWL_Label;
-	PWL_CREATEPARAM tcp = cp;
-	tcp.pParentWnd = this;
-	tcp.dwFlags = PWS_CHILD | PWS_VISIBLE;
-	m_pText->Create(tcp);
+void CPWL_Note_Options::CreateChildWnd(const PWL_CREATEPARAM& cp) {
+  m_pText = new CPWL_Label;
+  PWL_CREATEPARAM tcp = cp;
+  tcp.pParentWnd = this;
+  tcp.dwFlags = PWS_CHILD | PWS_VISIBLE;
+  m_pText->Create(tcp);
 }
 
-void CPWL_Note_Options::SetText(const CFX_WideString& sText)
-{
-	m_pText->SetText(sText.c_str());
+void CPWL_Note_Options::SetText(const CFX_WideString& sText) {
+  m_pText->SetText(sText.c_str());
 }
 
-void CPWL_Note_Options::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
+void CPWL_Note_Options::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                           CPDF_Matrix* pUser2Device) {
+  CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
 
-	CPDF_Rect rcClient = GetClientRect();
-	rcClient.left = rcClient.right - 15.0f;
+  CPDF_Rect rcClient = GetClientRect();
+  rcClient.left = rcClient.right - 15.0f;
 
-	CPDF_Point ptCenter = CPDF_Point((rcClient.left + rcClient.right) * 0.5f, (rcClient.top + rcClient.bottom) * 0.5f);
+  CPDF_Point ptCenter = CPDF_Point((rcClient.left + rcClient.right) * 0.5f,
+                                   (rcClient.top + rcClient.bottom) * 0.5f);
 
-	CPDF_Point pt1(ptCenter.x - 2.0f, ptCenter.y + 2.0f * 0.5f);
-	CPDF_Point pt2(ptCenter.x + 2.0f, ptCenter.y + 2.0f * 0.5f);
-	CPDF_Point pt3(ptCenter.x, ptCenter.y - 3.0f * 0.5f);
+  CPDF_Point pt1(ptCenter.x - 2.0f, ptCenter.y + 2.0f * 0.5f);
+  CPDF_Point pt2(ptCenter.x + 2.0f, ptCenter.y + 2.0f * 0.5f);
+  CPDF_Point pt3(ptCenter.x, ptCenter.y - 3.0f * 0.5f);
 
-	CFX_PathData path;
+  CFX_PathData path;
 
-	path.SetPointCount(4);
-	path.SetPoint(0, pt1.x, pt1.y, FXPT_MOVETO);
-	path.SetPoint(1, pt2.x, pt2.y, FXPT_LINETO);
-	path.SetPoint(2, pt3.x, pt3.y, FXPT_LINETO);
-	path.SetPoint(3, pt1.x, pt1.y, FXPT_LINETO);
+  path.SetPointCount(4);
+  path.SetPoint(0, pt1.x, pt1.y, FXPT_MOVETO);
+  path.SetPoint(1, pt2.x, pt2.y, FXPT_LINETO);
+  path.SetPoint(2, pt3.x, pt3.y, FXPT_LINETO);
+  path.SetPoint(3, pt1.x, pt1.y, FXPT_LINETO);
 
-	pDevice->DrawPath(&path, pUser2Device, NULL,
-		CPWL_Utils::PWLColorToFXColor(GetTextColor(),GetTransparency()),
-		0, FXFILL_ALTERNATE);
+  pDevice->DrawPath(
+      &path, pUser2Device, NULL,
+      CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), 0,
+      FXFILL_ALTERNATE);
 }
 
-CPDF_Rect CPWL_Note_Options::GetContentRect() const
-{
-	ASSERT(m_pText != NULL);
+CPDF_Rect CPWL_Note_Options::GetContentRect() const {
+  ASSERT(m_pText != NULL);
 
-	CPDF_Rect rcText = m_pText->GetContentRect();
-	rcText.right += 15.0f;
-	return rcText;
+  CPDF_Rect rcText = m_pText->GetContentRect();
+  rcText.right += 15.0f;
+  return rcText;
 }
 
-/* ------------------------------- CPWL_Note_Edit ------------------------------ */
+/* ------------------------------- CPWL_Note_Edit ------------------------------
+ */
 
-CPWL_Note_Edit::CPWL_Note_Edit() : m_bEnableNotify(TRUE),
-	m_fOldItemHeight(0.0f),
-	m_bSizeChanged(FALSE),
-	m_fOldMin(0.0f),
-	m_fOldMax(0.0f)
-{
-}
+CPWL_Note_Edit::CPWL_Note_Edit()
+    : m_bEnableNotify(TRUE),
+      m_fOldItemHeight(0.0f),
+      m_bSizeChanged(FALSE),
+      m_fOldMin(0.0f),
+      m_fOldMax(0.0f) {}
 
-CPWL_Note_Edit::~CPWL_Note_Edit()
-{
+CPWL_Note_Edit::~CPWL_Note_Edit() {}
+
+void CPWL_Note_Edit::RePosChildWnd() {
+  m_bEnableNotify = FALSE;
+  CPWL_Edit::RePosChildWnd();
+  m_bEnableNotify = TRUE;
+
+  m_fOldItemHeight = GetContentRect().Height();
 }
 
-void CPWL_Note_Edit::RePosChildWnd()
-{
-	m_bEnableNotify = FALSE;
-	CPWL_Edit::RePosChildWnd();
-	m_bEnableNotify = TRUE;
+void CPWL_Note_Edit::SetText(const FX_WCHAR* csText) {
+  m_bEnableNotify = FALSE;
+  CPWL_Edit::SetText(csText);
+  m_bEnableNotify = TRUE;
+  m_fOldItemHeight = GetContentRect().Height();
+}
 
-	m_fOldItemHeight = GetContentRect().Height();
-}
-
-void CPWL_Note_Edit::SetText(const FX_WCHAR* csText)
-{
-	m_bEnableNotify = FALSE;
-	CPWL_Edit::SetText(csText);
-	m_bEnableNotify = TRUE;
-	m_fOldItemHeight = GetContentRect().Height();
-}
-
-void CPWL_Note_Edit::OnSetFocus()
-{
-	m_bEnableNotify = FALSE;
-	CPWL_Edit::OnSetFocus();
-	m_bEnableNotify = TRUE;
+void CPWL_Note_Edit::OnSetFocus() {
+  m_bEnableNotify = FALSE;
+  CPWL_Edit::OnSetFocus();
+  m_bEnableNotify = TRUE;
 
-	EnableSpellCheck(TRUE);
+  EnableSpellCheck(TRUE);
 }
 
-void CPWL_Note_Edit::OnKillFocus()
-{
-	EnableSpellCheck(FALSE);
+void CPWL_Note_Edit::OnKillFocus() {
+  EnableSpellCheck(FALSE);
 
-	if (CPWL_Wnd* pParent = GetParentWindow())
-	{
-		if (CPWL_Wnd* pGrand = pParent->GetParentWindow())
-		{
-			ASSERT(pGrand->GetClassName() == "CPWL_NoteItem");
+  if (CPWL_Wnd* pParent = GetParentWindow()) {
+    if (CPWL_Wnd* pGrand = pParent->GetParentWindow()) {
+      ASSERT(pGrand->GetClassName() == "CPWL_NoteItem");
 
-			CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pGrand;
+      CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pGrand;
 
-			pNoteItem->OnContentsValidate();
-		}
-	}
+      pNoteItem->OnContentsValidate();
+    }
+  }
 
-	CPWL_Edit::OnKillFocus();
+  CPWL_Edit::OnKillFocus();
 }
 
-void CPWL_Note_Edit::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
-{
-	if (m_bEnableNotify)
-	{
-		if (wParam == SBT_VSCROLL)
-		{
-			switch (msg)
-			{
-			case PNM_SETSCROLLINFO:
-				if (PWL_SCROLL_INFO* pInfo = (PWL_SCROLL_INFO*)lParam)
-				{
-					if (!IsFloatEqual(pInfo->fContentMax, m_fOldMax) ||
-						!IsFloatEqual(pInfo->fContentMin, m_fOldMin))
-					{
-						m_bSizeChanged = TRUE;
-						if (CPWL_Wnd * pParent = GetParentWindow())
-						{
-							pParent->OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
-						}
+void CPWL_Note_Edit::OnNotify(CPWL_Wnd* pWnd,
+                              FX_DWORD msg,
+                              intptr_t wParam,
+                              intptr_t lParam) {
+  if (m_bEnableNotify) {
+    if (wParam == SBT_VSCROLL) {
+      switch (msg) {
+        case PNM_SETSCROLLINFO:
+          if (PWL_SCROLL_INFO* pInfo = (PWL_SCROLL_INFO*)lParam) {
+            if (!IsFloatEqual(pInfo->fContentMax, m_fOldMax) ||
+                !IsFloatEqual(pInfo->fContentMin, m_fOldMin)) {
+              m_bSizeChanged = TRUE;
+              if (CPWL_Wnd* pParent = GetParentWindow()) {
+                pParent->OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
+              }
 
-						m_fOldMax = pInfo->fContentMax;
-						m_fOldMin = pInfo->fContentMin;
-						return;
-					}
-				}
-			}
-		}
-	}
+              m_fOldMax = pInfo->fContentMax;
+              m_fOldMin = pInfo->fContentMin;
+              return;
+            }
+          }
+      }
+    }
+  }
 
-	CPWL_Edit::OnNotify(pWnd, msg, wParam, lParam);
+  CPWL_Edit::OnNotify(pWnd, msg, wParam, lParam);
 
-	if (m_bEnableNotify)
-	{
-		switch (msg)
-		{
-		case PNM_SETCARETINFO:
-			if (PWL_CARET_INFO * pInfo = (PWL_CARET_INFO*)wParam)
-			{
-				PWL_CARET_INFO newInfo = *pInfo;
-				newInfo.bVisible = TRUE;
-				newInfo.ptHead = ChildToParent(pInfo->ptHead);
-				newInfo.ptFoot = ChildToParent(pInfo->ptFoot);
+  if (m_bEnableNotify) {
+    switch (msg) {
+      case PNM_SETCARETINFO:
+        if (PWL_CARET_INFO* pInfo = (PWL_CARET_INFO*)wParam) {
+          PWL_CARET_INFO newInfo = *pInfo;
+          newInfo.bVisible = TRUE;
+          newInfo.ptHead = ChildToParent(pInfo->ptHead);
+          newInfo.ptFoot = ChildToParent(pInfo->ptFoot);
 
-				if (CPWL_Wnd * pParent = GetParentWindow())
-				{
-					pParent->OnNotify(this, PNM_SETCARETINFO, (intptr_t)&newInfo, 0);
-				}
-			}
-			break;
-		}
-	}
+          if (CPWL_Wnd* pParent = GetParentWindow()) {
+            pParent->OnNotify(this, PNM_SETCARETINFO, (intptr_t)&newInfo, 0);
+          }
+        }
+        break;
+    }
+  }
 }
 
-FX_FLOAT CPWL_Note_Edit::GetItemHeight(FX_FLOAT fLimitWidth)
-{
-	if (fLimitWidth > 0)
-	{
-		if (!m_bSizeChanged)
-			return m_fOldItemHeight;
+FX_FLOAT CPWL_Note_Edit::GetItemHeight(FX_FLOAT fLimitWidth) {
+  if (fLimitWidth > 0) {
+    if (!m_bSizeChanged)
+      return m_fOldItemHeight;
 
-		m_bSizeChanged = FALSE;
+    m_bSizeChanged = FALSE;
 
-		EnableNotify(FALSE);
-		EnableRefresh(FALSE);
-		m_pEdit->EnableNotify(FALSE);
+    EnableNotify(FALSE);
+    EnableRefresh(FALSE);
+    m_pEdit->EnableNotify(FALSE);
 
-		Move(CPDF_Rect(0,0,fLimitWidth,0), TRUE, FALSE);
-		FX_FLOAT fRet = GetContentRect().Height();
+    Move(CPDF_Rect(0, 0, fLimitWidth, 0), TRUE, FALSE);
+    FX_FLOAT fRet = GetContentRect().Height();
 
-		m_pEdit->EnableNotify(TRUE);
-		EnableNotify(TRUE);
-		EnableRefresh(TRUE);
+    m_pEdit->EnableNotify(TRUE);
+    EnableNotify(TRUE);
+    EnableRefresh(TRUE);
 
-		return fRet;
-	}
+    return fRet;
+  }
 
-	return 0;
+  return 0;
 }
 
-FX_FLOAT CPWL_Note_Edit::GetItemLeftMargin()
-{
-	return POPUP_ITEM_TEXT_INDENT;
+FX_FLOAT CPWL_Note_Edit::GetItemLeftMargin() {
+  return POPUP_ITEM_TEXT_INDENT;
 }
 
-FX_FLOAT CPWL_Note_Edit::GetItemRightMargin()
-{
-	return POPUP_ITEM_TEXT_INDENT;
+FX_FLOAT CPWL_Note_Edit::GetItemRightMargin() {
+  return POPUP_ITEM_TEXT_INDENT;
 }
 
-/* -------------------------------- CPWL_Note_LBBox --------------------------------*/
+/* -------------------------------- CPWL_Note_LBBox
+ * --------------------------------*/
 
-CPWL_Note_LBBox::CPWL_Note_LBBox()
-{
-}
+CPWL_Note_LBBox::CPWL_Note_LBBox() {}
 
-CPWL_Note_LBBox::~CPWL_Note_LBBox()
-{
-}
+CPWL_Note_LBBox::~CPWL_Note_LBBox() {}
 
-void CPWL_Note_LBBox::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	CPDF_Rect rcClient = GetClientRect();
+void CPWL_Note_LBBox::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                         CPDF_Matrix* pUser2Device) {
+  CPDF_Rect rcClient = GetClientRect();
 
-	CFX_GraphStateData gsd;
-	gsd.m_LineWidth = 1.0f;
+  CFX_GraphStateData gsd;
+  gsd.m_LineWidth = 1.0f;
 
-	CFX_PathData pathCross;
+  CFX_PathData pathCross;
 
-	pathCross.SetPointCount(4);
-	pathCross.SetPoint(0, rcClient.left, rcClient.top, FXPT_MOVETO);
-	pathCross.SetPoint(1, rcClient.right, rcClient.bottom, FXPT_LINETO);
-	pathCross.SetPoint(2, rcClient.left, rcClient.bottom + rcClient.Height() * 0.5f, FXPT_MOVETO);
-	pathCross.SetPoint(3, rcClient.left + rcClient.Width() * 0.5f, rcClient.bottom, FXPT_LINETO);
+  pathCross.SetPointCount(4);
+  pathCross.SetPoint(0, rcClient.left, rcClient.top, FXPT_MOVETO);
+  pathCross.SetPoint(1, rcClient.right, rcClient.bottom, FXPT_LINETO);
+  pathCross.SetPoint(2, rcClient.left,
+                     rcClient.bottom + rcClient.Height() * 0.5f, FXPT_MOVETO);
+  pathCross.SetPoint(3, rcClient.left + rcClient.Width() * 0.5f,
+                     rcClient.bottom, FXPT_LINETO);
 
-	pDevice->DrawPath(&pathCross, pUser2Device, &gsd,
-		0, CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), FXFILL_ALTERNATE);
+  pDevice->DrawPath(
+      &pathCross, pUser2Device, &gsd, 0,
+      CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
+      FXFILL_ALTERNATE);
 }
 
-/* -------------------------------- CPWL_Note_RBBox --------------------------------*/
+/* -------------------------------- CPWL_Note_RBBox
+ * --------------------------------*/
 
-CPWL_Note_RBBox::CPWL_Note_RBBox()
-{
-}
+CPWL_Note_RBBox::CPWL_Note_RBBox() {}
 
-CPWL_Note_RBBox::~CPWL_Note_RBBox()
-{
-}
+CPWL_Note_RBBox::~CPWL_Note_RBBox() {}
 
-void CPWL_Note_RBBox::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	CPDF_Rect rcClient = GetClientRect();
+void CPWL_Note_RBBox::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                         CPDF_Matrix* pUser2Device) {
+  CPDF_Rect rcClient = GetClientRect();
 
-	CFX_GraphStateData gsd;
-	gsd.m_LineWidth = 1.0f;
+  CFX_GraphStateData gsd;
+  gsd.m_LineWidth = 1.0f;
 
-	CFX_PathData pathCross;
+  CFX_PathData pathCross;
 
-	pathCross.SetPointCount(4);
-	pathCross.SetPoint(0, rcClient.right, rcClient.top, FXPT_MOVETO);
-	pathCross.SetPoint(1, rcClient.left, rcClient.bottom, FXPT_LINETO);
-	pathCross.SetPoint(2, rcClient.right, rcClient.bottom + rcClient.Height() * 0.5f, FXPT_MOVETO);
-	pathCross.SetPoint(3, rcClient.left + rcClient.Width() * 0.5f, rcClient.bottom, FXPT_LINETO);
+  pathCross.SetPointCount(4);
+  pathCross.SetPoint(0, rcClient.right, rcClient.top, FXPT_MOVETO);
+  pathCross.SetPoint(1, rcClient.left, rcClient.bottom, FXPT_LINETO);
+  pathCross.SetPoint(2, rcClient.right,
+                     rcClient.bottom + rcClient.Height() * 0.5f, FXPT_MOVETO);
+  pathCross.SetPoint(3, rcClient.left + rcClient.Width() * 0.5f,
+                     rcClient.bottom, FXPT_LINETO);
 
-	pDevice->DrawPath(&pathCross, pUser2Device, &gsd,
-		0, CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), FXFILL_ALTERNATE);
+  pDevice->DrawPath(
+      &pathCross, pUser2Device, &gsd, 0,
+      CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
+      FXFILL_ALTERNATE);
 }
 
-/* --------------------------------- CPWL_Note_Icon ---------------------------------- */
+/* --------------------------------- CPWL_Note_Icon
+ * ---------------------------------- */
 
-CPWL_Note_Icon::CPWL_Note_Icon() : m_nType(0)
-{
-}
+CPWL_Note_Icon::CPWL_Note_Icon() : m_nType(0) {}
 
-CPWL_Note_Icon::~CPWL_Note_Icon()
-{
-}
+CPWL_Note_Icon::~CPWL_Note_Icon() {}
 
-void CPWL_Note_Icon::SetIconType(int32_t nType)
-{
-	m_nType = nType;
+void CPWL_Note_Icon::SetIconType(int32_t nType) {
+  m_nType = nType;
 }
 
-void CPWL_Note_Icon::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	CPWL_Utils::DrawIconAppStream(pDevice, pUser2Device, m_nType, GetClientRect(),
-		GetBackgroundColor(), PWL_DEFAULT_BLACKCOLOR, GetTransparency());
+void CPWL_Note_Icon::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                        CPDF_Matrix* pUser2Device) {
+  CPWL_Utils::DrawIconAppStream(pDevice, pUser2Device, m_nType, GetClientRect(),
+                                GetBackgroundColor(), PWL_DEFAULT_BLACKCOLOR,
+                                GetTransparency());
 }
 
-/* --------------------------------- CPWL_Note_CloseBox ---------------------------------- */
+/* --------------------------------- CPWL_Note_CloseBox
+ * ---------------------------------- */
 
-CPWL_Note_CloseBox::CPWL_Note_CloseBox() : m_bMouseDown(FALSE)
-{
-}
+CPWL_Note_CloseBox::CPWL_Note_CloseBox() : m_bMouseDown(FALSE) {}
 
-CPWL_Note_CloseBox::~CPWL_Note_CloseBox()
-{
-}
+CPWL_Note_CloseBox::~CPWL_Note_CloseBox() {}
 
-void CPWL_Note_CloseBox::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	CPWL_Button::DrawThisAppearance(pDevice, pUser2Device);
+void CPWL_Note_CloseBox::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                            CPDF_Matrix* pUser2Device) {
+  CPWL_Button::DrawThisAppearance(pDevice, pUser2Device);
 
-	CPDF_Rect rcClient = GetClientRect();
-	rcClient = CPWL_Utils::DeflateRect(rcClient, 2.0f);
+  CPDF_Rect rcClient = GetClientRect();
+  rcClient = CPWL_Utils::DeflateRect(rcClient, 2.0f);
 
-	CFX_GraphStateData gsd;
-	gsd.m_LineWidth = 1.0f;
+  CFX_GraphStateData gsd;
+  gsd.m_LineWidth = 1.0f;
 
-	CFX_PathData pathCross;
+  CFX_PathData pathCross;
 
-	if (m_bMouseDown)
-	{
-		rcClient.left += 0.5f;
-		rcClient.right += 0.5f;
-		rcClient.top -= 0.5f;
-		rcClient.bottom -= 0.5f;
-	}
+  if (m_bMouseDown) {
+    rcClient.left += 0.5f;
+    rcClient.right += 0.5f;
+    rcClient.top -= 0.5f;
+    rcClient.bottom -= 0.5f;
+  }
 
-	pathCross.SetPointCount(4);
-	pathCross.SetPoint(0, rcClient.left, rcClient.bottom, FXPT_MOVETO);
-	pathCross.SetPoint(1, rcClient.right, rcClient.top, FXPT_LINETO);
-	pathCross.SetPoint(2, rcClient.left, rcClient.top, FXPT_MOVETO);
-	pathCross.SetPoint(3, rcClient.right, rcClient.bottom, FXPT_LINETO);
+  pathCross.SetPointCount(4);
+  pathCross.SetPoint(0, rcClient.left, rcClient.bottom, FXPT_MOVETO);
+  pathCross.SetPoint(1, rcClient.right, rcClient.top, FXPT_LINETO);
+  pathCross.SetPoint(2, rcClient.left, rcClient.top, FXPT_MOVETO);
+  pathCross.SetPoint(3, rcClient.right, rcClient.bottom, FXPT_LINETO);
 
-	pDevice->DrawPath(&pathCross, pUser2Device, &gsd,
-		0, CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), FXFILL_ALTERNATE);
+  pDevice->DrawPath(
+      &pathCross, pUser2Device, &gsd, 0,
+      CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
+      FXFILL_ALTERNATE);
 }
 
-FX_BOOL CPWL_Note_CloseBox::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	SetBorderStyle(PBS_INSET);
-	InvalidateRect(NULL);
+FX_BOOL CPWL_Note_CloseBox::OnLButtonDown(const CPDF_Point& point,
+                                          FX_DWORD nFlag) {
+  SetBorderStyle(PBS_INSET);
+  InvalidateRect(NULL);
 
-	m_bMouseDown = TRUE;
+  m_bMouseDown = TRUE;
 
-	return CPWL_Button::OnLButtonDown(point,nFlag);
+  return CPWL_Button::OnLButtonDown(point, nFlag);
 }
 
-FX_BOOL	CPWL_Note_CloseBox::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	m_bMouseDown = FALSE;
+FX_BOOL CPWL_Note_CloseBox::OnLButtonUp(const CPDF_Point& point,
+                                        FX_DWORD nFlag) {
+  m_bMouseDown = FALSE;
 
-	SetBorderStyle(PBS_BEVELED);
-	InvalidateRect(NULL);
+  SetBorderStyle(PBS_BEVELED);
+  InvalidateRect(NULL);
 
-	return CPWL_Button::OnLButtonUp(point,nFlag);
+  return CPWL_Button::OnLButtonUp(point, nFlag);
 }
 
-/* ------------------------------ CPWL_Note_Contents ------------------------------- */
+/* ------------------------------ CPWL_Note_Contents
+ * ------------------------------- */
+
+CPWL_Note_Contents::CPWL_Note_Contents() : m_pEdit(NULL) {}
+
+CPWL_Note_Contents::~CPWL_Note_Contents() {}
 
-CPWL_Note_Contents::CPWL_Note_Contents() : m_pEdit(NULL)
-{
+CFX_ByteString CPWL_Note_Contents::GetClassName() const {
+  return "CPWL_Note_Contents";
 }
 
-CPWL_Note_Contents::~CPWL_Note_Contents()
-{
+void CPWL_Note_Contents::CreateChildWnd(const PWL_CREATEPARAM& cp) {
+  m_pEdit = new CPWL_Note_Edit;
+  PWL_CREATEPARAM ecp = cp;
+  ecp.pParentWnd = this;
+  ecp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_MULTILINE | PES_AUTORETURN |
+                PES_TEXTOVERFLOW | PES_UNDO | PES_SPELLCHECK;
+
+  m_pEdit->EnableNotify(FALSE);
+  m_pEdit->Create(ecp);
+  m_pEdit->EnableNotify(TRUE);
 }
 
-CFX_ByteString CPWL_Note_Contents::GetClassName() const
-{
-	return "CPWL_Note_Contents";
+void CPWL_Note_Contents::SetText(const CFX_WideString& sText) {
+  if (m_pEdit) {
+    m_pEdit->EnableNotify(FALSE);
+    m_pEdit->SetText(sText.c_str());
+    m_pEdit->EnableNotify(TRUE);
+    OnNotify(m_pEdit, PNM_NOTEEDITCHANGED, 0, 0);
+  }
 }
 
-void CPWL_Note_Contents::CreateChildWnd(const PWL_CREATEPARAM & cp)
-{
-	m_pEdit = new CPWL_Note_Edit;
-	PWL_CREATEPARAM ecp = cp;
-	ecp.pParentWnd = this;
-	ecp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_MULTILINE | PES_AUTORETURN | PES_TEXTOVERFLOW | PES_UNDO | PES_SPELLCHECK;
+CFX_WideString CPWL_Note_Contents::GetText() const {
+  if (m_pEdit)
+    return m_pEdit->GetText();
+
+  return L"";
+}
+
+CPWL_NoteItem* CPWL_Note_Contents::CreateSubItem() {
+  CPWL_NoteItem* pNoteItem = new CPWL_NoteItem;
+  PWL_CREATEPARAM icp = GetCreationParam();
+  icp.pParentWnd = this;
+  icp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_BACKGROUND;
+  pNoteItem->Create(icp);
+
+  pNoteItem->OnCreateNoteItem();
+
+  pNoteItem->ResetSubjectName(m_aChildren.GetSize() - 1);
+
+  FX_SYSTEMTIME st;
+  if (IFX_SystemHandler* pSH = GetSystemHandler())
+    st = pSH->GetLocalTime();
+  pNoteItem->SetDateTime(st);
+
+  pNoteItem->SetContents(L"");
+
+  OnNotify(pNoteItem, PNM_NOTEEDITCHANGED, 0, 0);
 
-	m_pEdit->EnableNotify(FALSE);
-	m_pEdit->Create(ecp);
-	m_pEdit->EnableNotify(TRUE);
+  return pNoteItem;
 }
 
-void CPWL_Note_Contents::SetText(const CFX_WideString& sText)
-{
-	if (m_pEdit)
-	{
-		m_pEdit->EnableNotify(FALSE);
-		m_pEdit->SetText(sText.c_str());
-		m_pEdit->EnableNotify(TRUE);
-		OnNotify(m_pEdit, PNM_NOTEEDITCHANGED, 0, 0);
-	}
+int32_t CPWL_Note_Contents::CountSubItems() const {
+  return m_aChildren.GetSize() - 1;
 }
 
-CFX_WideString CPWL_Note_Contents::GetText() const
-{
-	if (m_pEdit)
-		return m_pEdit->GetText();
+IPWL_NoteItem* CPWL_Note_Contents::GetSubItems(int32_t index) const {
+  int32_t nIndex = index + 1;
 
-	return L"";
+  if (nIndex > 0 && nIndex < m_aChildren.GetSize())
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(nIndex)) {
+      ASSERT(pChild->GetClassName() == "CPWL_NoteItem");
+      CPWL_NoteItem* pItem = (CPWL_NoteItem*)pChild;
+      return pItem;
+    }
+  return NULL;
 }
 
-CPWL_NoteItem* CPWL_Note_Contents::CreateSubItem()
-{
-	CPWL_NoteItem* pNoteItem = new CPWL_NoteItem;
-	PWL_CREATEPARAM icp = GetCreationParam();
-	icp.pParentWnd = this;
-	icp.dwFlags =  PWS_CHILD | PWS_VISIBLE | PWS_BACKGROUND;
-	pNoteItem->Create(icp);
+void CPWL_Note_Contents::DeleteSubItem(IPWL_NoteItem* pNoteItem) {
+  int32_t nIndex = GetItemIndex((CPWL_NoteItem*)pNoteItem);
 
-	pNoteItem->OnCreateNoteItem();
+  if (nIndex > 0) {
+    if (CPWL_NoteItem* pPWLNoteItem = (CPWL_NoteItem*)pNoteItem) {
+      pPWLNoteItem->KillFocus();
+      pPWLNoteItem->Destroy();
+      delete pPWLNoteItem;
+    }
 
-	pNoteItem->ResetSubjectName(m_aChildren.GetSize() - 1);
+    for (int32_t i = nIndex, sz = m_aChildren.GetSize(); i < sz; i++) {
+      if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+        ASSERT(pChild->GetClassName() == "CPWL_NoteItem");
+        CPWL_NoteItem* pItem = (CPWL_NoteItem*)pChild;
+        pItem->ResetSubjectName(i);
+      }
+    }
 
-	FX_SYSTEMTIME st;
-	if (IFX_SystemHandler* pSH = GetSystemHandler())
-		st = pSH->GetLocalTime();
-	pNoteItem->SetDateTime(st);
+    OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
+  }
+}
+
+IPWL_NoteItem* CPWL_Note_Contents::GetHitNoteItem(const CPDF_Point& point) {
+  CPDF_Point pt = ParentToChild(point);
 
-	pNoteItem->SetContents(L"");
+  for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+      if (pChild->GetClassName() == "CPWL_NoteItem") {
+        CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pChild;
+        if (IPWL_NoteItem* pRet = pNoteItem->GetHitNoteItem(pt))
+          return pRet;
+      }
+    }
+  }
+  return NULL;
+}
+
+void CPWL_Note_Contents::OnNotify(CPWL_Wnd* pWnd,
+                                  FX_DWORD msg,
+                                  intptr_t wParam,
+                                  intptr_t lParam) {
+  switch (msg) {
+    case PNM_NOTEEDITCHANGED: {
+      int32_t nIndex = GetItemIndex(pWnd);
+      if (nIndex < 0)
+        nIndex = 0;
+
+      m_pEdit->EnableNotify(FALSE);
+      ResetContent(nIndex);
+      m_pEdit->EnableNotify(TRUE);
+
+      for (int32_t i = nIndex + 1, sz = m_aChildren.GetSize(); i < sz; i++) {
+        if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
+          pChild->OnNotify(this, PNM_NOTERESET, 0, 0);
+      }
+
+      if (CPWL_Wnd* pParent = GetParentWindow()) {
+        pParent->OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
+      }
+    }
+      return;
+    case PNM_SCROLLWINDOW:
+      SetScrollPos(CPDF_Point(0.0f, *(FX_FLOAT*)lParam));
+      ResetFace();
+      InvalidateRect(NULL);
+      return;
+    case PNM_SETCARETINFO:
+      if (PWL_CARET_INFO* pInfo = (PWL_CARET_INFO*)wParam) {
+        PWL_CARET_INFO newInfo = *pInfo;
+        newInfo.bVisible = TRUE;
+        newInfo.ptHead = ChildToParent(pInfo->ptHead);
+        newInfo.ptFoot = ChildToParent(pInfo->ptFoot);
+
+        if (CPWL_Wnd* pParent = GetParentWindow()) {
+          pParent->OnNotify(this, PNM_SETCARETINFO, (intptr_t)&newInfo, 0);
+        }
+      }
+      return;
+    case PNM_NOTERESET: {
+      m_pEdit->EnableNotify(FALSE);
+      ResetContent(0);
+      m_pEdit->EnableNotify(TRUE);
+
+      for (int32_t i = 1, sz = m_aChildren.GetSize(); i < sz; i++) {
+        if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
+          pChild->OnNotify(this, PNM_NOTERESET, 0, 0);
+      }
+
+      m_pEdit->EnableNotify(FALSE);
+      ResetContent(0);
+      m_pEdit->EnableNotify(TRUE);
+    }
+      return;
+  }
+
+  CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
+}
+
+FX_BOOL CPWL_Note_Contents::OnLButtonDown(const CPDF_Point& point,
+                                          FX_DWORD nFlag) {
+  if (CPWL_Wnd::OnLButtonDown(point, nFlag))
+    return TRUE;
+
+  if (!m_pEdit->IsFocused()) {
+    m_pEdit->SetFocus();
+  }
+
+  return TRUE;
+}
+
+void CPWL_Note_Contents::SetEditFocus(FX_BOOL bLast) {
+  if (!m_pEdit->IsFocused()) {
+    m_pEdit->SetFocus();
+    m_pEdit->SetCaret(bLast ? m_pEdit->GetTotalWords() : 0);
+  }
+}
+
+CPWL_Edit* CPWL_Note_Contents::GetEdit() const {
+  return m_pEdit;
+}
+
+void CPWL_Note_Contents::EnableModify(FX_BOOL bEnabled) {
+  if (!bEnabled)
+    m_pEdit->AddFlag(PWS_READONLY);
+  else
+    m_pEdit->RemoveFlag(PWS_READONLY);
+
+  for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+      if (pChild->GetClassName() == "CPWL_NoteItem") {
+        CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pChild;
+        pNoteItem->EnableModify(bEnabled);
+      }
+    }
+  }
+}
+
+void CPWL_Note_Contents::EnableRead(FX_BOOL bEnabled) {
+  if (!bEnabled)
+    m_pEdit->AddFlag(PES_NOREAD);
+  else
+    m_pEdit->RemoveFlag(PES_NOREAD);
+
+  for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+      if (pChild->GetClassName() == "CPWL_NoteItem") {
+        CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pChild;
+        pNoteItem->EnableRead(bEnabled);
+      }
+    }
+  }
+}
+
+/* ---------------------------------- CPWL_NoteItem
+ * ---------------------------------- */
+
+CPWL_NoteItem::CPWL_NoteItem()
+    : m_pSubject(NULL),
+      m_pDateTime(NULL),
+      m_pContents(NULL),
+      m_pPrivateData(NULL),
+      m_sAuthor(L""),
+      m_fOldItemHeight(0.0f),
+      m_bSizeChanged(FALSE),
+      m_bAllowModify(TRUE) {}
+
+CPWL_NoteItem::~CPWL_NoteItem() {}
+
+CFX_ByteString CPWL_NoteItem::GetClassName() const {
+  return "CPWL_NoteItem";
+}
+
+void CPWL_NoteItem::CreateChildWnd(const PWL_CREATEPARAM& cp) {
+  CPWL_Color sTextColor;
+
+  if (CPWL_Utils::IsBlackOrWhite(GetBackgroundColor()))
+    sTextColor = PWL_DEFAULT_WHITECOLOR;
+  else
+    sTextColor = PWL_DEFAULT_BLACKCOLOR;
+
+  m_pSubject = new CPWL_Label;
+  PWL_CREATEPARAM scp = cp;
+  scp.pParentWnd = this;
+  scp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_LEFT | PES_TOP;
+  scp.sTextColor = sTextColor;
+  m_pSubject->Create(scp);
+
+  m_pDateTime = new CPWL_Label;
+  PWL_CREATEPARAM dcp = cp;
+  dcp.pParentWnd = this;
+  dcp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_RIGHT | PES_TOP;
+  dcp.sTextColor = sTextColor;
+  m_pDateTime->Create(dcp);
+
+  m_pContents = new CPWL_Note_Contents;
+  PWL_CREATEPARAM ccp = cp;
+  ccp.pParentWnd = this;
+  // ccp.sBackgroundColor = PWL_DEFAULT_WHITECOLOR;
+  ccp.sBackgroundColor =
+      CPWL_Color(COLORTYPE_RGB, 240 / 255.0f, 240 / 255.0f, 240 / 255.0f);
+  ccp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BACKGROUND;
+  m_pContents->Create(ccp);
+  m_pContents->SetItemSpace(POPUP_ITEM_SPACE);
+  m_pContents->SetTopSpace(POPUP_ITEM_SPACE);
+  m_pContents->SetBottomSpace(POPUP_ITEM_SPACE);
+}
+
+void CPWL_NoteItem::RePosChildWnd() {
+  if (IsValid()) {
+    ASSERT(m_pSubject != NULL);
+    ASSERT(m_pDateTime != NULL);
+    ASSERT(m_pContents != NULL);
+
+    CPDF_Rect rcClient = GetClientRect();
+
+    CPDF_Rect rcSubject = rcClient;
+    rcSubject.left += POPUP_ITEM_TEXT_INDENT;
+    rcSubject.top = rcClient.top;
+    rcSubject.right =
+        PWL_MIN(rcSubject.left + m_pSubject->GetContentRect().Width() + 1.0f,
+                rcClient.right);
+    rcSubject.bottom = rcSubject.top - m_pSubject->GetContentRect().Height();
+    rcSubject.Normalize();
+    m_pSubject->Move(rcSubject, TRUE, FALSE);
+    m_pSubject->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcSubject));
+
+    CPDF_Rect rcDate = rcClient;
+    rcDate.right -= POPUP_ITEM_TEXT_INDENT;
+    rcDate.left =
+        PWL_MAX(rcDate.right - m_pDateTime->GetContentRect().Width() - 1.0f,
+                rcSubject.right);
+    rcDate.bottom = rcDate.top - m_pDateTime->GetContentRect().Height();
+    rcDate.Normalize();
+    m_pDateTime->Move(rcDate, TRUE, FALSE);
+    m_pDateTime->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcDate));
+
+    CPDF_Rect rcContents = rcClient;
+    rcContents.left += 1.0f;
+    rcContents.right -= 1.0f;
+    rcContents.top = rcDate.bottom - POPUP_ITEM_HEAD_BOTTOM;
+    rcContents.bottom += POPUP_ITEM_BOTTOMWIDTH;
+    rcContents.Normalize();
+    m_pContents->Move(rcContents, TRUE, FALSE);
+    m_pContents->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcContents));
+  }
+
+  SetClipRect(CPWL_Utils::InflateRect(GetWindowRect(), 1.0f));
+}
+
+void CPWL_NoteItem::SetPrivateData(void* pData) {
+  m_pPrivateData = pData;
+}
+
+void CPWL_NoteItem::SetBkColor(const CPWL_Color& color) {
+  CPWL_Color sBK = color;
+  SetBackgroundColor(sBK);
+
+  CPWL_Color sTextColor;
+
+  if (CPWL_Utils::IsBlackOrWhite(sBK))
+    sTextColor = PWL_DEFAULT_WHITECOLOR;
+  else
+    sTextColor = PWL_DEFAULT_BLACKCOLOR;
 
-	OnNotify(pNoteItem, PNM_NOTEEDITCHANGED, 0, 0);
+  SetTextColor(sTextColor);
+  if (m_pSubject)
+    m_pSubject->SetTextColor(sTextColor);
+  if (m_pDateTime)
+    m_pDateTime->SetTextColor(sTextColor);
 
-	return pNoteItem;
+  InvalidateRect(nullptr);
+
+  if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
+    pNotify->OnSetBkColor(this);
+  }
 }
 
-int32_t CPWL_Note_Contents::CountSubItems() const
-{
-	return m_aChildren.GetSize() - 1;
+void CPWL_NoteItem::SetSubjectName(const CFX_WideString& sName) {
+  if (m_pSubject) {
+    m_pSubject->SetText(sName.c_str());
+  }
+
+  if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
+    pNotify->OnSetSubjectName(this);
+  }
 }
 
-IPWL_NoteItem* CPWL_Note_Contents::GetSubItems(int32_t index) const
-{
-	int32_t nIndex = index + 1;
+void CPWL_NoteItem::SetAuthorName(const CFX_WideString& sName) {
+  m_sAuthor = sName;
+  ResetSubjectName(-1);
 
-	if (nIndex > 0 && nIndex < m_aChildren.GetSize())
-		if (CPWL_Wnd* pChild = m_aChildren.GetAt(nIndex))
-		{
-			ASSERT(pChild->GetClassName() == "CPWL_NoteItem");
-			CPWL_NoteItem* pItem = (CPWL_NoteItem*)pChild;
-			return pItem;
-		}
-	return NULL;
-}
-
-void CPWL_Note_Contents::DeleteSubItem(IPWL_NoteItem* pNoteItem)
-{
-	int32_t nIndex = GetItemIndex((CPWL_NoteItem*)pNoteItem);
-
-	if (nIndex > 0)
-	{
-		if (CPWL_NoteItem* pPWLNoteItem = (CPWL_NoteItem*)pNoteItem)
-		{
-			pPWLNoteItem->KillFocus();
-			pPWLNoteItem->Destroy();
-			delete pPWLNoteItem;
-		}
-
-		for (int32_t i=nIndex,sz=m_aChildren.GetSize(); i<sz; i++)
-		{
-			if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-			{
-				ASSERT(pChild->GetClassName() == "CPWL_NoteItem");
-				CPWL_NoteItem* pItem = (CPWL_NoteItem*)pChild;
-				pItem->ResetSubjectName(i);
-			}
-		}
-
-		OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
-	}
-}
-
-IPWL_NoteItem* CPWL_Note_Contents::GetHitNoteItem(const CPDF_Point& point)
-{
-	CPDF_Point pt = ParentToChild(point);
-
-	for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-	{
-		if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-		{
-			if (pChild->GetClassName() == "CPWL_NoteItem")
-			{
-				CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pChild;
-				if (IPWL_NoteItem* pRet = pNoteItem->GetHitNoteItem(pt))
-					return pRet;
-			}
-		}
-	}
-	return NULL;
-}
-
-void CPWL_Note_Contents::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
-{
-	switch (msg)
-	{
-	case PNM_NOTEEDITCHANGED:
-		{
-			int32_t nIndex = GetItemIndex(pWnd);
-			if (nIndex < 0) nIndex = 0;
-
-			m_pEdit->EnableNotify(FALSE);
-			ResetContent(nIndex);
-			m_pEdit->EnableNotify(TRUE);
-
-			for (int32_t i=nIndex+1, sz=m_aChildren.GetSize(); i<sz; i++)
-			{
-				if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-					pChild->OnNotify(this, PNM_NOTERESET, 0, 0);
-			}
-
-			if (CPWL_Wnd * pParent = GetParentWindow())
-			{
-				pParent->OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
-			}
-		}
-		return;
-	case PNM_SCROLLWINDOW:
-		SetScrollPos(CPDF_Point(0.0f, *(FX_FLOAT*)lParam));
-		ResetFace();
-		InvalidateRect(NULL);
-		return;
-	case PNM_SETCARETINFO:
-		if (PWL_CARET_INFO * pInfo = (PWL_CARET_INFO*)wParam)
-		{
-			PWL_CARET_INFO newInfo = *pInfo;
-			newInfo.bVisible = TRUE;
-			newInfo.ptHead = ChildToParent(pInfo->ptHead);
-			newInfo.ptFoot = ChildToParent(pInfo->ptFoot);
-
-			if (CPWL_Wnd * pParent = GetParentWindow())
-			{
-				pParent->OnNotify(this, PNM_SETCARETINFO, (intptr_t)&newInfo, 0);
-			}
-		}
-		return;
-	case PNM_NOTERESET:
-		{
-			m_pEdit->EnableNotify(FALSE);
-			ResetContent(0);
-			m_pEdit->EnableNotify(TRUE);
-
-			for (int32_t i=1, sz=m_aChildren.GetSize(); i<sz; i++)
-			{
-				if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-					pChild->OnNotify(this, PNM_NOTERESET, 0, 0);
-			}
-
-			m_pEdit->EnableNotify(FALSE);
-			ResetContent(0);
-			m_pEdit->EnableNotify(TRUE);
-		}
-		return;
-	}
-
-	CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
-}
-
-FX_BOOL	CPWL_Note_Contents::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	if (CPWL_Wnd::OnLButtonDown(point,nFlag)) return TRUE;
-
-	if (!m_pEdit->IsFocused())
-	{
-		m_pEdit->SetFocus();
-	}
-
-	return TRUE;
-}
-
-void CPWL_Note_Contents::SetEditFocus(FX_BOOL bLast)
-{
-	if (!m_pEdit->IsFocused())
-	{
-		m_pEdit->SetFocus();
-		m_pEdit->SetCaret(bLast ? m_pEdit->GetTotalWords() : 0);
-	}
-}
-
-CPWL_Edit* CPWL_Note_Contents::GetEdit() const
-{
-	return m_pEdit;
-}
-
-void CPWL_Note_Contents::EnableModify(FX_BOOL bEnabled)
-{
-	if (!bEnabled)
-		m_pEdit->AddFlag(PWS_READONLY);
-	else
-		m_pEdit->RemoveFlag(PWS_READONLY);
-
-	for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-	{
-		if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-		{
-			if (pChild->GetClassName() == "CPWL_NoteItem")
-			{
-				CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pChild;
-				pNoteItem->EnableModify(bEnabled);
-			}
-		}
-	}
-}
-
-void CPWL_Note_Contents::EnableRead(FX_BOOL bEnabled)
-{
-	if (!bEnabled)
-		m_pEdit->AddFlag(PES_NOREAD);
-	else
-		m_pEdit->RemoveFlag(PES_NOREAD);
-
-	for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-	{
-		if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-		{
-			if (pChild->GetClassName() == "CPWL_NoteItem")
-			{
-				CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pChild;
-				pNoteItem->EnableRead(bEnabled);
-			}
-		}
-	}
-}
-
-/* ---------------------------------- CPWL_NoteItem ---------------------------------- */
-
-CPWL_NoteItem::CPWL_NoteItem() :
-	m_pSubject(NULL),
-	m_pDateTime(NULL),
-	m_pContents(NULL),
-	m_pPrivateData(NULL),
-	m_sAuthor(L""),
-	m_fOldItemHeight(0.0f),
-	m_bSizeChanged(FALSE),
-	m_bAllowModify(TRUE)
-{
-}
-
-CPWL_NoteItem::~CPWL_NoteItem()
-{
-}
-
-CFX_ByteString CPWL_NoteItem::GetClassName() const
-{
-	return "CPWL_NoteItem";
-}
-
-void CPWL_NoteItem::CreateChildWnd(const PWL_CREATEPARAM & cp)
-{
-	CPWL_Color sTextColor;
-
-	if (CPWL_Utils::IsBlackOrWhite(GetBackgroundColor()))
-		sTextColor = PWL_DEFAULT_WHITECOLOR;
-	else
-		sTextColor = PWL_DEFAULT_BLACKCOLOR;
-
-	m_pSubject = new CPWL_Label;
-	PWL_CREATEPARAM scp = cp;
-	scp.pParentWnd = this;
-	scp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_LEFT | PES_TOP;
-	scp.sTextColor = sTextColor;
-	m_pSubject->Create(scp);
-
-	m_pDateTime = new CPWL_Label;
-	PWL_CREATEPARAM dcp = cp;
-	dcp.pParentWnd = this;
-	dcp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_RIGHT | PES_TOP;
-	dcp.sTextColor = sTextColor;
-	m_pDateTime->Create(dcp);
-
-	m_pContents = new CPWL_Note_Contents;
-	PWL_CREATEPARAM ccp = cp;
-	ccp.pParentWnd = this;
-	//ccp.sBackgroundColor = PWL_DEFAULT_WHITECOLOR;
-	ccp.sBackgroundColor = CPWL_Color(COLORTYPE_RGB, 240/255.0f, 240/255.0f, 240/255.0f);
-	ccp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BACKGROUND;
-	m_pContents->Create(ccp);
-	m_pContents->SetItemSpace(POPUP_ITEM_SPACE);
-	m_pContents->SetTopSpace(POPUP_ITEM_SPACE);
-	m_pContents->SetBottomSpace(POPUP_ITEM_SPACE);
-}
-
-void CPWL_NoteItem::RePosChildWnd()
-{
-	if (IsValid())
-	{
-		ASSERT(m_pSubject != NULL);
-		ASSERT(m_pDateTime != NULL);
-		ASSERT(m_pContents != NULL);
-
-		CPDF_Rect rcClient = GetClientRect();
-
-		CPDF_Rect rcSubject = rcClient;
-		rcSubject.left += POPUP_ITEM_TEXT_INDENT;
-		rcSubject.top = rcClient.top;
-		rcSubject.right = PWL_MIN(rcSubject.left + m_pSubject->GetContentRect().Width() + 1.0f, rcClient.right);
-		rcSubject.bottom = rcSubject.top - m_pSubject->GetContentRect().Height();
-		rcSubject.Normalize();
-		m_pSubject->Move(rcSubject, TRUE, FALSE);
-		m_pSubject->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcSubject));
-
-		CPDF_Rect rcDate = rcClient;
-		rcDate.right -= POPUP_ITEM_TEXT_INDENT;
-		rcDate.left = PWL_MAX(rcDate.right - m_pDateTime->GetContentRect().Width() - 1.0f, rcSubject.right);
-		rcDate.bottom = rcDate.top - m_pDateTime->GetContentRect().Height();
-		rcDate.Normalize();
-		m_pDateTime->Move(rcDate, TRUE, FALSE);
-		m_pDateTime->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcDate));
-
-		CPDF_Rect rcContents = rcClient;
-		rcContents.left += 1.0f;
-		rcContents.right -= 1.0f;
-		rcContents.top = rcDate.bottom - POPUP_ITEM_HEAD_BOTTOM;
-		rcContents.bottom += POPUP_ITEM_BOTTOMWIDTH;
-		rcContents.Normalize();
-		m_pContents->Move(rcContents, TRUE, FALSE);
-		m_pContents->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcContents));
-	}
-
-	SetClipRect(CPWL_Utils::InflateRect(GetWindowRect(),1.0f));
-}
-
-void CPWL_NoteItem::SetPrivateData(void* pData)
-{
-	m_pPrivateData = pData;
-}
-
-void CPWL_NoteItem::SetBkColor(const CPWL_Color& color)
-{
-	CPWL_Color sBK = color;
-	SetBackgroundColor(sBK);
-
-	CPWL_Color sTextColor;
-
-	if (CPWL_Utils::IsBlackOrWhite(sBK))
-		sTextColor = PWL_DEFAULT_WHITECOLOR;
-	else
-		sTextColor = PWL_DEFAULT_BLACKCOLOR;
-
-	SetTextColor(sTextColor);
-	if (m_pSubject)
-		m_pSubject->SetTextColor(sTextColor);
-	if (m_pDateTime)
-		m_pDateTime->SetTextColor(sTextColor);
-
-	InvalidateRect(nullptr);
-
-	if (IPWL_NoteNotify* pNotify = GetNoteNotify())
-	{
-		pNotify->OnSetBkColor(this);
-	}
-}
-
-void CPWL_NoteItem::SetSubjectName(const CFX_WideString& sName)
-{
-	if (m_pSubject)
-	{
-		m_pSubject->SetText(sName.c_str());
-	}
-
-	if (IPWL_NoteNotify* pNotify = GetNoteNotify())
-	{
-		pNotify->OnSetSubjectName(this);
-	}
-}
-
-void CPWL_NoteItem::SetAuthorName(const CFX_WideString& sName)
-{
-	m_sAuthor = sName;
-	ResetSubjectName(-1);
-
-	if (IPWL_NoteNotify* pNotify = GetNoteNotify())
-	{
-		pNotify->OnSetAuthorName(this);
-	}
-}
+  if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
+    pNotify->OnSetAuthorName(this);
+  }
+}
 
-void CPWL_NoteItem::ResetSubjectName(int32_t nItemIndex)
-{
-	if (nItemIndex < 0)
-	{
-		if (CPWL_Wnd* pParent = GetParentWindow())
-		{
-			ASSERT(pParent->GetClassName() == "CPWL_Note_Contents");
+void CPWL_NoteItem::ResetSubjectName(int32_t nItemIndex) {
+  if (nItemIndex < 0) {
+    if (CPWL_Wnd* pParent = GetParentWindow()) {
+      ASSERT(pParent->GetClassName() == "CPWL_Note_Contents");
 
-			CPWL_Note_Contents* pContents = (CPWL_Note_Contents*)pParent;
-			nItemIndex = pContents->GetItemIndex(this);
-		}
-	}
+      CPWL_Note_Contents* pContents = (CPWL_Note_Contents*)pParent;
+      nItemIndex = pContents->GetItemIndex(this);
+    }
+  }
 
-	const CPWL_Note* pNote = GetNote();
-	ASSERT(pNote != NULL);
+  const CPWL_Note* pNote = GetNote();
+  ASSERT(pNote != NULL);
 
-	CFX_WideString sSubject;
-	sSubject.Format(pNote->GetReplyString().c_str(), nItemIndex);
+  CFX_WideString sSubject;
+  sSubject.Format(pNote->GetReplyString().c_str(), nItemIndex);
 
-	if (!m_sAuthor.IsEmpty())
-	{
-		sSubject += L" - ";
-		sSubject += m_sAuthor;
-	}
-	SetSubjectName(sSubject);
-	RePosChildWnd();
+  if (!m_sAuthor.IsEmpty()) {
+    sSubject += L" - ";
+    sSubject += m_sAuthor;
+  }
+  SetSubjectName(sSubject);
+  RePosChildWnd();
 }
 
-void CPWL_NoteItem::SetDateTime(FX_SYSTEMTIME time)
-{
-	m_dtNote = time;
+void CPWL_NoteItem::SetDateTime(FX_SYSTEMTIME time) {
+  m_dtNote = time;
 
-	CFX_WideString swTime;
-	swTime.Format(L"%04d-%02d-%02d %02d:%02d:%02d", time.wYear, time.wMonth, time.wDay, time.wHour, time.wMinute, time.wSecond);
-	if (m_pDateTime)
-	{
-		m_pDateTime->SetText(swTime.c_str());
-	}
+  CFX_WideString swTime;
+  swTime.Format(L"%04d-%02d-%02d %02d:%02d:%02d", time.wYear, time.wMonth,
+                time.wDay, time.wHour, time.wMinute, time.wSecond);
+  if (m_pDateTime) {
+    m_pDateTime->SetText(swTime.c_str());
+  }
 
-	RePosChildWnd();
+  RePosChildWnd();
 
-	if (IPWL_NoteNotify* pNotify = GetNoteNotify())
-	{
-		pNotify->OnSetDateTime(this);
-	}
+  if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
+    pNotify->OnSetDateTime(this);
+  }
 }
 
-void CPWL_NoteItem::SetContents(const CFX_WideString& sContents)
-{
-	if (m_pContents)
-	{
-		m_pContents->SetText(sContents);
-	}
+void CPWL_NoteItem::SetContents(const CFX_WideString& sContents) {
+  if (m_pContents) {
+    m_pContents->SetText(sContents);
+  }
 
-	if (IPWL_NoteNotify* pNotify = GetNoteNotify())
-	{
-		pNotify->OnSetContents(this);
-	}
+  if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
+    pNotify->OnSetContents(this);
+  }
 }
 
-CPWL_NoteItem* CPWL_NoteItem::GetParentNoteItem() const
-{
-	if (CPWL_Wnd* pParent = GetParentWindow())
-	{
-		if (CPWL_Wnd* pGrand = pParent->GetParentWindow())
-		{
-			ASSERT(pGrand->GetClassName() == "CPWL_NoteItem");
-			return (CPWL_NoteItem*)pGrand;
-		}
-	}
+CPWL_NoteItem* CPWL_NoteItem::GetParentNoteItem() const {
+  if (CPWL_Wnd* pParent = GetParentWindow()) {
+    if (CPWL_Wnd* pGrand = pParent->GetParentWindow()) {
+      ASSERT(pGrand->GetClassName() == "CPWL_NoteItem");
+      return (CPWL_NoteItem*)pGrand;
+    }
+  }
 
-	return NULL;
+  return NULL;
 }
 
-IPWL_NoteItem* CPWL_NoteItem::GetParentItem() const
-{
-	return GetParentNoteItem();
+IPWL_NoteItem* CPWL_NoteItem::GetParentItem() const {
+  return GetParentNoteItem();
 }
 
-CPWL_Edit* CPWL_NoteItem::GetEdit() const
-{
-	if (m_pContents)
-		return m_pContents->GetEdit();
-	return NULL;
+CPWL_Edit* CPWL_NoteItem::GetEdit() const {
+  if (m_pContents)
+    return m_pContents->GetEdit();
+  return NULL;
 }
 
-void* CPWL_NoteItem::GetPrivateData() const
-{
-	return m_pPrivateData;
+void* CPWL_NoteItem::GetPrivateData() const {
+  return m_pPrivateData;
 }
 
-CFX_WideString CPWL_NoteItem::GetAuthorName() const
-{
-	return m_sAuthor;
+CFX_WideString CPWL_NoteItem::GetAuthorName() const {
+  return m_sAuthor;
 }
 
-CPWL_Color CPWL_NoteItem::GetBkColor() const
-{
-	return GetBackgroundColor();
+CPWL_Color CPWL_NoteItem::GetBkColor() const {
+  return GetBackgroundColor();
 }
 
-CFX_WideString CPWL_NoteItem::GetContents() const
-{
-	if (m_pContents)
-		return m_pContents->GetText();
+CFX_WideString CPWL_NoteItem::GetContents() const {
+  if (m_pContents)
+    return m_pContents->GetText();
 
-	return L"";
+  return L"";
 }
 
-FX_SYSTEMTIME CPWL_NoteItem::GetDateTime() const
-{
-	return m_dtNote;
+FX_SYSTEMTIME CPWL_NoteItem::GetDateTime() const {
+  return m_dtNote;
 }
 
-CFX_WideString CPWL_NoteItem::GetSubjectName() const
-{
-	if (m_pSubject)
-		return m_pSubject->GetText();
+CFX_WideString CPWL_NoteItem::GetSubjectName() const {
+  if (m_pSubject)
+    return m_pSubject->GetText();
 
-	return L"";
+  return L"";
 }
 
-CPWL_NoteItem* CPWL_NoteItem::CreateNoteItem()
-{
-	if (m_pContents)
-		return m_pContents->CreateSubItem();
+CPWL_NoteItem* CPWL_NoteItem::CreateNoteItem() {
+  if (m_pContents)
+    return m_pContents->CreateSubItem();
 
-	return NULL;
+  return NULL;
 }
 
-IPWL_NoteItem* CPWL_NoteItem::CreateSubItem()
-{
-	return CreateNoteItem();
+IPWL_NoteItem* CPWL_NoteItem::CreateSubItem() {
+  return CreateNoteItem();
 }
 
-int32_t CPWL_NoteItem::CountSubItems() const
-{
-	if (m_pContents)
-		return m_pContents->CountSubItems();
+int32_t CPWL_NoteItem::CountSubItems() const {
+  if (m_pContents)
+    return m_pContents->CountSubItems();
 
-	return 0;
+  return 0;
 }
 
-IPWL_NoteItem* CPWL_NoteItem::GetSubItems(int32_t index) const
-{
-	if (m_pContents)
-		return m_pContents->GetSubItems(index);
+IPWL_NoteItem* CPWL_NoteItem::GetSubItems(int32_t index) const {
+  if (m_pContents)
+    return m_pContents->GetSubItems(index);
 
-	return NULL;
+  return NULL;
 }
 
-void CPWL_NoteItem::DeleteSubItem(IPWL_NoteItem* pNoteItem)
-{
-	KillFocus();
+void CPWL_NoteItem::DeleteSubItem(IPWL_NoteItem* pNoteItem) {
+  KillFocus();
 
-	if (IPWL_NoteNotify* pNotify = GetNoteNotify())
-	{
-		pNotify->OnItemDelete(pNoteItem);
-	}
+  if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
+    pNotify->OnItemDelete(pNoteItem);
+  }
 
-	if (m_pContents)
-		m_pContents->DeleteSubItem(pNoteItem);
+  if (m_pContents)
+    m_pContents->DeleteSubItem(pNoteItem);
 }
 
-IPWL_NoteItem* CPWL_NoteItem::GetHitNoteItem(const CPDF_Point& point)
-{
-	CPDF_Point pt = ParentToChild(point);
+IPWL_NoteItem* CPWL_NoteItem::GetHitNoteItem(const CPDF_Point& point) {
+  CPDF_Point pt = ParentToChild(point);
 
-	if (WndHitTest(pt))
-	{
-		if (m_pContents)
-		{
-			if (IPWL_NoteItem* pNoteItem = m_pContents->GetHitNoteItem(pt))
-				return pNoteItem;
-		}
+  if (WndHitTest(pt)) {
+    if (m_pContents) {
+      if (IPWL_NoteItem* pNoteItem = m_pContents->GetHitNoteItem(pt))
+        return pNoteItem;
+    }
 
-		return this;
-	}
+    return this;
+  }
 
-	return NULL;
+  return NULL;
 }
 
-IPWL_NoteItem* CPWL_NoteItem::GetFocusedNoteItem() const
-{
-	if (const CPWL_Wnd* pWnd = GetFocused())
-	{
-		if (pWnd->GetClassName() == "CPWL_Edit")
-		{
-			if (CPWL_Wnd* pParent = pWnd->GetParentWindow())
-			{
-				ASSERT(pParent->GetClassName() == "CPWL_Note_Contents");
+IPWL_NoteItem* CPWL_NoteItem::GetFocusedNoteItem() const {
+  if (const CPWL_Wnd* pWnd = GetFocused()) {
+    if (pWnd->GetClassName() == "CPWL_Edit") {
+      if (CPWL_Wnd* pParent = pWnd->GetParentWindow()) {
+        ASSERT(pParent->GetClassName() == "CPWL_Note_Contents");
 
-				if (CPWL_Wnd* pGrand = pParent->GetParentWindow())
-				{
-					ASSERT(pGrand->GetClassName() == "CPWL_NoteItem");
-					return (CPWL_NoteItem*)pGrand;
-				}
-			}
-		}
-	}
+        if (CPWL_Wnd* pGrand = pParent->GetParentWindow()) {
+          ASSERT(pGrand->GetClassName() == "CPWL_NoteItem");
+          return (CPWL_NoteItem*)pGrand;
+        }
+      }
+    }
+  }
 
-	return NULL;
+  return NULL;
 }
 
-FX_FLOAT CPWL_NoteItem::GetItemHeight(FX_FLOAT fLimitWidth)
-{
-	if (fLimitWidth > 0)
-	{
-		if (!m_bSizeChanged)
-			return m_fOldItemHeight;
+FX_FLOAT CPWL_NoteItem::GetItemHeight(FX_FLOAT fLimitWidth) {
+  if (fLimitWidth > 0) {
+    if (!m_bSizeChanged)
+      return m_fOldItemHeight;
+
+    m_bSizeChanged = FALSE;
 
-		m_bSizeChanged = FALSE;
+    ASSERT(m_pSubject != NULL);
+    ASSERT(m_pDateTime != NULL);
+    ASSERT(m_pContents != NULL);
 
-		ASSERT(m_pSubject != NULL);
-		ASSERT(m_pDateTime != NULL);
-		ASSERT(m_pContents != NULL);
+    FX_FLOAT fRet = m_pDateTime->GetContentRect().Height();
+    FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
+    if (fLimitWidth > fBorderWidth * 2)
+      fRet += m_pContents->GetContentsHeight(fLimitWidth - fBorderWidth * 2);
+    fRet += POPUP_ITEM_HEAD_BOTTOM + POPUP_ITEM_BOTTOMWIDTH + fBorderWidth * 2;
 
-		FX_FLOAT fRet = m_pDateTime->GetContentRect().Height();
-		FX_FLOAT fBorderWidth = (FX_FLOAT)GetBorderWidth();
-		if (fLimitWidth > fBorderWidth * 2)
-			fRet += m_pContents->GetContentsHeight(fLimitWidth - fBorderWidth * 2);
-		fRet += POPUP_ITEM_HEAD_BOTTOM + POPUP_ITEM_BOTTOMWIDTH + fBorderWidth * 2;
+    return m_fOldItemHeight = fRet;
+  }
 
-		return m_fOldItemHeight = fRet;
-	}
+  return 0;
+}
 
-	return 0;
+FX_FLOAT CPWL_NoteItem::GetItemLeftMargin() {
+  return POPUP_ITEM_SIDEMARGIN;
 }
 
-FX_FLOAT CPWL_NoteItem::GetItemLeftMargin()
-{
-	return POPUP_ITEM_SIDEMARGIN;
+FX_FLOAT CPWL_NoteItem::GetItemRightMargin() {
+  return POPUP_ITEM_SIDEMARGIN;
 }
 
-FX_FLOAT CPWL_NoteItem::GetItemRightMargin()
-{
-	return POPUP_ITEM_SIDEMARGIN;
+FX_BOOL CPWL_NoteItem::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) {
+  if (!m_pContents->WndHitTest(m_pContents->ParentToChild(point))) {
+    SetNoteFocus(FALSE);
+  }
+
+  CPWL_Wnd::OnLButtonDown(point, nFlag);
+
+  return TRUE;
+}
+
+FX_BOOL CPWL_NoteItem::OnRButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
+  if (!m_pContents->WndHitTest(m_pContents->ParentToChild(point))) {
+    SetNoteFocus(FALSE);
+    PopupNoteItemMenu(point);
+
+    return TRUE;
+  }
+
+  return CPWL_Wnd::OnRButtonUp(point, nFlag);
 }
 
-FX_BOOL	CPWL_NoteItem::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag)
-{
-	if (!m_pContents->WndHitTest(m_pContents->ParentToChild(point)))
-	{
-		SetNoteFocus(FALSE);
-	}
+void CPWL_NoteItem::OnNotify(CPWL_Wnd* pWnd,
+                             FX_DWORD msg,
+                             intptr_t wParam,
+                             intptr_t lParam) {
+  switch (msg) {
+    case PNM_NOTEEDITCHANGED:
+      m_bSizeChanged = TRUE;
 
-	CPWL_Wnd::OnLButtonDown(point,nFlag);
+      if (CPWL_Wnd* pParent = GetParentWindow()) {
+        pParent->OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
+      }
+      return;
+    case PNM_SETCARETINFO:
+      if (PWL_CARET_INFO* pInfo = (PWL_CARET_INFO*)wParam) {
+        PWL_CARET_INFO newInfo = *pInfo;
+        newInfo.bVisible = TRUE;
+        newInfo.ptHead = ChildToParent(pInfo->ptHead);
+        newInfo.ptFoot = ChildToParent(pInfo->ptFoot);
 
-	return TRUE;
+        if (CPWL_Wnd* pParent = GetParentWindow()) {
+          pParent->OnNotify(this, PNM_SETCARETINFO, (intptr_t)&newInfo, 0);
+        }
+      }
+      return;
+    case PNM_NOTERESET:
+      m_bSizeChanged = TRUE;
+      m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
+
+      return;
+  }
+
+  CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
 }
 
-FX_BOOL	CPWL_NoteItem::OnRButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	if (!m_pContents->WndHitTest(m_pContents->ParentToChild(point)))
-	{
-		SetNoteFocus(FALSE);
-		PopupNoteItemMenu(point);
+void CPWL_NoteItem::PopupNoteItemMenu(const CPDF_Point& point) {
+  if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
+    int32_t x, y;
+    PWLtoWnd(point, x, y);
+    if (IFX_SystemHandler* pSH = GetSystemHandler())
+      pSH->ClientToScreen(GetAttachedHWnd(), x, y);
+    pNotify->OnPopupMenu(this, x, y);
+  }
+}
 
-		return TRUE;
-	}
+const CPWL_Note* CPWL_NoteItem::GetNote() const {
+  if (const CPWL_Wnd* pRoot = GetRootWnd()) {
+    ASSERT(pRoot->GetClassName() == "CPWL_NoteItem");
+    CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pRoot;
+    if (pNoteItem->IsTopItem()) {
+      return (CPWL_Note*)pNoteItem;
+    }
+  }
 
-	return CPWL_Wnd::OnRButtonUp(point,nFlag);
+  return NULL;
 }
 
-void CPWL_NoteItem::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
-{
-	switch (msg)
-	{
-	case PNM_NOTEEDITCHANGED:
-		m_bSizeChanged = TRUE;
+IPWL_NoteNotify* CPWL_NoteItem::GetNoteNotify() const {
+  if (const CPWL_Note* pNote = GetNote())
+    return pNote->GetNoteNotify();
 
-		if (CPWL_Wnd* pParent = GetParentWindow())
-		{
-			pParent->OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
-		}
-		return;
-	case PNM_SETCARETINFO:
-		if (PWL_CARET_INFO * pInfo = (PWL_CARET_INFO*)wParam)
-		{
-			PWL_CARET_INFO newInfo = *pInfo;
-			newInfo.bVisible = TRUE;
-			newInfo.ptHead = ChildToParent(pInfo->ptHead);
-			newInfo.ptFoot = ChildToParent(pInfo->ptFoot);
-
-			if (CPWL_Wnd * pParent = GetParentWindow())
-			{
-				pParent->OnNotify(this, PNM_SETCARETINFO, (intptr_t)&newInfo, 0);
-			}
-		}
-		return;
-	case PNM_NOTERESET:
-		m_bSizeChanged = TRUE;
-		m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
+  return NULL;
+}
 
-		return;
-	}
+void CPWL_NoteItem::OnCreateNoteItem() {
+  if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
+    pNotify->OnItemCreate(this);
+  }
+}
 
-	CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
+void CPWL_NoteItem::OnContentsValidate() {
+  if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
+    pNotify->OnSetContents(this);
+  }
 }
 
-void CPWL_NoteItem::PopupNoteItemMenu(const CPDF_Point& point)
-{
-	if (IPWL_NoteNotify* pNotify = GetNoteNotify())
-	{
-		int32_t x,y;
-		PWLtoWnd(point, x, y);
-		if (IFX_SystemHandler* pSH = GetSystemHandler())
-			pSH->ClientToScreen(GetAttachedHWnd(), x, y);
-		pNotify->OnPopupMenu(this, x, y);
-	}
+void CPWL_NoteItem::SetNoteFocus(FX_BOOL bLast) {
+  m_pContents->SetEditFocus(bLast);
 }
 
-const CPWL_Note* CPWL_NoteItem::GetNote() const
-{
-	if (const CPWL_Wnd* pRoot = GetRootWnd())
-	{
-		ASSERT(pRoot->GetClassName() == "CPWL_NoteItem");
-		CPWL_NoteItem* pNoteItem = (CPWL_NoteItem*)pRoot;
-		if (pNoteItem->IsTopItem())
-		{
-			return (CPWL_Note*)pNoteItem;
-		}
-	}
+void CPWL_NoteItem::EnableModify(FX_BOOL bEnabled) {
+  m_pContents->EnableModify(bEnabled);
+  m_bAllowModify = bEnabled;
+}
 
-	return NULL;
+void CPWL_NoteItem::EnableRead(FX_BOOL bEnabled) {
+  m_pContents->EnableRead(bEnabled);
 }
 
-IPWL_NoteNotify* CPWL_NoteItem::GetNoteNotify() const
-{
-	if (const CPWL_Note* pNote = GetNote())
-		return pNote->GetNoteNotify();
-
-	return NULL;
-}
-
-void CPWL_NoteItem::OnCreateNoteItem()
-{
-	if (IPWL_NoteNotify* pNotify = GetNoteNotify())
-	{
-		pNotify->OnItemCreate(this);
-	}
-}
-
-void CPWL_NoteItem::OnContentsValidate()
-{
-	if (IPWL_NoteNotify* pNotify = GetNoteNotify())
-	{
-		pNotify->OnSetContents(this);
-	}
-}
-
-void CPWL_NoteItem::SetNoteFocus(FX_BOOL bLast)
-{
-	m_pContents->SetEditFocus(bLast);
-}
-
-void CPWL_NoteItem::EnableModify(FX_BOOL bEnabled)
-{
-	m_pContents->EnableModify(bEnabled);
-	m_bAllowModify = bEnabled;
-}
-
-void CPWL_NoteItem::EnableRead(FX_BOOL bEnabled)
-{
-	m_pContents->EnableRead(bEnabled);
-}
-
-/* ---------------------------------- CPWL_Note ---------------------------------- */
-
-CPWL_Note::CPWL_Note(IPopup_Note* pPopupNote, IPWL_NoteNotify* pNoteNotify, IPWL_NoteHandler* pNoteHandler) :
-	m_pAuthor(NULL),
-	m_pIcon(NULL),
-	m_pCloseBox(NULL),
-	m_pLBBox(NULL),
-	m_pRBBox(NULL),
-	m_pContentsBar(NULL),
-	m_pOptions(NULL),
-	m_pNoteNotify(pNoteNotify),
-	m_bResizing(FALSE),
-	m_rcCaption(0,0,0,0),
-	m_bEnalbleNotify(TRUE),
-	m_pPopupNote(pPopupNote)
-{
-}
-
-CPWL_Note::~CPWL_Note()
-{
-}
-
-IPWL_NoteItem* CPWL_Note::Reply()
-{
-	return CreateNoteItem();
-}
-
-void CPWL_Note::EnableNotify(FX_BOOL bEnabled)
-{
-	m_bEnalbleNotify = bEnabled;
-}
-
-void CPWL_Note::RePosChildWnd()
-{
-	RePosNoteChildren();
-	m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
-	ResetScrollBar();
-	m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
-	OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
-	if (const CPWL_Wnd* pWnd = GetFocused())
-	{
-		if (pWnd->GetClassName() == "CPWL_Edit")
-		{
-			CPWL_Edit* pEdit = (CPWL_Edit*)pWnd;
-			pEdit->SetCaret(pEdit->GetCaret());
-		}
-	}
-}
-
-FX_BOOL CPWL_Note::ResetScrollBar()
-{
-	FX_BOOL bScrollChanged = FALSE;
-
-	if (ScrollBarShouldVisible())
-	{
-		if (!m_pContentsBar->IsVisible())
-		{
-			m_pContentsBar->SetVisible(TRUE);
-			if (m_pContentsBar->IsVisible())
-			{
-				m_pContentsBar->InvalidateRect(NULL);
-				bScrollChanged = TRUE;
-			}
-		}
-	}
-	else
-	{
-		if (m_pContentsBar->IsVisible())
-		{
-			m_pContentsBar->SetVisible(FALSE);
-			m_pContentsBar->InvalidateRect(NULL);
-
-			bScrollChanged = TRUE;
-		}
-	}
-
-	if (bScrollChanged)
-	{
-		CPDF_Rect rcNote = GetClientRect();
-		CPDF_Rect rcContents = m_pContents->GetWindowRect();
-		rcContents.right = rcNote.right - 3.0f;
-		if (m_pContentsBar->IsVisible())
-			rcContents.right -= PWL_SCROLLBAR_WIDTH;
-		m_pContents->Move(rcContents, TRUE, TRUE);
-		m_pContents->SetScrollPos(CPDF_Point(0.0f,0.0f));
-		m_pContents->InvalidateRect(NULL);
-	}
-
-	return bScrollChanged;
-}
-
-FX_BOOL CPWL_Note::ScrollBarShouldVisible()
-{
-	CPDF_Rect rcContentsFact = m_pContents->GetScrollArea();
-	CPDF_Rect rcContentsClient = m_pContents->GetClientRect();
-
-	return rcContentsFact.Height() > rcContentsClient.Height();
-}
-
-void CPWL_Note::SetOptionsText(const CFX_WideString& sText)
-{
-	if (m_pOptions)
-		m_pOptions->SetText(sText);
-
-	RePosNoteChildren();
-}
-
-void CPWL_Note::RePosNoteChildren()
-{
-	if (m_bResizing) return;
-
-	m_bResizing = TRUE;
-
-	if (IsValid())
-	{
-		ASSERT(m_pSubject != NULL);
-		ASSERT(m_pDateTime != NULL);
-		ASSERT(m_pContents != NULL);
-		ASSERT(m_pAuthor != NULL);
-		ASSERT(m_pCloseBox != NULL);
-		ASSERT(m_pIcon != NULL);
-		ASSERT(m_pLBBox != NULL);
-		ASSERT(m_pRBBox != NULL);
-		ASSERT(m_pContentsBar != NULL);
-		ASSERT(m_pOptions != NULL);
-
-		CPDF_Rect rcClient = GetClientRect();
-
-		CPDF_Rect rcIcon = rcClient;
-		rcIcon.top -= 2.0f;
-		rcIcon.right = rcIcon.left + 14.0f;
-		rcIcon.bottom = rcIcon.top - 14.0f;
-		rcIcon.Normalize();
-		m_pIcon->Move(rcIcon, TRUE, FALSE);
-		m_pIcon->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcIcon));
-
-		CPDF_Rect rcCloseBox = rcClient;
-		rcCloseBox.right -= 1.0f;
-		rcCloseBox.top -= 1.0f;
-		rcCloseBox.left = rcCloseBox.right - 14.0f;
-		rcCloseBox.bottom = rcCloseBox.top - 14.0f;
-		rcCloseBox.Normalize();
-		m_pCloseBox->Move(rcCloseBox, TRUE, FALSE);
-		m_pCloseBox->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcCloseBox));
-
-		CPDF_Rect rcDate = rcClient;
-		rcDate.right = rcCloseBox.left - POPUP_ITEM_TEXT_INDENT;
-		rcDate.left = PWL_MAX(rcDate.right - m_pDateTime->GetContentRect().Width() - 1.0f, rcIcon.right + 1.0f);
-		rcDate.top = rcClient.top - 2.0f;
-		rcDate.bottom = rcDate.top - m_pDateTime->GetContentRect().Height();
-		rcDate.Normalize();
-		m_pDateTime->Move(rcDate, TRUE, FALSE);
-		m_pDateTime->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcDate));
-
-		CPDF_Rect rcSubject = rcClient;
-		rcSubject.top = rcClient.top - 2.0f;
-		rcSubject.left = rcIcon.right + POPUP_ITEM_TEXT_INDENT;
-		rcSubject.right = PWL_MIN(rcSubject.left + m_pSubject->GetContentRect().Width() + 1.0f, rcDate.left - 1.0f);
-		rcSubject.bottom = rcSubject.top - m_pSubject->GetContentRect().Height();
-		rcSubject.Normalize();
-		m_pSubject->Move(rcSubject, TRUE, FALSE);
-		m_pSubject->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcSubject));
-
-		CPDF_Rect rcOptions = rcClient;
-		rcOptions.left = PWL_MAX(rcOptions.right - m_pOptions->GetContentRect().Width(), rcIcon.right + 1.0f);
-		rcOptions.top = rcSubject.bottom - 4.0f;
-		rcOptions.bottom = rcOptions.top - m_pOptions->GetContentRect().Height();
-		rcOptions.Normalize();
-		m_pOptions->Move(rcOptions, TRUE, FALSE);
-		m_pOptions->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcOptions));
-
-		CPDF_Rect rcAuthor = rcClient;
-		rcAuthor.top = rcSubject.bottom - 4.0f;
-		rcAuthor.left = rcSubject.left;
-		rcAuthor.right = PWL_MIN(rcSubject.left + m_pAuthor->GetContentRect().Width() + 1.0f, rcOptions.left - 1.0f);
-		rcAuthor.bottom = rcAuthor.top - m_pAuthor->GetContentRect().Height();
-		rcAuthor.Normalize();
-		m_pAuthor->Move(rcAuthor, TRUE, FALSE);
-		m_pAuthor->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcAuthor));
-
-		CPDF_Rect rcLBBox = rcClient;
-		rcLBBox.top = rcLBBox.bottom + 7.0f;
-		rcLBBox.right = rcLBBox.left + 7.0f;
-		rcLBBox.Normalize();
-		m_pLBBox->Move(rcLBBox, TRUE, FALSE);
-		m_pLBBox->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcLBBox));
-
-		CPDF_Rect rcRBBox = rcClient;
-		rcRBBox.top = rcRBBox.bottom + 7.0f;
-		rcRBBox.left = rcRBBox.right - 7.0f;
-		rcRBBox.Normalize();
-		m_pRBBox->Move(rcRBBox, TRUE, FALSE);
-		m_pRBBox->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcRBBox));
-
-		CPDF_Rect rcContents = rcClient;
-		rcContents.top = rcAuthor.bottom - POPUP_ITEM_HEAD_BOTTOM;
-		rcContents.left += 3.0f;
-		rcContents.right -= 3.0f;
-		if (m_pContentsBar->IsVisible())
-			rcContents.right -= PWL_SCROLLBAR_WIDTH;
-		rcContents.bottom += 14.0f;
-		rcContents.Normalize();
-		m_pContents->Move(rcContents, FALSE, FALSE);
-		m_pContents->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcContents));
-
-		CPDF_Rect rcContentsBar = rcContents;
-		rcContentsBar.right = rcClient.right - 3.0f;
-		rcContentsBar.left = rcContentsBar.right - PWL_SCROLLBAR_WIDTH;
-		rcContentsBar.Normalize();
-		m_pContentsBar->Move(rcContentsBar, TRUE, FALSE);
-
-		m_rcCaption = rcClient;
-		m_rcCaption.bottom = rcContents.top;
-	}
-
-	m_bResizing = FALSE;
-}
-
-//0-normal / 1-caption / 2-leftbottom corner / 3-rightbottom corner / 4-close / 5-options
-int32_t CPWL_Note::NoteHitTest(const CPDF_Point& point) const
-{
-	ASSERT(m_pSubject != NULL);
-	ASSERT(m_pDateTime != NULL);
-	ASSERT(m_pContents != NULL);
-	ASSERT(m_pAuthor != NULL);
-	ASSERT(m_pIcon != NULL);
-	ASSERT(m_pContentsBar != NULL);
-
-	ASSERT(m_pCloseBox != NULL);
-	ASSERT(m_pLBBox != NULL);
-	ASSERT(m_pRBBox != NULL);
-	ASSERT(m_pOptions != NULL);
-
-	GetClientRect();
-
-	if (m_pSubject->WndHitTest(m_pSubject->ParentToChild(point))) return 1;
-	if (m_pDateTime->WndHitTest(m_pDateTime->ParentToChild(point))) return 1;
-	if (m_pAuthor->WndHitTest(m_pAuthor->ParentToChild(point))) return 1;
-	if (m_pIcon->WndHitTest(m_pIcon->ParentToChild(point))) return 1;
-
-	if (m_pContents->WndHitTest(m_pContents->ParentToChild(point))) return 0;
-	if (m_pContentsBar->WndHitTest(m_pContentsBar->ParentToChild(point))) return 0;
-
-	if (m_pCloseBox->WndHitTest(m_pCloseBox->ParentToChild(point))) return 4;
-	if (m_pLBBox->WndHitTest(m_pLBBox->ParentToChild(point))) return 2;
-	if (m_pRBBox->WndHitTest(m_pRBBox->ParentToChild(point))) return 3;
-	if (m_pOptions->WndHitTest(m_pOptions->ParentToChild(point))) return 5;
-
-	return 1;
-}
-
-void CPWL_Note::CreateChildWnd(const PWL_CREATEPARAM & cp)
-{
-	CPWL_NoteItem::CreateChildWnd(cp);
-
-	CPWL_Color sTextColor;
-
-	if (CPWL_Utils::IsBlackOrWhite(GetBackgroundColor()))
-		sTextColor = PWL_DEFAULT_WHITECOLOR;
-	else
-		sTextColor = PWL_DEFAULT_BLACKCOLOR;
-
-	m_pAuthor = new CPWL_Label;
-	PWL_CREATEPARAM acp = cp;
-	acp.pParentWnd = this;
-	acp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_LEFT | PES_TOP;
-	acp.sTextColor = sTextColor;
-	m_pAuthor->Create(acp);
-
-	m_pCloseBox = new CPWL_Note_CloseBox;
-	PWL_CREATEPARAM ccp = cp;
-	ccp.pParentWnd = this;
-	ccp.dwBorderWidth = 2;
-	ccp.nBorderStyle = PBS_BEVELED;
-	ccp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BORDER;
-	ccp.sTextColor = sTextColor;
-	m_pCloseBox->Create(ccp);
-
-	m_pIcon = new CPWL_Note_Icon;
-	PWL_CREATEPARAM icp = cp;
-	icp.pParentWnd = this;
-	icp.dwFlags = PWS_VISIBLE | PWS_CHILD;
-	m_pIcon->Create(icp);
-
-	m_pOptions = new CPWL_Note_Options;
-	PWL_CREATEPARAM ocp = cp;
-	ocp.pParentWnd = this;
-	ocp.dwFlags = PWS_CHILD | PWS_VISIBLE;
-	ocp.sTextColor = sTextColor;
-	m_pOptions->Create(ocp);
-
-	m_pLBBox = new CPWL_Note_LBBox;
-	PWL_CREATEPARAM lcp = cp;
-	lcp.pParentWnd = this;
-	lcp.dwFlags = PWS_VISIBLE | PWS_CHILD;
-	lcp.eCursorType = FXCT_NESW;
-	lcp.sTextColor = sTextColor;
-	m_pLBBox->Create(lcp);
-
-	m_pRBBox = new CPWL_Note_RBBox;
-	PWL_CREATEPARAM rcp = cp;
-	rcp.pParentWnd = this;
-	rcp.dwFlags = PWS_VISIBLE | PWS_CHILD;
-	rcp.eCursorType = FXCT_NWSE;
-	rcp.sTextColor = sTextColor;
-	m_pRBBox->Create(rcp);
-
-	m_pContentsBar = new CPWL_ScrollBar(SBT_VSCROLL);
-	PWL_CREATEPARAM scp = cp;
-	scp.pParentWnd = this;
-	scp.sBackgroundColor = CPWL_Color(COLORTYPE_RGB, 240/255.0f, 240/255.0f, 240/255.0f);
-	scp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_BACKGROUND;
-	m_pContentsBar->Create(scp);
-	m_pContentsBar->SetNotifyForever(TRUE);
-}
-
-void CPWL_Note::SetSubjectName(const CFX_WideString& sName)
-{
-	CPWL_NoteItem::SetSubjectName(sName);
-	RePosChildWnd();
-}
-
-void CPWL_Note::SetAuthorName(const CFX_WideString& sName)
-{
-	if (m_pAuthor)
-	{
-		m_pAuthor->SetText(sName.c_str());
-		RePosChildWnd();
-	}
-
-	if (IPWL_NoteNotify* pNotify = GetNoteNotify())
-	{
-		pNotify->OnSetAuthorName(this);
-	}
-}
-
-CFX_WideString CPWL_Note::GetAuthorName() const
-{
-	if (m_pAuthor)
-		return m_pAuthor->GetText();
-
-	return L"";
-}
-
-FX_BOOL CPWL_Note::OnMouseWheel(short zDelta, const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPDF_Point ptScroll = m_pContents->GetScrollPos();
-	CPDF_Rect rcScroll = m_pContents->GetScrollArea();
-	CPDF_Rect rcContents = m_pContents->GetClientRect();
-
-	if (rcScroll.top - rcScroll.bottom > rcContents.Height())
-	{
-		CPDF_Point ptNew = ptScroll;
-
-		if (zDelta > 0)
-			ptNew.y += 30;
-		else
-			ptNew.y -= 30;
-
-		if (ptNew.y > rcScroll.top)
-			ptNew.y = rcScroll.top;
-		if (ptNew.y < rcScroll.bottom + rcContents.Height())
-			ptNew.y = rcScroll.bottom + rcContents.Height();
-		if (ptNew.y < rcScroll.bottom)
-			ptNew.y = rcScroll.bottom;
-
-		if (ptNew.y != ptScroll.y)
-		{
-			m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
-			m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL, (intptr_t)&ptNew.y);
-			m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&ptNew.y);
-
-			return TRUE;
-		}
-	}
-
-	return FALSE;
-}
-
-void CPWL_Note::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
-{
-	switch (msg)
-	{
-	case PNM_NOTEEDITCHANGED:
-		{
-			CPDF_Rect rcScroll = m_pContents->GetScrollArea();
-
-
-			PWL_SCROLL_INFO sInfo;
-			sInfo.fContentMin = rcScroll.bottom;
-			sInfo.fContentMax = rcScroll.top;
-			sInfo.fPlateWidth = m_pContents->GetClientRect().Height();
-			sInfo.fSmallStep = 13.0f;
-			sInfo.fBigStep = sInfo.fPlateWidth;
-
-			if (FXSYS_memcmp(&m_OldScrollInfo, &sInfo, sizeof(PWL_SCROLL_INFO)) != 0)
-			{
-				FX_BOOL bScrollChanged = FALSE;
-
-				if (lParam < 3) //��ֹ��ѭ�� mantis:15759
-				{
-					bScrollChanged = ResetScrollBar();
-					if (bScrollChanged)
-					{
-						lParam++;
-						m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
-						OnNotify(this, PNM_NOTEEDITCHANGED, 0, lParam);
-					}
-				}
-
-				if (!bScrollChanged)
-				{
-					if (m_pContentsBar->IsVisible())
-					{
-						m_pContentsBar->OnNotify(pWnd, PNM_SETSCROLLINFO, SBT_VSCROLL, (intptr_t)&sInfo);
-						m_OldScrollInfo = sInfo;
-
-						CPDF_Point ptScroll = m_pContents->GetScrollPos();
-						CPDF_Point ptOld = ptScroll;
-
-						if (ptScroll.y > sInfo.fContentMax)
-							ptScroll.y = sInfo.fContentMax;
-						if (ptScroll.y < sInfo.fContentMin + sInfo.fPlateWidth)
-							ptScroll.y = sInfo.fContentMin + sInfo.fPlateWidth;
-						if (ptScroll.y < sInfo.fContentMin)
-							ptScroll.y = sInfo.fContentMin;
-
-						if (ptOld.y != ptScroll.y)
-						{
-							m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&ptScroll.y);
-							m_pContentsBar->InvalidateRect(NULL);
-							m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL, (intptr_t)&ptScroll.y);
-						}
-					}
-				}
-			}
-		}
-
-		m_pContents->InvalidateRect(NULL);
-
-		return;
-	case PNM_SCROLLWINDOW:
-		if (m_pContents)
-			m_pContents->OnNotify(pWnd, msg, wParam, lParam);
-		return;
-	case PNM_SETSCROLLPOS:
-		if (m_pContentsBar)
-			m_pContentsBar->OnNotify(pWnd,PNM_SETSCROLLPOS,wParam,lParam);
-		return;
-	}
-
-	if (msg == PNM_SETCARETINFO && IsValid())
-	{
-		if (PWL_CARET_INFO * pInfo = (PWL_CARET_INFO*)wParam)
-		{
-			if (m_pContents)
-			{
-				CPDF_Rect rcClient = m_pContents->GetClientRect();
-				if (pInfo->ptHead.y > rcClient.top)
-				{
-					CPDF_Point pt = m_pContents->OutToIn(pInfo->ptHead);
-					m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL, (intptr_t)&pt.y);
-
-					CPDF_Point ptScroll = m_pContents->GetScrollPos();
-					m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&ptScroll.y);
-
-					return;
-				}
-
-				if (pInfo->ptFoot.y < rcClient.bottom)
-				{
-					CPDF_Point pt = m_pContents->OutToIn(pInfo->ptFoot);
-					pt.y += rcClient.Height();
-					m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL, (intptr_t)&pt.y);
-
-					CPDF_Point ptScroll = m_pContents->GetScrollPos();
-					m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&ptScroll.y);
-
-					return;
-				}
-			}
-		}
-	}
-
-	CPWL_NoteItem::OnNotify(pWnd, msg, wParam, lParam);
-}
-
-void CPWL_Note::SetBkColor(const CPWL_Color& color)
-{
-	CPWL_NoteItem::SetBkColor(color);
-
-	CPWL_Color sBK = color;
-	CPWL_Color sTextColor;
-	if (CPWL_Utils::IsBlackOrWhite(sBK))
-		sTextColor = PWL_DEFAULT_WHITECOLOR;
-	else
-		sTextColor = PWL_DEFAULT_BLACKCOLOR;
-
-	if (m_pCloseBox)
-		m_pCloseBox->SetTextColor(sTextColor);
-	if (m_pAuthor)
-		m_pAuthor->SetTextColor(sTextColor);
-	if (m_pOptions)
-		m_pOptions->SetTextColor(sTextColor);
-	if (m_pLBBox)
-		m_pLBBox->SetTextColor(sTextColor);
-	if (m_pRBBox)
-		m_pRBBox->SetTextColor(sTextColor);
-}
-
-FX_BOOL	CPWL_Note::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag)
-{
-	if (m_pOptions->WndHitTest(m_pOptions->ParentToChild(point)))
-	{
-		if (IPWL_NoteNotify* pNotify = GetNoteNotify())
-		{
-			int32_t x, y;
-			PWLtoWnd(point, x, y);
-			if (IFX_SystemHandler* pSH = GetSystemHandler())
-				pSH->ClientToScreen(GetAttachedHWnd(), x, y);
-			KillFocus();
-			pNotify->OnPopupMenu(x, y);
-
-			return TRUE;
-		}
-	}
+/* ---------------------------------- CPWL_Note
+ * ---------------------------------- */
+
+CPWL_Note::CPWL_Note(IPopup_Note* pPopupNote,
+                     IPWL_NoteNotify* pNoteNotify,
+                     IPWL_NoteHandler* pNoteHandler)
+    : m_pAuthor(NULL),
+      m_pIcon(NULL),
+      m_pCloseBox(NULL),
+      m_pLBBox(NULL),
+      m_pRBBox(NULL),
+      m_pContentsBar(NULL),
+      m_pOptions(NULL),
+      m_pNoteNotify(pNoteNotify),
+      m_bResizing(FALSE),
+      m_rcCaption(0, 0, 0, 0),
+      m_bEnalbleNotify(TRUE),
+      m_pPopupNote(pPopupNote) {}
 
-	return CPWL_Wnd::OnLButtonDown(point,nFlag);
+CPWL_Note::~CPWL_Note() {}
+
+IPWL_NoteItem* CPWL_Note::Reply() {
+  return CreateNoteItem();
+}
+
+void CPWL_Note::EnableNotify(FX_BOOL bEnabled) {
+  m_bEnalbleNotify = bEnabled;
 }
 
-FX_BOOL	CPWL_Note::OnRButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	return CPWL_Wnd::OnRButtonUp(point,nFlag);
+void CPWL_Note::RePosChildWnd() {
+  RePosNoteChildren();
+  m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
+  ResetScrollBar();
+  m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
+  OnNotify(this, PNM_NOTEEDITCHANGED, 0, 0);
+  if (const CPWL_Wnd* pWnd = GetFocused()) {
+    if (pWnd->GetClassName() == "CPWL_Edit") {
+      CPWL_Edit* pEdit = (CPWL_Edit*)pWnd;
+      pEdit->SetCaret(pEdit->GetCaret());
+    }
+  }
+}
+
+FX_BOOL CPWL_Note::ResetScrollBar() {
+  FX_BOOL bScrollChanged = FALSE;
+
+  if (ScrollBarShouldVisible()) {
+    if (!m_pContentsBar->IsVisible()) {
+      m_pContentsBar->SetVisible(TRUE);
+      if (m_pContentsBar->IsVisible()) {
+        m_pContentsBar->InvalidateRect(NULL);
+        bScrollChanged = TRUE;
+      }
+    }
+  } else {
+    if (m_pContentsBar->IsVisible()) {
+      m_pContentsBar->SetVisible(FALSE);
+      m_pContentsBar->InvalidateRect(NULL);
+
+      bScrollChanged = TRUE;
+    }
+  }
+
+  if (bScrollChanged) {
+    CPDF_Rect rcNote = GetClientRect();
+    CPDF_Rect rcContents = m_pContents->GetWindowRect();
+    rcContents.right = rcNote.right - 3.0f;
+    if (m_pContentsBar->IsVisible())
+      rcContents.right -= PWL_SCROLLBAR_WIDTH;
+    m_pContents->Move(rcContents, TRUE, TRUE);
+    m_pContents->SetScrollPos(CPDF_Point(0.0f, 0.0f));
+    m_pContents->InvalidateRect(NULL);
+  }
+
+  return bScrollChanged;
+}
+
+FX_BOOL CPWL_Note::ScrollBarShouldVisible() {
+  CPDF_Rect rcContentsFact = m_pContents->GetScrollArea();
+  CPDF_Rect rcContentsClient = m_pContents->GetClientRect();
+
+  return rcContentsFact.Height() > rcContentsClient.Height();
+}
+
+void CPWL_Note::SetOptionsText(const CFX_WideString& sText) {
+  if (m_pOptions)
+    m_pOptions->SetText(sText);
+
+  RePosNoteChildren();
+}
+
+void CPWL_Note::RePosNoteChildren() {
+  if (m_bResizing)
+    return;
+
+  m_bResizing = TRUE;
+
+  if (IsValid()) {
+    ASSERT(m_pSubject != NULL);
+    ASSERT(m_pDateTime != NULL);
+    ASSERT(m_pContents != NULL);
+    ASSERT(m_pAuthor != NULL);
+    ASSERT(m_pCloseBox != NULL);
+    ASSERT(m_pIcon != NULL);
+    ASSERT(m_pLBBox != NULL);
+    ASSERT(m_pRBBox != NULL);
+    ASSERT(m_pContentsBar != NULL);
+    ASSERT(m_pOptions != NULL);
+
+    CPDF_Rect rcClient = GetClientRect();
+
+    CPDF_Rect rcIcon = rcClient;
+    rcIcon.top -= 2.0f;
+    rcIcon.right = rcIcon.left + 14.0f;
+    rcIcon.bottom = rcIcon.top - 14.0f;
+    rcIcon.Normalize();
+    m_pIcon->Move(rcIcon, TRUE, FALSE);
+    m_pIcon->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcIcon));
+
+    CPDF_Rect rcCloseBox = rcClient;
+    rcCloseBox.right -= 1.0f;
+    rcCloseBox.top -= 1.0f;
+    rcCloseBox.left = rcCloseBox.right - 14.0f;
+    rcCloseBox.bottom = rcCloseBox.top - 14.0f;
+    rcCloseBox.Normalize();
+    m_pCloseBox->Move(rcCloseBox, TRUE, FALSE);
+    m_pCloseBox->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcCloseBox));
+
+    CPDF_Rect rcDate = rcClient;
+    rcDate.right = rcCloseBox.left - POPUP_ITEM_TEXT_INDENT;
+    rcDate.left =
+        PWL_MAX(rcDate.right - m_pDateTime->GetContentRect().Width() - 1.0f,
+                rcIcon.right + 1.0f);
+    rcDate.top = rcClient.top - 2.0f;
+    rcDate.bottom = rcDate.top - m_pDateTime->GetContentRect().Height();
+    rcDate.Normalize();
+    m_pDateTime->Move(rcDate, TRUE, FALSE);
+    m_pDateTime->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcDate));
+
+    CPDF_Rect rcSubject = rcClient;
+    rcSubject.top = rcClient.top - 2.0f;
+    rcSubject.left = rcIcon.right + POPUP_ITEM_TEXT_INDENT;
+    rcSubject.right =
+        PWL_MIN(rcSubject.left + m_pSubject->GetContentRect().Width() + 1.0f,
+                rcDate.left - 1.0f);
+    rcSubject.bottom = rcSubject.top - m_pSubject->GetContentRect().Height();
+    rcSubject.Normalize();
+    m_pSubject->Move(rcSubject, TRUE, FALSE);
+    m_pSubject->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcSubject));
+
+    CPDF_Rect rcOptions = rcClient;
+    rcOptions.left =
+        PWL_MAX(rcOptions.right - m_pOptions->GetContentRect().Width(),
+                rcIcon.right + 1.0f);
+    rcOptions.top = rcSubject.bottom - 4.0f;
+    rcOptions.bottom = rcOptions.top - m_pOptions->GetContentRect().Height();
+    rcOptions.Normalize();
+    m_pOptions->Move(rcOptions, TRUE, FALSE);
+    m_pOptions->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcOptions));
+
+    CPDF_Rect rcAuthor = rcClient;
+    rcAuthor.top = rcSubject.bottom - 4.0f;
+    rcAuthor.left = rcSubject.left;
+    rcAuthor.right =
+        PWL_MIN(rcSubject.left + m_pAuthor->GetContentRect().Width() + 1.0f,
+                rcOptions.left - 1.0f);
+    rcAuthor.bottom = rcAuthor.top - m_pAuthor->GetContentRect().Height();
+    rcAuthor.Normalize();
+    m_pAuthor->Move(rcAuthor, TRUE, FALSE);
+    m_pAuthor->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcAuthor));
+
+    CPDF_Rect rcLBBox = rcClient;
+    rcLBBox.top = rcLBBox.bottom + 7.0f;
+    rcLBBox.right = rcLBBox.left + 7.0f;
+    rcLBBox.Normalize();
+    m_pLBBox->Move(rcLBBox, TRUE, FALSE);
+    m_pLBBox->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcLBBox));
+
+    CPDF_Rect rcRBBox = rcClient;
+    rcRBBox.top = rcRBBox.bottom + 7.0f;
+    rcRBBox.left = rcRBBox.right - 7.0f;
+    rcRBBox.Normalize();
+    m_pRBBox->Move(rcRBBox, TRUE, FALSE);
+    m_pRBBox->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcRBBox));
+
+    CPDF_Rect rcContents = rcClient;
+    rcContents.top = rcAuthor.bottom - POPUP_ITEM_HEAD_BOTTOM;
+    rcContents.left += 3.0f;
+    rcContents.right -= 3.0f;
+    if (m_pContentsBar->IsVisible())
+      rcContents.right -= PWL_SCROLLBAR_WIDTH;
+    rcContents.bottom += 14.0f;
+    rcContents.Normalize();
+    m_pContents->Move(rcContents, FALSE, FALSE);
+    m_pContents->SetVisible(CPWL_Utils::ContainsRect(rcClient, rcContents));
+
+    CPDF_Rect rcContentsBar = rcContents;
+    rcContentsBar.right = rcClient.right - 3.0f;
+    rcContentsBar.left = rcContentsBar.right - PWL_SCROLLBAR_WIDTH;
+    rcContentsBar.Normalize();
+    m_pContentsBar->Move(rcContentsBar, TRUE, FALSE);
+
+    m_rcCaption = rcClient;
+    m_rcCaption.bottom = rcContents.top;
+  }
+
+  m_bResizing = FALSE;
+}
+
+// 0-normal / 1-caption / 2-leftbottom corner / 3-rightbottom corner / 4-close /
+// 5-options
+int32_t CPWL_Note::NoteHitTest(const CPDF_Point& point) const {
+  ASSERT(m_pSubject != NULL);
+  ASSERT(m_pDateTime != NULL);
+  ASSERT(m_pContents != NULL);
+  ASSERT(m_pAuthor != NULL);
+  ASSERT(m_pIcon != NULL);
+  ASSERT(m_pContentsBar != NULL);
+
+  ASSERT(m_pCloseBox != NULL);
+  ASSERT(m_pLBBox != NULL);
+  ASSERT(m_pRBBox != NULL);
+  ASSERT(m_pOptions != NULL);
+
+  GetClientRect();
+
+  if (m_pSubject->WndHitTest(m_pSubject->ParentToChild(point)))
+    return 1;
+  if (m_pDateTime->WndHitTest(m_pDateTime->ParentToChild(point)))
+    return 1;
+  if (m_pAuthor->WndHitTest(m_pAuthor->ParentToChild(point)))
+    return 1;
+  if (m_pIcon->WndHitTest(m_pIcon->ParentToChild(point)))
+    return 1;
+
+  if (m_pContents->WndHitTest(m_pContents->ParentToChild(point)))
+    return 0;
+  if (m_pContentsBar->WndHitTest(m_pContentsBar->ParentToChild(point)))
+    return 0;
+
+  if (m_pCloseBox->WndHitTest(m_pCloseBox->ParentToChild(point)))
+    return 4;
+  if (m_pLBBox->WndHitTest(m_pLBBox->ParentToChild(point)))
+    return 2;
+  if (m_pRBBox->WndHitTest(m_pRBBox->ParentToChild(point)))
+    return 3;
+  if (m_pOptions->WndHitTest(m_pOptions->ParentToChild(point)))
+    return 5;
+
+  return 1;
+}
+
+void CPWL_Note::CreateChildWnd(const PWL_CREATEPARAM& cp) {
+  CPWL_NoteItem::CreateChildWnd(cp);
+
+  CPWL_Color sTextColor;
+
+  if (CPWL_Utils::IsBlackOrWhite(GetBackgroundColor()))
+    sTextColor = PWL_DEFAULT_WHITECOLOR;
+  else
+    sTextColor = PWL_DEFAULT_BLACKCOLOR;
+
+  m_pAuthor = new CPWL_Label;
+  PWL_CREATEPARAM acp = cp;
+  acp.pParentWnd = this;
+  acp.dwFlags = PWS_VISIBLE | PWS_CHILD | PES_LEFT | PES_TOP;
+  acp.sTextColor = sTextColor;
+  m_pAuthor->Create(acp);
+
+  m_pCloseBox = new CPWL_Note_CloseBox;
+  PWL_CREATEPARAM ccp = cp;
+  ccp.pParentWnd = this;
+  ccp.dwBorderWidth = 2;
+  ccp.nBorderStyle = PBS_BEVELED;
+  ccp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BORDER;
+  ccp.sTextColor = sTextColor;
+  m_pCloseBox->Create(ccp);
+
+  m_pIcon = new CPWL_Note_Icon;
+  PWL_CREATEPARAM icp = cp;
+  icp.pParentWnd = this;
+  icp.dwFlags = PWS_VISIBLE | PWS_CHILD;
+  m_pIcon->Create(icp);
+
+  m_pOptions = new CPWL_Note_Options;
+  PWL_CREATEPARAM ocp = cp;
+  ocp.pParentWnd = this;
+  ocp.dwFlags = PWS_CHILD | PWS_VISIBLE;
+  ocp.sTextColor = sTextColor;
+  m_pOptions->Create(ocp);
+
+  m_pLBBox = new CPWL_Note_LBBox;
+  PWL_CREATEPARAM lcp = cp;
+  lcp.pParentWnd = this;
+  lcp.dwFlags = PWS_VISIBLE | PWS_CHILD;
+  lcp.eCursorType = FXCT_NESW;
+  lcp.sTextColor = sTextColor;
+  m_pLBBox->Create(lcp);
+
+  m_pRBBox = new CPWL_Note_RBBox;
+  PWL_CREATEPARAM rcp = cp;
+  rcp.pParentWnd = this;
+  rcp.dwFlags = PWS_VISIBLE | PWS_CHILD;
+  rcp.eCursorType = FXCT_NWSE;
+  rcp.sTextColor = sTextColor;
+  m_pRBBox->Create(rcp);
+
+  m_pContentsBar = new CPWL_ScrollBar(SBT_VSCROLL);
+  PWL_CREATEPARAM scp = cp;
+  scp.pParentWnd = this;
+  scp.sBackgroundColor =
+      CPWL_Color(COLORTYPE_RGB, 240 / 255.0f, 240 / 255.0f, 240 / 255.0f);
+  scp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_BACKGROUND;
+  m_pContentsBar->Create(scp);
+  m_pContentsBar->SetNotifyForever(TRUE);
+}
+
+void CPWL_Note::SetSubjectName(const CFX_WideString& sName) {
+  CPWL_NoteItem::SetSubjectName(sName);
+  RePosChildWnd();
+}
+
+void CPWL_Note::SetAuthorName(const CFX_WideString& sName) {
+  if (m_pAuthor) {
+    m_pAuthor->SetText(sName.c_str());
+    RePosChildWnd();
+  }
+
+  if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
+    pNotify->OnSetAuthorName(this);
+  }
+}
+
+CFX_WideString CPWL_Note::GetAuthorName() const {
+  if (m_pAuthor)
+    return m_pAuthor->GetText();
+
+  return L"";
+}
+
+FX_BOOL CPWL_Note::OnMouseWheel(short zDelta,
+                                const CPDF_Point& point,
+                                FX_DWORD nFlag) {
+  CPDF_Point ptScroll = m_pContents->GetScrollPos();
+  CPDF_Rect rcScroll = m_pContents->GetScrollArea();
+  CPDF_Rect rcContents = m_pContents->GetClientRect();
+
+  if (rcScroll.top - rcScroll.bottom > rcContents.Height()) {
+    CPDF_Point ptNew = ptScroll;
+
+    if (zDelta > 0)
+      ptNew.y += 30;
+    else
+      ptNew.y -= 30;
+
+    if (ptNew.y > rcScroll.top)
+      ptNew.y = rcScroll.top;
+    if (ptNew.y < rcScroll.bottom + rcContents.Height())
+      ptNew.y = rcScroll.bottom + rcContents.Height();
+    if (ptNew.y < rcScroll.bottom)
+      ptNew.y = rcScroll.bottom;
+
+    if (ptNew.y != ptScroll.y) {
+      m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
+      m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL,
+                            (intptr_t)&ptNew.y);
+      m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL,
+                               (intptr_t)&ptNew.y);
+
+      return TRUE;
+    }
+  }
+
+  return FALSE;
+}
+
+void CPWL_Note::OnNotify(CPWL_Wnd* pWnd,
+                         FX_DWORD msg,
+                         intptr_t wParam,
+                         intptr_t lParam) {
+  switch (msg) {
+    case PNM_NOTEEDITCHANGED: {
+      CPDF_Rect rcScroll = m_pContents->GetScrollArea();
+
+      PWL_SCROLL_INFO sInfo;
+      sInfo.fContentMin = rcScroll.bottom;
+      sInfo.fContentMax = rcScroll.top;
+      sInfo.fPlateWidth = m_pContents->GetClientRect().Height();
+      sInfo.fSmallStep = 13.0f;
+      sInfo.fBigStep = sInfo.fPlateWidth;
+
+      if (FXSYS_memcmp(&m_OldScrollInfo, &sInfo, sizeof(PWL_SCROLL_INFO)) !=
+          0) {
+        FX_BOOL bScrollChanged = FALSE;
+
+        if (lParam < 3)  //��ֹ��ѭ�� mantis:15759
+        {
+          bScrollChanged = ResetScrollBar();
+          if (bScrollChanged) {
+            lParam++;
+            m_pContents->OnNotify(this, PNM_NOTERESET, 0, 0);
+            OnNotify(this, PNM_NOTEEDITCHANGED, 0, lParam);
+          }
+        }
+
+        if (!bScrollChanged) {
+          if (m_pContentsBar->IsVisible()) {
+            m_pContentsBar->OnNotify(pWnd, PNM_SETSCROLLINFO, SBT_VSCROLL,
+                                     (intptr_t)&sInfo);
+            m_OldScrollInfo = sInfo;
+
+            CPDF_Point ptScroll = m_pContents->GetScrollPos();
+            CPDF_Point ptOld = ptScroll;
+
+            if (ptScroll.y > sInfo.fContentMax)
+              ptScroll.y = sInfo.fContentMax;
+            if (ptScroll.y < sInfo.fContentMin + sInfo.fPlateWidth)
+              ptScroll.y = sInfo.fContentMin + sInfo.fPlateWidth;
+            if (ptScroll.y < sInfo.fContentMin)
+              ptScroll.y = sInfo.fContentMin;
+
+            if (ptOld.y != ptScroll.y) {
+              m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL,
+                                       (intptr_t)&ptScroll.y);
+              m_pContentsBar->InvalidateRect(NULL);
+              m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL,
+                                    (intptr_t)&ptScroll.y);
+            }
+          }
+        }
+      }
+    }
+
+      m_pContents->InvalidateRect(NULL);
+
+      return;
+    case PNM_SCROLLWINDOW:
+      if (m_pContents)
+        m_pContents->OnNotify(pWnd, msg, wParam, lParam);
+      return;
+    case PNM_SETSCROLLPOS:
+      if (m_pContentsBar)
+        m_pContentsBar->OnNotify(pWnd, PNM_SETSCROLLPOS, wParam, lParam);
+      return;
+  }
+
+  if (msg == PNM_SETCARETINFO && IsValid()) {
+    if (PWL_CARET_INFO* pInfo = (PWL_CARET_INFO*)wParam) {
+      if (m_pContents) {
+        CPDF_Rect rcClient = m_pContents->GetClientRect();
+        if (pInfo->ptHead.y > rcClient.top) {
+          CPDF_Point pt = m_pContents->OutToIn(pInfo->ptHead);
+          m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL,
+                                (intptr_t)&pt.y);
+
+          CPDF_Point ptScroll = m_pContents->GetScrollPos();
+          m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL,
+                                   (intptr_t)&ptScroll.y);
+
+          return;
+        }
+
+        if (pInfo->ptFoot.y < rcClient.bottom) {
+          CPDF_Point pt = m_pContents->OutToIn(pInfo->ptFoot);
+          pt.y += rcClient.Height();
+          m_pContents->OnNotify(this, PNM_SCROLLWINDOW, SBT_VSCROLL,
+                                (intptr_t)&pt.y);
+
+          CPDF_Point ptScroll = m_pContents->GetScrollPos();
+          m_pContentsBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL,
+                                   (intptr_t)&ptScroll.y);
+
+          return;
+        }
+      }
+    }
+  }
+
+  CPWL_NoteItem::OnNotify(pWnd, msg, wParam, lParam);
+}
+
+void CPWL_Note::SetBkColor(const CPWL_Color& color) {
+  CPWL_NoteItem::SetBkColor(color);
+
+  CPWL_Color sBK = color;
+  CPWL_Color sTextColor;
+  if (CPWL_Utils::IsBlackOrWhite(sBK))
+    sTextColor = PWL_DEFAULT_WHITECOLOR;
+  else
+    sTextColor = PWL_DEFAULT_BLACKCOLOR;
+
+  if (m_pCloseBox)
+    m_pCloseBox->SetTextColor(sTextColor);
+  if (m_pAuthor)
+    m_pAuthor->SetTextColor(sTextColor);
+  if (m_pOptions)
+    m_pOptions->SetTextColor(sTextColor);
+  if (m_pLBBox)
+    m_pLBBox->SetTextColor(sTextColor);
+  if (m_pRBBox)
+    m_pRBBox->SetTextColor(sTextColor);
 }
 
-const CPWL_Note* CPWL_Note::GetNote() const
-{
-	return this;
+FX_BOOL CPWL_Note::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) {
+  if (m_pOptions->WndHitTest(m_pOptions->ParentToChild(point))) {
+    if (IPWL_NoteNotify* pNotify = GetNoteNotify()) {
+      int32_t x, y;
+      PWLtoWnd(point, x, y);
+      if (IFX_SystemHandler* pSH = GetSystemHandler())
+        pSH->ClientToScreen(GetAttachedHWnd(), x, y);
+      KillFocus();
+      pNotify->OnPopupMenu(x, y);
+
+      return TRUE;
+    }
+  }
+
+  return CPWL_Wnd::OnLButtonDown(point, nFlag);
 }
 
-IPWL_NoteNotify* CPWL_Note::GetNoteNotify() const
-{
-	if (m_bEnalbleNotify)
-		return m_pNoteNotify;
+FX_BOOL CPWL_Note::OnRButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
+  return CPWL_Wnd::OnRButtonUp(point, nFlag);
+}
 
-	return NULL;
+const CPWL_Note* CPWL_Note::GetNote() const {
+  return this;
 }
 
-void CPWL_Note::SetIconType(int32_t nType)
-{
-	if (m_pIcon)
-		m_pIcon->SetIconType(nType);
+IPWL_NoteNotify* CPWL_Note::GetNoteNotify() const {
+  if (m_bEnalbleNotify)
+    return m_pNoteNotify;
+
+  return NULL;
 }
 
-void CPWL_Note::EnableModify(FX_BOOL bEnabled)
-{
-	m_pContents->EnableModify(bEnabled);
+void CPWL_Note::SetIconType(int32_t nType) {
+  if (m_pIcon)
+    m_pIcon->SetIconType(nType);
 }
 
-void CPWL_Note::EnableRead(FX_BOOL bEnabled)
-{
-	m_pContents->EnableRead(bEnabled);
+void CPWL_Note::EnableModify(FX_BOOL bEnabled) {
+  m_pContents->EnableModify(bEnabled);
 }
 
-CFX_WideString CPWL_Note::GetReplyString() const
-{
-	return m_sReplyString;
+void CPWL_Note::EnableRead(FX_BOOL bEnabled) {
+  m_pContents->EnableRead(bEnabled);
 }
 
-void CPWL_Note::SetReplyString(const CFX_WideString& string)
-{
-	m_sReplyString = string;
+CFX_WideString CPWL_Note::GetReplyString() const {
+  return m_sReplyString;
 }
 
+void CPWL_Note::SetReplyString(const CFX_WideString& string) {
+  m_sReplyString = string;
+}
diff --git a/fpdfsdk/src/pdfwindow/PWL_ScrollBar.cpp b/fpdfsdk/src/pdfwindow/PWL_ScrollBar.cpp
index 6d61705222..c762b4cd92 100644
--- a/fpdfsdk/src/pdfwindow/PWL_ScrollBar.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_ScrollBar.cpp
@@ -9,1295 +9,1201 @@
 #include "../../include/pdfwindow/PWL_ScrollBar.h"
 #include "../../include/pdfwindow/PWL_Utils.h"
 
-#define IsFloatZero(f)						((f) < 0.0001 && (f) > -0.0001)
-#define IsFloatBigger(fa,fb)				((fa) > (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatSmaller(fa,fb)				((fa) < (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatEqual(fa,fb)					IsFloatZero((fa)-(fb))
+#define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001)
+#define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb))
 
+/* ------------------------------- PWL_FLOATRANGE
+ * ------------------------------- */
 
-/* ------------------------------- PWL_FLOATRANGE ------------------------------- */
-
-PWL_FLOATRANGE::PWL_FLOATRANGE()
-{
-	Default();
+PWL_FLOATRANGE::PWL_FLOATRANGE() {
+  Default();
 }
 
-PWL_FLOATRANGE::PWL_FLOATRANGE(FX_FLOAT min,FX_FLOAT max)
-{
-	Set(min,max);
+PWL_FLOATRANGE::PWL_FLOATRANGE(FX_FLOAT min, FX_FLOAT max) {
+  Set(min, max);
 }
 
-void PWL_FLOATRANGE::Default()
-{
-	fMin = 0;
-	fMax = 0;
+void PWL_FLOATRANGE::Default() {
+  fMin = 0;
+  fMax = 0;
 }
 
-void PWL_FLOATRANGE::Set(FX_FLOAT min,FX_FLOAT max)
-{
-	if (min > max)
-	{
-		fMin = max;
-		fMax = min;
-	}
-	else
-	{
-		fMin = min;
-		fMax = max;
-	}
+void PWL_FLOATRANGE::Set(FX_FLOAT min, FX_FLOAT max) {
+  if (min > max) {
+    fMin = max;
+    fMax = min;
+  } else {
+    fMin = min;
+    fMax = max;
+  }
 }
 
-FX_BOOL	PWL_FLOATRANGE::In(FX_FLOAT x) const
-{
-	return (IsFloatBigger(x,fMin) || IsFloatEqual(x, fMin)) &&
-		(IsFloatSmaller(x, fMax) || IsFloatEqual(x, fMax));
+FX_BOOL PWL_FLOATRANGE::In(FX_FLOAT x) const {
+  return (IsFloatBigger(x, fMin) || IsFloatEqual(x, fMin)) &&
+         (IsFloatSmaller(x, fMax) || IsFloatEqual(x, fMax));
 }
 
-FX_FLOAT PWL_FLOATRANGE::GetWidth() const
-{
-	return fMax - fMin;
+FX_FLOAT PWL_FLOATRANGE::GetWidth() const {
+  return fMax - fMin;
 }
 
-/* ------------------------------- PWL_SCROLL_PRIVATEDATA ------------------------------- */
+/* ------------------------------- PWL_SCROLL_PRIVATEDATA
+ * ------------------------------- */
 
-PWL_SCROLL_PRIVATEDATA::PWL_SCROLL_PRIVATEDATA()
-{
-	Default();
+PWL_SCROLL_PRIVATEDATA::PWL_SCROLL_PRIVATEDATA() {
+  Default();
 }
 
-void PWL_SCROLL_PRIVATEDATA::Default()
-{
-	ScrollRange.Default();
-	fScrollPos = ScrollRange.fMin;
-	fClientWidth = 0;
-	fBigStep = 10;
-	fSmallStep = 1;
+void PWL_SCROLL_PRIVATEDATA::Default() {
+  ScrollRange.Default();
+  fScrollPos = ScrollRange.fMin;
+  fClientWidth = 0;
+  fBigStep = 10;
+  fSmallStep = 1;
 }
 
-void PWL_SCROLL_PRIVATEDATA::SetScrollRange(FX_FLOAT min,FX_FLOAT max)
-{
-	ScrollRange.Set(min,max);
+void PWL_SCROLL_PRIVATEDATA::SetScrollRange(FX_FLOAT min, FX_FLOAT max) {
+  ScrollRange.Set(min, max);
 
-	if (IsFloatSmaller(fScrollPos, ScrollRange.fMin))
-		fScrollPos = ScrollRange.fMin;
-	if (IsFloatBigger(fScrollPos, ScrollRange.fMax))
-		fScrollPos = ScrollRange.fMax;
+  if (IsFloatSmaller(fScrollPos, ScrollRange.fMin))
+    fScrollPos = ScrollRange.fMin;
+  if (IsFloatBigger(fScrollPos, ScrollRange.fMax))
+    fScrollPos = ScrollRange.fMax;
 }
 
-void PWL_SCROLL_PRIVATEDATA::SetClientWidth(FX_FLOAT width)
-{
-	fClientWidth = width;
+void PWL_SCROLL_PRIVATEDATA::SetClientWidth(FX_FLOAT width) {
+  fClientWidth = width;
 }
 
-void PWL_SCROLL_PRIVATEDATA::SetSmallStep(FX_FLOAT step)
-{
-	fSmallStep = step;
+void PWL_SCROLL_PRIVATEDATA::SetSmallStep(FX_FLOAT step) {
+  fSmallStep = step;
 }
 
-void PWL_SCROLL_PRIVATEDATA::SetBigStep(FX_FLOAT step)
-{
-	fBigStep = step;
+void PWL_SCROLL_PRIVATEDATA::SetBigStep(FX_FLOAT step) {
+  fBigStep = step;
 }
 
-FX_BOOL PWL_SCROLL_PRIVATEDATA::SetPos(FX_FLOAT pos)
-{
-	if (ScrollRange.In(pos))
-	{
-		fScrollPos = pos;
-		return TRUE;
-	}
-	return FALSE;
+FX_BOOL PWL_SCROLL_PRIVATEDATA::SetPos(FX_FLOAT pos) {
+  if (ScrollRange.In(pos)) {
+    fScrollPos = pos;
+    return TRUE;
+  }
+  return FALSE;
 }
 
-void PWL_SCROLL_PRIVATEDATA::AddSmall()
-{
-	if (!SetPos(fScrollPos + fSmallStep))
-		SetPos(ScrollRange.fMax);
+void PWL_SCROLL_PRIVATEDATA::AddSmall() {
+  if (!SetPos(fScrollPos + fSmallStep))
+    SetPos(ScrollRange.fMax);
 }
 
-void PWL_SCROLL_PRIVATEDATA::SubSmall()
-{
-	if (!SetPos(fScrollPos - fSmallStep))
-		SetPos(ScrollRange.fMin);
+void PWL_SCROLL_PRIVATEDATA::SubSmall() {
+  if (!SetPos(fScrollPos - fSmallStep))
+    SetPos(ScrollRange.fMin);
 }
 
-void PWL_SCROLL_PRIVATEDATA::AddBig()
-{
-	if (!SetPos(fScrollPos + fBigStep))
-		SetPos(ScrollRange.fMax);
+void PWL_SCROLL_PRIVATEDATA::AddBig() {
+  if (!SetPos(fScrollPos + fBigStep))
+    SetPos(ScrollRange.fMax);
 }
 
-void PWL_SCROLL_PRIVATEDATA::SubBig()
-{
-	if (!SetPos(fScrollPos - fBigStep))
-		SetPos(ScrollRange.fMin);
+void PWL_SCROLL_PRIVATEDATA::SubBig() {
+  if (!SetPos(fScrollPos - fBigStep))
+    SetPos(ScrollRange.fMin);
 }
 
-/* ------------------------------- CPWL_SBButton ------------------------------- */
+/* ------------------------------- CPWL_SBButton -------------------------------
+ */
 
-CPWL_SBButton::CPWL_SBButton(PWL_SCROLLBAR_TYPE eScrollBarType,PWL_SBBUTTON_TYPE eButtonType)
-{
-	m_eScrollBarType = eScrollBarType;
-	m_eSBButtonType = eButtonType;
+CPWL_SBButton::CPWL_SBButton(PWL_SCROLLBAR_TYPE eScrollBarType,
+                             PWL_SBBUTTON_TYPE eButtonType) {
+  m_eScrollBarType = eScrollBarType;
+  m_eSBButtonType = eButtonType;
 
-	m_bMouseDown = FALSE;
+  m_bMouseDown = FALSE;
 }
 
-CPWL_SBButton::~CPWL_SBButton()
-{
-
-}
+CPWL_SBButton::~CPWL_SBButton() {}
 
-CFX_ByteString CPWL_SBButton::GetClassName() const
-{
-	return "CPWL_SBButton";
+CFX_ByteString CPWL_SBButton::GetClassName() const {
+  return "CPWL_SBButton";
 }
 
-void CPWL_SBButton::OnCreate(PWL_CREATEPARAM & cp)
-{
-	cp.eCursorType = FXCT_ARROW;
+void CPWL_SBButton::OnCreate(PWL_CREATEPARAM& cp) {
+  cp.eCursorType = FXCT_ARROW;
 }
 
-void CPWL_SBButton::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream)
-{
-	CPWL_Wnd::GetThisAppearanceStream(sAppStream);
-
-	if (!IsVisible()) return;
-
-	CFX_ByteTextBuf sButton;
-
-	CPDF_Rect rectWnd = GetWindowRect();
-
-	if (rectWnd.IsEmpty()) return;
-
-	sAppStream << "q\n";
-
-	CPDF_Point ptCenter = GetCenterPoint();
-
-	switch (m_eScrollBarType)
-	{
-		case SBT_HSCROLL:
-			switch (m_eSBButtonType)
-			{
-				case PSBT_MIN:
-					{
-						CPDF_Point pt1(ptCenter.x - PWL_TRIANGLE_HALFLEN * 0.5f,ptCenter.y);
-						CPDF_Point pt2(ptCenter.x + PWL_TRIANGLE_HALFLEN * 0.5f,ptCenter.y + PWL_TRIANGLE_HALFLEN);
-						CPDF_Point pt3(ptCenter.x + PWL_TRIANGLE_HALFLEN * 0.5f,ptCenter.y - PWL_TRIANGLE_HALFLEN);
-
-						if (rectWnd.right - rectWnd.left > PWL_TRIANGLE_HALFLEN * 2 &&
-							rectWnd.top - rectWnd.bottom > PWL_TRIANGLE_HALFLEN )
-						{
-							sButton << "0 g\n";
-							sButton << pt1.x << " " << pt1.y << " m\n";
-							sButton << pt2.x << " " << pt2.y << " l\n";
-							sButton << pt3.x << " " << pt3.y << " l\n";
-							sButton << pt1.x << " " << pt1.y << " l f\n";
-
-							sAppStream << sButton;
-						}
-					}
-					break;
-				case PSBT_MAX:
-					{
-						CPDF_Point pt1(ptCenter.x + PWL_TRIANGLE_HALFLEN * 0.5f,ptCenter.y);
-						CPDF_Point pt2(ptCenter.x - PWL_TRIANGLE_HALFLEN * 0.5f,ptCenter.y + PWL_TRIANGLE_HALFLEN);
-						CPDF_Point pt3(ptCenter.x - PWL_TRIANGLE_HALFLEN * 0.5f,ptCenter.y - PWL_TRIANGLE_HALFLEN);
-
-						if (rectWnd.right - rectWnd.left > PWL_TRIANGLE_HALFLEN * 2 &&
-							rectWnd.top - rectWnd.bottom > PWL_TRIANGLE_HALFLEN )
-						{
-							sButton << "0 g\n";
-							sButton << pt1.x << " " << pt1.y << " m\n";
-							sButton << pt2.x << " " << pt2.y << " l\n";
-							sButton << pt3.x << " " << pt3.y << " l\n";
-							sButton << pt1.x << " " << pt1.y << " l f\n";
-
-							sAppStream << sButton;
-						}
-					}
-					break;
-				default:
-					break;
-			}
-			break;
-		case SBT_VSCROLL:
-			switch (m_eSBButtonType)
-			{
-				case PSBT_MIN:
-					{
-						CPDF_Point pt1(ptCenter.x - PWL_TRIANGLE_HALFLEN,ptCenter.y - PWL_TRIANGLE_HALFLEN * 0.5f);
-						CPDF_Point pt2(ptCenter.x + PWL_TRIANGLE_HALFLEN,ptCenter.y - PWL_TRIANGLE_HALFLEN * 0.5f);
-						CPDF_Point pt3(ptCenter.x,ptCenter.y + PWL_TRIANGLE_HALFLEN * 0.5f);
-
-						if (rectWnd.right - rectWnd.left > PWL_TRIANGLE_HALFLEN * 2 &&
-							rectWnd.top - rectWnd.bottom > PWL_TRIANGLE_HALFLEN )
-						{
-							sButton << "0 g\n";
-							sButton << pt1.x << " " << pt1.y << " m\n";
-							sButton << pt2.x << " " << pt2.y << " l\n";
-							sButton << pt3.x << " " << pt3.y << " l\n";
-							sButton << pt1.x << " " << pt1.y << " l f\n";
-
-							sAppStream << sButton;
-						}
-					}
-					break;
-				case PSBT_MAX:
-					{
-						CPDF_Point pt1(ptCenter.x - PWL_TRIANGLE_HALFLEN,ptCenter.y + PWL_TRIANGLE_HALFLEN * 0.5f);
-						CPDF_Point pt2(ptCenter.x + PWL_TRIANGLE_HALFLEN,ptCenter.y + PWL_TRIANGLE_HALFLEN * 0.5f);
-						CPDF_Point pt3(ptCenter.x,ptCenter.y - PWL_TRIANGLE_HALFLEN * 0.5f);
-
-						if (rectWnd.right - rectWnd.left > PWL_TRIANGLE_HALFLEN * 2 &&
-							rectWnd.top - rectWnd.bottom > PWL_TRIANGLE_HALFLEN )
-						{
-							sButton << "0 g\n";
-							sButton << pt1.x << " " << pt1.y << " m\n";
-							sButton << pt2.x << " " << pt2.y << " l\n";
-							sButton << pt3.x << " " << pt3.y << " l\n";
-							sButton << pt1.x << " " << pt1.y << " l f\n";
-
-							sAppStream << sButton;
-						}
-					}
-					break;
-				default:
-					break;
-			}
-			break;
-		default:
-			break;
-	}
-
-	sAppStream << "Q\n";
+void CPWL_SBButton::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) {
+  CPWL_Wnd::GetThisAppearanceStream(sAppStream);
+
+  if (!IsVisible())
+    return;
+
+  CFX_ByteTextBuf sButton;
+
+  CPDF_Rect rectWnd = GetWindowRect();
+
+  if (rectWnd.IsEmpty())
+    return;
+
+  sAppStream << "q\n";
+
+  CPDF_Point ptCenter = GetCenterPoint();
+
+  switch (m_eScrollBarType) {
+    case SBT_HSCROLL:
+      switch (m_eSBButtonType) {
+        case PSBT_MIN: {
+          CPDF_Point pt1(ptCenter.x - PWL_TRIANGLE_HALFLEN * 0.5f, ptCenter.y);
+          CPDF_Point pt2(ptCenter.x + PWL_TRIANGLE_HALFLEN * 0.5f,
+                         ptCenter.y + PWL_TRIANGLE_HALFLEN);
+          CPDF_Point pt3(ptCenter.x + PWL_TRIANGLE_HALFLEN * 0.5f,
+                         ptCenter.y - PWL_TRIANGLE_HALFLEN);
+
+          if (rectWnd.right - rectWnd.left > PWL_TRIANGLE_HALFLEN * 2 &&
+              rectWnd.top - rectWnd.bottom > PWL_TRIANGLE_HALFLEN) {
+            sButton << "0 g\n";
+            sButton << pt1.x << " " << pt1.y << " m\n";
+            sButton << pt2.x << " " << pt2.y << " l\n";
+            sButton << pt3.x << " " << pt3.y << " l\n";
+            sButton << pt1.x << " " << pt1.y << " l f\n";
+
+            sAppStream << sButton;
+          }
+        } break;
+        case PSBT_MAX: {
+          CPDF_Point pt1(ptCenter.x + PWL_TRIANGLE_HALFLEN * 0.5f, ptCenter.y);
+          CPDF_Point pt2(ptCenter.x - PWL_TRIANGLE_HALFLEN * 0.5f,
+                         ptCenter.y + PWL_TRIANGLE_HALFLEN);
+          CPDF_Point pt3(ptCenter.x - PWL_TRIANGLE_HALFLEN * 0.5f,
+                         ptCenter.y - PWL_TRIANGLE_HALFLEN);
+
+          if (rectWnd.right - rectWnd.left > PWL_TRIANGLE_HALFLEN * 2 &&
+              rectWnd.top - rectWnd.bottom > PWL_TRIANGLE_HALFLEN) {
+            sButton << "0 g\n";
+            sButton << pt1.x << " " << pt1.y << " m\n";
+            sButton << pt2.x << " " << pt2.y << " l\n";
+            sButton << pt3.x << " " << pt3.y << " l\n";
+            sButton << pt1.x << " " << pt1.y << " l f\n";
+
+            sAppStream << sButton;
+          }
+        } break;
+        default:
+          break;
+      }
+      break;
+    case SBT_VSCROLL:
+      switch (m_eSBButtonType) {
+        case PSBT_MIN: {
+          CPDF_Point pt1(ptCenter.x - PWL_TRIANGLE_HALFLEN,
+                         ptCenter.y - PWL_TRIANGLE_HALFLEN * 0.5f);
+          CPDF_Point pt2(ptCenter.x + PWL_TRIANGLE_HALFLEN,
+                         ptCenter.y - PWL_TRIANGLE_HALFLEN * 0.5f);
+          CPDF_Point pt3(ptCenter.x, ptCenter.y + PWL_TRIANGLE_HALFLEN * 0.5f);
+
+          if (rectWnd.right - rectWnd.left > PWL_TRIANGLE_HALFLEN * 2 &&
+              rectWnd.top - rectWnd.bottom > PWL_TRIANGLE_HALFLEN) {
+            sButton << "0 g\n";
+            sButton << pt1.x << " " << pt1.y << " m\n";
+            sButton << pt2.x << " " << pt2.y << " l\n";
+            sButton << pt3.x << " " << pt3.y << " l\n";
+            sButton << pt1.x << " " << pt1.y << " l f\n";
+
+            sAppStream << sButton;
+          }
+        } break;
+        case PSBT_MAX: {
+          CPDF_Point pt1(ptCenter.x - PWL_TRIANGLE_HALFLEN,
+                         ptCenter.y + PWL_TRIANGLE_HALFLEN * 0.5f);
+          CPDF_Point pt2(ptCenter.x + PWL_TRIANGLE_HALFLEN,
+                         ptCenter.y + PWL_TRIANGLE_HALFLEN * 0.5f);
+          CPDF_Point pt3(ptCenter.x, ptCenter.y - PWL_TRIANGLE_HALFLEN * 0.5f);
+
+          if (rectWnd.right - rectWnd.left > PWL_TRIANGLE_HALFLEN * 2 &&
+              rectWnd.top - rectWnd.bottom > PWL_TRIANGLE_HALFLEN) {
+            sButton << "0 g\n";
+            sButton << pt1.x << " " << pt1.y << " m\n";
+            sButton << pt2.x << " " << pt2.y << " l\n";
+            sButton << pt3.x << " " << pt3.y << " l\n";
+            sButton << pt1.x << " " << pt1.y << " l f\n";
+
+            sAppStream << sButton;
+          }
+        } break;
+        default:
+          break;
+      }
+      break;
+    default:
+      break;
+  }
+
+  sAppStream << "Q\n";
 }
 
-void CPWL_SBButton::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	if (!IsVisible()) return;
-
-	CPDF_Rect rectWnd = GetWindowRect();
-	if (rectWnd.IsEmpty()) return;
-
-	CPDF_Point ptCenter = GetCenterPoint();
-	int32_t nTransparancy = GetTransparency();
-
-	switch (m_eScrollBarType)
-	{
-	case SBT_HSCROLL:
-		CPWL_Wnd::DrawThisAppearance(pDevice,pUser2Device);
-		switch (m_eSBButtonType)
-		{
-		case PSBT_MIN:
-			{
-				CPDF_Point pt1(ptCenter.x - PWL_TRIANGLE_HALFLEN * 0.5f,ptCenter.y);
-				CPDF_Point pt2(ptCenter.x + PWL_TRIANGLE_HALFLEN * 0.5f,ptCenter.y + PWL_TRIANGLE_HALFLEN);
-				CPDF_Point pt3(ptCenter.x + PWL_TRIANGLE_HALFLEN * 0.5f,ptCenter.y - PWL_TRIANGLE_HALFLEN);
-
-				if (rectWnd.right - rectWnd.left > PWL_TRIANGLE_HALFLEN * 2 &&
-					rectWnd.top - rectWnd.bottom > PWL_TRIANGLE_HALFLEN )
-				{
-					CFX_PathData path;
-
-					path.SetPointCount(4);
-					path.SetPoint(0, pt1.x, pt1.y, FXPT_MOVETO);
-					path.SetPoint(1, pt2.x, pt2.y, FXPT_LINETO);
-					path.SetPoint(2, pt3.x, pt3.y, FXPT_LINETO);
-					path.SetPoint(3, pt1.x, pt1.y, FXPT_LINETO);
-
-					pDevice->DrawPath(&path, pUser2Device, NULL,
-						CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_BLACKCOLOR,nTransparancy),
-						0, FXFILL_ALTERNATE);
-				}
-			}
-			break;
-		case PSBT_MAX:
-			{
-				CPDF_Point pt1(ptCenter.x + PWL_TRIANGLE_HALFLEN * 0.5f,ptCenter.y);
-				CPDF_Point pt2(ptCenter.x - PWL_TRIANGLE_HALFLEN * 0.5f,ptCenter.y + PWL_TRIANGLE_HALFLEN);
-				CPDF_Point pt3(ptCenter.x - PWL_TRIANGLE_HALFLEN * 0.5f,ptCenter.y - PWL_TRIANGLE_HALFLEN);
-
-				if (rectWnd.right - rectWnd.left > PWL_TRIANGLE_HALFLEN * 2 &&
-					rectWnd.top - rectWnd.bottom > PWL_TRIANGLE_HALFLEN )
-				{
-					CFX_PathData path;
-
-					path.SetPointCount(4);
-					path.SetPoint(0, pt1.x, pt1.y, FXPT_MOVETO);
-					path.SetPoint(1, pt2.x, pt2.y, FXPT_LINETO);
-					path.SetPoint(2, pt3.x, pt3.y, FXPT_LINETO);
-					path.SetPoint(3, pt1.x, pt1.y, FXPT_LINETO);
-
-					pDevice->DrawPath(&path, pUser2Device, NULL,
-						CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_BLACKCOLOR,nTransparancy),
-						0, FXFILL_ALTERNATE);
-				}
-			}
-			break;
-		default:
-			break;
-		}
-		break;
-	case SBT_VSCROLL:
-		switch (m_eSBButtonType)
-		{
-		case PSBT_MIN:
-			{
-				//draw border
-				CPDF_Rect rcDraw = rectWnd;
-				CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device, rcDraw,
-					ArgbEncode(nTransparancy,100,100,100),0.0f);
-
-				//draw inner border
-				rcDraw = CPWL_Utils::DeflateRect(rectWnd,0.5f);
-				CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device, rcDraw,
-					ArgbEncode(nTransparancy,255,255,255),1.0f);
-
-				//draw background
-
-				rcDraw = CPWL_Utils::DeflateRect(rectWnd,1.0f);
-
-				if (IsEnabled())
-					CPWL_Utils::DrawShadow(pDevice, pUser2Device, TRUE, FALSE, rcDraw, nTransparancy, 80, 220);
-				else
-					CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcDraw, ArgbEncode(255,255,255,255));
-
-				//draw arrow
-
-				if (rectWnd.top - rectWnd.bottom > 6.0f )
-				{
-					FX_FLOAT fX = rectWnd.left + 1.5f;
-					FX_FLOAT fY = rectWnd.bottom;
-					CPDF_Point pts[7] = {
-								CPDF_Point(fX+2.5f, fY+4.0f),
-								CPDF_Point(fX+2.5f, fY+3.0f),
-								CPDF_Point(fX+4.5f, fY+5.0f),
-								CPDF_Point(fX+6.5f, fY+3.0f),
-								CPDF_Point(fX+6.5f, fY+4.0f),
-								CPDF_Point(fX+4.5f, fY+6.0f),
-								CPDF_Point(fX+2.5f, fY+4.0f)};
-
-
-					if (IsEnabled())
-						CPWL_Utils::DrawFillArea(pDevice, pUser2Device, pts, 7, ArgbEncode(nTransparancy,255,255,255));
-					else
-						CPWL_Utils::DrawFillArea(pDevice, pUser2Device, pts, 7,
-							CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_HEAVYGRAYCOLOR,255));
-				}
-			}
-			break;
-		case PSBT_MAX:
-			{
-				//draw border
-				CPDF_Rect rcDraw = rectWnd;
-				CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device, rcDraw,
-					ArgbEncode(nTransparancy,100,100,100),0.0f);
-
-				//draw inner border
-				rcDraw = CPWL_Utils::DeflateRect(rectWnd,0.5f);
-				CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device, rcDraw,
-					ArgbEncode(nTransparancy,255,255,255),1.0f);
-
-				//draw background
-				rcDraw = CPWL_Utils::DeflateRect(rectWnd,1.0f);
-				if (IsEnabled())
-					CPWL_Utils::DrawShadow(pDevice, pUser2Device, TRUE, FALSE, rcDraw, nTransparancy, 80, 220);
-				else
-					CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcDraw, ArgbEncode(255,255,255,255));
-
-				//draw arrow
-
-				if (rectWnd.top - rectWnd.bottom > 6.0f )
-				{
-					FX_FLOAT fX = rectWnd.left + 1.5f;
-					FX_FLOAT fY = rectWnd.bottom;
-
-					CPDF_Point pts[7] = {
-								CPDF_Point(fX+2.5f, fY+5.0f),
-								CPDF_Point(fX+2.5f, fY+6.0f),
-								CPDF_Point(fX+4.5f, fY+4.0f),
-								CPDF_Point(fX+6.5f, fY+6.0f),
-								CPDF_Point(fX+6.5f, fY+5.0f),
-								CPDF_Point(fX+4.5f, fY+3.0f),
-								CPDF_Point(fX+2.5f, fY+5.0f)};
-
-
-					if (IsEnabled())
-						CPWL_Utils::DrawFillArea(pDevice, pUser2Device, pts, 7, ArgbEncode(nTransparancy,255,255,255));
-					else
-						CPWL_Utils::DrawFillArea(pDevice, pUser2Device, pts, 7,
-							CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_HEAVYGRAYCOLOR,255));
-				}
-			}
-			break;
-		case PSBT_POS:
-			{
-				//CPWL_Wnd::DrawThisAppearance(pDevice,pUser2Device);
-
-				//draw border
-				CPDF_Rect rcDraw = rectWnd;
-				CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device, rcDraw,
-					ArgbEncode(nTransparancy,100,100,100),0.0f);
-
-				//draw inner border
-				rcDraw = CPWL_Utils::DeflateRect(rectWnd,0.5f);
-				CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device, rcDraw,
-					ArgbEncode(nTransparancy,255,255,255),1.0f);
-
-				if (IsEnabled())
-				{
-					//draw shadow effect
-
-					CPDF_Point ptTop = CPDF_Point(rectWnd.left,rectWnd.top-1.0f);
-					CPDF_Point ptBottom = CPDF_Point(rectWnd.left,rectWnd.bottom+1.0f);
-
-					ptTop.x += 1.5f;
-					ptBottom.x += 1.5f;
-
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
-						ArgbEncode(nTransparancy,210,210,210),1.0f);
-
-					ptTop.x += 1.0f;
-					ptBottom.x += 1.0f;
-
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
-						ArgbEncode(nTransparancy,220,220,220),1.0f);
-
-					ptTop.x += 1.0f;
-					ptBottom.x += 1.0f;
-
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
-						ArgbEncode(nTransparancy,240,240,240),1.0f);
-
-					ptTop.x += 1.0f;
-					ptBottom.x += 1.0f;
-
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
-						ArgbEncode(nTransparancy,240,240,240),1.0f);
-
-					ptTop.x += 1.0f;
-					ptBottom.x += 1.0f;
-
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
-						ArgbEncode(nTransparancy,210,210,210),1.0f);
-
-					ptTop.x += 1.0f;
-					ptBottom.x += 1.0f;
-
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
-						ArgbEncode(nTransparancy,180,180,180),1.0f);
-
-					ptTop.x += 1.0f;
-					ptBottom.x += 1.0f;
-
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
-						ArgbEncode(nTransparancy,150,150,150),1.0f);
-
-					ptTop.x += 1.0f;
-					ptBottom.x += 1.0f;
-
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
-						ArgbEncode(nTransparancy,150,150,150),1.0f);
-
-					ptTop.x += 1.0f;
-					ptBottom.x += 1.0f;
-
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
-						ArgbEncode(nTransparancy,180,180,180),1.0f);
-
-					ptTop.x += 1.0f;
-					ptBottom.x += 1.0f;
-
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
-						ArgbEncode(nTransparancy,210,210,210),1.0f);
-				}
-				else
-				{
-					CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcDraw, ArgbEncode(255,255,255,255));
-				}
-
-				//draw friction
+void CPWL_SBButton::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                       CPDF_Matrix* pUser2Device) {
+  if (!IsVisible())
+    return;
+
+  CPDF_Rect rectWnd = GetWindowRect();
+  if (rectWnd.IsEmpty())
+    return;
+
+  CPDF_Point ptCenter = GetCenterPoint();
+  int32_t nTransparancy = GetTransparency();
+
+  switch (m_eScrollBarType) {
+    case SBT_HSCROLL:
+      CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
+      switch (m_eSBButtonType) {
+        case PSBT_MIN: {
+          CPDF_Point pt1(ptCenter.x - PWL_TRIANGLE_HALFLEN * 0.5f, ptCenter.y);
+          CPDF_Point pt2(ptCenter.x + PWL_TRIANGLE_HALFLEN * 0.5f,
+                         ptCenter.y + PWL_TRIANGLE_HALFLEN);
+          CPDF_Point pt3(ptCenter.x + PWL_TRIANGLE_HALFLEN * 0.5f,
+                         ptCenter.y - PWL_TRIANGLE_HALFLEN);
+
+          if (rectWnd.right - rectWnd.left > PWL_TRIANGLE_HALFLEN * 2 &&
+              rectWnd.top - rectWnd.bottom > PWL_TRIANGLE_HALFLEN) {
+            CFX_PathData path;
+
+            path.SetPointCount(4);
+            path.SetPoint(0, pt1.x, pt1.y, FXPT_MOVETO);
+            path.SetPoint(1, pt2.x, pt2.y, FXPT_LINETO);
+            path.SetPoint(2, pt3.x, pt3.y, FXPT_LINETO);
+            path.SetPoint(3, pt1.x, pt1.y, FXPT_LINETO);
+
+            pDevice->DrawPath(&path, pUser2Device, NULL,
+                              CPWL_Utils::PWLColorToFXColor(
+                                  PWL_DEFAULT_BLACKCOLOR, nTransparancy),
+                              0, FXFILL_ALTERNATE);
+          }
+        } break;
+        case PSBT_MAX: {
+          CPDF_Point pt1(ptCenter.x + PWL_TRIANGLE_HALFLEN * 0.5f, ptCenter.y);
+          CPDF_Point pt2(ptCenter.x - PWL_TRIANGLE_HALFLEN * 0.5f,
+                         ptCenter.y + PWL_TRIANGLE_HALFLEN);
+          CPDF_Point pt3(ptCenter.x - PWL_TRIANGLE_HALFLEN * 0.5f,
+                         ptCenter.y - PWL_TRIANGLE_HALFLEN);
+
+          if (rectWnd.right - rectWnd.left > PWL_TRIANGLE_HALFLEN * 2 &&
+              rectWnd.top - rectWnd.bottom > PWL_TRIANGLE_HALFLEN) {
+            CFX_PathData path;
+
+            path.SetPointCount(4);
+            path.SetPoint(0, pt1.x, pt1.y, FXPT_MOVETO);
+            path.SetPoint(1, pt2.x, pt2.y, FXPT_LINETO);
+            path.SetPoint(2, pt3.x, pt3.y, FXPT_LINETO);
+            path.SetPoint(3, pt1.x, pt1.y, FXPT_LINETO);
+
+            pDevice->DrawPath(&path, pUser2Device, NULL,
+                              CPWL_Utils::PWLColorToFXColor(
+                                  PWL_DEFAULT_BLACKCOLOR, nTransparancy),
+                              0, FXFILL_ALTERNATE);
+          }
+        } break;
+        default:
+          break;
+      }
+      break;
+    case SBT_VSCROLL:
+      switch (m_eSBButtonType) {
+        case PSBT_MIN: {
+          // draw border
+          CPDF_Rect rcDraw = rectWnd;
+          CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device, rcDraw,
+                                     ArgbEncode(nTransparancy, 100, 100, 100),
+                                     0.0f);
+
+          // draw inner border
+          rcDraw = CPWL_Utils::DeflateRect(rectWnd, 0.5f);
+          CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device, rcDraw,
+                                     ArgbEncode(nTransparancy, 255, 255, 255),
+                                     1.0f);
+
+          // draw background
+
+          rcDraw = CPWL_Utils::DeflateRect(rectWnd, 1.0f);
+
+          if (IsEnabled())
+            CPWL_Utils::DrawShadow(pDevice, pUser2Device, TRUE, FALSE, rcDraw,
+                                   nTransparancy, 80, 220);
+          else
+            CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcDraw,
+                                     ArgbEncode(255, 255, 255, 255));
+
+          // draw arrow
+
+          if (rectWnd.top - rectWnd.bottom > 6.0f) {
+            FX_FLOAT fX = rectWnd.left + 1.5f;
+            FX_FLOAT fY = rectWnd.bottom;
+            CPDF_Point pts[7] = {CPDF_Point(fX + 2.5f, fY + 4.0f),
+                                 CPDF_Point(fX + 2.5f, fY + 3.0f),
+                                 CPDF_Point(fX + 4.5f, fY + 5.0f),
+                                 CPDF_Point(fX + 6.5f, fY + 3.0f),
+                                 CPDF_Point(fX + 6.5f, fY + 4.0f),
+                                 CPDF_Point(fX + 4.5f, fY + 6.0f),
+                                 CPDF_Point(fX + 2.5f, fY + 4.0f)};
+
+            if (IsEnabled())
+              CPWL_Utils::DrawFillArea(
+                  pDevice, pUser2Device, pts, 7,
+                  ArgbEncode(nTransparancy, 255, 255, 255));
+            else
+              CPWL_Utils::DrawFillArea(pDevice, pUser2Device, pts, 7,
+                                       CPWL_Utils::PWLColorToFXColor(
+                                           PWL_DEFAULT_HEAVYGRAYCOLOR, 255));
+          }
+        } break;
+        case PSBT_MAX: {
+          // draw border
+          CPDF_Rect rcDraw = rectWnd;
+          CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device, rcDraw,
+                                     ArgbEncode(nTransparancy, 100, 100, 100),
+                                     0.0f);
+
+          // draw inner border
+          rcDraw = CPWL_Utils::DeflateRect(rectWnd, 0.5f);
+          CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device, rcDraw,
+                                     ArgbEncode(nTransparancy, 255, 255, 255),
+                                     1.0f);
+
+          // draw background
+          rcDraw = CPWL_Utils::DeflateRect(rectWnd, 1.0f);
+          if (IsEnabled())
+            CPWL_Utils::DrawShadow(pDevice, pUser2Device, TRUE, FALSE, rcDraw,
+                                   nTransparancy, 80, 220);
+          else
+            CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcDraw,
+                                     ArgbEncode(255, 255, 255, 255));
+
+          // draw arrow
+
+          if (rectWnd.top - rectWnd.bottom > 6.0f) {
+            FX_FLOAT fX = rectWnd.left + 1.5f;
+            FX_FLOAT fY = rectWnd.bottom;
+
+            CPDF_Point pts[7] = {CPDF_Point(fX + 2.5f, fY + 5.0f),
+                                 CPDF_Point(fX + 2.5f, fY + 6.0f),
+                                 CPDF_Point(fX + 4.5f, fY + 4.0f),
+                                 CPDF_Point(fX + 6.5f, fY + 6.0f),
+                                 CPDF_Point(fX + 6.5f, fY + 5.0f),
+                                 CPDF_Point(fX + 4.5f, fY + 3.0f),
+                                 CPDF_Point(fX + 2.5f, fY + 5.0f)};
+
+            if (IsEnabled())
+              CPWL_Utils::DrawFillArea(
+                  pDevice, pUser2Device, pts, 7,
+                  ArgbEncode(nTransparancy, 255, 255, 255));
+            else
+              CPWL_Utils::DrawFillArea(pDevice, pUser2Device, pts, 7,
+                                       CPWL_Utils::PWLColorToFXColor(
+                                           PWL_DEFAULT_HEAVYGRAYCOLOR, 255));
+          }
+        } break;
+        case PSBT_POS: {
+          // CPWL_Wnd::DrawThisAppearance(pDevice,pUser2Device);
+
+          // draw border
+          CPDF_Rect rcDraw = rectWnd;
+          CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device, rcDraw,
+                                     ArgbEncode(nTransparancy, 100, 100, 100),
+                                     0.0f);
+
+          // draw inner border
+          rcDraw = CPWL_Utils::DeflateRect(rectWnd, 0.5f);
+          CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device, rcDraw,
+                                     ArgbEncode(nTransparancy, 255, 255, 255),
+                                     1.0f);
+
+          if (IsEnabled()) {
+            // draw shadow effect
+
+            CPDF_Point ptTop = CPDF_Point(rectWnd.left, rectWnd.top - 1.0f);
+            CPDF_Point ptBottom =
+                CPDF_Point(rectWnd.left, rectWnd.bottom + 1.0f);
+
+            ptTop.x += 1.5f;
+            ptBottom.x += 1.5f;
+
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
+                                       ArgbEncode(nTransparancy, 210, 210, 210),
+                                       1.0f);
+
+            ptTop.x += 1.0f;
+            ptBottom.x += 1.0f;
+
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
+                                       ArgbEncode(nTransparancy, 220, 220, 220),
+                                       1.0f);
+
+            ptTop.x += 1.0f;
+            ptBottom.x += 1.0f;
+
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
+                                       ArgbEncode(nTransparancy, 240, 240, 240),
+                                       1.0f);
+
+            ptTop.x += 1.0f;
+            ptBottom.x += 1.0f;
+
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
+                                       ArgbEncode(nTransparancy, 240, 240, 240),
+                                       1.0f);
+
+            ptTop.x += 1.0f;
+            ptBottom.x += 1.0f;
+
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
+                                       ArgbEncode(nTransparancy, 210, 210, 210),
+                                       1.0f);
+
+            ptTop.x += 1.0f;
+            ptBottom.x += 1.0f;
+
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
+                                       ArgbEncode(nTransparancy, 180, 180, 180),
+                                       1.0f);
+
+            ptTop.x += 1.0f;
+            ptBottom.x += 1.0f;
+
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
+                                       ArgbEncode(nTransparancy, 150, 150, 150),
+                                       1.0f);
+
+            ptTop.x += 1.0f;
+            ptBottom.x += 1.0f;
+
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
+                                       ArgbEncode(nTransparancy, 150, 150, 150),
+                                       1.0f);
+
+            ptTop.x += 1.0f;
+            ptBottom.x += 1.0f;
+
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
+                                       ArgbEncode(nTransparancy, 180, 180, 180),
+                                       1.0f);
+
+            ptTop.x += 1.0f;
+            ptBottom.x += 1.0f;
+
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptTop, ptBottom,
+                                       ArgbEncode(nTransparancy, 210, 210, 210),
+                                       1.0f);
+          } else {
+            CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcDraw,
+                                     ArgbEncode(255, 255, 255, 255));
+          }
+
+          // draw friction
+
+          if (rectWnd.Height() > 8.0f) {
+            FX_COLORREF crStroke = ArgbEncode(nTransparancy, 120, 120, 120);
+            if (!IsEnabled())
+              crStroke = CPWL_Utils::PWLColorToFXColor(
+                  PWL_DEFAULT_HEAVYGRAYCOLOR, 255);
+
+            FX_FLOAT nFrictionWidth = 5.0f;
+            FX_FLOAT nFrictionHeight = 5.5f;
 
-				if (rectWnd.Height() > 8.0f)
-				{
-					FX_COLORREF crStroke = ArgbEncode(nTransparancy,120,120,120);
-					if (!IsEnabled())
-						crStroke = CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_HEAVYGRAYCOLOR,255);
+            CPDF_Point ptLeft =
+                CPDF_Point(ptCenter.x - nFrictionWidth / 2.0f,
+                           ptCenter.y - nFrictionHeight / 2.0f + 0.5f);
+            CPDF_Point ptRight =
+                CPDF_Point(ptCenter.x + nFrictionWidth / 2.0f,
+                           ptCenter.y - nFrictionHeight / 2.0f + 0.5f);
 
-					FX_FLOAT nFrictionWidth = 5.0f;
-					FX_FLOAT nFrictionHeight = 5.5f;
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptLeft, ptRight,
+                                       crStroke, 1.0f);
 
-					CPDF_Point ptLeft = CPDF_Point(ptCenter.x - nFrictionWidth / 2.0f, ptCenter.y - nFrictionHeight / 2.0f + 0.5f);
-					CPDF_Point ptRight = CPDF_Point(ptCenter.x + nFrictionWidth / 2.0f, ptCenter.y - nFrictionHeight / 2.0f + 0.5f);
+            ptLeft.y += 2.0f;
+            ptRight.y += 2.0f;
 
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptLeft, ptRight,
-						crStroke,1.0f);
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptLeft, ptRight,
+                                       crStroke, 1.0f);
 
-					ptLeft.y += 2.0f;
-					ptRight.y += 2.0f;
+            ptLeft.y += 2.0f;
+            ptRight.y += 2.0f;
+
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptLeft, ptRight,
+                                       crStroke, 1.0f);
 
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptLeft, ptRight,
-						crStroke,1.0f);
+            /*
+            ptLeft.y += 1.5f;
+            ptRight.y += 1.5f;
+
+            CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptLeft, ptRight,
+                    ArgbEncode(nTransparancy,150,150,150),1.0f);
+                    */
+          }
+        } break;
+        default:
+          break;
+      }
+      break;
+    default:
+      break;
+  }
+}
 
-					ptLeft.y += 2.0f;
-					ptRight.y += 2.0f;
+FX_BOOL CPWL_SBButton::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonDown(point, nFlag);
 
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptLeft, ptRight,
-						crStroke,1.0f);
+  if (CPWL_Wnd* pParent = GetParentWindow())
+    pParent->OnNotify(this, PNM_LBUTTONDOWN, 0, (intptr_t)&point);
 
-					/*
-					ptLeft.y += 1.5f;
-					ptRight.y += 1.5f;
+  m_bMouseDown = TRUE;
+  SetCapture();
 
-					CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, ptLeft, ptRight,
-						ArgbEncode(nTransparancy,150,150,150),1.0f);
-						*/
-				}
-			}
-			break;
-		default:
-			break;
-		}
-		break;
-	default:
-		break;
-	}
+  return TRUE;
 }
 
-FX_BOOL CPWL_SBButton::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnLButtonDown(point,nFlag);
+FX_BOOL CPWL_SBButton::OnLButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonUp(point, nFlag);
 
-	if (CPWL_Wnd * pParent = GetParentWindow())
-		pParent->OnNotify(this,PNM_LBUTTONDOWN,0,(intptr_t)&point);
+  if (CPWL_Wnd* pParent = GetParentWindow())
+    pParent->OnNotify(this, PNM_LBUTTONUP, 0, (intptr_t)&point);
 
-	m_bMouseDown = TRUE;
-	SetCapture();
+  m_bMouseDown = FALSE;
+  ReleaseCapture();
 
-	return TRUE;
+  return TRUE;
 }
 
-FX_BOOL CPWL_SBButton::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnLButtonUp(point,nFlag);
+FX_BOOL CPWL_SBButton::OnMouseMove(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnMouseMove(point, nFlag);
 
-	if (CPWL_Wnd * pParent = GetParentWindow())
-		pParent->OnNotify(this,PNM_LBUTTONUP,0,(intptr_t)&point);
+  if (CPWL_Wnd* pParent = GetParentWindow()) {
+    pParent->OnNotify(this, PNM_MOUSEMOVE, 0, (intptr_t)&point);
 
-	m_bMouseDown = FALSE;
-	ReleaseCapture();
+    /*
+    if (m_bMouseDown && (m_eSBButtonType == PSBT_MIN || m_eSBButtonType ==
+    PSBT_MAX))
+    {
+            if
+    (!pParent->OnNotify(this,PNM_LBUTTONDOWN,nFlags,(intptr_t)&point))
+                    return FALSE;
+    }
+    */
+  }
 
-	return TRUE;
+  return TRUE;
 }
 
-FX_BOOL CPWL_SBButton::OnMouseMove(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnMouseMove(point,nFlag);
+/* ------------------------------- CPWL_ScrollBar
+ * ---------------------------------- */
 
-	if (CPWL_Wnd * pParent = GetParentWindow())
-	{
-		pParent->OnNotify(this,PNM_MOUSEMOVE,0,(intptr_t)&point);
+CPWL_ScrollBar::CPWL_ScrollBar(PWL_SCROLLBAR_TYPE sbType)
+    : m_sbType(sbType),
+      m_pMinButton(NULL),
+      m_pMaxButton(NULL),
+      m_pPosButton(NULL),
+      m_bMouseDown(FALSE),
+      m_bMinOrMax(FALSE),
+      m_bNotifyForever(TRUE) {}
 
-		/*
-		if (m_bMouseDown && (m_eSBButtonType == PSBT_MIN || m_eSBButtonType == PSBT_MAX))
-		{
-			if (!pParent->OnNotify(this,PNM_LBUTTONDOWN,nFlags,(intptr_t)&point))
-				return FALSE;
-		}
-		*/
-	}
+CPWL_ScrollBar::~CPWL_ScrollBar() {}
 
-	return TRUE;
+CFX_ByteString CPWL_ScrollBar::GetClassName() const {
+  return "CPWL_ScrollBar";
 }
 
-/* ------------------------------- CPWL_ScrollBar ---------------------------------- */
-
-CPWL_ScrollBar::CPWL_ScrollBar(PWL_SCROLLBAR_TYPE sbType):
-	m_sbType(sbType),
-	m_pMinButton(NULL),
-	m_pMaxButton(NULL),
-	m_pPosButton(NULL),
-	m_bMouseDown(FALSE),
-	m_bMinOrMax(FALSE),
-	m_bNotifyForever(TRUE)
-{
+void CPWL_ScrollBar::OnCreate(PWL_CREATEPARAM& cp) {
+  cp.eCursorType = FXCT_ARROW;
 }
 
-CPWL_ScrollBar::~CPWL_ScrollBar()
-{
+void CPWL_ScrollBar::RePosChildWnd() {
+  CPDF_Rect rcClient = GetClientRect();
+  CPDF_Rect rcMinButton, rcMaxButton;
+  FX_FLOAT fBWidth = 0;
+
+  switch (m_sbType) {
+    case SBT_HSCROLL:
+      if (rcClient.right - rcClient.left >
+          PWL_SCROLLBAR_BUTTON_WIDTH * 2 + PWL_SCROLLBAR_POSBUTTON_MINWIDTH +
+              2) {
+        rcMinButton =
+            CPDF_Rect(rcClient.left, rcClient.bottom,
+                      rcClient.left + PWL_SCROLLBAR_BUTTON_WIDTH, rcClient.top);
+        rcMaxButton = CPDF_Rect(rcClient.right - PWL_SCROLLBAR_BUTTON_WIDTH,
+                                rcClient.bottom, rcClient.right, rcClient.top);
+      } else {
+        fBWidth = (rcClient.right - rcClient.left -
+                   PWL_SCROLLBAR_POSBUTTON_MINWIDTH - 2) /
+                  2;
+
+        if (fBWidth > 0) {
+          rcMinButton = CPDF_Rect(rcClient.left, rcClient.bottom,
+                                  rcClient.left + fBWidth, rcClient.top);
+          rcMaxButton = CPDF_Rect(rcClient.right - fBWidth, rcClient.bottom,
+                                  rcClient.right, rcClient.top);
+        } else
+          SetVisible(FALSE);
+      }
+      break;
+    case SBT_VSCROLL:
+      if (IsFloatBigger(rcClient.top - rcClient.bottom,
+                        PWL_SCROLLBAR_BUTTON_WIDTH * 2 +
+                            PWL_SCROLLBAR_POSBUTTON_MINWIDTH + 2)) {
+        rcMinButton =
+            CPDF_Rect(rcClient.left, rcClient.top - PWL_SCROLLBAR_BUTTON_WIDTH,
+                      rcClient.right, rcClient.top);
+        rcMaxButton = CPDF_Rect(rcClient.left, rcClient.bottom, rcClient.right,
+                                rcClient.bottom + PWL_SCROLLBAR_BUTTON_WIDTH);
+      } else {
+        fBWidth = (rcClient.top - rcClient.bottom -
+                   PWL_SCROLLBAR_POSBUTTON_MINWIDTH - 2) /
+                  2;
+
+        if (IsFloatBigger(fBWidth, 0)) {
+          rcMinButton = CPDF_Rect(rcClient.left, rcClient.top - fBWidth,
+                                  rcClient.right, rcClient.top);
+          rcMaxButton = CPDF_Rect(rcClient.left, rcClient.bottom,
+                                  rcClient.right, rcClient.bottom + fBWidth);
+        } else
+          SetVisible(FALSE);
+      }
+      break;
+  }
+
+  if (m_pMinButton)
+    m_pMinButton->Move(rcMinButton, TRUE, FALSE);
+  if (m_pMaxButton)
+    m_pMaxButton->Move(rcMaxButton, TRUE, FALSE);
+  MovePosButton(FALSE);
 }
 
-CFX_ByteString CPWL_ScrollBar::GetClassName() const
-{
-	return "CPWL_ScrollBar";
-}
+void CPWL_ScrollBar::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) {
+  CPDF_Rect rectWnd = GetWindowRect();
 
-void CPWL_ScrollBar::OnCreate(PWL_CREATEPARAM & cp)
-{
-	cp.eCursorType = FXCT_ARROW;
-}
-
-void CPWL_ScrollBar::RePosChildWnd()
-{
-	CPDF_Rect rcClient = GetClientRect();
-	CPDF_Rect rcMinButton,rcMaxButton;
-	FX_FLOAT fBWidth = 0;
-
-	switch (m_sbType)
-	{
-	case SBT_HSCROLL:
-		if (rcClient.right - rcClient.left > PWL_SCROLLBAR_BUTTON_WIDTH * 2 + PWL_SCROLLBAR_POSBUTTON_MINWIDTH + 2)
-		{
-			rcMinButton = CPDF_Rect(rcClient.left,rcClient.bottom,
-				rcClient.left + PWL_SCROLLBAR_BUTTON_WIDTH,rcClient.top);
-			rcMaxButton = CPDF_Rect(rcClient.right - PWL_SCROLLBAR_BUTTON_WIDTH,rcClient.bottom,
-				rcClient.right,rcClient.top);
-		}
-		else
-		{
-			fBWidth = (rcClient.right - rcClient.left - PWL_SCROLLBAR_POSBUTTON_MINWIDTH - 2) / 2;
-
-			if (fBWidth > 0)
-			{
-				rcMinButton = CPDF_Rect(rcClient.left,rcClient.bottom,
-					rcClient.left + fBWidth,rcClient.top);
-				rcMaxButton = CPDF_Rect(rcClient.right - fBWidth,rcClient.bottom,
-					rcClient.right,rcClient.top);
-			}
-			else SetVisible(FALSE);
-		}
-		break;
-	case SBT_VSCROLL:
-		if (IsFloatBigger(rcClient.top - rcClient.bottom, PWL_SCROLLBAR_BUTTON_WIDTH * 2 + PWL_SCROLLBAR_POSBUTTON_MINWIDTH + 2))
-		{
-			rcMinButton = CPDF_Rect(rcClient.left,rcClient.top - PWL_SCROLLBAR_BUTTON_WIDTH,
-				rcClient.right,rcClient.top);
-			rcMaxButton = CPDF_Rect(rcClient.left,rcClient.bottom,
-				rcClient.right,rcClient.bottom + PWL_SCROLLBAR_BUTTON_WIDTH);
-		}
-		else
-		{
-			fBWidth = (rcClient.top - rcClient.bottom - PWL_SCROLLBAR_POSBUTTON_MINWIDTH - 2) / 2;
-
-			if (IsFloatBigger(fBWidth, 0))
-			{
-				rcMinButton = CPDF_Rect(rcClient.left,rcClient.top - fBWidth,
-					rcClient.right,rcClient.top);
-				rcMaxButton = CPDF_Rect(rcClient.left,rcClient.bottom,
-					rcClient.right,rcClient.bottom + fBWidth);
-			}
-			else SetVisible(FALSE);
-		}
-		break;
-	}
-
-    if (m_pMinButton)
-        m_pMinButton->Move(rcMinButton, TRUE, FALSE);
-    if (m_pMaxButton)
-        m_pMaxButton->Move(rcMaxButton, TRUE, FALSE);
-    MovePosButton(FALSE);
-}
+  if (IsVisible() && !rectWnd.IsEmpty()) {
+    CFX_ByteTextBuf sButton;
 
-void CPWL_ScrollBar::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream)
-{
-	CPDF_Rect rectWnd = GetWindowRect();
+    sButton << "q\n";
+    sButton << "0 w\n"
+            << CPWL_Utils::GetColorAppStream(GetBackgroundColor(), TRUE);
+    sButton << rectWnd.left << " " << rectWnd.bottom << " "
+            << rectWnd.right - rectWnd.left << " "
+            << rectWnd.top - rectWnd.bottom << " re b Q\n";
 
-	if (IsVisible() && !rectWnd.IsEmpty())
-	{
-		CFX_ByteTextBuf sButton;
+    sAppStream << sButton;
+  }
+}
 
-		sButton << "q\n";
-		sButton << "0 w\n" << CPWL_Utils::GetColorAppStream(GetBackgroundColor(),TRUE);
-		sButton << rectWnd.left << " " << rectWnd.bottom << " "
-				<< rectWnd.right - rectWnd.left << " " << rectWnd.top - rectWnd.bottom << " re b Q\n";
+void CPWL_ScrollBar::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                        CPDF_Matrix* pUser2Device) {
+  CPDF_Rect rectWnd = GetWindowRect();
+
+  if (IsVisible() && !rectWnd.IsEmpty()) {
+    CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rectWnd,
+                             GetBackgroundColor(), GetTransparency());
+
+    CPWL_Utils::DrawStrokeLine(
+        pDevice, pUser2Device,
+        CPDF_Point(rectWnd.left + 2.0f, rectWnd.top - 2.0f),
+        CPDF_Point(rectWnd.left + 2.0f, rectWnd.bottom + 2.0f),
+        ArgbEncode(GetTransparency(), 100, 100, 100), 1.0f);
+
+    CPWL_Utils::DrawStrokeLine(
+        pDevice, pUser2Device,
+        CPDF_Point(rectWnd.right - 2.0f, rectWnd.top - 2.0f),
+        CPDF_Point(rectWnd.right - 2.0f, rectWnd.bottom + 2.0f),
+        ArgbEncode(GetTransparency(), 100, 100, 100), 1.0f);
+  }
+}
 
-		sAppStream << sButton;
-	}
+FX_BOOL CPWL_ScrollBar::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonDown(point, nFlag);
+
+  if (HasFlag(PWS_AUTOTRANSPARENT)) {
+    if (GetTransparency() != 255) {
+      SetTransparency(255);
+      InvalidateRect();
+    }
+  }
+
+  CPDF_Rect rcMinArea, rcMaxArea;
+
+  if (m_pPosButton && m_pPosButton->IsVisible()) {
+    CPDF_Rect rcClient = GetClientRect();
+    CPDF_Rect rcPosButton = m_pPosButton->GetWindowRect();
+
+    switch (m_sbType) {
+      case SBT_HSCROLL:
+        rcMinArea = CPDF_Rect(rcClient.left + PWL_SCROLLBAR_BUTTON_WIDTH,
+                              rcClient.bottom, rcPosButton.left, rcClient.top);
+        rcMaxArea = CPDF_Rect(rcPosButton.right, rcClient.bottom,
+                              rcClient.right - PWL_SCROLLBAR_BUTTON_WIDTH,
+                              rcClient.top);
+
+        break;
+      case SBT_VSCROLL:
+        rcMinArea = CPDF_Rect(rcClient.left, rcPosButton.top, rcClient.right,
+                              rcClient.top - PWL_SCROLLBAR_BUTTON_WIDTH);
+        rcMaxArea = CPDF_Rect(rcClient.left,
+                              rcClient.bottom + PWL_SCROLLBAR_BUTTON_WIDTH,
+                              rcClient.right, rcPosButton.bottom);
+        break;
+    }
+
+    rcMinArea.Normalize();
+    rcMaxArea.Normalize();
+
+    if (rcMinArea.Contains(point.x, point.y)) {
+      m_sData.SubBig();
+      MovePosButton(TRUE);
+      NotifyScrollWindow();
+    }
+
+    if (rcMaxArea.Contains(point.x, point.y)) {
+      m_sData.AddBig();
+      MovePosButton(TRUE);
+      NotifyScrollWindow();
+    }
+  }
+
+  return TRUE;
 }
 
-void CPWL_ScrollBar::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	CPDF_Rect rectWnd = GetWindowRect();
+FX_BOOL CPWL_ScrollBar::OnLButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
+  CPWL_Wnd::OnLButtonUp(point, nFlag);
 
-	if (IsVisible() && !rectWnd.IsEmpty())
-	{
-		CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rectWnd, GetBackgroundColor(), GetTransparency());
+  if (HasFlag(PWS_AUTOTRANSPARENT)) {
+    if (GetTransparency() != PWL_SCROLLBAR_TRANSPARANCY) {
+      SetTransparency(PWL_SCROLLBAR_TRANSPARANCY);
+      InvalidateRect();
+    }
+  }
 
-		CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device,
-			CPDF_Point(rectWnd.left+2.0f,rectWnd.top-2.0f), CPDF_Point(rectWnd.left+2.0f,rectWnd.bottom+2.0f),
-			ArgbEncode(GetTransparency(), 100, 100, 100), 1.0f);
+  EndTimer();
+  m_bMouseDown = FALSE;
 
-		CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device,
-			CPDF_Point(rectWnd.right-2.0f,rectWnd.top-2.0f), CPDF_Point(rectWnd.right-2.0f,rectWnd.bottom+2.0f),
-			ArgbEncode(GetTransparency(), 100, 100, 100),1.0f);
-	}
+  return TRUE;
 }
 
-FX_BOOL CPWL_ScrollBar::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnLButtonDown(point,nFlag);
-
-	if (HasFlag(PWS_AUTOTRANSPARENT))
-	{
-		if (GetTransparency() != 255)
-		{
-			SetTransparency(255);
-			InvalidateRect();
-		}
-	}
-
-	CPDF_Rect rcMinArea,rcMaxArea;
-
-	if (m_pPosButton && m_pPosButton->IsVisible())
-	{
-		CPDF_Rect rcClient = GetClientRect();
-		CPDF_Rect rcPosButton = m_pPosButton->GetWindowRect();
-
-		switch (m_sbType)
-		{
-		case SBT_HSCROLL:
-			rcMinArea = CPDF_Rect(rcClient.left + PWL_SCROLLBAR_BUTTON_WIDTH,rcClient.bottom,
-							rcPosButton.left,rcClient.top);
-			rcMaxArea = CPDF_Rect(rcPosButton.right,rcClient.bottom,
-							rcClient.right - PWL_SCROLLBAR_BUTTON_WIDTH,rcClient.top);
-
-			break;
-		case SBT_VSCROLL:
-			rcMinArea = CPDF_Rect(rcClient.left,rcPosButton.top,
-							rcClient.right,rcClient.top - PWL_SCROLLBAR_BUTTON_WIDTH);
-			rcMaxArea = CPDF_Rect(rcClient.left,rcClient.bottom + PWL_SCROLLBAR_BUTTON_WIDTH,
-							rcClient.right,rcPosButton.bottom);
-			break;
-		}
-
-		rcMinArea.Normalize();
-		rcMaxArea.Normalize();
-
-		if (rcMinArea.Contains(point.x,point.y))
-		{
-			m_sData.SubBig();
-			MovePosButton(TRUE);
-			NotifyScrollWindow();
-		}
-
-		if (rcMaxArea.Contains(point.x,point.y))
-		{
-			m_sData.AddBig();
-			MovePosButton(TRUE);
-			NotifyScrollWindow();
-		}
-	}
-
-	return TRUE;
+void CPWL_ScrollBar::OnNotify(CPWL_Wnd* pWnd,
+                              FX_DWORD msg,
+                              intptr_t wParam,
+                              intptr_t lParam) {
+  CPWL_Wnd::OnNotify(pWnd, msg, wParam, lParam);
+
+  switch (msg) {
+    case PNM_LBUTTONDOWN:
+      if (pWnd == m_pMinButton) {
+        OnMinButtonLBDown(*(CPDF_Point*)lParam);
+      }
+
+      if (pWnd == m_pMaxButton) {
+        OnMaxButtonLBDown(*(CPDF_Point*)lParam);
+      }
+
+      if (pWnd == m_pPosButton) {
+        OnPosButtonLBDown(*(CPDF_Point*)lParam);
+      }
+      break;
+    case PNM_LBUTTONUP:
+      if (pWnd == m_pMinButton) {
+        OnMinButtonLBUp(*(CPDF_Point*)lParam);
+      }
+
+      if (pWnd == m_pMaxButton) {
+        OnMaxButtonLBUp(*(CPDF_Point*)lParam);
+      }
+
+      if (pWnd == m_pPosButton) {
+        OnPosButtonLBUp(*(CPDF_Point*)lParam);
+      }
+      break;
+    case PNM_MOUSEMOVE:
+      if (pWnd == m_pMinButton) {
+        OnMinButtonMouseMove(*(CPDF_Point*)lParam);
+      }
+
+      if (pWnd == m_pMaxButton) {
+        OnMaxButtonMouseMove(*(CPDF_Point*)lParam);
+      }
+
+      if (pWnd == m_pPosButton) {
+        OnPosButtonMouseMove(*(CPDF_Point*)lParam);
+      }
+      break;
+    case PNM_SETSCROLLINFO: {
+      if (PWL_SCROLL_INFO* pInfo = (PWL_SCROLL_INFO*)lParam) {
+        if (FXSYS_memcmp(&m_OriginInfo, pInfo, sizeof(PWL_SCROLL_INFO)) != 0) {
+          m_OriginInfo = *pInfo;
+          FX_FLOAT fMax =
+              pInfo->fContentMax - pInfo->fContentMin - pInfo->fPlateWidth;
+          fMax = fMax > 0.0f ? fMax : 0.0f;
+          SetScrollRange(0, fMax, pInfo->fPlateWidth);
+          SetScrollStep(pInfo->fBigStep, pInfo->fSmallStep);
+        }
+      }
+    } break;
+    case PNM_SETSCROLLPOS: {
+      FX_FLOAT fPos = *(FX_FLOAT*)lParam;
+      switch (m_sbType) {
+        case SBT_HSCROLL:
+          fPos = fPos - m_OriginInfo.fContentMin;
+          break;
+        case SBT_VSCROLL:
+          fPos = m_OriginInfo.fContentMax - fPos;
+          break;
+      }
+      SetScrollPos(fPos);
+    } break;
+  }
 }
 
-FX_BOOL CPWL_ScrollBar::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	CPWL_Wnd::OnLButtonUp(point,nFlag);
-
-	if (HasFlag(PWS_AUTOTRANSPARENT))
-	{
-		if (GetTransparency() != PWL_SCROLLBAR_TRANSPARANCY)
-		{
-			SetTransparency(PWL_SCROLLBAR_TRANSPARANCY);
-			InvalidateRect();
-		}
-	}
+void CPWL_ScrollBar::CreateButtons(const PWL_CREATEPARAM& cp) {
+  PWL_CREATEPARAM scp = cp;
+  scp.pParentWnd = this;
+  scp.dwBorderWidth = 2;
+  scp.nBorderStyle = PBS_BEVELED;
+
+  scp.dwFlags =
+      PWS_VISIBLE | PWS_CHILD | PWS_BORDER | PWS_BACKGROUND | PWS_NOREFRESHCLIP;
+
+  if (!m_pMinButton) {
+    m_pMinButton = new CPWL_SBButton(m_sbType, PSBT_MIN);
+    m_pMinButton->Create(scp);
+  }
+
+  if (!m_pMaxButton) {
+    m_pMaxButton = new CPWL_SBButton(m_sbType, PSBT_MAX);
+    m_pMaxButton->Create(scp);
+  }
+
+  if (!m_pPosButton) {
+    m_pPosButton = new CPWL_SBButton(m_sbType, PSBT_POS);
+    m_pPosButton->SetVisible(FALSE);
+    m_pPosButton->Create(scp);
+  }
+}
 
-	EndTimer();
-	m_bMouseDown = FALSE;
+FX_FLOAT CPWL_ScrollBar::GetScrollBarWidth() const {
+  if (!IsVisible())
+    return 0;
 
-	return TRUE;
+  return PWL_SCROLLBAR_WIDTH;
 }
 
-void CPWL_ScrollBar::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
-{
-	CPWL_Wnd::OnNotify(pWnd,msg,wParam,lParam);
-
-	switch (msg)
-	{
-	case PNM_LBUTTONDOWN:
-		if (pWnd == m_pMinButton)
-		{
-			OnMinButtonLBDown(*(CPDF_Point*)lParam);
-		}
-
-		if (pWnd == m_pMaxButton)
-		{
-			OnMaxButtonLBDown(*(CPDF_Point*)lParam);
-		}
-
-		if (pWnd == m_pPosButton)
-		{
-			OnPosButtonLBDown(*(CPDF_Point*)lParam);
-		}
-		break;
-	case PNM_LBUTTONUP:
-		if (pWnd == m_pMinButton)
-		{
-			OnMinButtonLBUp(*(CPDF_Point*)lParam);
-		}
-
-		if (pWnd == m_pMaxButton)
-		{
-			OnMaxButtonLBUp(*(CPDF_Point*)lParam);
-		}
-
-		if (pWnd == m_pPosButton)
-		{
-			OnPosButtonLBUp(*(CPDF_Point*)lParam);
-		}
-		break;
-	case PNM_MOUSEMOVE:
-		if (pWnd == m_pMinButton)
-		{
-			OnMinButtonMouseMove(*(CPDF_Point*)lParam);
-		}
-
-		if (pWnd == m_pMaxButton)
-		{
-			OnMaxButtonMouseMove(*(CPDF_Point*)lParam);
-		}
-
-		if (pWnd == m_pPosButton)
-		{
-			OnPosButtonMouseMove(*(CPDF_Point*)lParam);
-		}
-		break;
-	case PNM_SETSCROLLINFO:
-		{
-			if (PWL_SCROLL_INFO * pInfo = (PWL_SCROLL_INFO*)lParam)
-			{
-				if (FXSYS_memcmp(&m_OriginInfo, pInfo, sizeof(PWL_SCROLL_INFO)) != 0)
-				{
-					m_OriginInfo = *pInfo;
-					FX_FLOAT fMax = pInfo->fContentMax - pInfo->fContentMin - pInfo->fPlateWidth;
-					fMax = fMax > 0.0f ? fMax : 0.0f;
-					SetScrollRange(0, fMax, pInfo->fPlateWidth);
-					SetScrollStep(pInfo->fBigStep, pInfo->fSmallStep);
-				}
-			}
-		}
-		break;
-	case PNM_SETSCROLLPOS:
-		{
-			FX_FLOAT fPos = *(FX_FLOAT*)lParam;
-			switch (m_sbType)
-			{
-			case SBT_HSCROLL:
-				fPos = fPos - m_OriginInfo.fContentMin;
-				break;
-			case SBT_VSCROLL:
-				fPos = m_OriginInfo.fContentMax - fPos;
-				break;
-			}
-			SetScrollPos(fPos);
-		}
-		break;
-	}
+void CPWL_ScrollBar::SetScrollRange(FX_FLOAT fMin,
+                                    FX_FLOAT fMax,
+                                    FX_FLOAT fClientWidth) {
+  if (m_pPosButton) {
+    m_sData.SetScrollRange(fMin, fMax);
+    m_sData.SetClientWidth(fClientWidth);
+
+    if (IsFloatSmaller(m_sData.ScrollRange.GetWidth(), 0.0f)) {
+      m_pPosButton->SetVisible(FALSE);
+    } else {
+      m_pPosButton->SetVisible(TRUE);
+      MovePosButton(TRUE);
+    }
+  }
 }
 
-void CPWL_ScrollBar::CreateButtons(const PWL_CREATEPARAM & cp)
-{
-	PWL_CREATEPARAM	scp = cp;
-	scp.pParentWnd = this;
-	scp.dwBorderWidth = 2;
-	scp.nBorderStyle = PBS_BEVELED;
-
-	scp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BORDER | PWS_BACKGROUND | PWS_NOREFRESHCLIP;
-
-	if (!m_pMinButton)
-	{
-		m_pMinButton = new CPWL_SBButton(m_sbType,PSBT_MIN);
-		m_pMinButton->Create(scp);
-	}
-
-	if (!m_pMaxButton)
-	{
-		m_pMaxButton = new CPWL_SBButton(m_sbType,PSBT_MAX);
-		m_pMaxButton->Create(scp);
-	}
-
-	if (!m_pPosButton)
-	{
-		m_pPosButton = new CPWL_SBButton(m_sbType,PSBT_POS);
-		m_pPosButton->SetVisible(FALSE);
-		m_pPosButton->Create(scp);
-	}
-}
+void CPWL_ScrollBar::SetScrollPos(FX_FLOAT fPos) {
+  FX_FLOAT fOldPos = m_sData.fScrollPos;
 
-FX_FLOAT CPWL_ScrollBar::GetScrollBarWidth() const
-{
-	if (!IsVisible()) return 0;
+  m_sData.SetPos(fPos);
 
-	return PWL_SCROLLBAR_WIDTH;
+  if (!IsFloatEqual(m_sData.fScrollPos, fOldPos))
+    MovePosButton(TRUE);
 }
 
-void CPWL_ScrollBar::SetScrollRange(FX_FLOAT fMin,FX_FLOAT fMax,FX_FLOAT fClientWidth)
-{
-	if (m_pPosButton)
-	{
-		m_sData.SetScrollRange(fMin,fMax);
-		m_sData.SetClientWidth(fClientWidth);
-
-		if (IsFloatSmaller(m_sData.ScrollRange.GetWidth(), 0.0f))
-		{
-			m_pPosButton->SetVisible(FALSE);
-		}
-		else
-		{
-			m_pPosButton->SetVisible(TRUE);
-			MovePosButton(TRUE);
-		}
-	}
+void CPWL_ScrollBar::SetScrollStep(FX_FLOAT fBigStep, FX_FLOAT fSmallStep) {
+  m_sData.SetBigStep(fBigStep);
+  m_sData.SetSmallStep(fSmallStep);
 }
 
-void CPWL_ScrollBar::SetScrollPos(FX_FLOAT fPos)
-{
-	FX_FLOAT fOldPos = m_sData.fScrollPos;
+void CPWL_ScrollBar::MovePosButton(FX_BOOL bRefresh) {
+  ASSERT(m_pPosButton != NULL);
+  ASSERT(m_pMinButton != NULL);
+  ASSERT(m_pMaxButton != NULL);
 
-	m_sData.SetPos(fPos);
+  if (m_pPosButton->IsVisible()) {
+    CPDF_Rect rcClient;
+    CPDF_Rect rcPosArea, rcPosButton;
 
-	if (!IsFloatEqual(m_sData.fScrollPos, fOldPos))
-		MovePosButton(TRUE);
-}
+    rcClient = GetClientRect();
+    rcPosArea = GetScrollArea();
 
-void CPWL_ScrollBar::SetScrollStep(FX_FLOAT fBigStep,FX_FLOAT fSmallStep)
-{
-	m_sData.SetBigStep(fBigStep);
-	m_sData.SetSmallStep(fSmallStep);
-}
+    FX_FLOAT fLeft, fRight, fTop, fBottom;
 
-void CPWL_ScrollBar::MovePosButton(FX_BOOL bRefresh)
-{
-	ASSERT (m_pPosButton != NULL);
-	ASSERT (m_pMinButton != NULL);
-	ASSERT (m_pMaxButton != NULL);
+    switch (m_sbType) {
+      case SBT_HSCROLL:
+        fLeft = TrueToFace(m_sData.fScrollPos);
+        fRight = TrueToFace(m_sData.fScrollPos + m_sData.fClientWidth);
 
-	if (m_pPosButton->IsVisible())
-	{
+        if (fRight - fLeft < PWL_SCROLLBAR_POSBUTTON_MINWIDTH)
+          fRight = fLeft + PWL_SCROLLBAR_POSBUTTON_MINWIDTH;
 
+        if (fRight > rcPosArea.right) {
+          fRight = rcPosArea.right;
+          fLeft = fRight - PWL_SCROLLBAR_POSBUTTON_MINWIDTH;
+        }
 
+        rcPosButton = CPDF_Rect(fLeft, rcPosArea.bottom, fRight, rcPosArea.top);
 
+        break;
+      case SBT_VSCROLL:
+        fBottom = TrueToFace(m_sData.fScrollPos + m_sData.fClientWidth);
+        fTop = TrueToFace(m_sData.fScrollPos);
 
-		CPDF_Rect rcClient;
-		CPDF_Rect rcPosArea,rcPosButton;
+        if (IsFloatSmaller(fTop - fBottom, PWL_SCROLLBAR_POSBUTTON_MINWIDTH))
+          fBottom = fTop - PWL_SCROLLBAR_POSBUTTON_MINWIDTH;
 
-		rcClient = GetClientRect();
-		rcPosArea = GetScrollArea();
+        if (IsFloatSmaller(fBottom, rcPosArea.bottom)) {
+          fBottom = rcPosArea.bottom;
+          fTop = fBottom + PWL_SCROLLBAR_POSBUTTON_MINWIDTH;
+        }
 
-		FX_FLOAT fLeft,fRight,fTop,fBottom;
+        rcPosButton = CPDF_Rect(rcPosArea.left, fBottom, rcPosArea.right, fTop);
 
-		switch (m_sbType)
-		{
-		case SBT_HSCROLL:
-			fLeft = TrueToFace(m_sData.fScrollPos);
-			fRight = TrueToFace(m_sData.fScrollPos + m_sData.fClientWidth);
+        break;
+    }
 
-			if (fRight - fLeft < PWL_SCROLLBAR_POSBUTTON_MINWIDTH)
-				fRight = fLeft + PWL_SCROLLBAR_POSBUTTON_MINWIDTH;
+    m_pPosButton->Move(rcPosButton, TRUE, bRefresh);
+  }
+}
 
-			if (fRight > rcPosArea.right)
-			{
-				fRight = rcPosArea.right;
-				fLeft = fRight - PWL_SCROLLBAR_POSBUTTON_MINWIDTH;
-			}
+void CPWL_ScrollBar::OnMinButtonLBDown(const CPDF_Point& point) {
+  m_sData.SubSmall();
+  MovePosButton(TRUE);
+  NotifyScrollWindow();
 
-			rcPosButton = CPDF_Rect(fLeft ,
-								rcPosArea.bottom,
-								fRight ,
-								rcPosArea.top);
+  m_bMinOrMax = TRUE;
 
-			break;
-		case SBT_VSCROLL:
-			fBottom = TrueToFace(m_sData.fScrollPos + m_sData.fClientWidth);
-			fTop = TrueToFace(m_sData.fScrollPos);
+  EndTimer();
+  BeginTimer(100);
+}
 
-			if (IsFloatSmaller(fTop - fBottom, PWL_SCROLLBAR_POSBUTTON_MINWIDTH))
-				fBottom = fTop - PWL_SCROLLBAR_POSBUTTON_MINWIDTH;
+void CPWL_ScrollBar::OnMinButtonLBUp(const CPDF_Point& point) {}
 
-			if (IsFloatSmaller(fBottom, rcPosArea.bottom))
-			{
-				fBottom = rcPosArea.bottom;
-				fTop = fBottom + PWL_SCROLLBAR_POSBUTTON_MINWIDTH;
-			}
+void CPWL_ScrollBar::OnMinButtonMouseMove(const CPDF_Point& point) {}
 
-			rcPosButton = CPDF_Rect(rcPosArea.left,
-								fBottom,
-								rcPosArea.right,
-								fTop);
+void CPWL_ScrollBar::OnMaxButtonLBDown(const CPDF_Point& point) {
+  m_sData.AddSmall();
+  MovePosButton(TRUE);
+  NotifyScrollWindow();
 
-			break;
-		}
+  m_bMinOrMax = FALSE;
 
-		m_pPosButton->Move(rcPosButton,TRUE,bRefresh);
-	}
+  EndTimer();
+  BeginTimer(100);
 }
 
-void CPWL_ScrollBar::OnMinButtonLBDown(const CPDF_Point & point)
-{
-	m_sData.SubSmall();
-	MovePosButton(TRUE);
-	NotifyScrollWindow();
+void CPWL_ScrollBar::OnMaxButtonLBUp(const CPDF_Point& point) {}
 
-	m_bMinOrMax = TRUE;
+void CPWL_ScrollBar::OnMaxButtonMouseMove(const CPDF_Point& point) {}
 
-	EndTimer();
-	BeginTimer(100);
-}
+void CPWL_ScrollBar::OnPosButtonLBDown(const CPDF_Point& point) {
+  m_bMouseDown = TRUE;
+
+  if (m_pPosButton) {
+    CPDF_Rect rcPosButton = m_pPosButton->GetWindowRect();
 
-void CPWL_ScrollBar::OnMinButtonLBUp(const CPDF_Point & point)
-{
+    switch (m_sbType) {
+      case SBT_HSCROLL:
+        m_nOldPos = point.x;
+        m_fOldPosButton = rcPosButton.left;
+        break;
+      case SBT_VSCROLL:
+        m_nOldPos = point.y;
+        m_fOldPosButton = rcPosButton.top;
+        break;
+    }
+  }
 }
 
-void CPWL_ScrollBar::OnMinButtonMouseMove(const CPDF_Point & point)
-{
+void CPWL_ScrollBar::OnPosButtonLBUp(const CPDF_Point& point) {
+  if (m_bMouseDown) {
+    if (!m_bNotifyForever)
+      NotifyScrollWindow();
+  }
+  m_bMouseDown = FALSE;
 }
 
-void CPWL_ScrollBar::OnMaxButtonLBDown(const CPDF_Point & point)
-{
-	m_sData.AddSmall();
-	MovePosButton(TRUE);
-	NotifyScrollWindow();
+void CPWL_ScrollBar::OnPosButtonMouseMove(const CPDF_Point& point) {
+  FX_FLOAT fOldScrollPos = m_sData.fScrollPos;
 
-	m_bMinOrMax = FALSE;
+  FX_FLOAT fNewPos = 0;
 
-	EndTimer();
-	BeginTimer(100);
-}
+  switch (m_sbType) {
+    case SBT_HSCROLL:
+      if (FXSYS_fabs(point.x - m_nOldPos) < 1)
+        return;
+      fNewPos = FaceToTrue(m_fOldPosButton + point.x - m_nOldPos);
+      break;
+    case SBT_VSCROLL:
+      if (FXSYS_fabs(point.y - m_nOldPos) < 1)
+        return;
+      fNewPos = FaceToTrue(m_fOldPosButton + point.y - m_nOldPos);
+      break;
+  }
 
-void CPWL_ScrollBar::OnMaxButtonLBUp(const CPDF_Point & point)
-{
-}
+  if (m_bMouseDown) {
+    switch (m_sbType) {
+      case SBT_HSCROLL:
 
-void CPWL_ScrollBar::OnMaxButtonMouseMove(const CPDF_Point & point)
-{
-}
+        if (IsFloatSmaller(fNewPos, m_sData.ScrollRange.fMin)) {
+          fNewPos = m_sData.ScrollRange.fMin;
+        }
 
-void CPWL_ScrollBar::OnPosButtonLBDown(const CPDF_Point & point)
-{
-	m_bMouseDown = TRUE;
-
-	if (m_pPosButton)
-	{
-		CPDF_Rect rcPosButton = m_pPosButton->GetWindowRect();
-
-		switch(m_sbType)
-		{
-		case SBT_HSCROLL:
-			m_nOldPos = point.x;
-			m_fOldPosButton = rcPosButton.left;
-			break;
-		case SBT_VSCROLL:
-			m_nOldPos = point.y;
-			m_fOldPosButton = rcPosButton.top;
-			break;
-		}
-	}
-}
+        if (IsFloatBigger(fNewPos, m_sData.ScrollRange.fMax)) {
+          fNewPos = m_sData.ScrollRange.fMax;
+        }
 
-void CPWL_ScrollBar::OnPosButtonLBUp(const CPDF_Point & point)
-{
-	if (m_bMouseDown)
-	{
-		if (!m_bNotifyForever)
-			NotifyScrollWindow();
-	}
-	m_bMouseDown = FALSE;
-}
+        m_sData.SetPos(fNewPos);
+
+        break;
+      case SBT_VSCROLL:
+
+        if (IsFloatSmaller(fNewPos, m_sData.ScrollRange.fMin)) {
+          fNewPos = m_sData.ScrollRange.fMin;
+        }
+
+        if (IsFloatBigger(fNewPos, m_sData.ScrollRange.fMax)) {
+          fNewPos = m_sData.ScrollRange.fMax;
+        }
+
+        m_sData.SetPos(fNewPos);
+
+        break;
+    }
+
+    if (!IsFloatEqual(fOldScrollPos, m_sData.fScrollPos)) {
+      MovePosButton(TRUE);
 
-void CPWL_ScrollBar::OnPosButtonMouseMove(const CPDF_Point & point)
-{
-	FX_FLOAT fOldScrollPos = m_sData.fScrollPos;
-
-	FX_FLOAT fNewPos = 0;
-
-	switch (m_sbType)
-	{
-	case SBT_HSCROLL:
-		if (FXSYS_fabs(point.x - m_nOldPos) < 1) return;
-		fNewPos = FaceToTrue(m_fOldPosButton + point.x - m_nOldPos);
-		break;
-	case SBT_VSCROLL:
-		if (FXSYS_fabs(point.y - m_nOldPos) < 1) return;
-		fNewPos = FaceToTrue(m_fOldPosButton + point.y - m_nOldPos);
-		break;
-	}
-
-	if (m_bMouseDown)
-	{
-		switch (m_sbType)
-		{
-		case SBT_HSCROLL:
-
-			if (IsFloatSmaller(fNewPos, m_sData.ScrollRange.fMin))
-			{
-				fNewPos = m_sData.ScrollRange.fMin;
-			}
-
-			if (IsFloatBigger(fNewPos, m_sData.ScrollRange.fMax))
-			{
-				fNewPos = m_sData.ScrollRange.fMax;
-			}
-
-			m_sData.SetPos(fNewPos);
-
-			break;
-		case SBT_VSCROLL:
-
-			if (IsFloatSmaller(fNewPos, m_sData.ScrollRange.fMin))
-			{
-				fNewPos = m_sData.ScrollRange.fMin;
-			}
-
-			if (IsFloatBigger(fNewPos, m_sData.ScrollRange.fMax))
-			{
-				fNewPos = m_sData.ScrollRange.fMax;
-			}
-
-			m_sData.SetPos(fNewPos);
-
-			break;
-		}
-
-		if (!IsFloatEqual(fOldScrollPos, m_sData.fScrollPos))
-		{
-			MovePosButton(TRUE);
-
-			if (m_bNotifyForever)
-				NotifyScrollWindow();
-		}
-	}
+      if (m_bNotifyForever)
+        NotifyScrollWindow();
+    }
+  }
 }
 
-void CPWL_ScrollBar::NotifyScrollWindow()
-{
-	if (CPWL_Wnd * pParent = GetParentWindow())
-	{
-		FX_FLOAT fPos;
-		switch (m_sbType)
-		{
-		case SBT_HSCROLL:
-			fPos = m_OriginInfo.fContentMin + m_sData.fScrollPos;
-			break;
-		case SBT_VSCROLL:
-			fPos = m_OriginInfo.fContentMax - m_sData.fScrollPos;
-			break;
-		}
-		pParent->OnNotify(this,PNM_SCROLLWINDOW,(intptr_t)m_sbType,(intptr_t)&fPos);
-	}
+void CPWL_ScrollBar::NotifyScrollWindow() {
+  if (CPWL_Wnd* pParent = GetParentWindow()) {
+    FX_FLOAT fPos;
+    switch (m_sbType) {
+      case SBT_HSCROLL:
+        fPos = m_OriginInfo.fContentMin + m_sData.fScrollPos;
+        break;
+      case SBT_VSCROLL:
+        fPos = m_OriginInfo.fContentMax - m_sData.fScrollPos;
+        break;
+    }
+    pParent->OnNotify(this, PNM_SCROLLWINDOW, (intptr_t)m_sbType,
+                      (intptr_t)&fPos);
+  }
 }
 
-CPDF_Rect CPWL_ScrollBar::GetScrollArea() const
-{
-	CPDF_Rect rcClient = GetClientRect();
-	CPDF_Rect rcArea;
-
-	if (!m_pMinButton || !m_pMaxButton)return rcClient;
-
-	CPDF_Rect rcMin = m_pMinButton->GetWindowRect();
-	CPDF_Rect rcMax = m_pMaxButton->GetWindowRect();
-
-	FX_FLOAT fMinWidth = rcMin.right - rcMin.left;
-	FX_FLOAT fMinHeight = rcMin.top - rcMin.bottom;
-	FX_FLOAT fMaxWidth = rcMax.right - rcMax.left;
-	FX_FLOAT fMaxHeight = rcMax.top - rcMax.bottom;
-
-	switch(m_sbType)
-	{
-	case SBT_HSCROLL:
-		if (rcClient.right - rcClient.left > fMinWidth + fMaxWidth + 2)
-		{
-			rcArea = CPDF_Rect(rcClient.left + fMinWidth + 1,rcClient.bottom,
-						rcClient.right - fMaxWidth - 1,rcClient.top);
-		}
-		else
-		{
-			rcArea = CPDF_Rect(rcClient.left + fMinWidth + 1,rcClient.bottom,
-						rcClient.left + fMinWidth + 1,rcClient.top);
-		}
-		break;
-	case SBT_VSCROLL:
-		if (rcClient.top - rcClient.bottom > fMinHeight + fMaxHeight + 2)
-		{
-			rcArea = CPDF_Rect(rcClient.left,rcClient.bottom + fMinHeight + 1,
-						rcClient.right,rcClient.top - fMaxHeight - 1);
-		}
-		else
-		{
-			rcArea = CPDF_Rect(rcClient.left,rcClient.bottom + fMinHeight + 1,
-						rcClient.right,rcClient.bottom + fMinHeight + 1);
-		}
-		break;
-	}
-
-	rcArea.Normalize();
-
-	return rcArea;
+CPDF_Rect CPWL_ScrollBar::GetScrollArea() const {
+  CPDF_Rect rcClient = GetClientRect();
+  CPDF_Rect rcArea;
+
+  if (!m_pMinButton || !m_pMaxButton)
+    return rcClient;
+
+  CPDF_Rect rcMin = m_pMinButton->GetWindowRect();
+  CPDF_Rect rcMax = m_pMaxButton->GetWindowRect();
+
+  FX_FLOAT fMinWidth = rcMin.right - rcMin.left;
+  FX_FLOAT fMinHeight = rcMin.top - rcMin.bottom;
+  FX_FLOAT fMaxWidth = rcMax.right - rcMax.left;
+  FX_FLOAT fMaxHeight = rcMax.top - rcMax.bottom;
+
+  switch (m_sbType) {
+    case SBT_HSCROLL:
+      if (rcClient.right - rcClient.left > fMinWidth + fMaxWidth + 2) {
+        rcArea = CPDF_Rect(rcClient.left + fMinWidth + 1, rcClient.bottom,
+                           rcClient.right - fMaxWidth - 1, rcClient.top);
+      } else {
+        rcArea = CPDF_Rect(rcClient.left + fMinWidth + 1, rcClient.bottom,
+                           rcClient.left + fMinWidth + 1, rcClient.top);
+      }
+      break;
+    case SBT_VSCROLL:
+      if (rcClient.top - rcClient.bottom > fMinHeight + fMaxHeight + 2) {
+        rcArea = CPDF_Rect(rcClient.left, rcClient.bottom + fMinHeight + 1,
+                           rcClient.right, rcClient.top - fMaxHeight - 1);
+      } else {
+        rcArea = CPDF_Rect(rcClient.left, rcClient.bottom + fMinHeight + 1,
+                           rcClient.right, rcClient.bottom + fMinHeight + 1);
+      }
+      break;
+  }
+
+  rcArea.Normalize();
+
+  return rcArea;
 }
 
-FX_FLOAT CPWL_ScrollBar::TrueToFace(FX_FLOAT fTrue)
-{
-	CPDF_Rect rcPosArea;
-	rcPosArea = GetScrollArea();
+FX_FLOAT CPWL_ScrollBar::TrueToFace(FX_FLOAT fTrue) {
+  CPDF_Rect rcPosArea;
+  rcPosArea = GetScrollArea();
 
-	FX_FLOAT fFactWidth = m_sData.ScrollRange.GetWidth() + m_sData.fClientWidth;
-	fFactWidth = fFactWidth == 0 ? 1 : fFactWidth;
+  FX_FLOAT fFactWidth = m_sData.ScrollRange.GetWidth() + m_sData.fClientWidth;
+  fFactWidth = fFactWidth == 0 ? 1 : fFactWidth;
 
-	FX_FLOAT fFace = 0;
+  FX_FLOAT fFace = 0;
 
-	switch(m_sbType)
-	{
-	case SBT_HSCROLL:
-		fFace = rcPosArea.left + fTrue * (rcPosArea.right - rcPosArea.left) / fFactWidth;
-		break;
-	case SBT_VSCROLL:
-		fFace = rcPosArea.top - fTrue * (rcPosArea.top - rcPosArea.bottom) / fFactWidth;
-		break;
-	}
+  switch (m_sbType) {
+    case SBT_HSCROLL:
+      fFace = rcPosArea.left +
+              fTrue * (rcPosArea.right - rcPosArea.left) / fFactWidth;
+      break;
+    case SBT_VSCROLL:
+      fFace = rcPosArea.top -
+              fTrue * (rcPosArea.top - rcPosArea.bottom) / fFactWidth;
+      break;
+  }
 
-	return fFace;
+  return fFace;
 }
 
-FX_FLOAT CPWL_ScrollBar::FaceToTrue(FX_FLOAT fFace)
-{
-	CPDF_Rect rcPosArea;
-	rcPosArea = GetScrollArea();
+FX_FLOAT CPWL_ScrollBar::FaceToTrue(FX_FLOAT fFace) {
+  CPDF_Rect rcPosArea;
+  rcPosArea = GetScrollArea();
 
-	FX_FLOAT fFactWidth = m_sData.ScrollRange.GetWidth() + m_sData.fClientWidth;
-	fFactWidth = fFactWidth == 0 ? 1 : fFactWidth;
+  FX_FLOAT fFactWidth = m_sData.ScrollRange.GetWidth() + m_sData.fClientWidth;
+  fFactWidth = fFactWidth == 0 ? 1 : fFactWidth;
 
-	FX_FLOAT fTrue = 0;
+  FX_FLOAT fTrue = 0;
 
-	switch(m_sbType)
-	{
-	case SBT_HSCROLL:
-		fTrue =  (fFace - rcPosArea.left) * fFactWidth / (rcPosArea.right - rcPosArea.left);
-		break;
-	case SBT_VSCROLL:
-		fTrue = (rcPosArea.top - fFace) * fFactWidth / (rcPosArea.top - rcPosArea.bottom);
-		break;
-	}
+  switch (m_sbType) {
+    case SBT_HSCROLL:
+      fTrue = (fFace - rcPosArea.left) * fFactWidth /
+              (rcPosArea.right - rcPosArea.left);
+      break;
+    case SBT_VSCROLL:
+      fTrue = (rcPosArea.top - fFace) * fFactWidth /
+              (rcPosArea.top - rcPosArea.bottom);
+      break;
+  }
 
-	return fTrue;
+  return fTrue;
 }
 
-void CPWL_ScrollBar::CreateChildWnd(const PWL_CREATEPARAM & cp)
-{
-	CreateButtons(cp);
+void CPWL_ScrollBar::CreateChildWnd(const PWL_CREATEPARAM& cp) {
+  CreateButtons(cp);
 }
 
-void CPWL_ScrollBar::TimerProc()
-{
-	PWL_SCROLL_PRIVATEDATA sTemp = m_sData;
+void CPWL_ScrollBar::TimerProc() {
+  PWL_SCROLL_PRIVATEDATA sTemp = m_sData;
 
-	if (m_bMinOrMax)m_sData.SubSmall();
-	else m_sData.AddSmall();
+  if (m_bMinOrMax)
+    m_sData.SubSmall();
+  else
+    m_sData.AddSmall();
 
-	if (FXSYS_memcmp(&m_sData, &sTemp, sizeof(PWL_SCROLL_PRIVATEDATA)) != 0)
-	{
-		MovePosButton(TRUE);
-		NotifyScrollWindow();
-	}
+  if (FXSYS_memcmp(&m_sData, &sTemp, sizeof(PWL_SCROLL_PRIVATEDATA)) != 0) {
+    MovePosButton(TRUE);
+    NotifyScrollWindow();
+  }
 }
diff --git a/fpdfsdk/src/pdfwindow/PWL_Signature.cpp b/fpdfsdk/src/pdfwindow/PWL_Signature.cpp
index 76b2bd333a..bfe32ae8ad 100644
--- a/fpdfsdk/src/pdfwindow/PWL_Signature.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_Signature.cpp
@@ -11,210 +11,194 @@
 #include "../../include/pdfwindow/PWL_Label.h"
 #include "../../include/pdfwindow/PWL_Utils.h"
 
-/* --------------------------------- CPWL_Signature_Image --------------------------------- */
+/* --------------------------------- CPWL_Signature_Image
+ * --------------------------------- */
 
-CPWL_Signature_Image::CPWL_Signature_Image() : m_pImage(NULL)
-{
-}
+CPWL_Signature_Image::CPWL_Signature_Image() : m_pImage(NULL) {}
 
-CPWL_Signature_Image::~CPWL_Signature_Image()
-{
-}
+CPWL_Signature_Image::~CPWL_Signature_Image() {}
 
-void CPWL_Signature_Image::SetImage(CFX_DIBSource* pImage)
-{
-	m_pImage = pImage;
+void CPWL_Signature_Image::SetImage(CFX_DIBSource* pImage) {
+  m_pImage = pImage;
 }
 
-CFX_DIBSource* CPWL_Signature_Image::GetImage()
-{
-	return m_pImage;
+CFX_DIBSource* CPWL_Signature_Image::GetImage() {
+  return m_pImage;
 }
 
-void CPWL_Signature_Image::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
+void CPWL_Signature_Image::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                              CPDF_Matrix* pUser2Device) {
+  CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
 
-	if (m_pImage)
-	{
-		CPDF_Rect rcClient = GetClientRect();
+  if (m_pImage) {
+    CPDF_Rect rcClient = GetClientRect();
 
-		FX_FLOAT x, y;
-		pUser2Device->Transform(rcClient.left, rcClient.top, x, y);
+    FX_FLOAT x, y;
+    pUser2Device->Transform(rcClient.left, rcClient.top, x, y);
 
-		pDevice->StretchDIBits(m_pImage, (int32_t)x, (int32_t)y,
-			(int32_t)rcClient.Width(), (int32_t)rcClient.Height());
-	}
+    pDevice->StretchDIBits(m_pImage, (int32_t)x, (int32_t)y,
+                           (int32_t)rcClient.Width(),
+                           (int32_t)rcClient.Height());
+  }
 }
 
-void CPWL_Signature_Image::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream)
-{
-	sAppStream << CPWL_Image::GetImageAppStream();
+void CPWL_Signature_Image::GetThisAppearanceStream(
+    CFX_ByteTextBuf& sAppStream) {
+  sAppStream << CPWL_Image::GetImageAppStream();
 }
 
-void CPWL_Signature_Image::GetScale(FX_FLOAT & fHScale,FX_FLOAT & fVScale)
-{
-	FX_FLOAT fImageW, fImageH;
+void CPWL_Signature_Image::GetScale(FX_FLOAT& fHScale, FX_FLOAT& fVScale) {
+  FX_FLOAT fImageW, fImageH;
 
-	GetImageSize(fImageW, fImageH);
+  GetImageSize(fImageW, fImageH);
 
-	CPDF_Rect rcClient = GetClientRect();
+  CPDF_Rect rcClient = GetClientRect();
 
-	fHScale = rcClient.Width() / fImageW;
-	fVScale = rcClient.Height() / fImageH;
+  fHScale = rcClient.Width() / fImageW;
+  fVScale = rcClient.Height() / fImageH;
 }
 
-/* --------------------------------- CPWL_Signature --------------------------------- */
+/* --------------------------------- CPWL_Signature
+ * --------------------------------- */
 
-CPWL_Signature::CPWL_Signature() :
-	m_pText(NULL),
-	m_pDescription(NULL),
-	m_pImage(NULL),
-	m_bTextExist(TRUE),
-	m_bImageExist(FALSE),
-	m_bFlagExist(TRUE)
-{
-}
+CPWL_Signature::CPWL_Signature()
+    : m_pText(NULL),
+      m_pDescription(NULL),
+      m_pImage(NULL),
+      m_bTextExist(TRUE),
+      m_bImageExist(FALSE),
+      m_bFlagExist(TRUE) {}
 
-CPWL_Signature::~CPWL_Signature()
-{
-}
+CPWL_Signature::~CPWL_Signature() {}
 
-void CPWL_Signature::SetTextFlag(FX_BOOL bTextExist)
-{
-	m_bTextExist = bTextExist;
+void CPWL_Signature::SetTextFlag(FX_BOOL bTextExist) {
+  m_bTextExist = bTextExist;
 
-	RePosChildWnd();
+  RePosChildWnd();
 }
 
-void CPWL_Signature::SetImageFlag(FX_BOOL bImageExist)
-{
-	m_bImageExist = bImageExist;
+void CPWL_Signature::SetImageFlag(FX_BOOL bImageExist) {
+  m_bImageExist = bImageExist;
 
-	RePosChildWnd();
+  RePosChildWnd();
 }
 
-void CPWL_Signature::SetFoxitFlag(FX_BOOL bFlagExist)
-{
-	m_bFlagExist = bFlagExist;
+void CPWL_Signature::SetFoxitFlag(FX_BOOL bFlagExist) {
+  m_bFlagExist = bFlagExist;
 }
 
-void CPWL_Signature::SetText(const FX_WCHAR* sText)
-{
-	m_pText->SetText(sText);
+void CPWL_Signature::SetText(const FX_WCHAR* sText) {
+  m_pText->SetText(sText);
 
-	RePosChildWnd();
+  RePosChildWnd();
 }
 
-void CPWL_Signature::SetDescription(const FX_WCHAR* string)
-{
-	m_pDescription->SetText(string);
+void CPWL_Signature::SetDescription(const FX_WCHAR* string) {
+  m_pDescription->SetText(string);
 
-	RePosChildWnd();
+  RePosChildWnd();
 }
 
-void CPWL_Signature::SetImage(CFX_DIBSource* pImage)
-{
-	m_pImage->SetImage(pImage);
+void CPWL_Signature::SetImage(CFX_DIBSource* pImage) {
+  m_pImage->SetImage(pImage);
 
-	RePosChildWnd();
+  RePosChildWnd();
 }
 
-void CPWL_Signature::SetImageStream(CPDF_Stream * pStream, const FX_CHAR* sImageAlias)
-{
-	m_pImage->SetPDFStream(pStream);
-	m_pImage->SetImageAlias(sImageAlias);
+void CPWL_Signature::SetImageStream(CPDF_Stream* pStream,
+                                    const FX_CHAR* sImageAlias) {
+  m_pImage->SetPDFStream(pStream);
+  m_pImage->SetImageAlias(sImageAlias);
 
-	RePosChildWnd();
+  RePosChildWnd();
 }
 
-void CPWL_Signature::RePosChildWnd()
-{
-	CPDF_Rect rcClient = GetClientRect();
+void CPWL_Signature::RePosChildWnd() {
+  CPDF_Rect rcClient = GetClientRect();
 
-	CPDF_Rect rcText = rcClient;
-	CPDF_Rect rcDescription = rcClient;
+  CPDF_Rect rcText = rcClient;
+  CPDF_Rect rcDescription = rcClient;
 
-	FX_BOOL bTextVisible = m_bTextExist && m_pText->GetText().GetLength() > 0;
+  FX_BOOL bTextVisible = m_bTextExist && m_pText->GetText().GetLength() > 0;
 
-	if ((bTextVisible || m_bImageExist) &&
-		m_pDescription->GetText().GetLength() > 0)
-	{
-		if (rcClient.Width() >= rcClient.Height())
-		{
-			rcText.right = rcText.left + rcClient.Width() / 2.0f;
-			rcDescription.left = rcDescription.right - rcClient.Width() / 2.0f;
-		}
-		else
-		{
-			rcText.bottom = rcText.top - rcClient.Height() / 2.0f;
-			rcDescription.top = rcDescription.bottom + rcClient.Height() / 2.0f;
-		}
-	}
+  if ((bTextVisible || m_bImageExist) &&
+      m_pDescription->GetText().GetLength() > 0) {
+    if (rcClient.Width() >= rcClient.Height()) {
+      rcText.right = rcText.left + rcClient.Width() / 2.0f;
+      rcDescription.left = rcDescription.right - rcClient.Width() / 2.0f;
+    } else {
+      rcText.bottom = rcText.top - rcClient.Height() / 2.0f;
+      rcDescription.top = rcDescription.bottom + rcClient.Height() / 2.0f;
+    }
+  }
 
-	m_pText->SetVisible(bTextVisible);
-	m_pImage->SetVisible(m_bImageExist);
+  m_pText->SetVisible(bTextVisible);
+  m_pImage->SetVisible(m_bImageExist);
 
-	m_pText->Move(rcText, TRUE, FALSE);
-	m_pImage->Move(rcText, TRUE, FALSE);
-	m_pDescription->Move(rcDescription, TRUE, FALSE);
+  m_pText->Move(rcText, TRUE, FALSE);
+  m_pImage->Move(rcText, TRUE, FALSE);
+  m_pDescription->Move(rcDescription, TRUE, FALSE);
 }
 
-void CPWL_Signature::CreateChildWnd(const PWL_CREATEPARAM & cp)
-{
-	m_pImage = new CPWL_Signature_Image;
-	PWL_CREATEPARAM icp = cp;
-	icp.pParentWnd = this;
-	icp.dwFlags = PWS_CHILD | PWS_VISIBLE;
-	icp.sTextColor = CPWL_Color(COLORTYPE_GRAY, 0);
-	m_pImage->Create(icp);
+void CPWL_Signature::CreateChildWnd(const PWL_CREATEPARAM& cp) {
+  m_pImage = new CPWL_Signature_Image;
+  PWL_CREATEPARAM icp = cp;
+  icp.pParentWnd = this;
+  icp.dwFlags = PWS_CHILD | PWS_VISIBLE;
+  icp.sTextColor = CPWL_Color(COLORTYPE_GRAY, 0);
+  m_pImage->Create(icp);
 
-	m_pText = new CPWL_Label;
-	PWL_CREATEPARAM acp = cp;
-	acp.pParentWnd = this;
-	acp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_AUTOFONTSIZE | PES_MULTILINE | PES_AUTORETURN | PES_MIDDLE | PES_CENTER;
-	acp.sTextColor = CPWL_Color(COLORTYPE_GRAY, 0);
-	m_pText->Create(acp);
+  m_pText = new CPWL_Label;
+  PWL_CREATEPARAM acp = cp;
+  acp.pParentWnd = this;
+  acp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_AUTOFONTSIZE | PES_MULTILINE |
+                PES_AUTORETURN | PES_MIDDLE | PES_CENTER;
+  acp.sTextColor = CPWL_Color(COLORTYPE_GRAY, 0);
+  m_pText->Create(acp);
 
-	m_pDescription = new CPWL_Label;
-	PWL_CREATEPARAM dcp = cp;
-	dcp.pParentWnd = this;
-	dcp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_AUTOFONTSIZE | PES_MULTILINE | PES_AUTORETURN | PES_LEFT | PES_CENTER;
-	dcp.sTextColor = CPWL_Color(COLORTYPE_GRAY, 0);
-	m_pDescription->Create(dcp);
+  m_pDescription = new CPWL_Label;
+  PWL_CREATEPARAM dcp = cp;
+  dcp.pParentWnd = this;
+  dcp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_AUTOFONTSIZE | PES_MULTILINE |
+                PES_AUTORETURN | PES_LEFT | PES_CENTER;
+  dcp.sTextColor = CPWL_Color(COLORTYPE_GRAY, 0);
+  m_pDescription->Create(dcp);
 }
 
-void CPWL_Signature::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-	CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
+void CPWL_Signature::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                        CPDF_Matrix* pUser2Device) {
+  CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
 
-	if (m_bFlagExist)
-		CPWL_Utils::DrawIconAppStream(pDevice, pUser2Device, PWL_ICONTYPE_FOXIT, CPWL_Utils::GetCenterSquare(GetClientRect()),
-			CPWL_Color(COLORTYPE_RGB,0.91f,0.855f,0.92f), CPWL_Color(COLORTYPE_TRANSPARENT), 255);
+  if (m_bFlagExist)
+    CPWL_Utils::DrawIconAppStream(
+        pDevice, pUser2Device, PWL_ICONTYPE_FOXIT,
+        CPWL_Utils::GetCenterSquare(GetClientRect()),
+        CPWL_Color(COLORTYPE_RGB, 0.91f, 0.855f, 0.92f),
+        CPWL_Color(COLORTYPE_TRANSPARENT), 255);
 
-	/*
-	CPDF_Rect rcClient = GetClientRect();
+  /*
+  CPDF_Rect rcClient = GetClientRect();
 
-	CFX_PathData path;
+  CFX_PathData path;
 
-	path.SetPointCount(2);
-	path.SetPoint(0, rcClient.left, (rcClient.top + rcClient.bottom) * 0.5f, FXPT_MOVETO);
-	path.SetPoint(1, rcClient.right, (rcClient.top + rcClient.bottom) * 0.5f, FXPT_LINETO);
+  path.SetPointCount(2);
+  path.SetPoint(0, rcClient.left, (rcClient.top + rcClient.bottom) * 0.5f,
+  FXPT_MOVETO);
+  path.SetPoint(1, rcClient.right, (rcClient.top + rcClient.bottom) * 0.5f,
+  FXPT_LINETO);
 
-	CFX_GraphStateData gsd;
-	gsd.SetDashCount(2);
-	gsd.m_DashArray[0] = 6.0f;
-	gsd.m_DashArray[1] = 6.0f;
-	gsd.m_DashPhase = 0;
+  CFX_GraphStateData gsd;
+  gsd.SetDashCount(2);
+  gsd.m_DashArray[0] = 6.0f;
+  gsd.m_DashArray[1] = 6.0f;
+  gsd.m_DashPhase = 0;
 
-	gsd.m_LineWidth = 10.0f;
-	pDevice->DrawPath(&path, pUser2Device, &gsd, 0, ArgbEncode(255,255,0,0), FXFILL_ALTERNATE);
-	*/
+  gsd.m_LineWidth = 10.0f;
+  pDevice->DrawPath(&path, pUser2Device, &gsd, 0, ArgbEncode(255,255,0,0),
+  FXFILL_ALTERNATE);
+  */
 }
 
-void CPWL_Signature::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream)
-{
-	CPWL_Wnd::GetThisAppearanceStream(sAppStream);
+void CPWL_Signature::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) {
+  CPWL_Wnd::GetThisAppearanceStream(sAppStream);
 }
-
-
diff --git a/fpdfsdk/src/pdfwindow/PWL_SpecialButton.cpp b/fpdfsdk/src/pdfwindow/PWL_SpecialButton.cpp
index 90fa8f880d..7f125ad1d7 100644
--- a/fpdfsdk/src/pdfwindow/PWL_SpecialButton.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_SpecialButton.cpp
@@ -12,99 +12,76 @@
 
 /* --------------------------- CPWL_PushButton ---------------------------- */
 
-CPWL_PushButton::CPWL_PushButton()
-{
-}
+CPWL_PushButton::CPWL_PushButton() {}
 
-CPWL_PushButton::~CPWL_PushButton()
-{
-}
+CPWL_PushButton::~CPWL_PushButton() {}
 
-CFX_ByteString CPWL_PushButton::GetClassName() const
-{
-	return "CPWL_PushButton";
+CFX_ByteString CPWL_PushButton::GetClassName() const {
+  return "CPWL_PushButton";
 }
 
-CPDF_Rect CPWL_PushButton::GetFocusRect() const
-{
-    return CPWL_Utils::DeflateRect(GetWindowRect(), (FX_FLOAT)GetBorderWidth());
+CPDF_Rect CPWL_PushButton::GetFocusRect() const {
+  return CPWL_Utils::DeflateRect(GetWindowRect(), (FX_FLOAT)GetBorderWidth());
 }
 
 /* --------------------------- CPWL_CheckBox ---------------------------- */
 
-CPWL_CheckBox::CPWL_CheckBox() : m_bChecked(FALSE)
-{
-}
+CPWL_CheckBox::CPWL_CheckBox() : m_bChecked(FALSE) {}
 
-CPWL_CheckBox::~CPWL_CheckBox()
-{
-}
+CPWL_CheckBox::~CPWL_CheckBox() {}
 
-CFX_ByteString CPWL_CheckBox::GetClassName() const
-{
-	return "CPWL_CheckBox";
+CFX_ByteString CPWL_CheckBox::GetClassName() const {
+  return "CPWL_CheckBox";
 }
 
-void CPWL_CheckBox::SetCheck(FX_BOOL bCheck)
-{
-	m_bChecked = bCheck;
+void CPWL_CheckBox::SetCheck(FX_BOOL bCheck) {
+  m_bChecked = bCheck;
 }
 
-FX_BOOL CPWL_CheckBox::IsChecked() const
-{
-	return m_bChecked;
+FX_BOOL CPWL_CheckBox::IsChecked() const {
+  return m_bChecked;
 }
 
-FX_BOOL CPWL_CheckBox::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	if (IsReadOnly()) return FALSE;
+FX_BOOL CPWL_CheckBox::OnLButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
+  if (IsReadOnly())
+    return FALSE;
 
-	SetCheck(!IsChecked());
-	return TRUE;
+  SetCheck(!IsChecked());
+  return TRUE;
 }
 
-FX_BOOL CPWL_CheckBox::OnChar(FX_WORD nChar, FX_DWORD nFlag)
-{
-	SetCheck(!IsChecked());
-	return TRUE;
+FX_BOOL CPWL_CheckBox::OnChar(FX_WORD nChar, FX_DWORD nFlag) {
+  SetCheck(!IsChecked());
+  return TRUE;
 }
 
 /* --------------------------- CPWL_RadioButton ---------------------------- */
 
-CPWL_RadioButton::CPWL_RadioButton() : m_bChecked(FALSE)
-{
-}
+CPWL_RadioButton::CPWL_RadioButton() : m_bChecked(FALSE) {}
 
-CPWL_RadioButton::~CPWL_RadioButton()
-{
-}
+CPWL_RadioButton::~CPWL_RadioButton() {}
 
-CFX_ByteString CPWL_RadioButton::GetClassName() const
-{
-	return "CPWL_RadioButton";
+CFX_ByteString CPWL_RadioButton::GetClassName() const {
+  return "CPWL_RadioButton";
 }
 
-FX_BOOL	CPWL_RadioButton::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag)
-{
-	if (IsReadOnly()) return FALSE;
+FX_BOOL CPWL_RadioButton::OnLButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
+  if (IsReadOnly())
+    return FALSE;
 
-	SetCheck(TRUE);
-	return TRUE;
+  SetCheck(TRUE);
+  return TRUE;
 }
 
-void CPWL_RadioButton::SetCheck(FX_BOOL bCheck)
-{
-	m_bChecked = bCheck;
+void CPWL_RadioButton::SetCheck(FX_BOOL bCheck) {
+  m_bChecked = bCheck;
 }
 
-FX_BOOL CPWL_RadioButton::IsChecked() const
-{
-	return m_bChecked;
+FX_BOOL CPWL_RadioButton::IsChecked() const {
+  return m_bChecked;
 }
 
-FX_BOOL CPWL_RadioButton::OnChar(FX_WORD nChar, FX_DWORD nFlag)
-{
-	SetCheck(TRUE);
-	return TRUE;
+FX_BOOL CPWL_RadioButton::OnChar(FX_WORD nChar, FX_DWORD nFlag) {
+  SetCheck(TRUE);
+  return TRUE;
 }
-
diff --git a/fpdfsdk/src/pdfwindow/PWL_Utils.cpp b/fpdfsdk/src/pdfwindow/PWL_Utils.cpp
index b9ba7661af..52b22b548a 100644
--- a/fpdfsdk/src/pdfwindow/PWL_Utils.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_Utils.cpp
@@ -9,2819 +9,3705 @@
 #include "../../include/pdfwindow/PWL_Utils.h"
 #include "../../include/pdfwindow/PWL_Icon.h"
 
-#define IsFloatZero(f)						((f) < 0.0001 && (f) > -0.0001)
-#define IsFloatBigger(fa,fb)				((fa) > (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatSmaller(fa,fb)				((fa) < (fb) && !IsFloatZero((fa) - (fb)))
-#define IsFloatEqual(fa,fb)					IsFloatZero((fa)-(fb))
+#define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001)
+#define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
+#define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb))
 
 /* ---------------------------- CPWL_Utils ------------------------------ */
 
-CFX_ByteString CPWL_Utils::GetAppStreamFromArray(const CPWL_PathData* pPathData, int32_t nCount)
-{
-	CFX_ByteTextBuf csAP;
-
-	for (int32_t i=0; i<nCount; i++)
-	{
-		switch (pPathData[i].type)
-		{
-		case PWLPT_MOVETO:
-			csAP << pPathData[i].point.x << " " << pPathData[i].point.y << " m\n";
-			break;
-		case PWLPT_LINETO:
-			csAP << pPathData[i].point.x << " " << pPathData[i].point.y << " l\n";
-			break;
-		case PWLPT_BEZIERTO:
-			csAP << pPathData[i].point.x << " " << pPathData[i].point.y << " "
-				 << pPathData[i+1].point.x << " " << pPathData[i+1].point.y << " "
-				 << pPathData[i+2].point.x << " " << pPathData[i+2].point.y << " c\n";
-
-			i += 2;
-			break;
-		default:
-			break;
-		}
-	}
-
-	return csAP.GetByteString();
-}
+CFX_ByteString CPWL_Utils::GetAppStreamFromArray(const CPWL_PathData* pPathData,
+                                                 int32_t nCount) {
+  CFX_ByteTextBuf csAP;
+
+  for (int32_t i = 0; i < nCount; i++) {
+    switch (pPathData[i].type) {
+      case PWLPT_MOVETO:
+        csAP << pPathData[i].point.x << " " << pPathData[i].point.y << " m\n";
+        break;
+      case PWLPT_LINETO:
+        csAP << pPathData[i].point.x << " " << pPathData[i].point.y << " l\n";
+        break;
+      case PWLPT_BEZIERTO:
+        csAP << pPathData[i].point.x << " " << pPathData[i].point.y << " "
+             << pPathData[i + 1].point.x << " " << pPathData[i + 1].point.y
+             << " " << pPathData[i + 2].point.x << " "
+             << pPathData[i + 2].point.y << " c\n";
+
+        i += 2;
+        break;
+      default:
+        break;
+    }
+  }
+
+  return csAP.GetByteString();
+}
+
+void CPWL_Utils::GetPathDataFromArray(CFX_PathData& path,
+                                      const CPWL_PathData* pPathData,
+                                      int32_t nCount) {
+  path.SetPointCount(nCount);
+
+  for (int32_t i = 0; i < nCount; i++) {
+    switch (pPathData[i].type) {
+      case PWLPT_MOVETO:
+        path.SetPoint(i, pPathData[i].point.x, pPathData[i].point.y,
+                      FXPT_MOVETO);
+        break;
+      case PWLPT_LINETO:
+        path.SetPoint(i, pPathData[i].point.x, pPathData[i].point.y,
+                      FXPT_LINETO);
+        break;
+      case PWLPT_BEZIERTO:
+        path.SetPoint(i, pPathData[i].point.x, pPathData[i].point.y,
+                      FXPT_BEZIERTO);
+        break;
+      default:
+        break;
+    }
+  }
+}
+
+CPDF_Rect CPWL_Utils::MaxRect(const CPDF_Rect& rect1, const CPDF_Rect& rect2) {
+  CPDF_Rect rcRet;
+
+  rcRet.left = PWL_MIN(rect1.left, rect2.left);
+  rcRet.bottom = PWL_MIN(rect1.bottom, rect2.bottom);
+  rcRet.right = PWL_MAX(rect1.right, rect2.right);
+  rcRet.top = PWL_MAX(rect1.top, rect2.top);
+
+  return rcRet;
+}
+
+CPDF_Rect CPWL_Utils::OffsetRect(const CPDF_Rect& rect,
+                                 FX_FLOAT x,
+                                 FX_FLOAT y) {
+  return CPDF_Rect(rect.left + x, rect.bottom + y, rect.right + x,
+                   rect.top + y);
+}
+
+FX_BOOL CPWL_Utils::ContainsRect(const CPDF_Rect& rcParent,
+                                 const CPDF_Rect& rcChild) {
+  return rcChild.left >= rcParent.left && rcChild.bottom >= rcParent.bottom &&
+         rcChild.right <= rcParent.right && rcChild.top <= rcParent.top;
+}
+
+FX_BOOL CPWL_Utils::IntersectRect(const CPDF_Rect& rect1,
+                                  const CPDF_Rect& rect2) {
+  FX_FLOAT left = rect1.left > rect2.left ? rect1.left : rect2.left;
+  FX_FLOAT right = rect1.right < rect2.right ? rect1.right : rect2.right;
+  FX_FLOAT bottom = rect1.bottom > rect2.bottom ? rect1.bottom : rect2.bottom;
+  FX_FLOAT top = rect1.top < rect2.top ? rect1.top : rect2.top;
+
+  return left < right && bottom < top;
+}
+
+CPDF_Point CPWL_Utils::OffsetPoint(const CPDF_Point& point,
+                                   FX_FLOAT x,
+                                   FX_FLOAT y) {
+  return CPDF_Point(point.x + x, point.y + y);
+}
+
+CPVT_WordRange CPWL_Utils::OverlapWordRange(const CPVT_WordRange& wr1,
+                                            const CPVT_WordRange& wr2) {
+  CPVT_WordRange wrRet;
+
+  if (wr2.EndPos.WordCmp(wr1.BeginPos) < 0 ||
+      wr2.BeginPos.WordCmp(wr1.EndPos) > 0)
+    return wrRet;
+  if (wr1.EndPos.WordCmp(wr2.BeginPos) < 0 ||
+      wr1.BeginPos.WordCmp(wr2.EndPos) > 0)
+    return wrRet;
 
-void CPWL_Utils::GetPathDataFromArray(CFX_PathData& path, const CPWL_PathData* pPathData, int32_t nCount)
-{
-	path.SetPointCount(nCount);
-
-	for (int32_t i=0; i<nCount; i++)
-	{
-		switch (pPathData[i].type)
-		{
-		case PWLPT_MOVETO:
-			path.SetPoint(i, pPathData[i].point.x, pPathData[i].point.y, FXPT_MOVETO);
-			break;
-		case PWLPT_LINETO:
-			path.SetPoint(i, pPathData[i].point.x, pPathData[i].point.y, FXPT_LINETO);
-			break;
-		case PWLPT_BEZIERTO:
-			path.SetPoint(i, pPathData[i].point.x, pPathData[i].point.y, FXPT_BEZIERTO);
-			break;
-		default:
-			break;
-		}
-	}
-}
-
-
-CPDF_Rect CPWL_Utils::MaxRect(const CPDF_Rect & rect1,const CPDF_Rect & rect2)
-{
-	CPDF_Rect rcRet;
-
-	rcRet.left = PWL_MIN(rect1.left,rect2.left);
-	rcRet.bottom = PWL_MIN(rect1.bottom,rect2.bottom);
-	rcRet.right = PWL_MAX(rect1.right,rect2.right);
-	rcRet.top = PWL_MAX(rect1.top,rect2.top);
-
-	return rcRet;
-}
-
-CPDF_Rect CPWL_Utils::OffsetRect(const CPDF_Rect & rect,FX_FLOAT x,FX_FLOAT y)
-{
-	return CPDF_Rect(rect.left + x,rect.bottom + y,
-		rect.right + x,rect.top + y);
-}
-
-FX_BOOL CPWL_Utils::ContainsRect(const CPDF_Rect& rcParent, const CPDF_Rect& rcChild)
-{
-	return rcChild.left >= rcParent.left && rcChild.bottom >= rcParent.bottom &&
-			rcChild.right <= rcParent.right && rcChild.top <= rcParent.top;
-}
-
-FX_BOOL CPWL_Utils::IntersectRect(const CPDF_Rect& rect1, const CPDF_Rect& rect2)
-{
-	FX_FLOAT left = rect1.left > rect2.left ? rect1.left : rect2.left;
-	FX_FLOAT right = rect1.right < rect2.right ? rect1.right : rect2.right;
-	FX_FLOAT bottom = rect1.bottom > rect2.bottom ? rect1.bottom : rect2.bottom;
-	FX_FLOAT top = rect1.top < rect2.top ? rect1.top : rect2.top;
-
-	return left < right && bottom < top;
-}
-
-CPDF_Point CPWL_Utils::OffsetPoint(const CPDF_Point& point,FX_FLOAT x,FX_FLOAT y)
-{
-	return CPDF_Point(point.x + x,point.y + y);
-}
-
-CPVT_WordRange CPWL_Utils::OverlapWordRange(const CPVT_WordRange & wr1, const CPVT_WordRange & wr2)
-{
-	CPVT_WordRange wrRet;
-
-	if (wr2.EndPos.WordCmp(wr1.BeginPos) < 0 || wr2.BeginPos.WordCmp(wr1.EndPos) > 0) return wrRet;
-	if (wr1.EndPos.WordCmp(wr2.BeginPos) < 0 || wr1.BeginPos.WordCmp(wr2.EndPos) > 0) return wrRet;
-
-	if (wr1.BeginPos.WordCmp(wr2.BeginPos) < 0)
-	{
-		wrRet.BeginPos = wr2.BeginPos;
-	}
-	else
-	{
-		wrRet.BeginPos = wr1.BeginPos;
-	}
-
-	if (wr1.EndPos.WordCmp(wr2.EndPos) < 0)
-	{
-		wrRet.EndPos = wr1.EndPos;
-	}
-	else
-	{
-		wrRet.EndPos = wr2.EndPos;
-	}
+  if (wr1.BeginPos.WordCmp(wr2.BeginPos) < 0) {
+    wrRet.BeginPos = wr2.BeginPos;
+  } else {
+    wrRet.BeginPos = wr1.BeginPos;
+  }
 
-	return wrRet;
+  if (wr1.EndPos.WordCmp(wr2.EndPos) < 0) {
+    wrRet.EndPos = wr1.EndPos;
+  } else {
+    wrRet.EndPos = wr2.EndPos;
+  }
+
+  return wrRet;
 }
 
-CFX_ByteString CPWL_Utils::GetAP_Check(const CPDF_Rect & crBBox)
-{
-	CFX_ByteTextBuf csAP;
+CFX_ByteString CPWL_Utils::GetAP_Check(const CPDF_Rect& crBBox) {
+  CFX_ByteTextBuf csAP;
 
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
 
-	const int32_t num = 8;
+  const int32_t num = 8;
 
-	CPWL_Point pts[num*3] =
-	{
-		//1
-		CPWL_Point(0.28f, 0.52f),
-		CPWL_Point(0.27f, 0.48f),
-		CPWL_Point(0.29f, 0.40f),
+  CPWL_Point pts[num * 3] = {// 1
+                             CPWL_Point(0.28f, 0.52f), CPWL_Point(0.27f, 0.48f),
+                             CPWL_Point(0.29f, 0.40f),
 
-		//2
-		CPWL_Point(0.30f, 0.33f),
-		CPWL_Point(0.31f, 0.29f),
-		CPWL_Point(0.31f, 0.28f),
+                             // 2
+                             CPWL_Point(0.30f, 0.33f), CPWL_Point(0.31f, 0.29f),
+                             CPWL_Point(0.31f, 0.28f),
 
-		//3
-		CPWL_Point(0.39f, 0.28f),
-		CPWL_Point(0.49f, 0.29f),
-		CPWL_Point(0.77f, 0.67f),
+                             // 3
+                             CPWL_Point(0.39f, 0.28f), CPWL_Point(0.49f, 0.29f),
+                             CPWL_Point(0.77f, 0.67f),
 
-		//4
-		CPWL_Point(0.76f, 0.68f),
-		CPWL_Point(0.78f, 0.69f),
-		CPWL_Point(0.76f, 0.75f),
+                             // 4
+                             CPWL_Point(0.76f, 0.68f), CPWL_Point(0.78f, 0.69f),
+                             CPWL_Point(0.76f, 0.75f),
 
-		//5
-		CPWL_Point(0.76f, 0.75f),
-		CPWL_Point(0.73f, 0.80f),
-		CPWL_Point(0.68f, 0.75f),
+                             // 5
+                             CPWL_Point(0.76f, 0.75f), CPWL_Point(0.73f, 0.80f),
+                             CPWL_Point(0.68f, 0.75f),
 
-		//6
-		CPWL_Point(0.68f, 0.74f),
-		CPWL_Point(0.68f, 0.74f),
-		CPWL_Point(0.44f, 0.47f),
+                             // 6
+                             CPWL_Point(0.68f, 0.74f), CPWL_Point(0.68f, 0.74f),
+                             CPWL_Point(0.44f, 0.47f),
 
-		//7
-		CPWL_Point(0.43f, 0.47f),
-		CPWL_Point(0.40f, 0.47f),
-		CPWL_Point(0.41f, 0.58f),
+                             // 7
+                             CPWL_Point(0.43f, 0.47f), CPWL_Point(0.40f, 0.47f),
+                             CPWL_Point(0.41f, 0.58f),
 
-		//8
-		CPWL_Point(0.40f, 0.60f),
-		CPWL_Point(0.28f, 0.66f),
-		CPWL_Point(0.30f, 0.56f)
-	};
+                             // 8
+                             CPWL_Point(0.40f, 0.60f), CPWL_Point(0.28f, 0.66f),
+                             CPWL_Point(0.30f, 0.56f)};
 
-	for (int32_t j=0; j<num*3; j++)
-	{
-		pts[j].x *= fWidth;
-		pts[j].x += crBBox.left;
+  for (int32_t j = 0; j < num * 3; j++) {
+    pts[j].x *= fWidth;
+    pts[j].x += crBBox.left;
 
-		pts[j].y *= fHeight;
-		pts[j].y += crBBox.bottom;
-	}
+    pts[j].y *= fHeight;
+    pts[j].y += crBBox.bottom;
+  }
 
-	csAP << pts[0].x << " " << pts[0].y << " m\n";
+  csAP << pts[0].x << " " << pts[0].y << " m\n";
 
-	for (int32_t i=0; i<num; i++)
-	{
-		int32_t nCur = i*3;
-		int32_t n1 = i*3 + 1;
-		int32_t n2 = i*3 + 2;
-		int32_t nNext = (i < num-1 ? (i+1)*3 : 0);
+  for (int32_t i = 0; i < num; i++) {
+    int32_t nCur = i * 3;
+    int32_t n1 = i * 3 + 1;
+    int32_t n2 = i * 3 + 2;
+    int32_t nNext = (i < num - 1 ? (i + 1) * 3 : 0);
 
-		FX_FLOAT px1 = pts[n1].x - pts[nCur].x;
-		FX_FLOAT py1 = pts[n1].y - pts[nCur].y;
-		FX_FLOAT px2 = pts[n2].x - pts[nNext].x;
-		FX_FLOAT py2 = pts[n2].y - pts[nNext].y;
+    FX_FLOAT px1 = pts[n1].x - pts[nCur].x;
+    FX_FLOAT py1 = pts[n1].y - pts[nCur].y;
+    FX_FLOAT px2 = pts[n2].x - pts[nNext].x;
+    FX_FLOAT py2 = pts[n2].y - pts[nNext].y;
 
-		csAP << pts[nCur].x + px1 * PWL_BEZIER << " " << pts[nCur].y + py1 * PWL_BEZIER << " "
-			<< pts[nNext].x + px2 * PWL_BEZIER << " " << pts[nNext].y + py2 * PWL_BEZIER << " "
-			<< pts[nNext].x << " " << pts[nNext].y << " c\n";
-	}
+    csAP << pts[nCur].x + px1 * PWL_BEZIER << " "
+         << pts[nCur].y + py1 * PWL_BEZIER << " "
+         << pts[nNext].x + px2 * PWL_BEZIER << " "
+         << pts[nNext].y + py2 * PWL_BEZIER << " " << pts[nNext].x << " "
+         << pts[nNext].y << " c\n";
+  }
 
-	return csAP.GetByteString();
+  return csAP.GetByteString();
 }
 
-CFX_ByteString CPWL_Utils::GetAP_Circle(const CPDF_Rect & crBBox)
-{
-	CFX_ByteTextBuf csAP;
+CFX_ByteString CPWL_Utils::GetAP_Circle(const CPDF_Rect& crBBox) {
+  CFX_ByteTextBuf csAP;
 
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
 
-	CPDF_Point pt1(crBBox.left,crBBox.bottom + fHeight / 2);
-	CPDF_Point pt2(crBBox.left + fWidth / 2,crBBox.top);
-	CPDF_Point pt3(crBBox.right,crBBox.bottom + fHeight / 2);
-	CPDF_Point pt4(crBBox.left + fWidth / 2,crBBox.bottom);
+  CPDF_Point pt1(crBBox.left, crBBox.bottom + fHeight / 2);
+  CPDF_Point pt2(crBBox.left + fWidth / 2, crBBox.top);
+  CPDF_Point pt3(crBBox.right, crBBox.bottom + fHeight / 2);
+  CPDF_Point pt4(crBBox.left + fWidth / 2, crBBox.bottom);
 
-	csAP << pt1.x << " " << pt1.y << " m\n";
+  csAP << pt1.x << " " << pt1.y << " m\n";
 
-	FX_FLOAT px = pt2.x - pt1.x;
-	FX_FLOAT py = pt2.y - pt1.y;
+  FX_FLOAT px = pt2.x - pt1.x;
+  FX_FLOAT py = pt2.y - pt1.y;
 
-	csAP << pt1.x << " " << pt1.y + py * PWL_BEZIER << " "
-		<< pt2.x - px * PWL_BEZIER << " " << pt2.y << " "
-		<< pt2.x << " " << pt2.y << " c\n";
+  csAP << pt1.x << " " << pt1.y + py * PWL_BEZIER << " "
+       << pt2.x - px * PWL_BEZIER << " " << pt2.y << " " << pt2.x << " "
+       << pt2.y << " c\n";
 
-	px = pt3.x - pt2.x;
-	py = pt2.y - pt3.y;
+  px = pt3.x - pt2.x;
+  py = pt2.y - pt3.y;
 
-	csAP << pt2.x + px * PWL_BEZIER << " " << pt2.y << " "
-		<< pt3.x << " " << pt3.y + py * PWL_BEZIER << " "
-		<< pt3.x << " " << pt3.y << " c\n";
+  csAP << pt2.x + px * PWL_BEZIER << " " << pt2.y << " " << pt3.x << " "
+       << pt3.y + py * PWL_BEZIER << " " << pt3.x << " " << pt3.y << " c\n";
 
-	px = pt3.x - pt4.x;
-	py = pt3.y - pt4.y;
+  px = pt3.x - pt4.x;
+  py = pt3.y - pt4.y;
 
-	csAP << pt3.x << " " << pt3.y - py * PWL_BEZIER << " "
-		<< pt4.x + px * PWL_BEZIER << " " << pt4.y << " "
-		<< pt4.x << " " << pt4.y << " c\n";
+  csAP << pt3.x << " " << pt3.y - py * PWL_BEZIER << " "
+       << pt4.x + px * PWL_BEZIER << " " << pt4.y << " " << pt4.x << " "
+       << pt4.y << " c\n";
 
-	px = pt4.x - pt1.x;
-	py = pt1.y - pt4.y;
+  px = pt4.x - pt1.x;
+  py = pt1.y - pt4.y;
 
-	csAP << pt4.x - px * PWL_BEZIER << " " << pt4.y << " "
-		<< pt1.x << " " << pt1.y - py * PWL_BEZIER << " "
-		<< pt1.x << " " << pt1.y << " c\n";
+  csAP << pt4.x - px * PWL_BEZIER << " " << pt4.y << " " << pt1.x << " "
+       << pt1.y - py * PWL_BEZIER << " " << pt1.x << " " << pt1.y << " c\n";
 
-	return csAP.GetByteString();
+  return csAP.GetByteString();
 }
 
-CFX_ByteString CPWL_Utils::GetAP_Cross(const CPDF_Rect & crBBox)
-{
-	CFX_ByteTextBuf csAP;
+CFX_ByteString CPWL_Utils::GetAP_Cross(const CPDF_Rect& crBBox) {
+  CFX_ByteTextBuf csAP;
 
-	csAP << crBBox.left << " " << crBBox.top << " m\n";
-	csAP << crBBox.right << " " << crBBox.bottom << " l\n";
-	csAP << crBBox.left << " " << crBBox.bottom << " m\n";
-	csAP << crBBox.right << " " << crBBox.top << " l\n";
+  csAP << crBBox.left << " " << crBBox.top << " m\n";
+  csAP << crBBox.right << " " << crBBox.bottom << " l\n";
+  csAP << crBBox.left << " " << crBBox.bottom << " m\n";
+  csAP << crBBox.right << " " << crBBox.top << " l\n";
 
-	return csAP.GetByteString();
+  return csAP.GetByteString();
 }
 
-CFX_ByteString CPWL_Utils::GetAP_Diamond(const CPDF_Rect & crBBox)
-{
-	CFX_ByteTextBuf csAP;
+CFX_ByteString CPWL_Utils::GetAP_Diamond(const CPDF_Rect& crBBox) {
+  CFX_ByteTextBuf csAP;
 
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
 
-	CPDF_Point pt1(crBBox.left,crBBox.bottom + fHeight / 2);
-	CPDF_Point pt2(crBBox.left + fWidth / 2,crBBox.top);
-	CPDF_Point pt3(crBBox.right,crBBox.bottom + fHeight / 2);
-	CPDF_Point pt4(crBBox.left + fWidth / 2,crBBox.bottom);
+  CPDF_Point pt1(crBBox.left, crBBox.bottom + fHeight / 2);
+  CPDF_Point pt2(crBBox.left + fWidth / 2, crBBox.top);
+  CPDF_Point pt3(crBBox.right, crBBox.bottom + fHeight / 2);
+  CPDF_Point pt4(crBBox.left + fWidth / 2, crBBox.bottom);
 
-	csAP << pt1.x << " " << pt1.y << " m\n";
-	csAP << pt2.x << " " << pt2.y << " l\n";
-	csAP << pt3.x << " " << pt3.y << " l\n";
-	csAP << pt4.x << " " << pt4.y << " l\n";
-	csAP << pt1.x << " " << pt1.y << " l\n";
+  csAP << pt1.x << " " << pt1.y << " m\n";
+  csAP << pt2.x << " " << pt2.y << " l\n";
+  csAP << pt3.x << " " << pt3.y << " l\n";
+  csAP << pt4.x << " " << pt4.y << " l\n";
+  csAP << pt1.x << " " << pt1.y << " l\n";
 
-	return csAP.GetByteString();
+  return csAP.GetByteString();
 }
 
-CFX_ByteString CPWL_Utils::GetAP_Square(const CPDF_Rect & crBBox)
-{
-	CFX_ByteTextBuf csAP;
+CFX_ByteString CPWL_Utils::GetAP_Square(const CPDF_Rect& crBBox) {
+  CFX_ByteTextBuf csAP;
 
-	csAP << crBBox.left << " " << crBBox.top << " m\n";
-	csAP << crBBox.right << " " << crBBox.top << " l\n";
-	csAP << crBBox.right << " " << crBBox.bottom << " l\n";
-	csAP << crBBox.left << " " << crBBox.bottom << " l\n";
-	csAP << crBBox.left << " " << crBBox.top << " l\n";
+  csAP << crBBox.left << " " << crBBox.top << " m\n";
+  csAP << crBBox.right << " " << crBBox.top << " l\n";
+  csAP << crBBox.right << " " << crBBox.bottom << " l\n";
+  csAP << crBBox.left << " " << crBBox.bottom << " l\n";
+  csAP << crBBox.left << " " << crBBox.top << " l\n";
 
-	return csAP.GetByteString();
+  return csAP.GetByteString();
 }
 
-CFX_ByteString CPWL_Utils::GetAP_Star(const CPDF_Rect & crBBox)
-{
-	CFX_ByteTextBuf csAP;
+CFX_ByteString CPWL_Utils::GetAP_Star(const CPDF_Rect& crBBox) {
+  CFX_ByteTextBuf csAP;
 
-	FX_FLOAT fRadius = (crBBox.top - crBBox.bottom)/(1+(FX_FLOAT)cos(PWL_PI/5.0f));
-	CPDF_Point ptCenter = CPDF_Point((crBBox.left + crBBox.right) / 2.0f,(crBBox.top + crBBox.bottom) / 2.0f);
+  FX_FLOAT fRadius =
+      (crBBox.top - crBBox.bottom) / (1 + (FX_FLOAT)cos(PWL_PI / 5.0f));
+  CPDF_Point ptCenter = CPDF_Point((crBBox.left + crBBox.right) / 2.0f,
+                                   (crBBox.top + crBBox.bottom) / 2.0f);
 
-	FX_FLOAT px[5],py[5];
+  FX_FLOAT px[5], py[5];
 
-	FX_FLOAT fAngel = PWL_PI/10.0f;
+  FX_FLOAT fAngel = PWL_PI / 10.0f;
 
-	for (int32_t i=0; i<5; i++)
-	{
-		px[i] = ptCenter.x + fRadius * (FX_FLOAT)cos(fAngel);
-		py[i] = ptCenter.y + fRadius * (FX_FLOAT)sin(fAngel);
+  for (int32_t i = 0; i < 5; i++) {
+    px[i] = ptCenter.x + fRadius * (FX_FLOAT)cos(fAngel);
+    py[i] = ptCenter.y + fRadius * (FX_FLOAT)sin(fAngel);
 
-		fAngel += PWL_PI * 2 / 5.0f;
-	}
+    fAngel += PWL_PI * 2 / 5.0f;
+  }
 
-	csAP << px[0] << " " << py[0] << " m\n";
+  csAP << px[0] << " " << py[0] << " m\n";
 
-	int32_t nNext = 0;
-	for (int32_t j=0; j<5; j++)
-	{
-		nNext += 2;
-		if (nNext >= 5) nNext -= 5;
-		csAP << px[nNext] << " " << py[nNext] << " l\n";
-	}
+  int32_t nNext = 0;
+  for (int32_t j = 0; j < 5; j++) {
+    nNext += 2;
+    if (nNext >= 5)
+      nNext -= 5;
+    csAP << px[nNext] << " " << py[nNext] << " l\n";
+  }
 
-	return csAP.GetByteString();
+  return csAP.GetByteString();
 }
 
-CFX_ByteString CPWL_Utils::GetAP_HalfCircle(const CPDF_Rect & crBBox,FX_FLOAT fRotate)
-{
-	CFX_ByteTextBuf csAP;
-
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+CFX_ByteString CPWL_Utils::GetAP_HalfCircle(const CPDF_Rect& crBBox,
+                                            FX_FLOAT fRotate) {
+  CFX_ByteTextBuf csAP;
 
-	CPDF_Point pt1(-fWidth/2,0);
-	CPDF_Point pt2(0,fHeight/2);
-	CPDF_Point pt3(fWidth/2,0);
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
 
-	FX_FLOAT px,py;
+  CPDF_Point pt1(-fWidth / 2, 0);
+  CPDF_Point pt2(0, fHeight / 2);
+  CPDF_Point pt3(fWidth / 2, 0);
 
-	csAP << cos(fRotate) << " " << sin(fRotate) << " " << -sin(fRotate) << " " << cos(fRotate) << " "
-		<< crBBox.left + fWidth / 2 << " " << crBBox.bottom + fHeight / 2 << " cm\n";
+  FX_FLOAT px, py;
 
+  csAP << cos(fRotate) << " " << sin(fRotate) << " " << -sin(fRotate) << " "
+       << cos(fRotate) << " " << crBBox.left + fWidth / 2 << " "
+       << crBBox.bottom + fHeight / 2 << " cm\n";
 
-	csAP << pt1.x << " " << pt1.y << " m\n";
+  csAP << pt1.x << " " << pt1.y << " m\n";
 
-	px = pt2.x - pt1.x;
-	py = pt2.y - pt1.y;
+  px = pt2.x - pt1.x;
+  py = pt2.y - pt1.y;
 
-	csAP << pt1.x << " " << pt1.y + py * PWL_BEZIER << " "
-		<< pt2.x - px * PWL_BEZIER << " " << pt2.y << " "
-		<< pt2.x << " " << pt2.y << " c\n";
+  csAP << pt1.x << " " << pt1.y + py * PWL_BEZIER << " "
+       << pt2.x - px * PWL_BEZIER << " " << pt2.y << " " << pt2.x << " "
+       << pt2.y << " c\n";
 
-	px = pt3.x - pt2.x;
-	py = pt2.y - pt3.y;
+  px = pt3.x - pt2.x;
+  py = pt2.y - pt3.y;
 
-	csAP << pt2.x + px * PWL_BEZIER << " " << pt2.y << " "
-		<< pt3.x << " " << pt3.y + py * PWL_BEZIER << " "
-		<< pt3.x << " " << pt3.y << " c\n";
+  csAP << pt2.x + px * PWL_BEZIER << " " << pt2.y << " " << pt3.x << " "
+       << pt3.y + py * PWL_BEZIER << " " << pt3.x << " " << pt3.y << " c\n";
 
-	return csAP.GetByteString();
+  return csAP.GetByteString();
 }
 
+CPDF_Rect CPWL_Utils::InflateRect(const CPDF_Rect& rcRect, FX_FLOAT fSize) {
+  if (rcRect.IsEmpty())
+    return rcRect;
 
-CPDF_Rect CPWL_Utils::InflateRect(const CPDF_Rect & rcRect, FX_FLOAT fSize)
-{
-	if (rcRect.IsEmpty()) return rcRect;
-
-	CPDF_Rect rcNew(rcRect.left - fSize,
-					rcRect.bottom - fSize,
-					rcRect.right + fSize,
-					rcRect.top + fSize);
-	rcNew.Normalize();
-	return rcNew;
+  CPDF_Rect rcNew(rcRect.left - fSize, rcRect.bottom - fSize,
+                  rcRect.right + fSize, rcRect.top + fSize);
+  rcNew.Normalize();
+  return rcNew;
 }
 
-CPDF_Rect CPWL_Utils::DeflateRect(const CPDF_Rect & rcRect, FX_FLOAT fSize)
-{
-	if (rcRect.IsEmpty()) return rcRect;
+CPDF_Rect CPWL_Utils::DeflateRect(const CPDF_Rect& rcRect, FX_FLOAT fSize) {
+  if (rcRect.IsEmpty())
+    return rcRect;
 
-	CPDF_Rect rcNew(rcRect.left + fSize,
-					rcRect.bottom + fSize,
-					rcRect.right - fSize,
-					rcRect.top - fSize);
-	rcNew.Normalize();
-	return rcNew;
+  CPDF_Rect rcNew(rcRect.left + fSize, rcRect.bottom + fSize,
+                  rcRect.right - fSize, rcRect.top - fSize);
+  rcNew.Normalize();
+  return rcNew;
 }
 
-CPDF_Rect CPWL_Utils::ScaleRect(const CPDF_Rect & rcRect,FX_FLOAT fScale)
-{
-	FX_FLOAT fHalfWidth = (rcRect.right - rcRect.left) / 2.0f;
-	FX_FLOAT fHalfHeight = (rcRect.top - rcRect.bottom) / 2.0f;
+CPDF_Rect CPWL_Utils::ScaleRect(const CPDF_Rect& rcRect, FX_FLOAT fScale) {
+  FX_FLOAT fHalfWidth = (rcRect.right - rcRect.left) / 2.0f;
+  FX_FLOAT fHalfHeight = (rcRect.top - rcRect.bottom) / 2.0f;
 
-	CPDF_Point ptCenter = CPDF_Point((rcRect.left + rcRect.right) / 2,(rcRect.top + rcRect.bottom) / 2);
+  CPDF_Point ptCenter = CPDF_Point((rcRect.left + rcRect.right) / 2,
+                                   (rcRect.top + rcRect.bottom) / 2);
 
-	return CPDF_Rect(ptCenter.x - fHalfWidth * fScale,
-				ptCenter.y - fHalfHeight * fScale,
-				ptCenter.x + fHalfWidth * fScale,
-				ptCenter.y + fHalfHeight * fScale);
+  return CPDF_Rect(
+      ptCenter.x - fHalfWidth * fScale, ptCenter.y - fHalfHeight * fScale,
+      ptCenter.x + fHalfWidth * fScale, ptCenter.y + fHalfHeight * fScale);
 }
 
-CFX_ByteString CPWL_Utils::GetRectFillAppStream(const CPDF_Rect & rect,const CPWL_Color & color)
-{
-	CFX_ByteTextBuf sAppStream;
+CFX_ByteString CPWL_Utils::GetRectFillAppStream(const CPDF_Rect& rect,
+                                                const CPWL_Color& color) {
+  CFX_ByteTextBuf sAppStream;
 
-	CFX_ByteString sColor = GetColorAppStream(color,TRUE);
-	if (sColor.GetLength() > 0)
-	{
-		sAppStream << "q\n" << sColor;
-		sAppStream << rect.left << " " << rect.bottom << " "
-			<< rect.right - rect.left << " " << rect.top - rect.bottom << " re f\nQ\n";
-	}
+  CFX_ByteString sColor = GetColorAppStream(color, TRUE);
+  if (sColor.GetLength() > 0) {
+    sAppStream << "q\n" << sColor;
+    sAppStream << rect.left << " " << rect.bottom << " "
+               << rect.right - rect.left << " " << rect.top - rect.bottom
+               << " re f\nQ\n";
+  }
 
-	return sAppStream.GetByteString();
+  return sAppStream.GetByteString();
 }
 
-CFX_ByteString CPWL_Utils::GetCircleFillAppStream(const CPDF_Rect & rect,const CPWL_Color & color)
-{
-	CFX_ByteTextBuf sAppStream;
+CFX_ByteString CPWL_Utils::GetCircleFillAppStream(const CPDF_Rect& rect,
+                                                  const CPWL_Color& color) {
+  CFX_ByteTextBuf sAppStream;
 
-	CFX_ByteString sColor = GetColorAppStream(color,TRUE);
-	if (sColor.GetLength() > 0)
-	{
-		sAppStream << "q\n" << sColor << CPWL_Utils::GetAP_Circle(rect) << "f\nQ\n";
-	}
+  CFX_ByteString sColor = GetColorAppStream(color, TRUE);
+  if (sColor.GetLength() > 0) {
+    sAppStream << "q\n" << sColor << CPWL_Utils::GetAP_Circle(rect) << "f\nQ\n";
+  }
 
-	return sAppStream.GetByteString();
+  return sAppStream.GetByteString();
 }
 
-CPDF_Rect CPWL_Utils::GetCenterSquare(const CPDF_Rect & rect)
-{
-	FX_FLOAT fWidth = rect.right -  rect.left;
-	FX_FLOAT fHeight = rect.top - rect.bottom;
+CPDF_Rect CPWL_Utils::GetCenterSquare(const CPDF_Rect& rect) {
+  FX_FLOAT fWidth = rect.right - rect.left;
+  FX_FLOAT fHeight = rect.top - rect.bottom;
 
-	FX_FLOAT fCenterX = (rect.left + rect.right)/2.0f;
-	FX_FLOAT fCenterY = (rect.top + rect.bottom)/2.0f;
+  FX_FLOAT fCenterX = (rect.left + rect.right) / 2.0f;
+  FX_FLOAT fCenterY = (rect.top + rect.bottom) / 2.0f;
 
-	FX_FLOAT fRadius = (fWidth > fHeight) ? fHeight / 2 : fWidth / 2;
+  FX_FLOAT fRadius = (fWidth > fHeight) ? fHeight / 2 : fWidth / 2;
 
-	return CPDF_Rect(fCenterX - fRadius,fCenterY - fRadius,fCenterX + fRadius,fCenterY + fRadius);
+  return CPDF_Rect(fCenterX - fRadius, fCenterY - fRadius, fCenterX + fRadius,
+                   fCenterY + fRadius);
 }
 
-CFX_ByteString CPWL_Utils::GetEditAppStream(IFX_Edit* pEdit, const CPDF_Point & ptOffset, const CPVT_WordRange * pRange,
-														FX_BOOL bContinuous, FX_WORD SubWord)
-{
-	return IFX_Edit::GetEditAppearanceStream(pEdit,ptOffset,pRange,bContinuous,SubWord);
+CFX_ByteString CPWL_Utils::GetEditAppStream(IFX_Edit* pEdit,
+                                            const CPDF_Point& ptOffset,
+                                            const CPVT_WordRange* pRange,
+                                            FX_BOOL bContinuous,
+                                            FX_WORD SubWord) {
+  return IFX_Edit::GetEditAppearanceStream(pEdit, ptOffset, pRange, bContinuous,
+                                           SubWord);
 }
 
-CFX_ByteString CPWL_Utils::GetEditSelAppStream(IFX_Edit* pEdit, const CPDF_Point & ptOffset,
-								const CPVT_WordRange * pRange)
-{
-	return IFX_Edit::GetSelectAppearanceStream(pEdit,ptOffset,pRange);
+CFX_ByteString CPWL_Utils::GetEditSelAppStream(IFX_Edit* pEdit,
+                                               const CPDF_Point& ptOffset,
+                                               const CPVT_WordRange* pRange) {
+  return IFX_Edit::GetSelectAppearanceStream(pEdit, ptOffset, pRange);
 }
 
-static CFX_ByteString GetSquigglyAppearanceStream(FX_FLOAT fStartX, FX_FLOAT fEndX, FX_FLOAT fY, FX_FLOAT fStep)
-{
-	CFX_ByteTextBuf sRet;
+static CFX_ByteString GetSquigglyAppearanceStream(FX_FLOAT fStartX,
+                                                  FX_FLOAT fEndX,
+                                                  FX_FLOAT fY,
+                                                  FX_FLOAT fStep) {
+  CFX_ByteTextBuf sRet;
 
-	sRet << "0 w\n" << fStartX << " " << fY << " m\n";
+  sRet << "0 w\n" << fStartX << " " << fY << " m\n";
 
-	FX_FLOAT fx;
-	int32_t i;
+  FX_FLOAT fx;
+  int32_t i;
 
-	for (i=1,fx=fStartX+fStep; fx<fEndX; fx+=fStep,i++)
-	{
-		sRet << fx << " " << fY + (i&1)*fStep << " l\n";
-	}
+  for (i = 1, fx = fStartX + fStep; fx < fEndX; fx += fStep, i++) {
+    sRet << fx << " " << fY + (i & 1) * fStep << " l\n";
+  }
 
-	sRet << "S\n";
+  sRet << "S\n";
 
-	return sRet.GetByteString();
+  return sRet.GetByteString();
 }
 
-static CFX_ByteString GetWordSpellCheckAppearanceStream(IFX_Edit_Iterator* pIterator, const CPDF_Point & ptOffset,
-																  const CPVT_WordRange & wrWord)
-{
-	CFX_ByteTextBuf sRet;
-
-	FX_FLOAT fStartX = 0.0f;
-	FX_FLOAT fEndX = 0.0f;
-	FX_FLOAT fY = 0.0f;
-	FX_FLOAT fStep = 0.0f;
-
-	FX_BOOL bBreak = FALSE;
-
-	if (pIterator)
-	{
-		pIterator->SetAt(wrWord.BeginPos);
-
-		do
-		{
-			CPVT_WordPlace place = pIterator->GetAt();
-
-			CPVT_Line line;
-			if (pIterator->GetLine(line))
-			{
-				fY = line.ptLine.y;
-				fStep = (line.fLineAscent - line.fLineDescent) / 16.0f;
-			}
-
-			if (place.LineCmp(wrWord.BeginPos) == 0)
-			{
-				pIterator->SetAt(wrWord.BeginPos);
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					fStartX = word.ptWord.x;
-				}
-			}
-			else
-			{
-				fStartX = line.ptLine.x;
-			}
-
-			if (place.LineCmp(wrWord.EndPos) == 0)
-			{
-				pIterator->SetAt(wrWord.EndPos);
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					fEndX = word.ptWord.x + word.fWidth;
-				}
-
-				bBreak = TRUE;
-			}
-			else
-			{
-				fEndX = line.ptLine.x + line.fLineWidth;
-			}
-
-			sRet << GetSquigglyAppearanceStream(fStartX + ptOffset.x, fEndX + ptOffset.x, fY + ptOffset.y,fStep);
-
-			if (bBreak) break;
-		}
-		while (pIterator->NextLine());
-	}
-
-	return sRet.GetByteString();
-}
-
-CFX_ByteString CPWL_Utils::GetSpellCheckAppStream(IFX_Edit* pEdit, IPWL_SpellCheck* pSpellCheck, const CPDF_Point & ptOffset,
-								const CPVT_WordRange * pRange)
-{
-	ASSERT(pEdit != NULL);
-	ASSERT(pSpellCheck != NULL);
-
-	CFX_ByteTextBuf sRet;
-
-	if (pRange && pRange->IsExist())
-	{
-		if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator())
-		{
-			pIterator->SetAt(pRange->BeginPos);
-
-			FX_BOOL bLatinWord = FALSE;
-			CPVT_WordPlace wpWordStart;
-			CFX_ByteString sWord;
-
-			CPVT_WordPlace oldplace;
-			while (pIterator->NextWord())
-			{
-				CPVT_WordPlace place = pIterator->GetAt();
-				if (pRange && place.WordCmp(pRange->EndPos) > 0) break;
-
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					if (FX_EDIT_ISLATINWORD(word.Word))
-					{
-						if (!bLatinWord)
-						{
-							wpWordStart = place;
-							bLatinWord = TRUE;
-						}
-
-						sWord += (char)word.Word;
-						oldplace = place;
-					}
-					else
-					{
-						if (bLatinWord)
-						{
-							if (!pSpellCheck->CheckWord(sWord))
-							{
-								sRet << GetWordSpellCheckAppearanceStream(pIterator,ptOffset,CPVT_WordRange(wpWordStart,oldplace));
-								pIterator->SetAt(place);
-							}
-							bLatinWord = FALSE;
-						}
-
-						sWord.Empty();
-					}
-				}
-				else
-				{
-					if (bLatinWord)
-					{
-						if (!pSpellCheck->CheckWord(sWord))
-							sRet << GetWordSpellCheckAppearanceStream(pIterator,ptOffset,CPVT_WordRange(wpWordStart,oldplace));
-						bLatinWord = FALSE;
-						sWord.Empty();
-					}
-				}
-			}
-
-			if (bLatinWord)
-			{
-				if (!pSpellCheck->CheckWord(sWord))
-					sRet << GetWordSpellCheckAppearanceStream(pIterator,ptOffset,CPVT_WordRange(wpWordStart,oldplace));
-
-				bLatinWord = FALSE;
-				sWord.Empty();
-			}
-		}
-	}
-
-	return sRet.GetByteString();
-}
-
-CFX_ByteString CPWL_Utils::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)
-{
-	CFX_ByteTextBuf sRet;
-
-	if (IFX_Edit * pEdit = IFX_Edit::NewEdit())
-	{
-		pEdit->SetFontMap(pFontMap);
-		pEdit->SetPlateRect(rcBBox);
-		pEdit->SetAlignmentH(nAlignmentH);
-		pEdit->SetAlignmentV(nAlignmentV);
-		pEdit->SetMultiLine(bMultiLine);
-		pEdit->SetAutoReturn(bAutoReturn);
-		if (IsFloatZero(fFontSize))
-			pEdit->SetAutoFontSize(TRUE);
-		else
-			pEdit->SetFontSize(fFontSize);
-
-		pEdit->Initialize();
-		pEdit->SetText(sText.c_str());
-
-		CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(pEdit, CPDF_Point(0.0f,0.0f));
-		if (sEdit.GetLength() > 0)
-		{
-			sRet << "BT\n" << CPWL_Utils::GetColorAppStream(crText) << sEdit << "ET\n";
-		}
-		IFX_Edit::DelEdit(pEdit);
-	}
-
-	return sRet.GetByteString();
-}
-
-CFX_ByteString CPWL_Utils::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)
-{
-	const FX_FLOAT fAutoFontScale = 1.0f / 3.0f;
-
-	if (IFX_Edit * pEdit = IFX_Edit::NewEdit())
-	{
-		pEdit->SetFontMap(pFontMap);
-		pEdit->SetAlignmentH(1);
-		pEdit->SetAlignmentV(1);
-		pEdit->SetMultiLine(FALSE);
-		pEdit->SetAutoReturn(FALSE);
-		if (IsFloatZero(fFontSize))
-			pEdit->SetAutoFontSize(TRUE);
-		else
-			pEdit->SetFontSize(fFontSize);
-
-		pEdit->Initialize();
-		pEdit->SetText(sLabel.c_str());
-
-		CPDF_Rect rcLabelContent = pEdit->GetContentRect();
-		CPWL_Icon Icon;
-		PWL_CREATEPARAM cp;
-		cp.dwFlags = PWS_VISIBLE;
-		Icon.Create(cp);
-		Icon.SetIconFit(&IconFit);
-		Icon.SetPDFStream(pIconStream);
-
-		CPDF_Rect rcLabel = CPDF_Rect(0,0,0,0);
-		CPDF_Rect rcIcon = CPDF_Rect(0,0,0,0);
-		FX_FLOAT fWidth = 0.0f;
-		FX_FLOAT fHeight = 0.0f;
-
-		switch (nLayOut)
-		{
-		case PPBL_LABEL:
-			rcLabel = rcBBox;
-			rcIcon = CPDF_Rect(0,0,0,0);
-			break;
-		case PPBL_ICON:
-			rcIcon = rcBBox;
-			rcLabel = CPDF_Rect(0,0,0,0);
-			break;
-		case PPBL_ICONTOPLABELBOTTOM:
-
-			if (pIconStream)
-			{
-				if (IsFloatZero(fFontSize))
-				{
-					fHeight = rcBBox.top - rcBBox.bottom;
-					rcLabel = CPDF_Rect(rcBBox.left,rcBBox.bottom,rcBBox.right,rcBBox.bottom + fHeight * fAutoFontScale);
-					rcIcon = CPDF_Rect(rcBBox.left,rcLabel.top,rcBBox.right,rcBBox.top);
-				}
-				else
-				{
-					fHeight = rcLabelContent.Height();
-
-					if (rcBBox.bottom + fHeight > rcBBox.top)
-					{
-						rcIcon = CPDF_Rect(0,0,0,0);
-						rcLabel = rcBBox;
-					}
-					else
-					{
-						rcLabel = CPDF_Rect(rcBBox.left,rcBBox.bottom,rcBBox.right,rcBBox.bottom + fHeight);
-						rcIcon = CPDF_Rect(rcBBox.left,rcLabel.top,rcBBox.right,rcBBox.top);
-					}
-				}
-			}
-			else
-			{
-				rcLabel = rcBBox;
-				rcIcon = CPDF_Rect(0,0,0,0);
-			}
-
-			break;
-		case PPBL_LABELTOPICONBOTTOM:
-
-			if (pIconStream)
-			{
-				if (IsFloatZero(fFontSize))
-				{
-					fHeight = rcBBox.top - rcBBox.bottom;
-					rcLabel = CPDF_Rect(rcBBox.left,rcBBox.top - fHeight * fAutoFontScale ,rcBBox.right,rcBBox.top);
-					rcIcon = CPDF_Rect(rcBBox.left,rcBBox.bottom,rcBBox.right,rcLabel.bottom);
-				}
-				else
-				{
-					fHeight = rcLabelContent.Height();
-
-					if (rcBBox.bottom + fHeight > rcBBox.top)
-					{
-						rcIcon = CPDF_Rect(0,0,0,0);
-						rcLabel = rcBBox;
-					}
-					else
-					{
-						rcLabel = CPDF_Rect(rcBBox.left,rcBBox.top - fHeight,rcBBox.right,rcBBox.top);
-						rcIcon = CPDF_Rect(rcBBox.left,rcBBox.bottom,rcBBox.right,rcLabel.bottom);
-					}
-				}
-			}
-			else
-			{
-				rcLabel = rcBBox;
-				rcIcon = CPDF_Rect(0,0,0,0);
-			}
-
-			break;
-		case PPBL_ICONLEFTLABELRIGHT:
-
-			if (pIconStream)
-			{
-				if (IsFloatZero(fFontSize))
-				{
-					fWidth = rcBBox.right - rcBBox.left;
-					rcLabel = CPDF_Rect(rcBBox.right - fWidth * fAutoFontScale,rcBBox.bottom,rcBBox.right,rcBBox.top);
-					rcIcon = CPDF_Rect(rcBBox.left,rcBBox.bottom,rcLabel.left,rcBBox.top);
-
-					if (rcLabelContent.Width() < fWidth * fAutoFontScale)
-					{
-					}
-					else
-					{
-						if (rcLabelContent.Width() < fWidth)
-						{
-							rcLabel = CPDF_Rect(rcBBox.right - rcLabelContent.Width(),rcBBox.bottom,rcBBox.right,rcBBox.top);
-							rcIcon = CPDF_Rect(rcBBox.left,rcBBox.bottom,rcLabel.left,rcBBox.top);
-						}
-						else
-						{
-							rcLabel = rcBBox;
-							rcIcon = CPDF_Rect(0,0,0,0);
-						}
-					}
-				}
-				else
-				{
-					fWidth = rcLabelContent.Width();
-
-					if (rcBBox.left + fWidth > rcBBox.right)
-					{
-						rcLabel = rcBBox;
-						rcIcon = CPDF_Rect(0,0,0,0);
-					}
-					else
-					{
-						rcLabel = CPDF_Rect(rcBBox.right - fWidth,rcBBox.bottom,rcBBox.right,rcBBox.top);
-						rcIcon = CPDF_Rect(rcBBox.left,rcBBox.bottom,rcLabel.left,rcBBox.top);
-					}
-				}
-			}
-			else
-			{
-				rcLabel = rcBBox;
-				rcIcon = CPDF_Rect(0,0,0,0);
-			}
-
-			break;
-		case PPBL_LABELLEFTICONRIGHT:
-
-			if (pIconStream)
-			{
-				if (IsFloatZero(fFontSize))
-				{
-					fWidth = rcBBox.right - rcBBox.left;
-					rcLabel = CPDF_Rect(rcBBox.left,rcBBox.bottom,rcBBox.left + fWidth * fAutoFontScale,rcBBox.top);
-					rcIcon = CPDF_Rect(rcLabel.right,rcBBox.bottom,rcBBox.right,rcBBox.top);
-
-					if (rcLabelContent.Width() < fWidth * fAutoFontScale)
-					{
-					}
-					else
-					{
-						if (rcLabelContent.Width() < fWidth)
-						{
-							rcLabel = CPDF_Rect(rcBBox.left,rcBBox.bottom,rcBBox.left + rcLabelContent.Width(),rcBBox.top);
-							rcIcon = CPDF_Rect(rcLabel.right,rcBBox.bottom,rcBBox.right,rcBBox.top);
-						}
-						else
-						{
-							rcLabel = rcBBox;
-							rcIcon = CPDF_Rect(0,0,0,0);
-						}
-					}
-				}
-				else
-				{
-					fWidth = rcLabelContent.Width();
-
-					if (rcBBox.left + fWidth > rcBBox.right)
-					{
-						rcLabel = rcBBox;
-						rcIcon = CPDF_Rect(0,0,0,0);
-					}
-					else
-					{
-						rcLabel = CPDF_Rect(rcBBox.left,rcBBox.bottom,rcBBox.left + fWidth,rcBBox.top);
-						rcIcon = CPDF_Rect(rcLabel.right,rcBBox.bottom,rcBBox.right,rcBBox.top);
-					}
-				}
-			}
-			else
-			{
-				rcLabel = rcBBox;
-				rcIcon = CPDF_Rect(0,0,0,0);
-			}
-
-			break;
-		case PPBL_LABELOVERICON:
-			rcLabel = rcBBox;
-			rcIcon = rcBBox;
-			break;
-		}
-
-		CFX_ByteTextBuf sAppStream,sTemp;
-
-		if (!rcIcon.IsEmpty())
-		{
-			Icon.Move(rcIcon, FALSE, FALSE);
-			sTemp << Icon.GetImageAppStream();
-		}
-
-		Icon.Destroy();
-
-		if (!rcLabel.IsEmpty())
-		{
-			pEdit->SetPlateRect(rcLabel);
-			CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(pEdit,CPDF_Point(0.0f,0.0f));
-			if (sEdit.GetLength() > 0)
-			{
-				sTemp << "BT\n" << CPWL_Utils::GetColorAppStream(crText) << sEdit << "ET\n";
-			}
-		}
-
-		IFX_Edit::DelEdit(pEdit);
-
-		if (sTemp.GetSize() > 0)
-		{
-			sAppStream << "q\n" << rcBBox.left << " " << rcBBox.bottom << " "
-				<< rcBBox.right - rcBBox.left << " " << rcBBox.top - rcBBox.bottom << " re W n\n";
-			sAppStream << sTemp << "Q\n";
-		}
-
-		return sAppStream.GetByteString();
-	}
-
-	return "";
-}
-
-CFX_ByteString CPWL_Utils::GetColorAppStream(const CPWL_Color & color,const FX_BOOL & bFillOrStroke)
-{
-	CFX_ByteTextBuf sColorStream;
-
-	switch (color.nColorType)
-	{
-	case COLORTYPE_RGB:
-		sColorStream << color.fColor1 << " " << color.fColor2 << " " << color.fColor3 << " "
-			<< (bFillOrStroke ? "rg" : "RG") << "\n";
-		break;
-	case COLORTYPE_GRAY:
-		sColorStream << color.fColor1 << " " << (bFillOrStroke ? "g" : "G") << "\n";
-		break;
-	case COLORTYPE_CMYK:
-		sColorStream << color.fColor1 << " " << color.fColor2 << " " << color.fColor3 << " " << color.fColor4 << " "
-			<< (bFillOrStroke ? "k" : "K") << "\n";
-		break;
-	}
-
-	return sColorStream.GetByteString();
-}
-
-CFX_ByteString CPWL_Utils::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)
-{
-	CFX_ByteTextBuf sAppStream;
-	CFX_ByteString sColor;
-
-	FX_FLOAT fLeft = rect.left;
-	FX_FLOAT fRight = rect.right;
-	FX_FLOAT fTop = rect.top;
-	FX_FLOAT fBottom = rect.bottom;
-
-	if (fWidth > 0.0f)
-	{
-		FX_FLOAT fHalfWidth = fWidth / 2.0f;
-
-		sAppStream << "q\n";
-
-		switch (nStyle)
-		{
-		default:
-		case PBS_SOLID:
-			sColor = CPWL_Utils::GetColorAppStream(color,TRUE);
-			if (sColor.GetLength() > 0)
-			{
-				sAppStream << sColor;
-				sAppStream << fLeft << " " << fBottom << " " << fRight - fLeft << " " << fTop - fBottom << " re\n";
-				sAppStream << fLeft + fWidth << " " << fBottom + fWidth << " "
-					<< fRight - fLeft - fWidth * 2 << " " << fTop - fBottom - fWidth * 2 << " re\n";
-				sAppStream << "f*\n";
-			}
-			break;
-		case PBS_DASH:
-			sColor = CPWL_Utils::GetColorAppStream(color,FALSE);
-			if (sColor.GetLength() > 0)
-			{
-				sAppStream << sColor;
-				sAppStream << fWidth << " w" << " [" << dash.nDash << " " << dash.nGap << "] " << dash.nPhase << " d\n";
-				sAppStream << fLeft + fWidth / 2 << " " << fBottom + fWidth / 2 << " m\n";
-				sAppStream << fLeft + fWidth / 2 << " " << fTop - fWidth / 2 << " l\n";
-				sAppStream << fRight - fWidth / 2 << " " << fTop - fWidth / 2 << " l\n";
-				sAppStream << fRight - fWidth / 2 << " " << fBottom + fWidth / 2 << " l\n";
-				sAppStream << fLeft + fWidth / 2 << " " << fBottom + fWidth / 2 << " l S\n";
-			}
-			break;
-		case PBS_BEVELED:
-		case PBS_INSET:
-			sColor = CPWL_Utils::GetColorAppStream(crLeftTop,TRUE);
-			if (sColor.GetLength() > 0)
-			{
-				sAppStream << sColor;
-				sAppStream << fLeft + fHalfWidth << " " << fBottom + fHalfWidth << " m\n";
-				sAppStream << fLeft + fHalfWidth << " " << fTop - fHalfWidth << " l\n";
-				sAppStream << fRight - fHalfWidth << " " << fTop - fHalfWidth << " l\n";
-				sAppStream << fRight - fHalfWidth * 2 << " " << fTop - fHalfWidth * 2 << " l\n";
-				sAppStream << fLeft + fHalfWidth * 2 << " " << fTop - fHalfWidth * 2 << " l\n";
-				sAppStream << fLeft + fHalfWidth * 2 << " " << fBottom + fHalfWidth * 2 << " l f\n";
-			}
-
-			sColor = CPWL_Utils::GetColorAppStream(crRightBottom,TRUE);
-			if (sColor.GetLength() > 0)
-			{
-				sAppStream << sColor;
-				sAppStream << fRight - fHalfWidth << " " <<	fTop - fHalfWidth << " m\n";
-				sAppStream << fRight - fHalfWidth << " " <<	fBottom + fHalfWidth << " l\n";
-				sAppStream << fLeft + fHalfWidth << " " << 	fBottom + fHalfWidth << " l\n";
-				sAppStream << fLeft + fHalfWidth * 2 << " " << fBottom + fHalfWidth * 2 << " l\n";
-				sAppStream << fRight - fHalfWidth * 2 << " " << fBottom + fHalfWidth * 2 << " l\n";
-				sAppStream << fRight - fHalfWidth * 2 << " " << fTop - fHalfWidth * 2 << " l f\n";
-			}
-
-			sColor = CPWL_Utils::GetColorAppStream(color,TRUE);
-			if (sColor.GetLength() > 0)
-			{
-				sAppStream << sColor;
-				sAppStream << fLeft << " " << fBottom << " " <<	fRight - fLeft << " " << fTop - fBottom << " re\n";
-				sAppStream << fLeft + fHalfWidth << " " << fBottom + fHalfWidth << " "
-					<< fRight - fLeft - fHalfWidth * 2 << " " << fTop - fBottom - fHalfWidth * 2 << " re f*\n";
-			}
-			break;
-		case PBS_UNDERLINED:
-			sColor = CPWL_Utils::GetColorAppStream(color,FALSE);
-			if (sColor.GetLength() > 0)
-			{
-				sAppStream << sColor;
-				sAppStream << fWidth << " w\n";
-				sAppStream << fLeft << " " << fBottom + fWidth / 2 << " m\n";
-				sAppStream << fRight << " " << fBottom + fWidth / 2 << " l S\n";
-			}
-			break;
-		}
-
-		sAppStream << "Q\n";
-	}
-
-	return sAppStream.GetByteString();
-}
-
-CFX_ByteString CPWL_Utils::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)
-{
-	CFX_ByteTextBuf sAppStream;
-	CFX_ByteString sColor;
-
-
-
-
-
-
-	if (fWidth > 0.0f)
-	{
-		sAppStream << "q\n";
-
-		switch (nStyle)
-		{
-		default:
-		case PBS_SOLID:
-		case PBS_UNDERLINED:
-			{
-				sColor = CPWL_Utils::GetColorAppStream(color,FALSE);
-				if (sColor.GetLength() > 0)
-				{
-					sAppStream << "q\n" << fWidth << " w\n" << sColor
-						<< CPWL_Utils::GetAP_Circle(CPWL_Utils::DeflateRect(rect,fWidth / 2.0f))
-						<< " S\nQ\n";
-				}
-			}
-			break;
-		case PBS_DASH:
-			{
-				sColor = CPWL_Utils::GetColorAppStream(color,FALSE);
-				if (sColor.GetLength() > 0)
-				{
-					sAppStream << "q\n" << fWidth << " w\n"
-						<< "[" << dash.nDash << " " << dash.nGap << "] " << dash.nPhase << " d\n"
-						<< sColor << CPWL_Utils::GetAP_Circle(CPWL_Utils::DeflateRect(rect,fWidth / 2.0f))
-						<< " S\nQ\n";
-				}
-			}
-			break;
-		case PBS_BEVELED:
-			{
-				FX_FLOAT fHalfWidth = fWidth / 2.0f;
-
-				sColor = CPWL_Utils::GetColorAppStream(color,FALSE);
-				if (sColor.GetLength() > 0)
-				{
-					sAppStream << "q\n" << fHalfWidth << " w\n"
-						<< sColor << CPWL_Utils::GetAP_Circle(rect)
-						<< " S\nQ\n";
-				}
-
-				sColor = CPWL_Utils::GetColorAppStream(crLeftTop,FALSE);
-				if (sColor.GetLength() > 0)
-				{
-					sAppStream << "q\n" << fHalfWidth << " w\n"
-						<< sColor << CPWL_Utils::GetAP_HalfCircle(CPWL_Utils::DeflateRect(rect,fHalfWidth * 0.75f),PWL_PI/4.0f)
-						<< " S\nQ\n";
-				}
-
-				sColor = CPWL_Utils::GetColorAppStream(crRightBottom,FALSE);
-				if (sColor.GetLength() > 0)
-				{
-					sAppStream << "q\n" << fHalfWidth << " w\n"
-						<< sColor << CPWL_Utils::GetAP_HalfCircle(CPWL_Utils::DeflateRect(rect,fHalfWidth * 0.75f),PWL_PI*5/4.0f)
-						<< " S\nQ\n";
-				}
-			}
-			break;
-		case PBS_INSET:
-			{
-				FX_FLOAT fHalfWidth = fWidth / 2.0f;
-
-				sColor = CPWL_Utils::GetColorAppStream(color,FALSE);
-				if (sColor.GetLength() > 0)
-				{
-					sAppStream << "q\n" << fHalfWidth << " w\n"
-						<< sColor << CPWL_Utils::GetAP_Circle(rect)
-						<< " S\nQ\n";
-				}
-
-				sColor = CPWL_Utils::GetColorAppStream(crLeftTop,FALSE);
-				if (sColor.GetLength() > 0)
-				{
-					sAppStream << "q\n" << fHalfWidth << " w\n"
-						<< sColor << CPWL_Utils::GetAP_HalfCircle(CPWL_Utils::DeflateRect(rect,fHalfWidth * 0.75f),PWL_PI/4.0f)
-						<< " S\nQ\n";
-				}
-
-				sColor = CPWL_Utils::GetColorAppStream(crRightBottom,FALSE);
-				if (sColor.GetLength() > 0)
-				{
-					sAppStream << "q\n" << fHalfWidth << " w\n"
-						<< sColor << CPWL_Utils::GetAP_HalfCircle(CPWL_Utils::DeflateRect(rect,fHalfWidth * 0.75f),PWL_PI*5/4.0f)
-						<< " S\nQ\n";
-				}
-			}
-			break;
-		}
-
-		sAppStream << "Q\n";
-	}
-
-	return sAppStream.GetByteString();
-}
-
-CPWL_Color CPWL_Utils::SubstractColor(const CPWL_Color & sColor,FX_FLOAT fColorSub)
-{
-	CPWL_Color sRet;
-	sRet.nColorType = sColor.nColorType;
-
-	switch (sColor.nColorType)
-	{
-	case COLORTYPE_TRANSPARENT:
-		sRet.nColorType = COLORTYPE_RGB;
-		sRet.fColor1 = PWL_MAX(1 - fColorSub,0.0f);
-		sRet.fColor2 = PWL_MAX(1 - fColorSub,0.0f);
-		sRet.fColor3 = PWL_MAX(1 - fColorSub,0.0f);
-		break;
-	case COLORTYPE_RGB:
-	case COLORTYPE_GRAY:
-	case COLORTYPE_CMYK:
-		sRet.fColor1 = PWL_MAX(sColor.fColor1 - fColorSub,0.0f);
-		sRet.fColor2 = PWL_MAX(sColor.fColor2 - fColorSub,0.0f);
-		sRet.fColor3 = PWL_MAX(sColor.fColor3 - fColorSub,0.0f);
-		sRet.fColor4 = PWL_MAX(sColor.fColor4 - fColorSub,0.0f);
-		break;
-	}
-
-	return sRet;
-}
-
-CPWL_Color CPWL_Utils::DevideColor(const CPWL_Color & sColor,FX_FLOAT fColorDevide)
-{
-	CPWL_Color sRet;
-	sRet.nColorType = sColor.nColorType;
-
-	switch (sColor.nColorType)
-	{
-	case COLORTYPE_TRANSPARENT:
-		sRet.nColorType = COLORTYPE_RGB;
-		sRet.fColor1 = 1 / fColorDevide;
-		sRet.fColor2 = 1 / fColorDevide;
-		sRet.fColor3 = 1 / fColorDevide;
-		break;
-	case COLORTYPE_RGB:
-	case COLORTYPE_GRAY:
-	case COLORTYPE_CMYK:
-		sRet = sColor;
-		sRet.fColor1 /= fColorDevide;
-		sRet.fColor2 /= fColorDevide;
-		sRet.fColor3 /= fColorDevide;
-		sRet.fColor4 /= fColorDevide;
-		break;
-	}
-
-	return sRet;
-}
-
-CFX_ByteString CPWL_Utils::GetAppStream_Check(const CPDF_Rect & rcBBox, const CPWL_Color & crText)
-{
-	CFX_ByteTextBuf sAP;
-	sAP << "q\n" << CPWL_Utils::GetColorAppStream(crText,TRUE) << CPWL_Utils::GetAP_Check(rcBBox) << "f\nQ\n";
-	return sAP.GetByteString();
-}
-
-CFX_ByteString CPWL_Utils::GetAppStream_Circle(const CPDF_Rect & rcBBox, const CPWL_Color & crText)
-{
-	CFX_ByteTextBuf sAP;
-	sAP << "q\n" << CPWL_Utils::GetColorAppStream(crText,TRUE) << CPWL_Utils::GetAP_Circle(rcBBox) << "f\nQ\n";
-	return sAP.GetByteString();
-}
-
-CFX_ByteString CPWL_Utils::GetAppStream_Cross(const CPDF_Rect & rcBBox, const CPWL_Color & crText)
-{
-	CFX_ByteTextBuf sAP;
-	sAP << "q\n" << CPWL_Utils::GetColorAppStream(crText,FALSE) << CPWL_Utils::GetAP_Cross(rcBBox) << "S\nQ\n";
-	return sAP.GetByteString();
-}
-
-CFX_ByteString CPWL_Utils::GetAppStream_Diamond(const CPDF_Rect & rcBBox, const CPWL_Color & crText)
-{
-	CFX_ByteTextBuf sAP;
-	sAP << "q\n1 w\n" << CPWL_Utils::GetColorAppStream(crText,TRUE) << CPWL_Utils::GetAP_Diamond(rcBBox) << "f\nQ\n";
-	return sAP.GetByteString();
-}
-
-CFX_ByteString CPWL_Utils::GetAppStream_Square(const CPDF_Rect & rcBBox, const CPWL_Color & crText)
-{
-	CFX_ByteTextBuf sAP;
-	sAP << "q\n" << CPWL_Utils::GetColorAppStream(crText,TRUE) << CPWL_Utils::GetAP_Square(rcBBox) << "f\nQ\n";
-	return sAP.GetByteString();
-}
-
-CFX_ByteString CPWL_Utils::GetAppStream_Star(const CPDF_Rect & rcBBox, const CPWL_Color & crText)
-{
-	CFX_ByteTextBuf sAP;
-	sAP << "q\n" << CPWL_Utils::GetColorAppStream(crText,TRUE) << CPWL_Utils::GetAP_Star(rcBBox) << "f\nQ\n";
-	return sAP.GetByteString();
-}
-
-CFX_ByteString CPWL_Utils::GetCheckBoxAppStream(const CPDF_Rect & rcBBox,
-													int32_t nStyle,
-													const CPWL_Color & crText)
-{
-	CPDF_Rect rcCenter = GetCenterSquare(rcBBox);
-	switch (nStyle)
-	{
-	default:
-	case PCS_CHECK:
-		return GetAppStream_Check(rcCenter,crText);
-	case PCS_CIRCLE:
-		return GetAppStream_Circle(ScaleRect(rcCenter,2.0f/3.0f),crText);
-	case PCS_CROSS:
-		return GetAppStream_Cross(rcCenter,crText);
-	case PCS_DIAMOND:
-		return GetAppStream_Diamond(ScaleRect(rcCenter,2.0f/3.0f),crText);
-	case PCS_SQUARE:
-		return GetAppStream_Square(ScaleRect(rcCenter,2.0f/3.0f),crText);
-	case PCS_STAR:
-		return GetAppStream_Star(ScaleRect(rcCenter,2.0f/3.0f),crText);
-	}
-}
-
-CFX_ByteString CPWL_Utils::GetRadioButtonAppStream(const CPDF_Rect & rcBBox,
-													int32_t nStyle,
-													const CPWL_Color & crText)
-{
-	CPDF_Rect rcCenter = GetCenterSquare(rcBBox);
-	switch (nStyle)
-	{
-	default:
-	case PCS_CHECK:
-		return GetAppStream_Check(rcCenter,crText);
-	case PCS_CIRCLE:
-		return GetAppStream_Circle(ScaleRect(rcCenter,1.0f/2.0f),crText);
-	case PCS_CROSS:
-		return GetAppStream_Cross(rcCenter,crText);
-	case PCS_DIAMOND:
-		return GetAppStream_Diamond(ScaleRect(rcCenter,2.0f/3.0f),crText);
-	case PCS_SQUARE:
-		return GetAppStream_Square(ScaleRect(rcCenter,2.0f/3.0f),crText);
-	case PCS_STAR:
-		return GetAppStream_Star(ScaleRect(rcCenter,2.0f/3.0f),crText);
-	}
-}
-
-CFX_ByteString CPWL_Utils::GetDropButtonAppStream(const CPDF_Rect & rcBBox)
-{
-	CFX_ByteTextBuf sAppStream;
-
-	if (!rcBBox.IsEmpty())
-	{
-		sAppStream << "q\n" << CPWL_Utils::GetColorAppStream(CPWL_Color(COLORTYPE_RGB,220.0f/255.0f,220.0f/255.0f,220.0f/255.0f),TRUE);
-		sAppStream << rcBBox.left << " " << rcBBox.bottom << " "
-				<< rcBBox.right - rcBBox.left << " " << rcBBox.top - rcBBox.bottom << " re f\n";
-		sAppStream << "Q\n";
-
-		sAppStream << "q\n" <<
-			CPWL_Utils::GetBorderAppStream(rcBBox,2,CPWL_Color(COLORTYPE_GRAY,0),CPWL_Color(COLORTYPE_GRAY,1),CPWL_Color(COLORTYPE_GRAY,0.5),PBS_BEVELED,CPWL_Dash(3,0,0))
-			<< "Q\n";
-
-		CPDF_Point ptCenter = CPDF_Point((rcBBox.left + rcBBox.right)/2,(rcBBox.top + rcBBox.bottom)/2);
-		if (IsFloatBigger(rcBBox.right - rcBBox.left,6) && IsFloatBigger(rcBBox.top - rcBBox.bottom,6))
-		{
-			sAppStream << "q\n" << " 0 g\n";
-			sAppStream << ptCenter.x - 3 << " " << ptCenter.y + 1.5f << " m\n";
-			sAppStream << ptCenter.x + 3 << " " << ptCenter.y + 1.5f << " l\n";
-			sAppStream << ptCenter.x << " " << ptCenter.y - 1.5f << " l\n";
-			sAppStream << ptCenter.x - 3 << " " << ptCenter.y + 1.5f << " l f\n";
-			sAppStream << "Q\n";
-		}
-	}
-
-	return sAppStream.GetByteString();
-}
-
-void CPWL_Utils::ConvertCMYK2GRAY(FX_FLOAT dC,FX_FLOAT dM,FX_FLOAT dY,FX_FLOAT dK,FX_FLOAT &dGray)
-{
-	if (dC<0 || dC>1 || dM<0 || dM>1 || dY < 0 || dY >1 || dK < 0 || dK >1)
-		return;
-	dGray = 1.0f - FX_MIN(1.0f,0.3f*dC+0.59f * dM + 0.11f*dY+dK);
-}
-
-void CPWL_Utils::ConvertGRAY2CMYK(FX_FLOAT dGray,FX_FLOAT  &dC,FX_FLOAT &dM,FX_FLOAT &dY,FX_FLOAT &dK)
-{
-	if (dGray <0 || dGray >1)
-		return;
-	dC = 0.0f;
-	dM = 0.0f;
-	dY = 0.0f;
-	dK = 1.0f-dGray;
-}
-
-void CPWL_Utils::ConvertGRAY2RGB(FX_FLOAT dGray,FX_FLOAT &dR,FX_FLOAT &dG,FX_FLOAT &dB)
-{
-	if (dGray <0 || dGray >1)
-		return;
-	dR = dGray;
-	dG = dGray;
-	dB = dGray;
-}
-
-void CPWL_Utils::ConvertRGB2GRAY(FX_FLOAT dR,FX_FLOAT dG,FX_FLOAT dB,FX_FLOAT &dGray)
-{
-	if (dR<0 || dR>1 || dG<0 || dG > 0 || dB < 0 || dB >1)
-		return;
-	dGray = 0.3f*dR+0.59f*dG+0.11f*dB;
-}
-
-void CPWL_Utils::ConvertCMYK2RGB(FX_FLOAT dC,FX_FLOAT dM,FX_FLOAT dY,FX_FLOAT dK,FX_FLOAT &dR,FX_FLOAT &dG,FX_FLOAT &dB)
-{
-	if (dC <0 || dC>1 || dM < 0 || dM > 1 || dY < 0 || dY > 1 || dK < 0 || dK > 1 )
-		return;
-	dR = 1.0f - FX_MIN(1.0f, dC + dK);
-	dG = 1.0f - FX_MIN(1.0f, dM + dK);
-	dB = 1.0f - FX_MIN(1.0f, dY + dK);
-}
-
-void CPWL_Utils::ConvertRGB2CMYK(FX_FLOAT dR,FX_FLOAT dG,FX_FLOAT dB,FX_FLOAT &dC,FX_FLOAT &dM,FX_FLOAT &dY,FX_FLOAT &dK)
-{
-	if (dR<0 || dR>1 || dG<0 || dG>1 || dB<0 || dB>1)
-		return;
-
-	dC = 1.0f - dR;
-	dM = 1.0f - dG;
-	dY = 1.0f - dB;
-	dK = FX_MIN(dC, FX_MIN(dM, dY));
-}
-
-void CPWL_Utils::PWLColorToARGB(const CPWL_Color& color, int32_t& alpha, FX_FLOAT& red, FX_FLOAT& green, FX_FLOAT& blue)
-{
-	switch (color.nColorType)
-	{
-	case COLORTYPE_TRANSPARENT:
-		{
-			alpha = 0;
-		}
-		break;
-	case COLORTYPE_GRAY:
-		{
-			ConvertGRAY2RGB(color.fColor1, red, green, blue);
-		}
-		break;
-	case COLORTYPE_RGB:
-		{
-			red = color.fColor1;
-			green = color.fColor2;
-			blue = color.fColor3;
-		}
-		break;
-	case COLORTYPE_CMYK:
-		{
-			ConvertCMYK2RGB(color.fColor1, color.fColor2, color.fColor3, color.fColor4,
-				red, green, blue);
-		}
-		break;
-	}
-}
-
-FX_COLORREF CPWL_Utils::PWLColorToFXColor(const CPWL_Color& color, int32_t nTransparancy)
-{
-	int32_t nAlpha = nTransparancy;
-	FX_FLOAT dRed = 0;
-	FX_FLOAT dGreen = 0;
-	FX_FLOAT dBlue = 0;
-
-	PWLColorToARGB(color, nAlpha, dRed, dGreen, dBlue);
-
-	return ArgbEncode(nAlpha, (int32_t)(dRed*255), (int32_t)(dGreen*255), (int32_t)(dBlue*255));
-}
-
-void CPWL_Utils::DrawFillRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,const CPDF_Rect & rect,
-							  const FX_COLORREF & color)
-{
-	CFX_PathData path;
-	CPDF_Rect rcTemp(rect);
-	path.AppendRect(rcTemp.left,rcTemp.bottom,rcTemp.right,rcTemp.top);
-	pDevice->DrawPath(&path, pUser2Device, NULL, color, 0, FXFILL_WINDING);
-}
-
-void CPWL_Utils::DrawFillArea(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
-							const CPDF_Point* pPts, int32_t nCount, const FX_COLORREF& color)
-{
-	CFX_PathData path;
-	path.SetPointCount(nCount);
-
-	path.SetPoint(0, pPts[0].x, pPts[0].y, FXPT_MOVETO);
-	for (int32_t i=1; i<nCount; i++)
-		path.SetPoint(i, pPts[i].x, pPts[i].y, FXPT_LINETO);
-
-	pDevice->DrawPath(&path, pUser2Device, NULL, color, 0, FXFILL_ALTERNATE);
-}
-
-void CPWL_Utils::DrawStrokeRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,const CPDF_Rect & rect,
-							  const FX_COLORREF & color, FX_FLOAT fWidth)
-{
-	CFX_PathData path;
-	CPDF_Rect rcTemp(rect);
-	path.AppendRect(rcTemp.left,rcTemp.bottom,rcTemp.right,rcTemp.top);
-
-	CFX_GraphStateData gsd;
-	gsd.m_LineWidth = fWidth;
-
-	pDevice->DrawPath(&path, pUser2Device, &gsd, 0, color, FXFILL_ALTERNATE);
-}
-
-void CPWL_Utils::DrawStrokeLine(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
-							const CPDF_Point & ptMoveTo, const CPDF_Point & ptLineTo, const FX_COLORREF & color, FX_FLOAT fWidth)
-{
-	CFX_PathData path;
-	path.SetPointCount(2);
-	path.SetPoint(0, ptMoveTo.x, ptMoveTo.y, FXPT_MOVETO);
-	path.SetPoint(1, ptLineTo.x, ptLineTo.y, FXPT_LINETO);
-
-	CFX_GraphStateData gsd;
-	gsd.m_LineWidth = fWidth;
-
-	pDevice->DrawPath(&path, pUser2Device, &gsd, 0, color, FXFILL_ALTERNATE);
-}
-
-void CPWL_Utils::DrawFillRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,const CPDF_Rect & rect,
-							  const CPWL_Color & color, int32_t nTransparancy)
-{
-	CPWL_Utils::DrawFillRect(pDevice,pUser2Device,rect,PWLColorToFXColor(color,nTransparancy));
-}
-
-void CPWL_Utils::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)
-{
-	FX_FLOAT fStepGray = 1.0f;
-
-	if (bVertical)
-	{
-		fStepGray = (nEndGray - nStartGray) / rect.Height();
-
-		for (FX_FLOAT fy=rect.bottom+0.5f; fy<=rect.top-0.5f; fy+=1.0f)
-		{
-			int32_t nGray = nStartGray + (int32_t)(fStepGray * (fy-rect.bottom));
-			CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, CPDF_Point(rect.left, fy),
-				CPDF_Point(rect.right, fy), ArgbEncode(nTransparancy, nGray, nGray, nGray), 1.5f);
-		}
-	}
-
-	if (bHorizontal)
-	{
-		fStepGray = (nEndGray - nStartGray) / rect.Width();
-
-		for (FX_FLOAT fx=rect.left+0.5f; fx<=rect.right-0.5f; fx+=1.0f)
-		{
-			int32_t nGray = nStartGray + (int32_t)(fStepGray * (fx-rect.left));
-			CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, CPDF_Point(fx, rect.bottom),
-				CPDF_Point(fx, rect.top), ArgbEncode(nTransparancy, nGray, nGray, nGray), 1.5f);
-		}
-	}
-}
-
-void CPWL_Utils::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)
-{
-	FX_FLOAT fLeft = rect.left;
-	FX_FLOAT fRight = rect.right;
-	FX_FLOAT fTop = rect.top;
-	FX_FLOAT fBottom = rect.bottom;
-
-	if (fWidth > 0.0f)
-	{
-		FX_FLOAT fHalfWidth = fWidth / 2.0f;
-
-		switch (nStyle)
-		{
-		default:
-		case PBS_SOLID:
-			{
-				CFX_PathData path;
-				path.AppendRect(fLeft, fBottom, fRight, fTop);
-				path.AppendRect(fLeft + fWidth, fBottom + fWidth, fRight - fWidth, fTop - fWidth);
-				pDevice->DrawPath(&path, pUser2Device, NULL, PWLColorToFXColor(color,nTransparancy), 0, FXFILL_ALTERNATE);
-			}
-			break;
-		case PBS_DASH:
-			{
-				CFX_PathData path;
-
-				path.SetPointCount(5);
-				path.SetPoint(0, fLeft + fWidth / 2.0f, fBottom + fWidth / 2.0f, FXPT_MOVETO);
-				path.SetPoint(1, fLeft + fWidth / 2.0f, fTop - fWidth / 2.0f, FXPT_LINETO);
-				path.SetPoint(2, fRight - fWidth / 2.0f, fTop - fWidth / 2.0f, FXPT_LINETO);
-				path.SetPoint(3, fRight - fWidth / 2.0f, fBottom + fWidth / 2.0f, FXPT_LINETO);
-				path.SetPoint(4, fLeft + fWidth / 2.0f, fBottom + fWidth / 2.0f, FXPT_LINETO);
-
-				CFX_GraphStateData gsd;
-				gsd.SetDashCount(2);
-				gsd.m_DashArray[0] = 3.0f;
-				gsd.m_DashArray[1] = 3.0f;
-				gsd.m_DashPhase = 0;
-
-				gsd.m_LineWidth = fWidth;
-				pDevice->DrawPath(&path, pUser2Device, &gsd, 0, PWLColorToFXColor(color,nTransparancy), FXFILL_WINDING);
-			}
-			break;
-		case PBS_BEVELED:
-		case PBS_INSET:
-			{
-				CFX_GraphStateData gsd;
-				gsd.m_LineWidth = fHalfWidth;
-
-				CFX_PathData pathLT;
-
-				pathLT.SetPointCount(7);
-				pathLT.SetPoint(0, fLeft + fHalfWidth, fBottom + fHalfWidth, FXPT_MOVETO);
-				pathLT.SetPoint(1, fLeft + fHalfWidth, fTop - fHalfWidth, FXPT_LINETO);
-				pathLT.SetPoint(2, fRight - fHalfWidth, fTop - fHalfWidth, FXPT_LINETO);
-				pathLT.SetPoint(3, fRight - fHalfWidth * 2, fTop - fHalfWidth * 2, FXPT_LINETO);
-				pathLT.SetPoint(4, fLeft + fHalfWidth * 2, fTop - fHalfWidth * 2, FXPT_LINETO);
-				pathLT.SetPoint(5, fLeft + fHalfWidth * 2, fBottom + fHalfWidth * 2, FXPT_LINETO);
-				pathLT.SetPoint(6, fLeft + fHalfWidth, fBottom + fHalfWidth, FXPT_LINETO);
-
-				pDevice->DrawPath(&pathLT, pUser2Device, &gsd, PWLColorToFXColor(crLeftTop,nTransparancy), 0, FXFILL_ALTERNATE);
-
-				CFX_PathData pathRB;
-
-				pathRB.SetPointCount(7);
-				pathRB.SetPoint(0, fRight - fHalfWidth, fTop - fHalfWidth, FXPT_MOVETO);
-				pathRB.SetPoint(1, fRight - fHalfWidth, fBottom + fHalfWidth, FXPT_LINETO);
-				pathRB.SetPoint(2, fLeft + fHalfWidth, fBottom + fHalfWidth, FXPT_LINETO);
-				pathRB.SetPoint(3, fLeft + fHalfWidth * 2, fBottom + fHalfWidth * 2, FXPT_LINETO);
-				pathRB.SetPoint(4, fRight - fHalfWidth * 2, fBottom + fHalfWidth * 2, FXPT_LINETO);
-				pathRB.SetPoint(5, fRight - fHalfWidth * 2, fTop - fHalfWidth * 2, FXPT_LINETO);
-				pathRB.SetPoint(6, fRight - fHalfWidth, fTop - fHalfWidth, FXPT_LINETO);
-
-				pDevice->DrawPath(&pathRB, pUser2Device, &gsd, PWLColorToFXColor(crRightBottom,nTransparancy), 0, FXFILL_ALTERNATE);
-
-				CFX_PathData path;
-
-				path.AppendRect(fLeft, fBottom, fRight, fTop);
-				path.AppendRect(fLeft + fHalfWidth, fBottom + fHalfWidth, fRight - fHalfWidth, fTop - fHalfWidth);
-
-				pDevice->DrawPath(&path, pUser2Device, &gsd, PWLColorToFXColor(color,nTransparancy), 0, FXFILL_ALTERNATE);
-			}
-			break;
-		case PBS_UNDERLINED:
-			{
-				CFX_PathData path;
-
-				path.SetPointCount(2);
-				path.SetPoint(0, fLeft, fBottom + fWidth / 2, FXPT_MOVETO);
-				path.SetPoint(1, fRight, fBottom + fWidth / 2, FXPT_LINETO);
-
-				CFX_GraphStateData gsd;
-				gsd.m_LineWidth = fWidth;
-
-				pDevice->DrawPath(&path, pUser2Device, &gsd,0,  PWLColorToFXColor(color,nTransparancy), FXFILL_ALTERNATE);
-			}
-			break;
-		case PBS_SHADOW:
-			{
-				CFX_PathData path;
-				path.AppendRect(fLeft, fBottom, fRight, fTop);
-				path.AppendRect(fLeft + fWidth, fBottom + fWidth, fRight - fWidth, fTop - fWidth);
-				pDevice->DrawPath(&path, pUser2Device, NULL, PWLColorToFXColor(color,nTransparancy/2), 0, FXFILL_ALTERNATE);
-			}
-			break;
-		}
-	}
-}
-
-static void AddSquigglyPath(CFX_PathData & PathData, FX_FLOAT fStartX, FX_FLOAT fEndX, FX_FLOAT fY, FX_FLOAT fStep)
-{
-	PathData.AddPointCount(1);
-	PathData.SetPoint(PathData.GetPointCount() - 1, fStartX, fY, FXPT_MOVETO);
-
-	FX_FLOAT fx;
-	int32_t i;
-
-	for (i=1,fx=fStartX+fStep; fx<fEndX; fx+=fStep,i++)
-	{
-		PathData.AddPointCount(1);
-		PathData.SetPoint(PathData.GetPointCount() - 1, fx, fY + (i&1)*fStep, FXPT_LINETO);
-	}
-}
-
-static void AddSpellCheckObj(CFX_PathData & PathData, IFX_Edit* pEdit, const CPVT_WordRange& wrWord)
-{
-	FX_FLOAT fStartX = 0.0f;
-	FX_FLOAT fEndX = 0.0f;
-	FX_FLOAT fY = 0.0f;
-	FX_FLOAT fStep = 0.0f;
-
-	FX_BOOL bBreak = FALSE;
-
-	if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator())
-	{
-		pIterator->SetAt(wrWord.BeginPos);
-
-		do
-		{
-			CPVT_WordPlace place = pIterator->GetAt();
-
-			CPVT_Line line;
-			if (pIterator->GetLine(line))
-			{
-				fY = line.ptLine.y;
-				fStep = (line.fLineAscent - line.fLineDescent) / 16.0f;
-			}
-
-			if (place.LineCmp(wrWord.BeginPos) == 0)
-			{
-				pIterator->SetAt(wrWord.BeginPos);
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					fStartX = word.ptWord.x;
-				}
-			}
-			else
-			{
-				fStartX = line.ptLine.x;
-			}
-
-			if (place.LineCmp(wrWord.EndPos) == 0)
-			{
-				pIterator->SetAt(wrWord.EndPos);
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					fEndX = word.ptWord.x + word.fWidth;
-				}
-
-				bBreak = TRUE;
-			}
-			else
-			{
-				fEndX = line.ptLine.x + line.fLineWidth;
-			}
-
-			AddSquigglyPath(PathData, fStartX, fEndX, fY, fStep);
-
-			if (bBreak) break;
-		}
-		while (pIterator->NextLine());
-	}
-}
-
-void CPWL_Utils::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)
-{
-	const FX_COLORREF crSpell = ArgbEncode(255,255,0,0);
-
-	//for spellcheck
-	FX_BOOL bLatinWord = FALSE;
-	CPVT_WordPlace wpWordStart;
-	CFX_ByteString sLatinWord;
-
-	CFX_PathData pathSpell;
-
-	pDevice->SaveState();
-
-	if (!rcClip.IsEmpty())
-	{
-		CPDF_Rect rcTemp = rcClip;
-		pUser2Device->TransformRect(rcTemp);
-		FX_RECT rcDevClip;
-		rcDevClip.left = (int32_t)rcTemp.left;
-		rcDevClip.right = (int32_t)rcTemp.right;
-		rcDevClip.top = (int32_t)rcTemp.top;
-		rcDevClip.bottom = (int32_t)rcTemp.bottom;
-		pDevice->SetClip_Rect(&rcDevClip);
-	}
-
-	if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator())
-	{
-		if (pEdit->GetFontMap())
-		{
-			if (pRange)
-				pIterator->SetAt(pRange->BeginPos);
-			else
-				pIterator->SetAt(0);
-
-			CPVT_WordPlace oldplace;
-
-			while (pIterator->NextWord())
-			{
-				CPVT_WordPlace place = pIterator->GetAt();
-				if (pRange && place.WordCmp(pRange->EndPos) > 0) break;
-
-				CPVT_Word word;
-				if (pIterator->GetWord(word))
-				{
-					if (FX_EDIT_ISLATINWORD(word.Word))
-					{
-						if (!bLatinWord)
-						{
-							wpWordStart = place;
-							bLatinWord = TRUE;
-						}
-
-						sLatinWord += (char)word.Word;
-					}
-					else
-					{
-						if (bLatinWord)
-						{
-							if (!sLatinWord.IsEmpty())
-							{
-								if (pSpellCheck && !pSpellCheck->CheckWord(sLatinWord))
-								{
-									AddSpellCheckObj(pathSpell,pEdit,CPVT_WordRange(wpWordStart,oldplace));
-									pIterator->SetAt(place);
-								}
-							}
-							bLatinWord = FALSE;
-						}
-
-						sLatinWord.Empty();
-					}
-
-					oldplace = place;
-				}
-				else
-				{
-					if (bLatinWord)
-					{
-						if (!sLatinWord.IsEmpty())
-						{
-							if (pSpellCheck && !pSpellCheck->CheckWord(sLatinWord))
-							{
-								AddSpellCheckObj(pathSpell,pEdit,CPVT_WordRange(wpWordStart,oldplace));
-								pIterator->SetAt(place);
-							}
-						}
-						bLatinWord = FALSE;
-					}
-
-					sLatinWord.Empty();
-				}
-			}
-
-			if (!sLatinWord.IsEmpty())
-			{
-				if (pSpellCheck && !pSpellCheck->CheckWord(sLatinWord))
-				{
-					AddSpellCheckObj(pathSpell,pEdit,CPVT_WordRange(wpWordStart,oldplace));
-				}
-			}
-		}
-	}
-
-	CFX_GraphStateData gsd;
-	gsd.m_LineWidth = 0;
-	if (pathSpell.GetPointCount() > 0)
-		pDevice->DrawPath(&pathSpell, pUser2Device, &gsd, 0, crSpell, FXFILL_ALTERNATE);
-
-	pDevice->RestoreState();
-}
-
-FX_BOOL CPWL_Utils::IsBlackOrWhite(const CPWL_Color& color)
-{
-	switch (color.nColorType)
-	{
-	case COLORTYPE_TRANSPARENT:
-		return FALSE;
-	case COLORTYPE_GRAY:
-		return color.fColor1 < 0.5f;
-	case COLORTYPE_RGB:
-		return color.fColor1 + color.fColor2 + color.fColor3 < 1.5f;
-	case COLORTYPE_CMYK:
-		return color.fColor1 + color.fColor2 + color.fColor3 + color.fColor4 > 2.0f;
-	}
-
-	return TRUE;
-}
-
-CPWL_Color CPWL_Utils::GetReverseColor(const CPWL_Color& color)
-{
-	CPWL_Color crRet = color;
-
-	switch (color.nColorType)
-	{
-	case COLORTYPE_GRAY:
-		crRet.fColor1 = 1.0f - crRet.fColor1;
-		break;
-	case COLORTYPE_RGB:
-		crRet.fColor1 = 1.0f - crRet.fColor1;
-		crRet.fColor2 = 1.0f - crRet.fColor2;
-		crRet.fColor3 = 1.0f - crRet.fColor3;
-		break;
-	case COLORTYPE_CMYK:
-		crRet.fColor1 = 1.0f - crRet.fColor1;
-		crRet.fColor2 = 1.0f - crRet.fColor2;
-		crRet.fColor3 = 1.0f - crRet.fColor3;
-		crRet.fColor4 = 1.0f - crRet.fColor4;
-		break;
-	}
-
-	return crRet;
-}
-
-CFX_ByteString CPWL_Utils::GetIconAppStream(int32_t nType, const CPDF_Rect& rect, const CPWL_Color& crFill,
-												const CPWL_Color& crStroke)
-{
-	CFX_ByteString sAppStream = CPWL_Utils::GetColorAppStream(crStroke, FALSE);
-	sAppStream += CPWL_Utils::GetColorAppStream(crFill, TRUE);
-
-	CFX_ByteString sPath;
-	CFX_PathData path;
-
-	switch (nType)
-	{
-	case PWL_ICONTYPE_CHECKMARK:
-		GetGraphics_Checkmark(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_CIRCLE:
-		GetGraphics_Circle(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_COMMENT:
-		GetGraphics_Comment(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_CROSS:
-		GetGraphics_Cross(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_HELP:
-		GetGraphics_Help(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_INSERTTEXT:
-		GetGraphics_InsertText(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_KEY:
-		GetGraphics_Key(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_NEWPARAGRAPH:
-		GetGraphics_NewParagraph(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_TEXTNOTE:
-		GetGraphics_TextNote(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_PARAGRAPH:
-		GetGraphics_Paragraph(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_RIGHTARROW:
-		GetGraphics_RightArrow(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_RIGHTPOINTER:
-		GetGraphics_RightPointer(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_STAR:
-		GetGraphics_Star(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_UPARROW:
-		GetGraphics_UpArrow(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_UPLEFTARROW:
-		GetGraphics_UpLeftArrow(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_GRAPH:
-		GetGraphics_Graph(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_PAPERCLIP:
-		GetGraphics_Paperclip(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_ATTACHMENT:
-		GetGraphics_Attachment(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_TAG:
-		GetGraphics_Tag(sPath, path, rect, PWLPT_STREAM);
-		break;
-	case PWL_ICONTYPE_FOXIT:
-		GetGraphics_Foxit(sPath, path, rect, PWLPT_STREAM);
-		break;
-	}
-
-	sAppStream += sPath;
-	if (crStroke.nColorType != COLORTYPE_TRANSPARENT)
-		sAppStream += "B*\n";
-	else
-		sAppStream += "f*\n";
-
-	return sAppStream;
-}
-
-void CPWL_Utils::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)
-{
-	CFX_GraphStateData gsd;
-	gsd.m_LineWidth = 1.0f;
-
-	CFX_ByteString sPath;
-	CFX_PathData path;
-
-	switch (nType)
-	{
-	case PWL_ICONTYPE_CHECKMARK:
-		GetGraphics_Checkmark(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_CIRCLE:
-		GetGraphics_Circle(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_COMMENT:
-		GetGraphics_Comment(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_CROSS:
-		GetGraphics_Cross(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_HELP:
-		GetGraphics_Help(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_INSERTTEXT:
-		GetGraphics_InsertText(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_KEY:
-		GetGraphics_Key(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_NEWPARAGRAPH:
-		GetGraphics_NewParagraph(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_TEXTNOTE:
-		GetGraphics_TextNote(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_PARAGRAPH:
-		GetGraphics_Paragraph(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_RIGHTARROW:
-		GetGraphics_RightArrow(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_RIGHTPOINTER:
-		GetGraphics_RightPointer(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_STAR:
-		GetGraphics_Star(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_UPARROW:
-		GetGraphics_UpArrow(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_UPLEFTARROW:
-		GetGraphics_UpLeftArrow(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_GRAPH:
-		GetGraphics_Graph(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_PAPERCLIP:
-		GetGraphics_Paperclip(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_ATTACHMENT:
-		GetGraphics_Attachment(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_TAG:
-		GetGraphics_Tag(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	case PWL_ICONTYPE_FOXIT:
-		GetGraphics_Foxit(sPath, path, rect, PWLPT_PATHDATA);
-		break;
-	default:
-		return;
-	}
-
-	pDevice->DrawPath(&path, pUser2Device, &gsd,
-		PWLColorToFXColor(crFill,nTransparancy), PWLColorToFXColor(crStroke,nTransparancy), FXFILL_ALTERNATE);
-}
-
-void CPWL_Utils::GetGraphics_Checkmark(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left  + fWidth / 15.0f, crBBox.bottom + fHeight * 2 / 5.0f),PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left  + fWidth / 15.0f + PWL_BEZIER*(fWidth / 7.0f - fWidth / 15.0f),
-					  crBBox.bottom + fHeight * 2 / 5.0f + PWL_BEZIER*(fHeight * 2 / 7.0f - fHeight * 2 / 5.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 4.5f + PWL_BEZIER*(fWidth / 5.0f - fWidth / 4.5f),
-					  crBBox.bottom + fHeight / 16.0f + PWL_BEZIER*(fHeight / 5.0f - fHeight / 16.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 4.5f, crBBox.bottom + fHeight / 16.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 4.5f + PWL_BEZIER*(fWidth / 4.4f - fWidth / 4.5f),
-		              crBBox.bottom + fHeight / 16.0f - PWL_BEZIER*fHeight / 16.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 3.0f + PWL_BEZIER*(fWidth / 4.0f - fWidth / 3.0f),
-		              crBBox.bottom), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 3.0f, crBBox.bottom), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 3.0f + PWL_BEZIER*fWidth*(1/7.0f + 2/15.0f),
-		              crBBox.bottom + PWL_BEZIER*fHeight * 4 / 5.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left  + fWidth * 14 / 15.0f + PWL_BEZIER*fWidth*(1/7.0f - 7/15.0f),
-		              crBBox.bottom + fHeight * 15/16.0f + PWL_BEZIER*(fHeight * 4/5.0f - fHeight * 15/16.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left  + fWidth * 14 / 15.0f,crBBox.bottom + fHeight * 15 / 16.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left  + fWidth * 14 / 15.0f + PWL_BEZIER*(fWidth * 7 / 15.0f - fWidth * 14 / 15.0f),
-		              crBBox.bottom + fHeight * 15 / 16.0f + PWL_BEZIER*(fHeight * 8 / 7.0f - fHeight * 15 / 16.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 3.6f + PWL_BEZIER*(fWidth / 3.4f - fWidth / 3.6f),
-		              crBBox.bottom + fHeight / 3.5f + PWL_BEZIER*(fHeight / 3.5f - fHeight / 3.5f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 3.6f,crBBox.bottom + fHeight / 3.5f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 3.6f,
-		              crBBox.bottom + fHeight / 3.5f + PWL_BEZIER*(fHeight / 4.0f - fHeight / 3.5f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left  + fWidth / 15.0f + PWL_BEZIER*(fWidth / 3.5f - fWidth / 15.0f),
-		              crBBox.bottom + fHeight * 2 / 5.0f + PWL_BEZIER*(fHeight * 3.5f / 5.0f - fHeight * 2 / 5.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left  + fWidth / 15.0f,crBBox.bottom + fHeight * 2 / 5.0f), PWLPT_BEZIERTO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 16);
-	else
-		GetPathDataFromArray(path, PathArray, 16);
-}
-
-void CPWL_Utils::GetGraphics_Circle(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/15.0f,crBBox.bottom + fHeight/2.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/15.0f,
-		              crBBox.bottom + fHeight/2.0f + PWL_BEZIER*(fHeight*14/15.0f - fHeight/2.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f - PWL_BEZIER*(fWidth/2.0f - fWidth/15.0f), crBBox.top - fHeight/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f,crBBox.top - fHeight/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f + PWL_BEZIER*(fWidth*14/15.0f - fWidth/2.0f), crBBox.top - fHeight/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15.0f, crBBox.bottom + fHeight/2.0f + PWL_BEZIER*(fHeight*14/15.0f - fHeight/2.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15.0f, crBBox.bottom + fHeight/2.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15.0f, crBBox.bottom + fHeight/2.0f - PWL_BEZIER*(fHeight/2.0f - fHeight/15.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f + PWL_BEZIER*(fWidth*14/15.0f - fWidth/2.0f), crBBox.bottom + fHeight/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.bottom + fHeight/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f - PWL_BEZIER*(fWidth/2.0f - fWidth/15.0f), crBBox.bottom + fHeight/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/15.0f, crBBox.bottom + fHeight/2.0f - PWL_BEZIER*(fHeight/2.0f - fHeight/15.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/15.0f,crBBox.bottom + fHeight/2.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*3/15.0f, crBBox.bottom + fHeight/2.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*3/15.0f, crBBox.bottom + fHeight/2.0f + PWL_BEZIER*(fHeight*4/5.0f - fHeight/2.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f - PWL_BEZIER*(fWidth/2.0f - fWidth*3/15.0f), crBBox.top - fHeight*3/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.top - fHeight*3/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f + PWL_BEZIER*(fWidth*4/5.0f - fWidth/2.0f), crBBox.top - fHeight*3/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*3/15.0f, crBBox.bottom + fHeight/2.0f + PWL_BEZIER*(fHeight*4/5.0f - fHeight/2.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*3/15.0f, crBBox.bottom + fHeight/2.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*3/15.0f, crBBox.bottom + fHeight/2.0f - PWL_BEZIER*(fHeight*4/5.0f - fHeight/2.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f + PWL_BEZIER*(fWidth*4/5.0f - fWidth/2.0f), crBBox.bottom + fHeight*3/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.bottom + fHeight*3/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f - PWL_BEZIER*(fWidth*4/5.0f - fWidth/2.0f), crBBox.bottom + fHeight*3/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*3/15.0f, crBBox.bottom + fHeight/2.0f - PWL_BEZIER*(fHeight*4/5.0f - fHeight/2.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*3/15.0f, crBBox.bottom + fHeight/2.0f), PWLPT_BEZIERTO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 26);
-	else
-		GetPathDataFromArray(path, PathArray, 26);
-}
-
-void CPWL_Utils::GetGraphics_Comment(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/15.0f, crBBox.top - fHeight/6.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/15.0f, crBBox.top - fHeight/6.0f + PWL_BEZIER*(fHeight/6.0f - fHeight/10.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*2/15.0f - PWL_BEZIER*fWidth/15.0f, crBBox.top - fHeight/10.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*2/15.0f, crBBox.top - fHeight/10.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*2/15.0f, crBBox.top - fHeight/10.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*2/15.0f + PWL_BEZIER*fWidth/15.0f, crBBox.top - fHeight/10.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15.0f, crBBox.top - fHeight/6 + PWL_BEZIER*(fHeight/6.0f - fHeight/10.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15.0f, crBBox.top - fHeight/6.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15.0f, crBBox.bottom + fHeight/3.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15.0f, crBBox.bottom + fHeight*4/15.0f + PWL_BEZIER*fHeight/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*2/15.0f + PWL_BEZIER*fWidth/15.0f, crBBox.bottom + fHeight*4/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*2/15.0f, crBBox.bottom + fHeight*4/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*5/15.0f, crBBox.bottom + fHeight*4/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*5/15.0f, crBBox.bottom + fHeight*2/15 + PWL_BEZIER*fHeight*2/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*5/15.0f - PWL_BEZIER*fWidth*2/15.0f, crBBox.bottom + fHeight*2/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*6/30.0f, crBBox.bottom + fHeight*2/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*7/30.0f + PWL_BEZIER*fWidth/30.0f, crBBox.bottom + fHeight*2/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*7/30.0f, crBBox.bottom + fHeight*2/15.0f + PWL_BEZIER*fHeight*2/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*7/30.0f, crBBox.bottom + fHeight*4/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*2/15.0f, crBBox.bottom + fHeight*4/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*2/15.0f - PWL_BEZIER*fWidth/15.0f, crBBox.bottom + fHeight*4/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/15.0f, crBBox.bottom + fHeight/3.0f - PWL_BEZIER*fHeight/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/15.0f, crBBox.bottom + fHeight/3.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/15.0f, crBBox.top - fHeight/6.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*2/15.0f, crBBox.top - fHeight*8/30.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*2/15.0f, crBBox.top - fHeight*8/30.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*2/15, crBBox.top - fHeight*25/60.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*2/15.0f, crBBox.top - fHeight*25/60.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*2/15.0f, crBBox.top - fHeight*17/30.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*4/15.0f, crBBox.top - fHeight*17/30.0f), PWLPT_LINETO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 30);
-	else
-		GetPathDataFromArray(path, PathArray, 30);
-}
-
-void CPWL_Utils::GetGraphics_Cross(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-	//FX_FLOAT fcatercorner = (FX_FLOAT)sqrt(fWidth*fWidth + fHeight*fHeight);
-	CPWL_Point center_point(crBBox.left + fWidth/2, crBBox.bottom + fHeight/2);
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(center_point.x, center_point.y + fHeight/10.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(center_point.x + fWidth*0.3f, center_point.y + fHeight/10.0f + fWidth*0.3f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(center_point.x + fWidth/10.0f + fWidth*0.3f, center_point.y + fHeight*0.3f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(center_point.x + fWidth/10.0f, center_point.y), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(center_point.x + fWidth/10.0f + fWidth*0.3f, center_point.y - fHeight*0.3f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(center_point.x + fWidth*0.3f, center_point.y - fHeight/10.0f - fHeight*0.3f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(center_point.x, center_point.y - fHeight/10.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(center_point.x - fWidth*0.3f, center_point.y - fHeight/10 - fHeight*0.3f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(center_point.x - fWidth/10.0f - fWidth*0.3f, center_point.y - fHeight*0.3f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(center_point.x - fWidth/10, center_point.y), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(center_point.x - fWidth/10 - fWidth*0.3f, center_point.y + fHeight*0.3f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(center_point.x - fWidth*0.3f, center_point.y + fHeight/10.0f + fHeight*0.3f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(center_point.x, center_point.y + fHeight/10.0f), PWLPT_LINETO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 13);
-	else
-		GetPathDataFromArray(path, PathArray, 13);
-}
-
-void CPWL_Utils::GetGraphics_Help(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60.0f, crBBox.bottom + fHeight/2.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60.0f, crBBox.bottom + fHeight/2.0f + PWL_BEZIER*(fHeight/60.0f - fHeight/2.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f - PWL_BEZIER*(fWidth/2.0f - fWidth/60.0f), crBBox.bottom + fHeight/60.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.bottom + fHeight/60.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f + PWL_BEZIER*fWidth*29/60.0f, crBBox.bottom + fHeight/60.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/60.0f, crBBox.bottom + fHeight/2.0f + PWL_BEZIER*(fHeight/60.0f - fHeight/2.0f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/60.0f, crBBox.bottom + fHeight/2.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/60.0f, crBBox.bottom + fHeight/2.0f + PWL_BEZIER*fHeight*29/60.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f + PWL_BEZIER*fWidth*29/60.0f, crBBox.top - fHeight/60.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.top - fHeight/60.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f - PWL_BEZIER*fWidth*29/60.0f, crBBox.top - fHeight/60.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60.0f, crBBox.bottom + fHeight/2.0f  + PWL_BEZIER*fHeight*29/60.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60.0f, crBBox.bottom + fHeight/2.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.27f, crBBox.top - fHeight*0.36f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.27f, crBBox.top - fHeight*0.36f + PWL_BEZIER*fHeight*0.23f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.5f - PWL_BEZIER*fWidth*0.23f, crBBox.bottom + fHeight*0.87f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.5f, crBBox.bottom + fHeight*0.87f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.5f + PWL_BEZIER*fWidth*0.23f, crBBox.bottom + fHeight*0.87f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.27f, crBBox.top - fHeight*0.36f + PWL_BEZIER*fHeight*0.23f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.27f, crBBox.top - fHeight*0.36f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.27f - fWidth*0.08f*0.2f, crBBox.top - fHeight*0.36f - fHeight*0.15f*0.7f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.35f + fWidth*0.08f*0.2f, crBBox.top - fHeight*0.51f + fHeight*0.15f*0.2f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.35f, crBBox.top - fHeight*0.51f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.35f - fWidth*0.1f*0.5f, crBBox.top - fHeight*0.51f - fHeight*0.15f*0.3f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.45f - fWidth*0.1f*0.5f, crBBox.top - fHeight*0.68f + fHeight*0.15f*0.5f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.45f, crBBox.top - fHeight*0.68f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.45f, crBBox.bottom + fHeight*0.30f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.45f, crBBox.bottom + fHeight*0.30f - fWidth*0.1f*0.7f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.55f, crBBox.bottom + fHeight*0.30f - fWidth*0.1f*0.7f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.55f, crBBox.bottom + fHeight*0.30f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.55f, crBBox.top - fHeight*0.66f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.55f - fWidth*0.1f*0.05f, crBBox.top - fHeight*0.66f + fHeight*0.18f*0.5f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.45f - fWidth*0.1f*0.05f, crBBox.top - fHeight*0.48f - fHeight*0.18f*0.3f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.45f, crBBox.top - fHeight*0.48f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.45f + fWidth*0.08f*0.2f, crBBox.top - fHeight*0.48f + fHeight*0.18f*0.2f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.37f - fWidth*0.08f*0.2f, crBBox.top - fHeight*0.36f - fHeight*0.18f*0.7f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.37f, crBBox.top - fHeight*0.36f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.37f, crBBox.top - fHeight*0.36f + PWL_BEZIER*fHeight*0.13f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.5f + PWL_BEZIER*fWidth*0.13f, crBBox.bottom + fHeight*0.77f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.5f, crBBox.bottom + fHeight*0.77f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.5f - PWL_BEZIER*fWidth*0.13f, crBBox.bottom + fHeight*0.77f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.37f, crBBox.top - fHeight*0.36f + PWL_BEZIER*fHeight*0.13f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.37f, crBBox.top - fHeight*0.36f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.37f, crBBox.top - fHeight*0.36f - fWidth*0.1f*0.6f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.27f, crBBox.top - fHeight*0.36f - fWidth*0.1f*0.6f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.27f, crBBox.top - fHeight*0.36f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.56f, crBBox.bottom + fHeight*0.13f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.56f, crBBox.bottom + fHeight*0.13f + PWL_BEZIER*fHeight*0.055f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.505f - PWL_BEZIER*fWidth*0.095f, crBBox.bottom + fHeight*0.185f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.505f, crBBox.bottom + fHeight*0.185f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.505f + PWL_BEZIER*fWidth*0.065f, crBBox.bottom + fHeight*0.185f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.44f, crBBox.bottom + fHeight*0.13f + PWL_BEZIER*fHeight*0.055f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.44f, crBBox.bottom + fHeight*0.13f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.44f, crBBox.bottom + fHeight*0.13f - PWL_BEZIER*fHeight*0.055f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.505f + PWL_BEZIER*fWidth*0.065f, crBBox.bottom + fHeight*0.075f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.505f, crBBox.bottom + fHeight*0.075f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.505f - PWL_BEZIER*fWidth*0.065f, crBBox.bottom + fHeight*0.075f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.56f, crBBox.bottom + fHeight*0.13f - PWL_BEZIER*fHeight*0.055f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.56f, crBBox.bottom + fHeight*0.13f), PWLPT_BEZIERTO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 59);
-	else
-		GetPathDataFromArray(path, PathArray, 59);
-}
-
-void CPWL_Utils::GetGraphics_InsertText(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/10, crBBox.bottom + fHeight/10), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2, crBBox.top - fHeight*2/15), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/10, crBBox.bottom + fHeight/10), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/10, crBBox.bottom + fHeight/10), PWLPT_LINETO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 4);
-	else
-		GetPathDataFromArray(path, PathArray, 4);
-}
-
-void CPWL_Utils::GetGraphics_Key(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-	FX_FLOAT k = -fHeight/fWidth;
-	CPWL_Point tail;
-	CPWL_Point CicleCenter;
-	tail.x = crBBox.left + fWidth*0.9f;
-	tail.y = k*(tail.x - crBBox.right) + crBBox.bottom;
-	CicleCenter.x = crBBox.left + fWidth*0.15f;
-	CicleCenter.y = k*(CicleCenter.x - crBBox.right) + crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/30.0f, -fWidth/30.0f/k + tail.y), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/30.0f - fWidth*0.18f, -k*fWidth*0.18f - fWidth/30/k + tail.y), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/30 - fWidth*0.18f + fWidth*0.07f,
-		              -fWidth*0.07f/k - k*fWidth*0.18f - fWidth/30/k + tail.y), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/30 - fWidth*0.18f - fWidth/20 + fWidth*0.07f,
-		              -fWidth*0.07f/k - k*fWidth/20 - k*fWidth*0.18f - fWidth/30/k + tail.y), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/30 - fWidth*0.18f - fWidth/20,
-		              -k*fWidth/20 - k*fWidth*0.18f - fWidth/30/k + tail.y), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/30 - fWidth*0.18f - fWidth/20 - fWidth/15,
-		              -k*fWidth/15 - k*fWidth/20 - k*fWidth*0.18f - fWidth/30/k + tail.y), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/30 - fWidth*0.18f - fWidth/20 - fWidth/15 + fWidth*0.07f,
-		              -fWidth*0.07f/k - k*fWidth/15 - k*fWidth/20 - k*fWidth*0.18f - fWidth/30/k + tail.y), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/30 - fWidth*0.18f - fWidth/20 - fWidth/15 - fWidth/20 + fWidth*0.07f,
-		              -fWidth*0.07f/k + -k*fWidth/20 + -k*fWidth/15 - k*fWidth/20 - k*fWidth*0.18f - fWidth/30/k + tail.y), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/30 - fWidth*0.18f - fWidth/20 - fWidth/15 - fWidth/20,
-		              -k*fWidth/20 + -k*fWidth/15 - k*fWidth/20 - k*fWidth*0.18f - fWidth/30/k + tail.y), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/30 - fWidth*0.45f, -k*fWidth*0.45f - fWidth/30/k + tail.y), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/30 - fWidth*0.45f + fWidth*0.2f,
-		              -fWidth*0.4f/k - k*fWidth*0.45f - fWidth/30/k + tail.y), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(CicleCenter.x + fWidth*0.2f, - fWidth*0.1f/k + CicleCenter.y), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(CicleCenter.x, CicleCenter.y), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(CicleCenter.x - fWidth/60.0f, -k*fWidth/60 + CicleCenter.y), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(CicleCenter.x - fWidth/60, -k*fWidth/60 + CicleCenter.y), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(CicleCenter.x, CicleCenter.y), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(CicleCenter.x - fWidth*0.22f, fWidth*0.35f/k + CicleCenter.y - fHeight*0.05f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(tail.x - fWidth/30 - fWidth*0.45f - fWidth*0.18f, fWidth*0.05f/k - k*fWidth*0.45f + fWidth/30/k + tail.y - fHeight*0.05f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(tail.x - fWidth/30.0f - fWidth*0.45f, -k*fWidth*0.45f + fWidth/30.0f/k + tail.y), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(tail.x - fWidth/30.0f, fWidth/30.0f/k + tail.y), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/30, -fWidth/30/k + tail.y), PWLPT_LINETO),
- 		CPWL_PathData(CPWL_Point(CicleCenter.x + fWidth*0.08f, k*fWidth*0.08f + CicleCenter.y), PWLPT_MOVETO),
- 		CPWL_PathData(CPWL_Point(CicleCenter.x + fWidth*0.08f + fWidth*0.1f, -fWidth*0.1f/k + k*fWidth*0.08f + CicleCenter.y), PWLPT_BEZIERTO),
- 		CPWL_PathData(CPWL_Point(CicleCenter.x + fWidth*0.22f + fWidth*0.1f, k*fWidth*0.22f + CicleCenter.y - fWidth*0.1f/k), PWLPT_BEZIERTO),
- 		CPWL_PathData(CPWL_Point(CicleCenter.x + fWidth*0.22f, k*fWidth*0.22f + CicleCenter.y), PWLPT_BEZIERTO),
- 		CPWL_PathData(CPWL_Point(CicleCenter.x + fWidth*0.22f - fWidth*0.1f, fWidth*0.1f/k + k*fWidth*0.22f + CicleCenter.y), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(CicleCenter.x + fWidth*0.08f - fWidth*0.1f, fWidth*0.1f/k + k*fWidth*0.08f + CicleCenter.y), PWLPT_BEZIERTO),
- 		CPWL_PathData(CPWL_Point(CicleCenter.x + fWidth*0.08f, k*fWidth*0.08f + CicleCenter.y), PWLPT_BEZIERTO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 28);
-	else
-		GetPathDataFromArray(path, PathArray, 28);
-}
-
-void CPWL_Utils::GetGraphics_NewParagraph(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.top - fHeight/20.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/10.0f, crBBox.top - fHeight/2.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/10.0f, crBBox.top - fHeight/2.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.top - fHeight/20.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.12f, crBBox.top - fHeight*17/30.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.12f, crBBox.bottom + fHeight/10.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.22f, crBBox.bottom + fHeight/10.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.22f, crBBox.top - fHeight*17/30.0f - fWidth*0.14f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.38f, crBBox.bottom + fHeight/10.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.48f, crBBox.bottom + fHeight/10.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.48f, crBBox.top - fHeight*17/30.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.38f, crBBox.top - fHeight*17/30.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.38f, crBBox.bottom + fWidth*0.24f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.22f, crBBox.top - fHeight*17/30.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.12f, crBBox.top - fHeight*17/30.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.6f, crBBox.bottom + fHeight/10.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.7f, crBBox.bottom + fHeight/10.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.7f, crBBox.bottom + fHeight/10.0f + fHeight/7.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.97f, crBBox.bottom + fHeight/10.0f + fHeight/7.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.97f, crBBox.top - fHeight*17/30.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.7f, crBBox.top - fHeight*17/30.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.6f, crBBox.top - fHeight*17/30.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.6f, crBBox.bottom + fHeight/10.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.7f, crBBox.bottom + fHeight/7 + fHeight*0.18f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.85f, crBBox.bottom + fHeight/7 + fHeight*0.18f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.85f, crBBox.top - fHeight*17/30.0f - fHeight*0.08f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.7f, crBBox.top - fHeight*17/30.0f - fHeight*0.08f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.7f, crBBox.bottom + fHeight/7 + fHeight*0.18f), PWLPT_LINETO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 28);
-	else
-		GetPathDataFromArray(path, PathArray, 28);
-}
-
-void CPWL_Utils::GetGraphics_TextNote(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*3/10.0f, crBBox.bottom + fHeight/15.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*7/10.0f, crBBox.bottom + fHeight*4/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/10.0f, crBBox.bottom + fHeight*4/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/10.0f, crBBox.top - fHeight/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/10.0f, crBBox.top - fHeight/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/10.0f, crBBox.bottom + fHeight/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*3/10.0f, crBBox.bottom + fHeight/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/10.0f, crBBox.bottom + fHeight*4/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*3/10.0f, crBBox.bottom + fHeight/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*3/10.0f, crBBox.bottom + fHeight*4/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/10.0f, crBBox.bottom + fHeight*4/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/5.0f, crBBox.top - fHeight*4/15.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/5.0f, crBBox.top - fHeight*4/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/5.0f, crBBox.top - fHeight*7/15.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/5.0f, crBBox.top - fHeight*7/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/5.0f, crBBox.top - fHeight*10/15.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*3/10.0f, crBBox.top - fHeight*10/15.0f), PWLPT_LINETO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 17);
-	else
-		GetPathDataFromArray(path, PathArray, 17);
-}
-
-void CPWL_Utils::GetGraphics_Paragraph(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.top - fHeight/15.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.7f, crBBox.top - fHeight/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.7f, crBBox.bottom + fHeight/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.634f, crBBox.bottom + fHeight/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.634f, crBBox.top - fHeight*2/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.566f, crBBox.top - fHeight*2/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.566f, crBBox.bottom + fHeight/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.bottom + fHeight/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.top - fHeight/15.0f - fHeight*0.4f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.2f, crBBox.top - fHeight/15.0f - fHeight*0.4f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.2f, crBBox.top - fHeight/15.0f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.top - fHeight/15.0f), PWLPT_BEZIERTO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 12);
-	else
-		GetPathDataFromArray(path, PathArray, 12);
-}
-
-void CPWL_Utils::GetGraphics_RightArrow(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15.0f, crBBox.top - fHeight/2.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f + fWidth/8.0f, crBBox.bottom + fHeight/5.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.bottom + fHeight/5.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15.0f - fWidth*0.15f, crBBox.top - fHeight/2.0f - fWidth/25.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.1f, crBBox.top - fHeight/2.0f - fWidth/25.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.1f, crBBox.top - fHeight/2.0f + fWidth/25.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15.0f - fWidth*0.15f, crBBox.top - fHeight/2.0f + fWidth/25.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.top - fHeight/5.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f + fWidth/8.0f, crBBox.top - fHeight/5.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15.0f, crBBox.top - fHeight/2.0f), PWLPT_LINETO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 10);
-	else
-		GetPathDataFromArray(path, PathArray, 10);
-}
-
-void CPWL_Utils::GetGraphics_RightPointer(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/30.0f, crBBox.top - fHeight/2.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/30.0f, crBBox.bottom + fHeight/6.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*4/15.0f, crBBox.top - fHeight/2.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/30.0f, crBBox.top - fHeight/6.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/30.0f, crBBox.top - fHeight/2.0f), PWLPT_LINETO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 5);
-	else
-		GetPathDataFromArray(path, PathArray, 5);
-}
-
-void CPWL_Utils::GetGraphics_Star(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fLongRadius = (crBBox.top - crBBox.bottom)/(1+(FX_FLOAT)cos(PWL_PI/5.0f));
-	fLongRadius = fLongRadius * 0.7f;
-	FX_FLOAT fShortRadius = fLongRadius * 0.55f;
-	CPDF_Point ptCenter = CPDF_Point((crBBox.left + crBBox.right) / 2.0f,(crBBox.top + crBBox.bottom) / 2.0f);
-
-	FX_FLOAT px1[5], py1[5];
-	FX_FLOAT px2[5], py2[5];
-
-	FX_FLOAT fAngel = PWL_PI/10.0f;
-
-	for (int32_t i=0; i<5; i++)
-	{
-		px1[i] = ptCenter.x + fLongRadius * (FX_FLOAT)cos(fAngel);
-		py1[i] = ptCenter.y + fLongRadius * (FX_FLOAT)sin(fAngel);
-
-		fAngel += PWL_PI * 2 / 5.0f;
-	}
-
-	fAngel = PWL_PI/5.0f + PWL_PI/10.0f;
-
-	for (int32_t j=0; j<5; j++)
-	{
-		px2[j] = ptCenter.x + fShortRadius * (FX_FLOAT)cos(fAngel);
-		py2[j] = ptCenter.y + fShortRadius * (FX_FLOAT)sin(fAngel);
-
-		fAngel += PWL_PI * 2 / 5.0f;
-	}
-
-	CPWL_PathData PathArray[11];
-	PathArray[0] = CPWL_PathData(CPWL_Point(px1[0], py1[0]), PWLPT_MOVETO);
-	PathArray[1] = CPWL_PathData(CPWL_Point(px2[0], py2[0]), PWLPT_LINETO);
-
-	for(int32_t k = 0; k < 4; k++)
-	{
-		PathArray[(k+1)*2] = CPWL_PathData(CPWL_Point(px1[k+1], py1[k+1]), PWLPT_LINETO);
-		PathArray[(k+1)*2 + 1] = CPWL_PathData(CPWL_Point(px2[k+1], py2[k+1]), PWLPT_LINETO);
-	}
-
-	PathArray[10] = CPWL_PathData(CPWL_Point(px1[0], py1[0]), PWLPT_LINETO);
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 11);
-	else
-		GetPathDataFromArray(path, PathArray, 11);
-}
-
-void CPWL_Utils::GetGraphics_UpArrow(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.top - fHeight/15.0f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/10.0f, crBBox.top - fWidth*3/5.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.6f, crBBox.top - fWidth*3/5.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.6f, crBBox.bottom + fHeight/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.bottom + fHeight/15.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fWidth*3/5.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/10, crBBox.top - fWidth*3/5.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/2.0f, crBBox.top - fHeight/15.0f), PWLPT_LINETO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 8);
-	else
-		GetPathDataFromArray(path, PathArray, 8);
-}
-
-void CPWL_Utils::GetGraphics_UpLeftArrow(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-	CPWL_Point leftup(crBBox.left, crBBox.top);
-	CPWL_Point rightdown(crBBox.right, crBBox.bottom);
-	FX_FLOAT k = -fHeight/fWidth;
-	CPWL_Point tail;
-	tail.x = crBBox.left + fWidth*4/5.0f;
-	tail.y = k*(tail.x - crBBox.right) + rightdown.y;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/20.0f, k*(crBBox.left + fWidth/20.0f - rightdown.x) + rightdown.y), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(fHeight*17/60.0f/k + tail.x + fWidth/10.0f + fWidth/5.0f,
-		              -fWidth/5.0f/k + tail.y - fWidth/10.0f/k + fHeight*17/60.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(fHeight*17/60.0f/k + tail.x + fWidth/10.0f,
-		              tail.y - fWidth/10.0f/k + fHeight*17/60.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(tail.x + fWidth/10.0f, tail.y - fWidth/10.0f/k), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(tail.x - fWidth/10.0f, tail.y + fWidth/10.0f/k), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(fHeight*17/60.0f/k + tail.x - fWidth/10.0f, tail.y + fWidth/10.0f/k + fHeight*17/60.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(fHeight*17/60.0f/k + tail.x - fWidth/10.0f - fWidth/5.0f,
-		              fWidth/5.0f/k + tail.y + fWidth/10.0f/k + fHeight*17/60.0f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/20.0f, k*(crBBox.left + fWidth/20.0f - rightdown.x) + rightdown.y), PWLPT_LINETO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 8);
-	else
-		GetPathDataFromArray(path, PathArray, 8);
-}
-
-void CPWL_Utils::GetGraphics_Graph(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.05f, crBBox.top - fWidth*0.15f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.25f, crBBox.top - fHeight*0.15f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.275f, crBBox.bottom + fHeight*0.08f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.05f, crBBox.bottom + fHeight*0.08f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.05f, crBBox.top - fWidth*0.15f), PWLPT_LINETO),
-
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.275f, crBBox.top - fWidth*0.45f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.475f, crBBox.top - fWidth*0.45f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.475f, crBBox.bottom + fHeight*0.08f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.275f, crBBox.bottom + fHeight*0.08f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.275f, crBBox.top - fWidth*0.45f), PWLPT_LINETO),
-
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.5f, crBBox.top - fHeight*0.05f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.7f, crBBox.top - fHeight*0.05f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.7f, crBBox.bottom + fHeight*0.08f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.5f, crBBox.bottom + fHeight*0.08f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.5f, crBBox.top - fHeight*0.05f), PWLPT_LINETO),
-
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.725f, crBBox.top - fWidth*0.35f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.925f, crBBox.top - fWidth*0.35f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.925f, crBBox.bottom + fHeight*0.08f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.725f, crBBox.bottom + fHeight*0.08f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.725f, crBBox.top - fWidth*0.35f), PWLPT_LINETO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 20);
-	else
-		GetPathDataFromArray(path, PathArray, 20);
-}
-
-void CPWL_Utils::GetGraphics_Paperclip(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60, crBBox.top - fHeight*0.25f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60, crBBox.bottom + fHeight*0.25f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60, crBBox.bottom + fHeight*0.25f - fWidth*57/60.0f*0.35f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/30, crBBox.bottom + fHeight*0.25f - fWidth*57/60.0f*0.35f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/30, crBBox.bottom + fHeight*0.25f), PWLPT_BEZIERTO),
-
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/30, crBBox.top - fHeight*0.33f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/30, crBBox.top - fHeight*0.33f + fHeight/15*0.5f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/30 - fWidth*0.12f, crBBox.top - fHeight*0.33f + fHeight/15*0.5f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/30 - fWidth*0.12f, crBBox.top - fHeight*0.33f), PWLPT_BEZIERTO),
-
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/30 - fWidth*0.12f, crBBox.bottom + fHeight*0.2f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/30 - fWidth*0.12f, crBBox.bottom + fHeight*0.2f - (fWidth*57/60.0f - fWidth*0.24f)*0.25f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60 + fWidth*0.12f, crBBox.bottom + fHeight*0.2f - (fWidth*57/60.0f - fWidth*0.24f)*0.25f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60 + fWidth*0.12f, crBBox.bottom + fHeight*0.2f), PWLPT_BEZIERTO),
-
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60 + fWidth*0.12f, crBBox.top - fHeight*0.2f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60 + fWidth*0.12f, crBBox.top - fHeight*0.2f + (fWidth*11/12.0f - fWidth*0.36f)*0.25f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15 - fWidth*0.24f, crBBox.top - fHeight*0.2f + (fWidth*11/12.0f - fWidth*0.36f)*0.25f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15 - fWidth*0.24f, crBBox.top - fHeight*0.2f), PWLPT_BEZIERTO),
-
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15 - fWidth*0.24f, crBBox.bottom + fHeight*0.25f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15 - fWidth*0.24f, crBBox.bottom + fHeight*0.25f - (fWidth*14/15.0f - fWidth*0.53f)*0.25f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.29f, crBBox.bottom + fHeight*0.25f - (fWidth*14/15.0f - fWidth*0.53f)*0.25f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.29f, crBBox.bottom + fHeight*0.25f), PWLPT_BEZIERTO),
-
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.29f, crBBox.top - fHeight*0.33f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.29f, crBBox.top - fHeight*0.33f + fWidth*0.12f*0.35f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.17f, crBBox.top - fHeight*0.33f + fWidth*0.12f*0.35f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.17f, crBBox.top - fHeight*0.33f), PWLPT_BEZIERTO),
-
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.17f, crBBox.bottom + fHeight*0.3f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.17f, crBBox.bottom + fHeight*0.3f - fWidth*(14/15.0f - 0.29f)*0.35f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15 - fWidth*0.12f, crBBox.bottom + fHeight*0.3f - fWidth*(14/15.0f - 0.29f)*0.35f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15 - fWidth*0.12f, crBBox.bottom + fHeight*0.3f), PWLPT_BEZIERTO),
-
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15 - fWidth*0.12f, crBBox.top - fHeight*0.25f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth/15 - fWidth*0.12f, crBBox.top - fHeight*0.25f + fWidth*0.35f*(11/12.0f - 0.12f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60, crBBox.top - fHeight*0.25f + fWidth*0.35f*(11/12.0f - 0.12f)), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth/60, crBBox.top - fHeight*0.25f), PWLPT_BEZIERTO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 33);
-	else
-		GetPathDataFromArray(path, PathArray, 33);
-}
-
-void CPWL_Utils::GetGraphics_Attachment(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.25f, crBBox.top - fHeight*0.1f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fHeight*0.23f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fHeight*0.5f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fHeight*0.5f + fWidth*0.04f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.6f, crBBox.top - fHeight*0.5f + fWidth*0.04f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.6f, crBBox.top - fHeight*0.5f), PWLPT_BEZIERTO),
-
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.6f, crBBox.top - fHeight*0.23f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.25f, crBBox.top - fHeight*0.1f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.25f, crBBox.top - fHeight*0.1f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fHeight*0.23f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.6f, crBBox.top - fHeight*0.23f), PWLPT_LINETO),
-
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fHeight*0.5f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f - fWidth*0.25f*0.4f, crBBox.top - fHeight*0.5f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.15f, crBBox.top - fHeight*0.65f + fHeight*0.15f*0.4f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.15f, crBBox.top - fHeight*0.65f), PWLPT_BEZIERTO),
-
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.15f, crBBox.top - fHeight*0.65f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.15f, crBBox.top - fHeight*0.65f + fHeight*0.15f*0.4f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.6f + fWidth*0.25f*0.4f, crBBox.top - fHeight*0.5f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.6f, crBBox.top - fHeight*0.5f), PWLPT_BEZIERTO),
-
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.6f, crBBox.top - fHeight*0.5f + fWidth*0.04f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fHeight*0.5f + fWidth*0.04f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fHeight*0.5f), PWLPT_BEZIERTO),
-
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.5f, crBBox.top - fHeight*0.65f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.5f, crBBox.bottom + fHeight*0.1f), PWLPT_LINETO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 24);
-	else
-		GetPathDataFromArray(path, PathArray, 24);
-}
-
-void CPWL_Utils::GetGraphics_Tag(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fHeight*0.1f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.1f, crBBox.top - fHeight*0.5f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.3f, crBBox.bottom + fHeight*0.1f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.1f, crBBox.bottom + fHeight*0.1f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.1f, crBBox.top - fHeight*0.1f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fHeight*0.1f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fHeight*0.3f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.2f, crBBox.top - fHeight*0.3f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fHeight*0.5f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.2f, crBBox.top - fHeight*0.5f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crBBox.left + fWidth*0.4f, crBBox.top - fHeight*0.7f), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crBBox.right - fWidth*0.2f, crBBox.top - fHeight*0.7f), PWLPT_LINETO)
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 12);
-	else
-		GetPathDataFromArray(path, PathArray, 12);
-}
-
-void CPWL_Utils::GetGraphics_Foxit(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type)
-{
-	FX_FLOAT fOutWidth = crBBox.right - crBBox.left;
-	FX_FLOAT fOutHeight = crBBox.top - crBBox.bottom;
-
-	CPDF_Rect crInBox = crBBox;
-	crInBox.left = crBBox.left + fOutWidth*0.08f;
-	crInBox.right = crBBox.right - fOutWidth*0.08f;
-	crInBox.top = crBBox.top - fOutHeight*0.08f;
-	crInBox.bottom = crBBox.bottom + fOutHeight*0.08f;
-
-	FX_FLOAT fWidth = crInBox.right - crInBox.left;
-	FX_FLOAT fHeight = crInBox.top - crInBox.bottom;
-
-	CPWL_PathData PathArray[] =
-	{
-		CPWL_PathData(CPWL_Point(crInBox.left, crInBox.top), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth*0.45f, crInBox.top), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth*0.45f, crInBox.top - PWL_BEZIER * fHeight * 0.4f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth*0.45f  - PWL_BEZIER * fWidth * 0.45f, crInBox.top - fHeight*0.4f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crInBox.left, crInBox.top - fHeight*0.4f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crInBox.left, crInBox.top), PWLPT_LINETO),
-
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth*0.60f, crInBox.top), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth*0.75f, crInBox.top), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth*0.75f, crInBox.top - PWL_BEZIER * fHeight * 0.7f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth*0.75f  - PWL_BEZIER * fWidth * 0.75f, crInBox.top - fHeight*0.7f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crInBox.left, crInBox.top - fHeight*0.7f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crInBox.left, crInBox.top - fHeight*0.55f), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crInBox.left + PWL_BEZIER * fWidth*0.60f, crInBox.top - fHeight*0.55f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.60f, crInBox.top - PWL_BEZIER * fHeight * 0.55f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.60f, crInBox.top), PWLPT_BEZIERTO),
-
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth*0.90f, crInBox.top), PWLPT_MOVETO),
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth*0.90f, crInBox.top - PWL_BEZIER * fHeight * 0.85f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth*0.90f  - PWL_BEZIER * fWidth * 0.90f, crInBox.top - fHeight*0.85f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crInBox.left, crInBox.top - fHeight*0.85f), PWLPT_BEZIERTO),
-		CPWL_PathData(CPWL_Point(crInBox.left, crInBox.bottom), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crInBox.right, crInBox.bottom), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crInBox.right, crInBox.top), PWLPT_LINETO),
-		CPWL_PathData(CPWL_Point(crInBox.left + fWidth*0.90f, crInBox.top), PWLPT_LINETO),
-	};
-
-	if(type == PWLPT_STREAM)
-		sPathData = GetAppStreamFromArray(PathArray, 23);
-	else
-		GetPathDataFromArray(path, PathArray, 23);
-}
-
-void CPWL_Color::ConvertColorType(int32_t other_nColorType)
-{
-	switch (other_nColorType)
-	{
-	case COLORTYPE_TRANSPARENT:
-		break;
-	case COLORTYPE_GRAY:
-		switch (other_nColorType)
-		{
-		case COLORTYPE_RGB:
-			CPWL_Utils::ConvertGRAY2RGB(fColor1, fColor1, fColor2, fColor3);
-			break;
-		case COLORTYPE_CMYK:
-			CPWL_Utils::ConvertGRAY2CMYK(fColor1, fColor1, fColor2, fColor3, fColor4);
-			break;
-		}
-		break;
-	case COLORTYPE_RGB:
-		switch (other_nColorType)
-		{
-		case COLORTYPE_GRAY:
-			CPWL_Utils::ConvertRGB2GRAY(fColor1, fColor2, fColor3, fColor1);
-			break;
-		case COLORTYPE_CMYK:
-			CPWL_Utils::ConvertRGB2CMYK(fColor1, fColor2, fColor3, fColor1, fColor2, fColor3, fColor4);
-			break;
-		}
-		break;
-	case COLORTYPE_CMYK:
-		switch (other_nColorType)
-		{
-		case COLORTYPE_GRAY:
-			CPWL_Utils::ConvertCMYK2GRAY(fColor1, fColor2, fColor3, fColor4, fColor1);
-			break;
-		case COLORTYPE_RGB:
-			CPWL_Utils::ConvertCMYK2RGB(fColor1, fColor2, fColor3, fColor4, fColor1, fColor2, fColor3);
-			break;
-		}
-		break;
-	}
-	nColorType = other_nColorType;
-}
+static CFX_ByteString GetWordSpellCheckAppearanceStream(
+    IFX_Edit_Iterator* pIterator,
+    const CPDF_Point& ptOffset,
+    const CPVT_WordRange& wrWord) {
+  CFX_ByteTextBuf sRet;
 
+  FX_FLOAT fStartX = 0.0f;
+  FX_FLOAT fEndX = 0.0f;
+  FX_FLOAT fY = 0.0f;
+  FX_FLOAT fStep = 0.0f;
 
+  FX_BOOL bBreak = FALSE;
+
+  if (pIterator) {
+    pIterator->SetAt(wrWord.BeginPos);
+
+    do {
+      CPVT_WordPlace place = pIterator->GetAt();
+
+      CPVT_Line line;
+      if (pIterator->GetLine(line)) {
+        fY = line.ptLine.y;
+        fStep = (line.fLineAscent - line.fLineDescent) / 16.0f;
+      }
+
+      if (place.LineCmp(wrWord.BeginPos) == 0) {
+        pIterator->SetAt(wrWord.BeginPos);
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          fStartX = word.ptWord.x;
+        }
+      } else {
+        fStartX = line.ptLine.x;
+      }
+
+      if (place.LineCmp(wrWord.EndPos) == 0) {
+        pIterator->SetAt(wrWord.EndPos);
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          fEndX = word.ptWord.x + word.fWidth;
+        }
+
+        bBreak = TRUE;
+      } else {
+        fEndX = line.ptLine.x + line.fLineWidth;
+      }
+
+      sRet << GetSquigglyAppearanceStream(
+          fStartX + ptOffset.x, fEndX + ptOffset.x, fY + ptOffset.y, fStep);
+
+      if (bBreak)
+        break;
+    } while (pIterator->NextLine());
+  }
+
+  return sRet.GetByteString();
+}
+
+CFX_ByteString CPWL_Utils::GetSpellCheckAppStream(
+    IFX_Edit* pEdit,
+    IPWL_SpellCheck* pSpellCheck,
+    const CPDF_Point& ptOffset,
+    const CPVT_WordRange* pRange) {
+  ASSERT(pEdit != NULL);
+  ASSERT(pSpellCheck != NULL);
+
+  CFX_ByteTextBuf sRet;
+
+  if (pRange && pRange->IsExist()) {
+    if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) {
+      pIterator->SetAt(pRange->BeginPos);
+
+      FX_BOOL bLatinWord = FALSE;
+      CPVT_WordPlace wpWordStart;
+      CFX_ByteString sWord;
+
+      CPVT_WordPlace oldplace;
+      while (pIterator->NextWord()) {
+        CPVT_WordPlace place = pIterator->GetAt();
+        if (pRange && place.WordCmp(pRange->EndPos) > 0)
+          break;
+
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          if (FX_EDIT_ISLATINWORD(word.Word)) {
+            if (!bLatinWord) {
+              wpWordStart = place;
+              bLatinWord = TRUE;
+            }
+
+            sWord += (char)word.Word;
+            oldplace = place;
+          } else {
+            if (bLatinWord) {
+              if (!pSpellCheck->CheckWord(sWord)) {
+                sRet << GetWordSpellCheckAppearanceStream(
+                    pIterator, ptOffset, CPVT_WordRange(wpWordStart, oldplace));
+                pIterator->SetAt(place);
+              }
+              bLatinWord = FALSE;
+            }
+
+            sWord.Empty();
+          }
+        } else {
+          if (bLatinWord) {
+            if (!pSpellCheck->CheckWord(sWord))
+              sRet << GetWordSpellCheckAppearanceStream(
+                  pIterator, ptOffset, CPVT_WordRange(wpWordStart, oldplace));
+            bLatinWord = FALSE;
+            sWord.Empty();
+          }
+        }
+      }
+
+      if (bLatinWord) {
+        if (!pSpellCheck->CheckWord(sWord))
+          sRet << GetWordSpellCheckAppearanceStream(
+              pIterator, ptOffset, CPVT_WordRange(wpWordStart, oldplace));
+
+        bLatinWord = FALSE;
+        sWord.Empty();
+      }
+    }
+  }
+
+  return sRet.GetByteString();
+}
+
+CFX_ByteString CPWL_Utils::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) {
+  CFX_ByteTextBuf sRet;
+
+  if (IFX_Edit* pEdit = IFX_Edit::NewEdit()) {
+    pEdit->SetFontMap(pFontMap);
+    pEdit->SetPlateRect(rcBBox);
+    pEdit->SetAlignmentH(nAlignmentH);
+    pEdit->SetAlignmentV(nAlignmentV);
+    pEdit->SetMultiLine(bMultiLine);
+    pEdit->SetAutoReturn(bAutoReturn);
+    if (IsFloatZero(fFontSize))
+      pEdit->SetAutoFontSize(TRUE);
+    else
+      pEdit->SetFontSize(fFontSize);
+
+    pEdit->Initialize();
+    pEdit->SetText(sText.c_str());
+
+    CFX_ByteString sEdit =
+        CPWL_Utils::GetEditAppStream(pEdit, CPDF_Point(0.0f, 0.0f));
+    if (sEdit.GetLength() > 0) {
+      sRet << "BT\n" << CPWL_Utils::GetColorAppStream(crText) << sEdit
+           << "ET\n";
+    }
+    IFX_Edit::DelEdit(pEdit);
+  }
+
+  return sRet.GetByteString();
+}
+
+CFX_ByteString CPWL_Utils::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) {
+  const FX_FLOAT fAutoFontScale = 1.0f / 3.0f;
+
+  if (IFX_Edit* pEdit = IFX_Edit::NewEdit()) {
+    pEdit->SetFontMap(pFontMap);
+    pEdit->SetAlignmentH(1);
+    pEdit->SetAlignmentV(1);
+    pEdit->SetMultiLine(FALSE);
+    pEdit->SetAutoReturn(FALSE);
+    if (IsFloatZero(fFontSize))
+      pEdit->SetAutoFontSize(TRUE);
+    else
+      pEdit->SetFontSize(fFontSize);
+
+    pEdit->Initialize();
+    pEdit->SetText(sLabel.c_str());
+
+    CPDF_Rect rcLabelContent = pEdit->GetContentRect();
+    CPWL_Icon Icon;
+    PWL_CREATEPARAM cp;
+    cp.dwFlags = PWS_VISIBLE;
+    Icon.Create(cp);
+    Icon.SetIconFit(&IconFit);
+    Icon.SetPDFStream(pIconStream);
+
+    CPDF_Rect rcLabel = CPDF_Rect(0, 0, 0, 0);
+    CPDF_Rect rcIcon = CPDF_Rect(0, 0, 0, 0);
+    FX_FLOAT fWidth = 0.0f;
+    FX_FLOAT fHeight = 0.0f;
+
+    switch (nLayOut) {
+      case PPBL_LABEL:
+        rcLabel = rcBBox;
+        rcIcon = CPDF_Rect(0, 0, 0, 0);
+        break;
+      case PPBL_ICON:
+        rcIcon = rcBBox;
+        rcLabel = CPDF_Rect(0, 0, 0, 0);
+        break;
+      case PPBL_ICONTOPLABELBOTTOM:
+
+        if (pIconStream) {
+          if (IsFloatZero(fFontSize)) {
+            fHeight = rcBBox.top - rcBBox.bottom;
+            rcLabel = CPDF_Rect(rcBBox.left, rcBBox.bottom, rcBBox.right,
+                                rcBBox.bottom + fHeight * fAutoFontScale);
+            rcIcon =
+                CPDF_Rect(rcBBox.left, rcLabel.top, rcBBox.right, rcBBox.top);
+          } else {
+            fHeight = rcLabelContent.Height();
+
+            if (rcBBox.bottom + fHeight > rcBBox.top) {
+              rcIcon = CPDF_Rect(0, 0, 0, 0);
+              rcLabel = rcBBox;
+            } else {
+              rcLabel = CPDF_Rect(rcBBox.left, rcBBox.bottom, rcBBox.right,
+                                  rcBBox.bottom + fHeight);
+              rcIcon =
+                  CPDF_Rect(rcBBox.left, rcLabel.top, rcBBox.right, rcBBox.top);
+            }
+          }
+        } else {
+          rcLabel = rcBBox;
+          rcIcon = CPDF_Rect(0, 0, 0, 0);
+        }
+
+        break;
+      case PPBL_LABELTOPICONBOTTOM:
+
+        if (pIconStream) {
+          if (IsFloatZero(fFontSize)) {
+            fHeight = rcBBox.top - rcBBox.bottom;
+            rcLabel =
+                CPDF_Rect(rcBBox.left, rcBBox.top - fHeight * fAutoFontScale,
+                          rcBBox.right, rcBBox.top);
+            rcIcon = CPDF_Rect(rcBBox.left, rcBBox.bottom, rcBBox.right,
+                               rcLabel.bottom);
+          } else {
+            fHeight = rcLabelContent.Height();
+
+            if (rcBBox.bottom + fHeight > rcBBox.top) {
+              rcIcon = CPDF_Rect(0, 0, 0, 0);
+              rcLabel = rcBBox;
+            } else {
+              rcLabel = CPDF_Rect(rcBBox.left, rcBBox.top - fHeight,
+                                  rcBBox.right, rcBBox.top);
+              rcIcon = CPDF_Rect(rcBBox.left, rcBBox.bottom, rcBBox.right,
+                                 rcLabel.bottom);
+            }
+          }
+        } else {
+          rcLabel = rcBBox;
+          rcIcon = CPDF_Rect(0, 0, 0, 0);
+        }
+
+        break;
+      case PPBL_ICONLEFTLABELRIGHT:
+
+        if (pIconStream) {
+          if (IsFloatZero(fFontSize)) {
+            fWidth = rcBBox.right - rcBBox.left;
+            rcLabel = CPDF_Rect(rcBBox.right - fWidth * fAutoFontScale,
+                                rcBBox.bottom, rcBBox.right, rcBBox.top);
+            rcIcon =
+                CPDF_Rect(rcBBox.left, rcBBox.bottom, rcLabel.left, rcBBox.top);
+
+            if (rcLabelContent.Width() < fWidth * fAutoFontScale) {
+            } else {
+              if (rcLabelContent.Width() < fWidth) {
+                rcLabel = CPDF_Rect(rcBBox.right - rcLabelContent.Width(),
+                                    rcBBox.bottom, rcBBox.right, rcBBox.top);
+                rcIcon = CPDF_Rect(rcBBox.left, rcBBox.bottom, rcLabel.left,
+                                   rcBBox.top);
+              } else {
+                rcLabel = rcBBox;
+                rcIcon = CPDF_Rect(0, 0, 0, 0);
+              }
+            }
+          } else {
+            fWidth = rcLabelContent.Width();
+
+            if (rcBBox.left + fWidth > rcBBox.right) {
+              rcLabel = rcBBox;
+              rcIcon = CPDF_Rect(0, 0, 0, 0);
+            } else {
+              rcLabel = CPDF_Rect(rcBBox.right - fWidth, rcBBox.bottom,
+                                  rcBBox.right, rcBBox.top);
+              rcIcon = CPDF_Rect(rcBBox.left, rcBBox.bottom, rcLabel.left,
+                                 rcBBox.top);
+            }
+          }
+        } else {
+          rcLabel = rcBBox;
+          rcIcon = CPDF_Rect(0, 0, 0, 0);
+        }
+
+        break;
+      case PPBL_LABELLEFTICONRIGHT:
+
+        if (pIconStream) {
+          if (IsFloatZero(fFontSize)) {
+            fWidth = rcBBox.right - rcBBox.left;
+            rcLabel =
+                CPDF_Rect(rcBBox.left, rcBBox.bottom,
+                          rcBBox.left + fWidth * fAutoFontScale, rcBBox.top);
+            rcIcon = CPDF_Rect(rcLabel.right, rcBBox.bottom, rcBBox.right,
+                               rcBBox.top);
+
+            if (rcLabelContent.Width() < fWidth * fAutoFontScale) {
+            } else {
+              if (rcLabelContent.Width() < fWidth) {
+                rcLabel =
+                    CPDF_Rect(rcBBox.left, rcBBox.bottom,
+                              rcBBox.left + rcLabelContent.Width(), rcBBox.top);
+                rcIcon = CPDF_Rect(rcLabel.right, rcBBox.bottom, rcBBox.right,
+                                   rcBBox.top);
+              } else {
+                rcLabel = rcBBox;
+                rcIcon = CPDF_Rect(0, 0, 0, 0);
+              }
+            }
+          } else {
+            fWidth = rcLabelContent.Width();
+
+            if (rcBBox.left + fWidth > rcBBox.right) {
+              rcLabel = rcBBox;
+              rcIcon = CPDF_Rect(0, 0, 0, 0);
+            } else {
+              rcLabel = CPDF_Rect(rcBBox.left, rcBBox.bottom,
+                                  rcBBox.left + fWidth, rcBBox.top);
+              rcIcon = CPDF_Rect(rcLabel.right, rcBBox.bottom, rcBBox.right,
+                                 rcBBox.top);
+            }
+          }
+        } else {
+          rcLabel = rcBBox;
+          rcIcon = CPDF_Rect(0, 0, 0, 0);
+        }
+
+        break;
+      case PPBL_LABELOVERICON:
+        rcLabel = rcBBox;
+        rcIcon = rcBBox;
+        break;
+    }
+
+    CFX_ByteTextBuf sAppStream, sTemp;
+
+    if (!rcIcon.IsEmpty()) {
+      Icon.Move(rcIcon, FALSE, FALSE);
+      sTemp << Icon.GetImageAppStream();
+    }
+
+    Icon.Destroy();
+
+    if (!rcLabel.IsEmpty()) {
+      pEdit->SetPlateRect(rcLabel);
+      CFX_ByteString sEdit =
+          CPWL_Utils::GetEditAppStream(pEdit, CPDF_Point(0.0f, 0.0f));
+      if (sEdit.GetLength() > 0) {
+        sTemp << "BT\n" << CPWL_Utils::GetColorAppStream(crText) << sEdit
+              << "ET\n";
+      }
+    }
+
+    IFX_Edit::DelEdit(pEdit);
+
+    if (sTemp.GetSize() > 0) {
+      sAppStream << "q\n" << rcBBox.left << " " << rcBBox.bottom << " "
+                 << rcBBox.right - rcBBox.left << " "
+                 << rcBBox.top - rcBBox.bottom << " re W n\n";
+      sAppStream << sTemp << "Q\n";
+    }
+
+    return sAppStream.GetByteString();
+  }
+
+  return "";
+}
+
+CFX_ByteString CPWL_Utils::GetColorAppStream(const CPWL_Color& color,
+                                             const FX_BOOL& bFillOrStroke) {
+  CFX_ByteTextBuf sColorStream;
+
+  switch (color.nColorType) {
+    case COLORTYPE_RGB:
+      sColorStream << color.fColor1 << " " << color.fColor2 << " "
+                   << color.fColor3 << " " << (bFillOrStroke ? "rg" : "RG")
+                   << "\n";
+      break;
+    case COLORTYPE_GRAY:
+      sColorStream << color.fColor1 << " " << (bFillOrStroke ? "g" : "G")
+                   << "\n";
+      break;
+    case COLORTYPE_CMYK:
+      sColorStream << color.fColor1 << " " << color.fColor2 << " "
+                   << color.fColor3 << " " << color.fColor4 << " "
+                   << (bFillOrStroke ? "k" : "K") << "\n";
+      break;
+  }
+
+  return sColorStream.GetByteString();
+}
+
+CFX_ByteString CPWL_Utils::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) {
+  CFX_ByteTextBuf sAppStream;
+  CFX_ByteString sColor;
+
+  FX_FLOAT fLeft = rect.left;
+  FX_FLOAT fRight = rect.right;
+  FX_FLOAT fTop = rect.top;
+  FX_FLOAT fBottom = rect.bottom;
+
+  if (fWidth > 0.0f) {
+    FX_FLOAT fHalfWidth = fWidth / 2.0f;
+
+    sAppStream << "q\n";
+
+    switch (nStyle) {
+      default:
+      case PBS_SOLID:
+        sColor = CPWL_Utils::GetColorAppStream(color, TRUE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << sColor;
+          sAppStream << fLeft << " " << fBottom << " " << fRight - fLeft << " "
+                     << fTop - fBottom << " re\n";
+          sAppStream << fLeft + fWidth << " " << fBottom + fWidth << " "
+                     << fRight - fLeft - fWidth * 2 << " "
+                     << fTop - fBottom - fWidth * 2 << " re\n";
+          sAppStream << "f*\n";
+        }
+        break;
+      case PBS_DASH:
+        sColor = CPWL_Utils::GetColorAppStream(color, FALSE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << sColor;
+          sAppStream << fWidth << " w"
+                     << " [" << dash.nDash << " " << dash.nGap << "] "
+                     << dash.nPhase << " d\n";
+          sAppStream << fLeft + fWidth / 2 << " " << fBottom + fWidth / 2
+                     << " m\n";
+          sAppStream << fLeft + fWidth / 2 << " " << fTop - fWidth / 2
+                     << " l\n";
+          sAppStream << fRight - fWidth / 2 << " " << fTop - fWidth / 2
+                     << " l\n";
+          sAppStream << fRight - fWidth / 2 << " " << fBottom + fWidth / 2
+                     << " l\n";
+          sAppStream << fLeft + fWidth / 2 << " " << fBottom + fWidth / 2
+                     << " l S\n";
+        }
+        break;
+      case PBS_BEVELED:
+      case PBS_INSET:
+        sColor = CPWL_Utils::GetColorAppStream(crLeftTop, TRUE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << sColor;
+          sAppStream << fLeft + fHalfWidth << " " << fBottom + fHalfWidth
+                     << " m\n";
+          sAppStream << fLeft + fHalfWidth << " " << fTop - fHalfWidth
+                     << " l\n";
+          sAppStream << fRight - fHalfWidth << " " << fTop - fHalfWidth
+                     << " l\n";
+          sAppStream << fRight - fHalfWidth * 2 << " " << fTop - fHalfWidth * 2
+                     << " l\n";
+          sAppStream << fLeft + fHalfWidth * 2 << " " << fTop - fHalfWidth * 2
+                     << " l\n";
+          sAppStream << fLeft + fHalfWidth * 2 << " "
+                     << fBottom + fHalfWidth * 2 << " l f\n";
+        }
+
+        sColor = CPWL_Utils::GetColorAppStream(crRightBottom, TRUE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << sColor;
+          sAppStream << fRight - fHalfWidth << " " << fTop - fHalfWidth
+                     << " m\n";
+          sAppStream << fRight - fHalfWidth << " " << fBottom + fHalfWidth
+                     << " l\n";
+          sAppStream << fLeft + fHalfWidth << " " << fBottom + fHalfWidth
+                     << " l\n";
+          sAppStream << fLeft + fHalfWidth * 2 << " "
+                     << fBottom + fHalfWidth * 2 << " l\n";
+          sAppStream << fRight - fHalfWidth * 2 << " "
+                     << fBottom + fHalfWidth * 2 << " l\n";
+          sAppStream << fRight - fHalfWidth * 2 << " " << fTop - fHalfWidth * 2
+                     << " l f\n";
+        }
+
+        sColor = CPWL_Utils::GetColorAppStream(color, TRUE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << sColor;
+          sAppStream << fLeft << " " << fBottom << " " << fRight - fLeft << " "
+                     << fTop - fBottom << " re\n";
+          sAppStream << fLeft + fHalfWidth << " " << fBottom + fHalfWidth << " "
+                     << fRight - fLeft - fHalfWidth * 2 << " "
+                     << fTop - fBottom - fHalfWidth * 2 << " re f*\n";
+        }
+        break;
+      case PBS_UNDERLINED:
+        sColor = CPWL_Utils::GetColorAppStream(color, FALSE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << sColor;
+          sAppStream << fWidth << " w\n";
+          sAppStream << fLeft << " " << fBottom + fWidth / 2 << " m\n";
+          sAppStream << fRight << " " << fBottom + fWidth / 2 << " l S\n";
+        }
+        break;
+    }
+
+    sAppStream << "Q\n";
+  }
+
+  return sAppStream.GetByteString();
+}
+
+CFX_ByteString CPWL_Utils::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) {
+  CFX_ByteTextBuf sAppStream;
+  CFX_ByteString sColor;
+
+  if (fWidth > 0.0f) {
+    sAppStream << "q\n";
+
+    switch (nStyle) {
+      default:
+      case PBS_SOLID:
+      case PBS_UNDERLINED: {
+        sColor = CPWL_Utils::GetColorAppStream(color, FALSE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << "q\n" << fWidth << " w\n" << sColor
+                     << CPWL_Utils::GetAP_Circle(
+                            CPWL_Utils::DeflateRect(rect, fWidth / 2.0f))
+                     << " S\nQ\n";
+        }
+      } break;
+      case PBS_DASH: {
+        sColor = CPWL_Utils::GetColorAppStream(color, FALSE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << "q\n" << fWidth << " w\n"
+                     << "[" << dash.nDash << " " << dash.nGap << "] "
+                     << dash.nPhase << " d\n" << sColor
+                     << CPWL_Utils::GetAP_Circle(
+                            CPWL_Utils::DeflateRect(rect, fWidth / 2.0f))
+                     << " S\nQ\n";
+        }
+      } break;
+      case PBS_BEVELED: {
+        FX_FLOAT fHalfWidth = fWidth / 2.0f;
+
+        sColor = CPWL_Utils::GetColorAppStream(color, FALSE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << "q\n" << fHalfWidth << " w\n" << sColor
+                     << CPWL_Utils::GetAP_Circle(rect) << " S\nQ\n";
+        }
+
+        sColor = CPWL_Utils::GetColorAppStream(crLeftTop, FALSE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << "q\n" << fHalfWidth << " w\n" << sColor
+                     << CPWL_Utils::GetAP_HalfCircle(
+                            CPWL_Utils::DeflateRect(rect, fHalfWidth * 0.75f),
+                            PWL_PI / 4.0f)
+                     << " S\nQ\n";
+        }
+
+        sColor = CPWL_Utils::GetColorAppStream(crRightBottom, FALSE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << "q\n" << fHalfWidth << " w\n" << sColor
+                     << CPWL_Utils::GetAP_HalfCircle(
+                            CPWL_Utils::DeflateRect(rect, fHalfWidth * 0.75f),
+                            PWL_PI * 5 / 4.0f)
+                     << " S\nQ\n";
+        }
+      } break;
+      case PBS_INSET: {
+        FX_FLOAT fHalfWidth = fWidth / 2.0f;
+
+        sColor = CPWL_Utils::GetColorAppStream(color, FALSE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << "q\n" << fHalfWidth << " w\n" << sColor
+                     << CPWL_Utils::GetAP_Circle(rect) << " S\nQ\n";
+        }
+
+        sColor = CPWL_Utils::GetColorAppStream(crLeftTop, FALSE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << "q\n" << fHalfWidth << " w\n" << sColor
+                     << CPWL_Utils::GetAP_HalfCircle(
+                            CPWL_Utils::DeflateRect(rect, fHalfWidth * 0.75f),
+                            PWL_PI / 4.0f)
+                     << " S\nQ\n";
+        }
+
+        sColor = CPWL_Utils::GetColorAppStream(crRightBottom, FALSE);
+        if (sColor.GetLength() > 0) {
+          sAppStream << "q\n" << fHalfWidth << " w\n" << sColor
+                     << CPWL_Utils::GetAP_HalfCircle(
+                            CPWL_Utils::DeflateRect(rect, fHalfWidth * 0.75f),
+                            PWL_PI * 5 / 4.0f)
+                     << " S\nQ\n";
+        }
+      } break;
+    }
+
+    sAppStream << "Q\n";
+  }
+
+  return sAppStream.GetByteString();
+}
+
+CPWL_Color CPWL_Utils::SubstractColor(const CPWL_Color& sColor,
+                                      FX_FLOAT fColorSub) {
+  CPWL_Color sRet;
+  sRet.nColorType = sColor.nColorType;
+
+  switch (sColor.nColorType) {
+    case COLORTYPE_TRANSPARENT:
+      sRet.nColorType = COLORTYPE_RGB;
+      sRet.fColor1 = PWL_MAX(1 - fColorSub, 0.0f);
+      sRet.fColor2 = PWL_MAX(1 - fColorSub, 0.0f);
+      sRet.fColor3 = PWL_MAX(1 - fColorSub, 0.0f);
+      break;
+    case COLORTYPE_RGB:
+    case COLORTYPE_GRAY:
+    case COLORTYPE_CMYK:
+      sRet.fColor1 = PWL_MAX(sColor.fColor1 - fColorSub, 0.0f);
+      sRet.fColor2 = PWL_MAX(sColor.fColor2 - fColorSub, 0.0f);
+      sRet.fColor3 = PWL_MAX(sColor.fColor3 - fColorSub, 0.0f);
+      sRet.fColor4 = PWL_MAX(sColor.fColor4 - fColorSub, 0.0f);
+      break;
+  }
+
+  return sRet;
+}
+
+CPWL_Color CPWL_Utils::DevideColor(const CPWL_Color& sColor,
+                                   FX_FLOAT fColorDevide) {
+  CPWL_Color sRet;
+  sRet.nColorType = sColor.nColorType;
+
+  switch (sColor.nColorType) {
+    case COLORTYPE_TRANSPARENT:
+      sRet.nColorType = COLORTYPE_RGB;
+      sRet.fColor1 = 1 / fColorDevide;
+      sRet.fColor2 = 1 / fColorDevide;
+      sRet.fColor3 = 1 / fColorDevide;
+      break;
+    case COLORTYPE_RGB:
+    case COLORTYPE_GRAY:
+    case COLORTYPE_CMYK:
+      sRet = sColor;
+      sRet.fColor1 /= fColorDevide;
+      sRet.fColor2 /= fColorDevide;
+      sRet.fColor3 /= fColorDevide;
+      sRet.fColor4 /= fColorDevide;
+      break;
+  }
+
+  return sRet;
+}
+
+CFX_ByteString CPWL_Utils::GetAppStream_Check(const CPDF_Rect& rcBBox,
+                                              const CPWL_Color& crText) {
+  CFX_ByteTextBuf sAP;
+  sAP << "q\n" << CPWL_Utils::GetColorAppStream(crText, TRUE)
+      << CPWL_Utils::GetAP_Check(rcBBox) << "f\nQ\n";
+  return sAP.GetByteString();
+}
+
+CFX_ByteString CPWL_Utils::GetAppStream_Circle(const CPDF_Rect& rcBBox,
+                                               const CPWL_Color& crText) {
+  CFX_ByteTextBuf sAP;
+  sAP << "q\n" << CPWL_Utils::GetColorAppStream(crText, TRUE)
+      << CPWL_Utils::GetAP_Circle(rcBBox) << "f\nQ\n";
+  return sAP.GetByteString();
+}
+
+CFX_ByteString CPWL_Utils::GetAppStream_Cross(const CPDF_Rect& rcBBox,
+                                              const CPWL_Color& crText) {
+  CFX_ByteTextBuf sAP;
+  sAP << "q\n" << CPWL_Utils::GetColorAppStream(crText, FALSE)
+      << CPWL_Utils::GetAP_Cross(rcBBox) << "S\nQ\n";
+  return sAP.GetByteString();
+}
+
+CFX_ByteString CPWL_Utils::GetAppStream_Diamond(const CPDF_Rect& rcBBox,
+                                                const CPWL_Color& crText) {
+  CFX_ByteTextBuf sAP;
+  sAP << "q\n1 w\n" << CPWL_Utils::GetColorAppStream(crText, TRUE)
+      << CPWL_Utils::GetAP_Diamond(rcBBox) << "f\nQ\n";
+  return sAP.GetByteString();
+}
+
+CFX_ByteString CPWL_Utils::GetAppStream_Square(const CPDF_Rect& rcBBox,
+                                               const CPWL_Color& crText) {
+  CFX_ByteTextBuf sAP;
+  sAP << "q\n" << CPWL_Utils::GetColorAppStream(crText, TRUE)
+      << CPWL_Utils::GetAP_Square(rcBBox) << "f\nQ\n";
+  return sAP.GetByteString();
+}
+
+CFX_ByteString CPWL_Utils::GetAppStream_Star(const CPDF_Rect& rcBBox,
+                                             const CPWL_Color& crText) {
+  CFX_ByteTextBuf sAP;
+  sAP << "q\n" << CPWL_Utils::GetColorAppStream(crText, TRUE)
+      << CPWL_Utils::GetAP_Star(rcBBox) << "f\nQ\n";
+  return sAP.GetByteString();
+}
+
+CFX_ByteString CPWL_Utils::GetCheckBoxAppStream(const CPDF_Rect& rcBBox,
+                                                int32_t nStyle,
+                                                const CPWL_Color& crText) {
+  CPDF_Rect rcCenter = GetCenterSquare(rcBBox);
+  switch (nStyle) {
+    default:
+    case PCS_CHECK:
+      return GetAppStream_Check(rcCenter, crText);
+    case PCS_CIRCLE:
+      return GetAppStream_Circle(ScaleRect(rcCenter, 2.0f / 3.0f), crText);
+    case PCS_CROSS:
+      return GetAppStream_Cross(rcCenter, crText);
+    case PCS_DIAMOND:
+      return GetAppStream_Diamond(ScaleRect(rcCenter, 2.0f / 3.0f), crText);
+    case PCS_SQUARE:
+      return GetAppStream_Square(ScaleRect(rcCenter, 2.0f / 3.0f), crText);
+    case PCS_STAR:
+      return GetAppStream_Star(ScaleRect(rcCenter, 2.0f / 3.0f), crText);
+  }
+}
+
+CFX_ByteString CPWL_Utils::GetRadioButtonAppStream(const CPDF_Rect& rcBBox,
+                                                   int32_t nStyle,
+                                                   const CPWL_Color& crText) {
+  CPDF_Rect rcCenter = GetCenterSquare(rcBBox);
+  switch (nStyle) {
+    default:
+    case PCS_CHECK:
+      return GetAppStream_Check(rcCenter, crText);
+    case PCS_CIRCLE:
+      return GetAppStream_Circle(ScaleRect(rcCenter, 1.0f / 2.0f), crText);
+    case PCS_CROSS:
+      return GetAppStream_Cross(rcCenter, crText);
+    case PCS_DIAMOND:
+      return GetAppStream_Diamond(ScaleRect(rcCenter, 2.0f / 3.0f), crText);
+    case PCS_SQUARE:
+      return GetAppStream_Square(ScaleRect(rcCenter, 2.0f / 3.0f), crText);
+    case PCS_STAR:
+      return GetAppStream_Star(ScaleRect(rcCenter, 2.0f / 3.0f), crText);
+  }
+}
+
+CFX_ByteString CPWL_Utils::GetDropButtonAppStream(const CPDF_Rect& rcBBox) {
+  CFX_ByteTextBuf sAppStream;
+
+  if (!rcBBox.IsEmpty()) {
+    sAppStream << "q\n" << CPWL_Utils::GetColorAppStream(
+                               CPWL_Color(COLORTYPE_RGB, 220.0f / 255.0f,
+                                          220.0f / 255.0f, 220.0f / 255.0f),
+                               TRUE);
+    sAppStream << rcBBox.left << " " << rcBBox.bottom << " "
+               << rcBBox.right - rcBBox.left << " "
+               << rcBBox.top - rcBBox.bottom << " re f\n";
+    sAppStream << "Q\n";
+
+    sAppStream << "q\n" << CPWL_Utils::GetBorderAppStream(
+                               rcBBox, 2, CPWL_Color(COLORTYPE_GRAY, 0),
+                               CPWL_Color(COLORTYPE_GRAY, 1),
+                               CPWL_Color(COLORTYPE_GRAY, 0.5), PBS_BEVELED,
+                               CPWL_Dash(3, 0, 0))
+               << "Q\n";
+
+    CPDF_Point ptCenter = CPDF_Point((rcBBox.left + rcBBox.right) / 2,
+                                     (rcBBox.top + rcBBox.bottom) / 2);
+    if (IsFloatBigger(rcBBox.right - rcBBox.left, 6) &&
+        IsFloatBigger(rcBBox.top - rcBBox.bottom, 6)) {
+      sAppStream << "q\n"
+                 << " 0 g\n";
+      sAppStream << ptCenter.x - 3 << " " << ptCenter.y + 1.5f << " m\n";
+      sAppStream << ptCenter.x + 3 << " " << ptCenter.y + 1.5f << " l\n";
+      sAppStream << ptCenter.x << " " << ptCenter.y - 1.5f << " l\n";
+      sAppStream << ptCenter.x - 3 << " " << ptCenter.y + 1.5f << " l f\n";
+      sAppStream << "Q\n";
+    }
+  }
+
+  return sAppStream.GetByteString();
+}
+
+void CPWL_Utils::ConvertCMYK2GRAY(FX_FLOAT dC,
+                                  FX_FLOAT dM,
+                                  FX_FLOAT dY,
+                                  FX_FLOAT dK,
+                                  FX_FLOAT& dGray) {
+  if (dC < 0 || dC > 1 || dM < 0 || dM > 1 || dY < 0 || dY > 1 || dK < 0 ||
+      dK > 1)
+    return;
+  dGray = 1.0f - FX_MIN(1.0f, 0.3f * dC + 0.59f * dM + 0.11f * dY + dK);
+}
+
+void CPWL_Utils::ConvertGRAY2CMYK(FX_FLOAT dGray,
+                                  FX_FLOAT& dC,
+                                  FX_FLOAT& dM,
+                                  FX_FLOAT& dY,
+                                  FX_FLOAT& dK) {
+  if (dGray < 0 || dGray > 1)
+    return;
+  dC = 0.0f;
+  dM = 0.0f;
+  dY = 0.0f;
+  dK = 1.0f - dGray;
+}
+
+void CPWL_Utils::ConvertGRAY2RGB(FX_FLOAT dGray,
+                                 FX_FLOAT& dR,
+                                 FX_FLOAT& dG,
+                                 FX_FLOAT& dB) {
+  if (dGray < 0 || dGray > 1)
+    return;
+  dR = dGray;
+  dG = dGray;
+  dB = dGray;
+}
+
+void CPWL_Utils::ConvertRGB2GRAY(FX_FLOAT dR,
+                                 FX_FLOAT dG,
+                                 FX_FLOAT dB,
+                                 FX_FLOAT& dGray) {
+  if (dR < 0 || dR > 1 || dG < 0 || dG > 0 || dB < 0 || dB > 1)
+    return;
+  dGray = 0.3f * dR + 0.59f * dG + 0.11f * dB;
+}
+
+void CPWL_Utils::ConvertCMYK2RGB(FX_FLOAT dC,
+                                 FX_FLOAT dM,
+                                 FX_FLOAT dY,
+                                 FX_FLOAT dK,
+                                 FX_FLOAT& dR,
+                                 FX_FLOAT& dG,
+                                 FX_FLOAT& dB) {
+  if (dC < 0 || dC > 1 || dM < 0 || dM > 1 || dY < 0 || dY > 1 || dK < 0 ||
+      dK > 1)
+    return;
+  dR = 1.0f - FX_MIN(1.0f, dC + dK);
+  dG = 1.0f - FX_MIN(1.0f, dM + dK);
+  dB = 1.0f - FX_MIN(1.0f, dY + dK);
+}
+
+void CPWL_Utils::ConvertRGB2CMYK(FX_FLOAT dR,
+                                 FX_FLOAT dG,
+                                 FX_FLOAT dB,
+                                 FX_FLOAT& dC,
+                                 FX_FLOAT& dM,
+                                 FX_FLOAT& dY,
+                                 FX_FLOAT& dK) {
+  if (dR < 0 || dR > 1 || dG < 0 || dG > 1 || dB < 0 || dB > 1)
+    return;
+
+  dC = 1.0f - dR;
+  dM = 1.0f - dG;
+  dY = 1.0f - dB;
+  dK = FX_MIN(dC, FX_MIN(dM, dY));
+}
+
+void CPWL_Utils::PWLColorToARGB(const CPWL_Color& color,
+                                int32_t& alpha,
+                                FX_FLOAT& red,
+                                FX_FLOAT& green,
+                                FX_FLOAT& blue) {
+  switch (color.nColorType) {
+    case COLORTYPE_TRANSPARENT: {
+      alpha = 0;
+    } break;
+    case COLORTYPE_GRAY: {
+      ConvertGRAY2RGB(color.fColor1, red, green, blue);
+    } break;
+    case COLORTYPE_RGB: {
+      red = color.fColor1;
+      green = color.fColor2;
+      blue = color.fColor3;
+    } break;
+    case COLORTYPE_CMYK: {
+      ConvertCMYK2RGB(color.fColor1, color.fColor2, color.fColor3,
+                      color.fColor4, red, green, blue);
+    } break;
+  }
+}
+
+FX_COLORREF CPWL_Utils::PWLColorToFXColor(const CPWL_Color& color,
+                                          int32_t nTransparancy) {
+  int32_t nAlpha = nTransparancy;
+  FX_FLOAT dRed = 0;
+  FX_FLOAT dGreen = 0;
+  FX_FLOAT dBlue = 0;
+
+  PWLColorToARGB(color, nAlpha, dRed, dGreen, dBlue);
+
+  return ArgbEncode(nAlpha, (int32_t)(dRed * 255), (int32_t)(dGreen * 255),
+                    (int32_t)(dBlue * 255));
+}
+
+void CPWL_Utils::DrawFillRect(CFX_RenderDevice* pDevice,
+                              CPDF_Matrix* pUser2Device,
+                              const CPDF_Rect& rect,
+                              const FX_COLORREF& color) {
+  CFX_PathData path;
+  CPDF_Rect rcTemp(rect);
+  path.AppendRect(rcTemp.left, rcTemp.bottom, rcTemp.right, rcTemp.top);
+  pDevice->DrawPath(&path, pUser2Device, NULL, color, 0, FXFILL_WINDING);
+}
+
+void CPWL_Utils::DrawFillArea(CFX_RenderDevice* pDevice,
+                              CPDF_Matrix* pUser2Device,
+                              const CPDF_Point* pPts,
+                              int32_t nCount,
+                              const FX_COLORREF& color) {
+  CFX_PathData path;
+  path.SetPointCount(nCount);
+
+  path.SetPoint(0, pPts[0].x, pPts[0].y, FXPT_MOVETO);
+  for (int32_t i = 1; i < nCount; i++)
+    path.SetPoint(i, pPts[i].x, pPts[i].y, FXPT_LINETO);
+
+  pDevice->DrawPath(&path, pUser2Device, NULL, color, 0, FXFILL_ALTERNATE);
+}
+
+void CPWL_Utils::DrawStrokeRect(CFX_RenderDevice* pDevice,
+                                CPDF_Matrix* pUser2Device,
+                                const CPDF_Rect& rect,
+                                const FX_COLORREF& color,
+                                FX_FLOAT fWidth) {
+  CFX_PathData path;
+  CPDF_Rect rcTemp(rect);
+  path.AppendRect(rcTemp.left, rcTemp.bottom, rcTemp.right, rcTemp.top);
+
+  CFX_GraphStateData gsd;
+  gsd.m_LineWidth = fWidth;
+
+  pDevice->DrawPath(&path, pUser2Device, &gsd, 0, color, FXFILL_ALTERNATE);
+}
+
+void CPWL_Utils::DrawStrokeLine(CFX_RenderDevice* pDevice,
+                                CPDF_Matrix* pUser2Device,
+                                const CPDF_Point& ptMoveTo,
+                                const CPDF_Point& ptLineTo,
+                                const FX_COLORREF& color,
+                                FX_FLOAT fWidth) {
+  CFX_PathData path;
+  path.SetPointCount(2);
+  path.SetPoint(0, ptMoveTo.x, ptMoveTo.y, FXPT_MOVETO);
+  path.SetPoint(1, ptLineTo.x, ptLineTo.y, FXPT_LINETO);
+
+  CFX_GraphStateData gsd;
+  gsd.m_LineWidth = fWidth;
+
+  pDevice->DrawPath(&path, pUser2Device, &gsd, 0, color, FXFILL_ALTERNATE);
+}
+
+void CPWL_Utils::DrawFillRect(CFX_RenderDevice* pDevice,
+                              CPDF_Matrix* pUser2Device,
+                              const CPDF_Rect& rect,
+                              const CPWL_Color& color,
+                              int32_t nTransparancy) {
+  CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rect,
+                           PWLColorToFXColor(color, nTransparancy));
+}
+
+void CPWL_Utils::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) {
+  FX_FLOAT fStepGray = 1.0f;
+
+  if (bVertical) {
+    fStepGray = (nEndGray - nStartGray) / rect.Height();
+
+    for (FX_FLOAT fy = rect.bottom + 0.5f; fy <= rect.top - 0.5f; fy += 1.0f) {
+      int32_t nGray = nStartGray + (int32_t)(fStepGray * (fy - rect.bottom));
+      CPWL_Utils::DrawStrokeLine(
+          pDevice, pUser2Device, CPDF_Point(rect.left, fy),
+          CPDF_Point(rect.right, fy),
+          ArgbEncode(nTransparancy, nGray, nGray, nGray), 1.5f);
+    }
+  }
+
+  if (bHorizontal) {
+    fStepGray = (nEndGray - nStartGray) / rect.Width();
+
+    for (FX_FLOAT fx = rect.left + 0.5f; fx <= rect.right - 0.5f; fx += 1.0f) {
+      int32_t nGray = nStartGray + (int32_t)(fStepGray * (fx - rect.left));
+      CPWL_Utils::DrawStrokeLine(
+          pDevice, pUser2Device, CPDF_Point(fx, rect.bottom),
+          CPDF_Point(fx, rect.top),
+          ArgbEncode(nTransparancy, nGray, nGray, nGray), 1.5f);
+    }
+  }
+}
+
+void CPWL_Utils::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) {
+  FX_FLOAT fLeft = rect.left;
+  FX_FLOAT fRight = rect.right;
+  FX_FLOAT fTop = rect.top;
+  FX_FLOAT fBottom = rect.bottom;
+
+  if (fWidth > 0.0f) {
+    FX_FLOAT fHalfWidth = fWidth / 2.0f;
+
+    switch (nStyle) {
+      default:
+      case PBS_SOLID: {
+        CFX_PathData path;
+        path.AppendRect(fLeft, fBottom, fRight, fTop);
+        path.AppendRect(fLeft + fWidth, fBottom + fWidth, fRight - fWidth,
+                        fTop - fWidth);
+        pDevice->DrawPath(&path, pUser2Device, NULL,
+                          PWLColorToFXColor(color, nTransparancy), 0,
+                          FXFILL_ALTERNATE);
+      } break;
+      case PBS_DASH: {
+        CFX_PathData path;
+
+        path.SetPointCount(5);
+        path.SetPoint(0, fLeft + fWidth / 2.0f, fBottom + fWidth / 2.0f,
+                      FXPT_MOVETO);
+        path.SetPoint(1, fLeft + fWidth / 2.0f, fTop - fWidth / 2.0f,
+                      FXPT_LINETO);
+        path.SetPoint(2, fRight - fWidth / 2.0f, fTop - fWidth / 2.0f,
+                      FXPT_LINETO);
+        path.SetPoint(3, fRight - fWidth / 2.0f, fBottom + fWidth / 2.0f,
+                      FXPT_LINETO);
+        path.SetPoint(4, fLeft + fWidth / 2.0f, fBottom + fWidth / 2.0f,
+                      FXPT_LINETO);
+
+        CFX_GraphStateData gsd;
+        gsd.SetDashCount(2);
+        gsd.m_DashArray[0] = 3.0f;
+        gsd.m_DashArray[1] = 3.0f;
+        gsd.m_DashPhase = 0;
+
+        gsd.m_LineWidth = fWidth;
+        pDevice->DrawPath(&path, pUser2Device, &gsd, 0,
+                          PWLColorToFXColor(color, nTransparancy),
+                          FXFILL_WINDING);
+      } break;
+      case PBS_BEVELED:
+      case PBS_INSET: {
+        CFX_GraphStateData gsd;
+        gsd.m_LineWidth = fHalfWidth;
+
+        CFX_PathData pathLT;
+
+        pathLT.SetPointCount(7);
+        pathLT.SetPoint(0, fLeft + fHalfWidth, fBottom + fHalfWidth,
+                        FXPT_MOVETO);
+        pathLT.SetPoint(1, fLeft + fHalfWidth, fTop - fHalfWidth, FXPT_LINETO);
+        pathLT.SetPoint(2, fRight - fHalfWidth, fTop - fHalfWidth, FXPT_LINETO);
+        pathLT.SetPoint(3, fRight - fHalfWidth * 2, fTop - fHalfWidth * 2,
+                        FXPT_LINETO);
+        pathLT.SetPoint(4, fLeft + fHalfWidth * 2, fTop - fHalfWidth * 2,
+                        FXPT_LINETO);
+        pathLT.SetPoint(5, fLeft + fHalfWidth * 2, fBottom + fHalfWidth * 2,
+                        FXPT_LINETO);
+        pathLT.SetPoint(6, fLeft + fHalfWidth, fBottom + fHalfWidth,
+                        FXPT_LINETO);
+
+        pDevice->DrawPath(&pathLT, pUser2Device, &gsd,
+                          PWLColorToFXColor(crLeftTop, nTransparancy), 0,
+                          FXFILL_ALTERNATE);
+
+        CFX_PathData pathRB;
+
+        pathRB.SetPointCount(7);
+        pathRB.SetPoint(0, fRight - fHalfWidth, fTop - fHalfWidth, FXPT_MOVETO);
+        pathRB.SetPoint(1, fRight - fHalfWidth, fBottom + fHalfWidth,
+                        FXPT_LINETO);
+        pathRB.SetPoint(2, fLeft + fHalfWidth, fBottom + fHalfWidth,
+                        FXPT_LINETO);
+        pathRB.SetPoint(3, fLeft + fHalfWidth * 2, fBottom + fHalfWidth * 2,
+                        FXPT_LINETO);
+        pathRB.SetPoint(4, fRight - fHalfWidth * 2, fBottom + fHalfWidth * 2,
+                        FXPT_LINETO);
+        pathRB.SetPoint(5, fRight - fHalfWidth * 2, fTop - fHalfWidth * 2,
+                        FXPT_LINETO);
+        pathRB.SetPoint(6, fRight - fHalfWidth, fTop - fHalfWidth, FXPT_LINETO);
+
+        pDevice->DrawPath(&pathRB, pUser2Device, &gsd,
+                          PWLColorToFXColor(crRightBottom, nTransparancy), 0,
+                          FXFILL_ALTERNATE);
+
+        CFX_PathData path;
+
+        path.AppendRect(fLeft, fBottom, fRight, fTop);
+        path.AppendRect(fLeft + fHalfWidth, fBottom + fHalfWidth,
+                        fRight - fHalfWidth, fTop - fHalfWidth);
+
+        pDevice->DrawPath(&path, pUser2Device, &gsd,
+                          PWLColorToFXColor(color, nTransparancy), 0,
+                          FXFILL_ALTERNATE);
+      } break;
+      case PBS_UNDERLINED: {
+        CFX_PathData path;
+
+        path.SetPointCount(2);
+        path.SetPoint(0, fLeft, fBottom + fWidth / 2, FXPT_MOVETO);
+        path.SetPoint(1, fRight, fBottom + fWidth / 2, FXPT_LINETO);
+
+        CFX_GraphStateData gsd;
+        gsd.m_LineWidth = fWidth;
+
+        pDevice->DrawPath(&path, pUser2Device, &gsd, 0,
+                          PWLColorToFXColor(color, nTransparancy),
+                          FXFILL_ALTERNATE);
+      } break;
+      case PBS_SHADOW: {
+        CFX_PathData path;
+        path.AppendRect(fLeft, fBottom, fRight, fTop);
+        path.AppendRect(fLeft + fWidth, fBottom + fWidth, fRight - fWidth,
+                        fTop - fWidth);
+        pDevice->DrawPath(&path, pUser2Device, NULL,
+                          PWLColorToFXColor(color, nTransparancy / 2), 0,
+                          FXFILL_ALTERNATE);
+      } break;
+    }
+  }
+}
+
+static void AddSquigglyPath(CFX_PathData& PathData,
+                            FX_FLOAT fStartX,
+                            FX_FLOAT fEndX,
+                            FX_FLOAT fY,
+                            FX_FLOAT fStep) {
+  PathData.AddPointCount(1);
+  PathData.SetPoint(PathData.GetPointCount() - 1, fStartX, fY, FXPT_MOVETO);
+
+  FX_FLOAT fx;
+  int32_t i;
+
+  for (i = 1, fx = fStartX + fStep; fx < fEndX; fx += fStep, i++) {
+    PathData.AddPointCount(1);
+    PathData.SetPoint(PathData.GetPointCount() - 1, fx, fY + (i & 1) * fStep,
+                      FXPT_LINETO);
+  }
+}
+
+static void AddSpellCheckObj(CFX_PathData& PathData,
+                             IFX_Edit* pEdit,
+                             const CPVT_WordRange& wrWord) {
+  FX_FLOAT fStartX = 0.0f;
+  FX_FLOAT fEndX = 0.0f;
+  FX_FLOAT fY = 0.0f;
+  FX_FLOAT fStep = 0.0f;
+
+  FX_BOOL bBreak = FALSE;
+
+  if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) {
+    pIterator->SetAt(wrWord.BeginPos);
+
+    do {
+      CPVT_WordPlace place = pIterator->GetAt();
+
+      CPVT_Line line;
+      if (pIterator->GetLine(line)) {
+        fY = line.ptLine.y;
+        fStep = (line.fLineAscent - line.fLineDescent) / 16.0f;
+      }
+
+      if (place.LineCmp(wrWord.BeginPos) == 0) {
+        pIterator->SetAt(wrWord.BeginPos);
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          fStartX = word.ptWord.x;
+        }
+      } else {
+        fStartX = line.ptLine.x;
+      }
+
+      if (place.LineCmp(wrWord.EndPos) == 0) {
+        pIterator->SetAt(wrWord.EndPos);
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          fEndX = word.ptWord.x + word.fWidth;
+        }
+
+        bBreak = TRUE;
+      } else {
+        fEndX = line.ptLine.x + line.fLineWidth;
+      }
+
+      AddSquigglyPath(PathData, fStartX, fEndX, fY, fStep);
+
+      if (bBreak)
+        break;
+    } while (pIterator->NextLine());
+  }
+}
+
+void CPWL_Utils::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) {
+  const FX_COLORREF crSpell = ArgbEncode(255, 255, 0, 0);
+
+  // for spellcheck
+  FX_BOOL bLatinWord = FALSE;
+  CPVT_WordPlace wpWordStart;
+  CFX_ByteString sLatinWord;
+
+  CFX_PathData pathSpell;
+
+  pDevice->SaveState();
+
+  if (!rcClip.IsEmpty()) {
+    CPDF_Rect rcTemp = rcClip;
+    pUser2Device->TransformRect(rcTemp);
+    FX_RECT rcDevClip;
+    rcDevClip.left = (int32_t)rcTemp.left;
+    rcDevClip.right = (int32_t)rcTemp.right;
+    rcDevClip.top = (int32_t)rcTemp.top;
+    rcDevClip.bottom = (int32_t)rcTemp.bottom;
+    pDevice->SetClip_Rect(&rcDevClip);
+  }
+
+  if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) {
+    if (pEdit->GetFontMap()) {
+      if (pRange)
+        pIterator->SetAt(pRange->BeginPos);
+      else
+        pIterator->SetAt(0);
+
+      CPVT_WordPlace oldplace;
+
+      while (pIterator->NextWord()) {
+        CPVT_WordPlace place = pIterator->GetAt();
+        if (pRange && place.WordCmp(pRange->EndPos) > 0)
+          break;
+
+        CPVT_Word word;
+        if (pIterator->GetWord(word)) {
+          if (FX_EDIT_ISLATINWORD(word.Word)) {
+            if (!bLatinWord) {
+              wpWordStart = place;
+              bLatinWord = TRUE;
+            }
+
+            sLatinWord += (char)word.Word;
+          } else {
+            if (bLatinWord) {
+              if (!sLatinWord.IsEmpty()) {
+                if (pSpellCheck && !pSpellCheck->CheckWord(sLatinWord)) {
+                  AddSpellCheckObj(pathSpell, pEdit,
+                                   CPVT_WordRange(wpWordStart, oldplace));
+                  pIterator->SetAt(place);
+                }
+              }
+              bLatinWord = FALSE;
+            }
+
+            sLatinWord.Empty();
+          }
+
+          oldplace = place;
+        } else {
+          if (bLatinWord) {
+            if (!sLatinWord.IsEmpty()) {
+              if (pSpellCheck && !pSpellCheck->CheckWord(sLatinWord)) {
+                AddSpellCheckObj(pathSpell, pEdit,
+                                 CPVT_WordRange(wpWordStart, oldplace));
+                pIterator->SetAt(place);
+              }
+            }
+            bLatinWord = FALSE;
+          }
+
+          sLatinWord.Empty();
+        }
+      }
+
+      if (!sLatinWord.IsEmpty()) {
+        if (pSpellCheck && !pSpellCheck->CheckWord(sLatinWord)) {
+          AddSpellCheckObj(pathSpell, pEdit,
+                           CPVT_WordRange(wpWordStart, oldplace));
+        }
+      }
+    }
+  }
+
+  CFX_GraphStateData gsd;
+  gsd.m_LineWidth = 0;
+  if (pathSpell.GetPointCount() > 0)
+    pDevice->DrawPath(&pathSpell, pUser2Device, &gsd, 0, crSpell,
+                      FXFILL_ALTERNATE);
+
+  pDevice->RestoreState();
+}
+
+FX_BOOL CPWL_Utils::IsBlackOrWhite(const CPWL_Color& color) {
+  switch (color.nColorType) {
+    case COLORTYPE_TRANSPARENT:
+      return FALSE;
+    case COLORTYPE_GRAY:
+      return color.fColor1 < 0.5f;
+    case COLORTYPE_RGB:
+      return color.fColor1 + color.fColor2 + color.fColor3 < 1.5f;
+    case COLORTYPE_CMYK:
+      return color.fColor1 + color.fColor2 + color.fColor3 + color.fColor4 >
+             2.0f;
+  }
+
+  return TRUE;
+}
+
+CPWL_Color CPWL_Utils::GetReverseColor(const CPWL_Color& color) {
+  CPWL_Color crRet = color;
+
+  switch (color.nColorType) {
+    case COLORTYPE_GRAY:
+      crRet.fColor1 = 1.0f - crRet.fColor1;
+      break;
+    case COLORTYPE_RGB:
+      crRet.fColor1 = 1.0f - crRet.fColor1;
+      crRet.fColor2 = 1.0f - crRet.fColor2;
+      crRet.fColor3 = 1.0f - crRet.fColor3;
+      break;
+    case COLORTYPE_CMYK:
+      crRet.fColor1 = 1.0f - crRet.fColor1;
+      crRet.fColor2 = 1.0f - crRet.fColor2;
+      crRet.fColor3 = 1.0f - crRet.fColor3;
+      crRet.fColor4 = 1.0f - crRet.fColor4;
+      break;
+  }
+
+  return crRet;
+}
+
+CFX_ByteString CPWL_Utils::GetIconAppStream(int32_t nType,
+                                            const CPDF_Rect& rect,
+                                            const CPWL_Color& crFill,
+                                            const CPWL_Color& crStroke) {
+  CFX_ByteString sAppStream = CPWL_Utils::GetColorAppStream(crStroke, FALSE);
+  sAppStream += CPWL_Utils::GetColorAppStream(crFill, TRUE);
+
+  CFX_ByteString sPath;
+  CFX_PathData path;
+
+  switch (nType) {
+    case PWL_ICONTYPE_CHECKMARK:
+      GetGraphics_Checkmark(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_CIRCLE:
+      GetGraphics_Circle(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_COMMENT:
+      GetGraphics_Comment(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_CROSS:
+      GetGraphics_Cross(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_HELP:
+      GetGraphics_Help(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_INSERTTEXT:
+      GetGraphics_InsertText(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_KEY:
+      GetGraphics_Key(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_NEWPARAGRAPH:
+      GetGraphics_NewParagraph(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_TEXTNOTE:
+      GetGraphics_TextNote(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_PARAGRAPH:
+      GetGraphics_Paragraph(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_RIGHTARROW:
+      GetGraphics_RightArrow(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_RIGHTPOINTER:
+      GetGraphics_RightPointer(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_STAR:
+      GetGraphics_Star(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_UPARROW:
+      GetGraphics_UpArrow(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_UPLEFTARROW:
+      GetGraphics_UpLeftArrow(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_GRAPH:
+      GetGraphics_Graph(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_PAPERCLIP:
+      GetGraphics_Paperclip(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_ATTACHMENT:
+      GetGraphics_Attachment(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_TAG:
+      GetGraphics_Tag(sPath, path, rect, PWLPT_STREAM);
+      break;
+    case PWL_ICONTYPE_FOXIT:
+      GetGraphics_Foxit(sPath, path, rect, PWLPT_STREAM);
+      break;
+  }
+
+  sAppStream += sPath;
+  if (crStroke.nColorType != COLORTYPE_TRANSPARENT)
+    sAppStream += "B*\n";
+  else
+    sAppStream += "f*\n";
+
+  return sAppStream;
+}
+
+void CPWL_Utils::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) {
+  CFX_GraphStateData gsd;
+  gsd.m_LineWidth = 1.0f;
+
+  CFX_ByteString sPath;
+  CFX_PathData path;
+
+  switch (nType) {
+    case PWL_ICONTYPE_CHECKMARK:
+      GetGraphics_Checkmark(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_CIRCLE:
+      GetGraphics_Circle(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_COMMENT:
+      GetGraphics_Comment(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_CROSS:
+      GetGraphics_Cross(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_HELP:
+      GetGraphics_Help(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_INSERTTEXT:
+      GetGraphics_InsertText(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_KEY:
+      GetGraphics_Key(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_NEWPARAGRAPH:
+      GetGraphics_NewParagraph(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_TEXTNOTE:
+      GetGraphics_TextNote(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_PARAGRAPH:
+      GetGraphics_Paragraph(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_RIGHTARROW:
+      GetGraphics_RightArrow(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_RIGHTPOINTER:
+      GetGraphics_RightPointer(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_STAR:
+      GetGraphics_Star(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_UPARROW:
+      GetGraphics_UpArrow(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_UPLEFTARROW:
+      GetGraphics_UpLeftArrow(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_GRAPH:
+      GetGraphics_Graph(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_PAPERCLIP:
+      GetGraphics_Paperclip(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_ATTACHMENT:
+      GetGraphics_Attachment(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_TAG:
+      GetGraphics_Tag(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    case PWL_ICONTYPE_FOXIT:
+      GetGraphics_Foxit(sPath, path, rect, PWLPT_PATHDATA);
+      break;
+    default:
+      return;
+  }
+
+  pDevice->DrawPath(
+      &path, pUser2Device, &gsd, PWLColorToFXColor(crFill, nTransparancy),
+      PWLColorToFXColor(crStroke, nTransparancy), FXFILL_ALTERNATE);
+}
+
+void CPWL_Utils::GetGraphics_Checkmark(CFX_ByteString& sPathData,
+                                       CFX_PathData& path,
+                                       const CPDF_Rect& crBBox,
+                                       const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 15.0f,
+                               crBBox.bottom + fHeight * 2 / 5.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(
+              crBBox.left + fWidth / 15.0f +
+                  PWL_BEZIER * (fWidth / 7.0f - fWidth / 15.0f),
+              crBBox.bottom + fHeight * 2 / 5.0f +
+                  PWL_BEZIER * (fHeight * 2 / 7.0f - fHeight * 2 / 5.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 4.5f +
+                         PWL_BEZIER * (fWidth / 5.0f - fWidth / 4.5f),
+                     crBBox.bottom + fHeight / 16.0f +
+                         PWL_BEZIER * (fHeight / 5.0f - fHeight / 16.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 4.5f,
+                               crBBox.bottom + fHeight / 16.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 4.5f +
+                                   PWL_BEZIER * (fWidth / 4.4f - fWidth / 4.5f),
+                               crBBox.bottom + fHeight / 16.0f -
+                                   PWL_BEZIER * fHeight / 16.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 3.0f +
+                                   PWL_BEZIER * (fWidth / 4.0f - fWidth / 3.0f),
+                               crBBox.bottom),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 3.0f, crBBox.bottom),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 3.0f +
+                                   PWL_BEZIER * fWidth * (1 / 7.0f + 2 / 15.0f),
+                               crBBox.bottom + PWL_BEZIER * fHeight * 4 / 5.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 14 / 15.0f +
+                                   PWL_BEZIER * fWidth * (1 / 7.0f - 7 / 15.0f),
+                               crBBox.bottom + fHeight * 15 / 16.0f +
+                                   PWL_BEZIER * (fHeight * 4 / 5.0f -
+                                                 fHeight * 15 / 16.0f)),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 14 / 15.0f,
+                               crBBox.bottom + fHeight * 15 / 16.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(
+              crBBox.left + fWidth * 14 / 15.0f +
+                  PWL_BEZIER * (fWidth * 7 / 15.0f - fWidth * 14 / 15.0f),
+              crBBox.bottom + fHeight * 15 / 16.0f +
+                  PWL_BEZIER * (fHeight * 8 / 7.0f - fHeight * 15 / 16.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 3.6f +
+                         PWL_BEZIER * (fWidth / 3.4f - fWidth / 3.6f),
+                     crBBox.bottom + fHeight / 3.5f +
+                         PWL_BEZIER * (fHeight / 3.5f - fHeight / 3.5f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 3.6f,
+                               crBBox.bottom + fHeight / 3.5f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 3.6f,
+                     crBBox.bottom + fHeight / 3.5f +
+                         PWL_BEZIER * (fHeight / 4.0f - fHeight / 3.5f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(
+              crBBox.left + fWidth / 15.0f +
+                  PWL_BEZIER * (fWidth / 3.5f - fWidth / 15.0f),
+              crBBox.bottom + fHeight * 2 / 5.0f +
+                  PWL_BEZIER * (fHeight * 3.5f / 5.0f - fHeight * 2 / 5.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 15.0f,
+                               crBBox.bottom + fHeight * 2 / 5.0f),
+                    PWLPT_BEZIERTO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 16);
+  else
+    GetPathDataFromArray(path, PathArray, 16);
+}
+
+void CPWL_Utils::GetGraphics_Circle(CFX_ByteString& sPathData,
+                                    CFX_PathData& path,
+                                    const CPDF_Rect& crBBox,
+                                    const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 15.0f,
+                               crBBox.bottom + fHeight / 2.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 15.0f,
+                     crBBox.bottom + fHeight / 2.0f +
+                         PWL_BEZIER * (fHeight * 14 / 15.0f - fHeight / 2.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f -
+                         PWL_BEZIER * (fWidth / 2.0f - fWidth / 15.0f),
+                     crBBox.top - fHeight / 15.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f, crBBox.top - fHeight / 15.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f +
+                         PWL_BEZIER * (fWidth * 14 / 15.0f - fWidth / 2.0f),
+                     crBBox.top - fHeight / 15.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth / 15.0f,
+                     crBBox.bottom + fHeight / 2.0f +
+                         PWL_BEZIER * (fHeight * 14 / 15.0f - fHeight / 2.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15.0f,
+                               crBBox.bottom + fHeight / 2.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth / 15.0f,
+                     crBBox.bottom + fHeight / 2.0f -
+                         PWL_BEZIER * (fHeight / 2.0f - fHeight / 15.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f +
+                         PWL_BEZIER * (fWidth * 14 / 15.0f - fWidth / 2.0f),
+                     crBBox.bottom + fHeight / 15.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 2.0f,
+                               crBBox.bottom + fHeight / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f -
+                         PWL_BEZIER * (fWidth / 2.0f - fWidth / 15.0f),
+                     crBBox.bottom + fHeight / 15.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 15.0f,
+                     crBBox.bottom + fHeight / 2.0f -
+                         PWL_BEZIER * (fHeight / 2.0f - fHeight / 15.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 15.0f,
+                               crBBox.bottom + fHeight / 2.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 3 / 15.0f,
+                               crBBox.bottom + fHeight / 2.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 3 / 15.0f,
+                     crBBox.bottom + fHeight / 2.0f +
+                         PWL_BEZIER * (fHeight * 4 / 5.0f - fHeight / 2.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f -
+                         PWL_BEZIER * (fWidth / 2.0f - fWidth * 3 / 15.0f),
+                     crBBox.top - fHeight * 3 / 15.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 2.0f,
+                               crBBox.top - fHeight * 3 / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f +
+                         PWL_BEZIER * (fWidth * 4 / 5.0f - fWidth / 2.0f),
+                     crBBox.top - fHeight * 3 / 15.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 3 / 15.0f,
+                     crBBox.bottom + fHeight / 2.0f +
+                         PWL_BEZIER * (fHeight * 4 / 5.0f - fHeight / 2.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 3 / 15.0f,
+                               crBBox.bottom + fHeight / 2.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 3 / 15.0f,
+                     crBBox.bottom + fHeight / 2.0f -
+                         PWL_BEZIER * (fHeight * 4 / 5.0f - fHeight / 2.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f +
+                         PWL_BEZIER * (fWidth * 4 / 5.0f - fWidth / 2.0f),
+                     crBBox.bottom + fHeight * 3 / 15.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 2.0f,
+                               crBBox.bottom + fHeight * 3 / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f -
+                         PWL_BEZIER * (fWidth * 4 / 5.0f - fWidth / 2.0f),
+                     crBBox.bottom + fHeight * 3 / 15.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 3 / 15.0f,
+                     crBBox.bottom + fHeight / 2.0f -
+                         PWL_BEZIER * (fHeight * 4 / 5.0f - fHeight / 2.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 3 / 15.0f,
+                               crBBox.bottom + fHeight / 2.0f),
+                    PWLPT_BEZIERTO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 26);
+  else
+    GetPathDataFromArray(path, PathArray, 26);
+}
+
+void CPWL_Utils::GetGraphics_Comment(CFX_ByteString& sPathData,
+                                     CFX_PathData& path,
+                                     const CPDF_Rect& crBBox,
+                                     const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 15.0f, crBBox.top - fHeight / 6.0f),
+          PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 15.0f,
+                     crBBox.top - fHeight / 6.0f +
+                         PWL_BEZIER * (fHeight / 6.0f - fHeight / 10.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 2 / 15.0f -
+                                   PWL_BEZIER * fWidth / 15.0f,
+                               crBBox.top - fHeight / 10.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 2 / 15.0f,
+                               crBBox.top - fHeight / 10.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 2 / 15.0f,
+                               crBBox.top - fHeight / 10.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 2 / 15.0f +
+                                   PWL_BEZIER * fWidth / 15.0f,
+                               crBBox.top - fHeight / 10.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth / 15.0f,
+                     crBBox.top - fHeight / 6 +
+                         PWL_BEZIER * (fHeight / 6.0f - fHeight / 10.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15.0f,
+                               crBBox.top - fHeight / 6.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15.0f,
+                               crBBox.bottom + fHeight / 3.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15.0f,
+                               crBBox.bottom + fHeight * 4 / 15.0f +
+                                   PWL_BEZIER * fHeight / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 2 / 15.0f +
+                                   PWL_BEZIER * fWidth / 15.0f,
+                               crBBox.bottom + fHeight * 4 / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 2 / 15.0f,
+                               crBBox.bottom + fHeight * 4 / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 5 / 15.0f,
+                               crBBox.bottom + fHeight * 4 / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 5 / 15.0f,
+                               crBBox.bottom + fHeight * 2 / 15 +
+                                   PWL_BEZIER * fHeight * 2 / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 5 / 15.0f -
+                                   PWL_BEZIER * fWidth * 2 / 15.0f,
+                               crBBox.bottom + fHeight * 2 / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 6 / 30.0f,
+                               crBBox.bottom + fHeight * 2 / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 7 / 30.0f +
+                                   PWL_BEZIER * fWidth / 30.0f,
+                               crBBox.bottom + fHeight * 2 / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 7 / 30.0f,
+                               crBBox.bottom + fHeight * 2 / 15.0f +
+                                   PWL_BEZIER * fHeight * 2 / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 7 / 30.0f,
+                               crBBox.bottom + fHeight * 4 / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 2 / 15.0f,
+                               crBBox.bottom + fHeight * 4 / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 2 / 15.0f -
+                                   PWL_BEZIER * fWidth / 15.0f,
+                               crBBox.bottom + fHeight * 4 / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 15.0f,
+                               crBBox.bottom + fHeight / 3.0f -
+                                   PWL_BEZIER * fHeight / 15.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 15.0f,
+                               crBBox.bottom + fHeight / 3.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 15.0f, crBBox.top - fHeight / 6.0f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 2 / 15.0f,
+                               crBBox.top - fHeight * 8 / 30.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 2 / 15.0f,
+                               crBBox.top - fHeight * 8 / 30.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 2 / 15,
+                               crBBox.top - fHeight * 25 / 60.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 2 / 15.0f,
+                               crBBox.top - fHeight * 25 / 60.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 2 / 15.0f,
+                               crBBox.top - fHeight * 17 / 30.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 4 / 15.0f,
+                               crBBox.top - fHeight * 17 / 30.0f),
+                    PWLPT_LINETO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 30);
+  else
+    GetPathDataFromArray(path, PathArray, 30);
+}
+
+void CPWL_Utils::GetGraphics_Cross(CFX_ByteString& sPathData,
+                                   CFX_PathData& path,
+                                   const CPDF_Rect& crBBox,
+                                   const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+  // FX_FLOAT fcatercorner = (FX_FLOAT)sqrt(fWidth*fWidth + fHeight*fHeight);
+  CPWL_Point center_point(crBBox.left + fWidth / 2,
+                          crBBox.bottom + fHeight / 2);
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(
+          CPWL_Point(center_point.x, center_point.y + fHeight / 10.0f),
+          PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(center_point.x + fWidth * 0.3f,
+                     center_point.y + fHeight / 10.0f + fWidth * 0.3f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(center_point.x + fWidth / 10.0f + fWidth * 0.3f,
+                               center_point.y + fHeight * 0.3f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(center_point.x + fWidth / 10.0f, center_point.y),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(center_point.x + fWidth / 10.0f + fWidth * 0.3f,
+                               center_point.y - fHeight * 0.3f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(center_point.x + fWidth * 0.3f,
+                     center_point.y - fHeight / 10.0f - fHeight * 0.3f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(center_point.x, center_point.y - fHeight / 10.0f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(center_point.x - fWidth * 0.3f,
+                               center_point.y - fHeight / 10 - fHeight * 0.3f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(center_point.x - fWidth / 10.0f - fWidth * 0.3f,
+                               center_point.y - fHeight * 0.3f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(center_point.x - fWidth / 10, center_point.y),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(center_point.x - fWidth / 10 - fWidth * 0.3f,
+                               center_point.y + fHeight * 0.3f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(center_point.x - fWidth * 0.3f,
+                     center_point.y + fHeight / 10.0f + fHeight * 0.3f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(center_point.x, center_point.y + fHeight / 10.0f),
+          PWLPT_LINETO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 13);
+  else
+    GetPathDataFromArray(path, PathArray, 13);
+}
+
+void CPWL_Utils::GetGraphics_Help(CFX_ByteString& sPathData,
+                                  CFX_PathData& path,
+                                  const CPDF_Rect& crBBox,
+                                  const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 60.0f,
+                               crBBox.bottom + fHeight / 2.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 60.0f,
+                     crBBox.bottom + fHeight / 2.0f +
+                         PWL_BEZIER * (fHeight / 60.0f - fHeight / 2.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f -
+                         PWL_BEZIER * (fWidth / 2.0f - fWidth / 60.0f),
+                     crBBox.bottom + fHeight / 60.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 2.0f,
+                               crBBox.bottom + fHeight / 60.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 2.0f +
+                                   PWL_BEZIER * fWidth * 29 / 60.0f,
+                               crBBox.bottom + fHeight / 60.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth / 60.0f,
+                     crBBox.bottom + fHeight / 2.0f +
+                         PWL_BEZIER * (fHeight / 60.0f - fHeight / 2.0f)),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 60.0f,
+                               crBBox.bottom + fHeight / 2.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 60.0f,
+                               crBBox.bottom + fHeight / 2.0f +
+                                   PWL_BEZIER * fHeight * 29 / 60.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 2.0f +
+                                   PWL_BEZIER * fWidth * 29 / 60.0f,
+                               crBBox.top - fHeight / 60.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f, crBBox.top - fHeight / 60.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 2.0f -
+                                   PWL_BEZIER * fWidth * 29 / 60.0f,
+                               crBBox.top - fHeight / 60.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 60.0f,
+                               crBBox.bottom + fHeight / 2.0f +
+                                   PWL_BEZIER * fHeight * 29 / 60.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 60.0f,
+                               crBBox.bottom + fHeight / 2.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.27f,
+                               crBBox.top - fHeight * 0.36f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.27f,
+                               crBBox.top - fHeight * 0.36f +
+                                   PWL_BEZIER * fHeight * 0.23f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.5f - PWL_BEZIER * fWidth * 0.23f,
+                     crBBox.bottom + fHeight * 0.87f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.5f,
+                               crBBox.bottom + fHeight * 0.87f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.5f + PWL_BEZIER * fWidth * 0.23f,
+                     crBBox.bottom + fHeight * 0.87f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.27f,
+                               crBBox.top - fHeight * 0.36f +
+                                   PWL_BEZIER * fHeight * 0.23f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.27f,
+                               crBBox.top - fHeight * 0.36f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.27f - fWidth * 0.08f * 0.2f,
+                     crBBox.top - fHeight * 0.36f - fHeight * 0.15f * 0.7f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.35f + fWidth * 0.08f * 0.2f,
+                     crBBox.top - fHeight * 0.51f + fHeight * 0.15f * 0.2f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.35f,
+                               crBBox.top - fHeight * 0.51f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.35f - fWidth * 0.1f * 0.5f,
+                     crBBox.top - fHeight * 0.51f - fHeight * 0.15f * 0.3f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.45f - fWidth * 0.1f * 0.5f,
+                     crBBox.top - fHeight * 0.68f + fHeight * 0.15f * 0.5f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.45f,
+                               crBBox.top - fHeight * 0.68f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.45f,
+                               crBBox.bottom + fHeight * 0.30f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.45f,
+                     crBBox.bottom + fHeight * 0.30f - fWidth * 0.1f * 0.7f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.55f,
+                     crBBox.bottom + fHeight * 0.30f - fWidth * 0.1f * 0.7f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.55f,
+                               crBBox.bottom + fHeight * 0.30f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.55f,
+                               crBBox.top - fHeight * 0.66f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.55f - fWidth * 0.1f * 0.05f,
+                     crBBox.top - fHeight * 0.66f + fHeight * 0.18f * 0.5f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.45f - fWidth * 0.1f * 0.05f,
+                     crBBox.top - fHeight * 0.48f - fHeight * 0.18f * 0.3f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.45f,
+                               crBBox.top - fHeight * 0.48f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.45f + fWidth * 0.08f * 0.2f,
+                     crBBox.top - fHeight * 0.48f + fHeight * 0.18f * 0.2f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.37f - fWidth * 0.08f * 0.2f,
+                     crBBox.top - fHeight * 0.36f - fHeight * 0.18f * 0.7f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.37f,
+                               crBBox.top - fHeight * 0.36f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.37f,
+                               crBBox.top - fHeight * 0.36f +
+                                   PWL_BEZIER * fHeight * 0.13f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.5f + PWL_BEZIER * fWidth * 0.13f,
+                     crBBox.bottom + fHeight * 0.77f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.5f,
+                               crBBox.bottom + fHeight * 0.77f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.5f - PWL_BEZIER * fWidth * 0.13f,
+                     crBBox.bottom + fHeight * 0.77f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.37f,
+                               crBBox.top - fHeight * 0.36f +
+                                   PWL_BEZIER * fHeight * 0.13f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.37f,
+                               crBBox.top - fHeight * 0.36f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.37f,
+                     crBBox.top - fHeight * 0.36f - fWidth * 0.1f * 0.6f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.27f,
+                     crBBox.top - fHeight * 0.36f - fWidth * 0.1f * 0.6f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.27f,
+                               crBBox.top - fHeight * 0.36f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.56f,
+                               crBBox.bottom + fHeight * 0.13f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.56f,
+                               crBBox.bottom + fHeight * 0.13f +
+                                   PWL_BEZIER * fHeight * 0.055f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.505f -
+                                   PWL_BEZIER * fWidth * 0.095f,
+                               crBBox.bottom + fHeight * 0.185f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.505f,
+                               crBBox.bottom + fHeight * 0.185f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.505f +
+                                   PWL_BEZIER * fWidth * 0.065f,
+                               crBBox.bottom + fHeight * 0.185f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.44f,
+                               crBBox.bottom + fHeight * 0.13f +
+                                   PWL_BEZIER * fHeight * 0.055f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.44f,
+                               crBBox.bottom + fHeight * 0.13f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.44f,
+                               crBBox.bottom + fHeight * 0.13f -
+                                   PWL_BEZIER * fHeight * 0.055f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.505f +
+                                   PWL_BEZIER * fWidth * 0.065f,
+                               crBBox.bottom + fHeight * 0.075f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.505f,
+                               crBBox.bottom + fHeight * 0.075f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.505f -
+                                   PWL_BEZIER * fWidth * 0.065f,
+                               crBBox.bottom + fHeight * 0.075f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.56f,
+                               crBBox.bottom + fHeight * 0.13f -
+                                   PWL_BEZIER * fHeight * 0.055f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.56f,
+                               crBBox.bottom + fHeight * 0.13f),
+                    PWLPT_BEZIERTO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 59);
+  else
+    GetPathDataFromArray(path, PathArray, 59);
+}
+
+void CPWL_Utils::GetGraphics_InsertText(CFX_ByteString& sPathData,
+                                        CFX_PathData& path,
+                                        const CPDF_Rect& crBBox,
+                                        const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 10, crBBox.bottom + fHeight / 10),
+          PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2, crBBox.top - fHeight * 2 / 15),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth / 10, crBBox.bottom + fHeight / 10),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 10, crBBox.bottom + fHeight / 10),
+          PWLPT_LINETO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 4);
+  else
+    GetPathDataFromArray(path, PathArray, 4);
+}
+
+void CPWL_Utils::GetGraphics_Key(CFX_ByteString& sPathData,
+                                 CFX_PathData& path,
+                                 const CPDF_Rect& crBBox,
+                                 const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+  FX_FLOAT k = -fHeight / fWidth;
+  CPWL_Point tail;
+  CPWL_Point CicleCenter;
+  tail.x = crBBox.left + fWidth * 0.9f;
+  tail.y = k * (tail.x - crBBox.right) + crBBox.bottom;
+  CicleCenter.x = crBBox.left + fWidth * 0.15f;
+  CicleCenter.y = k * (CicleCenter.x - crBBox.right) + crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(
+          CPWL_Point(tail.x + fWidth / 30.0f, -fWidth / 30.0f / k + tail.y),
+          PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(tail.x + fWidth / 30.0f - fWidth * 0.18f,
+                               -k * fWidth * 0.18f - fWidth / 30 / k + tail.y),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(tail.x + fWidth / 30 - fWidth * 0.18f + fWidth * 0.07f,
+                     -fWidth * 0.07f / k - k * fWidth * 0.18f -
+                         fWidth / 30 / k + tail.y),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(tail.x + fWidth / 30 - fWidth * 0.18f - fWidth / 20 +
+                         fWidth * 0.07f,
+                     -fWidth * 0.07f / k - k * fWidth / 20 -
+                         k * fWidth * 0.18f - fWidth / 30 / k + tail.y),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(
+              tail.x + fWidth / 30 - fWidth * 0.18f - fWidth / 20,
+              -k * fWidth / 20 - k * fWidth * 0.18f - fWidth / 30 / k + tail.y),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(
+              tail.x + fWidth / 30 - fWidth * 0.18f - fWidth / 20 - fWidth / 15,
+              -k * fWidth / 15 - k * fWidth / 20 - k * fWidth * 0.18f -
+                  fWidth / 30 / k + tail.y),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(tail.x + fWidth / 30 - fWidth * 0.18f - fWidth / 20 -
+                         fWidth / 15 + fWidth * 0.07f,
+                     -fWidth * 0.07f / k - k * fWidth / 15 - k * fWidth / 20 -
+                         k * fWidth * 0.18f - fWidth / 30 / k + tail.y),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(tail.x + fWidth / 30 - fWidth * 0.18f - fWidth / 20 -
+                         fWidth / 15 - fWidth / 20 + fWidth * 0.07f,
+                     -fWidth * 0.07f / k + -k * fWidth / 20 + -k * fWidth / 15 -
+                         k * fWidth / 20 - k * fWidth * 0.18f -
+                         fWidth / 30 / k + tail.y),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(tail.x + fWidth / 30 - fWidth * 0.18f - fWidth / 20 -
+                         fWidth / 15 - fWidth / 20,
+                     -k * fWidth / 20 + -k * fWidth / 15 - k * fWidth / 20 -
+                         k * fWidth * 0.18f - fWidth / 30 / k + tail.y),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(tail.x + fWidth / 30 - fWidth * 0.45f,
+                               -k * fWidth * 0.45f - fWidth / 30 / k + tail.y),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(tail.x + fWidth / 30 - fWidth * 0.45f + fWidth * 0.2f,
+                     -fWidth * 0.4f / k - k * fWidth * 0.45f - fWidth / 30 / k +
+                         tail.y),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(CicleCenter.x + fWidth * 0.2f,
+                               -fWidth * 0.1f / k + CicleCenter.y),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(CicleCenter.x, CicleCenter.y), PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(CicleCenter.x - fWidth / 60.0f,
+                               -k * fWidth / 60 + CicleCenter.y),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(CicleCenter.x - fWidth / 60,
+                               -k * fWidth / 60 + CicleCenter.y),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(CicleCenter.x, CicleCenter.y), PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(CicleCenter.x - fWidth * 0.22f,
+                     fWidth * 0.35f / k + CicleCenter.y - fHeight * 0.05f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(tail.x - fWidth / 30 - fWidth * 0.45f - fWidth * 0.18f,
+                     fWidth * 0.05f / k - k * fWidth * 0.45f + fWidth / 30 / k +
+                         tail.y - fHeight * 0.05f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(tail.x - fWidth / 30.0f - fWidth * 0.45f,
+                     -k * fWidth * 0.45f + fWidth / 30.0f / k + tail.y),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(tail.x - fWidth / 30.0f, fWidth / 30.0f / k + tail.y),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(tail.x + fWidth / 30, -fWidth / 30 / k + tail.y),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(CicleCenter.x + fWidth * 0.08f,
+                               k * fWidth * 0.08f + CicleCenter.y),
+                    PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(CicleCenter.x + fWidth * 0.08f + fWidth * 0.1f,
+                     -fWidth * 0.1f / k + k * fWidth * 0.08f + CicleCenter.y),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(CicleCenter.x + fWidth * 0.22f + fWidth * 0.1f,
+                     k * fWidth * 0.22f + CicleCenter.y - fWidth * 0.1f / k),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(CicleCenter.x + fWidth * 0.22f,
+                               k * fWidth * 0.22f + CicleCenter.y),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(CicleCenter.x + fWidth * 0.22f - fWidth * 0.1f,
+                     fWidth * 0.1f / k + k * fWidth * 0.22f + CicleCenter.y),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(CicleCenter.x + fWidth * 0.08f - fWidth * 0.1f,
+                     fWidth * 0.1f / k + k * fWidth * 0.08f + CicleCenter.y),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(CicleCenter.x + fWidth * 0.08f,
+                               k * fWidth * 0.08f + CicleCenter.y),
+                    PWLPT_BEZIERTO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 28);
+  else
+    GetPathDataFromArray(path, PathArray, 28);
+}
+
+void CPWL_Utils::GetGraphics_NewParagraph(CFX_ByteString& sPathData,
+                                          CFX_PathData& path,
+                                          const CPDF_Rect& crBBox,
+                                          const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f, crBBox.top - fHeight / 20.0f),
+          PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 10.0f, crBBox.top - fHeight / 2.0f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 10.0f,
+                               crBBox.top - fHeight / 2.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f, crBBox.top - fHeight / 20.0f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.12f,
+                               crBBox.top - fHeight * 17 / 30.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.12f,
+                               crBBox.bottom + fHeight / 10.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.22f,
+                               crBBox.bottom + fHeight / 10.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.22f,
+                     crBBox.top - fHeight * 17 / 30.0f - fWidth * 0.14f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.38f,
+                               crBBox.bottom + fHeight / 10.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.48f,
+                               crBBox.bottom + fHeight / 10.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.48f,
+                               crBBox.top - fHeight * 17 / 30.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.38f,
+                               crBBox.top - fHeight * 17 / 30.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.38f,
+                               crBBox.bottom + fWidth * 0.24f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.22f,
+                               crBBox.top - fHeight * 17 / 30.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.12f,
+                               crBBox.top - fHeight * 17 / 30.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.6f,
+                               crBBox.bottom + fHeight / 10.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.7f,
+                               crBBox.bottom + fHeight / 10.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.7f,
+                     crBBox.bottom + fHeight / 10.0f + fHeight / 7.0f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.97f,
+                     crBBox.bottom + fHeight / 10.0f + fHeight / 7.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.97f,
+                               crBBox.top - fHeight * 17 / 30.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.7f,
+                               crBBox.top - fHeight * 17 / 30.0f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.6f,
+                               crBBox.top - fHeight * 17 / 30.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.6f,
+                               crBBox.bottom + fHeight / 10.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.7f,
+                               crBBox.bottom + fHeight / 7 + fHeight * 0.18f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.85f,
+                               crBBox.bottom + fHeight / 7 + fHeight * 0.18f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.85f,
+                     crBBox.top - fHeight * 17 / 30.0f - fHeight * 0.08f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.7f,
+                     crBBox.top - fHeight * 17 / 30.0f - fHeight * 0.08f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.7f,
+                               crBBox.bottom + fHeight / 7 + fHeight * 0.18f),
+                    PWLPT_LINETO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 28);
+  else
+    GetPathDataFromArray(path, PathArray, 28);
+}
+
+void CPWL_Utils::GetGraphics_TextNote(CFX_ByteString& sPathData,
+                                      CFX_PathData& path,
+                                      const CPDF_Rect& crBBox,
+                                      const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 3 / 10.0f,
+                               crBBox.bottom + fHeight / 15.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 7 / 10.0f,
+                               crBBox.bottom + fHeight * 4 / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 10.0f,
+                               crBBox.bottom + fHeight * 4 / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 10.0f,
+                               crBBox.top - fHeight / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 10.0f,
+                               crBBox.top - fHeight / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 10.0f,
+                               crBBox.bottom + fHeight / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 3 / 10.0f,
+                               crBBox.bottom + fHeight / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 10.0f,
+                               crBBox.bottom + fHeight * 4 / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 3 / 10.0f,
+                               crBBox.bottom + fHeight / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 3 / 10.0f,
+                               crBBox.bottom + fHeight * 4 / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 10.0f,
+                               crBBox.bottom + fHeight * 4 / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 5.0f,
+                               crBBox.top - fHeight * 4 / 15.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 5.0f,
+                               crBBox.top - fHeight * 4 / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 5.0f,
+                               crBBox.top - fHeight * 7 / 15.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 5.0f,
+                               crBBox.top - fHeight * 7 / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 5.0f,
+                               crBBox.top - fHeight * 10 / 15.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 3 / 10.0f,
+                               crBBox.top - fHeight * 10 / 15.0f),
+                    PWLPT_LINETO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 17);
+  else
+    GetPathDataFromArray(path, PathArray, 17);
+}
+
+void CPWL_Utils::GetGraphics_Paragraph(CFX_ByteString& sPathData,
+                                       CFX_PathData& path,
+                                       const CPDF_Rect& crBBox,
+                                       const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f, crBBox.top - fHeight / 15.0f),
+          PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.7f, crBBox.top - fHeight / 15.0f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.7f,
+                               crBBox.bottom + fHeight / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.634f,
+                               crBBox.bottom + fHeight / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.634f,
+                               crBBox.top - fHeight * 2 / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.566f,
+                               crBBox.top - fHeight * 2 / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.566f,
+                               crBBox.bottom + fHeight / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 2.0f,
+                               crBBox.bottom + fHeight / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 2.0f,
+                               crBBox.top - fHeight / 15.0f - fHeight * 0.4f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.2f,
+                               crBBox.top - fHeight / 15.0f - fHeight * 0.4f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.2f, crBBox.top - fHeight / 15.0f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f, crBBox.top - fHeight / 15.0f),
+          PWLPT_BEZIERTO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 12);
+  else
+    GetPathDataFromArray(path, PathArray, 12);
+}
+
+void CPWL_Utils::GetGraphics_RightArrow(CFX_ByteString& sPathData,
+                                        CFX_PathData& path,
+                                        const CPDF_Rect& crBBox,
+                                        const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15.0f,
+                               crBBox.top - fHeight / 2.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 2.0f + fWidth / 8.0f,
+                               crBBox.bottom + fHeight / 5.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 2.0f,
+                               crBBox.bottom + fHeight / 5.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15.0f - fWidth * 0.15f,
+                               crBBox.top - fHeight / 2.0f - fWidth / 25.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.1f,
+                               crBBox.top - fHeight / 2.0f - fWidth / 25.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.1f,
+                               crBBox.top - fHeight / 2.0f + fWidth / 25.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15.0f - fWidth * 0.15f,
+                               crBBox.top - fHeight / 2.0f + fWidth / 25.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f, crBBox.top - fHeight / 5.0f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 2.0f + fWidth / 8.0f,
+                               crBBox.top - fHeight / 5.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15.0f,
+                               crBBox.top - fHeight / 2.0f),
+                    PWLPT_LINETO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 10);
+  else
+    GetPathDataFromArray(path, PathArray, 10);
+}
+
+void CPWL_Utils::GetGraphics_RightPointer(CFX_ByteString& sPathData,
+                                          CFX_PathData& path,
+                                          const CPDF_Rect& crBBox,
+                                          const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 30.0f,
+                               crBBox.top - fHeight / 2.0f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 30.0f,
+                               crBBox.bottom + fHeight / 6.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 4 / 15.0f,
+                               crBBox.top - fHeight / 2.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 30.0f, crBBox.top - fHeight / 6.0f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 30.0f,
+                               crBBox.top - fHeight / 2.0f),
+                    PWLPT_LINETO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 5);
+  else
+    GetPathDataFromArray(path, PathArray, 5);
+}
+
+void CPWL_Utils::GetGraphics_Star(CFX_ByteString& sPathData,
+                                  CFX_PathData& path,
+                                  const CPDF_Rect& crBBox,
+                                  const PWL_PATH_TYPE type) {
+  FX_FLOAT fLongRadius =
+      (crBBox.top - crBBox.bottom) / (1 + (FX_FLOAT)cos(PWL_PI / 5.0f));
+  fLongRadius = fLongRadius * 0.7f;
+  FX_FLOAT fShortRadius = fLongRadius * 0.55f;
+  CPDF_Point ptCenter = CPDF_Point((crBBox.left + crBBox.right) / 2.0f,
+                                   (crBBox.top + crBBox.bottom) / 2.0f);
+
+  FX_FLOAT px1[5], py1[5];
+  FX_FLOAT px2[5], py2[5];
+
+  FX_FLOAT fAngel = PWL_PI / 10.0f;
+
+  for (int32_t i = 0; i < 5; i++) {
+    px1[i] = ptCenter.x + fLongRadius * (FX_FLOAT)cos(fAngel);
+    py1[i] = ptCenter.y + fLongRadius * (FX_FLOAT)sin(fAngel);
+
+    fAngel += PWL_PI * 2 / 5.0f;
+  }
+
+  fAngel = PWL_PI / 5.0f + PWL_PI / 10.0f;
+
+  for (int32_t j = 0; j < 5; j++) {
+    px2[j] = ptCenter.x + fShortRadius * (FX_FLOAT)cos(fAngel);
+    py2[j] = ptCenter.y + fShortRadius * (FX_FLOAT)sin(fAngel);
+
+    fAngel += PWL_PI * 2 / 5.0f;
+  }
+
+  CPWL_PathData PathArray[11];
+  PathArray[0] = CPWL_PathData(CPWL_Point(px1[0], py1[0]), PWLPT_MOVETO);
+  PathArray[1] = CPWL_PathData(CPWL_Point(px2[0], py2[0]), PWLPT_LINETO);
+
+  for (int32_t k = 0; k < 4; k++) {
+    PathArray[(k + 1) * 2] =
+        CPWL_PathData(CPWL_Point(px1[k + 1], py1[k + 1]), PWLPT_LINETO);
+    PathArray[(k + 1) * 2 + 1] =
+        CPWL_PathData(CPWL_Point(px2[k + 1], py2[k + 1]), PWLPT_LINETO);
+  }
+
+  PathArray[10] = CPWL_PathData(CPWL_Point(px1[0], py1[0]), PWLPT_LINETO);
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 11);
+  else
+    GetPathDataFromArray(path, PathArray, 11);
+}
+
+void CPWL_Utils::GetGraphics_UpArrow(CFX_ByteString& sPathData,
+                                     CFX_PathData& path,
+                                     const CPDF_Rect& crBBox,
+                                     const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f, crBBox.top - fHeight / 15.0f),
+          PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 10.0f,
+                               crBBox.top - fWidth * 3 / 5.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.6f,
+                               crBBox.top - fWidth * 3 / 5.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.6f,
+                               crBBox.bottom + fHeight / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.4f,
+                               crBBox.bottom + fHeight / 15.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.4f,
+                               crBBox.top - fWidth * 3 / 5.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 10, crBBox.top - fWidth * 3 / 5.0f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 2.0f, crBBox.top - fHeight / 15.0f),
+          PWLPT_LINETO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 8);
+  else
+    GetPathDataFromArray(path, PathArray, 8);
+}
+
+void CPWL_Utils::GetGraphics_UpLeftArrow(CFX_ByteString& sPathData,
+                                         CFX_PathData& path,
+                                         const CPDF_Rect& crBBox,
+                                         const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+  CPWL_Point leftup(crBBox.left, crBBox.top);
+  CPWL_Point rightdown(crBBox.right, crBBox.bottom);
+  FX_FLOAT k = -fHeight / fWidth;
+  CPWL_Point tail;
+  tail.x = crBBox.left + fWidth * 4 / 5.0f;
+  tail.y = k * (tail.x - crBBox.right) + rightdown.y;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(
+          CPWL_Point(
+              crBBox.left + fWidth / 20.0f,
+              k * (crBBox.left + fWidth / 20.0f - rightdown.x) + rightdown.y),
+          PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(fHeight * 17 / 60.0f / k + tail.x +
+                                   fWidth / 10.0f + fWidth / 5.0f,
+                               -fWidth / 5.0f / k + tail.y -
+                                   fWidth / 10.0f / k + fHeight * 17 / 60.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(fHeight * 17 / 60.0f / k + tail.x + fWidth / 10.0f,
+                     tail.y - fWidth / 10.0f / k + fHeight * 17 / 60.0f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(tail.x + fWidth / 10.0f, tail.y - fWidth / 10.0f / k),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(tail.x - fWidth / 10.0f, tail.y + fWidth / 10.0f / k),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(fHeight * 17 / 60.0f / k + tail.x - fWidth / 10.0f,
+                     tail.y + fWidth / 10.0f / k + fHeight * 17 / 60.0f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(fHeight * 17 / 60.0f / k + tail.x -
+                                   fWidth / 10.0f - fWidth / 5.0f,
+                               fWidth / 5.0f / k + tail.y + fWidth / 10.0f / k +
+                                   fHeight * 17 / 60.0f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(
+              crBBox.left + fWidth / 20.0f,
+              k * (crBBox.left + fWidth / 20.0f - rightdown.x) + rightdown.y),
+          PWLPT_LINETO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 8);
+  else
+    GetPathDataFromArray(path, PathArray, 8);
+}
+
+void CPWL_Utils::GetGraphics_Graph(CFX_ByteString& sPathData,
+                                   CFX_PathData& path,
+                                   const CPDF_Rect& crBBox,
+                                   const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.05f, crBBox.top - fWidth * 0.15f),
+          PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.25f,
+                               crBBox.top - fHeight * 0.15f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.275f,
+                               crBBox.bottom + fHeight * 0.08f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.05f,
+                               crBBox.bottom + fHeight * 0.08f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.05f, crBBox.top - fWidth * 0.15f),
+          PWLPT_LINETO),
+
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.275f,
+                               crBBox.top - fWidth * 0.45f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.475f,
+                               crBBox.top - fWidth * 0.45f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.475f,
+                               crBBox.bottom + fHeight * 0.08f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.275f,
+                               crBBox.bottom + fHeight * 0.08f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.275f,
+                               crBBox.top - fWidth * 0.45f),
+                    PWLPT_LINETO),
+
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.5f, crBBox.top - fHeight * 0.05f),
+          PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.7f, crBBox.top - fHeight * 0.05f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.7f,
+                               crBBox.bottom + fHeight * 0.08f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.5f,
+                               crBBox.bottom + fHeight * 0.08f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.5f, crBBox.top - fHeight * 0.05f),
+          PWLPT_LINETO),
+
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.725f,
+                               crBBox.top - fWidth * 0.35f),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.925f,
+                               crBBox.top - fWidth * 0.35f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.925f,
+                               crBBox.bottom + fHeight * 0.08f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.725f,
+                               crBBox.bottom + fHeight * 0.08f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.725f,
+                               crBBox.top - fWidth * 0.35f),
+                    PWLPT_LINETO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 20);
+  else
+    GetPathDataFromArray(path, PathArray, 20);
+}
+
+void CPWL_Utils::GetGraphics_Paperclip(CFX_ByteString& sPathData,
+                                       CFX_PathData& path,
+                                       const CPDF_Rect& crBBox,
+                                       const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 60, crBBox.top - fHeight * 0.25f),
+          PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 60,
+                               crBBox.bottom + fHeight * 0.25f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 60,
+                               crBBox.bottom + fHeight * 0.25f -
+                                   fWidth * 57 / 60.0f * 0.35f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 30,
+                               crBBox.bottom + fHeight * 0.25f -
+                                   fWidth * 57 / 60.0f * 0.35f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 30,
+                               crBBox.bottom + fHeight * 0.25f),
+                    PWLPT_BEZIERTO),
+
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth / 30, crBBox.top - fHeight * 0.33f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth / 30,
+                     crBBox.top - fHeight * 0.33f + fHeight / 15 * 0.5f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth / 30 - fWidth * 0.12f,
+                     crBBox.top - fHeight * 0.33f + fHeight / 15 * 0.5f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 30 - fWidth * 0.12f,
+                               crBBox.top - fHeight * 0.33f),
+                    PWLPT_BEZIERTO),
+
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 30 - fWidth * 0.12f,
+                               crBBox.bottom + fHeight * 0.2f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth / 30 - fWidth * 0.12f,
+                     crBBox.bottom + fHeight * 0.2f -
+                         (fWidth * 57 / 60.0f - fWidth * 0.24f) * 0.25f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 60 + fWidth * 0.12f,
+                     crBBox.bottom + fHeight * 0.2f -
+                         (fWidth * 57 / 60.0f - fWidth * 0.24f) * 0.25f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 60 + fWidth * 0.12f,
+                               crBBox.bottom + fHeight * 0.2f),
+                    PWLPT_BEZIERTO),
+
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 60 + fWidth * 0.12f,
+                               crBBox.top - fHeight * 0.2f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 60 + fWidth * 0.12f,
+                     crBBox.top - fHeight * 0.2f +
+                         (fWidth * 11 / 12.0f - fWidth * 0.36f) * 0.25f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth / 15 - fWidth * 0.24f,
+                     crBBox.top - fHeight * 0.2f +
+                         (fWidth * 11 / 12.0f - fWidth * 0.36f) * 0.25f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15 - fWidth * 0.24f,
+                               crBBox.top - fHeight * 0.2f),
+                    PWLPT_BEZIERTO),
+
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15 - fWidth * 0.24f,
+                               crBBox.bottom + fHeight * 0.25f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth / 15 - fWidth * 0.24f,
+                     crBBox.bottom + fHeight * 0.25f -
+                         (fWidth * 14 / 15.0f - fWidth * 0.53f) * 0.25f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.29f,
+                     crBBox.bottom + fHeight * 0.25f -
+                         (fWidth * 14 / 15.0f - fWidth * 0.53f) * 0.25f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.29f,
+                               crBBox.bottom + fHeight * 0.25f),
+                    PWLPT_BEZIERTO),
+
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.29f,
+                               crBBox.top - fHeight * 0.33f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.29f,
+                     crBBox.top - fHeight * 0.33f + fWidth * 0.12f * 0.35f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.17f,
+                     crBBox.top - fHeight * 0.33f + fWidth * 0.12f * 0.35f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.17f,
+                               crBBox.top - fHeight * 0.33f),
+                    PWLPT_BEZIERTO),
+
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.17f,
+                               crBBox.bottom + fHeight * 0.3f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.17f,
+                               crBBox.bottom + fHeight * 0.3f -
+                                   fWidth * (14 / 15.0f - 0.29f) * 0.35f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15 - fWidth * 0.12f,
+                               crBBox.bottom + fHeight * 0.3f -
+                                   fWidth * (14 / 15.0f - 0.29f) * 0.35f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15 - fWidth * 0.12f,
+                               crBBox.bottom + fHeight * 0.3f),
+                    PWLPT_BEZIERTO),
+
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15 - fWidth * 0.12f,
+                               crBBox.top - fHeight * 0.25f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth / 15 - fWidth * 0.12f,
+                               crBBox.top - fHeight * 0.25f +
+                                   fWidth * 0.35f * (11 / 12.0f - 0.12f)),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth / 60,
+                               crBBox.top - fHeight * 0.25f +
+                                   fWidth * 0.35f * (11 / 12.0f - 0.12f)),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth / 60, crBBox.top - fHeight * 0.25f),
+          PWLPT_BEZIERTO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 33);
+  else
+    GetPathDataFromArray(path, PathArray, 33);
+}
+
+void CPWL_Utils::GetGraphics_Attachment(CFX_ByteString& sPathData,
+                                        CFX_PathData& path,
+                                        const CPDF_Rect& crBBox,
+                                        const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.25f, crBBox.top - fHeight * 0.1f),
+          PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.4f, crBBox.top - fHeight * 0.23f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.4f, crBBox.top - fHeight * 0.5f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.4f,
+                               crBBox.top - fHeight * 0.5f + fWidth * 0.04f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.6f,
+                               crBBox.top - fHeight * 0.5f + fWidth * 0.04f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.6f, crBBox.top - fHeight * 0.5f),
+          PWLPT_BEZIERTO),
+
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.6f, crBBox.top - fHeight * 0.23f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.25f,
+                               crBBox.top - fHeight * 0.1f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.25f, crBBox.top - fHeight * 0.1f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.4f, crBBox.top - fHeight * 0.23f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.6f, crBBox.top - fHeight * 0.23f),
+          PWLPT_LINETO),
+
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.4f, crBBox.top - fHeight * 0.5f),
+          PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.4f - fWidth * 0.25f * 0.4f,
+                     crBBox.top - fHeight * 0.5f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.15f,
+                     crBBox.top - fHeight * 0.65f + fHeight * 0.15f * 0.4f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.15f,
+                               crBBox.top - fHeight * 0.65f),
+                    PWLPT_BEZIERTO),
+
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.15f,
+                               crBBox.top - fHeight * 0.65f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.15f,
+                     crBBox.top - fHeight * 0.65f + fHeight * 0.15f * 0.4f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.6f + fWidth * 0.25f * 0.4f,
+                     crBBox.top - fHeight * 0.5f),
+          PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.6f, crBBox.top - fHeight * 0.5f),
+          PWLPT_BEZIERTO),
+
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.6f,
+                               crBBox.top - fHeight * 0.5f + fWidth * 0.04f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.4f,
+                               crBBox.top - fHeight * 0.5f + fWidth * 0.04f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.4f, crBBox.top - fHeight * 0.5f),
+          PWLPT_BEZIERTO),
+
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.5f, crBBox.top - fHeight * 0.65f),
+          PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.5f,
+                               crBBox.bottom + fHeight * 0.1f),
+                    PWLPT_LINETO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 24);
+  else
+    GetPathDataFromArray(path, PathArray, 24);
+}
+
+void CPWL_Utils::GetGraphics_Tag(CFX_ByteString& sPathData,
+                                 CFX_PathData& path,
+                                 const CPDF_Rect& crBBox,
+                                 const PWL_PATH_TYPE type) {
+  FX_FLOAT fWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fHeight = crBBox.top - crBBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.4f, crBBox.top - fHeight * 0.1f),
+          PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.1f, crBBox.top - fHeight * 0.5f),
+          PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.left + fWidth * 0.3f,
+                               crBBox.bottom + fHeight * 0.1f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crBBox.right - fWidth * 0.1f,
+                               crBBox.bottom + fHeight * 0.1f),
+                    PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.1f, crBBox.top - fHeight * 0.1f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.4f, crBBox.top - fHeight * 0.1f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.4f, crBBox.top - fHeight * 0.3f),
+          PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.2f, crBBox.top - fHeight * 0.3f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.4f, crBBox.top - fHeight * 0.5f),
+          PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.2f, crBBox.top - fHeight * 0.5f),
+          PWLPT_LINETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.left + fWidth * 0.4f, crBBox.top - fHeight * 0.7f),
+          PWLPT_MOVETO),
+      CPWL_PathData(
+          CPWL_Point(crBBox.right - fWidth * 0.2f, crBBox.top - fHeight * 0.7f),
+          PWLPT_LINETO)};
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 12);
+  else
+    GetPathDataFromArray(path, PathArray, 12);
+}
+
+void CPWL_Utils::GetGraphics_Foxit(CFX_ByteString& sPathData,
+                                   CFX_PathData& path,
+                                   const CPDF_Rect& crBBox,
+                                   const PWL_PATH_TYPE type) {
+  FX_FLOAT fOutWidth = crBBox.right - crBBox.left;
+  FX_FLOAT fOutHeight = crBBox.top - crBBox.bottom;
+
+  CPDF_Rect crInBox = crBBox;
+  crInBox.left = crBBox.left + fOutWidth * 0.08f;
+  crInBox.right = crBBox.right - fOutWidth * 0.08f;
+  crInBox.top = crBBox.top - fOutHeight * 0.08f;
+  crInBox.bottom = crBBox.bottom + fOutHeight * 0.08f;
+
+  FX_FLOAT fWidth = crInBox.right - crInBox.left;
+  FX_FLOAT fHeight = crInBox.top - crInBox.bottom;
+
+  CPWL_PathData PathArray[] = {
+      CPWL_PathData(CPWL_Point(crInBox.left, crInBox.top), PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.45f, crInBox.top),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.45f,
+                               crInBox.top - PWL_BEZIER * fHeight * 0.4f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.45f -
+                                   PWL_BEZIER * fWidth * 0.45f,
+                               crInBox.top - fHeight * 0.4f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crInBox.left, crInBox.top - fHeight * 0.4f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crInBox.left, crInBox.top), PWLPT_LINETO),
+
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.60f, crInBox.top),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.75f, crInBox.top),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.75f,
+                               crInBox.top - PWL_BEZIER * fHeight * 0.7f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.75f -
+                                   PWL_BEZIER * fWidth * 0.75f,
+                               crInBox.top - fHeight * 0.7f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crInBox.left, crInBox.top - fHeight * 0.7f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crInBox.left, crInBox.top - fHeight * 0.55f),
+                    PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crInBox.left + PWL_BEZIER * fWidth * 0.60f,
+                               crInBox.top - fHeight * 0.55f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.60f,
+                               crInBox.top - PWL_BEZIER * fHeight * 0.55f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.60f, crInBox.top),
+                    PWLPT_BEZIERTO),
+
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.90f, crInBox.top),
+                    PWLPT_MOVETO),
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.90f,
+                               crInBox.top - PWL_BEZIER * fHeight * 0.85f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.90f -
+                                   PWL_BEZIER * fWidth * 0.90f,
+                               crInBox.top - fHeight * 0.85f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crInBox.left, crInBox.top - fHeight * 0.85f),
+                    PWLPT_BEZIERTO),
+      CPWL_PathData(CPWL_Point(crInBox.left, crInBox.bottom), PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crInBox.right, crInBox.bottom), PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crInBox.right, crInBox.top), PWLPT_LINETO),
+      CPWL_PathData(CPWL_Point(crInBox.left + fWidth * 0.90f, crInBox.top),
+                    PWLPT_LINETO),
+  };
+
+  if (type == PWLPT_STREAM)
+    sPathData = GetAppStreamFromArray(PathArray, 23);
+  else
+    GetPathDataFromArray(path, PathArray, 23);
+}
+
+void CPWL_Color::ConvertColorType(int32_t other_nColorType) {
+  switch (other_nColorType) {
+    case COLORTYPE_TRANSPARENT:
+      break;
+    case COLORTYPE_GRAY:
+      switch (other_nColorType) {
+        case COLORTYPE_RGB:
+          CPWL_Utils::ConvertGRAY2RGB(fColor1, fColor1, fColor2, fColor3);
+          break;
+        case COLORTYPE_CMYK:
+          CPWL_Utils::ConvertGRAY2CMYK(fColor1, fColor1, fColor2, fColor3,
+                                       fColor4);
+          break;
+      }
+      break;
+    case COLORTYPE_RGB:
+      switch (other_nColorType) {
+        case COLORTYPE_GRAY:
+          CPWL_Utils::ConvertRGB2GRAY(fColor1, fColor2, fColor3, fColor1);
+          break;
+        case COLORTYPE_CMYK:
+          CPWL_Utils::ConvertRGB2CMYK(fColor1, fColor2, fColor3, fColor1,
+                                      fColor2, fColor3, fColor4);
+          break;
+      }
+      break;
+    case COLORTYPE_CMYK:
+      switch (other_nColorType) {
+        case COLORTYPE_GRAY:
+          CPWL_Utils::ConvertCMYK2GRAY(fColor1, fColor2, fColor3, fColor4,
+                                       fColor1);
+          break;
+        case COLORTYPE_RGB:
+          CPWL_Utils::ConvertCMYK2RGB(fColor1, fColor2, fColor3, fColor4,
+                                      fColor1, fColor2, fColor3);
+          break;
+      }
+      break;
+  }
+  nColorType = other_nColorType;
+}
diff --git a/fpdfsdk/src/pdfwindow/PWL_Wnd.cpp b/fpdfsdk/src/pdfwindow/PWL_Wnd.cpp
index 1bb2ffd107..ce8bc57ae2 100644
--- a/fpdfsdk/src/pdfwindow/PWL_Wnd.cpp
+++ b/fpdfsdk/src/pdfwindow/PWL_Wnd.cpp
@@ -13,545 +13,449 @@
 
 /* -------------------------- CPWL_Timer -------------------------- */
 
-static std::map<int32_t, CPWL_Timer*>& GetPWLTimeMap()
-{
+static std::map<int32_t, CPWL_Timer*>& GetPWLTimeMap() {
   // Leak the object at shutdown.
   static auto timeMap = new std::map<int32_t, CPWL_Timer*>;
   return *timeMap;
 }
 
-CPWL_Timer::CPWL_Timer(CPWL_TimerHandler* pAttached, IFX_SystemHandler* pSystemHandler) :
-    m_nTimerID(0),
-    m_pAttached(pAttached),
-    m_pSystemHandler(pSystemHandler)
-{
-    ASSERT(m_pAttached != NULL);
-    ASSERT(m_pSystemHandler != NULL);
+CPWL_Timer::CPWL_Timer(CPWL_TimerHandler* pAttached,
+                       IFX_SystemHandler* pSystemHandler)
+    : m_nTimerID(0), m_pAttached(pAttached), m_pSystemHandler(pSystemHandler) {
+  ASSERT(m_pAttached != NULL);
+  ASSERT(m_pSystemHandler != NULL);
 }
 
-CPWL_Timer::~CPWL_Timer()
-{
-    KillPWLTimer();
+CPWL_Timer::~CPWL_Timer() {
+  KillPWLTimer();
 }
 
-int32_t CPWL_Timer::SetPWLTimer(int32_t nElapse)
-{
-    if (m_nTimerID != 0)
-        KillPWLTimer();
-    m_nTimerID = m_pSystemHandler->SetTimer(nElapse, TimerProc);
+int32_t CPWL_Timer::SetPWLTimer(int32_t nElapse) {
+  if (m_nTimerID != 0)
+    KillPWLTimer();
+  m_nTimerID = m_pSystemHandler->SetTimer(nElapse, TimerProc);
 
-    GetPWLTimeMap()[m_nTimerID] = this;
-    return m_nTimerID;
+  GetPWLTimeMap()[m_nTimerID] = this;
+  return m_nTimerID;
 }
 
-void CPWL_Timer::KillPWLTimer()
-{
-    if (m_nTimerID == 0)
-        return;
+void CPWL_Timer::KillPWLTimer() {
+  if (m_nTimerID == 0)
+    return;
 
-    m_pSystemHandler->KillTimer(m_nTimerID);
-    GetPWLTimeMap().erase(m_nTimerID);
-    m_nTimerID = 0;
+  m_pSystemHandler->KillTimer(m_nTimerID);
+  GetPWLTimeMap().erase(m_nTimerID);
+  m_nTimerID = 0;
 }
 
-void CPWL_Timer::TimerProc(int32_t idEvent)
-{
-    auto it = GetPWLTimeMap().find(idEvent);
-    if (it == GetPWLTimeMap().end())
-        return;
+void CPWL_Timer::TimerProc(int32_t idEvent) {
+  auto it = GetPWLTimeMap().find(idEvent);
+  if (it == GetPWLTimeMap().end())
+    return;
 
-    CPWL_Timer* pTimer = it->second;
-    if (pTimer->m_pAttached)
-        pTimer->m_pAttached->TimerProc();
+  CPWL_Timer* pTimer = it->second;
+  if (pTimer->m_pAttached)
+    pTimer->m_pAttached->TimerProc();
 }
 
 /* -------------------------- CPWL_TimerHandler -------------------------- */
 
-CPWL_TimerHandler::CPWL_TimerHandler() : m_pTimer(NULL)
-{
-}
+CPWL_TimerHandler::CPWL_TimerHandler() : m_pTimer(NULL) {}
 
-CPWL_TimerHandler::~CPWL_TimerHandler()
-{
-    delete m_pTimer;
+CPWL_TimerHandler::~CPWL_TimerHandler() {
+  delete m_pTimer;
 }
 
-void CPWL_TimerHandler::BeginTimer(int32_t nElapse)
-{
-    if (!m_pTimer)
-        m_pTimer = new CPWL_Timer(this, GetSystemHandler());
+void CPWL_TimerHandler::BeginTimer(int32_t nElapse) {
+  if (!m_pTimer)
+    m_pTimer = new CPWL_Timer(this, GetSystemHandler());
 
-    if (m_pTimer)
-        m_pTimer->SetPWLTimer(nElapse);
+  if (m_pTimer)
+    m_pTimer->SetPWLTimer(nElapse);
 }
 
-void CPWL_TimerHandler::EndTimer()
-{
-    if (m_pTimer)
-        m_pTimer->KillPWLTimer();
+void CPWL_TimerHandler::EndTimer() {
+  if (m_pTimer)
+    m_pTimer->KillPWLTimer();
 }
 
-void CPWL_TimerHandler::TimerProc()
-{
-}
+void CPWL_TimerHandler::TimerProc() {}
 
 /* --------------------------- CPWL_MsgControl ---------------------------- */
 
-class CPWL_MsgControl
-{
-    friend class CPWL_Wnd;
-
-public:
-    CPWL_MsgControl(CPWL_Wnd * pWnd)
-    {
-//      PWL_TRACE("new CPWL_MsgControl\n");
-        m_pCreatedWnd = pWnd;
-        Default();
-    }
-
-    ~CPWL_MsgControl()
-    {
-//      PWL_TRACE("~CPWL_MsgControl\n");
-        Default();
-    }
-
-    void Default()
-    {
-        m_aMousePath.RemoveAll();
-        m_aKeyboardPath.RemoveAll();
-        m_pMainMouseWnd = NULL;
-        m_pMainKeyboardWnd = NULL;
-    }
-
-    FX_BOOL IsWndCreated(const CPWL_Wnd * pWnd) const
-    {
-        return m_pCreatedWnd == pWnd;
-    }
-
-    FX_BOOL IsMainCaptureMouse(const CPWL_Wnd * pWnd) const
-    {
-        return pWnd == m_pMainMouseWnd;
-    }
-
-    FX_BOOL IsWndCaptureMouse(const CPWL_Wnd * pWnd) const
-    {
-        if (pWnd)
-            for( int32_t i=0,sz=m_aMousePath.GetSize(); i<sz; i++)
-                if (m_aMousePath.GetAt(i) == pWnd)
-                    return TRUE;
-
-        return FALSE;
-    }
+class CPWL_MsgControl {
+  friend class CPWL_Wnd;
+
+ public:
+  CPWL_MsgControl(CPWL_Wnd* pWnd) {
+    //      PWL_TRACE("new CPWL_MsgControl\n");
+    m_pCreatedWnd = pWnd;
+    Default();
+  }
+
+  ~CPWL_MsgControl() {
+    //      PWL_TRACE("~CPWL_MsgControl\n");
+    Default();
+  }
+
+  void Default() {
+    m_aMousePath.RemoveAll();
+    m_aKeyboardPath.RemoveAll();
+    m_pMainMouseWnd = NULL;
+    m_pMainKeyboardWnd = NULL;
+  }
+
+  FX_BOOL IsWndCreated(const CPWL_Wnd* pWnd) const {
+    return m_pCreatedWnd == pWnd;
+  }
+
+  FX_BOOL IsMainCaptureMouse(const CPWL_Wnd* pWnd) const {
+    return pWnd == m_pMainMouseWnd;
+  }
+
+  FX_BOOL IsWndCaptureMouse(const CPWL_Wnd* pWnd) const {
+    if (pWnd)
+      for (int32_t i = 0, sz = m_aMousePath.GetSize(); i < sz; i++)
+        if (m_aMousePath.GetAt(i) == pWnd)
+          return TRUE;
 
-    FX_BOOL IsMainCaptureKeyboard(const CPWL_Wnd * pWnd) const
-    {
-        return pWnd == m_pMainKeyboardWnd;
-    }
+    return FALSE;
+  }
 
+  FX_BOOL IsMainCaptureKeyboard(const CPWL_Wnd* pWnd) const {
+    return pWnd == m_pMainKeyboardWnd;
+  }
 
-    FX_BOOL IsWndCaptureKeyboard(const CPWL_Wnd * pWnd) const
-    {
-        if (pWnd)
-            for( int32_t i=0,sz=m_aKeyboardPath.GetSize(); i<sz; i++)
-                if (m_aKeyboardPath.GetAt(i) == pWnd)
-                    return TRUE;
+  FX_BOOL IsWndCaptureKeyboard(const CPWL_Wnd* pWnd) const {
+    if (pWnd)
+      for (int32_t i = 0, sz = m_aKeyboardPath.GetSize(); i < sz; i++)
+        if (m_aKeyboardPath.GetAt(i) == pWnd)
+          return TRUE;
 
-        return FALSE;
-    }
+    return FALSE;
+  }
 
-    void SetFocus(CPWL_Wnd * pWnd)
-    {
-        m_aKeyboardPath.RemoveAll();
+  void SetFocus(CPWL_Wnd* pWnd) {
+    m_aKeyboardPath.RemoveAll();
 
-        if (pWnd)
-        {
-            m_pMainKeyboardWnd = pWnd;
+    if (pWnd) {
+      m_pMainKeyboardWnd = pWnd;
 
-            CPWL_Wnd * pParent = pWnd;
-            while (pParent)
-            {
-                m_aKeyboardPath.Add(pParent);
-                pParent = pParent->GetParentWindow();
-            }
+      CPWL_Wnd* pParent = pWnd;
+      while (pParent) {
+        m_aKeyboardPath.Add(pParent);
+        pParent = pParent->GetParentWindow();
+      }
 
-            pWnd->OnSetFocus();
-        }
+      pWnd->OnSetFocus();
     }
+  }
 
-    void KillFocus()
-    {
-        if (m_aKeyboardPath.GetSize() > 0)
-            if (CPWL_Wnd* pWnd = m_aKeyboardPath.GetAt(0))
-                pWnd->OnKillFocus();
-
-        m_pMainKeyboardWnd = NULL;
-        m_aKeyboardPath.RemoveAll();
-    }
+  void KillFocus() {
+    if (m_aKeyboardPath.GetSize() > 0)
+      if (CPWL_Wnd* pWnd = m_aKeyboardPath.GetAt(0))
+        pWnd->OnKillFocus();
 
-    void SetCapture(CPWL_Wnd * pWnd)
-    {
-        m_aMousePath.RemoveAll();
+    m_pMainKeyboardWnd = NULL;
+    m_aKeyboardPath.RemoveAll();
+  }
 
-        if (pWnd)
-        {
-            m_pMainMouseWnd = pWnd;
+  void SetCapture(CPWL_Wnd* pWnd) {
+    m_aMousePath.RemoveAll();
 
-            CPWL_Wnd * pParent = pWnd;
-            while (pParent)
-            {
-                m_aMousePath.Add(pParent);
-                pParent = pParent->GetParentWindow();
-            }
-        }
-    }
+    if (pWnd) {
+      m_pMainMouseWnd = pWnd;
 
-    void ReleaseCapture()
-    {
-        m_pMainMouseWnd = NULL;
-        m_aMousePath.RemoveAll();
+      CPWL_Wnd* pParent = pWnd;
+      while (pParent) {
+        m_aMousePath.Add(pParent);
+        pParent = pParent->GetParentWindow();
+      }
     }
-
-private:
-    CFX_ArrayTemplate<CPWL_Wnd*>    m_aMousePath;
-    CFX_ArrayTemplate<CPWL_Wnd*>    m_aKeyboardPath;
-    CPWL_Wnd*                       m_pCreatedWnd;
-    CPWL_Wnd*                       m_pMainMouseWnd;
-    CPWL_Wnd*                       m_pMainKeyboardWnd;
+  }
+
+  void ReleaseCapture() {
+    m_pMainMouseWnd = NULL;
+    m_aMousePath.RemoveAll();
+  }
+
+ private:
+  CFX_ArrayTemplate<CPWL_Wnd*> m_aMousePath;
+  CFX_ArrayTemplate<CPWL_Wnd*> m_aKeyboardPath;
+  CPWL_Wnd* m_pCreatedWnd;
+  CPWL_Wnd* m_pMainMouseWnd;
+  CPWL_Wnd* m_pMainKeyboardWnd;
 };
 
 /* --------------------------- CPWL_Wnd ---------------------------- */
 
-CPWL_Wnd::CPWL_Wnd() :
-    m_pVScrollBar(NULL),
-    m_rcWindow(),
-    m_rcClip(),
-    m_bCreated(FALSE),
-    m_bVisible(FALSE),
-    m_bNotifying(FALSE),
-    m_bEnabled(TRUE)
-{
-}
+CPWL_Wnd::CPWL_Wnd()
+    : m_pVScrollBar(NULL),
+      m_rcWindow(),
+      m_rcClip(),
+      m_bCreated(FALSE),
+      m_bVisible(FALSE),
+      m_bNotifying(FALSE),
+      m_bEnabled(TRUE) {}
 
-CPWL_Wnd::~CPWL_Wnd()
-{
-    ASSERT(m_bCreated == FALSE);
+CPWL_Wnd::~CPWL_Wnd() {
+  ASSERT(m_bCreated == FALSE);
 }
 
-CFX_ByteString CPWL_Wnd::GetClassName() const
-{
-    return "CPWL_Wnd";
+CFX_ByteString CPWL_Wnd::GetClassName() const {
+  return "CPWL_Wnd";
 }
 
-void CPWL_Wnd::Create(const PWL_CREATEPARAM & cp)
-{
-    if (!IsValid())
-    {
-        m_sPrivateParam = cp;
+void CPWL_Wnd::Create(const PWL_CREATEPARAM& cp) {
+  if (!IsValid()) {
+    m_sPrivateParam = cp;
 
-        OnCreate(m_sPrivateParam);
+    OnCreate(m_sPrivateParam);
 
-        m_sPrivateParam.rcRectWnd.Normalize();
-        m_rcWindow = m_sPrivateParam.rcRectWnd;
-        m_rcClip = CPWL_Utils::InflateRect(m_rcWindow,1.0f);
+    m_sPrivateParam.rcRectWnd.Normalize();
+    m_rcWindow = m_sPrivateParam.rcRectWnd;
+    m_rcClip = CPWL_Utils::InflateRect(m_rcWindow, 1.0f);
 
-        CreateMsgControl();
+    CreateMsgControl();
 
-        if (m_sPrivateParam.pParentWnd)
-            m_sPrivateParam.pParentWnd->OnNotify(this, PNM_ADDCHILD);
+    if (m_sPrivateParam.pParentWnd)
+      m_sPrivateParam.pParentWnd->OnNotify(this, PNM_ADDCHILD);
 
-        PWL_CREATEPARAM ccp = m_sPrivateParam;
+    PWL_CREATEPARAM ccp = m_sPrivateParam;
 
-        ccp.dwFlags &= 0xFFFF0000L; //remove sub styles
-        ccp.mtChild = CPDF_Matrix(1,0,0,1,0,0);
+    ccp.dwFlags &= 0xFFFF0000L;  // remove sub styles
+    ccp.mtChild = CPDF_Matrix(1, 0, 0, 1, 0, 0);
 
-        CreateScrollBar(ccp);
-        CreateChildWnd(ccp);
+    CreateScrollBar(ccp);
+    CreateChildWnd(ccp);
 
-        m_bVisible = HasFlag(PWS_VISIBLE);
+    m_bVisible = HasFlag(PWS_VISIBLE);
 
-        OnCreated();
+    OnCreated();
 
-        RePosChildWnd();
-        m_bCreated = TRUE;
-    }
+    RePosChildWnd();
+    m_bCreated = TRUE;
+  }
 }
 
-void CPWL_Wnd::OnCreate(PWL_CREATEPARAM & cp)
-{
-}
+void CPWL_Wnd::OnCreate(PWL_CREATEPARAM& cp) {}
 
-void CPWL_Wnd::OnCreated()
-{
-}
-
-void CPWL_Wnd::OnDestroy()
-{
-}
+void CPWL_Wnd::OnCreated() {}
 
-void CPWL_Wnd::Destroy()
-{
-    KillFocus();
+void CPWL_Wnd::OnDestroy() {}
 
-    OnDestroy();
+void CPWL_Wnd::Destroy() {
+  KillFocus();
 
-    if (m_bCreated)
-    {
-        for (int32_t i = m_aChildren.GetSize()-1; i >= 0; i --)
-        {
-            if (CPWL_Wnd * pChild = m_aChildren[i])
-            {
-                pChild->Destroy();
-                delete pChild;
-                pChild = NULL;
-            }
-        }
+  OnDestroy();
 
-        if (m_sPrivateParam.pParentWnd)
-            m_sPrivateParam.pParentWnd->OnNotify(this, PNM_REMOVECHILD);
-        m_bCreated = FALSE;
+  if (m_bCreated) {
+    for (int32_t i = m_aChildren.GetSize() - 1; i >= 0; i--) {
+      if (CPWL_Wnd* pChild = m_aChildren[i]) {
+        pChild->Destroy();
+        delete pChild;
+        pChild = NULL;
+      }
     }
 
-    DestroyMsgControl();
-
-    FXSYS_memset(&m_sPrivateParam, 0, sizeof(PWL_CREATEPARAM));
-    m_aChildren.RemoveAll();
-    m_pVScrollBar = NULL;
-}
+    if (m_sPrivateParam.pParentWnd)
+      m_sPrivateParam.pParentWnd->OnNotify(this, PNM_REMOVECHILD);
+    m_bCreated = FALSE;
+  }
 
-void CPWL_Wnd::Move(const CPDF_Rect & rcNew, FX_BOOL bReset,FX_BOOL bRefresh)
-{
-    if (IsValid())
-    {
-        CPDF_Rect rcOld = GetWindowRect();
+  DestroyMsgControl();
 
-        m_rcWindow = rcNew;
-        m_rcWindow.Normalize();
+  FXSYS_memset(&m_sPrivateParam, 0, sizeof(PWL_CREATEPARAM));
+  m_aChildren.RemoveAll();
+  m_pVScrollBar = NULL;
+}
 
-        if (rcOld.left != rcNew.left || rcOld.right != rcNew.right ||
-            rcOld.top != rcNew.top || rcOld.bottom != rcNew.bottom)
-        {
-            if (bReset)
-            {
-                RePosChildWnd();
-            }
+void CPWL_Wnd::Move(const CPDF_Rect& rcNew, FX_BOOL bReset, FX_BOOL bRefresh) {
+  if (IsValid()) {
+    CPDF_Rect rcOld = GetWindowRect();
 
-        }
-        if (bRefresh)
-        {
-            InvalidateRectMove(rcOld,rcNew);
-        }
+    m_rcWindow = rcNew;
+    m_rcWindow.Normalize();
 
-        m_sPrivateParam.rcRectWnd = m_rcWindow;
+    if (rcOld.left != rcNew.left || rcOld.right != rcNew.right ||
+        rcOld.top != rcNew.top || rcOld.bottom != rcNew.bottom) {
+      if (bReset) {
+        RePosChildWnd();
+      }
+    }
+    if (bRefresh) {
+      InvalidateRectMove(rcOld, rcNew);
     }
+
+    m_sPrivateParam.rcRectWnd = m_rcWindow;
+  }
 }
 
-void  CPWL_Wnd::InvalidateRectMove(const CPDF_Rect & rcOld, const CPDF_Rect & rcNew)
-{
-    CPDF_Rect rcUnion = rcOld;
-    rcUnion.Union(rcNew);
+void CPWL_Wnd::InvalidateRectMove(const CPDF_Rect& rcOld,
+                                  const CPDF_Rect& rcNew) {
+  CPDF_Rect rcUnion = rcOld;
+  rcUnion.Union(rcNew);
 
-    InvalidateRect(&rcUnion);
+  InvalidateRect(&rcUnion);
 }
 
-void CPWL_Wnd::GetAppearanceStream(CFX_ByteString & sAppStream)
-{
-    if (IsValid())
-    {
-        CFX_ByteTextBuf sTextBuf;
-        GetAppearanceStream(sTextBuf);
-        sAppStream += sTextBuf.GetByteString();
-    }
+void CPWL_Wnd::GetAppearanceStream(CFX_ByteString& sAppStream) {
+  if (IsValid()) {
+    CFX_ByteTextBuf sTextBuf;
+    GetAppearanceStream(sTextBuf);
+    sAppStream += sTextBuf.GetByteString();
+  }
 }
 
-void CPWL_Wnd::GetAppearanceStream(CFX_ByteTextBuf & sAppStream)
-{
-    if (IsValid() && IsVisible())
-    {
-        GetThisAppearanceStream(sAppStream);
-        GetChildAppearanceStream(sAppStream);
-    }
+void CPWL_Wnd::GetAppearanceStream(CFX_ByteTextBuf& sAppStream) {
+  if (IsValid() && IsVisible()) {
+    GetThisAppearanceStream(sAppStream);
+    GetChildAppearanceStream(sAppStream);
+  }
 }
 
-//if don't set,Get default apperance stream
-void CPWL_Wnd::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream)
-{
-    CPDF_Rect rectWnd = GetWindowRect();
-    if (!rectWnd.IsEmpty()) {
-        CFX_ByteTextBuf sThis;
-
-        if (HasFlag(PWS_BACKGROUND))
-            sThis << CPWL_Utils::GetRectFillAppStream(rectWnd, GetBackgroundColor());
-
-        if (HasFlag(PWS_BORDER)) {
-            sThis << CPWL_Utils::GetBorderAppStream(
-                rectWnd,
-                (FX_FLOAT)GetBorderWidth(),
-                GetBorderColor(),
-                GetBorderLeftTopColor(GetBorderStyle()),
-                GetBorderRightBottomColor(GetBorderStyle()),
-                GetBorderStyle(),
-                GetBorderDash());
-        }
+// if don't set,Get default apperance stream
+void CPWL_Wnd::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) {
+  CPDF_Rect rectWnd = GetWindowRect();
+  if (!rectWnd.IsEmpty()) {
+    CFX_ByteTextBuf sThis;
 
-        sAppStream << sThis;
-    }
-}
+    if (HasFlag(PWS_BACKGROUND))
+      sThis << CPWL_Utils::GetRectFillAppStream(rectWnd, GetBackgroundColor());
 
-void CPWL_Wnd::GetChildAppearanceStream(CFX_ByteTextBuf & sAppStream)
-{
-    for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-    {
-        if (CPWL_Wnd * pChild = m_aChildren.GetAt(i))
-        {
-            pChild->GetAppearanceStream(sAppStream);
-        }
+    if (HasFlag(PWS_BORDER)) {
+      sThis << CPWL_Utils::GetBorderAppStream(
+          rectWnd, (FX_FLOAT)GetBorderWidth(), GetBorderColor(),
+          GetBorderLeftTopColor(GetBorderStyle()),
+          GetBorderRightBottomColor(GetBorderStyle()), GetBorderStyle(),
+          GetBorderDash());
     }
-}
 
-void CPWL_Wnd::DrawAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-    if (IsValid() && IsVisible())
-    {
-        DrawThisAppearance(pDevice,pUser2Device);
-        DrawChildAppearance(pDevice,pUser2Device);
-    }
+    sAppStream << sThis;
+  }
 }
 
-void CPWL_Wnd::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-    CPDF_Rect rectWnd = GetWindowRect();
-    if (!rectWnd.IsEmpty())
-    {
-        if (HasFlag(PWS_BACKGROUND))
-        {
-            CPDF_Rect rcClient = CPWL_Utils::DeflateRect(rectWnd,(FX_FLOAT)(GetBorderWidth()+GetInnerBorderWidth()));
-            CPWL_Utils::DrawFillRect(pDevice,pUser2Device,rcClient, GetBackgroundColor(), GetTransparency());
-        }
-
-        if (HasFlag(PWS_BORDER))
-            CPWL_Utils::DrawBorder(pDevice,
-                                pUser2Device,
-                                rectWnd,
-                                (FX_FLOAT)GetBorderWidth(),
-                                GetBorderColor(),
-                                GetBorderLeftTopColor(GetBorderStyle()),
-                                GetBorderRightBottomColor(GetBorderStyle()),
-                                GetBorderStyle(),
-                                GetBorderDash(),
-                                GetTransparency());
+void CPWL_Wnd::GetChildAppearanceStream(CFX_ByteTextBuf& sAppStream) {
+  for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+      pChild->GetAppearanceStream(sAppStream);
+    }
+  }
+}
+
+void CPWL_Wnd::DrawAppearance(CFX_RenderDevice* pDevice,
+                              CPDF_Matrix* pUser2Device) {
+  if (IsValid() && IsVisible()) {
+    DrawThisAppearance(pDevice, pUser2Device);
+    DrawChildAppearance(pDevice, pUser2Device);
+  }
+}
+
+void CPWL_Wnd::DrawThisAppearance(CFX_RenderDevice* pDevice,
+                                  CPDF_Matrix* pUser2Device) {
+  CPDF_Rect rectWnd = GetWindowRect();
+  if (!rectWnd.IsEmpty()) {
+    if (HasFlag(PWS_BACKGROUND)) {
+      CPDF_Rect rcClient = CPWL_Utils::DeflateRect(
+          rectWnd, (FX_FLOAT)(GetBorderWidth() + GetInnerBorderWidth()));
+      CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcClient,
+                               GetBackgroundColor(), GetTransparency());
     }
-}
 
-void CPWL_Wnd::DrawChildAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device)
-{
-    for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-    {
-        if (CPWL_Wnd * pChild = m_aChildren.GetAt(i))
-        {
-            CPDF_Matrix mt = pChild->GetChildMatrix();
-            if (mt.IsIdentity())
-            {
-                pChild->DrawAppearance(pDevice,pUser2Device);
-            }
-            else
-            {
-                mt.Concat(*pUser2Device);
-                pChild->DrawAppearance(pDevice,&mt);
-            }
-        }
+    if (HasFlag(PWS_BORDER))
+      CPWL_Utils::DrawBorder(
+          pDevice, pUser2Device, rectWnd, (FX_FLOAT)GetBorderWidth(),
+          GetBorderColor(), GetBorderLeftTopColor(GetBorderStyle()),
+          GetBorderRightBottomColor(GetBorderStyle()), GetBorderStyle(),
+          GetBorderDash(), GetTransparency());
+  }
+}
+
+void CPWL_Wnd::DrawChildAppearance(CFX_RenderDevice* pDevice,
+                                   CPDF_Matrix* pUser2Device) {
+  for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+      CPDF_Matrix mt = pChild->GetChildMatrix();
+      if (mt.IsIdentity()) {
+        pChild->DrawAppearance(pDevice, pUser2Device);
+      } else {
+        mt.Concat(*pUser2Device);
+        pChild->DrawAppearance(pDevice, &mt);
+      }
     }
+  }
 }
 
-void CPWL_Wnd::InvalidateRect(CPDF_Rect* pRect)
-{
-    if (IsValid())
-    {
-        CPDF_Rect rcRefresh = pRect ? *pRect : GetWindowRect();
+void CPWL_Wnd::InvalidateRect(CPDF_Rect* pRect) {
+  if (IsValid()) {
+    CPDF_Rect rcRefresh = pRect ? *pRect : GetWindowRect();
 
-        if (!HasFlag(PWS_NOREFRESHCLIP))
-        {
-            CPDF_Rect rcClip = GetClipRect();
-            if (!rcClip.IsEmpty())
-            {
-                rcRefresh.Intersect(rcClip);
-            }
-        }
-
-        FX_RECT rcWin = PWLtoWnd(rcRefresh);
-        rcWin.left -= PWL_INVALIDATE_INFLATE;
-        rcWin.top -= PWL_INVALIDATE_INFLATE;
-        rcWin.right += PWL_INVALIDATE_INFLATE;
-        rcWin.bottom += PWL_INVALIDATE_INFLATE;
-
-        if (IFX_SystemHandler* pSH = GetSystemHandler())
-        {
-            if (FX_HWND hWnd = GetAttachedHWnd())
-            {
-                pSH->InvalidateRect(hWnd, rcWin);
-            }
-        }
+    if (!HasFlag(PWS_NOREFRESHCLIP)) {
+      CPDF_Rect rcClip = GetClipRect();
+      if (!rcClip.IsEmpty()) {
+        rcRefresh.Intersect(rcClip);
+      }
     }
-}
 
-#define PWL_IMPLEMENT_KEY_METHOD(key_method_name)\
-FX_BOOL CPWL_Wnd::key_method_name(FX_WORD nChar, FX_DWORD nFlag)\
-{\
-    if (IsValid() && IsVisible() && IsEnabled())\
-    {\
-        if (IsWndCaptureKeyboard(this))\
-        {\
-            for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)\
-            {\
-                if (CPWL_Wnd * pChild = m_aChildren.GetAt(i))\
-                {\
-                    if (IsWndCaptureKeyboard(pChild))\
-                    {\
-                        return pChild->key_method_name(nChar,nFlag);\
-                    }\
-                }\
-            }\
-        }\
-    }\
-    return FALSE;\
-}
-
-#define PWL_IMPLEMENT_MOUSE_METHOD(mouse_method_name)\
-FX_BOOL CPWL_Wnd::mouse_method_name(const CPDF_Point & point, FX_DWORD nFlag)\
-{\
-    if (IsValid() && IsVisible() && IsEnabled())\
-    {\
-        if (IsWndCaptureMouse(this))\
-        {\
-            for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)\
-            {\
-                if (CPWL_Wnd * pChild = m_aChildren.GetAt(i))\
-                {\
-                    if (IsWndCaptureMouse(pChild))\
-                    {\
-                        return pChild->mouse_method_name(pChild->ParentToChild(point),nFlag);\
-                    }\
-                }\
-            }\
-            SetCursor();\
-        }\
-        else\
-        {\
-            for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)\
-            {\
-                if (CPWL_Wnd * pChild = m_aChildren.GetAt(i))\
-                {\
-                    if (pChild->WndHitTest(pChild->ParentToChild(point)))\
-                    {\
-                        return pChild->mouse_method_name(pChild->ParentToChild(point),nFlag);\
-                    }\
-                }\
-            }\
-            if (WndHitTest(point))\
-                SetCursor();\
-        }\
-    }\
-    return FALSE;\
-}
+    FX_RECT rcWin = PWLtoWnd(rcRefresh);
+    rcWin.left -= PWL_INVALIDATE_INFLATE;
+    rcWin.top -= PWL_INVALIDATE_INFLATE;
+    rcWin.right += PWL_INVALIDATE_INFLATE;
+    rcWin.bottom += PWL_INVALIDATE_INFLATE;
+
+    if (IFX_SystemHandler* pSH = GetSystemHandler()) {
+      if (FX_HWND hWnd = GetAttachedHWnd()) {
+        pSH->InvalidateRect(hWnd, rcWin);
+      }
+    }
+  }
+}
+
+#define PWL_IMPLEMENT_KEY_METHOD(key_method_name)                      \
+  FX_BOOL CPWL_Wnd::key_method_name(FX_WORD nChar, FX_DWORD nFlag) {   \
+    if (IsValid() && IsVisible() && IsEnabled()) {                     \
+      if (IsWndCaptureKeyboard(this)) {                                \
+        for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { \
+          if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {               \
+            if (IsWndCaptureKeyboard(pChild)) {                        \
+              return pChild->key_method_name(nChar, nFlag);            \
+            }                                                          \
+          }                                                            \
+        }                                                              \
+      }                                                                \
+    }                                                                  \
+    return FALSE;                                                      \
+  }
+
+#define PWL_IMPLEMENT_MOUSE_METHOD(mouse_method_name)                        \
+  FX_BOOL CPWL_Wnd::mouse_method_name(const CPDF_Point& point,               \
+                                      FX_DWORD nFlag) {                      \
+    if (IsValid() && IsVisible() && IsEnabled()) {                           \
+      if (IsWndCaptureMouse(this)) {                                         \
+        for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {       \
+          if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {                     \
+            if (IsWndCaptureMouse(pChild)) {                                 \
+              return pChild->mouse_method_name(pChild->ParentToChild(point), \
+                                               nFlag);                       \
+            }                                                                \
+          }                                                                  \
+        }                                                                    \
+        SetCursor();                                                         \
+      } else {                                                               \
+        for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {       \
+          if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {                     \
+            if (pChild->WndHitTest(pChild->ParentToChild(point))) {          \
+              return pChild->mouse_method_name(pChild->ParentToChild(point), \
+                                               nFlag);                       \
+            }                                                                \
+          }                                                                  \
+        }                                                                    \
+        if (WndHitTest(point))                                               \
+          SetCursor();                                                       \
+      }                                                                      \
+    }                                                                        \
+    return FALSE;                                                            \
+  }
 
 PWL_IMPLEMENT_KEY_METHOD(OnKeyDown)
 PWL_IMPLEMENT_KEY_METHOD(OnKeyUp)
@@ -568,726 +472,610 @@ PWL_IMPLEMENT_MOUSE_METHOD(OnRButtonDown)
 PWL_IMPLEMENT_MOUSE_METHOD(OnRButtonUp)
 PWL_IMPLEMENT_MOUSE_METHOD(OnMouseMove)
 
-FX_BOOL CPWL_Wnd::OnMouseWheel(short zDelta, const CPDF_Point & point, FX_DWORD nFlag)
-{
-    if (IsValid() && IsVisible() && IsEnabled())
-    {
-        SetCursor();
-        if (IsWndCaptureKeyboard(this))
-        {
-            for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-            {
-                if (CPWL_Wnd * pChild = m_aChildren.GetAt(i))
-                {
-                    if (IsWndCaptureKeyboard(pChild))
-                    {
-                        return pChild->OnMouseWheel(zDelta,pChild->ParentToChild(point), nFlag);
-                    }
-                }
-            }
+FX_BOOL CPWL_Wnd::OnMouseWheel(short zDelta,
+                               const CPDF_Point& point,
+                               FX_DWORD nFlag) {
+  if (IsValid() && IsVisible() && IsEnabled()) {
+    SetCursor();
+    if (IsWndCaptureKeyboard(this)) {
+      for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+        if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+          if (IsWndCaptureKeyboard(pChild)) {
+            return pChild->OnMouseWheel(zDelta, pChild->ParentToChild(point),
+                                        nFlag);
+          }
         }
+      }
     }
-    return FALSE;
+  }
+  return FALSE;
 }
 
-void CPWL_Wnd::AddChild(CPWL_Wnd * pWnd)
-{
-    m_aChildren.Add(pWnd);
+void CPWL_Wnd::AddChild(CPWL_Wnd* pWnd) {
+  m_aChildren.Add(pWnd);
 }
 
-void CPWL_Wnd::RemoveChild(CPWL_Wnd * pWnd)
-{
-    for (int32_t i = m_aChildren.GetSize()-1; i >= 0; i --)
-    {
-        if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-        {
-            if (pChild == pWnd)
-            {
-                m_aChildren.RemoveAt(i);
-                break;
-            }
-        }
+void CPWL_Wnd::RemoveChild(CPWL_Wnd* pWnd) {
+  for (int32_t i = m_aChildren.GetSize() - 1; i >= 0; i--) {
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+      if (pChild == pWnd) {
+        m_aChildren.RemoveAt(i);
+        break;
+      }
     }
+  }
 }
 
-void CPWL_Wnd::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intptr_t lParam)
-{
-    switch (msg)
-    {
+void CPWL_Wnd::OnNotify(CPWL_Wnd* pWnd,
+                        FX_DWORD msg,
+                        intptr_t wParam,
+                        intptr_t lParam) {
+  switch (msg) {
     case PNM_ADDCHILD:
-        AddChild(pWnd);
-        break;
+      AddChild(pWnd);
+      break;
     case PNM_REMOVECHILD:
-        RemoveChild(pWnd);
-        break;
+      RemoveChild(pWnd);
+      break;
     default:
-        break;
-    }
+      break;
+  }
 }
 
-FX_BOOL CPWL_Wnd::IsValid() const
-{
-    return m_bCreated;
+FX_BOOL CPWL_Wnd::IsValid() const {
+  return m_bCreated;
 }
 
-PWL_CREATEPARAM CPWL_Wnd::GetCreationParam() const
-{
-    return m_sPrivateParam;
+PWL_CREATEPARAM CPWL_Wnd::GetCreationParam() const {
+  return m_sPrivateParam;
 }
 
-CPWL_Wnd* CPWL_Wnd::GetParentWindow() const
-{
-    return m_sPrivateParam.pParentWnd;
+CPWL_Wnd* CPWL_Wnd::GetParentWindow() const {
+  return m_sPrivateParam.pParentWnd;
 }
 
-CPDF_Rect CPWL_Wnd::GetOriginWindowRect() const
-{
-    return m_sPrivateParam.rcRectWnd;
+CPDF_Rect CPWL_Wnd::GetOriginWindowRect() const {
+  return m_sPrivateParam.rcRectWnd;
 }
 
-CPDF_Rect CPWL_Wnd::GetWindowRect() const
-{
-    return m_rcWindow;
+CPDF_Rect CPWL_Wnd::GetWindowRect() const {
+  return m_rcWindow;
 }
 
-CPDF_Rect CPWL_Wnd::GetClientRect() const
-{
-    CPDF_Rect rcWindow = GetWindowRect();
-    CPDF_Rect rcClient = CPWL_Utils::DeflateRect(rcWindow,(FX_FLOAT)(GetBorderWidth()+GetInnerBorderWidth()));
-    if (CPWL_ScrollBar* pVSB = GetVScrollBar())
-        rcClient.right -= pVSB->GetScrollBarWidth();
+CPDF_Rect CPWL_Wnd::GetClientRect() const {
+  CPDF_Rect rcWindow = GetWindowRect();
+  CPDF_Rect rcClient = CPWL_Utils::DeflateRect(
+      rcWindow, (FX_FLOAT)(GetBorderWidth() + GetInnerBorderWidth()));
+  if (CPWL_ScrollBar* pVSB = GetVScrollBar())
+    rcClient.right -= pVSB->GetScrollBarWidth();
 
-    rcClient.Normalize();
-    return rcWindow.Contains(rcClient) ? rcClient : CPDF_Rect();
+  rcClient.Normalize();
+  return rcWindow.Contains(rcClient) ? rcClient : CPDF_Rect();
 }
 
-CPDF_Point CPWL_Wnd::GetCenterPoint() const
-{
-    CPDF_Rect rcClient = GetClientRect();
-    return CPDF_Point((rcClient.left + rcClient.right) * 0.5f,
-                      (rcClient.top + rcClient.bottom) * 0.5f);
+CPDF_Point CPWL_Wnd::GetCenterPoint() const {
+  CPDF_Rect rcClient = GetClientRect();
+  return CPDF_Point((rcClient.left + rcClient.right) * 0.5f,
+                    (rcClient.top + rcClient.bottom) * 0.5f);
 }
 
-CPDF_Rect CPWL_Wnd::GetClientCenterSquare() const
-{
-    return CPWL_Utils::GetCenterSquare(GetClientRect());
+CPDF_Rect CPWL_Wnd::GetClientCenterSquare() const {
+  return CPWL_Utils::GetCenterSquare(GetClientRect());
 }
 
-CPDF_Rect CPWL_Wnd::GetWindowCenterSquare() const
-{
-    return CPWL_Utils::GetCenterSquare(CPWL_Utils::DeflateRect(GetWindowRect(),0.1f));
+CPDF_Rect CPWL_Wnd::GetWindowCenterSquare() const {
+  return CPWL_Utils::GetCenterSquare(
+      CPWL_Utils::DeflateRect(GetWindowRect(), 0.1f));
 }
 
-FX_BOOL CPWL_Wnd::HasFlag(FX_DWORD dwFlags) const
-{
-    return (m_sPrivateParam.dwFlags & dwFlags) != 0;
+FX_BOOL CPWL_Wnd::HasFlag(FX_DWORD dwFlags) const {
+  return (m_sPrivateParam.dwFlags & dwFlags) != 0;
 }
 
-void CPWL_Wnd::RemoveFlag(FX_DWORD dwFlags)
-{
-    m_sPrivateParam.dwFlags &= ~dwFlags;
+void CPWL_Wnd::RemoveFlag(FX_DWORD dwFlags) {
+  m_sPrivateParam.dwFlags &= ~dwFlags;
 }
 
-void CPWL_Wnd::AddFlag(FX_DWORD dwFlags)
-{
-    m_sPrivateParam.dwFlags |= dwFlags;
+void CPWL_Wnd::AddFlag(FX_DWORD dwFlags) {
+  m_sPrivateParam.dwFlags |= dwFlags;
 }
 
-CPWL_Color CPWL_Wnd::GetBackgroundColor() const
-{
-    return m_sPrivateParam.sBackgroundColor;
+CPWL_Color CPWL_Wnd::GetBackgroundColor() const {
+  return m_sPrivateParam.sBackgroundColor;
 }
 
-void CPWL_Wnd::SetBackgroundColor(const CPWL_Color & color)
-{
-    m_sPrivateParam.sBackgroundColor = color;
+void CPWL_Wnd::SetBackgroundColor(const CPWL_Color& color) {
+  m_sPrivateParam.sBackgroundColor = color;
 }
 
-void CPWL_Wnd::SetTextColor(const CPWL_Color & color)
-{
-    m_sPrivateParam.sTextColor = color;
+void CPWL_Wnd::SetTextColor(const CPWL_Color& color) {
+  m_sPrivateParam.sTextColor = color;
 }
 
-void CPWL_Wnd::SetTextStrokeColor(const CPWL_Color & color)
-{
-    m_sPrivateParam.sTextStrokeColor = color;
+void CPWL_Wnd::SetTextStrokeColor(const CPWL_Color& color) {
+  m_sPrivateParam.sTextStrokeColor = color;
 }
 
-CPWL_Color CPWL_Wnd::GetTextColor() const
-{
-    return m_sPrivateParam.sTextColor;
+CPWL_Color CPWL_Wnd::GetTextColor() const {
+  return m_sPrivateParam.sTextColor;
 }
 
-CPWL_Color CPWL_Wnd::GetTextStrokeColor() const
-{
-    return m_sPrivateParam.sTextStrokeColor;
+CPWL_Color CPWL_Wnd::GetTextStrokeColor() const {
+  return m_sPrivateParam.sTextStrokeColor;
 }
 
-int32_t CPWL_Wnd::GetBorderStyle() const
-{
-    return m_sPrivateParam.nBorderStyle;
+int32_t CPWL_Wnd::GetBorderStyle() const {
+  return m_sPrivateParam.nBorderStyle;
 }
 
-void CPWL_Wnd::SetBorderStyle(int32_t nBorderStyle)
-{
-    if (HasFlag(PWS_BORDER))
-        m_sPrivateParam.nBorderStyle = nBorderStyle;
+void CPWL_Wnd::SetBorderStyle(int32_t nBorderStyle) {
+  if (HasFlag(PWS_BORDER))
+    m_sPrivateParam.nBorderStyle = nBorderStyle;
 }
 
-int32_t CPWL_Wnd::GetBorderWidth() const
-{
-    if (HasFlag(PWS_BORDER))
-        return m_sPrivateParam.dwBorderWidth;
+int32_t CPWL_Wnd::GetBorderWidth() const {
+  if (HasFlag(PWS_BORDER))
+    return m_sPrivateParam.dwBorderWidth;
 
-    return 0;
+  return 0;
 }
 
-int32_t CPWL_Wnd::GetInnerBorderWidth() const
-{
-    /*
-    switch (GetBorderStyle())
-    {
-    case PBS_BEVELED:
-    case PBS_INSET:
-        return GetBorderWidth() / 2;
-    }
-    */
-    return 0;
+int32_t CPWL_Wnd::GetInnerBorderWidth() const {
+  /*
+  switch (GetBorderStyle())
+  {
+  case PBS_BEVELED:
+  case PBS_INSET:
+      return GetBorderWidth() / 2;
+  }
+  */
+  return 0;
 }
 
-void CPWL_Wnd::SetBorderWidth(int32_t nBorderWidth)
-{
-    if (HasFlag(PWS_BORDER))
-        m_sPrivateParam.dwBorderWidth = nBorderWidth;
+void CPWL_Wnd::SetBorderWidth(int32_t nBorderWidth) {
+  if (HasFlag(PWS_BORDER))
+    m_sPrivateParam.dwBorderWidth = nBorderWidth;
 }
 
-CPWL_Color CPWL_Wnd::GetBorderColor() const
-{
-    if (HasFlag(PWS_BORDER))
-        return m_sPrivateParam.sBorderColor;
+CPWL_Color CPWL_Wnd::GetBorderColor() const {
+  if (HasFlag(PWS_BORDER))
+    return m_sPrivateParam.sBorderColor;
 
-    return CPWL_Color();
+  return CPWL_Color();
 }
 
-void CPWL_Wnd::SetBorderColor(const CPWL_Color & color)
-{
-    if (HasFlag(PWS_BORDER))
-        m_sPrivateParam.sBorderColor = color;
+void CPWL_Wnd::SetBorderColor(const CPWL_Color& color) {
+  if (HasFlag(PWS_BORDER))
+    m_sPrivateParam.sBorderColor = color;
 }
 
-CPWL_Dash CPWL_Wnd::GetBorderDash() const
-{
-    return m_sPrivateParam.sDash;
+CPWL_Dash CPWL_Wnd::GetBorderDash() const {
+  return m_sPrivateParam.sDash;
 }
 
-void* CPWL_Wnd::GetAttachedData() const
-{
-    return m_sPrivateParam.pAttachedData;
+void* CPWL_Wnd::GetAttachedData() const {
+  return m_sPrivateParam.pAttachedData;
 }
 
-void CPWL_Wnd::SetBorderDash(const CPWL_Dash & sDash)
-{
-    if (HasFlag(PWS_BORDER))
-        m_sPrivateParam.sDash = sDash;
+void CPWL_Wnd::SetBorderDash(const CPWL_Dash& sDash) {
+  if (HasFlag(PWS_BORDER))
+    m_sPrivateParam.sDash = sDash;
 }
 
-CPWL_ScrollBar* CPWL_Wnd::GetVScrollBar() const
-{
-    if (HasFlag(PWS_VSCROLL))
-        return m_pVScrollBar;
+CPWL_ScrollBar* CPWL_Wnd::GetVScrollBar() const {
+  if (HasFlag(PWS_VSCROLL))
+    return m_pVScrollBar;
 
-    return NULL;
+  return NULL;
 }
 
-void CPWL_Wnd::CreateScrollBar(const PWL_CREATEPARAM & cp)
-{
-    CreateVScrollBar(cp);
+void CPWL_Wnd::CreateScrollBar(const PWL_CREATEPARAM& cp) {
+  CreateVScrollBar(cp);
 }
 
-void CPWL_Wnd::CreateVScrollBar(const PWL_CREATEPARAM & cp)
-{
-    if (!m_pVScrollBar && HasFlag(PWS_VSCROLL))
-    {
-        PWL_CREATEPARAM scp = cp;
+void CPWL_Wnd::CreateVScrollBar(const PWL_CREATEPARAM& cp) {
+  if (!m_pVScrollBar && HasFlag(PWS_VSCROLL)) {
+    PWL_CREATEPARAM scp = cp;
 
-        //flags
-        scp.dwFlags = PWS_CHILD| PWS_BACKGROUND | PWS_AUTOTRANSPARENT | PWS_NOREFRESHCLIP;
+    // flags
+    scp.dwFlags =
+        PWS_CHILD | PWS_BACKGROUND | PWS_AUTOTRANSPARENT | PWS_NOREFRESHCLIP;
 
-        scp.pParentWnd = this;
-        scp.sBackgroundColor = PWL_DEFAULT_WHITECOLOR;
-        scp.eCursorType = FXCT_ARROW;
-        scp.nTransparency = PWL_SCROLLBAR_TRANSPARANCY;
+    scp.pParentWnd = this;
+    scp.sBackgroundColor = PWL_DEFAULT_WHITECOLOR;
+    scp.eCursorType = FXCT_ARROW;
+    scp.nTransparency = PWL_SCROLLBAR_TRANSPARANCY;
 
-        if ((m_pVScrollBar = new CPWL_ScrollBar(SBT_VSCROLL)))
-            m_pVScrollBar->Create(scp);
-    }
+    if ((m_pVScrollBar = new CPWL_ScrollBar(SBT_VSCROLL)))
+      m_pVScrollBar->Create(scp);
+  }
 }
 
-void CPWL_Wnd::SetCapture()
-{
-    if (CPWL_MsgControl * pMsgCtrl = GetMsgControl())
-        pMsgCtrl->SetCapture(this);
+void CPWL_Wnd::SetCapture() {
+  if (CPWL_MsgControl* pMsgCtrl = GetMsgControl())
+    pMsgCtrl->SetCapture(this);
 }
 
-void CPWL_Wnd::ReleaseCapture()
-{
-    for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-        if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-            pChild->ReleaseCapture();
+void CPWL_Wnd::ReleaseCapture() {
+  for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++)
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
+      pChild->ReleaseCapture();
 
-    if (CPWL_MsgControl * pMsgCtrl = GetMsgControl())
-        pMsgCtrl->ReleaseCapture();
+  if (CPWL_MsgControl* pMsgCtrl = GetMsgControl())
+    pMsgCtrl->ReleaseCapture();
 }
 
-void CPWL_Wnd::SetFocus()
-{
-    if (CPWL_MsgControl * pMsgCtrl = GetMsgControl())
-    {
-        if (!pMsgCtrl->IsMainCaptureKeyboard(this))
-            pMsgCtrl->KillFocus();
-        pMsgCtrl->SetFocus(this);
-    }
+void CPWL_Wnd::SetFocus() {
+  if (CPWL_MsgControl* pMsgCtrl = GetMsgControl()) {
+    if (!pMsgCtrl->IsMainCaptureKeyboard(this))
+      pMsgCtrl->KillFocus();
+    pMsgCtrl->SetFocus(this);
+  }
 }
 
-void CPWL_Wnd::KillFocus()
-{
-    if (CPWL_MsgControl * pMsgCtrl = GetMsgControl())
-    {
-        if (pMsgCtrl->IsWndCaptureKeyboard(this))
-            pMsgCtrl->KillFocus();
-    }
+void CPWL_Wnd::KillFocus() {
+  if (CPWL_MsgControl* pMsgCtrl = GetMsgControl()) {
+    if (pMsgCtrl->IsWndCaptureKeyboard(this))
+      pMsgCtrl->KillFocus();
+  }
 }
 
-void CPWL_Wnd::OnSetFocus()
-{
-}
+void CPWL_Wnd::OnSetFocus() {}
 
-void CPWL_Wnd::OnKillFocus()
-{
-}
+void CPWL_Wnd::OnKillFocus() {}
 
-FX_BOOL CPWL_Wnd::WndHitTest(const CPDF_Point & point) const
-{
-    return IsValid() && IsVisible() && GetWindowRect().Contains(point.x,point.y);
+FX_BOOL CPWL_Wnd::WndHitTest(const CPDF_Point& point) const {
+  return IsValid() && IsVisible() && GetWindowRect().Contains(point.x, point.y);
 }
 
-FX_BOOL CPWL_Wnd::ClientHitTest(const CPDF_Point & point) const
-{
-    return IsValid() && IsVisible() && GetClientRect().Contains(point.x,point.y);
+FX_BOOL CPWL_Wnd::ClientHitTest(const CPDF_Point& point) const {
+  return IsValid() && IsVisible() && GetClientRect().Contains(point.x, point.y);
 }
 
-const CPWL_Wnd* CPWL_Wnd::GetRootWnd() const
-{
-    if (m_sPrivateParam.pParentWnd)
-        return m_sPrivateParam.pParentWnd->GetRootWnd();
+const CPWL_Wnd* CPWL_Wnd::GetRootWnd() const {
+  if (m_sPrivateParam.pParentWnd)
+    return m_sPrivateParam.pParentWnd->GetRootWnd();
 
-    return this;
+  return this;
 }
 
-void CPWL_Wnd::SetVisible(FX_BOOL bVisible)
-{
-    if (IsValid())
-    {
-        for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-        {
-            if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-            {
-                pChild->SetVisible(bVisible);
-            }
-        }
+void CPWL_Wnd::SetVisible(FX_BOOL bVisible) {
+  if (IsValid()) {
+    for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+      if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+        pChild->SetVisible(bVisible);
+      }
+    }
 
-        if (bVisible != m_bVisible)
-        {
-            m_bVisible = bVisible;
-            RePosChildWnd();
-            InvalidateRect();
-        }
+    if (bVisible != m_bVisible) {
+      m_bVisible = bVisible;
+      RePosChildWnd();
+      InvalidateRect();
     }
+  }
 }
 
-void CPWL_Wnd::SetClipRect(const CPDF_Rect & rect)
-{
-    m_rcClip = rect;
-    m_rcClip.Normalize();
+void CPWL_Wnd::SetClipRect(const CPDF_Rect& rect) {
+  m_rcClip = rect;
+  m_rcClip.Normalize();
 }
 
-CPDF_Rect CPWL_Wnd::GetClipRect() const
-{
-    return m_rcClip;
+CPDF_Rect CPWL_Wnd::GetClipRect() const {
+  return m_rcClip;
 }
 
-FX_BOOL CPWL_Wnd::IsReadOnly() const
-{
-    return HasFlag(PWS_READONLY);
+FX_BOOL CPWL_Wnd::IsReadOnly() const {
+  return HasFlag(PWS_READONLY);
 }
 
-void CPWL_Wnd::RePosChildWnd()
-{
-    CPDF_Rect rcContent = CPWL_Utils::DeflateRect(GetWindowRect(),(FX_FLOAT)(GetBorderWidth()+GetInnerBorderWidth()));
+void CPWL_Wnd::RePosChildWnd() {
+  CPDF_Rect rcContent = CPWL_Utils::DeflateRect(
+      GetWindowRect(), (FX_FLOAT)(GetBorderWidth() + GetInnerBorderWidth()));
 
-    CPWL_ScrollBar * pVSB = GetVScrollBar();
+  CPWL_ScrollBar* pVSB = GetVScrollBar();
 
-    CPDF_Rect rcVScroll = CPDF_Rect(rcContent.right - PWL_SCROLLBAR_WIDTH,
-                            rcContent.bottom,
-                            rcContent.right-1.0f,
-                            rcContent.top);
+  CPDF_Rect rcVScroll =
+      CPDF_Rect(rcContent.right - PWL_SCROLLBAR_WIDTH, rcContent.bottom,
+                rcContent.right - 1.0f, rcContent.top);
 
-    if (pVSB) pVSB->Move(rcVScroll,TRUE,FALSE);
+  if (pVSB)
+    pVSB->Move(rcVScroll, TRUE, FALSE);
 }
 
-void CPWL_Wnd::CreateChildWnd(const PWL_CREATEPARAM & cp)
-{
-}
+void CPWL_Wnd::CreateChildWnd(const PWL_CREATEPARAM& cp) {}
 
-void CPWL_Wnd::SetCursor()
-{
-    if (IsValid())
-    {
-        if (IFX_SystemHandler* pSH = GetSystemHandler())
-        {
-            int32_t nCursorType = GetCreationParam().eCursorType;
-            pSH->SetCursor(nCursorType);
-        }
+void CPWL_Wnd::SetCursor() {
+  if (IsValid()) {
+    if (IFX_SystemHandler* pSH = GetSystemHandler()) {
+      int32_t nCursorType = GetCreationParam().eCursorType;
+      pSH->SetCursor(nCursorType);
     }
+  }
 }
 
-void CPWL_Wnd::CreateMsgControl()
-{
-    if (!m_sPrivateParam.pMsgControl)
-        m_sPrivateParam.pMsgControl = new CPWL_MsgControl(this);
+void CPWL_Wnd::CreateMsgControl() {
+  if (!m_sPrivateParam.pMsgControl)
+    m_sPrivateParam.pMsgControl = new CPWL_MsgControl(this);
 }
 
-void CPWL_Wnd::DestroyMsgControl()
-{
-    if (CPWL_MsgControl* pMsgControl = GetMsgControl())
-        if (pMsgControl->IsWndCreated(this))
-            delete pMsgControl;
+void CPWL_Wnd::DestroyMsgControl() {
+  if (CPWL_MsgControl* pMsgControl = GetMsgControl())
+    if (pMsgControl->IsWndCreated(this))
+      delete pMsgControl;
 }
 
-CPWL_MsgControl* CPWL_Wnd::GetMsgControl() const
-{
-    return m_sPrivateParam.pMsgControl;
+CPWL_MsgControl* CPWL_Wnd::GetMsgControl() const {
+  return m_sPrivateParam.pMsgControl;
 }
 
-FX_BOOL CPWL_Wnd::IsCaptureMouse() const
-{
-    return IsWndCaptureMouse(this);
+FX_BOOL CPWL_Wnd::IsCaptureMouse() const {
+  return IsWndCaptureMouse(this);
 }
 
-FX_BOOL CPWL_Wnd::IsWndCaptureMouse(const CPWL_Wnd * pWnd) const
-{
-    if (CPWL_MsgControl * pCtrl = GetMsgControl())
-        return pCtrl->IsWndCaptureMouse(pWnd);
+FX_BOOL CPWL_Wnd::IsWndCaptureMouse(const CPWL_Wnd* pWnd) const {
+  if (CPWL_MsgControl* pCtrl = GetMsgControl())
+    return pCtrl->IsWndCaptureMouse(pWnd);
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPWL_Wnd::IsWndCaptureKeyboard(const CPWL_Wnd * pWnd) const
-{
-    if (CPWL_MsgControl * pCtrl = GetMsgControl())
-        return pCtrl->IsWndCaptureKeyboard(pWnd);
+FX_BOOL CPWL_Wnd::IsWndCaptureKeyboard(const CPWL_Wnd* pWnd) const {
+  if (CPWL_MsgControl* pCtrl = GetMsgControl())
+    return pCtrl->IsWndCaptureKeyboard(pWnd);
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPWL_Wnd::IsFocused() const
-{
-    if (CPWL_MsgControl * pCtrl = GetMsgControl())
-        return pCtrl->IsMainCaptureKeyboard(this);
+FX_BOOL CPWL_Wnd::IsFocused() const {
+  if (CPWL_MsgControl* pCtrl = GetMsgControl())
+    return pCtrl->IsMainCaptureKeyboard(this);
 
-    return FALSE;
+  return FALSE;
 }
 
-CPDF_Rect CPWL_Wnd::GetFocusRect() const
-{
-    return CPWL_Utils::InflateRect(GetWindowRect(),1);
+CPDF_Rect CPWL_Wnd::GetFocusRect() const {
+  return CPWL_Utils::InflateRect(GetWindowRect(), 1);
 }
 
-FX_FLOAT CPWL_Wnd::GetFontSize() const
-{
-    return m_sPrivateParam.fFontSize;
+FX_FLOAT CPWL_Wnd::GetFontSize() const {
+  return m_sPrivateParam.fFontSize;
 }
 
-void CPWL_Wnd::SetFontSize(FX_FLOAT fFontSize)
-{
-    m_sPrivateParam.fFontSize = fFontSize;
+void CPWL_Wnd::SetFontSize(FX_FLOAT fFontSize) {
+  m_sPrivateParam.fFontSize = fFontSize;
 }
 
-IFX_SystemHandler* CPWL_Wnd::GetSystemHandler() const
-{
-    return m_sPrivateParam.pSystemHandler;
+IFX_SystemHandler* CPWL_Wnd::GetSystemHandler() const {
+  return m_sPrivateParam.pSystemHandler;
 }
 
-IPWL_FocusHandler* CPWL_Wnd::GetFocusHandler() const
-{
-    return m_sPrivateParam.pFocusHandler;
+IPWL_FocusHandler* CPWL_Wnd::GetFocusHandler() const {
+  return m_sPrivateParam.pFocusHandler;
 }
 
-IPWL_Provider* CPWL_Wnd::GetProvider() const
-{
-    return m_sPrivateParam.pProvider;
+IPWL_Provider* CPWL_Wnd::GetProvider() const {
+  return m_sPrivateParam.pProvider;
 }
 
-IFX_Edit_FontMap* CPWL_Wnd::GetFontMap() const
-{
-    return m_sPrivateParam.pFontMap;
+IFX_Edit_FontMap* CPWL_Wnd::GetFontMap() const {
+  return m_sPrivateParam.pFontMap;
 }
 
-CPWL_Color CPWL_Wnd::GetBorderLeftTopColor(int32_t nBorderStyle) const
-{
-    CPWL_Color color;
+CPWL_Color CPWL_Wnd::GetBorderLeftTopColor(int32_t nBorderStyle) const {
+  CPWL_Color color;
 
-    switch (nBorderStyle)
-    {
-        case PBS_SOLID:
-            break;
-        case PBS_DASH:
-            break;
-        case PBS_BEVELED:
-            color = CPWL_Color(COLORTYPE_GRAY,1);
-            break;
-        case PBS_INSET:
-            color = CPWL_Color(COLORTYPE_GRAY,0.5f);
-            break;
-        case PBS_UNDERLINED:
-            break;
-    }
+  switch (nBorderStyle) {
+    case PBS_SOLID:
+      break;
+    case PBS_DASH:
+      break;
+    case PBS_BEVELED:
+      color = CPWL_Color(COLORTYPE_GRAY, 1);
+      break;
+    case PBS_INSET:
+      color = CPWL_Color(COLORTYPE_GRAY, 0.5f);
+      break;
+    case PBS_UNDERLINED:
+      break;
+  }
 
-    return color;
-}
-
-CPWL_Color CPWL_Wnd::GetBorderRightBottomColor(int32_t nBorderStyle) const
-{
-    CPWL_Color color;
-
-    switch (nBorderStyle)
-    {
-        case PBS_SOLID:
-            break;
-        case PBS_DASH:
-            break;
-        case PBS_BEVELED:
-            color = CPWL_Utils::DevideColor(GetBackgroundColor(),2);
-            break;
-        case PBS_INSET:
-            color = CPWL_Color(COLORTYPE_GRAY,0.75f);
-            break;
-        case PBS_UNDERLINED:
-            break;
-    }
+  return color;
+}
+
+CPWL_Color CPWL_Wnd::GetBorderRightBottomColor(int32_t nBorderStyle) const {
+  CPWL_Color color;
 
-    return color;
+  switch (nBorderStyle) {
+    case PBS_SOLID:
+      break;
+    case PBS_DASH:
+      break;
+    case PBS_BEVELED:
+      color = CPWL_Utils::DevideColor(GetBackgroundColor(), 2);
+      break;
+    case PBS_INSET:
+      color = CPWL_Color(COLORTYPE_GRAY, 0.75f);
+      break;
+    case PBS_UNDERLINED:
+      break;
+  }
+
+  return color;
 }
 
 /* ----------------------------------------------------------------- */
 
-int32_t CPWL_Wnd::GetTransparency()
-{
-    return m_sPrivateParam.nTransparency;
+int32_t CPWL_Wnd::GetTransparency() {
+  return m_sPrivateParam.nTransparency;
 }
 
-void CPWL_Wnd::SetTransparency(int32_t nTransparency)
-{
-    for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-    {
-        if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-        {
-            pChild->SetTransparency(nTransparency);
-        }
+void CPWL_Wnd::SetTransparency(int32_t nTransparency) {
+  for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+    if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+      pChild->SetTransparency(nTransparency);
     }
+  }
 
-    m_sPrivateParam.nTransparency = nTransparency;
+  m_sPrivateParam.nTransparency = nTransparency;
 }
 
-CPDF_Matrix CPWL_Wnd::GetWindowMatrix() const
-{
-    CPDF_Matrix mt = GetChildToRoot();
-
-    if (IPWL_Provider* pProvider = GetProvider())
-    {
-        mt.Concat(pProvider->GetWindowMatrix(GetAttachedData()));
-        return mt;
-    }
+CPDF_Matrix CPWL_Wnd::GetWindowMatrix() const {
+  CPDF_Matrix mt = GetChildToRoot();
 
+  if (IPWL_Provider* pProvider = GetProvider()) {
+    mt.Concat(pProvider->GetWindowMatrix(GetAttachedData()));
     return mt;
+  }
+
+  return mt;
 }
 
-void CPWL_Wnd::PWLtoWnd(const CPDF_Point& point, int32_t& x, int32_t& y) const
-{
-    CPDF_Matrix mt = GetWindowMatrix();
-    CPDF_Point pt = point;
-    mt.Transform(pt.x,pt.y);
-    x = (int32_t)(pt.x+0.5);
-    y = (int32_t)(pt.y+0.5);
+void CPWL_Wnd::PWLtoWnd(const CPDF_Point& point, int32_t& x, int32_t& y) const {
+  CPDF_Matrix mt = GetWindowMatrix();
+  CPDF_Point pt = point;
+  mt.Transform(pt.x, pt.y);
+  x = (int32_t)(pt.x + 0.5);
+  y = (int32_t)(pt.y + 0.5);
 }
 
-FX_RECT CPWL_Wnd::PWLtoWnd(const CPDF_Rect & rect) const
-{
-    CPDF_Rect rcTemp = rect;
-    CPDF_Matrix mt = GetWindowMatrix();
-    mt.TransformRect(rcTemp);
-    return FX_RECT((int32_t)(rcTemp.left+0.5), (int32_t)(rcTemp.bottom+0.5), (int32_t)(rcTemp.right+0.5), (int32_t)(rcTemp.top+0.5));
+FX_RECT CPWL_Wnd::PWLtoWnd(const CPDF_Rect& rect) const {
+  CPDF_Rect rcTemp = rect;
+  CPDF_Matrix mt = GetWindowMatrix();
+  mt.TransformRect(rcTemp);
+  return FX_RECT((int32_t)(rcTemp.left + 0.5), (int32_t)(rcTemp.bottom + 0.5),
+                 (int32_t)(rcTemp.right + 0.5), (int32_t)(rcTemp.top + 0.5));
 }
 
-FX_HWND CPWL_Wnd::GetAttachedHWnd() const
-{
-    return m_sPrivateParam.hAttachedWnd;
+FX_HWND CPWL_Wnd::GetAttachedHWnd() const {
+  return m_sPrivateParam.hAttachedWnd;
 }
 
-CPDF_Point CPWL_Wnd::ChildToParent(const CPDF_Point& point) const
-{
-    CPDF_Matrix mt = GetChildMatrix();
-    if (mt.IsIdentity())
-        return point;
+CPDF_Point CPWL_Wnd::ChildToParent(const CPDF_Point& point) const {
+  CPDF_Matrix mt = GetChildMatrix();
+  if (mt.IsIdentity())
+    return point;
 
-    CPDF_Point pt = point;
-    mt.Transform(pt.x,pt.y);
-    return pt;
+  CPDF_Point pt = point;
+  mt.Transform(pt.x, pt.y);
+  return pt;
 }
 
-CPDF_Rect CPWL_Wnd::ChildToParent(const CPDF_Rect& rect) const
-{
-    CPDF_Matrix mt = GetChildMatrix();
-    if (mt.IsIdentity())
-        return rect;
+CPDF_Rect CPWL_Wnd::ChildToParent(const CPDF_Rect& rect) const {
+  CPDF_Matrix mt = GetChildMatrix();
+  if (mt.IsIdentity())
+    return rect;
 
-    CPDF_Rect rc = rect;
-    mt.TransformRect(rc);
-    return rc;
+  CPDF_Rect rc = rect;
+  mt.TransformRect(rc);
+  return rc;
 }
 
-CPDF_Point CPWL_Wnd::ParentToChild(const CPDF_Point& point) const
-{
-    CPDF_Matrix mt = GetChildMatrix();
-    if (mt.IsIdentity())
-        return point;
+CPDF_Point CPWL_Wnd::ParentToChild(const CPDF_Point& point) const {
+  CPDF_Matrix mt = GetChildMatrix();
+  if (mt.IsIdentity())
+    return point;
 
-    mt.SetReverse(mt);
-    CPDF_Point pt = point;
-    mt.Transform(pt.x,pt.y);
-    return pt;
+  mt.SetReverse(mt);
+  CPDF_Point pt = point;
+  mt.Transform(pt.x, pt.y);
+  return pt;
 }
 
-CPDF_Rect CPWL_Wnd::ParentToChild(const CPDF_Rect& rect) const
-{
-    CPDF_Matrix mt = GetChildMatrix();
-    if (mt.IsIdentity())
-        return rect;
+CPDF_Rect CPWL_Wnd::ParentToChild(const CPDF_Rect& rect) const {
+  CPDF_Matrix mt = GetChildMatrix();
+  if (mt.IsIdentity())
+    return rect;
 
-    mt.SetReverse(mt);
-    CPDF_Rect rc = rect;
-    mt.TransformRect(rc);
-    return rc;
+  mt.SetReverse(mt);
+  CPDF_Rect rc = rect;
+  mt.TransformRect(rc);
+  return rc;
 }
 
-CPDF_Matrix CPWL_Wnd::GetChildToRoot() const
-{
-    CPDF_Matrix mt(1, 0, 0, 1, 0, 0);
-    if (HasFlag(PWS_CHILD))
-    {
-        const CPWL_Wnd* pParent = this;
-        while (pParent)
-        {
-            mt.Concat(pParent->GetChildMatrix());
-            pParent = pParent->GetParentWindow();
-        }
+CPDF_Matrix CPWL_Wnd::GetChildToRoot() const {
+  CPDF_Matrix mt(1, 0, 0, 1, 0, 0);
+  if (HasFlag(PWS_CHILD)) {
+    const CPWL_Wnd* pParent = this;
+    while (pParent) {
+      mt.Concat(pParent->GetChildMatrix());
+      pParent = pParent->GetParentWindow();
     }
-    return mt;
+  }
+  return mt;
 }
 
-CPDF_Matrix CPWL_Wnd::GetChildMatrix() const
-{
-    if (HasFlag(PWS_CHILD))
-        return m_sPrivateParam.mtChild;
+CPDF_Matrix CPWL_Wnd::GetChildMatrix() const {
+  if (HasFlag(PWS_CHILD))
+    return m_sPrivateParam.mtChild;
 
-    return CPDF_Matrix(1,0,0,1,0,0);
+  return CPDF_Matrix(1, 0, 0, 1, 0, 0);
 }
 
-void CPWL_Wnd::SetChildMatrix(const CPDF_Matrix& mt)
-{
-    m_sPrivateParam.mtChild = mt;
+void CPWL_Wnd::SetChildMatrix(const CPDF_Matrix& mt) {
+  m_sPrivateParam.mtChild = mt;
 }
 
-const CPWL_Wnd* CPWL_Wnd::GetFocused() const
-{
-    if (CPWL_MsgControl * pMsgCtrl = GetMsgControl())
-    {
-        return pMsgCtrl->m_pMainKeyboardWnd;
-    }
+const CPWL_Wnd* CPWL_Wnd::GetFocused() const {
+  if (CPWL_MsgControl* pMsgCtrl = GetMsgControl()) {
+    return pMsgCtrl->m_pMainKeyboardWnd;
+  }
 
-    return NULL;
+  return NULL;
 }
 
-void CPWL_Wnd::EnableWindow(FX_BOOL bEnable)
-{
-    if (m_bEnabled != bEnable)
-    {
-        for (int32_t i=0,sz=m_aChildren.GetSize(); i<sz; i++)
-        {
-            if (CPWL_Wnd* pChild = m_aChildren.GetAt(i))
-            {
-                pChild->EnableWindow(bEnable);
-            }
-        }
+void CPWL_Wnd::EnableWindow(FX_BOOL bEnable) {
+  if (m_bEnabled != bEnable) {
+    for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
+      if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
+        pChild->EnableWindow(bEnable);
+      }
+    }
 
-        m_bEnabled = bEnable;
+    m_bEnabled = bEnable;
 
-        if (bEnable)
-            OnEnabled();
-        else
-            OnDisabled();
-    }
+    if (bEnable)
+      OnEnabled();
+    else
+      OnDisabled();
+  }
 }
 
-FX_BOOL CPWL_Wnd::IsEnabled()
-{
-    return m_bEnabled;
+FX_BOOL CPWL_Wnd::IsEnabled() {
+  return m_bEnabled;
 }
 
-void CPWL_Wnd::OnEnabled()
-{
-}
+void CPWL_Wnd::OnEnabled() {}
 
-void CPWL_Wnd::OnDisabled()
-{
-}
+void CPWL_Wnd::OnDisabled() {}
 
-FX_BOOL CPWL_Wnd::IsCTRLpressed(FX_DWORD nFlag) const
-{
-    if (IFX_SystemHandler* pSystemHandler = GetSystemHandler())
-    {
-        return pSystemHandler->IsCTRLKeyDown(nFlag);
-    }
+FX_BOOL CPWL_Wnd::IsCTRLpressed(FX_DWORD nFlag) const {
+  if (IFX_SystemHandler* pSystemHandler = GetSystemHandler()) {
+    return pSystemHandler->IsCTRLKeyDown(nFlag);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPWL_Wnd::IsSHIFTpressed(FX_DWORD nFlag) const
-{
-    if (IFX_SystemHandler* pSystemHandler = GetSystemHandler())
-    {
-        return pSystemHandler->IsSHIFTKeyDown(nFlag);
-    }
+FX_BOOL CPWL_Wnd::IsSHIFTpressed(FX_DWORD nFlag) const {
+  if (IFX_SystemHandler* pSystemHandler = GetSystemHandler()) {
+    return pSystemHandler->IsSHIFTKeyDown(nFlag);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPWL_Wnd::IsALTpressed(FX_DWORD nFlag) const
-{
-    if (IFX_SystemHandler* pSystemHandler = GetSystemHandler())
-    {
-        return pSystemHandler->IsALTKeyDown(nFlag);
-    }
+FX_BOOL CPWL_Wnd::IsALTpressed(FX_DWORD nFlag) const {
+  if (IFX_SystemHandler* pSystemHandler = GetSystemHandler()) {
+    return pSystemHandler->IsALTKeyDown(nFlag);
+  }
 
-    return FALSE;
+  return FALSE;
 }
 
-FX_BOOL CPWL_Wnd::IsINSERTpressed(FX_DWORD nFlag) const
-{
-    if (IFX_SystemHandler* pSystemHandler = GetSystemHandler())
-    {
-        return pSystemHandler->IsINSERTKeyDown(nFlag);
-    }
+FX_BOOL CPWL_Wnd::IsINSERTpressed(FX_DWORD nFlag) const {
+  if (IFX_SystemHandler* pSystemHandler = GetSystemHandler()) {
+    return pSystemHandler->IsINSERTKeyDown(nFlag);
+  }
 
-    return FALSE;
+  return FALSE;
 }
diff --git a/fpdfsdk/src/resource.h b/fpdfsdk/src/resource.h
index 1729807951..a30a4ef45f 100644
--- a/fpdfsdk/src/resource.h
+++ b/fpdfsdk/src/resource.h
@@ -15,10 +15,10 @@
 //
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE        104
-#define _APS_NEXT_COMMAND_VALUE         40001
-#define _APS_NEXT_CONTROL_VALUE         1000
-#define _APS_NEXT_SYMED_VALUE           101
+#define _APS_NEXT_RESOURCE_VALUE 104
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
 #endif
 #endif
 
-- 
cgit v1.2.3