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

Side by Side Diff: xfa/fwl/core/fwl_widgetimp.cpp

Issue 1921853006: More FWL interface cleanup. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 7 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/fwl/core/fwl_widgetimp.h ('k') | xfa/fwl/core/fwl_widgetmgrimp.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/fwl/core/fwl_widgetimp.h" 7 #include "xfa/fwl/core/fwl_widgetimp.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
11 #include "xfa/fde/tto/fde_textout.h" 11 #include "xfa/fde/tto/fde_textout.h"
12 #include "xfa/fwl/basewidget/ifwl_combobox.h" 12 #include "xfa/fwl/basewidget/ifwl_combobox.h"
13 #include "xfa/fwl/basewidget/ifwl_datetimepicker.h" 13 #include "xfa/fwl/basewidget/ifwl_datetimepicker.h"
14 #include "xfa/fwl/core/cfwl_message.h" 14 #include "xfa/fwl/core/cfwl_message.h"
15 #include "xfa/fwl/core/cfwl_themebackground.h" 15 #include "xfa/fwl/core/cfwl_themebackground.h"
16 #include "xfa/fwl/core/cfwl_themepart.h" 16 #include "xfa/fwl/core/cfwl_themepart.h"
17 #include "xfa/fwl/core/cfwl_themetext.h" 17 #include "xfa/fwl/core/cfwl_themetext.h"
18 #include "xfa/fwl/core/fwl_appimp.h" 18 #include "xfa/fwl/core/fwl_appimp.h"
19 #include "xfa/fwl/core/fwl_noteimp.h" 19 #include "xfa/fwl/core/fwl_noteimp.h"
20 #include "xfa/fwl/core/fwl_targetimp.h"
21 #include "xfa/fwl/core/fwl_threadimp.h"
22 #include "xfa/fwl/core/fwl_widgetmgrimp.h" 20 #include "xfa/fwl/core/fwl_widgetmgrimp.h"
23 #include "xfa/fwl/core/ifwl_adapternative.h" 21 #include "xfa/fwl/core/ifwl_adapternative.h"
24 #include "xfa/fwl/core/ifwl_adapterthreadmgr.h" 22 #include "xfa/fwl/core/ifwl_adapterthreadmgr.h"
25 #include "xfa/fwl/core/ifwl_adapterwidgetmgr.h" 23 #include "xfa/fwl/core/ifwl_adapterwidgetmgr.h"
26 #include "xfa/fwl/core/ifwl_app.h" 24 #include "xfa/fwl/core/ifwl_app.h"
27 #include "xfa/fwl/core/ifwl_form.h" 25 #include "xfa/fwl/core/ifwl_form.h"
28 #include "xfa/fwl/core/ifwl_themeprovider.h" 26 #include "xfa/fwl/core/ifwl_themeprovider.h"
29 27
30 #define FWL_CLASSHASH_Menu 3957949655 28 #define FWL_CLASSHASH_Menu 3957949655
31 #define FWL_STYLEEXT_MNU_Vert (1L << 0) 29 #define FWL_STYLEEXT_MNU_Vert (1L << 0)
32 30
31 IFWL_Widget::~IFWL_Widget() {}
32
33 FWL_ERR IFWL_Widget::GetClassName(CFX_WideString& wsClass) const {
34 return m_pImpl->GetClassName(wsClass);
35 }
36
37 uint32_t IFWL_Widget::GetClassID() const {
38 return m_pImpl->GetClassID();
39 }
40
41 FX_BOOL IFWL_Widget::IsInstance(const CFX_WideStringC& wsClass) const {
42 return m_pImpl->IsInstance(wsClass);
43 }
44
45 FWL_ERR IFWL_Widget::Initialize() {
46 return m_pImpl->Initialize();
47 }
48
49 FWL_ERR IFWL_Widget::Finalize() {
50 return m_pImpl->Finalize();
51 }
52
33 FWL_ERR IFWL_Widget::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { 53 FWL_ERR IFWL_Widget::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) {
34 return static_cast<CFWL_WidgetImp*>(GetImpl()) 54 return static_cast<CFWL_WidgetImp*>(GetImpl())
35 ->GetWidgetRect(rect, bAutoSize); 55 ->GetWidgetRect(rect, bAutoSize);
36 } 56 }
37 FWL_ERR IFWL_Widget::GetGlobalRect(CFX_RectF& rect) { 57 FWL_ERR IFWL_Widget::GetGlobalRect(CFX_RectF& rect) {
38 return static_cast<CFWL_WidgetImp*>(GetImpl())->GetGlobalRect(rect); 58 return static_cast<CFWL_WidgetImp*>(GetImpl())->GetGlobalRect(rect);
39 } 59 }
40 FWL_ERR IFWL_Widget::SetWidgetRect(const CFX_RectF& rect) { 60 FWL_ERR IFWL_Widget::SetWidgetRect(const CFX_RectF& rect) {
41 return static_cast<CFWL_WidgetImp*>(GetImpl())->SetWidgetRect(rect); 61 return static_cast<CFWL_WidgetImp*>(GetImpl())->SetWidgetRect(rect);
42 } 62 }
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 return static_cast<CFWL_WidgetImp*>(GetImpl()) 147 return static_cast<CFWL_WidgetImp*>(GetImpl())
128 ->SetThemeProvider(pThemeProvider); 148 ->SetThemeProvider(pThemeProvider);
129 } 149 }
130 FWL_ERR IFWL_Widget::SetDataProvider(IFWL_DataProvider* pDataProvider) { 150 FWL_ERR IFWL_Widget::SetDataProvider(IFWL_DataProvider* pDataProvider) {
131 return static_cast<CFWL_WidgetImp*>(GetImpl()) 151 return static_cast<CFWL_WidgetImp*>(GetImpl())
132 ->SetDataProvider(pDataProvider); 152 ->SetDataProvider(pDataProvider);
133 } 153 }
134 IFWL_WidgetDelegate* IFWL_Widget::SetDelegate(IFWL_WidgetDelegate* pDelegate) { 154 IFWL_WidgetDelegate* IFWL_Widget::SetDelegate(IFWL_WidgetDelegate* pDelegate) {
135 return static_cast<CFWL_WidgetImp*>(GetImpl())->SetDelegate(pDelegate); 155 return static_cast<CFWL_WidgetImp*>(GetImpl())->SetDelegate(pDelegate);
136 } 156 }
137 IFWL_Thread* IFWL_Widget::GetOwnerThread() const { 157 IFWL_App* IFWL_Widget::GetOwnerApp() const {
138 return static_cast<CFWL_WidgetImp*>(GetImpl())->GetOwnerThread(); 158 return static_cast<CFWL_WidgetImp*>(GetImpl())->GetOwnerApp();
139 } 159 }
140 CFX_SizeF IFWL_Widget::GetOffsetFromParent(IFWL_Widget* pParent) { 160 CFX_SizeF IFWL_Widget::GetOffsetFromParent(IFWL_Widget* pParent) {
141 return static_cast<CFWL_WidgetImp*>(GetImpl())->GetOffsetFromParent(pParent); 161 return static_cast<CFWL_WidgetImp*>(GetImpl())->GetOffsetFromParent(pParent);
142 } 162 }
163
143 FWL_ERR CFWL_WidgetImp::Initialize() { 164 FWL_ERR CFWL_WidgetImp::Initialize() {
144 IFWL_App* pApp = FWL_GetApp(); 165 IFWL_App* pApp = FWL_GetApp();
145 if (!pApp) 166 if (!pApp)
146 return FWL_ERR_Indefinite; 167 return FWL_ERR_Indefinite;
147 IFWL_AdapterNative* pAdapter = pApp->GetAdapterNative(); 168 IFWL_AdapterNative* pAdapter = pApp->GetAdapterNative();
148 if (!pAdapter) 169 if (!pAdapter)
149 return FWL_ERR_Indefinite; 170 return FWL_ERR_Indefinite;
150 IFWL_AdapterThreadMgr* pAdapterThread = pAdapter->GetThreadMgr(); 171 IFWL_AdapterThreadMgr* pAdapterThread = pAdapter->GetThreadMgr();
151 if (!pAdapterThread) 172 if (!pAdapterThread)
152 return FWL_ERR_Indefinite; 173 return FWL_ERR_Indefinite;
153 SetOwnerThread(static_cast<CFWL_ThreadImp*>( 174 SetOwnerApp(
154 pAdapterThread->GetCurrentThread()->GetImpl())); 175 static_cast<CFWL_AppImp*>(pAdapterThread->GetCurrentThread()->GetImpl()));
155 IFWL_Widget* pParent = m_pProperties->m_pParent; 176 IFWL_Widget* pParent = m_pProperties->m_pParent;
156 m_pWidgetMgr->InsertWidget(pParent, m_pInterface); 177 m_pWidgetMgr->InsertWidget(pParent, m_pInterface);
157 if (!IsChild()) { 178 if (!IsChild()) {
158 { 179 {
159 IFWL_Widget* pOwner = m_pProperties->m_pOwner; 180 IFWL_Widget* pOwner = m_pProperties->m_pOwner;
160 if (pOwner) { 181 if (pOwner) {
161 m_pWidgetMgr->SetOwner(pOwner, m_pInterface); 182 m_pWidgetMgr->SetOwner(pOwner, m_pInterface);
162 } 183 }
163 } 184 }
164 m_pWidgetMgr->CreateWidget_Native(m_pInterface); 185 m_pWidgetMgr->CreateWidget_Native(m_pInterface);
165 } 186 }
166 return FWL_ERR_Succeeded; 187 return FWL_ERR_Succeeded;
167 } 188 }
189
168 FWL_ERR CFWL_WidgetImp::Finalize() { 190 FWL_ERR CFWL_WidgetImp::Finalize() {
169 NotifyDriver(); 191 NotifyDriver();
170 if (!IsChild()) 192 if (!IsChild())
171 m_pWidgetMgr->DestroyWidget_Native(m_pInterface); 193 m_pWidgetMgr->DestroyWidget_Native(m_pInterface);
172 194
173 m_pWidgetMgr->RemoveWidget(m_pInterface); 195 m_pWidgetMgr->RemoveWidget(m_pInterface);
174 return FWL_ERR_Succeeded; 196 return FWL_ERR_Succeeded;
175 } 197 }
198
199 FWL_ERR CFWL_WidgetImp::GetClassName(CFX_WideString& wsClass) const {
200 wsClass.clear();
201 return FWL_ERR_Succeeded;
202 }
203
204 uint32_t CFWL_WidgetImp::GetClassID() const {
205 return 0;
206 }
207
208 FX_BOOL CFWL_WidgetImp::IsInstance(const CFX_WideStringC& wsClass) const {
209 return FALSE;
210 }
211
176 FWL_ERR CFWL_WidgetImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { 212 FWL_ERR CFWL_WidgetImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) {
177 if (bAutoSize) { 213 if (bAutoSize) {
178 if (HasEdge()) { 214 if (HasEdge()) {
179 FX_FLOAT fEdge = GetEdgeWidth(); 215 FX_FLOAT fEdge = GetEdgeWidth();
180 rect.Inflate(fEdge, fEdge); 216 rect.Inflate(fEdge, fEdge);
181 } 217 }
182 if (HasBorder()) { 218 if (HasBorder()) {
183 FX_FLOAT fBorder = GetBorderSize(); 219 FX_FLOAT fBorder = GetBorderSize();
184 rect.Inflate(fBorder, fBorder); 220 rect.Inflate(fBorder, fBorder);
185 } 221 }
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 } 315 }
280 } 316 }
281 FWL_ERR CFWL_WidgetImp::SetStates(uint32_t dwStates, FX_BOOL bSet) { 317 FWL_ERR CFWL_WidgetImp::SetStates(uint32_t dwStates, FX_BOOL bSet) {
282 bSet ? (m_pProperties->m_dwStates |= dwStates) 318 bSet ? (m_pProperties->m_dwStates |= dwStates)
283 : (m_pProperties->m_dwStates &= ~dwStates); 319 : (m_pProperties->m_dwStates &= ~dwStates);
284 FWL_ERR ret = FWL_ERR_Succeeded; 320 FWL_ERR ret = FWL_ERR_Succeeded;
285 if (dwStates & FWL_WGTSTATE_Invisible) { 321 if (dwStates & FWL_WGTSTATE_Invisible) {
286 if (bSet) { 322 if (bSet) {
287 ret = m_pWidgetMgr->HideWidget_Native(m_pInterface); 323 ret = m_pWidgetMgr->HideWidget_Native(m_pInterface);
288 CFWL_NoteDriver* noteDriver = 324 CFWL_NoteDriver* noteDriver =
289 static_cast<CFWL_NoteDriver*>(GetOwnerThread()->GetNoteDriver()); 325 static_cast<CFWL_NoteDriver*>(GetOwnerApp()->GetNoteDriver());
290 IFWL_WidgetMgr* widgetMgr = FWL_GetWidgetMgr(); 326 IFWL_WidgetMgr* widgetMgr = FWL_GetWidgetMgr();
291 noteDriver->NotifyTargetHide(m_pInterface); 327 noteDriver->NotifyTargetHide(m_pInterface);
292 IFWL_Widget* child = 328 IFWL_Widget* child =
293 widgetMgr->GetWidget(m_pInterface, FWL_WGTRELATION_FirstChild); 329 widgetMgr->GetWidget(m_pInterface, FWL_WGTRELATION_FirstChild);
294 while (child) { 330 while (child) {
295 noteDriver->NotifyTargetHide(child); 331 noteDriver->NotifyTargetHide(child);
296 NotifyHideChildWidget(widgetMgr, child, noteDriver); 332 NotifyHideChildWidget(widgetMgr, child, noteDriver);
297 child = widgetMgr->GetWidget(child, FWL_WGTRELATION_NextSibling); 333 child = widgetMgr->GetWidget(child, FWL_WGTRELATION_NextSibling);
298 } 334 }
299 } else { 335 } else {
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 if (!m_pCurDelegate) { 526 if (!m_pCurDelegate) {
491 m_pCurDelegate = m_pDelegate; 527 m_pCurDelegate = m_pDelegate;
492 } 528 }
493 if (!pDelegate) { 529 if (!pDelegate) {
494 return m_pCurDelegate; 530 return m_pCurDelegate;
495 } 531 }
496 IFWL_WidgetDelegate* pOldDelegate = m_pCurDelegate; 532 IFWL_WidgetDelegate* pOldDelegate = m_pCurDelegate;
497 m_pCurDelegate = pDelegate; 533 m_pCurDelegate = pDelegate;
498 return pOldDelegate; 534 return pOldDelegate;
499 } 535 }
500 IFWL_Thread* CFWL_WidgetImp::GetOwnerThread() const { 536 IFWL_App* CFWL_WidgetImp::GetOwnerApp() const {
501 return static_cast<IFWL_Thread*>(m_pOwnerThread->GetInterface()); 537 return static_cast<IFWL_App*>(m_pOwnerApp->GetInterface());
502 } 538 }
503 FWL_ERR CFWL_WidgetImp::SetOwnerThread(CFWL_ThreadImp* pOwnerThread) { 539 FWL_ERR CFWL_WidgetImp::SetOwnerApp(CFWL_AppImp* pOwnerApp) {
504 m_pOwnerThread = pOwnerThread; 540 m_pOwnerApp = pOwnerApp;
505 return FWL_ERR_Succeeded; 541 return FWL_ERR_Succeeded;
506 } 542 }
507 IFWL_Widget* CFWL_WidgetImp::GetInterface() const { 543 IFWL_Widget* CFWL_WidgetImp::GetInterface() const {
508 return m_pInterface; 544 return m_pInterface;
509 } 545 }
510 void CFWL_WidgetImp::SetInterface(IFWL_Widget* pInterface) { 546 void CFWL_WidgetImp::SetInterface(IFWL_Widget* pInterface) {
511 m_pInterface = pInterface; 547 m_pInterface = pInterface;
512 } 548 }
513 CFWL_WidgetImp::CFWL_WidgetImp(const CFWL_WidgetImpProperties& properties, 549 CFWL_WidgetImp::CFWL_WidgetImp(const CFWL_WidgetImpProperties& properties,
514 IFWL_Widget* pOuter) 550 IFWL_Widget* pOuter)
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 CFWL_ThemeText calPart; 711 CFWL_ThemeText calPart;
676 calPart.m_pWidget = m_pInterface; 712 calPart.m_pWidget = m_pInterface;
677 calPart.m_wsText = wsText; 713 calPart.m_wsText = wsText;
678 calPart.m_dwTTOStyles = dwTTOStyles; 714 calPart.m_dwTTOStyles = dwTTOStyles;
679 calPart.m_iTTOAlign = iTTOAlign; 715 calPart.m_iTTOAlign = iTTOAlign;
680 pTheme->CalcTextRect(&calPart, rect); 716 pTheme->CalcTextRect(&calPart, rect);
681 } 717 }
682 void CFWL_WidgetImp::SetFocus(FX_BOOL bFocus) { 718 void CFWL_WidgetImp::SetFocus(FX_BOOL bFocus) {
683 if (m_pWidgetMgr->IsFormDisabled()) 719 if (m_pWidgetMgr->IsFormDisabled())
684 return; 720 return;
685 IFWL_Thread* pThread = GetOwnerThread(); 721
686 if (!pThread) 722 IFWL_App* pApp = GetOwnerApp();
723 if (!pApp)
687 return; 724 return;
725
688 CFWL_NoteDriver* pDriver = 726 CFWL_NoteDriver* pDriver =
689 static_cast<CFWL_NoteDriver*>(pThread->GetNoteDriver()); 727 static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver());
690 if (!pDriver) 728 if (!pDriver)
691 return; 729 return;
730
692 IFWL_Widget* curFocus = pDriver->GetFocus(); 731 IFWL_Widget* curFocus = pDriver->GetFocus();
693 if (bFocus && curFocus != m_pInterface) { 732 if (bFocus && curFocus != m_pInterface) {
694 pDriver->SetFocus(m_pInterface); 733 pDriver->SetFocus(m_pInterface);
695 } else if (!bFocus && curFocus == m_pInterface) { 734 } else if (!bFocus && curFocus == m_pInterface) {
696 pDriver->SetFocus(NULL); 735 pDriver->SetFocus(NULL);
697 } 736 }
698 } 737 }
699 void CFWL_WidgetImp::SetGrab(FX_BOOL bSet) { 738 void CFWL_WidgetImp::SetGrab(FX_BOOL bSet) {
700 IFWL_Thread* pThread = GetOwnerThread(); 739 IFWL_App* pApp = GetOwnerApp();
701 if (!pThread) 740 if (!pApp)
702 return; 741 return;
703 CFWL_NoteDriver* pDriver = 742 CFWL_NoteDriver* pDriver =
704 static_cast<CFWL_NoteDriver*>(pThread->GetNoteDriver()); 743 static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver());
705 pDriver->SetGrab(m_pInterface, bSet); 744 pDriver->SetGrab(m_pInterface, bSet);
706 } 745 }
707 FX_BOOL CFWL_WidgetImp::GetPopupPos(FX_FLOAT fMinHeight, 746 FX_BOOL CFWL_WidgetImp::GetPopupPos(FX_FLOAT fMinHeight,
708 FX_FLOAT fMaxHeight, 747 FX_FLOAT fMaxHeight,
709 const CFX_RectF& rtAnchor, 748 const CFX_RectF& rtAnchor,
710 CFX_RectF& rtPopup) { 749 CFX_RectF& rtPopup) {
711 if (GetClassID() == FWL_CLASSHASH_Menu) { 750 if (GetClassID() == FWL_CLASSHASH_Menu) {
712 return GetPopupPosMenu(fMinHeight, fMaxHeight, rtAnchor, rtPopup); 751 return GetPopupPosMenu(fMinHeight, fMaxHeight, rtAnchor, rtPopup);
713 } else { 752 } else {
714 if (GetClassID() == FWL_CLASSHASH_ComboBox) { 753 if (GetClassID() == FWL_CLASSHASH_ComboBox) {
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 rtPopup.height); 845 rtPopup.height);
807 } 846 }
808 rtPopup.Offset(fx, fy); 847 rtPopup.Offset(fx, fy);
809 return TRUE; 848 return TRUE;
810 } 849 }
811 FX_BOOL CFWL_WidgetImp::GetScreenSize(FX_FLOAT& fx, FX_FLOAT& fy) { 850 FX_BOOL CFWL_WidgetImp::GetScreenSize(FX_FLOAT& fx, FX_FLOAT& fy) {
812 return FALSE; 851 return FALSE;
813 } 852 }
814 void CFWL_WidgetImp::RegisterEventTarget(IFWL_Widget* pEventSource, 853 void CFWL_WidgetImp::RegisterEventTarget(IFWL_Widget* pEventSource,
815 uint32_t dwFilter) { 854 uint32_t dwFilter) {
816 IFWL_Thread* pThread = GetOwnerThread(); 855 IFWL_App* pApp = GetOwnerApp();
817 if (!pThread) 856 if (!pApp)
818 return; 857 return;
819 IFWL_NoteDriver* pNoteDriver = pThread->GetNoteDriver(); 858
859 CFWL_NoteDriver* pNoteDriver = pApp->GetNoteDriver();
820 if (!pNoteDriver) 860 if (!pNoteDriver)
821 return; 861 return;
862
822 pNoteDriver->RegisterEventTarget(m_pInterface, pEventSource, dwFilter); 863 pNoteDriver->RegisterEventTarget(m_pInterface, pEventSource, dwFilter);
823 } 864 }
824 void CFWL_WidgetImp::UnregisterEventTarget() { 865 void CFWL_WidgetImp::UnregisterEventTarget() {
825 IFWL_Thread* pThread = GetOwnerThread(); 866 IFWL_App* pApp = GetOwnerApp();
826 if (!pThread) 867 if (!pApp)
827 return; 868 return;
828 IFWL_NoteDriver* pNoteDriver = pThread->GetNoteDriver(); 869
870 CFWL_NoteDriver* pNoteDriver = pApp->GetNoteDriver();
829 if (!pNoteDriver) 871 if (!pNoteDriver)
830 return; 872 return;
873
831 pNoteDriver->UnregisterEventTarget(m_pInterface); 874 pNoteDriver->UnregisterEventTarget(m_pInterface);
832 } 875 }
833 void CFWL_WidgetImp::DispatchKeyEvent(CFWL_MsgKey* pNote) { 876 void CFWL_WidgetImp::DispatchKeyEvent(CFWL_MsgKey* pNote) {
834 if (!pNote) 877 if (!pNote)
835 return; 878 return;
836 CFWL_EvtKey* pEvent = new CFWL_EvtKey; 879 CFWL_EvtKey* pEvent = new CFWL_EvtKey;
837 pEvent->m_pSrcTarget = m_pInterface; 880 pEvent->m_pSrcTarget = m_pInterface;
838 pEvent->m_dwCmd = pNote->m_dwCmd; 881 pEvent->m_dwCmd = pNote->m_dwCmd;
839 pEvent->m_dwKeyCode = pNote->m_dwKeyCode; 882 pEvent->m_dwKeyCode = pNote->m_dwKeyCode;
840 pEvent->m_dwFlags = pNote->m_dwFlags; 883 pEvent->m_dwFlags = pNote->m_dwFlags;
841 DispatchEvent(pEvent); 884 DispatchEvent(pEvent);
842 pEvent->Release(); 885 pEvent->Release();
843 } 886 }
844 void CFWL_WidgetImp::DispatchEvent(CFWL_Event* pEvent) { 887 void CFWL_WidgetImp::DispatchEvent(CFWL_Event* pEvent) {
845 if (m_pOuter) { 888 if (m_pOuter) {
846 IFWL_WidgetDelegate* pDelegate = m_pOuter->SetDelegate(NULL); 889 IFWL_WidgetDelegate* pDelegate = m_pOuter->SetDelegate(NULL);
847 pDelegate->OnProcessEvent(pEvent); 890 pDelegate->OnProcessEvent(pEvent);
848 return; 891 return;
849 } 892 }
850 IFWL_Thread* pThread = GetOwnerThread(); 893 IFWL_App* pApp = GetOwnerApp();
851 if (!pThread) 894 if (!pApp)
852 return; 895 return;
853 IFWL_NoteDriver* pNoteDriver = pThread->GetNoteDriver(); 896 CFWL_NoteDriver* pNoteDriver = pApp->GetNoteDriver();
854 if (!pNoteDriver) 897 if (!pNoteDriver)
855 return; 898 return;
856 pNoteDriver->SendEvent(pEvent); 899 pNoteDriver->SendEvent(pEvent);
857 } 900 }
858 void CFWL_WidgetImp::Repaint(const CFX_RectF* pRect) { 901 void CFWL_WidgetImp::Repaint(const CFX_RectF* pRect) {
859 if (pRect) { 902 if (pRect) {
860 m_pWidgetMgr->RepaintWidget(m_pInterface, pRect); 903 m_pWidgetMgr->RepaintWidget(m_pInterface, pRect);
861 return; 904 return;
862 } 905 }
863 CFX_RectF rect; 906 CFX_RectF rect;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 param.m_pWidget = m_pInterface; 950 param.m_pWidget = m_pInterface;
908 param.m_iPart = iPartEdge; 951 param.m_iPart = iPartEdge;
909 param.m_pGraphics = pGraphics; 952 param.m_pGraphics = pGraphics;
910 if (pMatrix) { 953 if (pMatrix) {
911 param.m_matrix.Concat(*pMatrix, TRUE); 954 param.m_matrix.Concat(*pMatrix, TRUE);
912 } 955 }
913 param.m_rtPart = rtEdge; 956 param.m_rtPart = rtEdge;
914 pTheme->DrawBackground(&param); 957 pTheme->DrawBackground(&param);
915 } 958 }
916 void CFWL_WidgetImp::NotifyDriver() { 959 void CFWL_WidgetImp::NotifyDriver() {
917 IFWL_Thread* pThread = GetOwnerThread(); 960 IFWL_App* pApp = GetOwnerApp();
918 if (!pThread) 961 if (!pApp)
919 return; 962 return;
963
920 CFWL_NoteDriver* pDriver = 964 CFWL_NoteDriver* pDriver =
921 static_cast<CFWL_NoteDriver*>(pThread->GetNoteDriver()); 965 static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver());
922 if (!pDriver) 966 if (!pDriver)
923 return; 967 return;
968
924 pDriver->NotifyTargetDestroy(m_pInterface); 969 pDriver->NotifyTargetDestroy(m_pInterface);
925 } 970 }
926 CFX_SizeF CFWL_WidgetImp::GetOffsetFromParent(IFWL_Widget* pParent) { 971 CFX_SizeF CFWL_WidgetImp::GetOffsetFromParent(IFWL_Widget* pParent) {
927 if (pParent == GetInterface()) 972 if (pParent == GetInterface())
928 return CFX_SizeF(); 973 return CFX_SizeF();
929 974
930 IFWL_WidgetMgr* pWidgetMgr = FWL_GetWidgetMgr(); 975 IFWL_WidgetMgr* pWidgetMgr = FWL_GetWidgetMgr();
931 if (!pWidgetMgr) 976 if (!pWidgetMgr)
932 return CFX_SizeF(); 977 return CFX_SizeF();
933 978
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1028 FWL_ERR CFWL_WidgetImpDelegate::OnProcessEvent(CFWL_Event* pEvent) { 1073 FWL_ERR CFWL_WidgetImpDelegate::OnProcessEvent(CFWL_Event* pEvent) {
1029 return FWL_ERR_Succeeded; 1074 return FWL_ERR_Succeeded;
1030 } 1075 }
1031 1076
1032 FWL_ERR CFWL_WidgetImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics, 1077 FWL_ERR CFWL_WidgetImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics,
1033 const CFX_Matrix* pMatrix) { 1078 const CFX_Matrix* pMatrix) {
1034 CFWL_EvtDraw evt; 1079 CFWL_EvtDraw evt;
1035 evt.m_pGraphics = pGraphics; 1080 evt.m_pGraphics = pGraphics;
1036 return FWL_ERR_Succeeded; 1081 return FWL_ERR_Succeeded;
1037 } 1082 }
OLDNEW
« no previous file with comments | « xfa/fwl/core/fwl_widgetimp.h ('k') | xfa/fwl/core/fwl_widgetmgrimp.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698