本文整理汇总了C++中CPDFSDK_Widget::GetFieldType方法的典型用法代码示例。如果您正苦于以下问题:C++ CPDFSDK_Widget::GetFieldType方法的具体用法?C++ CPDFSDK_Widget::GetFieldType怎么用?C++ CPDFSDK_Widget::GetFieldType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CPDFSDK_Widget
的用法示例。
在下文中一共展示了CPDFSDK_Widget::GetFieldType方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnLButtonUp
FX_BOOL CFFL_IFormFiller::OnLButtonUp(CPDFSDK_PageView* pPageView,
CPDFSDK_Annot* pAnnot,
FX_UINT nFlags,
const CPDF_Point& point) {
ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
CPDFSDK_Document* pDocument = m_pApp->GetSDKDocument();
switch (pWidget->GetFieldType()) {
case FIELDTYPE_PUSHBUTTON:
case FIELDTYPE_CHECKBOX:
case FIELDTYPE_RADIOBUTTON:
if (GetViewBBox(pPageView, pAnnot).Contains((int)point.x, (int)point.y))
pDocument->SetFocusAnnot(pAnnot);
break;
default:
pDocument->SetFocusAnnot(pAnnot);
break;
}
FX_BOOL bRet = FALSE;
if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) {
bRet = pFormFiller->OnLButtonUp(pPageView, pAnnot, nFlags, point);
}
if (pDocument->GetFocusAnnot() == pAnnot) {
FX_BOOL bExit = FALSE;
FX_BOOL bReset = FALSE;
OnButtonUp(pWidget, pPageView, bReset, bExit, nFlags);
if (bExit)
return TRUE;
}
return bRet;
}
示例2: OnLoad
void CPDFSDK_BFAnnotHandler::OnLoad(CPDFSDK_Annot* pAnnot) {
if (pAnnot->GetSubType() == BFFT_SIGNATURE)
return;
CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
if (!pWidget->IsAppearanceValid())
pWidget->ResetAppearance(NULL, FALSE);
int nFieldType = pWidget->GetFieldType();
if (nFieldType == FIELDTYPE_TEXTFIELD || nFieldType == FIELDTYPE_COMBOBOX) {
FX_BOOL bFormated = FALSE;
CFX_WideString sValue = pWidget->OnFormat(bFormated);
if (bFormated && nFieldType == FIELDTYPE_COMBOBOX) {
pWidget->ResetAppearance(sValue.c_str(), FALSE);
}
}
#ifdef PDF_ENABLE_XFA
CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
CPDFSDK_Document* pSDKDoc = pPageView->GetSDKDocument();
CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument();
if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) {
if (!pWidget->IsAppearanceValid() && !pWidget->GetValue().IsEmpty())
pWidget->ResetAppearance(FALSE);
}
#endif // PDF_ENABLE_XFA
if (m_pFormFiller)
m_pFormFiller->OnLoad(pAnnot);
}
示例3: OnLoad
void CPDFSDK_WidgetHandler::OnLoad(CPDFSDK_Annot* pAnnot) {
if (pAnnot->IsSignatureWidget())
return;
CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot);
if (!pWidget->IsAppearanceValid())
pWidget->ResetAppearance(nullptr, FALSE);
int nFieldType = pWidget->GetFieldType();
if (nFieldType == FIELDTYPE_TEXTFIELD || nFieldType == FIELDTYPE_COMBOBOX) {
FX_BOOL bFormatted = FALSE;
CFX_WideString sValue = pWidget->OnFormat(bFormatted);
if (bFormatted && nFieldType == FIELDTYPE_COMBOBOX)
pWidget->ResetAppearance(&sValue, FALSE);
}
#ifdef PDF_ENABLE_XFA
CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
CPDFSDK_Document* pSDKDoc = pPageView->GetSDKDocument();
CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument();
if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) {
if (!pWidget->IsAppearanceValid() && !pWidget->GetValue().IsEmpty())
pWidget->ResetAppearance(FALSE);
}
#endif // PDF_ENABLE_XFA
if (m_pFormFiller)
m_pFormFiller->OnLoad(pAnnot);
}
示例4: KillFocusAnnot
FX_BOOL CPDFSDK_Document::KillFocusAnnot(FX_UINT nFlag)
{
if(m_pFocusAnnot)
{
CPDFSDK_AnnotHandlerMgr *pAnnotHandler=m_pEnv->GetAnnotHandlerMgr();
if(pAnnotHandler)
{
CPDFSDK_Annot* pFocusAnnot = m_pFocusAnnot;
m_pFocusAnnot = NULL;
if(pAnnotHandler->Annot_OnKillFocus(pFocusAnnot, nFlag))
{
if(pFocusAnnot->GetType() == FX_BSTRC("Widget"))
{
CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pFocusAnnot;
int nFieldType = pWidget->GetFieldType();
if(FIELDTYPE_TEXTFIELD == nFieldType || FIELDTYPE_COMBOBOX == nFieldType)
m_pEnv->FFI_OnSetFieldInputFocus(NULL, NULL, 0, FALSE);
}
if(!m_pFocusAnnot)
return TRUE;
}
else
{
m_pFocusAnnot = pFocusAnnot;
}
}
}
return FALSE;
}
示例5: GetFormFiller
CFFL_FormFiller* CFFL_IFormFiller::GetFormFiller(CPDFSDK_Annot* pAnnot, FX_BOOL bRegister)
{
// ASSERT(pAnnot != NULL);
// ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget");
CFFL_FormFiller * pFormFiller = NULL;
m_Maps.Lookup(pAnnot, pFormFiller);
if (pFormFiller)
return pFormFiller;
if (bRegister)
{
CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
int nFieldType = pWidget->GetFieldType();
switch(nFieldType)
{
case FIELDTYPE_PUSHBUTTON:
pFormFiller = new CFFL_PushButton(m_pApp, pWidget);
break;
case FIELDTYPE_CHECKBOX:
pFormFiller = new CFFL_CheckBox(m_pApp, pWidget);
break;
case FIELDTYPE_RADIOBUTTON:
pFormFiller = new CFFL_RadioButton(m_pApp, pWidget);
break;
case FIELDTYPE_TEXTFIELD:
pFormFiller = new CFFL_TextField(m_pApp, pWidget);
break;
case FIELDTYPE_LISTBOX:
pFormFiller = new CFFL_ListBox(m_pApp, pWidget);
break;
case FIELDTYPE_COMBOBOX:
pFormFiller = new CFFL_ComboBox(m_pApp, pWidget);
break;
case FIELDTYPE_UNKNOWN:
default:
pFormFiller = NULL;
break;
}
if (pFormFiller)
{
m_Maps.SetAt(pAnnot, pFormFiller);
}
}
return pFormFiller;
}
示例6: GetFormFiller
CFFL_FormFiller* CFFL_InteractiveFormFiller::GetFormFiller(
CPDFSDK_Annot* pAnnot,
bool bRegister) {
auto it = m_Maps.find(pAnnot);
if (it != m_Maps.end())
return it->second.get();
if (!bRegister)
return nullptr;
CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot);
FormFieldType fieldType = pWidget->GetFieldType();
std::unique_ptr<CFFL_FormFiller> pFormFiller;
switch (fieldType) {
case FormFieldType::kPushButton:
pFormFiller =
pdfium::MakeUnique<CFFL_PushButton>(m_pFormFillEnv.Get(), pWidget);
break;
case FormFieldType::kCheckBox:
pFormFiller =
pdfium::MakeUnique<CFFL_CheckBox>(m_pFormFillEnv.Get(), pWidget);
break;
case FormFieldType::kRadioButton:
pFormFiller =
pdfium::MakeUnique<CFFL_RadioButton>(m_pFormFillEnv.Get(), pWidget);
break;
case FormFieldType::kTextField:
pFormFiller =
pdfium::MakeUnique<CFFL_TextField>(m_pFormFillEnv.Get(), pWidget);
break;
case FormFieldType::kListBox:
pFormFiller =
pdfium::MakeUnique<CFFL_ListBox>(m_pFormFillEnv.Get(), pWidget);
break;
case FormFieldType::kComboBox:
pFormFiller =
pdfium::MakeUnique<CFFL_ComboBox>(m_pFormFillEnv.Get(), pWidget);
break;
case FormFieldType::kUnknown:
default:
break;
}
if (!pFormFiller)
return nullptr;
CFFL_FormFiller* result = pFormFiller.get();
m_Maps[pAnnot] = std::move(pFormFiller);
return result;
}
示例7: GetFormFiller
CFFL_FormFiller* CFFL_IFormFiller::GetFormFiller(CPDFSDK_Annot* pAnnot,
FX_BOOL bRegister) {
auto it = m_Maps.find(pAnnot);
if (it != m_Maps.end())
return it->second;
if (!bRegister)
return nullptr;
CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
int nFieldType = pWidget->GetFieldType();
CFFL_FormFiller* pFormFiller;
switch (nFieldType) {
case FIELDTYPE_PUSHBUTTON:
pFormFiller = new CFFL_PushButton(m_pApp, pWidget);
break;
case FIELDTYPE_CHECKBOX:
pFormFiller = new CFFL_CheckBox(m_pApp, pWidget);
break;
case FIELDTYPE_RADIOBUTTON:
pFormFiller = new CFFL_RadioButton(m_pApp, pWidget);
break;
case FIELDTYPE_TEXTFIELD:
pFormFiller = new CFFL_TextField(m_pApp, pWidget);
break;
case FIELDTYPE_LISTBOX:
pFormFiller = new CFFL_ListBox(m_pApp, pWidget);
break;
case FIELDTYPE_COMBOBOX:
pFormFiller = new CFFL_ComboBox(m_pApp, pWidget);
break;
case FIELDTYPE_UNKNOWN:
default:
pFormFiller = nullptr;
break;
}
if (!pFormFiller)
return nullptr;
m_Maps[pAnnot] = pFormFiller;
return pFormFiller;
}
示例8: CanAnswer
FX_BOOL CPDFSDK_BFAnnotHandler::CanAnswer(CPDFSDK_Annot* pAnnot) {
ASSERT(pAnnot->GetType() == "Widget");
if (pAnnot->GetSubType() == BFFT_SIGNATURE)
return FALSE;
CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
if (!pWidget->IsVisible())
return FALSE;
int nFieldFlags = pWidget->GetFieldFlags();
if ((nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY)
return FALSE;
if (pWidget->GetFieldType() == FIELDTYPE_PUSHBUTTON)
return TRUE;
CPDF_Page* pPage = pWidget->GetPDFPage();
CPDF_Document* pDocument = pPage->m_pDocument;
FX_DWORD dwPermissions = pDocument->GetUserPermissions();
return (dwPermissions & FPDFPERM_FILL_FORM) ||
(dwPermissions & FPDFPERM_ANNOT_FORM);
}
示例9: CanAnswer
FX_BOOL CPDFSDK_WidgetHandler::CanAnswer(CPDFSDK_Annot* pAnnot) {
ASSERT(pAnnot->GetAnnotSubtype() == CPDF_Annot::Subtype::WIDGET);
if (pAnnot->IsSignatureWidget())
return FALSE;
CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot);
if (!pWidget->IsVisible())
return FALSE;
int nFieldFlags = pWidget->GetFieldFlags();
if ((nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY)
return FALSE;
if (pWidget->GetFieldType() == FIELDTYPE_PUSHBUTTON)
return TRUE;
CPDF_Page* pPage = pWidget->GetPDFPage();
CPDF_Document* pDocument = pPage->m_pDocument;
uint32_t dwPermissions = pDocument->GetUserPermissions();
return (dwPermissions & FPDFPERM_FILL_FORM) ||
(dwPermissions & FPDFPERM_ANNOT_FORM);
}
示例10: OnLButtonUp
bool CFFL_InteractiveFormFiller::OnLButtonUp(CPDFSDK_PageView* pPageView,
CPDFSDK_Annot::ObservedPtr* pAnnot,
uint32_t nFlags,
const CFX_PointF& point) {
ASSERT((*pAnnot)->GetPDFAnnot()->GetSubtype() == CPDF_Annot::Subtype::WIDGET);
CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
bool bSetFocus;
switch (pWidget->GetFieldType()) {
case FormFieldType::kPushButton:
case FormFieldType::kCheckBox:
case FormFieldType::kRadioButton: {
FX_RECT bbox = GetViewBBox(pPageView, pAnnot->Get());
bSetFocus =
bbox.Contains(static_cast<int>(point.x), static_cast<int>(point.y));
break;
}
default:
bSetFocus = true;
break;
}
if (bSetFocus)
m_pFormFillEnv->SetFocusAnnot(pAnnot);
CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot->Get(), false);
bool bRet = pFormFiller &&
pFormFiller->OnLButtonUp(pPageView, pAnnot->Get(), nFlags, point);
if (m_pFormFillEnv->GetFocusAnnot() != pAnnot->Get())
return bRet;
if (OnButtonUp(pAnnot, pPageView, nFlags) || !pAnnot)
return true;
#ifdef PDF_ENABLE_XFA
if (OnClick(pAnnot, pPageView, nFlags) || !pAnnot)
return true;
#endif // PDF_ENABLE_XFA
return bRet;
}