bool CXFA_FFDateTimeEdit::LoadWidget() { CFWL_DateTimePicker* pWidget = new CFWL_DateTimePicker(GetFWLApp()); pWidget->Initialize(); m_pNormalWidget = pWidget; m_pNormalWidget->SetLayoutItem(this); IFWL_Widget* pIWidget = m_pNormalWidget->GetWidget(); CFWL_NoteDriver* pNoteDriver = pIWidget->GetOwnerApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(pIWidget, pIWidget); m_pOldDelegate = m_pNormalWidget->GetDelegate(); m_pNormalWidget->SetDelegate(this); m_pNormalWidget->LockUpdate(); CFX_WideString wsText; m_pDataAcc->GetValue(wsText, XFA_VALUEPICTURE_Display); pWidget->SetEditText(wsText); if (CXFA_Value value = m_pDataAcc->GetFormValue()) { switch (value.GetChildValueClassID()) { case XFA_Element::Date: { if (!wsText.IsEmpty()) { CXFA_LocaleValue lcValue = XFA_GetLocaleValue(m_pDataAcc); CFX_Unitime date = lcValue.GetDate(); if ((FX_UNITIME)date != 0) { pWidget->SetCurSel(date.GetYear(), date.GetMonth(), date.GetDay()); } } } break; default: break; } } UpdateWidgetProperty(); m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
void CFWL_WidgetMgrDelegate::OnProcessMessageToForm(CFWL_Message* pMessage) { if (!pMessage) return; if (!pMessage->m_pDstTarget) return; IFWL_Widget* pDstWidget = pMessage->m_pDstTarget; IFWL_App* pApp = pDstWidget->GetOwnerApp(); if (!pApp) return; CFWL_NoteDriver* pNoteDriver = static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver()); if (!pNoteDriver) return; if (m_pWidgetMgr->IsThreadEnabled()) pMessage = static_cast<CFWL_Message*>(pMessage->Clone()); if (m_pWidgetMgr->IsFormDisabled()) pNoteDriver->ProcessMessage(pMessage); else pNoteDriver->QueueMessage(pMessage); #if (_FX_OS_ == _FX_MACOSX_) CFWL_NoteLoop* pTopLoop = pNoteDriver->GetTopLoop(); if (pTopLoop) pNoteDriver->UnqueueMessage(pTopLoop); #endif if (m_pWidgetMgr->IsThreadEnabled()) pMessage->Release(); return; }
FWL_ERR FWL_SetHook(IFWL_NoteDriver* driver, FWLMessageHookCallback callback, void* info) { CFWL_NoteDriver* noteDriver = static_cast<CFWL_NoteDriver*>(driver); noteDriver->SetHook(callback, info); return FWL_ERR_Succeeded; }
bool CXFA_FFComboBox::LoadWidget() { CFWL_ComboBox* pComboBox = new CFWL_ComboBox(GetFWLApp()); pComboBox->Initialize(); m_pNormalWidget = (CFWL_Widget*)pComboBox; m_pNormalWidget->SetLayoutItem(this); IFWL_Widget* pWidget = m_pNormalWidget->GetWidget(); CFWL_NoteDriver* pNoteDriver = pWidget->GetOwnerApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(pWidget, pWidget); m_pOldDelegate = m_pNormalWidget->GetDelegate(); m_pNormalWidget->SetDelegate(this); m_pNormalWidget->LockUpdate(); CFX_WideStringArray wsLabelArray; m_pDataAcc->GetChoiceListItems(wsLabelArray, false); int32_t iItems = wsLabelArray.GetSize(); for (int32_t i = 0; i < iItems; i++) { pComboBox->AddString(wsLabelArray[i].AsStringC()); } CFX_Int32Array iSelArray; m_pDataAcc->GetSelectedItems(iSelArray); int32_t iSelCount = iSelArray.GetSize(); if (iSelCount > 0) { pComboBox->SetCurSel(iSelArray[0]); } else { CFX_WideString wsText; m_pDataAcc->GetValue(wsText, XFA_VALUEPICTURE_Raw); pComboBox->SetEditText(wsText); } UpdateWidgetProperty(); m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
CXFA_FFListBox::~CXFA_FFListBox() { if (m_pNormalWidget) { IFWL_Widget* pWidget = m_pNormalWidget->GetWidget(); CFWL_NoteDriver* pNoteDriver = pWidget->GetOwnerApp()->GetNoteDriver(); pNoteDriver->UnregisterEventTarget(pWidget); } }
CXFA_FFTextEdit::~CXFA_FFTextEdit() { if (m_pNormalWidget) { CFWL_NoteDriver* pNoteDriver = m_pNormalWidget->GetOwnerApp()->GetNoteDriver(); pNoteDriver->UnregisterEventTarget(m_pNormalWidget.get()); } }
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::UnregisterEventTarget() { const IFWL_App* pApp = GetOwnerApp(); if (!pApp) return; CFWL_NoteDriver* pNoteDriver = pApp->GetNoteDriver(); if (!pNoteDriver) return; pNoteDriver->UnregisterEventTarget(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 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); }
FWL_ERR FWL_SetFullScreen(IFWL_Widget* pWidget, FX_BOOL bFullScreen) { if (!pWidget) return FWL_ERR_Succeeded; IFWL_NoteThread* pNoteTread = pWidget->GetOwnerThread(); if (!pNoteTread) return FWL_ERR_Succeeded; CFWL_NoteDriver* pNoteDriver = static_cast<CFWL_NoteDriver*>(pNoteTread->GetNoteDriver()); if (!pNoteTread) return FWL_ERR_Succeeded; pNoteDriver->NotifyFullScreenMode(pWidget, bFullScreen); return FWL_GetAdapterWidgetMgr()->SetFullScreen(pWidget, bFullScreen); }
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); }
IFWL_Widget* FWL_GetCurrentThreadModalWidget(IFWL_NoteThread* pNoteThread) { if (!pNoteThread) return NULL; CFWL_NoteDriver* noteDriver = static_cast<CFWL_NoteDriver*>(pNoteThread->GetNoteDriver()); if (!noteDriver) return NULL; if (noteDriver->CountLoop() == 1) { return NULL; } CFWL_NoteLoop* topLoop = noteDriver->GetTopLoop(); if (!topLoop) return NULL; CFWL_WidgetImp* widget = topLoop->GetForm(); if (!widget) return NULL; return widget->GetInterface(); }
bool CXFA_FFPushButton::LoadWidget() { ASSERT(!m_pNormalWidget); CFWL_PushButton* pPushButton = new CFWL_PushButton(GetFWLApp()); m_pOldDelegate = pPushButton->GetDelegate(); pPushButton->SetDelegate(this); m_pNormalWidget = pPushButton; m_pNormalWidget->SetLayoutItem(this); CFWL_NoteDriver* pNoteDriver = m_pNormalWidget->GetOwnerApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(m_pNormalWidget, m_pNormalWidget); m_pNormalWidget->LockUpdate(); UpdateWidgetProperty(); LoadHighlightCaption(); m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
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; }
FX_BOOL CXFA_FFPushButton::LoadWidget() { ASSERT(!m_pNormalWidget); CFWL_PushButton* pPushButton = CFWL_PushButton::Create(); if (pPushButton) { pPushButton->Initialize(); } m_pOldDelegate = pPushButton->SetDelegate(this); m_pNormalWidget = pPushButton; m_pNormalWidget->SetLayoutItem(this); IFWL_Widget* pWidget = m_pNormalWidget->GetWidget(); CFWL_NoteDriver* pNoteDriver = FWL_GetApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(pWidget, pWidget); m_pNormalWidget->LockUpdate(); UpdateWidgetProperty(); LoadHighlightCaption(); m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
FX_BOOL CXFA_FFImageEdit::LoadWidget() { CFWL_PictureBox* pPictureBox = new CFWL_PictureBox; if (pPictureBox) { pPictureBox->Initialize(); } m_pNormalWidget = pPictureBox; m_pNormalWidget->SetLayoutItem(this); IFWL_Widget* pWidget = m_pNormalWidget->GetWidget(); CFWL_NoteDriver* pNoteDriver = FWL_GetApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(pWidget, pWidget); m_pOldDelegate = pPictureBox->SetDelegate(this); CXFA_FFField::LoadWidget(); if (m_pDataAcc->GetImageEditImage()) { return TRUE; } UpdateFWLData(); return TRUE; }
FX_BOOL CXFA_FFCheckButton::LoadWidget() { CFWL_CheckBox* pCheckBox = CFWL_CheckBox::Create(); pCheckBox->Initialize(); m_pNormalWidget = pCheckBox; m_pNormalWidget->SetLayoutItem(this); IFWL_Widget* pWidget = m_pNormalWidget->GetWidget(); CFWL_NoteDriver* pNoteDriver = FWL_GetApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(pWidget, pWidget); m_pOldDelegate = m_pNormalWidget->SetDelegate(this); if (m_pDataAcc->IsRadioButton()) { pCheckBox->ModifyStylesEx(FWL_STYLEEXT_CKB_RadioButton, 0xFFFFFFFF); } m_pNormalWidget->LockUpdate(); UpdateWidgetProperty(); SetFWLCheckState(m_pDataAcc->GetCheckState()); m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
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); }
bool CXFA_FFBarcode::LoadWidget() { CFWL_Barcode* pFWLBarcode = new CFWL_Barcode(GetFWLApp()); m_pNormalWidget = pFWLBarcode; m_pNormalWidget->SetLayoutItem(this); CFWL_NoteDriver* pNoteDriver = m_pNormalWidget->GetOwnerApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(m_pNormalWidget, m_pNormalWidget); m_pOldDelegate = m_pNormalWidget->GetDelegate(); m_pNormalWidget->SetDelegate(this); m_pNormalWidget->LockUpdate(); CFX_WideString wsText; m_pDataAcc->GetValue(wsText, XFA_VALUEPICTURE_Display); pFWLBarcode->SetText(wsText); UpdateWidgetProperty(); m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
bool CXFA_FFTextEdit::LoadWidget() { auto pNewWidget = pdfium::MakeUnique<CFWL_Edit>( GetFWLApp(), pdfium::MakeUnique<CFWL_WidgetProperties>(), nullptr); CFWL_Edit* pFWLEdit = pNewWidget.get(); m_pNormalWidget = std::move(pNewWidget); m_pNormalWidget->SetLayoutItem(this); CFWL_NoteDriver* pNoteDriver = m_pNormalWidget->GetOwnerApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(m_pNormalWidget.get(), m_pNormalWidget.get()); m_pOldDelegate = m_pNormalWidget->GetDelegate(); m_pNormalWidget->SetDelegate(this); m_pNormalWidget->LockUpdate(); UpdateWidgetProperty(); pFWLEdit->SetText(m_pNode->GetValue(XFA_VALUEPICTURE_Display)); m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
bool CXFA_FFCheckButton::LoadWidget() { auto pNew = pdfium::MakeUnique<CFWL_CheckBox>(GetFWLApp()); CFWL_CheckBox* pCheckBox = pNew.get(); m_pNormalWidget = std::move(pNew); m_pNormalWidget->SetLayoutItem(this); CFWL_NoteDriver* pNoteDriver = m_pNormalWidget->GetOwnerApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(m_pNormalWidget.get(), m_pNormalWidget.get()); m_pOldDelegate = m_pNormalWidget->GetDelegate(); m_pNormalWidget->SetDelegate(this); if (m_pNode->IsRadioButton()) pCheckBox->ModifyStylesEx(FWL_STYLEEXT_CKB_RadioButton, 0xFFFFFFFF); m_pNormalWidget->LockUpdate(); UpdateWidgetProperty(); SetFWLCheckState(m_pNode->GetCheckState()); m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
bool CXFA_FFPasswordEdit::LoadWidget() { CFWL_Edit* pWidget = new CFWL_Edit(GetFWLApp()); pWidget->Initialize(); m_pNormalWidget = pWidget; m_pNormalWidget->SetLayoutItem(this); IFWL_Widget* pIWidget = m_pNormalWidget->GetWidget(); CFWL_NoteDriver* pNoteDriver = pIWidget->GetOwnerApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(pIWidget, pIWidget); m_pOldDelegate = m_pNormalWidget->GetDelegate(); m_pNormalWidget->SetDelegate(this); m_pNormalWidget->LockUpdate(); CFX_WideString wsText; m_pDataAcc->GetValue(wsText, XFA_VALUEPICTURE_Display); pWidget->SetText(wsText); UpdateWidgetProperty(); m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
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 }
bool CXFA_FFListBox::LoadWidget() { CFWL_ListBox* pListBox = new CFWL_ListBox(GetFWLApp()); pListBox->Initialize(); pListBox->ModifyStyles(FWL_WGTSTYLE_VScroll | FWL_WGTSTYLE_NoBackground, 0xFFFFFFFF); m_pNormalWidget = (CFWL_Widget*)pListBox; m_pNormalWidget->SetLayoutItem(this); IFWL_Widget* pWidget = m_pNormalWidget->GetWidget(); CFWL_NoteDriver* pNoteDriver = pWidget->GetOwnerApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(pWidget, pWidget); m_pOldDelegate = m_pNormalWidget->GetDelegate(); m_pNormalWidget->SetDelegate(this); m_pNormalWidget->LockUpdate(); CFX_WideStringArray wsLabelArray; m_pDataAcc->GetChoiceListItems(wsLabelArray, false); int32_t iItems = wsLabelArray.GetSize(); for (int32_t i = 0; i < iItems; i++) { pListBox->AddString(wsLabelArray[i].AsStringC()); } uint32_t dwExtendedStyle = FWL_STYLEEXT_LTB_ShowScrollBarFocus; if (m_pDataAcc->GetChoiceListOpen() == XFA_ATTRIBUTEENUM_MultiSelect) { dwExtendedStyle |= FWL_STYLEEXT_LTB_MultiSelection; } dwExtendedStyle |= GetAlignment(); m_pNormalWidget->ModifyStylesEx(dwExtendedStyle, 0xFFFFFFFF); CFX_Int32Array iSelArray; m_pDataAcc->GetSelectedItems(iSelArray); int32_t iSelCount = iSelArray.GetSize(); for (int32_t j = 0; j < iSelCount; j++) { CFWL_ListItem* item = pListBox->GetItem(iSelArray[j]); pListBox->SetSelItem(item, true); } m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
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; }