From 1770c021cf998ff1b33855b1397f6ea8ff9f7cd7 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Mon, 14 Mar 2016 14:14:16 -0400 Subject: Move xfa/src up to xfa/. This CL moves the xfa/src files up to the xfa/ directory and fixes the includes, include guards, and build files. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1803723002 . --- xfa/fwl/core/fwl_panelimp.cpp | 152 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 xfa/fwl/core/fwl_panelimp.cpp (limited to 'xfa/fwl/core/fwl_panelimp.cpp') diff --git a/xfa/fwl/core/fwl_panelimp.cpp b/xfa/fwl/core/fwl_panelimp.cpp new file mode 100644 index 0000000000..e24413368c --- /dev/null +++ b/xfa/fwl/core/fwl_panelimp.cpp @@ -0,0 +1,152 @@ +// 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/fwl_panelimp.h" + +#include "xfa/fwl/core/fwl_noteimp.h" +#include "xfa/fwl/core/fwl_targetimp.h" +#include "xfa/fwl/core/fwl_widgetimp.h" +#include "xfa/fwl/core/fwl_widgetmgrimp.h" +#include "xfa/include/fwl/core/fwl_content.h" +#include "xfa/include/fwl/core/fwl_grid.h" +#include "xfa/include/fwl/core/fwl_panel.h" + +// static +IFWL_Panel* IFWL_Panel::Create(CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter) { + IFWL_Panel* pPanel = new IFWL_Panel; + CFWL_PanelImp* pPanelImpl = new CFWL_PanelImp(properties, pOuter); + pPanel->SetImpl(pPanelImpl); + pPanelImpl->SetInterface(pPanel); + return pPanel; +} +IFWL_Panel::IFWL_Panel() {} +IFWL_Content* IFWL_Panel::GetContent() { + return static_cast(GetImpl())->GetContent(); +} +FWL_ERR IFWL_Panel::SetContent(IFWL_Content* pContent) { + return static_cast(GetImpl())->SetContent(pContent); +} + +CFWL_PanelImp::CFWL_PanelImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter) + : CFWL_WidgetImp(properties, pOuter), m_pContent(nullptr) {} +CFWL_PanelImp::~CFWL_PanelImp() {} +FWL_ERR CFWL_PanelImp::GetClassName(CFX_WideString& wsClass) const { + wsClass = FWL_CLASS_Panel; + return FWL_ERR_Succeeded; +} +FX_DWORD CFWL_PanelImp::GetClassID() const { + return FWL_CLASSHASH_Panel; +} +FWL_ERR CFWL_PanelImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { + if (bAutoSize) { + if (m_pContent) { + m_pContent->GetWidgetRect(rect, TRUE); + } + } else { + rect = m_pProperties->m_rtWidget; + } + return FWL_ERR_Succeeded; +} +FWL_ERR CFWL_PanelImp::Update() { + if (m_pContent) { + CFX_RectF rtClient; + GetClientRect(rtClient); + FWL_GRIDUNIT eWidth = FWL_GRIDUNIT_Fixed, eHeight = FWL_GRIDUNIT_Fixed; + IFWL_WidgetMgr* pWidgetMgr = FWL_GetWidgetMgr(); + if (!pWidgetMgr) + return FWL_ERR_Indefinite; + IFWL_Widget* pParent = + pWidgetMgr->GetWidget(GetInterface(), FWL_WGTRELATION_Parent); + if (pParent && pParent->GetClassID() == FWL_CLASSHASH_Grid) { + IFWL_Grid* pGrid = static_cast(pParent); + pGrid->GetWidgetSize(GetInterface(), FWL_GRIDSIZE_Width, eWidth); + pGrid->GetWidgetSize(GetInterface(), FWL_GRIDSIZE_Height, eHeight); + } + m_pContent->SetWidgetRect(rtClient); + m_pContent->Update(); + } + return FWL_ERR_Succeeded; +} +IFWL_Content* CFWL_PanelImp::GetContent() { + return m_pContent; +} +FWL_ERR CFWL_PanelImp::SetContent(IFWL_Content* pContent) { + if (!pContent) + return FWL_ERR_Indefinite; + m_pContent = pContent; + return pContent->SetParent(m_pInterface); +} +class CFWL_CustomPanelImp : public CFWL_WidgetImp { + public: + CFWL_CustomPanelImp(const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter); + virtual ~CFWL_CustomPanelImp(); + virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); + virtual FWL_ERR Update(); + virtual IFWL_Content* GetContent(); + virtual FWL_ERR SetContent(IFWL_Content* pContent); + FWL_ERR SetProxy(IFWL_Proxy* pProxy); + + protected: + IFWL_Content* m_pContent; + IFWL_Proxy* m_pProxy; +}; +CFWL_CustomPanelImp::CFWL_CustomPanelImp( + const CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter) + : CFWL_WidgetImp(properties, pOuter), + m_pContent(nullptr), + m_pProxy(nullptr) {} +CFWL_CustomPanelImp::~CFWL_CustomPanelImp() {} +FWL_ERR CFWL_CustomPanelImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { + if (bAutoSize && m_pProxy && + (m_pProxy->GetWidgetRect(rect, bAutoSize) == FWL_ERR_Succeeded)) { + return FWL_ERR_Succeeded; + } + return CFWL_WidgetImp::GetWidgetRect(rect, bAutoSize); +} +FWL_ERR CFWL_CustomPanelImp::Update() { + if (m_pProxy) { + return m_pProxy->Update(); + } + return CFWL_WidgetImp::Update(); +} +IFWL_Content* CFWL_CustomPanelImp::GetContent() { + return m_pContent; +} +FWL_ERR CFWL_CustomPanelImp::SetContent(IFWL_Content* pContent) { + if (!pContent) + return FWL_ERR_Indefinite; + m_pContent = pContent; + return pContent->SetParent(m_pInterface); +} +FWL_ERR CFWL_CustomPanelImp::SetProxy(IFWL_Proxy* pProxy) { + m_pProxy = pProxy; + return FWL_ERR_Succeeded; +} + +// statuc +IFWL_CustomPanel* IFWL_CustomPanel::Create(CFWL_WidgetImpProperties& properties, + IFWL_Widget* pOuter) { + IFWL_CustomPanel* pCustomPanel = new IFWL_CustomPanel; + CFWL_CustomPanelImp* pCustomPanelImpl = + new CFWL_CustomPanelImp(properties, pOuter); + pCustomPanel->SetImpl(pCustomPanelImpl); + pCustomPanelImpl->SetInterface(pCustomPanel); + return pCustomPanel; +} +IFWL_CustomPanel::IFWL_CustomPanel() {} +IFWL_Content* IFWL_CustomPanel::GetContent() { + return static_cast(GetImpl())->GetContent(); +} +FWL_ERR IFWL_CustomPanel::SetContent(IFWL_Content* pContent) { + return static_cast(GetImpl())->SetContent(pContent); +} +FWL_ERR IFWL_CustomPanel::SetProxy(IFWL_Proxy* pProxy) { + return static_cast(GetImpl())->SetProxy(pProxy); +} -- cgit v1.2.3