Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(299)

Side by Side Diff: core/fpdfdoc/include/cpdf_formfield.h

Issue 2183313004: Split fpdfdoc/include/fpdf_doc.h into individual classes. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: review feedback Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/fpdfdoc/include/cpdf_formcontrol.h ('k') | core/fpdfdoc/include/cpdf_iconfit.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 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 CORE_FPDFDOC_INCLUDE_CPDF_FORMFIELD_H_
8 #define CORE_FPDFDOC_INCLUDE_CPDF_FORMFIELD_H_
9
10 #include "core/fpdfdoc/include/cpdf_aaction.h"
11 #include "core/fpdfdoc/include/cpdf_formfield.h"
12 #include "core/fxcrt/include/fx_basic.h"
13 #include "core/fxcrt/include/fx_string.h"
14 #include "core/fxcrt/include/fx_system.h"
15
16 #define FIELDTYPE_UNKNOWN 0
17 #define FIELDTYPE_PUSHBUTTON 1
18 #define FIELDTYPE_CHECKBOX 2
19 #define FIELDTYPE_RADIOBUTTON 3
20 #define FIELDTYPE_COMBOBOX 4
21 #define FIELDTYPE_LISTBOX 5
22 #define FIELDTYPE_TEXTFIELD 6
23 #define FIELDTYPE_SIGNATURE 7
24
25 class CPDF_Dictionary;
26 class CPDF_Font;
27 class CPDF_FormControl;
28 class CPDF_InterForm;
29 class CPDF_String;
30
31 CPDF_Object* FPDF_GetFieldAttr(CPDF_Dictionary* pFieldDict,
32 const FX_CHAR* name,
33 int nLevel = 0);
34
35 class CPDF_FormField {
36 public:
37 enum Type {
38 Unknown,
39 PushButton,
40 RadioButton,
41 CheckBox,
42 Text,
43 RichText,
44 File,
45 ListBox,
46 ComboBox,
47 Sign
48 };
49
50 CFX_WideString GetFullName() const;
51
52 Type GetType() const { return m_Type; }
53 uint32_t GetFlags() const { return m_Flags; }
54
55 CPDF_Dictionary* GetFieldDict() const { return m_pDict; }
56 void SetFieldDict(CPDF_Dictionary* pDict) { m_pDict = pDict; }
57
58 FX_BOOL ResetField(FX_BOOL bNotify = FALSE);
59
60 int CountControls() const { return m_ControlList.GetSize(); }
61
62 CPDF_FormControl* GetControl(int index) const {
63 return m_ControlList.GetAt(index);
64 }
65
66 int GetControlIndex(const CPDF_FormControl* pControl) const;
67 int GetFieldType() const;
68
69 CPDF_AAction GetAdditionalAction() const;
70 CFX_WideString GetAlternateName() const;
71 CFX_WideString GetMappingName() const;
72
73 uint32_t GetFieldFlags() const;
74 CFX_ByteString GetDefaultStyle() const;
75 CFX_WideString GetRichTextString() const;
76
77 CFX_WideString GetValue() const;
78 CFX_WideString GetDefaultValue() const;
79 FX_BOOL SetValue(const CFX_WideString& value, FX_BOOL bNotify = FALSE);
80
81 int GetMaxLen() const;
82 int CountSelectedItems() const;
83 int GetSelectedIndex(int index) const;
84
85 FX_BOOL ClearSelection(FX_BOOL bNotify = FALSE);
86 FX_BOOL IsItemSelected(int index) const;
87 FX_BOOL SetItemSelection(int index,
88 FX_BOOL bSelected,
89 FX_BOOL bNotify = FALSE);
90
91 FX_BOOL IsItemDefaultSelected(int index) const;
92
93 int GetDefaultSelectedItem() const;
94 int CountOptions() const;
95
96 CFX_WideString GetOptionLabel(int index) const;
97 CFX_WideString GetOptionValue(int index) const;
98
99 int FindOption(CFX_WideString csOptLabel) const;
100 int FindOptionValue(const CFX_WideString& csOptValue) const;
101
102 FX_BOOL CheckControl(int iControlIndex, bool bChecked, bool bNotify = false);
103
104 int GetTopVisibleIndex() const;
105 int CountSelectedOptions() const;
106
107 int GetSelectedOptionIndex(int index) const;
108 FX_BOOL IsOptionSelected(int iOptIndex) const;
109
110 FX_BOOL SelectOption(int iOptIndex,
111 FX_BOOL bSelected,
112 FX_BOOL bNotify = FALSE);
113
114 FX_BOOL ClearSelectedOptions(FX_BOOL bNotify = FALSE);
115
116 #ifdef PDF_ENABLE_XFA
117 FX_BOOL ClearOptions(FX_BOOL bNotify = FALSE);
118
119 int InsertOption(CFX_WideString csOptLabel,
120 int index = -1,
121 FX_BOOL bNotify = FALSE);
122 #endif // PDF_ENABLE_XFA
123
124 FX_FLOAT GetFontSize() const { return m_FontSize; }
125 CPDF_Font* GetFont() const { return m_pFont; }
126
127 private:
128 friend class CPDF_InterForm;
129 friend class CPDF_FormControl;
130
131 CPDF_FormField(CPDF_InterForm* pForm, CPDF_Dictionary* pDict);
132 ~CPDF_FormField();
133
134 CFX_WideString GetValue(FX_BOOL bDefault) const;
135 FX_BOOL SetValue(const CFX_WideString& value,
136 FX_BOOL bDefault,
137 FX_BOOL bNotify);
138
139 void SyncFieldFlags();
140 int FindListSel(CPDF_String* str);
141 CFX_WideString GetOptionText(int index, int sub_index) const;
142
143 void LoadDA();
144 CFX_WideString GetCheckValue(FX_BOOL bDefault) const;
145 FX_BOOL SetCheckValue(const CFX_WideString& value,
146 FX_BOOL bDefault,
147 FX_BOOL bNotify);
148
149 bool NotifyBeforeSelectionChange(const CFX_WideString& value);
150 void NotifyAfterSelectionChange();
151
152 bool NotifyBeforeValueChange(const CFX_WideString& value);
153 void NotifyAfterValueChange();
154
155 bool NotifyListOrComboBoxBeforeChange(const CFX_WideString& value);
156 void NotifyListOrComboBoxAfterChange();
157
158 CPDF_FormField::Type m_Type;
159 uint32_t m_Flags;
160 CPDF_InterForm* m_pForm;
161 CPDF_Dictionary* m_pDict;
162 CFX_ArrayTemplate<CPDF_FormControl*> m_ControlList;
163 FX_FLOAT m_FontSize;
164 CPDF_Font* m_pFont;
165 };
166
167 #endif // CORE_FPDFDOC_INCLUDE_CPDF_FORMFIELD_H_
OLDNEW
« no previous file with comments | « core/fpdfdoc/include/cpdf_formcontrol.h ('k') | core/fpdfdoc/include/cpdf_iconfit.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698