summaryrefslogtreecommitdiff
path: root/xfa/fwl/core/fwl_widgetmgrimp.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fwl/core/fwl_widgetmgrimp.h')
-rw-r--r--xfa/fwl/core/fwl_widgetmgrimp.h44
1 files changed, 22 insertions, 22 deletions
diff --git a/xfa/fwl/core/fwl_widgetmgrimp.h b/xfa/fwl/core/fwl_widgetmgrimp.h
index fe17613364..6e4fffeca1 100644
--- a/xfa/fwl/core/fwl_widgetmgrimp.h
+++ b/xfa/fwl/core/fwl_widgetmgrimp.h
@@ -7,6 +7,9 @@
#ifndef XFA_FWL_CORE_FWL_WIDGETMGRIMP_H_
#define XFA_FWL_CORE_FWL_WIDGETMGRIMP_H_
+#include <map>
+#include <memory>
+
#include "core/fxcrt/include/fx_system.h"
#include "xfa/fwl/core/fwl_error.h"
#include "xfa/fwl/core/ifwl_widgetmgr.h"
@@ -25,14 +28,14 @@ class IFWL_Widget;
class CFWL_WidgetMgrItem {
public:
- CFWL_WidgetMgrItem()
- : pParent(NULL),
- pOwner(NULL),
- pChild(NULL),
- pPrevious(NULL),
- pNext(NULL),
- pWidget(NULL),
- pOffscreen(NULL),
+ CFWL_WidgetMgrItem() : CFWL_WidgetMgrItem(nullptr) {}
+ explicit CFWL_WidgetMgrItem(IFWL_Widget* widget)
+ : pParent(nullptr),
+ pOwner(nullptr),
+ pChild(nullptr),
+ pPrevious(nullptr),
+ pNext(nullptr),
+ pWidget(widget),
iRedrawCounter(0)
#if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_)
,
@@ -40,19 +43,15 @@ class CFWL_WidgetMgrItem {
#endif
{
}
- ~CFWL_WidgetMgrItem() {
- if (pOffscreen) {
- delete pOffscreen;
- pOffscreen = NULL;
- }
- }
+ ~CFWL_WidgetMgrItem() {}
+
CFWL_WidgetMgrItem* pParent;
CFWL_WidgetMgrItem* pOwner;
CFWL_WidgetMgrItem* pChild;
CFWL_WidgetMgrItem* pPrevious;
CFWL_WidgetMgrItem* pNext;
- IFWL_Widget* pWidget;
- CFX_Graphics* pOffscreen;
+ IFWL_Widget* const pWidget;
+ std::unique_ptr<CFX_Graphics> pOffscreen;
int32_t iRedrawCounter;
#if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_)
FX_BOOL bOutsideChanged;
@@ -96,8 +95,8 @@ class CFWL_WidgetMgr : public IFWL_WidgetMgr {
void AddRedrawCounts(IFWL_Widget* pWidget);
void ResetRedrawCounts(IFWL_Widget* pWidget);
CXFA_FWLAdapterWidgetMgr* GetAdapterWidgetMgr() const { return m_pAdapter; }
- CFWL_WidgetMgrDelegate* GetDelegate() const { return m_pDelegate; }
- CFWL_WidgetMgrItem* GetWidgetMgrItem(IFWL_Widget* pWidget);
+ CFWL_WidgetMgrDelegate* GetDelegate() const { return m_pDelegate.get(); }
+ CFWL_WidgetMgrItem* GetWidgetMgrItem(IFWL_Widget* pWidget) const;
bool IsThreadEnabled();
bool IsFormDisabled();
FX_BOOL GetAdapterPopupPos(IFWL_Widget* pWidget,
@@ -112,14 +111,15 @@ class CFWL_WidgetMgr : public IFWL_WidgetMgr {
CFWL_WidgetMgrItem* pItem,
IFWL_Widget** pWidget = NULL);
FX_BOOL IsAbleNative(IFWL_Widget* pWidget);
- CFX_MapPtrToPtr m_mapWidgetItem;
- CXFA_FWLAdapterWidgetMgr* m_pAdapter;
- CFWL_WidgetMgrDelegate* m_pDelegate;
- friend class CFWL_WidgetMgrDelegate;
+
uint32_t m_dwCapability;
+ std::unique_ptr<CFWL_WidgetMgrDelegate> m_pDelegate;
+ std::map<IFWL_Widget*, std::unique_ptr<CFWL_WidgetMgrItem>> m_mapWidgetItem;
+ CXFA_FWLAdapterWidgetMgr* const m_pAdapter;
#if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_)
CFX_RectF m_rtScreen;
#endif
+ friend class CFWL_WidgetMgrDelegate;
};
class CFWL_WidgetMgrDelegate {