Index: xfa/fwl/core/fwl_widgetimp.cpp |
diff --git a/xfa/fwl/core/fwl_widgetimp.cpp b/xfa/fwl/core/fwl_widgetimp.cpp |
index df3228c6edb830f3aa330a5b851f899ca1148f12..c9d91c41f2642bb6a8bb10ca6aa7014e2ac23acb 100644 |
--- a/xfa/fwl/core/fwl_widgetimp.cpp |
+++ b/xfa/fwl/core/fwl_widgetimp.cpp |
@@ -17,8 +17,6 @@ |
#include "xfa/fwl/core/cfwl_themetext.h" |
#include "xfa/fwl/core/fwl_appimp.h" |
#include "xfa/fwl/core/fwl_noteimp.h" |
-#include "xfa/fwl/core/fwl_targetimp.h" |
-#include "xfa/fwl/core/fwl_threadimp.h" |
#include "xfa/fwl/core/fwl_widgetmgrimp.h" |
#include "xfa/fwl/core/ifwl_adapternative.h" |
#include "xfa/fwl/core/ifwl_adapterthreadmgr.h" |
@@ -30,6 +28,28 @@ |
#define FWL_CLASSHASH_Menu 3957949655 |
#define FWL_STYLEEXT_MNU_Vert (1L << 0) |
+IFWL_Widget::~IFWL_Widget() {} |
+ |
+FWL_ERR IFWL_Widget::GetClassName(CFX_WideString& wsClass) const { |
+ return m_pImpl->GetClassName(wsClass); |
+} |
+ |
+uint32_t IFWL_Widget::GetClassID() const { |
+ return m_pImpl->GetClassID(); |
+} |
+ |
+FX_BOOL IFWL_Widget::IsInstance(const CFX_WideStringC& wsClass) const { |
+ return m_pImpl->IsInstance(wsClass); |
+} |
+ |
+FWL_ERR IFWL_Widget::Initialize() { |
+ return m_pImpl->Initialize(); |
+} |
+ |
+FWL_ERR IFWL_Widget::Finalize() { |
+ return m_pImpl->Finalize(); |
+} |
+ |
FWL_ERR IFWL_Widget::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { |
return static_cast<CFWL_WidgetImp*>(GetImpl()) |
->GetWidgetRect(rect, bAutoSize); |
@@ -134,12 +154,13 @@ FWL_ERR IFWL_Widget::SetDataProvider(IFWL_DataProvider* pDataProvider) { |
IFWL_WidgetDelegate* IFWL_Widget::SetDelegate(IFWL_WidgetDelegate* pDelegate) { |
return static_cast<CFWL_WidgetImp*>(GetImpl())->SetDelegate(pDelegate); |
} |
-IFWL_Thread* IFWL_Widget::GetOwnerThread() const { |
- return static_cast<CFWL_WidgetImp*>(GetImpl())->GetOwnerThread(); |
+IFWL_App* IFWL_Widget::GetOwnerApp() const { |
+ return static_cast<CFWL_WidgetImp*>(GetImpl())->GetOwnerApp(); |
} |
CFX_SizeF IFWL_Widget::GetOffsetFromParent(IFWL_Widget* pParent) { |
return static_cast<CFWL_WidgetImp*>(GetImpl())->GetOffsetFromParent(pParent); |
} |
+ |
FWL_ERR CFWL_WidgetImp::Initialize() { |
IFWL_App* pApp = FWL_GetApp(); |
if (!pApp) |
@@ -150,8 +171,8 @@ FWL_ERR CFWL_WidgetImp::Initialize() { |
IFWL_AdapterThreadMgr* pAdapterThread = pAdapter->GetThreadMgr(); |
if (!pAdapterThread) |
return FWL_ERR_Indefinite; |
- SetOwnerThread(static_cast<CFWL_ThreadImp*>( |
- pAdapterThread->GetCurrentThread()->GetImpl())); |
+ SetOwnerApp( |
+ static_cast<CFWL_AppImp*>(pAdapterThread->GetCurrentThread()->GetImpl())); |
IFWL_Widget* pParent = m_pProperties->m_pParent; |
m_pWidgetMgr->InsertWidget(pParent, m_pInterface); |
if (!IsChild()) { |
@@ -165,6 +186,7 @@ FWL_ERR CFWL_WidgetImp::Initialize() { |
} |
return FWL_ERR_Succeeded; |
} |
+ |
FWL_ERR CFWL_WidgetImp::Finalize() { |
NotifyDriver(); |
if (!IsChild()) |
@@ -173,6 +195,20 @@ FWL_ERR CFWL_WidgetImp::Finalize() { |
m_pWidgetMgr->RemoveWidget(m_pInterface); |
return FWL_ERR_Succeeded; |
} |
+ |
+FWL_ERR CFWL_WidgetImp::GetClassName(CFX_WideString& wsClass) const { |
+ wsClass.clear(); |
+ return FWL_ERR_Succeeded; |
+} |
+ |
+uint32_t CFWL_WidgetImp::GetClassID() const { |
+ return 0; |
+} |
+ |
+FX_BOOL CFWL_WidgetImp::IsInstance(const CFX_WideStringC& wsClass) const { |
+ return FALSE; |
+} |
+ |
FWL_ERR CFWL_WidgetImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { |
if (bAutoSize) { |
if (HasEdge()) { |
@@ -286,7 +322,7 @@ FWL_ERR CFWL_WidgetImp::SetStates(uint32_t dwStates, FX_BOOL bSet) { |
if (bSet) { |
ret = m_pWidgetMgr->HideWidget_Native(m_pInterface); |
CFWL_NoteDriver* noteDriver = |
- static_cast<CFWL_NoteDriver*>(GetOwnerThread()->GetNoteDriver()); |
+ static_cast<CFWL_NoteDriver*>(GetOwnerApp()->GetNoteDriver()); |
IFWL_WidgetMgr* widgetMgr = FWL_GetWidgetMgr(); |
noteDriver->NotifyTargetHide(m_pInterface); |
IFWL_Widget* child = |
@@ -497,11 +533,11 @@ IFWL_WidgetDelegate* CFWL_WidgetImp::SetDelegate( |
m_pCurDelegate = pDelegate; |
return pOldDelegate; |
} |
-IFWL_Thread* CFWL_WidgetImp::GetOwnerThread() const { |
- return static_cast<IFWL_Thread*>(m_pOwnerThread->GetInterface()); |
+IFWL_App* CFWL_WidgetImp::GetOwnerApp() const { |
+ return static_cast<IFWL_App*>(m_pOwnerApp->GetInterface()); |
} |
-FWL_ERR CFWL_WidgetImp::SetOwnerThread(CFWL_ThreadImp* pOwnerThread) { |
- m_pOwnerThread = pOwnerThread; |
+FWL_ERR CFWL_WidgetImp::SetOwnerApp(CFWL_AppImp* pOwnerApp) { |
+ m_pOwnerApp = pOwnerApp; |
return FWL_ERR_Succeeded; |
} |
IFWL_Widget* CFWL_WidgetImp::GetInterface() const { |
@@ -682,13 +718,16 @@ void CFWL_WidgetImp::CalcTextRect(const CFX_WideString& wsText, |
void CFWL_WidgetImp::SetFocus(FX_BOOL bFocus) { |
if (m_pWidgetMgr->IsFormDisabled()) |
return; |
- IFWL_Thread* pThread = GetOwnerThread(); |
- if (!pThread) |
+ |
+ IFWL_App* pApp = GetOwnerApp(); |
+ if (!pApp) |
return; |
+ |
CFWL_NoteDriver* pDriver = |
- static_cast<CFWL_NoteDriver*>(pThread->GetNoteDriver()); |
+ static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver()); |
if (!pDriver) |
return; |
+ |
IFWL_Widget* curFocus = pDriver->GetFocus(); |
if (bFocus && curFocus != m_pInterface) { |
pDriver->SetFocus(m_pInterface); |
@@ -697,11 +736,11 @@ void CFWL_WidgetImp::SetFocus(FX_BOOL bFocus) { |
} |
} |
void CFWL_WidgetImp::SetGrab(FX_BOOL bSet) { |
- IFWL_Thread* pThread = GetOwnerThread(); |
- if (!pThread) |
+ IFWL_App* pApp = GetOwnerApp(); |
+ if (!pApp) |
return; |
CFWL_NoteDriver* pDriver = |
- static_cast<CFWL_NoteDriver*>(pThread->GetNoteDriver()); |
+ static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver()); |
pDriver->SetGrab(m_pInterface, bSet); |
} |
FX_BOOL CFWL_WidgetImp::GetPopupPos(FX_FLOAT fMinHeight, |
@@ -813,21 +852,25 @@ FX_BOOL CFWL_WidgetImp::GetScreenSize(FX_FLOAT& fx, FX_FLOAT& fy) { |
} |
void CFWL_WidgetImp::RegisterEventTarget(IFWL_Widget* pEventSource, |
uint32_t dwFilter) { |
- IFWL_Thread* pThread = GetOwnerThread(); |
- if (!pThread) |
+ IFWL_App* pApp = GetOwnerApp(); |
+ if (!pApp) |
return; |
- IFWL_NoteDriver* pNoteDriver = pThread->GetNoteDriver(); |
+ |
+ CFWL_NoteDriver* pNoteDriver = pApp->GetNoteDriver(); |
if (!pNoteDriver) |
return; |
+ |
pNoteDriver->RegisterEventTarget(m_pInterface, pEventSource, dwFilter); |
} |
void CFWL_WidgetImp::UnregisterEventTarget() { |
- IFWL_Thread* pThread = GetOwnerThread(); |
- if (!pThread) |
+ IFWL_App* pApp = GetOwnerApp(); |
+ if (!pApp) |
return; |
- IFWL_NoteDriver* pNoteDriver = pThread->GetNoteDriver(); |
+ |
+ CFWL_NoteDriver* pNoteDriver = pApp->GetNoteDriver(); |
if (!pNoteDriver) |
return; |
+ |
pNoteDriver->UnregisterEventTarget(m_pInterface); |
} |
void CFWL_WidgetImp::DispatchKeyEvent(CFWL_MsgKey* pNote) { |
@@ -847,10 +890,10 @@ void CFWL_WidgetImp::DispatchEvent(CFWL_Event* pEvent) { |
pDelegate->OnProcessEvent(pEvent); |
return; |
} |
- IFWL_Thread* pThread = GetOwnerThread(); |
- if (!pThread) |
+ IFWL_App* pApp = GetOwnerApp(); |
+ if (!pApp) |
return; |
- IFWL_NoteDriver* pNoteDriver = pThread->GetNoteDriver(); |
+ CFWL_NoteDriver* pNoteDriver = pApp->GetNoteDriver(); |
if (!pNoteDriver) |
return; |
pNoteDriver->SendEvent(pEvent); |
@@ -914,13 +957,15 @@ void CFWL_WidgetImp::DrawEdge(CFX_Graphics* pGraphics, |
pTheme->DrawBackground(¶m); |
} |
void CFWL_WidgetImp::NotifyDriver() { |
- IFWL_Thread* pThread = GetOwnerThread(); |
- if (!pThread) |
+ IFWL_App* pApp = GetOwnerApp(); |
+ if (!pApp) |
return; |
+ |
CFWL_NoteDriver* pDriver = |
- static_cast<CFWL_NoteDriver*>(pThread->GetNoteDriver()); |
+ static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver()); |
if (!pDriver) |
return; |
+ |
pDriver->NotifyTargetDestroy(m_pInterface); |
} |
CFX_SizeF CFWL_WidgetImp::GetOffsetFromParent(IFWL_Widget* pParent) { |