From b4d1b576bccb5ca6cebe29288af014bd0f512af1 Mon Sep 17 00:00:00 2001 From: weili Date: Wed, 10 Aug 2016 14:50:48 -0700 Subject: Use smart pointers for class owned pointers in xfa/fxfa Use smart pointers instead of raw pointer to make memory management easier for classes mainly under xfa/fxfa. Also change the return type of IFGAS_FontMgr::Create() to smart pointer type. BUG=pdfium:518 Review-Url: https://codereview.chromium.org/2227883002 --- xfa/fxfa/app/xfa_ffapp.cpp | 59 ++++++++++++++---------------------- xfa/fxfa/app/xfa_ffdocview.cpp | 57 +++++++++++++++++++++------------- xfa/fxfa/app/xfa_ffwidget.cpp | 49 +++++++++++++++--------------- xfa/fxfa/app/xfa_fwltheme.cpp | 69 +++++++++++++++++++----------------------- xfa/fxfa/app/xfa_fwltheme.h | 39 ++++++++++++------------ 5 files changed, 133 insertions(+), 140 deletions(-) (limited to 'xfa/fxfa/app') diff --git a/xfa/fxfa/app/xfa_ffapp.cpp b/xfa/fxfa/app/xfa_ffapp.cpp index 22989b8b3e..18e2d76552 100644 --- a/xfa/fxfa/app/xfa_ffapp.cpp +++ b/xfa/fxfa/app/xfa_ffapp.cpp @@ -37,6 +37,7 @@ FX_FILESIZE CXFA_FileRead::GetSize() { } return dwSize; } + FX_BOOL CXFA_FileRead::ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) { @@ -72,47 +73,29 @@ void CXFA_FileRead::Release() { } CXFA_FFApp::CXFA_FFApp(IXFA_AppProvider* pProvider) - : m_pDocHandler(nullptr), - m_pFWLTheme(nullptr), - m_pProvider(pProvider), - m_pFontMgr(nullptr), -#if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ - m_pFontSource(nullptr), -#endif - m_pAdapterWidgetMgr(nullptr), + : m_pProvider(pProvider), m_pWidgetMgrDelegate(nullptr), - m_pFDEFontMgr(nullptr) { - m_pFWLApp = IFWL_App::Create(this); - FWL_SetApp(m_pFWLApp); + m_pFWLApp(IFWL_App::Create(this)) { + FWL_SetApp(m_pFWLApp.get()); m_pFWLApp->Initialize(); CXFA_TimeZoneProvider::Create(); } CXFA_FFApp::~CXFA_FFApp() { - delete m_pDocHandler; if (m_pFWLApp) { m_pFWLApp->Finalize(); m_pFWLApp->Release(); - delete m_pFWLApp; } - delete m_pFWLTheme; - delete m_pAdapterWidgetMgr; CXFA_TimeZoneProvider::Destroy(); - delete m_pFontMgr; -#if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ - if (m_pFontSource) - m_pFontSource->Release(); -#endif - if (m_pFDEFontMgr) - m_pFDEFontMgr->Release(); } CXFA_FFDocHandler* CXFA_FFApp::GetDocHandler() { if (!m_pDocHandler) - m_pDocHandler = new CXFA_FFDocHandler; - return m_pDocHandler; + m_pDocHandler.reset(new CXFA_FFDocHandler); + return m_pDocHandler.get(); } + CXFA_FFDoc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider, IFX_FileRead* pStream, FX_BOOL bTakeOverFile) { @@ -133,12 +116,12 @@ CXFA_FFDoc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider, void CXFA_FFApp::SetDefaultFontMgr(std::unique_ptr pFontMgr) { if (!m_pFontMgr) - m_pFontMgr = new CXFA_FontMgr(); + m_pFontMgr.reset(new CXFA_FontMgr()); m_pFontMgr->SetDefFontMgr(std::move(pFontMgr)); } -CXFA_FontMgr* CXFA_FFApp::GetXFAFontMgr() { - return m_pFontMgr; +CXFA_FontMgr* CXFA_FFApp::GetXFAFontMgr() const { + return m_pFontMgr.get(); } IFGAS_FontMgr* CXFA_FFApp::GetFDEFontMgr() { @@ -146,28 +129,30 @@ IFGAS_FontMgr* CXFA_FFApp::GetFDEFontMgr() { #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ m_pFDEFontMgr = IFGAS_FontMgr::Create(FX_GetDefFontEnumerator()); #else - m_pFontSource = new CFX_FontSourceEnum_File; - m_pFDEFontMgr = IFGAS_FontMgr::Create(m_pFontSource); + m_pFontSource.reset(new CFX_FontSourceEnum_File); + m_pFDEFontMgr = IFGAS_FontMgr::Create(m_pFontSource.get()); #endif } - return m_pFDEFontMgr; + return m_pFDEFontMgr.get(); } + CXFA_FWLTheme* CXFA_FFApp::GetFWLTheme() { - if (!m_pFWLTheme) { - m_pFWLTheme = new CXFA_FWLTheme(this); - } - return m_pFWLTheme; + if (!m_pFWLTheme) + m_pFWLTheme.reset(new CXFA_FWLTheme(this)); + return m_pFWLTheme.get(); } + CXFA_FWLAdapterWidgetMgr* CXFA_FFApp::GetWidgetMgr( CFWL_WidgetMgrDelegate* pDelegate) { if (!m_pAdapterWidgetMgr) { - m_pAdapterWidgetMgr = new CXFA_FWLAdapterWidgetMgr; + m_pAdapterWidgetMgr.reset(new CXFA_FWLAdapterWidgetMgr); pDelegate->OnSetCapability(FWL_WGTMGR_DisableThread | FWL_WGTMGR_DisableForm); m_pWidgetMgrDelegate = pDelegate; } - return m_pAdapterWidgetMgr; + return m_pAdapterWidgetMgr.get(); } -IFWL_AdapterTimerMgr* CXFA_FFApp::GetTimerMgr() { + +IFWL_AdapterTimerMgr* CXFA_FFApp::GetTimerMgr() const { return m_pProvider->GetTimerMgr(); } diff --git a/xfa/fxfa/app/xfa_ffdocview.cpp b/xfa/fxfa/app/xfa_ffdocview.cpp index c0b42412ea..3609e55cba 100644 --- a/xfa/fxfa/app/xfa_ffdocview.cpp +++ b/xfa/fxfa/app/xfa_ffdocview.cpp @@ -56,7 +56,6 @@ CXFA_FFDocView::CXFA_FFDocView(CXFA_FFDoc* pDoc) m_pListFocusWidget(nullptr), m_bInLayoutStatus(FALSE), m_pDoc(pDoc), - m_pWidgetHandler(nullptr), m_pXFADocLayout(nullptr), m_pFocusAcc(nullptr), m_pFocusWidget(nullptr), @@ -66,13 +65,14 @@ CXFA_FFDocView::CXFA_FFDocView(CXFA_FFDoc* pDoc) CXFA_FFDocView::~CXFA_FFDocView() { DestroyDocView(); - delete m_pWidgetHandler; } void CXFA_FFDocView::InitLayout(CXFA_Node* pNode) { RunBindItems(); - ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Initialize); - ExecEventActivityByDeepFirst(pNode, XFA_EVENT_IndexChange); + ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Initialize, FALSE, TRUE, + nullptr); + ExecEventActivityByDeepFirst(pNode, XFA_EVENT_IndexChange, FALSE, TRUE, + nullptr); } int32_t CXFA_FFDocView::StartLayout(int32_t iStartPage) { m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Start; @@ -91,7 +91,7 @@ int32_t CXFA_FFDocView::StartLayout(int32_t iStartPage) { InitLayout(pRootItem); InitCalculate(pRootItem); InitValidate(pRootItem); - ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, TRUE); + ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, TRUE, TRUE, nullptr); m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Start; return iStatus; } @@ -124,13 +124,17 @@ void CXFA_FFDocView::StopLayout() { InitLayout(pPageSetNode); InitCalculate(pPageSetNode); InitValidate(pPageSetNode); - ExecEventActivityByDeepFirst(pPageSetNode, XFA_EVENT_Ready, TRUE); - ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready); - ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocReady); + ExecEventActivityByDeepFirst(pPageSetNode, XFA_EVENT_Ready, TRUE, TRUE, + nullptr); + ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, FALSE, TRUE, + nullptr); + ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocReady, FALSE, TRUE, + nullptr); RunCalculateWidgets(); RunValidate(); if (RunLayout()) { - ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready); + ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, FALSE, TRUE, + nullptr); } m_CalculateAccs.RemoveAll(); if (m_pFocusAcc && !m_pFocusWidget) { @@ -177,7 +181,7 @@ void CXFA_FFDocView::UpdateDocView() { CXFA_Node* pNode = m_NewAddedNodes[i]; InitCalculate(pNode); InitValidate(pNode); - ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Ready, TRUE); + ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Ready, TRUE, TRUE, nullptr); } m_NewAddedNodes.RemoveAll(); RunSubformIndexChange(); @@ -303,14 +307,15 @@ int32_t CXFA_FFDocView::ProcessWidgetEvent(CXFA_EventParam* pParam, } pNode = pRootItem->GetChild(0, XFA_Element::Subform); } - ExecEventActivityByDeepFirst(pNode, pParam->m_eType, pParam->m_bIsFormReady); + ExecEventActivityByDeepFirst(pNode, pParam->m_eType, pParam->m_bIsFormReady, + TRUE, nullptr); return XFA_EVENTERROR_Success; } CXFA_FFWidgetHandler* CXFA_FFDocView::GetWidgetHandler() { if (!m_pWidgetHandler) { - m_pWidgetHandler = new CXFA_FFWidgetHandler(this); + m_pWidgetHandler.reset(new CXFA_FFWidgetHandler(this)); } - return m_pWidgetHandler; + return m_pWidgetHandler.get(); } CXFA_WidgetAccIterator* CXFA_FFDocView::CreateWidgetAccIterator( @@ -607,7 +612,8 @@ void CXFA_FFDocView::RunDocClose() { if (!pRootItem) { return; } - ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocClose); + ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocClose, FALSE, TRUE, + nullptr); } void CXFA_FFDocView::DestroyDocView() { ClearInvalidateList(); @@ -685,14 +691,15 @@ void CXFA_FFDocView::AddValidateWidget(CXFA_WidgetAcc* pWidget) { m_ValidateAccs.Add(pWidget); } FX_BOOL CXFA_FFDocView::InitCalculate(CXFA_Node* pNode) { - ExecEventActivityByDeepFirst(pNode, XFA_EVENT_InitCalculate); + ExecEventActivityByDeepFirst(pNode, XFA_EVENT_InitCalculate, FALSE, TRUE, + nullptr); return TRUE; } FX_BOOL CXFA_FFDocView::InitValidate(CXFA_Node* pNode) { if (!m_pDoc->GetDocProvider()->IsValidationsEnabled(m_pDoc)) { return FALSE; } - ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Validate); + ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Validate, FALSE, TRUE, nullptr); m_ValidateAccs.RemoveAll(); return TRUE; } @@ -717,7 +724,8 @@ FX_BOOL CXFA_FFDocView::RunEventLayoutReady() { if (!pRootItem) { return FALSE; } - ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready); + ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, FALSE, TRUE, + nullptr); RunLayout(); return TRUE; } @@ -803,21 +811,24 @@ CXFA_Node* CXFA_FFDocView::GetRootSubform() { CXFA_WidgetAccIterator::CXFA_WidgetAccIterator(CXFA_FFDocView* pDocView, CXFA_Node* pTravelRoot) - : m_ContentIterator(pTravelRoot) { - m_pDocView = pDocView; - m_pCurWidgetAcc = nullptr; -} + : m_ContentIterator(pTravelRoot), + m_pDocView(pDocView), + m_pCurWidgetAcc(nullptr) {} + CXFA_WidgetAccIterator::~CXFA_WidgetAccIterator() {} void CXFA_WidgetAccIterator::Reset() { m_pCurWidgetAcc = nullptr; m_ContentIterator.Reset(); } + CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToFirst() { return nullptr; } + CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToLast() { return nullptr; } + CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToNext() { CXFA_Node* pItem = m_pCurWidgetAcc ? m_ContentIterator.MoveToNext() : m_ContentIterator.GetCurrent(); @@ -829,15 +840,19 @@ CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToNext() { } return nullptr; } + CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToPrevious() { return nullptr; } + CXFA_WidgetAcc* CXFA_WidgetAccIterator::GetCurrentWidgetAcc() { return nullptr; } + FX_BOOL CXFA_WidgetAccIterator::SetCurrentWidgetAcc(CXFA_WidgetAcc* hWidget) { return FALSE; } + void CXFA_WidgetAccIterator::SkipTree() { m_ContentIterator.SkipChildrenAndMoveToNext(); m_pCurWidgetAcc = nullptr; diff --git a/xfa/fxfa/app/xfa_ffwidget.cpp b/xfa/fxfa/app/xfa_ffwidget.cpp index ed42aa4825..446fcd6303 100644 --- a/xfa/fxfa/app/xfa_ffwidget.cpp +++ b/xfa/fxfa/app/xfa_ffwidget.cpp @@ -564,11 +564,20 @@ class CXFA_ImageRenderer { FX_BOOL Continue(IFX_Pause* pPause); protected: + FX_BOOL StartDIBSource(); + void CompositeDIBitmap(CFX_DIBitmap* pDIBitmap, + int left, + int top, + FX_ARGB mask_argb, + int bitmap_alpha, + int blend_mode, + int Transparency); + CFX_RenderDevice* m_pDevice; int m_Status; CFX_Matrix m_ImageMatrix; CFX_DIBSource* m_pDIBSource; - CFX_DIBitmap* m_pCloneConvert; + std::unique_ptr m_pCloneConvert; int m_BitmapAlpha; FX_ARGB m_FillArgb; uint32_t m_Flags; @@ -577,31 +586,21 @@ class CXFA_ImageRenderer { int32_t m_BlendType; FX_BOOL m_Result; FX_BOOL m_bPrint; - FX_BOOL StartDIBSource(); - void CompositeDIBitmap(CFX_DIBitmap* pDIBitmap, - int left, - int top, - FX_ARGB mask_argb, - int bitmap_alpha, - int blend_mode, - int Transparency); }; -CXFA_ImageRenderer::CXFA_ImageRenderer() { - m_pDevice = nullptr; - m_Status = 0; - m_pDIBSource = nullptr; - m_pCloneConvert = nullptr; - m_BitmapAlpha = 255; - m_FillArgb = 0; - m_Flags = 0; - m_DeviceHandle = nullptr; - m_BlendType = FXDIB_BLEND_NORMAL; - m_Result = TRUE; - m_bPrint = FALSE; -} + +CXFA_ImageRenderer::CXFA_ImageRenderer() + : m_pDevice(nullptr), + m_Status(0), + m_pDIBSource(nullptr), + m_BitmapAlpha(255), + m_FillArgb(0), + m_Flags(0), + m_DeviceHandle(nullptr), + m_BlendType(FXDIB_BLEND_NORMAL), + m_Result(TRUE), + m_bPrint(FALSE) {} CXFA_ImageRenderer::~CXFA_ImageRenderer() { - delete m_pCloneConvert; if (m_DeviceHandle) m_pDevice->CancelDIBits(m_DeviceHandle); } @@ -647,12 +646,12 @@ FX_BOOL CXFA_ImageRenderer::StartDIBSource() { if (m_pDIBSource->HasAlpha() && !(m_pDevice->GetRenderCaps() & FXRC_ALPHA_IMAGE) && !(m_pDevice->GetRenderCaps() & FXRC_GET_BITS)) { - m_pCloneConvert = m_pDIBSource->CloneConvert(FXDIB_Rgb); + m_pCloneConvert.reset(m_pDIBSource->CloneConvert(FXDIB_Rgb)); if (!m_pCloneConvert) { m_Result = FALSE; return FALSE; } - pDib = m_pCloneConvert; + pDib = m_pCloneConvert.get(); } FX_RECT clip_box = m_pDevice->GetClipBox(); clip_box.Intersect(image_rect); diff --git a/xfa/fxfa/app/xfa_fwltheme.cpp b/xfa/fxfa/app/xfa_fwltheme.cpp index 41d8fecb36..8e1b23c05d 100644 --- a/xfa/fxfa/app/xfa_fwltheme.cpp +++ b/xfa/fxfa/app/xfa_fwltheme.cpp @@ -43,38 +43,30 @@ CXFA_FFWidget* XFA_ThemeGetOuterWidget(IFWL_Widget* pWidget) { : nullptr; } -CXFA_FWLTheme::CXFA_FWLTheme(CXFA_FFApp* pApp) : m_pApp(pApp) { - m_dwCapacity = 0; - m_fCapacity = 0; - m_pCalendarFont = nullptr; - m_Rect.Set(0, 0, 0, 0); - m_pCheckBoxTP = new CXFA_FWLCheckBoxTP; - m_pListBoxTP = new CFWL_ListBoxTP; - m_pPictureBoxTP = new CFWL_PictureBoxTP; - m_pSrollBarTP = new CFWL_ScrollBarTP; - m_pEditTP = new CXFA_FWLEditTP; - m_pComboBoxTP = new CFWL_ComboBoxTP; - m_pMonthCalendarTP = new CFWL_MonthCalendarTP; - m_pDateTimePickerTP = new CFWL_DateTimePickerTP; - m_pPushButtonTP = new CFWL_PushButtonTP; - m_pCaretTP = new CFWL_CaretTP; - m_pBarcodeTP = new CFWL_BarcodeTP; +CXFA_FWLTheme::CXFA_FWLTheme(CXFA_FFApp* pApp) + : m_pCheckBoxTP(new CXFA_FWLCheckBoxTP), + m_pListBoxTP(new CFWL_ListBoxTP), + m_pPictureBoxTP(new CFWL_PictureBoxTP), + m_pSrollBarTP(new CFWL_ScrollBarTP), + m_pEditTP(new CXFA_FWLEditTP), + m_pComboBoxTP(new CFWL_ComboBoxTP), + m_pMonthCalendarTP(new CFWL_MonthCalendarTP), + m_pDateTimePickerTP(new CFWL_DateTimePickerTP), + m_pPushButtonTP(new CFWL_PushButtonTP), + m_pCaretTP(new CFWL_CaretTP), + m_pBarcodeTP(new CFWL_BarcodeTP), + m_fCapacity(0.0f), + m_dwCapacity(0), + m_pCalendarFont(nullptr), + m_pApp(pApp) { + m_Rect.Reset(); Initialize(); } + CXFA_FWLTheme::~CXFA_FWLTheme() { Finalize(); - delete m_pCheckBoxTP; - delete m_pListBoxTP; - delete m_pPictureBoxTP; - delete m_pSrollBarTP; - delete m_pEditTP; - delete m_pComboBoxTP; - delete m_pMonthCalendarTP; - delete m_pDateTimePickerTP; - delete m_pPushButtonTP; - delete m_pCaretTP; - delete m_pBarcodeTP; } + FWL_Error CXFA_FWLTheme::Initialize() { m_pTextOut.reset(new CFDE_TextOut); for (size_t i = 0; !m_pCalendarFont && i < FX_ArraySize(g_FWLTheme_CalFonts); @@ -96,6 +88,7 @@ FWL_Error CXFA_FWLTheme::Initialize() { FWLTHEME_Init(); return FWL_Error::Succeeded; } + FWL_Error CXFA_FWLTheme::Finalize() { m_pTextOut.reset(); if (m_pCalendarFont) { @@ -406,27 +399,27 @@ FX_BOOL CXFA_FWLTheme::CalcTextRect(CFWL_ThemeText* pParams, CFX_RectF& rect) { CFWL_WidgetTP* CXFA_FWLTheme::GetTheme(IFWL_Widget* pWidget) { switch (pWidget->GetClassID()) { case FWL_Type::CheckBox: - return m_pCheckBoxTP; + return m_pCheckBoxTP.get(); case FWL_Type::ListBox: - return m_pListBoxTP; + return m_pListBoxTP.get(); case FWL_Type::PictureBox: - return m_pPictureBoxTP; + return m_pPictureBoxTP.get(); case FWL_Type::ScrollBar: - return m_pSrollBarTP; + return m_pSrollBarTP.get(); case FWL_Type::Edit: - return m_pEditTP; + return m_pEditTP.get(); case FWL_Type::ComboBox: - return m_pComboBoxTP; + return m_pComboBoxTP.get(); case FWL_Type::MonthCalendar: - return m_pMonthCalendarTP; + return m_pMonthCalendarTP.get(); case FWL_Type::DateTimePicker: - return m_pDateTimePickerTP; + return m_pDateTimePickerTP.get(); case FWL_Type::PushButton: - return m_pPushButtonTP; + return m_pPushButtonTP.get(); case FWL_Type::Caret: - return m_pCaretTP; + return m_pCaretTP.get(); case FWL_Type::Barcode: - return m_pBarcodeTP; + return m_pBarcodeTP.get(); default: return nullptr; } diff --git a/xfa/fxfa/app/xfa_fwltheme.h b/xfa/fxfa/app/xfa_fwltheme.h index 63a4247337..81f33b2944 100644 --- a/xfa/fxfa/app/xfa_fwltheme.h +++ b/xfa/fxfa/app/xfa_fwltheme.h @@ -29,13 +29,6 @@ class CXFA_FWLTheme final : public IFWL_ThemeProvider { CXFA_FWLTheme(CXFA_FFApp* pApp); ~CXFA_FWLTheme() override; - FWL_Error GetClassName(CFX_WideString& wsClass) const { - return FWL_Error::Succeeded; - } - uint32_t GetHashCode() const { return 0; } - FWL_Error Initialize(); - FWL_Error Finalize(); - // IFWL_ThemeProvider: bool IsValidWidget(IFWL_Widget* pWidget) override; uint32_t GetThemeID(IFWL_Widget* pWidget) override; @@ -56,30 +49,37 @@ class CXFA_FWLTheme final : public IFWL_ThemeProvider { FX_FLOAT fy) override; FX_BOOL CalcTextRect(CFWL_ThemeText* pParams, CFX_RectF& rect) override; + FWL_Error GetClassName(CFX_WideString& wsClass) const { + return FWL_Error::Succeeded; + } + uint32_t GetHashCode() const { return 0; } + FWL_Error Initialize(); + FWL_Error Finalize(); FWL_Error GetPartRect(CFWL_ThemePart* pThemePart); protected: CFWL_WidgetTP* GetTheme(IFWL_Widget* pWidget); - CFWL_CheckBoxTP* m_pCheckBoxTP; - CFWL_ListBoxTP* m_pListBoxTP; - CFWL_PictureBoxTP* m_pPictureBoxTP; - CFWL_ScrollBarTP* m_pSrollBarTP; - CFWL_EditTP* m_pEditTP; - CFWL_ComboBoxTP* m_pComboBoxTP; - CFWL_MonthCalendarTP* m_pMonthCalendarTP; - CFWL_DateTimePickerTP* m_pDateTimePickerTP; - CFWL_PushButtonTP* m_pPushButtonTP; - CFWL_CaretTP* m_pCaretTP; - CFWL_BarcodeTP* m_pBarcodeTP; + std::unique_ptr m_pCheckBoxTP; + std::unique_ptr m_pListBoxTP; + std::unique_ptr m_pPictureBoxTP; + std::unique_ptr m_pSrollBarTP; + std::unique_ptr m_pEditTP; + std::unique_ptr m_pComboBoxTP; + std::unique_ptr m_pMonthCalendarTP; + std::unique_ptr m_pDateTimePickerTP; + std::unique_ptr m_pPushButtonTP; + std::unique_ptr m_pCaretTP; + std::unique_ptr m_pBarcodeTP; std::unique_ptr m_pTextOut; FX_FLOAT m_fCapacity; uint32_t m_dwCapacity; CFGAS_GEFont* m_pCalendarFont; CFX_WideString m_wsResource; - CXFA_FFApp* m_pApp; + CXFA_FFApp* const m_pApp; CFX_RectF m_Rect; CFX_SizeF m_SizeAboveBelow; }; + class CXFA_FWLCheckBoxTP : public CFWL_CheckBoxTP { public: CXFA_FWLCheckBoxTP(); @@ -94,6 +94,7 @@ class CXFA_FWLCheckBoxTP : public CFWL_CheckBoxTP { int32_t iState, CFX_Matrix* pMatrix); }; + class CXFA_FWLEditTP : public CFWL_EditTP { public: CXFA_FWLEditTP(); -- cgit v1.2.3