14d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Copyright 2016 PDFium Authors. All rights reserved. 24d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 34d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// found in the LICENSE file. 44d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 54d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 64d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 74d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#ifndef CORE_FPDFDOC_CPDF_FORMFIELD_H_ 84d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#define CORE_FPDFDOC_CPDF_FORMFIELD_H_ 94d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 10d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include <memory> 11d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include <utility> 124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include <vector> 134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fpdfdoc/cpdf_aaction.h" 154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fpdfdoc/cpdf_formfield.h" 164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fxcrt/fx_string.h" 174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fxcrt/fx_system.h" 18d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#include "core/fxcrt/unowned_ptr.h" 194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "third_party/base/stl_util.h" 204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 21d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannenum class FormFieldType : uint8_t { 22d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kUnknown = 0, 23d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kPushButton = 1, 24d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kCheckBox = 2, 25d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kRadioButton = 3, 26d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kComboBox = 4, 27d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kListBox = 5, 28d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kTextField = 6, 29d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kSignature = 7, 30d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#ifdef PDF_ENABLE_XFA 31d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kXFA = 8, // Generic XFA field, should use value below if possible. 32d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kXFA_CheckBox = 9, 33d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kXFA_ComboBox = 10, 34d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kXFA_ImageField = 11, 35d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kXFA_ListBox = 12, 36d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kXFA_PushButton = 13, 37d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kXFA_Signature = 14, 38d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann kXFA_TextField = 15 39d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#endif // PDF_ENABLE_XFA 40d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann}; 41d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 42d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannOptional<FormFieldType> IntToFormFieldType(int value); 43d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 44d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann// If values are added to FormFieldType, these will need to be updated. 45d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#ifdef PDF_ENABLE_XFA 46d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannconstexpr size_t kFormFieldTypeCount = 16; 47d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#else 48d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannconstexpr size_t kFormFieldTypeCount = 8; 49d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#endif // PDF_ENABLE_XFA 50d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 51d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannconstexpr FormFieldType kFormFieldTypes[kFormFieldTypeCount] = { 52d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kUnknown, 53d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kPushButton, 54d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kCheckBox, 55d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kRadioButton, 56d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kComboBox, 57d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kListBox, 58d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kTextField, 59d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kSignature, 60d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#ifdef PDF_ENABLE_XFA 61d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kXFA, 62d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kXFA_CheckBox, 63d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kXFA_ComboBox, 64d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kXFA_ImageField, 65d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kXFA_ListBox, 66d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kXFA_PushButton, 67d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kXFA_Signature, 68d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType::kXFA_TextField 69d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#endif // PDF_ENABLE_XFA 70d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann}; 714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 7233357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann#define FORMFLAG_READONLY 0x01 7333357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann#define FORMFLAG_REQUIRED 0x02 7433357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann#define FORMFLAG_NOEXPORT 0x04 7533357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann 764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CPDF_Dictionary; 774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CPDF_Font; 784d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CPDF_FormControl; 794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CPDF_InterForm; 804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CPDF_String; 814d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 82d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannCPDF_Object* FPDF_GetFieldAttr(const CPDF_Dictionary* pFieldDict, 83d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann const char* name, 844d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int nLevel = 0); 85d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. MoltmannWideString FPDF_GetFullName(CPDF_Dictionary* pFieldDict); 864d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 874d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CPDF_FormField { 884d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann public: 894d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann enum Type { 904d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann Unknown, 914d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann PushButton, 924d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann RadioButton, 934d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CheckBox, 944d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann Text, 954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann RichText, 964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann File, 974d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann ListBox, 984d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann ComboBox, 994d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann Sign 1004d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann }; 1014d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 102d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann CPDF_FormField(CPDF_InterForm* pForm, CPDF_Dictionary* pDict); 103d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ~CPDF_FormField(); 104d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 105d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString GetFullName() const; 1064d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1074d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann Type GetType() const { return m_Type; } 1084d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann uint32_t GetFlags() const { return m_Flags; } 1094d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 110d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann CPDF_Dictionary* GetFieldDict() const { return m_pDict.Get(); } 1114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetFieldDict(CPDF_Dictionary* pDict) { m_pDict = pDict; } 1124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool ResetField(bool bNotify = false); 1144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int CountControls() const { 1164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann return pdfium::CollectionSize<int>(m_ControlList); 1174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann } 1184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 119d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann CPDF_FormControl* GetControl(int index) const { 120d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann return m_ControlList[index].Get(); 121d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann } 1224d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1234d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int GetControlIndex(const CPDF_FormControl* pControl) const; 124d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann FormFieldType GetFieldType() const; 1254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1264d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDF_AAction GetAdditionalAction() const; 127d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString GetAlternateName() const; 128d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString GetMappingName() const; 1294d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann uint32_t GetFieldFlags() const; 131d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann ByteString GetDefaultStyle() const; 132d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString GetRichTextString() const; 1334d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 134d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString GetValue() const; 135d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString GetDefaultValue() const; 136d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann bool SetValue(const WideString& value, bool bNotify = false); 1374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int GetMaxLen() const; 1394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int CountSelectedItems() const; 1404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int GetSelectedIndex(int index) const; 1414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool ClearSelection(bool bNotify = false); 1434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsItemSelected(int index) const; 1444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool SetItemSelection(int index, bool bSelected, bool bNotify = false); 1454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsItemDefaultSelected(int index) const; 1474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int GetDefaultSelectedItem() const; 1494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int CountOptions() const; 1504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 151d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString GetOptionLabel(int index) const; 152d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString GetOptionValue(int index) const; 1534d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 154d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann int FindOption(WideString csOptLabel) const; 155d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann int FindOptionValue(const WideString& csOptValue) const; 1564d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool CheckControl(int iControlIndex, bool bChecked, bool bNotify = false); 1584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int GetTopVisibleIndex() const; 1604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int CountSelectedOptions() const; 1614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int GetSelectedOptionIndex(int index) const; 1634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsOptionSelected(int iOptIndex) const; 1644d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool SelectOption(int iOptIndex, bool bSelected, bool bNotify = false); 1664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool ClearSelectedOptions(bool bNotify = false); 1684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1694d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#ifdef PDF_ENABLE_XFA 1704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool ClearOptions(bool bNotify = false); 1714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 172d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann int InsertOption(WideString csOptLabel, int index = -1, bool bNotify = false); 1734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif // PDF_ENABLE_XFA 1744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 175d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann float GetFontSize() const { return m_FontSize; } 176d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann CPDF_Font* GetFont() const { return m_pFont.Get(); } 1774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 178d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann const CPDF_Dictionary* GetDict() const { return m_pDict.Get(); } 179d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann const CPDF_InterForm* GetForm() const { return m_pForm.Get(); } 1804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 181d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString GetCheckValue(bool bDefault) const; 1824d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 183d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann void AddFormControl(CPDF_FormControl* pFormControl) { 184d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann m_ControlList.emplace_back(pFormControl); 185d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann } 186d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 187d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann void SetOpt(std::unique_ptr<CPDF_Object> pOpt) { 188d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann m_pDict->SetFor("Opt", std::move(pOpt)); 189d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann } 190d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 191d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann private: 192d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString GetValue(bool bDefault) const; 193d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann bool SetValue(const WideString& value, bool bDefault, bool bNotify); 1944d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SyncFieldFlags(); 1964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int FindListSel(CPDF_String* str); 197d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString GetOptionText(int index, int sub_index) const; 1984d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1994d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void LoadDA(); 200d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann bool SetCheckValue(const WideString& value, bool bDefault, bool bNotify); 2014d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 202d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann bool NotifyBeforeSelectionChange(const WideString& value); 2034d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void NotifyAfterSelectionChange(); 2044d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 205d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann bool NotifyBeforeValueChange(const WideString& value); 2064d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void NotifyAfterValueChange(); 2074d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 208d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann bool NotifyListOrComboBoxBeforeChange(const WideString& value); 2094d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void NotifyListOrComboBoxAfterChange(); 2104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 2114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDF_FormField::Type m_Type; 2124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann uint32_t m_Flags; 213d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann UnownedPtr<CPDF_InterForm> const m_pForm; 214d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann UnownedPtr<CPDF_Dictionary> m_pDict; 215d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann // Owned by InterForm parent. 216d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann std::vector<UnownedPtr<CPDF_FormControl>> m_ControlList; 217d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann float m_FontSize; 218d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann UnownedPtr<CPDF_Font> m_pFont; 2194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}; 2204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 2214d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif // CORE_FPDFDOC_CPDF_FORMFIELD_H_ 222