7#include "core/fxcrt/css/cfx_csscomputedstyle.h"
9#include "core/fxcrt/css/cfx_cssstringvalue.h"
10#include "core/fxcrt/css/cfx_cssvaluelist.h"
11#include "third_party/base/containers/adapters.h"
13CFX_CSSComputedStyle::CFX_CSSComputedStyle() =
default;
18 WideString* pValue)
const {
19 for (
const auto& prop : pdfium::base::Reversed(m_CustomProperties)) {
20 if (wsName == prop.name()) {
21 *pValue = prop.value();
29 if (!m_InheritedData.m_pFontFamily ||
30 m_InheritedData.m_pFontFamily->values().empty()) {
34 return m_InheritedData.m_pFontFamily->values()
36 .AsRaw<CFX_CSSStringValue>()
41 return m_InheritedData.m_wFontWeight;
45 return m_InheritedData.m_eFontVariant;
49 return m_InheritedData.m_eFontStyle;
53 return m_InheritedData.m_fFontSize;
56FX_ARGB CFX_CSSComputedStyle::
GetColor()
const {
57 return m_InheritedData.m_dwFontColor;
61 m_InheritedData.m_wFontWeight = wFontWeight;
65 m_InheritedData.m_eFontVariant = eFontVariant;
69 m_InheritedData.m_eFontStyle = eFontStyle;
73 m_InheritedData.m_fFontSize = fFontSize;
76void CFX_CSSComputedStyle::
SetColor(FX_ARGB dwFontColor) {
77 m_InheritedData.m_dwFontColor = dwFontColor;
81 return m_NonInheritedData.m_bHasBorder ? &(m_NonInheritedData.m_BorderWidth)
86 return m_NonInheritedData.m_bHasMargin ? &(m_NonInheritedData.m_MarginWidth)
91 return m_NonInheritedData.m_bHasPadding ? &(m_NonInheritedData.m_PaddingWidth)
96 m_NonInheritedData.m_MarginWidth = rect;
97 m_NonInheritedData.m_bHasMargin =
true;
101 m_NonInheritedData.m_PaddingWidth = rect;
102 m_NonInheritedData.m_bHasPadding =
true;
106 return m_NonInheritedData.m_eDisplay;
110 return m_InheritedData.m_fLineHeight;
114 return m_InheritedData.m_TextIndent;
118 return m_InheritedData.m_eTextAlign;
122 return m_NonInheritedData.m_eVerticalAlignType;
126 return m_NonInheritedData.m_fVerticalAlign;
130 return m_NonInheritedData.m_dwTextDecoration;
134 return m_InheritedData.m_LetterSpacing;
138 m_InheritedData.m_fLineHeight = fLineHeight;
142 m_InheritedData.m_TextIndent = textIndent;
146 m_InheritedData.m_eTextAlign = eTextAlign;
150 m_NonInheritedData.m_eVerticalAlignType = CFX_CSSVerticalAlign::Number,
151 m_NonInheritedData.m_fVerticalAlign = fAlign;
156 m_NonInheritedData.m_dwTextDecoration = dwTextDecoration;
161 m_InheritedData.m_LetterSpacing = letterSpacing;
167 m_CustomProperties.push_back(prop);
void SetTextAlign(CFX_CSSTextAlign eTextAlign)
void SetNumberVerticalAlign(float fAlign)
void SetMarginWidth(const CFX_CSSRect &rect)
void SetTextDecoration(Mask< CFX_CSSTEXTDECORATION > dwTextDecoration)
void SetTextIndent(const CFX_CSSLength &textIndent)
const CFX_CSSRect * GetBorderWidth() const
void SetPaddingWidth(const CFX_CSSRect &rect)
void SetFontWeight(uint16_t wFontWeight)
void SetFontVariant(CFX_CSSFontVariant eFontVariant)
void SetFontStyle(CFX_CSSFontStyle eFontStyle)
void SetColor(FX_ARGB dwFontColor)
void SetFontSize(float fFontSize)
const CFX_CSSLength & GetTextIndent() const
void AddCustomStyle(const CFX_CSSCustomProperty &prop)
CFX_CSSVerticalAlign GetVerticalAlign() const
Mask< CFX_CSSTEXTDECORATION > GetTextDecoration() const
CFX_CSSFontStyle GetFontStyle() const
uint16_t GetFontWeight() const
CFX_CSSFontVariant GetFontVariant() const
float GetLineHeight() const
const CFX_CSSRect * GetMarginWidth() const
absl::optional< WideString > GetLastFontFamily() const
~CFX_CSSComputedStyle() override
const CFX_CSSLength & GetLetterSpacing() const
CFX_CSSTextAlign GetTextAlign() const
float GetFontSize() const
bool GetCustomStyle(const WideString &wsName, WideString *pValue) const
CFX_CSSDisplay GetDisplay() const
void SetLetterSpacing(const CFX_CSSLength &letterSpacing)
const CFX_CSSRect * GetPaddingWidth() const
float GetNumberVerticalAlign() const
void SetLineHeight(float fLineHeight)