void CFWL_Form::SetWorkAreaRect() { m_rtRestore = m_pProperties->m_rtWidget; CFWL_WidgetMgr* pWidgetMgr = GetOwnerApp()->GetWidgetMgr(); if (!pWidgetMgr) return; RepaintRect(m_rtRelative); }
void IFWL_Widget::SetGrab(bool bSet) { const IFWL_App* pApp = GetOwnerApp(); if (!pApp) return; CFWL_NoteDriver* pDriver = static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver()); pDriver->SetGrab(this, bSet); }
void IFWL_Widget::SetStates(uint32_t dwStates, bool bSet) { bSet ? (m_pProperties->m_dwStates |= dwStates) : (m_pProperties->m_dwStates &= ~dwStates); if (!(dwStates & FWL_WGTSTATE_Invisible) || !bSet) return; CFWL_NoteDriver* noteDriver = static_cast<CFWL_NoteDriver*>(GetOwnerApp()->GetNoteDriver()); CFWL_WidgetMgr* widgetMgr = GetOwnerApp()->GetWidgetMgr(); noteDriver->NotifyTargetHide(this); IFWL_Widget* child = widgetMgr->GetFirstChildWidget(this); while (child) { noteDriver->NotifyTargetHide(child); NotifyHideChildWidget(widgetMgr, child, noteDriver); child = widgetMgr->GetNextSiblingWidget(child); } return; }
void IFWL_Widget::UnregisterEventTarget() { const IFWL_App* pApp = GetOwnerApp(); if (!pApp) return; CFWL_NoteDriver* pNoteDriver = pApp->GetNoteDriver(); if (!pNoteDriver) return; pNoteDriver->UnregisterEventTarget(this); }
void CFWL_Form::UnRegisterForm() { const CFWL_App* pApp = GetOwnerApp(); if (!pApp) return; CFWL_NoteDriver* pDriver = static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver()); if (!pDriver) return; pDriver->UnRegisterForm(this); }
void IFWL_Widget::NotifyDriver() { const IFWL_App* pApp = GetOwnerApp(); if (!pApp) return; CFWL_NoteDriver* pDriver = static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver()); if (!pDriver) return; pDriver->NotifyTargetDestroy(this); }
void IFWL_Widget::RegisterEventTarget(IFWL_Widget* pEventSource, uint32_t dwFilter) { const IFWL_App* pApp = GetOwnerApp(); if (!pApp) return; CFWL_NoteDriver* pNoteDriver = pApp->GetNoteDriver(); if (!pNoteDriver) return; pNoteDriver->RegisterEventTarget(this, pEventSource, dwFilter); }
void IFWL_Widget::DispatchEvent(CFWL_Event* pEvent) { if (m_pOuter) { m_pOuter->GetDelegate()->OnProcessEvent(pEvent); return; } const IFWL_App* pApp = GetOwnerApp(); if (!pApp) return; CFWL_NoteDriver* pNoteDriver = pApp->GetNoteDriver(); if (!pNoteDriver) return; pNoteDriver->SendEvent(pEvent); }
void IFWL_Widget::SetFocus(bool bFocus) { if (m_pWidgetMgr->IsFormDisabled()) return; const IFWL_App* pApp = GetOwnerApp(); if (!pApp) return; CFWL_NoteDriver* pDriver = static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver()); if (!pDriver) return; IFWL_Widget* curFocus = pDriver->GetFocus(); if (bFocus && curFocus != this) pDriver->SetFocus(this); else if (!bFocus && curFocus == this) pDriver->SetFocus(nullptr); }
CFX_SizeF IFWL_Widget::GetOffsetFromParent(IFWL_Widget* pParent) { if (pParent == this) return CFX_SizeF(); CFWL_WidgetMgr* pWidgetMgr = GetOwnerApp()->GetWidgetMgr(); if (!pWidgetMgr) return CFX_SizeF(); CFX_SizeF szRet(m_pProperties->m_rtWidget.left, m_pProperties->m_rtWidget.top); IFWL_Widget* pDstWidget = GetParent(); while (pDstWidget && pDstWidget != pParent) { CFX_RectF rtDst; pDstWidget->GetWidgetRect(rtDst); szRet += CFX_SizeF(rtDst.left, rtDst.top); pDstWidget = pWidgetMgr->GetParentWidget(pDstWidget); } return szRet; }
void CFWL_Form::EndDoModal() { if (!m_pNoteLoop) return; #if (_FX_OS_ == _FX_OS_MACOSX_) m_pNoteLoop->EndModalLoop(); const CFWL_App* pApp = GetOwnerApp(); if (!pApp) return; CFWL_NoteDriver* pDriver = static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver()); if (!pDriver) return; pDriver->PopNoteLoop(); SetStates(FWL_WGTSTATE_Invisible); #else SetStates(FWL_WGTSTATE_Invisible); m_pNoteLoop->EndModalLoop(); #endif }
CFWL_Widget* CFWL_Form::DoModal() { const CFWL_App* pApp = GetOwnerApp(); if (!pApp) return nullptr; CFWL_NoteDriver* pDriver = pApp->GetNoteDriver(); if (!pDriver) return nullptr; m_pNoteLoop = pdfium::MakeUnique<CFWL_NoteLoop>(); m_pNoteLoop->SetMainForm(this); pDriver->PushNoteLoop(m_pNoteLoop.get()); RemoveStates(FWL_WGTSTATE_Invisible); pDriver->Run(); #if _FX_OS_ != _FX_OS_MACOSX_ pDriver->PopNoteLoop(); #endif m_pNoteLoop.reset(); return nullptr; }