本文整理汇总了C++中CPDFSDK_PageView类的典型用法代码示例。如果您正苦于以下问题:C++ CPDFSDK_PageView类的具体用法?C++ CPDFSDK_PageView怎么用?C++ CPDFSDK_PageView使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CPDFSDK_PageView类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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);
}
示例2: InvalidateRect
void CFX_SystemHandler::InvalidateRect(FX_HWND hWnd, FX_RECT rect) {
// g_pFormFillApp->FFI_Invalidate();
CPDFSDK_Annot* pSDKAnnot = (CPDFSDK_Annot*)hWnd;
CPDF_Page* pPage = NULL;
CPDFSDK_PageView* pPageView = NULL;
pPageView = pSDKAnnot->GetPageView();
pPage = pSDKAnnot->GetPDFPage();
if (!pPage || !pPageView)
return;
CPDF_Matrix page2device;
pPageView->GetCurrentMatrix(page2device);
CPDF_Matrix device2page;
device2page.SetReverse(page2device);
FX_FLOAT left, top, right, bottom;
device2page.Transform((FX_FLOAT)rect.left, (FX_FLOAT)rect.top, left, top);
device2page.Transform((FX_FLOAT)rect.right, (FX_FLOAT)rect.bottom, right,
bottom);
// m_pEnv->FFI_DeviceToPage(pPage, rect.left, rect.top, (double*)&left,
// (double*)&top);
// m_pEnv->FFI_DeviceToPage(pPage, rect.right, rect.bottom, (double*)&right,
// (double*)&bottom);
CPDF_Rect rcPDF(left, bottom, right, top);
rcPDF.Normalize();
m_pEnv->FFI_Invalidate(pPage, rcPDF.left, rcPDF.top, rcPDF.right,
rcPDF.bottom);
}
示例3: GetNextAnnot
CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::GetNextAnnot(CPDFSDK_Annot* pSDKAnnot,
bool bNext) {
#ifdef PDF_ENABLE_XFA
CPDFSDK_PageView* pPageView = pSDKAnnot->GetPageView();
CPDFXFA_Page* pPage = pPageView->GetPDFXFAPage();
if (pPage && !pPage->AsPDFPage()) {
// For xfa annots in XFA pages not backed by PDF pages.
std::unique_ptr<IXFA_WidgetIterator> pWidgetIterator(
pPage->GetXFAPageView()->CreateWidgetIterator(
XFA_TRAVERSEWAY_Tranvalse, XFA_WidgetStatus_Visible |
XFA_WidgetStatus_Viewable |
XFA_WidgetStatus_Focused));
if (!pWidgetIterator)
return nullptr;
if (pWidgetIterator->GetCurrentWidget() != pSDKAnnot->GetXFAWidget())
pWidgetIterator->SetCurrentWidget(pSDKAnnot->GetXFAWidget());
CXFA_FFWidget* hNextFocus = bNext ? pWidgetIterator->MoveToNext()
: pWidgetIterator->MoveToPrevious();
if (!hNextFocus && pSDKAnnot)
hNextFocus = pWidgetIterator->MoveToFirst();
return pPageView->GetAnnotByXFAWidget(hNextFocus);
}
#endif // PDF_ENABLE_XFA
// For PDF annots.
CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pSDKAnnot);
CPDFSDK_AnnotIterator ai(pWidget->GetPageView(), pWidget->GetAnnotSubtype());
return bNext ? ai.GetNextAnnot(pWidget) : ai.GetPrevAnnot(pWidget);
}
示例4: 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);
}
示例5: GetWidget
CPDFSDK_Widget* CPDFSDK_InterForm::GetWidget(CPDF_FormControl* pControl,
bool createIfNeeded) const {
if (!pControl || !m_pInterForm)
return nullptr;
CPDFSDK_Widget* pWidget = nullptr;
const auto it = m_Map.find(pControl);
if (it != m_Map.end())
pWidget = it->second;
if (pWidget)
return pWidget;
if (!createIfNeeded)
return nullptr;
CPDF_Dictionary* pControlDict = pControl->GetWidget();
CPDF_Document* pDocument = m_pDocument->GetPDFDocument();
CPDFSDK_PageView* pPage = nullptr;
if (CPDF_Dictionary* pPageDict = pControlDict->GetDictFor("P")) {
int nPageIndex = pDocument->GetPageIndex(pPageDict->GetObjNum());
if (nPageIndex >= 0)
pPage = m_pDocument->GetPageView(nPageIndex);
}
if (!pPage) {
int nPageIndex = GetPageIndexByAnnotDict(pDocument, pControlDict);
if (nPageIndex >= 0)
pPage = m_pDocument->GetPageView(nPageIndex);
}
if (!pPage)
return nullptr;
return static_cast<CPDFSDK_Widget*>(pPage->GetAnnotByDict(pControlDict));
}
示例6: GetNextAnnot
CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::GetNextAnnot(CPDFSDK_Annot* pSDKAnnot,
FX_BOOL bNext) {
#ifdef PDF_ENABLE_XFA
CPDFSDK_PageView* pPageView = pSDKAnnot->GetPageView();
CPDFXFA_Page* pPage = pPageView->GetPDFXFAPage();
if (!pPage)
return nullptr;
if (pPage->GetPDFPage()) { // for pdf annots.
CBA_AnnotIterator ai(pSDKAnnot->GetPageView(), pSDKAnnot->GetType(), "");
CPDFSDK_Annot* pNext =
bNext ? ai.GetNextAnnot(pSDKAnnot) : ai.GetPrevAnnot(pSDKAnnot);
return pNext;
}
// for xfa annots
std::unique_ptr<IXFA_WidgetIterator> pWidgetIterator(
pPage->GetXFAPageView()->CreateWidgetIterator(
XFA_TRAVERSEWAY_Tranvalse, XFA_WidgetStatus_Visible |
XFA_WidgetStatus_Viewable |
XFA_WidgetStatus_Focused));
if (!pWidgetIterator)
return nullptr;
if (pWidgetIterator->GetCurrentWidget() != pSDKAnnot->GetXFAWidget())
pWidgetIterator->SetCurrentWidget(pSDKAnnot->GetXFAWidget());
CXFA_FFWidget* hNextFocus =
bNext ? pWidgetIterator->MoveToNext() : pWidgetIterator->MoveToPrevious();
if (!hNextFocus && pSDKAnnot)
hNextFocus = pWidgetIterator->MoveToFirst();
return pPageView->GetAnnotByXFAWidget(hNextFocus);
#else // PDF_ENABLE_XFA
CBA_AnnotIterator ai(pSDKAnnot->GetPageView(), "Widget", "");
return bNext ? ai.GetNextAnnot(pSDKAnnot) : ai.GetPrevAnnot(pSDKAnnot);
#endif // PDF_ENABLE_XFA
}
示例7: SetFocusAnnot
FX_BOOL CPDFSDK_Document::SetFocusAnnot(CPDFSDK_Annot* pAnnot,FX_UINT nFlag)
{
if(m_pFocusAnnot==pAnnot) return TRUE;
if(m_pFocusAnnot)
{
if(!KillFocusAnnot(nFlag) ) return FALSE;
}
CPDFSDK_PageView* pPageView = pAnnot->GetPageView();
if(pAnnot && pPageView->IsValid())
{
CPDFSDK_AnnotHandlerMgr *pAnnotHandler=m_pEnv->GetAnnotHandlerMgr();
if(pAnnotHandler&&!m_pFocusAnnot)
{
if (!pAnnotHandler->Annot_OnSetFocus(pAnnot,nFlag))
return FALSE;
if(!m_pFocusAnnot)
{
m_pFocusAnnot=pAnnot;
return TRUE;
}
}
}
return FALSE;
}
示例8: UpdateAllViews
void CPDFSDK_Document::UpdateAllViews(CPDFSDK_PageView* pSender, CPDFSDK_Annot* pAnnot)
{
for (const auto& it : m_pageMap) {
CPDFSDK_PageView* pPageView = it.second;
if (pPageView != pSender) {
pPageView->UpdateView(pAnnot);
}
}
}
示例9: FORM_OnChar
DLLEXPORT FPDF_BOOL STDCALL FORM_OnChar(FPDF_FORMHANDLE hHandle,
FPDF_PAGE page,
int nChar,
int modifier) {
CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
if (!pPageView)
return FALSE;
return pPageView->OnChar(nChar, modifier);
}
示例10: FORM_OnKeyUp
DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyUp(FPDF_FORMHANDLE hHandle,
FPDF_PAGE page,
int nKeyCode,
int modifier) {
CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
if (!pPageView)
return false;
return pPageView->OnKeyUp(nKeyCode, modifier);
}
示例11: FPDF_ClosePage
DLLEXPORT void STDCALL FPDF_ClosePage(FPDF_PAGE page)
{
if (!page) return;
CPDFSDK_PageView* pPageView = (CPDFSDK_PageView*)(((CPDF_Page*)page))->GetPrivateData((void*)page);
if (pPageView && pPageView->IsLocked()) {
pPageView->TakeOverPage();
return;
}
delete (CPDF_Page*)page;
}
示例12: FORM_OnRButtonUp
DLLEXPORT FPDF_BOOL STDCALL FORM_OnRButtonUp(FPDF_FORMHANDLE hHandle,
FPDF_PAGE page,
int modifier,
double page_x,
double page_y) {
CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page);
if (!pPageView)
return FALSE;
CFX_FloatPoint pt((FX_FLOAT)page_x, (FX_FLOAT)page_y);
return pPageView->OnRButtonUp(pt, modifier);
}
示例13: ReMovePageView
void CPDFSDK_Document::ReMovePageView(CPDF_Page* pPDFPage)
{
auto it = m_pageMap.find(pPDFPage);
if (it == m_pageMap.end())
return;
CPDFSDK_PageView* pPageView = it->second;
if (pPageView->IsLocked())
return;
delete pPageView;
m_pageMap.erase(it);
}
示例14: FORM_OnChar
DLLEXPORT FPDF_BOOL STDCALL FORM_OnChar(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int nChar, int modifier)
{
if (!hHandle || !page)
return FALSE;
CPDFSDK_Document* pFXDoc = ((CPDFDoc_Environment*)hHandle)->GetCurrentDoc();
if(!pFXDoc)
return FALSE;
CPDFSDK_PageView* pPageView = pFXDoc->GetPageView((CPDF_Page*)page);
if(!pPageView)
return FALSE;
return pPageView->OnChar(nChar, modifier);
}
示例15: ASSERT
FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus(CPDFSDK_Annot* pAnnot,
FX_DWORD nFlag) {
ASSERT(pAnnot);
if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
if (pAnnotHandler->OnSetFocus(pAnnot, nFlag)) {
CPDFSDK_PageView* pPage = pAnnot->GetPageView();
pPage->GetSDKDocument();
return TRUE;
}
}
return FALSE;
}