Chromium Code Reviews| Index: xfa/fwl/cfwl_widget.cpp |
| diff --git a/xfa/fwl/cfwl_widget.cpp b/xfa/fwl/cfwl_widget.cpp |
| index 4da576423a411ffa7ad12c9f9e8bb318af369656..762ab831578225932eae39021a25a50945fbc123 100644 |
| --- a/xfa/fwl/cfwl_widget.cpp |
| +++ b/xfa/fwl/cfwl_widget.cpp |
| @@ -92,12 +92,13 @@ void CFWL_Widget::SetWidgetRect(const CFX_RectF& rect) { |
| m_pWidgetMgr->SetWidgetRect_Native(this, rect); |
| } |
| -void CFWL_Widget::GetClientRect(CFX_RectF& rect) { |
| - GetEdgeRect(rect); |
| +CFX_RectF CFWL_Widget::GetClientRect() { |
| + CFX_RectF rect = GetEdgeRect(); |
| if (HasEdge()) { |
| FX_FLOAT fEdge = GetEdgeWidth(); |
| rect.Deflate(fEdge, fEdge); |
| } |
| + return rect; |
| } |
| void CFWL_Widget::SetParent(CFWL_Widget* pParent) { |
| @@ -162,22 +163,12 @@ void CFWL_Widget::RemoveStates(uint32_t dwStates) { |
| } |
| FWL_WidgetHit CFWL_Widget::HitTest(FX_FLOAT fx, FX_FLOAT fy) { |
| - CFX_RectF rtClient; |
| - GetClientRect(rtClient); |
| - if (rtClient.Contains(fx, fy)) |
| + if (GetClientRect().Contains(fx, fy)) |
| return FWL_WidgetHit::Client; |
| - if (HasEdge()) { |
| - CFX_RectF rtEdge; |
| - GetEdgeRect(rtEdge); |
| - if (rtEdge.Contains(fx, fy)) |
| - return FWL_WidgetHit::Edge; |
| - } |
| - if (HasBorder()) { |
| - CFX_RectF rtRelative; |
| - GetRelativeRect(rtRelative); |
| - if (rtRelative.Contains(fx, fy)) |
| - return FWL_WidgetHit::Border; |
| - } |
| + if (HasEdge() && GetEdgeRect().Contains(fx, fy)) |
|
Tom Sepez
2016/12/08 19:16:20
nice.
|
| + return FWL_WidgetHit::Edge; |
| + if (HasBorder() && GetRelativeRect().Contains(fx, fy)) |
| + return FWL_WidgetHit::Border; |
| return FWL_WidgetHit::Unknown; |
| } |
| @@ -317,14 +308,15 @@ bool CFWL_Widget::IsOffscreen() const { |
| return !!(m_pProperties->m_dwStyles & FWL_WGTSTYLE_Offscreen); |
| } |
| -void CFWL_Widget::GetEdgeRect(CFX_RectF& rtEdge) { |
| - rtEdge = m_pProperties->m_rtWidget; |
| +CFX_RectF CFWL_Widget::GetEdgeRect() { |
| + CFX_RectF rtEdge = m_pProperties->m_rtWidget; |
| rtEdge.left = rtEdge.top = 0; |
| if (HasBorder()) { |
| FX_FLOAT fCX = GetBorderSize(true); |
| FX_FLOAT fCY = GetBorderSize(false); |
| rtEdge.Deflate(fCX, fCY); |
| } |
| + return rtEdge; |
| } |
| FX_FLOAT CFWL_Widget::GetBorderSize(bool bCX) { |
| @@ -358,9 +350,10 @@ FX_FLOAT CFWL_Widget::GetEdgeWidth() { |
| return 0; |
| } |
| -void CFWL_Widget::GetRelativeRect(CFX_RectF& rect) { |
| - rect = m_pProperties->m_rtWidget; |
| +CFX_RectF CFWL_Widget::GetRelativeRect() { |
| + CFX_RectF rect = m_pProperties->m_rtWidget; |
| rect.left = rect.top = 0; |
|
Tom Sepez
2016/12/08 19:16:20
nit: separate lines.
dsinclair
2016/12/08 19:20:47
Done.
|
| + return rect; |
| } |
| void* CFWL_Widget::GetThemeCapacity(CFWL_WidgetCapacity dwCapacity) { |
| @@ -602,30 +595,28 @@ void CFWL_Widget::DispatchEvent(CFWL_Event* pEvent) { |
| pNoteDriver->SendEvent(pEvent); |
| } |
| -void CFWL_Widget::Repaint(const CFX_RectF* pRect) { |
| - if (pRect) { |
| - m_pWidgetMgr->RepaintWidget(this, pRect); |
| - return; |
| - } |
| +void CFWL_Widget::Repaint() { |
| CFX_RectF rect; |
| rect = m_pProperties->m_rtWidget; |
| rect.left = rect.top = 0; |
|
Tom Sepez
2016/12/08 19:16:20
ditto
dsinclair
2016/12/08 19:20:47
Done.
|
| - m_pWidgetMgr->RepaintWidget(this, &rect); |
| + RepaintRect(rect); |
| +} |
| + |
| +void CFWL_Widget::RepaintRect(const CFX_RectF& pRect) { |
| + m_pWidgetMgr->RepaintWidget(this, pRect); |
| } |
| void CFWL_Widget::DrawBackground(CFX_Graphics* pGraphics, |
| CFWL_Part iPartBk, |
| IFWL_ThemeProvider* pTheme, |
| const CFX_Matrix* pMatrix) { |
| - CFX_RectF rtRelative; |
| - GetRelativeRect(rtRelative); |
| CFWL_ThemeBackground param; |
| param.m_pWidget = this; |
| param.m_iPart = iPartBk; |
| param.m_pGraphics = pGraphics; |
| if (pMatrix) |
| param.m_matrix.Concat(*pMatrix, true); |
| - param.m_rtPart = rtRelative; |
| + param.m_rtPart = GetRelativeRect(); |
| pTheme->DrawBackground(¶m); |
| } |
| @@ -633,15 +624,13 @@ void CFWL_Widget::DrawBorder(CFX_Graphics* pGraphics, |
| CFWL_Part iPartBorder, |
| IFWL_ThemeProvider* pTheme, |
| const CFX_Matrix* pMatrix) { |
| - CFX_RectF rtRelative; |
| - GetRelativeRect(rtRelative); |
| CFWL_ThemeBackground param; |
| param.m_pWidget = this; |
| param.m_iPart = iPartBorder; |
| param.m_pGraphics = pGraphics; |
| if (pMatrix) |
| param.m_matrix.Concat(*pMatrix, true); |
| - param.m_rtPart = rtRelative; |
| + param.m_rtPart = GetRelativeRect(); |
| pTheme->DrawBackground(¶m); |
| } |
| @@ -649,15 +638,13 @@ void CFWL_Widget::DrawEdge(CFX_Graphics* pGraphics, |
| CFWL_Part iPartEdge, |
| IFWL_ThemeProvider* pTheme, |
| const CFX_Matrix* pMatrix) { |
| - CFX_RectF rtEdge; |
| - GetEdgeRect(rtEdge); |
| CFWL_ThemeBackground param; |
| param.m_pWidget = this; |
| param.m_iPart = iPartEdge; |
| param.m_pGraphics = pGraphics; |
| if (pMatrix) |
| param.m_matrix.Concat(*pMatrix, true); |
| - param.m_rtPart = rtEdge; |
| + param.m_rtPart = GetEdgeRect(); |
| pTheme->DrawBackground(¶m); |
| } |