// 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 #include "xfa/fwl/core/ifwl_formproxy.h" #include "xfa/fwl/core/fwl_noteimp.h" IFWL_FormProxy::IFWL_FormProxy(const CFWL_WidgetImpProperties& properties, IFWL_Widget* pOuter) : IFWL_Form(properties, pOuter) {} IFWL_FormProxy::~IFWL_FormProxy() {} FWL_Type IFWL_FormProxy::GetClassID() const { return FWL_Type::FormProxy; } FX_BOOL IFWL_FormProxy::IsInstance(const CFX_WideStringC& wsClass) const { if (wsClass == CFX_WideStringC(FWL_CLASS_FormProxy)) { return TRUE; } return IFWL_Form::IsInstance(wsClass); } FWL_Error IFWL_FormProxy::Initialize() { if (IFWL_Widget::Initialize() != FWL_Error::Succeeded) return FWL_Error::Indefinite; m_pDelegate = new CFWL_FormProxyImpDelegate(this); return FWL_Error::Succeeded; } void IFWL_FormProxy::Finalize() { delete m_pDelegate; m_pDelegate = nullptr; IFWL_Widget::Finalize(); } FWL_Error IFWL_FormProxy::Update() { return FWL_Error::Succeeded; } FWL_Error IFWL_FormProxy::DrawWidget(CFX_Graphics* pGraphics, const CFX_Matrix* pMatrix) { return FWL_Error::Succeeded; } CFWL_FormProxyImpDelegate::CFWL_FormProxyImpDelegate(IFWL_FormProxy* pOwner) : m_pOwner(pOwner) {} void CFWL_FormProxyImpDelegate::OnProcessMessage(CFWL_Message* pMessage) { IFWL_WidgetDelegate* pDelegate = m_pOwner->m_pOuter->SetDelegate(nullptr); pDelegate->OnProcessMessage(pMessage); }