summaryrefslogtreecommitdiff
path: root/xfa/fwl/core/ifwl_target.h
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2016-03-23 15:51:01 -0400
committerDan Sinclair <dsinclair@chromium.org>2016-03-23 15:51:01 -0400
commit398a43d83174d75366da57726ff81f199f04e24c (patch)
treecf03a75139da7eb059af19f346549441932b67c9 /xfa/fwl/core/ifwl_target.h
parenta8a28e0702a1874d29d3c9f2b155bce1557eb4fd (diff)
downloadpdfium-398a43d83174d75366da57726ff81f199f04e24c.tar.xz
Move xfa/include/fwl/{core,basewidget} to xfa/fwl/{core,basewidget}.
This CL moves and splits the FWL files from the core and basewidget directories into the non-include folders. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1827923002 .
Diffstat (limited to 'xfa/fwl/core/ifwl_target.h')
-rw-r--r--xfa/fwl/core/ifwl_target.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/xfa/fwl/core/ifwl_target.h b/xfa/fwl/core/ifwl_target.h
new file mode 100644
index 0000000000..fd6410e16c
--- /dev/null
+++ b/xfa/fwl/core/ifwl_target.h
@@ -0,0 +1,52 @@
+// Copyright 2014 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FWL_CORE_IFWL_TARGET_H_
+#define XFA_FWL_CORE_IFWL_TARGET_H_
+
+#include "core/fxcrt/include/fx_basic.h"
+#include "xfa/fwl/core/fwl_error.h"
+
+// FWL contains three parallel inheritance hierarchies, which reference each
+// other via pointers as follows:
+//
+// m_pImpl
+// (nonesuch) IFWL_Target ----------> CFWL_TargetImp
+// | |
+// A A
+// m_pIface | |
+// CFWL_Widget ----------> IFWL_Widget CFWL_WidgetImp
+// | | |
+// A A A
+// | | |
+// CFWL_... IFWL_... CFWL_...Imp
+//
+
+class CFWL_TargetImp;
+
+class IFWL_Target {
+ public:
+ IFWL_Target() : m_pImpl(nullptr) {}
+ virtual ~IFWL_Target();
+
+ // These call into equivalent polymorphic methods of m_pImpl. There
+ // should be no need to override these in subclasses.
+ FWL_ERR GetClassName(CFX_WideString& wsClass) const;
+ FX_DWORD GetClassID() const;
+ FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const;
+ FWL_ERR Initialize();
+ FWL_ERR Finalize();
+
+ CFWL_TargetImp* GetImpl() const { return m_pImpl; }
+
+ protected:
+ void SetImpl(CFWL_TargetImp* pImpl) { m_pImpl = pImpl; }
+
+ private:
+ CFWL_TargetImp* m_pImpl;
+};
+
+#endif // XFA_FWL_CORE_IFWL_TARGET_H_