void CXFA_NodeHelper::GetNameExpression(CXFA_Node* refNode, CFX_WideString& wsName, FX_BOOL bIsAllPath, XFA_LOGIC_TYPE eLogicType) { wsName.clear(); if (bIsAllPath) { GetNameExpression(refNode, wsName, FALSE, eLogicType); CFX_WideString wsParent; CXFA_Node* parent = ResolveNodes_GetParent(refNode, XFA_LOGIC_NoTransparent); while (parent) { GetNameExpression(parent, wsParent, FALSE, eLogicType); wsParent += L"."; wsParent += wsName; wsName = wsParent; parent = ResolveNodes_GetParent(parent, XFA_LOGIC_NoTransparent); } return; } CFX_WideString ws; FX_BOOL bIsProperty = NodeIsProperty(refNode); if (refNode->IsUnnamed() || (bIsProperty && refNode->GetElementType() != XFA_Element::PageSet)) { ws = refNode->GetClassName(); wsName.Format(L"#%s[%d]", ws.c_str(), GetIndex(refNode, eLogicType, bIsProperty, TRUE)); return; } ws = refNode->GetCData(XFA_ATTRIBUTE_Name); ws.Replace(L".", L"\\."); wsName.Format(L"%s[%d]", ws.c_str(), GetIndex(refNode, eLogicType, bIsProperty, FALSE)); }
FX_BOOL Document::mailForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) { ASSERT(m_pDocument != NULL); if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE; int iLength = params.size(); FX_BOOL bUI = iLength > 0 ? params[0].ToBool() : TRUE; CFX_WideString cTo = iLength > 1 ? params[1].ToCFXWideString() : L""; CFX_WideString cCc = iLength > 2 ? params[2].ToCFXWideString() : L""; CFX_WideString cBcc = iLength > 3 ? params[3].ToCFXWideString() : L""; CFX_WideString cSubject = iLength > 4 ? params[4].ToCFXWideString() : L""; CFX_WideString cMsg = iLength > 5 ? params[5].ToCFXWideString() : L""; CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm(); ASSERT(pInterForm != NULL); CFX_ByteTextBuf textBuf; if (!pInterForm->ExportFormToFDFTextBuf(textBuf)) return FALSE; CJS_Context* pContext = (CJS_Context*)cc; ASSERT(pContext != NULL); CPDFDoc_Environment* pEnv = pContext->GetReaderApp(); ASSERT(pEnv != NULL); CJS_Runtime* pRuntime = pContext->GetJSRuntime(); ASSERT(pRuntime != NULL); pRuntime->BeginBlock(); pEnv->JS_docmailForm(textBuf.GetBuffer(), textBuf.GetLength(), bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str()); pRuntime->EndBlock(); return TRUE; }
FX_BOOL CPDFXFA_App::PutRequestURL(const CFX_WideString& wsURL, const CFX_WideString& wsData, const CFX_WideString& wsEncode) { CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0); return pEnv && pEnv->FFI_PutRequestURL(wsURL.c_str(), wsData.c_str(), wsEncode.c_str()); }
FX_BOOL CJS_Context::DoJob(int nMode, const CFX_WideString& script, CFX_WideString& info) { if (m_bBusy) { info = JSGetStringFromID(this, IDS_STRING_JSBUSY); return FALSE; } m_bBusy = TRUE; ASSERT(m_pRuntime != NULL); ASSERT(m_pEventHandler != NULL); ASSERT(m_pEventHandler->IsValid()); if (!m_pRuntime->AddEventToLoop(m_pEventHandler->TargetName(), m_pEventHandler->EventType())) { info = JSGetStringFromID(this, IDS_STRING_JSEVENT); return FALSE; } FXJSErr error ={NULL,NULL, 0}; int nRet = 0; if (script.GetLength() > 0) { if (nMode == 0) { nRet = JS_Execute(*m_pRuntime, this, script.c_str(), script.GetLength(), &error); } else { nRet = JS_Parse(*m_pRuntime, this, script.c_str(), script.GetLength(), &error); } } if (nRet < 0) { CFX_WideString sLine; sLine.Format(L"[ Line: %05d { %s } ] : %s",error.linnum-1,error.srcline,error.message); // TRACE(L"/* -------------- JS Error -------------- */\n"); // TRACE(sLine); // TRACE(L"\n"); //CFX_ByteString sTemp = CFX_ByteString::FromUnicode(error.message); info += sLine; } else { info = JSGetStringFromID(this, IDS_STRING_RUN); } m_pRuntime->RemoveEventInLoop(m_pEventHandler->TargetName(), m_pEventHandler->EventType()); m_pEventHandler->Destroy(); m_bBusy = FALSE; return nRet >= 0; }
int32_t CPDFXFA_App::MsgBox(const CFX_WideString& wsMessage, const CFX_WideString& wsTitle, uint32_t dwIconType, uint32_t dwButtonType) { CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0); if (!pEnv) return -1; uint32_t iconType = 0; int iButtonType = 0; switch (dwIconType) { case XFA_MBICON_Error: iconType |= 0; break; case XFA_MBICON_Warning: iconType |= 1; break; case XFA_MBICON_Question: iconType |= 2; break; case XFA_MBICON_Status: iconType |= 3; break; } switch (dwButtonType) { case XFA_MB_OK: iButtonType |= 0; break; case XFA_MB_OKCancel: iButtonType |= 1; break; case XFA_MB_YesNo: iButtonType |= 2; break; case XFA_MB_YesNoCancel: iButtonType |= 3; break; } int32_t iRet = pEnv->JS_appAlert(wsMessage.c_str(), wsTitle.c_str(), iButtonType, iconType); switch (iRet) { case 1: return XFA_IDOK; case 2: return XFA_IDCancel; case 3: return XFA_IDNo; case 4: return XFA_IDYes; } return XFA_IDYes; }
FX_BOOL CPDFXFA_App::PostRequestURL(const CFX_WideString& wsURL, const CFX_WideString& wsData, const CFX_WideString& wsContentType, const CFX_WideString& wsEncode, const CFX_WideString& wsHeader, CFX_WideString& wsResponse) { CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0); if (!pEnv) return FALSE; wsResponse = pEnv->FFI_PostRequestURL(wsURL.c_str(), wsData.c_str(), wsContentType.c_str(), wsEncode.c_str(), wsHeader.c_str()); return TRUE; }
void CFFL_IFormFiller::OnFormat(CPDFSDK_Widget* pWidget, CPDFSDK_PageView* pPageView, FX_BOOL& bExit, FX_DWORD nFlag) { if (!m_bNotifying) { ASSERT(pWidget != NULL); ASSERT(pPageView != NULL); // CReader_DocView* pDocView = pPageView->GetDocView(); // ASSERT(pDocView != NULL); CPDFSDK_Document* pDocument = pPageView->GetSDKDocument(); ASSERT(pDocument != NULL); CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm(); ASSERT(pInterForm != NULL); FX_BOOL bFormated = FALSE; CFX_WideString sValue = pInterForm->OnFormat(pWidget->GetFormField(), bFormated); // bExit = !IsValidAnnot(m_pApp, pDocument, pDocView, pPageView, // pWidget); if (bExit) return; if (bFormated) { pInterForm->ResetFieldAppearance(pWidget->GetFormField(), sValue.c_str(), TRUE); pInterForm->UpdateField(pWidget->GetFormField()); } m_bNotifying = FALSE; } }
void CFFL_IFormFiller::OnFormat(CPDFSDK_Widget* pWidget, CPDFSDK_PageView* pPageView, FX_BOOL& bExit, uint32_t nFlag) { if (!m_bNotifying) { ASSERT(pWidget); CPDFSDK_Document* pDocument = pPageView->GetSDKDocument(); CPDFSDK_InterForm* pInterForm = pDocument->GetInterForm(); FX_BOOL bFormated = FALSE; CFX_WideString sValue = pInterForm->OnFormat(pWidget->GetFormField(), bFormated); if (bExit) return; if (bFormated) { pInterForm->ResetFieldAppearance(pWidget->GetFormField(), sValue.c_str(), TRUE); pInterForm->UpdateField(pWidget->GetFormField()); } m_bNotifying = FALSE; } }
FX_BOOL CFDE_TxtEdtEngine::IsFitArea(CFX_WideString& wsText) { std::unique_ptr<CFDE_TextOut> pTextOut(new CFDE_TextOut); pTextOut->SetLineSpace(m_Param.fLineSpace); pTextOut->SetFont(m_Param.pFont); pTextOut->SetFontSize(m_Param.fFontSize); CFX_RectF rcText; FXSYS_memset(&rcText, 0, sizeof(rcText)); uint32_t dwStyle = 0; if (!(m_Param.dwMode & FDE_TEXTEDITMODE_MultiLines)) dwStyle |= FDE_TTOSTYLE_SingleLine; if (m_Param.dwMode & FDE_TEXTEDITMODE_AutoLineWrap) { dwStyle |= FDE_TTOSTYLE_LineWrap; rcText.width = m_Param.fPlateWidth; } else { rcText.width = 65535; } pTextOut->SetStyles(dwStyle); wsText += L"\n"; pTextOut->CalcLogicSize(wsText.c_str(), wsText.GetLength(), rcText); wsText.Delete(wsText.GetLength() - 1); if ((m_Param.dwMode & FDE_TEXTEDITMODE_LimitArea_Horz) && (rcText.width > m_Param.fPlateWidth)) { return FALSE; } if ((m_Param.dwMode & FDE_TEXTEDITMODE_LimitArea_Vert) && (rcText.height > m_Param.fLineSpace * m_Param.nLineCount)) { return FALSE; } return TRUE; }
int CPDF_FormField::InsertOption(CFX_WideString csOptLabel, int index, FX_BOOL bNotify) { if (csOptLabel.IsEmpty()) return -1; if (bNotify && !NotifyListOrComboBoxBeforeChange(csOptLabel)) return -1; CFX_ByteString csStr = PDF_EncodeText(csOptLabel.c_str(), csOptLabel.GetLength()); CPDF_Object* pValue = FPDF_GetFieldAttr(m_pDict, "Opt"); CPDF_Array* pOpt = ToArray(pValue); if (!pOpt) { pOpt = new CPDF_Array; m_pDict->SetAt("Opt", pOpt); } int iCount = (int)pOpt->GetCount(); if (index < 0 || index >= iCount) { pOpt->AddString(csStr); index = iCount; } else { CPDF_String* pString = new CPDF_String(csStr, FALSE); pOpt->InsertAt(index, pString); } if (bNotify) NotifyListOrComboBoxAfterChange(); return index; }
FX_BOOL CPDFSDK_InterForm::SubmitForm(const CFX_WideString& sDestination, FX_BOOL bUrlEncoded) { if (sDestination.IsEmpty()) return FALSE; if (!m_pDocument || !m_pInterForm) return FALSE; CPDFSDK_Environment* pEnv = m_pDocument->GetEnv(); CFX_WideString wsPDFFilePath = m_pDocument->GetPath(); CFDF_Document* pFDFDoc = m_pInterForm->ExportToFDF(wsPDFFilePath.AsStringC(), false); if (!pFDFDoc) return FALSE; CFX_ByteTextBuf FdfBuffer; FX_BOOL bRet = pFDFDoc->WriteBuf(FdfBuffer); delete pFDFDoc; if (!bRet) return FALSE; uint8_t* pBuffer = FdfBuffer.GetBuffer(); FX_STRSIZE nBufSize = FdfBuffer.GetLength(); if (bUrlEncoded && !FDFToURLEncodedData(pBuffer, nBufSize)) return FALSE; pEnv->JS_docSubmitForm(pBuffer, nBufSize, sDestination.c_str()); if (bUrlEncoded) FX_Free(pBuffer); return TRUE; }
void CFDE_TxtEdtBuf::SetText(const CFX_WideString& wsText) { ASSERT(!wsText.IsEmpty()); Clear(FALSE); int32_t nTextLength = wsText.GetLength(); int32_t nNeedCount = ((nTextLength - 1) / m_nChunkSize + 1) - m_Chunks.GetSize(); int32_t i = 0; for (i = 0; i < nNeedCount; i++) { FDE_CHUNKHEADER* lpChunk = static_cast<FDE_CHUNKHEADER*>(m_pAllocator->Alloc( sizeof(FDE_CHUNKHEADER) + (m_nChunkSize - 1) * sizeof(FX_WCHAR))); lpChunk->nUsed = 0; m_Chunks.Add(lpChunk); } int32_t nTotalCount = m_Chunks.GetSize(); const FX_WCHAR* lpSrcBuf = wsText.c_str(); int32_t nLeave = nTextLength; int32_t nCopyedLength = m_nChunkSize; for (i = 0; i < nTotalCount && nLeave > 0; i++) { if (nLeave < nCopyedLength) { nCopyedLength = nLeave; } FDE_CHUNKHEADER* lpChunk = m_Chunks[i]; FXSYS_memcpy(lpChunk->wChars, lpSrcBuf, nCopyedLength * sizeof(FX_WCHAR)); nLeave -= nCopyedLength; lpSrcBuf += nCopyedLength; lpChunk->nUsed = nCopyedLength; } m_nTotal = nTextLength; m_bChanged = TRUE; }
void CPWL_Edit::PasteText() { if (!CanPaste()) return; CFX_WideString swClipboard; if (IFX_SystemHandler* pSH = GetSystemHandler()) swClipboard = pSH->GetClipboardText(GetAttachedHWnd()); if (m_pFillerNotify) { FX_BOOL bRC = TRUE; FX_BOOL bExit = FALSE; CFX_WideString strChangeEx; int nSelStart = 0; int nSelEnd = 0; GetSel(nSelStart, nSelEnd); m_pFillerNotify->OnBeforeKeyStroke(GetAttachedData(), swClipboard, strChangeEx, nSelStart, nSelEnd, TRUE, bRC, bExit, 0); if (!bRC) return; if (bExit) return; } if (swClipboard.GetLength() > 0) { Clear(); InsertText(swClipboard.c_str()); } }
CPWL_Wnd* CFFL_TextField::NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView* pPageView) { CPWL_Edit * pWnd = new CPWL_Edit(); pWnd->AttachFFLData(this); pWnd->Create(cp); ASSERT(m_pApp != NULL); CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller(); pWnd->SetFillerNotify(pIFormFiller); ASSERT(m_pWidget != NULL); int32_t nMaxLen = m_pWidget->GetMaxLen(); CFX_WideString swValue = m_pWidget->GetValue(); if (nMaxLen > 0) { if (pWnd->HasFlag(PES_CHARARRAY)) { pWnd->SetCharArray(nMaxLen); pWnd->SetAlignFormatV(PEAV_CENTER); } else { pWnd->SetLimitChar(nMaxLen); } } pWnd->SetText(swValue.c_str()); return pWnd; }
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); }
void CXFA_FFDocView::ShowNullTestMsg() { int32_t iCount = m_arrNullTestMsg.GetSize(); CXFA_FFApp* pApp = m_pDoc->GetApp(); IXFA_AppProvider* pAppProvider = pApp->GetAppProvider(); if (pAppProvider && iCount) { int32_t iRemain = iCount > 7 ? iCount - 7 : 0; iCount -= iRemain; CFX_WideString wsMsg; for (int32_t i = 0; i < iCount; i++) { wsMsg += m_arrNullTestMsg[i] + FX_WSTRC(L"\n"); } if (iRemain > 0) { CFX_WideString wsLimit; pAppProvider->LoadString(XFA_IDS_ValidateLimit, wsLimit); if (!wsLimit.IsEmpty()) { CFX_WideString wsTemp; wsTemp.Format(wsLimit.c_str(), iRemain); wsMsg += FX_WSTRC(L"\n") + wsTemp; } } CFX_WideString wsTitle; pAppProvider->LoadString(XFA_IDS_AppName, wsTitle); pAppProvider->MsgBox(wsMsg, wsTitle, XFA_MBICON_Status, XFA_MB_OK); } m_arrNullTestMsg.RemoveAll(); }
CPWL_Wnd* CFFL_ComboBox::NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView* pPageView) { CPWL_ComboBox * pWnd = new CPWL_ComboBox(); pWnd->AttachFFLData(this); pWnd->Create(cp); CFFL_IFormFiller* pFormFiller = m_pApp->GetIFormFiller(); pWnd->SetFillerNotify(pFormFiller); int32_t nCurSel = m_pWidget->GetSelectedIndex(0); CFX_WideString swText; if (nCurSel < 0) swText = m_pWidget->GetValue(); else swText = m_pWidget->GetOptionLabel(nCurSel); for (int32_t i=0,sz=m_pWidget->CountOptions(); i<sz; i++) { pWnd->AddString(m_pWidget->GetOptionLabel(i).c_str()); } pWnd->SetSelect(nCurSel); pWnd->SetText(swText.c_str()); return pWnd; }
int CPDF_InterForm::CompareFieldName(const CFX_WideString& name1, const CFX_WideString& name2) { const FX_WCHAR* ptr1 = name1.c_str(); const FX_WCHAR* ptr2 = name2.c_str(); if (name1.GetLength() == name2.GetLength()) return name1 == name2 ? 1 : 0; int i = 0; while (ptr1[i] == ptr2[i]) i++; if (i == name1.GetLength()) return 2; if (i == name2.GetLength()) return 3; return 0; }
int CPDF_FormField::InsertOption(CFX_WideString csOptLabel, int index, bool bNotify) { if (csOptLabel.IsEmpty()) return -1; if (bNotify && !NotifyListOrComboBoxBeforeChange(csOptLabel)) return -1; CFX_ByteString csStr = PDF_EncodeText(csOptLabel.c_str(), csOptLabel.GetLength()); CPDF_Array* pOpt = ToArray(FPDF_GetFieldAttr(m_pDict, "Opt")); if (!pOpt) pOpt = m_pDict->SetNewFor<CPDF_Array>("Opt"); int iCount = pdfium::base::checked_cast<int>(pOpt->GetCount()); if (index >= iCount) { pOpt->AddNew<CPDF_String>(csStr, false); index = iCount; } else { pOpt->InsertNewAt<CPDF_String>(index, csStr, false); } if (bNotify) NotifyListOrComboBoxAfterChange(); return index; }
void CXFA_FFTextEdit::ValidateNumberField(const CFX_WideString& wsText) { CXFA_WidgetAcc* pAcc = GetDataAcc(); if (pAcc && pAcc->GetUIType() == XFA_Element::NumericEdit) { IXFA_AppProvider* pAppProvider = GetApp()->GetAppProvider(); if (pAppProvider) { CFX_WideString wsTitle; pAppProvider->LoadString(XFA_IDS_AppName, wsTitle); CFX_WideString wsError; pAppProvider->LoadString(XFA_IDS_ValidateNumberError, wsError); CFX_WideString wsSomField; pAcc->GetNode()->GetSOMExpression(wsSomField); CFX_WideString wsMessage; wsMessage.Format(wsError.c_str(), wsText.c_str(), wsSomField.c_str()); pAppProvider->MsgBox(wsMessage, wsTitle, XFA_MBICON_Error, XFA_MB_OK); } } }
void CFDE_TxtEdtEngine::RecoverParagEnd(CFX_WideString& wsText) { FX_WCHAR wc = (m_nFirstLineEnd == FDE_TXTEDIT_LINEEND_CR) ? L'\n' : L'\r'; if (m_nFirstLineEnd == FDE_TXTEDIT_LINEEND_CRLF) { CFX_ArrayTemplate<int32_t> PosArr; int32_t nLength = wsText.GetLength(); int32_t i = 0; FX_WCHAR* lpPos = const_cast<FX_WCHAR*>(wsText.c_str()); for (i = 0; i < nLength; i++, lpPos++) { if (*lpPos == m_wLineEnd) { *lpPos = wc; PosArr.Add(i); } } const FX_WCHAR* lpSrcBuf = wsText.c_str(); CFX_WideString wsTemp; int32_t nCount = PosArr.GetSize(); FX_WCHAR* lpDstBuf = wsTemp.GetBuffer(nLength + nCount); int32_t nDstPos = 0; int32_t nSrcPos = 0; for (i = 0; i < nCount; i++) { int32_t nPos = PosArr[i]; int32_t nCopyLen = nPos - nSrcPos + 1; FXSYS_memcpy(lpDstBuf + nDstPos, lpSrcBuf + nSrcPos, nCopyLen * sizeof(FX_WCHAR)); nDstPos += nCopyLen; nSrcPos += nCopyLen; lpDstBuf[nDstPos] = L'\n'; nDstPos++; } if (nSrcPos < nLength) { FXSYS_memcpy(lpDstBuf + nDstPos, lpSrcBuf + nSrcPos, (nLength - nSrcPos) * sizeof(FX_WCHAR)); } wsTemp.ReleaseBuffer(nLength + nCount); wsText = wsTemp; } else { int32_t nLength = wsText.GetLength(); FX_WCHAR* lpBuf = const_cast<FX_WCHAR*>(wsText.c_str()); for (int32_t i = 0; i < nLength; i++, lpBuf++) { if (*lpBuf == m_wLineEnd) *lpBuf = wc; } } }
int32_t CFDE_TxtEdtEngine::Replace(int32_t nStart, int32_t nLength, const CFX_WideString& wsReplace) { if (IsLocked()) { return FDE_TXTEDT_MODIFY_RET_F_Locked; } if (nStart < 0 || (nStart + nLength > GetTextBufLength())) { return FDE_TXTEDT_MODIFY_RET_F_Boundary; } if (m_Param.dwMode & FDE_TEXTEDITMODE_Validate) { CFX_WideString wsText; GetPreReplaceText(wsText, nStart, nLength, wsReplace.c_str(), wsReplace.GetLength()); if (!m_Param.pEventSink->On_Validate(this, wsText)) { return FDE_TXTEDT_MODIFY_RET_F_Invalidate; } } if (IsSelect()) { ClearSelection(); } m_ChangeInfo.nChangeType = FDE_TXTEDT_TEXTCHANGE_TYPE_Replace; GetText(m_ChangeInfo.wsDelete, nStart, nLength); if (nLength > 0) { Inner_DeleteRange(nStart, nLength); } int32_t nTextLength = wsReplace.GetLength(); if (nTextLength > 0) { Inner_Insert(nStart, wsReplace.c_str(), nTextLength); } m_ChangeInfo.wsInsert = CFX_WideString(wsReplace.c_str(), nTextLength); nStart += nTextLength; FX_WCHAR wChar = m_pTxtBuf->GetCharByIndex(nStart - 1); FX_BOOL bBefore = TRUE; if (wChar != L'\n' && wChar != L'\r') { nStart--; bBefore = FALSE; } SetCaretPos(nStart, bBefore); m_Param.pEventSink->On_PageUnload(this, m_nCaretPage, 0); m_Param.pEventSink->On_PageLoad(this, m_nCaretPage, 0); m_Param.pEventSink->On_TextChanged(this, m_ChangeInfo); return FDE_TXTEDT_MODIFY_RET_S_Normal; }
FX_BOOL CFXCRT_FileAccess_CRT::Open(FX_WSTR fileName, FX_DWORD dwMode) { if (m_hFile) { return FALSE; } CFX_WideString strMode; FXCRT_GetFileModeString(dwMode, strMode); m_hFile = FXSYS_wfopen(fileName.GetPtr(), strMode.c_str()); return m_hFile != NULL; }
FX_BOOL util::byteToChar(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) { int iSize = params.size(); if (iSize == 0) return FALSE; int nByte = params[0].ToInt(); unsigned char cByte = (unsigned char)nByte; CFX_WideString csValue; csValue.Format(L"%c", cByte); vRet = csValue.c_str(); return TRUE; }
int32_t CFWL_ComboList::MatchItem(const CFX_WideString& wsMatch) { if (wsMatch.IsEmpty()) return -1; int32_t iCount = CountItems(this); for (int32_t i = 0; i < iCount; i++) { CFWL_ListItem* hItem = GetItem(this, i); CFX_WideString wsText = hItem ? hItem->GetText() : L""; FX_STRSIZE pos = wsText.Find(wsMatch.c_str()); if (!pos) return i; } return -1; }
void FPDF_FileSpec_SetWin32Path(CPDF_Object* pFileSpec, const CFX_WideString& filepath) { CFX_WideString result; if (filepath.GetLength() > 1 && filepath[1] == ':') { result = L"/"; result += filepath[0]; if (filepath[2] != '\\') { result += '/'; } result += ChangeSlash(filepath.c_str() + 2); } else if (filepath.GetLength() > 1 && filepath[0] == '\\' && filepath[1] == '\\') { result = ChangeSlash(filepath.c_str() + 1); } else { result = ChangeSlash(filepath); } if (pFileSpec->GetType() == PDFOBJ_STRING) { pFileSpec->SetString(CFX_ByteString::FromUnicode(result)); } else if (pFileSpec->GetType() == PDFOBJ_DICTIONARY) { ((CPDF_Dictionary*)pFileSpec)->SetAtString(FX_BSTRC("F"), CFX_ByteString::FromUnicode(result)); ((CPDF_Dictionary*)pFileSpec)->SetAtString(FX_BSTRC("UF"), PDF_EncodeText(result)); ((CPDF_Dictionary*)pFileSpec)->RemoveAt(FX_BSTRC("FS")); } }
void FX_BidiReverseString(CFX_WideString& wsText, int32_t iStart, int32_t iCount) { ASSERT(iStart > -1 && iStart < wsText.GetLength()); ASSERT(iCount >= 0 && iStart + iCount <= wsText.GetLength()); FX_WCHAR wch; FX_WCHAR* pStart = const_cast<FX_WCHAR*>(wsText.c_str()); pStart += iStart; FX_WCHAR* pEnd = pStart + iCount - 1; while (pStart < pEnd) { wch = *pStart; *pStart++ = *pEnd; *pEnd-- = wch; } }
CFX_WideString CPDFXFA_App::Response(const CFX_WideString& wsQuestion, const CFX_WideString& wsTitle, const CFX_WideString& wsDefaultAnswer, FX_BOOL bMark) { CFX_WideString wsAnswer; CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0); if (pEnv) { int nLength = 2048; char* pBuff = new char[nLength]; nLength = pEnv->JS_appResponse(wsQuestion.c_str(), wsTitle.c_str(), wsDefaultAnswer.c_str(), nullptr, bMark, pBuff, nLength); if (nLength > 0) { nLength = nLength > 2046 ? 2046 : nLength; pBuff[nLength] = 0; pBuff[nLength + 1] = 0; wsAnswer = CFX_WideString::FromUTF16LE( reinterpret_cast<const unsigned short*>(pBuff), nLength / sizeof(unsigned short)); } delete[] pBuff; } return wsAnswer; }
void CPDFXFA_DocEnvironment::GotoURL(CXFA_FFDoc* hDoc, const CFX_WideString& bsURL) { if (hDoc != m_pContext->GetXFADoc()) return; if (m_pContext->GetDocType() != DOCTYPE_DYNAMIC_XFA) return; CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv(); if (!pFormFillEnv) return; CFX_WideStringC str(bsURL.c_str()); pFormFillEnv->GotoURL(this, str); }
void CFDE_TxtEdtEngine::SetText(const CFX_WideString& wsText) { ResetEngine(); int32_t nLength = wsText.GetLength(); if (nLength > 0) { CFX_WideString wsTemp; FX_WCHAR* lpBuffer = wsTemp.GetBuffer(nLength); FXSYS_memcpy(lpBuffer, wsText.c_str(), nLength * sizeof(FX_WCHAR)); ReplaceParagEnd(lpBuffer, nLength, FALSE); wsTemp.ReleaseBuffer(nLength); if (m_nLimit > 0 && nLength > m_nLimit) { wsTemp.Delete(m_nLimit, nLength - m_nLimit); nLength = m_nLimit; } m_pTxtBuf->SetText(wsTemp); } m_pTxtBuf->Insert(nLength, &m_wLineEnd, 1); RebuildParagraphs(); }