Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
CPDFSDK_Annot* CPDFSDK_PageView::GetFXWidgetAtPoint(FX_FLOAT pageX, FX_FLOAT pageY)
{

    CPDFSDK_AnnotIterator annotIterator(this, FALSE);
    CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();
    CPDFSDK_AnnotHandlerMgr* pAnnotMgr = pEnv->GetAnnotHandlerMgr();
    CPDFSDK_Annot* pSDKAnnot = NULL;
    int index = -1;
    while((pSDKAnnot = annotIterator.Next(index)))
    {
        if(pSDKAnnot->GetType() == "Widget")
        {
            pAnnotMgr->Annot_OnGetViewBBox(this, pSDKAnnot);
            CPDF_Point point(pageX, pageY);
            if (pAnnotMgr->Annot_OnHitTest(this, pSDKAnnot, point))
                return pSDKAnnot;
        }
    }

    return NULL;
}