summaryrefslogtreecommitdiff
path: root/xfa/fxfa/parser
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxfa/parser')
-rw-r--r--xfa/fxfa/parser/cxfa_caption.cpp4
-rw-r--r--xfa/fxfa/parser/cxfa_caption.h4
-rw-r--r--xfa/fxfa/parser/cxfa_font.cpp70
-rw-r--r--xfa/fxfa/parser/cxfa_font.h16
-rw-r--r--xfa/fxfa/parser/cxfa_fontdata.cpp88
-rw-r--r--xfa/fxfa/parser/cxfa_fontdata.h36
-rw-r--r--xfa/fxfa/parser/cxfa_widgetdata.cpp6
-rw-r--r--xfa/fxfa/parser/cxfa_widgetdata.h4
8 files changed, 95 insertions, 133 deletions
diff --git a/xfa/fxfa/parser/cxfa_caption.cpp b/xfa/fxfa/parser/cxfa_caption.cpp
index 1af834a277..4d4dde57e9 100644
--- a/xfa/fxfa/parser/cxfa_caption.cpp
+++ b/xfa/fxfa/parser/cxfa_caption.cpp
@@ -74,8 +74,8 @@ CXFA_Margin* CXFA_Caption::GetMargin() {
return GetChild<CXFA_Margin>(0, XFA_Element::Margin, false);
}
-CXFA_FontData CXFA_Caption::GetFontData() {
- return CXFA_FontData(GetChild<CXFA_Font>(0, XFA_Element::Font, false));
+CXFA_Font* CXFA_Caption::GetFont() {
+ return GetChild<CXFA_Font>(0, XFA_Element::Font, false);
}
CXFA_Value* CXFA_Caption::GetValue() {
diff --git a/xfa/fxfa/parser/cxfa_caption.h b/xfa/fxfa/parser/cxfa_caption.h
index 7a52254d77..11c1cec3f4 100644
--- a/xfa/fxfa/parser/cxfa_caption.h
+++ b/xfa/fxfa/parser/cxfa_caption.h
@@ -7,9 +7,9 @@
#ifndef XFA_FXFA_PARSER_CXFA_CAPTION_H_
#define XFA_FXFA_PARSER_CXFA_CAPTION_H_
-#include "xfa/fxfa/parser/cxfa_fontdata.h"
#include "xfa/fxfa/parser/cxfa_node.h"
+class CXFA_Font;
class CXFA_Margin;
class CXFA_Value;
@@ -23,7 +23,7 @@ class CXFA_Caption : public CXFA_Node {
XFA_AttributeEnum GetPlacementType();
float GetReserve() const;
CXFA_Margin* GetMargin();
- CXFA_FontData GetFontData();
+ CXFA_Font* GetFont();
CXFA_Value* GetValue();
};
diff --git a/xfa/fxfa/parser/cxfa_font.cpp b/xfa/fxfa/parser/cxfa_font.cpp
index eb5c312173..c78cbd14b8 100644
--- a/xfa/fxfa/parser/cxfa_font.cpp
+++ b/xfa/fxfa/parser/cxfa_font.cpp
@@ -8,6 +8,8 @@
#include "fxjs/xfa/cjx_font.h"
#include "third_party/base/ptr_util.h"
+#include "xfa/fxfa/parser/cxfa_fill.h"
+#include "xfa/fxfa/parser/cxfa_measurement.h"
namespace {
@@ -63,3 +65,71 @@ CXFA_Font::CXFA_Font(CXFA_Document* doc, XFA_PacketType packet)
pdfium::MakeUnique<CJX_Font>(this)) {}
CXFA_Font::~CXFA_Font() {}
+
+float CXFA_Font::GetBaselineShift() const {
+ return JSObject()
+ ->GetMeasure(XFA_Attribute::BaselineShift)
+ .ToUnit(XFA_Unit::Pt);
+}
+
+float CXFA_Font::GetHorizontalScale() {
+ WideString wsValue = JSObject()->GetCData(XFA_Attribute::FontHorizontalScale);
+ int32_t iScale = FXSYS_wtoi(wsValue.c_str());
+ return iScale > 0 ? (float)iScale : 100.0f;
+}
+
+float CXFA_Font::GetVerticalScale() {
+ WideString wsValue = JSObject()->GetCData(XFA_Attribute::FontVerticalScale);
+ int32_t iScale = FXSYS_wtoi(wsValue.c_str());
+ return iScale > 0 ? (float)iScale : 100.0f;
+}
+
+float CXFA_Font::GetLetterSpacing() {
+ WideString wsValue = JSObject()->GetCData(XFA_Attribute::LetterSpacing);
+ CXFA_Measurement ms(wsValue.AsStringView());
+ if (ms.GetUnit() == XFA_Unit::Em)
+ return ms.GetValue() * GetFontSize();
+ return ms.ToUnit(XFA_Unit::Pt);
+}
+
+int32_t CXFA_Font::GetLineThrough() {
+ return JSObject()->GetInteger(XFA_Attribute::LineThrough);
+}
+
+int32_t CXFA_Font::GetUnderline() {
+ return JSObject()->GetInteger(XFA_Attribute::Underline);
+}
+
+XFA_AttributeEnum CXFA_Font::GetUnderlinePeriod() {
+ return JSObject()
+ ->TryEnum(XFA_Attribute::UnderlinePeriod, true)
+ .value_or(XFA_AttributeEnum::All);
+}
+
+float CXFA_Font::GetFontSize() const {
+ return JSObject()->GetMeasure(XFA_Attribute::Size).ToUnit(XFA_Unit::Pt);
+}
+
+WideString CXFA_Font::GetTypeface() {
+ return JSObject()->GetCData(XFA_Attribute::Typeface);
+}
+
+bool CXFA_Font::IsBold() {
+ return JSObject()->GetEnum(XFA_Attribute::Weight) == XFA_AttributeEnum::Bold;
+}
+
+bool CXFA_Font::IsItalic() {
+ return JSObject()->GetEnum(XFA_Attribute::Posture) ==
+ XFA_AttributeEnum::Italic;
+}
+
+void CXFA_Font::SetColor(FX_ARGB color) {
+ JSObject()
+ ->GetProperty<CXFA_Fill>(0, XFA_Element::Fill, true)
+ ->SetColor(color);
+}
+
+FX_ARGB CXFA_Font::GetColor() {
+ CXFA_Fill* fill = GetChild<CXFA_Fill>(0, XFA_Element::Fill, false);
+ return fill ? fill->GetColor(true) : 0xFF000000;
+}
diff --git a/xfa/fxfa/parser/cxfa_font.h b/xfa/fxfa/parser/cxfa_font.h
index 59b0c71e8c..833c29a530 100644
--- a/xfa/fxfa/parser/cxfa_font.h
+++ b/xfa/fxfa/parser/cxfa_font.h
@@ -13,6 +13,22 @@ class CXFA_Font : public CXFA_Node {
public:
CXFA_Font(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Font() override;
+
+ float GetBaselineShift() const;
+ float GetHorizontalScale();
+ float GetVerticalScale();
+ float GetLetterSpacing();
+ int32_t GetLineThrough();
+ int32_t GetUnderline();
+ XFA_AttributeEnum GetUnderlinePeriod();
+ float GetFontSize() const;
+ WideString GetTypeface();
+
+ bool IsBold();
+ bool IsItalic();
+
+ FX_ARGB GetColor();
+ void SetColor(FX_ARGB color);
};
#endif // XFA_FXFA_PARSER_CXFA_FONT_H_
diff --git a/xfa/fxfa/parser/cxfa_fontdata.cpp b/xfa/fxfa/parser/cxfa_fontdata.cpp
deleted file mode 100644
index 64b5af0794..0000000000
--- a/xfa/fxfa/parser/cxfa_fontdata.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-// 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
-
-#include "xfa/fxfa/parser/cxfa_fontdata.h"
-
-#include "core/fxge/fx_dib.h"
-#include "xfa/fxfa/parser/cxfa_fill.h"
-#include "xfa/fxfa/parser/cxfa_measurement.h"
-#include "xfa/fxfa/parser/cxfa_node.h"
-
-CXFA_FontData::CXFA_FontData(CXFA_Node* pNode) : CXFA_DataData(pNode) {}
-
-float CXFA_FontData::GetBaselineShift() const {
- return m_pNode->JSObject()
- ->GetMeasure(XFA_Attribute::BaselineShift)
- .ToUnit(XFA_Unit::Pt);
-}
-
-float CXFA_FontData::GetHorizontalScale() const {
- WideString wsValue =
- m_pNode->JSObject()->GetCData(XFA_Attribute::FontHorizontalScale);
- int32_t iScale = FXSYS_wtoi(wsValue.c_str());
- return iScale > 0 ? (float)iScale : 100.0f;
-}
-
-float CXFA_FontData::GetVerticalScale() const {
- WideString wsValue =
- m_pNode->JSObject()->GetCData(XFA_Attribute::FontVerticalScale);
- int32_t iScale = FXSYS_wtoi(wsValue.c_str());
- return iScale > 0 ? (float)iScale : 100.0f;
-}
-
-float CXFA_FontData::GetLetterSpacing() const {
- WideString wsValue =
- m_pNode->JSObject()->GetCData(XFA_Attribute::LetterSpacing);
- CXFA_Measurement ms(wsValue.AsStringView());
- if (ms.GetUnit() == XFA_Unit::Em)
- return ms.GetValue() * GetFontSize();
- return ms.ToUnit(XFA_Unit::Pt);
-}
-
-int32_t CXFA_FontData::GetLineThrough() const {
- return m_pNode->JSObject()->GetInteger(XFA_Attribute::LineThrough);
-}
-
-int32_t CXFA_FontData::GetUnderline() const {
- return m_pNode->JSObject()->GetInteger(XFA_Attribute::Underline);
-}
-
-XFA_AttributeEnum CXFA_FontData::GetUnderlinePeriod() const {
- return m_pNode->JSObject()
- ->TryEnum(XFA_Attribute::UnderlinePeriod, true)
- .value_or(XFA_AttributeEnum::All);
-}
-
-float CXFA_FontData::GetFontSize() const {
- return m_pNode->JSObject()
- ->GetMeasure(XFA_Attribute::Size)
- .ToUnit(XFA_Unit::Pt);
-}
-
-WideString CXFA_FontData::GetTypeface() const {
- return m_pNode->JSObject()->GetCData(XFA_Attribute::Typeface);
-}
-
-bool CXFA_FontData::IsBold() const {
- return m_pNode->JSObject()->GetEnum(XFA_Attribute::Weight) ==
- XFA_AttributeEnum::Bold;
-}
-
-bool CXFA_FontData::IsItalic() const {
- return m_pNode->JSObject()->GetEnum(XFA_Attribute::Posture) ==
- XFA_AttributeEnum::Italic;
-}
-
-void CXFA_FontData::SetColor(FX_ARGB color) {
- m_pNode->JSObject()
- ->GetProperty<CXFA_Fill>(0, XFA_Element::Fill, true)
- ->SetColor(color);
-}
-
-FX_ARGB CXFA_FontData::GetColor() const {
- CXFA_Fill* fill = m_pNode->GetChild<CXFA_Fill>(0, XFA_Element::Fill, false);
- return fill ? fill->GetColor(true) : 0xFF000000;
-}
diff --git a/xfa/fxfa/parser/cxfa_fontdata.h b/xfa/fxfa/parser/cxfa_fontdata.h
deleted file mode 100644
index 45fbba6592..0000000000
--- a/xfa/fxfa/parser/cxfa_fontdata.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// 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 XFA_FXFA_PARSER_CXFA_FONTDATA_H_
-#define XFA_FXFA_PARSER_CXFA_FONTDATA_H_
-
-#include "core/fxge/fx_dib.h"
-#include "xfa/fxfa/parser/cxfa_datadata.h"
-
-class CXFA_Node;
-
-class CXFA_FontData : public CXFA_DataData {
- public:
- explicit CXFA_FontData(CXFA_Node* pNode);
-
- float GetBaselineShift() const;
- float GetHorizontalScale() const;
- float GetVerticalScale() const;
- float GetLetterSpacing() const;
- int32_t GetLineThrough() const;
- int32_t GetUnderline() const;
- XFA_AttributeEnum GetUnderlinePeriod() const;
- float GetFontSize() const;
- WideString GetTypeface() const;
-
- bool IsBold() const;
- bool IsItalic() const;
-
- FX_ARGB GetColor() const;
- void SetColor(FX_ARGB color);
-};
-
-#endif // XFA_FXFA_PARSER_CXFA_FONTDATA_H_
diff --git a/xfa/fxfa/parser/cxfa_widgetdata.cpp b/xfa/fxfa/parser/cxfa_widgetdata.cpp
index 9c08c1ac43..4a8817812f 100644
--- a/xfa/fxfa/parser/cxfa_widgetdata.cpp
+++ b/xfa/fxfa/parser/cxfa_widgetdata.cpp
@@ -272,9 +272,9 @@ CXFA_Caption* CXFA_WidgetData::GetCaption() {
false);
}
-CXFA_FontData CXFA_WidgetData::GetFontData(bool bModified) {
- return CXFA_FontData(m_pNode->JSObject()->GetProperty<CXFA_Font>(
- 0, XFA_Element::Font, bModified));
+CXFA_Font* CXFA_WidgetData::GetFont(bool bModified) {
+ return m_pNode->JSObject()->GetProperty<CXFA_Font>(0, XFA_Element::Font,
+ bModified);
}
CXFA_Margin* CXFA_WidgetData::GetMargin() {
diff --git a/xfa/fxfa/parser/cxfa_widgetdata.h b/xfa/fxfa/parser/cxfa_widgetdata.h
index c75225b5fe..30d64a09c5 100644
--- a/xfa/fxfa/parser/cxfa_widgetdata.h
+++ b/xfa/fxfa/parser/cxfa_widgetdata.h
@@ -15,7 +15,6 @@
#include "core/fxcrt/fx_system.h"
#include "fxbarcode/BC_Library.h"
#include "xfa/fxfa/parser/cxfa_datadata.h"
-#include "xfa/fxfa/parser/cxfa_fontdata.h"
enum XFA_CHECKSTATE {
XFA_CHECKSTATE_On = 0,
@@ -34,6 +33,7 @@ class CXFA_Bind;
class CXFA_Border;
class CXFA_Calculate;
class CXFA_Caption;
+class CXFA_Font;
class CXFA_Margin;
class CXFA_Node;
class CXFA_Para;
@@ -61,7 +61,7 @@ class CXFA_WidgetData : public CXFA_DataData {
CXFA_Border* GetBorder(bool bModified);
CXFA_Caption* GetCaption();
- CXFA_FontData GetFontData(bool bModified);
+ CXFA_Font* GetFont(bool bModified);
CXFA_Margin* GetMargin();
CXFA_Para* GetPara();
CXFA_Value* GetDefaultValue();