Index: core/fpdfdoc/include/cpdf_formcontrol.h |
diff --git a/core/fpdfdoc/include/cpdf_formcontrol.h b/core/fpdfdoc/include/cpdf_formcontrol.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cf246bd8781989810eaa3d7f3d1e484319561f98 |
--- /dev/null |
+++ b/core/fpdfdoc/include/cpdf_formcontrol.h |
@@ -0,0 +1,134 @@ |
+// Copyright 2016 PDFium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
+ |
+#ifndef CORE_FPDFDOC_INCLUDE_CPDF_FORMCONTROL_H_ |
+#define CORE_FPDFDOC_INCLUDE_CPDF_FORMCONTROL_H_ |
+ |
+#include "core/fpdfdoc/cpdf_apsettings.h" |
+#include "core/fpdfdoc/include/cpdf_aaction.h" |
+#include "core/fpdfdoc/include/cpdf_action.h" |
+#include "core/fpdfdoc/include/cpdf_annot.h" |
+#include "core/fpdfdoc/include/cpdf_annotlist.h" |
+#include "core/fpdfdoc/include/cpdf_defaultappearance.h" |
+#include "core/fpdfdoc/include/cpdf_formfield.h" |
+#include "core/fpdfdoc/include/cpdf_iconfit.h" |
+#include "core/fpdfdoc/include/ipdf_formnotify.h" |
+#include "core/fxcrt/include/fx_coordinates.h" |
+#include "core/fxcrt/include/fx_string.h" |
+#include "core/fxge/include/fx_dib.h" |
+ |
+#define TEXTPOS_CAPTION 0 |
+#define TEXTPOS_ICON 1 |
+#define TEXTPOS_BELOW 2 |
+#define TEXTPOS_ABOVE 3 |
+#define TEXTPOS_RIGHT 4 |
+#define TEXTPOS_LEFT 5 |
+#define TEXTPOS_OVERLAID 6 |
+ |
+#define COLORTYPE_TRANSPARENT 0 |
+#define COLORTYPE_GRAY 1 |
+#define COLORTYPE_RGB 2 |
+#define COLORTYPE_CMYK 3 |
+ |
+class CFX_RenderDevice; |
+class CPDF_Dictionary; |
+class CPDF_Font; |
+class CPDF_FormField; |
+class CPDF_InterForm; |
+class CPDF_OCContext; |
+class CPDF_RenderOptions; |
+class CPDF_Stream; |
+ |
+class CPDF_FormControl { |
+ public: |
+ enum HighlightingMode { None = 0, Invert, Outline, Push, Toggle }; |
+ |
+ CPDF_FormField::Type GetType() const { return m_pField->GetType(); } |
+ CPDF_InterForm* GetInterForm() const { return m_pForm; } |
+ CPDF_FormField* GetField() const { return m_pField; } |
+ CPDF_Dictionary* GetWidget() const { return m_pWidgetDict; } |
+ CFX_FloatRect GetRect() const { return m_pWidgetDict->GetRectBy("Rect"); } |
+ |
+ void DrawControl(CFX_RenderDevice* pDevice, |
+ CFX_Matrix* pMatrix, |
+ CPDF_Page* pPage, |
+ CPDF_Annot::AppearanceMode mode, |
+ const CPDF_RenderOptions* pOptions = nullptr); |
+ |
+ CFX_ByteString GetCheckedAPState(); |
+ CFX_WideString GetExportValue() const; |
+ |
+ bool IsChecked() const; |
+ bool IsDefaultChecked() const; |
+ |
+ HighlightingMode GetHighlightingMode(); |
+ bool HasMKEntry(const CFX_ByteString& csEntry) const; |
+ int GetRotation(); |
+ |
+ FX_ARGB GetBorderColor(int& iColorType) { return GetColor(iColorType, "BC"); } |
+ |
+ FX_FLOAT GetOriginalBorderColor(int index) { |
+ return GetOriginalColor(index, "BC"); |
+ } |
+ |
+ void GetOriginalBorderColor(int& iColorType, FX_FLOAT fc[4]) { |
+ GetOriginalColor(iColorType, fc, "BC"); |
+ } |
+ |
+ FX_ARGB GetBackgroundColor(int& iColorType) { |
+ return GetColor(iColorType, "BG"); |
+ } |
+ |
+ FX_FLOAT GetOriginalBackgroundColor(int index) { |
+ return GetOriginalColor(index, "BG"); |
+ } |
+ |
+ void GetOriginalBackgroundColor(int& iColorType, FX_FLOAT fc[4]) { |
+ GetOriginalColor(iColorType, fc, "BG"); |
+ } |
+ |
+ CFX_WideString GetNormalCaption() { return GetCaption("CA"); } |
+ CFX_WideString GetRolloverCaption() { return GetCaption("RC"); } |
+ CFX_WideString GetDownCaption() { return GetCaption("AC"); } |
+ |
+ CPDF_Stream* GetNormalIcon() { return GetIcon("I"); } |
+ CPDF_Stream* GetRolloverIcon() { return GetIcon("RI"); } |
+ CPDF_Stream* GetDownIcon() { return GetIcon("IX"); } |
+ CPDF_IconFit GetIconFit(); |
+ |
+ int GetTextPosition(); |
+ CPDF_Action GetAction(); |
+ CPDF_AAction GetAdditionalAction(); |
+ CPDF_DefaultAppearance GetDefaultAppearance(); |
+ |
+ CPDF_Font* GetDefaultControlFont(); |
+ int GetControlAlignment(); |
+ |
+ private: |
+ friend class CPDF_InterForm; |
+ friend class CPDF_FormField; |
+ |
+ CPDF_FormControl(CPDF_FormField* pField, CPDF_Dictionary* pWidgetDict); |
+ |
+ CFX_ByteString GetOnStateName() const; |
+ void SetOnStateName(const CFX_ByteString& csOn); |
+ void CheckControl(FX_BOOL bChecked); |
+ FX_ARGB GetColor(int& iColorType, const CFX_ByteString& csEntry); |
+ FX_FLOAT GetOriginalColor(int index, const CFX_ByteString& csEntry); |
+ void GetOriginalColor(int& iColorType, |
+ FX_FLOAT fc[4], |
+ const CFX_ByteString& csEntry); |
+ |
+ CFX_WideString GetCaption(const CFX_ByteString& csEntry); |
+ CPDF_Stream* GetIcon(const CFX_ByteString& csEntry); |
+ CPDF_ApSettings GetMK() const; |
+ |
+ CPDF_FormField* const m_pField; |
+ CPDF_Dictionary* const m_pWidgetDict; |
+ CPDF_InterForm* const m_pForm; |
+}; |
+ |
+#endif // CORE_FPDFDOC_INCLUDE_CPDF_FORMCONTROL_H_ |