Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1221)

Side by Side Diff: xfa/src/fwl/core/fwl_panelimp.cpp

Issue 1803723002: Move xfa/src up to xfa/. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase to master Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/src/fwl/core/fwl_panelimp.h ('k') | xfa/src/fwl/core/fwl_sdadapterimp.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7 #include "xfa/src/fwl/core/fwl_panelimp.h"
8
9 #include "xfa/include/fwl/core/fwl_content.h"
10 #include "xfa/include/fwl/core/fwl_grid.h"
11 #include "xfa/include/fwl/core/fwl_panel.h"
12 #include "xfa/src/fwl/core/fwl_noteimp.h"
13 #include "xfa/src/fwl/core/fwl_targetimp.h"
14 #include "xfa/src/fwl/core/fwl_widgetimp.h"
15 #include "xfa/src/fwl/core/fwl_widgetmgrimp.h"
16
17 // static
18 IFWL_Panel* IFWL_Panel::Create(CFWL_WidgetImpProperties& properties,
19 IFWL_Widget* pOuter) {
20 IFWL_Panel* pPanel = new IFWL_Panel;
21 CFWL_PanelImp* pPanelImpl = new CFWL_PanelImp(properties, pOuter);
22 pPanel->SetImpl(pPanelImpl);
23 pPanelImpl->SetInterface(pPanel);
24 return pPanel;
25 }
26 IFWL_Panel::IFWL_Panel() {}
27 IFWL_Content* IFWL_Panel::GetContent() {
28 return static_cast<CFWL_PanelImp*>(GetImpl())->GetContent();
29 }
30 FWL_ERR IFWL_Panel::SetContent(IFWL_Content* pContent) {
31 return static_cast<CFWL_PanelImp*>(GetImpl())->SetContent(pContent);
32 }
33
34 CFWL_PanelImp::CFWL_PanelImp(const CFWL_WidgetImpProperties& properties,
35 IFWL_Widget* pOuter)
36 : CFWL_WidgetImp(properties, pOuter), m_pContent(nullptr) {}
37 CFWL_PanelImp::~CFWL_PanelImp() {}
38 FWL_ERR CFWL_PanelImp::GetClassName(CFX_WideString& wsClass) const {
39 wsClass = FWL_CLASS_Panel;
40 return FWL_ERR_Succeeded;
41 }
42 FX_DWORD CFWL_PanelImp::GetClassID() const {
43 return FWL_CLASSHASH_Panel;
44 }
45 FWL_ERR CFWL_PanelImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) {
46 if (bAutoSize) {
47 if (m_pContent) {
48 m_pContent->GetWidgetRect(rect, TRUE);
49 }
50 } else {
51 rect = m_pProperties->m_rtWidget;
52 }
53 return FWL_ERR_Succeeded;
54 }
55 FWL_ERR CFWL_PanelImp::Update() {
56 if (m_pContent) {
57 CFX_RectF rtClient;
58 GetClientRect(rtClient);
59 FWL_GRIDUNIT eWidth = FWL_GRIDUNIT_Fixed, eHeight = FWL_GRIDUNIT_Fixed;
60 IFWL_WidgetMgr* pWidgetMgr = FWL_GetWidgetMgr();
61 if (!pWidgetMgr)
62 return FWL_ERR_Indefinite;
63 IFWL_Widget* pParent =
64 pWidgetMgr->GetWidget(GetInterface(), FWL_WGTRELATION_Parent);
65 if (pParent && pParent->GetClassID() == FWL_CLASSHASH_Grid) {
66 IFWL_Grid* pGrid = static_cast<IFWL_Grid*>(pParent);
67 pGrid->GetWidgetSize(GetInterface(), FWL_GRIDSIZE_Width, eWidth);
68 pGrid->GetWidgetSize(GetInterface(), FWL_GRIDSIZE_Height, eHeight);
69 }
70 m_pContent->SetWidgetRect(rtClient);
71 m_pContent->Update();
72 }
73 return FWL_ERR_Succeeded;
74 }
75 IFWL_Content* CFWL_PanelImp::GetContent() {
76 return m_pContent;
77 }
78 FWL_ERR CFWL_PanelImp::SetContent(IFWL_Content* pContent) {
79 if (!pContent)
80 return FWL_ERR_Indefinite;
81 m_pContent = pContent;
82 return pContent->SetParent(m_pInterface);
83 }
84 class CFWL_CustomPanelImp : public CFWL_WidgetImp {
85 public:
86 CFWL_CustomPanelImp(const CFWL_WidgetImpProperties& properties,
87 IFWL_Widget* pOuter);
88 virtual ~CFWL_CustomPanelImp();
89 virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE);
90 virtual FWL_ERR Update();
91 virtual IFWL_Content* GetContent();
92 virtual FWL_ERR SetContent(IFWL_Content* pContent);
93 FWL_ERR SetProxy(IFWL_Proxy* pProxy);
94
95 protected:
96 IFWL_Content* m_pContent;
97 IFWL_Proxy* m_pProxy;
98 };
99 CFWL_CustomPanelImp::CFWL_CustomPanelImp(
100 const CFWL_WidgetImpProperties& properties,
101 IFWL_Widget* pOuter)
102 : CFWL_WidgetImp(properties, pOuter),
103 m_pContent(nullptr),
104 m_pProxy(nullptr) {}
105 CFWL_CustomPanelImp::~CFWL_CustomPanelImp() {}
106 FWL_ERR CFWL_CustomPanelImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) {
107 if (bAutoSize && m_pProxy &&
108 (m_pProxy->GetWidgetRect(rect, bAutoSize) == FWL_ERR_Succeeded)) {
109 return FWL_ERR_Succeeded;
110 }
111 return CFWL_WidgetImp::GetWidgetRect(rect, bAutoSize);
112 }
113 FWL_ERR CFWL_CustomPanelImp::Update() {
114 if (m_pProxy) {
115 return m_pProxy->Update();
116 }
117 return CFWL_WidgetImp::Update();
118 }
119 IFWL_Content* CFWL_CustomPanelImp::GetContent() {
120 return m_pContent;
121 }
122 FWL_ERR CFWL_CustomPanelImp::SetContent(IFWL_Content* pContent) {
123 if (!pContent)
124 return FWL_ERR_Indefinite;
125 m_pContent = pContent;
126 return pContent->SetParent(m_pInterface);
127 }
128 FWL_ERR CFWL_CustomPanelImp::SetProxy(IFWL_Proxy* pProxy) {
129 m_pProxy = pProxy;
130 return FWL_ERR_Succeeded;
131 }
132
133 // statuc
134 IFWL_CustomPanel* IFWL_CustomPanel::Create(CFWL_WidgetImpProperties& properties,
135 IFWL_Widget* pOuter) {
136 IFWL_CustomPanel* pCustomPanel = new IFWL_CustomPanel;
137 CFWL_CustomPanelImp* pCustomPanelImpl =
138 new CFWL_CustomPanelImp(properties, pOuter);
139 pCustomPanel->SetImpl(pCustomPanelImpl);
140 pCustomPanelImpl->SetInterface(pCustomPanel);
141 return pCustomPanel;
142 }
143 IFWL_CustomPanel::IFWL_CustomPanel() {}
144 IFWL_Content* IFWL_CustomPanel::GetContent() {
145 return static_cast<CFWL_CustomPanelImp*>(GetImpl())->GetContent();
146 }
147 FWL_ERR IFWL_CustomPanel::SetContent(IFWL_Content* pContent) {
148 return static_cast<CFWL_CustomPanelImp*>(GetImpl())->SetContent(pContent);
149 }
150 FWL_ERR IFWL_CustomPanel::SetProxy(IFWL_Proxy* pProxy) {
151 return static_cast<CFWL_CustomPanelImp*>(GetImpl())->SetProxy(pProxy);
152 }
OLDNEW
« no previous file with comments | « xfa/src/fwl/core/fwl_panelimp.h ('k') | xfa/src/fwl/core/fwl_sdadapterimp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698