summaryrefslogtreecommitdiff
path: root/xfa/fxfa/app
diff options
context:
space:
mode:
authorweili <weili@chromium.org>2016-08-10 14:50:48 -0700
committerCommit bot <commit-bot@chromium.org>2016-08-10 14:50:48 -0700
commitb4d1b576bccb5ca6cebe29288af014bd0f512af1 (patch)
tree2d60839a8323eb6780c782aba4ae1123243c7355 /xfa/fxfa/app
parent1194561d5d83869edecf6a1f402122a59955f0b7 (diff)
downloadpdfium-b4d1b576bccb5ca6cebe29288af014bd0f512af1.tar.xz
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
Diffstat (limited to 'xfa/fxfa/app')
-rw-r--r--xfa/fxfa/app/xfa_ffapp.cpp59
-rw-r--r--xfa/fxfa/app/xfa_ffdocview.cpp57
-rw-r--r--xfa/fxfa/app/xfa_ffwidget.cpp49
-rw-r--r--xfa/fxfa/app/xfa_fwltheme.cpp69
-rw-r--r--xfa/fxfa/app/xfa_fwltheme.h39
5 files changed, 133 insertions, 140 deletions
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<CXFA_DefFontMgr> 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<CFX_DIBitmap> 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<CFWL_CheckBoxTP> m_pCheckBoxTP;
+ std::unique_ptr<CFWL_ListBoxTP> m_pListBoxTP;
+ std::unique_ptr<CFWL_PictureBoxTP> m_pPictureBoxTP;
+ std::unique_ptr<CFWL_ScrollBarTP> m_pSrollBarTP;
+ std::unique_ptr<CFWL_EditTP> m_pEditTP;
+ std::unique_ptr<CFWL_ComboBoxTP> m_pComboBoxTP;
+ std::unique_ptr<CFWL_MonthCalendarTP> m_pMonthCalendarTP;
+ std::unique_ptr<CFWL_DateTimePickerTP> m_pDateTimePickerTP;
+ std::unique_ptr<CFWL_PushButtonTP> m_pPushButtonTP;
+ 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* 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();