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

Side by Side Diff: fpdfsdk/include/cpdfsdk_widget.h

Issue 2252723002: Split fpdfsdk/fsdk_baseform.h into individual classes. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Split fpdfsdk/fsdk_baseform.h into individual classes. 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 | « fpdfsdk/include/cpdfsdk_interform.h ('k') | fpdfsdk/include/cpdfsdk_xfawidget.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 FPDFSDK_INCLUDE_CPDFSDK_WIDGET_H_
8 #define FPDFSDK_INCLUDE_CPDFSDK_WIDGET_H_
9
10 #include <set>
11
12 #include "core/fpdfdoc/include/cpdf_aaction.h"
13 #include "core/fpdfdoc/include/cpdf_action.h"
14 #include "core/fpdfdoc/include/cpdf_annot.h"
15 #include "core/fxcrt/include/fx_coordinates.h"
16 #include "core/fxcrt/include/fx_string.h"
17 #include "fpdfsdk/include/cpdfsdk_baannot.h"
18 #include "fpdfsdk/include/pdfsdk_fieldaction.h"
19 #include "fpdfsdk/pdfwindow/PWL_Wnd.h"
20
21 class CFX_RenderDevice;
22 class CPDF_Annot;
23 class CPDF_Dictionary;
24 class CPDF_FormControl;
25 class CPDF_FormField;
26 class CPDF_RenderOptions;
27 class CPDF_Stream;
28 class CPDFSDK_InterForm;
29 class CPDFSDK_PageView;
30
31 #ifdef PDF_ENABLE_XFA
32 class CXFA_FFWidget;
33 class CXFA_FFWidgetHandler;
34 #endif // PDF_ENABLE_XFA
35
36 class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
37 public:
38 class Observer {
39 public:
40 explicit Observer(CPDFSDK_Widget** pWatchedPtr);
41 ~Observer();
42
43 void OnWidgetDestroyed();
44
45 private:
46 CPDFSDK_Widget** m_pWatchedPtr;
47 };
48
49 #ifdef PDF_ENABLE_XFA
50 CXFA_FFWidget* GetMixXFAWidget() const;
51 CXFA_FFWidget* GetGroupMixXFAWidget();
52 CXFA_FFWidgetHandler* GetXFAWidgetHandler() const;
53
54 FX_BOOL HasXFAAAction(PDFSDK_XFAAActionType eXFAAAT);
55 FX_BOOL OnXFAAAction(PDFSDK_XFAAActionType eXFAAAT,
56 PDFSDK_FieldAction& data,
57 CPDFSDK_PageView* pPageView);
58
59 void Synchronize(FX_BOOL bSynchronizeElse);
60 void SynchronizeXFAValue();
61 void SynchronizeXFAItems();
62
63 static void SynchronizeXFAValue(CXFA_FFDocView* pXFADocView,
64 CXFA_FFWidget* hWidget,
65 CPDF_FormField* pFormField,
66 CPDF_FormControl* pFormControl);
67 static void SynchronizeXFAItems(CXFA_FFDocView* pXFADocView,
68 CXFA_FFWidget* hWidget,
69 CPDF_FormField* pFormField,
70 CPDF_FormControl* pFormControl);
71 #endif // PDF_ENABLE_XFA
72
73 CPDFSDK_Widget(CPDF_Annot* pAnnot,
74 CPDFSDK_PageView* pPageView,
75 CPDFSDK_InterForm* pInterForm);
76 ~CPDFSDK_Widget() override;
77
78 void AddObserver(Observer* observer);
79 void RemoveObserver(Observer* observer);
80
81 CFX_ByteString GetSubType() const override;
82 CPDF_Action GetAAction(CPDF_AAction::AActionType eAAT) override;
83 FX_BOOL IsAppearanceValid() override;
84
85 int GetLayoutOrder() const override;
86
87 int GetFieldType() const;
88 int GetFieldFlags() const;
89 int GetRotate() const;
90
91 FX_BOOL GetFillColor(FX_COLORREF& color) const;
92 FX_BOOL GetBorderColor(FX_COLORREF& color) const;
93 FX_BOOL GetTextColor(FX_COLORREF& color) const;
94 FX_FLOAT GetFontSize() const;
95
96 int GetSelectedIndex(int nIndex) const;
97 #ifndef PDF_ENABLE_XFA
98 CFX_WideString GetValue() const;
99 #else
100 CFX_WideString GetValue(FX_BOOL bDisplay = TRUE) const;
101 #endif // PDF_ENABLE_XFA
102 CFX_WideString GetDefaultValue() const;
103 CFX_WideString GetOptionLabel(int nIndex) const;
104 int CountOptions() const;
105 FX_BOOL IsOptionSelected(int nIndex) const;
106 int GetTopVisibleIndex() const;
107 bool IsChecked() const;
108 int GetAlignment() const;
109 int GetMaxLen() const;
110 #ifdef PDF_ENABLE_XFA
111 CFX_WideString GetName() const;
112 #endif // PDF_ENABLE_XFA
113 CFX_WideString GetAlternateName() const;
114
115 void SetCheck(bool bChecked, bool bNotify);
116 void SetValue(const CFX_WideString& sValue, FX_BOOL bNotify);
117 void SetDefaultValue(const CFX_WideString& sValue);
118 void SetOptionSelection(int index, FX_BOOL bSelected, FX_BOOL bNotify);
119 void ClearSelection(FX_BOOL bNotify);
120 void SetTopVisibleIndex(int index);
121
122 #ifdef PDF_ENABLE_XFA
123 void ResetAppearance(FX_BOOL bValueChanged);
124 #endif // PDF_ENABLE_XFA
125 void ResetAppearance(const FX_WCHAR* sValue, FX_BOOL bValueChanged);
126 void ResetFieldAppearance(FX_BOOL bValueChanged);
127 void UpdateField();
128 CFX_WideString OnFormat(FX_BOOL& bFormated);
129
130 FX_BOOL OnAAction(CPDF_AAction::AActionType type,
131 PDFSDK_FieldAction& data,
132 CPDFSDK_PageView* pPageView);
133
134 CPDFSDK_InterForm* GetInterForm() const { return m_pInterForm; }
135 CPDF_FormField* GetFormField() const;
136 CPDF_FormControl* GetFormControl() const;
137 static CPDF_FormControl* GetFormControl(CPDF_InterForm* pInterForm,
138 const CPDF_Dictionary* pAnnotDict);
139
140 void DrawShadow(CFX_RenderDevice* pDevice, CPDFSDK_PageView* pPageView);
141
142 void SetAppModified();
143 void ClearAppModified();
144 FX_BOOL IsAppModified() const;
145
146 int32_t GetAppearanceAge() const;
147 int32_t GetValueAge() const;
148
149 FX_BOOL IsWidgetAppearanceValid(CPDF_Annot::AppearanceMode mode);
150 void DrawAppearance(CFX_RenderDevice* pDevice,
151 const CFX_Matrix* pUser2Device,
152 CPDF_Annot::AppearanceMode mode,
153 const CPDF_RenderOptions* pOptions) override;
154
155 FX_BOOL HitTest(FX_FLOAT pageX, FX_FLOAT pageY);
156
157 private:
158 void ResetAppearance_PushButton();
159 void ResetAppearance_CheckBox();
160 void ResetAppearance_RadioButton();
161 void ResetAppearance_ComboBox(const FX_WCHAR* sValue);
162 void ResetAppearance_ListBox();
163 void ResetAppearance_TextField(const FX_WCHAR* sValue);
164
165 CFX_FloatRect GetClientRect() const;
166 CFX_FloatRect GetRotatedRect() const;
167
168 CFX_ByteString GetBackgroundAppStream() const;
169 CFX_ByteString GetBorderAppStream() const;
170 CFX_Matrix GetMatrix() const;
171
172 CPWL_Color GetTextPWLColor() const;
173 CPWL_Color GetBorderPWLColor() const;
174 CPWL_Color GetFillPWLColor() const;
175
176 void AddImageToAppearance(const CFX_ByteString& sAPType, CPDF_Stream* pImage);
177 void RemoveAppearance(const CFX_ByteString& sAPType);
178
179 CPDFSDK_InterForm* const m_pInterForm;
180 FX_BOOL m_bAppModified;
181 int32_t m_nAppAge;
182 int32_t m_nValueAge;
183 std::set<Observer*> m_Observers;
184
185 #ifdef PDF_ENABLE_XFA
186 mutable CXFA_FFWidget* m_hMixXFAWidget;
187 mutable CXFA_FFWidgetHandler* m_pWidgetHandler;
188 #endif // PDF_ENABLE_XFA
189 };
190
191 #endif // FPDFSDK_INCLUDE_CPDFSDK_WIDGET_H_
OLDNEW
« no previous file with comments | « fpdfsdk/include/cpdfsdk_interform.h ('k') | fpdfsdk/include/cpdfsdk_xfawidget.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698