OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "xfa/fxfa/app/xfa_ffpageview.h" | 7 #include "xfa/include/fxfa/xfa_ffpageview.h" |
8 | 8 |
9 #include "xfa/fde/fde_render.h" | 9 #include "xfa/fde/fde_render.h" |
10 #include "xfa/fxfa/app/xfa_ffcheckbutton.h" | 10 #include "xfa/fxfa/app/xfa_ffcheckbutton.h" |
11 #include "xfa/fxfa/app/xfa_ffchoicelist.h" | 11 #include "xfa/fxfa/app/xfa_ffchoicelist.h" |
12 #include "xfa/fxfa/app/xfa_ffdoc.h" | 12 #include "xfa/include/fxfa/xfa_ffdoc.h" |
13 #include "xfa/fxfa/app/xfa_ffdocview.h" | 13 #include "xfa/include/fxfa/xfa_ffdocview.h" |
14 #include "xfa/fxfa/app/xfa_fffield.h" | 14 #include "xfa/fxfa/app/xfa_fffield.h" |
15 #include "xfa/fxfa/app/xfa_ffimageedit.h" | 15 #include "xfa/fxfa/app/xfa_ffimageedit.h" |
16 #include "xfa/fxfa/app/xfa_ffpushbutton.h" | 16 #include "xfa/fxfa/app/xfa_ffpushbutton.h" |
17 #include "xfa/fxfa/app/xfa_fftextedit.h" | 17 #include "xfa/fxfa/app/xfa_fftextedit.h" |
18 #include "xfa/fxfa/app/xfa_ffwidget.h" | 18 #include "xfa/fxfa/app/xfa_ffwidget.h" |
19 #include "xfa/fxfa/app/xfa_fwladapter.h" | 19 #include "xfa/fxfa/app/xfa_fwladapter.h" |
20 | 20 |
21 CXFA_FFPageView::CXFA_FFPageView(CXFA_FFDocView* pDocView, CXFA_Node* pPageArea) | 21 CXFA_FFPageView::CXFA_FFPageView(CXFA_FFDocView* pDocView, CXFA_Node* pPageArea) |
22 : CXFA_ContainerLayoutItem(pPageArea), | 22 : CXFA_ContainerLayoutItem(pPageArea), |
23 m_pDocView(pDocView), | 23 m_pDocView(pDocView), |
24 m_bLoaded(FALSE) {} | 24 m_bLoaded(FALSE) {} |
25 CXFA_FFPageView::~CXFA_FFPageView() {} | 25 CXFA_FFPageView::~CXFA_FFPageView() {} |
26 IXFA_DocView* CXFA_FFPageView::GetDocView() { | 26 CXFA_FFDocView* CXFA_FFPageView::GetDocView() { |
27 return m_pDocView; | 27 return m_pDocView; |
28 } | 28 } |
29 int32_t CXFA_FFPageView::GetPageViewIndex() { | 29 int32_t CXFA_FFPageView::GetPageViewIndex() { |
30 return GetPageIndex(); | 30 return GetPageIndex(); |
31 } | 31 } |
32 void CXFA_FFPageView::GetPageViewRect(CFX_RectF& rtPage) { | 32 void CXFA_FFPageView::GetPageViewRect(CFX_RectF& rtPage) { |
33 CFX_SizeF sz; | 33 CFX_SizeF sz; |
34 GetPageSize(sz); | 34 GetPageSize(sz); |
35 rtPage.Set(0, 0, sz); | 35 rtPage.Set(0, 0, sz); |
36 } | 36 } |
(...skipping 14 matching lines...) Expand all Loading... |
51 return 100; | 51 return 100; |
52 } | 52 } |
53 void CXFA_FFPageView::UnloadPageView() { | 53 void CXFA_FFPageView::UnloadPageView() { |
54 if (!m_bLoaded) { | 54 if (!m_bLoaded) { |
55 return; | 55 return; |
56 } | 56 } |
57 } | 57 } |
58 FX_BOOL CXFA_FFPageView::IsPageViewLoaded() { | 58 FX_BOOL CXFA_FFPageView::IsPageViewLoaded() { |
59 return m_bLoaded; | 59 return m_bLoaded; |
60 } | 60 } |
61 IXFA_Widget* CXFA_FFPageView::GetWidgetByPos(FX_FLOAT fx, FX_FLOAT fy) { | 61 CXFA_FFWidget* CXFA_FFPageView::GetWidgetByPos(FX_FLOAT fx, FX_FLOAT fy) { |
62 if (!m_bLoaded) { | 62 if (!m_bLoaded) { |
63 return nullptr; | 63 return nullptr; |
64 } | 64 } |
65 IXFA_WidgetIterator* pIterator = CreateWidgetIterator(); | 65 IXFA_WidgetIterator* pIterator = CreateWidgetIterator(); |
66 CXFA_FFWidget* pWidget = nullptr; | 66 CXFA_FFWidget* pWidget = nullptr; |
67 while ((pWidget = static_cast<CXFA_FFWidget*>(pIterator->MoveToNext()))) { | 67 while ((pWidget = static_cast<CXFA_FFWidget*>(pIterator->MoveToNext()))) { |
68 if (!(pWidget->GetStatus() & XFA_WIDGETSTATUS_Visible)) { | 68 if (!(pWidget->GetStatus() & XFA_WIDGETSTATUS_Visible)) { |
69 continue; | 69 continue; |
70 } | 70 } |
71 CXFA_WidgetAcc* pAcc = pWidget->GetDataAcc(); | 71 CXFA_WidgetAcc* pAcc = pWidget->GetDataAcc(); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 m_dwFilter = dwFilter; | 123 m_dwFilter = dwFilter; |
124 m_sIterator.Init(pPageView); | 124 m_sIterator.Init(pPageView); |
125 m_bIgnorerelevant = ((CXFA_FFDoc*)m_pPageView->GetDocView()->GetDoc()) | 125 m_bIgnorerelevant = ((CXFA_FFDoc*)m_pPageView->GetDocView()->GetDoc()) |
126 ->GetXFADoc() | 126 ->GetXFADoc() |
127 ->GetCurVersionMode() < XFA_VERSION_205; | 127 ->GetCurVersionMode() < XFA_VERSION_205; |
128 } | 128 } |
129 CXFA_FFPageWidgetIterator::~CXFA_FFPageWidgetIterator() {} | 129 CXFA_FFPageWidgetIterator::~CXFA_FFPageWidgetIterator() {} |
130 void CXFA_FFPageWidgetIterator::Reset() { | 130 void CXFA_FFPageWidgetIterator::Reset() { |
131 m_sIterator.Reset(); | 131 m_sIterator.Reset(); |
132 } | 132 } |
133 IXFA_Widget* CXFA_FFPageWidgetIterator::MoveToFirst() { | 133 CXFA_FFWidget* CXFA_FFPageWidgetIterator::MoveToFirst() { |
134 m_sIterator.Reset(); | 134 m_sIterator.Reset(); |
135 for (CXFA_LayoutItem* pLayoutItem = m_sIterator.GetCurrent(); pLayoutItem; | 135 for (CXFA_LayoutItem* pLayoutItem = m_sIterator.GetCurrent(); pLayoutItem; |
136 pLayoutItem = m_sIterator.MoveToNext()) { | 136 pLayoutItem = m_sIterator.MoveToNext()) { |
137 if (IXFA_Widget* hWidget = GetWidget(pLayoutItem)) { | 137 if (CXFA_FFWidget* hWidget = GetWidget(pLayoutItem)) { |
138 return hWidget; | 138 return hWidget; |
139 } | 139 } |
140 } | 140 } |
141 return NULL; | 141 return NULL; |
142 } | 142 } |
143 IXFA_Widget* CXFA_FFPageWidgetIterator::MoveToLast() { | 143 CXFA_FFWidget* CXFA_FFPageWidgetIterator::MoveToLast() { |
144 m_sIterator.SetCurrent(NULL); | 144 m_sIterator.SetCurrent(NULL); |
145 return MoveToPrevious(); | 145 return MoveToPrevious(); |
146 } | 146 } |
147 IXFA_Widget* CXFA_FFPageWidgetIterator::MoveToNext() { | 147 CXFA_FFWidget* CXFA_FFPageWidgetIterator::MoveToNext() { |
148 for (CXFA_LayoutItem* pLayoutItem = m_sIterator.MoveToNext(); pLayoutItem; | 148 for (CXFA_LayoutItem* pLayoutItem = m_sIterator.MoveToNext(); pLayoutItem; |
149 pLayoutItem = m_sIterator.MoveToNext()) { | 149 pLayoutItem = m_sIterator.MoveToNext()) { |
150 if (IXFA_Widget* hWidget = GetWidget(pLayoutItem)) { | 150 if (CXFA_FFWidget* hWidget = GetWidget(pLayoutItem)) { |
151 return hWidget; | 151 return hWidget; |
152 } | 152 } |
153 } | 153 } |
154 return NULL; | 154 return NULL; |
155 } | 155 } |
156 IXFA_Widget* CXFA_FFPageWidgetIterator::MoveToPrevious() { | 156 CXFA_FFWidget* CXFA_FFPageWidgetIterator::MoveToPrevious() { |
157 for (CXFA_LayoutItem* pLayoutItem = m_sIterator.MoveToPrev(); pLayoutItem; | 157 for (CXFA_LayoutItem* pLayoutItem = m_sIterator.MoveToPrev(); pLayoutItem; |
158 pLayoutItem = m_sIterator.MoveToPrev()) { | 158 pLayoutItem = m_sIterator.MoveToPrev()) { |
159 if (IXFA_Widget* hWidget = GetWidget(pLayoutItem)) { | 159 if (CXFA_FFWidget* hWidget = GetWidget(pLayoutItem)) { |
160 return hWidget; | 160 return hWidget; |
161 } | 161 } |
162 } | 162 } |
163 return NULL; | 163 return NULL; |
164 } | 164 } |
165 IXFA_Widget* CXFA_FFPageWidgetIterator::GetCurrentWidget() { | 165 CXFA_FFWidget* CXFA_FFPageWidgetIterator::GetCurrentWidget() { |
166 CXFA_LayoutItem* pLayoutItem = m_sIterator.GetCurrent(); | 166 CXFA_LayoutItem* pLayoutItem = m_sIterator.GetCurrent(); |
167 return pLayoutItem ? XFA_GetWidgetFromLayoutItem(pLayoutItem) : NULL; | 167 return pLayoutItem ? XFA_GetWidgetFromLayoutItem(pLayoutItem) : NULL; |
168 } | 168 } |
169 FX_BOOL CXFA_FFPageWidgetIterator::SetCurrentWidget(IXFA_Widget* hWidget) { | 169 FX_BOOL CXFA_FFPageWidgetIterator::SetCurrentWidget(CXFA_FFWidget* hWidget) { |
170 CXFA_FFWidget* pWidget = static_cast<CXFA_FFWidget*>(hWidget); | 170 CXFA_FFWidget* pWidget = static_cast<CXFA_FFWidget*>(hWidget); |
171 return pWidget && m_sIterator.SetCurrent(pWidget); | 171 return pWidget && m_sIterator.SetCurrent(pWidget); |
172 } | 172 } |
173 IXFA_Widget* CXFA_FFPageWidgetIterator::GetWidget( | 173 CXFA_FFWidget* CXFA_FFPageWidgetIterator::GetWidget( |
174 CXFA_LayoutItem* pLayoutItem) { | 174 CXFA_LayoutItem* pLayoutItem) { |
175 if (CXFA_FFWidget* pWidget = XFA_GetWidgetFromLayoutItem(pLayoutItem)) { | 175 if (CXFA_FFWidget* pWidget = XFA_GetWidgetFromLayoutItem(pLayoutItem)) { |
176 if (!XFA_PageWidgetFilter(pWidget, m_dwFilter, FALSE, m_bIgnorerelevant)) { | 176 if (!XFA_PageWidgetFilter(pWidget, m_dwFilter, FALSE, m_bIgnorerelevant)) { |
177 return NULL; | 177 return NULL; |
178 } | 178 } |
179 if (!pWidget->IsLoaded() && | 179 if (!pWidget->IsLoaded() && |
180 (pWidget->GetStatus() & XFA_WIDGETSTATUS_Visible) != 0) { | 180 (pWidget->GetStatus() & XFA_WIDGETSTATUS_Visible) != 0) { |
181 pWidget->LoadWidget(); | 181 pWidget->LoadWidget(); |
182 } | 182 } |
183 return pWidget; | 183 return pWidget; |
(...skipping 10 matching lines...) Expand all Loading... |
194 Reset(); | 194 Reset(); |
195 } | 195 } |
196 CXFA_FFTabOrderPageWidgetIterator::~CXFA_FFTabOrderPageWidgetIterator() {} | 196 CXFA_FFTabOrderPageWidgetIterator::~CXFA_FFTabOrderPageWidgetIterator() {} |
197 void CXFA_FFTabOrderPageWidgetIterator::Release() { | 197 void CXFA_FFTabOrderPageWidgetIterator::Release() { |
198 delete this; | 198 delete this; |
199 } | 199 } |
200 void CXFA_FFTabOrderPageWidgetIterator::Reset() { | 200 void CXFA_FFTabOrderPageWidgetIterator::Reset() { |
201 CreateTabOrderWidgetArray(); | 201 CreateTabOrderWidgetArray(); |
202 m_iCurWidget = -1; | 202 m_iCurWidget = -1; |
203 } | 203 } |
204 IXFA_Widget* CXFA_FFTabOrderPageWidgetIterator::MoveToFirst() { | 204 CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::MoveToFirst() { |
205 if (m_TabOrderWidgetArray.GetSize() > 0) { | 205 if (m_TabOrderWidgetArray.GetSize() > 0) { |
206 for (int32_t i = 0; i < m_TabOrderWidgetArray.GetSize(); i++) { | 206 for (int32_t i = 0; i < m_TabOrderWidgetArray.GetSize(); i++) { |
207 if (XFA_PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE, | 207 if (XFA_PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE, |
208 m_bIgnorerelevant)) { | 208 m_bIgnorerelevant)) { |
209 m_iCurWidget = i; | 209 m_iCurWidget = i; |
210 return m_TabOrderWidgetArray[m_iCurWidget]; | 210 return m_TabOrderWidgetArray[m_iCurWidget]; |
211 } | 211 } |
212 } | 212 } |
213 } | 213 } |
214 return NULL; | 214 return NULL; |
215 } | 215 } |
216 IXFA_Widget* CXFA_FFTabOrderPageWidgetIterator::MoveToLast() { | 216 CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::MoveToLast() { |
217 if (m_TabOrderWidgetArray.GetSize() > 0) { | 217 if (m_TabOrderWidgetArray.GetSize() > 0) { |
218 for (int32_t i = m_TabOrderWidgetArray.GetSize() - 1; i >= 0; i--) { | 218 for (int32_t i = m_TabOrderWidgetArray.GetSize() - 1; i >= 0; i--) { |
219 if (XFA_PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE, | 219 if (XFA_PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE, |
220 m_bIgnorerelevant)) { | 220 m_bIgnorerelevant)) { |
221 m_iCurWidget = i; | 221 m_iCurWidget = i; |
222 return m_TabOrderWidgetArray[m_iCurWidget]; | 222 return m_TabOrderWidgetArray[m_iCurWidget]; |
223 } | 223 } |
224 } | 224 } |
225 } | 225 } |
226 return NULL; | 226 return NULL; |
227 } | 227 } |
228 IXFA_Widget* CXFA_FFTabOrderPageWidgetIterator::MoveToNext() { | 228 CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::MoveToNext() { |
229 for (int32_t i = m_iCurWidget + 1; i < m_TabOrderWidgetArray.GetSize(); i++) { | 229 for (int32_t i = m_iCurWidget + 1; i < m_TabOrderWidgetArray.GetSize(); i++) { |
230 if (XFA_PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE, | 230 if (XFA_PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE, |
231 m_bIgnorerelevant)) { | 231 m_bIgnorerelevant)) { |
232 m_iCurWidget = i; | 232 m_iCurWidget = i; |
233 return m_TabOrderWidgetArray[m_iCurWidget]; | 233 return m_TabOrderWidgetArray[m_iCurWidget]; |
234 } | 234 } |
235 } | 235 } |
236 m_iCurWidget = -1; | 236 m_iCurWidget = -1; |
237 return NULL; | 237 return NULL; |
238 } | 238 } |
239 IXFA_Widget* CXFA_FFTabOrderPageWidgetIterator::MoveToPrevious() { | 239 CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::MoveToPrevious() { |
240 for (int32_t i = m_iCurWidget - 1; i >= 0; i--) { | 240 for (int32_t i = m_iCurWidget - 1; i >= 0; i--) { |
241 if (XFA_PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE, | 241 if (XFA_PageWidgetFilter(m_TabOrderWidgetArray[i], m_dwFilter, TRUE, |
242 m_bIgnorerelevant)) { | 242 m_bIgnorerelevant)) { |
243 m_iCurWidget = i; | 243 m_iCurWidget = i; |
244 return m_TabOrderWidgetArray[m_iCurWidget]; | 244 return m_TabOrderWidgetArray[m_iCurWidget]; |
245 } | 245 } |
246 } | 246 } |
247 m_iCurWidget = -1; | 247 m_iCurWidget = -1; |
248 return NULL; | 248 return NULL; |
249 } | 249 } |
250 IXFA_Widget* CXFA_FFTabOrderPageWidgetIterator::GetCurrentWidget() { | 250 CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::GetCurrentWidget() { |
251 if (m_iCurWidget >= 0) { | 251 if (m_iCurWidget >= 0) { |
252 return m_TabOrderWidgetArray[m_iCurWidget]; | 252 return m_TabOrderWidgetArray[m_iCurWidget]; |
253 } | 253 } |
254 return NULL; | 254 return NULL; |
255 } | 255 } |
256 FX_BOOL CXFA_FFTabOrderPageWidgetIterator::SetCurrentWidget( | 256 FX_BOOL CXFA_FFTabOrderPageWidgetIterator::SetCurrentWidget( |
257 IXFA_Widget* hWidget) { | 257 CXFA_FFWidget* hWidget) { |
258 int32_t iWidgetIndex = | 258 int32_t iWidgetIndex = |
259 m_TabOrderWidgetArray.Find(static_cast<CXFA_FFWidget*>(hWidget)); | 259 m_TabOrderWidgetArray.Find(static_cast<CXFA_FFWidget*>(hWidget)); |
260 if (iWidgetIndex >= 0) { | 260 if (iWidgetIndex >= 0) { |
261 m_iCurWidget = iWidgetIndex; | 261 m_iCurWidget = iWidgetIndex; |
262 return TRUE; | 262 return TRUE; |
263 } | 263 } |
264 return FALSE; | 264 return FALSE; |
265 } | 265 } |
266 CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::GetTraverseWidget( | 266 CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::GetTraverseWidget( |
267 CXFA_FFWidget* pWidget) { | 267 CXFA_FFWidget* pWidget) { |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 CXFA_LayoutItem* pLayoutItem) { | 415 CXFA_LayoutItem* pLayoutItem) { |
416 if (CXFA_FFWidget* pWidget = XFA_GetWidgetFromLayoutItem(pLayoutItem)) { | 416 if (CXFA_FFWidget* pWidget = XFA_GetWidgetFromLayoutItem(pLayoutItem)) { |
417 if (!pWidget->IsLoaded() && | 417 if (!pWidget->IsLoaded() && |
418 (pWidget->GetStatus() & XFA_WIDGETSTATUS_Visible)) { | 418 (pWidget->GetStatus() & XFA_WIDGETSTATUS_Visible)) { |
419 pWidget->LoadWidget(); | 419 pWidget->LoadWidget(); |
420 } | 420 } |
421 return pWidget; | 421 return pWidget; |
422 } | 422 } |
423 return NULL; | 423 return NULL; |
424 } | 424 } |
OLD | NEW |