Move CFWL_WidgetProperties::m_WidgetRect to CFWL_Widget.
It is always passed in as an empty rect by the callers during
construction of a widget, so there is no reason to keep it in
the properties struct used by said callers.
Change-Id: Ib4b467d58a7c766e7de113b9de2946099e094013
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/72774
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/xfa/fwl/cfwl_checkbox.cpp b/xfa/fwl/cfwl_checkbox.cpp
index 458fb45..a614f84 100644
--- a/xfa/fwl/cfwl_checkbox.cpp
+++ b/xfa/fwl/cfwl_checkbox.cpp
@@ -107,10 +107,8 @@
}
void CFWL_CheckBox::Layout() {
- GetProperties()->m_WidgetRect.width =
- FXSYS_roundf(GetProperties()->m_WidgetRect.width);
- GetProperties()->m_WidgetRect.height =
- FXSYS_roundf(GetProperties()->m_WidgetRect.height);
+ m_WidgetRect.width = FXSYS_roundf(m_WidgetRect.width);
+ m_WidgetRect.height = FXSYS_roundf(m_WidgetRect.height);
m_ClientRect = GetClientRect();
float fTextLeft = m_ClientRect.left + m_fBoxHeight;
diff --git a/xfa/fwl/cfwl_combobox.cpp b/xfa/fwl/cfwl_combobox.cpp
index 1e7fdbc..23bdcde 100644
--- a/xfa/fwl/cfwl_combobox.cpp
+++ b/xfa/fwl/cfwl_combobox.cpp
@@ -80,8 +80,8 @@
}
FWL_WidgetHit CFWL_ComboBox::HitTest(const CFX_PointF& point) {
- CFX_RectF rect(0, 0, GetProperties()->m_WidgetRect.width - m_BtnRect.width,
- GetProperties()->m_WidgetRect.height);
+ CFX_RectF rect(0, 0, m_WidgetRect.width - m_BtnRect.width,
+ m_WidgetRect.height);
if (rect.Contains(point))
return FWL_WidgetHit::Edit;
if (m_BtnRect.Contains(point))
@@ -183,7 +183,7 @@
}
CFX_RectF CFWL_ComboBox::GetBBox() const {
- CFX_RectF rect = GetProperties()->m_WidgetRect;
+ CFX_RectF rect = m_WidgetRect;
if (!m_pListBox || !IsDropListVisible())
return rect;
@@ -224,10 +224,8 @@
fPopupMin = fItemHeight * 3 + fBorder * 2;
float fPopupMax = fItemHeight * iItems + fBorder * 2;
- CFX_RectF rtList(m_ClientRect.left, 0, GetProperties()->m_WidgetRect.width,
- 0);
- GetPopupPos(fPopupMin, fPopupMax, GetProperties()->m_WidgetRect, &rtList);
-
+ CFX_RectF rtList(m_ClientRect.left, 0, m_WidgetRect.width, 0);
+ GetPopupPos(fPopupMin, fPopupMax, m_WidgetRect, &rtList);
m_pListBox->SetWidgetRect(rtList);
m_pListBox->Update();
}
diff --git a/xfa/fwl/cfwl_combolist.cpp b/xfa/fwl/cfwl_combolist.cpp
index 46f6e9c..c6fb591 100644
--- a/xfa/fwl/cfwl_combolist.cpp
+++ b/xfa/fwl/cfwl_combolist.cpp
@@ -64,8 +64,7 @@
}
CFX_PointF CFWL_ComboList::ClientToOuter(const CFX_PointF& point) {
- return point + CFX_PointF(GetProperties()->m_WidgetRect.left,
- GetProperties()->m_WidgetRect.top);
+ return point + CFX_PointF(m_WidgetRect.left, m_WidgetRect.top);
}
void CFWL_ComboList::OnProcessMessage(CFWL_Message* pMessage) {
@@ -225,9 +224,7 @@
SetSelection(hItem, hItem, true);
ScrollToVisible(hItem);
- CFX_RectF rtInvalidate(0, 0, GetProperties()->m_WidgetRect.width,
- GetProperties()->m_WidgetRect.height);
- RepaintRect(rtInvalidate);
+ RepaintRect(CFX_RectF(0, 0, m_WidgetRect.width, m_WidgetRect.height));
break;
}
default:
diff --git a/xfa/fwl/cfwl_datetimepicker.cpp b/xfa/fwl/cfwl_datetimepicker.cpp
index c27bb07..4a0addb 100644
--- a/xfa/fwl/cfwl_datetimepicker.cpp
+++ b/xfa/fwl/cfwl_datetimepicker.cpp
@@ -69,8 +69,7 @@
}
FWL_WidgetHit CFWL_DateTimePicker::HitTest(const CFX_PointF& point) {
- CFX_RectF rect(0, 0, GetProperties()->m_WidgetRect.width,
- GetProperties()->m_WidgetRect.height);
+ CFX_RectF rect(0, 0, m_WidgetRect.width, m_WidgetRect.height);
if (rect.Contains(point))
return FWL_WidgetHit::Edit;
if (NeedsToShowButton())
@@ -158,15 +157,14 @@
}
CFX_RectF CFWL_DateTimePicker::GetBBox() const {
- CFX_RectF rect = GetProperties()->m_WidgetRect;
+ CFX_RectF rect = m_WidgetRect;
if (NeedsToShowButton())
rect.width += m_fBtn;
if (!IsMonthCalendarVisible())
return rect;
CFX_RectF rtMonth = m_pMonthCal->GetWidgetRect();
- rtMonth.Offset(GetProperties()->m_WidgetRect.left,
- GetProperties()->m_WidgetRect.top);
+ rtMonth.Offset(m_WidgetRect.left, m_WidgetRect.top);
rect.Union(rtMonth);
return rect;
}
@@ -206,7 +204,7 @@
CFX_RectF rtMonthCal = m_pMonthCal->GetAutosizedWidgetRect();
float fPopupMin = rtMonthCal.height;
float fPopupMax = rtMonthCal.height;
- CFX_RectF rtAnchor(GetProperties()->m_WidgetRect);
+ CFX_RectF rtAnchor = m_WidgetRect;
rtAnchor.width = rtMonthCal.width;
rtMonthCal.left = m_ClientRect.left;
rtMonthCal.top = rtAnchor.Height();
@@ -226,9 +224,7 @@
m_pEdit->GetDelegate()->OnProcessMessage(&msg);
}
- CFX_RectF rtInvalidate(0, 0, GetProperties()->m_WidgetRect.width,
- GetProperties()->m_WidgetRect.height);
-
+ CFX_RectF rtInvalidate(0, 0, m_WidgetRect.width, m_WidgetRect.height);
CFX_RectF rtCal = m_pMonthCal->GetWidgetRect();
rtInvalidate.Union(rtCal);
rtInvalidate.Inflate(2, 2);
@@ -365,8 +361,8 @@
if (bSet) {
GetProperties()->m_dwStates |= FWL_WGTSTATE_Focused;
if (m_pEdit && !(m_pEdit->GetStylesEx() & FWL_STYLEEXT_EDT_ReadOnly)) {
- m_BtnRect = CFX_RectF(GetProperties()->m_WidgetRect.width, 0, m_fBtn,
- GetProperties()->m_WidgetRect.height - 1);
+ m_BtnRect =
+ CFX_RectF(m_WidgetRect.width, 0, m_fBtn, m_WidgetRect.height - 1);
}
rtInvalidate = m_BtnRect;
pMsg->SetDstTarget(m_pEdit.get());
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp
index c5b4b74..2492e4d 100644
--- a/xfa/fwl/cfwl_edit.cpp
+++ b/xfa/fwl/cfwl_edit.cpp
@@ -63,7 +63,7 @@
}
CFX_RectF CFWL_Edit::GetWidgetRect() {
- CFX_RectF rect = GetProperties()->m_WidgetRect;
+ CFX_RectF rect = m_WidgetRect;
if (GetProperties()->m_dwStyleExes & FWL_STYLEEXT_EDT_OuterScrollbar) {
float scrollbarWidth = GetThemeProvider()->GetScrollBarWidth();
if (IsShowScrollBar(true)) {
@@ -864,11 +864,9 @@
}
CFWL_Widget* pOuter = this;
- pRect->Offset(GetProperties()->m_WidgetRect.left,
- GetProperties()->m_WidgetRect.top);
+ pRect->Offset(m_WidgetRect.left, m_WidgetRect.top);
while (pOuter->GetOuter()) {
pOuter = pOuter->GetOuter();
-
CFX_RectF rtOuter = pOuter->GetWidgetRect();
pRect->Offset(rtOuter.left, rtOuter.top);
}
@@ -1051,9 +1049,7 @@
if (!bRepaint)
return;
- CFX_RectF rtInvalidate(0, 0, GetProperties()->m_WidgetRect.width,
- GetProperties()->m_WidgetRect.height);
- RepaintRect(rtInvalidate);
+ RepaintRect(CFX_RectF(0, 0, m_WidgetRect.width, m_WidgetRect.height));
}
void CFWL_Edit::OnLButtonDown(CFWL_MessageMouse* pMsg) {
diff --git a/xfa/fwl/cfwl_listbox.cpp b/xfa/fwl/cfwl_listbox.cpp
index c5992ad..f4ac843 100644
--- a/xfa/fwl/cfwl_listbox.cpp
+++ b/xfa/fwl/cfwl_listbox.cpp
@@ -789,9 +789,7 @@
SetFocusItem(pItem);
ScrollToVisible(pItem);
-
- RepaintRect(CFX_RectF(0, 0, GetProperties()->m_WidgetRect.width,
- GetProperties()->m_WidgetRect.height));
+ RepaintRect(CFX_RectF(0, 0, m_WidgetRect.width, m_WidgetRect.height));
}
bool CFWL_ListBox::OnScroll(CFWL_ScrollBar* pScrollBar,
diff --git a/xfa/fwl/cfwl_widget.cpp b/xfa/fwl/cfwl_widget.cpp
index 9a634eb..aeb819f 100644
--- a/xfa/fwl/cfwl_widget.cpp
+++ b/xfa/fwl/cfwl_widget.cpp
@@ -59,7 +59,7 @@
}
CFX_RectF CFWL_Widget::GetWidgetRect() {
- return m_pProperties->m_WidgetRect;
+ return m_WidgetRect;
}
void CFWL_Widget::InflateWidgetRect(CFX_RectF& rect) {
@@ -71,7 +71,7 @@
}
void CFWL_Widget::SetWidgetRect(const CFX_RectF& rect) {
- m_pProperties->m_WidgetRect = rect;
+ m_WidgetRect = rect;
}
CFX_RectF CFWL_Widget::GetClientRect() {
@@ -204,8 +204,7 @@
}
CFX_RectF CFWL_Widget::GetEdgeRect() const {
- CFX_RectF rtEdge(0, 0, m_pProperties->m_WidgetRect.width,
- m_pProperties->m_WidgetRect.height);
+ CFX_RectF rtEdge(0, 0, m_WidgetRect.width, m_WidgetRect.height);
if (HasBorder())
rtEdge.Deflate(GetCXBorderSize(), GetCYBorderSize());
return rtEdge;
@@ -220,8 +219,7 @@
}
CFX_RectF CFWL_Widget::GetRelativeRect() const {
- return CFX_RectF(0, 0, m_pProperties->m_WidgetRect.width,
- m_pProperties->m_WidgetRect.height);
+ return CFX_RectF(0, 0, m_WidgetRect.width, m_WidgetRect.height);
}
CFX_SizeF CFWL_Widget::CalcTextSize(const WideString& wsText,
@@ -315,10 +313,8 @@
if (pParent == this)
return CFX_SizeF();
+ CFX_SizeF szRet(m_WidgetRect.left, m_WidgetRect.top);
CFWL_WidgetMgr* pWidgetMgr = GetOwnerApp()->GetWidgetMgr();
- CFX_SizeF szRet(m_pProperties->m_WidgetRect.left,
- m_pProperties->m_WidgetRect.top);
-
CFWL_Widget* pDstWidget = GetParent();
while (pDstWidget && pDstWidget != pParent) {
CFX_RectF rtDst = pDstWidget->GetWidgetRect();
diff --git a/xfa/fwl/cfwl_widget.h b/xfa/fwl/cfwl_widget.h
index d99fbef..c475aa9 100644
--- a/xfa/fwl/cfwl_widget.h
+++ b/xfa/fwl/cfwl_widget.h
@@ -155,6 +155,8 @@
CFWL_Part iPartBorder,
const CFX_Matrix& pMatrix);
+ CFX_RectF m_WidgetRect;
+
private:
void LockUpdate() { m_iLock++; }
void UnlockUpdate() {
diff --git a/xfa/fwl/cfwl_widgetproperties.cpp b/xfa/fwl/cfwl_widgetproperties.cpp
index 4dc3cd5..f592d7b 100644
--- a/xfa/fwl/cfwl_widgetproperties.cpp
+++ b/xfa/fwl/cfwl_widgetproperties.cpp
@@ -8,4 +8,7 @@
CFWL_WidgetProperties::CFWL_WidgetProperties() = default;
+CFWL_WidgetProperties::CFWL_WidgetProperties(
+ const CFWL_WidgetProperties& that) = default;
+
CFWL_WidgetProperties::~CFWL_WidgetProperties() = default;
diff --git a/xfa/fwl/cfwl_widgetproperties.h b/xfa/fwl/cfwl_widgetproperties.h
index 6733306..8d3c8ec 100644
--- a/xfa/fwl/cfwl_widgetproperties.h
+++ b/xfa/fwl/cfwl_widgetproperties.h
@@ -7,19 +7,18 @@
#ifndef XFA_FWL_CFWL_WIDGETPROPERTIES_H_
#define XFA_FWL_CFWL_WIDGETPROPERTIES_H_
-#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/fx_system.h"
#include "xfa/fwl/fwl_widgetdef.h"
class CFWL_WidgetProperties {
public:
CFWL_WidgetProperties();
+ CFWL_WidgetProperties(const CFWL_WidgetProperties& that);
~CFWL_WidgetProperties();
uint32_t m_dwStyles = FWL_WGTSTYLE_Child;
uint32_t m_dwStyleExes = 0;
uint32_t m_dwStates = 0;
- CFX_RectF m_WidgetRect;
};
#endif // XFA_FWL_CFWL_WIDGETPROPERTIES_H_