Home | History | Annotate | Download | only in javascript
      1 // Copyright 2014 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #ifndef FPDFSDK_INCLUDE_JAVASCRIPT_FIELD_H_
      8 #define FPDFSDK_INCLUDE_JAVASCRIPT_FIELD_H_
      9 
     10 #include <string>  // For std::wstring.
     11 
     12 // TODO(tsepez): include PWL_Wnd.h for PWL_Color after fixing its IWYU.
     13 #include "JS_Define.h"
     14 
     15 class Document;
     16 
     17 enum FIELD_PROP
     18 {
     19 	FP_ALIGNMENT,
     20 	FP_BORDERSTYLE,
     21 	FP_BUTTONALIGNX,
     22 	FP_BUTTONALIGNY,
     23 	FP_BUTTONFITBOUNDS,
     24 	FP_BUTTONPOSITION,
     25 	FP_BUTTONSCALEHOW,
     26 	FP_BUTTONSCALEWHEN,
     27 	FP_CALCORDERINDEX,
     28 	FP_CHARLIMIT,
     29 	FP_COMB,
     30 	FP_COMMITONSELCHANGE,
     31 	FP_CURRENTVALUEINDICES,
     32 	FP_DEFAULTVALUE,
     33 	FP_DONOTSCROLL,
     34 	FP_DISPLAY,
     35 	FP_FILLCOLOR,
     36 	FP_HIDDEN,
     37 	FP_HIGHLIGHT,
     38 	FP_LINEWIDTH,
     39 	FP_MULTILINE,
     40 	FP_MULTIPLESELECTION,
     41 	FP_PASSWORD,
     42 	FP_RECT,
     43 	FP_RICHTEXT,
     44 	FP_RICHVALUE,
     45 	FP_ROTATION,
     46 	FP_STROKECOLOR,
     47 	FP_STYLE,
     48 	FP_TEXTCOLOR,
     49 	FP_TEXTFONT,
     50 	FP_TEXTSIZE,
     51 	FP_USERNAME,
     52 	FP_VALUE
     53 };
     54 
     55 class CJS_WideStringArray
     56 {
     57 public:
     58 	CJS_WideStringArray(){}
     59 	virtual ~CJS_WideStringArray()
     60 	{
     61 		for (int i=0,sz=m_Data.GetSize(); i<sz; i++)
     62 			delete m_Data.GetAt(i);
     63 		m_Data.RemoveAll();
     64 	}
     65 
     66 	void Add(const CFX_WideString& string)
     67 	{
     68 		m_Data.Add(new CFX_WideString(string));
     69 	}
     70 
     71 	int GetSize() const
     72 	{
     73 		return m_Data.GetSize();
     74 	}
     75 
     76 	CFX_WideString GetAt(int i) const
     77 	{
     78 		return *m_Data.GetAt(i);
     79 	}
     80 
     81 private:
     82 	CFX_ArrayTemplate<CFX_WideString*>	m_Data;
     83 };
     84 
     85 struct CJS_DelayData
     86 {
     87 	CFX_WideString			sFieldName;
     88 	int						nControlIndex;
     89 	enum FIELD_PROP			eProp;
     90 	FX_INT32				num;
     91 	bool					b;
     92 	CFX_ByteString			string;
     93 	CFX_WideString			widestring;
     94 	CPDF_Rect				rect;
     95 	CPWL_Color				color;
     96 	CFX_DWordArray			wordarray;
     97 	CJS_WideStringArray		widestringarray;
     98 };
     99 
    100 class Field : public CJS_EmbedObj
    101 {
    102 public:
    103 	Field(CJS_Object* pJSObject);
    104 	virtual ~Field(void);
    105 
    106     FX_BOOL alignment(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    107     FX_BOOL borderStyle(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    108 	FX_BOOL buttonAlignX(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    109 	FX_BOOL buttonAlignY(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    110 	FX_BOOL buttonFitBounds(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    111 	FX_BOOL buttonPosition(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    112 	FX_BOOL buttonScaleHow(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    113     FX_BOOL buttonScaleWhen(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    114 	FX_BOOL calcOrderIndex(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    115 	FX_BOOL charLimit(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    116 	FX_BOOL comb(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    117 	FX_BOOL commitOnSelChange(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    118 	FX_BOOL currentValueIndices(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    119     FX_BOOL defaultStyle(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    120 	FX_BOOL defaultValue(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    121 	FX_BOOL doNotScroll(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    122 	FX_BOOL doNotSpellCheck(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    123 	FX_BOOL delay(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    124 	FX_BOOL display(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    125     FX_BOOL doc(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    126 	FX_BOOL editable(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    127 	FX_BOOL exportValues(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    128 	FX_BOOL fileSelect(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    129 	FX_BOOL fillColor(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    130 	FX_BOOL hidden(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    131     FX_BOOL highlight(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    132 	FX_BOOL lineWidth(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    133 	FX_BOOL multiline(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    134 	FX_BOOL multipleSelection(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    135 	FX_BOOL name(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    136 	FX_BOOL numItems(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    137     FX_BOOL page(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    138 	FX_BOOL password(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    139 	FX_BOOL print(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    140 	FX_BOOL radiosInUnison(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    141 	FX_BOOL readonly(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    142 	FX_BOOL rect(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    143     FX_BOOL required(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    144 	FX_BOOL richText(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    145 	FX_BOOL richValue(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    146 	FX_BOOL rotation(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    147 	FX_BOOL strokeColor(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    148 	FX_BOOL style(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    149 	FX_BOOL submitName(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    150 	FX_BOOL textColor(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    151 	FX_BOOL textFont(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    152 	FX_BOOL textSize(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    153 	FX_BOOL type(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    154 	FX_BOOL userName(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    155 	FX_BOOL value(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    156 	FX_BOOL valueAsString(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    157 	FX_BOOL source(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError);
    158 
    159 	FX_BOOL browseForFileToSubmit(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    160 	FX_BOOL buttonGetCaption(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    161 	FX_BOOL buttonGetIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    162 	FX_BOOL buttonImportIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    163 	FX_BOOL buttonSetCaption(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    164 	FX_BOOL buttonSetIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    165 	FX_BOOL checkThisBox(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    166 	FX_BOOL clearItems(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    167 	FX_BOOL defaultIsChecked(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    168 	FX_BOOL deleteItemAt(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    169 	FX_BOOL getArray(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    170 	FX_BOOL getItemAt(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    171 	FX_BOOL getLock(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    172 	FX_BOOL insertItemAt(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    173 	FX_BOOL isBoxChecked(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    174 	FX_BOOL isDefaultChecked(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    175 	FX_BOOL setAction(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    176 	FX_BOOL setFocus(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    177 	FX_BOOL setItems(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    178 	FX_BOOL setLock(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    179 	FX_BOOL signatureGetModifications(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    180 	FX_BOOL signatureGetSeedValue(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    181 	FX_BOOL signatureInfo(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    182 	FX_BOOL signatureSetSeedValue(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    183 	FX_BOOL signatureSign(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    184 	FX_BOOL signatureValidate(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
    185 
    186 public:
    187 	static void SetAlignment(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CFX_ByteString& string);
    188     static void SetBorderStyle(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CFX_ByteString& string);
    189 	static void SetButtonAlignX(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number);
    190 	static void SetButtonAlignY(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number);
    191 	static void SetButtonFitBounds(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b);
    192 	static void SetButtonPosition(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number);
    193 	static void SetButtonScaleHow(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number);
    194     static void SetButtonScaleWhen(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number);
    195 	static void SetCalcOrderIndex(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number);
    196 	static void SetCharLimit(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number);
    197 	static void SetComb(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b);
    198 	static void SetCommitOnSelChange(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b);
    199 	static void SetCurrentValueIndices(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CFX_DWordArray& array);
    200     static void SetDefaultStyle(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex);
    201 	static void SetDefaultValue(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CFX_WideString& string);
    202 	static void SetDoNotScroll(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b);
    203 	static void SetDisplay(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number);
    204 	static void SetFillColor(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CPWL_Color& color);
    205 	static void SetHidden(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b);
    206     static void SetHighlight(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CFX_ByteString& string);
    207 	static void SetLineWidth(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number);
    208 	static void SetMultiline(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b);
    209 	static void SetMultipleSelection(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b);
    210 	static void SetPassword(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b);
    211 	static void SetRect(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CPDF_Rect& rect);
    212 	static void SetRichText(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b);
    213 	static void SetRichValue(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex);
    214 	static void SetRotation(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number);
    215 	static void SetStrokeColor(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CPWL_Color& color);
    216 	static void SetStyle(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CFX_ByteString& string);
    217 	static void SetTextColor(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CPWL_Color& color);
    218 	static void SetTextFont(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CFX_ByteString& string);
    219 	static void SetTextSize(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, int number);
    220 	static void SetUserName(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CFX_WideString& string);
    221 	static void SetValue(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, const CJS_WideStringArray& strArray);
    222 
    223 public:
    224 	static void							AddField(CPDFSDK_Document* pDocument, int nPageIndex, int nFieldType,
    225 											const CFX_WideString& sName, const CPDF_Rect& rcCoords);
    226 public:
    227 	static void							UpdateFormField(CPDFSDK_Document* pDocument, CPDF_FormField* pFormField,
    228 											FX_BOOL bChangeMark, FX_BOOL bResetAP, FX_BOOL bRefresh);
    229 	static void							UpdateFormControl(CPDFSDK_Document* pDocument, CPDF_FormControl* pFormControl,
    230 											FX_BOOL bChangeMark, FX_BOOL bResetAP, FX_BOOL bRefresh);
    231 
    232 	static CPDFSDK_Widget*					GetWidget(CPDFSDK_Document* pDocument, CPDF_FormControl* pFormControl);
    233 	static void							GetFormFields(CPDFSDK_Document* pDocument, const CFX_WideString& csFieldName, CFX_PtrArray& FieldsArray);
    234 
    235 	static void							DoDelay(CPDFSDK_Document* pDocument, CJS_DelayData* pData);
    236 
    237 public:
    238 	FX_BOOL								AttachField(Document* pDocument, const CFX_WideString& csFieldName);
    239 	void								SetDelay(FX_BOOL bDelay);
    240 	void								SetIsolate(v8::Isolate* isolate) {m_isolate = isolate;}
    241 protected:
    242 	void								ParseFieldName(const std::wstring &strFieldNameParsed,std::wstring &strFieldName,int & iControlNo);
    243 	void								GetFormFields(const CFX_WideString& csFieldName, CFX_PtrArray& FieldsArray);
    244 	CPDF_FormControl* 					GetSmartFieldControl(CPDF_FormField* pFormField);
    245 	FX_BOOL								ValueIsOccur(CPDF_FormField* pFormField, CFX_WideString csOptLabel);
    246 
    247 	void								AddDelay_Int(enum FIELD_PROP prop, FX_INT32 n);
    248 	void								AddDelay_Bool(enum FIELD_PROP prop,bool b);
    249 	void								AddDelay_String(enum FIELD_PROP prop, const CFX_ByteString& string);
    250 	void								AddDelay_WideString(enum FIELD_PROP prop, const CFX_WideString& string);
    251 	void								AddDelay_Rect(enum FIELD_PROP prop, const CPDF_Rect& rect);
    252 	void								AddDelay_Color(enum FIELD_PROP prop, const CPWL_Color& color);
    253 	void								AddDelay_WordArray(enum FIELD_PROP prop, const CFX_DWordArray& array);
    254 	void								AddDelay_WideStringArray(enum FIELD_PROP prop, const CJS_WideStringArray& array);
    255 
    256 	void								DoDelay();
    257 public:
    258 	Document*							m_pJSDoc;
    259 	CPDFSDK_Document*					m_pDocument;
    260 	CFX_WideString						m_FieldName;
    261 	int									m_nFormControlIndex;
    262 	FX_BOOL								m_bCanSet;
    263 
    264 	FX_BOOL								m_bDelay;
    265 	v8::Isolate*							m_isolate;
    266 };
    267 
    268 class CJS_Field : public CJS_Object
    269 {
    270 public:
    271 	CJS_Field(JSFXObject pObject) : CJS_Object(pObject) {};
    272 	virtual ~CJS_Field(void){};
    273 
    274 	virtual FX_BOOL	InitInstance(IFXJS_Context* cc);
    275 
    276 	DECLARE_JS_CLASS(CJS_Field);
    277 
    278     JS_STATIC_PROP(alignment, Field);
    279     JS_STATIC_PROP(borderStyle, Field);
    280 	JS_STATIC_PROP(buttonAlignX, Field);
    281 	JS_STATIC_PROP(buttonAlignY, Field);
    282 	JS_STATIC_PROP(buttonFitBounds, Field);
    283 	JS_STATIC_PROP(buttonPosition, Field);
    284 	JS_STATIC_PROP(buttonScaleHow, Field);
    285     JS_STATIC_PROP(buttonScaleWhen, Field);
    286 	JS_STATIC_PROP(calcOrderIndex, Field);
    287 	JS_STATIC_PROP(charLimit, Field);
    288 	JS_STATIC_PROP(comb, Field);
    289 	JS_STATIC_PROP(commitOnSelChange, Field);
    290 	JS_STATIC_PROP(currentValueIndices, Field);
    291     JS_STATIC_PROP(defaultStyle, Field);
    292 	JS_STATIC_PROP(defaultValue, Field);
    293 	JS_STATIC_PROP(doNotScroll, Field);
    294 	JS_STATIC_PROP(doNotSpellCheck, Field);
    295 	JS_STATIC_PROP(delay, Field);
    296 	JS_STATIC_PROP(display, Field);
    297     JS_STATIC_PROP(doc, Field);
    298 	JS_STATIC_PROP(editable, Field);
    299 	JS_STATIC_PROP(exportValues, Field);
    300 	JS_STATIC_PROP(fileSelect, Field);
    301 	JS_STATIC_PROP(fillColor, Field);
    302 	JS_STATIC_PROP(hidden, Field);
    303     JS_STATIC_PROP(highlight, Field);
    304 	JS_STATIC_PROP(lineWidth, Field);
    305 	JS_STATIC_PROP(multiline, Field);
    306 	JS_STATIC_PROP(multipleSelection, Field);
    307 	JS_STATIC_PROP(name, Field);
    308 	JS_STATIC_PROP(numItems, Field);
    309     JS_STATIC_PROP(page, Field);
    310 	JS_STATIC_PROP(password, Field);
    311 	JS_STATIC_PROP(print, Field);
    312 	JS_STATIC_PROP(radiosInUnison, Field);
    313 	JS_STATIC_PROP(readonly, Field);
    314 	JS_STATIC_PROP(rect, Field);
    315     JS_STATIC_PROP(required, Field);
    316 	JS_STATIC_PROP(richText, Field);
    317 	JS_STATIC_PROP(richValue, Field);
    318 	JS_STATIC_PROP(rotation, Field);
    319 	JS_STATIC_PROP(strokeColor, Field);
    320 	JS_STATIC_PROP(style, Field);
    321 	JS_STATIC_PROP(submitName, Field);
    322 	JS_STATIC_PROP(textColor, Field);
    323 	JS_STATIC_PROP(textFont, Field);
    324 	JS_STATIC_PROP(textSize, Field);
    325 	JS_STATIC_PROP(type, Field);
    326 	JS_STATIC_PROP(userName, Field);
    327 	JS_STATIC_PROP(value, Field);
    328 	JS_STATIC_PROP(valueAsString, Field);
    329 	JS_STATIC_PROP(source, Field);
    330 
    331 	JS_STATIC_METHOD(browseForFileToSubmit, Field);
    332 	JS_STATIC_METHOD(buttonGetCaption, Field);
    333 	JS_STATIC_METHOD(buttonGetIcon, Field);
    334 	JS_STATIC_METHOD(buttonImportIcon, Field);
    335 	JS_STATIC_METHOD(buttonSetCaption, Field);
    336 	JS_STATIC_METHOD(buttonSetIcon, Field);
    337 	JS_STATIC_METHOD(checkThisBox, Field);
    338 	JS_STATIC_METHOD(clearItems, Field);
    339  	JS_STATIC_METHOD(defaultIsChecked, Field);
    340 	JS_STATIC_METHOD(deleteItemAt, Field);
    341 	JS_STATIC_METHOD(getArray, Field);
    342 	JS_STATIC_METHOD(getItemAt, Field);
    343 	JS_STATIC_METHOD(getLock, Field);
    344 	JS_STATIC_METHOD(insertItemAt, Field);
    345 	JS_STATIC_METHOD(isBoxChecked, Field);
    346 	JS_STATIC_METHOD(isDefaultChecked, Field);
    347 	JS_STATIC_METHOD(setAction, Field);
    348 	JS_STATIC_METHOD(setFocus, Field);
    349 	JS_STATIC_METHOD(setItems, Field);
    350 	JS_STATIC_METHOD(setLock, Field);
    351 	JS_STATIC_METHOD(signatureGetModifications, Field);
    352 	JS_STATIC_METHOD(signatureGetSeedValue, Field);
    353 	JS_STATIC_METHOD(signatureInfo, Field);
    354 	JS_STATIC_METHOD(signatureSetSeedValue, Field);
    355 	JS_STATIC_METHOD(signatureSign, Field);
    356 	JS_STATIC_METHOD(signatureValidate, Field);
    357 };
    358 
    359 #endif  // FPDFSDK_INCLUDE_JAVASCRIPT_FIELD_H_
    360