diff options
Diffstat (limited to 'xfa/fxfa/layout/cxfa_contentlayoutitem.h')
-rw-r--r-- | xfa/fxfa/layout/cxfa_contentlayoutitem.h | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/xfa/fxfa/layout/cxfa_contentlayoutitem.h b/xfa/fxfa/layout/cxfa_contentlayoutitem.h index 063f9a369..8131d0df7 100644 --- a/xfa/fxfa/layout/cxfa_contentlayoutitem.h +++ b/xfa/fxfa/layout/cxfa_contentlayoutitem.h @@ -1,4 +1,4 @@ -// Copyright 2016 PDFium Authors. All rights reserved. +// Copyright 2016 The PDFium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,51 +7,52 @@ #ifndef XFA_FXFA_LAYOUT_CXFA_CONTENTLAYOUTITEM_H_ #define XFA_FXFA_LAYOUT_CXFA_CONTENTLAYOUTITEM_H_ -#include <memory> - -#include "core/fxcrt/retain_ptr.h" -#include "core/fxcrt/unowned_ptr.h" +#include "core/fxcrt/fx_coordinates.h" +#include "core/fxcrt/mask.h" +#include "v8/include/cppgc/persistent.h" +#include "xfa/fxfa/fxfa.h" #include "xfa/fxfa/layout/cxfa_layoutitem.h" class CXFA_FFWidget; -class CXFA_ContentLayoutItem : public CXFA_LayoutItem { +class CXFA_ContentLayoutItem final : public CXFA_LayoutItem { public: - template <typename T, typename... Args> - friend RetainPtr<T> pdfium::MakeRetain(Args&&... args); - + CONSTRUCT_VIA_MAKE_GARBAGE_COLLECTED; ~CXFA_ContentLayoutItem() override; - CXFA_FFWidget* GetFFWidget() { return m_pFFWidget.get(); } + void Trace(cppgc::Visitor* visitor) const override; + + CXFA_FFWidget* GetFFWidget() { return m_pFFWidget; } CXFA_ContentLayoutItem* GetFirst(); CXFA_ContentLayoutItem* GetLast(); - CXFA_ContentLayoutItem* GetPrev() const { return m_pPrev.Get(); } - CXFA_ContentLayoutItem* GetNext() const { return m_pNext.Get(); } + CXFA_ContentLayoutItem* GetPrev() const { return m_pPrev; } + CXFA_ContentLayoutItem* GetNext() const { return m_pNext; } void InsertAfter(CXFA_ContentLayoutItem* pNext); - CFX_RectF GetRect(bool bRelative) const; + CFX_RectF GetRelativeRect() const; + CFX_RectF GetAbsoluteRect() const; size_t GetIndex() const; - void SetStatusBits(uint32_t val) { m_dwStatus |= val; } - void ClearStatusBits(uint32_t val) { m_dwStatus &= ~val; } + void SetStatusBits(Mask<XFA_WidgetStatus> val) { m_dwStatus |= val; } + void ClearStatusBits(Mask<XFA_WidgetStatus> val) { m_dwStatus &= ~val; } // TRUE if all (not any) bits set in |val| are set in |m_dwStatus|. - bool TestStatusBits(uint32_t val) const { return (m_dwStatus & val) == val; } + bool TestStatusBits(Mask<XFA_WidgetStatus> val) const { + return m_dwStatus.TestAll(val); + } CFX_PointF m_sPos; CFX_SizeF m_sSize; private: - CXFA_ContentLayoutItem(CXFA_Node* pNode, - std::unique_ptr<CXFA_FFWidget> pFFWidget); - + CXFA_ContentLayoutItem(CXFA_Node* pNode, CXFA_FFWidget* pFFWidget); void RemoveSelf(); - mutable uint32_t m_dwStatus = 0; - UnownedPtr<CXFA_ContentLayoutItem> m_pPrev; - UnownedPtr<CXFA_ContentLayoutItem> m_pNext; - std::unique_ptr<CXFA_FFWidget> const m_pFFWidget; + mutable Mask<XFA_WidgetStatus> m_dwStatus; + cppgc::Member<CXFA_ContentLayoutItem> m_pPrev; + cppgc::Member<CXFA_ContentLayoutItem> m_pNext; + cppgc::Member<CXFA_FFWidget> const m_pFFWidget; }; inline CXFA_FFWidget* GetFFWidget(CXFA_ContentLayoutItem* item) { |