summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xfa/fwl/cfwl_barcode.cpp35
-rw-r--r--xfa/fwl/cfwl_combobox.cpp34
-rw-r--r--xfa/fwl/cfwl_combobox.h2
-rw-r--r--xfa/fwl/cfwl_datetimepicker.cpp15
-rw-r--r--xfa/fwl/cfwl_edit.cpp89
-rw-r--r--xfa/fwl/cfwl_form.cpp7
-rw-r--r--xfa/fwl/cfwl_listbox.cpp28
-rw-r--r--xfa/fwl/cfwl_monthcalendar.cpp61
-rw-r--r--xfa/fwl/cfwl_monthcalendar.h26
-rw-r--r--xfa/fwl/cfwl_pushbutton.cpp3
-rw-r--r--xfa/fwl/cfwl_scrollbar.cpp16
-rw-r--r--xfa/fwl/cfwl_scrollbar.h1
-rw-r--r--xfa/fwl/cfwl_widget.cpp19
-rw-r--r--xfa/fwl/cfwl_widget.h1
-rw-r--r--xfa/fwl/ifwl_themeprovider.h11
-rw-r--r--xfa/fwl/theme/cfwl_comboboxtp.cpp15
-rw-r--r--xfa/fwl/theme/cfwl_comboboxtp.h2
-rw-r--r--xfa/fwl/theme/cfwl_monthcalendartp.cpp164
-rw-r--r--xfa/fwl/theme/cfwl_monthcalendartp.h2
-rw-r--r--xfa/fwl/theme/cfwl_pushbuttontp.cpp9
-rw-r--r--xfa/fwl/theme/cfwl_pushbuttontp.h2
-rw-r--r--xfa/fwl/theme/cfwl_scrollbartp.cpp9
-rw-r--r--xfa/fwl/theme/cfwl_scrollbartp.h2
-rw-r--r--xfa/fwl/theme/cfwl_widgettp.cpp70
-rw-r--r--xfa/fwl/theme/cfwl_widgettp.h60
-rw-r--r--xfa/fxfa/app/xfa_ffcheckbutton.cpp3
-rw-r--r--xfa/fxfa/app/xfa_fffield.cpp9
-rw-r--r--xfa/fxfa/app/xfa_ffimageedit.cpp3
-rw-r--r--xfa/fxfa/app/xfa_ffwidgetacc.cpp9
-rw-r--r--xfa/fxfa/app/xfa_fwltheme.cpp154
-rw-r--r--xfa/fxfa/app/xfa_fwltheme.h17
-rw-r--r--xfa/fxfa/parser/cxfa_widgetdata.cpp27
-rw-r--r--xfa/fxfa/parser/cxfa_widgetdata.h5
33 files changed, 216 insertions, 694 deletions
diff --git a/xfa/fwl/cfwl_barcode.cpp b/xfa/fwl/cfwl_barcode.cpp
index 83ab74a608..8b05927223 100644
--- a/xfa/fwl/cfwl_barcode.cpp
+++ b/xfa/fwl/cfwl_barcode.cpp
@@ -165,27 +165,20 @@ void CFWL_Barcode::GenerateBarcodeImageCache() {
if (!m_pBarcodeEngine)
return;
- CFX_WideString wsText = GetText();
-
- CFWL_ThemePart part;
- part.m_pWidget = this;
-
IFWL_ThemeProvider* pTheme = GetAvailableTheme();
- CFGAS_GEFont* pFont = static_cast<CFGAS_GEFont*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::Font));
- CFX_Font* pCXFont = pFont ? pFont->GetDevFont() : nullptr;
- if (pCXFont)
- m_pBarcodeEngine->SetFont(pCXFont);
-
- FX_FLOAT* pFontSize = static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::FontSize));
- if (pFontSize)
- m_pBarcodeEngine->SetFontSize(*pFontSize);
-
- FX_ARGB* pFontColor = static_cast<FX_ARGB*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::TextColor));
- if (pFontColor)
- m_pBarcodeEngine->SetFontColor(*pFontColor);
+ if (pTheme) {
+ CFWL_ThemePart part;
+ part.m_pWidget = this;
+
+ if (CFGAS_GEFont* pFont = pTheme->GetFont(&part)) {
+ if (CFX_Font* pCXFont = pFont->GetDevFont())
+ m_pBarcodeEngine->SetFont(pCXFont);
+ }
+ m_pBarcodeEngine->SetFontSize(pTheme->GetFontSize(&part));
+ m_pBarcodeEngine->SetFontColor(pTheme->GetTextColor(&part));
+ } else {
+ m_pBarcodeEngine->SetFontSize(FWLTHEME_CAPACITY_FontSize);
+ }
m_pBarcodeEngine->SetHeight(int32_t(GetRTClient().height));
m_pBarcodeEngine->SetWidth(int32_t(GetRTClient().width));
@@ -217,7 +210,7 @@ void CFWL_Barcode::GenerateBarcodeImageCache() {
m_pBarcodeEngine->SetTruncated(m_bTruncated);
int32_t errorCode = 0;
- m_dwStatus = m_pBarcodeEngine->Encode(wsText.AsStringC(), true, errorCode)
+ m_dwStatus = m_pBarcodeEngine->Encode(GetText().AsStringC(), true, errorCode)
? XFA_BCS_EncodeSuccess
: 0;
}
diff --git a/xfa/fwl/cfwl_combobox.cpp b/xfa/fwl/cfwl_combobox.cpp
index c07e0cf246..03d2921e65 100644
--- a/xfa/fwl/cfwl_combobox.cpp
+++ b/xfa/fwl/cfwl_combobox.cpp
@@ -35,8 +35,7 @@ CFWL_ComboBox::CFWL_ComboBox(const CFWL_App* app)
m_pComboBoxProxy(nullptr),
m_bLButtonDown(false),
m_iCurSel(-1),
- m_iBtnState(CFWL_PartState_Normal),
- m_fComboFormHandler(0) {
+ m_iBtnState(CFWL_PartState_Normal) {
m_rtClient.Reset();
m_rtBtn.Reset();
m_rtHandler.Reset();
@@ -117,11 +116,6 @@ void CFWL_ComboBox::Update() {
m_pProperties->m_pThemeProvider = GetAvailableTheme();
Layout();
- CFWL_ThemePart part;
- part.m_pWidget = this;
- m_fComboFormHandler =
- *static_cast<FX_FLOAT*>(m_pProperties->m_pThemeProvider->GetCapacity(
- &part, CFWL_WidgetCapacity::ComboFormHandler));
}
FWL_WidgetHit CFWL_ComboBox::HitTest(FX_FLOAT fx, FX_FLOAT fy) {
@@ -349,7 +343,6 @@ void CFWL_ComboBox::ShowDropList(bool bActivate) {
CFWL_Event ev(CFWL_Event::Type::PreDropDown, this);
DispatchEvent(&ev);
- m_fItemHeight = m_pListBox->GetItemHeight();
m_pListBox->SetFocus(true);
m_pComboBoxProxy->DoModal();
m_pListBox->SetFocus(false);
@@ -380,12 +373,11 @@ void CFWL_ComboBox::Layout() {
return DisForm_Layout();
m_rtClient = GetClientRect();
- FX_FLOAT* pFWidth = static_cast<FX_FLOAT*>(
- GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
- if (!pFWidth)
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ if (!theme)
return;
- FX_FLOAT fBtn = *pFWidth;
+ FX_FLOAT fBtn = theme->GetScrollBarWidth();
m_rtBtn.Set(m_rtClient.right() - fBtn, m_rtClient.top, fBtn,
m_rtClient.height);
if (!IsDropDownStyle() || !m_pEdit)
@@ -680,24 +672,22 @@ CFX_RectF CFWL_ComboBox::DisForm_GetBBox() const {
void CFWL_ComboBox::DisForm_Layout() {
m_rtClient = GetClientRect();
m_rtContent = m_rtClient;
- FX_FLOAT* pFWidth = static_cast<FX_FLOAT*>(
- GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
- if (!pFWidth)
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ if (!theme)
return;
FX_FLOAT borderWidth = 1;
- FX_FLOAT fBtn = *pFWidth;
+ FX_FLOAT fBtn = theme->GetScrollBarWidth();
if (!(GetStylesEx() & FWL_STYLEEXT_CMB_ReadOnly)) {
m_rtBtn.Set(m_rtClient.right() - fBtn, m_rtClient.top + borderWidth,
fBtn - borderWidth, m_rtClient.height - 2 * borderWidth);
}
- CFX_RectF* pUIMargin =
- static_cast<CFX_RectF*>(GetThemeCapacity(CFWL_WidgetCapacity::UIMargin));
- if (pUIMargin) {
- m_rtContent.Deflate(pUIMargin->left, pUIMargin->top, pUIMargin->width,
- pUIMargin->height);
- }
+ CFWL_ThemePart part;
+ part.m_pWidget = this;
+ CFX_RectF pUIMargin = theme->GetUIMargin(&part);
+ m_rtContent.Deflate(pUIMargin.left, pUIMargin.top, pUIMargin.width,
+ pUIMargin.height);
if (!IsDropDownStyle() || !m_pEdit)
return;
diff --git a/xfa/fwl/cfwl_combobox.h b/xfa/fwl/cfwl_combobox.h
index c1c4ed42e0..d8db10dd2c 100644
--- a/xfa/fwl/cfwl_combobox.h
+++ b/xfa/fwl/cfwl_combobox.h
@@ -156,8 +156,6 @@ class CFWL_ComboBox : public CFWL_Widget {
bool m_bLButtonDown;
int32_t m_iCurSel;
int32_t m_iBtnState;
- FX_FLOAT m_fComboFormHandler;
- FX_FLOAT m_fItemHeight;
};
#endif // XFA_FWL_CFWL_COMBOBOX_H_
diff --git a/xfa/fwl/cfwl_datetimepicker.cpp b/xfa/fwl/cfwl_datetimepicker.cpp
index 658cb036dc..861692f8e2 100644
--- a/xfa/fwl/cfwl_datetimepicker.cpp
+++ b/xfa/fwl/cfwl_datetimepicker.cpp
@@ -79,12 +79,12 @@ void CFWL_DateTimePicker::Update() {
m_pEdit->SetThemeProvider(m_pProperties->m_pThemeProvider);
m_rtClient = GetClientRect();
- FX_FLOAT* pFWidth = static_cast<FX_FLOAT*>(
- GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
- if (!pFWidth)
+
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ if (!theme)
return;
- FX_FLOAT fBtn = *pFWidth;
+ FX_FLOAT fBtn = theme->GetScrollBarWidth();
m_rtBtn.Set(m_rtClient.right() - fBtn, m_rtClient.top, fBtn - 1,
m_rtClient.height - 1);
@@ -426,12 +426,11 @@ void CFWL_DateTimePicker::DisForm_Update() {
if (!m_pMonthCal->GetThemeProvider())
m_pMonthCal->SetThemeProvider(m_pProperties->m_pThemeProvider);
- FX_FLOAT* pWidth = static_cast<FX_FLOAT*>(
- GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
- if (!pWidth)
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ if (!theme)
return;
- m_fBtn = *pWidth;
+ m_fBtn = theme->GetScrollBarWidth();
CFX_RectF rtMonthCal = m_pMonthCal->GetAutosizedWidgetRect();
CFX_RectF rtPopUp;
rtPopUp.Set(rtMonthCal.left, rtMonthCal.top + kDateTimePickerHeight,
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp
index b0d9e8d222..79b0b2d366 100644
--- a/xfa/fwl/cfwl_edit.cpp
+++ b/xfa/fwl/cfwl_edit.cpp
@@ -92,16 +92,14 @@ FWL_Type CFWL_Edit::GetClassID() const {
CFX_RectF CFWL_Edit::GetWidgetRect() {
CFX_RectF rect = m_pProperties->m_rtWidget;
if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_EDT_OuterScrollbar) {
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ float scrollbarWidth = theme ? theme->GetScrollBarWidth() : 0.0f;
if (IsShowScrollBar(true)) {
- FX_FLOAT* pfWidth = static_cast<FX_FLOAT*>(
- GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
- rect.width += *pfWidth;
+ rect.width += scrollbarWidth;
rect.width += kEditMargin;
}
if (IsShowScrollBar(false)) {
- FX_FLOAT* pfWidth = static_cast<FX_FLOAT*>(
- GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
- rect.height += *pfWidth;
+ rect.height += scrollbarWidth;
rect.height += kEditMargin;
}
}
@@ -679,26 +677,18 @@ void CFWL_Edit::UpdateEditParams() {
params.dwMode |= FDE_TEXTEDITMODE_ReadOnly;
}
- FX_FLOAT* pFontSize =
- static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::FontSize));
- if (!pFontSize)
- return;
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ CFWL_ThemePart part;
+ part.m_pWidget = this;
+ m_fFontSize = theme ? theme->GetFontSize(&part) : FWLTHEME_CAPACITY_FontSize;
- m_fFontSize = *pFontSize;
- uint32_t* pFontColor =
- static_cast<uint32_t*>(GetThemeCapacity(CFWL_WidgetCapacity::TextColor));
- if (!pFontColor)
+ if (!theme)
return;
- params.dwFontColor = *pFontColor;
- FX_FLOAT* pLineHeight =
- static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::LineHeight));
- if (!pLineHeight)
- return;
+ params.dwFontColor = theme->GetTextColor(&part);
+ params.fLineSpace = theme->GetLineHeight(&part);
- params.fLineSpace = *pLineHeight;
- CFGAS_GEFont* pFont =
- static_cast<CFGAS_GEFont*>(GetThemeCapacity(CFWL_WidgetCapacity::Font));
+ CFGAS_GEFont* pFont = theme->GetFont(&part);
if (!pFont)
return;
@@ -790,11 +780,14 @@ void CFWL_Edit::UpdateVAlignment() {
FX_FLOAT fOffsetY = 0.0f;
FX_FLOAT fSpaceAbove = 0.0f;
FX_FLOAT fSpaceBelow = 0.0f;
- CFX_SizeF* pSpace = static_cast<CFX_SizeF*>(
- GetThemeCapacity(CFWL_WidgetCapacity::SpaceAboveBelow));
- if (pSpace) {
- fSpaceAbove = pSpace->x;
- fSpaceBelow = pSpace->y;
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ if (theme) {
+ CFWL_ThemePart part;
+ part.m_pWidget = this;
+
+ CFX_SizeF pSpace = theme->GetSpaceAboveBelow(&part);
+ fSpaceAbove = pSpace.x;
+ fSpaceBelow = pSpace.y;
}
if (fSpaceAbove < 0.1f)
fSpaceAbove = 0;
@@ -952,29 +945,22 @@ int32_t CFWL_Edit::AddDoRecord(std::unique_ptr<IFDE_TxtEdtDoRecord> pRecord) {
void CFWL_Edit::Layout() {
m_rtClient = GetClientRect();
m_rtEngine = m_rtClient;
- FX_FLOAT* pfWidth = static_cast<FX_FLOAT*>(
- GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
- if (!pfWidth)
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ if (!theme)
return;
- FX_FLOAT fWidth = *pfWidth;
+ FX_FLOAT fWidth = theme->GetScrollBarWidth();
+ CFWL_ThemePart part;
if (!m_pOuter) {
- CFX_RectF* pUIMargin = static_cast<CFX_RectF*>(
- GetThemeCapacity(CFWL_WidgetCapacity::UIMargin));
- if (pUIMargin) {
- m_rtEngine.Deflate(pUIMargin->left, pUIMargin->top, pUIMargin->width,
- pUIMargin->height);
- }
+ part.m_pWidget = this;
+ CFX_RectF pUIMargin = theme->GetUIMargin(&part);
+ m_rtEngine.Deflate(pUIMargin.left, pUIMargin.top, pUIMargin.width,
+ pUIMargin.height);
} else if (m_pOuter->GetClassID() == FWL_Type::DateTimePicker) {
- CFWL_ThemePart part;
part.m_pWidget = m_pOuter;
- CFX_RectF* pUIMargin =
- static_cast<CFX_RectF*>(m_pOuter->GetThemeProvider()->GetCapacity(
- &part, CFWL_WidgetCapacity::UIMargin));
- if (pUIMargin) {
- m_rtEngine.Deflate(pUIMargin->left, pUIMargin->top, pUIMargin->width,
- pUIMargin->height);
- }
+ CFX_RectF pUIMargin = theme->GetUIMargin(&part);
+ m_rtEngine.Deflate(pUIMargin.left, pUIMargin.top, pUIMargin.width,
+ pUIMargin.height);
}
bool bShowVertScrollbar = IsShowScrollBar(true);
@@ -1029,14 +1015,13 @@ void CFWL_Edit::LayoutScrollBar() {
return;
}
- FX_FLOAT* pfWidth = nullptr;
bool bShowVertScrollbar = IsShowScrollBar(true);
bool bShowHorzScrollbar = IsShowScrollBar(false);
+
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ FX_FLOAT fWidth = theme ? theme->GetScrollBarWidth() : 0;
if (bShowVertScrollbar) {
if (!m_pVertScrollBar) {
- pfWidth = static_cast<FX_FLOAT*>(
- GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
- FX_FLOAT fWidth = pfWidth ? *pfWidth : 0;
InitVerticalScrollBar();
CFX_RectF rtVertScr;
if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_EDT_OuterScrollbar) {
@@ -1058,12 +1043,6 @@ void CFWL_Edit::LayoutScrollBar() {
if (bShowHorzScrollbar) {
if (!m_pHorzScrollBar) {
- if (!pfWidth) {
- pfWidth = static_cast<FX_FLOAT*>(
- GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
- }
-
- FX_FLOAT fWidth = pfWidth ? *pfWidth : 0;
InitHorizontalScrollBar();
CFX_RectF rtHoriScr;
if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_EDT_OuterScrollbar) {
diff --git a/xfa/fwl/cfwl_form.cpp b/xfa/fwl/cfwl_form.cpp
index a40f74e00c..d0d6ef211c 100644
--- a/xfa/fwl/cfwl_form.cpp
+++ b/xfa/fwl/cfwl_form.cpp
@@ -181,10 +181,9 @@ void CFWL_Form::Layout() {
m_rtRelative = GetRelativeRect();
#ifndef FWL_UseMacSystemBorder
- m_fCXBorder =
- *static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::CXBorder));
- m_fCYBorder =
- *static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::CYBorder));
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ m_fCXBorder = theme ? theme->GetCXBorderSize() : 0.0f;
+ m_fCYBorder = theme ? theme->GetCYBorderSize() : 0.0f;
#endif
}
diff --git a/xfa/fwl/cfwl_listbox.cpp b/xfa/fwl/cfwl_listbox.cpp
index d79e48991e..a7a568cd14 100644
--- a/xfa/fwl/cfwl_listbox.cpp
+++ b/xfa/fwl/cfwl_listbox.cpp
@@ -477,12 +477,12 @@ CFX_SizeF CFWL_ListBox::CalcSize(bool bAutoSize) {
CFX_RectF rtUIMargin;
rtUIMargin.Set(0, 0, 0, 0);
if (!m_pOuter) {
- CFX_RectF* pUIMargin = static_cast<CFX_RectF*>(
- GetThemeCapacity(CFWL_WidgetCapacity::UIMargin));
- if (pUIMargin) {
- m_rtConent.Deflate(pUIMargin->left, pUIMargin->top, pUIMargin->width,
- pUIMargin->height);
- }
+ CFWL_ThemePart part;
+ part.m_pWidget = this;
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ CFX_RectF pUIMargin = theme ? theme->GetUIMargin(&part) : CFX_RectF();
+ m_rtConent.Deflate(pUIMargin.left, pUIMargin.top, pUIMargin.width,
+ pUIMargin.height);
}
FX_FLOAT fWidth = GetMaxTextWidth();
@@ -612,19 +612,15 @@ FX_FLOAT CFWL_ListBox::GetMaxTextWidth() {
}
FX_FLOAT CFWL_ListBox::GetScrollWidth() {
- FX_FLOAT* pfWidth = static_cast<FX_FLOAT*>(
- GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
- if (!pfWidth)
- return 0;
- return *pfWidth;
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ return theme ? theme->GetScrollBarWidth() : 0.0f;
}
FX_FLOAT CFWL_ListBox::CalcItemHeight() {
- FX_FLOAT* pfFont =
- static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::FontSize));
- if (!pfFont)
- return 20;
- return *pfFont + 2 * kItemTextMargin;
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ CFWL_ThemePart part;
+ part.m_pWidget = this;
+ return (theme ? theme->GetFontSize(&part) : 20.0f) + 2 * kItemTextMargin;
}
void CFWL_ListBox::InitVerticalScrollBar() {
diff --git a/xfa/fwl/cfwl_monthcalendar.cpp b/xfa/fwl/cfwl_monthcalendar.cpp
index c779665820..b79dc3ec6c 100644
--- a/xfa/fwl/cfwl_monthcalendar.cpp
+++ b/xfa/fwl/cfwl_monthcalendar.cpp
@@ -541,63 +541,6 @@ void CFWL_MonthCalendar::CalDateItem() {
void CFWL_MonthCalendar::GetCapValue() {
if (!m_pProperties->m_pThemeProvider)
m_pProperties->m_pThemeProvider = GetAvailableTheme();
-
- IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider;
- CFWL_ThemePart part;
- part.m_pWidget = this;
- m_fHeadWid = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::HeaderWidth));
- m_fHeadHei = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::HeaderHeight));
- m_fHeadBtnWid = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::HeaderBtnWidth));
- m_fHeadBtnHei = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::HeaderBtnHeight));
- m_fHeadBtnHMargin = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::HeaderBtnHMargin));
- m_fHeadBtnVMargin = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::HeaderBtnVMargin));
- m_fHeadTextWid = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::HeaderTextWidth));
- m_fHeadTextHei = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::HeaderTextHeight));
- m_fHeadTextHMargin = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::HeaderTextHMargin));
- m_fHeadTextVMargin = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::HeaderTextVMargin));
- m_fHSepWid = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::HSepWidth));
- m_fHSepHei = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::HSepHeight));
- m_fWeekNumWid = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::WeekNumWidth));
- m_fSepDOffset = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::SepDOffset));
- m_fSepX = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::SepX));
- m_fSepY = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::SepY));
- m_fWeekNumHeigh = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::WeekNumHeight));
- m_fWeekWid = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::WeekWidth));
- m_fWeekHei = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::WeekHeight));
- m_fDateCellWid = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::DatesCellWidth));
- m_fDateCellHei = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::DatesCellHeight));
- m_fTodayWid = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::TodayWidth));
- m_fTodayHei = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::TodayHeight));
- m_fTodayFlagWid = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::TodayFlagWidth));
- m_fMCWid = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::Width));
-
- m_fMCHei = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::Height));
}
void CFWL_MonthCalendar::InitDate() {
@@ -826,7 +769,7 @@ void CFWL_MonthCalendar::OnLButtonDown(CFWL_MessageMouse* pMsg) {
} else {
CFWL_DateTimePicker* pIPicker = static_cast<CFWL_DateTimePicker*>(m_pOuter);
if (pIPicker->IsMonthCalendarVisible())
- m_bFlag = 1;
+ m_bFlag = true;
}
}
@@ -871,7 +814,7 @@ void CFWL_MonthCalendar::OnLButtonUp(CFWL_MessageMouse* pMsg) {
} else if (m_bFlag && (!rt.Contains(pMsg->m_fx, pMsg->m_fy))) {
pIPicker->ShowMonthCalendar(false);
}
- m_bFlag = 0;
+ m_bFlag = false;
}
void CFWL_MonthCalendar::DisForm_OnLButtonUp(CFWL_MessageMouse* pMsg) {
diff --git a/xfa/fwl/cfwl_monthcalendar.h b/xfa/fwl/cfwl_monthcalendar.h
index 979f53b136..6c1d0d9246 100644
--- a/xfa/fwl/cfwl_monthcalendar.h
+++ b/xfa/fwl/cfwl_monthcalendar.h
@@ -181,32 +181,6 @@ class CFWL_MonthCalendar : public CFWL_Widget {
CFX_SizeF m_szToday;
CFX_ArrayTemplate<int32_t> m_arrSelDays;
CFX_RectF m_rtClient;
- FX_FLOAT m_fHeadWid;
- FX_FLOAT m_fHeadHei;
- FX_FLOAT m_fHeadBtnWid;
- FX_FLOAT m_fHeadBtnHei;
- FX_FLOAT m_fHeadBtnHMargin;
- FX_FLOAT m_fHeadBtnVMargin;
- FX_FLOAT m_fHeadTextWid;
- FX_FLOAT m_fHeadTextHei;
- FX_FLOAT m_fHeadTextHMargin;
- FX_FLOAT m_fHeadTextVMargin;
- FX_FLOAT m_fHSepWid;
- FX_FLOAT m_fHSepHei;
- FX_FLOAT m_fWeekNumWid;
- FX_FLOAT m_fSepDOffset;
- FX_FLOAT m_fSepX;
- FX_FLOAT m_fSepY;
- FX_FLOAT m_fWeekNumHeigh;
- FX_FLOAT m_fWeekWid;
- FX_FLOAT m_fWeekHei;
- FX_FLOAT m_fDateCellWid;
- FX_FLOAT m_fDateCellHei;
- FX_FLOAT m_fTodayWid;
- FX_FLOAT m_fTodayHei;
- FX_FLOAT m_fTodayFlagWid;
- FX_FLOAT m_fMCWid;
- FX_FLOAT m_fMCHei;
bool m_bFlag;
};
diff --git a/xfa/fwl/cfwl_pushbutton.cpp b/xfa/fwl/cfwl_pushbutton.cpp
index 05f8d256c8..3f0be45d10 100644
--- a/xfa/fwl/cfwl_pushbutton.cpp
+++ b/xfa/fwl/cfwl_pushbutton.cpp
@@ -52,9 +52,6 @@ void CFWL_PushButton::Update() {
UpdateTextOutStyles();
m_rtClient = GetClientRect();
m_rtCaption = m_rtClient;
- FX_FLOAT* fcaption =
- static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::Margin));
- m_rtCaption.Inflate(-*fcaption, -*fcaption);
}
void CFWL_PushButton::DrawWidget(CFX_Graphics* pGraphics,
diff --git a/xfa/fwl/cfwl_scrollbar.cpp b/xfa/fwl/cfwl_scrollbar.cpp
index 016afd6d36..d4dd8885e3 100644
--- a/xfa/fwl/cfwl_scrollbar.cpp
+++ b/xfa/fwl/cfwl_scrollbar.cpp
@@ -20,7 +20,12 @@
#include "xfa/fwl/ifwl_themeprovider.h"
#define FWL_SCROLLBAR_Elapse 500
-#define FWL_SCROLLBAR_MinThumb 5
+
+namespace {
+
+const float kMinThumbSize = 5.0f;
+
+} // namespace
CFWL_ScrollBar::CFWL_ScrollBar(
const CFWL_App* app,
@@ -46,7 +51,6 @@ CFWL_ScrollBar::CFWL_ScrollBar(
m_bMouseDown(false),
m_fButtonLen(0),
m_bMinSize(false),
- m_fMinThumb(FWL_SCROLLBAR_MinThumb),
m_Timer(this) {
m_rtClient.Reset();
m_rtThumb.Reset();
@@ -150,12 +154,8 @@ void CFWL_ScrollBar::DrawThumb(CFX_Graphics* pGraphics,
}
void CFWL_ScrollBar::Layout() {
- IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider;
- CFWL_ThemePart part;
- part.m_pWidget = this;
- m_fMinThumb = *static_cast<FX_FLOAT*>(
- pTheme->GetCapacity(&part, CFWL_WidgetCapacity::Size));
m_rtClient = GetClientRect();
+
CalcButtonLen();
m_rtMinBtn = CalcMinButtonRect();
m_rtMaxBtn = CalcMaxButtonRect();
@@ -226,7 +226,7 @@ CFX_RectF CFWL_ScrollBar::CalcThumbButtonRect(const CFX_RectF& rtThumb) {
fLength = 0.0f;
FX_FLOAT fThumbSize = fLength * fLength / (fRange + fLength);
- fThumbSize = std::max(fThumbSize, m_fMinThumb);
+ fThumbSize = std::max(fThumbSize, kMinThumbSize);
FX_FLOAT fDiff = std::max(fLength - fThumbSize, 0.0f);
FX_FLOAT fTrackPos =
diff --git a/xfa/fwl/cfwl_scrollbar.h b/xfa/fwl/cfwl_scrollbar.h
index 40beb7a3b9..62ce523646 100644
--- a/xfa/fwl/cfwl_scrollbar.h
+++ b/xfa/fwl/cfwl_scrollbar.h
@@ -141,7 +141,6 @@ class CFWL_ScrollBar : public CFWL_Widget {
CFX_RectF m_rtMaxBtn;
CFX_RectF m_rtMinTrack;
CFX_RectF m_rtMaxTrack;
- FX_FLOAT m_fMinThumb;
CFWL_ScrollBar::Timer m_Timer;
};
diff --git a/xfa/fwl/cfwl_widget.cpp b/xfa/fwl/cfwl_widget.cpp
index 7da12fcfba..301ad5fc9d 100644
--- a/xfa/fwl/cfwl_widget.cpp
+++ b/xfa/fwl/cfwl_widget.cpp
@@ -292,11 +292,10 @@ CFX_RectF CFWL_Widget::GetEdgeRect() {
}
FX_FLOAT CFWL_Widget::GetBorderSize(bool bCX) {
- FX_FLOAT* pfBorder = static_cast<FX_FLOAT*>(GetThemeCapacity(
- bCX ? CFWL_WidgetCapacity::CXBorder : CFWL_WidgetCapacity::CYBorder));
- if (!pfBorder)
- return 0;
- return *pfBorder;
+ IFWL_ThemeProvider* theme = GetAvailableTheme();
+ if (!theme)
+ return 0.0f;
+ return bCX ? theme->GetCXBorderSize() : theme->GetCYBorderSize();
}
CFX_RectF CFWL_Widget::GetRelativeRect() {
@@ -306,16 +305,6 @@ CFX_RectF CFWL_Widget::GetRelativeRect() {
return rect;
}
-void* CFWL_Widget::GetThemeCapacity(CFWL_WidgetCapacity dwCapacity) {
- IFWL_ThemeProvider* pTheme = GetAvailableTheme();
- if (!pTheme)
- return nullptr;
-
- CFWL_ThemePart part;
- part.m_pWidget = this;
- return pTheme->GetCapacity(&part, dwCapacity);
-}
-
IFWL_ThemeProvider* CFWL_Widget::GetAvailableTheme() {
if (m_pProperties->m_pThemeProvider)
return m_pProperties->m_pThemeProvider;
diff --git a/xfa/fwl/cfwl_widget.h b/xfa/fwl/cfwl_widget.h
index 759ab1f3e6..74fa314bfd 100644
--- a/xfa/fwl/cfwl_widget.h
+++ b/xfa/fwl/cfwl_widget.h
@@ -124,7 +124,6 @@ class CFWL_Widget : public IFWL_WidgetDelegate {
CFX_RectF GetEdgeRect();
FX_FLOAT GetBorderSize(bool bCX);
CFX_RectF GetRelativeRect();
- void* GetThemeCapacity(CFWL_WidgetCapacity dwCapacity);
IFWL_ThemeProvider* GetAvailableTheme();
CFX_SizeF CalcTextSize(const CFX_WideString& wsText,
IFWL_ThemeProvider* pTheme,
diff --git a/xfa/fwl/ifwl_themeprovider.h b/xfa/fwl/ifwl_themeprovider.h
index 69932e7fc9..c0460fe901 100644
--- a/xfa/fwl/ifwl_themeprovider.h
+++ b/xfa/fwl/ifwl_themeprovider.h
@@ -21,9 +21,16 @@ class IFWL_ThemeProvider {
virtual void DrawBackground(CFWL_ThemeBackground* pParams) = 0;
virtual void DrawText(CFWL_ThemeText* pParams) = 0;
- virtual void* GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity) = 0;
virtual void CalcTextRect(CFWL_ThemeText* pParams, CFX_RectF& rect) = 0;
+ virtual float GetCXBorderSize() const = 0;
+ virtual float GetCYBorderSize() const = 0;
+ virtual CFX_RectF GetUIMargin(CFWL_ThemePart* pThemePart) const = 0;
+ virtual float GetFontSize(CFWL_ThemePart* pThemePart) const = 0;
+ virtual CFGAS_GEFont* GetFont(CFWL_ThemePart* pThemePart) const = 0;
+ virtual float GetLineHeight(CFWL_ThemePart* pThemePart) const = 0;
+ virtual float GetScrollBarWidth() const = 0;
+ virtual FX_COLORREF GetTextColor(CFWL_ThemePart* pThemePart) const = 0;
+ virtual CFX_SizeF GetSpaceAboveBelow(CFWL_ThemePart* pThemePart) const = 0;
};
#endif // XFA_FWL_IFWL_THEMEPROVIDER_H_
diff --git a/xfa/fwl/theme/cfwl_comboboxtp.cpp b/xfa/fwl/theme/cfwl_comboboxtp.cpp
index 10409a8eeb..8f961c9884 100644
--- a/xfa/fwl/theme/cfwl_comboboxtp.cpp
+++ b/xfa/fwl/theme/cfwl_comboboxtp.cpp
@@ -13,12 +13,6 @@
#include "xfa/fxgraphics/cfx_color.h"
#include "xfa/fxgraphics/cfx_path.h"
-namespace {
-
-const float kComboFormHandler = 8.0f;
-
-} // namespace
-
CFWL_ComboBoxTP::CFWL_ComboBoxTP() {}
CFWL_ComboBoxTP::~CFWL_ComboBoxTP() {}
@@ -84,15 +78,6 @@ void CFWL_ComboBoxTP::DrawStrethHandler(CFWL_ThemeBackground* pParams,
pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, &pParams->m_matrix);
}
-void* CFWL_ComboBoxTP::GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity) {
- if (dwCapacity == CFWL_WidgetCapacity::ComboFormHandler) {
- m_fValue = kComboFormHandler;
- return &m_fValue;
- }
- return CFWL_WidgetTP::GetCapacity(pThemePart, dwCapacity);
-}
-
void CFWL_ComboBoxTP::DrawDropDownButton(CFWL_ThemeBackground* pParams,
uint32_t dwStates,
CFX_Matrix* pMatrix) {
diff --git a/xfa/fwl/theme/cfwl_comboboxtp.h b/xfa/fwl/theme/cfwl_comboboxtp.h
index 6abca29d60..e25328101d 100644
--- a/xfa/fwl/theme/cfwl_comboboxtp.h
+++ b/xfa/fwl/theme/cfwl_comboboxtp.h
@@ -17,8 +17,6 @@ class CFWL_ComboBoxTP : public CFWL_WidgetTP {
// CFWL_WidgetTP
bool IsValidWidget(CFWL_Widget* pWidget) override;
void DrawBackground(CFWL_ThemeBackground* pParams) override;
- void* GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity) override;
protected:
void DrawDropDownButton(CFWL_ThemeBackground* pParams,
diff --git a/xfa/fwl/theme/cfwl_monthcalendartp.cpp b/xfa/fwl/theme/cfwl_monthcalendartp.cpp
index a76d959cca..7e9ea0a72f 100644
--- a/xfa/fwl/theme/cfwl_monthcalendartp.cpp
+++ b/xfa/fwl/theme/cfwl_monthcalendartp.cpp
@@ -15,40 +15,6 @@
#include "xfa/fxgraphics/cfx_color.h"
#include "xfa/fxgraphics/cfx_path.h"
-namespace {
-
-const int kWidth = 200;
-const int kHeight = 160;
-
-const int kHeaderWidth = 200;
-const int kHeaderHeight = 30;
-
-const int kButtonWidth = 18;
-const int kButtonHeight = 16;
-const int kButtonHorizontalMargin = 5;
-const int kButtonVerticalMargin = (kHeaderHeight - kButtonHeight) / 2;
-
-const int kHeaderTextWidth = 100;
-const int kHeaderTextHeight = 20;
-const int kHeaderTextHorizontalMargin = (kHeaderWidth - kHeaderTextWidth) / 2;
-const int kHeaderTextVerticalMargin = (kHeaderHeight - kHeaderTextHeight) / 2;
-
-const int kDatesCellWidth = (kHeaderWidth / 7);
-const int kDatesCellHeight = 16;
-const int kWeekWidth = kDatesCellWidth * 7;
-const int kWeekNumWidth = 26;
-const int kWeekNumHeight = (6 * kDatesCellHeight);
-
-const int kHorizontalSeparatorWidth = kWeekWidth - 10;
-const int kHorizontalSeparatorHeight = 1;
-const int kVerticalSeparatorWidth = 1;
-const int kVerticalSeparatorHeight = kWeekNumHeight;
-const int kSeparatorDOffset = -4;
-const int kSeparatorX = 3;
-const int kSeparatorY = kHeaderHeight + kDatesCellHeight + kSeparatorDOffset;
-
-} // namespace
-
CFWL_MonthCalendarTP::CFWL_MonthCalendarTP() : m_pThemeData(new MCThemeData) {
SetThemeData();
}
@@ -130,136 +96,6 @@ void CFWL_MonthCalendarTP::DrawText(CFWL_ThemeText* pParams) {
CFWL_WidgetTP::DrawText(pParams);
}
-void* CFWL_MonthCalendarTP::GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity) {
- bool bDefPro = false;
- bool bDwordVal = false;
- switch (dwCapacity) {
- case CFWL_WidgetCapacity::HeaderWidth: {
- m_fValue = kHeaderWidth;
- break;
- }
- case CFWL_WidgetCapacity::HeaderHeight: {
- m_fValue = kHeaderHeight;
- break;
- }
- case CFWL_WidgetCapacity::HeaderBtnWidth: {
- m_fValue = kButtonWidth;
- break;
- }
- case CFWL_WidgetCapacity::HeaderBtnHeight: {
- m_fValue = kButtonHeight;
- break;
- }
- case CFWL_WidgetCapacity::HeaderBtnHMargin: {
- bDwordVal = true;
- m_dwValue = kButtonHorizontalMargin;
- break;
- }
- case CFWL_WidgetCapacity::HeaderBtnVMargin: {
- m_fValue = kButtonVerticalMargin;
- break;
- }
- case CFWL_WidgetCapacity::HeaderTextWidth: {
- m_fValue = kHeaderTextWidth;
- break;
- }
- case CFWL_WidgetCapacity::HeaderTextHeight: {
- m_fValue = kHeaderTextHeight;
- break;
- }
- case CFWL_WidgetCapacity::HeaderTextHMargin: {
- m_fValue = kHeaderTextHorizontalMargin;
- break;
- }
- case CFWL_WidgetCapacity::HeaderTextVMargin: {
- m_fValue = kHeaderTextVerticalMargin;
- break;
- }
- case CFWL_WidgetCapacity::HSepWidth: {
- m_fValue = kHorizontalSeparatorWidth;
- break;
- }
- case CFWL_WidgetCapacity::HSepHeight: {
- m_fValue = kHorizontalSeparatorHeight;
- break;
- }
- case CFWL_WidgetCapacity::VSepWidth: {
- m_fValue = kVerticalSeparatorWidth;
- break;
- }
- case CFWL_WidgetCapacity::VSepHeight: {
- m_fValue = kVerticalSeparatorHeight;
- break;
- }
- case CFWL_WidgetCapacity::WeekNumWidth: {
- m_fValue = kWeekNumWidth;
- break;
- }
- case CFWL_WidgetCapacity::WeekNumHeight: {
- m_fValue = kWeekNumHeight;
- break;
- }
- case CFWL_WidgetCapacity::WeekWidth: {
- m_fValue = kWeekWidth;
- break;
- }
- case CFWL_WidgetCapacity::WeekHeight: {
- m_fValue = kDatesCellHeight;
- break;
- }
- case CFWL_WidgetCapacity::SepDOffset: {
- m_fValue = kSeparatorDOffset;
- break;
- }
- case CFWL_WidgetCapacity::SepX: {
- m_fValue = kSeparatorX;
- break;
- }
- case CFWL_WidgetCapacity::SepY: {
- m_fValue = kSeparatorY;
- break;
- }
- case CFWL_WidgetCapacity::DatesCellWidth: {
- m_fValue = kDatesCellWidth;
- break;
- }
- case CFWL_WidgetCapacity::DatesCellHeight: {
- m_fValue = kDatesCellHeight;
- break;
- }
- case CFWL_WidgetCapacity::TodayWidth: {
- m_fValue = kHeaderWidth;
- break;
- }
- case CFWL_WidgetCapacity::TodayHeight: {
- m_fValue = kDatesCellHeight;
- break;
- }
- case CFWL_WidgetCapacity::TodayFlagWidth: {
- m_fValue = kDatesCellWidth;
- break;
- }
- case CFWL_WidgetCapacity::Width: {
- m_fValue = kWidth;
- break;
- }
- case CFWL_WidgetCapacity::Height: {
- m_fValue = kHeight;
- break;
- }
- default:
- bDefPro = true;
- break;
- }
- if (!bDefPro) {
- if (bDwordVal)
- return &m_dwValue;
- return &m_fValue;
- }
- return CFWL_WidgetTP::GetCapacity(pThemePart, dwCapacity);
-}
-
void CFWL_MonthCalendarTP::Initialize() {
InitTTO();
CFWL_WidgetTP::Initialize();
diff --git a/xfa/fwl/theme/cfwl_monthcalendartp.h b/xfa/fwl/theme/cfwl_monthcalendartp.h
index a0b1322858..a5ef6313d4 100644
--- a/xfa/fwl/theme/cfwl_monthcalendartp.h
+++ b/xfa/fwl/theme/cfwl_monthcalendartp.h
@@ -22,8 +22,6 @@ class CFWL_MonthCalendarTP : public CFWL_WidgetTP {
bool IsValidWidget(CFWL_Widget* pWidget) override;
void DrawBackground(CFWL_ThemeBackground* pParams) override;
void DrawText(CFWL_ThemeText* pParams) override;
- void* GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity) override;
protected:
struct MCThemeData {
diff --git a/xfa/fwl/theme/cfwl_pushbuttontp.cpp b/xfa/fwl/theme/cfwl_pushbuttontp.cpp
index 5515ffb578..bf3baedd50 100644
--- a/xfa/fwl/theme/cfwl_pushbuttontp.cpp
+++ b/xfa/fwl/theme/cfwl_pushbuttontp.cpp
@@ -83,15 +83,6 @@ void CFWL_PushButtonTP::DrawBackground(CFWL_ThemeBackground* pParams) {
}
}
-void* CFWL_PushButtonTP::GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity) {
- if (dwCapacity == CFWL_WidgetCapacity::Margin) {
- m_fValue = 0;
- return &m_fValue;
- }
- return CFWL_WidgetTP::GetCapacity(pThemePart, dwCapacity);
-}
-
void CFWL_PushButtonTP::Initialize() {
InitTTO();
CFWL_WidgetTP::Initialize();
diff --git a/xfa/fwl/theme/cfwl_pushbuttontp.h b/xfa/fwl/theme/cfwl_pushbuttontp.h
index b0efe036ec..64a0088086 100644
--- a/xfa/fwl/theme/cfwl_pushbuttontp.h
+++ b/xfa/fwl/theme/cfwl_pushbuttontp.h
@@ -21,8 +21,6 @@ class CFWL_PushButtonTP : public CFWL_WidgetTP {
void Finalize() override;
bool IsValidWidget(CFWL_Widget* pWidget) override;
void DrawBackground(CFWL_ThemeBackground* pParams) override;
- void* GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity) override;
protected:
struct PBThemeData {
diff --git a/xfa/fwl/theme/cfwl_scrollbartp.cpp b/xfa/fwl/theme/cfwl_scrollbartp.cpp
index 0129f353ad..7f5d357c43 100644
--- a/xfa/fwl/theme/cfwl_scrollbartp.cpp
+++ b/xfa/fwl/theme/cfwl_scrollbartp.cpp
@@ -29,15 +29,6 @@ bool CFWL_ScrollBarTP::IsValidWidget(CFWL_Widget* pWidget) {
return pWidget && pWidget->GetClassID() == FWL_Type::ScrollBar;
}
-void* CFWL_ScrollBarTP::GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity) {
- if (dwCapacity == CFWL_WidgetCapacity::Size) {
- m_fValue = 5;
- return &m_fValue;
- }
- return CFWL_WidgetTP::GetCapacity(pThemePart, dwCapacity);
-}
-
void CFWL_ScrollBarTP::DrawBackground(CFWL_ThemeBackground* pParams) {
if (!pParams)
return;
diff --git a/xfa/fwl/theme/cfwl_scrollbartp.h b/xfa/fwl/theme/cfwl_scrollbartp.h
index 10138d6cf7..fe625fb8f4 100644
--- a/xfa/fwl/theme/cfwl_scrollbartp.h
+++ b/xfa/fwl/theme/cfwl_scrollbartp.h
@@ -19,8 +19,6 @@ class CFWL_ScrollBarTP : public CFWL_WidgetTP {
// CFWL_WidgetTP
bool IsValidWidget(CFWL_Widget* pWidget) override;
void DrawBackground(CFWL_ThemeBackground* pParams) override;
- void* GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity) override;
protected:
struct SBThemeData {
diff --git a/xfa/fwl/theme/cfwl_widgettp.cpp b/xfa/fwl/theme/cfwl_widgettp.cpp
index 3867257e0c..2d61a4100d 100644
--- a/xfa/fwl/theme/cfwl_widgettp.cpp
+++ b/xfa/fwl/theme/cfwl_widgettp.cpp
@@ -24,20 +24,6 @@
#include "xfa/fxgraphics/cfx_path.h"
#include "xfa/fxgraphics/cfx_shading.h"
-namespace {
-
-const float kEdgeFlat = 2.0f;
-const float kEdgeRaised = 2.0f;
-const float kEdgeSunken = 2.0f;
-const float kLineHeight = 12.0f;
-const float kScrollBarWidth = 17.0f;
-const float kCXBorder = 1.0f;
-const float kCYBorder = 1.0f;
-
-#define FWLTHEME_CAPACITY_TextSelColor (ArgbEncode(255, 153, 193, 218))
-
-} // namespace
-
bool CFWL_WidgetTP::IsValidWidget(CFWL_Widget* pWidget) {
return false;
}
@@ -62,62 +48,6 @@ void CFWL_WidgetTP::DrawText(CFWL_ThemeText* pParams) {
m_pTextOut->DrawLogicText(pParams->m_wsText.c_str(), iLen, pParams->m_rtPart);
}
-void* CFWL_WidgetTP::GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity) {
- switch (dwCapacity) {
- case CFWL_WidgetCapacity::CXBorder: {
- m_fValue = kCXBorder;
- break;
- }
- case CFWL_WidgetCapacity::CYBorder: {
- m_fValue = kCYBorder;
- break;
- }
- case CFWL_WidgetCapacity::EdgeFlat: {
- m_fValue = kEdgeFlat;
- break;
- }
- case CFWL_WidgetCapacity::EdgeRaised: {
- m_fValue = kEdgeRaised;
- break;
- }
- case CFWL_WidgetCapacity::EdgeSunken: {
- m_fValue = kEdgeSunken;
- break;
- }
- case CFWL_WidgetCapacity::FontSize: {
- m_fValue = FWLTHEME_CAPACITY_FontSize;
- break;
- }
- case CFWL_WidgetCapacity::TextColor: {
- m_dwValue = FWLTHEME_CAPACITY_TextColor;
- return &m_dwValue;
- }
- case CFWL_WidgetCapacity::ScrollBarWidth: {
- m_fValue = kScrollBarWidth;
- break;
- }
- case CFWL_WidgetCapacity::Font: {
- return m_pFDEFont;
- }
- case CFWL_WidgetCapacity::TextSelColor: {
- m_dwValue = FWLTHEME_CAPACITY_TextSelColor;
- return &m_dwValue;
- }
- case CFWL_WidgetCapacity::LineHeight: {
- m_fValue = kLineHeight;
- break;
- }
- case CFWL_WidgetCapacity::UIMargin: {
- m_rtMargin.Set(0, 0, 0, 0);
- return &m_rtMargin;
- }
- default:
- return nullptr;
- }
- return &m_fValue;
-}
-
void CFWL_WidgetTP::CalcTextRect(CFWL_ThemeText* pParams, CFX_RectF& rect) {
if (!pParams || !m_pTextOut)
return;
diff --git a/xfa/fwl/theme/cfwl_widgettp.h b/xfa/fwl/theme/cfwl_widgettp.h
index 11135121c0..50dd478cfd 100644
--- a/xfa/fwl/theme/cfwl_widgettp.h
+++ b/xfa/fwl/theme/cfwl_widgettp.h
@@ -16,59 +16,6 @@
#include "xfa/fwl/theme/cfwl_utils.h"
#include "xfa/fxgraphics/cfx_graphics.h"
-enum class CFWL_WidgetCapacity {
- None = 0,
-
- BigIcon,
- ComboFormHandler,
- CXBorder,
- CYBorder,
- CYCaption,
- CYNarrowCaption,
- DatesCellHeight,
- DatesCellWidth,
- EdgeFlat,
- EdgeRaised,
- EdgeSunken,
- Font,
- FontSize,
- HeaderBtnHeight,
- HeaderBtnHMargin,
- HeaderBtnVMargin,
- HeaderBtnWidth,
- HeaderHeight,
- HeaderTextHeight,
- HeaderTextHMargin,
- HeaderTextVMargin,
- HeaderTextWidth,
- HeaderWidth,
- Height,
- HSepHeight,
- HSepWidth,
- LineHeight,
- Margin,
- ScrollBarWidth,
- SepDOffset,
- SepX,
- SepY,
- Size,
- SmallIcon,
- SpaceAboveBelow,
- TextColor,
- TextSelColor,
- TodayFlagWidth,
- TodayHeight,
- TodayWidth,
- UIMargin,
- VSepHeight,
- VSepWidth,
- WeekHeight,
- WeekNumHeight,
- WeekNumWidth,
- WeekWidth,
- Width
-};
-
class CFDE_TextOut;
class CFGAS_GEFont;
class CFWL_ThemeBackground;
@@ -92,10 +39,10 @@ class CFWL_WidgetTP {
virtual void DrawBackground(CFWL_ThemeBackground* pParams);
virtual void DrawText(CFWL_ThemeText* pParams);
- virtual void* GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity);
virtual void CalcTextRect(CFWL_ThemeText* pParams, CFX_RectF& rect);
+ CFGAS_GEFont* GetFont() const { return m_pFDEFont; }
+
void SetFont(CFWL_Widget* pWidget,
const FX_WCHAR* strFont,
FX_FLOAT fFontSize,
@@ -186,9 +133,6 @@ class CFWL_WidgetTP {
uint32_t m_dwRefCount;
std::unique_ptr<CFDE_TextOut> m_pTextOut;
CFGAS_GEFont* m_pFDEFont;
- FX_FLOAT m_fValue;
- uint32_t m_dwValue;
- CFX_RectF m_rtMargin;
};
void FWLTHEME_Release();
diff --git a/xfa/fxfa/app/xfa_ffcheckbutton.cpp b/xfa/fxfa/app/xfa_ffcheckbutton.cpp
index 30ea09ff4d..e8a422ebd6 100644
--- a/xfa/fxfa/app/xfa_ffcheckbutton.cpp
+++ b/xfa/fxfa/app/xfa_ffcheckbutton.cpp
@@ -192,8 +192,7 @@ void CXFA_FFCheckButton::CapLeftRightPlacement(CXFA_Margin mgCap) {
}
}
void CXFA_FFCheckButton::AddUIMargin(int32_t iCapPlacement) {
- CFX_RectF rtUIMargin;
- m_pDataAcc->GetUIMargin(rtUIMargin);
+ CFX_RectF rtUIMargin = m_pDataAcc->GetUIMargin();
m_rtUI.top -= rtUIMargin.top / 2 - rtUIMargin.height / 2;
FX_FLOAT fLeftAddRight = rtUIMargin.left + rtUIMargin.width;
FX_FLOAT fTopAddBottom = rtUIMargin.top + rtUIMargin.height;
diff --git a/xfa/fxfa/app/xfa_fffield.cpp b/xfa/fxfa/app/xfa_fffield.cpp
index 2e15696ab7..0bd6160944 100644
--- a/xfa/fxfa/app/xfa_fffield.cpp
+++ b/xfa/fxfa/app/xfa_fffield.cpp
@@ -135,8 +135,7 @@ void CXFA_FFField::SetEditScrollOffset() {
FX_FLOAT fScrollOffset = 0;
CXFA_FFField* pPrev = static_cast<CXFA_FFField*>(GetPrev());
if (pPrev) {
- CFX_RectF rtMargin;
- m_pDataAcc->GetUIMargin(rtMargin);
+ CFX_RectF rtMargin = m_pDataAcc->GetUIMargin();
fScrollOffset = -rtMargin.top;
}
while (pPrev) {
@@ -265,8 +264,7 @@ void CXFA_FFField::CapPlacement() {
void CXFA_FFField::CapTopBottomPlacement(CXFA_Caption caption,
const CFX_RectF& rtWidget,
int32_t iCapPlacement) {
- CFX_RectF rtUIMargin;
- m_pDataAcc->GetUIMargin(rtUIMargin);
+ CFX_RectF rtUIMargin = m_pDataAcc->GetUIMargin();
m_rtCaption.left += rtUIMargin.left;
if (CXFA_Margin mgCap = caption.GetMargin()) {
XFA_RectWidthoutMargin(m_rtCaption, mgCap);
@@ -292,8 +290,7 @@ void CXFA_FFField::CapTopBottomPlacement(CXFA_Caption caption,
void CXFA_FFField::CapLeftRightPlacement(CXFA_Caption caption,
const CFX_RectF& rtWidget,
int32_t iCapPlacement) {
- CFX_RectF rtUIMargin;
- m_pDataAcc->GetUIMargin(rtUIMargin);
+ CFX_RectF rtUIMargin = m_pDataAcc->GetUIMargin();
m_rtCaption.top += rtUIMargin.top;
m_rtCaption.height -= rtUIMargin.top;
if (CXFA_Margin mgCap = caption.GetMargin()) {
diff --git a/xfa/fxfa/app/xfa_ffimageedit.cpp b/xfa/fxfa/app/xfa_ffimageedit.cpp
index 04ad313a27..3b063d6e98 100644
--- a/xfa/fxfa/app/xfa_ffimageedit.cpp
+++ b/xfa/fxfa/app/xfa_ffimageedit.cpp
@@ -107,8 +107,7 @@ void CXFA_FFImageEdit::SetFWLRect() {
if (!m_pNormalWidget) {
return;
}
- CFX_RectF rtUIMargin;
- m_pDataAcc->GetUIMargin(rtUIMargin);
+ CFX_RectF rtUIMargin = m_pDataAcc->GetUIMargin();
CFX_RectF rtImage(m_rtUI);
rtImage.Deflate(rtUIMargin.left, rtUIMargin.top, rtUIMargin.width,
rtUIMargin.height);
diff --git a/xfa/fxfa/app/xfa_ffwidgetacc.cpp b/xfa/fxfa/app/xfa_ffwidgetacc.cpp
index 3ff159aa41..13145e6448 100644
--- a/xfa/fxfa/app/xfa_ffwidgetacc.cpp
+++ b/xfa/fxfa/app/xfa_ffwidgetacc.cpp
@@ -768,8 +768,7 @@ void CXFA_WidgetAcc::CalcCaptionSize(CFX_SizeF& szCap) {
bool CXFA_WidgetAcc::CalculateFieldAutoSize(CFX_SizeF& size) {
CFX_SizeF szCap;
CalcCaptionSize(szCap);
- CFX_RectF rtUIMargin;
- GetUIMargin(rtUIMargin);
+ CFX_RectF rtUIMargin = GetUIMargin();
size.x += rtUIMargin.left + rtUIMargin.width;
size.y += rtUIMargin.top + rtUIMargin.height;
if (szCap.x > 0 && szCap.y > 0) {
@@ -883,8 +882,7 @@ bool CXFA_WidgetAcc::CalculateTextEditAutoSize(CFX_SizeF& size) {
break;
}
}
- CFX_RectF rtUIMargin;
- GetUIMargin(rtUIMargin);
+ CFX_RectF rtUIMargin = GetUIMargin();
size.x -= rtUIMargin.left + rtUIMargin.width;
CXFA_Margin mgWidget = GetMargin();
if (mgWidget) {
@@ -1168,8 +1166,7 @@ bool CXFA_WidgetAcc::FindSplitPos(int32_t iBlockIndex, FX_FLOAT& fCalcHeight) {
mgWidget.GetTopInset(fTopInset);
mgWidget.GetBottomInset(fBottomInset);
}
- CFX_RectF rtUIMargin;
- GetUIMargin(rtUIMargin);
+ CFX_RectF rtUIMargin = GetUIMargin();
fTopInset += rtUIMargin.top;
fBottomInset += rtUIMargin.width;
}
diff --git a/xfa/fxfa/app/xfa_fwltheme.cpp b/xfa/fxfa/app/xfa_fwltheme.cpp
index c08e51f807..d12678e51b 100644
--- a/xfa/fxfa/app/xfa_fwltheme.cpp
+++ b/xfa/fxfa/app/xfa_fwltheme.cpp
@@ -32,6 +32,8 @@ const FX_WCHAR* const g_FWLTheme_CalFonts[] = {
L"Arial", L"Courier New", L"DejaVu Sans",
};
+const float kLineHeight = 12.0f;
+
} // namespace
CXFA_FFWidget* XFA_ThemeGetOuterWidget(CFWL_Widget* pWidget) {
@@ -54,8 +56,6 @@ CXFA_FWLTheme::CXFA_FWLTheme(CXFA_FFApp* pApp)
m_pCaretTP(new CFWL_CaretTP),
m_pBarcodeTP(new CFWL_BarcodeTP),
m_pTextOut(new CFDE_TextOut),
- m_fCapacity(0.0f),
- m_dwCapacity(0),
m_pCalendarFont(nullptr),
m_pApp(pApp) {
m_Rect.Reset();
@@ -151,84 +151,80 @@ void CXFA_FWLTheme::DrawText(CFWL_ThemeText* pParams) {
pParams->m_wsText.GetLength(), pParams->m_rtPart);
}
-void* CXFA_FWLTheme::GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity) {
- switch (dwCapacity) {
- case CFWL_WidgetCapacity::Font: {
- if (CXFA_FFWidget* pWidget =
- XFA_ThemeGetOuterWidget(pThemePart->m_pWidget)) {
- return pWidget->GetDataAcc()->GetFDEFont();
- }
- break;
- }
- case CFWL_WidgetCapacity::FontSize: {
- if (CXFA_FFWidget* pWidget =
- XFA_ThemeGetOuterWidget(pThemePart->m_pWidget)) {
- m_fCapacity = pWidget->GetDataAcc()->GetFontSize();
- return &m_fCapacity;
- }
- break;
- }
- case CFWL_WidgetCapacity::TextColor: {
- if (CXFA_FFWidget* pWidget =
- XFA_ThemeGetOuterWidget(pThemePart->m_pWidget)) {
- m_dwCapacity = pWidget->GetDataAcc()->GetTextColor();
- return &m_dwCapacity;
- }
- break;
- }
- case CFWL_WidgetCapacity::LineHeight: {
- if (CXFA_FFWidget* pWidget =
- XFA_ThemeGetOuterWidget(pThemePart->m_pWidget)) {
- m_fCapacity = pWidget->GetDataAcc()->GetLineHeight();
- return &m_fCapacity;
- }
- break;
- }
- case CFWL_WidgetCapacity::ScrollBarWidth: {
- m_fCapacity = 9;
- return &m_fCapacity;
- }
- case CFWL_WidgetCapacity::UIMargin: {
- CXFA_FFWidget* pWidget = XFA_ThemeGetOuterWidget(pThemePart->m_pWidget);
- if (pWidget) {
- CXFA_LayoutItem* pItem = pWidget;
- CXFA_WidgetAcc* pWidgetAcc = pWidget->GetDataAcc();
- pWidgetAcc->GetUIMargin(m_Rect);
- if (CXFA_Para para = pWidgetAcc->GetPara()) {
- m_Rect.left += para.GetMarginLeft();
- if (pWidgetAcc->IsMultiLine()) {
- m_Rect.width += para.GetMarginRight();
- }
- }
- if (!pItem->GetPrev()) {
- if (pItem->GetNext()) {
- m_Rect.height = 0;
- }
- } else if (!pItem->GetNext()) {
- m_Rect.top = 0;
- } else {
- m_Rect.top = 0;
- m_Rect.height = 0;
- }
- }
- return &m_Rect;
- }
- case CFWL_WidgetCapacity::SpaceAboveBelow: {
- CXFA_FFWidget* pWidget = XFA_ThemeGetOuterWidget(pThemePart->m_pWidget);
- if (pWidget) {
- CXFA_WidgetAcc* pWidgetAcc = pWidget->GetDataAcc();
- if (CXFA_Para para = pWidgetAcc->GetPara()) {
- m_SizeAboveBelow.x = para.GetSpaceAbove();
- m_SizeAboveBelow.y = para.GetSpaceBelow();
- }
- }
- return &m_SizeAboveBelow;
+CFX_RectF CXFA_FWLTheme::GetUIMargin(CFWL_ThemePart* pThemePart) const {
+ CFX_RectF rect;
+ rect.Reset();
+
+ CXFA_FFWidget* pWidget = XFA_ThemeGetOuterWidget(pThemePart->m_pWidget);
+ if (!pWidget)
+ return rect;
+
+ CXFA_LayoutItem* pItem = pWidget;
+ CXFA_WidgetAcc* pWidgetAcc = pWidget->GetDataAcc();
+ rect = pWidgetAcc->GetUIMargin();
+ if (CXFA_Para para = pWidgetAcc->GetPara()) {
+ rect.left += para.GetMarginLeft();
+ if (pWidgetAcc->IsMultiLine())
+ rect.width += para.GetMarginRight();
+ }
+ if (!pItem->GetPrev()) {
+ if (pItem->GetNext())
+ rect.height = 0;
+ } else if (!pItem->GetNext()) {
+ rect.top = 0;
+ } else {
+ rect.top = 0;
+ rect.height = 0;
+ }
+ return rect;
+}
+
+float CXFA_FWLTheme::GetCXBorderSize() const {
+ return 1.0f;
+}
+
+float CXFA_FWLTheme::GetCYBorderSize() const {
+ return 1.0f;
+}
+
+float CXFA_FWLTheme::GetFontSize(CFWL_ThemePart* pThemePart) const {
+ if (CXFA_FFWidget* pWidget = XFA_ThemeGetOuterWidget(pThemePart->m_pWidget))
+ return pWidget->GetDataAcc()->GetFontSize();
+ return FWLTHEME_CAPACITY_FontSize;
+}
+
+CFGAS_GEFont* CXFA_FWLTheme::GetFont(CFWL_ThemePart* pThemePart) const {
+ if (CXFA_FFWidget* pWidget = XFA_ThemeGetOuterWidget(pThemePart->m_pWidget))
+ return pWidget->GetDataAcc()->GetFDEFont();
+ return GetTheme(pThemePart->m_pWidget)->GetFont();
+}
+
+float CXFA_FWLTheme::GetLineHeight(CFWL_ThemePart* pThemePart) const {
+ if (CXFA_FFWidget* pWidget = XFA_ThemeGetOuterWidget(pThemePart->m_pWidget))
+ return pWidget->GetDataAcc()->GetLineHeight();
+ return kLineHeight;
+}
+
+float CXFA_FWLTheme::GetScrollBarWidth() const {
+ return 9.0f;
+}
+
+FX_COLORREF CXFA_FWLTheme::GetTextColor(CFWL_ThemePart* pThemePart) const {
+ if (CXFA_FFWidget* pWidget = XFA_ThemeGetOuterWidget(pThemePart->m_pWidget))
+ return pWidget->GetDataAcc()->GetTextColor();
+ return FWLTHEME_CAPACITY_TextColor;
+}
+
+CFX_SizeF CXFA_FWLTheme::GetSpaceAboveBelow(CFWL_ThemePart* pThemePart) const {
+ CFX_SizeF sizeAboveBelow;
+ if (CXFA_FFWidget* pWidget = XFA_ThemeGetOuterWidget(pThemePart->m_pWidget)) {
+ CXFA_WidgetAcc* pWidgetAcc = pWidget->GetDataAcc();
+ if (CXFA_Para para = pWidgetAcc->GetPara()) {
+ sizeAboveBelow.x = para.GetSpaceAbove();
+ sizeAboveBelow.y = para.GetSpaceBelow();
}
- default:
- break;
}
- return GetTheme(pThemePart->m_pWidget)->GetCapacity(pThemePart, dwCapacity);
+ return sizeAboveBelow;
}
void CXFA_FWLTheme::CalcTextRect(CFWL_ThemeText* pParams, CFX_RectF& rect) {
@@ -263,7 +259,7 @@ void CXFA_FWLTheme::CalcTextRect(CFWL_ThemeText* pParams, CFX_RectF& rect) {
pParams->m_wsText.GetLength(), rect);
}
-CFWL_WidgetTP* CXFA_FWLTheme::GetTheme(CFWL_Widget* pWidget) {
+CFWL_WidgetTP* CXFA_FWLTheme::GetTheme(CFWL_Widget* pWidget) const {
switch (pWidget->GetClassID()) {
case FWL_Type::CheckBox:
return m_pCheckBoxTP.get();
diff --git a/xfa/fxfa/app/xfa_fwltheme.h b/xfa/fxfa/app/xfa_fwltheme.h
index 98fd74c315..f8b804893a 100644
--- a/xfa/fxfa/app/xfa_fwltheme.h
+++ b/xfa/fxfa/app/xfa_fwltheme.h
@@ -32,12 +32,20 @@ class CXFA_FWLTheme final : public IFWL_ThemeProvider {
// IFWL_ThemeProvider:
void DrawBackground(CFWL_ThemeBackground* pParams) override;
void DrawText(CFWL_ThemeText* pParams) override;
- void* GetCapacity(CFWL_ThemePart* pThemePart,
- CFWL_WidgetCapacity dwCapacity) override;
void CalcTextRect(CFWL_ThemeText* pParams, CFX_RectF& rect) override;
+ float GetCXBorderSize() const override;
+ float GetCYBorderSize() const override;
+ CFX_RectF GetUIMargin(CFWL_ThemePart* pThemePart) const override;
+ float GetFontSize(CFWL_ThemePart* pThemePart) const override;
+ CFGAS_GEFont* GetFont(CFWL_ThemePart* pThemePart) const override;
+ float GetLineHeight(CFWL_ThemePart* pThemePart) const override;
+ float GetScrollBarWidth() const override;
+ FX_COLORREF GetTextColor(CFWL_ThemePart* pThemePart) const override;
+ CFX_SizeF GetSpaceAboveBelow(CFWL_ThemePart* pThemePart) const override;
private:
- CFWL_WidgetTP* GetTheme(CFWL_Widget* pWidget);
+ CFWL_WidgetTP* GetTheme(CFWL_Widget* pWidget) const;
+
std::unique_ptr<CFWL_CheckBoxTP> m_pCheckBoxTP;
std::unique_ptr<CFWL_ListBoxTP> m_pListBoxTP;
std::unique_ptr<CFWL_PictureBoxTP> m_pPictureBoxTP;
@@ -50,13 +58,10 @@ class CXFA_FWLTheme final : public IFWL_ThemeProvider {
std::unique_ptr<CFWL_CaretTP> m_pCaretTP;
std::unique_ptr<CFWL_BarcodeTP> m_pBarcodeTP;
std::unique_ptr<CFDE_TextOut> m_pTextOut;
- FX_FLOAT m_fCapacity;
- uint32_t m_dwCapacity;
CFGAS_GEFont* m_pCalendarFont;
CFX_WideString m_wsResource;
CXFA_FFApp* const m_pApp;
CFX_RectF m_Rect;
- CFX_SizeF m_SizeAboveBelow;
};
CXFA_FFWidget* XFA_ThemeGetOuterWidget(CFWL_Widget* pWidget);
diff --git a/xfa/fxfa/parser/cxfa_widgetdata.cpp b/xfa/fxfa/parser/cxfa_widgetdata.cpp
index 48a26aafad..80c50b781e 100644
--- a/xfa/fxfa/parser/cxfa_widgetdata.cpp
+++ b/xfa/fxfa/parser/cxfa_widgetdata.cpp
@@ -399,29 +399,27 @@ bool CXFA_WidgetData::GetMaxHeight(FX_FLOAT& fMaxHeight) {
return TryMeasure(XFA_ATTRIBUTE_MaxH, fMaxHeight);
}
-CXFA_Border CXFA_WidgetData::GetUIBorder(bool bModified) {
+CXFA_Border CXFA_WidgetData::GetUIBorder() {
CXFA_Node* pUIChild = GetUIChild();
- return CXFA_Border(
- pUIChild ? pUIChild->GetProperty(0, XFA_Element::Border, bModified)
- : nullptr);
+ return CXFA_Border(pUIChild
+ ? pUIChild->GetProperty(0, XFA_Element::Border, false)
+ : nullptr);
}
-CXFA_Margin CXFA_WidgetData::GetUIMargin(bool bModified) {
+CFX_RectF CXFA_WidgetData::GetUIMargin() {
+ CFX_RectF rtUIMargin;
+ rtUIMargin.Reset();
+
CXFA_Node* pUIChild = GetUIChild();
- return CXFA_Margin(
- pUIChild ? pUIChild->GetProperty(0, XFA_Element::Margin, bModified)
+ CXFA_Margin mgUI = CXFA_Margin(
+ pUIChild ? pUIChild->GetProperty(0, XFA_Element::Margin, false)
: nullptr);
-}
-
-void CXFA_WidgetData::GetUIMargin(CFX_RectF& rtUIMargin) {
- rtUIMargin.Reset();
- CXFA_Margin mgUI = GetUIMargin();
if (!mgUI)
- return;
+ return rtUIMargin;
CXFA_Border border = GetUIBorder();
if (border && border.GetPresence() != XFA_ATTRIBUTEENUM_Visible)
- return;
+ return rtUIMargin;
FX_FLOAT fLeftInset, fTopInset, fRightInset, fBottomInset;
bool bLeft = mgUI.GetLeftInset(fLeftInset);
@@ -446,6 +444,7 @@ void CXFA_WidgetData::GetUIMargin(CFX_RectF& rtUIMargin) {
}
}
rtUIMargin.Set(fLeftInset, fTopInset, fRightInset, fBottomInset);
+ return rtUIMargin;
}
int32_t CXFA_WidgetData::GetButtonHighlight() {
diff --git a/xfa/fxfa/parser/cxfa_widgetdata.h b/xfa/fxfa/parser/cxfa_widgetdata.h
index 0079996735..7986fa9d82 100644
--- a/xfa/fxfa/parser/cxfa_widgetdata.h
+++ b/xfa/fxfa/parser/cxfa_widgetdata.h
@@ -69,9 +69,8 @@ class CXFA_WidgetData : public CXFA_Data {
bool GetMinHeight(FX_FLOAT& fMinHeight);
bool GetMaxWidth(FX_FLOAT& fMaxWidth);
bool GetMaxHeight(FX_FLOAT& fMaxHeight);
- CXFA_Border GetUIBorder(bool bModified = false);
- CXFA_Margin GetUIMargin(bool bModified = false);
- void GetUIMargin(CFX_RectF& rtUIMargin);
+ CXFA_Border GetUIBorder();
+ CFX_RectF GetUIMargin();
int32_t GetButtonHighlight();
bool GetButtonRollover(CFX_WideString& wsRollover, bool& bRichText);
bool GetButtonDown(CFX_WideString& wsDown, bool& bRichText);