1 // Copyright 2017 The PDFium Authors 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 FXJS_XFA_CJX_FIELD_H_ 8 #define FXJS_XFA_CJX_FIELD_H_ 9 10 #include "fxjs/xfa/cjx_container.h" 11 #include "fxjs/xfa/jse_define.h" 12 13 class CXFA_Field; 14 15 class CJX_Field final : public CJX_Container { 16 public: 17 CONSTRUCT_VIA_MAKE_GARBAGE_COLLECTED; 18 ~CJX_Field() override; 19 20 // CJX_Object: 21 bool DynamicTypeIs(TypeTag eType) const override; 22 23 JSE_METHOD(addItem); 24 JSE_METHOD(boundItem); 25 JSE_METHOD(clearItems); 26 JSE_METHOD(deleteItem); 27 JSE_METHOD(execCalculate); 28 JSE_METHOD(execEvent); 29 JSE_METHOD(execInitialize); 30 JSE_METHOD(execValidate); 31 JSE_METHOD(getDisplayItem); 32 JSE_METHOD(getItemState); 33 JSE_METHOD(getSaveItem); 34 JSE_METHOD(setItemState); 35 36 JSE_PROP(defaultValue); /* {default} */ 37 JSE_PROP(editValue); 38 JSE_PROP(formatMessage); 39 JSE_PROP(formattedValue); 40 JSE_PROP(length); 41 JSE_PROP(parentSubform); 42 JSE_PROP(rawValue); 43 JSE_PROP(selectedIndex); 44 45 private: 46 explicit CJX_Field(CXFA_Field* field); 47 48 using Type__ = CJX_Field; 49 using ParentType__ = CJX_Container; 50 51 static const TypeTag static_type__ = TypeTag::Field; 52 static const CJX_MethodSpec MethodSpecs[]; 53 }; 54 55 #endif // FXJS_XFA_CJX_FIELD_H_ 56